From 5ac9fd64a3fe21210cf17c0517a39feb0063c106 Mon Sep 17 00:00:00 2001 From: Dmitry Preobrazhensky Date: Wed, 12 Apr 2017 16:31:18 +0000 Subject: [AMDGPU][MC] Corrected parsing of v_cmp_class* and v_cmpx_class* Fixed bug 32565: https://bugs.llvm.org//show_bug.cgi?id=32565 Reviewers: vpykhtin Differential Revision: https://reviews.llvm.org/D31820 llvm-svn: 300073 --- llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp | 4 +++- llvm/lib/Target/AMDGPU/VOPCInstructions.td | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) (limited to 'llvm/lib') diff --git a/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp b/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp index 4ba4474eb60..961f7186f37 100644 --- a/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp +++ b/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp @@ -3702,8 +3702,10 @@ void AMDGPUAsmParser::cvtVOP3Impl(MCInst &Inst, const OperandVector &Operands, AMDGPUOperand &Op = ((AMDGPUOperand &)*Operands[I]); if (isRegOrImmWithInputMods(Desc, Inst.getNumOperands())) { Op.addRegOrImmWithFPInputModsOperands(Inst, 2); - } else if (Op.isImm()) { + } else if (Op.isImmModifier()) { OptionalIdx[Op.getImmTy()] = I; + } else if (Op.isRegOrImm()) { + Op.addRegOrImmOperands(Inst, 1); } else { llvm_unreachable("unhandled operand type"); } diff --git a/llvm/lib/Target/AMDGPU/VOPCInstructions.td b/llvm/lib/Target/AMDGPU/VOPCInstructions.td index c64a18aaee0..a3550a63677 100644 --- a/llvm/lib/Target/AMDGPU/VOPCInstructions.td +++ b/llvm/lib/Target/AMDGPU/VOPCInstructions.td @@ -563,7 +563,7 @@ multiclass VOPC_CLASS_F16 : VOPC_Class_Pseudos ; multiclass VOPCX_CLASS_F16 : - VOPC_Class_Pseudos ; + VOPC_Class_Pseudos ; multiclass VOPC_CLASS_F32 : VOPC_Class_Pseudos ; -- cgit v1.2.3