OSDN Git Service

[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)
commite5b799ba09a2b97540916a81e54268e6ee1d7cee
tree9f868ee2b3558b074cb9941ef38dc6974cd7f495
parent023b407c112f0fa6bfff5756e0cd28ebe464b332
[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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@335018 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86InstrAVX512.td
lib/Target/X86/X86InstrFormats.td
utils/TableGen/X86EVEX2VEXTablesEmitter.cpp