1 /* PR tree-optimization/94734 */
2
3 __attribute__((noipa)) int
foo(int n)4 foo (int n)
5 {
6 int arr[16], s = 0;
7 for (int i = 0; i < n; i++)
8 {
9 if (i < 16)
10 arr[i] = i;
11 }
12 for (int i = 0; i < 16; i++)
13 s += arr[i];
14 return s;
15 }
16
17 __attribute__((noipa)) int
bar(int n,int x,unsigned long y,unsigned long z)18 bar (int n, int x, unsigned long y, unsigned long z)
19 {
20 int arr[16], s = 0;
21 arr[4] = 42;
22 for (int i = 0; i < n; i++)
23 {
24 if (x == (i & 0x25))
25 arr[y] = i;
26 }
27 return arr[z];
28 }
29
30 __attribute__((noipa)) int
baz(int n,int x,unsigned long z)31 baz (int n, int x, unsigned long z)
32 {
33 int arr[16], s = 0;
34 arr[12] = 42;
35 for (int i = 0; i < n; i++)
36 {
37 if (x == (i & 0x25))
38 arr[7] = i;
39 }
40 return arr[z];
41 }
42
43 int
main()44 main ()
45 {
46 if (foo (10374) != 15 * 16 / 2)
47 __builtin_abort ();
48 if (bar (25, 0x25, (unsigned long) 0xdeadbeefbeefdeadULL, 4) != 42)
49 __builtin_abort ();
50 if (bar (25, 4, 15, 15) != 22)
51 __builtin_abort ();
52 if (baz (25, 0x25, 12) != 42)
53 __builtin_abort ();
54 if (baz (25, 4, 7) != 22)
55 __builtin_abort ();
56 if (baz (25, 4, 12) != 42)
57 __builtin_abort ();
58 return 0;
59 }
60