Skip to content

Commit

Permalink
[AMDGPU][GFX8][GFX9] Corrected predicate of v_*_co_u32 aliases
Browse files Browse the repository at this point in the history
Reviewers: rampitec, arsenm

Differential Revision: https://reviews.llvm.org/D61905

llvm-svn: 360702
  • Loading branch information
dpreobra authored and MrSidims committed May 24, 2019
1 parent 622fca5 commit c90ed43
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 1 deletion.
7 changes: 6 additions & 1 deletion llvm/lib/Target/AMDGPU/VOP2Instructions.td
Expand Up @@ -1340,13 +1340,18 @@ def : SI2_VI3Alias <"v_cvt_pkrtz_f16_f32", V_CVT_PKRTZ_F16_F32_e64_vi>;

defm : VOP2eInstAliases<V_CNDMASK_B32_e32, V_CNDMASK_B32_e32_vi>;

} // End SubtargetPredicate = isGFX8GFX9

let SubtargetPredicate = isGFX9Only in {

defm : VOP2bInstAliases<V_ADD_I32_e32, V_ADD_CO_U32_e32_gfx9, "v_add_co_u32">;
defm : VOP2bInstAliases<V_ADDC_U32_e32, V_ADDC_CO_U32_e32_gfx9, "v_addc_co_u32">;
defm : VOP2bInstAliases<V_SUB_I32_e32, V_SUB_CO_U32_e32_gfx9, "v_sub_co_u32">;
defm : VOP2bInstAliases<V_SUBB_U32_e32, V_SUBB_CO_U32_e32_gfx9, "v_subb_co_u32">;
defm : VOP2bInstAliases<V_SUBREV_I32_e32, V_SUBREV_CO_U32_e32_gfx9, "v_subrev_co_u32">;
defm : VOP2bInstAliases<V_SUBBREV_U32_e32, V_SUBBREV_CO_U32_e32_gfx9, "v_subbrev_co_u32">;
} // End SubtargetPredicate = isGFX8GFX9

} // End SubtargetPredicate = isGFX9Only

let SubtargetPredicate = HasDLInsts in {

Expand Down
24 changes: 24 additions & 0 deletions llvm/test/MC/AMDGPU/vop3-gfx9.s
Expand Up @@ -491,6 +491,30 @@ v_subrev_co_u32 v84, vcc, v13, v31 clamp
// GFX9: v_subrev_co_u32_e64 v84, vcc, v13, v31 clamp ; encoding: [0x54,0xea,0x1b,0xd1,0x0d,0x3f,0x02,0x00]
// NOVI: error:

v_addc_co_u32 v84, vcc, v13, v31, vcc
// GFX9: v_addc_co_u32_e32 v84, vcc, v13, v31, vcc ; encoding: [0x0d,0x3f,0xa8,0x38]
// NOVI: error: instruction not supported on this GPU

v_subb_co_u32 v84, vcc, v13, v31, vcc
// GFX9: v_subb_co_u32_e32 v84, vcc, v13, v31, vcc ; encoding: [0x0d,0x3f,0xa8,0x3a]
// NOVI: error: instruction not supported on this GPU

v_subbrev_co_u32 v84, vcc, v13, v31, vcc
// GFX9: v_subbrev_co_u32_e32 v84, vcc, v13, v31, vcc ; encoding: [0x0d,0x3f,0xa8,0x3c]
// NOVI: error: instruction not supported on this GPU

v_add_co_u32 v84, vcc, v13, v31
// GFX9: v_add_co_u32_e32 v84, vcc, v13, v31 ; encoding: [0x0d,0x3f,0xa8,0x32]
// NOVI: error: instruction not supported on this GPU

v_sub_co_u32 v84, vcc, v13, v31
// GFX9: v_sub_co_u32_e32 v84, vcc, v13, v31 ; encoding: [0x0d,0x3f,0xa8,0x34]
// NOVI: error: instruction not supported on this GPU

v_subrev_co_u32 v84, vcc, v13, v31
// GFX9: v_subrev_co_u32_e32 v84, vcc, v13, v31 ; encoding: [0x0d,0x3f,0xa8,0x36]
// NOVI: error: instruction not supported on this GPU

//===----------------------------------------------------------------------===//
// Validate register size checks (bug 37943)
//===----------------------------------------------------------------------===//
Expand Down

0 comments on commit c90ed43

Please sign in to comment.