/* PR tree-optimization/94734 */ __attribute__((noipa)) int foo (int n) { int arr[16], s = 0; for (int i = 0; i < n; i++) { if (i < 16) arr[i] = i; } for (int i = 0; i < 16; i++) s += arr[i]; return s; } __attribute__((noipa)) int bar (int n, int x, unsigned long y, unsigned long z) { int arr[16], s = 0; arr[4] = 42; for (int i = 0; i < n; i++) { if (x == (i & 0x25)) arr[y] = i; } return arr[z]; } __attribute__((noipa)) int baz (int n, int x, unsigned long z) { int arr[16], s = 0; arr[12] = 42; for (int i = 0; i < n; i++) { if (x == (i & 0x25)) arr[7] = i; } return arr[z]; } int main () { if (foo (10374) != 15 * 16 / 2) __builtin_abort (); if (bar (25, 0x25, (unsigned long) 0xdeadbeefbeefdeadULL, 4) != 42) __builtin_abort (); if (bar (25, 4, 15, 15) != 22) __builtin_abort (); if (baz (25, 0x25, 12) != 42) __builtin_abort (); if (baz (25, 4, 7) != 22) __builtin_abort (); if (baz (25, 4, 12) != 42) __builtin_abort (); return 0; }