Fix ICE in substring-handling building 502.gcc_r (PR 87562)
[official-gcc.git] / gcc / testsuite / gcc.dg / pr83393.c
bloba9a6b338e0bddb0d4f1827d9d967d634f6897fe8
1 /* PR rtl-optimization/83393 */
2 /* { dg-do run } */
3 /* { dg-options "-O2 -fno-forward-propagate -fno-tree-bit-ccp" } */
5 typedef unsigned char u8;
6 typedef unsigned short u16;
7 typedef unsigned int u32;
8 typedef unsigned long long u64;
10 u32 a, d;
11 u64 b;
12 u8 c;
14 static u64 __attribute__ ((noinline, noclone))
15 foo (u16 f, u64 g)
17 f <<= 15;
18 f *= d;
19 f -= g %= 44;
20 f <<= f <= g;
21 c = 255;
22 c >>= (u8) f == 0;
23 f *= g;
24 c -= ~c;
25 return f + a + b + f;
28 int
29 main (void)
31 #if (__SIZEOF_LONG_LONG__ == 8 && __SIZEOF_INT__ == 4 \
32 && __SIZEOF_SHORT__ == 2 && __CHAR_BIT__ == 8)
33 u64 x = foo (3, 0xE6C0011BBA6DBD7LL);
34 if (x != 0x1f66e)
35 __builtin_abort ();
36 #endif
37 return 0;