summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Bytecode
diff options
context:
space:
mode:
authorNate Begeman <natebegeman@mac.com>2005-12-14 22:54:33 +0000
committerNate Begeman <natebegeman@mac.com>2005-12-14 22:54:33 +0000
commite37cb604c15c1ef5e7083865360e9d964985ff2b (patch)
tree536fb13a9b817f15bc56accc07953ea25b20ee02 /llvm/lib/Bytecode
parent7853983b40255787b1637e4d0c925ea042418d3b (diff)
downloadbcm5719-llvm-e37cb604c15c1ef5e7083865360e9d964985ff2b.tar.gz
bcm5719-llvm-e37cb604c15c1ef5e7083865360e9d964985ff2b.zip
Use the new predicate support that Evan Cheng added to remove some code
from the DAGToDAG cpp file. This adds pattern support for vector and scalar fma, which passes test/Regression/CodeGen/PowerPC/fma.ll, and does the right thing in the presence of -disable-excess-fp-precision. Allows us to match: void %foo(<4 x float> * %a) { entry: %tmp1 = load <4 x float> * %a; %tmp2 = mul <4 x float> %tmp1, %tmp1 %tmp3 = add <4 x float> %tmp2, %tmp1 store <4 x float> %tmp3, <4 x float> *%a ret void } As: _foo: li r2, 0 lvx v0, r2, r3 vmaddfp v0, v0, v0, v0 stvx v0, r2, r3 blr Or, with llc -disable-excess-fp-precision, _foo: li r2, 0 lvx v0, r2, r3 vxor v1, v1, v1 vmaddfp v1, v0, v0, v1 vaddfp v0, v1, v0 stvx v0, r2, r3 blr llvm-svn: 24719
Diffstat (limited to 'llvm/lib/Bytecode')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud