[X86] Add the ability to force an EVEX2VEX mapping table entry from the .td files...
authorCraig Topper <craig.topper@intel.com>
Tue, 19 Jun 2018 04:24:44 +0000 (04:24 +0000)
committerCraig Topper <craig.topper@intel.com>
Tue, 19 Jun 2018 04:24:44 +0000 (04:24 +0000)
commitc2965214efbd35ed54e08cce042e8eed778646aa
treea6ffdedbcc558cc1ea19cad92b1491a691093612
parent0a5e90cc2a6d954ee0c2fae99e0f5d0cb82b3168
[X86] Add the ability to force an EVEX2VEX mapping table entry from the .td files. Remove remaining manual table entries from the tablegen emitter.

This adds an EVEX2VEXOverride string to the X86 instruction class in X86InstrFormats.td. If this field is set it will add manual entry in the EVEX->VEX tables that doesn't check the encoding information.

Then use this mechanism to map VMOVDU/A8/16, 128-bit VALIGN, and VPSHUFF/I instructions to VEX instructions.

Finally, remove the manual table from the emitter.

This has the bonus of fully sorting the autogenerated EVEX->VEX tables by their EVEX instruction enum value. We may be able to use this to do a binary search for the conversion and get rid of the need to create a DenseMap.

llvm-svn: 335018
llvm/lib/Target/X86/X86InstrAVX512.td
llvm/lib/Target/X86/X86InstrFormats.td
llvm/utils/TableGen/X86EVEX2VEXTablesEmitter.cpp