[llvm] bb4f4a3 - [CVP] Add additional tests for PR63330 (NFC)

Nikita Popov via llvm-commits llvm-commits at lists.llvm.org
Mon Jun 19 08:16:57 PDT 2023


Author: Nikita Popov
Date: 2023-06-19T17:16:49+02:00
New Revision: bb4f4a3efeae2bc0785edc19d2347f21729c816c

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

LOG: [CVP] Add additional tests for PR63330 (NFC)

Added: 
    

Modified: 
    llvm/test/Transforms/CorrelatedValuePropagation/udiv-expansion.ll
    llvm/test/Transforms/CorrelatedValuePropagation/urem-expansion.ll

Removed: 
    


################################################################################
diff  --git a/llvm/test/Transforms/CorrelatedValuePropagation/udiv-expansion.ll b/llvm/test/Transforms/CorrelatedValuePropagation/udiv-expansion.ll
index 7284f280fa764..8b796f79e60d0 100644
--- a/llvm/test/Transforms/CorrelatedValuePropagation/udiv-expansion.ll
+++ b/llvm/test/Transforms/CorrelatedValuePropagation/udiv-expansion.ll
@@ -298,3 +298,21 @@ define i8 @large.divisor.with.overflow.v2.unbound.x(i8 %x) {
   %div = udiv i8 %x, 128
   ret i8 %div
 }
+
+define i8 @known_uge(i8 noundef %x) {
+; CHECK-LABEL: @known_uge(
+; CHECK-NEXT:    [[CMP_X_UPPER:%.*]] = icmp ult i8 [[X:%.*]], 6
+; CHECK-NEXT:    call void @llvm.assume(i1 [[CMP_X_UPPER]])
+; CHECK-NEXT:    [[CMP_X_LOWER:%.*]] = icmp uge i8 [[X]], 3
+; CHECK-NEXT:    call void @llvm.assume(i1 [[CMP_X_LOWER]])
+; CHECK-NEXT:    [[DIV_CMP:%.*]] = icmp uge i8 [[X]], 3
+; CHECK-NEXT:    [[DIV:%.*]] = zext i1 [[DIV_CMP]] to i8
+; CHECK-NEXT:    ret i8 [[DIV]]
+;
+  %cmp.x.upper = icmp ult i8 %x, 6
+  call void @llvm.assume(i1 %cmp.x.upper)
+  %cmp.x.lower = icmp uge i8 %x, 3
+  call void @llvm.assume(i1 %cmp.x.lower)
+  %div = udiv i8 %x, 3
+  ret i8 %div
+}

diff  --git a/llvm/test/Transforms/CorrelatedValuePropagation/urem-expansion.ll b/llvm/test/Transforms/CorrelatedValuePropagation/urem-expansion.ll
index 2f1ca2483f67d..da38e5a269e6d 100644
--- a/llvm/test/Transforms/CorrelatedValuePropagation/urem-expansion.ll
+++ b/llvm/test/Transforms/CorrelatedValuePropagation/urem-expansion.ll
@@ -342,3 +342,22 @@ define i1 @icmp_after_expansion(i8 noundef %x) {
   %cmp = icmp eq i8 %rem, 3
   ret i1 %cmp
 }
+
+define i8 @known_uge(i8 noundef %x) {
+; CHECK-LABEL: @known_uge(
+; CHECK-NEXT:    [[CMP_X_UPPER:%.*]] = icmp ult i8 [[X:%.*]], 6
+; CHECK-NEXT:    call void @llvm.assume(i1 [[CMP_X_UPPER]])
+; CHECK-NEXT:    [[CMP_X_LOWER:%.*]] = icmp uge i8 [[X]], 3
+; CHECK-NEXT:    call void @llvm.assume(i1 [[CMP_X_LOWER]])
+; CHECK-NEXT:    [[REM_UREM:%.*]] = sub nuw i8 [[X]], 3
+; CHECK-NEXT:    [[REM_CMP:%.*]] = icmp ult i8 [[X]], 3
+; CHECK-NEXT:    [[REM:%.*]] = select i1 [[REM_CMP]], i8 [[X]], i8 [[REM_UREM]]
+; CHECK-NEXT:    ret i8 [[REM]]
+;
+  %cmp.x.upper = icmp ult i8 %x, 6
+  call void @llvm.assume(i1 %cmp.x.upper)
+  %cmp.x.lower = icmp uge i8 %x, 3
+  call void @llvm.assume(i1 %cmp.x.lower)
+  %rem = urem i8 %x, 3
+  ret i8 %rem
+}


        


More information about the llvm-commits mailing list