libcpp, c, middle-end: Optimize initializers using #embed in C
[official-gcc.git] / gcc / testsuite / gcc.dg / tree-ssa / pr95527-2.c
blobb4ae2beeb08cf9ed765659208c876d227f81dfd0
1 /* PR tree-optimization/95527 */
2 /* { dg-do compile } */
3 /* { dg-options "-O2 -fdump-tree-original" } */
4 /* { dg-final { scan-tree-dump "a & 7\\) == 0" "original" } } */
5 /* { dg-final { scan-tree-dump "b & 63\\) != 0" "original" } } */
6 /* { dg-final { scan-tree-dump-times "return 0;" 2 "original" } } */
7 /* { dg-final { scan-tree-dump-times "return 1;" 2 "original" } } */
8 /* { dg-final { scan-tree-dump "g & 15\\) == 8" "original" } } */
9 /* { dg-final { scan-tree-dump "h & 255\\) != 128" "original" } } */
11 int
12 f1 (int a)
14 return __builtin_ctz (a) >= 3;
17 int
18 f2 (int b)
20 return __builtin_ctz (b) < 6;
23 int
24 f3 (int c)
26 return __builtin_ctz (c) < 0;
29 int
30 f4 (int d)
32 return __builtin_ctz (d) >= 0;
35 int
36 f5 (int e)
38 return __builtin_ctz (e) >= __SIZEOF_INT__ * __CHAR_BIT__;
41 int
42 f6 (int f)
44 return __builtin_ctz (f) < __SIZEOF_INT__ * __CHAR_BIT__;
47 int
48 f7 (int g)
50 return __builtin_ctz (g) == 3;
53 int
54 f8 (int h)
56 return __builtin_ctz (h) != 7;