Skip to content

Commit 403e3e8

Browse files
committed
Pre-commit tests (NFC)
1 parent d371417 commit 403e3e8

File tree

1 file changed

+44
-0
lines changed
  • llvm/test/Transforms/InstCombine

1 file changed

+44
-0
lines changed

llvm/test/Transforms/InstCombine/scmp.ll

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -747,3 +747,47 @@ define i8 @scmp_from_select_eq_and_gt_neg3(i32 %x, i32 %y) {
747747
%r = select i1 %eq, i8 0, i8 %sel1
748748
ret i8 %r
749749
}
750+
751+
define i32 @scmp_ashr(i32 %a) {
752+
; CHECK-LABEL: define i32 @scmp_ashr(
753+
; CHECK-SAME: i32 [[A:%.*]]) {
754+
; CHECK-NEXT: [[A_LOBIT:%.*]] = ashr i32 [[A]], 31
755+
; CHECK-NEXT: [[CMP_INV:%.*]] = icmp slt i32 [[A]], 1
756+
; CHECK-NEXT: [[RETVAL_0:%.*]] = select i1 [[CMP_INV]], i32 [[A_LOBIT]], i32 1
757+
; CHECK-NEXT: ret i32 [[RETVAL_0]]
758+
;
759+
%a.lobit = ashr i32 %a, 31
760+
%cmp.inv = icmp slt i32 %a, 1
761+
%retval.0 = select i1 %cmp.inv, i32 %a.lobit, i32 1
762+
ret i32 %retval.0
763+
}
764+
765+
; Test the new SGT pattern: select (icmp sgt X, 0), 1, ashr X, bitwidth-1 -> scmp(X, 0)
766+
define i8 @scmp_ashr_sgt_pattern(i8 %a) {
767+
; CHECK-LABEL: define i8 @scmp_ashr_sgt_pattern(
768+
; CHECK-SAME: i8 [[A:%.*]]) {
769+
; CHECK-NEXT: [[A_LOBIT:%.*]] = ashr i8 [[A]], 7
770+
; CHECK-NEXT: [[CMP_INV:%.*]] = icmp slt i8 [[A]], 1
771+
; CHECK-NEXT: [[R:%.*]] = select i1 [[CMP_INV]], i8 [[A_LOBIT]], i8 1
772+
; CHECK-NEXT: ret i8 [[R]]
773+
;
774+
%a.lobit = ashr i8 %a, 7
775+
%cmp = icmp sgt i8 %a, 0
776+
%retval = select i1 %cmp, i8 1, i8 %a.lobit
777+
ret i8 %retval
778+
}
779+
780+
; Test the SLT pattern: select (icmp slt X, 1), ashr X, bitwidth-1, 1 -> scmp(X, 0)
781+
define i8 @scmp_ashr_slt_pattern(i8 %a) {
782+
; CHECK-LABEL: define i8 @scmp_ashr_slt_pattern(
783+
; CHECK-SAME: i8 [[A:%.*]]) {
784+
; CHECK-NEXT: [[A_LOBIT:%.*]] = ashr i8 [[A]], 7
785+
; CHECK-NEXT: [[CMP:%.*]] = icmp slt i8 [[A]], 1
786+
; CHECK-NEXT: [[R:%.*]] = select i1 [[CMP]], i8 [[A_LOBIT]], i8 1
787+
; CHECK-NEXT: ret i8 [[R]]
788+
;
789+
%a.lobit = ashr i8 %a, 7
790+
%cmp = icmp slt i8 %a, 1
791+
%retval = select i1 %cmp, i8 %a.lobit, i8 1
792+
ret i8 %retval
793+
}

0 commit comments

Comments
 (0)