1 // RUN
: not llvm-mc
-triple
=amdgcn
-show-encoding
%s | FileCheck
--check-prefixes
=GCN
,SICI
%s
2 // RUN
: not llvm-mc
-triple
=amdgcn
-mcpu
=tahiti
-show-encoding
%s | FileCheck
--check-prefixes
=GCN
,SICI
%s
3 // RUN
: not llvm-mc
-triple
=amdgcn
-mcpu
=fiji
-show-encoding
%s | FileCheck
--check-prefixes
=GCN
,VI9
,VI
%s
4 // RUN
: not llvm-mc
-triple
=amdgcn
-mcpu
=gfx900
-show-encoding
%s | FileCheck
--check-prefixes
=GCN
,VI9
,GFX9
%s
5 // RUN
: not llvm-mc
-triple
=amdgcn
-mcpu
=gfx1010
-show-encoding
%s | FileCheck
--check-prefixes
=GCN
,GFX10
%s
6 // RUN
: not llvm-mc
-triple
=amdgcn
-mcpu
=gfx1100
-show-encoding
%s | FileCheck
-check-prefixes
=GCN
,GFX11
%s
8 // RUN
: not llvm-mc
-triple
=amdgcn
%s
2>&1 | FileCheck
-check-prefix
=NOSICIVI
--implicit-check-
not=error
: %s
9 // RUN
: not llvm-mc
-triple
=amdgcn
-mcpu
=tahiti
%s
2>&1 | FileCheck
-check-prefix
=NOSICIVI
--implicit-check-
not=error
: %s
10 // RUN
: not llvm-mc
-triple
=amdgcn
-mcpu
=fiji
%s
2>&1 | FileCheck
-check-prefix
=NOSICIVI
--implicit-check-
not=error
: %s
11 // RUN
: not llvm-mc
-triple
=amdgcn
-mcpu
=gfx900
%s
2>&1 | FileCheck
--check-prefix
=NOGFX9
--implicit-check-
not=error
: %s
12 // RUN
: not llvm-mc
-triple
=amdgcn
-mcpu
=gfx1010
%s
2>&1 | FileCheck
--check-prefix
=NOGFX10
--implicit-check-
not=error
: %s
13 // RUN
: not llvm-mc
-triple
=amdgcn
-mcpu
=gfx1100
%s
2>&1 | FileCheck
--check-prefix
=NOGFX11
--implicit-check-
not=error
: %s
15 //===----------------------------------------------------------------------===//
17 //===----------------------------------------------------------------------===//
20 // GCN
: s_movk_i32 s2
, 0x6 ; encoding
: [0x06,0x00,0x02,0xb0]
23 // SICI
: s_cmovk_i32 s2
, 0x6 ; encoding
: [0x06,0x00,0x02,0xb1]
24 // VI9
: s_cmovk_i32 s2
, 0x6 ; encoding
: [0x06,0x00,0x82,0xb0]
25 // GFX10
: s_cmovk_i32 s2
, 0x6 ; encoding
: [0x06,0x00,0x02,0xb1]
26 // GFX11
: s_cmovk_i32 s2
, 0x6 ; encoding
: [0x06,0x00,0x02,0xb1]
29 // SICI
: s_cmpk_eq_i32 s2
, 0x6 ; encoding
: [0x06,0x00,0x82,0xb1]
30 // VI9
: s_cmpk_eq_i32 s2
, 0x6 ; encoding
: [0x06,0x00,0x02,0xb1]
31 // GFX10
: s_cmpk_eq_i32 s2
, 0x6 ; encoding
: [0x06,0x00,0x82,0xb1]
32 // GFX11
: s_cmpk_eq_i32 s2
, 0x6 ; encoding
: [0x06,0x00,0x82,0xb1]
35 // SICI
: s_cmpk_lg_i32 s2
, 0x6 ; encoding
: [0x06,0x00,0x02,0xb2]
36 // VI9
: s_cmpk_lg_i32 s2
, 0x6 ; encoding
: [0x06,0x00,0x82,0xb1]
37 // GFX10
: s_cmpk_lg_i32 s2
, 0x6 ; encoding
: [0x06,0x00,0x02,0xb2]
38 // GFX11
: s_cmpk_lg_i32 s2
, 0x6 ; encoding
: [0x06,0x00,0x02,0xb2]
41 // SICI
: s_cmpk_gt_i32 s2
, 0x6 ; encoding
: [0x06,0x00,0x82,0xb2]
42 // VI9
: s_cmpk_gt_i32 s2
, 0x6 ; encoding
: [0x06,0x00,0x02,0xb2]
43 // GFX10
: s_cmpk_gt_i32 s2
, 0x6 ; encoding
: [0x06,0x00,0x82,0xb2]
44 // GFX11
: s_cmpk_gt_i32 s2
, 0x6 ; encoding
: [0x06,0x00,0x82,0xb2]
47 // SICI
: s_cmpk_ge_i32 s2
, 0x6 ; encoding
: [0x06,0x00,0x02,0xb3]
48 // VI9
: s_cmpk_ge_i32 s2
, 0x6 ; encoding
: [0x06,0x00,0x82,0xb2]
49 // GFX10
: s_cmpk_ge_i32 s2
, 0x6 ; encoding
: [0x06,0x00,0x02,0xb3]
50 // GFX11
: s_cmpk_ge_i32 s2
, 0x6 ; encoding
: [0x06,0x00,0x02,0xb3]
53 // SICI
: s_cmpk_lt_i32 s2
, 0x6 ; encoding
: [0x06,0x00,0x82,0xb3]
54 // VI9
: s_cmpk_lt_i32 s2
, 0x6 ; encoding
: [0x06,0x00,0x02,0xb3]
55 // GFX10
: s_cmpk_lt_i32 s2
, 0x6 ; encoding
: [0x06,0x00,0x82,0xb3]
56 // GFX11
: s_cmpk_lt_i32 s2
, 0x6 ; encoding
: [0x06,0x00,0x82,0xb3]
59 // SICI
: s_cmpk_le_i32 s2
, 0x6 ; encoding
: [0x06,0x00,0x02,0xb4]
60 // VI9
: s_cmpk_le_i32 s2
, 0x6 ; encoding
: [0x06,0x00,0x82,0xb3]
61 // GFX10
: s_cmpk_le_i32 s2
, 0x6 ; encoding
: [0x06,0x00,0x02,0xb4]
62 // GFX11
: s_cmpk_le_i32 s2
, 0x6 ; encoding
: [0x06,0x00,0x02,0xb4]
65 // SICI
: s_cmpk_eq_u32 s2
, 0x6 ; encoding
: [0x06,0x00,0x82,0xb4]
66 // VI9
: s_cmpk_eq_u32 s2
, 0x6 ; encoding
: [0x06,0x00,0x02,0xb4]
67 // GFX10
: s_cmpk_eq_u32 s2
, 0x6 ; encoding
: [0x06,0x00,0x82,0xb4]
68 // GFX11
: s_cmpk_eq_u32 s2
, 0x6 ; encoding
: [0x06,0x00,0x82,0xb4]
71 // SICI
: s_cmpk_lg_u32 s2
, 0x6 ; encoding
: [0x06,0x00,0x02,0xb5]
72 // VI9
: s_cmpk_lg_u32 s2
, 0x6 ; encoding
: [0x06,0x00,0x82,0xb4]
73 // GFX10
: s_cmpk_lg_u32 s2
, 0x6 ; encoding
: [0x06,0x00,0x02,0xb5]
74 // GFX11
: s_cmpk_lg_u32 s2
, 0x6 ; encoding
: [0x06,0x00,0x02,0xb5]
77 // SICI
: s_cmpk_gt_u32 s2
, 0x6 ; encoding
: [0x06,0x00,0x82,0xb5]
78 // VI9
: s_cmpk_gt_u32 s2
, 0x6 ; encoding
: [0x06,0x00,0x02,0xb5]
79 // GFX10
: s_cmpk_gt_u32 s2
, 0x6 ; encoding
: [0x06,0x00,0x82,0xb5]
80 // GFX11
: s_cmpk_gt_u32 s2
, 0x6 ; encoding
: [0x06,0x00,0x82,0xb5]
83 // SICI
: s_cmpk_ge_u32 s2
, 0x6 ; encoding
: [0x06,0x00,0x02,0xb6]
84 // VI9
: s_cmpk_ge_u32 s2
, 0x6 ; encoding
: [0x06,0x00,0x82,0xb5]
85 // GFX10
: s_cmpk_ge_u32 s2
, 0x6 ; encoding
: [0x06,0x00,0x02,0xb6]
86 // GFX11
: s_cmpk_ge_u32 s2
, 0x6 ; encoding
: [0x06,0x00,0x02,0xb6]
89 // SICI
: s_cmpk_lt_u32 s2
, 0x6 ; encoding
: [0x06,0x00,0x82,0xb6]
90 // VI9
: s_cmpk_lt_u32 s2
, 0x6 ; encoding
: [0x06,0x00,0x02,0xb6]
91 // GFX10
: s_cmpk_lt_u32 s2
, 0x6 ; encoding
: [0x06,0x00,0x82,0xb6]
92 // GFX11
: s_cmpk_lt_u32 s2
, 0x6 ; encoding
: [0x06,0x00,0x82,0xb6]
95 // SICI
: s_cmpk_le_u32 s2
, 0x6 ; encoding
: [0x06,0x00,0x02,0xb7]
96 // VI9
: s_cmpk_le_u32 s2
, 0x6 ; encoding
: [0x06,0x00,0x82,0xb6]
97 // GFX10
: s_cmpk_le_u32 s2
, 0x6 ; encoding
: [0x06,0x00,0x02,0xb7]
98 // GFX11
: s_cmpk_le_u32 s2
, 0x6 ; encoding
: [0x06,0x00,0x02,0xb7]
100 s_cmpk_le_u32 s2
, 0xFFFF
101 // SICI
: s_cmpk_le_u32 s2
, 0xffff ; encoding
: [0xff,0xff,0x02,0xb7]
102 // VI9
: s_cmpk_le_u32 s2
, 0xffff ; encoding
: [0xff,0xff,0x82,0xb6]
103 // GFX10
: s_cmpk_le_u32 s2
, 0xffff ; encoding
: [0xff,0xff,0x02,0xb7]
104 // GFX11
: s_cmpk_le_u32 s2
, 0xffff ; encoding
: [0xff,0xff,0x02,0xb7]
107 // SICI
: s_addk_i32 s2
, 0x6 ; encoding
: [0x06,0x00,0x82,0xb7]
108 // VI9
: s_addk_i32 s2
, 0x6 ; encoding
: [0x06,0x00,0x02,0xb7]
109 // GFX10
: s_addk_i32 s2
, 0x6 ; encoding
: [0x06,0x00,0x82,0xb7]
110 // GFX11
: s_addk_i32 s2
, 0x6 ; encoding
: [0x06,0x00,0x82,0xb7]
113 // SICI
: s_mulk_i32 s2
, 0x6 ; encoding
: [0x06,0x00,0x02,0xb8]
114 // VI9
: s_mulk_i32 s2
, 0x6 ; encoding
: [0x06,0x00,0x82,0xb7]
115 // GFX10
: s_mulk_i32 s2
, 0x6 ; encoding
: [0x06,0x00,0x02,0xb8]
116 // GFX11
: s_mulk_i32 s2
, 0x6 ; encoding
: [0x06,0x00,0x02,0xb8]
119 // SICI
: s_mulk_i32 s2
, 0xffff ; encoding
: [0xff,0xff,0x02,0xb8]
120 // VI9
: s_mulk_i32 s2
, 0xffff ; encoding
: [0xff,0xff,0x82,0xb7]
121 // GFX10
: s_mulk_i32 s2
, 0xffff ; encoding
: [0xff,0xff,0x02,0xb8]
122 // GFX11
: s_mulk_i32 s2
, 0xffff ; encoding
: [0xff,0xff,0x02,0xb8]
124 s_mulk_i32 s2
, 0xFFFF
125 // SICI
: s_mulk_i32 s2
, 0xffff ; encoding
: [0xff,0xff,0x02,0xb8]
126 // VI9
: s_mulk_i32 s2
, 0xffff ; encoding
: [0xff,0xff,0x82,0xb7]
127 // GFX10
: s_mulk_i32 s2
, 0xffff ; encoding
: [0xff,0xff,0x02,0xb8]
128 // GFX11
: s_mulk_i32 s2
, 0xffff ; encoding
: [0xff,0xff,0x02,0xb8]
130 s_cbranch_i_fork s
[2:3], 0x6
131 // SICI
: s_cbranch_i_fork s
[2:3], 6 ; encoding
: [0x06,0x00,0x82,0xb8]
132 // VI9
: s_cbranch_i_fork s
[2:3], 6 ; encoding
: [0x06,0x00,0x02,0xb8]
133 // NOGFX10
: :[[@LINE-
3]]:{{[0-9]+}}: error
: instruction
not supported on this GPU
134 // NOGFX11
: :[[@LINE-
4]]:{{[0-9]+}}: error
: instruction
not supported on this GPU
136 //===----------------------------------------------------------------------===//
137 // getreg
/setreg
and hwreg macro
138 //===----------------------------------------------------------------------===//
140 // raw number mapped to known HW register
142 // SICI
: s_getreg_b32 s2
, hwreg
(HW_REG_LDS_ALLOC
, 0, 1) ; encoding
: [0x06,0x00,0x02,0xb9]
143 // VI9
: s_getreg_b32 s2
, hwreg
(HW_REG_LDS_ALLOC
, 0, 1) ; encoding
: [0x06,0x00,0x82,0xb8]
144 // GFX10
: s_getreg_b32 s2
, hwreg
(HW_REG_LDS_ALLOC
, 0, 1) ; encoding
: [0x06,0x00,0x02,0xb9]
145 // GFX11
: s_getreg_b32 s2
, hwreg
(HW_REG_LDS_ALLOC
, 0, 1) ; encoding
: [0x06,0x00,0x82,0xb8]
147 // HW register identifier
, non-default offset
/width
148 s_getreg_b32 s2
, hwreg
(HW_REG_GPR_ALLOC
, 1, 31)
149 // SICI
: s_getreg_b32 s2
, hwreg
(HW_REG_GPR_ALLOC
, 1, 31) ; encoding
: [0x45,0xf0,0x02,0xb9]
150 // VI9
: s_getreg_b32 s2
, hwreg
(HW_REG_GPR_ALLOC
, 1, 31) ; encoding
: [0x45,0xf0,0x82,0xb8]
151 // GFX10
: s_getreg_b32 s2
, hwreg
(HW_REG_GPR_ALLOC
, 1, 31) ; encoding
: [0x45,0xf0,0x02,0xb9]
152 // GFX11
: s_getreg_b32 s2
, hwreg
(HW_REG_GPR_ALLOC
, 1, 31) ; encoding
: [0x45,0xf0,0x82,0xb8]
154 // HW register code of unknown HW register
, non-default offset
/width
155 s_getreg_b32 s2
, hwreg
(51, 1, 31)
156 // SICI
: s_getreg_b32 s2
, hwreg
(51, 1, 31) ; encoding
: [0x73,0xf0,0x02,0xb9]
157 // VI9
: s_getreg_b32 s2
, hwreg
(51, 1, 31) ; encoding
: [0x73,0xf0,0x82,0xb8]
158 // GFX10
: s_getreg_b32 s2
, hwreg
(51, 1, 31) ; encoding
: [0x73,0xf0,0x02,0xb9]
159 // GFX11
: s_getreg_b32 s2
, hwreg
(51, 1, 31) ; encoding
: [0x73,0xf0,0x82,0xb8]
161 s_getreg_b32 s2
, {id
: 51, offset
: 1, size
: 31}
162 // SICI
: s_getreg_b32 s2
, hwreg
(51, 1, 31) ; encoding
: [0x73,0xf0,0x02,0xb9]
163 // VI9
: s_getreg_b32 s2
, hwreg
(51, 1, 31) ; encoding
: [0x73,0xf0,0x82,0xb8]
164 // GFX10
: s_getreg_b32 s2
, hwreg
(51, 1, 31) ; encoding
: [0x73,0xf0,0x02,0xb9]
165 // GFX11
: s_getreg_b32 s2
, hwreg
(51, 1, 31) ; encoding
: [0x73,0xf0,0x82,0xb8]
167 // HW register code of unknown HW register
, default offset
/width
168 s_getreg_b32 s2
, hwreg
(51)
169 // SICI
: s_getreg_b32 s2
, hwreg
(51) ; encoding
: [0x33,0xf8,0x02,0xb9]
170 // VI9
: s_getreg_b32 s2
, hwreg
(51) ; encoding
: [0x33,0xf8,0x82,0xb8]
171 // GFX10
: s_getreg_b32 s2
, hwreg
(51) ; encoding
: [0x33,0xf8,0x02,0xb9]
172 // GFX11
: s_getreg_b32 s2
, hwreg
(51) ; encoding
: [0x33,0xf8,0x82,0xb8]
174 // Structured form using default values.
175 s_getreg_b32 s2
, {id
: 51}
176 // SICI
: s_getreg_b32 s2
, hwreg
(51) ; encoding
: [0x33,0xf8,0x02,0xb9]
177 // VI9
: s_getreg_b32 s2
, hwreg
(51) ; encoding
: [0x33,0xf8,0x82,0xb8]
178 // GFX10
: s_getreg_b32 s2
, hwreg
(51) ; encoding
: [0x33,0xf8,0x02,0xb9]
179 // GFX11
: s_getreg_b32 s2
, hwreg
(51) ; encoding
: [0x33,0xf8,0x82,0xb8]
181 // Fields may come in any order.
182 s_getreg_b32 s2
, {size
: 32, id
: 51}
183 // SICI
: s_getreg_b32 s2
, hwreg
(51) ; encoding
: [0x33,0xf8,0x02,0xb9]
184 // VI9
: s_getreg_b32 s2
, hwreg
(51) ; encoding
: [0x33,0xf8,0x82,0xb8]
185 // GFX10
: s_getreg_b32 s2
, hwreg
(51) ; encoding
: [0x33,0xf8,0x02,0xb9]
186 // GFX11
: s_getreg_b32 s2
, hwreg
(51) ; encoding
: [0x33,0xf8,0x82,0xb8]
188 // Empty field lists are allowed.
190 // SICI
: s_getreg_b32 s2
, hwreg
(0) ; encoding
: [0x00,0xf8,0x02,0xb9]
191 // VI9
: s_getreg_b32 s2
, hwreg
(0) ; encoding
: [0x00,0xf8,0x82,0xb8]
192 // GFX10
: s_getreg_b32 s2
, hwreg
(0) ; encoding
: [0x00,0xf8,0x02,0xb9]
193 // GFX11
: s_getreg_b32 s2
, hwreg
(0) ; encoding
: [0x00,0xf8,0x82,0xb8]
195 // HW register code of unknown HW register
, valid symbolic name range but no name available
196 s_getreg_b32 s2
, hwreg
(10)
197 // SICI
: s_getreg_b32 s2
, hwreg
(10) ; encoding
: [0x0a,0xf8,0x02,0xb9]
198 // VI9
: s_getreg_b32 s2
, hwreg
(10) ; encoding
: [0x0a,0xf8,0x82,0xb8]
199 // GFX10
: s_getreg_b32 s2
, hwreg
(10) ; encoding
: [0x0a,0xf8,0x02,0xb9]
200 // GFX11
: s_getreg_b32 s2
, hwreg
(10) ; encoding
: [0x0a,0xf8,0x82,0xb8]
202 // HW_REG_SH_MEM_BASES valid starting from GFX9
203 s_getreg_b32 s2
, hwreg
(15)
204 // SICI
: s_getreg_b32 s2
, hwreg
(15) ; encoding
: [0x0f,0xf8,0x02,0xb9]
205 // VI
: s_getreg_b32 s2
, hwreg
(15) ; encoding
: [0x0f,0xf8,0x82,0xb8]
206 // GFX9
: s_getreg_b32 s2
, hwreg
(HW_REG_SH_MEM_BASES
) ; encoding
: [0x0f,0xf8,0x82,0xb8]
207 // GFX10
: s_getreg_b32 s2
, hwreg
(HW_REG_SH_MEM_BASES
) ; encoding
: [0x0f,0xf8,0x02,0xb9]
208 // GFX11
: s_getreg_b32 s2
, hwreg
(HW_REG_SH_MEM_BASES
) ; encoding
: [0x0f,0xf8,0x82,0xb8]
210 s_getreg_b32 s2
, hwreg
(16)
211 // SICI
: s_getreg_b32 s2
, hwreg
(16) ; encoding
: [0x10,0xf8,0x02,0xb9]
212 // GFX10
: s_getreg_b32 s2
, hwreg
(HW_REG_TBA_LO
) ; encoding
: [0x10,0xf8,0x02,0xb9]
213 // GFX11
: s_getreg_b32 s2
, hwreg
(16) ; encoding
: [0x10,0xf8,0x82,0xb8]
214 // GFX9
: s_getreg_b32 s2
, hwreg
(HW_REG_TBA_LO
) ; encoding
: [0x10,0xf8,0x82,0xb8]
215 // VI
: s_getreg_b32 s2
, hwreg
(16) ; encoding
: [0x10,0xf8,0x82,0xb8]
217 s_getreg_b32 s2
, hwreg
(17)
218 // SICI
: s_getreg_b32 s2
, hwreg
(17) ; encoding
: [0x11,0xf8,0x02,0xb9]
219 // GFX10
: s_getreg_b32 s2
, hwreg
(HW_REG_TBA_HI
) ; encoding
: [0x11,0xf8,0x02,0xb9]
220 // GFX11
: s_getreg_b32 s2
, hwreg
(17) ; encoding
: [0x11,0xf8,0x82,0xb8]
221 // GFX9
: s_getreg_b32 s2
, hwreg
(HW_REG_TBA_HI
) ; encoding
: [0x11,0xf8,0x82,0xb8]
222 // VI
: s_getreg_b32 s2
, hwreg
(17) ; encoding
: [0x11,0xf8,0x82,0xb8]
224 s_getreg_b32 s2
, hwreg
(18)
225 // SICI
: s_getreg_b32 s2
, hwreg
(18) ; encoding
: [0x12,0xf8,0x02,0xb9]
226 // GFX10
: s_getreg_b32 s2
, hwreg
(HW_REG_TMA_LO
) ; encoding
: [0x12,0xf8,0x02,0xb9]
227 // GFX11
: s_getreg_b32 s2
, hwreg
(HW_REG_PERF_SNAPSHOT_PC_LO
) ; encoding
: [0x12,0xf8,0x82,0xb8]
228 // GFX9
: s_getreg_b32 s2
, hwreg
(HW_REG_TMA_LO
) ; encoding
: [0x12,0xf8,0x82,0xb8]
229 // VI
: s_getreg_b32 s2
, hwreg
(18) ; encoding
: [0x12,0xf8,0x82,0xb8]
231 s_getreg_b32 s2
, hwreg
(19)
232 // SICI
: s_getreg_b32 s2
, hwreg
(19) ; encoding
: [0x13,0xf8,0x02,0xb9]
233 // GFX10
: s_getreg_b32 s2
, hwreg
(HW_REG_TMA_HI
) ; encoding
: [0x13,0xf8,0x02,0xb9]
234 // GFX11
: s_getreg_b32 s2
, hwreg
(HW_REG_PERF_SNAPSHOT_PC_HI
) ; encoding
: [0x13,0xf8,0x82,0xb8]
235 // GFX9
: s_getreg_b32 s2
, hwreg
(HW_REG_TMA_HI
) ; encoding
: [0x13,0xf8,0x82,0xb8]
236 // VI
: s_getreg_b32 s2
, hwreg
(19) ; encoding
: [0x13,0xf8,0x82,0xb8]
239 s_getreg_b32 s2
, hwreg
(20)
240 // SICI
: s_getreg_b32 s2
, hwreg
(20) ; encoding
: [0x14,0xf8,0x02,0xb9]
241 // VI9
: s_getreg_b32 s2
, hwreg
(20) ; encoding
: [0x14,0xf8,0x82,0xb8]
242 // GFX10
: s_getreg_b32 s2
, hwreg
(HW_REG_FLAT_SCR_LO
) ; encoding
: [0x14,0xf8,0x02,0xb9]
243 // GFX11
: s_getreg_b32 s2
, hwreg
(HW_REG_FLAT_SCR_LO
) ; encoding
: [0x14,0xf8,0x82,0xb8]
245 s_getreg_b32 s2
, hwreg
(21)
246 // SICI
: s_getreg_b32 s2
, hwreg
(21) ; encoding
: [0x15,0xf8,0x02,0xb9]
247 // VI9
: s_getreg_b32 s2
, hwreg
(21) ; encoding
: [0x15,0xf8,0x82,0xb8]
248 // GFX10
: s_getreg_b32 s2
, hwreg
(HW_REG_FLAT_SCR_HI
) ; encoding
: [0x15,0xf8,0x02,0xb9]
249 // GFX11
: s_getreg_b32 s2
, hwreg
(HW_REG_FLAT_SCR_HI
) ; encoding
: [0x15,0xf8,0x82,0xb8]
251 s_getreg_b32 s2
, hwreg
(22)
252 // SICI
: s_getreg_b32 s2
, hwreg
(22) ; encoding
: [0x16,0xf8,0x02,0xb9]
253 // VI9
: s_getreg_b32 s2
, hwreg
(22) ; encoding
: [0x16,0xf8,0x82,0xb8]
254 // GFX10
: s_getreg_b32 s2
, hwreg
(HW_REG_XNACK_MASK
) ; encoding
: [0x16,0xf8,0x02,0xb9]
255 // GFX11
: s_getreg_b32 s2
, hwreg
(22) ; encoding
: [0x16,0xf8,0x82,0xb8]
257 s_getreg_b32 s2
, hwreg
(23)
258 // SICI
: s_getreg_b32 s2
, hwreg
(23) ; encoding
: [0x17,0xf8,0x02,0xb9]
259 // VI9
: s_getreg_b32 s2
, hwreg
(23) ; encoding
: [0x17,0xf8,0x82,0xb8]
260 // GFX10
: s_getreg_b32 s2
, hwreg
(HW_REG_HW_ID1
) ; encoding
: [0x17,0xf8,0x02,0xb9]
261 // GFX11
: s_getreg_b32 s2
, hwreg
(HW_REG_HW_ID1
) ; encoding
: [0x17,0xf8,0x82,0xb8]
263 s_getreg_b32 s2
, hwreg
(24)
264 // SICI
: s_getreg_b32 s2
, hwreg
(24) ; encoding
: [0x18,0xf8,0x02,0xb9]
265 // VI9
: s_getreg_b32 s2
, hwreg
(24) ; encoding
: [0x18,0xf8,0x82,0xb8]
266 // GFX10
: s_getreg_b32 s2
, hwreg
(HW_REG_HW_ID2
) ; encoding
: [0x18,0xf8,0x02,0xb9]
267 // GFX11
: s_getreg_b32 s2
, hwreg
(HW_REG_HW_ID2
) ; encoding
: [0x18,0xf8,0x82,0xb8]
269 s_getreg_b32 s2
, hwreg
(25)
270 // SICI
: s_getreg_b32 s2
, hwreg
(25) ; encoding
: [0x19,0xf8,0x02,0xb9]
271 // VI9
: s_getreg_b32 s2
, hwreg
(25) ; encoding
: [0x19,0xf8,0x82,0xb8]
272 // GFX10
: s_getreg_b32 s2
, hwreg
(HW_REG_POPS_PACKER
) ; encoding
: [0x19,0xf8,0x02,0xb9]
273 // GFX11
: s_getreg_b32 s2
, hwreg
(25) ; encoding
: [0x19,0xf8,0x82,0xb8]
275 // raw number mapped to known HW register
277 // SICI
: s_setreg_b32 hwreg
(HW_REG_LDS_ALLOC
, 0, 1), s2 ; encoding
: [0x06,0x00,0x82,0xb9]
278 // VI9
: s_setreg_b32 hwreg
(HW_REG_LDS_ALLOC
, 0, 1), s2 ; encoding
: [0x06,0x00,0x02,0xb9]
279 // GFX10
: s_setreg_b32 hwreg
(HW_REG_LDS_ALLOC
, 0, 1), s2 ; encoding
: [0x06,0x00,0x82,0xb9]
280 // GFX11
: s_setreg_b32 hwreg
(HW_REG_LDS_ALLOC
, 0, 1), s2 ; encoding
: [0x06,0x00,0x02,0xb9]
282 // raw number mapped to unknown HW register
283 s_setreg_b32
0x33, s2
284 // SICI
: s_setreg_b32 hwreg
(51, 0, 1), s2 ; encoding
: [0x33,0x00,0x82,0xb9]
285 // VI9
: s_setreg_b32 hwreg
(51, 0, 1), s2 ; encoding
: [0x33,0x00,0x02,0xb9]
286 // GFX10
: s_setreg_b32 hwreg
(51, 0, 1), s2 ; encoding
: [0x33,0x00,0x82,0xb9]
287 // GFX11
: s_setreg_b32 hwreg
(51, 0, 1), s2 ; encoding
: [0x33,0x00,0x02,0xb9]
289 // raw number mapped to known HW register
, default offset
/width
290 s_setreg_b32
0xf803, s2
291 // SICI
: s_setreg_b32 hwreg
(HW_REG_TRAPSTS
), s2 ; encoding
: [0x03,0xf8,0x82,0xb9]
292 // VI9
: s_setreg_b32 hwreg
(HW_REG_TRAPSTS
), s2 ; encoding
: [0x03,0xf8,0x02,0xb9]
293 // GFX10
: s_setreg_b32 hwreg
(HW_REG_TRAPSTS
), s2 ; encoding
: [0x03,0xf8,0x82,0xb9]
294 // GFX11
: s_setreg_b32 hwreg
(HW_REG_TRAPSTS
), s2 ; encoding
: [0x03,0xf8,0x02,0xb9]
296 // HW register identifier
, default offset
/width implied
297 s_setreg_b32 hwreg
(HW_REG_HW_ID
), s2
298 // SICI
: s_setreg_b32 hwreg
(HW_REG_HW_ID
), s2 ; encoding
: [0x04,0xf8,0x82,0xb9]
299 // VI9
: s_setreg_b32 hwreg
(HW_REG_HW_ID
), s2 ; encoding
: [0x04,0xf8,0x02,0xb9]
300 // GFX10
: s_setreg_b32 hwreg
(HW_REG_HW_ID1
), s2 ; encoding
: [0x17,0xf8,0x82,0xb9]
301 // NOGFX11
: :[[@LINE-
4]]:{{[0-9]+}}: error
: invalid hardware register
: not supported on this GPU
303 s_setreg_b32 hwreg
(HW_REG_HW_ID1
), s2
304 // NOSICIVI
: :[[@LINE-
1]]:{{[0-9]+}}: error
: invalid hardware register
: not supported on this GPU
305 // NOGFX9
: :[[@LINE-
2]]:{{[0-9]+}}: error
: invalid hardware register
: not supported on this GPU
306 // GFX10
: s_setreg_b32 hwreg
(HW_REG_HW_ID1
), s2 ; encoding
: [0x17,0xf8,0x82,0xb9]
307 // GFX11
: s_setreg_b32 hwreg
(HW_REG_HW_ID1
), s2 ; encoding
: [0x17,0xf8,0x02,0xb9]
309 s_setreg_b32 hwreg
(HW_REG_HW_ID2
), s2
310 // NOSICIVI
: :[[@LINE-
1]]:{{[0-9]+}}: error
: invalid hardware register
: not supported on this GPU
311 // NOGFX9
: :[[@LINE-
2]]:{{[0-9]+}}: error
: invalid hardware register
: not supported on this GPU
312 // GFX10
: s_setreg_b32 hwreg
(HW_REG_HW_ID2
), s2 ; encoding
: [0x18,0xf8,0x82,0xb9]
313 // GFX11
: s_setreg_b32 hwreg
(HW_REG_HW_ID2
), s2 ; encoding
: [0x18,0xf8,0x02,0xb9]
315 // HW register identifier
, non-default offset
/width
316 s_setreg_b32 hwreg
(HW_REG_GPR_ALLOC
, 1, 31), s2
317 // SICI
: s_setreg_b32 hwreg
(HW_REG_GPR_ALLOC
, 1, 31), s2 ; encoding
: [0x45,0xf0,0x82,0xb9]
318 // VI9
: s_setreg_b32 hwreg
(HW_REG_GPR_ALLOC
, 1, 31), s2 ; encoding
: [0x45,0xf0,0x02,0xb9]
319 // GFX10
: s_setreg_b32 hwreg
(HW_REG_GPR_ALLOC
, 1, 31), s2 ; encoding
: [0x45,0xf0,0x82,0xb9]
320 // GFX11
: s_setreg_b32 hwreg
(HW_REG_GPR_ALLOC
, 1, 31), s2 ; encoding
: [0x45,0xf0,0x02,0xb9]
322 // HW register code of unknown HW register
, valid symbolic name range but no name available
323 s_setreg_b32 hwreg
(10), s2
324 // SICI
: s_setreg_b32 hwreg
(10), s2 ; encoding
: [0x0a,0xf8,0x82,0xb9]
325 // VI9
: s_setreg_b32 hwreg
(10), s2 ; encoding
: [0x0a,0xf8,0x02,0xb9]
326 // GFX10
: s_setreg_b32 hwreg
(10), s2 ; encoding
: [0x0a,0xf8,0x82,0xb9]
327 // GFX11
: s_setreg_b32 hwreg
(10), s2 ; encoding
: [0x0a,0xf8,0x02,0xb9]
329 // HW_REG_SH_MEM_BASES valid starting from GFX9
330 s_setreg_b32 hwreg
(15), s2
331 // SICI
: s_setreg_b32 hwreg
(15), s2 ; encoding
: [0x0f,0xf8,0x82,0xb9]
332 // VI
: s_setreg_b32 hwreg
(15), s2 ; encoding
: [0x0f,0xf8,0x02,0xb9]
333 // GFX9
: s_setreg_b32 hwreg
(HW_REG_SH_MEM_BASES
), s2 ; encoding
: [0x0f,0xf8,0x02,0xb9]
334 // GFX10
: s_setreg_b32 hwreg
(HW_REG_SH_MEM_BASES
), s2 ; encoding
: [0x0f,0xf8,0x82,0xb9]
335 // GFX11
: s_setreg_b32 hwreg
(HW_REG_SH_MEM_BASES
), s2 ; encoding
: [0x0f,0xf8,0x02,0xb9]
337 s_setreg_b32 hwreg
(16), s2
338 // SICI
: s_setreg_b32 hwreg
(16), s2 ; encoding
: [0x10,0xf8,0x82,0xb9]
339 // GFX10
: s_setreg_b32 hwreg
(HW_REG_TBA_LO
), s2 ; encoding
: [0x10,0xf8,0x82,0xb9]
340 // GFX11
: s_setreg_b32 hwreg
(16), s2 ; encoding
: [0x10,0xf8,0x02,0xb9]
341 // GFX9
: s_setreg_b32 hwreg
(HW_REG_TBA_LO
), s2 ; encoding
: [0x10,0xf8,0x02,0xb9]
342 // VI
: s_setreg_b32 hwreg
(16), s2 ; encoding
: [0x10,0xf8,0x02,0xb9]
344 s_setreg_b32 hwreg
(17), s2
345 // SICI
: s_setreg_b32 hwreg
(17), s2 ; encoding
: [0x11,0xf8,0x82,0xb9]
346 // GFX10
: s_setreg_b32 hwreg
(HW_REG_TBA_HI
), s2 ; encoding
: [0x11,0xf8,0x82,0xb9]
347 // GFX11
: s_setreg_b32 hwreg
(17), s2 ; encoding
: [0x11,0xf8,0x02,0xb9]
348 // GFX9
: s_setreg_b32 hwreg
(HW_REG_TBA_HI
), s2 ; encoding
: [0x11,0xf8,0x02,0xb9]
349 // VI
: s_setreg_b32 hwreg
(17), s2 ; encoding
: [0x11,0xf8,0x02,0xb9]
351 s_setreg_b32 hwreg
(18), s2
352 // SICI
: s_setreg_b32 hwreg
(18), s2 ; encoding
: [0x12,0xf8,0x82,0xb9]
353 // GFX10
: s_setreg_b32 hwreg
(HW_REG_TMA_LO
), s2 ; encoding
: [0x12,0xf8,0x82,0xb9]
354 // GFX11
: s_setreg_b32 hwreg
(HW_REG_PERF_SNAPSHOT_PC_LO
), s2 ; encoding
: [0x12,0xf8,0x02,0xb9]
355 // GFX9
: s_setreg_b32 hwreg
(HW_REG_TMA_LO
), s2 ; encoding
: [0x12,0xf8,0x02,0xb9]
356 // VI
: s_setreg_b32 hwreg
(18), s2 ; encoding
: [0x12,0xf8,0x02,0xb9]
358 s_setreg_b32 hwreg
(19), s2
359 // SICI
: s_setreg_b32 hwreg
(19), s2 ; encoding
: [0x13,0xf8,0x82,0xb9]
360 // GFX10
: s_setreg_b32 hwreg
(HW_REG_TMA_HI
), s2 ; encoding
: [0x13,0xf8,0x82,0xb9]
361 // GFX11
: s_setreg_b32 hwreg
(HW_REG_PERF_SNAPSHOT_PC_HI
), s2 ; encoding
: [0x13,0xf8,0x02,0xb9]
362 // GFX9
: s_setreg_b32 hwreg
(HW_REG_TMA_HI
), s2 ; encoding
: [0x13,0xf8,0x02,0xb9]
363 // VI
: s_setreg_b32 hwreg
(19), s2 ; encoding
: [0x13,0xf8,0x02,0xb9]
366 s_setreg_b32 hwreg
(20), s2
367 // SICI
: s_setreg_b32 hwreg
(20), s2 ; encoding
: [0x14,0xf8,0x82,0xb9]
368 // VI9
: s_setreg_b32 hwreg
(20), s2 ; encoding
: [0x14,0xf8,0x02,0xb9]
369 // GFX10
: s_setreg_b32 hwreg
(HW_REG_FLAT_SCR_LO
), s2 ; encoding
: [0x14,0xf8,0x82,0xb9]
370 // GFX11
: s_setreg_b32 hwreg
(HW_REG_FLAT_SCR_LO
), s2 ; encoding
: [0x14,0xf8,0x02,0xb9]
372 s_setreg_b32 hwreg
(21), s2
373 // SICI
: s_setreg_b32 hwreg
(21), s2 ; encoding
: [0x15,0xf8,0x82,0xb9]
374 // VI9
: s_setreg_b32 hwreg
(21), s2 ; encoding
: [0x15,0xf8,0x02,0xb9]
375 // GFX10
: s_setreg_b32 hwreg
(HW_REG_FLAT_SCR_HI
), s2 ; encoding
: [0x15,0xf8,0x82,0xb9]
376 // GFX11
: s_setreg_b32 hwreg
(HW_REG_FLAT_SCR_HI
), s2 ; encoding
: [0x15,0xf8,0x02,0xb9]
378 s_setreg_b32 hwreg
(22), s2
379 // SICI
: s_setreg_b32 hwreg
(22), s2 ; encoding
: [0x16,0xf8,0x82,0xb9]
380 // VI9
: s_setreg_b32 hwreg
(22), s2 ; encoding
: [0x16,0xf8,0x02,0xb9]
381 // GFX10
: s_setreg_b32 hwreg
(HW_REG_XNACK_MASK
), s2 ; encoding
: [0x16,0xf8,0x82,0xb9]
382 // GFX11
: s_setreg_b32 hwreg
(22), s2 ; encoding
: [0x16,0xf8,0x02,0xb9]
384 s_setreg_b32 hwreg
(23), s2
385 // SICI
: s_setreg_b32 hwreg
(23), s2 ; encoding
: [0x17,0xf8,0x82,0xb9]
386 // VI9
: s_setreg_b32 hwreg
(23), s2 ; encoding
: [0x17,0xf8,0x02,0xb9]
387 // GFX10
: s_setreg_b32 hwreg
(HW_REG_HW_ID1
), s2 ; encoding
: [0x17,0xf8,0x82,0xb9]
388 // GFX11
: s_setreg_b32 hwreg
(HW_REG_HW_ID1
), s2 ; encoding
: [0x17,0xf8,0x02,0xb9]
390 s_setreg_b32 hwreg
(24), s2
391 // SICI
: s_setreg_b32 hwreg
(24), s2 ; encoding
: [0x18,0xf8,0x82,0xb9]
392 // VI9
: s_setreg_b32 hwreg
(24), s2 ; encoding
: [0x18,0xf8,0x02,0xb9]
393 // GFX10
: s_setreg_b32 hwreg
(HW_REG_HW_ID2
), s2 ; encoding
: [0x18,0xf8,0x82,0xb9]
394 // GFX11
: s_setreg_b32 hwreg
(HW_REG_HW_ID2
), s2 ; encoding
: [0x18,0xf8,0x02,0xb9]
396 s_setreg_b32 hwreg
(25), s2
397 // SICI
: s_setreg_b32 hwreg
(25), s2 ; encoding
: [0x19,0xf8,0x82,0xb9]
398 // VI9
: s_setreg_b32 hwreg
(25), s2 ; encoding
: [0x19,0xf8,0x02,0xb9]
399 // GFX10
: s_setreg_b32 hwreg
(HW_REG_POPS_PACKER
), s2 ; encoding
: [0x19,0xf8,0x82,0xb9]
400 // GFX11
: s_setreg_b32 hwreg
(25), s2 ; encoding
: [0x19,0xf8,0x02,0xb9]
402 // HW register code
, non-default offset
/width
403 s_setreg_b32 hwreg
(5, 1, 31), s2
404 // SICI
: s_setreg_b32 hwreg
(HW_REG_GPR_ALLOC
, 1, 31), s2 ; encoding
: [0x45,0xf0,0x82,0xb9]
405 // VI9
: s_setreg_b32 hwreg
(HW_REG_GPR_ALLOC
, 1, 31), s2 ; encoding
: [0x45,0xf0,0x02,0xb9]
406 // GFX10
: s_setreg_b32 hwreg
(HW_REG_GPR_ALLOC
, 1, 31), s2 ; encoding
: [0x45,0xf0,0x82,0xb9]
407 // GFX11
: s_setreg_b32 hwreg
(HW_REG_GPR_ALLOC
, 1, 31), s2 ; encoding
: [0x45,0xf0,0x02,0xb9]
409 // raw number mapped to known HW register
410 s_setreg_imm32_b32
0x6, 0xff
411 // SICI
: s_setreg_imm32_b32 hwreg
(HW_REG_LDS_ALLOC
, 0, 1), 0xff ; encoding
: [0x06,0x00,0x80,0xba,0xff,0x00,0x00,0x00]
412 // VI9
: s_setreg_imm32_b32 hwreg
(HW_REG_LDS_ALLOC
, 0, 1), 0xff ; encoding
: [0x06,0x00,0x00,0xba,0xff,0x00,0x00,0x00]
413 // GFX10
: s_setreg_imm32_b32 hwreg
(HW_REG_LDS_ALLOC
, 0, 1), 0xff ; encoding
: [0x06,0x00,0x80,0xba,0xff,0x00,0x00,0x00]
414 // GFX11
: s_setreg_imm32_b32 hwreg
(HW_REG_LDS_ALLOC
, 0, 1), 0xff ; encoding
: [0x06,0x00,0x80,0xb9,0xff,0x00,0x00,0x00]
416 // HW register identifier
, non-default offset
/width
417 s_setreg_imm32_b32 hwreg
(HW_REG_GPR_ALLOC
, 1, 31), 0xff
418 // SICI
: s_setreg_imm32_b32 hwreg
(HW_REG_GPR_ALLOC
, 1, 31), 0xff ; encoding
: [0x45,0xf0,0x80,0xba,0xff,0x00,0x00,0x00]
419 // VI9
: s_setreg_imm32_b32 hwreg
(HW_REG_GPR_ALLOC
, 1, 31), 0xff ; encoding
: [0x45,0xf0,0x00,0xba,0xff,0x00,0x00,0x00]
420 // GFX10
: s_setreg_imm32_b32 hwreg
(HW_REG_GPR_ALLOC
, 1, 31), 0xff ; encoding
: [0x45,0xf0,0x80,0xba,0xff,0x00,0x00,0x00]
421 // GFX11
: s_setreg_imm32_b32 hwreg
(HW_REG_GPR_ALLOC
, 1, 31), 0xff ; encoding
: [0x45,0xf0,0x80,0xb9,0xff,0x00,0x00,0x00]
423 //===----------------------------------------------------------------------===//
424 // expressions
and hwreg macro
425 //===----------------------------------------------------------------------===//
428 s_getreg_b32 s2
, hwreg
429 // SICI
: s_getreg_b32 s2
, hwreg
(HW_REG_LDS_ALLOC
, 0, 1) ; encoding
: [0x06,0x00,0x02,0xb9]
430 // VI9
: s_getreg_b32 s2
, hwreg
(HW_REG_LDS_ALLOC
, 0, 1) ; encoding
: [0x06,0x00,0x82,0xb8]
431 // GFX10
: s_getreg_b32 s2
, hwreg
(HW_REG_LDS_ALLOC
, 0, 1) ; encoding
: [0x06,0x00,0x02,0xb9]
432 // GFX11
: s_getreg_b32 s2
, hwreg
(HW_REG_LDS_ALLOC
, 0, 1) ; encoding
: [0x06,0x00,0x82,0xb8]
436 // SICI
: s_getreg_b32 s2
, hwreg
(HW_REG_LDS_ALLOC
, 0, 1) ; encoding
: [0x06,0x00,0x02,0xb9]
437 // VI9
: s_getreg_b32 s2
, hwreg
(HW_REG_LDS_ALLOC
, 0, 1) ; encoding
: [0x06,0x00,0x82,0xb8]
438 // GFX10
: s_getreg_b32 s2
, hwreg
(HW_REG_LDS_ALLOC
, 0, 1) ; encoding
: [0x06,0x00,0x02,0xb9]
439 // GFX11
: s_getreg_b32 s2
, hwreg
(HW_REG_LDS_ALLOC
, 0, 1) ; encoding
: [0x06,0x00,0x82,0xb8]
443 // SICI
: s_getreg_b32 s2
, hwreg
(HW_REG_LDS_ALLOC
, 0, 1) ; encoding
: [0x06,0x00,0x02,0xb9]
444 // VI9
: s_getreg_b32 s2
, hwreg
(HW_REG_LDS_ALLOC
, 0, 1) ; encoding
: [0x06,0x00,0x82,0xb8]
445 // GFX10
: s_getreg_b32 s2
, hwreg
(HW_REG_LDS_ALLOC
, 0, 1) ; encoding
: [0x06,0x00,0x02,0xb9]
446 // GFX11
: s_getreg_b32 s2
, hwreg
(HW_REG_LDS_ALLOC
, 0, 1) ; encoding
: [0x06,0x00,0x82,0xb8]
451 s_getreg_b32 s2
, hwreg
(reg
+ 1, offset
- 1, width
+ 1)
452 // SICI
: s_getreg_b32 s2
, hwreg
(51, 1, 31) ; encoding
: [0x73,0xf0,0x02,0xb9]
453 // VI9
: s_getreg_b32 s2
, hwreg
(51, 1, 31) ; encoding
: [0x73,0xf0,0x82,0xb8]
454 // GFX10
: s_getreg_b32 s2
, hwreg
(51, 1, 31) ; encoding
: [0x73,0xf0,0x02,0xb9]
455 // GFX11
: s_getreg_b32 s2
, hwreg
(51, 1, 31) ; encoding
: [0x73,0xf0,0x82,0xb8]
457 s_getreg_b32 s2
, {id
: reg
+ 1, offset
: offset
- 1, size
: width
+ 1}
458 // SICI
: s_getreg_b32 s2
, hwreg
(51, 1, 31) ; encoding
: [0x73,0xf0,0x02,0xb9]
459 // VI9
: s_getreg_b32 s2
, hwreg
(51, 1, 31) ; encoding
: [0x73,0xf0,0x82,0xb8]
460 // GFX10
: s_getreg_b32 s2
, hwreg
(51, 1, 31) ; encoding
: [0x73,0xf0,0x02,0xb9]
461 // GFX11
: s_getreg_b32 s2
, hwreg
(51, 1, 31) ; encoding
: [0x73,0xf0,0x82,0xb8]
463 s_getreg_b32 s2
, hwreg
(1 + reg
, -1 + offset
, 1 + width
)
464 // SICI
: s_getreg_b32 s2
, hwreg
(51, 1, 31) ; encoding
: [0x73,0xf0,0x02,0xb9]
465 // VI9
: s_getreg_b32 s2
, hwreg
(51, 1, 31) ; encoding
: [0x73,0xf0,0x82,0xb8]
466 // GFX10
: s_getreg_b32 s2
, hwreg
(51, 1, 31) ; encoding
: [0x73,0xf0,0x02,0xb9]
467 // GFX11
: s_getreg_b32 s2
, hwreg
(51, 1, 31) ; encoding
: [0x73,0xf0,0x82,0xb8]
469 s_getreg_b32 s2
, {id
: 1 + reg
, offset
: -1 + offset
, size
: 1 + width
}
470 // SICI
: s_getreg_b32 s2
, hwreg
(51, 1, 31) ; encoding
: [0x73,0xf0,0x02,0xb9]
471 // VI9
: s_getreg_b32 s2
, hwreg
(51, 1, 31) ; encoding
: [0x73,0xf0,0x82,0xb8]
472 // GFX10
: s_getreg_b32 s2
, hwreg
(51, 1, 31) ; encoding
: [0x73,0xf0,0x02,0xb9]
473 // GFX11
: s_getreg_b32 s2
, hwreg
(51, 1, 31) ; encoding
: [0x73,0xf0,0x82,0xb8]
475 //===----------------------------------------------------------------------===//
477 //===----------------------------------------------------------------------===//
479 s_endpgm_ordered_ps_done
480 // GFX9
: s_endpgm_ordered_ps_done ; encoding
: [0x00,0x00,0x9e,0xbf]
481 // NOSICIVI
: :[[@LINE-
2]]:{{[0-9]+}}: error
: instruction
not supported on this GPU
482 // GFX10
: s_endpgm_ordered_ps_done ; encoding
: [0x00,0x00,0x9e,0xbf]
483 // NOGFX11
: :[[@LINE-
4]]:{{[0-9]+}}: error
: instruction
not supported on this GPU
485 s_call_b64 null
, 12609
486 // GFX10
: s_call_b64 null
, 12609 ; encoding
: [0x41,0x31,0x7d,0xbb]
487 // NOSICIVI
: :[[@LINE-
2]]:{{[0-9]+}}: error
: instruction
not supported on this GPU
488 // NOGFX9
: :[[@LINE-
3]]:{{[0-9]+}}: error
: 'null' operand is
not supported on this GPU
489 // GFX11
: s_call_b64 null
, 12609 ; encoding
: [0x41,0x31,0x7c,0xba]
491 s_call_b64 s
[12:13], 12609
492 // GFX9
: s_call_b64 s
[12:13], 12609 ; encoding
: [0x41,0x31,0x8c,0xba]
493 // NOSICIVI
: :[[@LINE-
2]]:{{[0-9]+}}: error
: instruction
not supported on this GPU
494 // GFX10
: s_call_b64 s
[12:13], 12609 ; encoding
: [0x41,0x31,0x0c,0xbb]
495 // GFX11
: s_call_b64 s
[12:13], 12609 ; encoding
: [0x41,0x31,0x0c,0xba]
497 s_call_b64 s
[100:101], 12609
498 // GFX9
: s_call_b64 s
[100:101], 12609 ; encoding
: [0x41,0x31,0xe4,0xba]
499 // NOSICIVI
: :[[@LINE-
2]]:{{[0-9]+}}: error
: instruction
not supported on this GPU
500 // GFX10
: s_call_b64 s
[100:101], 12609 ; encoding
: [0x41,0x31,0x64,0xbb]
501 // GFX11
: s_call_b64 s
[100:101], 12609 ; encoding
: [0x41,0x31,0x64,0xba]
503 s_call_b64 s
[10:11], 49617
504 // GFX9
: s_call_b64 s
[10:11], 49617 ; encoding
: [0xd1,0xc1,0x8a,0xba]
505 // NOSICIVI
: :[[@LINE-
2]]:{{[0-9]+}}: error
: instruction
not supported on this GPU
506 // GFX10
: s_call_b64 s
[10:11], 49617 ; encoding
: [0xd1,0xc1,0x0a,0xbb]
507 // GFX11
: s_call_b64 s
[10:11], 49617 ; encoding
: [0xd1,0xc1,0x0a,0xba]
510 s_call_b64 s
[0:1], offset
+ 4
511 // GFX9
: s_call_b64 s
[0:1], 8 ; encoding
: [0x08,0x00,0x80,0xba]
512 // NOSICIVI
: :[[@LINE-
2]]:{{[0-9]+}}: error
: instruction
not supported on this GPU
513 // GFX10
: s_call_b64 s
[0:1], 8 ; encoding
: [0x08,0x00,0x00,0xbb]
514 // GFX11
: s_call_b64 s
[0:1], 8 ; encoding
: [0x08,0x00,0x00,0xba]
517 s_call_b64 s
[0:1], 4 + offset
518 // GFX9
: s_call_b64 s
[0:1], 8 ; encoding
: [0x08,0x00,0x80,0xba]
519 // NOSICIVI
: :[[@LINE-
2]]:{{[0-9]+}}: error
: instruction
not supported on this GPU
520 // GFX10
: s_call_b64 s
[0:1], 8 ; encoding
: [0x08,0x00,0x00,0xbb]
521 // GFX11
: s_call_b64 s
[0:1], 8 ; encoding
: [0x08,0x00,0x00,0xba]