X86-FMA3: Implemented commute transformation for EVEX/AVX512 FMA3 opcodes.
authorVyacheslav Klochkov <vyacheslav.n.klochkov@gmail.com>
Thu, 11 Aug 2016 22:07:33 +0000 (22:07 +0000)
committerVyacheslav Klochkov <vyacheslav.n.klochkov@gmail.com>
Thu, 11 Aug 2016 22:07:33 +0000 (22:07 +0000)
commit6daefcf6262299a4233231c49b9048c1062dbc90
tree31e71c7a213b08252b475bd77a0e0d33a89885d4
parent2c3f501052dac7baa3d937d543e60662089145c7
X86-FMA3: Implemented commute transformation for EVEX/AVX512 FMA3 opcodes.
This helped to improved memory-folding and register coalescing optimizations.

Also, this patch fixed the tracker #17229.

Reviewer: Craig Topper.
Differential Revision: https://reviews.llvm.org/D23108

llvm-svn: 278431
llvm/lib/Target/X86/CMakeLists.txt
llvm/lib/Target/X86/X86InstrAVX512.td
llvm/lib/Target/X86/X86InstrFMA3Info.cpp [new file with mode: 0644]
llvm/lib/Target/X86/X86InstrFMA3Info.h [new file with mode: 0644]
llvm/lib/Target/X86/X86InstrInfo.cpp
llvm/lib/Target/X86/X86InstrInfo.h
llvm/test/CodeGen/X86/avx512-fma-intrinsics.ll
llvm/test/CodeGen/X86/avx512-fma.ll
llvm/test/CodeGen/X86/avx512bwvl-intrinsics.ll
llvm/test/CodeGen/X86/fma-fneg-combine.ll