From d2faed9e2860dd40643b01d2feda3d7b7fc851b5 Mon Sep 17 00:00:00 2001 From: Xphalnos <164882787+Xphalnos@users.noreply.github.com> Date: Wed, 1 Jan 2025 18:21:15 +0100 Subject: [PATCH] Implement V_MUL_HI_I32 vector ALU Opcode --- src/shader_recompiler/frontend/translate/translate.h | 1 + src/shader_recompiler/frontend/translate/vector_alu.cpp | 2 ++ 2 files changed, 3 insertions(+) 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: