diff options
author | Chris Lattner <sabre@nondot.org> | 2009-10-23 06:57:37 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2009-10-23 06:57:37 +0000 |
commit | ccf1e847791a1d4dad5108e4147303440e85b8b1 (patch) | |
tree | 08b9a4494a0bb82356310f305a3e0dd944f9635b /llvm/test/Transforms/ConstProp | |
parent | 59f94c01dd726f320382daded7f4e3bb09e81690 (diff) | |
download | bcm5719-llvm-ccf1e847791a1d4dad5108e4147303440e85b8b1.tar.gz bcm5719-llvm-ccf1e847791a1d4dad5108e4147303440e85b8b1.zip |
teach libanalysis to simplify vector loads with bitcast sources. This
implements something out of Target/README.txt producing:
_foo: ## @foo
movl 4(%esp), %eax
movapd LCPI1_0, %xmm0
movapd %xmm0, (%eax)
ret $4
instead of:
_foo: ## @foo
movl 4(%esp), %eax
movapd _b, %xmm0
mulpd LCPI1_0, %xmm0
addpd _a, %xmm0
movapd %xmm0, (%eax)
ret $4
llvm-svn: 84942
Diffstat (limited to 'llvm/test/Transforms/ConstProp')
-rw-r--r-- | llvm/test/Transforms/ConstProp/loads.ll | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/llvm/test/Transforms/ConstProp/loads.ll b/llvm/test/Transforms/ConstProp/loads.ll index 3096ed347cb..f3e7f6a4b7b 100644 --- a/llvm/test/Transforms/ConstProp/loads.ll +++ b/llvm/test/Transforms/ConstProp/loads.ll @@ -77,3 +77,13 @@ define i128 @test9() { ; @test9 ; CHECK: ret i128 112312312 } + +; vector load. +define <2 x i64> @test10() { + %r = load <2 x i64>* bitcast({i64, i64}* @test3 to <2 x i64>*) + ret <2 x i64> %r + +; @test10 +; CHECK: ret <2 x i64> <i64 112312312, i64 0> +} + |