summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms/MemCpyOpt
diff options
context:
space:
mode:
authorMehdi Amini <mehdi.amini@apple.com>2016-01-06 23:50:22 +0000
committerMehdi Amini <mehdi.amini@apple.com>2016-01-06 23:50:22 +0000
commit0535003bef40b7a90ff62f933da06cf4ae613994 (patch)
tree8a21ed072c44f00af29a1a7e659f3b7625b0cf55 /llvm/test/Transforms/MemCpyOpt
parent882a8eed3ef400af27a1047edde0f16083bb61bd (diff)
downloadbcm5719-llvm-0535003bef40b7a90ff62f933da06cf4ae613994.tar.gz
bcm5719-llvm-0535003bef40b7a90ff62f933da06cf4ae613994.zip
Fix PR26051: Memcpy optimization should introduce a call to memcpy before the store destination position
This is a conservative fix, I expect Amaury to relax this. Follow-up for r256923 From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 256999
Diffstat (limited to 'llvm/test/Transforms/MemCpyOpt')
-rw-r--r--llvm/test/Transforms/MemCpyOpt/fca2memcpy.ll14
1 files changed, 14 insertions, 0 deletions
diff --git a/llvm/test/Transforms/MemCpyOpt/fca2memcpy.ll b/llvm/test/Transforms/MemCpyOpt/fca2memcpy.ll
index 3c3b22bb335..c8a126848b0 100644
--- a/llvm/test/Transforms/MemCpyOpt/fca2memcpy.ll
+++ b/llvm/test/Transforms/MemCpyOpt/fca2memcpy.ll
@@ -72,3 +72,17 @@ define void @copyalias(%S* %src, %S* %dst) {
store %S %2, %S* %dst
ret void
}
+
+
+; The GEP is present after the aliasing store, preventing to move the memcpy before
+; (without further analysis/transformation)
+define void @copyaliaswithproducerinbetween(%S* %src, %S* %dst) {
+; CHECK-LABEL: copyalias
+; CHECK-NEXT: [[LOAD:%[a-z0-9\.]+]] = load %S, %S* %src
+; CHECK-NOT: call
+ %1 = load %S, %S* %src
+ store %S undef, %S* %dst
+ %dst2 = getelementptr %S , %S* %dst, i64 1
+ store %S %1, %S* %dst2
+ ret void
+}
OpenPOWER on IntegriCloud