[llvm] 2b8f1da - [X86] Add missing immediate qualifier to the SSE42 (V)PCMPEST/PCMPIST string instruction names
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Mon Mar 11 06:03:05 PDT 2024
Author: Simon Pilgrim
Date: 2024-03-11T13:02:48Z
New Revision: 2b8f1daf7878c03d5fac58385fdc3e498a810d8d
URL: https://github.com/llvm/llvm-project/commit/2b8f1daf7878c03d5fac58385fdc3e498a810d8d
DIFF: https://github.com/llvm/llvm-project/commit/2b8f1daf7878c03d5fac58385fdc3e498a810d8d.diff
LOG: [X86] Add missing immediate qualifier to the SSE42 (V)PCMPEST/PCMPIST string instruction names
Added:
Modified:
llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
llvm/lib/Target/X86/X86InstrSSE.td
llvm/test/TableGen/x86-fold-tables.inc
Removed:
################################################################################
diff --git a/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp b/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
index 5cbd9ab4dc2d6c..76c6c1645239ab 100644
--- a/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
+++ b/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
@@ -6133,14 +6133,18 @@ void X86DAGToDAGISel::Select(SDNode *Node) {
MachineSDNode *CNode;
if (NeedMask) {
- unsigned ROpc = Subtarget->hasAVX() ? X86::VPCMPISTRMrr : X86::PCMPISTRMrr;
- unsigned MOpc = Subtarget->hasAVX() ? X86::VPCMPISTRMrm : X86::PCMPISTRMrm;
+ unsigned ROpc =
+ Subtarget->hasAVX() ? X86::VPCMPISTRMrri : X86::PCMPISTRMrri;
+ unsigned MOpc =
+ Subtarget->hasAVX() ? X86::VPCMPISTRMrmi : X86::PCMPISTRMrmi;
CNode = emitPCMPISTR(ROpc, MOpc, MayFoldLoad, dl, MVT::v16i8, Node);
ReplaceUses(SDValue(Node, 1), SDValue(CNode, 0));
}
if (NeedIndex || !NeedMask) {
- unsigned ROpc = Subtarget->hasAVX() ? X86::VPCMPISTRIrr : X86::PCMPISTRIrr;
- unsigned MOpc = Subtarget->hasAVX() ? X86::VPCMPISTRIrm : X86::PCMPISTRIrm;
+ unsigned ROpc =
+ Subtarget->hasAVX() ? X86::VPCMPISTRIrri : X86::PCMPISTRIrri;
+ unsigned MOpc =
+ Subtarget->hasAVX() ? X86::VPCMPISTRIrmi : X86::PCMPISTRIrmi;
CNode = emitPCMPISTR(ROpc, MOpc, MayFoldLoad, dl, MVT::i32, Node);
ReplaceUses(SDValue(Node, 0), SDValue(CNode, 0));
}
@@ -6168,15 +6172,19 @@ void X86DAGToDAGISel::Select(SDNode *Node) {
MachineSDNode *CNode;
if (NeedMask) {
- unsigned ROpc = Subtarget->hasAVX() ? X86::VPCMPESTRMrr : X86::PCMPESTRMrr;
- unsigned MOpc = Subtarget->hasAVX() ? X86::VPCMPESTRMrm : X86::PCMPESTRMrm;
- CNode = emitPCMPESTR(ROpc, MOpc, MayFoldLoad, dl, MVT::v16i8, Node,
- InGlue);
+ unsigned ROpc =
+ Subtarget->hasAVX() ? X86::VPCMPESTRMrri : X86::PCMPESTRMrri;
+ unsigned MOpc =
+ Subtarget->hasAVX() ? X86::VPCMPESTRMrmi : X86::PCMPESTRMrmi;
+ CNode =
+ emitPCMPESTR(ROpc, MOpc, MayFoldLoad, dl, MVT::v16i8, Node, InGlue);
ReplaceUses(SDValue(Node, 1), SDValue(CNode, 0));
}
if (NeedIndex || !NeedMask) {
- unsigned ROpc = Subtarget->hasAVX() ? X86::VPCMPESTRIrr : X86::PCMPESTRIrr;
- unsigned MOpc = Subtarget->hasAVX() ? X86::VPCMPESTRIrm : X86::PCMPESTRIrm;
+ unsigned ROpc =
+ Subtarget->hasAVX() ? X86::VPCMPESTRIrri : X86::PCMPESTRIrri;
+ unsigned MOpc =
+ Subtarget->hasAVX() ? X86::VPCMPESTRIrmi : X86::PCMPESTRIrmi;
CNode = emitPCMPESTR(ROpc, MOpc, MayFoldLoad, dl, MVT::i32, Node, InGlue);
ReplaceUses(SDValue(Node, 0), SDValue(CNode, 0));
}
diff --git a/llvm/lib/Target/X86/X86InstrSSE.td b/llvm/lib/Target/X86/X86InstrSSE.td
index fd20090fe0973b..a572d6f84827f3 100644
--- a/llvm/lib/Target/X86/X86InstrSSE.td
+++ b/llvm/lib/Target/X86/X86InstrSSE.td
@@ -6561,12 +6561,12 @@ let Constraints = "$src1 = $dst" in
//===----------------------------------------------------------------------===//
multiclass pcmpistrm_SS42AI<string asm> {
- def rr : SS42AI<0x62, MRMSrcReg, (outs),
+ def rri : SS42AI<0x62, MRMSrcReg, (outs),
(ins VR128:$src1, VR128:$src2, u8imm:$src3),
!strconcat(asm, "\t{$src3, $src2, $src1|$src1, $src2, $src3}"),
[]>, Sched<[WritePCmpIStrM]>;
let mayLoad = 1 in
- def rm :SS42AI<0x62, MRMSrcMem, (outs),
+ def rmi :SS42AI<0x62, MRMSrcMem, (outs),
(ins VR128:$src1, i128mem:$src2, u8imm:$src3),
!strconcat(asm, "\t{$src3, $src2, $src1|$src1, $src2, $src3}"),
[]>, Sched<[WritePCmpIStrM.Folded, WritePCmpIStrM.ReadAfterFold]>;
@@ -6579,12 +6579,12 @@ let Defs = [XMM0, EFLAGS], hasSideEffects = 0 in {
}
multiclass SS42AI_pcmpestrm<string asm> {
- def rr : SS42AI<0x60, MRMSrcReg, (outs),
+ def rri : SS42AI<0x60, MRMSrcReg, (outs),
(ins VR128:$src1, VR128:$src3, u8imm:$src5),
!strconcat(asm, "\t{$src5, $src3, $src1|$src1, $src3, $src5}"),
[]>, Sched<[WritePCmpEStrM]>;
let mayLoad = 1 in
- def rm : SS42AI<0x60, MRMSrcMem, (outs),
+ def rmi : SS42AI<0x60, MRMSrcMem, (outs),
(ins VR128:$src1, i128mem:$src3, u8imm:$src5),
!strconcat(asm, "\t{$src5, $src3, $src1|$src1, $src3, $src5}"),
[]>, Sched<[WritePCmpEStrM.Folded, WritePCmpEStrM.ReadAfterFold]>;
@@ -6597,12 +6597,12 @@ let Defs = [XMM0, EFLAGS], Uses = [EAX, EDX], hasSideEffects = 0 in {
}
multiclass SS42AI_pcmpistri<string asm> {
- def rr : SS42AI<0x63, MRMSrcReg, (outs),
+ def rri : SS42AI<0x63, MRMSrcReg, (outs),
(ins VR128:$src1, VR128:$src2, u8imm:$src3),
!strconcat(asm, "\t{$src3, $src2, $src1|$src1, $src2, $src3}"),
[]>, Sched<[WritePCmpIStrI]>;
let mayLoad = 1 in
- def rm : SS42AI<0x63, MRMSrcMem, (outs),
+ def rmi : SS42AI<0x63, MRMSrcMem, (outs),
(ins VR128:$src1, i128mem:$src2, u8imm:$src3),
!strconcat(asm, "\t{$src3, $src2, $src1|$src1, $src2, $src3}"),
[]>, Sched<[WritePCmpIStrI.Folded, WritePCmpIStrI.ReadAfterFold]>;
@@ -6615,12 +6615,12 @@ let Defs = [ECX, EFLAGS], hasSideEffects = 0 in {
}
multiclass SS42AI_pcmpestri<string asm> {
- def rr : SS42AI<0x61, MRMSrcReg, (outs),
+ def rri : SS42AI<0x61, MRMSrcReg, (outs),
(ins VR128:$src1, VR128:$src3, u8imm:$src5),
!strconcat(asm, "\t{$src5, $src3, $src1|$src1, $src3, $src5}"),
[]>, Sched<[WritePCmpEStrI]>;
let mayLoad = 1 in
- def rm : SS42AI<0x61, MRMSrcMem, (outs),
+ def rmi : SS42AI<0x61, MRMSrcMem, (outs),
(ins VR128:$src1, i128mem:$src3, u8imm:$src5),
!strconcat(asm, "\t{$src5, $src3, $src1|$src1, $src3, $src5}"),
[]>, Sched<[WritePCmpEStrI.Folded, WritePCmpEStrI.ReadAfterFold]>;
diff --git a/llvm/test/TableGen/x86-fold-tables.inc b/llvm/test/TableGen/x86-fold-tables.inc
index d0ae2c474e85ac..185311f3923e3a 100644
--- a/llvm/test/TableGen/x86-fold-tables.inc
+++ b/llvm/test/TableGen/x86-fold-tables.inc
@@ -866,10 +866,10 @@ static const X86FoldTableEntry Table1[] = {
{X86::PABSBrr, X86::PABSBrm, TB_ALIGN_16},
{X86::PABSDrr, X86::PABSDrm, TB_ALIGN_16},
{X86::PABSWrr, X86::PABSWrm, TB_ALIGN_16},
- {X86::PCMPESTRIrr, X86::PCMPESTRIrm, 0},
- {X86::PCMPESTRMrr, X86::PCMPESTRMrm, 0},
- {X86::PCMPISTRIrr, X86::PCMPISTRIrm, 0},
- {X86::PCMPISTRMrr, X86::PCMPISTRMrm, 0},
+ {X86::PCMPESTRIrri, X86::PCMPESTRIrmi, 0},
+ {X86::PCMPESTRMrri, X86::PCMPESTRMrmi, 0},
+ {X86::PCMPISTRIrri, X86::PCMPISTRIrmi, 0},
+ {X86::PCMPISTRMrri, X86::PCMPISTRMrmi, 0},
{X86::PF2IDrr, X86::PF2IDrm, 0},
{X86::PF2IWrr, X86::PF2IWrm, 0},
{X86::PFRCPrr, X86::PFRCPrm, 0},
@@ -1544,10 +1544,10 @@ static const X86FoldTableEntry Table1[] = {
{X86::VPBROADCASTWZ256rr, X86::VPBROADCASTWZ256rm, TB_NO_REVERSE},
{X86::VPBROADCASTWZrr, X86::VPBROADCASTWZrm, TB_NO_REVERSE},
{X86::VPBROADCASTWrr, X86::VPBROADCASTWrm, TB_NO_REVERSE},
- {X86::VPCMPESTRIrr, X86::VPCMPESTRIrm, 0},
- {X86::VPCMPESTRMrr, X86::VPCMPESTRMrm, 0},
- {X86::VPCMPISTRIrr, X86::VPCMPISTRIrm, 0},
- {X86::VPCMPISTRMrr, X86::VPCMPISTRMrm, 0},
+ {X86::VPCMPESTRIrri, X86::VPCMPESTRIrmi, 0},
+ {X86::VPCMPESTRMrri, X86::VPCMPESTRMrmi, 0},
+ {X86::VPCMPISTRIrri, X86::VPCMPISTRIrmi, 0},
+ {X86::VPCMPISTRMrri, X86::VPCMPISTRMrmi, 0},
{X86::VPCONFLICTDZ128rr, X86::VPCONFLICTDZ128rm, 0},
{X86::VPCONFLICTDZ256rr, X86::VPCONFLICTDZ256rm, 0},
{X86::VPCONFLICTDZrr, X86::VPCONFLICTDZrm, 0},
More information about the llvm-commits
mailing list