[MemCpyOpt] Add non-local memcpy test with memory phi.

This commit is contained in:
Florian Hahn 2022-02-18 11:59:24 +00:00
parent 0b13c6b88e
commit 3ba42a564a
No known key found for this signature in database
GPG Key ID: EEF712BB5E80EBBA
1 changed files with 25 additions and 0 deletions

View File

@ -170,3 +170,28 @@ bb23: ; preds = %bb22, %bb13
bb25: ; preds = %bb6
unreachable
}
define void @memphi_with_unrelated_clobber(i1 %cond, i64* %arg, i8* noalias %a, i8* noalias %b, i8* noalias %c) {
; CHECK-LABEL: @memphi_with_unrelated_clobber(
; CHECK-NEXT: entry:
; CHECK-NEXT: call void @llvm.memcpy.p0i8.p0i8.i64(i8* [[A:%.*]], i8* [[B:%.*]], i64 16, i1 false)
; CHECK-NEXT: br i1 [[COND:%.*]], label [[THEN:%.*]], label [[EXIT:%.*]]
; CHECK: then:
; CHECK-NEXT: store i64 0, i64* [[ARG:%.*]], align 4
; CHECK-NEXT: br label [[EXIT]]
; CHECK: exit:
; CHECK-NEXT: call void @llvm.memcpy.p0i8.p0i8.i64(i8* [[C:%.*]], i8* [[B]], i64 16, i1 false)
; CHECK-NEXT: ret void
;
entry:
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %a, i8* %b, i64 16, i1 false)
br i1 %cond, label %then, label %exit
then:
store i64 0, i64* %arg
br label %exit
exit:
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %c, i8* %a, i64 16, i1 false)
ret void
}