diff --git a/src/shader_recompiler/frontend/translate/translate.h b/src/shader_recompiler/frontend/translate/translate.h index e8584ec2f..fa6617f05 100644 --- a/src/shader_recompiler/frontend/translate/translate.h +++ b/src/shader_recompiler/frontend/translate/translate.h @@ -247,6 +247,7 @@ public: void V_MAX_F64(const GcnInst& inst); void V_MUL_LO_U32(const GcnInst& inst); void V_MUL_HI_U32(bool is_signed, const GcnInst& inst); + void V_MUL_HI_I32(bool is_signed, const GcnInst& inst); void V_MAD_U64_U32(const GcnInst& inst); // Vector interpolation diff --git a/src/shader_recompiler/frontend/translate/vector_alu.cpp b/src/shader_recompiler/frontend/translate/vector_alu.cpp index 2b32ca2ce..ede13002c 100644 --- a/src/shader_recompiler/frontend/translate/vector_alu.cpp +++ b/src/shader_recompiler/frontend/translate/vector_alu.cpp @@ -387,6 +387,8 @@ void Translator::EmitVectorAlu(const GcnInst& inst) { return V_MUL_LO_U32(inst); case Opcode::V_MUL_HI_U32: return V_MUL_HI_U32(false, inst); + case Opcode::V_MUL_HI_I32: + return V_MUL_HI_U32(false, inst); case Opcode::V_MUL_LO_I32: return V_MUL_LO_U32(inst); case Opcode::V_MAD_U64_U32: