[DAGCombiner] Add target hook function to decide folding (mul (add x, c1), c2)
[llvm-project.git] / llvm / test / MC / AMDGPU / smem.s
blob05559ca588e45c82433d4852839361bd5b962984
1 // RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti -show-encoding %s | FileCheck -check-prefix=SICI %s
2 // RUN: not llvm-mc -arch=amdgcn -mcpu=bonaire -show-encoding %s | FileCheck -check-prefix=SICI %s
3 // RUN: not llvm-mc -arch=amdgcn -mcpu=kaveri -show-encoding %s | FileCheck -check-prefix=SICI %s
4 // RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s | FileCheck --check-prefixes=VI,GFX89 %s
5 // RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding %s | FileCheck --check-prefixes=GFX89,GFX9 %s
6 // RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1012 -show-encoding %s | FileCheck --check-prefixes=GFX10,GFX1012 %s
7 // RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1030 -show-encoding %s | FileCheck -check-prefix=GFX10 %s
8 // RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck --check-prefixes=NOSICI,NOSICIGFX10,NOSICIGFX1030,NOSICIVIGFX1030 --implicit-check-not=error: %s
9 // RUN: not llvm-mc -arch=amdgcn -mcpu=bonaire %s 2>&1 | FileCheck --check-prefixes=NOSICI,NOSICIGFX10,NOSICIGFX1030,NOSICIVIGFX1030 --implicit-check-not=error: %s
10 // RUN: not llvm-mc -arch=amdgcn -mcpu=kaveri %s 2>&1 | FileCheck --check-prefixes=NOSICI,NOSICIGFX10,NOSICIGFX1030,NOSICIVIGFX1030 --implicit-check-not=error: %s
11 // RUN: not llvm-mc -arch=amdgcn -mcpu=tonga %s 2>&1 | FileCheck --check-prefixes=NOVI,NOSICIVIGFX1030 --implicit-check-not=error: %s
12 // RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 %s 2>&1 | FileCheck --check-prefixes=NOGFX9,NOGFX9GFX1012 --implicit-check-not=error: %s
13 // RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1012 %s 2>&1 | FileCheck --check-prefixes=NOSICIGFX10,NOGFX9,NOGFX9GFX1012 --implicit-check-not=error: %s
14 // RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1030 %s 2>&1 | FileCheck --check-prefixes=NOSICIGFX1030,NOSICIVIGFX1030,NOSICIGFX10,NOGFX9,NOGFX1030 --implicit-check-not=error: %s
16 s_dcache_wb
17 // GFX89: s_dcache_wb ; encoding: [0x00,0x00,0x84,0xc0,0x00,0x00,0x00,0x00]
18 // GFX1012: s_dcache_wb ; encoding: [0x00,0x00,0x84,0xf4,0x00,0x00,0x00,0x00]
19 // NOSICIGFX1030: error: instruction not supported on this GPU
21 s_dcache_wb_vol
22 // GFX89: s_dcache_wb_vol ; encoding: [0x00,0x00,0x8c,0xc0,0x00,0x00,0x00,0x00]
23 // NOSICIGFX10: error: instruction not supported on this GPU
25 s_atc_probe 0x7, s[4:5], s0
26 // GFX89: s_atc_probe 7, s[4:5], s0 ; encoding: [0xc2,0x01,0x98,0xc0,0x00,0x00,0x00,0x00]
27 // GFX10: s_atc_probe 7, s[4:5], s0 ; encoding: [0xc2,0x01,0x98,0xf4,0x00,0x00,0x00,0x00]
28 // NOSICI: error: instruction not supported on this GPU
30 s_atc_probe 0x0, s[4:5], 0x0
31 // GFX89: s_atc_probe 0, s[4:5], 0x0 ; encoding: [0x02,0x00,0x9a,0xc0,0x00,0x00,0x00,0x00]
32 // GFX10: s_atc_probe 0, s[4:5], 0x0 ; encoding: [0x02,0x00,0x98,0xf4,0x00,0x00,0x00,0xfa]
33 // NOSICI: error: instruction not supported on this GPU
35 s_atc_probe_buffer 0x1, s[8:11], s0
36 // GFX89: s_atc_probe_buffer 1, s[8:11], s0 ; encoding: [0x44,0x00,0x9c,0xc0,0x00,0x00,0x00,0x00]
37 // GFX10: s_atc_probe_buffer 1, s[8:11], s0 ; encoding: [0x44,0x00,0x9c,0xf4,0x00,0x00,0x00,0x00]
38 // NOSICI: error: instruction not supported on this GPU
40 s_atc_probe_buffer 0x0, s[8:11], s101
41 // GFX89: s_atc_probe_buffer 0, s[8:11], s101 ; encoding: [0x04,0x00,0x9c,0xc0,0x65,0x00,0x00,0x00]
42 // GFX10: s_atc_probe_buffer 0, s[8:11], s101 ; encoding: [0x04,0x00,0x9c,0xf4,0x00,0x00,0x00,0xca]
43 // NOSICI: error: instruction not supported on this GPU
45 s_memrealtime s[4:5]
46 // GFX89: s_memrealtime s[4:5] ; encoding: [0x00,0x01,0x94,0xc0,0x00,0x00,0x00,0x00]
47 // GFX10: s_memrealtime s[4:5] ; encoding: [0x00,0x01,0x94,0xf4,0x00,0x00,0x00,0x00]
48 // NOSICI: error: instruction not supported on this GPU
50 s_memrealtime tba
51 // VI: s_memrealtime tba ; encoding: [0x00,0x1b,0x94,0xc0,0x00,0x00,0x00,0x00]
52 // NOSICI: error: instruction not supported on this GPU
53 // NOGFX9: error: register not available on this GPU
55 s_memrealtime tma
56 // VI: s_memrealtime tma ; encoding: [0x80,0x1b,0x94,0xc0,0x00,0x00,0x00,0x00]
57 // NOSICI: error: instruction not supported on this GPU
58 // NOGFX9: error: register not available on this GPU
60 s_memrealtime ttmp[0:1]
61 // VI: s_memrealtime ttmp[0:1] ; encoding: [0x00,0x1c,0x94,0xc0,0x00,0x00,0x00,0x00]
62 // GFX9: s_memrealtime ttmp[0:1] ; encoding: [0x00,0x1b,0x94,0xc0,0x00,0x00,0x00,0x00]
63 // GFX10: s_memrealtime ttmp[0:1] ; encoding: [0x00,0x1b,0x94,0xf4,0x00,0x00,0x00,0x00]
64 // NOSICI: error: instruction not supported on this GPU
66 s_store_dword s1, s[2:3], 0xfc
67 // GFX89: s_store_dword s1, s[2:3], 0xfc ; encoding: [0x41,0x00,0x42,0xc0,0xfc,0x00,0x00,0x00]
68 // GFX1012: s_store_dword s1, s[2:3], 0xfc ; encoding: [0x41,0x00,0x40,0xf4,0xfc,0x00,0x00,0xfa]
69 // NOSICIGFX1030: error: instruction not supported on this GPU
71 s_store_dword s1, s[2:3], 0xfc glc
72 // GFX89: s_store_dword s1, s[2:3], 0xfc glc ; encoding: [0x41,0x00,0x43,0xc0,0xfc,0x00,0x00,0x00]
73 // GFX1012: s_store_dword s1, s[2:3], 0xfc glc ; encoding: [0x41,0x00,0x41,0xf4,0xfc,0x00,0x00,0xfa]
74 // NOSICIGFX1030: error: instruction not supported on this GPU
76 s_store_dword s1, s[2:3], s4
77 // GFX89: s_store_dword s1, s[2:3], s4 ; encoding: [0x41,0x00,0x40,0xc0,0x04,0x00,0x00,0x00]
78 // GFX1012: s_store_dword s1, s[2:3], s4 ; encoding: [0x41,0x00,0x40,0xf4,0x00,0x00,0x00,0x08]
79 // NOSICIGFX1030: error: instruction not supported on this GPU
81 s_store_dword s1, s[2:3], s4 glc
82 // GFX89: s_store_dword s1, s[2:3], s4 glc ; encoding: [0x41,0x00,0x41,0xc0,0x04,0x00,0x00,0x00]
83 // GFX1012: s_store_dword s1, s[2:3], s4 glc ; encoding: [0x41,0x00,0x41,0xf4,0x00,0x00,0x00,0x08]
84 // NOSICIGFX1030: error: instruction not supported on this GPU
86 s_store_dword tba_lo, s[2:3], s4
87 // VI: s_store_dword tba_lo, s[2:3], s4 ; encoding: [0x01,0x1b,0x40,0xc0,0x04,0x00,0x00,0x00]
88 // NOSICI: error: instruction not supported on this GPU
89 // NOGFX9GFX1012: error: register not available on this GPU
90 // NOGFX1030: error: instruction not supported on this GPU
92 s_store_dword tba_hi, s[2:3], s4
93 // VI: s_store_dword tba_hi, s[2:3], s4 ; encoding: [0x41,0x1b,0x40,0xc0,0x04,0x00,0x00,0x00]
94 // NOSICI: error: instruction not supported on this GPU
95 // NOGFX9GFX1012: error: register not available on this GPU
96 // NOGFX1030: error: instruction not supported on this GPU
98 s_store_dword tma_lo, s[2:3], s4
99 // VI: s_store_dword tma_lo, s[2:3], s4 ; encoding: [0x81,0x1b,0x40,0xc0,0x04,0x00,0x00,0x00]
100 // NOSICI: error: instruction not supported on this GPU
101 // NOGFX9GFX1012: error: register not available on this GPU
102 // NOGFX1030: error: instruction not supported on this GPU
104 s_store_dword tma_hi, s[2:3], s4
105 // VI: s_store_dword tma_hi, s[2:3], s4 ; encoding: [0xc1,0x1b,0x40,0xc0,0x04,0x00,0x00,0x00]
106 // NOSICI: error: instruction not supported on this GPU
107 // NOGFX9GFX1012: error: register not available on this GPU
108 // NOGFX1030: error: instruction not supported on this GPU
110 // FIXME: Should error on SI instead of silently ignoring glc
111 s_load_dword s1, s[2:3], 0xfc glc
112 // GFX89: s_load_dword s1, s[2:3], 0xfc glc ; encoding: [0x41,0x00,0x03,0xc0,0xfc,0x00,0x00,0x00]
113 // GFX10: s_load_dword s1, s[2:3], 0xfc glc ; encoding: [0x41,0x00,0x01,0xf4,0xfc,0x00,0x00,0xfa]
114 // SICI: s_load_dword s1, s[2:3], 0xfc glc ; encoding: [0xfc,0x83,0x00,0xc0
116 s_load_dword s1, s[2:3], s4 glc
117 // GFX89: s_load_dword s1, s[2:3], s4 glc ; encoding: [0x41,0x00,0x01,0xc0,0x04,0x00,0x00,0x00]
118 // GFX10: s_load_dword s1, s[2:3], s4 glc ; encoding: [0x41,0x00,0x01,0xf4,0x00,0x00,0x00,0x08]
119 // SICI: s_load_dword s1, s[2:3], s4 glc ; encoding: [0x04,0x82,0x00,0xc0]
121 s_buffer_store_dword s10, s[92:95], m0
122 // GFX89: s_buffer_store_dword s10, s[92:95], m0 ; encoding: [0xae,0x02,0x60,0xc0,0x7c,0x00,0x00,0x00]
123 // NOSICIGFX1030: error: instruction not supported on this GPU
124 // GFX1012: s_buffer_store_dword s10, s[92:95], m0 ; encoding: [0xae,0x02,0x60,0xf4,0x00,0x00,0x00,0xf8]
126 s_buffer_store_dword tba_lo, s[92:95], m0
127 // VI: s_buffer_store_dword tba_lo, s[92:95], m0 ; encoding: [0x2e,0x1b,0x60,0xc0,0x7c,0x00,0x00,0x00]
128 // NOSICI: error: instruction not supported on this GPU
129 // NOGFX9GFX1012: error: register not available on this GPU
130 // NOGFX1030: error: instruction not supported on this GPU
132 s_buffer_store_dword tba_hi, s[92:95], m0
133 // VI: s_buffer_store_dword tba_hi, s[92:95], m0 ; encoding: [0x6e,0x1b,0x60,0xc0,0x7c,0x00,0x00,0x00]
134 // NOSICI: error: instruction not supported on this GPU
135 // NOGFX9GFX1012: error: register not available on this GPU
136 // NOGFX1030: error: instruction not supported on this GPU
138 s_buffer_store_dword tma_lo, s[92:95], m0
139 // VI: s_buffer_store_dword tma_lo, s[92:95], m0 ; encoding: [0xae,0x1b,0x60,0xc0,0x7c,0x00,0x00,0x00]
140 // NOSICI: error: instruction not supported on this GPU
141 // NOGFX9GFX1012: error: register not available on this GPU
142 // NOGFX1030: error: instruction not supported on this GPU
144 s_buffer_store_dword tma_hi, s[92:95], m0
145 // VI: s_buffer_store_dword tma_hi, s[92:95], m0 ; encoding: [0xee,0x1b,0x60,0xc0,0x7c,0x00,0x00,0x00]
146 // NOSICI: error: instruction not supported on this GPU
147 // NOGFX9GFX1012: error: register not available on this GPU
148 // NOGFX1030: error: instruction not supported on this GPU
150 s_buffer_store_dword ttmp0, s[92:95], m0
151 // VI: s_buffer_store_dword ttmp0, s[92:95], m0 ; encoding: [0x2e,0x1c,0x60,0xc0,0x7c,0x00,0x00,0x00]
152 // GFX9: s_buffer_store_dword ttmp0, s[92:95], m0 ; encoding: [0x2e,0x1b,0x60,0xc0,0x7c,0x00,0x00,0x00]
153 // NOSICIGFX1030: error: instruction not supported on this GPU
154 // GFX1012: s_buffer_store_dword ttmp0, s[92:95], m0 ; encoding: [0x2e,0x1b,0x60,0xf4,0x00,0x00,0x00,0xf8]
156 s_buffer_store_dwordx2 s[10:11], s[92:95], m0
157 // GFX89: s_buffer_store_dwordx2 s[10:11], s[92:95], m0 ; encoding: [0xae,0x02,0x64,0xc0,0x7c,0x00,0x00,0x00]
158 // NOSICIGFX1030: error: instruction not supported on this GPU
159 // GFX1012: s_buffer_store_dwordx2 s[10:11], s[92:95], m0 ; encoding: [0xae,0x02,0x64,0xf4,0x00,0x00,0x00,0xf8]
161 s_buffer_store_dwordx4 s[8:11], s[92:95], m0 glc
162 // GFX89: s_buffer_store_dwordx4 s[8:11], s[92:95], m0 glc ; encoding: [0x2e,0x02,0x69,0xc0,0x7c,0x00,0x00,0x00]
163 // NOSICIGFX1030: error: instruction not supported on this GPU
164 // GFX1012: s_buffer_store_dwordx4 s[8:11], s[92:95], m0 glc ; encoding: [0x2e,0x02,0x69,0xf4,0x00,0x00,0x00,0xf8]
166 s_buffer_store_dwordx2 tba, s[92:95], m0 glc
167 // VI: s_buffer_store_dwordx2 tba, s[92:95], m0 glc ; encoding: [0x2e,0x1b,0x65,0xc0,0x7c,0x00,0x00,0x00]
168 // NOSICI: error: instruction not supported on this GPU
169 // NOGFX9GFX1012: error: register not available on this GPU
170 // NOGFX1030: error: instruction not supported on this GPU
172 s_buffer_load_dword s10, s[92:95], m0
173 // GFX89: s_buffer_load_dword s10, s[92:95], m0 ; encoding: [0xae,0x02,0x20,0xc0,0x7c,0x00,0x00,0x00]
174 // SICI: s_buffer_load_dword s10, s[92:95], m0 ; encoding: [0x7c,0x5c,0x05,0xc2]
175 // GFX10: s_buffer_load_dword s10, s[92:95], m0 ; encoding: [0xae,0x02,0x20,0xf4,0x00,0x00,0x00,0xf8]
177 s_buffer_load_dword tba_lo, s[92:95], m0
178 // VI: s_buffer_load_dword tba_lo, s[92:95], m0 ; encoding: [0x2e,0x1b,0x20,0xc0,0x7c,0x00,0x00,0x00]
179 // SICI: s_buffer_load_dword tba_lo, s[92:95], m0 ; encoding: [0x7c,0x5c,0x36,0xc2]
180 // NOGFX9: error: register not available on this GPU
182 s_buffer_load_dword tba_hi, s[92:95], m0
183 // VI: s_buffer_load_dword tba_hi, s[92:95], m0 ; encoding: [0x6e,0x1b,0x20,0xc0,0x7c,0x00,0x00,0x00]
184 // SICI: s_buffer_load_dword tba_hi, s[92:95], m0 ; encoding: [0x7c,0xdc,0x36,0xc2]
185 // NOGFX9: error: register not available on this GPU
187 s_buffer_load_dword tma_lo, s[92:95], m0
188 // VI: s_buffer_load_dword tma_lo, s[92:95], m0 ; encoding: [0xae,0x1b,0x20,0xc0,0x7c,0x00,0x00,0x00]
189 // SICI: s_buffer_load_dword tma_lo, s[92:95], m0 ; encoding: [0x7c,0x5c,0x37,0xc2]
190 // NOGFX9: error: register not available on this GPU
192 s_buffer_load_dword tma_hi, s[92:95], m0
193 // VI: s_buffer_load_dword tma_hi, s[92:95], m0 ; encoding: [0xee,0x1b,0x20,0xc0,0x7c,0x00,0x00,0x00]
194 // SICI: s_buffer_load_dword tma_hi, s[92:95], m0 ; encoding: [0x7c,0xdc,0x37,0xc2]
195 // NOGFX9: error: register not available on this GPU
197 s_buffer_load_dword ttmp0, s[92:95], m0
198 // VI: s_buffer_load_dword ttmp0, s[92:95], m0 ; encoding: [0x2e,0x1c,0x20,0xc0,0x7c,0x00,0x00,0x00]
199 // GFX9: s_buffer_load_dword ttmp0, s[92:95], m0 ; encoding: [0x2e,0x1b,0x20,0xc0,0x7c,0x00,0x00,0x00]
200 // SICI: s_buffer_load_dword ttmp0, s[92:95], m0 ; encoding: [0x7c,0x5c,0x38,0xc2]
201 // GFX10: s_buffer_load_dword ttmp0, s[92:95], m0 ; encoding: [0x2e,0x1b,0x20,0xf4,0x00,0x00,0x00,0xf8]
203 s_buffer_load_dwordx2 s[10:11], s[92:95], m0
204 // GFX89: s_buffer_load_dwordx2 s[10:11], s[92:95], m0 ; encoding: [0xae,0x02,0x24,0xc0,0x7c,0x00,0x00,0x00]
205 // SICI: s_buffer_load_dwordx2 s[10:11], s[92:95], m0 ; encoding: [0x7c,0x5c,0x45,0xc2]
206 // GFX10: s_buffer_load_dwordx2 s[10:11], s[92:95], m0 ; encoding: [0xae,0x02,0x24,0xf4,0x00,0x00,0x00,0xf8]
208 s_buffer_load_dwordx2 tba, s[92:95], m0
209 // VI: s_buffer_load_dwordx2 tba, s[92:95], m0 ; encoding: [0x2e,0x1b,0x24,0xc0,0x7c,0x00,0x00,0x00]
210 // SICI: s_buffer_load_dwordx2 tba, s[92:95], m0 ; encoding: [0x7c,0x5c,0x76,0xc2]
211 // NOGFX9: error: register not available on this GPU
213 s_buffer_load_dwordx2 tma, s[92:95], m0
214 // VI: s_buffer_load_dwordx2 tma, s[92:95], m0 ; encoding: [0xae,0x1b,0x24,0xc0,0x7c,0x00,0x00,0x00]
215 // SICI: s_buffer_load_dwordx2 tma, s[92:95], m0 ; encoding: [0x7c,0x5c,0x77,0xc2]
216 // NOGFX9: error: register not available on this GPU
218 s_buffer_load_dwordx2 ttmp[0:1], s[92:95], m0
219 // VI: s_buffer_load_dwordx2 ttmp[0:1], s[92:95], m0 ; encoding: [0x2e,0x1c,0x24,0xc0,0x7c,0x00,0x00,0x00]
220 // GFX9: s_buffer_load_dwordx2 ttmp[0:1], s[92:95], m0 ; encoding: [0x2e,0x1b,0x24,0xc0,0x7c,0x00,0x00,0x00]
221 // SICI: s_buffer_load_dwordx2 ttmp[0:1], s[92:95], m0 ; encoding: [0x7c,0x5c,0x78,0xc2]
222 // GFX10: s_buffer_load_dwordx2 ttmp[0:1], s[92:95], m0 ; encoding: [0x2e,0x1b,0x24,0xf4,0x00,0x00,0x00,0xf8]
224 // FIXME: Should error on SI instead of silently ignoring glc
225 s_buffer_load_dwordx4 s[8:11], s[92:95], m0 glc
226 // GFX89: s_buffer_load_dwordx4 s[8:11], s[92:95], m0 glc ; encoding: [0x2e,0x02,0x29,0xc0,0x7c,0x00,0x00,0x00]
227 // GFX10: s_buffer_load_dwordx4 s[8:11], s[92:95], m0 glc ; encoding: [0x2e,0x02,0x29,0xf4,0x00,0x00,0x00,0xf8]
228 // SICI: s_buffer_load_dwordx4 s[8:11], s[92:95], m0 glc ; encoding: [0x7c,0x5c,0x84,0xc2]
230 //===----------------------------------------------------------------------===//
231 // s_scratch instructions
232 //===----------------------------------------------------------------------===//
234 s_scratch_load_dword s5, s[2:3], s101
235 // GFX9: s_scratch_load_dword s5, s[2:3], s101 ; encoding: [0x41,0x01,0x14,0xc0,0x65,0x00,0x00,0x00]
236 // GFX1012: s_scratch_load_dword s5, s[2:3], s101 ; encoding: [0x41,0x01,0x14,0xf4,0x00,0x00,0x00,0xca]
237 // NOSICIVIGFX1030: error: instruction not supported on this GPU
239 s_scratch_load_dword s5, s[2:3], s0 glc
240 // GFX9: s_scratch_load_dword s5, s[2:3], s0 glc ; encoding: [0x41,0x01,0x15,0xc0,0x00,0x00,0x00,0x00]
241 // GFX1012: s_scratch_load_dword s5, s[2:3], s0 glc ; encoding: [0x41,0x01,0x15,0xf4,0x00,0x00,0x00,0x00]
242 // NOSICIVIGFX1030: error: instruction not supported on this GPU
244 s_scratch_load_dwordx2 s[100:101], s[2:3], s0
245 // GFX9: s_scratch_load_dwordx2 s[100:101], s[2:3], s0 ; encoding: [0x01,0x19,0x18,0xc0,0x00,0x00,0x00,0x00]
246 // GFX1012: s_scratch_load_dwordx2 s[100:101], s[2:3], s0 ; encoding: [0x01,0x19,0x18,0xf4,0x00,0x00,0x00,0x00]
247 // NOSICIVIGFX1030: error: instruction not supported on this GPU
249 s_scratch_load_dwordx2 s[10:11], s[2:3], 0x1 glc
250 // GFX9: s_scratch_load_dwordx2 s[10:11], s[2:3], 0x1 glc ; encoding: [0x81,0x02,0x1b,0xc0,0x01,0x00,0x00,0x00]
251 // GFX1012: s_scratch_load_dwordx2 s[10:11], s[2:3], 0x1 glc ; encoding: [0x81,0x02,0x19,0xf4,0x01,0x00,0x00,0xfa]
252 // NOSICIVIGFX1030: error: instruction not supported on this GPU
254 s_scratch_load_dwordx4 s[20:23], s[4:5], s0
255 // GFX9: s_scratch_load_dwordx4 s[20:23], s[4:5], s0 ; encoding: [0x02,0x05,0x1c,0xc0,0x00,0x00,0x00,0x00]
256 // GFX1012: s_scratch_load_dwordx4 s[20:23], s[4:5], s0 ; encoding: [0x02,0x05,0x1c,0xf4,0x00,0x00,0x00,0x00]
257 // NOSICIVIGFX1030: error: instruction not supported on this GPU
259 s_scratch_store_dword s101, s[4:5], s0
260 // GFX9: s_scratch_store_dword s101, s[4:5], s0 ; encoding: [0x42,0x19,0x54,0xc0,0x00,0x00,0x00,0x00]
261 // GFX1012: s_scratch_store_dword s101, s[4:5], s0 ; encoding: [0x42,0x19,0x54,0xf4,0x00,0x00,0x00,0x00]
262 // NOSICIVIGFX1030: error: instruction not supported on this GPU
264 s_scratch_store_dword s1, s[4:5], 0x123 glc
265 // GFX9: s_scratch_store_dword s1, s[4:5], 0x123 glc ; encoding: [0x42,0x00,0x57,0xc0,0x23,0x01,0x00,0x00]
266 // GFX1012: s_scratch_store_dword s1, s[4:5], 0x123 glc ; encoding: [0x42,0x00,0x55,0xf4,0x23,0x01,0x00,0xfa]
267 // NOSICIVIGFX1030: error: instruction not supported on this GPU
269 s_scratch_store_dwordx2 s[2:3], s[4:5], s101 glc
270 // GFX9: s_scratch_store_dwordx2 s[2:3], s[4:5], s101 glc ; encoding: [0x82,0x00,0x59,0xc0,0x65,0x00,0x00,0x00]
271 // GFX1012: s_scratch_store_dwordx2 s[2:3], s[4:5], s101 glc ; encoding: [0x82,0x00,0x59,0xf4,0x00,0x00,0x00,0xca]
272 // NOSICIVIGFX1030: error: instruction not supported on this GPU
274 s_scratch_store_dwordx4 s[4:7], s[4:5], s0 glc
275 // GFX9: s_scratch_store_dwordx4 s[4:7], s[4:5], s0 glc ; encoding: [0x02,0x01,0x5d,0xc0,0x00,0x00,0x00,0x00]
276 // GFX1012: s_scratch_store_dwordx4 s[4:7], s[4:5], s0 glc ; encoding: [0x02,0x01,0x5d,0xf4,0x00,0x00,0x00,0x00]
277 // NOSICIVIGFX1030: error: instruction not supported on this GPU
279 //===----------------------------------------------------------------------===//
280 // s_dcache_discard instructions
281 //===----------------------------------------------------------------------===//
283 s_dcache_discard s[2:3], s0
284 // GFX9: s_dcache_discard s[2:3], s0 ; encoding: [0x01,0x00,0xa0,0xc0,0x00,0x00,0x00,0x00]
285 // GFX1012: s_dcache_discard s[2:3], s0 ; encoding: [0x01,0x00,0xa0,0xf4,0x00,0x00,0x00,0x00]
286 // NOSICIVIGFX1030: error: instruction not supported on this GPU
288 s_dcache_discard s[2:3], 0x0
289 // GFX9: s_dcache_discard s[2:3], 0x0 ; encoding: [0x01,0x00,0xa2,0xc0,0x00,0x00,0x00,0x00]
290 // GFX1012: s_dcache_discard s[2:3], 0x0 ; encoding: [0x01,0x00,0xa0,0xf4,0x00,0x00,0x00,0xfa]
291 // NOSICIVIGFX1030: error: instruction not supported on this GPU
293 s_dcache_discard_x2 s[2:3], s101
294 // GFX9: s_dcache_discard_x2 s[2:3], s101 ; encoding: [0x01,0x00,0xa4,0xc0,0x65,0x00,0x00,0x00]
295 // GFX1012: s_dcache_discard_x2 s[2:3], s101 ; encoding: [0x01,0x00,0xa4,0xf4,0x00,0x00,0x00,0xca]
296 // NOSICIVIGFX1030: error: instruction not supported on this GPU
298 s_dcache_discard_x2 s[2:3], 0x0
299 // GFX9: s_dcache_discard_x2 s[2:3], 0x0 ; encoding: [0x01,0x00,0xa6,0xc0,0x00,0x00,0x00,0x00]
300 // GFX1012: s_dcache_discard_x2 s[2:3], 0x0 ; encoding: [0x01,0x00,0xa4,0xf4,0x00,0x00,0x00,0xfa]
301 // NOSICIVIGFX1030: error: instruction not supported on this GPU
303 //===----------------------------------------------------------------------===//
304 // s_atomic instructions
305 //===----------------------------------------------------------------------===//
307 s_atomic_add s5, s[2:3], s101
308 // GFX9: s_atomic_add s5, s[2:3], s101 ; encoding: [0x41,0x01,0x08,0xc2,0x65,0x00,0x00,0x00]
309 // GFX1012: s_atomic_add s5, s[2:3], s101 ; encoding: [0x41,0x01,0x08,0xf6,0x00,0x00,0x00,0xca]
310 // NOSICIVIGFX1030: error: instruction not supported on this GPU
312 s_atomic_add s5, s[2:3], 0x0
313 // GFX9: s_atomic_add s5, s[2:3], 0x0 ; encoding: [0x41,0x01,0x0a,0xc2,0x00,0x00,0x00,0x00]
314 // GFX1012: s_atomic_add s5, s[2:3], 0x0 ; encoding: [0x41,0x01,0x08,0xf6,0x00,0x00,0x00,0xfa]
315 // NOSICIVIGFX1030: error: instruction not supported on this GPU
317 s_atomic_add s5, s[2:3], s0 glc
318 // GFX9: s_atomic_add s5, s[2:3], s0 glc ; encoding: [0x41,0x01,0x09,0xc2,0x00,0x00,0x00,0x00]
319 // GFX1012: s_atomic_add s5, s[2:3], s0 glc ; encoding: [0x41,0x01,0x09,0xf6,0x00,0x00,0x00,0x00]
320 // NOSICIVIGFX1030: error: instruction not supported on this GPU
322 s_atomic_add_x2 s[10:11], s[2:3], s101
323 // GFX9: s_atomic_add_x2 s[10:11], s[2:3], s101 ; encoding: [0x81,0x02,0x88,0xc2,0x65,0x00,0x00,0x00]
324 // GFX1012: s_atomic_add_x2 s[10:11], s[2:3], s101 ; encoding: [0x81,0x02,0x88,0xf6,0x00,0x00,0x00,0xca]
325 // NOSICIVIGFX1030: error: instruction not supported on this GPU
327 s_atomic_and s5, s[2:3], s101
328 // GFX9: s_atomic_and s5, s[2:3], s101 ; encoding: [0x41,0x01,0x20,0xc2,0x65,0x00,0x00,0x00]
329 // GFX1012: s_atomic_and s5, s[2:3], s101 ; encoding: [0x41,0x01,0x20,0xf6,0x00,0x00,0x00,0xca]
330 // NOSICIVIGFX1030: error: instruction not supported on this GPU
332 s_atomic_and_x2 s[10:11], s[2:3], 0x0
333 // GFX9: s_atomic_and_x2 s[10:11], s[2:3], 0x0 ; encoding: [0x81,0x02,0xa2,0xc2,0x00,0x00,0x00,0x00]
334 // GFX1012: s_atomic_and_x2 s[10:11], s[2:3], 0x0 ; encoding: [0x81,0x02,0xa0,0xf6,0x00,0x00,0x00,0xfa]
335 // NOSICIVIGFX1030: error: instruction not supported on this GPU
337 s_atomic_cmpswap s[10:11], s[2:3], s101
338 // GFX9: s_atomic_cmpswap s[10:11], s[2:3], s101 ; encoding: [0x81,0x02,0x04,0xc2,0x65,0x00,0x00,0x00]
339 // GFX1012: s_atomic_cmpswap s[10:11], s[2:3], s101 ; encoding: [0x81,0x02,0x04,0xf6,0x00,0x00,0x00,0xca]
340 // NOSICIVIGFX1030: error: instruction not supported on this GPU
342 s_atomic_cmpswap s[10:11], s[2:3], 0x0
343 // GFX9: s_atomic_cmpswap s[10:11], s[2:3], 0x0 ; encoding: [0x81,0x02,0x06,0xc2,0x00,0x00,0x00,0x00]
344 // GFX1012: s_atomic_cmpswap s[10:11], s[2:3], 0x0 ; encoding: [0x81,0x02,0x04,0xf6,0x00,0x00,0x00,0xfa]
345 // NOSICIVIGFX1030: error: instruction not supported on this GPU
347 s_atomic_cmpswap s[10:11], s[2:3], s0 glc
348 // GFX9: s_atomic_cmpswap s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0x05,0xc2,0x00,0x00,0x00,0x00]
349 // GFX1012: s_atomic_cmpswap s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0x05,0xf6,0x00,0x00,0x00,0x00]
350 // NOSICIVIGFX1030: error: instruction not supported on this GPU
352 s_atomic_cmpswap_x2 s[20:23], s[2:3], s101
353 // GFX9: s_atomic_cmpswap_x2 s[20:23], s[2:3], s101 ; encoding: [0x01,0x05,0x84,0xc2,0x65,0x00,0x00,0x00]
354 // GFX1012: s_atomic_cmpswap_x2 s[20:23], s[2:3], s101 ; encoding: [0x01,0x05,0x84,0xf6,0x00,0x00,0x00,0xca]
355 // NOSICIVIGFX1030: error: instruction not supported on this GPU
357 s_atomic_cmpswap_x2 s[20:23], s[2:3], 0x0
358 // GFX9: s_atomic_cmpswap_x2 s[20:23], s[2:3], 0x0 ; encoding: [0x01,0x05,0x86,0xc2,0x00,0x00,0x00,0x00]
359 // GFX1012: s_atomic_cmpswap_x2 s[20:23], s[2:3], 0x0 ; encoding: [0x01,0x05,0x84,0xf6,0x00,0x00,0x00,0xfa]
360 // NOSICIVIGFX1030: error: instruction not supported on this GPU
362 s_atomic_cmpswap_x2 s[20:23], s[2:3], s0 glc
363 // GFX9: s_atomic_cmpswap_x2 s[20:23], s[2:3], s0 glc ; encoding: [0x01,0x05,0x85,0xc2,0x00,0x00,0x00,0x00]
364 // GFX1012: s_atomic_cmpswap_x2 s[20:23], s[2:3], s0 glc ; encoding: [0x01,0x05,0x85,0xf6,0x00,0x00,0x00,0x00]
365 // NOSICIVIGFX1030: error: instruction not supported on this GPU
367 s_atomic_dec s5, s[2:3], s0 glc
368 // GFX9: s_atomic_dec s5, s[2:3], s0 glc ; encoding: [0x41,0x01,0x31,0xc2,0x00,0x00,0x00,0x00]
369 // GFX1012: s_atomic_dec s5, s[2:3], s0 glc ; encoding: [0x41,0x01,0x31,0xf6,0x00,0x00,0x00,0x00]
370 // NOSICIVIGFX1030: error: instruction not supported on this GPU
372 s_atomic_dec_x2 s[10:11], s[2:3], s101
373 // GFX9: s_atomic_dec_x2 s[10:11], s[2:3], s101 ; encoding: [0x81,0x02,0xb0,0xc2,0x65,0x00,0x00,0x00]
374 // GFX1012: s_atomic_dec_x2 s[10:11], s[2:3], s101 ; encoding: [0x81,0x02,0xb0,0xf6,0x00,0x00,0x00,0xca]
375 // NOSICIVIGFX1030: error: instruction not supported on this GPU
377 s_atomic_inc s5, s[2:3], s0 glc
378 // GFX9: s_atomic_inc s5, s[2:3], s0 glc ; encoding: [0x41,0x01,0x2d,0xc2,0x00,0x00,0x00,0x00]
379 // GFX1012: s_atomic_inc s5, s[2:3], s0 glc ; encoding: [0x41,0x01,0x2d,0xf6,0x00,0x00,0x00,0x00]
380 // NOSICIVIGFX1030: error: instruction not supported on this GPU
382 s_atomic_inc_x2 s[10:11], s[2:3], s101
383 // GFX9: s_atomic_inc_x2 s[10:11], s[2:3], s101 ; encoding: [0x81,0x02,0xac,0xc2,0x65,0x00,0x00,0x00]
384 // GFX1012: s_atomic_inc_x2 s[10:11], s[2:3], s101 ; encoding: [0x81,0x02,0xac,0xf6,0x00,0x00,0x00,0xca]
385 // NOSICIVIGFX1030: error: instruction not supported on this GPU
387 s_atomic_or s5, s[2:3], 0x0
388 // GFX9: s_atomic_or s5, s[2:3], 0x0 ; encoding: [0x41,0x01,0x26,0xc2,0x00,0x00,0x00,0x00]
389 // GFX1012: s_atomic_or s5, s[2:3], 0x0 ; encoding: [0x41,0x01,0x24,0xf6,0x00,0x00,0x00,0xfa]
390 // NOSICIVIGFX1030: error: instruction not supported on this GPU
392 s_atomic_or_x2 s[10:11], s[2:3], s0 glc
393 // GFX9: s_atomic_or_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0xa5,0xc2,0x00,0x00,0x00,0x00]
394 // GFX1012: s_atomic_or_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0xa5,0xf6,0x00,0x00,0x00,0x00]
395 // NOSICIVIGFX1030: error: instruction not supported on this GPU
397 s_atomic_smax s5, s[2:3], s101
398 // GFX9: s_atomic_smax s5, s[2:3], s101 ; encoding: [0x41,0x01,0x18,0xc2,0x65,0x00,0x00,0x00]
399 // GFX1012: s_atomic_smax s5, s[2:3], s101 ; encoding: [0x41,0x01,0x18,0xf6,0x00,0x00,0x00,0xca]
400 // NOSICIVIGFX1030: error: instruction not supported on this GPU
402 s_atomic_smax_x2 s[10:11], s[2:3], s0 glc
403 // GFX9: s_atomic_smax_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0x99,0xc2,0x00,0x00,0x00,0x00]
404 // GFX1012: s_atomic_smax_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0x99,0xf6,0x00,0x00,0x00,0x00]
405 // NOSICIVIGFX1030: error: instruction not supported on this GPU
407 s_atomic_smin s5, s[2:3], s101
408 // GFX9: s_atomic_smin s5, s[2:3], s101 ; encoding: [0x41,0x01,0x10,0xc2,0x65,0x00,0x00,0x00]
409 // GFX1012: s_atomic_smin s5, s[2:3], s101 ; encoding: [0x41,0x01,0x10,0xf6,0x00,0x00,0x00,0xca]
410 // NOSICIVIGFX1030: error: instruction not supported on this GPU
412 s_atomic_smin_x2 s[10:11], s[2:3], s0 glc
413 // GFX9: s_atomic_smin_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0x91,0xc2,0x00,0x00,0x00,0x00]
414 // GFX1012: s_atomic_smin_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0x91,0xf6,0x00,0x00,0x00,0x00]
415 // NOSICIVIGFX1030: error: instruction not supported on this GPU
417 s_atomic_sub s5, s[2:3], s101
418 // GFX9: s_atomic_sub s5, s[2:3], s101 ; encoding: [0x41,0x01,0x0c,0xc2,0x65,0x00,0x00,0x00]
419 // GFX1012: s_atomic_sub s5, s[2:3], s101 ; encoding: [0x41,0x01,0x0c,0xf6,0x00,0x00,0x00,0xca]
420 // NOSICIVIGFX1030: error: instruction not supported on this GPU
422 s_atomic_sub_x2 s[10:11], s[2:3], s0 glc
423 // GFX9: s_atomic_sub_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0x8d,0xc2,0x00,0x00,0x00,0x00]
424 // GFX1012: s_atomic_sub_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0x8d,0xf6,0x00,0x00,0x00,0x00]
425 // NOSICIVIGFX1030: error: instruction not supported on this GPU
427 s_atomic_swap s5, s[2:3], s101
428 // GFX9: s_atomic_swap s5, s[2:3], s101 ; encoding: [0x41,0x01,0x00,0xc2,0x65,0x00,0x00,0x00]
429 // GFX1012: s_atomic_swap s5, s[2:3], s101 ; encoding: [0x41,0x01,0x00,0xf6,0x00,0x00,0x00,0xca]
430 // NOSICIVIGFX1030: error: instruction not supported on this GPU
432 s_atomic_swap_x2 s[10:11], s[2:3], s0 glc
433 // GFX9: s_atomic_swap_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0x81,0xc2,0x00,0x00,0x00,0x00]
434 // GFX1012: s_atomic_swap_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0x81,0xf6,0x00,0x00,0x00,0x00]
435 // NOSICIVIGFX1030: error: instruction not supported on this GPU
437 s_atomic_umax s5, s[2:3], s0 glc
438 // GFX9: s_atomic_umax s5, s[2:3], s0 glc ; encoding: [0x41,0x01,0x1d,0xc2,0x00,0x00,0x00,0x00]
439 // GFX1012: s_atomic_umax s5, s[2:3], s0 glc ; encoding: [0x41,0x01,0x1d,0xf6,0x00,0x00,0x00,0x00]
440 // NOSICIVIGFX1030: error: instruction not supported on this GPU
442 s_atomic_umax_x2 s[10:11], s[2:3], s101
443 // GFX9: s_atomic_umax_x2 s[10:11], s[2:3], s101 ; encoding: [0x81,0x02,0x9c,0xc2,0x65,0x00,0x00,0x00]
444 // GFX1012: s_atomic_umax_x2 s[10:11], s[2:3], s101 ; encoding: [0x81,0x02,0x9c,0xf6,0x00,0x00,0x00,0xca]
445 // NOSICIVIGFX1030: error: instruction not supported on this GPU
447 s_atomic_umin s5, s[2:3], s101
448 // GFX9: s_atomic_umin s5, s[2:3], s101 ; encoding: [0x41,0x01,0x14,0xc2,0x65,0x00,0x00,0x00]
449 // GFX1012: s_atomic_umin s5, s[2:3], s101 ; encoding: [0x41,0x01,0x14,0xf6,0x00,0x00,0x00,0xca]
450 // NOSICIVIGFX1030: error: instruction not supported on this GPU
452 s_atomic_umin_x2 s[10:11], s[2:3], s0 glc
453 // GFX9: s_atomic_umin_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0x95,0xc2,0x00,0x00,0x00,0x00]
454 // GFX1012: s_atomic_umin_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0x95,0xf6,0x00,0x00,0x00,0x00]
455 // NOSICIVIGFX1030: error: instruction not supported on this GPU
457 s_atomic_xor s5, s[2:3], s101
458 // GFX9: s_atomic_xor s5, s[2:3], s101 ; encoding: [0x41,0x01,0x28,0xc2,0x65,0x00,0x00,0x00]
459 // GFX1012: s_atomic_xor s5, s[2:3], s101 ; encoding: [0x41,0x01,0x28,0xf6,0x00,0x00,0x00,0xca]
460 // NOSICIVIGFX1030: error: instruction not supported on this GPU
462 s_atomic_xor_x2 s[10:11], s[2:3], s0 glc
463 // GFX9: s_atomic_xor_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0xa9,0xc2,0x00,0x00,0x00,0x00]
464 // GFX1012: s_atomic_xor_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0xa9,0xf6,0x00,0x00,0x00,0x00]
465 // NOSICIVIGFX1030: error: instruction not supported on this GPU
467 //===----------------------------------------------------------------------===//
468 // s_buffer_atomic instructions
469 //===----------------------------------------------------------------------===//
471 s_buffer_atomic_add s5, s[4:7], s101
472 // GFX9: s_buffer_atomic_add s5, s[4:7], s101 ; encoding: [0x42,0x01,0x08,0xc1,0x65,0x00,0x00,0x00]
473 // GFX1012: s_buffer_atomic_add s5, s[4:7], s101 ; encoding: [0x42,0x01,0x08,0xf5,0x00,0x00,0x00,0xca]
474 // NOSICIVIGFX1030: error: instruction not supported on this GPU
476 s_buffer_atomic_add s5, s[4:7], 0x0
477 // GFX9: s_buffer_atomic_add s5, s[4:7], 0x0 ; encoding: [0x42,0x01,0x0a,0xc1,0x00,0x00,0x00,0x00]
478 // GFX1012: s_buffer_atomic_add s5, s[4:7], 0x0 ; encoding: [0x42,0x01,0x08,0xf5,0x00,0x00,0x00,0xfa]
479 // NOSICIVIGFX1030: error: instruction not supported on this GPU
481 s_buffer_atomic_add s5, s[4:7], s0 glc
482 // GFX9: s_buffer_atomic_add s5, s[4:7], s0 glc ; encoding: [0x42,0x01,0x09,0xc1,0x00,0x00,0x00,0x00]
483 // GFX1012: s_buffer_atomic_add s5, s[4:7], s0 glc ; encoding: [0x42,0x01,0x09,0xf5,0x00,0x00,0x00,0x00]
484 // NOSICIVIGFX1030: error: instruction not supported on this GPU
486 s_buffer_atomic_add_x2 s[10:11], s[4:7], s0
487 // GFX9: s_buffer_atomic_add_x2 s[10:11], s[4:7], s0 ; encoding: [0x82,0x02,0x88,0xc1,0x00,0x00,0x00,0x00]
488 // GFX1012: s_buffer_atomic_add_x2 s[10:11], s[4:7], s0 ; encoding: [0x82,0x02,0x88,0xf5,0x00,0x00,0x00,0x00]
489 // NOSICIVIGFX1030: error: instruction not supported on this GPU
491 s_buffer_atomic_and s101, s[4:7], s0
492 // GFX9: s_buffer_atomic_and s101, s[4:7], s0 ; encoding: [0x42,0x19,0x20,0xc1,0x00,0x00,0x00,0x00]
493 // GFX1012: s_buffer_atomic_and s101, s[4:7], s0 ; encoding: [0x42,0x19,0x20,0xf5,0x00,0x00,0x00,0x00]
494 // NOSICIVIGFX1030: error: instruction not supported on this GPU
496 s_buffer_atomic_and_x2 s[10:11], s[8:11], s0
497 // GFX9: s_buffer_atomic_and_x2 s[10:11], s[8:11], s0 ; encoding: [0x84,0x02,0xa0,0xc1,0x00,0x00,0x00,0x00]
498 // GFX1012: s_buffer_atomic_and_x2 s[10:11], s[8:11], s0 ; encoding: [0x84,0x02,0xa0,0xf5,0x00,0x00,0x00,0x00]
499 // NOSICIVIGFX1030: error: instruction not supported on this GPU
501 s_buffer_atomic_cmpswap s[10:11], s[4:7], s0
502 // GFX9: s_buffer_atomic_cmpswap s[10:11], s[4:7], s0 ; encoding: [0x82,0x02,0x04,0xc1,0x00,0x00,0x00,0x00]
503 // GFX1012: s_buffer_atomic_cmpswap s[10:11], s[4:7], s0 ; encoding: [0x82,0x02,0x04,0xf5,0x00,0x00,0x00,0x00]
504 // NOSICIVIGFX1030: error: instruction not supported on this GPU
506 s_buffer_atomic_cmpswap s[10:11], s[4:7], 0x0
507 // GFX9: s_buffer_atomic_cmpswap s[10:11], s[4:7], 0x0 ; encoding: [0x82,0x02,0x06,0xc1,0x00,0x00,0x00,0x00]
508 // GFX1012: s_buffer_atomic_cmpswap s[10:11], s[4:7], 0x0 ; encoding: [0x82,0x02,0x04,0xf5,0x00,0x00,0x00,0xfa]
509 // NOSICIVIGFX1030: error: instruction not supported on this GPU
511 s_buffer_atomic_cmpswap s[10:11], s[4:7], s0 glc
512 // GFX9: s_buffer_atomic_cmpswap s[10:11], s[4:7], s0 glc ; encoding: [0x82,0x02,0x05,0xc1,0x00,0x00,0x00,0x00]
513 // GFX1012: s_buffer_atomic_cmpswap s[10:11], s[4:7], s0 glc ; encoding: [0x82,0x02,0x05,0xf5,0x00,0x00,0x00,0x00]
514 // NOSICIVIGFX1030: error: instruction not supported on this GPU
516 s_buffer_atomic_cmpswap_x2 s[20:23], s[4:7], s101
517 // GFX9: s_buffer_atomic_cmpswap_x2 s[20:23], s[4:7], s101 ; encoding: [0x02,0x05,0x84,0xc1,0x65,0x00,0x00,0x00]
518 // GFX1012: s_buffer_atomic_cmpswap_x2 s[20:23], s[4:7], s101 ; encoding: [0x02,0x05,0x84,0xf5,0x00,0x00,0x00,0xca]
519 // NOSICIVIGFX1030: error: instruction not supported on this GPU
521 s_buffer_atomic_cmpswap_x2 s[20:23], s[4:7], 0x0
522 // GFX9: s_buffer_atomic_cmpswap_x2 s[20:23], s[4:7], 0x0 ; encoding: [0x02,0x05,0x86,0xc1,0x00,0x00,0x00,0x00]
523 // GFX1012: s_buffer_atomic_cmpswap_x2 s[20:23], s[4:7], 0x0 ; encoding: [0x02,0x05,0x84,0xf5,0x00,0x00,0x00,0xfa]
524 // NOSICIVIGFX1030: error: instruction not supported on this GPU
526 s_buffer_atomic_cmpswap_x2 s[20:23], s[4:7], s0 glc
527 // GFX9: s_buffer_atomic_cmpswap_x2 s[20:23], s[4:7], s0 glc ; encoding: [0x02,0x05,0x85,0xc1,0x00,0x00,0x00,0x00]
528 // GFX1012: s_buffer_atomic_cmpswap_x2 s[20:23], s[4:7], s0 glc ; encoding: [0x02,0x05,0x85,0xf5,0x00,0x00,0x00,0x00]
529 // NOSICIVIGFX1030: error: instruction not supported on this GPU
531 s_buffer_atomic_dec s5, s[4:7], s0
532 // GFX9: s_buffer_atomic_dec s5, s[4:7], s0 ; encoding: [0x42,0x01,0x30,0xc1,0x00,0x00,0x00,0x00]
533 // GFX1012: s_buffer_atomic_dec s5, s[4:7], s0 ; encoding: [0x42,0x01,0x30,0xf5,0x00,0x00,0x00,0x00]
534 // NOSICIVIGFX1030: error: instruction not supported on this GPU
536 s_buffer_atomic_dec_x2 s[10:11], s[4:7], s0 glc
537 // GFX9: s_buffer_atomic_dec_x2 s[10:11], s[4:7], s0 glc ; encoding: [0x82,0x02,0xb1,0xc1,0x00,0x00,0x00,0x00]
538 // GFX1012: s_buffer_atomic_dec_x2 s[10:11], s[4:7], s0 glc ; encoding: [0x82,0x02,0xb1,0xf5,0x00,0x00,0x00,0x00]
539 // NOSICIVIGFX1030: error: instruction not supported on this GPU
541 s_buffer_atomic_inc s101, s[4:7], s0
542 // GFX9: s_buffer_atomic_inc s101, s[4:7], s0 ; encoding: [0x42,0x19,0x2c,0xc1,0x00,0x00,0x00,0x00]
543 // GFX1012: s_buffer_atomic_inc s101, s[4:7], s0 ; encoding: [0x42,0x19,0x2c,0xf5,0x00,0x00,0x00,0x00]
544 // NOSICIVIGFX1030: error: instruction not supported on this GPU
546 s_buffer_atomic_inc_x2 s[10:11], s[4:7], 0x0
547 // GFX9: s_buffer_atomic_inc_x2 s[10:11], s[4:7], 0x0 ; encoding: [0x82,0x02,0xae,0xc1,0x00,0x00,0x00,0x00]
548 // GFX1012: s_buffer_atomic_inc_x2 s[10:11], s[4:7], 0x0 ; encoding: [0x82,0x02,0xac,0xf5,0x00,0x00,0x00,0xfa]
549 // NOSICIVIGFX1030: error: instruction not supported on this GPU
551 s_buffer_atomic_or s5, s[8:11], s0
552 // GFX9: s_buffer_atomic_or s5, s[8:11], s0 ; encoding: [0x44,0x01,0x24,0xc1,0x00,0x00,0x00,0x00]
553 // GFX1012: s_buffer_atomic_or s5, s[8:11], s0 ; encoding: [0x44,0x01,0x24,0xf5,0x00,0x00,0x00,0x00]
554 // NOSICIVIGFX1030: error: instruction not supported on this GPU
556 s_buffer_atomic_or_x2 s[10:11], s[96:99], s0
557 // GFX9: s_buffer_atomic_or_x2 s[10:11], s[96:99], s0 ; encoding: [0xb0,0x02,0xa4,0xc1,0x00,0x00,0x00,0x00]
558 // GFX1012: s_buffer_atomic_or_x2 s[10:11], s[96:99], s0 ; encoding: [0xb0,0x02,0xa4,0xf5,0x00,0x00,0x00,0x00]
559 // NOSICIVIGFX1030: error: instruction not supported on this GPU
561 s_buffer_atomic_smax s5, s[4:7], s101
562 // GFX9: s_buffer_atomic_smax s5, s[4:7], s101 ; encoding: [0x42,0x01,0x18,0xc1,0x65,0x00,0x00,0x00]
563 // GFX1012: s_buffer_atomic_smax s5, s[4:7], s101 ; encoding: [0x42,0x01,0x18,0xf5,0x00,0x00,0x00,0xca]
564 // NOSICIVIGFX1030: error: instruction not supported on this GPU
566 s_buffer_atomic_smax_x2 s[100:101], s[4:7], s0
567 // GFX9: s_buffer_atomic_smax_x2 s[100:101], s[4:7], s0 ; encoding: [0x02,0x19,0x98,0xc1,0x00,0x00,0x00,0x00]
568 // GFX1012: s_buffer_atomic_smax_x2 s[100:101], s[4:7], s0 ; encoding: [0x02,0x19,0x98,0xf5,0x00,0x00,0x00,0x00]
569 // NOSICIVIGFX1030: error: instruction not supported on this GPU
571 s_buffer_atomic_smin s5, s[4:7], 0x0
572 // GFX9: s_buffer_atomic_smin s5, s[4:7], 0x0 ; encoding: [0x42,0x01,0x12,0xc1,0x00,0x00,0x00,0x00]
573 // GFX1012: s_buffer_atomic_smin s5, s[4:7], 0x0 ; encoding: [0x42,0x01,0x10,0xf5,0x00,0x00,0x00,0xfa]
574 // NOSICIVIGFX1030: error: instruction not supported on this GPU
576 s_buffer_atomic_smin_x2 s[12:13], s[4:7], s0
577 // GFX9: s_buffer_atomic_smin_x2 s[12:13], s[4:7], s0 ; encoding: [0x02,0x03,0x90,0xc1,0x00,0x00,0x00,0x00]
578 // GFX1012: s_buffer_atomic_smin_x2 s[12:13], s[4:7], s0 ; encoding: [0x02,0x03,0x90,0xf5,0x00,0x00,0x00,0x00]
579 // NOSICIVIGFX1030: error: instruction not supported on this GPU
581 s_buffer_atomic_sub s5, s[4:7], s0 glc
582 // GFX9: s_buffer_atomic_sub s5, s[4:7], s0 glc ; encoding: [0x42,0x01,0x0d,0xc1,0x00,0x00,0x00,0x00]
583 // GFX1012: s_buffer_atomic_sub s5, s[4:7], s0 glc ; encoding: [0x42,0x01,0x0d,0xf5,0x00,0x00,0x00,0x00]
584 // NOSICIVIGFX1030: error: instruction not supported on this GPU
586 s_buffer_atomic_sub_x2 s[10:11], s[4:7], s0
587 // GFX9: s_buffer_atomic_sub_x2 s[10:11], s[4:7], s0 ; encoding: [0x82,0x02,0x8c,0xc1,0x00,0x00,0x00,0x00]
588 // GFX1012: s_buffer_atomic_sub_x2 s[10:11], s[4:7], s0 ; encoding: [0x82,0x02,0x8c,0xf5,0x00,0x00,0x00,0x00]
589 // NOSICIVIGFX1030: error: instruction not supported on this GPU
591 s_buffer_atomic_swap s5, s[4:7], s0
592 // GFX9: s_buffer_atomic_swap s5, s[4:7], s0 ; encoding: [0x42,0x01,0x00,0xc1,0x00,0x00,0x00,0x00]
593 // GFX1012: s_buffer_atomic_swap s5, s[4:7], s0 ; encoding: [0x42,0x01,0x00,0xf5,0x00,0x00,0x00,0x00]
594 // NOSICIVIGFX1030: error: instruction not supported on this GPU
596 s_buffer_atomic_swap_x2 s[10:11], s[4:7], s0 glc
597 // GFX9: s_buffer_atomic_swap_x2 s[10:11], s[4:7], s0 glc ; encoding: [0x82,0x02,0x81,0xc1,0x00,0x00,0x00,0x00]
598 // GFX1012: s_buffer_atomic_swap_x2 s[10:11], s[4:7], s0 glc ; encoding: [0x82,0x02,0x81,0xf5,0x00,0x00,0x00,0x00]
599 // NOSICIVIGFX1030: error: instruction not supported on this GPU
601 s_buffer_atomic_umax s5, s[4:7], s0
602 // GFX9: s_buffer_atomic_umax s5, s[4:7], s0 ; encoding: [0x42,0x01,0x1c,0xc1,0x00,0x00,0x00,0x00]
603 // GFX1012: s_buffer_atomic_umax s5, s[4:7], s0 ; encoding: [0x42,0x01,0x1c,0xf5,0x00,0x00,0x00,0x00]
604 // NOSICIVIGFX1030: error: instruction not supported on this GPU
606 s_buffer_atomic_umax_x2 s[10:11], s[4:7], s0 glc
607 // GFX9: s_buffer_atomic_umax_x2 s[10:11], s[4:7], s0 glc ; encoding: [0x82,0x02,0x9d,0xc1,0x00,0x00,0x00,0x00]
608 // GFX1012: s_buffer_atomic_umax_x2 s[10:11], s[4:7], s0 glc ; encoding: [0x82,0x02,0x9d,0xf5,0x00,0x00,0x00,0x00]
609 // NOSICIVIGFX1030: error: instruction not supported on this GPU
611 s_buffer_atomic_umin s5, s[4:7], s0
612 // GFX9: s_buffer_atomic_umin s5, s[4:7], s0 ; encoding: [0x42,0x01,0x14,0xc1,0x00,0x00,0x00,0x00]
613 // GFX1012: s_buffer_atomic_umin s5, s[4:7], s0 ; encoding: [0x42,0x01,0x14,0xf5,0x00,0x00,0x00,0x00]
614 // NOSICIVIGFX1030: error: instruction not supported on this GPU
616 s_buffer_atomic_umin_x2 s[10:11], s[4:7], s0 glc
617 // GFX9: s_buffer_atomic_umin_x2 s[10:11], s[4:7], s0 glc ; encoding: [0x82,0x02,0x95,0xc1,0x00,0x00,0x00,0x00]
618 // GFX1012: s_buffer_atomic_umin_x2 s[10:11], s[4:7], s0 glc ; encoding: [0x82,0x02,0x95,0xf5,0x00,0x00,0x00,0x00]
619 // NOSICIVIGFX1030: error: instruction not supported on this GPU
621 s_buffer_atomic_xor s5, s[4:7], s0
622 // GFX9: s_buffer_atomic_xor s5, s[4:7], s0 ; encoding: [0x42,0x01,0x28,0xc1,0x00,0x00,0x00,0x00]
623 // GFX1012: s_buffer_atomic_xor s5, s[4:7], s0 ; encoding: [0x42,0x01,0x28,0xf5,0x00,0x00,0x00,0x00]
624 // NOSICIVIGFX1030: error: instruction not supported on this GPU
626 s_buffer_atomic_xor_x2 s[10:11], s[4:7], s0 glc
627 // GFX9: s_buffer_atomic_xor_x2 s[10:11], s[4:7], s0 glc ; encoding: [0x82,0x02,0xa9,0xc1,0x00,0x00,0x00,0x00]
628 // GFX1012: s_buffer_atomic_xor_x2 s[10:11], s[4:7], s0 glc ; encoding: [0x82,0x02,0xa9,0xf5,0x00,0x00,0x00,0x00]
629 // NOSICIVIGFX1030: error: instruction not supported on this GPU
631 //===----------------------------------------------------------------------===//
632 // Unsigned 20-bit offsets (VI+)
633 //===----------------------------------------------------------------------===//
635 s_atc_probe 0x7, s[4:5], 0xFFFFF
636 // NOSICI: error: instruction not supported on this GPU
637 // GFX89: s_atc_probe 7, s[4:5], 0xfffff ; encoding: [0xc2,0x01,0x9a,0xc0,0xff,0xff,0x0f,0x00]
638 // GFX10: s_atc_probe 7, s[4:5], 0xfffff ; encoding: [0xc2,0x01,0x98,0xf4,0xff,0xff,0x0f,0xfa]
640 s_atc_probe_buffer 0x1, s[8:11], 0xFFFFF
641 // NOSICI: error: instruction not supported on this GPU
642 // GFX89: s_atc_probe_buffer 1, s[8:11], 0xfffff ; encoding: [0x44,0x00,0x9e,0xc0,0xff,0xff,0x0f,0x00]
643 // GFX10: s_atc_probe_buffer 1, s[8:11], 0xfffff ; encoding: [0x44,0x00,0x9c,0xf4,0xff,0xff,0x0f,0xfa]
645 s_store_dword s1, s[2:3], 0xFFFFF
646 // NOSICIGFX1030: error: instruction not supported on this GPU
647 // GFX89: s_store_dword s1, s[2:3], 0xfffff ; encoding: [0x41,0x00,0x42,0xc0,0xff,0xff,0x0f,0x00]
648 // GFX1012: s_store_dword s1, s[2:3], 0xfffff ; encoding: [0x41,0x00,0x40,0xf4,0xff,0xff,0x0f,0xfa]
650 s_buffer_store_dword s10, s[92:95], 0xFFFFF
651 // NOSICIGFX1030: error: instruction not supported on this GPU
652 // GFX89: s_buffer_store_dword s10, s[92:95], 0xfffff ; encoding: [0xae,0x02,0x62,0xc0,0xff,0xff,0x0f,0x00]
653 // GFX1012: s_buffer_store_dword s10, s[92:95], 0xfffff ; encoding: [0xae,0x02,0x60,0xf4,0xff,0xff,0x0f,0xfa]
655 s_atomic_swap s5, s[2:3], 0xFFFFF
656 // NOSICIVIGFX1030: error: instruction not supported on this GPU
657 // GFX1012: s_atomic_swap s5, s[2:3], 0xfffff ; encoding: [0x41,0x01,0x00,0xf6,0xff,0xff,0x0f,0xfa]
658 // GFX9: s_atomic_swap s5, s[2:3], 0xfffff ; encoding: [0x41,0x01,0x02,0xc2,0xff,0xff,0x0f,0x00]
660 s_buffer_atomic_swap s5, s[4:7], 0xFFFFF
661 // NOSICIVIGFX1030: error: instruction not supported on this GPU
662 // GFX1012: s_buffer_atomic_swap s5, s[4:7], 0xfffff ; encoding: [0x42,0x01,0x00,0xf5,0xff,0xff,0x0f,0xfa]
663 // GFX9: s_buffer_atomic_swap s5, s[4:7], 0xfffff ; encoding: [0x42,0x01,0x02,0xc1,0xff,0xff,0x0f,0x00]
665 s_atc_probe 0x7, s[4:5], 0x1FFFFF
666 // NOSICI: error: instruction not supported on this GPU
667 // NOGFX9: error: expected a 21-bit signed offset
668 // NOVI: error: expected a 20-bit unsigned offset
670 s_atc_probe_buffer 0x1, s[8:11], 0x1FFFFF
671 // NOSICI: error: instruction not supported on this GPU
672 // NOGFX9: error: expected a 20-bit unsigned offset
673 // NOVI: error: expected a 20-bit unsigned offset
675 s_store_dword s1, s[2:3], 0x1FFFFF
676 // NOSICIGFX1030: error: instruction not supported on this GPU
677 // NOGFX9GFX1012: error: expected a 21-bit signed offset
678 // NOVI: error: expected a 20-bit unsigned offset
680 s_buffer_store_dword s10, s[92:95], 0x1FFFFF
681 // NOSICIGFX1030: error: instruction not supported on this GPU
682 // NOGFX9GFX1012: error: expected a 20-bit unsigned offset
683 // NOVI: error: expected a 20-bit unsigned offset
685 s_atomic_swap s5, s[2:3], 0x1FFFFF
686 // NOSICIVIGFX1030: error: instruction not supported on this GPU
687 // NOGFX9GFX1012: error: expected a 21-bit signed offset
689 s_buffer_atomic_swap s5, s[4:7], 0x1FFFFF
690 // NOSICIVIGFX1030: error: instruction not supported on this GPU
691 // NOGFX9GFX1012: error: expected a 20-bit unsigned offset
693 //===----------------------------------------------------------------------===//
694 // Signed offsets (gfx9+)
695 //===----------------------------------------------------------------------===//
697 s_atc_probe 0x7, s[4:5], -1
698 // NOVI: error: expected a 20-bit unsigned offset
699 // GFX9: s_atc_probe 7, s[4:5], -0x1 ; encoding: [0xc2,0x01,0x9a,0xc0,0xff,0xff,0x1f,0x00]
700 // GFX10: s_atc_probe 7, s[4:5], -0x1 ; encoding: [0xc2,0x01,0x98,0xf4,0xff,0xff,0x1f,0xfa]
701 // NOSICI: error: instruction not supported on this GPU
703 s_atc_probe_buffer 0x1, s[8:11], -1
704 // NOVI: error: expected a 20-bit unsigned offset
705 // NOSICI: error: instruction not supported on this GPU
706 // NOGFX9: error: expected a 20-bit unsigned offset
708 s_store_dword s1, s[2:3], -1
709 // NOVI: error: expected a 20-bit unsigned offset
710 // GFX9: s_store_dword s1, s[2:3], -0x1 ; encoding: [0x41,0x00,0x42,0xc0,0xff,0xff,0x1f,0x00]
711 // GFX1012: s_store_dword s1, s[2:3], -0x1 ; encoding: [0x41,0x00,0x40,0xf4,0xff,0xff,0x1f,0xfa]
712 // NOSICIGFX1030: error: instruction not supported on this GPU
714 s_buffer_store_dword s10, s[92:95], -1
715 // NOVI: error: expected a 20-bit unsigned offset
716 // NOSICIGFX1030: error: instruction not supported on this GPU
717 // NOGFX9GFX1012: error: expected a 20-bit unsigned offset
719 s_load_dword s1, s[2:3], -1
720 // NOVI: error: expected a 20-bit unsigned offset
721 // GFX9: s_load_dword s1, s[2:3], -0x1 ; encoding: [0x41,0x00,0x02,0xc0,0xff,0xff,0x1f,0x00]
722 // GFX10: s_load_dword s1, s[2:3], -0x1 ; encoding: [0x41,0x00,0x00,0xf4,0xff,0xff,0x1f,0xfa]
723 // NOSICI: error: operands are not valid for this GPU or mode
725 s_buffer_load_dword s10, s[92:95], -1
726 // NOVI: error: expected a 20-bit unsigned offset
727 // NOSICI: error: operands are not valid for this GPU or mode
728 // NOGFX9: error: expected a 20-bit unsigned offset
730 s_atomic_swap s5, s[2:3], -1
731 // NOVI: error: instruction not supported on this GPU
732 // GFX9: s_atomic_swap s5, s[2:3], -0x1 ; encoding: [0x41,0x01,0x02,0xc2,0xff,0xff,0x1f,0x00]
733 // GFX1012: s_atomic_swap s5, s[2:3], -0x1 ; encoding: [0x41,0x01,0x00,0xf6,0xff,0xff,0x1f,0xfa]
734 // NOSICIGFX1030: error: instruction not supported on this GPU
736 s_buffer_atomic_swap s5, s[4:7], -1
737 // NOVI: error: instruction not supported on this GPU
738 // NOSICIGFX1030: error: instruction not supported on this GPU
739 // NOGFX9GFX1012: error: expected a 20-bit unsigned offset
741 s_atc_probe 0x7, s[4:5], 0xFFFFFFFFFFF00000
742 // NOSICI: error: instruction not supported on this GPU
743 // GFX10: s_atc_probe 7, s[4:5], -0x100000 ; encoding: [0xc2,0x01,0x98,0xf4,0x00,0x00,0x10,0xfa]
744 // GFX9: s_atc_probe 7, s[4:5], -0x100000 ; encoding: [0xc2,0x01,0x9a,0xc0,0x00,0x00,0x10,0x00]
745 // NOVI: error: expected a 20-bit unsigned offset
747 s_atc_probe_buffer 0x1, s[8:11], 0xFFFFFFFFFFF00000
748 // NOSICI: error: instruction not supported on this GPU
749 // NOGFX9: error: expected a 20-bit unsigned offset
750 // NOVI: error: expected a 20-bit unsigned offset
752 s_store_dword s1, s[2:3], 0xFFFFFFFFFFF00000
753 // NOSICIGFX1030: error: instruction not supported on this GPU
754 // GFX1012: s_store_dword s1, s[2:3], -0x100000 ; encoding: [0x41,0x00,0x40,0xf4,0x00,0x00,0x10,0xfa]
755 // GFX9: s_store_dword s1, s[2:3], -0x100000 ; encoding: [0x41,0x00,0x42,0xc0,0x00,0x00,0x10,0x00]
756 // NOVI: error: expected a 20-bit unsigned offset
758 s_buffer_store_dword s10, s[92:95], 0xFFFFFFFFFFF00000
759 // NOSICIGFX1030: error: instruction not supported on this GPU
760 // NOGFX9GFX1012: error: expected a 20-bit unsigned offset
761 // NOVI: error: expected a 20-bit unsigned offset
763 s_load_dword s1, s[2:3], 0xFFFFFFFFFFF00000
764 // NOSICI: error: operands are not valid for this GPU or mode
765 // GFX10: s_load_dword s1, s[2:3], -0x100000 ; encoding: [0x41,0x00,0x00,0xf4,0x00,0x00,0x10,0xfa]
766 // GFX9: s_load_dword s1, s[2:3], -0x100000 ; encoding: [0x41,0x00,0x02,0xc0,0x00,0x00,0x10,0x00]
767 // NOVI: error: expected a 20-bit unsigned offset
769 s_buffer_load_dword s10, s[92:95], 0xFFFFFFFFFFF00000
770 // NOSICI: error: operands are not valid for this GPU or mode
771 // NOGFX9: error: expected a 20-bit unsigned offset
772 // NOVI: error: expected a 20-bit unsigned offset
774 s_atomic_swap s5, s[2:3], 0xFFFFFFFFFFF00000
775 // NOSICIVIGFX1030: error: instruction not supported on this GPU
776 // GFX1012: s_atomic_swap s5, s[2:3], -0x100000 ; encoding: [0x41,0x01,0x00,0xf6,0x00,0x00,0x10,0xfa]
777 // GFX9: s_atomic_swap s5, s[2:3], -0x100000 ; encoding: [0x41,0x01,0x02,0xc2,0x00,0x00,0x10,0x00]
779 s_buffer_atomic_swap s5, s[4:7], 0xFFFFFFFFFFF00000
780 // NOSICIVIGFX1030: error: instruction not supported on this GPU
781 // NOGFX9GFX1012: error: expected a 20-bit unsigned offset