1; RUN: llc -march=hexagon -O3 -hexagon-instsimplify=0 < %s | FileCheck %s 2 3; CHECK-LABEL: f0: 4; CHECK: loop0(.LBB{{[0-9]+}}_{{[0-9]+}},#3) 5; CHECK: endloop0 6define void @f0(i8* nocapture %a0, i32 %a1, i32 %a2) #0 { 7b0: 8 br label %b1 9 10b1: ; preds = %b0 11 br label %b2 12 13b2: ; preds = %b2, %b1 14 %v0 = phi i32 [ 0, %b1 ], [ %v1, %b2 ] 15 %v1 = add nsw i32 %v0, 1 16 %v2 = icmp slt i32 %v1, 3 17 br i1 %v2, label %b2, label %b3 18 19b3: ; preds = %b2 20 ret void 21} 22 23; CHECK-LABEL: f1: 24; CHECK: loop0(.LBB{{[0-9]+}}_{{[0-9]+}},#2) 25; CHECK: endloop0 26define void @f1(i8* nocapture %a0, i32 %a1, i32 %a2) #0 { 27b0: 28 br label %b1 29 30b1: ; preds = %b0 31 br label %b2 32 33b2: ; preds = %b2, %b1 34 %v0 = phi i32 [ 0, %b1 ], [ %v1, %b2 ] 35 %v1 = add nsw i32 %v0, 2 36 %v2 = icmp slt i32 %v1, 3 37 br i1 %v2, label %b2, label %b3 38 39b3: ; preds = %b2 40 ret void 41} 42 43; CHECK-LABEL: f2: 44; CHECK: loop0(.LBB{{[0-9]+}}_{{[0-9]+}},#1) 45; CHECK: endloop0 46define void @f2(i8* nocapture %a0, i32 %a1, i32 %a2) #0 { 47b0: 48 br label %b1 49 50b1: ; preds = %b0 51 br label %b2 52 53b2: ; preds = %b2, %b1 54 %v0 = phi i32 [ 0, %b1 ], [ %v1, %b2 ] 55 %v1 = add nsw i32 %v0, 3 56 %v2 = icmp slt i32 %v1, 3 57 br i1 %v2, label %b2, label %b3 58 59b3: ; preds = %b2 60 ret void 61} 62 63; CHECK-LABEL: f3: 64; CHECK: loop0(.LBB{{[0-9]+}}_{{[0-9]+}},#4) 65; CHECK: endloop0 66define void @f3(i8* nocapture %a0, i32 %a1, i32 %a2) #0 { 67b0: 68 br label %b1 69 70b1: ; preds = %b0 71 br label %b2 72 73b2: ; preds = %b2, %b1 74 %v0 = phi i32 [ 0, %b1 ], [ %v1, %b2 ] 75 %v1 = add nsw i32 %v0, 1 76 %v2 = icmp sle i32 %v1, 3 77 br i1 %v2, label %b2, label %b3 78 79b3: ; preds = %b2 80 ret void 81} 82 83; CHECK-LABEL: f4: 84; CHECK: loop0(.LBB{{[0-9]+}}_{{[0-9]+}},#2) 85; CHECK: endloop0 86define void @f4(i8* nocapture %a0, i32 %a1, i32 %a2) #0 { 87b0: 88 br label %b1 89 90b1: ; preds = %b0 91 br label %b2 92 93b2: ; preds = %b2, %b1 94 %v0 = phi i32 [ 0, %b1 ], [ %v1, %b2 ] 95 %v1 = add nsw i32 %v0, 2 96 %v2 = icmp sle i32 %v1, 3 97 br i1 %v2, label %b2, label %b3 98 99b3: ; preds = %b2 100 ret void 101} 102 103; CHECK-LABEL: f5: 104; CHECK: loop0(.LBB{{[0-9]+}}_{{[0-9]+}},#2) 105; CHECK: endloop0 106define void @f5(i8* nocapture %a0, i32 %a1, i32 %a2) #0 { 107b0: 108 br label %b1 109 110b1: ; preds = %b0 111 br label %b2 112 113b2: ; preds = %b2, %b1 114 %v0 = phi i32 [ 0, %b1 ], [ %v1, %b2 ] 115 %v1 = add nsw i32 %v0, 3 116 %v2 = icmp sle i32 %v1, 3 117 br i1 %v2, label %b2, label %b3 118 119b3: ; preds = %b2 120 ret void 121} 122 123attributes #0 = { nounwind } 124