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