2 /* { dg-options "-O2 -fno-reorder-blocks" } */
3 /* { dg-skip-if "limited code space" { pdp11-*-* } } */
4 /* { dg-timeout-factor 4.0 { target hppa*-*-* } } */
8 __attribute__((noinline
, noclone
)) int
14 __attribute__((noinline
, noclone
)) void
15 do_nothing (int *input
)
17 *input
= restore (*input
, 1);
21 #define CASE_ENTRY(n) \
23 sum = sum / (n + 1); \
24 sum = restore (sum, n + 1); \
25 if (sum == (n + addend)) \
27 sum = sum / (n + 2); \
28 sum = restore (sum, n + 2); \
29 sum = sum / (n + 3); \
30 sum = restore (sum, n + 3); \
31 sum = sum / (n + 4); \
32 sum = restore (sum, n + 4); \
33 sum = sum / (n + 5); \
34 sum = restore (sum, n + 5); \
35 sum = sum / (n + 6); \
36 sum = restore (sum, n + 6); \
37 sum = sum / (n + 7); \
38 sum = restore (sum, n + 7); \
39 sum = sum / (n + 8); \
40 sum = restore (sum, n + 8); \
41 sum = sum / (n + 9); \
42 sum = restore (sum, n + 9); \
43 sum = sum / (n + 10); \
44 sum = restore (sum, n + 10); \
45 sum = sum / (n + 11); \
46 sum = restore (sum, n + 11); \
47 sum = sum / (n + 12); \
48 sum = restore (sum, n + 12); \
49 sum = sum / (n + 13); \
50 sum = restore (sum, n + 13); \
51 sum = sum / (n + 14); \
52 sum = restore (sum, n + 14); \
53 sum = sum / (n + 15); \
54 sum = restore (sum, n + 15); \
55 sum = sum / (n + 16); \
56 sum = restore (sum, n + 16); \
57 sum = sum / (n + 17); \
58 sum = restore (sum, n + 17); \
59 sum = sum / (n + 18); \
60 sum = restore (sum, n + 18); \
61 sum = sum / (n + 19); \
62 sum = restore (sum, n + 19); \
63 sum = sum / (n + 20); \
64 sum = restore (sum, n + 20); \
65 sum = sum / (n + 21); \
66 sum = restore (sum, n + 21); \
67 sum = sum / (n + 22); \
68 sum = restore (sum, n + 22); \
69 sum = sum / (n + 23); \
70 sum = restore (sum, n + 23); \
71 sum = sum / (n + 24); \
72 sum = restore (sum, n + 24); \
73 sum = sum / (n + 25); \
74 sum = restore (sum, n + 25); \
75 sum = sum / (n + 26); \
76 sum = restore (sum, n + 26); \
77 sum = sum / (n + 27); \
78 sum = restore (sum, n + 27); \
79 sum = sum / (n + 28); \
80 sum = restore (sum, n + 28); \
81 sum = sum / (n + 29); \
82 sum = restore (sum, n + 29); \
83 sum = sum / (n + 30); \
84 sum = restore (sum, n + 30); \
85 sum = sum / (n + 31); \
86 sum = restore (sum, n + 31); \
87 sum = sum / (n + 32); \
88 sum = restore (sum, n + 32); \
89 sum = sum / (n + 33); \
90 sum = restore (sum, n + 33); \
91 sum = sum / (n + 34); \
92 sum = restore (sum, n + 34); \
93 sum = sum / (n + 35); \
94 sum = restore (sum, n + 35); \
95 sum = sum / (n + 36); \
96 sum = restore (sum, n + 36); \
99 __attribute__((noinline
, noclone
)) long long
100 test_and_branch (int selector
, int addend
)
102 long long sum
= selector
+ 1;
179 do_nothing ((int *)&sum
);
189 main (int argc
, char **argv
)
191 long long ret
= test_and_branch (64, 1);
195 ret
= test_and_branch (7, 1);