Skip to content

Commit bd8d6dd

Browse files
committed
[MemCpyOpt] Add new tests without constantexpr
1 parent 7bc99d3 commit bd8d6dd

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

llvm/test/Transforms/MemCpyOpt/pr102994.ll

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
@g1 = external global i8
55
@g2 = external global [64 x i8]
6+
@g3 = global i8 0, align 1
67

78
define void @func() {
89
; CHECK-LABEL: define void @func() {
@@ -16,3 +17,23 @@ entry:
1617
call void @llvm.memcpy.p0.p0.i64(ptr @g1, ptr getelementptr inbounds (i8, ptr @g2, i64 24), i64 1, i1 false)
1718
ret void
1819
}
20+
21+
define void @func2(ptr %p) {
22+
; CHECK-LABEL: define void @func2(
23+
; CHECK-SAME: ptr [[P:%.*]]) {
24+
; CHECK-NEXT: [[ENTRY:.*:]]
25+
; CHECK-NEXT: [[GEP1:%.*]] = getelementptr i8, ptr [[P]], i64 32
26+
; CHECK-NEXT: [[GEP2:%.*]] = getelementptr i8, ptr [[P]], i64 34
27+
; CHECK-NEXT: [[GEP3:%.*]] = getelementptr i8, ptr [[P]], i64 32
28+
; CHECK-NEXT: call void @llvm.memcpy.p0.p0.i64(ptr [[GEP1]], ptr [[GEP3]], i64 32, i1 false)
29+
; CHECK-NEXT: call void @llvm.memcpy.p0.p0.i64(ptr @g3, ptr [[GEP2]], i64 1, i1 false)
30+
; CHECK-NEXT: ret void
31+
;
32+
entry:
33+
%gep1 = getelementptr i8, ptr %p, i64 32
34+
%gep2 = getelementptr i8, ptr %p, i64 34
35+
%gep3 = getelementptr i8, ptr %p, i64 32
36+
call void @llvm.memcpy.p0.p0.i64(ptr %gep1, ptr %gep3, i64 32, i1 false)
37+
call void @llvm.memcpy.p0.p0.i64(ptr @g3, ptr %gep2, i64 1, i1 false)
38+
ret void
39+
}

0 commit comments

Comments
 (0)