@@ -1599,55 +1599,41 @@ define i1 @PR116977(<32 x i8> %a, <32 x i8> %b, <32 x i8> %v) {
1599
1599
; SSE-LABEL: PR116977:
1600
1600
; SSE: # %bb.0:
1601
1601
; SSE-NEXT: pcmpeqb %xmm4, %xmm0
1602
- ; SSE-NEXT: pcmpeqd %xmm6, %xmm6
1603
- ; SSE-NEXT: pxor %xmm6, %xmm0
1604
1602
; SSE-NEXT: pcmpeqb %xmm5, %xmm1
1605
- ; SSE-NEXT: pxor %xmm6, %xmm1
1606
1603
; SSE-NEXT: pcmpeqb %xmm4, %xmm2
1607
- ; SSE-NEXT: pxor %xmm6, %xmm2
1608
- ; SSE-NEXT: por %xmm0, %xmm2
1604
+ ; SSE-NEXT: pand %xmm0, %xmm2
1609
1605
; SSE-NEXT: pcmpeqb %xmm5, %xmm3
1610
- ; SSE-NEXT: pxor %xmm6, %xmm3
1611
- ; SSE-NEXT: por %xmm1, %xmm3
1612
- ; SSE-NEXT: por %xmm2, %xmm3
1606
+ ; SSE-NEXT: pand %xmm1, %xmm3
1607
+ ; SSE-NEXT: pand %xmm2, %xmm3
1613
1608
; SSE-NEXT: pmovmskb %xmm3, %eax
1614
- ; SSE-NEXT: testl %eax , %eax
1609
+ ; SSE-NEXT: cmpl $65535 , %eax # imm = 0xFFFF
1615
1610
; SSE-NEXT: sete %al
1616
1611
; SSE-NEXT: retq
1617
1612
;
1618
1613
; AVX1-LABEL: PR116977:
1619
1614
; AVX1: # %bb.0:
1620
1615
; AVX1-NEXT: vpcmpeqb %xmm0, %xmm2, %xmm3
1621
- ; AVX1-NEXT: vpcmpeqd %xmm4, %xmm4, %xmm4
1622
- ; AVX1-NEXT: vpxor %xmm4, %xmm3, %xmm3
1623
1616
; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm0
1624
- ; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm5
1625
- ; AVX1-NEXT: vpcmpeqb %xmm0, %xmm5, %xmm0
1626
- ; AVX1-NEXT: vpxor %xmm4, %xmm0, %xmm0
1617
+ ; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm4
1618
+ ; AVX1-NEXT: vpcmpeqb %xmm0, %xmm4, %xmm0
1627
1619
; AVX1-NEXT: vpcmpeqb %xmm1, %xmm2, %xmm2
1628
- ; AVX1-NEXT: vpxor %xmm4, %xmm2, %xmm2
1629
- ; AVX1-NEXT: vpor %xmm2, %xmm3, %xmm2
1620
+ ; AVX1-NEXT: vpand %xmm2, %xmm3, %xmm2
1630
1621
; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm1
1631
- ; AVX1-NEXT: vpcmpeqb %xmm1, %xmm5, %xmm1
1632
- ; AVX1-NEXT: vpxor %xmm4, %xmm1, %xmm1
1633
- ; AVX1-NEXT: vpor %xmm1, %xmm0, %xmm0
1634
- ; AVX1-NEXT: vpor %xmm0, %xmm2, %xmm0
1622
+ ; AVX1-NEXT: vpcmpeqb %xmm1, %xmm4, %xmm1
1623
+ ; AVX1-NEXT: vpand %xmm1, %xmm0, %xmm0
1624
+ ; AVX1-NEXT: vpand %xmm0, %xmm2, %xmm0
1635
1625
; AVX1-NEXT: vpmovmskb %xmm0, %eax
1636
- ; AVX1-NEXT: testl %eax , %eax
1626
+ ; AVX1-NEXT: xorl $65535 , %eax # imm = 0xFFFF
1637
1627
; AVX1-NEXT: sete %al
1638
1628
; AVX1-NEXT: vzeroupper
1639
1629
; AVX1-NEXT: retq
1640
1630
;
1641
1631
; AVX2-LABEL: PR116977:
1642
1632
; AVX2: # %bb.0:
1643
- ; AVX2-NEXT: vpcmpeqb %ymm0, %ymm2, %ymm0
1644
- ; AVX2-NEXT: vpcmpeqd %ymm3, %ymm3, %ymm3
1645
- ; AVX2-NEXT: vpxor %ymm3, %ymm0, %ymm0
1646
- ; AVX2-NEXT: vpcmpeqb %ymm1, %ymm2, %ymm1
1647
- ; AVX2-NEXT: vpxor %ymm3, %ymm1, %ymm1
1633
+ ; AVX2-NEXT: vpxor %ymm0, %ymm2, %ymm0
1634
+ ; AVX2-NEXT: vpxor %ymm1, %ymm2, %ymm1
1648
1635
; AVX2-NEXT: vpor %ymm1, %ymm0, %ymm0
1649
- ; AVX2-NEXT: vpmovmskb %ymm0, %eax
1650
- ; AVX2-NEXT: testl %eax, %eax
1636
+ ; AVX2-NEXT: vptest %ymm0, %ymm0
1651
1637
; AVX2-NEXT: sete %al
1652
1638
; AVX2-NEXT: vzeroupper
1653
1639
; AVX2-NEXT: retq
0 commit comments