@@ -376,20 +376,14 @@ define i32 @ptestz_v2i64_concat(<4 x i64> %c, <4 x i64> %d, i32 %a, i32 %b) {
376
376
define i1 @ptestc_v4i32_eq0 (<4 x i32 > %a0 ) {
377
377
; SSE-LABEL: ptestc_v4i32_eq0:
378
378
; 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
384
381
; SSE-NEXT: retq
385
382
;
386
383
; AVX-LABEL: ptestc_v4i32_eq0:
387
384
; 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
393
387
; AVX-NEXT: retq
394
388
%icmp = icmp eq <4 x i32 > %a0 , zeroinitializer
395
389
%sext = sext <4 x i1 > %icmp to <4 x i32 >
@@ -403,22 +397,14 @@ define i1 @ptestc_v4i32_eq0(<4 x i32> %a0) {
403
397
define i1 @ptestc_v4i32_and_eq0 (<4 x i32 > %a0 , <4 x i32 > %a1 ) {
404
398
; SSE-LABEL: ptestc_v4i32_and_eq0:
405
399
; 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
410
400
; SSE-NEXT: ptest %xmm0, %xmm1
411
- ; SSE-NEXT: setb %al
401
+ ; SSE-NEXT: sete %al
412
402
; SSE-NEXT: retq
413
403
;
414
404
; AVX-LABEL: ptestc_v4i32_and_eq0:
415
405
; 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
422
408
; AVX-NEXT: retq
423
409
%and = and <4 x i32 > %a1 , %a0
424
410
%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) {
433
419
define i1 @ptestc_v4i32_andnot_eq0 (<4 x i32 > %a0 , <4 x i32 > %a1 ) {
434
420
; SSE-LABEL: ptestc_v4i32_andnot_eq0:
435
421
; 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
441
423
; SSE-NEXT: setae %al
442
424
; SSE-NEXT: retq
443
425
;
444
426
; AVX-LABEL: ptestc_v4i32_andnot_eq0:
445
427
; 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
451
429
; AVX-NEXT: setae %al
452
430
; AVX-NEXT: retq
453
431
%not = xor <4 x i32 > %a1 , splat (i32 -1 )
0 commit comments