diff options
author | Brox Chen <guochen2@amd.com> | 2025-04-16 11:26:53 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-04-16 11:26:53 -0400 |
commit | 30259076fec0af97e604ca943b61fb686b9b21ef (patch) | |
tree | 7ff2b1359c7dbc4371ebb4ea932fb5e31658cfe0 /llvm/lib | |
parent | 8c04656c457e28680c60e8edc15a4b170b684ca2 (diff) | |
download | llvm-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.cpp | 9 |
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; |