@@ -376,20 +376,14 @@ define i32 @ptestz_v2i64_concat(<4 x i64> %c, <4 x i64> %d, i32 %a, i32 %b) {
376376define i1 @ptestc_v4i32_eq0 (<4 x i32 > %a0 ) {
377377; SSE-LABEL: ptestc_v4i32_eq0:
378378; SSE: # %bb.0:
379- ; SSE-NEXT: pxor %xmm1, %xmm1
380- ; SSE-NEXT: pcmpeqd %xmm0, %xmm1
381- ; SSE-NEXT: pcmpeqd %xmm0, %xmm0
382- ; SSE-NEXT: ptest %xmm0, %xmm1
383- ; SSE-NEXT: setb %al
379+ ; SSE-NEXT: ptest %xmm0, %xmm0
380+ ; SSE-NEXT: sete %al
384381; SSE-NEXT: retq
385382;
386383; AVX-LABEL: ptestc_v4i32_eq0:
387384; AVX: # %bb.0:
388- ; AVX-NEXT: vpxor %xmm1, %xmm1, %xmm1
389- ; AVX-NEXT: vpcmpeqd %xmm1, %xmm0, %xmm0
390- ; AVX-NEXT: vpcmpeqd %xmm1, %xmm1, %xmm1
391- ; AVX-NEXT: vptest %xmm1, %xmm0
392- ; AVX-NEXT: setb %al
385+ ; AVX-NEXT: vptest %xmm0, %xmm0
386+ ; AVX-NEXT: sete %al
393387; AVX-NEXT: retq
394388 %icmp = icmp eq <4 x i32 > %a0 , zeroinitializer
395389 %sext = sext <4 x i1 > %icmp to <4 x i32 >
@@ -403,22 +397,14 @@ define i1 @ptestc_v4i32_eq0(<4 x i32> %a0) {
403397define i1 @ptestc_v4i32_and_eq0 (<4 x i32 > %a0 , <4 x i32 > %a1 ) {
404398; SSE-LABEL: ptestc_v4i32_and_eq0:
405399; SSE: # %bb.0:
406- ; SSE-NEXT: pand %xmm1, %xmm0
407- ; SSE-NEXT: pxor %xmm1, %xmm1
408- ; SSE-NEXT: pcmpeqd %xmm0, %xmm1
409- ; SSE-NEXT: pcmpeqd %xmm0, %xmm0
410400; SSE-NEXT: ptest %xmm0, %xmm1
411- ; SSE-NEXT: setb %al
401+ ; SSE-NEXT: sete %al
412402; SSE-NEXT: retq
413403;
414404; AVX-LABEL: ptestc_v4i32_and_eq0:
415405; AVX: # %bb.0:
416- ; AVX-NEXT: vpand %xmm0, %xmm1, %xmm0
417- ; AVX-NEXT: vpxor %xmm1, %xmm1, %xmm1
418- ; AVX-NEXT: vpcmpeqd %xmm1, %xmm0, %xmm0
419- ; AVX-NEXT: vpcmpeqd %xmm1, %xmm1, %xmm1
420- ; AVX-NEXT: vptest %xmm1, %xmm0
421- ; AVX-NEXT: setb %al
406+ ; AVX-NEXT: vptest %xmm0, %xmm1
407+ ; AVX-NEXT: sete %al
422408; AVX-NEXT: retq
423409 %and = and <4 x i32 > %a1 , %a0
424410 %icmp = icmp eq <4 x i32 > %and , zeroinitializer
@@ -433,21 +419,13 @@ define i1 @ptestc_v4i32_and_eq0(<4 x i32> %a0, <4 x i32> %a1) {
433419define i1 @ptestc_v4i32_andnot_eq0 (<4 x i32 > %a0 , <4 x i32 > %a1 ) {
434420; SSE-LABEL: ptestc_v4i32_andnot_eq0:
435421; SSE: # %bb.0:
436- ; SSE-NEXT: pandn %xmm0, %xmm1
437- ; SSE-NEXT: pxor %xmm0, %xmm0
438- ; SSE-NEXT: pcmpeqd %xmm1, %xmm0
439- ; SSE-NEXT: pcmpeqd %xmm1, %xmm1
440- ; SSE-NEXT: ptest %xmm1, %xmm0
422+ ; SSE-NEXT: ptest %xmm0, %xmm1
441423; SSE-NEXT: setae %al
442424; SSE-NEXT: retq
443425;
444426; AVX-LABEL: ptestc_v4i32_andnot_eq0:
445427; AVX: # %bb.0:
446- ; AVX-NEXT: vpandn %xmm0, %xmm1, %xmm0
447- ; AVX-NEXT: vpxor %xmm1, %xmm1, %xmm1
448- ; AVX-NEXT: vpcmpeqd %xmm1, %xmm0, %xmm0
449- ; AVX-NEXT: vpcmpeqd %xmm1, %xmm1, %xmm1
450- ; AVX-NEXT: vptest %xmm1, %xmm0
428+ ; AVX-NEXT: vptest %xmm0, %xmm1
451429; AVX-NEXT: setae %al
452430; AVX-NEXT: retq
453431 %not = xor <4 x i32 > %a1 , splat (i32 -1 )
0 commit comments