Require target lra in gcc.dg/pr108095.c
[official-gcc.git] / gcc / testsuite / gcc.dg / pr84614.c
blob98af26ba4e5293e0d903d60a871f59c2666d6b45
1 /* PR target/84614 */
2 /* { dg-do run { target int128 } } */
3 /* { dg-options "-Og -fno-split-wide-types -fno-tree-coalesce-vars -g --param=max-combine-insns=3 -fcompare-debug" } */
5 unsigned __int128 a;
7 unsigned __int128
8 b (unsigned short c, unsigned int d)
10 unsigned long long e;
11 __builtin_sub_overflow (0, d, &e);
12 e >>= c;
13 c ^= 65535;
14 d ^= 824;
15 return c + a + d + e;
18 int
19 main ()
21 unsigned __int128 x = b (0, 9);
22 if (__SIZEOF_INT__ * __CHAR_BIT__ == 32
23 && __SIZEOF_LONG_LONG__ * __CHAR_BIT__ == 64
24 && __SIZEOF_INT128__ * __CHAR_BIT__ == 128
25 && x != (((unsigned __int128) 1 << 64) | 0x10327))
26 __builtin_abort ();
27 return 0;