Skip to content

Commit 6aeec5e

Browse files
committed
[ConstraintElim] Test for #128588
1 parent b57e63b commit 6aeec5e

File tree

1 file changed

+25
-3
lines changed

1 file changed

+25
-3
lines changed

llvm/test/Transforms/ConstraintElimination/analysis-invalidation.ll

+25-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 2
21
; RUN: opt -passes='require<demanded-bits>,constraint-elimination,require<demanded-bits>' -disable-verify -verify-analysis-invalidation=false -debug-pass-manager -disable-output %s 2>&1 | FileCheck %s
32

43
; Check that constraint-elimination properly invalidates anlyses.
@@ -34,6 +33,21 @@
3433
; CHECK-NEXT: Running pass: RequireAnalysisPass
3534
; CHECK-NEXT: Running analysis: DemandedBitsAnalysis on uge_zext
3635

36+
; CHECK-NEXT: Running pass: RequireAnalysisPass
37+
; CHECK-NEXT: Running analysis: DemandedBitsAnalysis on test_mul_const_nuw_unsigned_14
38+
; CHECK-NEXT: Running analysis: AssumptionAnalysis on test_mul_const_nuw_unsigned_14
39+
; CHECK-NEXT: Running analysis: TargetIRAnalysis on test_mul_const_nuw_unsigned_14
40+
; CHECK-NEXT: Running analysis: DominatorTreeAnalysis on test_mul_const_nuw_unsigned_14
41+
; CHECK-NEXT: Running pass: ConstraintEliminationPass on test_mul_const_nuw_unsigned_14
42+
; CHECK-NEXT: Running analysis: LoopAnalysis on test_mul_const_nuw_unsigned_14
43+
; CHECK-NEXT: Running analysis: ScalarEvolutionAnalysis on test_mul_const_nuw_unsigned_14
44+
; CHECK-NEXT: Running analysis: TargetLibraryAnalysis on test_mul_const_nuw_unsigned_14
45+
; CHECK-NEXT: Running analysis: OptimizationRemarkEmitterAnalysis on test_mul_const_nuw_unsigned_14
46+
; CHECK-NEXT: Invalidating analysis: DemandedBitsAnalysis on test_mul_const_nuw_unsigned_14
47+
; CHECK-NEXT: Running pass: RequireAnalysisPass
48+
; CHECK-NEXT: Running analysis: DemandedBitsAnalysis on test_mul_const_nuw_unsigned_14
49+
50+
3751
declare { i8, i1 } @llvm.ssub.with.overflow.i8(i8, i8)
3852

3953
define i8 @ssub_no_overflow_due_to_or_conds(i8 %a, i8 %b) {
@@ -72,5 +86,13 @@ bb1:
7286
bb2:
7387
ret i1 false
7488
}
75-
;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:
76-
; CHECK: {{.*}}
89+
90+
define i1 @test_mul_const_nuw_unsigned_14(i8 %start) {
91+
%start.mul.5 = mul nuw i8 %start, -5
92+
%c.0 = icmp ult i8 %start, %start.mul.5
93+
call void @llvm.assume(i1 %c.0)
94+
95+
%start.mul.3 = mul nuw i8 %start, -3
96+
%t.1 = icmp ule i8 %start.mul.3, %start.mul.5
97+
ret i1 %t.1
98+
}

0 commit comments

Comments
 (0)