1 /* PR tree-optimization/63641 */
2 
3 __attribute__ ((noinline, noclone)) int
foo(unsigned char b)4 foo (unsigned char b)
5 {
6   if (0x0 <= b && b <= 0x8)
7     goto lab;
8   if (b == 0x0b)
9     goto lab;
10   if (0x0e <= b && b <= 0x1a)
11     goto lab;
12   if (0x1c <= b && b <= 0x1f)
13     goto lab;
14   return 0;
15 lab:
16   return 1;
17 }
18 
19 __attribute__ ((noinline, noclone)) int
bar(unsigned char b)20 bar (unsigned char b)
21 {
22   if (0x0 <= b && b <= 0x8)
23     goto lab;
24   if (b == 0x0b)
25     goto lab;
26   if (0x0e <= b && b <= 0x1a)
27     goto lab;
28   if (0x3c <= b && b <= 0x3f)
29     goto lab;
30   return 0;
31 lab:
32   return 1;
33 }
34 
35 char tab1[] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1,
36 		1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1 };
37 char tab2[] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1,
38 		1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
39 		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
40 		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1 };
41 
42 int
main()43 main ()
44 {
45   int i;
46   asm volatile ("" : : : "memory");
47   for (i = 0; i < 256; i++)
48     if (foo (i) != (i < 32 ? tab1[i] : 0))
49       __builtin_abort ();
50   for (i = 0; i < 256; i++)
51     if (bar (i) != (i < 64 ? tab2[i] : 0))
52       __builtin_abort ();
53   return 0;
54 }
55