summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/PowerPC/PPCInstrAltivec.td
diff options
context:
space:
mode:
authorHal Finkel <hfinkel@anl.gov>2012-06-22 00:49:52 +0000
committerHal Finkel <hfinkel@anl.gov>2012-06-22 00:49:52 +0000
commit0a479ae7d1585729fd9adbf5560f63fc6c70cd28 (patch)
treeb217f69a0b104067b0c732a7a3f7f7f1706add6f /llvm/lib/Target/PowerPC/PPCInstrAltivec.td
parentb820709144570a05a2e74878a86cde49989e52e0 (diff)
downloadbcm5719-llvm-0a479ae7d1585729fd9adbf5560f63fc6c70cd28.tar.gz
bcm5719-llvm-0a479ae7d1585729fd9adbf5560f63fc6c70cd28.zip
Convert the PPC backend to use the new FMA infrastructure.
The existing contraction patterns are replaced with fma/fneg. Overall functionality should be the same. llvm-svn: 158955
Diffstat (limited to 'llvm/lib/Target/PowerPC/PPCInstrAltivec.td')
-rw-r--r--llvm/lib/Target/PowerPC/PPCInstrAltivec.td10
1 files changed, 3 insertions, 7 deletions
diff --git a/llvm/lib/Target/PowerPC/PPCInstrAltivec.td b/llvm/lib/Target/PowerPC/PPCInstrAltivec.td
index 6c0f3d3f06e..b0b84232819 100644
--- a/llvm/lib/Target/PowerPC/PPCInstrAltivec.td
+++ b/llvm/lib/Target/PowerPC/PPCInstrAltivec.td
@@ -274,15 +274,11 @@ let PPC970_Unit = 5 in { // VALU Operations.
// VA-Form instructions. 3-input AltiVec ops.
def VMADDFP : VAForm_1<46, (outs VRRC:$vD), (ins VRRC:$vA, VRRC:$vC, VRRC:$vB),
"vmaddfp $vD, $vA, $vC, $vB", VecFP,
- [(set VRRC:$vD, (fadd (fmul VRRC:$vA, VRRC:$vC),
- VRRC:$vB))]>,
- Requires<[FPContractions]>;
+ [(set VRRC:$vD, (fma VRRC:$vA, VRRC:$vC, VRRC:$vB))]>;
def VNMSUBFP: VAForm_1<47, (outs VRRC:$vD), (ins VRRC:$vA, VRRC:$vC, VRRC:$vB),
"vnmsubfp $vD, $vA, $vC, $vB", VecFP,
- [(set VRRC:$vD, (fsub V_immneg0,
- (fsub (fmul VRRC:$vA, VRRC:$vC),
- VRRC:$vB)))]>,
- Requires<[FPContractions]>;
+ [(set VRRC:$vD, (fneg (fma VRRC:$vA, VRRC:$vC,
+ (fneg VRRC:$vB))))]>;
def VMHADDSHS : VA1a_Int<32, "vmhaddshs", int_ppc_altivec_vmhaddshs>;
def VMHRADDSHS : VA1a_Int<33, "vmhraddshs", int_ppc_altivec_vmhraddshs>;
OpenPOWER on IntegriCloud