1 // RUN
: not llvm-mc
-arch
=amdgcn
-mcpu
=tahiti
-show-encoding
%s | FileCheck
-check-prefix
=GCN
-check-prefix
=SICI
%s
2 // RUN
: not llvm-mc
-arch
=amdgcn
-mcpu
=kaveri
-show-encoding
%s | FileCheck
-check-prefix
=GCN
-check-prefix
=SICI
%s
3 // RUN
: not llvm-mc
-arch
=amdgcn
-mcpu
=tonga
-show-encoding
%s | FileCheck
-check-prefix
=GCN
-check-prefix
=VI
-check-prefix
=GFX89
%s
4 // RUN
: not llvm-mc
-arch
=amdgcn
-mcpu
=gfx900
-show-encoding
%s | FileCheck
-check-prefix
=GCN
-check-prefix
=GFX89
-check-prefix
=GFX9
%s
5 // RUN
: not llvm-mc
-arch
=amdgcn
-mcpu
=tahiti
%s
2>&1 | FileCheck
-check-prefix
=NOSICI
-check-prefix
=NOSICIVI
%s
6 // RUN
: not llvm-mc
-arch
=amdgcn
-mcpu
=bonaire
%s
2>&1 | FileCheck
-check-prefix
=NOSICI
-check-prefix
=NOSICIVI
%s
7 // RUN
: not llvm-mc
-arch
=amdgcn
-mcpu
=kaveri
%s
2>&1 | FileCheck
-check-prefix
=NOSICI
-check-prefix
=NOSICIVI
%s
8 // RUN
: not llvm-mc
-arch
=amdgcn
-mcpu
=tonga
%s
2>&1 | FileCheck
-check-prefix
=NOSICIVI
-check-prefix
=NOVI
%s
9 // RUN
: not llvm-mc
-arch
=amdgcn
-mcpu
=gfx900
%s
2>&1 | FileCheck
-check-prefix
=NOGFX9
%s
12 // GFX89
: s_dcache_wb ; encoding
: [0x00,0x00,0x84,0xc0,0x00,0x00,0x00,0x00]
13 // NOSICI
: error
: instruction
not supported on this GPU
16 // GFX89
: s_dcache_wb_vol ; encoding
: [0x00,0x00,0x8c,0xc0,0x00,0x00,0x00,0x00]
17 // NOSICI
: error
: instruction
not supported on this GPU
19 s_atc_probe
0x7, s
[4:5], s0
20 // GFX89
: s_atc_probe
7, s
[4:5], s0 ; encoding
: [0xc2,0x01,0x98,0xc0,0x00,0x00,0x00,0x00]
21 // NOSICI
: error
: instruction
not supported on this GPU
23 s_atc_probe
0x0, s
[4:5], 0x0
24 // GFX89
: s_atc_probe
0, s
[4:5], 0x0 ; encoding
: [0x02,0x00,0x9a,0xc0,0x00,0x00,0x00,0x00]
25 // NOSICI
: error
: instruction
not supported on this GPU
27 s_atc_probe_buffer
0x1, s
[8:11], s0
28 // GFX89
: s_atc_probe_buffer
1, s
[8:11], s0 ; encoding
: [0x44,0x00,0x9c,0xc0,0x00,0x00,0x00,0x00]
29 // NOSICI
: error
: instruction
not supported on this GPU
31 s_atc_probe_buffer
0x0, s
[8:11], s101
32 // GFX89
: s_atc_probe_buffer
0, s
[8:11], s101 ; encoding
: [0x04,0x00,0x9c,0xc0,0x65,0x00,0x00,0x00]
33 // NOSICI
: error
: instruction
not supported on this GPU
36 // GFX89
: s_memrealtime s
[4:5] ; encoding
: [0x00,0x01,0x94,0xc0,0x00,0x00,0x00,0x00]
37 // NOSICI
: error
: instruction
not supported on this GPU
40 // VI
: s_memrealtime tba ; encoding
: [0x00,0x1b,0x94,0xc0,0x00,0x00,0x00,0x00]
41 // NOSICI
: error
: instruction
not supported on this GPU
42 // NOGFX9
: error
: not a valid operand.
45 // VI
: s_memrealtime tma ; encoding
: [0x80,0x1b,0x94,0xc0,0x00,0x00,0x00,0x00]
46 // NOSICI
: error
: instruction
not supported on this GPU
47 // NOGFX9
: error
: not a valid operand.
49 s_memrealtime ttmp
[0:1]
50 // VI
: s_memrealtime ttmp
[0:1] ; encoding
: [0x00,0x1c,0x94,0xc0,0x00,0x00,0x00,0x00]
51 // GFX9
: s_memrealtime ttmp
[0:1] ; encoding
: [0x00,0x1b,0x94,0xc0,0x00,0x00,0x00,0x00]
52 // NOSICI
: error
: instruction
not supported on this GPU
54 // FIXME
: Should error about instruction on GPU
55 s_store_dword s1
, s
[2:3], 0xfc
56 // GFX89
: s_store_dword s1
, s
[2:3], 0xfc ; encoding
: [0x41,0x00,0x42,0xc0,0xfc,0x00,0x00,0x00]
57 // NOSICI
: error
: instruction
not supported on this GPU
59 s_store_dword s1
, s
[2:3], 0xfc glc
60 // GFX89
: s_store_dword s1
, s
[2:3], 0xfc glc ; encoding
: [0x41,0x00,0x43,0xc0,0xfc,0x00,0x00,0x00]
61 // NOSICI
: error
: invalid operand for instruction
63 s_store_dword s1
, s
[2:3], s4
64 // GFX89
: s_store_dword s1
, s
[2:3], s4 ; encoding
: [0x41,0x00,0x40,0xc0,0x04,0x00,0x00,0x00]
65 // NOSICI
: error
: instruction
not supported on this GPU
67 s_store_dword s1
, s
[2:3], s4 glc
68 // GFX89
: s_store_dword s1
, s
[2:3], s4 glc ; encoding
: [0x41,0x00,0x41,0xc0,0x04,0x00,0x00,0x00]
69 // NOSICI
: error
: invalid operand for instruction
71 s_store_dword tba_lo
, s
[2:3], s4
72 // VI
: s_store_dword tba_lo
, s
[2:3], s4 ; encoding
: [0x01,0x1b,0x40,0xc0,0x04,0x00,0x00,0x00]
73 // NOSICI
: error
: instruction
not supported on this GPU
74 // NOGFX9
: error
: not a valid operand.
76 s_store_dword tba_hi
, s
[2:3], s4
77 // VI
: s_store_dword tba_hi
, s
[2:3], s4 ; encoding
: [0x41,0x1b,0x40,0xc0,0x04,0x00,0x00,0x00]
78 // NOSICI
: error
: instruction
not supported on this GPU
79 // NOGFX9
: error
: not a valid operand.
81 s_store_dword tma_lo
, s
[2:3], s4
82 // VI
: s_store_dword tma_lo
, s
[2:3], s4 ; encoding
: [0x81,0x1b,0x40,0xc0,0x04,0x00,0x00,0x00]
83 // NOSICI
: error
: instruction
not supported on this GPU
84 // NOGFX9
: error
: not a valid operand.
86 s_store_dword tma_hi
, s
[2:3], s4
87 // VI
: s_store_dword tma_hi
, s
[2:3], s4 ; encoding
: [0xc1,0x1b,0x40,0xc0,0x04,0x00,0x00,0x00]
88 // NOSICI
: error
: instruction
not supported on this GPU
89 // NOGFX9
: error
: not a valid operand.
91 // FIXME
: Should error on SI instead of silently ignoring glc
92 s_load_dword s1
, s
[2:3], 0xfc glc
93 // GFX89
: s_load_dword s1
, s
[2:3], 0xfc glc ; encoding
: [0x41,0x00,0x03,0xc0,0xfc,0x00,0x00,0x00]
95 s_load_dword s1
, s
[2:3], s4 glc
96 // GFX89
: s_load_dword s1
, s
[2:3], s4 glc ; encoding
: [0x41,0x00,0x01,0xc0,0x04,0x00,0x00,0x00]
98 s_buffer_store_dword s10
, s
[92:95], m0
99 // GFX89
: s_buffer_store_dword s10
, s
[92:95], m0 ; encoding
: [0xae,0x02,0x60,0xc0,0x7c,0x00,0x00,0x00]
100 // NOSICI
: error
: instruction
not supported on this GPU
102 s_buffer_store_dword tba_lo
, s
[92:95], m0
103 // VI
: s_buffer_store_dword tba_lo
, s
[92:95], m0 ; encoding
: [0x2e,0x1b,0x60,0xc0,0x7c,0x00,0x00,0x00]
104 // NOSICI
: error
: instruction
not supported on this GPU
105 // NOGFX9
: error
: not a valid operand.
107 s_buffer_store_dword tba_hi
, s
[92:95], m0
108 // VI
: s_buffer_store_dword tba_hi
, s
[92:95], m0 ; encoding
: [0x6e,0x1b,0x60,0xc0,0x7c,0x00,0x00,0x00]
109 // NOSICI
: error
: instruction
not supported on this GPU
110 // NOGFX9
: error
: not a valid operand.
112 s_buffer_store_dword tma_lo
, s
[92:95], m0
113 // VI
: s_buffer_store_dword tma_lo
, s
[92:95], m0 ; encoding
: [0xae,0x1b,0x60,0xc0,0x7c,0x00,0x00,0x00]
114 // NOSICI
: error
: instruction
not supported on this GPU
115 // NOGFX9
: error
: not a valid operand.
117 s_buffer_store_dword tma_hi
, s
[92:95], m0
118 // VI
: s_buffer_store_dword tma_hi
, s
[92:95], m0 ; encoding
: [0xee,0x1b,0x60,0xc0,0x7c,0x00,0x00,0x00]
119 // NOSICI
: error
: instruction
not supported on this GPU
120 // NOGFX9
: error
: not a valid operand.
122 s_buffer_store_dword ttmp0
, s
[92:95], m0
123 // VI
: s_buffer_store_dword ttmp0
, s
[92:95], m0 ; encoding
: [0x2e,0x1c,0x60,0xc0,0x7c,0x00,0x00,0x00]
124 // GFX9
: s_buffer_store_dword ttmp0
, s
[92:95], m0 ; encoding
: [0x2e,0x1b,0x60,0xc0,0x7c,0x00,0x00,0x00]
125 // NOSICI
: error
: instruction
not supported on this GPU
127 s_buffer_store_dwordx2 s
[10:11], s
[92:95], m0
128 // GFX89
: s_buffer_store_dwordx2 s
[10:11], s
[92:95], m0 ; encoding
: [0xae,0x02,0x64,0xc0,0x7c,0x00,0x00,0x00]
129 // NOSICI
: error
: instruction
not supported on this GPU
131 s_buffer_store_dwordx4 s
[8:11], s
[92:95], m0 glc
132 // GFX89
: s_buffer_store_dwordx4 s
[8:11], s
[92:95], m0 glc ; encoding
: [0x2e,0x02,0x69,0xc0,0x7c,0x00,0x00,0x00]
133 // NOSICI
: error
: invalid operand for instruction
135 s_buffer_store_dwordx2 tba
, s
[92:95], m0 glc
136 // VI
: s_buffer_store_dwordx2 tba
, s
[92:95], m0 glc ; encoding
: [0x2e,0x1b,0x65,0xc0,0x7c,0x00,0x00,0x00]
137 // NOSICI
: error
: invalid operand for instruction
138 // NOGFX9
: error
: not a valid operand.
140 s_buffer_load_dword s10
, s
[92:95], m0
141 // GFX89
: s_buffer_load_dword s10
, s
[92:95], m0 ; encoding
: [0xae,0x02,0x20,0xc0,0x7c,0x00,0x00,0x00]
142 // SICI
: s_buffer_load_dword s10
, s
[92:95], m0 ; encoding
: [0x7c,0x5c,0x05,0xc2]
144 s_buffer_load_dword tba_lo
, s
[92:95], m0
145 // VI
: s_buffer_load_dword tba_lo
, s
[92:95], m0 ; encoding
: [0x2e,0x1b,0x20,0xc0,0x7c,0x00,0x00,0x00]
146 // SICI
: s_buffer_load_dword tba_lo
, s
[92:95], m0 ; encoding
: [0x7c,0x5c,0x36,0xc2]
147 // NOGFX9
: error
: not a valid operand.
149 s_buffer_load_dword tba_hi
, s
[92:95], m0
150 // VI
: s_buffer_load_dword tba_hi
, s
[92:95], m0 ; encoding
: [0x6e,0x1b,0x20,0xc0,0x7c,0x00,0x00,0x00]
151 // SICI
: s_buffer_load_dword tba_hi
, s
[92:95], m0 ; encoding
: [0x7c,0xdc,0x36,0xc2]
152 // NOGFX9
: error
: not a valid operand.
154 s_buffer_load_dword tma_lo
, s
[92:95], m0
155 // VI
: s_buffer_load_dword tma_lo
, s
[92:95], m0 ; encoding
: [0xae,0x1b,0x20,0xc0,0x7c,0x00,0x00,0x00]
156 // SICI
: s_buffer_load_dword tma_lo
, s
[92:95], m0 ; encoding
: [0x7c,0x5c,0x37,0xc2]
157 // NOGFX9
: error
: not a valid operand.
159 s_buffer_load_dword tma_hi
, s
[92:95], m0
160 // VI
: s_buffer_load_dword tma_hi
, s
[92:95], m0 ; encoding
: [0xee,0x1b,0x20,0xc0,0x7c,0x00,0x00,0x00]
161 // SICI
: s_buffer_load_dword tma_hi
, s
[92:95], m0 ; encoding
: [0x7c,0xdc,0x37,0xc2]
162 // NOGFX9
: error
: not a valid operand.
164 s_buffer_load_dword ttmp0
, s
[92:95], m0
165 // VI
: s_buffer_load_dword ttmp0
, s
[92:95], m0 ; encoding
: [0x2e,0x1c,0x20,0xc0,0x7c,0x00,0x00,0x00]
166 // GFX9
: s_buffer_load_dword ttmp0
, s
[92:95], m0 ; encoding
: [0x2e,0x1b,0x20,0xc0,0x7c,0x00,0x00,0x00]
167 // SICI
: s_buffer_load_dword ttmp0
, s
[92:95], m0 ; encoding
: [0x7c,0x5c,0x38,0xc2]
169 s_buffer_load_dwordx2 s
[10:11], s
[92:95], m0
170 // GFX89
: s_buffer_load_dwordx2 s
[10:11], s
[92:95], m0 ; encoding
: [0xae,0x02,0x24,0xc0,0x7c,0x00,0x00,0x00]
171 // SICI
: s_buffer_load_dwordx2 s
[10:11], s
[92:95], m0 ; encoding
: [0x7c,0x5c,0x45,0xc2]
173 s_buffer_load_dwordx2 tba
, s
[92:95], m0
174 // VI
: s_buffer_load_dwordx2 tba
, s
[92:95], m0 ; encoding
: [0x2e,0x1b,0x24,0xc0,0x7c,0x00,0x00,0x00]
175 // SICI
: s_buffer_load_dwordx2 tba
, s
[92:95], m0 ; encoding
: [0x7c,0x5c,0x76,0xc2]
176 // NOGFX9
: error
: not a valid operand.
178 s_buffer_load_dwordx2 tma
, s
[92:95], m0
179 // VI
: s_buffer_load_dwordx2 tma
, s
[92:95], m0 ; encoding
: [0xae,0x1b,0x24,0xc0,0x7c,0x00,0x00,0x00]
180 // SICI
: s_buffer_load_dwordx2 tma
, s
[92:95], m0 ; encoding
: [0x7c,0x5c,0x77,0xc2]
181 // NOGFX9
: error
: not a valid operand.
183 s_buffer_load_dwordx2 ttmp
[0:1], s
[92:95], m0
184 // VI
: s_buffer_load_dwordx2 ttmp
[0:1], s
[92:95], m0 ; encoding
: [0x2e,0x1c,0x24,0xc0,0x7c,0x00,0x00,0x00]
185 // GFX9
: s_buffer_load_dwordx2 ttmp
[0:1], s
[92:95], m0 ; encoding
: [0x2e,0x1b,0x24,0xc0,0x7c,0x00,0x00,0x00]
186 // SICI
: s_buffer_load_dwordx2 ttmp
[0:1], s
[92:95], m0 ; encoding
: [0x7c,0x5c,0x78,0xc2]
188 // FIXME
: Should error on SI instead of silently ignoring glc
189 s_buffer_load_dwordx4 s
[8:11], s
[92:95], m0 glc
190 // GFX89
: s_buffer_load_dwordx4 s
[8:11], s
[92:95], m0 glc ; encoding
: [0x2e,0x02,0x29,0xc0,0x7c,0x00,0x00,0x00]
192 //===----------------------------------------------------------------------===//
193 // s_scratch instructions
194 //===----------------------------------------------------------------------===//
196 s_scratch_load_dword s5
, s
[2:3], s101
197 // GFX9
: s_scratch_load_dword s5
, s
[2:3], s101 ; encoding
: [0x41,0x01,0x14,0xc0,0x65,0x00,0x00,0x00]
198 // NOSICIVI
: error
: instruction
not supported on this GPU
200 s_scratch_load_dword s5
, s
[2:3], s0 glc
201 // GFX9
: s_scratch_load_dword s5
, s
[2:3], s0 glc ; encoding
: [0x41,0x01,0x15,0xc0,0x00,0x00,0x00,0x00]
204 s_scratch_load_dwordx2 s
[100:101], s
[2:3], s0
205 // GFX9
: s_scratch_load_dwordx2 s
[100:101], s
[2:3], s0 ; encoding
: [0x01,0x19,0x18,0xc0,0x00,0x00,0x00,0x00]
206 // NOSICIVI
: error
: instruction
not supported on this GPU
208 s_scratch_load_dwordx2 s
[10:11], s
[2:3], 0x1 glc
209 // GFX9
: s_scratch_load_dwordx2 s
[10:11], s
[2:3], 0x1 glc ; encoding
: [0x81,0x02,0x1b,0xc0,0x01,0x00,0x00,0x00]
212 s_scratch_load_dwordx4 s
[20:23], s
[4:5], s0
213 // GFX9
: s_scratch_load_dwordx4 s
[20:23], s
[4:5], s0 ; encoding
: [0x02,0x05,0x1c,0xc0,0x00,0x00,0x00,0x00]
214 // NOSICIVI
: error
: instruction
not supported on this GPU
216 s_scratch_store_dword s101
, s
[4:5], s0
217 // GFX9
: s_scratch_store_dword s101
, s
[4:5], s0 ; encoding
: [0x42,0x19,0x54,0xc0,0x00,0x00,0x00,0x00]
218 // NOSICIVI
: error
: instruction
not supported on this GPU
220 s_scratch_store_dword s1
, s
[4:5], 0x123 glc
221 // GFX9
: s_scratch_store_dword s1
, s
[4:5], 0x123 glc ; encoding
: [0x42,0x00,0x57,0xc0,0x23,0x01,0x00,0x00]
224 s_scratch_store_dwordx2 s
[2:3], s
[4:5], s101 glc
225 // GFX9
: s_scratch_store_dwordx2 s
[2:3], s
[4:5], s101 glc ; encoding
: [0x82,0x00,0x59,0xc0,0x65,0x00,0x00,0x00]
228 s_scratch_store_dwordx4 s
[4:7], s
[4:5], s0 glc
229 // GFX9
: s_scratch_store_dwordx4 s
[4:7], s
[4:5], s0 glc ; encoding
: [0x02,0x01,0x5d,0xc0,0x00,0x00,0x00,0x00]
232 //===----------------------------------------------------------------------===//
233 // s_dcache_discard instructions
234 //===----------------------------------------------------------------------===//
236 s_dcache_discard s
[2:3], s0
237 // GFX9
: s_dcache_discard s
[2:3], s0 ; encoding
: [0x01,0x00,0xa0,0xc0,0x00,0x00,0x00,0x00]
238 // NOSICIVI
: error
: instruction
not supported on this GPU
240 s_dcache_discard s
[2:3], 0x0
241 // GFX9
: s_dcache_discard s
[2:3], 0x0 ; encoding
: [0x01,0x00,0xa2,0xc0,0x00,0x00,0x00,0x00]
242 // NOSICIVI
: error
: instruction
not supported on this GPU
244 s_dcache_discard_x2 s
[2:3], s101
245 // GFX9
: s_dcache_discard_x2 s
[2:3], s101 ; encoding
: [0x01,0x00,0xa4,0xc0,0x65,0x00,0x00,0x00]
246 // NOSICIVI
: error
: instruction
not supported on this GPU
248 s_dcache_discard_x2 s
[2:3], 0x0
249 // GFX9
: s_dcache_discard_x2 s
[2:3], 0x0 ; encoding
: [0x01,0x00,0xa6,0xc0,0x00,0x00,0x00,0x00]
250 // NOSICIVI
: error
: instruction
not supported on this GPU
252 //===----------------------------------------------------------------------===//
253 // s_atomic instructions
254 //===----------------------------------------------------------------------===//
256 s_atomic_add s5
, s
[2:3], s101
257 // GFX9
: s_atomic_add s5
, s
[2:3], s101 ; encoding
: [0x41,0x01,0x08,0xc2,0x65,0x00,0x00,0x00]
260 s_atomic_add s5
, s
[2:3], 0x0
261 // GFX9
: s_atomic_add s5
, s
[2:3], 0x0 ; encoding
: [0x41,0x01,0x0a,0xc2,0x00,0x00,0x00,0x00]
264 s_atomic_add s5
, s
[2:3], s0 glc
265 // GFX9
: s_atomic_add s5
, s
[2:3], s0 glc ; encoding
: [0x41,0x01,0x09,0xc2,0x00,0x00,0x00,0x00]
268 s_atomic_add_x2 s
[10:11], s
[2:3], s101
269 // GFX9
: s_atomic_add_x2 s
[10:11], s
[2:3], s101 ; encoding
: [0x81,0x02,0x88,0xc2,0x65,0x00,0x00,0x00]
272 s_atomic_and s5
, s
[2:3], s101
273 // GFX9
: s_atomic_and s5
, s
[2:3], s101 ; encoding
: [0x41,0x01,0x20,0xc2,0x65,0x00,0x00,0x00]
276 s_atomic_and_x2 s
[10:11], s
[2:3], 0x0
277 // GFX9
: s_atomic_and_x2 s
[10:11], s
[2:3], 0x0 ; encoding
: [0x81,0x02,0xa2,0xc2,0x00,0x00,0x00,0x00]
280 s_atomic_cmpswap s
[10:11], s
[2:3], s101
281 // GFX9
: s_atomic_cmpswap s
[10:11], s
[2:3], s101 ; encoding
: [0x81,0x02,0x04,0xc2,0x65,0x00,0x00,0x00]
284 s_atomic_cmpswap s
[10:11], s
[2:3], 0x0
285 // GFX9
: s_atomic_cmpswap s
[10:11], s
[2:3], 0x0 ; encoding
: [0x81,0x02,0x06,0xc2,0x00,0x00,0x00,0x00]
288 s_atomic_cmpswap s
[10:11], s
[2:3], s0 glc
289 // GFX9
: s_atomic_cmpswap s
[10:11], s
[2:3], s0 glc ; encoding
: [0x81,0x02,0x05,0xc2,0x00,0x00,0x00,0x00]
292 s_atomic_cmpswap_x2 s
[20:23], s
[2:3], s101
293 // GFX9
: s_atomic_cmpswap_x2 s
[20:23], s
[2:3], s101 ; encoding
: [0x01,0x05,0x84,0xc2,0x65,0x00,0x00,0x00]
296 s_atomic_cmpswap_x2 s
[20:23], s
[2:3], 0x0
297 // GFX9
: s_atomic_cmpswap_x2 s
[20:23], s
[2:3], 0x0 ; encoding
: [0x01,0x05,0x86,0xc2,0x00,0x00,0x00,0x00]
300 s_atomic_cmpswap_x2 s
[20:23], s
[2:3], s0 glc
301 // GFX9
: s_atomic_cmpswap_x2 s
[20:23], s
[2:3], s0 glc ; encoding
: [0x01,0x05,0x85,0xc2,0x00,0x00,0x00,0x00]
304 s_atomic_dec s5
, s
[2:3], s0 glc
305 // GFX9
: s_atomic_dec s5
, s
[2:3], s0 glc ; encoding
: [0x41,0x01,0x31,0xc2,0x00,0x00,0x00,0x00]
308 s_atomic_dec_x2 s
[10:11], s
[2:3], s101
309 // GFX9
: s_atomic_dec_x2 s
[10:11], s
[2:3], s101 ; encoding
: [0x81,0x02,0xb0,0xc2,0x65,0x00,0x00,0x00]
312 s_atomic_inc s5
, s
[2:3], s0 glc
313 // GFX9
: s_atomic_inc s5
, s
[2:3], s0 glc ; encoding
: [0x41,0x01,0x2d,0xc2,0x00,0x00,0x00,0x00]
316 s_atomic_inc_x2 s
[10:11], s
[2:3], s101
317 // GFX9
: s_atomic_inc_x2 s
[10:11], s
[2:3], s101 ; encoding
: [0x81,0x02,0xac,0xc2,0x65,0x00,0x00,0x00]
320 s_atomic_or s5
, s
[2:3], 0x0
321 // GFX9
: s_atomic_or s5
, s
[2:3], 0x0 ; encoding
: [0x41,0x01,0x26,0xc2,0x00,0x00,0x00,0x00]
324 s_atomic_or_x2 s
[10:11], s
[2:3], s0 glc
325 // GFX9
: s_atomic_or_x2 s
[10:11], s
[2:3], s0 glc ; encoding
: [0x81,0x02,0xa5,0xc2,0x00,0x00,0x00,0x00]
328 s_atomic_smax s5
, s
[2:3], s101
329 // GFX9
: s_atomic_smax s5
, s
[2:3], s101 ; encoding
: [0x41,0x01,0x18,0xc2,0x65,0x00,0x00,0x00]
332 s_atomic_smax_x2 s
[10:11], s
[2:3], s0 glc
333 // GFX9
: s_atomic_smax_x2 s
[10:11], s
[2:3], s0 glc ; encoding
: [0x81,0x02,0x99,0xc2,0x00,0x00,0x00,0x00]
336 s_atomic_smin s5
, s
[2:3], s101
337 // GFX9
: s_atomic_smin s5
, s
[2:3], s101 ; encoding
: [0x41,0x01,0x10,0xc2,0x65,0x00,0x00,0x00]
340 s_atomic_smin_x2 s
[10:11], s
[2:3], s0 glc
341 // GFX9
: s_atomic_smin_x2 s
[10:11], s
[2:3], s0 glc ; encoding
: [0x81,0x02,0x91,0xc2,0x00,0x00,0x00,0x00]
344 s_atomic_sub s5
, s
[2:3], s101
345 // GFX9
: s_atomic_sub s5
, s
[2:3], s101 ; encoding
: [0x41,0x01,0x0c,0xc2,0x65,0x00,0x00,0x00]
348 s_atomic_sub_x2 s
[10:11], s
[2:3], s0 glc
349 // GFX9
: s_atomic_sub_x2 s
[10:11], s
[2:3], s0 glc ; encoding
: [0x81,0x02,0x8d,0xc2,0x00,0x00,0x00,0x00]
352 s_atomic_swap s5
, s
[2:3], s101
353 // GFX9
: s_atomic_swap s5
, s
[2:3], s101 ; encoding
: [0x41,0x01,0x00,0xc2,0x65,0x00,0x00,0x00]
356 s_atomic_swap_x2 s
[10:11], s
[2:3], s0 glc
357 // GFX9
: s_atomic_swap_x2 s
[10:11], s
[2:3], s0 glc ; encoding
: [0x81,0x02,0x81,0xc2,0x00,0x00,0x00,0x00]
360 s_atomic_umax s5
, s
[2:3], s0 glc
361 // GFX9
: s_atomic_umax s5
, s
[2:3], s0 glc ; encoding
: [0x41,0x01,0x1d,0xc2,0x00,0x00,0x00,0x00]
364 s_atomic_umax_x2 s
[10:11], s
[2:3], s101
365 // GFX9
: s_atomic_umax_x2 s
[10:11], s
[2:3], s101 ; encoding
: [0x81,0x02,0x9c,0xc2,0x65,0x00,0x00,0x00]
368 s_atomic_umin s5
, s
[2:3], s101
369 // GFX9
: s_atomic_umin s5
, s
[2:3], s101 ; encoding
: [0x41,0x01,0x14,0xc2,0x65,0x00,0x00,0x00]
372 s_atomic_umin_x2 s
[10:11], s
[2:3], s0 glc
373 // GFX9
: s_atomic_umin_x2 s
[10:11], s
[2:3], s0 glc ; encoding
: [0x81,0x02,0x95,0xc2,0x00,0x00,0x00,0x00]
376 s_atomic_xor s5
, s
[2:3], s101
377 // GFX9
: s_atomic_xor s5
, s
[2:3], s101 ; encoding
: [0x41,0x01,0x28,0xc2,0x65,0x00,0x00,0x00]
380 s_atomic_xor_x2 s
[10:11], s
[2:3], s0 glc
381 // GFX9
: s_atomic_xor_x2 s
[10:11], s
[2:3], s0 glc ; encoding
: [0x81,0x02,0xa9,0xc2,0x00,0x00,0x00,0x00]
384 //===----------------------------------------------------------------------===//
385 // s_buffer_atomic instructions
386 //===----------------------------------------------------------------------===//
388 s_buffer_atomic_add s5
, s
[4:7], s101
389 // GFX9
: s_buffer_atomic_add s5
, s
[4:7], s101 ; encoding
: [0x42,0x01,0x08,0xc1,0x65,0x00,0x00,0x00]
392 s_buffer_atomic_add s5
, s
[4:7], 0x0
393 // GFX9
: s_buffer_atomic_add s5
, s
[4:7], 0x0 ; encoding
: [0x42,0x01,0x0a,0xc1,0x00,0x00,0x00,0x00]
396 s_buffer_atomic_add s5
, s
[4:7], s0 glc
397 // GFX9
: s_buffer_atomic_add s5
, s
[4:7], s0 glc ; encoding
: [0x42,0x01,0x09,0xc1,0x00,0x00,0x00,0x00]
400 s_buffer_atomic_add_x2 s
[10:11], s
[4:7], s0
401 // GFX9
: s_buffer_atomic_add_x2 s
[10:11], s
[4:7], s0 ; encoding
: [0x82,0x02,0x88,0xc1,0x00,0x00,0x00,0x00]
404 s_buffer_atomic_and s101
, s
[4:7], s0
405 // GFX9
: s_buffer_atomic_and s101
, s
[4:7], s0 ; encoding
: [0x42,0x19,0x20,0xc1,0x00,0x00,0x00,0x00]
408 s_buffer_atomic_and_x2 s
[10:11], s
[8:11], s0
409 // GFX9
: s_buffer_atomic_and_x2 s
[10:11], s
[8:11], s0 ; encoding
: [0x84,0x02,0xa0,0xc1,0x00,0x00,0x00,0x00]
412 s_buffer_atomic_cmpswap s
[10:11], s
[4:7], s0
413 // GFX9
: s_buffer_atomic_cmpswap s
[10:11], s
[4:7], s0 ; encoding
: [0x82,0x02,0x04,0xc1,0x00,0x00,0x00,0x00]
416 s_buffer_atomic_cmpswap s
[10:11], s
[4:7], 0x0
417 // GFX9
: s_buffer_atomic_cmpswap s
[10:11], s
[4:7], 0x0 ; encoding
: [0x82,0x02,0x06,0xc1,0x00,0x00,0x00,0x00]
420 s_buffer_atomic_cmpswap s
[10:11], s
[4:7], s0 glc
421 // GFX9
: s_buffer_atomic_cmpswap s
[10:11], s
[4:7], s0 glc ; encoding
: [0x82,0x02,0x05,0xc1,0x00,0x00,0x00,0x00]
424 s_buffer_atomic_cmpswap_x2 s
[20:23], s
[4:7], s101
425 // GFX9
: s_buffer_atomic_cmpswap_x2 s
[20:23], s
[4:7], s101 ; encoding
: [0x02,0x05,0x84,0xc1,0x65,0x00,0x00,0x00]
428 s_buffer_atomic_cmpswap_x2 s
[20:23], s
[4:7], 0x0
429 // GFX9
: s_buffer_atomic_cmpswap_x2 s
[20:23], s
[4:7], 0x0 ; encoding
: [0x02,0x05,0x86,0xc1,0x00,0x00,0x00,0x00]
432 s_buffer_atomic_cmpswap_x2 s
[20:23], s
[4:7], s0 glc
433 // GFX9
: s_buffer_atomic_cmpswap_x2 s
[20:23], s
[4:7], s0 glc ; encoding
: [0x02,0x05,0x85,0xc1,0x00,0x00,0x00,0x00]
436 s_buffer_atomic_dec s5
, s
[4:7], s0
437 // GFX9
: s_buffer_atomic_dec s5
, s
[4:7], s0 ; encoding
: [0x42,0x01,0x30,0xc1,0x00,0x00,0x00,0x00]
440 s_buffer_atomic_dec_x2 s
[10:11], s
[4:7], s0 glc
441 // GFX9
: s_buffer_atomic_dec_x2 s
[10:11], s
[4:7], s0 glc ; encoding
: [0x82,0x02,0xb1,0xc1,0x00,0x00,0x00,0x00]
444 s_buffer_atomic_inc s101
, s
[4:7], s0
445 // GFX9
: s_buffer_atomic_inc s101
, s
[4:7], s0 ; encoding
: [0x42,0x19,0x2c,0xc1,0x00,0x00,0x00,0x00]
448 s_buffer_atomic_inc_x2 s
[10:11], s
[4:7], 0x0
449 // GFX9
: s_buffer_atomic_inc_x2 s
[10:11], s
[4:7], 0x0 ; encoding
: [0x82,0x02,0xae,0xc1,0x00,0x00,0x00,0x00]
452 s_buffer_atomic_or s5
, s
[8:11], s0
453 // GFX9
: s_buffer_atomic_or s5
, s
[8:11], s0 ; encoding
: [0x44,0x01,0x24,0xc1,0x00,0x00,0x00,0x00]
456 s_buffer_atomic_or_x2 s
[10:11], s
[96:99], s0
457 // GFX9
: s_buffer_atomic_or_x2 s
[10:11], s
[96:99], s0 ; encoding
: [0xb0,0x02,0xa4,0xc1,0x00,0x00,0x00,0x00]
460 s_buffer_atomic_smax s5
, s
[4:7], s101
461 // GFX9
: s_buffer_atomic_smax s5
, s
[4:7], s101 ; encoding
: [0x42,0x01,0x18,0xc1,0x65,0x00,0x00,0x00]
464 s_buffer_atomic_smax_x2 s
[100:101], s
[4:7], s0
465 // GFX9
: s_buffer_atomic_smax_x2 s
[100:101], s
[4:7], s0 ; encoding
: [0x02,0x19,0x98,0xc1,0x00,0x00,0x00,0x00]
468 s_buffer_atomic_smin s5
, s
[4:7], 0x0
469 // GFX9
: s_buffer_atomic_smin s5
, s
[4:7], 0x0 ; encoding
: [0x42,0x01,0x12,0xc1,0x00,0x00,0x00,0x00]
472 s_buffer_atomic_smin_x2 s
[12:13], s
[4:7], s0
473 // GFX9
: s_buffer_atomic_smin_x2 s
[12:13], s
[4:7], s0 ; encoding
: [0x02,0x03,0x90,0xc1,0x00,0x00,0x00,0x00]
476 s_buffer_atomic_sub s5
, s
[4:7], s0 glc
477 // GFX9
: s_buffer_atomic_sub s5
, s
[4:7], s0 glc ; encoding
: [0x42,0x01,0x0d,0xc1,0x00,0x00,0x00,0x00]
480 s_buffer_atomic_sub_x2 s
[10:11], s
[4:7], s0
481 // GFX9
: s_buffer_atomic_sub_x2 s
[10:11], s
[4:7], s0 ; encoding
: [0x82,0x02,0x8c,0xc1,0x00,0x00,0x00,0x00]
484 s_buffer_atomic_swap s5
, s
[4:7], s0
485 // GFX9
: s_buffer_atomic_swap s5
, s
[4:7], s0 ; encoding
: [0x42,0x01,0x00,0xc1,0x00,0x00,0x00,0x00]
488 s_buffer_atomic_swap_x2 s
[10:11], s
[4:7], s0 glc
489 // GFX9
: s_buffer_atomic_swap_x2 s
[10:11], s
[4:7], s0 glc ; encoding
: [0x82,0x02,0x81,0xc1,0x00,0x00,0x00,0x00]
492 s_buffer_atomic_umax s5
, s
[4:7], s0
493 // GFX9
: s_buffer_atomic_umax s5
, s
[4:7], s0 ; encoding
: [0x42,0x01,0x1c,0xc1,0x00,0x00,0x00,0x00]
496 s_buffer_atomic_umax_x2 s
[10:11], s
[4:7], s0 glc
497 // GFX9
: s_buffer_atomic_umax_x2 s
[10:11], s
[4:7], s0 glc ; encoding
: [0x82,0x02,0x9d,0xc1,0x00,0x00,0x00,0x00]
500 s_buffer_atomic_umin s5
, s
[4:7], s0
501 // GFX9
: s_buffer_atomic_umin s5
, s
[4:7], s0 ; encoding
: [0x42,0x01,0x14,0xc1,0x00,0x00,0x00,0x00]
504 s_buffer_atomic_umin_x2 s
[10:11], s
[4:7], s0 glc
505 // GFX9
: s_buffer_atomic_umin_x2 s
[10:11], s
[4:7], s0 glc ; encoding
: [0x82,0x02,0x95,0xc1,0x00,0x00,0x00,0x00]
508 s_buffer_atomic_xor s5
, s
[4:7], s0
509 // GFX9
: s_buffer_atomic_xor s5
, s
[4:7], s0 ; encoding
: [0x42,0x01,0x28,0xc1,0x00,0x00,0x00,0x00]
512 s_buffer_atomic_xor_x2 s
[10:11], s
[4:7], s0 glc
513 // GFX9
: s_buffer_atomic_xor_x2 s
[10:11], s
[4:7], s0 glc ; encoding
: [0x82,0x02,0xa9,0xc1,0x00,0x00,0x00,0x00]