3 /* { dg-options "-O2 -funroll-loops" } */
5 extern void abort (void);
6 unsigned long int s
[24]
7 = { 12, ~1, 12, ~2, 12, ~4, 12, ~8, 12, ~16, 12, ~32,
8 12, ~64, 12, ~128, 12, ~256, 12, ~512, 12, ~1024, 12, ~2048 };
9 struct { int n
; unsigned long *e
[12]; } g
10 = { 12, { &s
[0], &s
[2], &s
[4], &s
[6], &s
[8], &s
[10], &s
[12], &s
[14],
11 &s
[16], &s
[18], &s
[20], &s
[22] } };
14 __attribute__((noinline
, noclone
)) void
18 for (i
= 0; i
< g
.n
; i
++)
19 for (j
= 0; j
< g
.n
; j
++)
21 if (i
== j
&& j
< g
.e
[0][0] && (g
.e
[i
][1] & (1UL << j
)))
23 if (j
< g
.e
[0][0] && (g
.e
[i
][1] & (1UL << j
)))
32 asm volatile ("" : "+m" (s
), "+m" (g
), "+m" (c
));
34 for (i
= 0; i
< 12; i
++)