2 /* { dg-require-effective-target avx512vl } */
3 /* { dg-options "-O3 -mavx512vl" } */
5 #include "avx512vl-check.h"
8 float vf1
[N
+4], vf2
[N
];
9 double vd1
[N
+4], vd2
[N
];
10 int vi1
[N
+4], vi2
[N
], k
[N
];
11 long long vl1
[N
+4], vl2
[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
++)
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 vi2
[i
] = vi1
[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
++)
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 vl2
[i
] = vl1
[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
++)
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 vi2
[i
] = vi1
[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
++)
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 vl2
[i
] = vl1
[l
[i
] + x
];
147 for (i
= 0; i
< N
+ 4; i
++)
155 for (i
= 0; i
< N
; i
++)
158 k
[i
] = (i
* 731) & (N
- 1);
159 l
[i
] = (i
* 657) & (N
- 1);
164 for (i
= 0; i
< N
; i
++)
165 if (vf2
[i
] != ((i
* 731) & (N
- 1)) + 17
166 || vi2
[i
] != ((i
* 731) & (N
- 1)) + 21)
171 for (i
= 0; i
< N
; i
++)
172 if (vf2
[i
] != ((i
* 731) & (N
- 1)) + 17 + 1
173 || vi2
[i
] != ((i
* 731) & (N
- 1)) + 21 + 2)
178 for (i
= 0; i
< N
; i
++)
179 if (vd2
[i
] != ((i
* 731) & (N
- 1)) + 19
180 || vl2
[i
] != ((i
* 731) & (N
- 1)) + 23)
185 for (i
= 0; i
< N
; i
++)
186 if (vd2
[i
] != ((i
* 731) & (N
- 1)) + 19 + 3
187 || vl2
[i
] != ((i
* 731) & (N
- 1)) + 23 + 2)
192 for (i
= 0; i
< N
; i
++)
193 if (vf2
[i
] != ((i
* 657) & (N
- 1)) + 17
194 || vi2
[i
] != ((i
* 657) & (N
- 1)) + 21)
199 for (i
= 0; i
< N
; i
++)
200 if (vf2
[i
] != ((i
* 657) & (N
- 1)) + 17 + 4
201 || vi2
[i
] != ((i
* 657) & (N
- 1)) + 21 + 1)
206 for (i
= 0; i
< N
; i
++)
207 if (vd2
[i
] != ((i
* 657) & (N
- 1)) + 19
208 || vl2
[i
] != ((i
* 657) & (N
- 1)) + 23)
213 for (i
= 0; i
< N
; i
++)
214 if (vd2
[i
] != ((i
* 657) & (N
- 1)) + 19 + 2
215 || vl2
[i
] != ((i
* 657) & (N
- 1)) + 23 + 4)