Skip to content

Commit 1d4cbbb

Browse files
committed
update test
1 parent 769c4f1 commit 1d4cbbb

File tree

8 files changed

+951
-1090
lines changed

8 files changed

+951
-1090
lines changed

llvm/test/CodeGen/AArch64/abds.ll

Lines changed: 19 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -547,10 +547,9 @@ define i8 @abd_select_i8(i8 %a, i8 %b) nounwind {
547547
; CHECK-LABEL: abd_select_i8:
548548
; CHECK: // %bb.0:
549549
; CHECK-NEXT: sxtb w8, w0
550-
; CHECK-NEXT: cmp w8, w1, sxtb
551-
; CHECK-NEXT: csel w8, w0, w1, lt
552-
; CHECK-NEXT: csel w9, w1, w0, lt
553-
; CHECK-NEXT: sub w0, w9, w8
550+
; CHECK-NEXT: sub w8, w8, w1, sxtb
551+
; CHECK-NEXT: cmp w8, #0
552+
; CHECK-NEXT: cneg w0, w8, mi
554553
; CHECK-NEXT: ret
555554
%cmp = icmp slt i8 %a, %b
556555
%ab = select i1 %cmp, i8 %a, i8 %b
@@ -563,10 +562,9 @@ define i16 @abd_select_i16(i16 %a, i16 %b) nounwind {
563562
; CHECK-LABEL: abd_select_i16:
564563
; CHECK: // %bb.0:
565564
; CHECK-NEXT: sxth w8, w0
566-
; CHECK-NEXT: cmp w8, w1, sxth
567-
; CHECK-NEXT: csel w8, w0, w1, le
568-
; CHECK-NEXT: csel w9, w1, w0, le
569-
; CHECK-NEXT: sub w0, w9, w8
565+
; CHECK-NEXT: sub w8, w8, w1, sxth
566+
; CHECK-NEXT: cmp w8, #0
567+
; CHECK-NEXT: cneg w0, w8, mi
570568
; CHECK-NEXT: ret
571569
%cmp = icmp sle i16 %a, %b
572570
%ab = select i1 %cmp, i16 %a, i16 %b
@@ -578,10 +576,9 @@ define i16 @abd_select_i16(i16 %a, i16 %b) nounwind {
578576
define i32 @abd_select_i32(i32 %a, i32 %b) nounwind {
579577
; CHECK-LABEL: abd_select_i32:
580578
; CHECK: // %bb.0:
581-
; CHECK-NEXT: cmp w0, w1
582-
; CHECK-NEXT: csel w8, w0, w1, gt
583-
; CHECK-NEXT: csel w9, w1, w0, gt
584-
; CHECK-NEXT: sub w0, w8, w9
579+
; CHECK-NEXT: sub w8, w1, w0
580+
; CHECK-NEXT: subs w9, w0, w1
581+
; CHECK-NEXT: csel w0, w9, w8, gt
585582
; CHECK-NEXT: ret
586583
%cmp = icmp sgt i32 %a, %b
587584
%ab = select i1 %cmp, i32 %a, i32 %b
@@ -593,10 +590,9 @@ define i32 @abd_select_i32(i32 %a, i32 %b) nounwind {
593590
define i64 @abd_select_i64(i64 %a, i64 %b) nounwind {
594591
; CHECK-LABEL: abd_select_i64:
595592
; CHECK: // %bb.0:
596-
; CHECK-NEXT: cmp x0, x1
597-
; CHECK-NEXT: csel x8, x0, x1, ge
598-
; CHECK-NEXT: csel x9, x1, x0, ge
599-
; CHECK-NEXT: sub x0, x8, x9
593+
; CHECK-NEXT: sub x8, x1, x0
594+
; CHECK-NEXT: subs x9, x0, x1
595+
; CHECK-NEXT: csel x0, x9, x8, gt
600596
; CHECK-NEXT: ret
601597
%cmp = icmp sge i64 %a, %b
602598
%ab = select i1 %cmp, i64 %a, i64 %b
@@ -608,14 +604,13 @@ define i64 @abd_select_i64(i64 %a, i64 %b) nounwind {
608604
define i128 @abd_select_i128(i128 %a, i128 %b) nounwind {
609605
; CHECK-LABEL: abd_select_i128:
610606
; CHECK: // %bb.0:
611-
; CHECK-NEXT: cmp x0, x2
612-
; CHECK-NEXT: sbcs xzr, x1, x3
613-
; CHECK-NEXT: csel x8, x0, x2, lt
614-
; CHECK-NEXT: csel x9, x2, x0, lt
615-
; CHECK-NEXT: csel x10, x1, x3, lt
616-
; CHECK-NEXT: csel x11, x3, x1, lt
617-
; CHECK-NEXT: subs x0, x9, x8
618-
; CHECK-NEXT: sbc x1, x11, x10
607+
; CHECK-NEXT: subs x8, x0, x2
608+
; CHECK-NEXT: sbc x9, x1, x3
609+
; CHECK-NEXT: subs x10, x2, x0
610+
; CHECK-NEXT: sbc x11, x3, x1
611+
; CHECK-NEXT: sbcs xzr, x3, x1
612+
; CHECK-NEXT: csel x0, x8, x10, lt
613+
; CHECK-NEXT: csel x1, x9, x11, lt
619614
; CHECK-NEXT: ret
620615
%cmp = icmp slt i128 %a, %b
621616
%ab = select i1 %cmp, i128 %a, i128 %b

llvm/test/CodeGen/AArch64/abdu.ll

Lines changed: 20 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -408,10 +408,9 @@ define i8 @abd_select_i8(i8 %a, i8 %b) nounwind {
408408
; CHECK-LABEL: abd_select_i8:
409409
; CHECK: // %bb.0:
410410
; CHECK-NEXT: and w8, w0, #0xff
411-
; CHECK-NEXT: cmp w8, w1, uxtb
412-
; CHECK-NEXT: csel w8, w0, w1, lo
413-
; CHECK-NEXT: csel w9, w1, w0, lo
414-
; CHECK-NEXT: sub w0, w9, w8
411+
; CHECK-NEXT: sub w8, w8, w1, uxtb
412+
; CHECK-NEXT: cmp w8, #0
413+
; CHECK-NEXT: cneg w0, w8, mi
415414
; CHECK-NEXT: ret
416415
%cmp = icmp ult i8 %a, %b
417416
%ab = select i1 %cmp, i8 %a, i8 %b
@@ -424,10 +423,9 @@ define i16 @abd_select_i16(i16 %a, i16 %b) nounwind {
424423
; CHECK-LABEL: abd_select_i16:
425424
; CHECK: // %bb.0:
426425
; CHECK-NEXT: and w8, w0, #0xffff
427-
; CHECK-NEXT: cmp w8, w1, uxth
428-
; CHECK-NEXT: csel w8, w0, w1, ls
429-
; CHECK-NEXT: csel w9, w1, w0, ls
430-
; CHECK-NEXT: sub w0, w9, w8
426+
; CHECK-NEXT: sub w8, w8, w1, uxth
427+
; CHECK-NEXT: cmp w8, #0
428+
; CHECK-NEXT: cneg w0, w8, mi
431429
; CHECK-NEXT: ret
432430
%cmp = icmp ule i16 %a, %b
433431
%ab = select i1 %cmp, i16 %a, i16 %b
@@ -439,10 +437,9 @@ define i16 @abd_select_i16(i16 %a, i16 %b) nounwind {
439437
define i32 @abd_select_i32(i32 %a, i32 %b) nounwind {
440438
; CHECK-LABEL: abd_select_i32:
441439
; CHECK: // %bb.0:
442-
; CHECK-NEXT: cmp w0, w1
443-
; CHECK-NEXT: csel w8, w0, w1, hi
444-
; CHECK-NEXT: csel w9, w1, w0, hi
445-
; CHECK-NEXT: sub w0, w8, w9
440+
; CHECK-NEXT: sub w8, w1, w0
441+
; CHECK-NEXT: subs w9, w0, w1
442+
; CHECK-NEXT: csel w0, w9, w8, hi
446443
; CHECK-NEXT: ret
447444
%cmp = icmp ugt i32 %a, %b
448445
%ab = select i1 %cmp, i32 %a, i32 %b
@@ -454,10 +451,9 @@ define i32 @abd_select_i32(i32 %a, i32 %b) nounwind {
454451
define i64 @abd_select_i64(i64 %a, i64 %b) nounwind {
455452
; CHECK-LABEL: abd_select_i64:
456453
; CHECK: // %bb.0:
457-
; CHECK-NEXT: cmp x0, x1
458-
; CHECK-NEXT: csel x8, x0, x1, hs
459-
; CHECK-NEXT: csel x9, x1, x0, hs
460-
; CHECK-NEXT: sub x0, x8, x9
454+
; CHECK-NEXT: sub x8, x1, x0
455+
; CHECK-NEXT: subs x9, x0, x1
456+
; CHECK-NEXT: csel x0, x9, x8, hi
461457
; CHECK-NEXT: ret
462458
%cmp = icmp uge i64 %a, %b
463459
%ab = select i1 %cmp, i64 %a, i64 %b
@@ -469,14 +465,14 @@ define i64 @abd_select_i64(i64 %a, i64 %b) nounwind {
469465
define i128 @abd_select_i128(i128 %a, i128 %b) nounwind {
470466
; CHECK-LABEL: abd_select_i128:
471467
; CHECK: // %bb.0:
472-
; CHECK-NEXT: cmp x0, x2
473-
; CHECK-NEXT: sbcs xzr, x1, x3
474-
; CHECK-NEXT: csel x8, x0, x2, lo
475-
; CHECK-NEXT: csel x9, x2, x0, lo
476-
; CHECK-NEXT: csel x10, x1, x3, lo
477-
; CHECK-NEXT: csel x11, x3, x1, lo
478-
; CHECK-NEXT: subs x0, x9, x8
479-
; CHECK-NEXT: sbc x1, x11, x10
468+
; CHECK-NEXT: subs x8, x0, x2
469+
; CHECK-NEXT: sbcs x9, x1, x3
470+
; CHECK-NEXT: cset w10, lo
471+
; CHECK-NEXT: sbfx x10, x10, #0, #1
472+
; CHECK-NEXT: eor x8, x8, x10
473+
; CHECK-NEXT: eor x9, x9, x10
474+
; CHECK-NEXT: subs x0, x8, x10
475+
; CHECK-NEXT: sbc x1, x9, x10
480476
; CHECK-NEXT: ret
481477
%cmp = icmp ult i128 %a, %b
482478
%ab = select i1 %cmp, i128 %a, i128 %b

0 commit comments

Comments
 (0)