2018-04-09 Richard Biener <rguenther@suse.de>
[official-gcc.git] / gcc / testsuite / gcc.dg / pr83424.c
blob5a304f5029234f209166787d07eb076d79f6ec24
1 /* PR rtl-optimization/83424 */
2 /* { dg-do run { target int128 } } */
3 /* { dg-options "-O -fno-tree-ccp -fno-tree-coalesce-vars" } */
5 typedef unsigned char u8;
6 typedef unsigned int u32;
7 typedef unsigned __int128 u128;
9 u32 a, c;
10 u8 b;
12 static u128 __attribute__ ((noinline, noclone))
13 foo (u128 p)
15 u8 x = ~b;
16 p &= c;
17 x *= -p;
18 x &= a == 0;
19 x >>= 1;
20 return p + x;
23 int
24 main (void)
26 u128 x = foo (0);
27 if (x != 0)
28 __builtin_abort ();
29 return 0;