Skip to content

Commit ee51d85

Browse files
committed
[AMDGPU][GFX8][GFX9] Corrected predicate of v_*_co_u32 aliases
Reviewers: rampitec, arsenm Differential Revision: https://reviews.llvm.org/D61905 llvm-svn: 360702
1 parent 2423b7d commit ee51d85

File tree

2 files changed

+30
-1
lines changed

2 files changed

+30
-1
lines changed

llvm/lib/Target/AMDGPU/VOP2Instructions.td

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1340,13 +1340,18 @@ def : SI2_VI3Alias <"v_cvt_pkrtz_f16_f32", V_CVT_PKRTZ_F16_F32_e64_vi>;
13401340

13411341
defm : VOP2eInstAliases<V_CNDMASK_B32_e32, V_CNDMASK_B32_e32_vi>;
13421342

1343+
} // End SubtargetPredicate = isGFX8GFX9
1344+
1345+
let SubtargetPredicate = isGFX9Only in {
1346+
13431347
defm : VOP2bInstAliases<V_ADD_I32_e32, V_ADD_CO_U32_e32_gfx9, "v_add_co_u32">;
13441348
defm : VOP2bInstAliases<V_ADDC_U32_e32, V_ADDC_CO_U32_e32_gfx9, "v_addc_co_u32">;
13451349
defm : VOP2bInstAliases<V_SUB_I32_e32, V_SUB_CO_U32_e32_gfx9, "v_sub_co_u32">;
13461350
defm : VOP2bInstAliases<V_SUBB_U32_e32, V_SUBB_CO_U32_e32_gfx9, "v_subb_co_u32">;
13471351
defm : VOP2bInstAliases<V_SUBREV_I32_e32, V_SUBREV_CO_U32_e32_gfx9, "v_subrev_co_u32">;
13481352
defm : VOP2bInstAliases<V_SUBBREV_U32_e32, V_SUBBREV_CO_U32_e32_gfx9, "v_subbrev_co_u32">;
1349-
} // End SubtargetPredicate = isGFX8GFX9
1353+
1354+
} // End SubtargetPredicate = isGFX9Only
13501355

13511356
let SubtargetPredicate = HasDLInsts in {
13521357

llvm/test/MC/AMDGPU/vop3-gfx9.s

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -491,6 +491,30 @@ v_subrev_co_u32 v84, vcc, v13, v31 clamp
491491
// GFX9: v_subrev_co_u32_e64 v84, vcc, v13, v31 clamp ; encoding: [0x54,0xea,0x1b,0xd1,0x0d,0x3f,0x02,0x00]
492492
// NOVI: error:
493493

494+
v_addc_co_u32 v84, vcc, v13, v31, vcc
495+
// GFX9: v_addc_co_u32_e32 v84, vcc, v13, v31, vcc ; encoding: [0x0d,0x3f,0xa8,0x38]
496+
// NOVI: error: instruction not supported on this GPU
497+
498+
v_subb_co_u32 v84, vcc, v13, v31, vcc
499+
// GFX9: v_subb_co_u32_e32 v84, vcc, v13, v31, vcc ; encoding: [0x0d,0x3f,0xa8,0x3a]
500+
// NOVI: error: instruction not supported on this GPU
501+
502+
v_subbrev_co_u32 v84, vcc, v13, v31, vcc
503+
// GFX9: v_subbrev_co_u32_e32 v84, vcc, v13, v31, vcc ; encoding: [0x0d,0x3f,0xa8,0x3c]
504+
// NOVI: error: instruction not supported on this GPU
505+
506+
v_add_co_u32 v84, vcc, v13, v31
507+
// GFX9: v_add_co_u32_e32 v84, vcc, v13, v31 ; encoding: [0x0d,0x3f,0xa8,0x32]
508+
// NOVI: error: instruction not supported on this GPU
509+
510+
v_sub_co_u32 v84, vcc, v13, v31
511+
// GFX9: v_sub_co_u32_e32 v84, vcc, v13, v31 ; encoding: [0x0d,0x3f,0xa8,0x34]
512+
// NOVI: error: instruction not supported on this GPU
513+
514+
v_subrev_co_u32 v84, vcc, v13, v31
515+
// GFX9: v_subrev_co_u32_e32 v84, vcc, v13, v31 ; encoding: [0x0d,0x3f,0xa8,0x36]
516+
// NOVI: error: instruction not supported on this GPU
517+
494518
//===----------------------------------------------------------------------===//
495519
// Validate register size checks (bug 37943)
496520
//===----------------------------------------------------------------------===//

0 commit comments

Comments
 (0)