[llvm] r321954 - [X86] Don't put any EVEX_B instructions in the tablegen generated load folding tables.
Craig Topper via llvm-commits
llvm-commits at lists.llvm.org
Sat Jan 6 22:24:28 PST 2018
Author: ctopper
Date: Sat Jan 6 22:24:28 2018
New Revision: 321954
URL: http://llvm.org/viewvc/llvm-project?rev=321954&view=rev
Log:
[X86] Don't put any EVEX_B instructions in the tablegen generated load folding tables.
EVEX_B means different things for memory and register forms. The instructions should not be considered equivalent.
Modified:
llvm/trunk/lib/Target/X86/X86InstrInfo.cpp
llvm/trunk/utils/TableGen/X86FoldTablesEmitter.cpp
Modified: llvm/trunk/lib/Target/X86/X86InstrInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86InstrInfo.cpp?rev=321954&r1=321953&r2=321954&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86InstrInfo.cpp (original)
+++ llvm/trunk/lib/Target/X86/X86InstrInfo.cpp Sat Jan 6 22:24:28 2018
@@ -3394,6 +3394,7 @@ X86InstrInfo::X86InstrInfo(X86Subtarget
{ X86::VPSUBSWZrrk, X86::VPSUBSWZrmk, 0 },
{ X86::VPSUBUSBZrrk, X86::VPSUBUSBZrmk, 0 },
{ X86::VPSUBUSWZrrk, X86::VPSUBUSWZrmk, 0 },
+ { X86::VPSUBWZrrk, X86::VPSUBWZrmk, 0 },
{ X86::VPTERNLOGDZrrik, X86::VPTERNLOGDZrmik, 0 },
{ X86::VPTERNLOGQZrrik, X86::VPTERNLOGQZrmik, 0 },
{ X86::VPUNPCKHBWZrrk, X86::VPUNPCKHBWZrmk, 0 },
Modified: llvm/trunk/utils/TableGen/X86FoldTablesEmitter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/TableGen/X86FoldTablesEmitter.cpp?rev=321954&r1=321953&r2=321954&view=diff
==============================================================================
--- llvm/trunk/utils/TableGen/X86FoldTablesEmitter.cpp (original)
+++ llvm/trunk/utils/TableGen/X86FoldTablesEmitter.cpp Sat Jan 6 22:24:28 2018
@@ -341,8 +341,9 @@ public:
MemRec->getValueAsBit("hasEVEX_K") ||
RegRec->getValueAsBit("hasEVEX_Z") !=
MemRec->getValueAsBit("hasEVEX_Z") ||
- RegRec->getValueAsBit("hasEVEX_B") !=
- MemRec->getValueAsBit("hasEVEX_B") ||
+ // EVEX_B means different things for memory and register forms.
+ RegRec->getValueAsBit("hasEVEX_B") != 0 ||
+ MemRec->getValueAsBit("hasEVEX_B") != 0 ||
RegRec->getValueAsBit("hasEVEX_RC") !=
MemRec->getValueAsBit("hasEVEX_RC") ||
RegRec->getValueAsBit("hasREX_WPrefix") !=
More information about the llvm-commits
mailing list