2 /* Test non-canonical BID significands. */
3 /* { dg-do run { target { int128 && bitint } } } */
4 /* { dg-options "-O2 -std=gnu2x" } */
5 /* { dg-require-effective-target dfp_bid } */
16 unsigned long long int u
;
22 unsigned long long int u
[2];
28 volatile union U32 u32
;
29 u32
.d
= 0.9999999e+27DF
;
31 volatile union U64 u64
;
32 u64
.d
= 0.9999999999999999e+90DD
;
34 volatile union U128 u128
;
35 u128
.d
= 0.9999999999999999999999999999999999e+39DL
;
36 if (u128
.u
[0] == 0x378d8e63ffffffffULL
)
38 else if (u128
.u
[1] == 0x378d8e63ffffffffULL
)
42 if ((__int128
) u32
.d
!= 0
43 || (unsigned __int128
) u32
.d
!= 0U
44 || (__int128
) u64
.d
!= 0
45 || (unsigned __int128
) u64
.d
!= 0U
46 || (__int128
) u128
.d
!= 0
47 || (unsigned __int128
) u128
.d
!= 0U)
50 u64
.u
= 0xe3ffffffffffffffULL
;
51 if (u128
.u
[0] == 0x378d8e6400000000ULL
)
54 u128
.u
[1] = 0xe1be7fffffffffffULL
;
56 else if (u128
.u
[1] == 0x378d8e6400000000ULL
)
59 u128
.u
[0] = 0xe1be7fffffffffffULL
;
61 if ((__int128
) u32
.d
!= 0
62 || (unsigned __int128
) u32
.d
!= 0U
63 || (__int128
) u64
.d
!= 0
64 || (unsigned __int128
) u64
.d
!= 0U
65 || (__int128
) u128
.d
!= 0
66 || (unsigned __int128
) u128
.d
!= 0U)
68 if (u128
.u
[0] == -1ULL)
71 u128
.u
[1] = 0xe629800000000000ULL
;
73 else if (u128
.u
[1] == -1ULL)
76 u128
.u
[0] = 0xe629800000000000ULL
;
78 if ((__int128
) u128
.d
!= 0
79 || (unsigned __int128
) u128
.d
!= 0U)