xref: /llvm-project/llvm/test/Transforms/ConstraintElimination/add.ll (revision 6778e2f4418eea7f8fa44fb1f9b0aaeca8eacfe1)
12322080bSFlorian Hahn; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
28ebb3eacSBjorn Pettersson; RUN: opt -passes=constraint-elimination -S %s | FileCheck %s
32322080bSFlorian Hahn
42322080bSFlorian Hahndefine void @test.not.uge.ult(i8 %start, i8 %low, i8 %high) {
52322080bSFlorian Hahn; CHECK-LABEL: @test.not.uge.ult(
62322080bSFlorian Hahn; CHECK-NEXT:  entry:
72322080bSFlorian Hahn; CHECK-NEXT:    [[ADD_PTR_I:%.*]] = add i8 [[START:%.*]], 3
82322080bSFlorian Hahn; CHECK-NEXT:    [[C_1:%.*]] = icmp uge i8 [[ADD_PTR_I]], [[HIGH:%.*]]
92322080bSFlorian Hahn; CHECK-NEXT:    br i1 [[C_1]], label [[IF_THEN:%.*]], label [[IF_END:%.*]]
102322080bSFlorian Hahn; CHECK:       if.then:
112322080bSFlorian Hahn; CHECK-NEXT:    ret void
122322080bSFlorian Hahn; CHECK:       if.end:
132322080bSFlorian Hahn; CHECK-NEXT:    [[T_0:%.*]] = icmp ult i8 [[START]], [[HIGH]]
142322080bSFlorian Hahn; CHECK-NEXT:    call void @use(i1 [[T_0]])
152322080bSFlorian Hahn; CHECK-NEXT:    [[START_1:%.*]] = add i8 [[START]], 1
162322080bSFlorian Hahn; CHECK-NEXT:    [[T_1:%.*]] = icmp ult i8 [[START_1]], [[HIGH]]
172322080bSFlorian Hahn; CHECK-NEXT:    call void @use(i1 [[T_1]])
182322080bSFlorian Hahn; CHECK-NEXT:    [[START_2:%.*]] = add i8 [[START]], 2
192322080bSFlorian Hahn; CHECK-NEXT:    [[T_2:%.*]] = icmp ult i8 [[START_2]], [[HIGH]]
202322080bSFlorian Hahn; CHECK-NEXT:    call void @use(i1 [[T_2]])
212322080bSFlorian Hahn; CHECK-NEXT:    [[START_3:%.*]] = add i8 [[START]], 3
222322080bSFlorian Hahn; CHECK-NEXT:    [[T_3:%.*]] = icmp ult i8 [[START_3]], [[HIGH]]
232322080bSFlorian Hahn; CHECK-NEXT:    call void @use(i1 [[T_3]])
242322080bSFlorian Hahn; CHECK-NEXT:    [[START_4:%.*]] = add i8 [[START]], 4
252322080bSFlorian Hahn; CHECK-NEXT:    [[C_4:%.*]] = icmp ult i8 [[START_4]], [[HIGH]]
262322080bSFlorian Hahn; CHECK-NEXT:    call void @use(i1 [[C_4]])
272322080bSFlorian Hahn; CHECK-NEXT:    ret void
282322080bSFlorian Hahn;
292322080bSFlorian Hahnentry:
302322080bSFlorian Hahn  %add.ptr.i = add i8 %start, 3
312322080bSFlorian Hahn  %c.1 = icmp uge i8 %add.ptr.i, %high
322322080bSFlorian Hahn  br i1 %c.1, label %if.then, label %if.end
332322080bSFlorian Hahn
342322080bSFlorian Hahnif.then:                                          ; preds = %entry
352322080bSFlorian Hahn  ret void
362322080bSFlorian Hahn
372322080bSFlorian Hahnif.end:                                           ; preds = %entry
382322080bSFlorian Hahn  %t.0 = icmp ult i8 %start, %high
392322080bSFlorian Hahn  call void @use(i1 %t.0)
402322080bSFlorian Hahn  %start.1 = add i8 %start, 1
412322080bSFlorian Hahn  %t.1 = icmp ult i8 %start.1, %high
422322080bSFlorian Hahn  call void @use(i1 %t.1)
432322080bSFlorian Hahn  %start.2 = add i8 %start, 2
442322080bSFlorian Hahn  %t.2 = icmp ult i8 %start.2, %high
452322080bSFlorian Hahn  call void @use(i1 %t.2)
462322080bSFlorian Hahn  %start.3 = add i8 %start, 3
472322080bSFlorian Hahn  %t.3 = icmp ult i8 %start.3, %high
482322080bSFlorian Hahn  call void @use(i1 %t.3)
492322080bSFlorian Hahn  %start.4 = add i8 %start, 4
502322080bSFlorian Hahn  %c.4 = icmp ult i8 %start.4, %high
512322080bSFlorian Hahn  call void @use(i1 %c.4)
522322080bSFlorian Hahn  ret void
532322080bSFlorian Hahn}
542322080bSFlorian Hahn
55*6778e2f4SFlorian Hahndefine void @test.not.sge.ult(i8 %start, i8 %low, i8 %high) {
56*6778e2f4SFlorian Hahn; CHECK-LABEL: @test.not.sge.ult(
57*6778e2f4SFlorian Hahn; CHECK-NEXT:  entry:
58*6778e2f4SFlorian Hahn; CHECK-NEXT:    [[ADD_PTR_I:%.*]] = add i8 [[START:%.*]], 3
59*6778e2f4SFlorian Hahn; CHECK-NEXT:    [[C_1:%.*]] = icmp sge i8 [[ADD_PTR_I]], [[HIGH:%.*]]
60*6778e2f4SFlorian Hahn; CHECK-NEXT:    br i1 [[C_1]], label [[IF_THEN:%.*]], label [[IF_END:%.*]]
61*6778e2f4SFlorian Hahn; CHECK:       if.then:
62*6778e2f4SFlorian Hahn; CHECK-NEXT:    ret void
63*6778e2f4SFlorian Hahn; CHECK:       if.end:
64*6778e2f4SFlorian Hahn; CHECK-NEXT:    [[T_0:%.*]] = icmp slt i8 [[START]], [[HIGH]]
65*6778e2f4SFlorian Hahn; CHECK-NEXT:    call void @use(i1 [[T_0]])
66*6778e2f4SFlorian Hahn; CHECK-NEXT:    [[START_1:%.*]] = add i8 [[START]], 1
67*6778e2f4SFlorian Hahn; CHECK-NEXT:    [[T_1:%.*]] = icmp slt i8 [[START_1]], [[HIGH]]
68*6778e2f4SFlorian Hahn; CHECK-NEXT:    call void @use(i1 [[T_1]])
69*6778e2f4SFlorian Hahn; CHECK-NEXT:    [[START_2:%.*]] = add i8 [[START]], 2
70*6778e2f4SFlorian Hahn; CHECK-NEXT:    [[T_2:%.*]] = icmp slt i8 [[START_2]], [[HIGH]]
71*6778e2f4SFlorian Hahn; CHECK-NEXT:    call void @use(i1 [[T_2]])
72*6778e2f4SFlorian Hahn; CHECK-NEXT:    [[START_3:%.*]] = add i8 [[START]], 3
73*6778e2f4SFlorian Hahn; CHECK-NEXT:    [[T_3:%.*]] = icmp slt i8 [[START_3]], [[HIGH]]
74*6778e2f4SFlorian Hahn; CHECK-NEXT:    call void @use(i1 [[T_3]])
75*6778e2f4SFlorian Hahn; CHECK-NEXT:    [[START_4:%.*]] = add i8 [[START]], 4
76*6778e2f4SFlorian Hahn; CHECK-NEXT:    [[C_4:%.*]] = icmp slt i8 [[START_4]], [[HIGH]]
77*6778e2f4SFlorian Hahn; CHECK-NEXT:    call void @use(i1 [[C_4]])
78*6778e2f4SFlorian Hahn; CHECK-NEXT:    ret void
79*6778e2f4SFlorian Hahn;
80*6778e2f4SFlorian Hahnentry:
81*6778e2f4SFlorian Hahn  %add.ptr.i = add i8 %start, 3
82*6778e2f4SFlorian Hahn  %c.1 = icmp sge i8 %add.ptr.i, %high
83*6778e2f4SFlorian Hahn  br i1 %c.1, label %if.then, label %if.end
84*6778e2f4SFlorian Hahn
85*6778e2f4SFlorian Hahnif.then:                                          ; preds = %entry
86*6778e2f4SFlorian Hahn  ret void
87*6778e2f4SFlorian Hahn
88*6778e2f4SFlorian Hahnif.end:                                           ; preds = %entry
89*6778e2f4SFlorian Hahn  %t.0 = icmp slt i8 %start, %high
90*6778e2f4SFlorian Hahn  call void @use(i1 %t.0)
91*6778e2f4SFlorian Hahn  %start.1 = add i8 %start, 1
92*6778e2f4SFlorian Hahn  %t.1 = icmp slt i8 %start.1, %high
93*6778e2f4SFlorian Hahn  call void @use(i1 %t.1)
94*6778e2f4SFlorian Hahn  %start.2 = add i8 %start, 2
95*6778e2f4SFlorian Hahn  %t.2 = icmp slt i8 %start.2, %high
96*6778e2f4SFlorian Hahn  call void @use(i1 %t.2)
97*6778e2f4SFlorian Hahn  %start.3 = add i8 %start, 3
98*6778e2f4SFlorian Hahn  %t.3 = icmp slt i8 %start.3, %high
99*6778e2f4SFlorian Hahn  call void @use(i1 %t.3)
100*6778e2f4SFlorian Hahn  %start.4 = add i8 %start, 4
101*6778e2f4SFlorian Hahn  %c.4 = icmp slt i8 %start.4, %high
102*6778e2f4SFlorian Hahn  call void @use(i1 %c.4)
103*6778e2f4SFlorian Hahn  ret void
104*6778e2f4SFlorian Hahn}
105*6778e2f4SFlorian Hahn
1062322080bSFlorian Hahndefine void @test.not.uge.ule(i8 %start, i8 %low, i8 %high) {
1072322080bSFlorian Hahn; CHECK-LABEL: @test.not.uge.ule(
1082322080bSFlorian Hahn; CHECK-NEXT:  entry:
1092322080bSFlorian Hahn; CHECK-NEXT:    [[ADD_PTR_I:%.*]] = add i8 [[START:%.*]], 3
1102322080bSFlorian Hahn; CHECK-NEXT:    [[C_1:%.*]] = icmp uge i8 [[ADD_PTR_I]], [[HIGH:%.*]]
1112322080bSFlorian Hahn; CHECK-NEXT:    br i1 [[C_1]], label [[IF_THEN:%.*]], label [[IF_END:%.*]]
1122322080bSFlorian Hahn; CHECK:       if.then:
1132322080bSFlorian Hahn; CHECK-NEXT:    ret void
1142322080bSFlorian Hahn; CHECK:       if.end:
1152322080bSFlorian Hahn; CHECK-NEXT:    [[T_0:%.*]] = icmp ule i8 [[START]], [[HIGH]]
1162322080bSFlorian Hahn; CHECK-NEXT:    call void @use(i1 [[T_0]])
1172322080bSFlorian Hahn; CHECK-NEXT:    [[START_1:%.*]] = add i8 [[START]], 1
1182322080bSFlorian Hahn; CHECK-NEXT:    [[T_1:%.*]] = icmp ule i8 [[START_1]], [[HIGH]]
1192322080bSFlorian Hahn; CHECK-NEXT:    call void @use(i1 [[T_1]])
1202322080bSFlorian Hahn; CHECK-NEXT:    [[START_2:%.*]] = add i8 [[START]], 2
1212322080bSFlorian Hahn; CHECK-NEXT:    [[T_2:%.*]] = icmp ule i8 [[START_2]], [[HIGH]]
1222322080bSFlorian Hahn; CHECK-NEXT:    call void @use(i1 [[T_2]])
1232322080bSFlorian Hahn; CHECK-NEXT:    [[START_3:%.*]] = add i8 [[START]], 3
1242322080bSFlorian Hahn; CHECK-NEXT:    [[T_3:%.*]] = icmp ule i8 [[START_3]], [[HIGH]]
1252322080bSFlorian Hahn; CHECK-NEXT:    call void @use(i1 [[T_3]])
1262322080bSFlorian Hahn; CHECK-NEXT:    [[START_4:%.*]] = add i8 [[START]], 4
1272322080bSFlorian Hahn; CHECK-NEXT:    [[T_4:%.*]] = icmp ule i8 [[START_4]], [[HIGH]]
1282322080bSFlorian Hahn; CHECK-NEXT:    call void @use(i1 [[T_4]])
1292322080bSFlorian Hahn; CHECK-NEXT:    [[START_5:%.*]] = add i8 [[START]], 5
1302322080bSFlorian Hahn; CHECK-NEXT:    [[C_5:%.*]] = icmp ule i8 [[START_5]], [[HIGH]]
1312322080bSFlorian Hahn; CHECK-NEXT:    call void @use(i1 [[C_5]])
1322322080bSFlorian Hahn; CHECK-NEXT:    ret void
1332322080bSFlorian Hahn;
1342322080bSFlorian Hahnentry:
1352322080bSFlorian Hahn  %add.ptr.i = add i8 %start, 3
1362322080bSFlorian Hahn  %c.1 = icmp uge i8 %add.ptr.i, %high
1372322080bSFlorian Hahn  br i1 %c.1, label %if.then, label %if.end
1382322080bSFlorian Hahn
1392322080bSFlorian Hahnif.then:                                          ; preds = %entry
1402322080bSFlorian Hahn  ret void
1412322080bSFlorian Hahn
1422322080bSFlorian Hahnif.end:                                           ; preds = %entry
1432322080bSFlorian Hahn  %t.0 = icmp ule i8 %start, %high
1442322080bSFlorian Hahn  call void @use(i1 %t.0)
1452322080bSFlorian Hahn  %start.1 = add i8 %start, 1
1462322080bSFlorian Hahn  %t.1 = icmp ule i8 %start.1, %high
1472322080bSFlorian Hahn  call void @use(i1 %t.1)
1482322080bSFlorian Hahn  %start.2 = add i8 %start, 2
1492322080bSFlorian Hahn  %t.2 = icmp ule i8 %start.2, %high
1502322080bSFlorian Hahn  call void @use(i1 %t.2)
1512322080bSFlorian Hahn  %start.3 = add i8 %start, 3
1522322080bSFlorian Hahn  %t.3 = icmp ule i8 %start.3, %high
1532322080bSFlorian Hahn  call void @use(i1 %t.3)
1542322080bSFlorian Hahn  %start.4 = add i8 %start, 4
1552322080bSFlorian Hahn  %t.4 = icmp ule i8 %start.4, %high
1562322080bSFlorian Hahn  call void @use(i1 %t.4)
1572322080bSFlorian Hahn
1582322080bSFlorian Hahn  %start.5 = add i8 %start, 5
1592322080bSFlorian Hahn  %c.5 = icmp ule i8 %start.5, %high
1602322080bSFlorian Hahn  call void @use(i1 %c.5)
1612322080bSFlorian Hahn
1622322080bSFlorian Hahn  ret void
1632322080bSFlorian Hahn}
1642322080bSFlorian Hahn
1652322080bSFlorian Hahndefine void @test.not.uge.ugt(i8 %start, i8 %low, i8 %high) {
1662322080bSFlorian Hahn; CHECK-LABEL: @test.not.uge.ugt(
1672322080bSFlorian Hahn; CHECK-NEXT:  entry:
1682322080bSFlorian Hahn; CHECK-NEXT:    [[ADD_PTR_I:%.*]] = add i8 [[START:%.*]], 3
1692322080bSFlorian Hahn; CHECK-NEXT:    [[C_1:%.*]] = icmp uge i8 [[ADD_PTR_I]], [[HIGH:%.*]]
1702322080bSFlorian Hahn; CHECK-NEXT:    br i1 [[C_1]], label [[IF_THEN:%.*]], label [[IF_END:%.*]]
1712322080bSFlorian Hahn; CHECK:       if.then:
1722322080bSFlorian Hahn; CHECK-NEXT:    ret void
1732322080bSFlorian Hahn; CHECK:       if.end:
1742322080bSFlorian Hahn; CHECK-NEXT:    [[F_0:%.*]] = icmp ugt i8 [[START]], [[HIGH]]
1752322080bSFlorian Hahn; CHECK-NEXT:    call void @use(i1 [[F_0]])
1762322080bSFlorian Hahn; CHECK-NEXT:    [[START_1:%.*]] = add i8 [[START]], 1
1772322080bSFlorian Hahn; CHECK-NEXT:    [[F_1:%.*]] = icmp ugt i8 [[START_1]], [[HIGH]]
1782322080bSFlorian Hahn; CHECK-NEXT:    call void @use(i1 [[F_1]])
1792322080bSFlorian Hahn; CHECK-NEXT:    [[START_2:%.*]] = add i8 [[START]], 2
1802322080bSFlorian Hahn; CHECK-NEXT:    [[F_2:%.*]] = icmp ugt i8 [[START_2]], [[HIGH]]
1812322080bSFlorian Hahn; CHECK-NEXT:    call void @use(i1 [[F_2]])
1822322080bSFlorian Hahn; CHECK-NEXT:    [[START_3:%.*]] = add i8 [[START]], 3
1832322080bSFlorian Hahn; CHECK-NEXT:    [[F_3:%.*]] = icmp ugt i8 [[START_3]], [[HIGH]]
1842322080bSFlorian Hahn; CHECK-NEXT:    call void @use(i1 [[F_3]])
1852322080bSFlorian Hahn; CHECK-NEXT:    [[START_4:%.*]] = add i8 [[START]], 4
1862322080bSFlorian Hahn; CHECK-NEXT:    [[F_4:%.*]] = icmp ugt i8 [[START_4]], [[HIGH]]
1872322080bSFlorian Hahn; CHECK-NEXT:    call void @use(i1 [[F_4]])
1882322080bSFlorian Hahn; CHECK-NEXT:    [[START_5:%.*]] = add i8 [[START]], 5
1892322080bSFlorian Hahn; CHECK-NEXT:    [[C_5:%.*]] = icmp ugt i8 [[START_5]], [[HIGH]]
1902322080bSFlorian Hahn; CHECK-NEXT:    call void @use(i1 [[C_5]])
1912322080bSFlorian Hahn; CHECK-NEXT:    ret void
1922322080bSFlorian Hahn;
1932322080bSFlorian Hahnentry:
1942322080bSFlorian Hahn  %add.ptr.i = add i8 %start, 3
1952322080bSFlorian Hahn  %c.1 = icmp uge i8 %add.ptr.i, %high
1962322080bSFlorian Hahn  br i1 %c.1, label %if.then, label %if.end
1972322080bSFlorian Hahn
1982322080bSFlorian Hahnif.then:                                          ; preds = %entry
1992322080bSFlorian Hahn  ret void
2002322080bSFlorian Hahn
2012322080bSFlorian Hahnif.end:                                           ; preds = %entry
2022322080bSFlorian Hahn  %f.0 = icmp ugt i8 %start, %high
2032322080bSFlorian Hahn  call void @use(i1 %f.0)
2042322080bSFlorian Hahn
2052322080bSFlorian Hahn  %start.1 = add i8 %start, 1
2062322080bSFlorian Hahn  %f.1 = icmp ugt i8 %start.1, %high
2072322080bSFlorian Hahn  call void @use(i1 %f.1)
2082322080bSFlorian Hahn
2092322080bSFlorian Hahn  %start.2 = add i8 %start, 2
2102322080bSFlorian Hahn  %f.2 = icmp ugt i8 %start.2, %high
2112322080bSFlorian Hahn  call void @use(i1 %f.2)
2122322080bSFlorian Hahn
2132322080bSFlorian Hahn  %start.3 = add i8 %start, 3
2142322080bSFlorian Hahn  %f.3 = icmp ugt i8 %start.3, %high
2152322080bSFlorian Hahn  call void @use(i1 %f.3)
2162322080bSFlorian Hahn
2172322080bSFlorian Hahn  %start.4 = add i8 %start, 4
2182322080bSFlorian Hahn  %f.4 = icmp ugt i8 %start.4, %high
2192322080bSFlorian Hahn  call void @use(i1 %f.4)
2202322080bSFlorian Hahn
2212322080bSFlorian Hahn  %start.5 = add i8 %start, 5
2222322080bSFlorian Hahn  %c.5 = icmp ugt i8 %start.5, %high
2232322080bSFlorian Hahn  call void @use(i1 %c.5)
2242322080bSFlorian Hahn
2252322080bSFlorian Hahn  ret void
2262322080bSFlorian Hahn}
2272322080bSFlorian Hahn
2282322080bSFlorian Hahndefine void @test.not.uge.uge(i8 %start, i8 %low, i8 %high) {
2292322080bSFlorian Hahn; CHECK-LABEL: @test.not.uge.uge(
2302322080bSFlorian Hahn; CHECK-NEXT:  entry:
2312322080bSFlorian Hahn; CHECK-NEXT:    [[ADD_PTR_I:%.*]] = add i8 [[START:%.*]], 3
2322322080bSFlorian Hahn; CHECK-NEXT:    [[C_1:%.*]] = icmp uge i8 [[ADD_PTR_I]], [[HIGH:%.*]]
2332322080bSFlorian Hahn; CHECK-NEXT:    br i1 [[C_1]], label [[IF_THEN:%.*]], label [[IF_END:%.*]]
2342322080bSFlorian Hahn; CHECK:       if.then:
2352322080bSFlorian Hahn; CHECK-NEXT:    ret void
2362322080bSFlorian Hahn; CHECK:       if.end:
2372322080bSFlorian Hahn; CHECK-NEXT:    [[F_0:%.*]] = icmp ugt i8 [[START]], [[HIGH]]
2382322080bSFlorian Hahn; CHECK-NEXT:    call void @use(i1 [[F_0]])
2392322080bSFlorian Hahn; CHECK-NEXT:    [[START_1:%.*]] = add i8 [[START]], 1
2402322080bSFlorian Hahn; CHECK-NEXT:    [[F_1:%.*]] = icmp uge i8 [[START_1]], [[HIGH]]
2412322080bSFlorian Hahn; CHECK-NEXT:    call void @use(i1 [[F_1]])
2422322080bSFlorian Hahn; CHECK-NEXT:    [[START_2:%.*]] = add i8 [[START]], 2
2432322080bSFlorian Hahn; CHECK-NEXT:    [[F_2:%.*]] = icmp uge i8 [[START_2]], [[HIGH]]
2442322080bSFlorian Hahn; CHECK-NEXT:    call void @use(i1 [[F_2]])
2452322080bSFlorian Hahn; CHECK-NEXT:    [[START_3:%.*]] = add i8 [[START]], 3
2462322080bSFlorian Hahn; CHECK-NEXT:    [[F_3:%.*]] = icmp uge i8 [[START_3]], [[HIGH]]
2472322080bSFlorian Hahn; CHECK-NEXT:    call void @use(i1 [[F_3]])
2482322080bSFlorian Hahn; CHECK-NEXT:    [[START_4:%.*]] = add i8 [[START]], 4
2492322080bSFlorian Hahn; CHECK-NEXT:    [[C_4:%.*]] = icmp uge i8 [[START_4]], [[HIGH]]
2502322080bSFlorian Hahn; CHECK-NEXT:    call void @use(i1 [[C_4]])
2512322080bSFlorian Hahn; CHECK-NEXT:    [[START_5:%.*]] = add i8 [[START]], 5
2522322080bSFlorian Hahn; CHECK-NEXT:    [[C_5:%.*]] = icmp uge i8 [[START_5]], [[HIGH]]
2532322080bSFlorian Hahn; CHECK-NEXT:    call void @use(i1 [[C_5]])
2542322080bSFlorian Hahn; CHECK-NEXT:    ret void
2552322080bSFlorian Hahn;
2562322080bSFlorian Hahnentry:
2572322080bSFlorian Hahn  %add.ptr.i = add i8 %start, 3
2582322080bSFlorian Hahn  %c.1 = icmp uge i8 %add.ptr.i, %high
2592322080bSFlorian Hahn  br i1 %c.1, label %if.then, label %if.end
2602322080bSFlorian Hahn
2612322080bSFlorian Hahnif.then:                                          ; preds = %entry
2622322080bSFlorian Hahn  ret void
2632322080bSFlorian Hahn
2642322080bSFlorian Hahnif.end:                                           ; preds = %entry
2652322080bSFlorian Hahn  %f.0 = icmp ugt i8 %start, %high
2662322080bSFlorian Hahn  call void @use(i1 %f.0)
2672322080bSFlorian Hahn
2682322080bSFlorian Hahn  %start.1 = add i8 %start, 1
2692322080bSFlorian Hahn  %f.1 = icmp uge i8 %start.1, %high
2702322080bSFlorian Hahn  call void @use(i1 %f.1)
2712322080bSFlorian Hahn
2722322080bSFlorian Hahn  %start.2 = add i8 %start, 2
2732322080bSFlorian Hahn  %f.2 = icmp uge i8 %start.2, %high
2742322080bSFlorian Hahn  call void @use(i1 %f.2)
2752322080bSFlorian Hahn
2762322080bSFlorian Hahn  %start.3 = add i8 %start, 3
2772322080bSFlorian Hahn  %f.3 = icmp uge i8 %start.3, %high
2782322080bSFlorian Hahn  call void @use(i1 %f.3)
2792322080bSFlorian Hahn
2802322080bSFlorian Hahn  %start.4 = add i8 %start, 4
2812322080bSFlorian Hahn  %c.4 = icmp uge i8 %start.4, %high
2822322080bSFlorian Hahn  call void @use(i1 %c.4)
2832322080bSFlorian Hahn
2842322080bSFlorian Hahn  %start.5 = add i8 %start, 5
2852322080bSFlorian Hahn  %c.5 = icmp uge i8 %start.5, %high
2862322080bSFlorian Hahn  call void @use(i1 %c.5)
2872322080bSFlorian Hahn
2882322080bSFlorian Hahn  ret void
2892322080bSFlorian Hahn}
2902322080bSFlorian Hahn
2912322080bSFlorian Hahn
2922322080bSFlorian Hahndeclare void @use(i1)
293