2 /* { dg-require-effective-target avx512f } */
3 /* { dg-options "-O3 -mavx512f" } */
7 #include "avx512f-check.h"
10 float vf1
[N
], vf2
[2*N
+16];
11 double vd1
[N
], vd2
[2*N
+16];
12 int vi1
[N
], vi2
[2*N
+16], k
[N
];
13 long vl1
[N
], vl2
[2*N
+16], l
[N
];
15 __attribute__((noinline
, noclone
)) void
19 for (i
= 0; i
< N
; i
++)
23 __attribute__((noinline
, noclone
)) void
27 for (i
= 0; i
< N
; i
++)
31 __attribute__((noinline
, noclone
)) void
35 for (i
= 0; i
< N
; i
++)
36 vf2
[k
[i
] + x
] = vf1
[i
];
39 __attribute__((noinline
, noclone
)) void
43 for (i
= 0; i
< N
; i
++)
44 vi2
[k
[i
] + x
] = vi1
[i
];
47 __attribute__((noinline
, noclone
)) void
51 for (i
= 0; i
< N
; i
++)
55 __attribute__((noinline
, noclone
)) void
59 for (i
= 0; i
< N
; i
++)
63 __attribute__((noinline
, noclone
)) void
67 for (i
= 0; i
< N
; i
++)
68 vd2
[k
[i
] + x
] = vd1
[i
];
71 __attribute__((noinline
, noclone
)) void
75 for (i
= 0; i
< N
; i
++)
76 vl2
[k
[i
] + x
] = vl1
[i
];
79 __attribute__((noinline
, noclone
)) void
83 for (i
= 0; i
< N
; i
++)
87 __attribute__((noinline
, noclone
)) void
91 for (i
= 0; i
< N
; i
++)
95 __attribute__((noinline
, noclone
)) void
99 for (i
= 0; i
< N
; i
++)
100 vf2
[l
[i
] + x
] = vf1
[i
];
103 __attribute__((noinline
, noclone
)) void
107 for (i
= 0; i
< N
; i
++)
108 vi2
[l
[i
] + x
] = vi1
[i
];
111 __attribute__((noinline
, noclone
)) void
115 for (i
= 0; i
< N
; i
++)
119 __attribute__((noinline
, noclone
)) void
123 for (i
= 0; i
< N
; i
++)
127 __attribute__((noinline
, noclone
)) void
131 for (i
= 0; i
< N
; i
++)
132 vd2
[l
[i
] + x
] = vd1
[i
];
135 __attribute__((noinline
, noclone
)) void
139 for (i
= 0; i
< N
; i
++)
140 vl2
[l
[i
] + x
] = vl1
[i
];
148 for (i
= 0; i
< N
; i
++)
156 for (i
= 0; i
< N
; i
++)
159 k
[i
] = (i
% 2) ? (N
/ 2 + i
) : (N
/ 2 - i
/ 2);
160 l
[i
] = 2 * i
+ i
% 2;
165 for (i
= 0; i
< N
; i
++)
166 if (vf2
[(i
% 2) ? (N
/ 2 + i
) : (N
/ 2 - i
/ 2)] != i
+ 17
167 || vi2
[(i
% 2) ? (N
/ 2 + i
) : (N
/ 2 - i
/ 2)] != i
+ 21)
172 for (i
= 0; i
< N
; i
++)
173 if (vf2
[((i
% 2) ? (N
/ 2 + i
) : (N
/ 2 - i
/ 2)) + 12] != i
+ 17
174 || vi2
[((i
% 2) ? (N
/ 2 + i
) : (N
/ 2 - i
/ 2)) + 14] != i
+ 21)
179 for (i
= 0; i
< N
; i
++)
180 if (vd2
[(i
% 2) ? (N
/ 2 + i
) : (N
/ 2 - i
/ 2)] != i
+ 19
181 || vl2
[(i
% 2) ? (N
/ 2 + i
) : (N
/ 2 - i
/ 2)] != i
+ 23)
186 for (i
= 0; i
< N
; i
++)
187 if (vd2
[((i
% 2) ? (N
/ 2 + i
) : (N
/ 2 - i
/ 2)) + 7] != i
+ 19
188 || vl2
[((i
% 2) ? (N
/ 2 + i
) : (N
/ 2 - i
/ 2)) + 9] != i
+ 23)
193 for (i
= 0; i
< N
; i
++)
194 if (vf2
[2 * i
+ i
% 2] != i
+ 17
195 || vi2
[2 * i
+ i
% 2] != i
+ 21)
200 for (i
= 0; i
< N
; i
++)
201 if (vf2
[2 * i
+ i
% 2 + 2] != i
+ 17
202 || vi2
[2 * i
+ i
% 2 + 4] != i
+ 21)
207 for (i
= 0; i
< N
; i
++)
208 if (vd2
[2 * i
+ i
% 2] != i
+ 19
209 || vl2
[2 * i
+ i
% 2] != i
+ 23)
214 for (i
= 0; i
< N
; i
++)
215 if (vd2
[2 * i
+ i
% 2 + 13] != i
+ 19
216 || vl2
[2 * i
+ i
% 2 + 15] != i
+ 23)