@@ -1599,55 +1599,41 @@ define i1 @PR116977(<32 x i8> %a, <32 x i8> %b, <32 x i8> %v) {
15991599; SSE-LABEL: PR116977:
16001600; SSE: # %bb.0:
16011601; SSE-NEXT: pcmpeqb %xmm4, %xmm0
1602- ; SSE-NEXT: pcmpeqd %xmm6, %xmm6
1603- ; SSE-NEXT: pxor %xmm6, %xmm0
16041602; SSE-NEXT: pcmpeqb %xmm5, %xmm1
1605- ; SSE-NEXT: pxor %xmm6, %xmm1
16061603; SSE-NEXT: pcmpeqb %xmm4, %xmm2
1607- ; SSE-NEXT: pxor %xmm6, %xmm2
1608- ; SSE-NEXT: por %xmm0, %xmm2
1604+ ; SSE-NEXT: pand %xmm0, %xmm2
16091605; 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
16131608; SSE-NEXT: pmovmskb %xmm3, %eax
1614- ; SSE-NEXT: testl %eax , %eax
1609+ ; SSE-NEXT: cmpl $65535 , %eax # imm = 0xFFFF
16151610; SSE-NEXT: sete %al
16161611; SSE-NEXT: retq
16171612;
16181613; AVX1-LABEL: PR116977:
16191614; AVX1: # %bb.0:
16201615; AVX1-NEXT: vpcmpeqb %xmm0, %xmm2, %xmm3
1621- ; AVX1-NEXT: vpcmpeqd %xmm4, %xmm4, %xmm4
1622- ; AVX1-NEXT: vpxor %xmm4, %xmm3, %xmm3
16231616; 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
16271619; 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
16301621; 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
16351625; AVX1-NEXT: vpmovmskb %xmm0, %eax
1636- ; AVX1-NEXT: testl %eax , %eax
1626+ ; AVX1-NEXT: xorl $65535 , %eax # imm = 0xFFFF
16371627; AVX1-NEXT: sete %al
16381628; AVX1-NEXT: vzeroupper
16391629; AVX1-NEXT: retq
16401630;
16411631; AVX2-LABEL: PR116977:
16421632; 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
16481635; AVX2-NEXT: vpor %ymm1, %ymm0, %ymm0
1649- ; AVX2-NEXT: vpmovmskb %ymm0, %eax
1650- ; AVX2-NEXT: testl %eax, %eax
1636+ ; AVX2-NEXT: vptest %ymm0, %ymm0
16511637; AVX2-NEXT: sete %al
16521638; AVX2-NEXT: vzeroupper
16531639; AVX2-NEXT: retq
0 commit comments