1 /* PR middle-end/35691 */
3 /* { dg-options "-O2" } */
5 __attribute__((noinline
, noclone
)) int
6 foo (int *p
, unsigned long long *q
)
8 int p0
= p
[0], p10
= p
[10], p12
= p
[12], p32
= p
[32], p77
= p
[77], p85
= p
[85], p86
= p
[86], p97
= p
[97], p98
= p
[98];
9 unsigned long long q0
= q
[0], q10
= q
[10], q12
= q
[12], q32
= q
[32], q77
= q
[77], q85
= q
[85], q86
= q
[86], q97
= q
[97], q98
= q
[98];
10 return p0
== 0 && q0
== -1 && p10
== 0 && q10
== -1 && p12
== 0 && q12
== -1
11 && p32
== 0 && q32
== -1 && p77
== 0 && q77
== -1 && p85
== 0 && q85
== -1
12 && p86
== 0 && q86
== -1 && p97
== 0 && q97
== -1 && p98
== 0 && q98
== -1;
15 __attribute__((noinline
, noclone
)) int
16 bar (int *p
, unsigned long long *q
)
18 int p0
= p
[0], p10
= p
[10], p12
= p
[12], p32
= p
[32], p77
= p
[77], p85
= p
[85], p86
= p
[86], p97
= p
[97], p98
= p
[98];
19 unsigned long long q0
= q
[0], q10
= q
[10], q12
= q
[12], q32
= q
[32], q77
= q
[77], q85
= q
[85], q86
= q
[86], q97
= q
[97], q98
= q
[98];
20 return p0
!= 0 | q0
!= -1 | p10
!= 0 | q10
!= -1 | p12
!= 0 | q12
!= -1
21 | p32
!= 0 | q32
!= -1 | p77
!= 0 | q77
!= -1 | p85
!= 0 | q85
!= -1
22 | p86
!= 0 | q86
!= -1 | p97
!= 0 | q97
!= -1 | p98
!= 0 | q98
!= -1;
26 unsigned long long q
[100];
32 for (i
= 0; i
< 100; i
++)
37 asm volatile ("" : : "g" (p
), "g" (q
) : "memory");
38 if (foo (p
, q
) != 1 || bar (p
, q
) != 0)
40 for (i
= 0; i
< 100; i
++)
62 if (f1
!= 0 || b1
!= 1 || f2
!= 0 || b2
!= 1)
66 if (f1
!= 1 || b1
!= 0 || f2
!= 1 || b2
!= 0)