diff options
author | Cameron Zwarich <zwarich@apple.com> | 2011-06-18 06:17:51 +0000 |
---|---|---|
committer | Cameron Zwarich <zwarich@apple.com> | 2011-06-18 06:17:51 +0000 |
commit | 3ebb05d9a6bf6604a4b25770cfda1872983b03b2 (patch) | |
tree | d7956f4983b57f4fb0569f20f3e28d651e258302 /test/Transforms/ScalarRepl/2011-06-08-VectorExtractValue.ll | |
parent | b85e4eba85a38698f3b3332f82554bf8442547e2 (diff) | |
download | external_llvm-3ebb05d9a6bf6604a4b25770cfda1872983b03b2.zip external_llvm-3ebb05d9a6bf6604a4b25770cfda1872983b03b2.tar.gz external_llvm-3ebb05d9a6bf6604a4b25770cfda1872983b03b2.tar.bz2 |
When scalar replacement returns a vector type, only accept it if the vector
type's bitwidth matches the (allocated) size of the alloca. This severely
pessimizes vector scalar replacement when the only vector type being used is
something like <3 x float> on x86 or ARM whose allocated size matches a
<4 x float>.
I hope to fix some of the flawed assumptions about allocated size throughout
scalar replacement and reenable this in most cases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133338 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Transforms/ScalarRepl/2011-06-08-VectorExtractValue.ll')
-rw-r--r-- | test/Transforms/ScalarRepl/2011-06-08-VectorExtractValue.ll | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/test/Transforms/ScalarRepl/2011-06-08-VectorExtractValue.ll b/test/Transforms/ScalarRepl/2011-06-08-VectorExtractValue.ll index 32e67fb..98fa1c6 100644 --- a/test/Transforms/ScalarRepl/2011-06-08-VectorExtractValue.ll +++ b/test/Transforms/ScalarRepl/2011-06-08-VectorExtractValue.ll @@ -10,7 +10,8 @@ target triple = "x86_64-apple-macosx10.7.0" ; CHECK: main ; CHECK-NOT: alloca -; CHECK: extractelement <2 x float> zeroinitializer +; CHECK: %[[A:[a-z0-9]*]] = and i128 +; CHECK: %[[B:[a-z0-9]*]] = trunc i128 %[[A]] to i32 define void @main() uwtable ssp { entry: @@ -27,7 +28,8 @@ entry: ; CHECK: test1 ; CHECK-NOT: alloca -; CHECK: extractelement <2 x float> zeroinitializer +; CHECK: %[[A:[a-z0-9]*]] = and i128 +; CHECK: %[[B:[a-z0-9]*]] = trunc i128 %[[A]] to i32 define void @test1() uwtable ssp { entry: |