Skip to content

Commit 374a122

Browse files
aqjunememfrob
authored andcommitted
[SimplifyCFG] Add tests for D97244 (NFC)
1 parent 30a9c8e commit 374a122

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

llvm/test/Transforms/SimplifyCFG/UnreachableEliminate.ll

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,8 @@ else:
205205
}
206206

207207
declare i8* @fn_nonnull_noundef_arg(i8* nonnull noundef %p)
208+
declare i8* @fn_nonnull_deref_arg(i8* dereferenceable(4) noundef %p)
209+
declare i8* @fn_nonnull_deref_or_null_arg(i8* dereferenceable_or_null(4) noundef %p)
208210
declare i8* @fn_nonnull_arg(i8* nonnull %p)
209211
declare i8* @fn_noundef_arg(i8* noundef %p)
210212

@@ -228,6 +230,46 @@ else:
228230
ret void
229231
}
230232

233+
; Optimizing this code should produce assume.
234+
define void @test9_deref(i1 %X, i8* %Y) {
235+
; CHECK-LABEL: @test9_deref(
236+
; CHECK-NEXT: entry:
237+
; CHECK-NEXT: [[SPEC_SELECT:%.*]] = select i1 [[X:%.*]], i8* null, i8* [[Y:%.*]]
238+
; CHECK-NEXT: [[TMP0:%.*]] = call i8* @fn_nonnull_deref_arg(i8* [[SPEC_SELECT]])
239+
; CHECK-NEXT: ret void
240+
;
241+
entry:
242+
br i1 %X, label %if, label %else
243+
244+
if:
245+
br label %else
246+
247+
else:
248+
%phi = phi i8* [ %Y, %entry ], [ null, %if ]
249+
call i8* @fn_nonnull_deref_arg(i8* %phi)
250+
ret void
251+
}
252+
253+
; Optimizing this code should produce assume.
254+
define void @test9_deref_or_null(i1 %X, i8* %Y) {
255+
; CHECK-LABEL: @test9_deref_or_null(
256+
; CHECK-NEXT: entry:
257+
; CHECK-NEXT: [[SPEC_SELECT:%.*]] = select i1 [[X:%.*]], i8* null, i8* [[Y:%.*]]
258+
; CHECK-NEXT: [[TMP0:%.*]] = call i8* @fn_nonnull_deref_or_null_arg(i8* [[SPEC_SELECT]])
259+
; CHECK-NEXT: ret void
260+
;
261+
entry:
262+
br i1 %X, label %if, label %else
263+
264+
if:
265+
br label %else
266+
267+
else:
268+
%phi = phi i8* [ %Y, %entry ], [ null, %if ]
269+
call i8* @fn_nonnull_deref_or_null_arg(i8* %phi)
270+
ret void
271+
}
272+
231273
define void @test9_undef(i1 %X, i8* %Y) {
232274
; CHECK-LABEL: @test9_undef(
233275
; CHECK-NEXT: entry:

0 commit comments

Comments
 (0)