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