1 // RUN
: not llvm-mc
-arch
=amdgcn
-show-encoding
%s | FileCheck
--check-prefix
=GCN
--check-prefix
=SICI
%s
2 // RUN
: not llvm-mc
-arch
=amdgcn
-mcpu
=tahiti
-show-encoding
%s | FileCheck
--check-prefix
=GCN
--check-prefix
=SICI
%s
3 // RUN
: not llvm-mc
-arch
=amdgcn
-mcpu
=fiji
-show-encoding
%s | FileCheck
--check-prefix
=GCN
--check-prefix
=VI9
--check-prefix
=VI
%s
4 // RUN
: not llvm-mc
-arch
=amdgcn
-mcpu
=gfx900
-show-encoding
%s | FileCheck
--check-prefix
=GCN
--check-prefix
=VI9
--check-prefix
=GFX9
%s
5 // RUN
: not llvm-mc
-arch
=amdgcn
-mcpu
=gfx1010
-show-encoding
%s | FileCheck
--check-prefix
=GCN
--check-prefix
=GFX10
%s
7 // RUN
: not llvm-mc
-arch
=amdgcn
%s
2>&1 | FileCheck
-check-prefix
=NOSICIVI
%s
8 // RUN
: not llvm-mc
-arch
=amdgcn
-mcpu
=tahiti
%s
2>&1 | FileCheck
-check-prefix
=NOSICIVI
-check-prefix
=NOSI
%s
9 // RUN
: not llvm-mc
-arch
=amdgcn
-mcpu
=fiji
%s
2>&1 | FileCheck
-check-prefix
=NOSICIVI
-check-prefix
=NOVI
%s
10 // RUN
: not llvm-mc
-arch
=amdgcn
-mcpu
=gfx900
%s
2>&1 | FileCheck
--check-prefix
=NOGFX9
%s
12 //===----------------------------------------------------------------------===//
14 //===----------------------------------------------------------------------===//
17 // GCN
: s_movk_i32 s2
, 0x6 ; encoding
: [0x06,0x00,0x02,0xb0]
20 // SICI
: s_cmovk_i32 s2
, 0x6 ; encoding
: [0x06,0x00,0x02,0xb1]
21 // VI9
: s_cmovk_i32 s2
, 0x6 ; encoding
: [0x06,0x00,0x82,0xb0]
24 // SICI
: s_cmpk_eq_i32 s2
, 0x6 ; encoding
: [0x06,0x00,0x82,0xb1]
25 // VI9
: s_cmpk_eq_i32 s2
, 0x6 ; encoding
: [0x06,0x00,0x02,0xb1]
28 // SICI
: s_cmpk_lg_i32 s2
, 0x6 ; encoding
: [0x06,0x00,0x02,0xb2]
29 // VI9
: s_cmpk_lg_i32 s2
, 0x6 ; encoding
: [0x06,0x00,0x82,0xb1]
32 // SICI
: s_cmpk_gt_i32 s2
, 0x6 ; encoding
: [0x06,0x00,0x82,0xb2]
33 // VI9
: s_cmpk_gt_i32 s2
, 0x6 ; encoding
: [0x06,0x00,0x02,0xb2]
36 // SICI
: s_cmpk_ge_i32 s2
, 0x6 ; encoding
: [0x06,0x00,0x02,0xb3]
37 // VI9
: s_cmpk_ge_i32 s2
, 0x6 ; encoding
: [0x06,0x00,0x82,0xb2]
40 // SICI
: s_cmpk_lt_i32 s2
, 0x6 ; encoding
: [0x06,0x00,0x82,0xb3]
41 // VI9
: s_cmpk_lt_i32 s2
, 0x6 ; encoding
: [0x06,0x00,0x02,0xb3]
44 // SICI
: s_cmpk_le_i32 s2
, 0x6 ; encoding
: [0x06,0x00,0x02,0xb4]
45 // VI9
: s_cmpk_le_i32 s2
, 0x6 ; encoding
: [0x06,0x00,0x82,0xb3]
48 // SICI
: s_cmpk_eq_u32 s2
, 0x6 ; encoding
: [0x06,0x00,0x82,0xb4]
49 // VI9
: s_cmpk_eq_u32 s2
, 0x6 ; encoding
: [0x06,0x00,0x02,0xb4]
52 // SICI
: s_cmpk_lg_u32 s2
, 0x6 ; encoding
: [0x06,0x00,0x02,0xb5]
53 // VI9
: s_cmpk_lg_u32 s2
, 0x6 ; encoding
: [0x06,0x00,0x82,0xb4]
56 // SICI
: s_cmpk_gt_u32 s2
, 0x6 ; encoding
: [0x06,0x00,0x82,0xb5]
57 // VI9
: s_cmpk_gt_u32 s2
, 0x6 ; encoding
: [0x06,0x00,0x02,0xb5]
60 // SICI
: s_cmpk_ge_u32 s2
, 0x6 ; encoding
: [0x06,0x00,0x02,0xb6]
61 // VI9
: s_cmpk_ge_u32 s2
, 0x6 ; encoding
: [0x06,0x00,0x82,0xb5]
64 // SICI
: s_cmpk_lt_u32 s2
, 0x6 ; encoding
: [0x06,0x00,0x82,0xb6]
65 // VI9
: s_cmpk_lt_u32 s2
, 0x6 ; encoding
: [0x06,0x00,0x02,0xb6]
68 // SICI
: s_cmpk_le_u32 s2
, 0x6 ; encoding
: [0x06,0x00,0x02,0xb7]
69 // VI9
: s_cmpk_le_u32 s2
, 0x6 ; encoding
: [0x06,0x00,0x82,0xb6]
71 s_cmpk_le_u32 s2
, 0xFFFF
72 // SICI
: s_cmpk_le_u32 s2
, 0xffff ; encoding
: [0xff,0xff,0x02,0xb7]
73 // VI9
: s_cmpk_le_u32 s2
, 0xffff ; encoding
: [0xff,0xff,0x82,0xb6]
76 // SICI
: s_addk_i32 s2
, 0x6 ; encoding
: [0x06,0x00,0x82,0xb7]
77 // VI9
: s_addk_i32 s2
, 0x6 ; encoding
: [0x06,0x00,0x02,0xb7]
80 // SICI
: s_mulk_i32 s2
, 0x6 ; encoding
: [0x06,0x00,0x02,0xb8]
81 // VI9
: s_mulk_i32 s2
, 0x6 ; encoding
: [0x06,0x00,0x82,0xb7]
84 // SICI
: s_mulk_i32 s2
, 0xffff ; encoding
: [0xff,0xff,0x02,0xb8]
85 // VI9
: s_mulk_i32 s2
, 0xffff ; encoding
: [0xff,0xff,0x82,0xb7]
88 // SICI
: s_mulk_i32 s2
, 0xffff ; encoding
: [0xff,0xff,0x02,0xb8]
89 // VI9
: s_mulk_i32 s2
, 0xffff ; encoding
: [0xff,0xff,0x82,0xb7]
91 s_cbranch_i_fork s
[2:3], 0x6
92 // SICI
: s_cbranch_i_fork s
[2:3], 6 ; encoding
: [0x06,0x00,0x82,0xb8]
93 // VI9
: s_cbranch_i_fork s
[2:3], 6 ; encoding
: [0x06,0x00,0x02,0xb8]
95 //===----------------------------------------------------------------------===//
96 // getreg
/setreg
and hwreg macro
97 //===----------------------------------------------------------------------===//
99 // raw number mapped to known HW register
101 // SICI
: s_getreg_b32 s2
, hwreg
(HW_REG_LDS_ALLOC
, 0, 1) ; encoding
: [0x06,0x00,0x02,0xb9]
102 // VI9
: s_getreg_b32 s2
, hwreg
(HW_REG_LDS_ALLOC
, 0, 1) ; encoding
: [0x06,0x00,0x82,0xb8]
104 // HW register identifier
, non-default offset
/width
105 s_getreg_b32 s2
, hwreg
(HW_REG_GPR_ALLOC
, 1, 31)
106 // SICI
: s_getreg_b32 s2
, hwreg
(HW_REG_GPR_ALLOC
, 1, 31) ; encoding
: [0x45,0xf0,0x02,0xb9]
107 // VI9
: s_getreg_b32 s2
, hwreg
(HW_REG_GPR_ALLOC
, 1, 31) ; encoding
: [0x45,0xf0,0x82,0xb8]
109 // HW register code of unknown HW register
, non-default offset
/width
110 s_getreg_b32 s2
, hwreg
(51, 1, 31)
111 // SICI
: s_getreg_b32 s2
, hwreg
(51, 1, 31) ; encoding
: [0x73,0xf0,0x02,0xb9]
112 // VI9
: s_getreg_b32 s2
, hwreg
(51, 1, 31) ; encoding
: [0x73,0xf0,0x82,0xb8]
114 // HW register code of unknown HW register
, default offset
/width
115 s_getreg_b32 s2
, hwreg
(51)
116 // SICI
: s_getreg_b32 s2
, hwreg
(51) ; encoding
: [0x33,0xf8,0x02,0xb9]
117 // VI9
: s_getreg_b32 s2
, hwreg
(51) ; encoding
: [0x33,0xf8,0x82,0xb8]
119 // HW register code of unknown HW register
, valid symbolic name range but no name available
120 s_getreg_b32 s2
, hwreg
(10)
121 // SICI
: s_getreg_b32 s2
, hwreg
(10) ; encoding
: [0x0a,0xf8,0x02,0xb9]
122 // VI9
: s_getreg_b32 s2
, hwreg
(10) ; encoding
: [0x0a,0xf8,0x82,0xb8]
124 // HW_REG_SH_MEM_BASES valid starting from GFX9
125 s_getreg_b32 s2
, hwreg
(15)
126 // SICI
: s_getreg_b32 s2
, hwreg
(15) ; encoding
: [0x0f,0xf8,0x02,0xb9]
127 // VI
: s_getreg_b32 s2
, hwreg
(15) ; encoding
: [0x0f,0xf8,0x82,0xb8]
128 // GFX9
: s_getreg_b32 s2
, hwreg
(HW_REG_SH_MEM_BASES
) ; encoding
: [0x0f,0xf8,0x82,0xb8]
129 // GFX10
: s_getreg_b32 s2
, hwreg
(HW_REG_SH_MEM_BASES
) ; encoding
: [0x0f,0xf8,0x02,0xb9]
132 s_getreg_b32 s2
, hwreg
(16)
133 // SICI
: s_getreg_b32 s2
, hwreg
(16) ; encoding
: [0x10,0xf8,0x02,0xb9]
134 // VI9
: s_getreg_b32 s2
, hwreg
(16) ; encoding
: [0x10,0xf8,0x82,0xb8]
135 // GFX10
: s_getreg_b32 s2
, hwreg
(HW_REG_TBA_LO
) ; encoding
: [0x10,0xf8,0x02,0xb9]
137 s_getreg_b32 s2
, hwreg
(17)
138 // SICI
: s_getreg_b32 s2
, hwreg
(17) ; encoding
: [0x11,0xf8,0x02,0xb9]
139 // VI9
: s_getreg_b32 s2
, hwreg
(17) ; encoding
: [0x11,0xf8,0x82,0xb8]
140 // GFX10
: s_getreg_b32 s2
, hwreg
(HW_REG_TBA_HI
) ; encoding
: [0x11,0xf8,0x02,0xb9]
142 s_getreg_b32 s2
, hwreg
(18)
143 // SICI
: s_getreg_b32 s2
, hwreg
(18) ; encoding
: [0x12,0xf8,0x02,0xb9]
144 // VI9
: s_getreg_b32 s2
, hwreg
(18) ; encoding
: [0x12,0xf8,0x82,0xb8]
145 // GFX10
: s_getreg_b32 s2
, hwreg
(HW_REG_TMA_LO
) ; encoding
: [0x12,0xf8,0x02,0xb9]
147 s_getreg_b32 s2
, hwreg
(19)
148 // SICI
: s_getreg_b32 s2
, hwreg
(19) ; encoding
: [0x13,0xf8,0x02,0xb9]
149 // VI9
: s_getreg_b32 s2
, hwreg
(19) ; encoding
: [0x13,0xf8,0x82,0xb8]
150 // GFX10
: s_getreg_b32 s2
, hwreg
(HW_REG_TMA_HI
) ; encoding
: [0x13,0xf8,0x02,0xb9]
152 s_getreg_b32 s2
, hwreg
(20)
153 // SICI
: s_getreg_b32 s2
, hwreg
(20) ; encoding
: [0x14,0xf8,0x02,0xb9]
154 // VI9
: s_getreg_b32 s2
, hwreg
(20) ; encoding
: [0x14,0xf8,0x82,0xb8]
155 // GFX10
: s_getreg_b32 s2
, hwreg
(HW_REG_FLAT_SCR_LO
) ; encoding
: [0x14,0xf8,0x02,0xb9]
157 s_getreg_b32 s2
, hwreg
(21)
158 // SICI
: s_getreg_b32 s2
, hwreg
(21) ; encoding
: [0x15,0xf8,0x02,0xb9]
159 // VI9
: s_getreg_b32 s2
, hwreg
(21) ; encoding
: [0x15,0xf8,0x82,0xb8]
160 // GFX10
: s_getreg_b32 s2
, hwreg
(HW_REG_FLAT_SCR_HI
) ; encoding
: [0x15,0xf8,0x02,0xb9]
162 s_getreg_b32 s2
, hwreg
(22)
163 // SICI
: s_getreg_b32 s2
, hwreg
(22) ; encoding
: [0x16,0xf8,0x02,0xb9]
164 // VI9
: s_getreg_b32 s2
, hwreg
(22) ; encoding
: [0x16,0xf8,0x82,0xb8]
165 // GFX10
: s_getreg_b32 s2
, hwreg
(HW_REG_XNACK_MASK
) ; encoding
: [0x16,0xf8,0x02,0xb9]
167 s_getreg_b32 s2
, hwreg
(23)
168 // SICI
: s_getreg_b32 s2
, hwreg
(23) ; encoding
: [0x17,0xf8,0x02,0xb9]
169 // VI9
: s_getreg_b32 s2
, hwreg
(23) ; encoding
: [0x17,0xf8,0x82,0xb8]
170 // GFX10
: s_getreg_b32 s2
, hwreg
(23) ; encoding
: [0x17,0xf8,0x02,0xb9]
172 s_getreg_b32 s2
, hwreg
(24)
173 // SICI
: s_getreg_b32 s2
, hwreg
(24) ; encoding
: [0x18,0xf8,0x02,0xb9]
174 // VI9
: s_getreg_b32 s2
, hwreg
(24) ; encoding
: [0x18,0xf8,0x82,0xb8]
175 // GFX10
: s_getreg_b32 s2
, hwreg
(24) ; encoding
: [0x18,0xf8,0x02,0xb9]
177 s_getreg_b32 s2
, hwreg
(25)
178 // SICI
: s_getreg_b32 s2
, hwreg
(25) ; encoding
: [0x19,0xf8,0x02,0xb9]
179 // VI9
: s_getreg_b32 s2
, hwreg
(25) ; encoding
: [0x19,0xf8,0x82,0xb8]
180 // GFX10
: s_getreg_b32 s2
, hwreg
(HW_REG_POPS_PACKER
) ; encoding
: [0x19,0xf8,0x02,0xb9]
182 // raw number mapped to known HW register
184 // SICI
: s_setreg_b32 hwreg
(HW_REG_LDS_ALLOC
, 0, 1), s2 ; encoding
: [0x06,0x00,0x82,0xb9]
185 // VI9
: s_setreg_b32 hwreg
(HW_REG_LDS_ALLOC
, 0, 1), s2 ; encoding
: [0x06,0x00,0x02,0xb9]
187 // raw number mapped to unknown HW register
188 s_setreg_b32
0x33, s2
189 // SICI
: s_setreg_b32 hwreg
(51, 0, 1), s2 ; encoding
: [0x33,0x00,0x82,0xb9]
190 // VI9
: s_setreg_b32 hwreg
(51, 0, 1), s2 ; encoding
: [0x33,0x00,0x02,0xb9]
192 // raw number mapped to known HW register
, default offset
/width
193 s_setreg_b32
0xf803, s2
194 // SICI
: s_setreg_b32 hwreg
(HW_REG_TRAPSTS
), s2 ; encoding
: [0x03,0xf8,0x82,0xb9]
195 // VI9
: s_setreg_b32 hwreg
(HW_REG_TRAPSTS
), s2 ; encoding
: [0x03,0xf8,0x02,0xb9]
197 // HW register identifier
, default offset
/width implied
198 s_setreg_b32 hwreg
(HW_REG_HW_ID
), s2
199 // SICI
: s_setreg_b32 hwreg
(HW_REG_HW_ID
), s2 ; encoding
: [0x04,0xf8,0x82,0xb9]
200 // VI9
: s_setreg_b32 hwreg
(HW_REG_HW_ID
), s2 ; encoding
: [0x04,0xf8,0x02,0xb9]
202 // HW register identifier
, non-default offset
/width
203 s_setreg_b32 hwreg
(HW_REG_GPR_ALLOC
, 1, 31), s2
204 // SICI
: s_setreg_b32 hwreg
(HW_REG_GPR_ALLOC
, 1, 31), s2 ; encoding
: [0x45,0xf0,0x82,0xb9]
205 // VI9
: s_setreg_b32 hwreg
(HW_REG_GPR_ALLOC
, 1, 31), s2 ; encoding
: [0x45,0xf0,0x02,0xb9]
207 // HW register code of unknown HW register
, valid symbolic name range but no name available
208 s_setreg_b32 hwreg
(10), s2
209 // SICI
: s_setreg_b32 hwreg
(10), s2 ; encoding
: [0x0a,0xf8,0x82,0xb9]
210 // VI9
: s_setreg_b32 hwreg
(10), s2 ; encoding
: [0x0a,0xf8,0x02,0xb9]
212 // HW_REG_SH_MEM_BASES valid starting from GFX9
213 s_setreg_b32 hwreg
(15), s2
214 // SICI
: s_setreg_b32 hwreg
(15), s2 ; encoding
: [0x0f,0xf8,0x82,0xb9]
215 // VI
: s_setreg_b32 hwreg
(15), s2 ; encoding
: [0x0f,0xf8,0x02,0xb9]
216 // GFX9
: s_setreg_b32 hwreg
(HW_REG_SH_MEM_BASES
), s2 ; encoding
: [0x0f,0xf8,0x02,0xb9]
217 // GFX10
: s_setreg_b32 hwreg
(HW_REG_SH_MEM_BASES
), s2 ; encoding
: [0x0f,0xf8,0x82,0xb9]
220 s_setreg_b32 hwreg
(16), s2
221 // SICI
: s_setreg_b32 hwreg
(16), s2 ; encoding
: [0x10,0xf8,0x82,0xb9]
222 // VI9
: s_setreg_b32 hwreg
(16), s2 ; encoding
: [0x10,0xf8,0x02,0xb9]
223 // GFX10
: s_setreg_b32 hwreg
(HW_REG_TBA_LO
), s2 ; encoding
: [0x10,0xf8,0x82,0xb9]
225 s_setreg_b32 hwreg
(17), s2
226 // SICI
: s_setreg_b32 hwreg
(17), s2 ; encoding
: [0x11,0xf8,0x82,0xb9]
227 // VI9
: s_setreg_b32 hwreg
(17), s2 ; encoding
: [0x11,0xf8,0x02,0xb9]
228 // GFX10
: s_setreg_b32 hwreg
(HW_REG_TBA_HI
), s2 ; encoding
: [0x11,0xf8,0x82,0xb9]
230 s_setreg_b32 hwreg
(18), s2
231 // SICI
: s_setreg_b32 hwreg
(18), s2 ; encoding
: [0x12,0xf8,0x82,0xb9]
232 // VI9
: s_setreg_b32 hwreg
(18), s2 ; encoding
: [0x12,0xf8,0x02,0xb9]
233 // GFX10
: s_setreg_b32 hwreg
(HW_REG_TMA_LO
), s2 ; encoding
: [0x12,0xf8,0x82,0xb9]
235 s_setreg_b32 hwreg
(19), s2
236 // SICI
: s_setreg_b32 hwreg
(19), s2 ; encoding
: [0x13,0xf8,0x82,0xb9]
237 // VI9
: s_setreg_b32 hwreg
(19), s2 ; encoding
: [0x13,0xf8,0x02,0xb9]
238 // GFX10
: s_setreg_b32 hwreg
(HW_REG_TMA_HI
), s2 ; encoding
: [0x13,0xf8,0x82,0xb9]
240 s_setreg_b32 hwreg
(20), s2
241 // SICI
: s_setreg_b32 hwreg
(20), s2 ; encoding
: [0x14,0xf8,0x82,0xb9]
242 // VI9
: s_setreg_b32 hwreg
(20), s2 ; encoding
: [0x14,0xf8,0x02,0xb9]
243 // GFX10
: s_setreg_b32 hwreg
(HW_REG_FLAT_SCR_LO
), s2 ; encoding
: [0x14,0xf8,0x82,0xb9]
245 s_setreg_b32 hwreg
(21), s2
246 // SICI
: s_setreg_b32 hwreg
(21), s2 ; encoding
: [0x15,0xf8,0x82,0xb9]
247 // VI9
: s_setreg_b32 hwreg
(21), s2 ; encoding
: [0x15,0xf8,0x02,0xb9]
248 // GFX10
: s_setreg_b32 hwreg
(HW_REG_FLAT_SCR_HI
), s2 ; encoding
: [0x15,0xf8,0x82,0xb9]
250 s_setreg_b32 hwreg
(22), s2
251 // SICI
: s_setreg_b32 hwreg
(22), s2 ; encoding
: [0x16,0xf8,0x82,0xb9]
252 // VI9
: s_setreg_b32 hwreg
(22), s2 ; encoding
: [0x16,0xf8,0x02,0xb9]
253 // GFX10
: s_setreg_b32 hwreg
(HW_REG_XNACK_MASK
), s2 ; encoding
: [0x16,0xf8,0x82,0xb9]
255 s_setreg_b32 hwreg
(23), s2
256 // SICI
: s_setreg_b32 hwreg
(23), s2 ; encoding
: [0x17,0xf8,0x82,0xb9]
257 // VI9
: s_setreg_b32 hwreg
(23), s2 ; encoding
: [0x17,0xf8,0x02,0xb9]
258 // GFX10
: s_setreg_b32 hwreg
(23), s2 ; encoding
: [0x17,0xf8,0x82,0xb9]
260 s_setreg_b32 hwreg
(24), s2
261 // SICI
: s_setreg_b32 hwreg
(24), s2 ; encoding
: [0x18,0xf8,0x82,0xb9]
262 // VI9
: s_setreg_b32 hwreg
(24), s2 ; encoding
: [0x18,0xf8,0x02,0xb9]
263 // GFX10
: s_setreg_b32 hwreg
(24), s2 ; encoding
: [0x18,0xf8,0x82,0xb9]
265 s_setreg_b32 hwreg
(25), s2
266 // SICI
: s_setreg_b32 hwreg
(25), s2 ; encoding
: [0x19,0xf8,0x82,0xb9]
267 // VI9
: s_setreg_b32 hwreg
(25), s2 ; encoding
: [0x19,0xf8,0x02,0xb9]
268 // GFX10
: s_setreg_b32 hwreg
(HW_REG_POPS_PACKER
), s2 ; encoding
: [0x19,0xf8,0x82,0xb9]
270 // HW register code
, non-default offset
/width
271 s_setreg_b32 hwreg
(5, 1, 31), s2
272 // SICI
: s_setreg_b32 hwreg
(HW_REG_GPR_ALLOC
, 1, 31), s2 ; encoding
: [0x45,0xf0,0x82,0xb9]
273 // VI9
: s_setreg_b32 hwreg
(HW_REG_GPR_ALLOC
, 1, 31), s2 ; encoding
: [0x45,0xf0,0x02,0xb9]
275 // raw number mapped to known HW register
276 s_setreg_imm32_b32
0x6, 0xff
277 // SICI
: s_setreg_imm32_b32 hwreg
(HW_REG_LDS_ALLOC
, 0, 1), 0xff ; encoding
: [0x06,0x00,0x80,0xba,0xff,0x00,0x00,0x00]
278 // VI9
: s_setreg_imm32_b32 hwreg
(HW_REG_LDS_ALLOC
, 0, 1), 0xff ; encoding
: [0x06,0x00,0x00,0xba,0xff,0x00,0x00,0x00]
280 // HW register identifier
, non-default offset
/width
281 s_setreg_imm32_b32 hwreg
(HW_REG_GPR_ALLOC
, 1, 31), 0xff
282 // SICI
: s_setreg_imm32_b32 hwreg
(HW_REG_GPR_ALLOC
, 1, 31), 0xff ; encoding
: [0x45,0xf0,0x80,0xba,0xff,0x00,0x00,0x00]
283 // VI9
: s_setreg_imm32_b32 hwreg
(HW_REG_GPR_ALLOC
, 1, 31), 0xff ; encoding
: [0x45,0xf0,0x00,0xba,0xff,0x00,0x00,0x00]
285 //===----------------------------------------------------------------------===//
286 // expressions
and hwreg macro
287 //===----------------------------------------------------------------------===//
290 s_getreg_b32 s2
, hwreg
291 // SICI
: s_getreg_b32 s2
, hwreg
(HW_REG_LDS_ALLOC
, 0, 1) ; encoding
: [0x06,0x00,0x02,0xb9]
292 // VI9
: s_getreg_b32 s2
, hwreg
(HW_REG_LDS_ALLOC
, 0, 1) ; encoding
: [0x06,0x00,0x82,0xb8]
296 // SICI
: s_getreg_b32 s2
, hwreg
(HW_REG_LDS_ALLOC
, 0, 1) ; encoding
: [0x06,0x00,0x02,0xb9]
297 // VI9
: s_getreg_b32 s2
, hwreg
(HW_REG_LDS_ALLOC
, 0, 1) ; encoding
: [0x06,0x00,0x82,0xb8]
301 // SICI
: s_getreg_b32 s2
, hwreg
(HW_REG_LDS_ALLOC
, 0, 1) ; encoding
: [0x06,0x00,0x02,0xb9]
302 // VI9
: s_getreg_b32 s2
, hwreg
(HW_REG_LDS_ALLOC
, 0, 1) ; encoding
: [0x06,0x00,0x82,0xb8]
307 s_getreg_b32 s2
, hwreg
(reg
+ 1, offset
- 1, width
+ 1)
308 // SICI
: s_getreg_b32 s2
, hwreg
(51, 1, 31) ; encoding
: [0x73,0xf0,0x02,0xb9]
309 // VI9
: s_getreg_b32 s2
, hwreg
(51, 1, 31) ; encoding
: [0x73,0xf0,0x82,0xb8]
311 s_getreg_b32 s2
, hwreg
(1 + reg
, -1 + offset
, 1 + width
)
312 // SICI
: s_getreg_b32 s2
, hwreg
(51, 1, 31) ; encoding
: [0x73,0xf0,0x02,0xb9]
313 // VI9
: s_getreg_b32 s2
, hwreg
(51, 1, 31) ; encoding
: [0x73,0xf0,0x82,0xb8]
315 //===----------------------------------------------------------------------===//
317 //===----------------------------------------------------------------------===//
319 s_endpgm_ordered_ps_done
320 // GFX9
: s_endpgm_ordered_ps_done ; encoding
: [0x00,0x00,0x9e,0xbf]
321 // NOSICIVI
: error
: instruction
not supported on this GPU
323 s_call_b64 null
, 12609
324 // GFX10
: s_call_b64 null
, 12609 ; encoding
: [0x41,0x31,0x7d,0xbb]
325 // NOSICIVI
: error
: not a valid operand.
326 // NOGFX9
: error
: not a valid operand.
328 s_call_b64 s
[12:13], 12609
329 // GFX9
: s_call_b64 s
[12:13], 12609 ; encoding
: [0x41,0x31,0x8c,0xba]
330 // NOSICIVI
: error
: instruction
not supported on this GPU
332 s_call_b64 s
[100:101], 12609
333 // GFX9
: s_call_b64 s
[100:101], 12609 ; encoding
: [0x41,0x31,0xe4,0xba]
334 // NOSICIVI
: error
: instruction
not supported on this GPU
336 s_call_b64 s
[10:11], 49617
337 // GFX9
: s_call_b64 s
[10:11], 49617 ; encoding
: [0xd1,0xc1,0x8a,0xba]
338 // NOSICIVI
: error
: instruction
not supported on this GPU
341 s_call_b64 s
[0:1], offset
+ 4
342 // GFX9
: s_call_b64 s
[0:1], 8 ; encoding
: [0x08,0x00,0x80,0xba]
343 // NOSICIVI
: error
: instruction
not supported on this GPU
346 s_call_b64 s
[0:1], 4 + offset
347 // GFX9
: s_call_b64 s
[0:1], 8 ; encoding
: [0x08,0x00,0x80,0xba]
348 // NOSICIVI
: error
: instruction
not supported on this GPU