1 /* PR target/95252 */
2 /* { dg-options "-funroll-loops -msave-restore" } */
3 /* { dg-do run } */
4 /* { dg-skip-if "" { *-*-* } { "-O0" } } */
5
6 int a[6], b = 1, d, e;
7 long long c;
8 static int f = 1;
9
10 void
11 fn1 (int p1)
12 {
13 b = (b >> 1) & (1 ^ a[(1 ^ p1) & 5]);
14 }
15
16 void
17 fn2 ()
18 {
19 b = (b >> 1) & (1 ^ a[(b ^ 1) & 1]);
20 fn1 (c >> 1 & 5);
21 fn1 (c >> 2 & 5);
22 fn1 (c >> 4 & 5);
23 fn1 (c >> 8 & 5);
24 }
25
26 int
27 main ()
28 {
29 int i, j;
30 for (; d;)
31 {
32 for (; e;)
33 fn2 ();
34 f = 0;
35 }
36 for (i = 0; i < 8; i++)
37 {
38 if (f)
39 i = 9;
40 for (j = 0; j < 7; j++)
41 fn2 ();
42 }
43
44 if (b != 0)
45 __builtin_abort ();
46
47 return 0;
48 }