@@ -348,10 +348,7 @@ define i8 @scmp_from_select_gt_and_lt(i32 %x, i32 %y) {
348
348
define i8 @scmp_from_select_eq_and_gt (i32 %x , i32 %y ) {
349
349
; CHECK-LABEL: define i8 @scmp_from_select_eq_and_gt(
350
350
; CHECK-SAME: i32 [[X:%.*]], i32 [[Y:%.*]]) {
351
- ; CHECK-NEXT: [[EQ:%.*]] = icmp eq i32 [[X]], [[Y]]
352
- ; CHECK-NEXT: [[GT:%.*]] = icmp sgt i32 [[X]], [[Y]]
353
- ; CHECK-NEXT: [[SEL1:%.*]] = select i1 [[GT]], i8 1, i8 -1
354
- ; CHECK-NEXT: [[R:%.*]] = select i1 [[EQ]], i8 0, i8 [[SEL1]]
351
+ ; CHECK-NEXT: [[R:%.*]] = call i8 @llvm.scmp.i8.i32(i32 [[X]], i32 [[Y]])
355
352
; CHECK-NEXT: ret i8 [[R]]
356
353
;
357
354
%eq = icmp eq i32 %x , %y
@@ -364,10 +361,7 @@ define i8 @scmp_from_select_eq_and_gt(i32 %x, i32 %y) {
364
361
define i8 @scmp_from_select_eq_and_gt_commuted1 (i32 %x , i32 %y ) {
365
362
; CHECK-LABEL: define i8 @scmp_from_select_eq_and_gt_commuted1(
366
363
; CHECK-SAME: i32 [[X:%.*]], i32 [[Y:%.*]]) {
367
- ; CHECK-NEXT: [[EQ:%.*]] = icmp eq i32 [[X]], [[Y]]
368
- ; CHECK-NEXT: [[GT:%.*]] = icmp slt i32 [[X]], [[Y]]
369
- ; CHECK-NEXT: [[SEL1:%.*]] = select i1 [[GT]], i8 1, i8 -1
370
- ; CHECK-NEXT: [[R:%.*]] = select i1 [[EQ]], i8 0, i8 [[SEL1]]
364
+ ; CHECK-NEXT: [[R:%.*]] = call i8 @llvm.scmp.i8.i32(i32 [[Y]], i32 [[X]])
371
365
; CHECK-NEXT: ret i8 [[R]]
372
366
;
373
367
%eq = icmp eq i32 %x , %y
@@ -380,10 +374,7 @@ define i8 @scmp_from_select_eq_and_gt_commuted1(i32 %x, i32 %y) {
380
374
define i8 @scmp_from_select_eq_and_gt_commuted2 (i32 %x , i32 %y ) {
381
375
; CHECK-LABEL: define i8 @scmp_from_select_eq_and_gt_commuted2(
382
376
; CHECK-SAME: i32 [[X:%.*]], i32 [[Y:%.*]]) {
383
- ; CHECK-NEXT: [[EQ:%.*]] = icmp eq i32 [[X]], [[Y]]
384
- ; CHECK-NEXT: [[GT:%.*]] = icmp sgt i32 [[X]], [[Y]]
385
- ; CHECK-NEXT: [[SEL1:%.*]] = select i1 [[GT]], i8 -1, i8 1
386
- ; CHECK-NEXT: [[R:%.*]] = select i1 [[EQ]], i8 0, i8 [[SEL1]]
377
+ ; CHECK-NEXT: [[R:%.*]] = call i8 @llvm.scmp.i8.i32(i32 [[Y]], i32 [[X]])
387
378
; CHECK-NEXT: ret i8 [[R]]
388
379
;
389
380
%eq = icmp eq i32 %x , %y
@@ -396,10 +387,7 @@ define i8 @scmp_from_select_eq_and_gt_commuted2(i32 %x, i32 %y) {
396
387
define i8 @scmp_from_select_eq_and_gt_commuted3 (i32 %x , i32 %y ) {
397
388
; CHECK-LABEL: define i8 @scmp_from_select_eq_and_gt_commuted3(
398
389
; CHECK-SAME: i32 [[X:%.*]], i32 [[Y:%.*]]) {
399
- ; CHECK-NEXT: [[EQ:%.*]] = icmp eq i32 [[X]], [[Y]]
400
- ; CHECK-NEXT: [[GT:%.*]] = icmp slt i32 [[X]], [[Y]]
401
- ; CHECK-NEXT: [[SEL1:%.*]] = select i1 [[GT]], i8 -1, i8 1
402
- ; CHECK-NEXT: [[R:%.*]] = select i1 [[EQ]], i8 0, i8 [[SEL1]]
390
+ ; CHECK-NEXT: [[R:%.*]] = call i8 @llvm.scmp.i8.i32(i32 [[X]], i32 [[Y]])
403
391
; CHECK-NEXT: ret i8 [[R]]
404
392
;
405
393
%eq = icmp eq i32 %x , %y
0 commit comments