xref: /llvm-project/llvm/test/Transforms/ConstraintElimination/max-row-limit.ll (revision fbcf8a8cbb2461730bfd0603b396842925a88ef2)
123ce9383SFlorian Hahn; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
223ce9383SFlorian Hahn; RUN: opt -passes=constraint-elimination -S %s | FileCheck --check-prefixes=COMMON,SIMP %s
3*fbcf8a8cSFlorian Hahn; RUN: opt -passes=constraint-elimination -constraint-elimination-max-rows=9 -S %s | FileCheck --check-prefixes=COMMON,SIMP %s
4*fbcf8a8cSFlorian Hahn; RUN: opt -passes=constraint-elimination -constraint-elimination-max-rows=8 -S %s | FileCheck --check-prefixes=COMMON,NOSIMP %s
523ce9383SFlorian Hahn
623ce9383SFlorian Hahn
723ce9383SFlorian Hahndefine i1 @test_max_row_limit(i32 %l0, i32 %l1, i32 %l2, i32 %l3, i32 %l4) {
813ffde31SFlorian Hahn; SIMP-LABEL: @test_max_row_limit(
913ffde31SFlorian Hahn; SIMP-NEXT:  bb0:
1013ffde31SFlorian Hahn; SIMP-NEXT:    [[C0:%.*]] = icmp uge i32 [[L0:%.*]], 100
1113ffde31SFlorian Hahn; SIMP-NEXT:    br i1 [[C0]], label [[BB1:%.*]], label [[EXIT:%.*]]
1213ffde31SFlorian Hahn; SIMP:       bb1:
1313ffde31SFlorian Hahn; SIMP-NEXT:    [[C1:%.*]] = icmp uge i32 [[L1:%.*]], 100
1413ffde31SFlorian Hahn; SIMP-NEXT:    br i1 [[C1]], label [[BB2:%.*]], label [[EXIT]]
1513ffde31SFlorian Hahn; SIMP:       bb2:
1613ffde31SFlorian Hahn; SIMP-NEXT:    [[C2:%.*]] = icmp uge i32 [[L2:%.*]], 100
1713ffde31SFlorian Hahn; SIMP-NEXT:    br i1 [[C2]], label [[BB3:%.*]], label [[EXIT]]
1813ffde31SFlorian Hahn; SIMP:       bb3:
1913ffde31SFlorian Hahn; SIMP-NEXT:    [[C3:%.*]] = icmp uge i32 [[L3:%.*]], 100
2013ffde31SFlorian Hahn; SIMP-NEXT:    br i1 [[C3]], label [[BB4:%.*]], label [[EXIT]]
2113ffde31SFlorian Hahn; SIMP:       bb4:
2213ffde31SFlorian Hahn; SIMP-NEXT:    [[C4:%.*]] = icmp uge i32 [[L4:%.*]], 100
2313ffde31SFlorian Hahn; SIMP-NEXT:    br i1 [[C4]], label [[BB5:%.*]], label [[EXIT]]
2413ffde31SFlorian Hahn; SIMP:       bb5:
2523ce9383SFlorian Hahn; SIMP-NEXT:    ret i1 true
2613ffde31SFlorian Hahn; SIMP:       exit:
2713ffde31SFlorian Hahn; SIMP-NEXT:    ret i1 false
2813ffde31SFlorian Hahn;
2913ffde31SFlorian Hahn; NOSIMP-LABEL: @test_max_row_limit(
3013ffde31SFlorian Hahn; NOSIMP-NEXT:  bb0:
3113ffde31SFlorian Hahn; NOSIMP-NEXT:    [[C0:%.*]] = icmp uge i32 [[L0:%.*]], 100
3213ffde31SFlorian Hahn; NOSIMP-NEXT:    br i1 [[C0]], label [[BB1:%.*]], label [[EXIT:%.*]]
3313ffde31SFlorian Hahn; NOSIMP:       bb1:
3413ffde31SFlorian Hahn; NOSIMP-NEXT:    [[C1:%.*]] = icmp uge i32 [[L1:%.*]], 100
3513ffde31SFlorian Hahn; NOSIMP-NEXT:    br i1 [[C1]], label [[BB2:%.*]], label [[EXIT]]
3613ffde31SFlorian Hahn; NOSIMP:       bb2:
3713ffde31SFlorian Hahn; NOSIMP-NEXT:    [[C2:%.*]] = icmp uge i32 [[L2:%.*]], 100
3813ffde31SFlorian Hahn; NOSIMP-NEXT:    br i1 [[C2]], label [[BB3:%.*]], label [[EXIT]]
3913ffde31SFlorian Hahn; NOSIMP:       bb3:
4013ffde31SFlorian Hahn; NOSIMP-NEXT:    [[C3:%.*]] = icmp uge i32 [[L3:%.*]], 100
4113ffde31SFlorian Hahn; NOSIMP-NEXT:    br i1 [[C3]], label [[BB4:%.*]], label [[EXIT]]
4213ffde31SFlorian Hahn; NOSIMP:       bb4:
4313ffde31SFlorian Hahn; NOSIMP-NEXT:    [[C4:%.*]] = icmp uge i32 [[L4:%.*]], 100
4413ffde31SFlorian Hahn; NOSIMP-NEXT:    br i1 [[C4]], label [[BB5:%.*]], label [[EXIT]]
4513ffde31SFlorian Hahn; NOSIMP:       bb5:
4613ffde31SFlorian Hahn; NOSIMP-NEXT:    [[C5:%.*]] = icmp uge i32 [[L4]], 100
4723ce9383SFlorian Hahn; NOSIMP-NEXT:    ret i1 [[C5]]
4813ffde31SFlorian Hahn; NOSIMP:       exit:
4913ffde31SFlorian Hahn; NOSIMP-NEXT:    ret i1 false
5023ce9383SFlorian Hahn;
5123ce9383SFlorian Hahnbb0:
5223ce9383SFlorian Hahn  %c0 = icmp uge i32 %l0, 100
5323ce9383SFlorian Hahn  br i1 %c0, label %bb1, label %exit
5423ce9383SFlorian Hahn
5523ce9383SFlorian Hahnbb1:
5623ce9383SFlorian Hahn  %c1 = icmp uge i32 %l1, 100
5723ce9383SFlorian Hahn  br i1 %c1, label %bb2, label %exit
5823ce9383SFlorian Hahn
5923ce9383SFlorian Hahnbb2:
6023ce9383SFlorian Hahn  %c2 = icmp uge i32 %l2, 100
6123ce9383SFlorian Hahn  br i1 %c2, label %bb3, label %exit
6223ce9383SFlorian Hahn
6323ce9383SFlorian Hahnbb3:
6423ce9383SFlorian Hahn  %c3 = icmp uge i32 %l3, 100
6523ce9383SFlorian Hahn  br i1 %c3, label %bb4, label %exit
6623ce9383SFlorian Hahn
6723ce9383SFlorian Hahnbb4:
6823ce9383SFlorian Hahn  %c4 = icmp uge i32 %l4, 100
6923ce9383SFlorian Hahn  br i1 %c4, label %bb5, label %exit
7023ce9383SFlorian Hahn
7123ce9383SFlorian Hahnbb5:
7223ce9383SFlorian Hahn  %c5 = icmp uge i32 %l4, 100
7323ce9383SFlorian Hahn  ret i1 %c5
7423ce9383SFlorian Hahn
7523ce9383SFlorian Hahnexit:
7623ce9383SFlorian Hahn  ret i1 false
7723ce9383SFlorian Hahn}
7813ffde31SFlorian Hahn;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:
7913ffde31SFlorian Hahn; COMMON: {{.*}}
80