Lang Hames d693cafcfb Add DAG-combines for aggressive FMA formation.
This patch adds DAG combines to form FMAs from pairs of FADD + FMUL or
FSUB + FMUL. The combines are performed when:
(a) Either
      AllowExcessFPPrecision option (-enable-excess-fp-precision for llc)
        OR
      UnsafeFPMath option (-enable-unsafe-fp-math)
    are set, and
(b) TargetLoweringInfo::isFMAFasterThanMulAndAdd(VT) is true for the type of
    the FADD/FSUB, and
(c) The FMUL only has one user (the FADD/FSUB).

If your target has fast FMA instructions you can make use of these combines by
overriding TargetLoweringInfo::isFMAFasterThanMulAndAdd(VT) to return true for
types supported by your FMA instruction, and adding patterns to match ISD::FMA
to your FMA instructions.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158757 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-19 22:51:23 +00:00
..
2011-05-02 15:58:16 +00:00
2012-06-19 21:46:25 +00:00
2010-11-14 22:22:14 +00:00
2010-07-16 22:51:10 +00:00
2010-03-28 07:58:37 +00:00
2011-03-09 22:07:31 +00:00
2011-05-02 15:58:16 +00:00
2010-02-28 20:36:49 +00:00
2010-11-14 22:22:14 +00:00
2010-11-14 22:22:14 +00:00
2012-06-04 17:36:38 +00:00
2010-11-14 22:22:14 +00:00