annotate gcc/testsuite/gcc.c-torture/execute/pr87290.c @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
131
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
1 /* PR middle-end/87290 */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
2
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
3 int c;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
4
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
5 __attribute__((noipa)) void
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
6 f0 (void)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
7 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
8 c++;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
9 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
10
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
11 __attribute__((noipa)) int
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
12 f1 (int x)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
13 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
14 return x % 16 == 13;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
15 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
16
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
17 __attribute__((noipa)) int
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
18 f2 (int x)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
19 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
20 return x % 16 == -13;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
21 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
22
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
23 __attribute__((noipa)) void
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
24 f3 (int x)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
25 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
26 if (x % 16 == 13)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
27 f0 ();
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
28 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
29
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
30 __attribute__((noipa)) void
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
31 f4 (int x)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
32 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
33 if (x % 16 == -13)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
34 f0 ();
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
35 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
36
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
37 int
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
38 main ()
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
39 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
40 int i, j;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
41 for (i = -30; i < 30; i++)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
42 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
43 if (f1 (13 + i * 16) != (i >= 0) || f2 (-13 + i * 16) != (i <= 0))
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
44 __builtin_abort ();
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
45 f3 (13 + i * 16);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
46 if (c != (i >= 0))
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
47 __builtin_abort ();
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
48 f4 (-13 + i * 16);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
49 if (c != 1 + (i == 0))
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
50 __builtin_abort ();
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
51 for (j = 1; j < 16; j++)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
52 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
53 if (f1 (13 + i * 16 + j) || f2 (-13 + i * 16 + j))
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
54 __builtin_abort ();
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
55 f3 (13 + i * 16 + j);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
56 f4 (-13 + i * 16 + j);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
57 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
58 if (c != 1 + (i == 0))
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
59 __builtin_abort ();
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
60 c = 0;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
61 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
62 return 0;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
63 }