[llvm] cfcd7af - [instcombine] Add test coverage for (x >>u y) pred x [part 2]

Philip Reames via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 5 13:37:42 PST 2022


Author: Philip Reames
Date: 2022-01-05T13:37:17-08:00
New Revision: cfcd7af8deb8a02c3832e211905dcb30dd04dc1d

URL: https://github.com/llvm/llvm-project/commit/cfcd7af8deb8a02c3832e211905dcb30dd04dc1d
DIFF: https://github.com/llvm/llvm-project/commit/cfcd7af8deb8a02c3832e211905dcb30dd04dc1d.diff

LOG: [instcombine] Add test coverage for (x >>u y) pred x [part 2]

Added: 
    

Modified: 
    llvm/test/Transforms/InstCombine/lshr.ll

Removed: 
    


################################################################################
diff  --git a/llvm/test/Transforms/InstCombine/lshr.ll b/llvm/test/Transforms/InstCombine/lshr.ll
index ce2e3293aff1..1862975975e6 100644
--- a/llvm/test/Transforms/InstCombine/lshr.ll
+++ b/llvm/test/Transforms/InstCombine/lshr.ll
@@ -782,4 +782,46 @@ define i1 @icmp_uge(i32 %x, i32 %y) {
   ret i1 %cmp
 }
 
+define i1 @icmp_sle(i32 %x, i32 %y) {
+; CHECK-LABEL: @icmp_sle(
+; CHECK-NEXT:    [[X_SHIFTED:%.*]] = lshr i32 [[X:%.*]], [[Y:%.*]]
+; CHECK-NEXT:    [[CMP:%.*]] = icmp sle i32 [[X_SHIFTED]], [[X]]
+; CHECK-NEXT:    ret i1 [[CMP]]
+;
+  %x.shifted = lshr i32 %x, %y
+  %cmp = icmp sle i32 %x.shifted, %x
+  ret i1 %cmp
+}
+
+define i1 @icmp_slt(i32 %x, i32 %y) {
+; CHECK-LABEL: @icmp_slt(
+; CHECK-NEXT:    [[X_SHIFTED:%.*]] = lshr i32 [[X:%.*]], [[Y:%.*]]
+; CHECK-NEXT:    [[CMP:%.*]] = icmp slt i32 [[X_SHIFTED]], [[X]]
+; CHECK-NEXT:    ret i1 [[CMP]]
+;
+  %x.shifted = lshr i32 %x, %y
+  %cmp = icmp slt i32 %x.shifted, %x
+  ret i1 %cmp
+}
 
+define i1 @icmp_sgt(i32 %x, i32 %y) {
+; CHECK-LABEL: @icmp_sgt(
+; CHECK-NEXT:    [[X_SHIFTED:%.*]] = lshr i32 [[X:%.*]], [[Y:%.*]]
+; CHECK-NEXT:    [[CMP:%.*]] = icmp sgt i32 [[X_SHIFTED]], [[X]]
+; CHECK-NEXT:    ret i1 [[CMP]]
+;
+  %x.shifted = lshr i32 %x, %y
+  %cmp = icmp sgt i32 %x.shifted, %x
+  ret i1 %cmp
+}
+
+define i1 @icmp_sge(i32 %x, i32 %y) {
+; CHECK-LABEL: @icmp_sge(
+; CHECK-NEXT:    [[X_SHIFTED:%.*]] = lshr i32 [[X:%.*]], [[Y:%.*]]
+; CHECK-NEXT:    [[CMP:%.*]] = icmp sge i32 [[X_SHIFTED]], [[X]]
+; CHECK-NEXT:    ret i1 [[CMP]]
+;
+  %x.shifted = lshr i32 %x, %y
+  %cmp = icmp sge i32 %x.shifted, %x
+  ret i1 %cmp
+}


        


More information about the llvm-commits mailing list