[X86][FMA] Optimize FNEG(FMUL) Patterns
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Wed, 2 Dec 2015 09:07:55 +0000 (09:07 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Wed, 2 Dec 2015 09:07:55 +0000 (09:07 +0000)
commit68cb3950c097e41c9ebb41fe0855bdf52e1cbe87
tree7dd89161009ad181ba062867b5f2a556edcf04da
parentcd9551564bc737c64e44a9d3742b470d32ca4fb9
[X86][FMA] Optimize FNEG(FMUL) Patterns

On FMA targets, we can avoid having to load a constant to negate a float/double multiply by instead using a FNMSUB (-(X*Y)-0)

Fix for PR24366

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

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