diff options
author | Nate Begeman <natebegeman@mac.com> | 2005-12-14 22:54:33 +0000 |
---|---|---|
committer | Nate Begeman <natebegeman@mac.com> | 2005-12-14 22:54:33 +0000 |
commit | a07da92624219599e6569460b3b56b49d60a4b46 (patch) | |
tree | 4ad9257a849539d4a3b7138b4b7efc2f7d1e849e /docs/CommandGuide/html | |
parent | 1dae25e23ac4edd64a124b3d831282ceaf3610ea (diff) |
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
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24719 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'docs/CommandGuide/html')
0 files changed, 0 insertions, 0 deletions