2 /* { dg-require-effective-target avx2 } */
3 /* { dg-options "-O3 -mavx2" } */
5 #include "avx2-check.h"
8 float vf1
[N
+16], vf2
[N
];
9 double vd1
[N
+16], vd2
[N
];
14 __attribute__((noinline
, noclone
)) void
18 for (i
= 0; i
< N
; i
++)
22 __attribute__((noinline
, noclone
)) void
26 for (i
= 0; i
< N
; i
++)
27 n
[i
] = (int) vf1
[k
[i
]];
30 __attribute__((noinline
, noclone
)) void
34 for (i
= 0; i
< N
; i
++)
35 vf2
[i
] = vf1
[k
[i
] + x
];
38 __attribute__((noinline
, noclone
)) void
42 for (i
= 0; i
< N
; i
++)
43 n
[i
] = (int) vf1
[k
[i
] + x
];
46 __attribute__((noinline
, noclone
)) void
50 for (i
= 0; i
< N
; i
++)
54 __attribute__((noinline
, noclone
)) void
58 for (i
= 0; i
< N
; i
++)
59 n
[i
] = (int) vd1
[k
[i
]];
62 __attribute__((noinline
, noclone
)) void
66 for (i
= 0; i
< N
; i
++)
67 vd2
[i
] = vd1
[k
[i
] + x
];
70 __attribute__((noinline
, noclone
)) void
74 for (i
= 0; i
< N
; i
++)
75 n
[i
] = (int) vd1
[k
[i
] + x
];
78 __attribute__((noinline
, noclone
)) void
82 for (i
= 0; i
< N
; i
++)
86 __attribute__((noinline
, noclone
)) void
90 for (i
= 0; i
< N
; i
++)
91 n
[i
] = (int) vf1
[l
[i
]];
94 __attribute__((noinline
, noclone
)) void
98 for (i
= 0; i
< N
; i
++)
99 vf2
[i
] = vf1
[l
[i
] + x
];
102 __attribute__((noinline
, noclone
)) void
106 for (i
= 0; i
< N
; i
++)
107 n
[i
] = (int) vf1
[l
[i
] + x
];
110 __attribute__((noinline
, noclone
)) void
114 for (i
= 0; i
< N
; i
++)
118 __attribute__((noinline
, noclone
)) void
122 for (i
= 0; i
< N
; i
++)
123 n
[i
] = (int) vd1
[l
[i
]];
126 __attribute__((noinline
, noclone
)) void
130 for (i
= 0; i
< N
; i
++)
131 vd2
[i
] = vd1
[l
[i
] + x
];
134 __attribute__((noinline
, noclone
)) void
138 for (i
= 0; i
< N
; i
++)
139 n
[i
] = (int) vd1
[l
[i
] + x
];
147 for (i
= 0; i
< N
+ 16; i
++)
153 for (i
= 0; i
< N
; i
++)
156 k
[i
] = (i
* 731) & (N
- 1);
157 l
[i
] = (i
* 657) & (N
- 1);
162 for (i
= 0; i
< N
; i
++)
163 if (vf2
[i
] != ((i
* 731) & (N
- 1)) + 17
164 || n
[i
] != ((i
* 731) & (N
- 1)) + 17)
169 for (i
= 0; i
< N
; i
++)
170 if (vf2
[i
] != ((i
* 731) & (N
- 1)) + 17 + 12
171 || n
[i
] != ((i
* 731) & (N
- 1)) + 17 + 14)
176 for (i
= 0; i
< N
; i
++)
177 if (vd2
[i
] != ((i
* 731) & (N
- 1)) + 19
178 || n
[i
] != ((i
* 731) & (N
- 1)) + 19)
183 for (i
= 0; i
< N
; i
++)
184 if (vd2
[i
] != ((i
* 731) & (N
- 1)) + 19 + 7
185 || n
[i
] != ((i
* 731) & (N
- 1)) + 19 + 9)
190 for (i
= 0; i
< N
; i
++)
191 if (vf2
[i
] != ((i
* 657) & (N
- 1)) + 17
192 || n
[i
] != ((i
* 657) & (N
- 1)) + 17)
197 for (i
= 0; i
< N
; i
++)
198 if (vf2
[i
] != ((i
* 657) & (N
- 1)) + 17 + 2
199 || n
[i
] != ((i
* 657) & (N
- 1)) + 17 + 4)
204 for (i
= 0; i
< N
; i
++)
205 if (vd2
[i
] != ((i
* 657) & (N
- 1)) + 19
206 || n
[i
] != ((i
* 657) & (N
- 1)) + 19)
211 for (i
= 0; i
< N
; i
++)
212 if (vd2
[i
] != ((i
* 657) & (N
- 1)) + 19 + 13
213 || n
[i
] != ((i
* 657) & (N
- 1)) + 19 + 15)