• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2; RUN: opt -jump-threading -S %s | FileCheck %s
3
4declare i1 @cond()
5
6define hidden void @hoge(i1 %c1, i32 %x)  {
7; CHECK-LABEL: @hoge(
8; CHECK-NEXT:  bb:
9; CHECK-NEXT:    br label [[BB13:%.*]]
10; CHECK:       bb4:
11; CHECK-NEXT:    [[TMP3:%.*]] = icmp ne i32 [[TMP7:%.*]], undef
12; CHECK-NEXT:    br i1 [[TMP3]], label [[BB5:%.*]], label [[BB13]]
13; CHECK:       bb5:
14; CHECK-NEXT:    br label [[BB6:%.*]]
15; CHECK:       bb6:
16; CHECK-NEXT:    [[TMP7]] = phi i32 [ [[TMP7]], [[BB5]] ], [ [[X:%.*]], [[BB8:%.*]] ]
17; CHECK-NEXT:    [[C:%.*]] = call i1 @cond()
18; CHECK-NEXT:    br i1 [[C]], label [[BB4:%.*]], label [[BB8]]
19; CHECK:       bb8:
20; CHECK-NEXT:    br label [[BB6]]
21; CHECK:       bb13:
22; CHECK-NEXT:    ret void
23;
24bb:
25  br i1 false, label %bb1, label %bb13
26
27bb1:                                              ; preds = %bb
28  br label %bb2
29
30bb2:                                              ; preds = %bb12, %bb1
31  %tmp = phi i32 [ 10, %bb1 ], [ %tmp7, %bb12 ]
32  %tmp3 = icmp ne i32 %tmp, undef
33  br label %bb4
34
35bb4:                                              ; preds = %bb2
36  br i1 %tmp3, label %bb5, label %bb13
37
38bb5:                                              ; preds = %bb4
39  br label %bb6
40
41bb6:                                              ; preds = %bb8, %bb5
42  %tmp7 = phi i32 [ %tmp, %bb5 ], [ %x, %bb8 ]
43  %c = call i1 @cond()
44  br i1 %c, label %bb9, label %bb8
45
46bb8:                                              ; preds = %bb6
47  br label %bb6
48
49bb9:                                              ; preds = %bb6
50  br label %bb10
51
52bb10:                                             ; preds = %bb9
53  br label %bb12
54
55bb12:                                             ; preds = %bb10
56  br label %bb2
57
58bb13:                                             ; preds = %bb4
59  ret void
60
61}
62