Index: lib/Target/AMDGPU/VOP2Instructions.td =================================================================== --- lib/Target/AMDGPU/VOP2Instructions.td +++ lib/Target/AMDGPU/VOP2Instructions.td @@ -128,15 +128,20 @@ multiclass VOP2Inst { + string revOp = opName, + bit GFX9Renamed = 0> { - def _e32 : VOP2_Pseudo , - Commutable_REV; + let renamedInGFX9 = GFX9Renamed in { - def _e64 : VOP3_Pseudo .ret>, - Commutable_REV; + def _e32 : VOP2_Pseudo , + Commutable_REV; - def _sdwa : VOP2_SDWA_Pseudo ; + def _e64 : VOP3_Pseudo .ret>, + Commutable_REV; + + def _sdwa : VOP2_SDWA_Pseudo ; + + } } multiclass VOP2bInst ; -defm V_SUB_U32 : VOP2Inst <"v_sub_u32", VOP_I32_I32_I32>; -defm V_SUBREV_U32 : VOP2Inst <"v_subrev_u32", VOP_I32_I32_I32, null_frag, "v_sub_u32">; +defm V_ADD_U32 : VOP2Inst <"v_add_u32", VOP_I32_I32_I32, null_frag, "v_add_u32", 1>; +defm V_SUB_U32 : VOP2Inst <"v_sub_u32", VOP_I32_I32_I32, null_frag, "v_sub_u32", 1>; +defm V_SUBREV_U32 : VOP2Inst <"v_subrev_u32", VOP_I32_I32_I32, null_frag, "v_sub_u32", 1>; } } // End isCommutable = 1