62 lines
1.8 KiB
LLVM
62 lines
1.8 KiB
LLVM
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
|
; RUN: opt -jump-threading -S %s | FileCheck %s
|
|
|
|
declare i1 @cond()
|
|
|
|
define hidden void @hoge(i1 %c1, i32 %x) {
|
|
; CHECK-LABEL: @hoge(
|
|
; CHECK-NEXT: bb:
|
|
; CHECK-NEXT: br label [[BB13:%.*]]
|
|
; CHECK: bb4:
|
|
; CHECK-NEXT: [[TMP3:%.*]] = icmp ne i32 [[TMP7:%.*]], undef
|
|
; CHECK-NEXT: br i1 [[TMP3]], label [[BB5:%.*]], label [[BB13]]
|
|
; CHECK: bb5:
|
|
; CHECK-NEXT: br label [[BB6:%.*]]
|
|
; CHECK: bb6:
|
|
; CHECK-NEXT: [[TMP7]] = phi i32 [ [[TMP7]], [[BB5]] ], [ [[X:%.*]], [[BB8:%.*]] ]
|
|
; CHECK-NEXT: [[C:%.*]] = call i1 @cond()
|
|
; CHECK-NEXT: br i1 [[C]], label [[BB4:%.*]], label [[BB8]]
|
|
; CHECK: bb8:
|
|
; CHECK-NEXT: br label [[BB6]]
|
|
; CHECK: bb13:
|
|
; CHECK-NEXT: ret void
|
|
;
|
|
bb:
|
|
br i1 false, label %bb1, label %bb13
|
|
|
|
bb1: ; preds = %bb
|
|
br label %bb2
|
|
|
|
bb2: ; preds = %bb12, %bb1
|
|
%tmp = phi i32 [ 10, %bb1 ], [ %tmp7, %bb12 ]
|
|
%tmp3 = icmp ne i32 %tmp, undef
|
|
br label %bb4
|
|
|
|
bb4: ; preds = %bb2
|
|
br i1 %tmp3, label %bb5, label %bb13
|
|
|
|
bb5: ; preds = %bb4
|
|
br label %bb6
|
|
|
|
bb6: ; preds = %bb8, %bb5
|
|
%tmp7 = phi i32 [ %tmp, %bb5 ], [ %x, %bb8 ]
|
|
%c = call i1 @cond()
|
|
br i1 %c, label %bb9, label %bb8
|
|
|
|
bb8: ; preds = %bb6
|
|
br label %bb6
|
|
|
|
bb9: ; preds = %bb6
|
|
br label %bb10
|
|
|
|
bb10: ; preds = %bb9
|
|
br label %bb12
|
|
|
|
bb12: ; preds = %bb10
|
|
br label %bb2
|
|
|
|
bb13: ; preds = %bb4
|
|
ret void
|
|
|
|
}
|