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
..
2012-04-10 03:15:42 +00:00
2012-06-11 08:07:26 +00:00
2012-02-28 02:08:50 +00:00
2012-06-15 21:32:12 +00:00
2011-12-19 23:26:44 +00:00
2011-12-19 23:26:44 +00:00
2012-04-16 20:56:42 +00:00
2012-04-16 20:56:42 +00:00
2011-11-14 18:03:05 +00:00
2011-11-29 23:09:16 +00:00
2011-11-29 23:09:16 +00:00
2012-03-20 21:49:54 +00:00
2011-07-26 20:49:44 +00:00