summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/ARM/ARMInstrVFP.td
diff options
context:
space:
mode:
authorDavid Goodwin <david_goodwin@apple.com>2009-08-04 18:44:29 +0000
committerDavid Goodwin <david_goodwin@apple.com>2009-08-04 18:44:29 +0000
commita3839bc6c0bcdcbd50ba7de76b95dafedfe73d98 (patch)
tree5750b2fe387bba06a7d148357a2642eca7dc8861 /llvm/lib/Target/ARM/ARMInstrVFP.td
parent5638895b2aacb2af12fb636f342066af651465e0 (diff)
downloadbcm5719-llvm-a3839bc6c0bcdcbd50ba7de76b95dafedfe73d98.tar.gz
bcm5719-llvm-a3839bc6c0bcdcbd50ba7de76b95dafedfe73d98.zip
Match common pattern for FNMAC. Add NEON SP support.
llvm-svn: 78085
Diffstat (limited to 'llvm/lib/Target/ARM/ARMInstrVFP.td')
-rw-r--r--llvm/lib/Target/ARM/ARMInstrVFP.td5
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/Target/ARM/ARMInstrVFP.td b/llvm/lib/Target/ARM/ARMInstrVFP.td
index 2ecf5f3a420..923606d9772 100644
--- a/llvm/lib/Target/ARM/ARMInstrVFP.td
+++ b/llvm/lib/Target/ARM/ARMInstrVFP.td
@@ -346,6 +346,11 @@ def FNMACS : ASbIn<0b11100000, (outs SPR:$dst), (ins SPR:$dstin, SPR:$a, SPR:$b)
let Inst{6} = 1;
}
+def : Pat<(fsub DPR:$dstin, (fmul DPR:$a, DPR:$b)),
+ (FNMACD DPR:$dstin, DPR:$a, DPR:$b)>, Requires<[DontUseNEONForFP]>;
+def : Pat<(fsub SPR:$dstin, (fmul SPR:$a, SPR:$b)),
+ (FNMACS SPR:$dstin, SPR:$a, SPR:$b)>, Requires<[DontUseNEONForFP]>;
+
def FNMSCD : ADbI<0b11100001, (outs DPR:$dst), (ins DPR:$dstin, DPR:$a, DPR:$b),
"fnmscd", " $dst, $a, $b",
[(set DPR:$dst, (fsub (fneg (fmul DPR:$a, DPR:$b)), DPR:$dstin))]>,
OpenPOWER on IntegriCloud