49 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py2; RUN: opt < %s -passes=loop-unroll -S | FileCheck %s3 4define i64 @hoge(i1 %c) {5; CHECK-LABEL: @hoge(6; CHECK-NEXT: bb:7; CHECK-NEXT: br label [[BB1_PEEL_BEGIN:%.*]]8; CHECK: bb1.peel.begin:9; CHECK-NEXT: br label [[BB1_PEEL:%.*]]10; CHECK: bb1.peel:11; CHECK-NEXT: br i1 [[C:%.*]], label [[BB2_PEEL:%.*]], label [[BB4:%.*]]12; CHECK: bb2.peel:13; CHECK-NEXT: [[TMP3_PEEL:%.*]] = icmp slt i32 0, 914; CHECK-NEXT: br i1 [[TMP3_PEEL]], label [[BB1_PEEL_NEXT:%.*]], label [[BB4]]15; CHECK: bb1.peel.next:16; CHECK-NEXT: br label [[BB1_PEEL_NEXT1:%.*]]17; CHECK: bb1.peel.next1:18; CHECK-NEXT: br label [[BB_PEEL_NEWPH:%.*]]19; CHECK: bb.peel.newph:20; CHECK-NEXT: br label [[BB1:%.*]]21; CHECK: bb1:22; CHECK-NEXT: br i1 [[C]], label [[BB1]], label [[BB4_LOOPEXIT:%.*]], !llvm.loop [[LOOP0:![0-9]+]]23; CHECK: bb4.loopexit:24; CHECK-NEXT: [[TMP5_PH:%.*]] = phi i32 [ 8, [[BB1]] ]25; CHECK-NEXT: br label [[BB4]]26; CHECK: bb4:27; CHECK-NEXT: [[TMP5:%.*]] = phi i32 [ 0, [[BB1_PEEL]] ], [ 8, [[BB2_PEEL]] ], [ [[TMP5_PH]], [[BB4_LOOPEXIT]] ]28; CHECK-NEXT: [[TMP6:%.*]] = call i64 (...) @llvm.experimental.deoptimize.i64(i32 10) [ "deopt"() ]29; CHECK-NEXT: ret i64 [[TMP6]]30;31bb:32 br label %bb133 34bb1: ; preds = %bb2, %bb35 %tmp = phi i32 [ 8, %bb2 ], [ 0, %bb ]36 br i1 %c, label %bb2, label %bb437 38bb2: ; preds = %bb139 %tmp3 = icmp slt i32 %tmp, 940 br i1 %tmp3, label %bb1, label %bb441 42bb4: ; preds = %bb2, %bb143 %tmp5 = phi i32 [ 8, %bb2 ], [ %tmp, %bb1 ]44 %tmp6 = call i64 (...) @llvm.experimental.deoptimize.i64(i32 10) [ "deopt"() ]45 ret i64 %tmp646}47 48declare i64 @llvm.experimental.deoptimize.i64(...)49