Skip to content

Commit d3816ef

Browse files
committed
Precommit test for D106017
1 parent 5366de7 commit d3816ef

File tree

1 file changed

+23
-3
lines changed

1 file changed

+23
-3
lines changed

llvm/test/Transforms/InstCombine/malloc-free-delete.ll

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ define void @test6a(i8* %foo) minsize {
149149
; CHECK-NEXT: [[TOBOOL:%.*]] = icmp eq i8* [[FOO:%.*]], null
150150
; CHECK-NEXT: br i1 [[TOBOOL]], label [[IF_END:%.*]], label [[IF_THEN:%.*]]
151151
; CHECK: if.then:
152-
; CHECK-NEXT: tail call void @_ZdlPv(i8* [[FOO]]) #[[ATTR8:[0-9]+]]
152+
; CHECK-NEXT: tail call void @_ZdlPv(i8* [[FOO]]) #[[ATTR10:[0-9]+]]
153153
; CHECK-NEXT: br label [[IF_END]]
154154
; CHECK: if.end:
155155
; CHECK-NEXT: ret void
@@ -352,7 +352,7 @@ define void @test10() {
352352

353353
define void @test11() {
354354
; CHECK-LABEL: @test11(
355-
; CHECK-NEXT: [[CALL:%.*]] = call dereferenceable(8) i8* @_Znwm(i64 8) #[[ATTR8]]
355+
; CHECK-NEXT: [[CALL:%.*]] = call dereferenceable(8) i8* @_Znwm(i64 8) #[[ATTR10]]
356356
; CHECK-NEXT: call void @_ZdlPv(i8* nonnull [[CALL]])
357357
; CHECK-NEXT: ret void
358358
;
@@ -418,7 +418,7 @@ define void @test14(i8* %foo) nofree {
418418
; TODO: free call marked no-free -> %foo must be null
419419
define void @test15(i8* %foo) {
420420
; CHECK-LABEL: @test15(
421-
; CHECK-NEXT: call void @free(i8* [[FOO:%.*]]) #[[ATTR6:[0-9]+]]
421+
; CHECK-NEXT: call void @free(i8* [[FOO:%.*]]) #[[ATTR7:[0-9]+]]
422422
; CHECK-NEXT: ret void
423423
;
424424
call void @free(i8* %foo) nofree
@@ -434,3 +434,23 @@ define void @test16(i8* nonnull nofree %foo) {
434434
call void @free(i8* %foo)
435435
ret void
436436
}
437+
438+
declare i8* @llvm.launder.invariant.group(i8*)
439+
declare i8* @llvm.strip.invariant.group(i8*)
440+
441+
define void @test17() {
442+
; CHECK-LABEL: @test17(
443+
; CHECK-NEXT: [[NW1:%.*]] = call dereferenceable(32) i8* @_Znwm(i64 32) #[[ATTR10]]
444+
; CHECK-NEXT: [[NW2:%.*]] = call i8* @llvm.launder.invariant.group.p0i8(i8* nonnull [[NW1]])
445+
; CHECK-NEXT: [[TMP1:%.*]] = call i8* @llvm.strip.invariant.group.p0i8(i8* nonnull [[NW1]])
446+
; CHECK-NEXT: store i8 1, i8* [[TMP1]], align 1
447+
; CHECK-NEXT: call void @_ZdlPv(i8* [[NW2]]) #[[ATTR10]]
448+
; CHECK-NEXT: ret void
449+
;
450+
%nw1 = call i8* @_Znwm(i64 32) builtin
451+
%nw2 = call i8* @llvm.launder.invariant.group(i8* %nw1)
452+
%nw3 = call i8* @llvm.strip.invariant.group(i8* %nw2)
453+
store i8 1, i8* %nw3
454+
call void @_ZdlPv(i8* %nw2) builtin
455+
ret void
456+
}

0 commit comments

Comments
 (0)