Fold ctz(-x) and ctz(abs(x)) as ctz(x) in match.pd.
[official-gcc.git] / gcc / testsuite / gcc.dg / dfp / bid-non-canonical-d128-1.c
blob641d418ba5f1975d314f03bae7c5717c00cd311c
1 /* Test non-canonical BID significands: _Decimal128. Bug 91226. */
2 /* { dg-do run { target { lp64 && dfprt } } } */
3 /* { dg-require-effective-target dfp_bid } */
4 /* { dg-options "-std=gnu23 -O2" } */
6 extern void abort (void);
7 extern void exit (int);
9 union u
11 _Decimal128 d128;
12 unsigned __int128 u128;
15 #define U128(hi, lo) (((unsigned __int128) lo) \
16 | (((unsigned __int128) hi) << 64))
18 int
19 main (void)
21 unsigned __int128 i = U128 (0x3041ed09bead87c0ULL, 0x378d8e6400000001ULL);
22 union u x;
23 _Decimal128 d128;
24 x.u128 = i;
25 d128 = x.d128;
26 volatile double d = d128;
27 if (d == 0)
28 exit (0);
29 else
30 abort ();