teach libanalysis to simplify vector loads with bitcast sources. This
authorChris Lattner <sabre@nondot.org>
Fri, 23 Oct 2009 06:57:37 +0000 (06:57 +0000)
committerChris Lattner <sabre@nondot.org>
Fri, 23 Oct 2009 06:57:37 +0000 (06:57 +0000)
commit17f0cd3cc1432231f2bc5601e7e463986a59d817
tree3281e0056f828380884e59e2dfdb0a7c1dbf9fec
parent739208a790398cf1f9da05149c768371e48781e8
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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84942 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Analysis/ConstantFolding.cpp
test/Transforms/ConstProp/loads.ll