Lines Matching refs:AVX512F
2 …< %s -mtriple=x86_64-unknown-unknown -mattr=+avx512f | FileCheck %s --check-prefixes=AVX512,AVX512F
95 ; AVX512F-LABEL: var_shuffle_v32i16:
96 ; AVX512F: # %bb.0:
97 ; AVX512F-NEXT: pushq %rbp
98 ; AVX512F-NEXT: movq %rsp, %rbp
99 ; AVX512F-NEXT: andq $-64, %rsp
100 ; AVX512F-NEXT: subq $128, %rsp
101 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm2
102 ; AVX512F-NEXT: vextracti32x4 $2, %zmm1, %xmm3
103 ; AVX512F-NEXT: vextracti32x4 $3, %zmm1, %xmm4
104 ; AVX512F-NEXT: vmovd %xmm4, %eax
105 ; AVX512F-NEXT: vmovaps %zmm0, (%rsp)
106 ; AVX512F-NEXT: andl $31, %eax
107 ; AVX512F-NEXT: movzwl (%rsp,%rax,2), %eax
108 ; AVX512F-NEXT: vmovd %eax, %xmm0
109 ; AVX512F-NEXT: vpextrw $1, %xmm4, %eax
110 ; AVX512F-NEXT: andl $31, %eax
111 ; AVX512F-NEXT: vpinsrw $1, (%rsp,%rax,2), %xmm0, %xmm0
112 ; AVX512F-NEXT: vpextrw $2, %xmm4, %eax
113 ; AVX512F-NEXT: andl $31, %eax
114 ; AVX512F-NEXT: vpinsrw $2, (%rsp,%rax,2), %xmm0, %xmm0
115 ; AVX512F-NEXT: vpextrw $3, %xmm4, %eax
116 ; AVX512F-NEXT: andl $31, %eax
117 ; AVX512F-NEXT: vpinsrw $3, (%rsp,%rax,2), %xmm0, %xmm0
118 ; AVX512F-NEXT: vpextrw $4, %xmm4, %eax
119 ; AVX512F-NEXT: andl $31, %eax
120 ; AVX512F-NEXT: vpinsrw $4, (%rsp,%rax,2), %xmm0, %xmm0
121 ; AVX512F-NEXT: vpextrw $5, %xmm4, %eax
122 ; AVX512F-NEXT: andl $31, %eax
123 ; AVX512F-NEXT: vpinsrw $5, (%rsp,%rax,2), %xmm0, %xmm0
124 ; AVX512F-NEXT: vpextrw $6, %xmm4, %eax
125 ; AVX512F-NEXT: andl $31, %eax
126 ; AVX512F-NEXT: vpinsrw $6, (%rsp,%rax,2), %xmm0, %xmm0
127 ; AVX512F-NEXT: vpextrw $7, %xmm4, %eax
128 ; AVX512F-NEXT: andl $31, %eax
129 ; AVX512F-NEXT: vpinsrw $7, (%rsp,%rax,2), %xmm0, %xmm0
130 ; AVX512F-NEXT: vmovd %xmm3, %eax
131 ; AVX512F-NEXT: andl $31, %eax
132 ; AVX512F-NEXT: movzwl (%rsp,%rax,2), %eax
133 ; AVX512F-NEXT: vmovd %eax, %xmm4
134 ; AVX512F-NEXT: vpextrw $1, %xmm3, %eax
135 ; AVX512F-NEXT: andl $31, %eax
136 ; AVX512F-NEXT: vpinsrw $1, (%rsp,%rax,2), %xmm4, %xmm4
137 ; AVX512F-NEXT: vpextrw $2, %xmm3, %eax
138 ; AVX512F-NEXT: andl $31, %eax
139 ; AVX512F-NEXT: vpinsrw $2, (%rsp,%rax,2), %xmm4, %xmm4
140 ; AVX512F-NEXT: vpextrw $3, %xmm3, %eax
141 ; AVX512F-NEXT: andl $31, %eax
142 ; AVX512F-NEXT: vpinsrw $3, (%rsp,%rax,2), %xmm4, %xmm4
143 ; AVX512F-NEXT: vpextrw $4, %xmm3, %eax
144 ; AVX512F-NEXT: andl $31, %eax
145 ; AVX512F-NEXT: vpinsrw $4, (%rsp,%rax,2), %xmm4, %xmm4
146 ; AVX512F-NEXT: vpextrw $5, %xmm3, %eax
147 ; AVX512F-NEXT: andl $31, %eax
148 ; AVX512F-NEXT: vpinsrw $5, (%rsp,%rax,2), %xmm4, %xmm4
149 ; AVX512F-NEXT: vpextrw $6, %xmm3, %eax
150 ; AVX512F-NEXT: andl $31, %eax
151 ; AVX512F-NEXT: vpinsrw $6, (%rsp,%rax,2), %xmm4, %xmm4
152 ; AVX512F-NEXT: vpextrw $7, %xmm3, %eax
153 ; AVX512F-NEXT: andl $31, %eax
154 ; AVX512F-NEXT: vpinsrw $7, (%rsp,%rax,2), %xmm4, %xmm3
155 ; AVX512F-NEXT: vmovd %xmm2, %eax
156 ; AVX512F-NEXT: andl $31, %eax
157 ; AVX512F-NEXT: movzwl (%rsp,%rax,2), %eax
158 ; AVX512F-NEXT: vmovd %eax, %xmm4
159 ; AVX512F-NEXT: vpextrw $1, %xmm2, %eax
160 ; AVX512F-NEXT: andl $31, %eax
161 ; AVX512F-NEXT: vpinsrw $1, (%rsp,%rax,2), %xmm4, %xmm4
162 ; AVX512F-NEXT: vpextrw $2, %xmm2, %eax
163 ; AVX512F-NEXT: andl $31, %eax
164 ; AVX512F-NEXT: vpinsrw $2, (%rsp,%rax,2), %xmm4, %xmm4
165 ; AVX512F-NEXT: vpextrw $3, %xmm2, %eax
166 ; AVX512F-NEXT: andl $31, %eax
167 ; AVX512F-NEXT: vpinsrw $3, (%rsp,%rax,2), %xmm4, %xmm4
168 ; AVX512F-NEXT: vpextrw $4, %xmm2, %eax
169 ; AVX512F-NEXT: andl $31, %eax
170 ; AVX512F-NEXT: vpinsrw $4, (%rsp,%rax,2), %xmm4, %xmm4
171 ; AVX512F-NEXT: vpextrw $5, %xmm2, %eax
172 ; AVX512F-NEXT: andl $31, %eax
173 ; AVX512F-NEXT: movzwl (%rsp,%rax,2), %eax
174 ; AVX512F-NEXT: vpinsrw $5, %eax, %xmm4, %xmm4
175 ; AVX512F-NEXT: vpextrw $6, %xmm2, %eax
176 ; AVX512F-NEXT: andl $31, %eax
177 ; AVX512F-NEXT: movzwl (%rsp,%rax,2), %eax
178 ; AVX512F-NEXT: vpinsrw $6, %eax, %xmm4, %xmm4
179 ; AVX512F-NEXT: vpextrw $7, %xmm2, %eax
180 ; AVX512F-NEXT: andl $31, %eax
181 ; AVX512F-NEXT: movzwl (%rsp,%rax,2), %eax
182 ; AVX512F-NEXT: vpinsrw $7, %eax, %xmm4, %xmm2
183 ; AVX512F-NEXT: vmovd %xmm1, %eax
184 ; AVX512F-NEXT: andl $31, %eax
185 ; AVX512F-NEXT: movzwl (%rsp,%rax,2), %eax
186 ; AVX512F-NEXT: vmovd %eax, %xmm4
187 ; AVX512F-NEXT: vpextrw $1, %xmm1, %eax
188 ; AVX512F-NEXT: andl $31, %eax
189 ; AVX512F-NEXT: vpinsrw $1, (%rsp,%rax,2), %xmm4, %xmm4
190 ; AVX512F-NEXT: vpextrw $2, %xmm1, %eax
191 ; AVX512F-NEXT: andl $31, %eax
192 ; AVX512F-NEXT: vpinsrw $2, (%rsp,%rax,2), %xmm4, %xmm4
193 ; AVX512F-NEXT: vpextrw $3, %xmm1, %eax
194 ; AVX512F-NEXT: andl $31, %eax
195 ; AVX512F-NEXT: vpinsrw $3, (%rsp,%rax,2), %xmm4, %xmm4
196 ; AVX512F-NEXT: vpextrw $4, %xmm1, %eax
197 ; AVX512F-NEXT: andl $31, %eax
198 ; AVX512F-NEXT: vpinsrw $4, (%rsp,%rax,2), %xmm4, %xmm4
199 ; AVX512F-NEXT: vpextrw $5, %xmm1, %eax
200 ; AVX512F-NEXT: andl $31, %eax
201 ; AVX512F-NEXT: vpinsrw $5, (%rsp,%rax,2), %xmm4, %xmm4
202 ; AVX512F-NEXT: vpextrw $6, %xmm1, %eax
203 ; AVX512F-NEXT: andl $31, %eax
204 ; AVX512F-NEXT: vpinsrw $6, (%rsp,%rax,2), %xmm4, %xmm4
205 ; AVX512F-NEXT: vpextrw $7, %xmm1, %eax
206 ; AVX512F-NEXT: andl $31, %eax
207 ; AVX512F-NEXT: vpinsrw $7, (%rsp,%rax,2), %xmm4, %xmm1
208 ; AVX512F-NEXT: vinserti128 $1, %xmm0, %ymm3, %ymm0
209 ; AVX512F-NEXT: vinserti128 $1, %xmm2, %ymm1, %ymm1
210 ; AVX512F-NEXT: vinserti64x4 $1, %ymm0, %zmm1, %zmm0
211 ; AVX512F-NEXT: movq %rbp, %rsp
212 ; AVX512F-NEXT: popq %rbp
213 ; AVX512F-NEXT: retq
324 ; AVX512F-LABEL: var_shuffle_v64i8:
325 ; AVX512F: # %bb.0:
326 ; AVX512F-NEXT: pushq %rbp
327 ; AVX512F-NEXT: movq %rsp, %rbp
328 ; AVX512F-NEXT: andq $-64, %rsp
329 ; AVX512F-NEXT: subq $128, %rsp
330 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm2
331 ; AVX512F-NEXT: vextracti32x4 $2, %zmm1, %xmm3
332 ; AVX512F-NEXT: vextracti32x4 $3, %zmm1, %xmm4
333 ; AVX512F-NEXT: vmovd %xmm4, %eax
334 ; AVX512F-NEXT: vmovaps %zmm0, (%rsp)
335 ; AVX512F-NEXT: andl $63, %eax
336 ; AVX512F-NEXT: movzbl (%rsp,%rax), %eax
337 ; AVX512F-NEXT: vmovd %eax, %xmm0
338 ; AVX512F-NEXT: vpextrb $1, %xmm4, %eax
339 ; AVX512F-NEXT: andl $63, %eax
340 ; AVX512F-NEXT: vpinsrb $1, (%rsp,%rax), %xmm0, %xmm0
341 ; AVX512F-NEXT: vpextrb $2, %xmm4, %eax
342 ; AVX512F-NEXT: andl $63, %eax
343 ; AVX512F-NEXT: vpinsrb $2, (%rsp,%rax), %xmm0, %xmm0
344 ; AVX512F-NEXT: vpextrb $3, %xmm4, %eax
345 ; AVX512F-NEXT: andl $63, %eax
346 ; AVX512F-NEXT: vpinsrb $3, (%rsp,%rax), %xmm0, %xmm0
347 ; AVX512F-NEXT: vpextrb $4, %xmm4, %eax
348 ; AVX512F-NEXT: andl $63, %eax
349 ; AVX512F-NEXT: vpinsrb $4, (%rsp,%rax), %xmm0, %xmm0
350 ; AVX512F-NEXT: vpextrb $5, %xmm4, %eax
351 ; AVX512F-NEXT: andl $63, %eax
352 ; AVX512F-NEXT: vpinsrb $5, (%rsp,%rax), %xmm0, %xmm0
353 ; AVX512F-NEXT: vpextrb $6, %xmm4, %eax
354 ; AVX512F-NEXT: andl $63, %eax
355 ; AVX512F-NEXT: vpinsrb $6, (%rsp,%rax), %xmm0, %xmm0
356 ; AVX512F-NEXT: vpextrb $7, %xmm4, %eax
357 ; AVX512F-NEXT: andl $63, %eax
358 ; AVX512F-NEXT: vpinsrb $7, (%rsp,%rax), %xmm0, %xmm0
359 ; AVX512F-NEXT: vpextrb $8, %xmm4, %eax
360 ; AVX512F-NEXT: andl $63, %eax
361 ; AVX512F-NEXT: vpinsrb $8, (%rsp,%rax), %xmm0, %xmm0
362 ; AVX512F-NEXT: vpextrb $9, %xmm4, %eax
363 ; AVX512F-NEXT: andl $63, %eax
364 ; AVX512F-NEXT: vpinsrb $9, (%rsp,%rax), %xmm0, %xmm0
365 ; AVX512F-NEXT: vpextrb $10, %xmm4, %eax
366 ; AVX512F-NEXT: andl $63, %eax
367 ; AVX512F-NEXT: vpinsrb $10, (%rsp,%rax), %xmm0, %xmm0
368 ; AVX512F-NEXT: vpextrb $11, %xmm4, %eax
369 ; AVX512F-NEXT: andl $63, %eax
370 ; AVX512F-NEXT: vpinsrb $11, (%rsp,%rax), %xmm0, %xmm0
371 ; AVX512F-NEXT: vpextrb $12, %xmm4, %eax
372 ; AVX512F-NEXT: andl $63, %eax
373 ; AVX512F-NEXT: vpinsrb $12, (%rsp,%rax), %xmm0, %xmm0
374 ; AVX512F-NEXT: vpextrb $13, %xmm4, %eax
375 ; AVX512F-NEXT: andl $63, %eax
376 ; AVX512F-NEXT: vpinsrb $13, (%rsp,%rax), %xmm0, %xmm0
377 ; AVX512F-NEXT: vpextrb $14, %xmm4, %eax
378 ; AVX512F-NEXT: andl $63, %eax
379 ; AVX512F-NEXT: vpinsrb $14, (%rsp,%rax), %xmm0, %xmm0
380 ; AVX512F-NEXT: vpextrb $15, %xmm4, %eax
381 ; AVX512F-NEXT: andl $63, %eax
382 ; AVX512F-NEXT: vpinsrb $15, (%rsp,%rax), %xmm0, %xmm0
383 ; AVX512F-NEXT: vmovd %xmm3, %eax
384 ; AVX512F-NEXT: andl $63, %eax
385 ; AVX512F-NEXT: movzbl (%rsp,%rax), %eax
386 ; AVX512F-NEXT: vmovd %eax, %xmm4
387 ; AVX512F-NEXT: vpextrb $1, %xmm3, %eax
388 ; AVX512F-NEXT: andl $63, %eax
389 ; AVX512F-NEXT: vpinsrb $1, (%rsp,%rax), %xmm4, %xmm4
390 ; AVX512F-NEXT: vpextrb $2, %xmm3, %eax
391 ; AVX512F-NEXT: andl $63, %eax
392 ; AVX512F-NEXT: vpinsrb $2, (%rsp,%rax), %xmm4, %xmm4
393 ; AVX512F-NEXT: vpextrb $3, %xmm3, %eax
394 ; AVX512F-NEXT: andl $63, %eax
395 ; AVX512F-NEXT: vpinsrb $3, (%rsp,%rax), %xmm4, %xmm4
396 ; AVX512F-NEXT: vpextrb $4, %xmm3, %eax
397 ; AVX512F-NEXT: andl $63, %eax
398 ; AVX512F-NEXT: vpinsrb $4, (%rsp,%rax), %xmm4, %xmm4
399 ; AVX512F-NEXT: vpextrb $5, %xmm3, %eax
400 ; AVX512F-NEXT: andl $63, %eax
401 ; AVX512F-NEXT: vpinsrb $5, (%rsp,%rax), %xmm4, %xmm4
402 ; AVX512F-NEXT: vpextrb $6, %xmm3, %eax
403 ; AVX512F-NEXT: andl $63, %eax
404 ; AVX512F-NEXT: vpinsrb $6, (%rsp,%rax), %xmm4, %xmm4
405 ; AVX512F-NEXT: vpextrb $7, %xmm3, %eax
406 ; AVX512F-NEXT: andl $63, %eax
407 ; AVX512F-NEXT: vpinsrb $7, (%rsp,%rax), %xmm4, %xmm4
408 ; AVX512F-NEXT: vpextrb $8, %xmm3, %eax
409 ; AVX512F-NEXT: andl $63, %eax
410 ; AVX512F-NEXT: vpinsrb $8, (%rsp,%rax), %xmm4, %xmm4
411 ; AVX512F-NEXT: vpextrb $9, %xmm3, %eax
412 ; AVX512F-NEXT: andl $63, %eax
413 ; AVX512F-NEXT: vpinsrb $9, (%rsp,%rax), %xmm4, %xmm4
414 ; AVX512F-NEXT: vpextrb $10, %xmm3, %eax
415 ; AVX512F-NEXT: andl $63, %eax
416 ; AVX512F-NEXT: vpinsrb $10, (%rsp,%rax), %xmm4, %xmm4
417 ; AVX512F-NEXT: vpextrb $11, %xmm3, %eax
418 ; AVX512F-NEXT: andl $63, %eax
419 ; AVX512F-NEXT: vpinsrb $11, (%rsp,%rax), %xmm4, %xmm4
420 ; AVX512F-NEXT: vpextrb $12, %xmm3, %eax
421 ; AVX512F-NEXT: andl $63, %eax
422 ; AVX512F-NEXT: vpinsrb $12, (%rsp,%rax), %xmm4, %xmm4
423 ; AVX512F-NEXT: vpextrb $13, %xmm3, %eax
424 ; AVX512F-NEXT: andl $63, %eax
425 ; AVX512F-NEXT: movzbl (%rsp,%rax), %eax
426 ; AVX512F-NEXT: vpinsrb $13, %eax, %xmm4, %xmm4
427 ; AVX512F-NEXT: vpextrb $14, %xmm3, %eax
428 ; AVX512F-NEXT: andl $63, %eax
429 ; AVX512F-NEXT: movzbl (%rsp,%rax), %eax
430 ; AVX512F-NEXT: vpinsrb $14, %eax, %xmm4, %xmm4
431 ; AVX512F-NEXT: vpextrb $15, %xmm3, %eax
432 ; AVX512F-NEXT: andl $63, %eax
433 ; AVX512F-NEXT: movzbl (%rsp,%rax), %eax
434 ; AVX512F-NEXT: vpinsrb $15, %eax, %xmm4, %xmm3
435 ; AVX512F-NEXT: vmovd %xmm2, %eax
436 ; AVX512F-NEXT: andl $63, %eax
437 ; AVX512F-NEXT: movzbl (%rsp,%rax), %eax
438 ; AVX512F-NEXT: vmovd %eax, %xmm4
439 ; AVX512F-NEXT: vpextrb $1, %xmm2, %eax
440 ; AVX512F-NEXT: andl $63, %eax
441 ; AVX512F-NEXT: vpinsrb $1, (%rsp,%rax), %xmm4, %xmm4
442 ; AVX512F-NEXT: vpextrb $2, %xmm2, %eax
443 ; AVX512F-NEXT: andl $63, %eax
444 ; AVX512F-NEXT: vpinsrb $2, (%rsp,%rax), %xmm4, %xmm4
445 ; AVX512F-NEXT: vpextrb $3, %xmm2, %eax
446 ; AVX512F-NEXT: andl $63, %eax
447 ; AVX512F-NEXT: vpinsrb $3, (%rsp,%rax), %xmm4, %xmm4
448 ; AVX512F-NEXT: vpextrb $4, %xmm2, %eax
449 ; AVX512F-NEXT: andl $63, %eax
450 ; AVX512F-NEXT: vpinsrb $4, (%rsp,%rax), %xmm4, %xmm4
451 ; AVX512F-NEXT: vpextrb $5, %xmm2, %eax
452 ; AVX512F-NEXT: andl $63, %eax
453 ; AVX512F-NEXT: vpinsrb $5, (%rsp,%rax), %xmm4, %xmm4
454 ; AVX512F-NEXT: vpextrb $6, %xmm2, %eax
455 ; AVX512F-NEXT: andl $63, %eax
456 ; AVX512F-NEXT: vpinsrb $6, (%rsp,%rax), %xmm4, %xmm4
457 ; AVX512F-NEXT: vpextrb $7, %xmm2, %eax
458 ; AVX512F-NEXT: andl $63, %eax
459 ; AVX512F-NEXT: vpinsrb $7, (%rsp,%rax), %xmm4, %xmm4
460 ; AVX512F-NEXT: vpextrb $8, %xmm2, %eax
461 ; AVX512F-NEXT: andl $63, %eax
462 ; AVX512F-NEXT: vpinsrb $8, (%rsp,%rax), %xmm4, %xmm4
463 ; AVX512F-NEXT: vpextrb $9, %xmm2, %eax
464 ; AVX512F-NEXT: andl $63, %eax
465 ; AVX512F-NEXT: vpinsrb $9, (%rsp,%rax), %xmm4, %xmm4
466 ; AVX512F-NEXT: vpextrb $10, %xmm2, %eax
467 ; AVX512F-NEXT: andl $63, %eax
468 ; AVX512F-NEXT: vpinsrb $10, (%rsp,%rax), %xmm4, %xmm4
469 ; AVX512F-NEXT: vpextrb $11, %xmm2, %eax
470 ; AVX512F-NEXT: andl $63, %eax
471 ; AVX512F-NEXT: vpinsrb $11, (%rsp,%rax), %xmm4, %xmm4
472 ; AVX512F-NEXT: vpextrb $12, %xmm2, %eax
473 ; AVX512F-NEXT: andl $63, %eax
474 ; AVX512F-NEXT: movzbl (%rsp,%rax), %eax
475 ; AVX512F-NEXT: vpinsrb $12, %eax, %xmm4, %xmm4
476 ; AVX512F-NEXT: vpextrb $13, %xmm2, %eax
477 ; AVX512F-NEXT: andl $63, %eax
478 ; AVX512F-NEXT: movzbl (%rsp,%rax), %eax
479 ; AVX512F-NEXT: vpinsrb $13, %eax, %xmm4, %xmm4
480 ; AVX512F-NEXT: vpextrb $14, %xmm2, %eax
481 ; AVX512F-NEXT: andl $63, %eax
482 ; AVX512F-NEXT: movzbl (%rsp,%rax), %eax
483 ; AVX512F-NEXT: vpinsrb $14, %eax, %xmm4, %xmm4
484 ; AVX512F-NEXT: vpextrb $15, %xmm2, %eax
485 ; AVX512F-NEXT: andl $63, %eax
486 ; AVX512F-NEXT: movzbl (%rsp,%rax), %eax
487 ; AVX512F-NEXT: vpinsrb $15, %eax, %xmm4, %xmm2
488 ; AVX512F-NEXT: vmovd %xmm1, %eax
489 ; AVX512F-NEXT: andl $63, %eax
490 ; AVX512F-NEXT: movzbl (%rsp,%rax), %eax
491 ; AVX512F-NEXT: vmovd %eax, %xmm4
492 ; AVX512F-NEXT: vpextrb $1, %xmm1, %eax
493 ; AVX512F-NEXT: andl $63, %eax
494 ; AVX512F-NEXT: vpinsrb $1, (%rsp,%rax), %xmm4, %xmm4
495 ; AVX512F-NEXT: vpextrb $2, %xmm1, %eax
496 ; AVX512F-NEXT: andl $63, %eax
497 ; AVX512F-NEXT: vpinsrb $2, (%rsp,%rax), %xmm4, %xmm4
498 ; AVX512F-NEXT: vpextrb $3, %xmm1, %eax
499 ; AVX512F-NEXT: andl $63, %eax
500 ; AVX512F-NEXT: vpinsrb $3, (%rsp,%rax), %xmm4, %xmm4
501 ; AVX512F-NEXT: vpextrb $4, %xmm1, %eax
502 ; AVX512F-NEXT: andl $63, %eax
503 ; AVX512F-NEXT: vpinsrb $4, (%rsp,%rax), %xmm4, %xmm4
504 ; AVX512F-NEXT: vpextrb $5, %xmm1, %eax
505 ; AVX512F-NEXT: andl $63, %eax
506 ; AVX512F-NEXT: vpinsrb $5, (%rsp,%rax), %xmm4, %xmm4
507 ; AVX512F-NEXT: vpextrb $6, %xmm1, %eax
508 ; AVX512F-NEXT: andl $63, %eax
509 ; AVX512F-NEXT: vpinsrb $6, (%rsp,%rax), %xmm4, %xmm4
510 ; AVX512F-NEXT: vpextrb $7, %xmm1, %eax
511 ; AVX512F-NEXT: andl $63, %eax
512 ; AVX512F-NEXT: vpinsrb $7, (%rsp,%rax), %xmm4, %xmm4
513 ; AVX512F-NEXT: vpextrb $8, %xmm1, %eax
514 ; AVX512F-NEXT: andl $63, %eax
515 ; AVX512F-NEXT: vpinsrb $8, (%rsp,%rax), %xmm4, %xmm4
516 ; AVX512F-NEXT: vpextrb $9, %xmm1, %eax
517 ; AVX512F-NEXT: andl $63, %eax
518 ; AVX512F-NEXT: vpinsrb $9, (%rsp,%rax), %xmm4, %xmm4
519 ; AVX512F-NEXT: vpextrb $10, %xmm1, %eax
520 ; AVX512F-NEXT: andl $63, %eax
521 ; AVX512F-NEXT: vpinsrb $10, (%rsp,%rax), %xmm4, %xmm4
522 ; AVX512F-NEXT: vpextrb $11, %xmm1, %eax
523 ; AVX512F-NEXT: andl $63, %eax
524 ; AVX512F-NEXT: movzbl (%rsp,%rax), %eax
525 ; AVX512F-NEXT: vpinsrb $11, %eax, %xmm4, %xmm4
526 ; AVX512F-NEXT: vpextrb $12, %xmm1, %eax
527 ; AVX512F-NEXT: andl $63, %eax
528 ; AVX512F-NEXT: movzbl (%rsp,%rax), %eax
529 ; AVX512F-NEXT: vpinsrb $12, %eax, %xmm4, %xmm4
530 ; AVX512F-NEXT: vpextrb $13, %xmm1, %eax
531 ; AVX512F-NEXT: andl $63, %eax
532 ; AVX512F-NEXT: movzbl (%rsp,%rax), %eax
533 ; AVX512F-NEXT: vpinsrb $13, %eax, %xmm4, %xmm4
534 ; AVX512F-NEXT: vpextrb $14, %xmm1, %eax
535 ; AVX512F-NEXT: andl $63, %eax
536 ; AVX512F-NEXT: movzbl (%rsp,%rax), %eax
537 ; AVX512F-NEXT: vpinsrb $14, %eax, %xmm4, %xmm4
538 ; AVX512F-NEXT: vpextrb $15, %xmm1, %eax
539 ; AVX512F-NEXT: andl $63, %eax
540 ; AVX512F-NEXT: movzbl (%rsp,%rax), %eax
541 ; AVX512F-NEXT: vpinsrb $15, %eax, %xmm4, %xmm1
542 ; AVX512F-NEXT: vinserti128 $1, %xmm0, %ymm3, %ymm0
543 ; AVX512F-NEXT: vinserti128 $1, %xmm2, %ymm1, %ymm1
544 ; AVX512F-NEXT: vinserti64x4 $1, %ymm0, %zmm1, %zmm0
545 ; AVX512F-NEXT: movq %rbp, %rsp
546 ; AVX512F-NEXT: popq %rbp
547 ; AVX512F-NEXT: retq
1062 ; AVX512F-LABEL: var_cvt_shuffle_v64f32_v64i8_idx:
1063 ; AVX512F: # %bb.0:
1064 ; AVX512F-NEXT: pushq %rbp
1065 ; AVX512F-NEXT: movq %rsp, %rbp
1066 ; AVX512F-NEXT: andq $-64, %rsp
1067 ; AVX512F-NEXT: subq $128, %rsp
1068 ; AVX512F-NEXT: # kill: def $esi killed $esi def $rsi
1069 ; AVX512F-NEXT: vpbroadcastd %esi, %zmm2
1070 ; AVX512F-NEXT: vpaddd {{.*}}(%rip), %zmm2, %zmm1
1071 ; AVX512F-NEXT: vmovd %xmm1, %eax
1072 ; AVX512F-NEXT: vmovaps %zmm0, (%rsp)
1073 ; AVX512F-NEXT: andl $63, %eax
1074 ; AVX512F-NEXT: movzbl (%rsp,%rax), %eax
1075 ; AVX512F-NEXT: vmovd %eax, %xmm0
1076 ; AVX512F-NEXT: vpextrd $1, %xmm1, %eax
1077 ; AVX512F-NEXT: andl $63, %eax
1078 ; AVX512F-NEXT: vpinsrb $1, (%rsp,%rax), %xmm0, %xmm0
1079 ; AVX512F-NEXT: vpextrd $2, %xmm1, %eax
1080 ; AVX512F-NEXT: andl $63, %eax
1081 ; AVX512F-NEXT: vpinsrb $2, (%rsp,%rax), %xmm0, %xmm0
1082 ; AVX512F-NEXT: vpextrd $3, %xmm1, %eax
1083 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm3
1084 ; AVX512F-NEXT: andl $63, %eax
1085 ; AVX512F-NEXT: vpinsrb $3, (%rsp,%rax), %xmm0, %xmm0
1086 ; AVX512F-NEXT: vmovd %xmm3, %eax
1087 ; AVX512F-NEXT: andl $63, %eax
1088 ; AVX512F-NEXT: vpinsrb $4, (%rsp,%rax), %xmm0, %xmm0
1089 ; AVX512F-NEXT: vpextrd $1, %xmm3, %eax
1090 ; AVX512F-NEXT: andl $63, %eax
1091 ; AVX512F-NEXT: vpinsrb $5, (%rsp,%rax), %xmm0, %xmm0
1092 ; AVX512F-NEXT: vpextrd $2, %xmm3, %eax
1093 ; AVX512F-NEXT: andl $63, %eax
1094 ; AVX512F-NEXT: vpinsrb $6, (%rsp,%rax), %xmm0, %xmm0
1095 ; AVX512F-NEXT: vpextrd $3, %xmm3, %eax
1096 ; AVX512F-NEXT: vextracti32x4 $2, %zmm1, %xmm4
1097 ; AVX512F-NEXT: andl $63, %eax
1098 ; AVX512F-NEXT: vpinsrb $7, (%rsp,%rax), %xmm0, %xmm0
1099 ; AVX512F-NEXT: vmovd %xmm4, %eax
1100 ; AVX512F-NEXT: andl $63, %eax
1101 ; AVX512F-NEXT: vpinsrb $8, (%rsp,%rax), %xmm0, %xmm0
1102 ; AVX512F-NEXT: vpextrd $1, %xmm4, %eax
1103 ; AVX512F-NEXT: andl $63, %eax
1104 ; AVX512F-NEXT: vpinsrb $9, (%rsp,%rax), %xmm0, %xmm0
1105 ; AVX512F-NEXT: vpaddd {{.*}}(%rip), %zmm2, %zmm5
1106 ; AVX512F-NEXT: vpaddd {{.*}}(%rip), %zmm2, %zmm3
1107 ; AVX512F-NEXT: vpaddd {{.*}}(%rip), %zmm2, %zmm2
1108 ; AVX512F-NEXT: andl $63, %esi
1109 ; AVX512F-NEXT: vpinsrb $10, (%rsp,%rsi), %xmm0, %xmm0
1110 ; AVX512F-NEXT: vpextrd $3, %xmm4, %eax
1111 ; AVX512F-NEXT: vextracti32x4 $3, %zmm1, %xmm1
1112 ; AVX512F-NEXT: andl $63, %eax
1113 ; AVX512F-NEXT: vpinsrb $11, (%rsp,%rax), %xmm0, %xmm0
1114 ; AVX512F-NEXT: vmovd %xmm1, %eax
1115 ; AVX512F-NEXT: andl $63, %eax
1116 ; AVX512F-NEXT: vpinsrb $12, (%rsp,%rax), %xmm0, %xmm0
1117 ; AVX512F-NEXT: vpextrd $1, %xmm1, %eax
1118 ; AVX512F-NEXT: andl $63, %eax
1119 ; AVX512F-NEXT: vpinsrb $13, (%rsp,%rax), %xmm0, %xmm0
1120 ; AVX512F-NEXT: vpextrd $2, %xmm1, %eax
1121 ; AVX512F-NEXT: andl $63, %eax
1122 ; AVX512F-NEXT: vpinsrb $14, (%rsp,%rax), %xmm0, %xmm0
1123 ; AVX512F-NEXT: vpextrd $3, %xmm1, %eax
1124 ; AVX512F-NEXT: andl $63, %eax
1125 ; AVX512F-NEXT: vpinsrb $15, (%rsp,%rax), %xmm0, %xmm8
1126 ; AVX512F-NEXT: vmovd %xmm5, %eax
1127 ; AVX512F-NEXT: andl $63, %eax
1128 ; AVX512F-NEXT: movzbl (%rsp,%rax), %eax
1129 ; AVX512F-NEXT: vmovd %eax, %xmm1
1130 ; AVX512F-NEXT: vpextrd $1, %xmm5, %eax
1131 ; AVX512F-NEXT: andl $63, %eax
1132 ; AVX512F-NEXT: vpinsrb $1, (%rsp,%rax), %xmm1, %xmm1
1133 ; AVX512F-NEXT: vpextrd $2, %xmm5, %eax
1134 ; AVX512F-NEXT: andl $63, %eax
1135 ; AVX512F-NEXT: vpinsrb $2, (%rsp,%rax), %xmm1, %xmm1
1136 ; AVX512F-NEXT: vpextrd $3, %xmm5, %eax
1137 ; AVX512F-NEXT: vextracti128 $1, %ymm5, %xmm4
1138 ; AVX512F-NEXT: andl $63, %eax
1139 ; AVX512F-NEXT: vpinsrb $3, (%rsp,%rax), %xmm1, %xmm1
1140 ; AVX512F-NEXT: vmovd %xmm4, %eax
1141 ; AVX512F-NEXT: andl $63, %eax
1142 ; AVX512F-NEXT: vpinsrb $4, (%rsp,%rax), %xmm1, %xmm1
1143 ; AVX512F-NEXT: vpextrd $1, %xmm4, %eax
1144 ; AVX512F-NEXT: andl $63, %eax
1145 ; AVX512F-NEXT: vpinsrb $5, (%rsp,%rax), %xmm1, %xmm1
1146 ; AVX512F-NEXT: vpextrd $2, %xmm4, %eax
1147 ; AVX512F-NEXT: andl $63, %eax
1148 ; AVX512F-NEXT: vpinsrb $6, (%rsp,%rax), %xmm1, %xmm1
1149 ; AVX512F-NEXT: vpextrd $3, %xmm4, %eax
1150 ; AVX512F-NEXT: vextracti32x4 $2, %zmm5, %xmm4
1151 ; AVX512F-NEXT: andl $63, %eax
1152 ; AVX512F-NEXT: vpinsrb $7, (%rsp,%rax), %xmm1, %xmm1
1153 ; AVX512F-NEXT: vmovd %xmm4, %eax
1154 ; AVX512F-NEXT: andl $63, %eax
1155 ; AVX512F-NEXT: vpinsrb $8, (%rsp,%rax), %xmm1, %xmm1
1156 ; AVX512F-NEXT: vpextrd $1, %xmm4, %eax
1157 ; AVX512F-NEXT: andl $63, %eax
1158 ; AVX512F-NEXT: vpinsrb $9, (%rsp,%rax), %xmm1, %xmm1
1159 ; AVX512F-NEXT: vpextrd $2, %xmm4, %eax
1160 ; AVX512F-NEXT: andl $63, %eax
1161 ; AVX512F-NEXT: vpinsrb $10, (%rsp,%rax), %xmm1, %xmm6
1162 ; AVX512F-NEXT: vpextrd $3, %xmm4, %eax
1163 ; AVX512F-NEXT: vextracti32x4 $3, %zmm5, %xmm1
1164 ; AVX512F-NEXT: andl $63, %eax
1165 ; AVX512F-NEXT: vpinsrb $11, (%rsp,%rax), %xmm6, %xmm4
1166 ; AVX512F-NEXT: vmovd %xmm1, %eax
1167 ; AVX512F-NEXT: andl $63, %eax
1168 ; AVX512F-NEXT: vpinsrb $12, (%rsp,%rax), %xmm4, %xmm4
1169 ; AVX512F-NEXT: vmovd %xmm3, %eax
1170 ; AVX512F-NEXT: andl $63, %eax
1171 ; AVX512F-NEXT: movzbl (%rsp,%rax), %eax
1172 ; AVX512F-NEXT: vmovd %eax, %xmm5
1173 ; AVX512F-NEXT: vpextrd $1, %xmm3, %eax
1174 ; AVX512F-NEXT: andl $63, %eax
1175 ; AVX512F-NEXT: vpinsrb $1, (%rsp,%rax), %xmm5, %xmm5
1176 ; AVX512F-NEXT: vpextrd $2, %xmm3, %eax
1177 ; AVX512F-NEXT: andl $63, %eax
1178 ; AVX512F-NEXT: vpinsrb $2, (%rsp,%rax), %xmm5, %xmm5
1179 ; AVX512F-NEXT: vpextrd $3, %xmm3, %eax
1180 ; AVX512F-NEXT: vextracti128 $1, %ymm3, %xmm6
1181 ; AVX512F-NEXT: andl $63, %eax
1182 ; AVX512F-NEXT: vpinsrb $3, (%rsp,%rax), %xmm5, %xmm5
1183 ; AVX512F-NEXT: vmovd %xmm6, %eax
1184 ; AVX512F-NEXT: andl $63, %eax
1185 ; AVX512F-NEXT: vpinsrb $4, (%rsp,%rax), %xmm5, %xmm5
1186 ; AVX512F-NEXT: vpextrd $1, %xmm6, %eax
1187 ; AVX512F-NEXT: andl $63, %eax
1188 ; AVX512F-NEXT: vpinsrb $5, (%rsp,%rax), %xmm5, %xmm5
1189 ; AVX512F-NEXT: vpextrd $2, %xmm6, %eax
1190 ; AVX512F-NEXT: andl $63, %eax
1191 ; AVX512F-NEXT: vpinsrb $6, (%rsp,%rax), %xmm5, %xmm7
1192 ; AVX512F-NEXT: vpextrd $3, %xmm6, %eax
1193 ; AVX512F-NEXT: vextracti32x4 $2, %zmm3, %xmm5
1194 ; AVX512F-NEXT: andl $63, %eax
1195 ; AVX512F-NEXT: vpinsrb $7, (%rsp,%rax), %xmm7, %xmm6
1196 ; AVX512F-NEXT: vmovd %xmm5, %eax
1197 ; AVX512F-NEXT: andl $63, %eax
1198 ; AVX512F-NEXT: vpinsrb $8, (%rsp,%rax), %xmm6, %xmm6
1199 ; AVX512F-NEXT: vpextrd $1, %xmm5, %eax
1200 ; AVX512F-NEXT: andl $63, %eax
1201 ; AVX512F-NEXT: vpinsrb $9, (%rsp,%rax), %xmm6, %xmm6
1202 ; AVX512F-NEXT: vpextrd $2, %xmm5, %eax
1203 ; AVX512F-NEXT: andl $63, %eax
1204 ; AVX512F-NEXT: vpinsrb $10, (%rsp,%rax), %xmm6, %xmm6
1205 ; AVX512F-NEXT: vmovd %xmm2, %eax
1206 ; AVX512F-NEXT: andl $63, %eax
1207 ; AVX512F-NEXT: movzbl (%rsp,%rax), %eax
1208 ; AVX512F-NEXT: vmovd %eax, %xmm7
1209 ; AVX512F-NEXT: vpextrd $1, %xmm2, %eax
1210 ; AVX512F-NEXT: andl $63, %eax
1211 ; AVX512F-NEXT: vpinsrb $1, (%rsp,%rax), %xmm7, %xmm7
1212 ; AVX512F-NEXT: vpextrd $2, %xmm2, %eax
1213 ; AVX512F-NEXT: andl $63, %eax
1214 ; AVX512F-NEXT: vpinsrb $2, (%rsp,%rax), %xmm7, %xmm7
1215 ; AVX512F-NEXT: vpextrd $3, %xmm2, %eax
1216 ; AVX512F-NEXT: vextracti128 $1, %ymm2, %xmm0
1217 ; AVX512F-NEXT: andl $63, %eax
1218 ; AVX512F-NEXT: vpinsrb $3, (%rsp,%rax), %xmm7, %xmm7
1219 ; AVX512F-NEXT: vmovd %xmm0, %eax
1220 ; AVX512F-NEXT: andl $63, %eax
1221 ; AVX512F-NEXT: vpinsrb $4, (%rsp,%rax), %xmm7, %xmm7
1222 ; AVX512F-NEXT: vpextrd $1, %xmm0, %eax
1223 ; AVX512F-NEXT: andl $63, %eax
1224 ; AVX512F-NEXT: vpinsrb $5, (%rsp,%rax), %xmm7, %xmm7
1225 ; AVX512F-NEXT: vpextrd $2, %xmm0, %eax
1226 ; AVX512F-NEXT: andl $63, %eax
1227 ; AVX512F-NEXT: vpinsrb $6, (%rsp,%rax), %xmm7, %xmm7
1228 ; AVX512F-NEXT: vpextrd $3, %xmm0, %eax
1229 ; AVX512F-NEXT: vextracti32x4 $2, %zmm2, %xmm0
1230 ; AVX512F-NEXT: andl $63, %eax
1231 ; AVX512F-NEXT: vpinsrb $7, (%rsp,%rax), %xmm7, %xmm7
1232 ; AVX512F-NEXT: vmovd %xmm0, %eax
1233 ; AVX512F-NEXT: andl $63, %eax
1234 ; AVX512F-NEXT: vpinsrb $8, (%rsp,%rax), %xmm7, %xmm7
1235 ; AVX512F-NEXT: vpextrd $1, %xmm0, %eax
1236 ; AVX512F-NEXT: andl $63, %eax
1237 ; AVX512F-NEXT: vpinsrb $9, (%rsp,%rax), %xmm7, %xmm7
1238 ; AVX512F-NEXT: vpextrd $2, %xmm0, %eax
1239 ; AVX512F-NEXT: andl $63, %eax
1240 ; AVX512F-NEXT: movzbl (%rsp,%rax), %eax
1241 ; AVX512F-NEXT: vpinsrb $10, %eax, %xmm7, %xmm7
1242 ; AVX512F-NEXT: vpextrd $3, %xmm0, %eax
1243 ; AVX512F-NEXT: vextracti32x4 $3, %zmm2, %xmm0
1244 ; AVX512F-NEXT: andl $63, %eax
1245 ; AVX512F-NEXT: movzbl (%rsp,%rax), %eax
1246 ; AVX512F-NEXT: vpinsrb $11, %eax, %xmm7, %xmm2
1247 ; AVX512F-NEXT: vmovd %xmm0, %eax
1248 ; AVX512F-NEXT: andl $63, %eax
1249 ; AVX512F-NEXT: movzbl (%rsp,%rax), %eax
1250 ; AVX512F-NEXT: vpinsrb $12, %eax, %xmm2, %xmm2
1251 ; AVX512F-NEXT: vpextrd $1, %xmm0, %eax
1252 ; AVX512F-NEXT: andl $63, %eax
1253 ; AVX512F-NEXT: movzbl (%rsp,%rax), %eax
1254 ; AVX512F-NEXT: vpinsrb $13, %eax, %xmm2, %xmm2
1255 ; AVX512F-NEXT: vpextrd $2, %xmm0, %eax
1256 ; AVX512F-NEXT: andl $63, %eax
1257 ; AVX512F-NEXT: movzbl (%rsp,%rax), %eax
1258 ; AVX512F-NEXT: vpinsrb $14, %eax, %xmm2, %xmm2
1259 ; AVX512F-NEXT: vpextrd $3, %xmm0, %eax
1260 ; AVX512F-NEXT: andl $63, %eax
1261 ; AVX512F-NEXT: movzbl (%rsp,%rax), %eax
1262 ; AVX512F-NEXT: vpinsrb $15, %eax, %xmm2, %xmm0
1263 ; AVX512F-NEXT: vpextrd $3, %xmm5, %eax
1264 ; AVX512F-NEXT: vextracti32x4 $3, %zmm3, %xmm2
1265 ; AVX512F-NEXT: andl $63, %eax
1266 ; AVX512F-NEXT: movzbl (%rsp,%rax), %eax
1267 ; AVX512F-NEXT: vpinsrb $11, %eax, %xmm6, %xmm3
1268 ; AVX512F-NEXT: vmovd %xmm2, %eax
1269 ; AVX512F-NEXT: andl $63, %eax
1270 ; AVX512F-NEXT: movzbl (%rsp,%rax), %eax
1271 ; AVX512F-NEXT: vpinsrb $12, %eax, %xmm3, %xmm3
1272 ; AVX512F-NEXT: vpextrd $1, %xmm2, %eax
1273 ; AVX512F-NEXT: andl $63, %eax
1274 ; AVX512F-NEXT: movzbl (%rsp,%rax), %eax
1275 ; AVX512F-NEXT: vpinsrb $13, %eax, %xmm3, %xmm3
1276 ; AVX512F-NEXT: vpextrd $2, %xmm2, %eax
1277 ; AVX512F-NEXT: andl $63, %eax
1278 ; AVX512F-NEXT: movzbl (%rsp,%rax), %eax
1279 ; AVX512F-NEXT: vpinsrb $14, %eax, %xmm3, %xmm3
1280 ; AVX512F-NEXT: vpextrd $3, %xmm2, %eax
1281 ; AVX512F-NEXT: andl $63, %eax
1282 ; AVX512F-NEXT: movzbl (%rsp,%rax), %eax
1283 ; AVX512F-NEXT: vpinsrb $15, %eax, %xmm3, %xmm2
1284 ; AVX512F-NEXT: vpextrd $1, %xmm1, %eax
1285 ; AVX512F-NEXT: andl $63, %eax
1286 ; AVX512F-NEXT: movzbl (%rsp,%rax), %eax
1287 ; AVX512F-NEXT: vpinsrb $13, %eax, %xmm4, %xmm3
1288 ; AVX512F-NEXT: vpextrd $2, %xmm1, %eax
1289 ; AVX512F-NEXT: andl $63, %eax
1290 ; AVX512F-NEXT: movzbl (%rsp,%rax), %eax
1291 ; AVX512F-NEXT: vpinsrb $14, %eax, %xmm3, %xmm3
1292 ; AVX512F-NEXT: vpextrd $3, %xmm1, %eax
1293 ; AVX512F-NEXT: andl $63, %eax
1294 ; AVX512F-NEXT: movzbl (%rsp,%rax), %eax
1295 ; AVX512F-NEXT: vpinsrb $15, %eax, %xmm3, %xmm1
1296 ; AVX512F-NEXT: vpmovsxbd %xmm0, %zmm0
1297 ; AVX512F-NEXT: vcvtdq2ps %zmm0, %zmm0
1298 ; AVX512F-NEXT: vpmovsxbd %xmm2, %zmm2
1299 ; AVX512F-NEXT: vcvtdq2ps %zmm2, %zmm2
1300 ; AVX512F-NEXT: vpmovsxbd %xmm1, %zmm1
1301 ; AVX512F-NEXT: vcvtdq2ps %zmm1, %zmm1
1302 ; AVX512F-NEXT: vpmovsxbd %xmm8, %zmm3
1303 ; AVX512F-NEXT: vcvtdq2ps %zmm3, %zmm3
1304 ; AVX512F-NEXT: vmovaps %zmm3, 192(%rdi)
1305 ; AVX512F-NEXT: vmovaps %zmm1, 128(%rdi)
1306 ; AVX512F-NEXT: vmovaps %zmm2, 64(%rdi)
1307 ; AVX512F-NEXT: vmovaps %zmm0, (%rdi)
1308 ; AVX512F-NEXT: movq %rbp, %rsp
1309 ; AVX512F-NEXT: popq %rbp
1310 ; AVX512F-NEXT: vzeroupper
1311 ; AVX512F-NEXT: retq