Skip to content

Commit ff2c368

Browse files
committed
(1) A new multiclass for gfx10 (2) tests for disassembler
1 parent e9acb6c commit ff2c368

File tree

2 files changed

+86
-1
lines changed

2 files changed

+86
-1
lines changed

llvm/lib/Target/AMDGPU/VOP2Instructions.td

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1945,6 +1945,9 @@ let AssemblerPredicate = isGFX10Only, DecoderNamespace = "GFX10" in {
19451945
if !cast<VOP2_Pseudo>(NAME#"_e32").Pfl.HasExt32BitDPP then
19461946
def _dpp8_gfx10 : VOP2_DPP8<op, !cast<VOP2_Pseudo>(NAME#"_e32")>;
19471947
}
1948+
multiclass VOP2_Real_dpp_dpp8_gfx10<bits<6> op> :
1949+
VOP2_Real_dpp_gfx10<op>,
1950+
VOP2_Real_dpp8_gfx10<op>;
19481951

19491952
//===------------------------- VOP2 (with name) -------------------------===//
19501953
multiclass VOP2_Real_e32_gfx10_with_name<bits<6> op, string opName,
@@ -2172,7 +2175,7 @@ defm V_LDEXP_F16 : VOP2_Real_gfx10<0x03b>;
21722175
let IsSingle = 1 in {
21732176
defm V_PK_FMAC_F16 : VOP2_Real_e32_gfx10<0x03c>;
21742177
}
2175-
defm V_PK_FMAC_F16 : VOP2_Real_dpp_gfx10<0x03c>, VOP2_Real_dpp8_gfx10<0x03c>;
2178+
defm V_PK_FMAC_F16 : VOP2_Real_dpp_dpp8_gfx10<0x03c>;
21762179

21772180
// VOP2 no carry-in, carry-out.
21782181
defm V_ADD_NC_U32 :

llvm/test/MC/Disassembler/AMDGPU/gfx9_vop2_features.txt

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
# RUN: llvm-mc -triple=amdgcn -mcpu=gfx908 -disassemble -show-encoding < %s | FileCheck -check-prefix=CHECK-MI %s
2+
# RUN: llvm-mc -triple=amdgcn -mcpu=gfx90a -disassemble -show-encoding < %s | FileCheck -check-prefix=CHECK-MI %s
3+
# RUN: llvm-mc -triple=amdgcn -mcpu=gfx942 -disassemble -show-encoding < %s | FileCheck -check-prefix=CHECK-MI %s
4+
# RUN: llvm-mc -triple=amdgcn -mcpu=gfx950 -disassemble -show-encoding < %s | FileCheck -check-prefix=CHECK-MI %s
25

36
# CHECK-MI: v_pk_fmac_f16_e32 v5, v1, v2
47
0x01,0x05,0x0a,0x78
@@ -8,3 +11,82 @@
811

912
# CHECK-MI: v_pk_fmac_f16_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0
1013
0xfa,0x04,0x0a,0x78,0x01,0xe4,0x00,0x00
14+
15+
# CHECK-MI: v_pk_fmac_f16_sdwa v5, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD
16+
0xf9,0x04,0x0a,0x78,0x01,0x06,0x06,0x06
17+
18+
# CHECK-MI: v_pk_fmac_f16_sdwa v5, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD
19+
0xf9,0x04,0x0a,0x78,0x01,0x06,0x06,0x06
20+
21+
# CHECK-MI: v_pk_fmac_f16_sdwa v5, v1, v2 dst_sel:BYTE_0 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD
22+
0xf9,0x04,0x0a,0x78,0x01,0x00,0x06,0x06
23+
24+
# CHECK-MI: v_pk_fmac_f16_sdwa v5, v1, v2 dst_sel:BYTE_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD
25+
0xf9,0x04,0x0a,0x78,0x01,0x01,0x06,0x06
26+
27+
# CHECK-MI: v_pk_fmac_f16_sdwa v5, v1, v2 dst_sel:BYTE_2 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD
28+
0xf9,0x04,0x0a,0x78,0x01,0x02,0x06,0x06
29+
30+
# CHECK-MI: v_pk_fmac_f16_sdwa v5, v1, v2 dst_sel:BYTE_3 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD
31+
0xf9,0x04,0x0a,0x78,0x01,0x03,0x06,0x06
32+
33+
# CHECK-MI: v_pk_fmac_f16_sdwa v5, v1, v2 dst_sel:WORD_0 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD
34+
0xf9,0x04,0x0a,0x78,0x01,0x04,0x06,0x06
35+
36+
# CHECK-MI: v_pk_fmac_f16_sdwa v5, v1, v2 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD
37+
0xf9,0x04,0x0a,0x78,0x01,0x05,0x06,0x06
38+
39+
# CHECK-MI: v_pk_fmac_f16_sdwa v5, v1, v2 dst_sel:DWORD dst_unused:UNUSED_SEXT src0_sel:DWORD src1_sel:DWORD
40+
0xf9,0x04,0x0a,0x78,0x01,0x0e,0x06,0x06
41+
42+
# CHECK-MI: v_pk_fmac_f16_sdwa v5, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD src1_sel:DWORD
43+
0xf9,0x04,0x0a,0x78,0x01,0x16,0x06,0x06
44+
45+
# CHECK-MI: v_pk_fmac_f16_sdwa v5, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD src1_sel:DWORD
46+
0xf9,0x04,0x0a,0x78,0x01,0x16,0x06,0x06
47+
48+
# CHECK-MI: v_pk_fmac_f16_sdwa v5, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD
49+
0xf9,0x04,0x0a,0x78,0x01,0x06,0x06,0x06
50+
51+
# CHECK-MI: v_pk_fmac_f16_sdwa v5, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_0 src1_sel:DWORD
52+
0xf9,0x04,0x0a,0x78,0x01,0x06,0x00,0x06
53+
54+
# CHECK-MI: v_pk_fmac_f16_sdwa v5, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_1 src1_sel:DWORD
55+
0xf9,0x04,0x0a,0x78,0x01,0x06,0x01,0x06
56+
57+
# CHECK-MI: v_pk_fmac_f16_sdwa v5, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_2 src1_sel:DWORD
58+
0xf9,0x04,0x0a,0x78,0x01,0x06,0x02,0x06
59+
60+
# CHECK-MI: v_pk_fmac_f16_sdwa v5, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_3 src1_sel:DWORD
61+
0xf9,0x04,0x0a,0x78,0x01,0x06,0x03,0x06
62+
63+
# CHECK-MI: v_pk_fmac_f16_sdwa v5, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_0 src1_sel:DWORD
64+
0xf9,0x04,0x0a,0x78,0x01,0x06,0x04,0x06
65+
66+
# CHECK-MI: v_pk_fmac_f16_sdwa v5, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD
67+
0xf9,0x04,0x0a,0x78,0x01,0x06,0x05,0x06
68+
69+
# CHECK-MI: v_pk_fmac_f16_sdwa v5, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD
70+
0xf9,0x04,0x0a,0x78,0x01,0x06,0x06,0x06
71+
72+
# CHECK-MI: v_pk_fmac_f16_sdwa v5, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:BYTE_0
73+
0xf9,0x04,0x0a,0x78,0x01,0x06,0x06,0x00
74+
75+
# CHECK-MI: v_pk_fmac_f16_sdwa v5, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:BYTE_1
76+
0xf9,0x04,0x0a,0x78,0x01,0x06,0x06,0x01
77+
78+
# CHECK-MI: v_pk_fmac_f16_sdwa v5, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:BYTE_2
79+
0xf9,0x04,0x0a,0x78,0x01,0x06,0x06,0x02
80+
81+
# CHECK-MI: v_pk_fmac_f16_sdwa v5, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:BYTE_3
82+
0xf9,0x04,0x0a,0x78,0x01,0x06,0x06,0x03
83+
84+
# CHECK-MI: v_pk_fmac_f16_sdwa v5, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_0
85+
0xf9,0x04,0x0a,0x78,0x01,0x06,0x06,0x04
86+
87+
# CHECK-MI: v_pk_fmac_f16_sdwa v5, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1
88+
0xf9,0x04,0x0a,0x78,0x01,0x06,0x06,0x05
89+
90+
# CHECK-MI: v_pk_fmac_f16_sdwa v5, v1, sext(v2) dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD
91+
0xf9,0x04,0x0a,0x78,0x01,0x06,0x06,0x16
92+

0 commit comments

Comments
 (0)