Small ChangeLog tweak.
[official-gcc.git] / gcc / testsuite / gcc.c-torture / execute / pr37780.c
bloba9eca68786ec8bbf98f010da22302d7c0297a766
1 /* PR middle-end/37780. */
3 #define VAL (8 * sizeof (int))
5 int __attribute__ ((noinline, noclone))
6 fooctz (int i)
8 return (i == 0) ? VAL : __builtin_ctz (i);
11 int __attribute__ ((noinline, noclone))
12 fooctz2 (int i)
14 return (i != 0) ? __builtin_ctz (i) : VAL;
17 unsigned int __attribute__ ((noinline, noclone))
18 fooctz3 (unsigned int i)
20 return (i > 0) ? __builtin_ctz (i) : VAL;
23 int __attribute__ ((noinline, noclone))
24 fooclz (int i)
26 return (i == 0) ? VAL : __builtin_clz (i);
29 int __attribute__ ((noinline, noclone))
30 fooclz2 (int i)
32 return (i != 0) ? __builtin_clz (i) : VAL;
35 unsigned int __attribute__ ((noinline, noclone))
36 fooclz3 (unsigned int i)
38 return (i > 0) ? __builtin_clz (i) : VAL;
41 int
42 main (void)
44 if (fooctz (0) != VAL || fooctz2 (0) != VAL || fooctz3 (0) != VAL
45 || fooclz (0) != VAL || fooclz2 (0) != VAL || fooclz3 (0) != VAL)
46 __builtin_abort ();
48 return 0;