diff options
author | Chris Lattner <sabre@nondot.org> | 2009-03-08 04:17:04 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2009-03-08 04:17:04 +0000 |
commit | 29e641761e81bd000bdc4ccfae479c6dda18e402 (patch) | |
tree | 36f7ff32ab04818a2e11194513736b5c3fb527b7 /test/Transforms/ScalarRepl | |
parent | cf1bb0836899c59694d0bbccd145d1b479547a1f (diff) | |
download | external_llvm-29e641761e81bd000bdc4ccfae479c6dda18e402.zip external_llvm-29e641761e81bd000bdc4ccfae479c6dda18e402.tar.gz external_llvm-29e641761e81bd000bdc4ccfae479c6dda18e402.tar.bz2 |
teach SROA to handle promoting vector allocas with a memset into them into
a vector type instead of into an integer type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66368 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Transforms/ScalarRepl')
-rw-r--r-- | test/Transforms/ScalarRepl/vector_memcpy.ll | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/test/Transforms/ScalarRepl/vector_memcpy.ll b/test/Transforms/ScalarRepl/vector_memcpy.ll index dc947b0..5678578 100644 --- a/test/Transforms/ScalarRepl/vector_memcpy.ll +++ b/test/Transforms/ScalarRepl/vector_memcpy.ll @@ -1,4 +1,7 @@ -; RUN: llvm-as < %s | opt -scalarrepl | llvm-dis | grep {ret <16 x float> %A} +; RUN: llvm-as < %s | opt -scalarrepl | llvm-dis > %t +; RUN: grep {ret <16 x float> %A} %t +; RUN: grep {ret <16 x float> zeroinitializer} %t + define <16 x float> @foo(<16 x float> %A) nounwind { %tmp = alloca <16 x float>, align 16 %tmp2 = alloca <16 x float>, align 16 @@ -11,5 +14,16 @@ define <16 x float> @foo(<16 x float> %A) nounwind { ret <16 x float> %R } -declare void @llvm.memcpy.i64(i8* nocapture, i8* nocapture, i64, i32) nounwind +define <16 x float> @foo2(<16 x float> %A) nounwind { + %tmp2 = alloca <16 x float>, align 16 + %s2 = bitcast <16 x float>* %tmp2 to i8* + call void @llvm.memset.i64(i8* %s2, i8 0, i64 64, i32 16) + + %R = load <16 x float>* %tmp2 + ret <16 x float> %R +} + + +declare void @llvm.memcpy.i64(i8* nocapture, i8* nocapture, i64, i32) nounwind +declare void @llvm.memset.i64(i8* nocapture, i8, i64, i32) nounwind |