@@ -535,55 +535,28 @@ define <8 x i16> @PR47448_ugt(i16 signext %0) {
535
535
ret <8 x i16 > %6
536
536
}
537
537
538
- ; FIXME: Recognise the knownbits from X86ISD::AND in previous block.
538
+ ; Recognise the knownbits from X86ISD::AND in previous block.
539
539
define void @PR54171 (<4 x i64 >* %mask0 , <4 x i64 >* %mask1 , i64 %i ) {
540
- ; SSE2-LABEL: PR54171:
541
- ; SSE2: # %bb.0: # %entry
542
- ; SSE2-NEXT: andq $7, %rdx
543
- ; SSE2-NEXT: je .LBB18_2
544
- ; SSE2-NEXT: # %bb.1: # %if.then
545
- ; SSE2-NEXT: movd %edx, %xmm0
546
- ; SSE2-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,0,0,0]
547
- ; SSE2-NEXT: pxor {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
548
- ; SSE2-NEXT: movdqa %xmm0, %xmm1
549
- ; SSE2-NEXT: pcmpgtd {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm1
550
- ; SSE2-NEXT: movdqa %xmm0, %xmm2
551
- ; SSE2-NEXT: pcmpgtd {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm2
552
- ; SSE2-NEXT: movdqa %xmm2, (%rdi)
553
- ; SSE2-NEXT: movdqa %xmm1, 16(%rdi)
554
- ; SSE2-NEXT: movdqa %xmm0, %xmm1
555
- ; SSE2-NEXT: pcmpgtd {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm1
556
- ; SSE2-NEXT: pcmpgtd {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
557
- ; SSE2-NEXT: movdqa %xmm0, (%rsi)
558
- ; SSE2-NEXT: movdqa %xmm1, 16(%rsi)
559
- ; SSE2-NEXT: .LBB18_2: # %if.end
560
- ; SSE2-NEXT: retq
561
- ;
562
- ; SSE41-LABEL: PR54171:
563
- ; SSE41: # %bb.0: # %entry
564
- ; SSE41-NEXT: andq $7, %rdx
565
- ; SSE41-NEXT: je .LBB18_2
566
- ; SSE41-NEXT: # %bb.1: # %if.then
567
- ; SSE41-NEXT: movd %edx, %xmm0
568
- ; SSE41-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,0,0,0]
569
- ; SSE41-NEXT: movdqa {{.*#+}} xmm1 = [3,3,4,4]
570
- ; SSE41-NEXT: pmaxud %xmm0, %xmm1
571
- ; SSE41-NEXT: pcmpeqd %xmm0, %xmm1
572
- ; SSE41-NEXT: movdqa {{.*#+}} xmm2 = [1,1,2,2]
573
- ; SSE41-NEXT: pmaxud %xmm0, %xmm2
574
- ; SSE41-NEXT: pcmpeqd %xmm0, %xmm2
575
- ; SSE41-NEXT: movdqa %xmm2, (%rdi)
576
- ; SSE41-NEXT: movdqa %xmm1, 16(%rdi)
577
- ; SSE41-NEXT: movdqa {{.*#+}} xmm1 = [7,7,8,8]
578
- ; SSE41-NEXT: pmaxud %xmm0, %xmm1
579
- ; SSE41-NEXT: pcmpeqd %xmm0, %xmm1
580
- ; SSE41-NEXT: movdqa {{.*#+}} xmm2 = [5,5,6,6]
581
- ; SSE41-NEXT: pmaxud %xmm0, %xmm2
582
- ; SSE41-NEXT: pcmpeqd %xmm0, %xmm2
583
- ; SSE41-NEXT: movdqa %xmm2, (%rsi)
584
- ; SSE41-NEXT: movdqa %xmm1, 16(%rsi)
585
- ; SSE41-NEXT: .LBB18_2: # %if.end
586
- ; SSE41-NEXT: retq
540
+ ; SSE-LABEL: PR54171:
541
+ ; SSE: # %bb.0: # %entry
542
+ ; SSE-NEXT: andq $7, %rdx
543
+ ; SSE-NEXT: je .LBB18_2
544
+ ; SSE-NEXT: # %bb.1: # %if.then
545
+ ; SSE-NEXT: movd %edx, %xmm0
546
+ ; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,0,0,0]
547
+ ; SSE-NEXT: movdqa %xmm0, %xmm1
548
+ ; SSE-NEXT: pcmpgtd {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm1
549
+ ; SSE-NEXT: movdqa %xmm0, %xmm2
550
+ ; SSE-NEXT: pcmpgtd {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm2
551
+ ; SSE-NEXT: movdqa %xmm2, (%rdi)
552
+ ; SSE-NEXT: movdqa %xmm1, 16(%rdi)
553
+ ; SSE-NEXT: movdqa %xmm0, %xmm1
554
+ ; SSE-NEXT: pcmpgtd {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm1
555
+ ; SSE-NEXT: pcmpgtd {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
556
+ ; SSE-NEXT: movdqa %xmm0, (%rsi)
557
+ ; SSE-NEXT: movdqa %xmm1, 16(%rsi)
558
+ ; SSE-NEXT: .LBB18_2: # %if.end
559
+ ; SSE-NEXT: retq
587
560
;
588
561
; AVX1-LABEL: PR54171:
589
562
; AVX1: # %bb.0: # %entry
@@ -592,16 +565,12 @@ define void @PR54171(<4 x i64>* %mask0, <4 x i64>* %mask1, i64 %i) {
592
565
; AVX1-NEXT: # %bb.1: # %if.then
593
566
; AVX1-NEXT: vmovd %edx, %xmm0
594
567
; AVX1-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,0,0,0]
595
- ; AVX1-NEXT: vpmaxud {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0, %xmm1
596
- ; AVX1-NEXT: vpcmpeqd %xmm1, %xmm0, %xmm1
597
- ; AVX1-NEXT: vpmaxud {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0, %xmm2
598
- ; AVX1-NEXT: vpcmpeqd %xmm2, %xmm0, %xmm2
568
+ ; AVX1-NEXT: vpcmpgtd {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0, %xmm1
569
+ ; AVX1-NEXT: vpcmpgtd {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0, %xmm2
599
570
; AVX1-NEXT: vmovdqa %xmm2, (%rdi)
600
571
; AVX1-NEXT: vmovdqa %xmm1, 16(%rdi)
601
- ; AVX1-NEXT: vpmaxud {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0, %xmm1
602
- ; AVX1-NEXT: vpcmpeqd %xmm1, %xmm0, %xmm1
603
- ; AVX1-NEXT: vpmaxud {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0, %xmm2
604
- ; AVX1-NEXT: vpcmpeqd %xmm2, %xmm0, %xmm0
572
+ ; AVX1-NEXT: vpcmpgtd {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0, %xmm1
573
+ ; AVX1-NEXT: vpcmpgtd {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0, %xmm0
605
574
; AVX1-NEXT: vmovdqa %xmm0, (%rsi)
606
575
; AVX1-NEXT: vmovdqa %xmm1, 16(%rsi)
607
576
; AVX1-NEXT: .LBB18_2: # %if.end
@@ -614,11 +583,9 @@ define void @PR54171(<4 x i64>* %mask0, <4 x i64>* %mask1, i64 %i) {
614
583
; AVX2-NEXT: # %bb.1: # %if.then
615
584
; AVX2-NEXT: vmovd %edx, %xmm0
616
585
; AVX2-NEXT: vpbroadcastd %xmm0, %ymm0
617
- ; AVX2-NEXT: vpmaxud {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm0, %ymm1
618
- ; AVX2-NEXT: vpcmpeqd %ymm1, %ymm0, %ymm1
586
+ ; AVX2-NEXT: vpcmpgtd {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm0, %ymm1
619
587
; AVX2-NEXT: vmovdqa %ymm1, (%rdi)
620
- ; AVX2-NEXT: vpmaxud {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm0, %ymm1
621
- ; AVX2-NEXT: vpcmpeqd %ymm1, %ymm0, %ymm0
588
+ ; AVX2-NEXT: vpcmpgtd {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm0, %ymm0
622
589
; AVX2-NEXT: vmovdqa %ymm0, (%rsi)
623
590
; AVX2-NEXT: .LBB18_2: # %if.end
624
591
; AVX2-NEXT: vzeroupper
0 commit comments