• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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=bonaire -show-encoding %s | FileCheck -check-prefix=GCN -check-prefix=SICI -check-prefix=CI %s
3// RUN: not llvm-mc -arch=amdgcn -mcpu=kaveri -show-encoding %s | FileCheck -check-prefix=GCN -check-prefix=SICI %s
4// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s | FileCheck -check-prefix=GCN -check-prefix=VI -check-prefix=GFX89 %s
5// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding %s | FileCheck -check-prefix=GCN -check-prefix=GFX89 -check-prefix=GFX9 %s
6// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1012 -show-encoding %s | FileCheck -check-prefix=GCN -check-prefix=GFX10 -check-prefix=GFX1012 %s
7// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1030 -show-encoding %s | FileCheck -check-prefix=GCN -check-prefix=GFX10 %s
8// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck -check-prefix=NOSICI -check-prefix=NOSICIVI -check-prefix=NOSICIGFX10 -check-prefix=NOSICIVIGFX10 -check-prefix=NOSICIGFX1030 -check-prefix=NOSICIVIGFX1030 --implicit-check-not=error: %s
9// RUN: not llvm-mc -arch=amdgcn -mcpu=bonaire %s 2>&1 | FileCheck -check-prefix=NOSICI -check-prefix=NOSICIVI -check-prefix=NOSICIGFX10 -check-prefix=NOSICIVIGFX10 -check-prefix=NOSICIGFX1030 -check-prefix=NOSICIVIGFX1030 --implicit-check-not=error: %s
10// RUN: not llvm-mc -arch=amdgcn -mcpu=kaveri %s 2>&1 | FileCheck -check-prefix=NOSICI -check-prefix=NOSICIVI -check-prefix=NOSICIGFX10 -check-prefix=NOSICIVIGFX10 -check-prefix=NOSICIGFX1030 -check-prefix=NOSICIVIGFX1030 --implicit-check-not=error: %s
11// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga %s 2>&1 | FileCheck -check-prefix=NOSICIVI -check-prefix=NOVI -check-prefix=NOSICIVIGFX10 -check-prefix=NOSICIVIGFX1030 --implicit-check-not=error: %s
12// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 %s 2>&1 | FileCheck -check-prefix=NOGFX9 -check-prefix=NOGFX9GFX1012 --implicit-check-not=error: %s
13// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1012 %s 2>&1 | FileCheck -check-prefix=NOSICIGFX10 -check-prefix=NOGFX9 -check-prefix=NOGFX9GFX1012 --implicit-check-not=error: %s
14// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1030 %s 2>&1 | FileCheck -check-prefix=NOSICIGFX1030 -check-prefix=NOSICIVIGFX10 -check-prefix=NOSICIVIGFX1030 -check-prefix=NOSICIGFX10 -check-prefix=NOGFX9 -check-prefix=NOGFX1030 --implicit-check-not=error: %s
15
16s_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
20
21s_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
24
25s_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
29
30s_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
34
35s_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
39
40s_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
44
45s_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
49
50s_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
54
55s_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
59
60s_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
65
66// FIXME: Should error about instruction on GPU
67s_store_dword s1, s[2:3], 0xfc
68// GFX89: s_store_dword s1, s[2:3], 0xfc  ; encoding: [0x41,0x00,0x42,0xc0,0xfc,0x00,0x00,0x00]
69// GFX1012: s_store_dword s1, s[2:3], 0xfc ; encoding: [0x41,0x00,0x40,0xf4,0xfc,0x00,0x00,0xfa]
70// NOSICIGFX1030: error: instruction not supported on this GPU
71
72s_store_dword s1, s[2:3], 0xfc glc
73// GFX89: s_store_dword s1, s[2:3], 0xfc glc ; encoding: [0x41,0x00,0x43,0xc0,0xfc,0x00,0x00,0x00]
74// GFX1012: s_store_dword s1, s[2:3], 0xfc glc ; encoding: [0x41,0x00,0x41,0xf4,0xfc,0x00,0x00,0xfa]
75// NOSICIGFX1030: error: instruction not supported on this GPU
76
77s_store_dword s1, s[2:3], s4
78// GFX89: s_store_dword s1, s[2:3], s4 ; encoding: [0x41,0x00,0x40,0xc0,0x04,0x00,0x00,0x00]
79// GFX1012: s_store_dword s1, s[2:3], s4 ; encoding: [0x41,0x00,0x40,0xf4,0x00,0x00,0x00,0x08]
80// NOSICIGFX1030: error: instruction not supported on this GPU
81
82s_store_dword s1, s[2:3], s4 glc
83// GFX89: s_store_dword s1, s[2:3], s4 glc ; encoding: [0x41,0x00,0x41,0xc0,0x04,0x00,0x00,0x00]
84// GFX1012: s_store_dword s1, s[2:3], s4 glc ; encoding: [0x41,0x00,0x41,0xf4,0x00,0x00,0x00,0x08]
85// NOSICIGFX1030: error: instruction not supported on this GPU
86
87s_store_dword tba_lo, s[2:3], s4
88// VI: s_store_dword tba_lo, s[2:3], s4 ; encoding: [0x01,0x1b,0x40,0xc0,0x04,0x00,0x00,0x00]
89// NOSICI: error: instruction not supported on this GPU
90// NOGFX9GFX1012: error: register not available on this GPU
91// NOGFX1030: error: instruction not supported on this GPU
92
93s_store_dword tba_hi, s[2:3], s4
94// VI: s_store_dword tba_hi, s[2:3], s4 ; encoding: [0x41,0x1b,0x40,0xc0,0x04,0x00,0x00,0x00]
95// NOSICI: error: instruction not supported on this GPU
96// NOGFX9GFX1012: error: register not available on this GPU
97// NOGFX1030: error: instruction not supported on this GPU
98
99s_store_dword tma_lo, s[2:3], s4
100// VI: s_store_dword tma_lo, s[2:3], s4 ; encoding: [0x81,0x1b,0x40,0xc0,0x04,0x00,0x00,0x00]
101// NOSICI: error: instruction not supported on this GPU
102// NOGFX9GFX1012: error: register not available on this GPU
103// NOGFX1030: error: instruction not supported on this GPU
104
105s_store_dword tma_hi, s[2:3], s4
106// VI: s_store_dword tma_hi, s[2:3], s4 ; encoding: [0xc1,0x1b,0x40,0xc0,0x04,0x00,0x00,0x00]
107// NOSICI: error: instruction not supported on this GPU
108// NOGFX9GFX1012: error: register not available on this GPU
109// NOGFX1030: error: instruction not supported on this GPU
110
111// FIXME: Should error on SI instead of silently ignoring glc
112s_load_dword s1, s[2:3], 0xfc glc
113// GFX89: s_load_dword s1, s[2:3], 0xfc glc ; encoding: [0x41,0x00,0x03,0xc0,0xfc,0x00,0x00,0x00]
114// GFX10: s_load_dword s1, s[2:3], 0xfc glc ; encoding: [0x41,0x00,0x01,0xf4,0xfc,0x00,0x00,0xfa]
115// SICI: s_load_dword s1, s[2:3], 0xfc glc ; encoding: [0xfc,0x83,0x00,0xc0
116
117s_load_dword s1, s[2:3], s4 glc
118// GFX89: s_load_dword s1, s[2:3], s4 glc ; encoding: [0x41,0x00,0x01,0xc0,0x04,0x00,0x00,0x00]
119// GFX10: s_load_dword s1, s[2:3], s4 glc ; encoding: [0x41,0x00,0x01,0xf4,0x00,0x00,0x00,0x08]
120// SICI: s_load_dword s1, s[2:3], s4 glc ; encoding: [0x04,0x82,0x00,0xc0]
121
122s_buffer_store_dword s10, s[92:95], m0
123// GFX89: s_buffer_store_dword s10, s[92:95], m0 ; encoding: [0xae,0x02,0x60,0xc0,0x7c,0x00,0x00,0x00]
124// NOSICIGFX1030: error: instruction not supported on this GPU
125// GFX1012: s_buffer_store_dword s10, s[92:95], m0 ; encoding: [0xae,0x02,0x60,0xf4,0x00,0x00,0x00,0xf8]
126
127s_buffer_store_dword tba_lo, s[92:95], m0
128// VI: s_buffer_store_dword tba_lo, s[92:95], m0 ; encoding: [0x2e,0x1b,0x60,0xc0,0x7c,0x00,0x00,0x00]
129// NOSICI: error: instruction not supported on this GPU
130// NOGFX9GFX1012: error: register not available on this GPU
131// NOGFX1030: error: instruction not supported on this GPU
132
133s_buffer_store_dword tba_hi, s[92:95], m0
134// VI: s_buffer_store_dword tba_hi, s[92:95], m0 ; encoding: [0x6e,0x1b,0x60,0xc0,0x7c,0x00,0x00,0x00]
135// NOSICI: error: instruction not supported on this GPU
136// NOGFX9GFX1012: error: register not available on this GPU
137// NOGFX1030: error: instruction not supported on this GPU
138
139s_buffer_store_dword tma_lo, s[92:95], m0
140// VI: s_buffer_store_dword tma_lo, s[92:95], m0 ; encoding: [0xae,0x1b,0x60,0xc0,0x7c,0x00,0x00,0x00]
141// NOSICI: error: instruction not supported on this GPU
142// NOGFX9GFX1012: error: register not available on this GPU
143// NOGFX1030: error: instruction not supported on this GPU
144
145s_buffer_store_dword tma_hi, s[92:95], m0
146// VI: s_buffer_store_dword tma_hi, s[92:95], m0 ; encoding: [0xee,0x1b,0x60,0xc0,0x7c,0x00,0x00,0x00]
147// NOSICI: error: instruction not supported on this GPU
148// NOGFX9GFX1012: error: register not available on this GPU
149// NOGFX1030: error: instruction not supported on this GPU
150
151s_buffer_store_dword ttmp0, s[92:95], m0
152// VI:   s_buffer_store_dword ttmp0, s[92:95], m0 ; encoding: [0x2e,0x1c,0x60,0xc0,0x7c,0x00,0x00,0x00]
153// GFX9: s_buffer_store_dword ttmp0, s[92:95], m0 ; encoding: [0x2e,0x1b,0x60,0xc0,0x7c,0x00,0x00,0x00]
154// NOSICIGFX1030: error: instruction not supported on this GPU
155// GFX1012: s_buffer_store_dword ttmp0, s[92:95], m0 ; encoding: [0x2e,0x1b,0x60,0xf4,0x00,0x00,0x00,0xf8]
156
157s_buffer_store_dwordx2 s[10:11], s[92:95], m0
158// GFX89: s_buffer_store_dwordx2 s[10:11], s[92:95], m0 ; encoding: [0xae,0x02,0x64,0xc0,0x7c,0x00,0x00,0x00]
159// NOSICIGFX1030: error: instruction not supported on this GPU
160// GFX1012: s_buffer_store_dwordx2 s[10:11], s[92:95], m0 ; encoding: [0xae,0x02,0x64,0xf4,0x00,0x00,0x00,0xf8]
161
162s_buffer_store_dwordx4 s[8:11], s[92:95], m0 glc
163// GFX89: s_buffer_store_dwordx4 s[8:11], s[92:95], m0 glc ; encoding: [0x2e,0x02,0x69,0xc0,0x7c,0x00,0x00,0x00]
164// NOSICIGFX1030: error: instruction not supported on this GPU
165// GFX1012: s_buffer_store_dwordx4 s[8:11], s[92:95], m0 glc ; encoding: [0x2e,0x02,0x69,0xf4,0x00,0x00,0x00,0xf8]
166
167s_buffer_store_dwordx2 tba, s[92:95], m0 glc
168// VI: s_buffer_store_dwordx2 tba, s[92:95], m0 glc ; encoding: [0x2e,0x1b,0x65,0xc0,0x7c,0x00,0x00,0x00]
169// NOSICI: error: instruction not supported on this GPU
170// NOGFX9GFX1012: error: register not available on this GPU
171// NOGFX1030: error: instruction not supported on this GPU
172
173s_buffer_load_dword s10, s[92:95], m0
174// GFX89: s_buffer_load_dword s10, s[92:95], m0 ; encoding: [0xae,0x02,0x20,0xc0,0x7c,0x00,0x00,0x00]
175// SICI: s_buffer_load_dword s10, s[92:95], m0 ; encoding: [0x7c,0x5c,0x05,0xc2]
176// GFX10: s_buffer_load_dword s10, s[92:95], m0 ; encoding: [0xae,0x02,0x20,0xf4,0x00,0x00,0x00,0xf8]
177
178s_buffer_load_dword tba_lo, s[92:95], m0
179// VI: s_buffer_load_dword tba_lo, s[92:95], m0 ; encoding: [0x2e,0x1b,0x20,0xc0,0x7c,0x00,0x00,0x00]
180// SICI: s_buffer_load_dword tba_lo, s[92:95], m0 ; encoding: [0x7c,0x5c,0x36,0xc2]
181// NOGFX9: error: register not available on this GPU
182
183s_buffer_load_dword tba_hi, s[92:95], m0
184// VI: s_buffer_load_dword tba_hi, s[92:95], m0 ; encoding: [0x6e,0x1b,0x20,0xc0,0x7c,0x00,0x00,0x00]
185// SICI: s_buffer_load_dword tba_hi, s[92:95], m0 ; encoding: [0x7c,0xdc,0x36,0xc2]
186// NOGFX9: error: register not available on this GPU
187
188s_buffer_load_dword tma_lo, s[92:95], m0
189// VI: s_buffer_load_dword tma_lo, s[92:95], m0 ; encoding: [0xae,0x1b,0x20,0xc0,0x7c,0x00,0x00,0x00]
190// SICI: s_buffer_load_dword tma_lo, s[92:95], m0 ; encoding: [0x7c,0x5c,0x37,0xc2]
191// NOGFX9: error: register not available on this GPU
192
193s_buffer_load_dword tma_hi, s[92:95], m0
194// VI: s_buffer_load_dword tma_hi, s[92:95], m0 ; encoding: [0xee,0x1b,0x20,0xc0,0x7c,0x00,0x00,0x00]
195// SICI: s_buffer_load_dword tma_hi, s[92:95], m0 ; encoding: [0x7c,0xdc,0x37,0xc2]
196// NOGFX9: error: register not available on this GPU
197
198s_buffer_load_dword ttmp0, s[92:95], m0
199// VI:    s_buffer_load_dword ttmp0, s[92:95], m0 ; encoding: [0x2e,0x1c,0x20,0xc0,0x7c,0x00,0x00,0x00]
200// GFX9:  s_buffer_load_dword ttmp0, s[92:95], m0 ; encoding: [0x2e,0x1b,0x20,0xc0,0x7c,0x00,0x00,0x00]
201// SICI:  s_buffer_load_dword ttmp0, s[92:95], m0 ; encoding: [0x7c,0x5c,0x38,0xc2]
202// GFX10: s_buffer_load_dword ttmp0, s[92:95], m0 ; encoding: [0x2e,0x1b,0x20,0xf4,0x00,0x00,0x00,0xf8]
203
204s_buffer_load_dwordx2 s[10:11], s[92:95], m0
205// GFX89: s_buffer_load_dwordx2 s[10:11], s[92:95], m0 ; encoding: [0xae,0x02,0x24,0xc0,0x7c,0x00,0x00,0x00]
206// SICI:  s_buffer_load_dwordx2 s[10:11], s[92:95], m0 ; encoding: [0x7c,0x5c,0x45,0xc2]
207// GFX10: s_buffer_load_dwordx2 s[10:11], s[92:95], m0 ; encoding: [0xae,0x02,0x24,0xf4,0x00,0x00,0x00,0xf8]
208
209s_buffer_load_dwordx2 tba, s[92:95], m0
210// VI:   s_buffer_load_dwordx2 tba, s[92:95], m0 ; encoding: [0x2e,0x1b,0x24,0xc0,0x7c,0x00,0x00,0x00]
211// SICI: s_buffer_load_dwordx2 tba, s[92:95], m0 ; encoding: [0x7c,0x5c,0x76,0xc2]
212// NOGFX9: error: register not available on this GPU
213
214s_buffer_load_dwordx2 tma, s[92:95], m0
215// VI: s_buffer_load_dwordx2 tma, s[92:95], m0 ; encoding: [0xae,0x1b,0x24,0xc0,0x7c,0x00,0x00,0x00]
216// SICI: s_buffer_load_dwordx2 tma, s[92:95], m0 ; encoding: [0x7c,0x5c,0x77,0xc2]
217// NOGFX9: error: register not available on this GPU
218
219s_buffer_load_dwordx2 ttmp[0:1], s[92:95], m0
220// VI:    s_buffer_load_dwordx2 ttmp[0:1], s[92:95], m0 ; encoding: [0x2e,0x1c,0x24,0xc0,0x7c,0x00,0x00,0x00]
221// GFX9:  s_buffer_load_dwordx2 ttmp[0:1], s[92:95], m0 ; encoding: [0x2e,0x1b,0x24,0xc0,0x7c,0x00,0x00,0x00]
222// SICI:  s_buffer_load_dwordx2 ttmp[0:1], s[92:95], m0 ; encoding: [0x7c,0x5c,0x78,0xc2]
223// GFX10: s_buffer_load_dwordx2 ttmp[0:1], s[92:95], m0 ; encoding: [0x2e,0x1b,0x24,0xf4,0x00,0x00,0x00,0xf8]
224
225// FIXME: Should error on SI instead of silently ignoring glc
226s_buffer_load_dwordx4 s[8:11], s[92:95], m0 glc
227// GFX89: s_buffer_load_dwordx4 s[8:11], s[92:95], m0 glc ; encoding: [0x2e,0x02,0x29,0xc0,0x7c,0x00,0x00,0x00]
228// GFX10: s_buffer_load_dwordx4 s[8:11], s[92:95], m0 glc ; encoding: [0x2e,0x02,0x29,0xf4,0x00,0x00,0x00,0xf8]
229// SICI: s_buffer_load_dwordx4 s[8:11], s[92:95], m0 glc ; encoding: [0x7c,0x5c,0x84,0xc2]
230
231//===----------------------------------------------------------------------===//
232// s_scratch instructions
233//===----------------------------------------------------------------------===//
234
235s_scratch_load_dword s5, s[2:3], s101
236// GFX9: s_scratch_load_dword s5, s[2:3], s101 ; encoding: [0x41,0x01,0x14,0xc0,0x65,0x00,0x00,0x00]
237// GFX1012: s_scratch_load_dword s5, s[2:3], s101 ; encoding: [0x41,0x01,0x14,0xf4,0x00,0x00,0x00,0xca]
238// NOSICIVIGFX1030: error: instruction not supported on this GPU
239
240s_scratch_load_dword s5, s[2:3], s0 glc
241// GFX9: s_scratch_load_dword s5, s[2:3], s0 glc ; encoding: [0x41,0x01,0x15,0xc0,0x00,0x00,0x00,0x00]
242// GFX1012: s_scratch_load_dword s5, s[2:3], s0 glc ; encoding: [0x41,0x01,0x15,0xf4,0x00,0x00,0x00,0x00]
243// NOSICIVIGFX1030: error: instruction not supported on this GPU
244
245s_scratch_load_dwordx2 s[100:101], s[2:3], s0
246// GFX9: s_scratch_load_dwordx2 s[100:101], s[2:3], s0 ; encoding: [0x01,0x19,0x18,0xc0,0x00,0x00,0x00,0x00]
247// GFX1012: s_scratch_load_dwordx2 s[100:101], s[2:3], s0 ; encoding: [0x01,0x19,0x18,0xf4,0x00,0x00,0x00,0x00]
248// NOSICIVIGFX1030: error: instruction not supported on this GPU
249
250s_scratch_load_dwordx2 s[10:11], s[2:3], 0x1 glc
251// GFX9: s_scratch_load_dwordx2 s[10:11], s[2:3], 0x1 glc ; encoding: [0x81,0x02,0x1b,0xc0,0x01,0x00,0x00,0x00]
252// GFX1012: s_scratch_load_dwordx2 s[10:11], s[2:3], 0x1 glc ; encoding: [0x81,0x02,0x19,0xf4,0x01,0x00,0x00,0xfa]
253// NOSICIVIGFX1030: error: instruction not supported on this GPU
254
255s_scratch_load_dwordx4 s[20:23], s[4:5], s0
256// GFX9: s_scratch_load_dwordx4 s[20:23], s[4:5], s0 ; encoding: [0x02,0x05,0x1c,0xc0,0x00,0x00,0x00,0x00]
257// GFX1012: s_scratch_load_dwordx4 s[20:23], s[4:5], s0 ; encoding: [0x02,0x05,0x1c,0xf4,0x00,0x00,0x00,0x00]
258// NOSICIVIGFX1030: error: instruction not supported on this GPU
259
260s_scratch_store_dword s101, s[4:5], s0
261// GFX9: s_scratch_store_dword s101, s[4:5], s0 ; encoding: [0x42,0x19,0x54,0xc0,0x00,0x00,0x00,0x00]
262// GFX1012: s_scratch_store_dword s101, s[4:5], s0 ; encoding: [0x42,0x19,0x54,0xf4,0x00,0x00,0x00,0x00]
263// NOSICIVIGFX1030: error: instruction not supported on this GPU
264
265s_scratch_store_dword s1, s[4:5], 0x123 glc
266// GFX9: s_scratch_store_dword s1, s[4:5], 0x123 glc ; encoding: [0x42,0x00,0x57,0xc0,0x23,0x01,0x00,0x00]
267// GFX1012: s_scratch_store_dword s1, s[4:5], 0x123 glc ; encoding: [0x42,0x00,0x55,0xf4,0x23,0x01,0x00,0xfa]
268// NOSICIVIGFX1030: error: instruction not supported on this GPU
269
270s_scratch_store_dwordx2 s[2:3], s[4:5], s101 glc
271// GFX9: s_scratch_store_dwordx2 s[2:3], s[4:5], s101 glc ; encoding: [0x82,0x00,0x59,0xc0,0x65,0x00,0x00,0x00]
272// GFX1012: s_scratch_store_dwordx2 s[2:3], s[4:5], s101 glc ; encoding: [0x82,0x00,0x59,0xf4,0x00,0x00,0x00,0xca]
273// NOSICIVIGFX1030: error: instruction not supported on this GPU
274
275s_scratch_store_dwordx4 s[4:7], s[4:5], s0 glc
276// GFX9: s_scratch_store_dwordx4 s[4:7], s[4:5], s0 glc ; encoding: [0x02,0x01,0x5d,0xc0,0x00,0x00,0x00,0x00]
277// GFX1012: s_scratch_store_dwordx4 s[4:7], s[4:5], s0 glc ; encoding: [0x02,0x01,0x5d,0xf4,0x00,0x00,0x00,0x00]
278// NOSICIVIGFX1030: error: instruction not supported on this GPU
279
280//===----------------------------------------------------------------------===//
281// s_dcache_discard instructions
282//===----------------------------------------------------------------------===//
283
284s_dcache_discard s[2:3], s0
285// GFX9:     s_dcache_discard s[2:3], s0 ; encoding: [0x01,0x00,0xa0,0xc0,0x00,0x00,0x00,0x00]
286// GFX1012:  s_dcache_discard s[2:3], s0 ; encoding: [0x01,0x00,0xa0,0xf4,0x00,0x00,0x00,0x00]
287// NOSICIVIGFX1030: error: instruction not supported on this GPU
288
289s_dcache_discard s[2:3], 0x0
290// GFX9:     s_dcache_discard s[2:3], 0x0 ; encoding: [0x01,0x00,0xa2,0xc0,0x00,0x00,0x00,0x00]
291// GFX1012:  s_dcache_discard s[2:3], 0x0 ; encoding: [0x01,0x00,0xa0,0xf4,0x00,0x00,0x00,0xfa]
292// NOSICIVIGFX1030: error: instruction not supported on this GPU
293
294s_dcache_discard_x2 s[2:3], s101
295// GFX9:     s_dcache_discard_x2 s[2:3], s101 ; encoding: [0x01,0x00,0xa4,0xc0,0x65,0x00,0x00,0x00]
296// GFX1012:  s_dcache_discard_x2 s[2:3], s101 ; encoding: [0x01,0x00,0xa4,0xf4,0x00,0x00,0x00,0xca]
297// NOSICIVIGFX1030: error: instruction not supported on this GPU
298
299s_dcache_discard_x2 s[2:3], 0x0
300// GFX9:     s_dcache_discard_x2 s[2:3], 0x0 ; encoding: [0x01,0x00,0xa6,0xc0,0x00,0x00,0x00,0x00]
301// GFX1012:  s_dcache_discard_x2 s[2:3], 0x0 ; encoding: [0x01,0x00,0xa4,0xf4,0x00,0x00,0x00,0xfa]
302// NOSICIVIGFX1030: error: instruction not supported on this GPU
303
304//===----------------------------------------------------------------------===//
305// s_atomic instructions
306//===----------------------------------------------------------------------===//
307
308s_atomic_add s5, s[2:3], s101
309// GFX9:     s_atomic_add s5, s[2:3], s101 ; encoding: [0x41,0x01,0x08,0xc2,0x65,0x00,0x00,0x00]
310// GFX1012:  s_atomic_add s5, s[2:3], s101 ; encoding: [0x41,0x01,0x08,0xf6,0x00,0x00,0x00,0xca]
311// NOSICIVIGFX1030: error: instruction not supported on this GPU
312
313s_atomic_add s5, s[2:3], 0x0
314// GFX9:     s_atomic_add s5, s[2:3], 0x0 ; encoding: [0x41,0x01,0x0a,0xc2,0x00,0x00,0x00,0x00]
315// GFX1012:  s_atomic_add s5, s[2:3], 0x0 ; encoding: [0x41,0x01,0x08,0xf6,0x00,0x00,0x00,0xfa]
316// NOSICIVIGFX1030: error: instruction not supported on this GPU
317
318s_atomic_add s5, s[2:3], s0 glc
319// GFX9:     s_atomic_add s5, s[2:3], s0 glc ; encoding: [0x41,0x01,0x09,0xc2,0x00,0x00,0x00,0x00]
320// GFX1012:  s_atomic_add s5, s[2:3], s0 glc ; encoding: [0x41,0x01,0x09,0xf6,0x00,0x00,0x00,0x00]
321// NOSICIVIGFX1030: error: instruction not supported on this GPU
322
323s_atomic_add_x2 s[10:11], s[2:3], s101
324// GFX9:     s_atomic_add_x2 s[10:11], s[2:3], s101 ; encoding: [0x81,0x02,0x88,0xc2,0x65,0x00,0x00,0x00]
325// GFX1012:  s_atomic_add_x2 s[10:11], s[2:3], s101 ; encoding: [0x81,0x02,0x88,0xf6,0x00,0x00,0x00,0xca]
326// NOSICIVIGFX1030: error: instruction not supported on this GPU
327
328s_atomic_and s5, s[2:3], s101
329// GFX9:     s_atomic_and s5, s[2:3], s101 ; encoding: [0x41,0x01,0x20,0xc2,0x65,0x00,0x00,0x00]
330// GFX1012:  s_atomic_and s5, s[2:3], s101 ; encoding: [0x41,0x01,0x20,0xf6,0x00,0x00,0x00,0xca]
331// NOSICIVIGFX1030: error: instruction not supported on this GPU
332
333s_atomic_and_x2 s[10:11], s[2:3], 0x0
334// GFX9:     s_atomic_and_x2 s[10:11], s[2:3], 0x0 ; encoding: [0x81,0x02,0xa2,0xc2,0x00,0x00,0x00,0x00]
335// GFX1012:  s_atomic_and_x2 s[10:11], s[2:3], 0x0 ; encoding: [0x81,0x02,0xa0,0xf6,0x00,0x00,0x00,0xfa]
336// NOSICIVIGFX1030: error: instruction not supported on this GPU
337
338s_atomic_cmpswap s[10:11], s[2:3], s101
339// GFX9:     s_atomic_cmpswap s[10:11], s[2:3], s101 ; encoding: [0x81,0x02,0x04,0xc2,0x65,0x00,0x00,0x00]
340// GFX1012:  s_atomic_cmpswap s[10:11], s[2:3], s101 ; encoding: [0x81,0x02,0x04,0xf6,0x00,0x00,0x00,0xca]
341// NOSICIVIGFX1030: error: instruction not supported on this GPU
342
343s_atomic_cmpswap s[10:11], s[2:3], 0x0
344// GFX9:     s_atomic_cmpswap s[10:11], s[2:3], 0x0 ; encoding: [0x81,0x02,0x06,0xc2,0x00,0x00,0x00,0x00]
345// GFX1012:  s_atomic_cmpswap s[10:11], s[2:3], 0x0 ; encoding: [0x81,0x02,0x04,0xf6,0x00,0x00,0x00,0xfa]
346// NOSICIVIGFX1030: error: instruction not supported on this GPU
347
348s_atomic_cmpswap s[10:11], s[2:3], s0 glc
349// GFX9:     s_atomic_cmpswap s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0x05,0xc2,0x00,0x00,0x00,0x00]
350// GFX1012:  s_atomic_cmpswap s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0x05,0xf6,0x00,0x00,0x00,0x00]
351// NOSICIVIGFX1030: error: instruction not supported on this GPU
352
353s_atomic_cmpswap_x2 s[20:23], s[2:3], s101
354// GFX9:     s_atomic_cmpswap_x2 s[20:23], s[2:3], s101 ; encoding: [0x01,0x05,0x84,0xc2,0x65,0x00,0x00,0x00]
355// GFX1012:  s_atomic_cmpswap_x2 s[20:23], s[2:3], s101 ; encoding: [0x01,0x05,0x84,0xf6,0x00,0x00,0x00,0xca]
356// NOSICIVIGFX1030: error: instruction not supported on this GPU
357
358s_atomic_cmpswap_x2 s[20:23], s[2:3], 0x0
359// GFX9:     s_atomic_cmpswap_x2 s[20:23], s[2:3], 0x0 ; encoding: [0x01,0x05,0x86,0xc2,0x00,0x00,0x00,0x00]
360// GFX1012:  s_atomic_cmpswap_x2 s[20:23], s[2:3], 0x0 ; encoding: [0x01,0x05,0x84,0xf6,0x00,0x00,0x00,0xfa]
361// NOSICIVIGFX1030: error: instruction not supported on this GPU
362
363s_atomic_cmpswap_x2 s[20:23], s[2:3], s0 glc
364// GFX9:     s_atomic_cmpswap_x2 s[20:23], s[2:3], s0 glc ; encoding: [0x01,0x05,0x85,0xc2,0x00,0x00,0x00,0x00]
365// GFX1012:  s_atomic_cmpswap_x2 s[20:23], s[2:3], s0 glc ; encoding: [0x01,0x05,0x85,0xf6,0x00,0x00,0x00,0x00]
366// NOSICIVIGFX1030: error: instruction not supported on this GPU
367
368s_atomic_dec s5, s[2:3], s0 glc
369// GFX9:     s_atomic_dec s5, s[2:3], s0 glc ; encoding: [0x41,0x01,0x31,0xc2,0x00,0x00,0x00,0x00]
370// GFX1012:  s_atomic_dec s5, s[2:3], s0 glc ; encoding: [0x41,0x01,0x31,0xf6,0x00,0x00,0x00,0x00]
371// NOSICIVIGFX1030: error: instruction not supported on this GPU
372
373s_atomic_dec_x2 s[10:11], s[2:3], s101
374// GFX9:     s_atomic_dec_x2 s[10:11], s[2:3], s101 ; encoding: [0x81,0x02,0xb0,0xc2,0x65,0x00,0x00,0x00]
375// GFX1012:  s_atomic_dec_x2 s[10:11], s[2:3], s101 ; encoding: [0x81,0x02,0xb0,0xf6,0x00,0x00,0x00,0xca]
376// NOSICIVIGFX1030: error: instruction not supported on this GPU
377
378s_atomic_inc s5, s[2:3], s0 glc
379// GFX9:     s_atomic_inc s5, s[2:3], s0 glc ; encoding: [0x41,0x01,0x2d,0xc2,0x00,0x00,0x00,0x00]
380// GFX1012:  s_atomic_inc s5, s[2:3], s0 glc ; encoding: [0x41,0x01,0x2d,0xf6,0x00,0x00,0x00,0x00]
381// NOSICIVIGFX1030: error: instruction not supported on this GPU
382
383s_atomic_inc_x2 s[10:11], s[2:3], s101
384// GFX9:     s_atomic_inc_x2 s[10:11], s[2:3], s101 ; encoding: [0x81,0x02,0xac,0xc2,0x65,0x00,0x00,0x00]
385// GFX1012:  s_atomic_inc_x2 s[10:11], s[2:3], s101 ; encoding: [0x81,0x02,0xac,0xf6,0x00,0x00,0x00,0xca]
386// NOSICIVIGFX1030: error: instruction not supported on this GPU
387
388s_atomic_or s5, s[2:3], 0x0
389// GFX9:     s_atomic_or s5, s[2:3], 0x0 ; encoding: [0x41,0x01,0x26,0xc2,0x00,0x00,0x00,0x00]
390// GFX1012:  s_atomic_or s5, s[2:3], 0x0 ; encoding: [0x41,0x01,0x24,0xf6,0x00,0x00,0x00,0xfa]
391// NOSICIVIGFX1030: error: instruction not supported on this GPU
392
393s_atomic_or_x2 s[10:11], s[2:3], s0 glc
394// GFX9:     s_atomic_or_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0xa5,0xc2,0x00,0x00,0x00,0x00]
395// GFX1012:  s_atomic_or_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0xa5,0xf6,0x00,0x00,0x00,0x00]
396// NOSICIVIGFX1030: error: instruction not supported on this GPU
397
398s_atomic_smax s5, s[2:3], s101
399// GFX9:     s_atomic_smax s5, s[2:3], s101 ; encoding: [0x41,0x01,0x18,0xc2,0x65,0x00,0x00,0x00]
400// GFX1012:  s_atomic_smax s5, s[2:3], s101 ; encoding: [0x41,0x01,0x18,0xf6,0x00,0x00,0x00,0xca]
401// NOSICIVIGFX1030: error: instruction not supported on this GPU
402
403s_atomic_smax_x2 s[10:11], s[2:3], s0 glc
404// GFX9:     s_atomic_smax_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0x99,0xc2,0x00,0x00,0x00,0x00]
405// GFX1012:  s_atomic_smax_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0x99,0xf6,0x00,0x00,0x00,0x00]
406// NOSICIVIGFX1030: error: instruction not supported on this GPU
407
408s_atomic_smin s5, s[2:3], s101
409// GFX9:     s_atomic_smin s5, s[2:3], s101 ; encoding: [0x41,0x01,0x10,0xc2,0x65,0x00,0x00,0x00]
410// GFX1012:  s_atomic_smin s5, s[2:3], s101 ; encoding: [0x41,0x01,0x10,0xf6,0x00,0x00,0x00,0xca]
411// NOSICIVIGFX1030: error: instruction not supported on this GPU
412
413s_atomic_smin_x2 s[10:11], s[2:3], s0 glc
414// GFX9:     s_atomic_smin_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0x91,0xc2,0x00,0x00,0x00,0x00]
415// GFX1012:  s_atomic_smin_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0x91,0xf6,0x00,0x00,0x00,0x00]
416// NOSICIVIGFX1030: error: instruction not supported on this GPU
417
418s_atomic_sub s5, s[2:3], s101
419// GFX9:     s_atomic_sub s5, s[2:3], s101 ; encoding: [0x41,0x01,0x0c,0xc2,0x65,0x00,0x00,0x00]
420// GFX1012:  s_atomic_sub s5, s[2:3], s101 ; encoding: [0x41,0x01,0x0c,0xf6,0x00,0x00,0x00,0xca]
421// NOSICIVIGFX1030: error: instruction not supported on this GPU
422
423s_atomic_sub_x2 s[10:11], s[2:3], s0 glc
424// GFX9:     s_atomic_sub_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0x8d,0xc2,0x00,0x00,0x00,0x00]
425// GFX1012:  s_atomic_sub_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0x8d,0xf6,0x00,0x00,0x00,0x00]
426// NOSICIVIGFX1030: error: instruction not supported on this GPU
427
428s_atomic_swap s5, s[2:3], s101
429// GFX9:     s_atomic_swap s5, s[2:3], s101 ; encoding: [0x41,0x01,0x00,0xc2,0x65,0x00,0x00,0x00]
430// GFX1012:  s_atomic_swap s5, s[2:3], s101 ; encoding: [0x41,0x01,0x00,0xf6,0x00,0x00,0x00,0xca]
431// NOSICIVIGFX1030: error: instruction not supported on this GPU
432
433s_atomic_swap_x2 s[10:11], s[2:3], s0 glc
434// GFX9:     s_atomic_swap_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0x81,0xc2,0x00,0x00,0x00,0x00]
435// GFX1012:  s_atomic_swap_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0x81,0xf6,0x00,0x00,0x00,0x00]
436// NOSICIVIGFX1030: error: instruction not supported on this GPU
437
438s_atomic_umax s5, s[2:3], s0 glc
439// GFX9:     s_atomic_umax s5, s[2:3], s0 glc ; encoding: [0x41,0x01,0x1d,0xc2,0x00,0x00,0x00,0x00]
440// GFX1012:  s_atomic_umax s5, s[2:3], s0 glc ; encoding: [0x41,0x01,0x1d,0xf6,0x00,0x00,0x00,0x00]
441// NOSICIVIGFX1030: error: instruction not supported on this GPU
442
443s_atomic_umax_x2 s[10:11], s[2:3], s101
444// GFX9:     s_atomic_umax_x2 s[10:11], s[2:3], s101 ; encoding: [0x81,0x02,0x9c,0xc2,0x65,0x00,0x00,0x00]
445// GFX1012:  s_atomic_umax_x2 s[10:11], s[2:3], s101 ; encoding: [0x81,0x02,0x9c,0xf6,0x00,0x00,0x00,0xca]
446// NOSICIVIGFX1030: error: instruction not supported on this GPU
447
448s_atomic_umin s5, s[2:3], s101
449// GFX9:     s_atomic_umin s5, s[2:3], s101 ; encoding: [0x41,0x01,0x14,0xc2,0x65,0x00,0x00,0x00]
450// GFX1012:  s_atomic_umin s5, s[2:3], s101 ; encoding: [0x41,0x01,0x14,0xf6,0x00,0x00,0x00,0xca]
451// NOSICIVIGFX1030: error: instruction not supported on this GPU
452
453s_atomic_umin_x2 s[10:11], s[2:3], s0 glc
454// GFX9:     s_atomic_umin_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0x95,0xc2,0x00,0x00,0x00,0x00]
455// GFX1012:  s_atomic_umin_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0x95,0xf6,0x00,0x00,0x00,0x00]
456// NOSICIVIGFX1030: error: instruction not supported on this GPU
457
458s_atomic_xor s5, s[2:3], s101
459// GFX9:     s_atomic_xor s5, s[2:3], s101 ; encoding: [0x41,0x01,0x28,0xc2,0x65,0x00,0x00,0x00]
460// GFX1012:  s_atomic_xor s5, s[2:3], s101 ; encoding: [0x41,0x01,0x28,0xf6,0x00,0x00,0x00,0xca]
461// NOSICIVIGFX1030: error: instruction not supported on this GPU
462
463s_atomic_xor_x2 s[10:11], s[2:3], s0 glc
464// GFX9:     s_atomic_xor_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0xa9,0xc2,0x00,0x00,0x00,0x00]
465// GFX1012:  s_atomic_xor_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0xa9,0xf6,0x00,0x00,0x00,0x00]
466// NOSICIVIGFX1030: error: instruction not supported on this GPU
467
468//===----------------------------------------------------------------------===//
469// s_buffer_atomic instructions
470//===----------------------------------------------------------------------===//
471
472s_buffer_atomic_add s5, s[4:7], s101
473// GFX9:     s_buffer_atomic_add s5, s[4:7], s101 ; encoding: [0x42,0x01,0x08,0xc1,0x65,0x00,0x00,0x00]
474// GFX1012:  s_buffer_atomic_add s5, s[4:7], s101 ; encoding: [0x42,0x01,0x08,0xf5,0x00,0x00,0x00,0xca]
475// NOSICIVIGFX1030: error: instruction not supported on this GPU
476
477s_buffer_atomic_add s5, s[4:7], 0x0
478// GFX9:     s_buffer_atomic_add s5, s[4:7], 0x0 ; encoding: [0x42,0x01,0x0a,0xc1,0x00,0x00,0x00,0x00]
479// GFX1012:  s_buffer_atomic_add s5, s[4:7], 0x0 ; encoding: [0x42,0x01,0x08,0xf5,0x00,0x00,0x00,0xfa]
480// NOSICIVIGFX1030: error: instruction not supported on this GPU
481
482s_buffer_atomic_add s5, s[4:7], s0 glc
483// GFX9:     s_buffer_atomic_add s5, s[4:7], s0 glc ; encoding: [0x42,0x01,0x09,0xc1,0x00,0x00,0x00,0x00]
484// GFX1012:  s_buffer_atomic_add s5, s[4:7], s0 glc ; encoding: [0x42,0x01,0x09,0xf5,0x00,0x00,0x00,0x00]
485// NOSICIVIGFX1030: error: instruction not supported on this GPU
486
487s_buffer_atomic_add_x2 s[10:11], s[4:7], s0
488// GFX9:     s_buffer_atomic_add_x2 s[10:11], s[4:7], s0 ; encoding: [0x82,0x02,0x88,0xc1,0x00,0x00,0x00,0x00]
489// GFX1012:  s_buffer_atomic_add_x2 s[10:11], s[4:7], s0 ; encoding: [0x82,0x02,0x88,0xf5,0x00,0x00,0x00,0x00]
490// NOSICIVIGFX1030: error: instruction not supported on this GPU
491
492s_buffer_atomic_and s101, s[4:7], s0
493// GFX9:     s_buffer_atomic_and s101, s[4:7], s0 ; encoding: [0x42,0x19,0x20,0xc1,0x00,0x00,0x00,0x00]
494// GFX1012:  s_buffer_atomic_and s101, s[4:7], s0 ; encoding: [0x42,0x19,0x20,0xf5,0x00,0x00,0x00,0x00]
495// NOSICIVIGFX1030: error: instruction not supported on this GPU
496
497s_buffer_atomic_and_x2 s[10:11], s[8:11], s0
498// GFX9:     s_buffer_atomic_and_x2 s[10:11], s[8:11], s0 ; encoding: [0x84,0x02,0xa0,0xc1,0x00,0x00,0x00,0x00]
499// GFX1012:  s_buffer_atomic_and_x2 s[10:11], s[8:11], s0 ; encoding: [0x84,0x02,0xa0,0xf5,0x00,0x00,0x00,0x00]
500// NOSICIVIGFX1030: error: instruction not supported on this GPU
501
502s_buffer_atomic_cmpswap s[10:11], s[4:7], s0
503// GFX9:     s_buffer_atomic_cmpswap s[10:11], s[4:7], s0 ; encoding: [0x82,0x02,0x04,0xc1,0x00,0x00,0x00,0x00]
504// GFX1012:  s_buffer_atomic_cmpswap s[10:11], s[4:7], s0 ; encoding: [0x82,0x02,0x04,0xf5,0x00,0x00,0x00,0x00]
505// NOSICIVIGFX1030: error: instruction not supported on this GPU
506
507s_buffer_atomic_cmpswap s[10:11], s[4:7], 0x0
508// GFX9:     s_buffer_atomic_cmpswap s[10:11], s[4:7], 0x0 ; encoding: [0x82,0x02,0x06,0xc1,0x00,0x00,0x00,0x00]
509// GFX1012:  s_buffer_atomic_cmpswap s[10:11], s[4:7], 0x0 ; encoding: [0x82,0x02,0x04,0xf5,0x00,0x00,0x00,0xfa]
510// NOSICIVIGFX1030: error: instruction not supported on this GPU
511
512s_buffer_atomic_cmpswap s[10:11], s[4:7], s0 glc
513// GFX9:     s_buffer_atomic_cmpswap s[10:11], s[4:7], s0 glc ; encoding: [0x82,0x02,0x05,0xc1,0x00,0x00,0x00,0x00]
514// GFX1012:  s_buffer_atomic_cmpswap s[10:11], s[4:7], s0 glc ; encoding: [0x82,0x02,0x05,0xf5,0x00,0x00,0x00,0x00]
515// NOSICIVIGFX1030: error: instruction not supported on this GPU
516
517s_buffer_atomic_cmpswap_x2 s[20:23], s[4:7], s101
518// GFX9:     s_buffer_atomic_cmpswap_x2 s[20:23], s[4:7], s101 ; encoding: [0x02,0x05,0x84,0xc1,0x65,0x00,0x00,0x00]
519// GFX1012:  s_buffer_atomic_cmpswap_x2 s[20:23], s[4:7], s101 ; encoding: [0x02,0x05,0x84,0xf5,0x00,0x00,0x00,0xca]
520// NOSICIVIGFX1030: error: instruction not supported on this GPU
521
522s_buffer_atomic_cmpswap_x2 s[20:23], s[4:7], 0x0
523// GFX9:     s_buffer_atomic_cmpswap_x2 s[20:23], s[4:7], 0x0 ; encoding: [0x02,0x05,0x86,0xc1,0x00,0x00,0x00,0x00]
524// GFX1012:  s_buffer_atomic_cmpswap_x2 s[20:23], s[4:7], 0x0 ; encoding: [0x02,0x05,0x84,0xf5,0x00,0x00,0x00,0xfa]
525// NOSICIVIGFX1030: error: instruction not supported on this GPU
526
527s_buffer_atomic_cmpswap_x2 s[20:23], s[4:7], s0 glc
528// GFX9:     s_buffer_atomic_cmpswap_x2 s[20:23], s[4:7], s0 glc ; encoding: [0x02,0x05,0x85,0xc1,0x00,0x00,0x00,0x00]
529// GFX1012:  s_buffer_atomic_cmpswap_x2 s[20:23], s[4:7], s0 glc ; encoding: [0x02,0x05,0x85,0xf5,0x00,0x00,0x00,0x00]
530// NOSICIVIGFX1030: error: instruction not supported on this GPU
531
532s_buffer_atomic_dec s5, s[4:7], s0
533// GFX9:     s_buffer_atomic_dec s5, s[4:7], s0 ; encoding: [0x42,0x01,0x30,0xc1,0x00,0x00,0x00,0x00]
534// GFX1012:  s_buffer_atomic_dec s5, s[4:7], s0 ; encoding: [0x42,0x01,0x30,0xf5,0x00,0x00,0x00,0x00]
535// NOSICIVIGFX1030: error: instruction not supported on this GPU
536
537s_buffer_atomic_dec_x2 s[10:11], s[4:7], s0 glc
538// GFX9:     s_buffer_atomic_dec_x2 s[10:11], s[4:7], s0 glc ; encoding: [0x82,0x02,0xb1,0xc1,0x00,0x00,0x00,0x00]
539// GFX1012:  s_buffer_atomic_dec_x2 s[10:11], s[4:7], s0 glc ; encoding: [0x82,0x02,0xb1,0xf5,0x00,0x00,0x00,0x00]
540// NOSICIVIGFX1030: error: instruction not supported on this GPU
541
542s_buffer_atomic_inc s101, s[4:7], s0
543// GFX9:     s_buffer_atomic_inc s101, s[4:7], s0 ; encoding: [0x42,0x19,0x2c,0xc1,0x00,0x00,0x00,0x00]
544// GFX1012:  s_buffer_atomic_inc s101, s[4:7], s0 ; encoding: [0x42,0x19,0x2c,0xf5,0x00,0x00,0x00,0x00]
545// NOSICIVIGFX1030: error: instruction not supported on this GPU
546
547s_buffer_atomic_inc_x2 s[10:11], s[4:7], 0x0
548// GFX9:     s_buffer_atomic_inc_x2 s[10:11], s[4:7], 0x0 ; encoding: [0x82,0x02,0xae,0xc1,0x00,0x00,0x00,0x00]
549// GFX1012:  s_buffer_atomic_inc_x2 s[10:11], s[4:7], 0x0 ; encoding: [0x82,0x02,0xac,0xf5,0x00,0x00,0x00,0xfa]
550// NOSICIVIGFX1030: error: instruction not supported on this GPU
551
552s_buffer_atomic_or s5, s[8:11], s0
553// GFX9:     s_buffer_atomic_or s5, s[8:11], s0 ; encoding: [0x44,0x01,0x24,0xc1,0x00,0x00,0x00,0x00]
554// GFX1012:  s_buffer_atomic_or s5, s[8:11], s0 ; encoding: [0x44,0x01,0x24,0xf5,0x00,0x00,0x00,0x00]
555// NOSICIVIGFX1030: error: instruction not supported on this GPU
556
557s_buffer_atomic_or_x2 s[10:11], s[96:99], s0
558// GFX9:     s_buffer_atomic_or_x2 s[10:11], s[96:99], s0 ; encoding: [0xb0,0x02,0xa4,0xc1,0x00,0x00,0x00,0x00]
559// GFX1012:  s_buffer_atomic_or_x2 s[10:11], s[96:99], s0 ; encoding: [0xb0,0x02,0xa4,0xf5,0x00,0x00,0x00,0x00]
560// NOSICIVIGFX1030: error: instruction not supported on this GPU
561
562s_buffer_atomic_smax s5, s[4:7], s101
563// GFX9:     s_buffer_atomic_smax s5, s[4:7], s101 ; encoding: [0x42,0x01,0x18,0xc1,0x65,0x00,0x00,0x00]
564// GFX1012:  s_buffer_atomic_smax s5, s[4:7], s101 ; encoding: [0x42,0x01,0x18,0xf5,0x00,0x00,0x00,0xca]
565// NOSICIVIGFX1030: error: instruction not supported on this GPU
566
567s_buffer_atomic_smax_x2 s[100:101], s[4:7], s0
568// GFX9:     s_buffer_atomic_smax_x2 s[100:101], s[4:7], s0 ; encoding: [0x02,0x19,0x98,0xc1,0x00,0x00,0x00,0x00]
569// GFX1012:  s_buffer_atomic_smax_x2 s[100:101], s[4:7], s0 ; encoding: [0x02,0x19,0x98,0xf5,0x00,0x00,0x00,0x00]
570// NOSICIVIGFX1030: error: instruction not supported on this GPU
571
572s_buffer_atomic_smin s5, s[4:7], 0x0
573// GFX9:     s_buffer_atomic_smin s5, s[4:7], 0x0 ; encoding: [0x42,0x01,0x12,0xc1,0x00,0x00,0x00,0x00]
574// GFX1012:  s_buffer_atomic_smin s5, s[4:7], 0x0 ; encoding: [0x42,0x01,0x10,0xf5,0x00,0x00,0x00,0xfa]
575// NOSICIVIGFX1030: error: instruction not supported on this GPU
576
577s_buffer_atomic_smin_x2 s[12:13], s[4:7], s0
578// GFX9:     s_buffer_atomic_smin_x2 s[12:13], s[4:7], s0 ; encoding: [0x02,0x03,0x90,0xc1,0x00,0x00,0x00,0x00]
579// GFX1012:  s_buffer_atomic_smin_x2 s[12:13], s[4:7], s0 ; encoding: [0x02,0x03,0x90,0xf5,0x00,0x00,0x00,0x00]
580// NOSICIVIGFX1030: error: instruction not supported on this GPU
581
582s_buffer_atomic_sub s5, s[4:7], s0 glc
583// GFX9:     s_buffer_atomic_sub s5, s[4:7], s0 glc ; encoding: [0x42,0x01,0x0d,0xc1,0x00,0x00,0x00,0x00]
584// GFX1012:  s_buffer_atomic_sub s5, s[4:7], s0 glc ; encoding: [0x42,0x01,0x0d,0xf5,0x00,0x00,0x00,0x00]
585// NOSICIVIGFX1030: error: instruction not supported on this GPU
586
587s_buffer_atomic_sub_x2 s[10:11], s[4:7], s0
588// GFX9:     s_buffer_atomic_sub_x2 s[10:11], s[4:7], s0 ; encoding: [0x82,0x02,0x8c,0xc1,0x00,0x00,0x00,0x00]
589// GFX1012:  s_buffer_atomic_sub_x2 s[10:11], s[4:7], s0 ; encoding: [0x82,0x02,0x8c,0xf5,0x00,0x00,0x00,0x00]
590// NOSICIVIGFX1030: error: instruction not supported on this GPU
591
592s_buffer_atomic_swap s5, s[4:7], s0
593// GFX9:     s_buffer_atomic_swap s5, s[4:7], s0 ; encoding: [0x42,0x01,0x00,0xc1,0x00,0x00,0x00,0x00]
594// GFX1012:  s_buffer_atomic_swap s5, s[4:7], s0 ; encoding: [0x42,0x01,0x00,0xf5,0x00,0x00,0x00,0x00]
595// NOSICIVIGFX1030: error: instruction not supported on this GPU
596
597s_buffer_atomic_swap_x2 s[10:11], s[4:7], s0 glc
598// GFX9:     s_buffer_atomic_swap_x2 s[10:11], s[4:7], s0 glc ; encoding: [0x82,0x02,0x81,0xc1,0x00,0x00,0x00,0x00]
599// GFX1012:  s_buffer_atomic_swap_x2 s[10:11], s[4:7], s0 glc ; encoding: [0x82,0x02,0x81,0xf5,0x00,0x00,0x00,0x00]
600// NOSICIVIGFX1030: error: instruction not supported on this GPU
601
602s_buffer_atomic_umax s5, s[4:7], s0
603// GFX9:     s_buffer_atomic_umax s5, s[4:7], s0 ; encoding: [0x42,0x01,0x1c,0xc1,0x00,0x00,0x00,0x00]
604// GFX1012:  s_buffer_atomic_umax s5, s[4:7], s0 ; encoding: [0x42,0x01,0x1c,0xf5,0x00,0x00,0x00,0x00]
605// NOSICIVIGFX1030: error: instruction not supported on this GPU
606
607s_buffer_atomic_umax_x2 s[10:11], s[4:7], s0 glc
608// GFX9:     s_buffer_atomic_umax_x2 s[10:11], s[4:7], s0 glc ; encoding: [0x82,0x02,0x9d,0xc1,0x00,0x00,0x00,0x00]
609// GFX1012:  s_buffer_atomic_umax_x2 s[10:11], s[4:7], s0 glc ; encoding: [0x82,0x02,0x9d,0xf5,0x00,0x00,0x00,0x00]
610// NOSICIVIGFX1030: error: instruction not supported on this GPU
611
612s_buffer_atomic_umin s5, s[4:7], s0
613// GFX9:     s_buffer_atomic_umin s5, s[4:7], s0 ; encoding: [0x42,0x01,0x14,0xc1,0x00,0x00,0x00,0x00]
614// GFX1012:  s_buffer_atomic_umin s5, s[4:7], s0 ; encoding: [0x42,0x01,0x14,0xf5,0x00,0x00,0x00,0x00]
615// NOSICIVIGFX1030: error: instruction not supported on this GPU
616
617s_buffer_atomic_umin_x2 s[10:11], s[4:7], s0 glc
618// GFX9:     s_buffer_atomic_umin_x2 s[10:11], s[4:7], s0 glc ; encoding: [0x82,0x02,0x95,0xc1,0x00,0x00,0x00,0x00]
619// GFX1012:  s_buffer_atomic_umin_x2 s[10:11], s[4:7], s0 glc ; encoding: [0x82,0x02,0x95,0xf5,0x00,0x00,0x00,0x00]
620// NOSICIVIGFX1030: error: instruction not supported on this GPU
621
622s_buffer_atomic_xor s5, s[4:7], s0
623// GFX9:     s_buffer_atomic_xor s5, s[4:7], s0 ; encoding: [0x42,0x01,0x28,0xc1,0x00,0x00,0x00,0x00]
624// GFX1012:  s_buffer_atomic_xor s5, s[4:7], s0 ; encoding: [0x42,0x01,0x28,0xf5,0x00,0x00,0x00,0x00]
625// NOSICIVIGFX1030: error: instruction not supported on this GPU
626
627s_buffer_atomic_xor_x2 s[10:11], s[4:7], s0 glc
628// GFX9:     s_buffer_atomic_xor_x2 s[10:11], s[4:7], s0 glc ; encoding: [0x82,0x02,0xa9,0xc1,0x00,0x00,0x00,0x00]
629// GFX1012:  s_buffer_atomic_xor_x2 s[10:11], s[4:7], s0 glc ; encoding: [0x82,0x02,0xa9,0xf5,0x00,0x00,0x00,0x00]
630// NOSICIVIGFX1030: error: instruction not supported on this GPU
631
632//===----------------------------------------------------------------------===//
633// Unsigned 20-bit offsets (VI+)
634//===----------------------------------------------------------------------===//
635
636s_atc_probe 0x7, s[4:5], 0xFFFFF
637// NOSICI: error: instruction not supported on this GPU
638// GFX89: s_atc_probe 7, s[4:5], 0xfffff ; encoding: [0xc2,0x01,0x9a,0xc0,0xff,0xff,0x0f,0x00]
639// GFX10: s_atc_probe 7, s[4:5], 0xfffff ; encoding: [0xc2,0x01,0x98,0xf4,0xff,0xff,0x0f,0xfa]
640
641s_atc_probe_buffer 0x1, s[8:11], 0xFFFFF
642// NOSICI: error: instruction not supported on this GPU
643// GFX89: s_atc_probe_buffer 1, s[8:11], 0xfffff ; encoding: [0x44,0x00,0x9e,0xc0,0xff,0xff,0x0f,0x00]
644// GFX10: s_atc_probe_buffer 1, s[8:11], 0xfffff ; encoding: [0x44,0x00,0x9c,0xf4,0xff,0xff,0x0f,0xfa]
645
646s_store_dword s1, s[2:3], 0xFFFFF
647// NOSICIGFX1030: error: instruction not supported on this GPU
648// GFX89: s_store_dword s1, s[2:3], 0xfffff ; encoding: [0x41,0x00,0x42,0xc0,0xff,0xff,0x0f,0x00]
649// GFX1012: s_store_dword s1, s[2:3], 0xfffff ; encoding: [0x41,0x00,0x40,0xf4,0xff,0xff,0x0f,0xfa]
650
651s_buffer_store_dword s10, s[92:95], 0xFFFFF
652// NOSICIGFX1030: error: instruction not supported on this GPU
653// GFX89: s_buffer_store_dword s10, s[92:95], 0xfffff ; encoding: [0xae,0x02,0x62,0xc0,0xff,0xff,0x0f,0x00]
654// GFX1012: s_buffer_store_dword s10, s[92:95], 0xfffff ; encoding: [0xae,0x02,0x60,0xf4,0xff,0xff,0x0f,0xfa]
655
656s_atomic_swap s5, s[2:3], 0xFFFFF
657// NOSICIVIGFX1030: error: instruction not supported on this GPU
658// GFX1012: s_atomic_swap s5, s[2:3], 0xfffff ; encoding: [0x41,0x01,0x00,0xf6,0xff,0xff,0x0f,0xfa]
659// GFX9: s_atomic_swap s5, s[2:3], 0xfffff ; encoding: [0x41,0x01,0x02,0xc2,0xff,0xff,0x0f,0x00]
660
661s_buffer_atomic_swap s5, s[4:7], 0xFFFFF
662// NOSICIVIGFX1030: error: instruction not supported on this GPU
663// GFX1012: s_buffer_atomic_swap s5, s[4:7], 0xfffff ; encoding: [0x42,0x01,0x00,0xf5,0xff,0xff,0x0f,0xfa]
664// GFX9: s_buffer_atomic_swap s5, s[4:7], 0xfffff ; encoding: [0x42,0x01,0x02,0xc1,0xff,0xff,0x0f,0x00]
665
666s_atc_probe 0x7, s[4:5], 0x1FFFFF
667// NOSICI: error: instruction not supported on this GPU
668// NOGFX9: error: expected a 21-bit signed offset
669// NOVI: error: expected a 20-bit unsigned offset
670
671s_atc_probe_buffer 0x1, s[8:11], 0x1FFFFF
672// NOSICI: error: instruction not supported on this GPU
673// NOGFX9: error: expected a 20-bit unsigned offset
674// NOVI: error: expected a 20-bit unsigned offset
675
676s_store_dword s1, s[2:3], 0x1FFFFF
677// NOSICIGFX1030: error: instruction not supported on this GPU
678// NOGFX9GFX1012: error: expected a 21-bit signed offset
679// NOVI: error: expected a 20-bit unsigned offset
680
681s_buffer_store_dword s10, s[92:95], 0x1FFFFF
682// NOSICIGFX1030: error: instruction not supported on this GPU
683// NOGFX9GFX1012: error: expected a 20-bit unsigned offset
684// NOVI: error: expected a 20-bit unsigned offset
685
686s_atomic_swap s5, s[2:3], 0x1FFFFF
687// NOSICIVIGFX1030: error: instruction not supported on this GPU
688// NOGFX9GFX1012: error: expected a 21-bit signed offset
689
690s_buffer_atomic_swap s5, s[4:7], 0x1FFFFF
691// NOSICIVIGFX1030: error: instruction not supported on this GPU
692// NOGFX9GFX1012: error: expected a 20-bit unsigned offset
693
694//===----------------------------------------------------------------------===//
695// Signed offsets (gfx9+)
696//===----------------------------------------------------------------------===//
697
698s_atc_probe 0x7, s[4:5], -1
699// NOVI: error: expected a 20-bit unsigned offset
700// GFX9: s_atc_probe 7, s[4:5], -0x1 ; encoding: [0xc2,0x01,0x9a,0xc0,0xff,0xff,0x1f,0x00]
701// GFX10: s_atc_probe 7, s[4:5], -0x1 ; encoding: [0xc2,0x01,0x98,0xf4,0xff,0xff,0x1f,0xfa]
702// NOSICI: error: instruction not supported on this GPU
703
704s_atc_probe_buffer 0x1, s[8:11], -1
705// NOVI: error: expected a 20-bit unsigned offset
706// NOSICI: error: instruction not supported on this GPU
707// NOGFX9: error: expected a 20-bit unsigned offset
708
709s_store_dword s1, s[2:3], -1
710// NOVI: error: expected a 20-bit unsigned offset
711// GFX9: s_store_dword s1, s[2:3], -0x1 ; encoding: [0x41,0x00,0x42,0xc0,0xff,0xff,0x1f,0x00]
712// GFX1012: s_store_dword s1, s[2:3], -0x1 ; encoding: [0x41,0x00,0x40,0xf4,0xff,0xff,0x1f,0xfa]
713// NOSICIGFX1030: error: instruction not supported on this GPU
714
715s_buffer_store_dword s10, s[92:95], -1
716// NOVI: error: expected a 20-bit unsigned offset
717// NOSICIGFX1030: error: instruction not supported on this GPU
718// NOGFX9GFX1012: error: expected a 20-bit unsigned offset
719
720s_load_dword s1, s[2:3], -1
721// NOVI: error: expected a 20-bit unsigned offset
722// GFX9: s_load_dword s1, s[2:3], -0x1 ; encoding: [0x41,0x00,0x02,0xc0,0xff,0xff,0x1f,0x00]
723// GFX10: s_load_dword s1, s[2:3], -0x1 ; encoding: [0x41,0x00,0x00,0xf4,0xff,0xff,0x1f,0xfa]
724// NOSICI: error: operands are not valid for this GPU or mode
725
726s_buffer_load_dword s10, s[92:95], -1
727// NOVI: error: expected a 20-bit unsigned offset
728// NOSICI: error: operands are not valid for this GPU or mode
729// NOGFX9: error: expected a 20-bit unsigned offset
730
731s_atomic_swap s5, s[2:3], -1
732// NOVI: error: instruction not supported on this GPU
733// GFX9: s_atomic_swap s5, s[2:3], -0x1 ; encoding: [0x41,0x01,0x02,0xc2,0xff,0xff,0x1f,0x00]
734// GFX1012: s_atomic_swap s5, s[2:3], -0x1 ; encoding: [0x41,0x01,0x00,0xf6,0xff,0xff,0x1f,0xfa]
735// NOSICIGFX1030: error: instruction not supported on this GPU
736
737s_buffer_atomic_swap s5, s[4:7], -1
738// NOVI: error: instruction not supported on this GPU
739// NOSICIGFX1030: error: instruction not supported on this GPU
740// NOGFX9GFX1012: error: expected a 20-bit unsigned offset
741
742s_atc_probe 0x7, s[4:5], 0xFFFFFFFFFFF00000
743// NOSICI: error: instruction not supported on this GPU
744// GFX10: s_atc_probe 7, s[4:5], -0x100000 ; encoding: [0xc2,0x01,0x98,0xf4,0x00,0x00,0x10,0xfa]
745// GFX9: s_atc_probe 7, s[4:5], -0x100000 ; encoding: [0xc2,0x01,0x9a,0xc0,0x00,0x00,0x10,0x00]
746// NOVI: error: expected a 20-bit unsigned offset
747
748s_atc_probe_buffer 0x1, s[8:11], 0xFFFFFFFFFFF00000
749// NOSICI: error: instruction not supported on this GPU
750// NOGFX9: error: expected a 20-bit unsigned offset
751// NOVI: error: expected a 20-bit unsigned offset
752
753s_store_dword s1, s[2:3], 0xFFFFFFFFFFF00000
754// NOSICIGFX1030: error: instruction not supported on this GPU
755// GFX1012: s_store_dword s1, s[2:3], -0x100000 ; encoding: [0x41,0x00,0x40,0xf4,0x00,0x00,0x10,0xfa]
756// GFX9: s_store_dword s1, s[2:3], -0x100000 ; encoding: [0x41,0x00,0x42,0xc0,0x00,0x00,0x10,0x00]
757// NOVI: error: expected a 20-bit unsigned offset
758
759s_buffer_store_dword s10, s[92:95], 0xFFFFFFFFFFF00000
760// NOSICIGFX1030: error: instruction not supported on this GPU
761// NOGFX9GFX1012: error: expected a 20-bit unsigned offset
762// NOVI: error: expected a 20-bit unsigned offset
763
764s_load_dword s1, s[2:3], 0xFFFFFFFFFFF00000
765// NOSICI: error: operands are not valid for this GPU or mode
766// GFX10: s_load_dword s1, s[2:3], -0x100000 ; encoding: [0x41,0x00,0x00,0xf4,0x00,0x00,0x10,0xfa]
767// GFX9: s_load_dword s1, s[2:3], -0x100000 ; encoding: [0x41,0x00,0x02,0xc0,0x00,0x00,0x10,0x00]
768// NOVI: error: expected a 20-bit unsigned offset
769
770s_buffer_load_dword s10, s[92:95], 0xFFFFFFFFFFF00000
771// NOSICI: error: operands are not valid for this GPU or mode
772// NOGFX9: error: expected a 20-bit unsigned offset
773// NOVI: error: expected a 20-bit unsigned offset
774
775s_atomic_swap s5, s[2:3], 0xFFFFFFFFFFF00000
776// NOSICIVIGFX1030: error: instruction not supported on this GPU
777// GFX1012: s_atomic_swap s5, s[2:3], -0x100000 ; encoding: [0x41,0x01,0x00,0xf6,0x00,0x00,0x10,0xfa]
778// GFX9: s_atomic_swap s5, s[2:3], -0x100000 ; encoding: [0x41,0x01,0x02,0xc2,0x00,0x00,0x10,0x00]
779
780s_buffer_atomic_swap s5, s[4:7], 0xFFFFFFFFFFF00000
781// NOSICIVIGFX1030: error: instruction not supported on this GPU
782// NOGFX9GFX1012: error: expected a 20-bit unsigned offset
783