aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib
diff options
context:
space:
mode:
authorBrox Chen <guochen2@amd.com>2025-04-16 11:26:53 -0400
committerGitHub <noreply@github.com>2025-04-16 11:26:53 -0400
commit30259076fec0af97e604ca943b61fb686b9b21ef (patch)
tree7ff2b1359c7dbc4371ebb4ea932fb5e31658cfe0 /llvm/lib
parent8c04656c457e28680c60e8edc15a4b170b684ca2 (diff)
downloadllvm-30259076fec0af97e604ca943b61fb686b9b21ef.zip
llvm-30259076fec0af97e604ca943b61fb686b9b21ef.tar.gz
llvm-30259076fec0af97e604ca943b61fb686b9b21ef.tar.bz2
[AMDGPU][True16][MC] fix opsel for v_cmpx 16bit inst (#135441)
Fixed inst printer so that no opsel is generated for dst reg of cmpx 16bit insts
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp b/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp
index caff8be..677df64 100644
--- a/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp
+++ b/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp
@@ -1220,6 +1220,10 @@ void AMDGPUInstPrinter::printPackedModifier(const MCInst *MI,
(ModIdx != -1) ? MI->getOperand(ModIdx).getImm() : DefaultValue;
}
+ const bool HasDst =
+ (AMDGPU::getNamedOperandIdx(Opc, AMDGPU::OpName::vdst) != -1) ||
+ (AMDGPU::getNamedOperandIdx(Opc, AMDGPU::OpName::sdst) != -1);
+
// Print three values of neg/opsel for wmma instructions (prints 0 when there
// is no src_modifier operand instead of not printing anything).
if (MII.get(MI->getOpcode()).TSFlags & SIInstrFlags::IsSWMMAC ||
@@ -1238,9 +1242,8 @@ void AMDGPUInstPrinter::printPackedModifier(const MCInst *MI,
}
const bool HasDstSel =
- NumOps > 0 &&
- Mod == SISrcMods::OP_SEL_0 &&
- MII.get(MI->getOpcode()).TSFlags & SIInstrFlags::VOP3_OPSEL;
+ HasDst && NumOps > 0 && Mod == SISrcMods::OP_SEL_0 &&
+ MII.get(MI->getOpcode()).TSFlags & SIInstrFlags::VOP3_OPSEL;
const bool IsPacked =
MII.get(MI->getOpcode()).TSFlags & SIInstrFlags::IsPacked;