[llvm] f9f865d - [CVP] Add test for select with assumes (NFC)
Nikita Popov via llvm-commits
llvm-commits at lists.llvm.org
Tue Jan 18 01:00:57 PST 2022
Author: Nikita Popov
Date: 2022-01-18T10:00:48+01:00
New Revision: f9f865d86c822db6078a3f219d328249406635e1
URL: https://github.com/llvm/llvm-project/commit/f9f865d86c822db6078a3f219d328249406635e1
DIFF: https://github.com/llvm/llvm-project/commit/f9f865d86c822db6078a3f219d328249406635e1.diff
LOG: [CVP] Add test for select with assumes (NFC)
The incoming values of selects are currently not intersected with
assumes.
Added:
Modified:
llvm/test/Transforms/CorrelatedValuePropagation/basic.ll
Removed:
################################################################################
diff --git a/llvm/test/Transforms/CorrelatedValuePropagation/basic.ll b/llvm/test/Transforms/CorrelatedValuePropagation/basic.ll
index 29322e3448294..da5cdab36f68f 100644
--- a/llvm/test/Transforms/CorrelatedValuePropagation/basic.ll
+++ b/llvm/test/Transforms/CorrelatedValuePropagation/basic.ll
@@ -1644,6 +1644,31 @@ exit:
ret i1 false
}
+define void @select_assume(i32 %a, i32 %b, i1 %c, i1* %p) {
+; CHECK-LABEL: @select_assume(
+; CHECK-NEXT: [[C1:%.*]] = icmp ult i32 [[A:%.*]], 10
+; CHECK-NEXT: call void @llvm.assume(i1 [[C1]])
+; CHECK-NEXT: [[C2:%.*]] = icmp ult i32 [[B:%.*]], 20
+; CHECK-NEXT: call void @llvm.assume(i1 [[C2]])
+; CHECK-NEXT: [[S:%.*]] = select i1 [[C:%.*]], i32 [[A]], i32 [[B]]
+; CHECK-NEXT: [[C3:%.*]] = icmp ult i32 [[S]], 19
+; CHECK-NEXT: store i1 [[C3]], i1* [[P:%.*]], align 1
+; CHECK-NEXT: [[C4:%.*]] = icmp ult i32 [[S]], 20
+; CHECK-NEXT: store i1 [[C4]], i1* [[P]], align 1
+; CHECK-NEXT: ret void
+;
+ %c1 = icmp ult i32 %a, 10
+ call void @llvm.assume(i1 %c1)
+ %c2 = icmp ult i32 %b, 20
+ call void @llvm.assume(i1 %c2)
+ %s = select i1 %c, i32 %a, i32 %b
+ %c3 = icmp ult i32 %s, 19
+ store i1 %c3, i1* %p
+ %c4 = icmp ult i32 %s, 20
+ store i1 %c4, i1* %p
+ ret void
+}
+
declare i32 @llvm.uadd.sat.i32(i32, i32)
declare i32 @llvm.usub.sat.i32(i32, i32)
More information about the llvm-commits
mailing list