arch-vega: Add decoding for implemented insts

Certain instructions were implemented in instructions.cc,
but weren't actually being decoded by the decoder, causing
the decoder to return nullptr for valid instructions.

This patch fixes the decoder to return the proper instruction
class for implemented instructions

Change-Id: I8d8525a1c435147017cb38d9df8e1675986ef04b
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/47521
Reviewed-by: Matt Sinclair <mattdsinclair@gmail.com>
Reviewed-by: Matthew Poremba <matthew.poremba@amd.com>
Reviewed-by: Alex Dutu <alexandru.dutu@amd.com>
Maintainer: Matt Sinclair <mattdsinclair@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
diff --git a/src/arch/amdgpu/vega/decoder.cc b/src/arch/amdgpu/vega/decoder.cc
index 359e125..e4b7922 100644
--- a/src/arch/amdgpu/vega/decoder.cc
+++ b/src/arch/amdgpu/vega/decoder.cc
@@ -4158,19 +4158,19 @@
     GPUStaticInst*
     Decoder::decode_OP_VOP2__V_ADD_U32(MachInst iFmt)
     {
-        return nullptr;
+        return new Inst_VOP2__V_ADD_U32(&iFmt->iFmt_VOP2);
     }
 
     GPUStaticInst*
     Decoder::decode_OP_VOP2__V_SUB_U32(MachInst iFmt)
     {
-        return nullptr;
+        return new Inst_VOP2__V_SUB_U32(&iFmt->iFmt_VOP2);
     }
 
     GPUStaticInst*
     Decoder::decode_OP_VOP2__V_SUBREV_U32(MachInst iFmt)
     {
-        return nullptr;
+        return new Inst_VOP2__V_SUBREV_U32(&iFmt->iFmt_VOP2);
     }
 
     GPUStaticInst*
@@ -4446,7 +4446,7 @@
     GPUStaticInst*
     Decoder::decode_OP_SOP2__S_MUL_HI_I32(MachInst iFmt)
     {
-        return nullptr;
+        return new Inst_SOP2__S_MUL_I32(&iFmt->iFmt_SOP2);
     }
 
     GPUStaticInst*
@@ -6942,31 +6942,31 @@
     GPUStaticInst*
     Decoder::decode_OPU_VOP3__V_MAD_F16(MachInst iFmt)
     {
-        return nullptr;
+        return new Inst_VOP3__V_MAD_F16(&iFmt->iFmt_VOP3A);
     }
 
     GPUStaticInst*
     Decoder::decode_OPU_VOP3__V_MAD_U16(MachInst iFmt)
     {
-        return nullptr;
+        return new Inst_VOP3__V_MAD_U16(&iFmt->iFmt_VOP3A);
     }
 
     GPUStaticInst*
     Decoder::decode_OPU_VOP3__V_MAD_I16(MachInst iFmt)
     {
-        return nullptr;
+        return new Inst_VOP3__V_MAD_I16(&iFmt->iFmt_VOP3A);
     }
 
     GPUStaticInst*
     Decoder::decode_OPU_VOP3__V_FMA_F16(MachInst iFmt)
     {
-        return nullptr;
+        return new Inst_VOP3__V_FMA_F16(&iFmt->iFmt_VOP3A);
     }
 
     GPUStaticInst*
     Decoder::decode_OPU_VOP3__V_DIV_FIXUP_F16(MachInst iFmt)
     {
-        return nullptr;
+        return new Inst_VOP3__V_DIV_FIXUP_F16(&iFmt->iFmt_VOP3A);
     }
 
     GPUStaticInst*