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];
16 __attribute__((noinline
, noclone
)) void
20 for (i
= 0; i
< N
; i
++)
24 __attribute__((noinline
, noclone
)) void
28 for (i
= 0; i
< N
; i
++)
29 n
[k
[i
]] = (int) vf1
[i
];
32 __attribute__((noinline
, noclone
)) void
36 for (i
= 0; i
< N
; i
++)
37 vf2
[k
[i
] + x
] = vf1
[i
];
40 __attribute__((noinline
, noclone
)) void
44 for (i
= 0; i
< N
; i
++)
45 n
[k
[i
] + x
] = (int) vf1
[i
];
48 __attribute__((noinline
, noclone
)) void
52 for (i
= 0; i
< N
; i
++)
56 __attribute__((noinline
, noclone
)) void
60 for (i
= 0; i
< N
; i
++)
61 n
[k
[i
]] = (int) vd1
[i
];
64 __attribute__((noinline
, noclone
)) void
68 for (i
= 0; i
< N
; i
++)
69 vd2
[k
[i
] + x
] = vd1
[i
];
72 __attribute__((noinline
, noclone
)) void
76 for (i
= 0; i
< N
; i
++)
80 __attribute__((noinline
, noclone
)) void
84 for (i
= 0; i
< N
; i
++)
88 __attribute__((noinline
, noclone
)) void
92 for (i
= 0; i
< N
; i
++)
93 n
[l
[i
]] = (int) vf1
[i
];
96 __attribute__((noinline
, noclone
)) void
100 for (i
= 0; i
< N
; i
++)
101 vf2
[l
[i
] + x
] = vf1
[i
];
104 __attribute__((noinline
, noclone
)) void
108 for (i
= 0; i
< N
; i
++)
109 n
[l
[i
] + x
] = (int) vf1
[i
];
112 __attribute__((noinline
, noclone
)) void
116 for (i
= 0; i
< N
; i
++)
120 __attribute__((noinline
, noclone
)) void
124 for (i
= 0; i
< N
; i
++)
125 n
[l
[i
]] = (int) vd1
[i
];
128 __attribute__((noinline
, noclone
)) void
132 for (i
= 0; i
< N
; i
++)
133 vd2
[l
[i
] + x
] = vd1
[i
];
136 __attribute__((noinline
, noclone
)) void
140 for (i
= 0; i
< N
; i
++)
141 n
[l
[i
] + x
] = (int) vd1
[i
];
149 for (i
= 0; i
< N
; i
++)
155 for (i
= 0; i
< N
; i
++)
158 k
[i
] = (i
% 2) ? (N
/ 2 + i
) : (N
/ 2 - i
/ 2);
159 l
[i
] = 2 * i
+ i
% 2;
164 for (i
= 0; i
< N
; i
++)
165 if (vf2
[(i
% 2) ? (N
/ 2 + i
) : (N
/ 2 - i
/ 2)] != i
+ 17
166 || n
[(i
% 2) ? (N
/ 2 + i
) : (N
/ 2 - i
/ 2)] != i
+ 17)
171 for (i
= 0; i
< N
; i
++)
172 if (vf2
[((i
% 2) ? (N
/ 2 + i
) : (N
/ 2 - i
/ 2)) + 12] != i
+ 17
173 || n
[((i
% 2) ? (N
/ 2 + i
) : (N
/ 2 - i
/ 2)) + 14] != i
+ 17)
178 for (i
= 0; i
< N
; i
++)
179 if (vd2
[(i
% 2) ? (N
/ 2 + i
) : (N
/ 2 - i
/ 2)] != i
+ 19
180 || n
[(i
% 2) ? (N
/ 2 + i
) : (N
/ 2 - i
/ 2)] != i
+ 19)
185 for (i
= 0; i
< N
; i
++)
186 if (vd2
[((i
% 2) ? (N
/ 2 + i
) : (N
/ 2 - i
/ 2)) + 7] != i
+ 19
187 || n
[((i
% 2) ? (N
/ 2 + i
) : (N
/ 2 - i
/ 2)) + 9] != i
+ 19)
192 for (i
= 0; i
< N
; i
++)
193 if (vf2
[2 * i
+ i
% 2] != i
+ 17
194 || n
[2 * i
+ i
% 2] != i
+ 17)
199 for (i
= 0; i
< N
; i
++)
200 if (vf2
[2 * i
+ i
% 2 + 2] != i
+ 17
201 || n
[2 * i
+ i
% 2 + 4] != i
+ 17)
206 for (i
= 0; i
< N
; i
++)
207 if (vd2
[2 * i
+ i
% 2] != i
+ 19
208 || n
[2 * i
+ i
% 2] != i
+ 19)
213 for (i
= 0; i
< N
; i
++)
214 if (vd2
[2 * i
+ i
% 2 + 13] != i
+ 19
215 || n
[2 * i
+ i
% 2 + 15] != i
+ 19)