2 /* { dg-do run { target int128 } } */
3 /* { dg-options "-O2" } */
5 __attribute__((noipa
)) unsigned __int128
6 foo (unsigned long long x
, unsigned long long y
, unsigned long long z
, unsigned long long u
, unsigned long long v
, unsigned long long w
)
8 unsigned __int128 r
, d
;
9 r
= ((unsigned __int128
) x
* u
);
10 d
= ((unsigned __int128
) y
* w
);
12 d
= ((unsigned __int128
) z
* v
);
20 if (__CHAR_BIT__
!= 8 || __SIZEOF_LONG_LONG__
!= 8 || __SIZEOF_INT128__
!= 16)
22 unsigned __int128 x
= foo (0x3efe88da491ULL
, 0xd105e9b4a44ULL
, 0x4efa677b3dbULL
, 0x42c052bac7bULL
, 0x99638a13199cULL
, 0x56b640d064ULL
);
23 if ((unsigned long long) (x
>> 64) != 0x000000000309ff93ULL
24 || (unsigned long long) x
!= 0xbd5c98fdf2bdbcafULL
)