forked from OSchip/llvm-project
[AMDGPU][MC][GFX9] Added instructions s_mul_hi_*32, s_lshl*_add_u32
See bugs 36841: https://bugs.llvm.org/show_bug.cgi?id=36841 36842: https://bugs.llvm.org/show_bug.cgi?id=36842 Differential Revision: https://reviews.llvm.org/D45251 Reviewers: artem.tamazov, arsenm, timcorringham llvm-svn: 329562
This commit is contained in:
parent
0047efdd1e
commit
2f8e146ad3
|
@ -495,6 +495,16 @@ let SubtargetPredicate = isGFX9 in {
|
|||
def S_PACK_LL_B32_B16 : SOP2_32<"s_pack_ll_b32_b16">;
|
||||
def S_PACK_LH_B32_B16 : SOP2_32<"s_pack_lh_b32_b16">;
|
||||
def S_PACK_HH_B32_B16 : SOP2_32<"s_pack_hh_b32_b16">;
|
||||
|
||||
let Defs = [SCC] in {
|
||||
def S_LSHL1_ADD_U32 : SOP2_32<"s_lshl1_add_u32">;
|
||||
def S_LSHL2_ADD_U32 : SOP2_32<"s_lshl2_add_u32">;
|
||||
def S_LSHL3_ADD_U32 : SOP2_32<"s_lshl3_add_u32">;
|
||||
def S_LSHL4_ADD_U32 : SOP2_32<"s_lshl4_add_u32">;
|
||||
} // End Defs = [SCC]
|
||||
|
||||
def S_MUL_HI_U32 : SOP2_32<"s_mul_hi_u32">;
|
||||
def S_MUL_HI_I32 : SOP2_32<"s_mul_hi_i32">;
|
||||
}
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
@ -1354,3 +1364,14 @@ def S_ORN1_SAVEEXEC_B64_vi : SOP1_Real_vi<0x34, S_ORN1_SAVEEXEC_B64>;
|
|||
def S_ANDN1_WREXEC_B64_vi : SOP1_Real_vi<0x35, S_ANDN1_WREXEC_B64>;
|
||||
def S_ANDN2_WREXEC_B64_vi : SOP1_Real_vi<0x36, S_ANDN2_WREXEC_B64>;
|
||||
def S_BITREPLICATE_B64_B32_vi : SOP1_Real_vi<0x37, S_BITREPLICATE_B64_B32>;
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// SOP2 - GFX9.
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
def S_LSHL1_ADD_U32_vi : SOP2_Real_vi<0x2e, S_LSHL1_ADD_U32>;
|
||||
def S_LSHL2_ADD_U32_vi : SOP2_Real_vi<0x2f, S_LSHL2_ADD_U32>;
|
||||
def S_LSHL3_ADD_U32_vi : SOP2_Real_vi<0x30, S_LSHL3_ADD_U32>;
|
||||
def S_LSHL4_ADD_U32_vi : SOP2_Real_vi<0x31, S_LSHL4_ADD_U32>;
|
||||
def S_MUL_HI_U32_vi : SOP2_Real_vi<0x2c, S_MUL_HI_U32>;
|
||||
def S_MUL_HI_I32_vi : SOP2_Real_vi<0x2d, S_MUL_HI_I32>;
|
||||
|
|
|
@ -1,8 +1,14 @@
|
|||
// RUN: llvm-mc -arch=amdgcn -show-encoding %s | FileCheck --check-prefix=GCN --check-prefix=SICI %s
|
||||
// RUN: llvm-mc -arch=amdgcn -mcpu=tahiti -show-encoding %s | FileCheck --check-prefix=GCN --check-prefix=SICI %s
|
||||
// RUN: llvm-mc -arch=amdgcn -mcpu=bonaire -show-encoding %s | FileCheck --check-prefix=GCN --check-prefix=SICI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=fiji -show-encoding %s | FileCheck --check-prefix=GCN --check-prefix=VI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=fiji -show-encoding %s 2>&1 | FileCheck --check-prefix=NOVI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -show-encoding %s | FileCheck --check-prefix=GCN --check-prefix=SICI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti -show-encoding %s | FileCheck --check-prefix=GCN --check-prefix=SICI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=bonaire -show-encoding %s | FileCheck --check-prefix=GCN --check-prefix=SICI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=fiji -show-encoding %s | FileCheck --check-prefix=GCN --check-prefix=GFX89 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding %s | FileCheck --check-prefix=GCN --check-prefix=GFX89 --check-prefix=GFX9 %s
|
||||
|
||||
// RUN: not llvm-mc -arch=amdgcn -show-encoding %s 2>&1 | FileCheck --check-prefix=NOSICIVI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti -show-encoding %s 2>&1 | FileCheck --check-prefix=NOSICIVI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=bonaire -show-encoding %s 2>&1 | FileCheck --check-prefix=NOSICIVI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=fiji -show-encoding %s 2>&1 | FileCheck --check-prefix=NOSICIVI --check-prefix=NOVI --check-prefix=NOGFX89 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding %s 2>&1 | FileCheck --check-prefix=NOGFX89 %s
|
||||
|
||||
s_add_u32 s1, s2, s3
|
||||
// GCN: s_add_u32 s1, s2, s3 ; encoding: [0x02,0x03,0x01,0x80]
|
||||
|
@ -42,136 +48,208 @@ s_cselect_b64 s[2:3], s[4:5], s[6:7]
|
|||
|
||||
s_and_b32 s2, s4, s6
|
||||
// SICI: s_and_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x87]
|
||||
// VI: s_and_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x86]
|
||||
// GFX89: s_and_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x86]
|
||||
|
||||
s_and_b64 s[2:3], s[4:5], s[6:7]
|
||||
// SICI: s_and_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x87]
|
||||
// VI: s_and_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x86]
|
||||
// GFX89: s_and_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x86]
|
||||
|
||||
s_or_b32 s2, s4, s6
|
||||
// SICI: s_or_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x88]
|
||||
// VI: s_or_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x87]
|
||||
// GFX89: s_or_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x87]
|
||||
|
||||
s_or_b64 s[2:3], s[4:5], s[6:7]
|
||||
// SICI: s_or_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x88]
|
||||
// VI: s_or_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x87]
|
||||
// GFX89: s_or_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x87]
|
||||
|
||||
s_xor_b32 s2, s4, s6
|
||||
// SICI: s_xor_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x89]
|
||||
// VI: s_xor_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x88]
|
||||
// GFX89: s_xor_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x88]
|
||||
|
||||
s_xor_b64 s[2:3], s[4:5], s[6:7]
|
||||
// SICI: s_xor_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x89]
|
||||
// VI: s_xor_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x88]
|
||||
// GFX89: s_xor_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x88]
|
||||
|
||||
s_andn2_b32 s2, s4, s6
|
||||
// SICI: s_andn2_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x8a]
|
||||
// VI: s_andn2_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x89]
|
||||
// GFX89: s_andn2_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x89]
|
||||
|
||||
s_andn2_b64 s[2:3], s[4:5], s[6:7]
|
||||
// SICI: s_andn2_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x8a]
|
||||
// VI: s_andn2_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x89]
|
||||
// GFX89: s_andn2_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x89]
|
||||
|
||||
s_orn2_b32 s2, s4, s6
|
||||
// SICI: s_orn2_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x8b]
|
||||
// VI: s_orn2_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x8a]
|
||||
// GFX89: s_orn2_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x8a]
|
||||
|
||||
s_orn2_b64 s[2:3], s[4:5], s[6:7]
|
||||
// SICI: s_orn2_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x8b]
|
||||
// VI: s_orn2_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x8a]
|
||||
// GFX89: s_orn2_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x8a]
|
||||
|
||||
s_nand_b32 s2, s4, s6
|
||||
// SICI: s_nand_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x8c]
|
||||
// VI: s_nand_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x8b]
|
||||
// GFX89: s_nand_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x8b]
|
||||
|
||||
s_nand_b64 s[2:3], s[4:5], s[6:7]
|
||||
// SICI: s_nand_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x8c]
|
||||
// VI: s_nand_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x8b]
|
||||
// GFX89: s_nand_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x8b]
|
||||
|
||||
s_nor_b32 s2, s4, s6
|
||||
// SICI: s_nor_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x8d]
|
||||
// VI: s_nor_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x8c]
|
||||
// GFX89: s_nor_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x8c]
|
||||
|
||||
s_nor_b64 s[2:3], s[4:5], s[6:7]
|
||||
// SICI: s_nor_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x8d]
|
||||
// VI: s_nor_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x8c]
|
||||
// GFX89: s_nor_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x8c]
|
||||
|
||||
s_xnor_b32 s2, s4, s6
|
||||
// SICI: s_xnor_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x8e]
|
||||
// VI: s_xnor_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x8d]
|
||||
// GFX89: s_xnor_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x8d]
|
||||
|
||||
s_xnor_b64 s[2:3], s[4:5], s[6:7]
|
||||
// SICI: s_xnor_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x8e]
|
||||
// VI: s_xnor_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x8d]
|
||||
// GFX89: s_xnor_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x8d]
|
||||
|
||||
s_lshl_b32 s2, s4, s6
|
||||
// SICI: s_lshl_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x8f]
|
||||
// VI: s_lshl_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x8e]
|
||||
// GFX89: s_lshl_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x8e]
|
||||
|
||||
s_lshl_b64 s[2:3], s[4:5], s6
|
||||
// SICI: s_lshl_b64 s[2:3], s[4:5], s6 ; encoding: [0x04,0x06,0x82,0x8f]
|
||||
// VI: s_lshl_b64 s[2:3], s[4:5], s6 ; encoding: [0x04,0x06,0x82,0x8e]
|
||||
// GFX89: s_lshl_b64 s[2:3], s[4:5], s6 ; encoding: [0x04,0x06,0x82,0x8e]
|
||||
|
||||
s_lshr_b32 s2, s4, s6
|
||||
// SICI: s_lshr_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x90]
|
||||
// VI: s_lshr_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x8f]
|
||||
// GFX89: s_lshr_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x8f]
|
||||
|
||||
s_lshr_b64 s[2:3], s[4:5], s6
|
||||
// SICI: s_lshr_b64 s[2:3], s[4:5], s6 ; encoding: [0x04,0x06,0x82,0x90]
|
||||
// VI: s_lshr_b64 s[2:3], s[4:5], s6 ; encoding: [0x04,0x06,0x82,0x8f]
|
||||
// GFX89: s_lshr_b64 s[2:3], s[4:5], s6 ; encoding: [0x04,0x06,0x82,0x8f]
|
||||
|
||||
s_ashr_i32 s2, s4, s6
|
||||
// SICI: s_ashr_i32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x91]
|
||||
// VI: s_ashr_i32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x90]
|
||||
// GFX89: s_ashr_i32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x90]
|
||||
|
||||
s_ashr_i64 s[2:3], s[4:5], s6
|
||||
// SICI: s_ashr_i64 s[2:3], s[4:5], s6 ; encoding: [0x04,0x06,0x82,0x91]
|
||||
// VI: s_ashr_i64 s[2:3], s[4:5], s6 ; encoding: [0x04,0x06,0x82,0x90]
|
||||
// GFX89: s_ashr_i64 s[2:3], s[4:5], s6 ; encoding: [0x04,0x06,0x82,0x90]
|
||||
|
||||
s_bfm_b32 s2, s4, s6
|
||||
// SICI: s_bfm_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x92]
|
||||
// VI: s_bfm_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x91]
|
||||
// GFX89: s_bfm_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x91]
|
||||
|
||||
s_bfm_b64 s[2:3], s4, s6
|
||||
// SICI: s_bfm_b64 s[2:3], s4, s6 ; encoding: [0x04,0x06,0x82,0x92]
|
||||
// VI: s_bfm_b64 s[2:3], s4, s6 ; encoding: [0x04,0x06,0x82,0x91]
|
||||
// GFX89: s_bfm_b64 s[2:3], s4, s6 ; encoding: [0x04,0x06,0x82,0x91]
|
||||
|
||||
s_mul_i32 s2, s4, s6
|
||||
// SICI: s_mul_i32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x93]
|
||||
// VI: s_mul_i32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x92]
|
||||
// GFX89: s_mul_i32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x92]
|
||||
|
||||
s_bfe_u32 s2, s4, s6
|
||||
// SICI: s_bfe_u32 s2, s4, s6 ; encoding: [0x04,0x06,0x82,0x93]
|
||||
// VI: s_bfe_u32 s2, s4, s6 ; encoding: [0x04,0x06,0x82,0x92]
|
||||
// GFX89: s_bfe_u32 s2, s4, s6 ; encoding: [0x04,0x06,0x82,0x92]
|
||||
|
||||
s_bfe_i32 s2, s4, s6
|
||||
// SICI: s_bfe_i32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x94]
|
||||
// VI: s_bfe_i32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x93]
|
||||
// GFX89: s_bfe_i32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x93]
|
||||
|
||||
s_bfe_u64 s[2:3], s[4:5], s6
|
||||
// SICI: s_bfe_u64 s[2:3], s[4:5], s6 ; encoding: [0x04,0x06,0x82,0x94]
|
||||
// VI: s_bfe_u64 s[2:3], s[4:5], s6 ; encoding: [0x04,0x06,0x82,0x93]
|
||||
// GFX89: s_bfe_u64 s[2:3], s[4:5], s6 ; encoding: [0x04,0x06,0x82,0x93]
|
||||
|
||||
s_bfe_i64 s[2:3], s[4:5], s6
|
||||
// SICI: s_bfe_i64 s[2:3], s[4:5], s6 ; encoding: [0x04,0x06,0x02,0x95]
|
||||
// VI: s_bfe_i64 s[2:3], s[4:5], s6 ; encoding: [0x04,0x06,0x02,0x94]
|
||||
// GFX89: s_bfe_i64 s[2:3], s[4:5], s6 ; encoding: [0x04,0x06,0x02,0x94]
|
||||
|
||||
s_cbranch_g_fork s[4:5], s[6:7]
|
||||
// SICI: s_cbranch_g_fork s[4:5], s[6:7] ; encoding: [0x04,0x06,0x80,0x95]
|
||||
// VI: s_cbranch_g_fork s[4:5], s[6:7] ; encoding: [0x04,0x06,0x80,0x94]
|
||||
// GFX89: s_cbranch_g_fork s[4:5], s[6:7] ; encoding: [0x04,0x06,0x80,0x94]
|
||||
|
||||
s_cbranch_g_fork 1, s[6:7]
|
||||
// SICI: s_cbranch_g_fork 1, s[6:7] ; encoding: [0x81,0x06,0x80,0x95]
|
||||
// VI: s_cbranch_g_fork 1, s[6:7] ; encoding: [0x81,0x06,0x80,0x94]
|
||||
// GFX89: s_cbranch_g_fork 1, s[6:7] ; encoding: [0x81,0x06,0x80,0x94]
|
||||
|
||||
s_cbranch_g_fork s[6:7], 2
|
||||
// SICI: s_cbranch_g_fork s[6:7], 2 ; encoding: [0x06,0x82,0x80,0x95]
|
||||
// VI: s_cbranch_g_fork s[6:7], 2 ; encoding: [0x06,0x82,0x80,0x94]
|
||||
// GFX89: s_cbranch_g_fork s[6:7], 2 ; encoding: [0x06,0x82,0x80,0x94]
|
||||
|
||||
s_absdiff_i32 s2, s4, s6
|
||||
// SICI: s_absdiff_i32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x96]
|
||||
// VI: s_absdiff_i32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x95]
|
||||
// GFX89: s_absdiff_i32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x95]
|
||||
|
||||
s_add_u32 s101, s102, s103
|
||||
// SICI: s_add_u32 s101, s102, s103 ; encoding: [0x66,0x67,0x65,0x80]
|
||||
// NOVI: error: not a valid operand
|
||||
// NOGFX89: error: not a valid operand
|
||||
|
||||
s_lshl1_add_u32 s5, s1, s2
|
||||
// GFX9: s_lshl1_add_u32 s5, s1, s2 ; encoding: [0x01,0x02,0x05,0x97]
|
||||
// NOSICIVI: error
|
||||
|
||||
s_lshl1_add_u32 s5, -1, s2
|
||||
// GFX9: s_lshl1_add_u32 s5, -1, s2 ; encoding: [0xc1,0x02,0x05,0x97]
|
||||
// NOSICIVI: error
|
||||
|
||||
s_lshl1_add_u32 s5, s1, 0
|
||||
// GFX9: s_lshl1_add_u32 s5, s1, 0 ; encoding: [0x01,0x80,0x05,0x97]
|
||||
// NOSICIVI: error
|
||||
|
||||
s_lshl1_add_u32 s5, s1, 0x3f717273
|
||||
// GFX9: s_lshl1_add_u32 s5, s1, 0x3f717273 ; encoding: [0x01,0xff,0x05,0x97,0x73,0x72,0x71,0x3f]
|
||||
// NOSICIVI: error
|
||||
|
||||
s_lshl2_add_u32 s101, s1, s2
|
||||
// GFX9: s_lshl2_add_u32 s101, s1, s2 ; encoding: [0x01,0x02,0xe5,0x97]
|
||||
// NOSICIVI: error
|
||||
|
||||
s_lshl2_add_u32 s5, 0xaf123456, s2
|
||||
// GFX9: s_lshl2_add_u32 s5, 0xaf123456, s2 ; encoding: [0xff,0x02,0x85,0x97,0x56,0x34,0x12,0xaf]
|
||||
// NOSICIVI: error
|
||||
|
||||
s_lshl3_add_u32 s5, 0x3f717273, s2
|
||||
// GFX9: s_lshl3_add_u32 s5, 0x3f717273, s2 ; encoding: [0xff,0x02,0x05,0x98,0x73,0x72,0x71,0x3f]
|
||||
// NOSICIVI: error
|
||||
|
||||
s_lshl3_add_u32 s5, s1, s101
|
||||
// GFX9: s_lshl3_add_u32 s5, s1, s101 ; encoding: [0x01,0x65,0x05,0x98]
|
||||
// NOSICIVI: error
|
||||
|
||||
s_lshl4_add_u32 s5, s1, 0xaf123456
|
||||
// GFX9: s_lshl4_add_u32 s5, s1, 0xaf123456 ; encoding: [0x01,0xff,0x85,0x98,0x56,0x34,0x12,0xaf]
|
||||
// NOSICIVI: error
|
||||
|
||||
s_lshl4_add_u32 s5, -1, s2
|
||||
// GFX9: s_lshl4_add_u32 s5, -1, s2 ; encoding: [0xc1,0x02,0x85,0x98]
|
||||
// NOSICIVI: error
|
||||
|
||||
s_mul_hi_i32 s5, s101, s2
|
||||
// GFX9: s_mul_hi_i32 s5, s101, s2 ; encoding: [0x65,0x02,0x85,0x96]
|
||||
// NOSICIVI: error
|
||||
|
||||
s_mul_hi_i32 s5, 0, s2
|
||||
// GFX9: s_mul_hi_i32 s5, 0, s2 ; encoding: [0x80,0x02,0x85,0x96]
|
||||
// NOSICIVI: error
|
||||
|
||||
s_mul_hi_i32 s5, 0x3f717273, s2
|
||||
// GFX9: s_mul_hi_i32 s5, 0x3f717273, s2 ; encoding: [0xff,0x02,0x85,0x96,0x73,0x72,0x71,0x3f]
|
||||
// NOSICIVI: error
|
||||
|
||||
s_mul_hi_i32 s5, s1, s101
|
||||
// GFX9: s_mul_hi_i32 s5, s1, s101 ; encoding: [0x01,0x65,0x85,0x96]
|
||||
// NOSICIVI: error
|
||||
|
||||
s_mul_hi_i32 s5, s1, 0
|
||||
// GFX9: s_mul_hi_i32 s5, s1, 0 ; encoding: [0x01,0x80,0x85,0x96]
|
||||
// NOSICIVI: error
|
||||
|
||||
s_mul_hi_u32 s5, s1, 0x3f717273
|
||||
// GFX9: s_mul_hi_u32 s5, s1, 0x3f717273 ; encoding: [0x01,0xff,0x05,0x96,0x73,0x72,0x71,0x3f]
|
||||
// NOSICIVI: error
|
||||
|
||||
s_mul_hi_u32 s5, s1, s101
|
||||
// GFX9: s_mul_hi_u32 s5, s1, s101 ; encoding: [0x01,0x65,0x05,0x96]
|
||||
// NOSICIVI: error
|
||||
|
||||
s_mul_hi_u32 s5, s1, 0
|
||||
// GFX9: s_mul_hi_u32 s5, s1, 0 ; encoding: [0x01,0x80,0x05,0x96]
|
||||
// NOSICIVI: error
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
# RUN: llvm-mc -arch=amdgcn -mcpu=gfx900 -disassemble -show-encoding < %s | FileCheck %s -check-prefix=GFX9
|
||||
|
||||
# GFX9: s_lshl1_add_u32 s5, 0, s2 ; encoding: [0x80,0x02,0x05,0x97]
|
||||
0x80,0x02,0x05,0x97
|
||||
|
||||
# GFX9: s_lshl2_add_u32 s5, 0xaf123456, s2 ; encoding: [0xff,0x02,0x85,0x97,0x56,0x34,0x12,0xaf]
|
||||
0xff,0x02,0x85,0x97,0x56,0x34,0x12,0xaf
|
||||
|
||||
# GFX9: s_lshl3_add_u32 s5, s1, -1 ; encoding: [0x01,0xc1,0x05,0x98]
|
||||
0x01,0xc1,0x05,0x98
|
||||
|
||||
# GFX9: s_lshl4_add_u32 s5, s1, 0xaf123456 ; encoding: [0x01,0xff,0x85,0x98,0x56,0x34,0x12,0xaf]
|
||||
0x01,0xff,0x85,0x98,0x56,0x34,0x12,0xaf
|
||||
|
||||
# GFX9: s_mul_hi_i32 s5, s101, s2 ; encoding: [0x65,0x02,0x85,0x96]
|
||||
0x65,0x02,0x85,0x96
|
||||
|
||||
# GFX9: s_mul_hi_i32 s5, 0, s2 ; encoding: [0x80,0x02,0x85,0x96]
|
||||
0x80,0x02,0x85,0x96
|
||||
|
||||
# GFX9: s_mul_hi_i32 s5, 0xaf123456, s2 ; encoding: [0xff,0x02,0x85,0x96,0x56,0x34,0x12,0xaf]
|
||||
0xff,0x02,0x85,0x96,0x56,0x34,0x12,0xaf
|
||||
|
||||
# GFX9: s_mul_hi_u32 s5, s1, -1 ; encoding: [0x01,0xc1,0x05,0x96]
|
||||
0x01,0xc1,0x05,0x96
|
||||
|
||||
# GFX9: s_mul_hi_u32 s5, s1, 0xaf123456 ; encoding: [0x01,0xff,0x05,0x96,0x56,0x34,0x12,0xaf]
|
||||
0x01,0xff,0x05,0x96,0x56,0x34,0x12,0xaf
|
Loading…
Reference in New Issue