[X86][FMA] Optimize FNEG(FMA) Patterns
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Tue, 24 Nov 2015 20:31:46 +0000 (20:31 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Tue, 24 Nov 2015 20:31:46 +0000 (20:31 +0000)
commit24dc54c6a5d2179f70c8334bc8ba00fddd066de2
tree5cbc28d7ce1bbb73593af911e542d6a0df5a548c
parent1bb03c5884405c428c3ab54631c0528b6cedeb54
[X86][FMA] Optimize FNEG(FMA) Patterns

X86 needs to use its own FMA opcodes, preventing the standard FNEG(FMA) pattern table recognition method used by other platforms. This patch adds support for lowering FNEG(FMA(X,Y,Z)) into a single suitably negated FMA instruction.

Fix for PR24364

Differential Revision: http://reviews.llvm.org/D14906

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254016 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86ISelLowering.cpp
test/CodeGen/X86/fma_patterns.ll