• Home
  • Raw
  • Download

Lines Matching refs:AVX512F

2 …c < %s -mtriple=i686-unknown-unknown -mattr=avx512f | FileCheck %s --check-prefixes=X86,X86-AVX512F
3 …< %s -mtriple=x86_64-unknown-unknown -mattr=avx512f | FileCheck %s --check-prefixes=X64,X64-AVX512F
152 ; X86-AVX512F-LABEL: select05_mem:
153 ; X86-AVX512F: # %bb.0:
154 ; X86-AVX512F-NEXT: movl {{[0-9]+}}(%esp), %eax
155 ; X86-AVX512F-NEXT: movl {{[0-9]+}}(%esp), %ecx
156 ; X86-AVX512F-NEXT: kmovw (%ecx), %k0
157 ; X86-AVX512F-NEXT: kmovw (%eax), %k1
158 ; X86-AVX512F-NEXT: korw %k1, %k0, %k0
159 ; X86-AVX512F-NEXT: kmovw %k0, %eax
160 ; X86-AVX512F-NEXT: # kill: def $al killed $al killed $eax
161 ; X86-AVX512F-NEXT: retl
163 ; X64-AVX512F-LABEL: select05_mem:
164 ; X64-AVX512F: # %bb.0:
165 ; X64-AVX512F-NEXT: kmovw (%rsi), %k0
166 ; X64-AVX512F-NEXT: kmovw (%rdi), %k1
167 ; X64-AVX512F-NEXT: korw %k1, %k0, %k0
168 ; X64-AVX512F-NEXT: kmovw %k0, %eax
169 ; X64-AVX512F-NEXT: # kill: def $al killed $al killed $eax
170 ; X64-AVX512F-NEXT: retq
219 ; X86-AVX512F-LABEL: select06_mem:
220 ; X86-AVX512F: # %bb.0:
221 ; X86-AVX512F-NEXT: movl {{[0-9]+}}(%esp), %eax
222 ; X86-AVX512F-NEXT: movl {{[0-9]+}}(%esp), %ecx
223 ; X86-AVX512F-NEXT: kmovw (%ecx), %k0
224 ; X86-AVX512F-NEXT: kmovw (%eax), %k1
225 ; X86-AVX512F-NEXT: kandw %k1, %k0, %k0
226 ; X86-AVX512F-NEXT: kmovw %k0, %eax
227 ; X86-AVX512F-NEXT: # kill: def $al killed $al killed $eax
228 ; X86-AVX512F-NEXT: retl
230 ; X64-AVX512F-LABEL: select06_mem:
231 ; X64-AVX512F: # %bb.0:
232 ; X64-AVX512F-NEXT: kmovw (%rsi), %k0
233 ; X64-AVX512F-NEXT: kmovw (%rdi), %k1
234 ; X64-AVX512F-NEXT: kandw %k1, %k0, %k0
235 ; X64-AVX512F-NEXT: kmovw %k0, %eax
236 ; X64-AVX512F-NEXT: # kill: def $al killed $al killed $eax
237 ; X64-AVX512F-NEXT: retq
265 ; X86-AVX512F-LABEL: select07:
266 ; X86-AVX512F: # %bb.0:
267 ; X86-AVX512F-NEXT: movzbl {{[0-9]+}}(%esp), %eax
268 ; X86-AVX512F-NEXT: kmovw %eax, %k0
269 ; X86-AVX512F-NEXT: movzbl {{[0-9]+}}(%esp), %eax
270 ; X86-AVX512F-NEXT: kmovw %eax, %k1
271 ; X86-AVX512F-NEXT: movzbl {{[0-9]+}}(%esp), %eax
272 ; X86-AVX512F-NEXT: kmovw %eax, %k2
273 ; X86-AVX512F-NEXT: kandnw %k2, %k0, %k2
274 ; X86-AVX512F-NEXT: kandw %k0, %k1, %k0
275 ; X86-AVX512F-NEXT: korw %k2, %k0, %k0
276 ; X86-AVX512F-NEXT: kmovw %k0, %eax
277 ; X86-AVX512F-NEXT: # kill: def $al killed $al killed $eax
278 ; X86-AVX512F-NEXT: retl
280 ; X64-AVX512F-LABEL: select07:
281 ; X64-AVX512F: # %bb.0:
282 ; X64-AVX512F-NEXT: kmovw %edx, %k0
283 ; X64-AVX512F-NEXT: kmovw %edi, %k1
284 ; X64-AVX512F-NEXT: kmovw %esi, %k2
285 ; X64-AVX512F-NEXT: kandnw %k2, %k0, %k2
286 ; X64-AVX512F-NEXT: kandw %k0, %k1, %k0
287 ; X64-AVX512F-NEXT: korw %k2, %k0, %k0
288 ; X64-AVX512F-NEXT: kmovw %k0, %eax
289 ; X64-AVX512F-NEXT: # kill: def $al killed $al killed $eax
290 ; X64-AVX512F-NEXT: retq
351 ; X64-AVX512F-LABEL: pr30561_f64:
352 ; X64-AVX512F: # %bb.0:
353 ; X64-AVX512F-NEXT: kmovw %edi, %k1
354 ; X64-AVX512F-NEXT: vmovsd %xmm1, %xmm0, %xmm0 {%k1}
355 ; X64-AVX512F-NEXT: retq
376 ; X64-AVX512F-LABEL: pr30561_f32:
377 ; X64-AVX512F: # %bb.0:
378 ; X64-AVX512F-NEXT: kmovw %edi, %k1
379 ; X64-AVX512F-NEXT: vmovss %xmm1, %xmm0, %xmm0 {%k1}
380 ; X64-AVX512F-NEXT: retq
392 ; X86-AVX512F-LABEL: pr31515:
393 ; X86-AVX512F: # %bb.0:
394 ; X86-AVX512F-NEXT: vpand %xmm1, %xmm0, %xmm0
395 ; X86-AVX512F-NEXT: vpmovzxbw {{.*#+}} ymm0 = xmm0[0],zero,xmm0[1],zero,xmm0[2],zero,xmm0[3],zer…
396 ; X86-AVX512F-NEXT: vpsllw $15, %ymm0, %ymm0
397 ; X86-AVX512F-NEXT: vpsraw $15, %ymm0, %ymm0
398 ; X86-AVX512F-NEXT: vpandn %ymm2, %ymm0, %ymm0
399 ; X86-AVX512F-NEXT: retl
401 ; X64-AVX512F-LABEL: pr31515:
402 ; X64-AVX512F: # %bb.0:
403 ; X64-AVX512F-NEXT: vpand %xmm1, %xmm0, %xmm0
404 ; X64-AVX512F-NEXT: vpmovzxbw {{.*#+}} ymm0 = xmm0[0],zero,xmm0[1],zero,xmm0[2],zero,xmm0[3],zer…
405 ; X64-AVX512F-NEXT: vpsllw $15, %ymm0, %ymm0
406 ; X64-AVX512F-NEXT: vpsraw $15, %ymm0, %ymm0
407 ; X64-AVX512F-NEXT: vpandn %ymm2, %ymm0, %ymm0
408 ; X64-AVX512F-NEXT: retq
484 ; X86-AVX512F-LABEL: narrowExtractedVectorSelect_crash:
485 ; X86-AVX512F: # %bb.0:
486 ; X86-AVX512F-NEXT: vptestmq %zmm0, %zmm0, %k0
487 ; X86-AVX512F-NEXT: vptestmq %zmm1, %zmm1, %k1
488 ; X86-AVX512F-NEXT: kunpckbw %k0, %k1, %k1
489 ; X86-AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
490 ; X86-AVX512F-NEXT: vpmovdw %zmm0, %ymm0
491 ; X86-AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm1
492 ; X86-AVX512F-NEXT: vpmovzxwq {{.*#+}} zmm0 = xmm1[0],zero,zero,zero,xmm1[1],zero,zero,zero,xmm1…
493 ; X86-AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm1
494 ; X86-AVX512F-NEXT: vpmovzxwq {{.*#+}} zmm1 = xmm1[0],zero,zero,zero,xmm1[1],zero,zero,zero,xmm1…
495 ; X86-AVX512F-NEXT: retl
497 ; X64-AVX512F-LABEL: narrowExtractedVectorSelect_crash:
498 ; X64-AVX512F: # %bb.0:
499 ; X64-AVX512F-NEXT: vptestmq %zmm0, %zmm0, %k0
500 ; X64-AVX512F-NEXT: vptestmq %zmm1, %zmm1, %k1
501 ; X64-AVX512F-NEXT: kunpckbw %k0, %k1, %k1
502 ; X64-AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
503 ; X64-AVX512F-NEXT: vpmovdw %zmm0, %ymm0
504 ; X64-AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm1
505 ; X64-AVX512F-NEXT: vpmovzxwq {{.*#+}} zmm0 = xmm1[0],zero,zero,zero,xmm1[1],zero,zero,zero,xmm1…
506 ; X64-AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm1
507 ; X64-AVX512F-NEXT: vpmovzxwq {{.*#+}} zmm1 = xmm1[0],zero,zero,zero,xmm1[1],zero,zero,zero,xmm1…
508 ; X64-AVX512F-NEXT: retq
540 ; X86-AVX512F-LABEL: vselect_v1i1:
541 ; X86-AVX512F: # %bb.0:
542 ; X86-AVX512F-NEXT: pushl %esi
543 ; X86-AVX512F-NEXT: movl {{[0-9]+}}(%esp), %eax
544 ; X86-AVX512F-NEXT: movl {{[0-9]+}}(%esp), %ecx
545 ; X86-AVX512F-NEXT: movl {{[0-9]+}}(%esp), %edx
546 ; X86-AVX512F-NEXT: movzbl (%edx), %esi
547 ; X86-AVX512F-NEXT: kmovw %esi, %k0
548 ; X86-AVX512F-NEXT: movzbl (%ecx), %ecx
549 ; X86-AVX512F-NEXT: kmovw %ecx, %k1
550 ; X86-AVX512F-NEXT: movzbl (%eax), %eax
551 ; X86-AVX512F-NEXT: kmovw %eax, %k2
552 ; X86-AVX512F-NEXT: kandnw %k1, %k2, %k1
553 ; X86-AVX512F-NEXT: kandw %k2, %k0, %k0
554 ; X86-AVX512F-NEXT: korw %k1, %k0, %k0
555 ; X86-AVX512F-NEXT: kshiftlw $15, %k0, %k0
556 ; X86-AVX512F-NEXT: kshiftrw $15, %k0, %k0
557 ; X86-AVX512F-NEXT: kmovw %k0, %eax
558 ; X86-AVX512F-NEXT: movb %al, (%edx)
559 ; X86-AVX512F-NEXT: popl %esi
560 ; X86-AVX512F-NEXT: retl
562 ; X64-AVX512F-LABEL: vselect_v1i1:
563 ; X64-AVX512F: # %bb.0:
564 ; X64-AVX512F-NEXT: movzbl (%rsi), %eax
565 ; X64-AVX512F-NEXT: kmovw %eax, %k0
566 ; X64-AVX512F-NEXT: movzbl (%rdx), %eax
567 ; X64-AVX512F-NEXT: kmovw %eax, %k1
568 ; X64-AVX512F-NEXT: movzbl (%rdi), %eax
569 ; X64-AVX512F-NEXT: kmovw %eax, %k2
570 ; X64-AVX512F-NEXT: kandnw %k1, %k2, %k1
571 ; X64-AVX512F-NEXT: kandw %k2, %k0, %k0
572 ; X64-AVX512F-NEXT: korw %k1, %k0, %k0
573 ; X64-AVX512F-NEXT: kshiftlw $15, %k0, %k0
574 ; X64-AVX512F-NEXT: kshiftrw $15, %k0, %k0
575 ; X64-AVX512F-NEXT: kmovw %k0, %eax
576 ; X64-AVX512F-NEXT: movb %al, (%rsi)
577 ; X64-AVX512F-NEXT: retq
627 ; X86-AVX512F-LABEL: select_v1i1:
628 ; X86-AVX512F: # %bb.0:
629 ; X86-AVX512F-NEXT: movl {{[0-9]+}}(%esp), %eax
630 ; X86-AVX512F-NEXT: testb $1, {{[0-9]+}}(%esp)
631 ; X86-AVX512F-NEXT: jne .LBB18_1
632 ; X86-AVX512F-NEXT: # %bb.2:
633 ; X86-AVX512F-NEXT: movl {{[0-9]+}}(%esp), %ecx
634 ; X86-AVX512F-NEXT: movl {{[0-9]+}}(%esp), %edx
635 ; X86-AVX512F-NEXT: movzbl (%edx), %edx
636 ; X86-AVX512F-NEXT: kmovw %edx, %k0
637 ; X86-AVX512F-NEXT: movzbl (%ecx), %ecx
638 ; X86-AVX512F-NEXT: kmovw %ecx, %k1
639 ; X86-AVX512F-NEXT: kxorw %k1, %k0, %k0
640 ; X86-AVX512F-NEXT: jmp .LBB18_3
641 ; X86-AVX512F-NEXT: .LBB18_1:
642 ; X86-AVX512F-NEXT: movzbl (%eax), %ecx
643 ; X86-AVX512F-NEXT: kmovw %ecx, %k0
644 ; X86-AVX512F-NEXT: .LBB18_3:
645 ; X86-AVX512F-NEXT: kshiftlw $15, %k0, %k0
646 ; X86-AVX512F-NEXT: kshiftrw $15, %k0, %k0
647 ; X86-AVX512F-NEXT: kmovw %k0, %ecx
648 ; X86-AVX512F-NEXT: movb %cl, (%eax)
649 ; X86-AVX512F-NEXT: retl
651 ; X64-AVX512F-LABEL: select_v1i1:
652 ; X64-AVX512F: # %bb.0:
653 ; X64-AVX512F-NEXT: testb $1, %cl
654 ; X64-AVX512F-NEXT: jne .LBB18_1
655 ; X64-AVX512F-NEXT: # %bb.2:
656 ; X64-AVX512F-NEXT: movzbl (%rdx), %eax
657 ; X64-AVX512F-NEXT: kmovw %eax, %k0
658 ; X64-AVX512F-NEXT: movzbl (%rdi), %eax
659 ; X64-AVX512F-NEXT: kmovw %eax, %k1
660 ; X64-AVX512F-NEXT: kxorw %k1, %k0, %k0
661 ; X64-AVX512F-NEXT: jmp .LBB18_3
662 ; X64-AVX512F-NEXT: .LBB18_1:
663 ; X64-AVX512F-NEXT: movzbl (%rsi), %eax
664 ; X64-AVX512F-NEXT: kmovw %eax, %k0
665 ; X64-AVX512F-NEXT: .LBB18_3:
666 ; X64-AVX512F-NEXT: kshiftlw $15, %k0, %k0
667 ; X64-AVX512F-NEXT: kshiftrw $15, %k0, %k0
668 ; X64-AVX512F-NEXT: kmovw %k0, %eax
669 ; X64-AVX512F-NEXT: movb %al, (%rsi)
670 ; X64-AVX512F-NEXT: retq
727 ; X86-AVX512F-LABEL: julia_issue36955:
728 ; X86-AVX512F: # %bb.0:
729 ; X86-AVX512F-NEXT: vpmovsxwq %xmm0, %zmm0
730 ; X86-AVX512F-NEXT: vpsllq $63, %zmm0, %zmm0
731 ; X86-AVX512F-NEXT: vxorpd %xmm2, %xmm2, %xmm2
732 ; X86-AVX512F-NEXT: vcmplepd %zmm2, %zmm1, %k1
733 ; X86-AVX512F-NEXT: vptestmq %zmm0, %zmm0, %k0 {%k1}
734 ; X86-AVX512F-NEXT: korw %k0, %k1, %k0
735 ; X86-AVX512F-NEXT: kmovw %k0, %eax
736 ; X86-AVX512F-NEXT: # kill: def $al killed $al killed $eax
737 ; X86-AVX512F-NEXT: vzeroupper
738 ; X86-AVX512F-NEXT: retl
740 ; X64-AVX512F-LABEL: julia_issue36955:
741 ; X64-AVX512F: # %bb.0:
742 ; X64-AVX512F-NEXT: vpmovsxwq %xmm0, %zmm0
743 ; X64-AVX512F-NEXT: vpsllq $63, %zmm0, %zmm0
744 ; X64-AVX512F-NEXT: vxorpd %xmm2, %xmm2, %xmm2
745 ; X64-AVX512F-NEXT: vcmplepd %zmm2, %zmm1, %k1
746 ; X64-AVX512F-NEXT: vptestmq %zmm0, %zmm0, %k0 {%k1}
747 ; X64-AVX512F-NEXT: korw %k0, %k1, %k0
748 ; X64-AVX512F-NEXT: kmovw %k0, %eax
749 ; X64-AVX512F-NEXT: # kill: def $al killed $al killed $eax
750 ; X64-AVX512F-NEXT: vzeroupper
751 ; X64-AVX512F-NEXT: retq