mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-02-01 05:01:59 +01:00
[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
This commit is contained in:
parent
c7e11e9a4d
commit
51f67824d0
@ -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");
|
||||
}
|
||||
|
@ -563,7 +563,7 @@ multiclass VOPC_CLASS_F16 <string opName> :
|
||||
VOPC_Class_Pseudos <opName, VOPC_I1_F16_I32, 0>;
|
||||
|
||||
multiclass VOPCX_CLASS_F16 <string opName> :
|
||||
VOPC_Class_Pseudos <opName, VOPC_I1_F32_I32, 1>;
|
||||
VOPC_Class_Pseudos <opName, VOPC_I1_F16_I32, 1>;
|
||||
|
||||
multiclass VOPC_CLASS_F32 <string opName> :
|
||||
VOPC_Class_Pseudos <opName, VOPC_I1_F32_I32, 0>;
|
||||
|
@ -400,6 +400,30 @@ v_mad_i64_i32 v[5:6], s[12:13], s1, 0, v[254:255]
|
||||
// VI: v_mad_i64_i32 v[5:6], s[12:13], s1, 0, v[254:255] ; encoding: [0x05,0x0c,0xe9,0xd1,0x01,0x00,0xf9,0x07]
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
|
||||
v_cmp_class_f16_e64 s[10:11], v1, s2
|
||||
// NOSICI: error: instruction not supported on this GPU
|
||||
// VI: v_cmp_class_f16_e64 s[10:11], v1, s2 ; encoding: [0x0a,0x00,0x14,0xd0,0x01,0x05,0x00,0x00]
|
||||
|
||||
v_cmp_class_f32_e64 s[10:11], -v1, s2
|
||||
// SICI: v_cmp_class_f32_e64 s[10:11], -v1, s2 ; encoding: [0x0a,0x00,0x10,0xd1,0x01,0x05,0x00,0x20]
|
||||
// VI: v_cmp_class_f32_e64 s[10:11], -v1, s2 ; encoding: [0x0a,0x00,0x10,0xd0,0x01,0x05,0x00,0x20]
|
||||
|
||||
v_cmp_class_f64_e64 s[10:11], -v[254:255], s2
|
||||
// SICI: v_cmp_class_f64_e64 s[10:11], -v[254:255], s2 ; encoding: [0x0a,0x00,0x50,0xd1,0xfe,0x05,0x00,0x20]
|
||||
// VI: v_cmp_class_f64_e64 s[10:11], -v[254:255], s2 ; encoding: [0x0a,0x00,0x12,0xd0,0xfe,0x05,0x00,0x20]
|
||||
|
||||
v_cmpx_class_f16_e64 s[10:11], v255, s2
|
||||
// NOSICI: error: instruction not supported on this GPU
|
||||
// VI: v_cmpx_class_f16_e64 s[10:11], v255, s2 ; encoding: [0x0a,0x00,0x15,0xd0,0xff,0x05,0x00,0x00]
|
||||
|
||||
v_cmpx_class_f32_e64 s[10:11], 0, s101
|
||||
// SICI: v_cmpx_class_f32_e64 s[10:11], 0, s101 ; encoding: [0x0a,0x00,0x30,0xd1,0x80,0xca,0x00,0x00]
|
||||
// VI: v_cmpx_class_f32_e64 s[10:11], 0, s101 ; encoding: [0x0a,0x00,0x11,0xd0,0x80,0xca,0x00,0x00]
|
||||
|
||||
v_cmpx_class_f64_e64 s[10:11], -v[1:2], s2
|
||||
// SICI: v_cmpx_class_f64_e64 s[10:11], -v[1:2], s2 ; encoding: [0x0a,0x00,0x70,0xd1,0x01,0x05,0x00,0x20]
|
||||
// VI: v_cmpx_class_f64_e64 s[10:11], -v[1:2], s2 ; encoding: [0x0a,0x00,0x13,0xd0,0x01,0x05,0x00,0x20]
|
||||
|
||||
//
|
||||
// Modifier tests:
|
||||
//
|
||||
|
Loading…
x
Reference in New Issue
Block a user