Lines Matching refs:AVX512F
2 …ple=x86_64-unknown-unknown -mattr=+avx512f | FileCheck %s --check-prefix=ALL --check-prefix=AVX512F
3 …=i386-unknown-linux-gnu -mattr=+avx512f | FileCheck %s --check-prefix=ALL --check-prefix=AVX512F-32
6 ; AVX512F-LABEL: shuffle_v8f64_00000000:
7 ; AVX512F: # BB#0:
8 ; AVX512F-NEXT: vbroadcastsd %xmm0, %zmm0
9 ; AVX512F-NEXT: retq
11 ; AVX512F-32-LABEL: shuffle_v8f64_00000000:
12 ; AVX512F-32: # BB#0:
13 ; AVX512F-32-NEXT: vbroadcastsd %xmm0, %zmm0
14 ; AVX512F-32-NEXT: retl
20 ; AVX512F-LABEL: shuffle_v8f64_22222222:
21 ; AVX512F: # BB#0:
22 ; AVX512F-NEXT: vextractf32x4 $1, %zmm0, %xmm0
23 ; AVX512F-NEXT: vbroadcastsd %xmm0, %zmm0
24 ; AVX512F-NEXT: retq
26 ; AVX512F-32-LABEL: shuffle_v8f64_22222222:
27 ; AVX512F-32: # BB#0:
28 ; AVX512F-32-NEXT: vextractf32x4 $1, %zmm0, %xmm0
29 ; AVX512F-32-NEXT: vbroadcastsd %xmm0, %zmm0
30 ; AVX512F-32-NEXT: retl
36 ; AVX512F-LABEL: shuffle_v8f64_44444444:
37 ; AVX512F: # BB#0:
38 ; AVX512F-NEXT: vextractf32x4 $2, %zmm0, %xmm0
39 ; AVX512F-NEXT: vbroadcastsd %xmm0, %zmm0
40 ; AVX512F-NEXT: retq
42 ; AVX512F-32-LABEL: shuffle_v8f64_44444444:
43 ; AVX512F-32: # BB#0:
44 ; AVX512F-32-NEXT: vextractf32x4 $2, %zmm0, %xmm0
45 ; AVX512F-32-NEXT: vbroadcastsd %xmm0, %zmm0
46 ; AVX512F-32-NEXT: retl
52 ; AVX512F-LABEL: shuffle_v8f64_00000010:
53 ; AVX512F: # BB#0:
54 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,0,0,0,0,0,1,0]
55 ; AVX512F-NEXT: vpermpd %zmm0, %zmm1, %zmm0
56 ; AVX512F-NEXT: retq
58 ; AVX512F-32-LABEL: shuffle_v8f64_00000010:
59 ; AVX512F-32: # BB#0:
60 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0]
61 ; AVX512F-32-NEXT: vpermpd %zmm0, %zmm1, %zmm0
62 ; AVX512F-32-NEXT: retl
68 ; AVX512F-LABEL: shuffle_v8f64_00000200:
69 ; AVX512F: # BB#0:
70 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,0,0,0,0,2,0,0]
71 ; AVX512F-NEXT: vpermpd %zmm0, %zmm1, %zmm0
72 ; AVX512F-NEXT: retq
74 ; AVX512F-32-LABEL: shuffle_v8f64_00000200:
75 ; AVX512F-32: # BB#0:
76 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0]
77 ; AVX512F-32-NEXT: vpermpd %zmm0, %zmm1, %zmm0
78 ; AVX512F-32-NEXT: retl
84 ; AVX512F-LABEL: shuffle_v8f64_00003000:
85 ; AVX512F: # BB#0:
86 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,0,0,0,3,0,0,0]
87 ; AVX512F-NEXT: vpermpd %zmm0, %zmm1, %zmm0
88 ; AVX512F-NEXT: retq
90 ; AVX512F-32-LABEL: shuffle_v8f64_00003000:
91 ; AVX512F-32: # BB#0:
92 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0]
93 ; AVX512F-32-NEXT: vpermpd %zmm0, %zmm1, %zmm0
94 ; AVX512F-32-NEXT: retl
100 ; AVX512F-LABEL: shuffle_v8f64_00040000:
101 ; AVX512F: # BB#0:
102 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,0,0,4,0,0,0,0]
103 ; AVX512F-NEXT: vpermpd %zmm0, %zmm1, %zmm0
104 ; AVX512F-NEXT: retq
106 ; AVX512F-32-LABEL: shuffle_v8f64_00040000:
107 ; AVX512F-32: # BB#0:
108 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0]
109 ; AVX512F-32-NEXT: vpermpd %zmm0, %zmm1, %zmm0
110 ; AVX512F-32-NEXT: retl
116 ; AVX512F-LABEL: shuffle_v8f64_00500000:
117 ; AVX512F: # BB#0:
118 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,0,5,0,0,0,0,0]
119 ; AVX512F-NEXT: vpermpd %zmm0, %zmm1, %zmm0
120 ; AVX512F-NEXT: retq
122 ; AVX512F-32-LABEL: shuffle_v8f64_00500000:
123 ; AVX512F-32: # BB#0:
124 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0]
125 ; AVX512F-32-NEXT: vpermpd %zmm0, %zmm1, %zmm0
126 ; AVX512F-32-NEXT: retl
132 ; AVX512F-LABEL: shuffle_v8f64_06000000:
133 ; AVX512F: # BB#0:
134 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,6,0,0,0,0,0,0]
135 ; AVX512F-NEXT: vpermpd %zmm0, %zmm1, %zmm0
136 ; AVX512F-NEXT: retq
138 ; AVX512F-32-LABEL: shuffle_v8f64_06000000:
139 ; AVX512F-32: # BB#0:
140 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0]
141 ; AVX512F-32-NEXT: vpermpd %zmm0, %zmm1, %zmm0
142 ; AVX512F-32-NEXT: retl
148 ; AVX512F-LABEL: shuffle_v8f64_70000000:
149 ; AVX512F: # BB#0:
150 ; AVX512F-NEXT: vpxord %zmm1, %zmm1, %zmm1
151 ; AVX512F-NEXT: movl $7, %eax
152 ; AVX512F-NEXT: vpinsrq $0, %rax, %xmm1, %xmm2
153 ; AVX512F-NEXT: vinserti32x4 $0, %xmm2, %zmm1, %zmm1
154 ; AVX512F-NEXT: vpermpd %zmm0, %zmm1, %zmm0
155 ; AVX512F-NEXT: retq
157 ; AVX512F-32-LABEL: shuffle_v8f64_70000000:
158 ; AVX512F-32: # BB#0:
159 ; AVX512F-32-NEXT: vpxor %xmm1, %xmm1, %xmm1
160 ; AVX512F-32-NEXT: movl $7, %eax
161 ; AVX512F-32-NEXT: vpinsrd $0, %eax, %xmm1, %xmm1
162 ; AVX512F-32-NEXT: vpxord %zmm2, %zmm2, %zmm2
163 ; AVX512F-32-NEXT: vinserti32x4 $0, %xmm1, %zmm2, %zmm1
164 ; AVX512F-32-NEXT: vpermpd %zmm0, %zmm1, %zmm0
165 ; AVX512F-32-NEXT: retl
171 ; AVX512F-LABEL: shuffle_v8f64_01014545:
172 ; AVX512F: # BB#0:
173 ; AVX512F-NEXT: vpermpd {{.*#+}} zmm0 = zmm0[0,1,0,1,4,5,4,5]
174 ; AVX512F-NEXT: retq
176 ; AVX512F-32-LABEL: shuffle_v8f64_01014545:
177 ; AVX512F-32: # BB#0:
178 ; AVX512F-32-NEXT: vpermpd {{.*#+}} zmm0 = zmm0[0,1,0,1,4,5,4,5]
179 ; AVX512F-32-NEXT: retl
185 ; AVX512F-LABEL: shuffle_v8f64_00112233:
186 ; AVX512F: # BB#0:
187 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,0,1,1,2,2,3,3]
188 ; AVX512F-NEXT: vpermpd %zmm0, %zmm1, %zmm0
189 ; AVX512F-NEXT: retq
191 ; AVX512F-32-LABEL: shuffle_v8f64_00112233:
192 ; AVX512F-32: # BB#0:
193 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,0,0,0,1,0,1,0,2,0,2,0,3,0,3,0]
194 ; AVX512F-32-NEXT: vpermpd %zmm0, %zmm1, %zmm0
195 ; AVX512F-32-NEXT: retl
201 ; AVX512F-LABEL: shuffle_v8f64_00001111:
202 ; AVX512F: # BB#0:
203 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,0,0,0,1,1,1,1]
204 ; AVX512F-NEXT: vpermpd %zmm0, %zmm1, %zmm0
205 ; AVX512F-NEXT: retq
207 ; AVX512F-32-LABEL: shuffle_v8f64_00001111:
208 ; AVX512F-32: # BB#0:
209 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0]
210 ; AVX512F-32-NEXT: vpermpd %zmm0, %zmm1, %zmm0
211 ; AVX512F-32-NEXT: retl
218 ; AVX512F-LABEL: shuffle_v8f64_81a3c5e7:
219 ; AVX512F: # BB#0:
220 ; AVX512F-NEXT: vshufpd {{.*#+}} zmm0 = zmm1[0],zmm0[1],zmm1[2],zmm0[3],zmm1[4],zmm0[5],zmm1[6],…
221 ; AVX512F-NEXT: retq
223 ; AVX512F-32-LABEL: shuffle_v8f64_81a3c5e7:
224 ; AVX512F-32: # BB#0:
225 ; AVX512F-32-NEXT: vshufpd {{.*#+}} zmm0 = zmm1[0],zmm0[1],zmm1[2],zmm0[3],zmm1[4],zmm0[5],zmm1[…
226 ; AVX512F-32-NEXT: retl
233 ; AVX512F-LABEL: shuffle_v8f64_08080808:
234 ; AVX512F: # BB#0:
235 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm2 = [0,8,0,8,0,8,0,8]
236 ; AVX512F-NEXT: vpermt2pd %zmm1, %zmm2, %zmm0
237 ; AVX512F-NEXT: retq
239 ; AVX512F-32-LABEL: shuffle_v8f64_08080808:
240 ; AVX512F-32: # BB#0:
241 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm2 = [0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0]
242 ; AVX512F-32-NEXT: vpermt2pd %zmm1, %zmm2, %zmm0
243 ; AVX512F-32-NEXT: retl
250 ; AVX512F-LABEL: shuffle_v8f64_08084c4c:
251 ; AVX512F: # BB#0:
252 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm2 = [0,8,0,8,4,12,4,12]
253 ; AVX512F-NEXT: vpermt2pd %zmm1, %zmm2, %zmm0
254 ; AVX512F-NEXT: retq
256 ; AVX512F-32-LABEL: shuffle_v8f64_08084c4c:
257 ; AVX512F-32: # BB#0:
258 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm2 = [0,0,8,0,0,0,8,0,4,0,12,0,4,0,12,0]
259 ; AVX512F-32-NEXT: vpermt2pd %zmm1, %zmm2, %zmm0
260 ; AVX512F-32-NEXT: retl
267 ; AVX512F-LABEL: shuffle_v8f64_8823cc67:
268 ; AVX512F: # BB#0:
269 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm2 = [0,0,10,11,4,4,14,15]
270 ; AVX512F-NEXT: vpermt2pd %zmm0, %zmm2, %zmm1
271 ; AVX512F-NEXT: vmovaps %zmm1, %zmm0
272 ; AVX512F-NEXT: retq
274 ; AVX512F-32-LABEL: shuffle_v8f64_8823cc67:
275 ; AVX512F-32: # BB#0:
276 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm2 = [0,0,0,0,10,0,11,0,4,0,4,0,14,0,15,0]
277 ; AVX512F-32-NEXT: vpermt2pd %zmm0, %zmm2, %zmm1
278 ; AVX512F-32-NEXT: vmovaps %zmm1, %zmm0
279 ; AVX512F-32-NEXT: retl
286 ; AVX512F-LABEL: shuffle_v8f64_9832dc76:
287 ; AVX512F: # BB#0:
288 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm2 = [1,0,11,10,5,4,15,14]
289 ; AVX512F-NEXT: vpermt2pd %zmm0, %zmm2, %zmm1
290 ; AVX512F-NEXT: vmovaps %zmm1, %zmm0
291 ; AVX512F-NEXT: retq
293 ; AVX512F-32-LABEL: shuffle_v8f64_9832dc76:
294 ; AVX512F-32: # BB#0:
295 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm2 = [1,0,0,0,11,0,10,0,5,0,4,0,15,0,14,0]
296 ; AVX512F-32-NEXT: vpermt2pd %zmm0, %zmm2, %zmm1
297 ; AVX512F-32-NEXT: vmovaps %zmm1, %zmm0
298 ; AVX512F-32-NEXT: retl
305 ; AVX512F-LABEL: shuffle_v8f64_9810dc54:
306 ; AVX512F: # BB#0:
307 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm2 = [1,0,9,8,5,4,13,12]
308 ; AVX512F-NEXT: vpermt2pd %zmm0, %zmm2, %zmm1
309 ; AVX512F-NEXT: vmovaps %zmm1, %zmm0
310 ; AVX512F-NEXT: retq
312 ; AVX512F-32-LABEL: shuffle_v8f64_9810dc54:
313 ; AVX512F-32: # BB#0:
314 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm2 = [1,0,0,0,9,0,8,0,5,0,4,0,13,0,12,0]
315 ; AVX512F-32-NEXT: vpermt2pd %zmm0, %zmm2, %zmm1
316 ; AVX512F-32-NEXT: vmovaps %zmm1, %zmm0
317 ; AVX512F-32-NEXT: retl
324 ; AVX512F-LABEL: shuffle_v8f64_08194c5d:
325 ; AVX512F: # BB#0:
326 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm2 = [0,8,1,9,4,12,5,13]
327 ; AVX512F-NEXT: vpermt2pd %zmm1, %zmm2, %zmm0
328 ; AVX512F-NEXT: retq
330 ; AVX512F-32-LABEL: shuffle_v8f64_08194c5d:
331 ; AVX512F-32: # BB#0:
332 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm2 = [0,0,8,0,1,0,9,0,4,0,12,0,5,0,13,0]
333 ; AVX512F-32-NEXT: vpermt2pd %zmm1, %zmm2, %zmm0
334 ; AVX512F-32-NEXT: retl
341 ; AVX512F-LABEL: shuffle_v8f64_2a3b6e7f:
342 ; AVX512F: # BB#0:
343 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm2 = [2,10,3,11,6,14,7,15]
344 ; AVX512F-NEXT: vpermt2pd %zmm1, %zmm2, %zmm0
345 ; AVX512F-NEXT: retq
347 ; AVX512F-32-LABEL: shuffle_v8f64_2a3b6e7f:
348 ; AVX512F-32: # BB#0:
349 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm2 = [2,0,10,0,3,0,11,0,6,0,14,0,7,0,15,0]
350 ; AVX512F-32-NEXT: vpermt2pd %zmm1, %zmm2, %zmm0
351 ; AVX512F-32-NEXT: retl
358 ; AVX512F-LABEL: shuffle_v8f64_08192a3b:
359 ; AVX512F: # BB#0:
360 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm2 = [0,8,1,9,2,10,3,11]
361 ; AVX512F-NEXT: vpermt2pd %zmm1, %zmm2, %zmm0
362 ; AVX512F-NEXT: retq
364 ; AVX512F-32-LABEL: shuffle_v8f64_08192a3b:
365 ; AVX512F-32: # BB#0:
366 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm2 = [0,0,8,0,1,0,9,0,2,0,10,0,3,0,11,0]
367 ; AVX512F-32-NEXT: vpermt2pd %zmm1, %zmm2, %zmm0
368 ; AVX512F-32-NEXT: retl
375 ; AVX512F-LABEL: shuffle_v8f64_08991abb:
376 ; AVX512F: # BB#0:
377 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm2 = [8,0,1,1,9,2,3,3]
378 ; AVX512F-NEXT: vpermt2pd %zmm0, %zmm2, %zmm1
379 ; AVX512F-NEXT: vmovaps %zmm1, %zmm0
380 ; AVX512F-NEXT: retq
382 ; AVX512F-32-LABEL: shuffle_v8f64_08991abb:
383 ; AVX512F-32: # BB#0:
384 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm2 = [8,0,0,0,1,0,1,0,9,0,2,0,3,0,3,0]
385 ; AVX512F-32-NEXT: vpermt2pd %zmm0, %zmm2, %zmm1
386 ; AVX512F-32-NEXT: vmovaps %zmm1, %zmm0
387 ; AVX512F-32-NEXT: retl
394 ; AVX512F-LABEL: shuffle_v8f64_091b2d3f:
395 ; AVX512F: # BB#0:
396 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm2 = [0,9,1,11,2,13,3,15]
397 ; AVX512F-NEXT: vpermt2pd %zmm1, %zmm2, %zmm0
398 ; AVX512F-NEXT: retq
400 ; AVX512F-32-LABEL: shuffle_v8f64_091b2d3f:
401 ; AVX512F-32: # BB#0:
402 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm2 = [0,0,9,0,1,0,11,0,2,0,13,0,3,0,15,0]
403 ; AVX512F-32-NEXT: vpermt2pd %zmm1, %zmm2, %zmm0
404 ; AVX512F-32-NEXT: retl
411 ; AVX512F-LABEL: shuffle_v8f64_09ab1def:
412 ; AVX512F: # BB#0:
413 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm2 = [8,1,2,3,9,5,6,7]
414 ; AVX512F-NEXT: vpermt2pd %zmm0, %zmm2, %zmm1
415 ; AVX512F-NEXT: vmovaps %zmm1, %zmm0
416 ; AVX512F-NEXT: retq
418 ; AVX512F-32-LABEL: shuffle_v8f64_09ab1def:
419 ; AVX512F-32: # BB#0:
420 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm2 = [8,0,1,0,2,0,3,0,9,0,5,0,6,0,7,0]
421 ; AVX512F-32-NEXT: vpermt2pd %zmm0, %zmm2, %zmm1
422 ; AVX512F-32-NEXT: vmovaps %zmm1, %zmm0
423 ; AVX512F-32-NEXT: retl
430 ; AVX512F-LABEL: shuffle_v8f64_00014445:
431 ; AVX512F: # BB#0:
432 ; AVX512F-NEXT: vpermpd {{.*#+}} zmm0 = zmm0[0,0,0,1,4,4,4,5]
433 ; AVX512F-NEXT: retq
435 ; AVX512F-32-LABEL: shuffle_v8f64_00014445:
436 ; AVX512F-32: # BB#0:
437 ; AVX512F-32-NEXT: vpermpd {{.*#+}} zmm0 = zmm0[0,0,0,1,4,4,4,5]
438 ; AVX512F-32-NEXT: retl
445 ; AVX512F-LABEL: shuffle_v8f64_00204464:
446 ; AVX512F: # BB#0:
447 ; AVX512F-NEXT: vpermpd {{.*#+}} zmm0 = zmm0[0,0,2,0,4,4,6,4]
448 ; AVX512F-NEXT: retq
450 ; AVX512F-32-LABEL: shuffle_v8f64_00204464:
451 ; AVX512F-32: # BB#0:
452 ; AVX512F-32-NEXT: vpermpd {{.*#+}} zmm0 = zmm0[0,0,2,0,4,4,6,4]
453 ; AVX512F-32-NEXT: retl
460 ; AVX512F-LABEL: shuffle_v8f64_03004744:
461 ; AVX512F: # BB#0:
462 ; AVX512F-NEXT: vpermpd {{.*#+}} zmm0 = zmm0[0,3,0,0,4,7,4,4]
463 ; AVX512F-NEXT: retq
465 ; AVX512F-32-LABEL: shuffle_v8f64_03004744:
466 ; AVX512F-32: # BB#0:
467 ; AVX512F-32-NEXT: vpermpd {{.*#+}} zmm0 = zmm0[0,3,0,0,4,7,4,4]
468 ; AVX512F-32-NEXT: retl
475 ; AVX512F-LABEL: shuffle_v8f64_10005444:
476 ; AVX512F: # BB#0:
477 ; AVX512F-NEXT: vpermpd {{.*#+}} zmm0 = zmm0[1,0,0,0,5,4,4,4]
478 ; AVX512F-NEXT: retq
480 ; AVX512F-32-LABEL: shuffle_v8f64_10005444:
481 ; AVX512F-32: # BB#0:
482 ; AVX512F-32-NEXT: vpermpd {{.*#+}} zmm0 = zmm0[1,0,0,0,5,4,4,4]
483 ; AVX512F-32-NEXT: retl
490 ; AVX512F-LABEL: shuffle_v8f64_22006644:
491 ; AVX512F: # BB#0:
492 ; AVX512F-NEXT: vpermpd {{.*#+}} zmm0 = zmm0[2,2,0,0,6,6,4,4]
493 ; AVX512F-NEXT: retq
495 ; AVX512F-32-LABEL: shuffle_v8f64_22006644:
496 ; AVX512F-32: # BB#0:
497 ; AVX512F-32-NEXT: vpermpd {{.*#+}} zmm0 = zmm0[2,2,0,0,6,6,4,4]
498 ; AVX512F-32-NEXT: retl
505 ; AVX512F-LABEL: shuffle_v8f64_33307774:
506 ; AVX512F: # BB#0:
507 ; AVX512F-NEXT: vpermpd {{.*#+}} zmm0 = zmm0[3,3,3,0,7,7,7,4]
508 ; AVX512F-NEXT: retq
510 ; AVX512F-32-LABEL: shuffle_v8f64_33307774:
511 ; AVX512F-32: # BB#0:
512 ; AVX512F-32-NEXT: vpermpd {{.*#+}} zmm0 = zmm0[3,3,3,0,7,7,7,4]
513 ; AVX512F-32-NEXT: retl
520 ; AVX512F-LABEL: shuffle_v8f64_32107654:
521 ; AVX512F: # BB#0:
522 ; AVX512F-NEXT: vpermpd {{.*#+}} zmm0 = zmm0[3,2,1,0,7,6,5,4]
523 ; AVX512F-NEXT: retq
525 ; AVX512F-32-LABEL: shuffle_v8f64_32107654:
526 ; AVX512F-32: # BB#0:
527 ; AVX512F-32-NEXT: vpermpd {{.*#+}} zmm0 = zmm0[3,2,1,0,7,6,5,4]
528 ; AVX512F-32-NEXT: retl
535 ; AVX512F-LABEL: shuffle_v8f64_00234467:
536 ; AVX512F: # BB#0:
537 ; AVX512F-NEXT: vpermilpd {{.*#+}} zmm0 = zmm0[0,0,2,3,4,4,6,7]
538 ; AVX512F-NEXT: retq
540 ; AVX512F-32-LABEL: shuffle_v8f64_00234467:
541 ; AVX512F-32: # BB#0:
542 ; AVX512F-32-NEXT: vpermilpd {{.*#+}} zmm0 = zmm0[0,0,2,3,4,4,6,7]
543 ; AVX512F-32-NEXT: retl
550 ; AVX512F-LABEL: shuffle_v8f64_00224466:
551 ; AVX512F: # BB#0:
552 ; AVX512F-NEXT: vmovddup {{.*#+}} zmm0 = zmm0[0,0,2,2,4,4,6,6]
553 ; AVX512F-NEXT: retq
555 ; AVX512F-32-LABEL: shuffle_v8f64_00224466:
556 ; AVX512F-32: # BB#0:
557 ; AVX512F-32-NEXT: vmovddup {{.*#+}} zmm0 = zmm0[0,0,2,2,4,4,6,6]
558 ; AVX512F-32-NEXT: retl
565 ; AVX512F-LABEL: shuffle_v8f64_10325476:
566 ; AVX512F: # BB#0:
567 ; AVX512F-NEXT: vpermilpd {{.*#+}} zmm0 = zmm0[1,0,3,2,5,4,7,6]
568 ; AVX512F-NEXT: retq
570 ; AVX512F-32-LABEL: shuffle_v8f64_10325476:
571 ; AVX512F-32: # BB#0:
572 ; AVX512F-32-NEXT: vpermilpd {{.*#+}} zmm0 = zmm0[1,0,3,2,5,4,7,6]
573 ; AVX512F-32-NEXT: retl
580 ; AVX512F-LABEL: shuffle_v8f64_11335577:
581 ; AVX512F: # BB#0:
582 ; AVX512F-NEXT: vpermilpd {{.*#+}} zmm0 = zmm0[1,1,3,3,5,5,7,7]
583 ; AVX512F-NEXT: retq
585 ; AVX512F-32-LABEL: shuffle_v8f64_11335577:
586 ; AVX512F-32: # BB#0:
587 ; AVX512F-32-NEXT: vpermilpd {{.*#+}} zmm0 = zmm0[1,1,3,3,5,5,7,7]
588 ; AVX512F-32-NEXT: retl
595 ; AVX512F-LABEL: shuffle_v8f64_10235467:
596 ; AVX512F: # BB#0:
597 ; AVX512F-NEXT: vpermilpd {{.*#+}} zmm0 = zmm0[1,0,2,3,5,4,6,7]
598 ; AVX512F-NEXT: retq
600 ; AVX512F-32-LABEL: shuffle_v8f64_10235467:
601 ; AVX512F-32: # BB#0:
602 ; AVX512F-32-NEXT: vpermilpd {{.*#+}} zmm0 = zmm0[1,0,2,3,5,4,6,7]
603 ; AVX512F-32-NEXT: retl
610 ; AVX512F-LABEL: shuffle_v8f64_10225466:
611 ; AVX512F: # BB#0:
612 ; AVX512F-NEXT: vpermilpd {{.*#+}} zmm0 = zmm0[1,0,2,2,5,4,6,6]
613 ; AVX512F-NEXT: retq
615 ; AVX512F-32-LABEL: shuffle_v8f64_10225466:
616 ; AVX512F-32: # BB#0:
617 ; AVX512F-32-NEXT: vpermilpd {{.*#+}} zmm0 = zmm0[1,0,2,2,5,4,6,6]
618 ; AVX512F-32-NEXT: retl
625 ; AVX512F-LABEL: shuffle_v8f64_00015444:
626 ; AVX512F: # BB#0:
627 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,0,0,1,5,4,4,4]
628 ; AVX512F-NEXT: vpermpd %zmm0, %zmm1, %zmm0
629 ; AVX512F-NEXT: retq
631 ; AVX512F-32-LABEL: shuffle_v8f64_00015444:
632 ; AVX512F-32: # BB#0:
633 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,0,0,0,0,0,1,0,5,0,4,0,4,0,4,0]
634 ; AVX512F-32-NEXT: vpermpd %zmm0, %zmm1, %zmm0
635 ; AVX512F-32-NEXT: retl
642 ; AVX512F-LABEL: shuffle_v8f64_00204644:
643 ; AVX512F: # BB#0:
644 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,0,2,0,4,6,4,4]
645 ; AVX512F-NEXT: vpermpd %zmm0, %zmm1, %zmm0
646 ; AVX512F-NEXT: retq
648 ; AVX512F-32-LABEL: shuffle_v8f64_00204644:
649 ; AVX512F-32: # BB#0:
650 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,0,0,0,2,0,0,0,4,0,6,0,4,0,4,0]
651 ; AVX512F-32-NEXT: vpermpd %zmm0, %zmm1, %zmm0
652 ; AVX512F-32-NEXT: retl
659 ; AVX512F-LABEL: shuffle_v8f64_03004474:
660 ; AVX512F: # BB#0:
661 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,3,0,0,4,4,7,4]
662 ; AVX512F-NEXT: vpermpd %zmm0, %zmm1, %zmm0
663 ; AVX512F-NEXT: retq
665 ; AVX512F-32-LABEL: shuffle_v8f64_03004474:
666 ; AVX512F-32: # BB#0:
667 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,0,3,0,0,0,0,0,4,0,4,0,7,0,4,0]
668 ; AVX512F-32-NEXT: vpermpd %zmm0, %zmm1, %zmm0
669 ; AVX512F-32-NEXT: retl
676 ; AVX512F-LABEL: shuffle_v8f64_10004444:
677 ; AVX512F: # BB#0:
678 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm1 = [1,0,0,0,4,4,4,4]
679 ; AVX512F-NEXT: vpermpd %zmm0, %zmm1, %zmm0
680 ; AVX512F-NEXT: retq
682 ; AVX512F-32-LABEL: shuffle_v8f64_10004444:
683 ; AVX512F-32: # BB#0:
684 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm1 = [1,0,0,0,0,0,0,0,4,0,4,0,4,0,4,0]
685 ; AVX512F-32-NEXT: vpermpd %zmm0, %zmm1, %zmm0
686 ; AVX512F-32-NEXT: retl
693 ; AVX512F-LABEL: shuffle_v8f64_22006446:
694 ; AVX512F: # BB#0:
695 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm1 = [2,2,0,0,6,4,4,6]
696 ; AVX512F-NEXT: vpermpd %zmm0, %zmm1, %zmm0
697 ; AVX512F-NEXT: retq
699 ; AVX512F-32-LABEL: shuffle_v8f64_22006446:
700 ; AVX512F-32: # BB#0:
701 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm1 = [2,0,2,0,0,0,0,0,6,0,4,0,4,0,6,0]
702 ; AVX512F-32-NEXT: vpermpd %zmm0, %zmm1, %zmm0
703 ; AVX512F-32-NEXT: retl
710 ; AVX512F-LABEL: shuffle_v8f64_33307474:
711 ; AVX512F: # BB#0:
712 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm1 = [3,3,3,0,7,4,7,4]
713 ; AVX512F-NEXT: vpermpd %zmm0, %zmm1, %zmm0
714 ; AVX512F-NEXT: retq
716 ; AVX512F-32-LABEL: shuffle_v8f64_33307474:
717 ; AVX512F-32: # BB#0:
718 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm1 = [3,0,3,0,3,0,0,0,7,0,4,0,7,0,4,0]
719 ; AVX512F-32-NEXT: vpermpd %zmm0, %zmm1, %zmm0
720 ; AVX512F-32-NEXT: retl
727 ; AVX512F-LABEL: shuffle_v8f64_32104567:
728 ; AVX512F: # BB#0:
729 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm1 = [3,2,1,0,4,5,6,7]
730 ; AVX512F-NEXT: vpermpd %zmm0, %zmm1, %zmm0
731 ; AVX512F-NEXT: retq
733 ; AVX512F-32-LABEL: shuffle_v8f64_32104567:
734 ; AVX512F-32: # BB#0:
735 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm1 = [3,0,2,0,1,0,0,0,4,0,5,0,6,0,7,0]
736 ; AVX512F-32-NEXT: vpermpd %zmm0, %zmm1, %zmm0
737 ; AVX512F-32-NEXT: retl
744 ; AVX512F-LABEL: shuffle_v8f64_00236744:
745 ; AVX512F: # BB#0:
746 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,0,2,3,6,7,4,4]
747 ; AVX512F-NEXT: vpermpd %zmm0, %zmm1, %zmm0
748 ; AVX512F-NEXT: retq
750 ; AVX512F-32-LABEL: shuffle_v8f64_00236744:
751 ; AVX512F-32: # BB#0:
752 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,0,0,0,2,0,3,0,6,0,7,0,4,0,4,0]
753 ; AVX512F-32-NEXT: vpermpd %zmm0, %zmm1, %zmm0
754 ; AVX512F-32-NEXT: retl
761 ; AVX512F-LABEL: shuffle_v8f64_00226644:
762 ; AVX512F: # BB#0:
763 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,0,2,2,6,6,4,4]
764 ; AVX512F-NEXT: vpermpd %zmm0, %zmm1, %zmm0
765 ; AVX512F-NEXT: retq
767 ; AVX512F-32-LABEL: shuffle_v8f64_00226644:
768 ; AVX512F-32: # BB#0:
769 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,0,0,0,2,0,2,0,6,0,6,0,4,0,4,0]
770 ; AVX512F-32-NEXT: vpermpd %zmm0, %zmm1, %zmm0
771 ; AVX512F-32-NEXT: retl
778 ; AVX512F-LABEL: shuffle_v8f64_10324567:
779 ; AVX512F: # BB#0:
780 ; AVX512F-NEXT: vpermilpd {{.*#+}} zmm0 = zmm0[1,0,3,2,4,5,6,7]
781 ; AVX512F-NEXT: retq
783 ; AVX512F-32-LABEL: shuffle_v8f64_10324567:
784 ; AVX512F-32: # BB#0:
785 ; AVX512F-32-NEXT: vpermilpd {{.*#+}} zmm0 = zmm0[1,0,3,2,4,5,6,7]
786 ; AVX512F-32-NEXT: retl
793 ; AVX512F-LABEL: shuffle_v8f64_11334567:
794 ; AVX512F: # BB#0:
795 ; AVX512F-NEXT: vpermilpd {{.*#+}} zmm0 = zmm0[1,1,3,3,4,5,6,7]
796 ; AVX512F-NEXT: retq
798 ; AVX512F-32-LABEL: shuffle_v8f64_11334567:
799 ; AVX512F-32: # BB#0:
800 ; AVX512F-32-NEXT: vpermilpd {{.*#+}} zmm0 = zmm0[1,1,3,3,4,5,6,7]
801 ; AVX512F-32-NEXT: retl
808 ; AVX512F-LABEL: shuffle_v8f64_01235467:
809 ; AVX512F: # BB#0:
810 ; AVX512F-NEXT: vpermilpd {{.*#+}} zmm0 = zmm0[0,1,2,3,5,4,6,7]
811 ; AVX512F-NEXT: retq
813 ; AVX512F-32-LABEL: shuffle_v8f64_01235467:
814 ; AVX512F-32: # BB#0:
815 ; AVX512F-32-NEXT: vpermilpd {{.*#+}} zmm0 = zmm0[0,1,2,3,5,4,6,7]
816 ; AVX512F-32-NEXT: retl
823 ; AVX512F-LABEL: shuffle_v8f64_01235466:
824 ; AVX512F: # BB#0:
825 ; AVX512F-NEXT: vpermilpd {{.*#+}} zmm0 = zmm0[0,1,2,3,5,4,6,6]
826 ; AVX512F-NEXT: retq
828 ; AVX512F-32-LABEL: shuffle_v8f64_01235466:
829 ; AVX512F-32: # BB#0:
830 ; AVX512F-32-NEXT: vpermilpd {{.*#+}} zmm0 = zmm0[0,1,2,3,5,4,6,6]
831 ; AVX512F-32-NEXT: retl
838 ; AVX512F-LABEL: shuffle_v8f64_002u6u44:
839 ; AVX512F: # BB#0:
840 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm1 = <0,0,2,u,6,u,4,4>
841 ; AVX512F-NEXT: vpermpd %zmm0, %zmm1, %zmm0
842 ; AVX512F-NEXT: retq
844 ; AVX512F-32-LABEL: shuffle_v8f64_002u6u44:
845 ; AVX512F-32: # BB#0:
846 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm1 = <0,0,0,0,2,0,u,u,6,0,u,u,4,0,4,0>
847 ; AVX512F-32-NEXT: vpermpd %zmm0, %zmm1, %zmm0
848 ; AVX512F-32-NEXT: retl
855 ; AVX512F-LABEL: shuffle_v8f64_00uu66uu:
856 ; AVX512F: # BB#0:
857 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm1 = <0,0,u,u,6,6,u,u>
858 ; AVX512F-NEXT: vpermpd %zmm0, %zmm1, %zmm0
859 ; AVX512F-NEXT: retq
861 ; AVX512F-32-LABEL: shuffle_v8f64_00uu66uu:
862 ; AVX512F-32: # BB#0:
863 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm1 = <0,0,0,0,u,u,u,u,6,0,6,0,u,u,u,u>
864 ; AVX512F-32-NEXT: vpermpd %zmm0, %zmm1, %zmm0
865 ; AVX512F-32-NEXT: retl
872 ; AVX512F-LABEL: shuffle_v8f64_103245uu:
873 ; AVX512F: # BB#0:
874 ; AVX512F-NEXT: vpermilpd {{.*#+}} zmm0 = zmm0[1,0,3,2,4,5,6,6]
875 ; AVX512F-NEXT: retq
877 ; AVX512F-32-LABEL: shuffle_v8f64_103245uu:
878 ; AVX512F-32: # BB#0:
879 ; AVX512F-32-NEXT: vpermilpd {{.*#+}} zmm0 = zmm0[1,0,3,2,4,5,6,6]
880 ; AVX512F-32-NEXT: retl
887 ; AVX512F-LABEL: shuffle_v8f64_1133uu67:
888 ; AVX512F: # BB#0:
889 ; AVX512F-NEXT: vpermilpd {{.*#+}} zmm0 = zmm0[1,1,3,3,4,4,6,7]
890 ; AVX512F-NEXT: retq
892 ; AVX512F-32-LABEL: shuffle_v8f64_1133uu67:
893 ; AVX512F-32: # BB#0:
894 ; AVX512F-32-NEXT: vpermilpd {{.*#+}} zmm0 = zmm0[1,1,3,3,4,4,6,7]
895 ; AVX512F-32-NEXT: retl
902 ; AVX512F-LABEL: shuffle_v8f64_0uu354uu:
903 ; AVX512F: # BB#0:
904 ; AVX512F-NEXT: vpermilpd {{.*#+}} zmm0 = zmm0[0,0,2,3,5,4,6,6]
905 ; AVX512F-NEXT: retq
907 ; AVX512F-32-LABEL: shuffle_v8f64_0uu354uu:
908 ; AVX512F-32: # BB#0:
909 ; AVX512F-32-NEXT: vpermilpd {{.*#+}} zmm0 = zmm0[0,0,2,3,5,4,6,6]
910 ; AVX512F-32-NEXT: retl
917 ; AVX512F-LABEL: shuffle_v8f64_uuu3uu66:
918 ; AVX512F: # BB#0:
919 ; AVX512F-NEXT: vpermilpd {{.*#+}} zmm0 = zmm0[0,0,2,3,4,4,6,6]
920 ; AVX512F-NEXT: retq
922 ; AVX512F-32-LABEL: shuffle_v8f64_uuu3uu66:
923 ; AVX512F-32: # BB#0:
924 ; AVX512F-32-NEXT: vpermilpd {{.*#+}} zmm0 = zmm0[0,0,2,3,4,4,6,6]
925 ; AVX512F-32-NEXT: retl
932 ; AVX512F-LABEL: shuffle_v8f64_c348cda0:
933 ; AVX512F: # BB#0:
934 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm2 = [4,11,12,0,4,5,2,8]
935 ; AVX512F-NEXT: vpermt2pd %zmm0, %zmm2, %zmm1
936 ; AVX512F-NEXT: vmovaps %zmm1, %zmm0
937 ; AVX512F-NEXT: retq
939 ; AVX512F-32-LABEL: shuffle_v8f64_c348cda0:
940 ; AVX512F-32: # BB#0:
941 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm2 = [4,0,11,0,12,0,0,0,4,0,5,0,2,0,8,0]
942 ; AVX512F-32-NEXT: vpermt2pd %zmm0, %zmm2, %zmm1
943 ; AVX512F-32-NEXT: vmovaps %zmm1, %zmm0
944 ; AVX512F-32-NEXT: retl
951 ; AVX512F-LABEL: shuffle_v8f64_f511235a:
952 ; AVX512F: # BB#0:
953 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm2 = [15,5,1,1,2,3,5,10]
954 ; AVX512F-NEXT: vpermt2pd %zmm1, %zmm2, %zmm0
955 ; AVX512F-NEXT: retq
957 ; AVX512F-32-LABEL: shuffle_v8f64_f511235a:
958 ; AVX512F-32: # BB#0:
959 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm2 = [15,0,5,0,1,0,1,0,2,0,3,0,5,0,10,0]
960 ; AVX512F-32-NEXT: vpermt2pd %zmm1, %zmm2, %zmm0
961 ; AVX512F-32-NEXT: retl
968 ; AVX512F-LABEL: shuffle_v8i64_00000000:
969 ; AVX512F: # BB#0:
970 ; AVX512F-NEXT: vpbroadcastq %xmm0, %zmm0
971 ; AVX512F-NEXT: retq
973 ; AVX512F-32-LABEL: shuffle_v8i64_00000000:
974 ; AVX512F-32: # BB#0:
975 ; AVX512F-32-NEXT: vpbroadcastq %xmm0, %zmm0
976 ; AVX512F-32-NEXT: retl
982 ; AVX512F-LABEL: shuffle_v8i64_44444444:
983 ; AVX512F: # BB#0:
984 ; AVX512F-NEXT: vextracti32x4 $2, %zmm0, %xmm0
985 ; AVX512F-NEXT: vpbroadcastq %xmm0, %zmm0
986 ; AVX512F-NEXT: retq
988 ; AVX512F-32-LABEL: shuffle_v8i64_44444444:
989 ; AVX512F-32: # BB#0:
990 ; AVX512F-32-NEXT: vextracti32x4 $2, %zmm0, %xmm0
991 ; AVX512F-32-NEXT: vpbroadcastq %xmm0, %zmm0
992 ; AVX512F-32-NEXT: retl
998 ; AVX512F-LABEL: shuffle_v8i64_66666666:
999 ; AVX512F: # BB#0:
1000 ; AVX512F-NEXT: vextracti32x4 $3, %zmm0, %xmm0
1001 ; AVX512F-NEXT: vpbroadcastq %xmm0, %zmm0
1002 ; AVX512F-NEXT: retq
1004 ; AVX512F-32-LABEL: shuffle_v8i64_66666666:
1005 ; AVX512F-32: # BB#0:
1006 ; AVX512F-32-NEXT: vextracti32x4 $3, %zmm0, %xmm0
1007 ; AVX512F-32-NEXT: vpbroadcastq %xmm0, %zmm0
1008 ; AVX512F-32-NEXT: retl
1015 ; AVX512F-LABEL: shuffle_v8i64_00000010:
1016 ; AVX512F: # BB#0:
1017 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,0,0,0,0,0,1,0]
1018 ; AVX512F-NEXT: vpermq %zmm0, %zmm1, %zmm0
1019 ; AVX512F-NEXT: retq
1021 ; AVX512F-32-LABEL: shuffle_v8i64_00000010:
1022 ; AVX512F-32: # BB#0:
1023 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0]
1024 ; AVX512F-32-NEXT: vpermq %zmm0, %zmm1, %zmm0
1025 ; AVX512F-32-NEXT: retl
1032 ; AVX512F-LABEL: shuffle_v8i64_00000200:
1033 ; AVX512F: # BB#0:
1034 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,0,0,0,0,2,0,0]
1035 ; AVX512F-NEXT: vpermq %zmm0, %zmm1, %zmm0
1036 ; AVX512F-NEXT: retq
1038 ; AVX512F-32-LABEL: shuffle_v8i64_00000200:
1039 ; AVX512F-32: # BB#0:
1040 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0]
1041 ; AVX512F-32-NEXT: vpermq %zmm0, %zmm1, %zmm0
1042 ; AVX512F-32-NEXT: retl
1049 ; AVX512F-LABEL: shuffle_v8i64_00003000:
1050 ; AVX512F: # BB#0:
1051 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,0,0,0,3,0,0,0]
1052 ; AVX512F-NEXT: vpermq %zmm0, %zmm1, %zmm0
1053 ; AVX512F-NEXT: retq
1055 ; AVX512F-32-LABEL: shuffle_v8i64_00003000:
1056 ; AVX512F-32: # BB#0:
1057 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0]
1058 ; AVX512F-32-NEXT: vpermq %zmm0, %zmm1, %zmm0
1059 ; AVX512F-32-NEXT: retl
1066 ; AVX512F-LABEL: shuffle_v8i64_00040000:
1067 ; AVX512F: # BB#0:
1068 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,0,0,4,0,0,0,0]
1069 ; AVX512F-NEXT: vpermq %zmm0, %zmm1, %zmm0
1070 ; AVX512F-NEXT: retq
1072 ; AVX512F-32-LABEL: shuffle_v8i64_00040000:
1073 ; AVX512F-32: # BB#0:
1074 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0]
1075 ; AVX512F-32-NEXT: vpermq %zmm0, %zmm1, %zmm0
1076 ; AVX512F-32-NEXT: retl
1083 ; AVX512F-LABEL: shuffle_v8i64_00500000:
1084 ; AVX512F: # BB#0:
1085 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,0,5,0,0,0,0,0]
1086 ; AVX512F-NEXT: vpermq %zmm0, %zmm1, %zmm0
1087 ; AVX512F-NEXT: retq
1089 ; AVX512F-32-LABEL: shuffle_v8i64_00500000:
1090 ; AVX512F-32: # BB#0:
1091 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0]
1092 ; AVX512F-32-NEXT: vpermq %zmm0, %zmm1, %zmm0
1093 ; AVX512F-32-NEXT: retl
1100 ; AVX512F-LABEL: shuffle_v8i64_06000000:
1101 ; AVX512F: # BB#0:
1102 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,6,0,0,0,0,0,0]
1103 ; AVX512F-NEXT: vpermq %zmm0, %zmm1, %zmm0
1104 ; AVX512F-NEXT: retq
1106 ; AVX512F-32-LABEL: shuffle_v8i64_06000000:
1107 ; AVX512F-32: # BB#0:
1108 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0]
1109 ; AVX512F-32-NEXT: vpermq %zmm0, %zmm1, %zmm0
1110 ; AVX512F-32-NEXT: retl
1117 ; AVX512F-LABEL: shuffle_v8i64_70000000:
1118 ; AVX512F: # BB#0:
1119 ; AVX512F-NEXT: vpxord %zmm1, %zmm1, %zmm1
1120 ; AVX512F-NEXT: movl $7, %eax
1121 ; AVX512F-NEXT: vpinsrq $0, %rax, %xmm1, %xmm2
1122 ; AVX512F-NEXT: vinserti32x4 $0, %xmm2, %zmm1, %zmm1
1123 ; AVX512F-NEXT: vpermq %zmm0, %zmm1, %zmm0
1124 ; AVX512F-NEXT: retq
1126 ; AVX512F-32-LABEL: shuffle_v8i64_70000000:
1127 ; AVX512F-32: # BB#0:
1128 ; AVX512F-32-NEXT: vpxor %xmm1, %xmm1, %xmm1
1129 ; AVX512F-32-NEXT: movl $7, %eax
1130 ; AVX512F-32-NEXT: vpinsrd $0, %eax, %xmm1, %xmm1
1131 ; AVX512F-32-NEXT: vpxord %zmm2, %zmm2, %zmm2
1132 ; AVX512F-32-NEXT: vinserti32x4 $0, %xmm1, %zmm2, %zmm1
1133 ; AVX512F-32-NEXT: vpermq %zmm0, %zmm1, %zmm0
1134 ; AVX512F-32-NEXT: retl
1140 ; AVX512F-LABEL: shuffle_v8i64_01014545:
1141 ; AVX512F: # BB#0:
1142 ; AVX512F-NEXT: vshufi64x2 {{.*#+}} zmm0 = zmm0[0,1,0,1,4,5,4,5]
1143 ; AVX512F-NEXT: retq
1145 ; AVX512F-32-LABEL: shuffle_v8i64_01014545:
1146 ; AVX512F-32: # BB#0:
1147 ; AVX512F-32-NEXT: vshufi64x2 {{.*#+}} zmm0 = zmm0[0,1,0,1,4,5,4,5]
1148 ; AVX512F-32-NEXT: retl
1156 ; AVX512F-LABEL: shuffle_v8i64_00112233:
1157 ; AVX512F: # BB#0:
1158 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,0,1,1,2,2,3,3]
1159 ; AVX512F-NEXT: vpermq %zmm0, %zmm1, %zmm0
1160 ; AVX512F-NEXT: retq
1162 ; AVX512F-32-LABEL: shuffle_v8i64_00112233:
1163 ; AVX512F-32: # BB#0:
1164 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,0,0,0,1,0,1,0,2,0,2,0,3,0,3,0]
1165 ; AVX512F-32-NEXT: vpermq %zmm0, %zmm1, %zmm0
1166 ; AVX512F-32-NEXT: retl
1173 ; AVX512F-LABEL: shuffle_v8i64_00001111:
1174 ; AVX512F: # BB#0:
1175 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,0,0,0,1,1,1,1]
1176 ; AVX512F-NEXT: vpermq %zmm0, %zmm1, %zmm0
1177 ; AVX512F-NEXT: retq
1179 ; AVX512F-32-LABEL: shuffle_v8i64_00001111:
1180 ; AVX512F-32: # BB#0:
1181 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0]
1182 ; AVX512F-32-NEXT: vpermq %zmm0, %zmm1, %zmm0
1183 ; AVX512F-32-NEXT: retl
1190 ; AVX512F-LABEL: shuffle_v8i64_81a3c5e7:
1191 ; AVX512F: # BB#0:
1192 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm2 = [0,9,2,11,4,13,6,15]
1193 ; AVX512F-NEXT: vpermt2q %zmm0, %zmm2, %zmm1
1194 ; AVX512F-NEXT: vmovaps %zmm1, %zmm0
1195 ; AVX512F-NEXT: retq
1197 ; AVX512F-32-LABEL: shuffle_v8i64_81a3c5e7:
1198 ; AVX512F-32: # BB#0:
1199 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm2 = [0,0,9,0,2,0,11,0,4,0,13,0,6,0,15,0]
1200 ; AVX512F-32-NEXT: vpermt2q %zmm0, %zmm2, %zmm1
1201 ; AVX512F-32-NEXT: vmovaps %zmm1, %zmm0
1202 ; AVX512F-32-NEXT: retl
1209 ; AVX512F-LABEL: shuffle_v8i64_08080808:
1210 ; AVX512F: # BB#0:
1211 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm2 = [0,8,0,8,0,8,0,8]
1212 ; AVX512F-NEXT: vpermt2q %zmm1, %zmm2, %zmm0
1213 ; AVX512F-NEXT: retq
1215 ; AVX512F-32-LABEL: shuffle_v8i64_08080808:
1216 ; AVX512F-32: # BB#0:
1217 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm2 = [0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0]
1218 ; AVX512F-32-NEXT: vpermt2q %zmm1, %zmm2, %zmm0
1219 ; AVX512F-32-NEXT: retl
1226 ; AVX512F-LABEL: shuffle_v8i64_08084c4c:
1227 ; AVX512F: # BB#0:
1228 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm2 = [0,8,0,8,4,12,4,12]
1229 ; AVX512F-NEXT: vpermt2q %zmm1, %zmm2, %zmm0
1230 ; AVX512F-NEXT: retq
1232 ; AVX512F-32-LABEL: shuffle_v8i64_08084c4c:
1233 ; AVX512F-32: # BB#0:
1234 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm2 = [0,0,8,0,0,0,8,0,4,0,12,0,4,0,12,0]
1235 ; AVX512F-32-NEXT: vpermt2q %zmm1, %zmm2, %zmm0
1236 ; AVX512F-32-NEXT: retl
1243 ; AVX512F-LABEL: shuffle_v8i64_8823cc67:
1244 ; AVX512F: # BB#0:
1245 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm2 = [0,0,10,11,4,4,14,15]
1246 ; AVX512F-NEXT: vpermt2q %zmm0, %zmm2, %zmm1
1247 ; AVX512F-NEXT: vmovaps %zmm1, %zmm0
1248 ; AVX512F-NEXT: retq
1250 ; AVX512F-32-LABEL: shuffle_v8i64_8823cc67:
1251 ; AVX512F-32: # BB#0:
1252 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm2 = [0,0,0,0,10,0,11,0,4,0,4,0,14,0,15,0]
1253 ; AVX512F-32-NEXT: vpermt2q %zmm0, %zmm2, %zmm1
1254 ; AVX512F-32-NEXT: vmovaps %zmm1, %zmm0
1255 ; AVX512F-32-NEXT: retl
1262 ; AVX512F-LABEL: shuffle_v8i64_9832dc76:
1263 ; AVX512F: # BB#0:
1264 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm2 = [1,0,11,10,5,4,15,14]
1265 ; AVX512F-NEXT: vpermt2q %zmm0, %zmm2, %zmm1
1266 ; AVX512F-NEXT: vmovaps %zmm1, %zmm0
1267 ; AVX512F-NEXT: retq
1269 ; AVX512F-32-LABEL: shuffle_v8i64_9832dc76:
1270 ; AVX512F-32: # BB#0:
1271 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm2 = [1,0,0,0,11,0,10,0,5,0,4,0,15,0,14,0]
1272 ; AVX512F-32-NEXT: vpermt2q %zmm0, %zmm2, %zmm1
1273 ; AVX512F-32-NEXT: vmovaps %zmm1, %zmm0
1274 ; AVX512F-32-NEXT: retl
1281 ; AVX512F-LABEL: shuffle_v8i64_9810dc54:
1282 ; AVX512F: # BB#0:
1283 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm2 = [1,0,9,8,5,4,13,12]
1284 ; AVX512F-NEXT: vpermt2q %zmm0, %zmm2, %zmm1
1285 ; AVX512F-NEXT: vmovaps %zmm1, %zmm0
1286 ; AVX512F-NEXT: retq
1288 ; AVX512F-32-LABEL: shuffle_v8i64_9810dc54:
1289 ; AVX512F-32: # BB#0:
1290 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm2 = [1,0,0,0,9,0,8,0,5,0,4,0,13,0,12,0]
1291 ; AVX512F-32-NEXT: vpermt2q %zmm0, %zmm2, %zmm1
1292 ; AVX512F-32-NEXT: vmovaps %zmm1, %zmm0
1293 ; AVX512F-32-NEXT: retl
1300 ; AVX512F-LABEL: shuffle_v8i64_08194c5d:
1301 ; AVX512F: # BB#0:
1302 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm2 = [0,8,1,9,4,12,5,13]
1303 ; AVX512F-NEXT: vpermt2q %zmm1, %zmm2, %zmm0
1304 ; AVX512F-NEXT: retq
1306 ; AVX512F-32-LABEL: shuffle_v8i64_08194c5d:
1307 ; AVX512F-32: # BB#0:
1308 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm2 = [0,0,8,0,1,0,9,0,4,0,12,0,5,0,13,0]
1309 ; AVX512F-32-NEXT: vpermt2q %zmm1, %zmm2, %zmm0
1310 ; AVX512F-32-NEXT: retl
1317 ; AVX512F-LABEL: shuffle_v8i64_2a3b6e7f:
1318 ; AVX512F: # BB#0:
1319 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm2 = [2,10,3,11,6,14,7,15]
1320 ; AVX512F-NEXT: vpermt2q %zmm1, %zmm2, %zmm0
1321 ; AVX512F-NEXT: retq
1323 ; AVX512F-32-LABEL: shuffle_v8i64_2a3b6e7f:
1324 ; AVX512F-32: # BB#0:
1325 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm2 = [2,0,10,0,3,0,11,0,6,0,14,0,7,0,15,0]
1326 ; AVX512F-32-NEXT: vpermt2q %zmm1, %zmm2, %zmm0
1327 ; AVX512F-32-NEXT: retl
1334 ; AVX512F-LABEL: shuffle_v8i64_08192a3b:
1335 ; AVX512F: # BB#0:
1336 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm2 = [0,8,1,9,2,10,3,11]
1337 ; AVX512F-NEXT: vpermt2q %zmm1, %zmm2, %zmm0
1338 ; AVX512F-NEXT: retq
1340 ; AVX512F-32-LABEL: shuffle_v8i64_08192a3b:
1341 ; AVX512F-32: # BB#0:
1342 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm2 = [0,0,8,0,1,0,9,0,2,0,10,0,3,0,11,0]
1343 ; AVX512F-32-NEXT: vpermt2q %zmm1, %zmm2, %zmm0
1344 ; AVX512F-32-NEXT: retl
1351 ; AVX512F-LABEL: shuffle_v8i64_08991abb:
1352 ; AVX512F: # BB#0:
1353 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm2 = [8,0,1,1,9,2,3,3]
1354 ; AVX512F-NEXT: vpermt2q %zmm0, %zmm2, %zmm1
1355 ; AVX512F-NEXT: vmovaps %zmm1, %zmm0
1356 ; AVX512F-NEXT: retq
1358 ; AVX512F-32-LABEL: shuffle_v8i64_08991abb:
1359 ; AVX512F-32: # BB#0:
1360 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm2 = [8,0,0,0,1,0,1,0,9,0,2,0,3,0,3,0]
1361 ; AVX512F-32-NEXT: vpermt2q %zmm0, %zmm2, %zmm1
1362 ; AVX512F-32-NEXT: vmovaps %zmm1, %zmm0
1363 ; AVX512F-32-NEXT: retl
1370 ; AVX512F-LABEL: shuffle_v8i64_091b2d3f:
1371 ; AVX512F: # BB#0:
1372 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm2 = [0,9,1,11,2,13,3,15]
1373 ; AVX512F-NEXT: vpermt2q %zmm1, %zmm2, %zmm0
1374 ; AVX512F-NEXT: retq
1376 ; AVX512F-32-LABEL: shuffle_v8i64_091b2d3f:
1377 ; AVX512F-32: # BB#0:
1378 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm2 = [0,0,9,0,1,0,11,0,2,0,13,0,3,0,15,0]
1379 ; AVX512F-32-NEXT: vpermt2q %zmm1, %zmm2, %zmm0
1380 ; AVX512F-32-NEXT: retl
1387 ; AVX512F-LABEL: shuffle_v8i64_09ab1def:
1388 ; AVX512F: # BB#0:
1389 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm2 = [8,1,2,3,9,5,6,7]
1390 ; AVX512F-NEXT: vpermt2q %zmm0, %zmm2, %zmm1
1391 ; AVX512F-NEXT: vmovaps %zmm1, %zmm0
1392 ; AVX512F-NEXT: retq
1394 ; AVX512F-32-LABEL: shuffle_v8i64_09ab1def:
1395 ; AVX512F-32: # BB#0:
1396 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm2 = [8,0,1,0,2,0,3,0,9,0,5,0,6,0,7,0]
1397 ; AVX512F-32-NEXT: vpermt2q %zmm0, %zmm2, %zmm1
1398 ; AVX512F-32-NEXT: vmovaps %zmm1, %zmm0
1399 ; AVX512F-32-NEXT: retl
1406 ; AVX512F-LABEL: shuffle_v8i64_00014445:
1407 ; AVX512F: # BB#0:
1408 ; AVX512F-NEXT: vpermq {{.*#+}} zmm0 = zmm0[0,0,0,1,4,4,4,5]
1409 ; AVX512F-NEXT: retq
1411 ; AVX512F-32-LABEL: shuffle_v8i64_00014445:
1412 ; AVX512F-32: # BB#0:
1413 ; AVX512F-32-NEXT: vpermq {{.*#+}} zmm0 = zmm0[0,0,0,1,4,4,4,5]
1414 ; AVX512F-32-NEXT: retl
1421 ; AVX512F-LABEL: shuffle_v8i64_00204464:
1422 ; AVX512F: # BB#0:
1423 ; AVX512F-NEXT: vpermq {{.*#+}} zmm0 = zmm0[0,0,2,0,4,4,6,4]
1424 ; AVX512F-NEXT: retq
1426 ; AVX512F-32-LABEL: shuffle_v8i64_00204464:
1427 ; AVX512F-32: # BB#0:
1428 ; AVX512F-32-NEXT: vpermq {{.*#+}} zmm0 = zmm0[0,0,2,0,4,4,6,4]
1429 ; AVX512F-32-NEXT: retl
1436 ; AVX512F-LABEL: shuffle_v8i64_03004744:
1437 ; AVX512F: # BB#0:
1438 ; AVX512F-NEXT: vpermq {{.*#+}} zmm0 = zmm0[0,3,0,0,4,7,4,4]
1439 ; AVX512F-NEXT: retq
1441 ; AVX512F-32-LABEL: shuffle_v8i64_03004744:
1442 ; AVX512F-32: # BB#0:
1443 ; AVX512F-32-NEXT: vpermq {{.*#+}} zmm0 = zmm0[0,3,0,0,4,7,4,4]
1444 ; AVX512F-32-NEXT: retl
1451 ; AVX512F-LABEL: shuffle_v8i64_10005444:
1452 ; AVX512F: # BB#0:
1453 ; AVX512F-NEXT: vpermq {{.*#+}} zmm0 = zmm0[1,0,0,0,5,4,4,4]
1454 ; AVX512F-NEXT: retq
1456 ; AVX512F-32-LABEL: shuffle_v8i64_10005444:
1457 ; AVX512F-32: # BB#0:
1458 ; AVX512F-32-NEXT: vpermq {{.*#+}} zmm0 = zmm0[1,0,0,0,5,4,4,4]
1459 ; AVX512F-32-NEXT: retl
1466 ; AVX512F-LABEL: shuffle_v8i64_22006644:
1467 ; AVX512F: # BB#0:
1468 ; AVX512F-NEXT: vpermq {{.*#+}} zmm0 = zmm0[2,2,0,0,6,6,4,4]
1469 ; AVX512F-NEXT: retq
1471 ; AVX512F-32-LABEL: shuffle_v8i64_22006644:
1472 ; AVX512F-32: # BB#0:
1473 ; AVX512F-32-NEXT: vpermq {{.*#+}} zmm0 = zmm0[2,2,0,0,6,6,4,4]
1474 ; AVX512F-32-NEXT: retl
1481 ; AVX512F-LABEL: shuffle_v8i64_33307774:
1482 ; AVX512F: # BB#0:
1483 ; AVX512F-NEXT: vpermq {{.*#+}} zmm0 = zmm0[3,3,3,0,7,7,7,4]
1484 ; AVX512F-NEXT: retq
1486 ; AVX512F-32-LABEL: shuffle_v8i64_33307774:
1487 ; AVX512F-32: # BB#0:
1488 ; AVX512F-32-NEXT: vpermq {{.*#+}} zmm0 = zmm0[3,3,3,0,7,7,7,4]
1489 ; AVX512F-32-NEXT: retl
1496 ; AVX512F-LABEL: shuffle_v8i64_32107654:
1497 ; AVX512F: # BB#0:
1498 ; AVX512F-NEXT: vpermq {{.*#+}} zmm0 = zmm0[3,2,1,0,7,6,5,4]
1499 ; AVX512F-NEXT: retq
1501 ; AVX512F-32-LABEL: shuffle_v8i64_32107654:
1502 ; AVX512F-32: # BB#0:
1503 ; AVX512F-32-NEXT: vpermq {{.*#+}} zmm0 = zmm0[3,2,1,0,7,6,5,4]
1504 ; AVX512F-32-NEXT: retl
1511 ; AVX512F-LABEL: shuffle_v8i64_00234467:
1512 ; AVX512F: # BB#0:
1513 ; AVX512F-NEXT: vpermq {{.*#+}} zmm0 = zmm0[0,0,2,3,4,4,6,7]
1514 ; AVX512F-NEXT: retq
1516 ; AVX512F-32-LABEL: shuffle_v8i64_00234467:
1517 ; AVX512F-32: # BB#0:
1518 ; AVX512F-32-NEXT: vpermq {{.*#+}} zmm0 = zmm0[0,0,2,3,4,4,6,7]
1519 ; AVX512F-32-NEXT: retl
1526 ; AVX512F-LABEL: shuffle_v8i64_00224466:
1527 ; AVX512F: # BB#0:
1528 ; AVX512F-NEXT: vpshufd {{.*#+}} zmm0 = zmm0[0,1,0,1,4,5,4,5,8,9,8,9,12,13,12,13]
1529 ; AVX512F-NEXT: retq
1531 ; AVX512F-32-LABEL: shuffle_v8i64_00224466:
1532 ; AVX512F-32: # BB#0:
1533 ; AVX512F-32-NEXT: vpshufd {{.*#+}} zmm0 = zmm0[0,1,0,1,4,5,4,5,8,9,8,9,12,13,12,13]
1534 ; AVX512F-32-NEXT: retl
1541 ; AVX512F-LABEL: shuffle_v8i64_10325476:
1542 ; AVX512F: # BB#0:
1543 ; AVX512F-NEXT: vpshufd {{.*#+}} zmm0 = zmm0[2,3,0,1,6,7,4,5,10,11,8,9,14,15,12,13]
1544 ; AVX512F-NEXT: retq
1546 ; AVX512F-32-LABEL: shuffle_v8i64_10325476:
1547 ; AVX512F-32: # BB#0:
1548 ; AVX512F-32-NEXT: vpshufd {{.*#+}} zmm0 = zmm0[2,3,0,1,6,7,4,5,10,11,8,9,14,15,12,13]
1549 ; AVX512F-32-NEXT: retl
1556 ; AVX512F-LABEL: shuffle_v8i64_11335577:
1557 ; AVX512F: # BB#0:
1558 ; AVX512F-NEXT: vpshufd {{.*#+}} zmm0 = zmm0[2,3,2,3,6,7,6,7,10,11,10,11,14,15,14,15]
1559 ; AVX512F-NEXT: retq
1561 ; AVX512F-32-LABEL: shuffle_v8i64_11335577:
1562 ; AVX512F-32: # BB#0:
1563 ; AVX512F-32-NEXT: vpshufd {{.*#+}} zmm0 = zmm0[2,3,2,3,6,7,6,7,10,11,10,11,14,15,14,15]
1564 ; AVX512F-32-NEXT: retl
1571 ; AVX512F-LABEL: shuffle_v8i64_10235467:
1572 ; AVX512F: # BB#0:
1573 ; AVX512F-NEXT: vpermq {{.*#+}} zmm0 = zmm0[1,0,2,3,5,4,6,7]
1574 ; AVX512F-NEXT: retq
1576 ; AVX512F-32-LABEL: shuffle_v8i64_10235467:
1577 ; AVX512F-32: # BB#0:
1578 ; AVX512F-32-NEXT: vpermq {{.*#+}} zmm0 = zmm0[1,0,2,3,5,4,6,7]
1579 ; AVX512F-32-NEXT: retl
1586 ; AVX512F-LABEL: shuffle_v8i64_10225466:
1587 ; AVX512F: # BB#0:
1588 ; AVX512F-NEXT: vpermq {{.*#+}} zmm0 = zmm0[1,0,2,2,5,4,6,6]
1589 ; AVX512F-NEXT: retq
1591 ; AVX512F-32-LABEL: shuffle_v8i64_10225466:
1592 ; AVX512F-32: # BB#0:
1593 ; AVX512F-32-NEXT: vpermq {{.*#+}} zmm0 = zmm0[1,0,2,2,5,4,6,6]
1594 ; AVX512F-32-NEXT: retl
1601 ; AVX512F-LABEL: shuffle_v8i64_00015444:
1602 ; AVX512F: # BB#0:
1603 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,0,0,1,5,4,4,4]
1604 ; AVX512F-NEXT: vpermq %zmm0, %zmm1, %zmm0
1605 ; AVX512F-NEXT: retq
1607 ; AVX512F-32-LABEL: shuffle_v8i64_00015444:
1608 ; AVX512F-32: # BB#0:
1609 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,0,0,0,0,0,1,0,5,0,4,0,4,0,4,0]
1610 ; AVX512F-32-NEXT: vpermq %zmm0, %zmm1, %zmm0
1611 ; AVX512F-32-NEXT: retl
1618 ; AVX512F-LABEL: shuffle_v8i64_00204644:
1619 ; AVX512F: # BB#0:
1620 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,0,2,0,4,6,4,4]
1621 ; AVX512F-NEXT: vpermq %zmm0, %zmm1, %zmm0
1622 ; AVX512F-NEXT: retq
1624 ; AVX512F-32-LABEL: shuffle_v8i64_00204644:
1625 ; AVX512F-32: # BB#0:
1626 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,0,0,0,2,0,0,0,4,0,6,0,4,0,4,0]
1627 ; AVX512F-32-NEXT: vpermq %zmm0, %zmm1, %zmm0
1628 ; AVX512F-32-NEXT: retl
1635 ; AVX512F-LABEL: shuffle_v8i64_03004474:
1636 ; AVX512F: # BB#0:
1637 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,3,0,0,4,4,7,4]
1638 ; AVX512F-NEXT: vpermq %zmm0, %zmm1, %zmm0
1639 ; AVX512F-NEXT: retq
1641 ; AVX512F-32-LABEL: shuffle_v8i64_03004474:
1642 ; AVX512F-32: # BB#0:
1643 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,0,3,0,0,0,0,0,4,0,4,0,7,0,4,0]
1644 ; AVX512F-32-NEXT: vpermq %zmm0, %zmm1, %zmm0
1645 ; AVX512F-32-NEXT: retl
1652 ; AVX512F-LABEL: shuffle_v8i64_10004444:
1653 ; AVX512F: # BB#0:
1654 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm1 = [1,0,0,0,4,4,4,4]
1655 ; AVX512F-NEXT: vpermq %zmm0, %zmm1, %zmm0
1656 ; AVX512F-NEXT: retq
1658 ; AVX512F-32-LABEL: shuffle_v8i64_10004444:
1659 ; AVX512F-32: # BB#0:
1660 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm1 = [1,0,0,0,0,0,0,0,4,0,4,0,4,0,4,0]
1661 ; AVX512F-32-NEXT: vpermq %zmm0, %zmm1, %zmm0
1662 ; AVX512F-32-NEXT: retl
1669 ; AVX512F-LABEL: shuffle_v8i64_22006446:
1670 ; AVX512F: # BB#0:
1671 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm1 = [2,2,0,0,6,4,4,6]
1672 ; AVX512F-NEXT: vpermq %zmm0, %zmm1, %zmm0
1673 ; AVX512F-NEXT: retq
1675 ; AVX512F-32-LABEL: shuffle_v8i64_22006446:
1676 ; AVX512F-32: # BB#0:
1677 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm1 = [2,0,2,0,0,0,0,0,6,0,4,0,4,0,6,0]
1678 ; AVX512F-32-NEXT: vpermq %zmm0, %zmm1, %zmm0
1679 ; AVX512F-32-NEXT: retl
1686 ; AVX512F-LABEL: shuffle_v8i64_33307474:
1687 ; AVX512F: # BB#0:
1688 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm1 = [3,3,3,0,7,4,7,4]
1689 ; AVX512F-NEXT: vpermq %zmm0, %zmm1, %zmm0
1690 ; AVX512F-NEXT: retq
1692 ; AVX512F-32-LABEL: shuffle_v8i64_33307474:
1693 ; AVX512F-32: # BB#0:
1694 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm1 = [3,0,3,0,3,0,0,0,7,0,4,0,7,0,4,0]
1695 ; AVX512F-32-NEXT: vpermq %zmm0, %zmm1, %zmm0
1696 ; AVX512F-32-NEXT: retl
1703 ; AVX512F-LABEL: shuffle_v8i64_32104567:
1704 ; AVX512F: # BB#0:
1705 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm1 = [3,2,1,0,4,5,6,7]
1706 ; AVX512F-NEXT: vpermq %zmm0, %zmm1, %zmm0
1707 ; AVX512F-NEXT: retq
1709 ; AVX512F-32-LABEL: shuffle_v8i64_32104567:
1710 ; AVX512F-32: # BB#0:
1711 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm1 = [3,0,2,0,1,0,0,0,4,0,5,0,6,0,7,0]
1712 ; AVX512F-32-NEXT: vpermq %zmm0, %zmm1, %zmm0
1713 ; AVX512F-32-NEXT: retl
1720 ; AVX512F-LABEL: shuffle_v8i64_00236744:
1721 ; AVX512F: # BB#0:
1722 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,0,2,3,6,7,4,4]
1723 ; AVX512F-NEXT: vpermq %zmm0, %zmm1, %zmm0
1724 ; AVX512F-NEXT: retq
1726 ; AVX512F-32-LABEL: shuffle_v8i64_00236744:
1727 ; AVX512F-32: # BB#0:
1728 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,0,0,0,2,0,3,0,6,0,7,0,4,0,4,0]
1729 ; AVX512F-32-NEXT: vpermq %zmm0, %zmm1, %zmm0
1730 ; AVX512F-32-NEXT: retl
1737 ; AVX512F-LABEL: shuffle_v8i64_00226644:
1738 ; AVX512F: # BB#0:
1739 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,0,2,2,6,6,4,4]
1740 ; AVX512F-NEXT: vpermq %zmm0, %zmm1, %zmm0
1741 ; AVX512F-NEXT: retq
1743 ; AVX512F-32-LABEL: shuffle_v8i64_00226644:
1744 ; AVX512F-32: # BB#0:
1745 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,0,0,0,2,0,2,0,6,0,6,0,4,0,4,0]
1746 ; AVX512F-32-NEXT: vpermq %zmm0, %zmm1, %zmm0
1747 ; AVX512F-32-NEXT: retl
1754 ; AVX512F-LABEL: shuffle_v8i64_10324567:
1755 ; AVX512F: # BB#0:
1756 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm1 = [1,0,3,2,4,5,6,7]
1757 ; AVX512F-NEXT: vpermq %zmm0, %zmm1, %zmm0
1758 ; AVX512F-NEXT: retq
1760 ; AVX512F-32-LABEL: shuffle_v8i64_10324567:
1761 ; AVX512F-32: # BB#0:
1762 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm1 = [1,0,0,0,3,0,2,0,4,0,5,0,6,0,7,0]
1763 ; AVX512F-32-NEXT: vpermq %zmm0, %zmm1, %zmm0
1764 ; AVX512F-32-NEXT: retl
1771 ; AVX512F-LABEL: shuffle_v8i64_11334567:
1772 ; AVX512F: # BB#0:
1773 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm1 = [1,1,3,3,4,5,6,7]
1774 ; AVX512F-NEXT: vpermq %zmm0, %zmm1, %zmm0
1775 ; AVX512F-NEXT: retq
1777 ; AVX512F-32-LABEL: shuffle_v8i64_11334567:
1778 ; AVX512F-32: # BB#0:
1779 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm1 = [1,0,1,0,3,0,3,0,4,0,5,0,6,0,7,0]
1780 ; AVX512F-32-NEXT: vpermq %zmm0, %zmm1, %zmm0
1781 ; AVX512F-32-NEXT: retl
1788 ; AVX512F-LABEL: shuffle_v8i64_01235467:
1789 ; AVX512F: # BB#0:
1790 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,1,2,3,5,4,6,7]
1791 ; AVX512F-NEXT: vpermq %zmm0, %zmm1, %zmm0
1792 ; AVX512F-NEXT: retq
1794 ; AVX512F-32-LABEL: shuffle_v8i64_01235467:
1795 ; AVX512F-32: # BB#0:
1796 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,0,1,0,2,0,3,0,5,0,4,0,6,0,7,0]
1797 ; AVX512F-32-NEXT: vpermq %zmm0, %zmm1, %zmm0
1798 ; AVX512F-32-NEXT: retl
1805 ; AVX512F-LABEL: shuffle_v8i64_01235466:
1806 ; AVX512F: # BB#0:
1807 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,1,2,3,5,4,6,6]
1808 ; AVX512F-NEXT: vpermq %zmm0, %zmm1, %zmm0
1809 ; AVX512F-NEXT: retq
1811 ; AVX512F-32-LABEL: shuffle_v8i64_01235466:
1812 ; AVX512F-32: # BB#0:
1813 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,0,1,0,2,0,3,0,5,0,4,0,6,0,6,0]
1814 ; AVX512F-32-NEXT: vpermq %zmm0, %zmm1, %zmm0
1815 ; AVX512F-32-NEXT: retl
1822 ; AVX512F-LABEL: shuffle_v8i64_002u6u44:
1823 ; AVX512F: # BB#0:
1824 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm1 = <0,0,2,u,6,u,4,4>
1825 ; AVX512F-NEXT: vpermq %zmm0, %zmm1, %zmm0
1826 ; AVX512F-NEXT: retq
1828 ; AVX512F-32-LABEL: shuffle_v8i64_002u6u44:
1829 ; AVX512F-32: # BB#0:
1830 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm1 = <0,0,0,0,2,0,u,u,6,0,u,u,4,0,4,0>
1831 ; AVX512F-32-NEXT: vpermq %zmm0, %zmm1, %zmm0
1832 ; AVX512F-32-NEXT: retl
1839 ; AVX512F-LABEL: shuffle_v8i64_00uu66uu:
1840 ; AVX512F: # BB#0:
1841 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm1 = <0,0,u,u,6,6,u,u>
1842 ; AVX512F-NEXT: vpermq %zmm0, %zmm1, %zmm0
1843 ; AVX512F-NEXT: retq
1845 ; AVX512F-32-LABEL: shuffle_v8i64_00uu66uu:
1846 ; AVX512F-32: # BB#0:
1847 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm1 = <0,0,0,0,u,u,u,u,6,0,6,0,u,u,u,u>
1848 ; AVX512F-32-NEXT: vpermq %zmm0, %zmm1, %zmm0
1849 ; AVX512F-32-NEXT: retl
1856 ; AVX512F-LABEL: shuffle_v8i64_103245uu:
1857 ; AVX512F: # BB#0:
1858 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm1 = <1,0,3,2,4,5,u,u>
1859 ; AVX512F-NEXT: vpermq %zmm0, %zmm1, %zmm0
1860 ; AVX512F-NEXT: retq
1862 ; AVX512F-32-LABEL: shuffle_v8i64_103245uu:
1863 ; AVX512F-32: # BB#0:
1864 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm1 = <1,0,0,0,3,0,2,0,4,0,5,0,u,u,u,u>
1865 ; AVX512F-32-NEXT: vpermq %zmm0, %zmm1, %zmm0
1866 ; AVX512F-32-NEXT: retl
1873 ; AVX512F-LABEL: shuffle_v8i64_1133uu67:
1874 ; AVX512F: # BB#0:
1875 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm1 = <1,1,3,3,u,u,6,7>
1876 ; AVX512F-NEXT: vpermq %zmm0, %zmm1, %zmm0
1877 ; AVX512F-NEXT: retq
1879 ; AVX512F-32-LABEL: shuffle_v8i64_1133uu67:
1880 ; AVX512F-32: # BB#0:
1881 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm1 = <1,0,1,0,3,0,3,0,u,u,u,u,6,0,7,0>
1882 ; AVX512F-32-NEXT: vpermq %zmm0, %zmm1, %zmm0
1883 ; AVX512F-32-NEXT: retl
1890 ; AVX512F-LABEL: shuffle_v8i64_0uu354uu:
1891 ; AVX512F: # BB#0:
1892 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm1 = <0,u,u,3,5,4,u,u>
1893 ; AVX512F-NEXT: vpermq %zmm0, %zmm1, %zmm0
1894 ; AVX512F-NEXT: retq
1896 ; AVX512F-32-LABEL: shuffle_v8i64_0uu354uu:
1897 ; AVX512F-32: # BB#0:
1898 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm1 = <0,0,u,u,u,u,3,0,5,0,4,0,u,u,u,u>
1899 ; AVX512F-32-NEXT: vpermq %zmm0, %zmm1, %zmm0
1900 ; AVX512F-32-NEXT: retl
1907 ; AVX512F-LABEL: shuffle_v8i64_uuu3uu66:
1908 ; AVX512F: # BB#0:
1909 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm1 = <u,u,u,3,u,u,6,6>
1910 ; AVX512F-NEXT: vpermq %zmm0, %zmm1, %zmm0
1911 ; AVX512F-NEXT: retq
1913 ; AVX512F-32-LABEL: shuffle_v8i64_uuu3uu66:
1914 ; AVX512F-32: # BB#0:
1915 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm1 = <u,u,u,u,u,u,3,0,u,u,u,u,6,0,6,0>
1916 ; AVX512F-32-NEXT: vpermq %zmm0, %zmm1, %zmm0
1917 ; AVX512F-32-NEXT: retl
1924 ; AVX512F-LABEL: shuffle_v8i64_6caa87e5:
1925 ; AVX512F: # BB#0:
1926 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm2 = [14,4,2,2,0,15,6,13]
1927 ; AVX512F-NEXT: vpermt2q %zmm0, %zmm2, %zmm1
1928 ; AVX512F-NEXT: vmovaps %zmm1, %zmm0
1929 ; AVX512F-NEXT: retq
1931 ; AVX512F-32-LABEL: shuffle_v8i64_6caa87e5:
1932 ; AVX512F-32: # BB#0:
1933 ; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm2 = [14,0,4,0,2,0,2,0,0,0,15,0,6,0,13,0]
1934 ; AVX512F-32-NEXT: vpermt2q %zmm0, %zmm2, %zmm1
1935 ; AVX512F-32-NEXT: vmovaps %zmm1, %zmm0
1936 ; AVX512F-32-NEXT: retl
1943 ; AVX512F-LABEL: shuffle_v8f64_082a4c6e:
1944 ; AVX512F: # BB#0:
1945 ; AVX512F-NEXT: vunpcklpd {{.*#+}} zmm0 = zmm0[0],zmm1[0],zmm0[2],zmm1[2],zmm0[4],zmm1[4],zmm0[6…
1946 ; AVX512F-NEXT: retq
1948 ; AVX512F-32-LABEL: shuffle_v8f64_082a4c6e:
1949 ; AVX512F-32: # BB#0:
1950 ; AVX512F-32-NEXT: vunpcklpd {{.*#+}} zmm0 = zmm0[0],zmm1[0],zmm0[2],zmm1[2],zmm0[4],zmm1[4],zmm…
1951 ; AVX512F-32-NEXT: retl
1958 ; AVX512F-LABEL: shuffle_v8f64_0z2z4z6z:
1959 ; AVX512F: # BB#0:
1960 ; AVX512F-NEXT: vpxord %zmm1, %zmm1, %zmm1
1961 ; AVX512F-NEXT: vunpcklpd {{.*#+}} zmm0 = zmm0[0],zmm1[0],zmm0[2],zmm1[2],zmm0[4],zmm1[4],zmm0[6…
1962 ; AVX512F-NEXT: retq
1964 ; AVX512F-32-LABEL: shuffle_v8f64_0z2z4z6z:
1965 ; AVX512F-32: # BB#0:
1966 ; AVX512F-32-NEXT: vpxord %zmm1, %zmm1, %zmm1
1967 ; AVX512F-32-NEXT: vunpcklpd {{.*#+}} zmm0 = zmm0[0],zmm1[0],zmm0[2],zmm1[2],zmm0[4],zmm1[4],zmm…
1968 ; AVX512F-32-NEXT: retl
1975 ; AVX512F-LABEL: shuffle_v8i64_082a4c6e:
1976 ; AVX512F: # BB#0:
1977 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} zmm0 = zmm0[0],zmm1[0],zmm0[2],zmm1[2],zmm0[4],zmm1[4],zmm0…
1978 ; AVX512F-NEXT: retq
1980 ; AVX512F-32-LABEL: shuffle_v8i64_082a4c6e:
1981 ; AVX512F-32: # BB#0:
1982 ; AVX512F-32-NEXT: vpunpcklqdq {{.*#+}} zmm0 = zmm0[0],zmm1[0],zmm0[2],zmm1[2],zmm0[4],zmm1[4],z…
1983 ; AVX512F-32-NEXT: retl
1990 ; AVX512F-LABEL: shuffle_v8i64_z8zazcze:
1991 ; AVX512F: # BB#0:
1992 ; AVX512F-NEXT: vpxord %zmm0, %zmm0, %zmm0
1993 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} zmm0 = zmm0[0],zmm1[0],zmm0[2],zmm1[2],zmm0[4],zmm1[4],zmm0…
1994 ; AVX512F-NEXT: retq
1996 ; AVX512F-32-LABEL: shuffle_v8i64_z8zazcze:
1997 ; AVX512F-32: # BB#0:
1998 ; AVX512F-32-NEXT: vpxord %zmm0, %zmm0, %zmm0
1999 ; AVX512F-32-NEXT: vpunpcklqdq {{.*#+}} zmm0 = zmm0[0],zmm1[0],zmm0[2],zmm1[2],zmm0[4],zmm1[4],z…
2000 ; AVX512F-32-NEXT: retl
2007 ; AVX512F-LABEL: shuffle_v8f64_193b5d7f:
2008 ; AVX512F: # BB#0:
2009 ; AVX512F-NEXT: vunpckhpd {{.*#+}} zmm0 = zmm0[1],zmm1[1],zmm0[3],zmm1[3],zmm0[5],zmm1[5],zmm0[7…
2010 ; AVX512F-NEXT: retq
2012 ; AVX512F-32-LABEL: shuffle_v8f64_193b5d7f:
2013 ; AVX512F-32: # BB#0:
2014 ; AVX512F-32-NEXT: vunpckhpd {{.*#+}} zmm0 = zmm0[1],zmm1[1],zmm0[3],zmm1[3],zmm0[5],zmm1[5],zmm…
2015 ; AVX512F-32-NEXT: retl
2022 ; AVX512F-LABEL: shuffle_v8f64_z9zbzdzf:
2023 ; AVX512F: # BB#0:
2024 ; AVX512F-NEXT: vpxord %zmm0, %zmm0, %zmm0
2025 ; AVX512F-NEXT: vunpckhpd {{.*#+}} zmm0 = zmm0[1],zmm1[1],zmm0[3],zmm1[3],zmm0[5],zmm1[5],zmm0[7…
2026 ; AVX512F-NEXT: retq
2028 ; AVX512F-32-LABEL: shuffle_v8f64_z9zbzdzf:
2029 ; AVX512F-32: # BB#0:
2030 ; AVX512F-32-NEXT: vpxord %zmm0, %zmm0, %zmm0
2031 ; AVX512F-32-NEXT: vunpckhpd {{.*#+}} zmm0 = zmm0[1],zmm1[1],zmm0[3],zmm1[3],zmm0[5],zmm1[5],zmm…
2032 ; AVX512F-32-NEXT: retl
2039 ; AVX512F-LABEL: shuffle_v8i64_193b5d7f:
2040 ; AVX512F: # BB#0:
2041 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} zmm0 = zmm0[1],zmm1[1],zmm0[3],zmm1[3],zmm0[5],zmm1[5],zmm0…
2042 ; AVX512F-NEXT: retq
2044 ; AVX512F-32-LABEL: shuffle_v8i64_193b5d7f:
2045 ; AVX512F-32: # BB#0:
2046 ; AVX512F-32-NEXT: vpunpckhqdq {{.*#+}} zmm0 = zmm0[1],zmm1[1],zmm0[3],zmm1[3],zmm0[5],zmm1[5],z…
2047 ; AVX512F-32-NEXT: retl
2054 ; AVX512F-LABEL: shuffle_v8i64_1z3z5z7z:
2055 ; AVX512F: # BB#0:
2056 ; AVX512F-NEXT: vpxord %zmm1, %zmm1, %zmm1
2057 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} zmm0 = zmm0[1],zmm1[1],zmm0[3],zmm1[3],zmm0[5],zmm1[5],zmm0…
2058 ; AVX512F-NEXT: retq
2060 ; AVX512F-32-LABEL: shuffle_v8i64_1z3z5z7z:
2061 ; AVX512F-32: # BB#0:
2062 ; AVX512F-32-NEXT: vpxord %zmm1, %zmm1, %zmm1
2063 ; AVX512F-32-NEXT: vpunpckhqdq {{.*#+}} zmm0 = zmm0[1],zmm1[1],zmm0[3],zmm1[3],zmm0[5],zmm1[5],z…
2064 ; AVX512F-32-NEXT: retl
2070 ; AVX512F-LABEL: test_vshuff64x2_512:
2071 ; AVX512F: # BB#0:
2072 ; AVX512F-NEXT: vshuff64x2 {{.*#+}} zmm0 = zmm0[0,1,4,5],zmm1[2,3,0,1]
2073 ; AVX512F-NEXT: retq
2075 ; AVX512F-32-LABEL: test_vshuff64x2_512:
2076 ; AVX512F-32: # BB#0:
2077 ; AVX512F-32-NEXT: vshuff64x2 {{.*#+}} zmm0 = zmm0[0,1,4,5],zmm1[2,3,0,1]
2078 ; AVX512F-32-NEXT: retl
2084 ; AVX512F-LABEL: test_vshuff64x2_512_maskz:
2085 ; AVX512F: # BB#0:
2086 ; AVX512F-NEXT: vpmovsxwq %xmm2, %zmm2
2087 ; AVX512F-NEXT: vpsllq $63, %zmm2, %zmm2
2088 ; AVX512F-NEXT: vptestmq %zmm2, %zmm2, %k1
2089 ; AVX512F-NEXT: vshuff64x2 {{.*#+}} zmm0 {%k1} {z} = zmm0[0,1,4,5],zmm1[2,3,0,1]
2090 ; AVX512F-NEXT: retq
2092 ; AVX512F-32-LABEL: test_vshuff64x2_512_maskz:
2093 ; AVX512F-32: # BB#0:
2094 ; AVX512F-32-NEXT: vpmovsxwq %xmm2, %zmm2
2095 ; AVX512F-32-NEXT: vpsllvq {{\.LCPI.*}}, %zmm2, %zmm2
2096 ; AVX512F-32-NEXT: vptestmq %zmm2, %zmm2, %k1
2097 ; AVX512F-32-NEXT: vshuff64x2 {{.*#+}} zmm0 {%k1} {z} = zmm0[0,1,4,5],zmm1[2,3,0,1]
2098 ; AVX512F-32-NEXT: retl
2105 ; AVX512F-LABEL: test_vshufi64x2_512_mask:
2106 ; AVX512F: # BB#0:
2107 ; AVX512F-NEXT: vpmovsxwq %xmm2, %zmm2
2108 ; AVX512F-NEXT: vpsllq $63, %zmm2, %zmm2
2109 ; AVX512F-NEXT: vptestmq %zmm2, %zmm2, %k1
2110 ; AVX512F-NEXT: vshufi64x2 {{.*#+}} zmm0 {%k1} = zmm0[0,1,4,5],zmm1[2,3,0,1]
2111 ; AVX512F-NEXT: retq
2113 ; AVX512F-32-LABEL: test_vshufi64x2_512_mask:
2114 ; AVX512F-32: # BB#0:
2115 ; AVX512F-32-NEXT: vpmovsxwq %xmm2, %zmm2
2116 ; AVX512F-32-NEXT: vpsllvq {{\.LCPI.*}}, %zmm2, %zmm2
2117 ; AVX512F-32-NEXT: vptestmq %zmm2, %zmm2, %k1
2118 ; AVX512F-32-NEXT: vshufi64x2 {{.*#+}} zmm0 {%k1} = zmm0[0,1,4,5],zmm1[2,3,0,1]
2119 ; AVX512F-32-NEXT: retl
2126 ; AVX512F-LABEL: test_vshuff64x2_512_mem:
2127 ; AVX512F: # BB#0:
2128 ; AVX512F-NEXT: vshuff64x2 {{.*#+}} zmm0 = zmm0[0,1,4,5],mem[2,3,0,1]
2129 ; AVX512F-NEXT: retq
2131 ; AVX512F-32-LABEL: test_vshuff64x2_512_mem:
2132 ; AVX512F-32: # BB#0:
2133 ; AVX512F-32-NEXT: movl {{[0-9]+}}(%esp), %eax
2134 ; AVX512F-32-NEXT: vshuff64x2 {{.*#+}} zmm0 = zmm0[0,1,4,5],mem[2,3,0,1]
2135 ; AVX512F-32-NEXT: retl
2142 ; AVX512F-LABEL: test_vshuff64x2_512_mem_mask:
2143 ; AVX512F: # BB#0:
2144 ; AVX512F-NEXT: vpmovsxwq %xmm1, %zmm1
2145 ; AVX512F-NEXT: vpsllq $63, %zmm1, %zmm1
2146 ; AVX512F-NEXT: vptestmq %zmm1, %zmm1, %k1
2147 ; AVX512F-NEXT: vshuff64x2 {{.*#+}} zmm0 {%k1} = zmm0[0,1,4,5],mem[2,3,0,1]
2148 ; AVX512F-NEXT: retq
2150 ; AVX512F-32-LABEL: test_vshuff64x2_512_mem_mask:
2151 ; AVX512F-32: # BB#0:
2152 ; AVX512F-32-NEXT: vpmovsxwq %xmm1, %zmm1
2153 ; AVX512F-32-NEXT: vpsllvq {{\.LCPI.*}}, %zmm1, %zmm1
2154 ; AVX512F-32-NEXT: vptestmq %zmm1, %zmm1, %k1
2155 ; AVX512F-32-NEXT: movl {{[0-9]+}}(%esp), %eax
2156 ; AVX512F-32-NEXT: vshuff64x2 {{.*#+}} zmm0 {%k1} = zmm0[0,1,4,5],mem[2,3,0,1]
2157 ; AVX512F-32-NEXT: retl
2165 ; AVX512F-LABEL: test_vshuff64x2_512_mem_maskz:
2166 ; AVX512F: # BB#0:
2167 ; AVX512F-NEXT: vpmovsxwq %xmm1, %zmm1
2168 ; AVX512F-NEXT: vpsllq $63, %zmm1, %zmm1
2169 ; AVX512F-NEXT: vptestmq %zmm1, %zmm1, %k1
2170 ; AVX512F-NEXT: vshuff64x2 {{.*#+}} zmm0 {%k1} {z} = zmm0[0,1,4,5],mem[2,3,0,1]
2171 ; AVX512F-NEXT: retq
2173 ; AVX512F-32-LABEL: test_vshuff64x2_512_mem_maskz:
2174 ; AVX512F-32: # BB#0:
2175 ; AVX512F-32-NEXT: vpmovsxwq %xmm1, %zmm1
2176 ; AVX512F-32-NEXT: vpsllvq {{\.LCPI.*}}, %zmm1, %zmm1
2177 ; AVX512F-32-NEXT: vptestmq %zmm1, %zmm1, %k1
2178 ; AVX512F-32-NEXT: movl {{[0-9]+}}(%esp), %eax
2179 ; AVX512F-32-NEXT: vshuff64x2 {{.*#+}} zmm0 {%k1} {z} = zmm0[0,1,4,5],mem[2,3,0,1]
2180 ; AVX512F-32-NEXT: retl
2188 ; AVX512F-LABEL: test_vshuff32x4_512:
2189 ; AVX512F: # BB#0:
2190 ; AVX512F-NEXT: vshuff64x2 {{.*#+}} zmm0 = zmm0[0,1,2,3],zmm1[2,3,0,1]
2191 ; AVX512F-NEXT: retq
2193 ; AVX512F-32-LABEL: test_vshuff32x4_512:
2194 ; AVX512F-32: # BB#0:
2195 ; AVX512F-32-NEXT: vshuff64x2 {{.*#+}} zmm0 = zmm0[0,1,2,3],zmm1[2,3,0,1]
2196 ; AVX512F-32-NEXT: retl
2202 ; AVX512F-LABEL: shuffle_v8f64_23014567:
2203 ; AVX512F: # BB#0:
2204 ; AVX512F-NEXT: vshuff64x2 {{.*#+}} zmm0 = zmm1[2,3,0,1,4,5,6,7]
2205 ; AVX512F-NEXT: retq
2207 ; AVX512F-32-LABEL: shuffle_v8f64_23014567:
2208 ; AVX512F-32: # BB#0:
2209 ; AVX512F-32-NEXT: vshuff64x2 {{.*#+}} zmm0 = zmm1[2,3,0,1,4,5,6,7]
2210 ; AVX512F-32-NEXT: retl
2216 ; AVX512F-LABEL: shuffle_v8f64_2301uu67:
2217 ; AVX512F: # BB#0:
2218 ; AVX512F-NEXT: vshuff64x2 {{.*#+}} zmm0 = zmm1[2,3,0,1,0,1,6,7]
2219 ; AVX512F-NEXT: retq
2221 ; AVX512F-32-LABEL: shuffle_v8f64_2301uu67:
2222 ; AVX512F-32: # BB#0:
2223 ; AVX512F-32-NEXT: vshuff64x2 {{.*#+}} zmm0 = zmm1[2,3,0,1,0,1,6,7]
2224 ; AVX512F-32-NEXT: retl
2230 ; AVX512F-LABEL: shuffle_v8f64_2301uuuu:
2231 ; AVX512F: # BB#0:
2232 ; AVX512F-NEXT: vpermpd {{.*#+}} zmm0 = zmm1[2,3,0,1,6,7,4,5]
2233 ; AVX512F-NEXT: retq
2235 ; AVX512F-32-LABEL: shuffle_v8f64_2301uuuu:
2236 ; AVX512F-32: # BB#0:
2237 ; AVX512F-32-NEXT: vpermpd {{.*#+}} zmm0 = zmm1[2,3,0,1,6,7,4,5]
2238 ; AVX512F-32-NEXT: retl
2244 ; AVX512F-LABEL: shuffle_v8f64_uuu2301:
2245 ; AVX512F: # BB#0:
2246 ; AVX512F-NEXT: vshuff64x2 {{.*#+}} zmm0 = zmm0[0,1,0,1],zmm1[2,3,0,1]
2247 ; AVX512F-NEXT: retq
2249 ; AVX512F-32-LABEL: shuffle_v8f64_uuu2301:
2250 ; AVX512F-32: # BB#0:
2251 ; AVX512F-32-NEXT: vshuff64x2 {{.*#+}} zmm0 = zmm0[0,1,0,1],zmm1[2,3,0,1]
2252 ; AVX512F-32-NEXT: retl