llvm-6502/test/CodeGen
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
..
ARM Add DAG-combines for aggressive FMA formation. 2012-06-19 22:51:23 +00:00
CellSPU
CPP
Generic Fix test case to work on ARM. 2012-06-11 16:01:14 +00:00
Hexagon Enable all Hexagon tests. 2012-05-15 16:13:12 +00:00
MBlaze
Mips 1. introduce MipsPat in place of Pat in order to exclude those from 2012-06-14 21:03:23 +00:00
MSP430 These tests used intrinsics with the wrong prototype. They weren't caught because 2012-05-27 19:35:41 +00:00
NVPTX Add llvm.fabs intrinsic. 2012-05-28 21:48:37 +00:00
PowerPC Add DAG-combines for aggressive FMA formation. 2012-06-19 22:51:23 +00:00
SPARC
Thumb
Thumb2 Add a test case for global live range splitting. 2012-05-23 23:42:23 +00:00
X86 really add a triple :-( 2012-06-19 02:17:35 +00:00
XCore Fix pattern for MKMSK instruction. 2012-06-13 17:59:12 +00:00