From ccf1e847791a1d4dad5108e4147303440e85b8b1 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Fri, 23 Oct 2009 06:57:37 +0000 Subject: 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 --- llvm/test/Transforms/ConstProp/loads.ll | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'llvm/test') 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> +} + -- cgit v1.2.3