Skip to content

Commit 872d2c9

Browse files
authored
[InstCombine] Re-generate freeze tests and fix warnings (NFC) (llvm#157647)
1 parent 6bcb172 commit 872d2c9

File tree

3 files changed

+58
-53
lines changed

3 files changed

+58
-53
lines changed

llvm/test/Transforms/InstCombine/freeze-fp-ops.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -165,8 +165,8 @@ define float @freeze_powi(float %arg0, i32 %arg1) {
165165
; CHECK-SAME: float [[ARG0:%.*]], i32 [[ARG1:%.*]]) {
166166
; CHECK-NEXT: [[ARG0_FR:%.*]] = freeze float [[ARG0]]
167167
; CHECK-NEXT: [[ARG1_FR:%.*]] = freeze i32 [[ARG1]]
168-
; CHECK-NEXT: [[FREEZE:%.*]] = call float @llvm.powi.f32.i32(float [[ARG0_FR]], i32 [[ARG1_FR]])
169-
; CHECK-NEXT: ret float [[FREEZE]]
168+
; CHECK-NEXT: [[OP:%.*]] = call float @llvm.powi.f32.i32(float [[ARG0_FR]], i32 [[ARG1_FR]])
169+
; CHECK-NEXT: ret float [[OP]]
170170
;
171171
%op = call float @llvm.powi.f32.i32(float %arg0, i32 %arg1)
172172
%freeze = freeze float %op

llvm/test/Transforms/InstCombine/freeze-landingpad.ll

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,17 @@ define i32 @propagate_freeze_in_landingpad() personality ptr null {
99
; CHECK: invoke.bb1:
1010
; CHECK-NEXT: [[X:%.*]] = phi i32 [ 0, [[ENTRY:%.*]] ], [ [[INC:%.*]], [[NORMAL_RETURN:%.*]] ]
1111
; CHECK-NEXT: [[RES0:%.*]] = invoke i32 @foo()
12-
; CHECK-NEXT: to label [[INVOKE_BB2:%.*]] unwind label [[EXCEPTIONAL_RETURN:%.*]]
12+
; CHECK-NEXT: to label [[INVOKE_BB2:%.*]] unwind label [[EXCEPTIONAL_RETURN:%.*]]
1313
; CHECK: invoke.bb2:
1414
; CHECK-NEXT: [[RES1:%.*]] = invoke i32 @foo()
15-
; CHECK-NEXT: to label [[NORMAL_RETURN]] unwind label [[EXCEPTIONAL_RETURN]]
15+
; CHECK-NEXT: to label [[NORMAL_RETURN]] unwind label [[EXCEPTIONAL_RETURN]]
1616
; CHECK: normal_return:
1717
; CHECK-NEXT: [[INC]] = add nuw nsw i32 [[X]], 1
1818
; CHECK-NEXT: br label [[INVOKE_BB1]]
1919
; CHECK: exceptional_return:
2020
; CHECK-NEXT: [[PHI:%.*]] = phi i32 [ [[X]], [[INVOKE_BB1]] ], [ 0, [[INVOKE_BB2]] ]
2121
; CHECK-NEXT: [[LANDING_PAD:%.*]] = landingpad { ptr, i32 }
22-
; CHECK-NEXT: cleanup
22+
; CHECK-NEXT: cleanup
2323
; CHECK-NEXT: [[FR:%.*]] = freeze i32 [[PHI]]
2424
; CHECK-NEXT: [[RES:%.*]] = shl i32 [[FR]], 1
2525
; CHECK-NEXT: ret i32 [[RES]]

llvm/test/Transforms/InstCombine/freeze.ll

Lines changed: 53 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -106,9 +106,10 @@ define <3 x i4> @partial_undef_vec() {
106106
; Move the freeze forward to prevent poison from spreading.
107107

108108
define i32 @early_freeze_test1(i32 %x, i32 %y) {
109-
; CHECK-LABEL: @early_freeze_test1(
110-
; CHECK-NEXT: [[X_FR:%.*]] = freeze i32 [[X:%.*]]
111-
; CHECK-NEXT: [[Y_FR:%.*]] = freeze i32 [[Y:%.*]]
109+
; CHECK-LABEL: define i32 @early_freeze_test1(
110+
; CHECK-SAME: i32 [[X:%.*]], i32 [[Y:%.*]]) {
111+
; CHECK-NEXT: [[X_FR:%.*]] = freeze i32 [[X]]
112+
; CHECK-NEXT: [[Y_FR:%.*]] = freeze i32 [[Y]]
112113
; CHECK-NEXT: [[V1:%.*]] = add i32 [[X_FR]], [[Y_FR]]
113114
; CHECK-NEXT: [[V2:%.*]] = shl i32 [[V1]], 1
114115
; CHECK-NEXT: [[V3:%.*]] = and i32 [[V2]], 2
@@ -153,8 +154,9 @@ define i32 @early_freeze_test3(i32 %v1) {
153154
}
154155

155156
define i32 @early_freeze_test4(i32 %v1) {
156-
; CHECK-LABEL: @early_freeze_test4(
157-
; CHECK-NEXT: [[V1_FR:%.*]] = freeze i32 [[V1:%.*]]
157+
; CHECK-LABEL: define i32 @early_freeze_test4(
158+
; CHECK-SAME: i32 [[V1:%.*]]) {
159+
; CHECK-NEXT: [[V1_FR:%.*]] = freeze i32 [[V1]]
158160
; CHECK-NEXT: [[V2:%.*]] = mul i32 [[V1_FR]], [[V1_FR]]
159161
; CHECK-NEXT: ret i32 [[V2]]
160162
;
@@ -188,12 +190,12 @@ define void @freeze_dominated_uses_test2(i32 %v) {
188190
; CHECK-NEXT: call void @use_p32(ptr nonnull [[A]])
189191
; CHECK-NEXT: call void @use_i32(i32 [[V_FR]])
190192
; CHECK-NEXT: [[COND:%.*]] = icmp eq i32 [[V_FR]], 0
191-
; CHECK-NEXT: br i1 [[COND]], label %[[BB0:.*]], label %[[BB1:.*]]
192-
; CHECK: [[BB0]]:
193+
; CHECK-NEXT: br i1 [[COND]], label %[[BB_0:.*]], label %[[BB_1:.*]]
194+
; CHECK: [[BB_0]]:
193195
; CHECK-NEXT: call void @use_i32(i32 [[V_FR]])
194196
; CHECK-NEXT: call void @use_i32(i32 [[V_FR]])
195197
; CHECK-NEXT: br label %[[END:.*]]
196-
; CHECK: [[BB1]]:
198+
; CHECK: [[BB_1]]:
197199
; CHECK-NEXT: call void @use_i32(i32 [[V_FR]])
198200
; CHECK-NEXT: br label %[[END]]
199201
; CHECK: [[END]]:
@@ -204,15 +206,15 @@ entry:
204206
call void @use_p32(ptr %a)
205207
call void @use_i32(i32 %v)
206208
%cond = icmp eq i32 %v, 0
207-
br i1 %cond, label %bb0, label %bb1
209+
br i1 %cond, label %bb.0, label %bb.1
208210

209-
bb0:
211+
bb.0:
210212
%v.fr = freeze i32 %v
211213
call void @use_i32(i32 %v.fr)
212214
call void @use_i32(i32 %v)
213215
br label %end
214216

215-
bb1:
217+
bb.1:
216218
call void @use_i32(i32 %v)
217219
br label %end
218220

@@ -228,11 +230,11 @@ define void @freeze_dominated_uses_test3(i32 %v, i1 %cond) {
228230
; CHECK-NEXT: [[ENTRY:.*:]]
229231
; CHECK-NEXT: [[V_FR1:%.*]] = freeze i32 [[V]]
230232
; CHECK-NEXT: call void @use_i32(i32 [[V_FR1]])
231-
; CHECK-NEXT: br i1 [[COND]], label %[[BB0:.*]], label %[[BB1:.*]]
232-
; CHECK: [[BB0]]:
233+
; CHECK-NEXT: br i1 [[COND]], label %[[BB_0:.*]], label %[[BB_1:.*]]
234+
; CHECK: [[BB_0]]:
233235
; CHECK-NEXT: call void @use_i32(i32 [[V_FR1]])
234236
; CHECK-NEXT: br label %[[END:.*]]
235-
; CHECK: [[BB1]]:
237+
; CHECK: [[BB_1]]:
236238
; CHECK-NEXT: call void @use_i32(i32 [[V_FR1]])
237239
; CHECK-NEXT: br label %[[END]]
238240
; CHECK: [[END]]:
@@ -241,14 +243,14 @@ define void @freeze_dominated_uses_test3(i32 %v, i1 %cond) {
241243
entry:
242244
%v.fr1 = freeze i32 %v
243245
call void @use_i32(i32 %v.fr1)
244-
br i1 %cond, label %bb0, label %bb1
246+
br i1 %cond, label %bb.0, label %bb.1
245247

246-
bb0:
248+
bb.0:
247249
%v.fr2 = freeze i32 %v
248250
call void @use_i32(i32 %v.fr2)
249251
br label %end
250252

251-
bb1:
253+
bb.1:
252254
call void @use_i32(i32 %v)
253255
br label %end
254256

@@ -939,18 +941,19 @@ exit: ; preds = %loop
939941
; The recurrence for the GEP offset can't produce poison so the freeze should
940942
; be pushed through to the ptr.
941943
define void @fold_phi_gep_phi_offset(ptr %init, ptr %end, i64 noundef %n) {
942-
; CHECK-LABEL: @fold_phi_gep_phi_offset(
943-
; CHECK-NEXT: entry:
944-
; CHECK-NEXT: [[TMP0:%.*]] = freeze ptr [[INIT:%.*]]
945-
; CHECK-NEXT: br label [[LOOP:%.*]]
946-
; CHECK: loop:
947-
; CHECK-NEXT: [[I:%.*]] = phi ptr [ [[TMP0]], [[ENTRY:%.*]] ], [ [[I_NEXT:%.*]], [[LOOP]] ]
948-
; CHECK-NEXT: [[OFF:%.*]] = phi i64 [ [[N:%.*]], [[ENTRY]] ], [ [[OFF_NEXT:%.*]], [[LOOP]] ]
944+
; CHECK-LABEL: define void @fold_phi_gep_phi_offset(
945+
; CHECK-SAME: ptr [[INIT:%.*]], ptr [[END:%.*]], i64 noundef [[N:%.*]]) {
946+
; CHECK-NEXT: [[ENTRY:.*]]:
947+
; CHECK-NEXT: [[TMP0:%.*]] = freeze ptr [[INIT]]
948+
; CHECK-NEXT: br label %[[LOOP:.*]]
949+
; CHECK: [[LOOP]]:
950+
; CHECK-NEXT: [[I:%.*]] = phi ptr [ [[TMP0]], %[[ENTRY]] ], [ [[I_NEXT:%.*]], %[[LOOP]] ]
951+
; CHECK-NEXT: [[OFF:%.*]] = phi i64 [ [[N]], %[[ENTRY]] ], [ [[OFF_NEXT:%.*]], %[[LOOP]] ]
949952
; CHECK-NEXT: [[OFF_NEXT]] = shl i64 [[OFF]], 3
950953
; CHECK-NEXT: [[I_NEXT]] = getelementptr i8, ptr [[I]], i64 [[OFF_NEXT]]
951-
; CHECK-NEXT: [[COND:%.*]] = icmp eq ptr [[I_NEXT]], [[END:%.*]]
952-
; CHECK-NEXT: br i1 [[COND]], label [[LOOP]], label [[EXIT:%.*]]
953-
; CHECK: exit:
954+
; CHECK-NEXT: [[COND:%.*]] = icmp eq ptr [[I_NEXT]], [[END]]
955+
; CHECK-NEXT: br i1 [[COND]], label %[[LOOP]], label %[[EXIT:.*]]
956+
; CHECK: [[EXIT]]:
954957
; CHECK-NEXT: ret void
955958
;
956959
entry:
@@ -972,18 +975,19 @@ exit: ; preds = %loop
972975
; Offset is still guaranteed not to be poison, so the freeze can be moved
973976
; here if we strip inbounds from the GEP.
974977
define void @fold_phi_gep_inbounds_phi_offset(ptr %init, ptr %end, i64 noundef %n) {
975-
; CHECK-LABEL: @fold_phi_gep_inbounds_phi_offset(
976-
; CHECK-NEXT: entry:
977-
; CHECK-NEXT: [[TMP0:%.*]] = freeze ptr [[INIT:%.*]]
978-
; CHECK-NEXT: br label [[LOOP:%.*]]
979-
; CHECK: loop:
980-
; CHECK-NEXT: [[I:%.*]] = phi ptr [ [[TMP0]], [[ENTRY:%.*]] ], [ [[I_NEXT:%.*]], [[LOOP]] ]
981-
; CHECK-NEXT: [[OFF:%.*]] = phi i64 [ [[N:%.*]], [[ENTRY]] ], [ [[OFF_NEXT:%.*]], [[LOOP]] ]
978+
; CHECK-LABEL: define void @fold_phi_gep_inbounds_phi_offset(
979+
; CHECK-SAME: ptr [[INIT:%.*]], ptr [[END:%.*]], i64 noundef [[N:%.*]]) {
980+
; CHECK-NEXT: [[ENTRY:.*]]:
981+
; CHECK-NEXT: [[TMP0:%.*]] = freeze ptr [[INIT]]
982+
; CHECK-NEXT: br label %[[LOOP:.*]]
983+
; CHECK: [[LOOP]]:
984+
; CHECK-NEXT: [[I:%.*]] = phi ptr [ [[TMP0]], %[[ENTRY]] ], [ [[I_NEXT:%.*]], %[[LOOP]] ]
985+
; CHECK-NEXT: [[OFF:%.*]] = phi i64 [ [[N]], %[[ENTRY]] ], [ [[OFF_NEXT:%.*]], %[[LOOP]] ]
982986
; CHECK-NEXT: [[OFF_NEXT]] = shl i64 [[OFF]], 3
983987
; CHECK-NEXT: [[I_NEXT]] = getelementptr i8, ptr [[I]], i64 [[OFF_NEXT]]
984-
; CHECK-NEXT: [[COND:%.*]] = icmp eq ptr [[I_NEXT]], [[END:%.*]]
985-
; CHECK-NEXT: br i1 [[COND]], label [[LOOP]], label [[EXIT:%.*]]
986-
; CHECK: exit:
988+
; CHECK-NEXT: [[COND:%.*]] = icmp eq ptr [[I_NEXT]], [[END]]
989+
; CHECK-NEXT: br i1 [[COND]], label %[[LOOP]], label %[[EXIT:.*]]
990+
; CHECK: [[EXIT]]:
987991
; CHECK-NEXT: ret void
988992
;
989993
entry:
@@ -1004,19 +1008,20 @@ exit: ; preds = %loop
10041008

10051009
; Same as previous, but also requires freezing %n.
10061010
define void @fold_phi_gep_phi_offset_multiple(ptr %init, ptr %end, i64 %n) {
1007-
; CHECK-LABEL: @fold_phi_gep_phi_offset_multiple(
1008-
; CHECK-NEXT: entry:
1009-
; CHECK-NEXT: [[TMP0:%.*]] = freeze ptr [[INIT:%.*]]
1010-
; CHECK-NEXT: [[TMP1:%.*]] = freeze i64 [[N:%.*]]
1011-
; CHECK-NEXT: br label [[LOOP:%.*]]
1012-
; CHECK: loop:
1013-
; CHECK-NEXT: [[I:%.*]] = phi ptr [ [[TMP0]], [[ENTRY:%.*]] ], [ [[I_NEXT:%.*]], [[LOOP]] ]
1014-
; CHECK-NEXT: [[OFF:%.*]] = phi i64 [ [[TMP1]], [[ENTRY]] ], [ [[OFF_NEXT:%.*]], [[LOOP]] ]
1011+
; CHECK-LABEL: define void @fold_phi_gep_phi_offset_multiple(
1012+
; CHECK-SAME: ptr [[INIT:%.*]], ptr [[END:%.*]], i64 [[N:%.*]]) {
1013+
; CHECK-NEXT: [[ENTRY:.*]]:
1014+
; CHECK-NEXT: [[TMP0:%.*]] = freeze ptr [[INIT]]
1015+
; CHECK-NEXT: [[TMP1:%.*]] = freeze i64 [[N]]
1016+
; CHECK-NEXT: br label %[[LOOP:.*]]
1017+
; CHECK: [[LOOP]]:
1018+
; CHECK-NEXT: [[I:%.*]] = phi ptr [ [[TMP0]], %[[ENTRY]] ], [ [[I_NEXT:%.*]], %[[LOOP]] ]
1019+
; CHECK-NEXT: [[OFF:%.*]] = phi i64 [ [[TMP1]], %[[ENTRY]] ], [ [[OFF_NEXT:%.*]], %[[LOOP]] ]
10151020
; CHECK-NEXT: [[OFF_NEXT]] = shl i64 [[OFF]], 3
10161021
; CHECK-NEXT: [[I_NEXT]] = getelementptr i8, ptr [[I]], i64 [[OFF_NEXT]]
1017-
; CHECK-NEXT: [[COND:%.*]] = icmp eq ptr [[I_NEXT]], [[END:%.*]]
1018-
; CHECK-NEXT: br i1 [[COND]], label [[LOOP]], label [[EXIT:%.*]]
1019-
; CHECK: exit:
1022+
; CHECK-NEXT: [[COND:%.*]] = icmp eq ptr [[I_NEXT]], [[END]]
1023+
; CHECK-NEXT: br i1 [[COND]], label %[[LOOP]], label %[[EXIT:.*]]
1024+
; CHECK: [[EXIT]]:
10201025
; CHECK-NEXT: ret void
10211026
;
10221027
entry:

0 commit comments

Comments
 (0)