1
+ ; update_test_checks.py will hardcode the block names.
2
+ ; Used flexible names to align with the our version of the inliner.
3
+ ; If this needs an update in the future, it should just be copied to a new file.
4
+
1
5
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2
6
; RUN: opt -S < %s -instcombine -inline -jump-threading -loop-unroll -unroll-count=4 | FileCheck %s
3
7
;
@@ -18,22 +22,23 @@ define i32 @foo() uwtable ssp align 2 {
18
22
; CHECK-LABEL: @foo(
19
23
; CHECK-NEXT: if.end:
20
24
; CHECK-NEXT: [[CALL2:%.*]] = call i32 @getval()
21
- ; CHECK-NEXT: br label [[LAND_LHS_TRUE_I:% .*]]
22
- ; CHECK: land.lhs.true.i:
25
+ ; CHECK-NEXT: br label % [[LAND_LHS_TRUE_I:.*]]
26
+ ; CHECK: [[LAND_LHS_TRUE_I]]
23
27
; CHECK-NEXT: [[CMP4_I:%.*]] = call zeroext i1 @check() #[[ATTR0:[0-9]+]]
24
28
; CHECK-NEXT: br i1 [[CMP4_I]], label [[BAR_EXIT:%.*]], label [[DO_COND:%.*]]
25
29
; CHECK: bar.exit:
26
30
; CHECK-NEXT: [[TMP7_I:%.*]] = call i32 @getval() #[[ATTR0]]
27
31
; CHECK-NEXT: [[CMP_NOT:%.*]] = icmp eq i32 [[TMP7_I]], 0
28
- ; CHECK-NEXT: br i1 [[CMP_NOT]], label [[DO_COND]], label [[LAND_LHS_TRUE:%.*]]
29
- ; CHECK: land.lhs.true:
32
+
33
+ ; CHECK-NEXT: br i1 [[CMP_NOT]], label [[DO_COND]], label %[[LAND_LHS_TRUE:.*]]
34
+ ; CHECK: [[LAND_LHS_TRUE]]
30
35
; CHECK-NEXT: [[CALL10:%.*]] = call i32 @getval()
31
36
; CHECK-NEXT: [[CMP11:%.*]] = icmp eq i32 [[CALL10]], 0
32
37
; CHECK-NEXT: br i1 [[CMP11]], label [[RETURN:%.*]], label [[DO_COND]]
33
38
; CHECK: do.cond:
34
39
; CHECK-NEXT: [[CMP18:%.*]] = icmp sgt i32 [[CALL2]], -1
35
- ; CHECK-NEXT: br i1 [[CMP18]], label [[LAND_LHS_TRUE_I_1:% .*]], label [[RETURN]]
36
- ; CHECK: land.lhs.true.i.1:
40
+ ; CHECK-NEXT: br i1 [[CMP18]], label % [[LAND_LHS_TRUE_I_1:.*]], label [[RETURN]]
41
+ ; CHECK: [[LAND_LHS_TRUE_I_1]]
37
42
; CHECK-NEXT: [[CMP4_I_1:%.*]] = call zeroext i1 @check() #[[ATTR0]]
38
43
; CHECK-NEXT: br i1 [[CMP4_I_1]], label [[BAR_EXIT_1:%.*]], label [[DO_COND_1:%.*]]
39
44
; CHECK: bar.exit.1:
@@ -46,8 +51,8 @@ define i32 @foo() uwtable ssp align 2 {
46
51
; CHECK-NEXT: br i1 [[CMP11_1]], label [[RETURN]], label [[DO_COND_1]]
47
52
; CHECK: do.cond.1:
48
53
; CHECK-NEXT: [[CMP18_1:%.*]] = icmp sgt i32 [[CALL2]], -1
49
- ; CHECK-NEXT: br i1 [[CMP18_1]], label [[LAND_LHS_TRUE_I_2:% .*]], label [[RETURN]]
50
- ; CHECK: land.lhs.true.i.2:
54
+ ; CHECK-NEXT: br i1 [[CMP18_1]], label % [[LAND_LHS_TRUE_I_2:.*]], label [[RETURN]]
55
+ ; CHECK: [[LAND_LHS_TRUE_I_2]]
51
56
; CHECK-NEXT: [[CMP4_I_2:%.*]] = call zeroext i1 @check() #[[ATTR0]]
52
57
; CHECK-NEXT: br i1 [[CMP4_I_2]], label [[BAR_EXIT_2:%.*]], label [[DO_COND_2:%.*]]
53
58
; CHECK: bar.exit.2:
@@ -60,8 +65,8 @@ define i32 @foo() uwtable ssp align 2 {
60
65
; CHECK-NEXT: br i1 [[CMP11_2]], label [[RETURN]], label [[DO_COND_2]]
61
66
; CHECK: do.cond.2:
62
67
; CHECK-NEXT: [[CMP18_2:%.*]] = icmp sgt i32 [[CALL2]], -1
63
- ; CHECK-NEXT: br i1 [[CMP18_2]], label [[LAND_LHS_TRUE_I_3:% .*]], label [[RETURN]]
64
- ; CHECK: land.lhs.true.i.3:
68
+ ; CHECK-NEXT: br i1 [[CMP18_2]], label % [[LAND_LHS_TRUE_I_3:.*]], label [[RETURN]]
69
+ ; CHECK: [[LAND_LHS_TRUE_I_3]]
65
70
; CHECK-NEXT: [[CMP4_I_3:%.*]] = call zeroext i1 @check() #[[ATTR0]]
66
71
; CHECK-NEXT: br i1 [[CMP4_I_3]], label [[BAR_EXIT_3:%.*]], label [[DO_COND_3:%.*]]
67
72
; CHECK: bar.exit.3:
@@ -74,9 +79,9 @@ define i32 @foo() uwtable ssp align 2 {
74
79
; CHECK-NEXT: br i1 [[CMP11_3]], label [[RETURN]], label [[DO_COND_3]]
75
80
; CHECK: do.cond.3:
76
81
; CHECK-NEXT: [[CMP18_3:%.*]] = icmp sgt i32 [[CALL2]], -1
77
- ; CHECK-NEXT: br i1 [[CMP18_3]], label [[LAND_LHS_TRUE_I]], label [[RETURN]], !llvm.loop [[LOOP0:![0-9]+]]
82
+ ; CHECK-NEXT: br i1 [[CMP18_3]], label % [[LAND_LHS_TRUE_I]], label [[RETURN]], !llvm.loop [[LOOP0:![0-9]+]]
78
83
; CHECK: return:
79
- ; CHECK-NEXT: [[RETVAL_0:%.*]] = phi i32 [ [[TMP7_I]], [[LAND_LHS_TRUE]] ], [ 0, [[DO_COND]] ], [ [[TMP7_I_1]], [[LAND_LHS_TRUE_1]] ], [ 0, [[DO_COND_1]] ], [ [[TMP7_I_2]], [[LAND_LHS_TRUE_2]] ], [ 0, [[DO_COND_2]] ], [ [[TMP7_I_3]], [[LAND_LHS_TRUE_3]] ], [ 0, [[DO_COND_3]] ]
84
+ ; CHECK-NEXT: [[RETVAL_0:%.*]] = phi i32 [ [[TMP7_I]], % [[LAND_LHS_TRUE]] ], [ 0, [[DO_COND]] ], [ [[TMP7_I_1]], [[LAND_LHS_TRUE_1]] ], [ 0, [[DO_COND_1]] ], [ [[TMP7_I_2]], [[LAND_LHS_TRUE_2]] ], [ 0, [[DO_COND_2]] ], [ [[TMP7_I_3]], [[LAND_LHS_TRUE_3]] ], [ 0, [[DO_COND_3]] ]
80
85
; CHECK-NEXT: ret i32 [[RETVAL_0]]
81
86
;
82
87
entry:
@@ -106,18 +111,7 @@ return: ; preds = %do.cond, %land.lhs.
106
111
}
107
112
108
113
define linkonce_odr i32 @bar () nounwind uwtable ssp align 2 {
109
- ;
110
- ; CHECK-LABEL: @bar(
111
- ; CHECK-NEXT: land.lhs.true:
112
- ; CHECK-NEXT: [[CMP4:%.*]] = call zeroext i1 @check()
113
- ; CHECK-NEXT: br i1 [[CMP4]], label [[COND_TRUE:%.*]], label [[COND_END:%.*]]
114
- ; CHECK: cond.true:
115
- ; CHECK-NEXT: [[TMP7:%.*]] = call i32 @getval()
116
- ; CHECK-NEXT: br label [[COND_END]]
117
- ; CHECK: cond.end:
118
- ; CHECK-NEXT: [[COND:%.*]] = phi i32 [ [[TMP7]], [[COND_TRUE]] ], [ 0, [[LAND_LHS_TRUE:%.*]] ]
119
- ; CHECK-NEXT: ret i32 [[COND]]
120
- ;
114
+ ; This function is dead and should not be checked.
121
115
entry:
122
116
br i1 undef , label %land.lhs.true , label %cond.end
123
117
0 commit comments