summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/RegAllocLinearScan.cpp
diff options
context:
space:
mode:
authorNate Begeman <natebegeman@mac.com>2005-12-19 23:40:42 +0000
committerNate Begeman <natebegeman@mac.com>2005-12-19 23:40:42 +0000
commitc126397a69b88e765a63ef5e4266699421b77f89 (patch)
tree9bc045af499bd07f15bed33fb4c8b5009289d215 /llvm/lib/CodeGen/RegAllocLinearScan.cpp
parent8e6a8af205c7be4d8003398e37096e8375ffea37 (diff)
downloadbcm5719-llvm-c126397a69b88e765a63ef5e4266699421b77f89.tar.gz
bcm5719-llvm-c126397a69b88e765a63ef5e4266699421b77f89.zip
Fix a couple of the FIXMEs, thanks to suggestion from Chris. This allows
us to load and store vectors directly at a pointer (offset of zero) by using r0 as the base register. This also requires some asm printer work to satisfy the darwin assembler. For void %foo(<4 x float> * %a) { entry: %tmp1 = load <4 x float> * %a; %tmp2 = add <4 x float> %tmp1, %tmp1 store <4 x float> %tmp2, <4 x float> *%a ret void } We now produce: _foo: lvx v0, 0, r3 vaddfp v0, v0, v0 stvx v0, 0, r3 blr Instead of: _foo: li r2, 0 lvx v0, r2, r3 vaddfp v0, v0, v0 stvx v0, r2, r3 blr llvm-svn: 24872
Diffstat (limited to 'llvm/lib/CodeGen/RegAllocLinearScan.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud