1 // Copyright (C) 2009-2014 Free Software Foundation, Inc.
3 // This file is part of the GNU ISO C++ Library. This library is free
4 // software; you can redistribute it and/or modify it under the
5 // terms of the GNU General Public License as published by the
6 // Free Software Foundation; either version 3, or (at your option)
9 // This library is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU General Public License for more details.
14 // You should have received a copy of the GNU General Public License along
15 // with this library; see the file COPYING3. If not see
16 // <http://www.gnu.org/licenses/>.
18 // { dg-require-effective-target dfp }
20 // ISO/IEC TR 24733 3.2.9 Comparison operators.
22 #include <decimal/decimal>
23 #include <testsuite_hooks.h>
25 using namespace std::decimal
;
33 unsigned long ul
= 20;
35 unsigned long long ull
= 50;
40 bool test
__attribute__((unused
)) = true;
43 a
= si
; VERIFY (a
== si
); VERIFY (si
== a
);
44 a
= ui
; VERIFY (a
== ui
); VERIFY (ui
== a
);
45 a
= sl
; VERIFY (a
== sl
); VERIFY (sl
== a
);
46 a
= ul
; VERIFY (a
== ul
); VERIFY (ul
== a
);
47 a
= sll
; VERIFY (a
== sll
); VERIFY (sll
== a
);
48 a
= ull
; VERIFY (a
== ull
); VERIFY (ull
== a
);
49 a
= d32
; VERIFY (a
== d32
); VERIFY (d32
== a
);
50 a
= (decimal32
)d64
; VERIFY (a
== d64
); VERIFY (d64
== a
);
51 a
= (decimal32
)d128
; VERIFY (a
== d128
); VERIFY (d128
== a
);
57 bool test
__attribute__((unused
)) = true;
60 VERIFY (a
!= si
); VERIFY (si
!= a
);
61 VERIFY (a
!= ui
); VERIFY (ui
!= a
);
62 VERIFY (a
!= sl
); VERIFY (sl
!= a
);
63 VERIFY (a
!= ul
); VERIFY (ul
!= a
);
64 VERIFY (a
!= sll
); VERIFY (sll
!= a
);
65 VERIFY (a
!= ull
); VERIFY (ull
!= a
);
66 VERIFY (a
!= d32
); VERIFY (d32
!= a
);
67 VERIFY (a
!= d64
); VERIFY (d64
!= a
);
68 VERIFY (a
!= d128
); VERIFY (d128
!= a
);
74 bool test
__attribute__((unused
)) = true;
102 bool test
__attribute__((unused
)) = true;
105 a
= si
; VERIFY (a
<= si
); VERIFY (si
<= a
);
106 a
= ui
; VERIFY (a
<= ui
); VERIFY (ui
<= a
);
107 a
= sl
; VERIFY (a
<= sl
); VERIFY (sl
<= a
);
108 a
= ul
; VERIFY (a
<= ul
); VERIFY (ul
<= a
);
109 a
= sll
; VERIFY (a
<= sll
); VERIFY (sll
<= a
);
110 a
= ull
; VERIFY (a
<= ull
); VERIFY (ull
<= a
);
111 a
= d32
; VERIFY (a
<= d32
); VERIFY (d32
<= a
);
112 a
= (decimal32
)d64
; VERIFY (a
<= d64
); VERIFY (d64
<= a
);
113 a
= (decimal32
)d128
; VERIFY (a
<= d128
); VERIFY (d128
<= a
);
141 bool test
__attribute__((unused
)) = true;
169 bool test
__attribute__((unused
)) = true;
172 a
= si
; VERIFY (a
>= si
); VERIFY (si
<= a
);
173 a
= ui
; VERIFY (a
>= ui
); VERIFY (ui
<= a
);
174 a
= sl
; VERIFY (a
>= sl
); VERIFY (sl
<= a
);
175 a
= ul
; VERIFY (a
>= ul
); VERIFY (ul
<= a
);
176 a
= sll
; VERIFY (a
>= sll
); VERIFY (sll
<= a
);
177 a
= ull
; VERIFY (a
>= ull
); VERIFY (ull
<= a
);
178 a
= d32
; VERIFY (a
>= d32
); VERIFY (d32
<= a
);
179 a
= (decimal32
)d64
; VERIFY (a
>= d64
); VERIFY (d64
<= a
);
180 a
= (decimal32
)d128
; VERIFY (a
>= d128
); VERIFY (d128
<= a
);
208 bool test
__attribute__((unused
)) = true;
211 a
= si
; VERIFY (a
== si
); VERIFY (si
== a
);
212 a
= ui
; VERIFY (a
== ui
); VERIFY (ui
== a
);
213 a
= sl
; VERIFY (a
== sl
); VERIFY (sl
== a
);
214 a
= ul
; VERIFY (a
== ul
); VERIFY (ul
== a
);
215 a
= sll
; VERIFY (a
== sll
); VERIFY (sll
== a
);
216 a
= ull
; VERIFY (a
== ull
); VERIFY (ull
== a
);
217 a
= d32
; VERIFY (a
== d32
); VERIFY (d32
== a
);
218 a
= d64
; VERIFY (a
== d64
); VERIFY (d64
== a
);
219 a
= (decimal64
)d128
; VERIFY (a
== d128
); VERIFY (d128
== a
);
225 bool test
__attribute__((unused
)) = true;
228 VERIFY (a
!= si
); VERIFY (si
!= a
);
229 VERIFY (a
!= ui
); VERIFY (ui
!= a
);
230 VERIFY (a
!= sl
); VERIFY (sl
!= a
);
231 VERIFY (a
!= ul
); VERIFY (ul
!= a
);
232 VERIFY (a
!= sll
); VERIFY (sll
!= a
);
233 VERIFY (a
!= ull
); VERIFY (ull
!= a
);
234 VERIFY (a
!= d32
); VERIFY (d32
!= a
);
235 VERIFY (a
!= d64
); VERIFY (d64
!= a
);
236 VERIFY (a
!= d128
); VERIFY (d128
!= a
);
242 bool test
__attribute__((unused
)) = true;
270 bool test
__attribute__((unused
)) = true;
273 a
= si
; VERIFY (a
<= si
); VERIFY (si
<= a
);
274 a
= ui
; VERIFY (a
<= ui
); VERIFY (ui
<= a
);
275 a
= sl
; VERIFY (a
<= sl
); VERIFY (sl
<= a
);
276 a
= ul
; VERIFY (a
<= ul
); VERIFY (ul
<= a
);
277 a
= sll
; VERIFY (a
<= sll
); VERIFY (sll
<= a
);
278 a
= ull
; VERIFY (a
<= ull
); VERIFY (ull
<= a
);
279 a
= d32
; VERIFY (a
<= d32
); VERIFY (d32
<= a
);
280 a
= (decimal32
)d64
; VERIFY (a
<= d64
); VERIFY (d64
<= a
);
281 a
= (decimal32
)d128
; VERIFY (a
<= d128
); VERIFY (d128
<= a
);
309 bool test
__attribute__((unused
)) = true;
337 bool test
__attribute__((unused
)) = true;
340 a
= si
; VERIFY (a
>= si
); VERIFY (si
<= a
);
341 a
= ui
; VERIFY (a
>= ui
); VERIFY (ui
<= a
);
342 a
= sl
; VERIFY (a
>= sl
); VERIFY (sl
<= a
);
343 a
= ul
; VERIFY (a
>= ul
); VERIFY (ul
<= a
);
344 a
= sll
; VERIFY (a
>= sll
); VERIFY (sll
<= a
);
345 a
= ull
; VERIFY (a
>= ull
); VERIFY (ull
<= a
);
346 a
= d32
; VERIFY (a
>= d32
); VERIFY (d32
<= a
);
347 a
= (decimal32
)d64
; VERIFY (a
>= d64
); VERIFY (d64
<= a
);
348 a
= (decimal32
)d128
; VERIFY (a
>= d128
); VERIFY (d128
<= a
);
374 compare_eq_128 (void)
376 bool test
__attribute__((unused
)) = true;
379 a
= si
; VERIFY (a
== si
); VERIFY (si
== a
);
380 a
= ui
; VERIFY (a
== ui
); VERIFY (ui
== a
);
381 a
= sl
; VERIFY (a
== sl
); VERIFY (sl
== a
);
382 a
= ul
; VERIFY (a
== ul
); VERIFY (ul
== a
);
383 a
= sll
; VERIFY (a
== sll
); VERIFY (sll
== a
);
384 a
= ull
; VERIFY (a
== ull
); VERIFY (ull
== a
);
385 a
= d32
; VERIFY (a
== d32
); VERIFY (d32
== a
);
386 a
= d64
; VERIFY (a
== d64
); VERIFY (d64
== a
);
387 a
= d128
; VERIFY (a
== d128
); VERIFY (d128
== a
);
391 compare_ne_128 (void)
393 bool test
__attribute__((unused
)) = true;
396 VERIFY (a
!= si
); VERIFY (si
!= a
);
397 VERIFY (a
!= ui
); VERIFY (ui
!= a
);
398 VERIFY (a
!= sl
); VERIFY (sl
!= a
);
399 VERIFY (a
!= ul
); VERIFY (ul
!= a
);
400 VERIFY (a
!= sll
); VERIFY (sll
!= a
);
401 VERIFY (a
!= ull
); VERIFY (ull
!= a
);
402 VERIFY (a
!= d32
); VERIFY (d32
!= a
);
403 VERIFY (a
!= d64
); VERIFY (d64
!= a
);
404 VERIFY (a
!= d128
); VERIFY (d128
!= a
);
408 compare_lt_128 (void)
410 bool test
__attribute__((unused
)) = true;
436 compare_le_128 (void)
438 bool test
__attribute__((unused
)) = true;
441 a
= si
; VERIFY (a
<= si
); VERIFY (si
<= a
);
442 a
= ui
; VERIFY (a
<= ui
); VERIFY (ui
<= a
);
443 a
= sl
; VERIFY (a
<= sl
); VERIFY (sl
<= a
);
444 a
= ul
; VERIFY (a
<= ul
); VERIFY (ul
<= a
);
445 a
= sll
; VERIFY (a
<= sll
); VERIFY (sll
<= a
);
446 a
= ull
; VERIFY (a
<= ull
); VERIFY (ull
<= a
);
447 a
= d32
; VERIFY (a
<= d32
); VERIFY (d32
<= a
);
448 a
= (decimal32
)d64
; VERIFY (a
<= d64
); VERIFY (d64
<= a
);
449 a
= (decimal32
)d128
; VERIFY (a
<= d128
); VERIFY (d128
<= a
);
475 compare_gt_128 (void)
477 bool test
__attribute__((unused
)) = true;
503 compare_ge_128 (void)
505 bool test
__attribute__((unused
)) = true;
508 a
= si
; VERIFY (a
>= si
); VERIFY (si
<= a
);
509 a
= ui
; VERIFY (a
>= ui
); VERIFY (ui
<= a
);
510 a
= sl
; VERIFY (a
>= sl
); VERIFY (sl
<= a
);
511 a
= ul
; VERIFY (a
>= ul
); VERIFY (ul
<= a
);
512 a
= sll
; VERIFY (a
>= sll
); VERIFY (sll
<= a
);
513 a
= ull
; VERIFY (a
>= ull
); VERIFY (ull
<= a
);
514 a
= d32
; VERIFY (a
>= d32
); VERIFY (d32
<= a
);
515 a
= (decimal32
)d64
; VERIFY (a
>= d64
); VERIFY (d64
<= a
);
516 a
= (decimal32
)d128
; VERIFY (a
>= d128
); VERIFY (d128
<= a
);