@@ -19,7 +19,8 @@ define i32 @test_minsize(i32 %argc, i8** nocapture readonly %argv) local_unnamed
19
19
; DEFAULT-NEXT: [[TMP2:%.*]] = mul i32 [[TMP1]], [[TMP1]]
20
20
; DEFAULT-NEXT: [[TMP3:%.*]] = mul i32 [[COND]], [[TMP2]]
21
21
; DEFAULT-NEXT: [[TMP4:%.*]] = icmp sgt i32 [[COND]], 0
22
- ; DEFAULT-NEXT: br i1 [[TMP4]], label [[TMP5:%.*]], label [[TMP6:%.*]]
22
+ ; DEFAULT-NEXT: [[COND_FR:%.*]] = freeze i1 [[TMP4]]
23
+ ; DEFAULT-NEXT: br i1 [[COND_FR]], label [[TMP5:%.*]], label [[TMP6:%.*]]
23
24
; DEFAULT: 5:
24
25
; DEFAULT-NEXT: br label [[TMP6]]
25
26
; DEFAULT: 6:
@@ -40,14 +41,15 @@ define i32 @test_minsize(i32 %argc, i8** nocapture readonly %argv) local_unnamed
40
41
; OVERIDE-NEXT: [[TMP2:%.*]] = mul i32 [[TMP1]], [[TMP1]]
41
42
; OVERIDE-NEXT: [[TMP3:%.*]] = mul i32 [[CALL]], [[TMP2]]
42
43
; OVERIDE-NEXT: [[TMP4:%.*]] = icmp sgt i32 [[CALL]], 0
43
- ; OVERIDE-NEXT: br i1 [[TMP4]], label [[COND_END_THREAD]], label [[TMP6:%.*]]
44
+ ; OVERIDE-NEXT: [[COND_FR:%.*]] = freeze i1 [[TMP4]]
45
+ ; OVERIDE-NEXT: br i1 [[COND_FR]], label [[COND_END_THREAD]], label [[TMP6:%.*]]
44
46
; OVERIDE: cond.end.thread:
45
47
; OVERIDE-NEXT: [[TMP5:%.*]] = phi i32 [ [[TMP3]], [[COND_END]] ], [ 205962976, [[ENTRY:%.*]] ]
46
- ; OVERIDE-NEXT: [[COND2 :%.*]] = phi i32 [ [[CALL]], [[COND_END]] ], [ 46, [[ENTRY]] ]
48
+ ; OVERIDE-NEXT: [[COND3 :%.*]] = phi i32 [ [[CALL]], [[COND_END]] ], [ 46, [[ENTRY]] ]
47
49
; OVERIDE-NEXT: br label [[TMP6]]
48
50
; OVERIDE: 6:
49
51
; OVERIDE-NEXT: [[TMP7:%.*]] = phi i32 [ [[TMP5]], [[COND_END_THREAD]] ], [ [[TMP3]], [[COND_END]] ]
50
- ; OVERIDE-NEXT: [[TMP8:%.*]] = phi i32 [ [[COND2 ]], [[COND_END_THREAD]] ], [ 0, [[COND_END]] ]
52
+ ; OVERIDE-NEXT: [[TMP8:%.*]] = phi i32 [ [[COND3 ]], [[COND_END_THREAD]] ], [ 0, [[COND_END]] ]
51
53
; OVERIDE-NEXT: [[TMP9:%.*]] = mul i32 [[TMP7]], [[TMP8]]
52
54
; OVERIDE-NEXT: [[CALL33:%.*]] = tail call i32 (i8*, ...) @printf(i8* nonnull dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i32 0, i32 0), i32 [[TMP9]])
53
55
; OVERIDE-NEXT: ret i32 0
@@ -87,14 +89,15 @@ define i32 @test_optsize(i32 %argc, i8** nocapture readonly %argv) local_unnamed
87
89
; DEFAULT-NEXT: [[TMP2:%.*]] = mul i32 [[TMP1]], [[TMP1]]
88
90
; DEFAULT-NEXT: [[TMP3:%.*]] = mul i32 [[CALL]], [[TMP2]]
89
91
; DEFAULT-NEXT: [[TMP4:%.*]] = icmp sgt i32 [[CALL]], 0
90
- ; DEFAULT-NEXT: br i1 [[TMP4]], label [[COND_END_THREAD]], label [[TMP6:%.*]]
92
+ ; DEFAULT-NEXT: [[COND_FR:%.*]] = freeze i1 [[TMP4]]
93
+ ; DEFAULT-NEXT: br i1 [[COND_FR]], label [[COND_END_THREAD]], label [[TMP6:%.*]]
91
94
; DEFAULT: cond.end.thread:
92
95
; DEFAULT-NEXT: [[TMP5:%.*]] = phi i32 [ [[TMP3]], [[COND_END]] ], [ 205962976, [[ENTRY:%.*]] ]
93
- ; DEFAULT-NEXT: [[COND2 :%.*]] = phi i32 [ [[CALL]], [[COND_END]] ], [ 46, [[ENTRY]] ]
96
+ ; DEFAULT-NEXT: [[COND3 :%.*]] = phi i32 [ [[CALL]], [[COND_END]] ], [ 46, [[ENTRY]] ]
94
97
; DEFAULT-NEXT: br label [[TMP6]]
95
98
; DEFAULT: 6:
96
99
; DEFAULT-NEXT: [[TMP7:%.*]] = phi i32 [ [[TMP5]], [[COND_END_THREAD]] ], [ [[TMP3]], [[COND_END]] ]
97
- ; DEFAULT-NEXT: [[TMP8:%.*]] = phi i32 [ [[COND2 ]], [[COND_END_THREAD]] ], [ 0, [[COND_END]] ]
100
+ ; DEFAULT-NEXT: [[TMP8:%.*]] = phi i32 [ [[COND3 ]], [[COND_END_THREAD]] ], [ 0, [[COND_END]] ]
98
101
; DEFAULT-NEXT: [[TMP9:%.*]] = mul i32 [[TMP7]], [[TMP8]]
99
102
; DEFAULT-NEXT: [[CALL33:%.*]] = tail call i32 (i8*, ...) @printf(i8* nonnull dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i32 0, i32 0), i32 [[TMP9]])
100
103
; DEFAULT-NEXT: ret i32 0
@@ -111,14 +114,15 @@ define i32 @test_optsize(i32 %argc, i8** nocapture readonly %argv) local_unnamed
111
114
; OVERIDE-NEXT: [[TMP2:%.*]] = mul i32 [[TMP1]], [[TMP1]]
112
115
; OVERIDE-NEXT: [[TMP3:%.*]] = mul i32 [[CALL]], [[TMP2]]
113
116
; OVERIDE-NEXT: [[TMP4:%.*]] = icmp sgt i32 [[CALL]], 0
114
- ; OVERIDE-NEXT: br i1 [[TMP4]], label [[COND_END_THREAD]], label [[TMP6:%.*]]
117
+ ; OVERIDE-NEXT: [[COND_FR:%.*]] = freeze i1 [[TMP4]]
118
+ ; OVERIDE-NEXT: br i1 [[COND_FR]], label [[COND_END_THREAD]], label [[TMP6:%.*]]
115
119
; OVERIDE: cond.end.thread:
116
120
; OVERIDE-NEXT: [[TMP5:%.*]] = phi i32 [ [[TMP3]], [[COND_END]] ], [ 205962976, [[ENTRY:%.*]] ]
117
- ; OVERIDE-NEXT: [[COND2 :%.*]] = phi i32 [ [[CALL]], [[COND_END]] ], [ 46, [[ENTRY]] ]
121
+ ; OVERIDE-NEXT: [[COND3 :%.*]] = phi i32 [ [[CALL]], [[COND_END]] ], [ 46, [[ENTRY]] ]
118
122
; OVERIDE-NEXT: br label [[TMP6]]
119
123
; OVERIDE: 6:
120
124
; OVERIDE-NEXT: [[TMP7:%.*]] = phi i32 [ [[TMP5]], [[COND_END_THREAD]] ], [ [[TMP3]], [[COND_END]] ]
121
- ; OVERIDE-NEXT: [[TMP8:%.*]] = phi i32 [ [[COND2 ]], [[COND_END_THREAD]] ], [ 0, [[COND_END]] ]
125
+ ; OVERIDE-NEXT: [[TMP8:%.*]] = phi i32 [ [[COND3 ]], [[COND_END_THREAD]] ], [ 0, [[COND_END]] ]
122
126
; OVERIDE-NEXT: [[TMP9:%.*]] = mul i32 [[TMP7]], [[TMP8]]
123
127
; OVERIDE-NEXT: [[CALL33:%.*]] = tail call i32 (i8*, ...) @printf(i8* nonnull dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i32 0, i32 0), i32 [[TMP9]])
124
128
; OVERIDE-NEXT: ret i32 0
0 commit comments