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
Paths
| Differential D14906
[X86][FMA] Optimize FNEG(FMA) Patterns ClosedPublic Authored by RKSimon on Nov 22 2015, 11:11 AM.
Details Summary 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
Diff Detail
Event TimelineRKSimon updated this object.
delena edited edge metadata. Comment ActionsI agree that the PerformFMACombine() is not the right place. May be PerformFNEGCombine() is more clear? I'll let you to decide. This revision is now accepted and ready to land.Nov 23 2015, 10:38 PM Closed by commit rL254016: [X86][FMA] Optimize FNEG(FMA) Patterns (authored by RKSimon). · Explain WhyNov 24 2015, 12:34 PM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 40878 lib/Target/X86/X86ISelLowering.cpp
test/CodeGen/X86/fma_patterns.ll
|
What we are doing in PerformFMACombine() ? May be we can extend there?