@@ -524,10 +524,7 @@ define i1 @fshl_or_ne_2(i32 %x, i32 %y) {
524524define i1 @and_rotl_eq_neg_1 (i8 %x , i8 %y , i8 %z ) nounwind {
525525; CHECK-LABEL: and_rotl_eq_neg_1:
526526; CHECK: # %bb.0:
527- ; CHECK-NEXT: movl %edx, %ecx
528- ; CHECK-NEXT: # kill: def $cl killed $cl killed $ecx
529- ; CHECK-NEXT: rolb %cl, %dil
530- ; CHECK-NEXT: andb %sil, %dil
527+ ; CHECK-NEXT: andl %esi, %edi
531528; CHECK-NEXT: cmpb $-1, %dil
532529; CHECK-NEXT: sete %al
533530; CHECK-NEXT: retq
@@ -596,25 +593,9 @@ define i1 @and_rotl_ne_neg_1_use(i32 %x, i32 %y, i32 %z) nounwind {
596593define <4 x i1 > @and_rotl_ne_eq_neg_1 (<4 x i32 > %x , <4 x i32 > %y ) nounwind {
597594; CHECK-LABEL: and_rotl_ne_eq_neg_1:
598595; CHECK: # %bb.0:
599- ; CHECK-NEXT: movdqa %xmm1, %xmm2
600- ; CHECK-NEXT: pslld $23, %xmm2
601- ; CHECK-NEXT: pand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm2
602- ; CHECK-NEXT: paddd {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm2
603- ; CHECK-NEXT: cvttps2dq %xmm2, %xmm2
604- ; CHECK-NEXT: pshufd {{.*#+}} xmm3 = xmm0[1,1,3,3]
605- ; CHECK-NEXT: pmuludq %xmm2, %xmm0
606- ; CHECK-NEXT: pshufd {{.*#+}} xmm4 = xmm0[1,3,2,3]
607- ; CHECK-NEXT: pshufd {{.*#+}} xmm2 = xmm2[1,1,3,3]
608- ; CHECK-NEXT: pmuludq %xmm3, %xmm2
609- ; CHECK-NEXT: pshufd {{.*#+}} xmm3 = xmm2[1,3,2,3]
610- ; CHECK-NEXT: punpckldq {{.*#+}} xmm4 = xmm4[0],xmm3[0],xmm4[1],xmm3[1]
611- ; CHECK-NEXT: pshufd {{.*#+}} xmm3 = xmm0[0,2,2,3]
612- ; CHECK-NEXT: pshufd {{.*#+}} xmm0 = xmm2[0,2,2,3]
613- ; CHECK-NEXT: punpckldq {{.*#+}} xmm3 = xmm3[0],xmm0[0],xmm3[1],xmm0[1]
614- ; CHECK-NEXT: por %xmm4, %xmm3
615- ; CHECK-NEXT: pand %xmm1, %xmm3
616- ; CHECK-NEXT: pcmpeqd %xmm0, %xmm0
617- ; CHECK-NEXT: pcmpeqd %xmm3, %xmm0
596+ ; CHECK-NEXT: pcmpeqd %xmm2, %xmm2
597+ ; CHECK-NEXT: pand %xmm1, %xmm0
598+ ; CHECK-NEXT: pcmpeqd %xmm2, %xmm0
618599; CHECK-NEXT: retq
619600 %rot = tail call <4 x i32 > @llvm.fshl.v4i32 (<4 x i32 >%x , <4 x i32 > %x , <4 x i32 > %y )
620601 %and = and <4 x i32 > %y , %rot
0 commit comments