1 // RUN
: not llvm-mc
-arch
=amdgcn
-mcpu
=tahiti
-show-encoding
%s | FileCheck
-check-prefix
=GCN
-check-prefix
=SI
-check-prefix
=SICI
%s
2 // RUN
: not llvm-mc
-arch
=amdgcn
-mcpu
=bonaire
-show-encoding
%s | FileCheck
-check-prefix
=GCN
-check-prefix
=CI
-check-prefix
=SICI
%s
3 // RUN
: not llvm-mc
-arch
=amdgcn
-mcpu
=tonga
-show-encoding
%s | FileCheck
-check-prefix
=GCN
-check-prefix
=VI
%s
5 // RUN
: not llvm-mc
-arch
=amdgcn
-mcpu
=tahiti
%s
2>&1 | FileCheck
-check-prefix
=NOSI
-check-prefix
=NOSICIVI
-check-prefix
=NOSICI
%s
6 // RUN
: not llvm-mc
-arch
=amdgcn
-mcpu
=bonaire
%s
2>&1 | FileCheck
-check-prefix
=NOCI
-check-prefix
=NOSICIVI
-check-prefix
=NOSICI
%s
7 // RUN
: not llvm-mc
-arch
=amdgcn
-mcpu
=tonga
%s
2>&1 | FileCheck
-check-prefix
=NOVI
-check-prefix
=NOSICIVI
%s
9 //===----------------------------------------------------------------------===//
10 // Test for different operand combinations
11 //===----------------------------------------------------------------------===//
13 //===----------------------------------------------------------------------===//
14 // load
- immediate offset only
15 //===----------------------------------------------------------------------===//
17 buffer_load_dword v1
, off
, s
[4:7], s1
18 // SICI
: buffer_load_dword v1
, off
, s
[4:7], s1 ; encoding
: [0x00,0x00,0x30,0xe0,0x00,0x01,0x01,0x01]
19 // VI
: buffer_load_dword v1
, off
, s
[4:7], s1 ; encoding
: [0x00,0x00,0x50,0xe0,0x00,0x01,0x01,0x01]
21 buffer_load_dword v1
, off
, ttmp
[4:7], s1
22 // SICI
: buffer_load_dword v1
, off
, ttmp
[4:7], s1 ; encoding
: [0x00,0x00,0x30,0xe0,0x00,0x01,0x1d,0x01]
23 // VI
: buffer_load_dword v1
, off
, ttmp
[4:7], s1 ; encoding
: [0x00,0x00,0x50,0xe0,0x00,0x01,0x1d,0x01]
25 buffer_load_dword v1
, off
, s
[4:7], s1 offset
:4
26 // SICI
: buffer_load_dword v1
, off
, s
[4:7], s1 offset
:4 ; encoding
: [0x04,0x00,0x30,0xe0,0x00,0x01,0x01,0x01]
27 // VI
: buffer_load_dword v1
, off
, s
[4:7], s1 offset
:4 ; encoding
: [0x04,0x00,0x50,0xe0,0x00,0x01,0x01,0x01]
29 buffer_load_dword v1
, off
, s
[4:7], s1 offset
:4 glc
30 // SICI
: buffer_load_dword v1
, off
, s
[4:7], s1 offset
:4 glc ; encoding
: [0x04,0x40,0x30,0xe0,0x00,0x01,0x01,0x01]
31 // VI
: buffer_load_dword v1
, off
, s
[4:7], s1 offset
:4 glc ; encoding
: [0x04,0x40,0x50,0xe0,0x00,0x01,0x01,0x01]
33 buffer_load_dword v1
, off
, s
[4:7], s1 offset
:4 slc
34 // SICI
: buffer_load_dword v1
, off
, s
[4:7], s1 offset
:4 slc ; encoding
: [0x04,0x00,0x30,0xe0,0x00,0x01,0x41,0x01]
35 // VI
: buffer_load_dword v1
, off
, s
[4:7], s1 offset
:4 slc ; encoding
: [0x04,0x00,0x52,0xe0,0x00,0x01,0x01,0x01]
37 buffer_load_dword v1
, off
, s
[4:7], s1 offset
:4 tfe
38 // SICI
: buffer_load_dword v1
, off
, s
[4:7], s1 offset
:4 tfe ; encoding
: [0x04,0x00,0x30,0xe0,0x00,0x01,0x81,0x01]
39 // VI
: buffer_load_dword v1
, off
, s
[4:7], s1 offset
:4 tfe ; encoding
: [0x04,0x00,0x50,0xe0,0x00,0x01,0x81,0x01]
41 buffer_load_dword v1
, off
, s
[4:7], s1 glc tfe
42 // SICI
: buffer_load_dword v1
, off
, s
[4:7], s1 glc tfe ; encoding
: [0x00,0x40,0x30,0xe0,0x00,0x01,0x81,0x01]
43 // VI
: buffer_load_dword v1
, off
, s
[4:7], s1 glc tfe ; encoding
: [0x00,0x40,0x50,0xe0,0x00,0x01,0x81,0x01]
45 buffer_load_dword v1
, off
, s
[4:7], s1 offset
:4 glc slc tfe
46 // SICI
: buffer_load_dword v1
, off
, s
[4:7], s1 offset
:4 glc slc tfe ; encoding
: [0x04,0x40,0x30,0xe0,0x00,0x01,0xc1,0x01]
47 // VI
: buffer_load_dword v1
, off
, s
[4:7], s1 offset
:4 glc slc tfe ; encoding
: [0x04,0x40,0x52,0xe0,0x00,0x01,0x81,0x01]
49 buffer_load_dword v1
, off
, ttmp
[4:7], s1 offset
:4 glc slc tfe
50 // SICI
: buffer_load_dword v1
, off
, ttmp
[4:7], s1 offset
:4 glc slc tfe ; encoding
: [0x04,0x40,0x30,0xe0,0x00,0x01,0xdd,0x01]
51 // VI
: buffer_load_dword v1
, off
, ttmp
[4:7], s1 offset
:4 glc slc tfe ; encoding
: [0x04,0x40,0x52,0xe0,0x00,0x01,0x9d,0x01]
53 //===----------------------------------------------------------------------===//
55 //===----------------------------------------------------------------------===//
57 buffer_load_dword v1
, v2
, s
[4:7], s1 offen
58 // SICI
: buffer_load_dword v1
, v2
, s
[4:7], s1 offen ; encoding
: [0x00,0x10,0x30,0xe0,0x02,0x01,0x01,0x01]
59 // VI
: buffer_load_dword v1
, v2
, s
[4:7], s1 offen ; encoding
: [0x00,0x10,0x50,0xe0,0x02,0x01,0x01,0x01]
61 buffer_load_dword v1
, v2
, s
[4:7], s1 offen offset
:4
62 // SICI
: buffer_load_dword v1
, v2
, s
[4:7], s1 offen offset
:4 ; encoding
: [0x04,0x10,0x30,0xe0,0x02,0x01,0x01,0x01]
63 // VI
: buffer_load_dword v1
, v2
, s
[4:7], s1 offen offset
:4 ; encoding
: [0x04,0x10,0x50,0xe0,0x02,0x01,0x01,0x01]
65 buffer_load_dword v1
, v2
, s
[4:7], s1 offen offset
:4 glc
66 // SICI
: buffer_load_dword v1
, v2
, s
[4:7], s1 offen offset
:4 glc ; encoding
: [0x04,0x50,0x30,0xe0,0x02,0x01,0x01,0x01]
67 // VI
: buffer_load_dword v1
, v2
, s
[4:7], s1 offen offset
:4 glc ; encoding
: [0x04,0x50,0x50,0xe0,0x02,0x01,0x01,0x01]
69 buffer_load_dword v1
, v2
, s
[4:7], s1 offen offset
:4 slc
70 // SICI
: buffer_load_dword v1
, v2
, s
[4:7], s1 offen offset
:4 slc ; encoding
: [0x04,0x10,0x30,0xe0,0x02,0x01,0x41,0x01]
71 // VI
: buffer_load_dword v1
, v2
, s
[4:7], s1 offen offset
:4 slc ; encoding
: [0x04,0x10,0x52,0xe0,0x02,0x01,0x01,0x01]
73 buffer_load_dword v1
, v2
, s
[4:7], s1 offen offset
:4 tfe
74 // SICI
: buffer_load_dword v1
, v2
, s
[4:7], s1 offen offset
:4 tfe ; encoding
: [0x04,0x10,0x30,0xe0,0x02,0x01,0x81,0x01]
75 // VI
: buffer_load_dword v1
, v2
, s
[4:7], s1 offen offset
:4 tfe ; encoding
: [0x04,0x10,0x50,0xe0,0x02,0x01,0x81,0x01]
77 buffer_load_dword v1
, v2
, s
[4:7], s1 offen glc tfe
78 // SICI
: buffer_load_dword v1
, v2
, s
[4:7], s1 offen glc tfe ; encoding
: [0x00,0x50,0x30,0xe0,0x02,0x01,0x81,0x01]
79 // VI
: buffer_load_dword v1
, v2
, s
[4:7], s1 offen glc tfe ; encoding
: [0x00,0x50,0x50,0xe0,0x02,0x01,0x81,0x01]
81 buffer_load_dword v1
, v2
, s
[4:7], s1 offen offset
:4 glc slc tfe
82 // SICI
: buffer_load_dword v1
, v2
, s
[4:7], s1 offen offset
:4 glc slc tfe ; encoding
: [0x04,0x50,0x30,0xe0,0x02,0x01,0xc1,0x01]
83 // VI
: buffer_load_dword v1
, v2
, s
[4:7], s1 offen offset
:4 glc slc tfe ; encoding
: [0x04,0x50,0x52,0xe0,0x02,0x01,0x81,0x01]
85 buffer_load_dword v1
, v2
, ttmp
[4:7], s1 offen offset
:4 glc slc tfe
86 // SICI
: buffer_load_dword v1
, v2
, ttmp
[4:7], s1 offen offset
:4 glc slc tfe ; encoding
: [0x04,0x50,0x30,0xe0,0x02,0x01,0xdd,0x01]
87 // VI
: buffer_load_dword v1
, v2
, ttmp
[4:7], s1 offen offset
:4 glc slc tfe ; encoding
: [0x04,0x50,0x52,0xe0,0x02,0x01,0x9d,0x01]
89 //===----------------------------------------------------------------------===//
91 //===----------------------------------------------------------------------===//
93 buffer_load_dword v1
, v2
, s
[4:7], s1 idxen
94 // SICI
: buffer_load_dword v1
, v2
, s
[4:7], s1 idxen ; encoding
: [0x00,0x20,0x30,0xe0,0x02,0x01,0x01,0x01]
95 // VI
: buffer_load_dword v1
, v2
, s
[4:7], s1 idxen ; encoding
: [0x00,0x20,0x50,0xe0,0x02,0x01,0x01,0x01]
97 buffer_load_dword v1
, v2
, s
[4:7], s1 idxen offset
:4
98 // SICI
: buffer_load_dword v1
, v2
, s
[4:7], s1 idxen offset
:4 ; encoding
: [0x04,0x20,0x30,0xe0,0x02,0x01,0x01,0x01]
99 // VI
: buffer_load_dword v1
, v2
, s
[4:7], s1 idxen offset
:4 ; encoding
: [0x04,0x20,0x50,0xe0,0x02,0x01,0x01,0x01]
101 buffer_load_dword v1
, v2
, s
[4:7], s1 idxen offset
:4 glc
102 // SICI
: buffer_load_dword v1
, v2
, s
[4:7], s1 idxen offset
:4 glc ; encoding
: [0x04,0x60,0x30,0xe0,0x02,0x01,0x01,0x01]
103 // VI
: buffer_load_dword v1
, v2
, s
[4:7], s1 idxen offset
:4 glc ; encoding
: [0x04,0x60,0x50,0xe0,0x02,0x01,0x01,0x01]
105 buffer_load_dword v1
, v2
, s
[4:7], s1 idxen offset
:4 slc
106 // SICI
: buffer_load_dword v1
, v2
, s
[4:7], s1 idxen offset
:4 slc ; encoding
: [0x04,0x20,0x30,0xe0,0x02,0x01,0x41,0x01]
107 // VI
: buffer_load_dword v1
, v2
, s
[4:7], s1 idxen offset
:4 slc ; encoding
: [0x04,0x20,0x52,0xe0,0x02,0x01,0x01,0x01]
109 buffer_load_dword v1
, v2
, s
[4:7], s1 idxen offset
:4 tfe
110 // SICI
: buffer_load_dword v1
, v2
, s
[4:7], s1 idxen offset
:4 tfe ; encoding
: [0x04,0x20,0x30,0xe0,0x02,0x01,0x81,0x01]
111 // VI
: buffer_load_dword v1
, v2
, s
[4:7], s1 idxen offset
:4 tfe ; encoding
: [0x04,0x20,0x50,0xe0,0x02,0x01,0x81,0x01]
113 buffer_load_dword v1
, v2
, s
[4:7], s1 idxen glc tfe
114 // SICI
: buffer_load_dword v1
, v2
, s
[4:7], s1 idxen glc tfe ; encoding
: [0x00,0x60,0x30,0xe0,0x02,0x01,0x81,0x01]
115 // VI
: buffer_load_dword v1
, v2
, s
[4:7], s1 idxen glc tfe ; encoding
: [0x00,0x60,0x50,0xe0,0x02,0x01,0x81,0x01]
117 buffer_load_dword v1
, v2
, s
[4:7], s1 idxen offset
:4 glc slc tfe
118 // SICI
: buffer_load_dword v1
, v2
, s
[4:7], s1 idxen offset
:4 glc slc tfe ; encoding
: [0x04,0x60,0x30,0xe0,0x02,0x01,0xc1,0x01]
119 // VI
: buffer_load_dword v1
, v2
, s
[4:7], s1 idxen offset
:4 glc slc tfe ; encoding
: [0x04,0x60,0x52,0xe0,0x02,0x01,0x81,0x01]
121 buffer_load_dword v1
, v2
, ttmp
[4:7], s1 idxen offset
:4 glc slc tfe
122 // SICI
: buffer_load_dword v1
, v2
, ttmp
[4:7], s1 idxen offset
:4 glc slc tfe ; encoding
: [0x04,0x60,0x30,0xe0,0x02,0x01,0xdd,0x01]
123 // VI
: buffer_load_dword v1
, v2
, ttmp
[4:7], s1 idxen offset
:4 glc slc tfe ; encoding
: [0x04,0x60,0x52,0xe0,0x02,0x01,0x9d,0x01]
125 //===----------------------------------------------------------------------===//
126 // load
- vgpr index
and offset
127 //===----------------------------------------------------------------------===//
129 buffer_load_dword v1
, v
[2:3], s
[4:7], s1 idxen offen
130 // SICI
: buffer_load_dword v1
, v
[2:3], s
[4:7], s1 idxen offen ; encoding
: [0x00,0x30,0x30,0xe0,0x02,0x01,0x01,0x01]
131 // VI
: buffer_load_dword v1
, v
[2:3], s
[4:7], s1 idxen offen ; encoding
: [0x00,0x30,0x50,0xe0,0x02,0x01,0x01,0x01]
133 buffer_load_dword v1
, v
[2:3], s
[4:7], s1 idxen offen offset
:4
134 // SICI
: buffer_load_dword v1
, v
[2:3], s
[4:7], s1 idxen offen offset
:4 ; encoding
: [0x04,0x30,0x30,0xe0,0x02,0x01,0x01,0x01]
135 // VI
: buffer_load_dword v1
, v
[2:3], s
[4:7], s1 idxen offen offset
:4 ; encoding
: [0x04,0x30,0x50,0xe0,0x02,0x01,0x01,0x01]
137 buffer_load_dword v1
, v
[2:3], s
[4:7], s1 idxen offen offset
:4 glc
138 // SICI
: buffer_load_dword v1
, v
[2:3], s
[4:7], s1 idxen offen offset
:4 glc ; encoding
: [0x04,0x70,0x30,0xe0,0x02,0x01,0x01,0x01]
139 // VI
: buffer_load_dword v1
, v
[2:3], s
[4:7], s1 idxen offen offset
:4 glc ; encoding
: [0x04,0x70,0x50,0xe0,0x02,0x01,0x01,0x01]
141 buffer_load_dword v1
, v
[2:3], s
[4:7], s1 idxen offen offset
:4 slc
142 // SICI
: buffer_load_dword v1
, v
[2:3], s
[4:7], s1 idxen offen offset
:4 slc ; encoding
: [0x04,0x30,0x30,0xe0,0x02,0x01,0x41,0x01]
143 // VI
: buffer_load_dword v1
, v
[2:3], s
[4:7], s1 idxen offen offset
:4 slc ; encoding
: [0x04,0x30,0x52,0xe0,0x02,0x01,0x01,0x01]
145 buffer_load_dword v1
, v
[2:3], s
[4:7], s1 idxen offen offset
:4 tfe
146 // SICI
: buffer_load_dword v1
, v
[2:3], s
[4:7], s1 idxen offen offset
:4 tfe ; encoding
: [0x04,0x30,0x30,0xe0,0x02,0x01,0x81,0x01]
147 // VI
: buffer_load_dword v1
, v
[2:3], s
[4:7], s1 idxen offen offset
:4 tfe ; encoding
: [0x04,0x30,0x50,0xe0,0x02,0x01,0x81,0x01]
149 buffer_load_dword v1
, v
[2:3], s
[4:7], s1 idxen offen glc tfe
150 // SICI
: buffer_load_dword v1
, v
[2:3], s
[4:7], s1 idxen offen glc tfe ; encoding
: [0x00,0x70,0x30,0xe0,0x02,0x01,0x81,0x01]
151 // VI
: buffer_load_dword v1
, v
[2:3], s
[4:7], s1 idxen offen glc tfe ; encoding
: [0x00,0x70,0x50,0xe0,0x02,0x01,0x81,0x01]
153 buffer_load_dword v1
, v
[2:3], s
[4:7], s1 idxen offen offset
:4 glc slc tfe
154 // SICI
: buffer_load_dword v1
, v
[2:3], s
[4:7], s1 idxen offen offset
:4 glc slc tfe ; encoding
: [0x04,0x70,0x30,0xe0,0x02,0x01,0xc1,0x01]
155 // VI
: buffer_load_dword v1
, v
[2:3], s
[4:7], s1 idxen offen offset
:4 glc slc tfe ; encoding
: [0x04,0x70,0x52,0xe0,0x02,0x01,0x81,0x01]
157 buffer_load_dword v1
, v
[2:3], ttmp
[4:7], ttmp1 idxen offen offset
:4 glc slc tfe
158 // SICI
: buffer_load_dword v1
, v
[2:3], ttmp
[4:7], ttmp1 idxen offen offset
:4 glc slc tfe ; encoding
: [0x04,0x70,0x30,0xe0,0x02,0x01,0xdd,0x71]
159 // VI
: buffer_load_dword v1
, v
[2:3], ttmp
[4:7], ttmp1 idxen offen offset
:4 glc slc tfe ; encoding
: [0x04,0x70,0x52,0xe0,0x02,0x01,0x9d,0x71]
161 //===----------------------------------------------------------------------===//
163 //===----------------------------------------------------------------------===//
165 buffer_load_dword v1
, v
[2:3], s
[4:7], s1 addr64
166 // SICI
: buffer_load_dword v1
, v
[2:3], s
[4:7], s1 addr64 ; encoding
: [0x00,0x80,0x30,0xe0,0x02,0x01,0x01,0x01]
167 // NOVI
: error
: instruction
not supported on this GPU
169 buffer_load_dword v1
, v
[2:3], s
[4:7], s1 addr64 offset
:4
170 // SICI
: buffer_load_dword v1
, v
[2:3], s
[4:7], s1 addr64 offset
:4 ; encoding
: [0x04,0x80,0x30,0xe0,0x02,0x01,0x01,0x01]
171 // NOVI
: error
: instruction
not supported on this GPU
173 buffer_load_dword v1
, v
[2:3], s
[4:7], s1 addr64 offset
:4 glc
174 // SICI
: buffer_load_dword v1
, v
[2:3], s
[4:7], s1 addr64 offset
:4 glc ; encoding
: [0x04,0xc0,0x30,0xe0,0x02,0x01,0x01,0x01]
175 // NOVI
: error
: instruction
not supported on this GPU
177 buffer_load_dword v1
, v
[2:3], s
[4:7], s1 addr64 offset
:4 slc
178 // SICI
: buffer_load_dword v1
, v
[2:3], s
[4:7], s1 addr64 offset
:4 slc ; encoding
: [0x04,0x80,0x30,0xe0,0x02,0x01,0x41,0x01]
179 // NOVI
: error
: instruction
not supported on this GPU
181 buffer_load_dword v1
, v
[2:3], s
[4:7], s1 addr64 offset
:4 tfe
182 // SICI
: buffer_load_dword v1
, v
[2:3], s
[4:7], s1 addr64 offset
:4 tfe ; encoding
: [0x04,0x80,0x30,0xe0,0x02,0x01,0x81,0x01]
183 // NOVI
: error
: instruction
not supported on this GPU
185 buffer_load_dword v1
, v
[2:3], s
[4:7], s1 addr64 glc tfe
186 // SICI
: buffer_load_dword v1
, v
[2:3], s
[4:7], s1 addr64 glc tfe ; encoding
: [0x00,0xc0,0x30,0xe0,0x02,0x01,0x81,0x01]
187 // NOVI
: error
: instruction
not supported on this GPU
189 buffer_load_dword v1
, v
[2:3], s
[4:7], s1 addr64 offset
:4 glc slc tfe
190 // SICI
: buffer_load_dword v1
, v
[2:3], s
[4:7], s1 addr64 offset
:4 glc slc tfe ; encoding
: [0x04,0xc0,0x30,0xe0,0x02,0x01,0xc1,0x01]
191 // NOVI
: error
: instruction
not supported on this GPU
193 buffer_load_dword v1
, v
[2:3], ttmp
[4:7], ttmp1 addr64 offset
:4 glc slc tfe
194 // SICI
: buffer_load_dword v1
, v
[2:3], ttmp
[4:7], ttmp1 addr64 offset
:4 glc slc tfe ; encoding
: [0x04,0xc0,0x30,0xe0,0x02,0x01,0xdd,0x71]
195 // NOVI
: error
: instruction
not supported on this GPU
197 //===----------------------------------------------------------------------===//
198 // store
- immediate offset only
199 //===----------------------------------------------------------------------===//
201 buffer_store_dword v1
, off
, s
[4:7], s1
202 // SICI
: buffer_store_dword v1
, off
, s
[4:7], s1 ; encoding
: [0x00,0x00,0x70,0xe0,0x00,0x01,0x01,0x01]
203 // VI
: buffer_store_dword v1
, off
, s
[4:7], s1 ; encoding
: [0x00,0x00,0x70,0xe0,0x00,0x01,0x01,0x01]
205 buffer_store_dword v1
, off
, s
[4:7], s1 offset
:4
206 // SICI
: buffer_store_dword v1
, off
, s
[4:7], s1 offset
:4 ; encoding
: [0x04,0x00,0x70,0xe0,0x00,0x01,0x01,0x01]
207 // VI
: buffer_store_dword v1
, off
, s
[4:7], s1 offset
:4 ; encoding
: [0x04,0x00,0x70,0xe0,0x00,0x01,0x01,0x01]
209 buffer_store_dword v1
, off
, s
[4:7], s1 offset
:4 glc
210 // SICI
: buffer_store_dword v1
, off
, s
[4:7], s1 offset
:4 glc ; encoding
: [0x04,0x40,0x70,0xe0,0x00,0x01,0x01,0x01]
211 // VI
: buffer_store_dword v1
, off
, s
[4:7], s1 offset
:4 glc ; encoding
: [0x04,0x40,0x70,0xe0,0x00,0x01,0x01,0x01]
213 buffer_store_dword v1
, off
, s
[4:7], s1 offset
:4 slc
214 // SICI
: buffer_store_dword v1
, off
, s
[4:7], s1 offset
:4 slc ; encoding
: [0x04,0x00,0x70,0xe0,0x00,0x01,0x41,0x01]
215 // VI
: buffer_store_dword v1
, off
, s
[4:7], s1 offset
:4 slc ; encoding
: [0x04,0x00,0x72,0xe0,0x00,0x01,0x01,0x01]
217 buffer_store_dword v1
, off
, s
[4:7], s1 offset
:4 tfe
218 // SICI
: buffer_store_dword v1
, off
, s
[4:7], s1 offset
:4 tfe ; encoding
: [0x04,0x00,0x70,0xe0,0x00,0x01,0x81,0x01]
219 // VI
: buffer_store_dword v1
, off
, s
[4:7], s1 offset
:4 tfe ; encoding
: [0x04,0x00,0x70,0xe0,0x00,0x01,0x81,0x01]
221 buffer_store_dword v1
, off
, s
[4:7], s1 glc tfe
222 // SICI
: buffer_store_dword v1
, off
, s
[4:7], s1 glc tfe ; encoding
: [0x00,0x40,0x70,0xe0,0x00,0x01,0x81,0x01]
223 // VI
: buffer_store_dword v1
, off
, s
[4:7], s1 glc tfe ; encoding
: [0x00,0x40,0x70,0xe0,0x00,0x01,0x81,0x01]
225 buffer_store_dword v1
, off
, s
[4:7], s1 offset
:4 glc slc tfe
226 // SICI
: buffer_store_dword v1
, off
, s
[4:7], s1 offset
:4 glc slc tfe ; encoding
: [0x04,0x40,0x70,0xe0,0x00,0x01,0xc1,0x01]
227 // VI
: buffer_store_dword v1
, off
, s
[4:7], s1 offset
:4 glc slc tfe ; encoding
: [0x04,0x40,0x72,0xe0,0x00,0x01,0x81,0x01]
229 buffer_store_dword v1
, off
, ttmp
[4:7], ttmp1 offset
:4 glc slc tfe
230 // SICI
: buffer_store_dword v1
, off
, ttmp
[4:7], ttmp1 offset
:4 glc slc tfe ; encoding
: [0x04,0x40,0x70,0xe0,0x00,0x01,0xdd,0x71]
231 // VI
: buffer_store_dword v1
, off
, ttmp
[4:7], ttmp1 offset
:4 glc slc tfe ; encoding
: [0x04,0x40,0x72,0xe0,0x00,0x01,0x9d,0x71]
233 //===----------------------------------------------------------------------===//
234 // store
- vgpr offset
235 //===----------------------------------------------------------------------===//
237 buffer_store_dword v1
, v2
, s
[4:7], s1 offen
238 // SICI
: buffer_store_dword v1
, v2
, s
[4:7], s1 offen ; encoding
: [0x00,0x10,0x70,0xe0,0x02,0x01,0x01,0x01]
239 // VI
: buffer_store_dword v1
, v2
, s
[4:7], s1 offen ; encoding
: [0x00,0x10,0x70,0xe0,0x02,0x01,0x01,0x01]
241 buffer_store_dword v1
, v2
, s
[4:7], s1 offen offset
:4
242 // SICI
: buffer_store_dword v1
, v2
, s
[4:7], s1 offen offset
:4 ; encoding
: [0x04,0x10,0x70,0xe0,0x02,0x01,0x01,0x01]
243 // VI
: buffer_store_dword v1
, v2
, s
[4:7], s1 offen offset
:4 ; encoding
: [0x04,0x10,0x70,0xe0,0x02,0x01,0x01,0x01]
245 buffer_store_dword v1
, v2
, s
[4:7], s1 offen offset
:4 glc
246 // SICI
: buffer_store_dword v1
, v2
, s
[4:7], s1 offen offset
:4 glc ; encoding
: [0x04,0x50,0x70,0xe0,0x02,0x01,0x01,0x01]
247 // VI
: buffer_store_dword v1
, v2
, s
[4:7], s1 offen offset
:4 glc ; encoding
: [0x04,0x50,0x70,0xe0,0x02,0x01,0x01,0x01]
249 buffer_store_dword v1
, v2
, s
[4:7], s1 offen offset
:4 slc
250 // SICI
: buffer_store_dword v1
, v2
, s
[4:7], s1 offen offset
:4 slc ; encoding
: [0x04,0x10,0x70,0xe0,0x02,0x01,0x41,0x01]
251 // VI
: buffer_store_dword v1
, v2
, s
[4:7], s1 offen offset
:4 slc ; encoding
: [0x04,0x10,0x72,0xe0,0x02,0x01,0x01,0x01]
253 buffer_store_dword v1
, v2
, s
[4:7], s1 offen offset
:4 tfe
254 // SICI
: buffer_store_dword v1
, v2
, s
[4:7], s1 offen offset
:4 tfe ; encoding
: [0x04,0x10,0x70,0xe0,0x02,0x01,0x81,0x01]
255 // VI
: buffer_store_dword v1
, v2
, s
[4:7], s1 offen offset
:4 tfe ; encoding
: [0x04,0x10,0x70,0xe0,0x02,0x01,0x81,0x01]
257 buffer_store_dword v1
, v2
, s
[4:7], s1 offen glc tfe
258 // SICI
: buffer_store_dword v1
, v2
, s
[4:7], s1 offen glc tfe ; encoding
: [0x00,0x50,0x70,0xe0,0x02,0x01,0x81,0x01]
259 // VI
: buffer_store_dword v1
, v2
, s
[4:7], s1 offen glc tfe ; encoding
: [0x00,0x50,0x70,0xe0,0x02,0x01,0x81,0x01]
261 buffer_store_dword v1
, v2
, s
[4:7], s1 offen offset
:4 glc slc tfe
262 // SICI
: buffer_store_dword v1
, v2
, s
[4:7], s1 offen offset
:4 glc slc tfe ; encoding
: [0x04,0x50,0x70,0xe0,0x02,0x01,0xc1,0x01]
263 // VI
: buffer_store_dword v1
, v2
, s
[4:7], s1 offen offset
:4 glc slc tfe ; encoding
: [0x04,0x50,0x72,0xe0,0x02,0x01,0x81,0x01]
265 buffer_store_dword v1
, v2
, ttmp
[4:7], ttmp1 offen offset
:4 glc slc tfe
266 // SICI
: buffer_store_dword v1
, v2
, ttmp
[4:7], ttmp1 offen offset
:4 glc slc tfe ; encoding
: [0x04,0x50,0x70,0xe0,0x02,0x01,0xdd,0x71]
267 // VI
: buffer_store_dword v1
, v2
, ttmp
[4:7], ttmp1 offen offset
:4 glc slc tfe ; encoding
: [0x04,0x50,0x72,0xe0,0x02,0x01,0x9d,0x71]
269 //===----------------------------------------------------------------------===//
270 // store
- vgpr index
271 //===----------------------------------------------------------------------===//
273 buffer_store_dword v1
, v2
, s
[4:7], s1 idxen
274 // SICI
: buffer_store_dword v1
, v2
, s
[4:7], s1 idxen ; encoding
: [0x00,0x20,0x70,0xe0,0x02,0x01,0x01,0x01]
275 // VI
: buffer_store_dword v1
, v2
, s
[4:7], s1 idxen ; encoding
: [0x00,0x20,0x70,0xe0,0x02,0x01,0x01,0x01]
277 buffer_store_dword v1
, v2
, s
[4:7], s1 idxen offset
:4
278 // SICI
: buffer_store_dword v1
, v2
, s
[4:7], s1 idxen offset
:4 ; encoding
: [0x04,0x20,0x70,0xe0,0x02,0x01,0x01,0x01]
279 // VI
: buffer_store_dword v1
, v2
, s
[4:7], s1 idxen offset
:4 ; encoding
: [0x04,0x20,0x70,0xe0,0x02,0x01,0x01,0x01]
281 buffer_store_dword v1
, v2
, s
[4:7], s1 idxen offset
:4 glc
282 // SICI
: buffer_store_dword v1
, v2
, s
[4:7], s1 idxen offset
:4 glc ; encoding
: [0x04,0x60,0x70,0xe0,0x02,0x01,0x01,0x01]
283 // VI
: buffer_store_dword v1
, v2
, s
[4:7], s1 idxen offset
:4 glc ; encoding
: [0x04,0x60,0x70,0xe0,0x02,0x01,0x01,0x01]
285 buffer_store_dword v1
, v2
, s
[4:7], s1 idxen offset
:4 slc
286 // SICI
: buffer_store_dword v1
, v2
, s
[4:7], s1 idxen offset
:4 slc ; encoding
: [0x04,0x20,0x70,0xe0,0x02,0x01,0x41,0x01]
287 // VI
: buffer_store_dword v1
, v2
, s
[4:7], s1 idxen offset
:4 slc ; encoding
: [0x04,0x20,0x72,0xe0,0x02,0x01,0x01,0x01]
289 buffer_store_dword v1
, v2
, s
[4:7], s1 idxen offset
:4 tfe
290 // SICI
: buffer_store_dword v1
, v2
, s
[4:7], s1 idxen offset
:4 tfe ; encoding
: [0x04,0x20,0x70,0xe0,0x02,0x01,0x81,0x01]
291 // VI
: buffer_store_dword v1
, v2
, s
[4:7], s1 idxen offset
:4 tfe ; encoding
: [0x04,0x20,0x70,0xe0,0x02,0x01,0x81,0x01]
293 buffer_store_dword v1
, v2
, s
[4:7], s1 idxen glc tfe
294 // SICI
: buffer_store_dword v1
, v2
, s
[4:7], s1 idxen glc tfe ; encoding
: [0x00,0x60,0x70,0xe0,0x02,0x01,0x81,0x01]
295 // VI
: buffer_store_dword v1
, v2
, s
[4:7], s1 idxen glc tfe ; encoding
: [0x00,0x60,0x70,0xe0,0x02,0x01,0x81,0x01]
297 buffer_store_dword v1
, v2
, s
[4:7], s1 idxen offset
:4 glc slc tfe
298 // SICI
: buffer_store_dword v1
, v2
, s
[4:7], s1 idxen offset
:4 glc slc tfe ; encoding
: [0x04,0x60,0x70,0xe0,0x02,0x01,0xc1,0x01]
299 // VI
: buffer_store_dword v1
, v2
, s
[4:7], s1 idxen offset
:4 glc slc tfe ; encoding
: [0x04,0x60,0x72,0xe0,0x02,0x01,0x81,0x01]
301 buffer_store_dword v1
, v2
, ttmp
[4:7], ttmp1 idxen offset
:4 glc slc tfe
302 // SICI
: buffer_store_dword v1
, v2
, ttmp
[4:7], ttmp1 idxen offset
:4 glc slc tfe ; encoding
: [0x04,0x60,0x70,0xe0,0x02,0x01,0xdd,0x71]
303 // VI
: buffer_store_dword v1
, v2
, ttmp
[4:7], ttmp1 idxen offset
:4 glc slc tfe ; encoding
: [0x04,0x60,0x72,0xe0,0x02,0x01,0x9d,0x71]
305 //===----------------------------------------------------------------------===//
306 // store
- vgpr index
and offset
307 //===----------------------------------------------------------------------===//
309 buffer_store_dword v1
, v
[2:3], s
[4:7], s1 idxen offen
310 // SICI
: buffer_store_dword v1
, v
[2:3], s
[4:7], s1 idxen offen ; encoding
: [0x00,0x30,0x70,0xe0,0x02,0x01,0x01,0x01]
311 // VI
: buffer_store_dword v1
, v
[2:3], s
[4:7], s1 idxen offen ; encoding
: [0x00,0x30,0x70,0xe0,0x02,0x01,0x01,0x01]
313 buffer_store_dword v1
, v
[2:3], s
[4:7], s1 idxen offen offset
:4
314 // SICI
: buffer_store_dword v1
, v
[2:3], s
[4:7], s1 idxen offen offset
:4 ; encoding
: [0x04,0x30,0x70,0xe0,0x02,0x01,0x01,0x01]
315 // VI
: buffer_store_dword v1
, v
[2:3], s
[4:7], s1 idxen offen offset
:4 ; encoding
: [0x04,0x30,0x70,0xe0,0x02,0x01,0x01,0x01]
317 buffer_store_dword v1
, v
[2:3], s
[4:7], s1 idxen offen offset
:4 glc
318 // SICI
: buffer_store_dword v1
, v
[2:3], s
[4:7], s1 idxen offen offset
:4 glc ; encoding
: [0x04,0x70,0x70,0xe0,0x02,0x01,0x01,0x01]
319 // VI
: buffer_store_dword v1
, v
[2:3], s
[4:7], s1 idxen offen offset
:4 glc ; encoding
: [0x04,0x70,0x70,0xe0,0x02,0x01,0x01,0x01]
321 buffer_store_dword v1
, v
[2:3], s
[4:7], s1 idxen offen offset
:4 slc
322 // SICI
: buffer_store_dword v1
, v
[2:3], s
[4:7], s1 idxen offen offset
:4 slc ; encoding
: [0x04,0x30,0x70,0xe0,0x02,0x01,0x41,0x01]
323 // VI
: buffer_store_dword v1
, v
[2:3], s
[4:7], s1 idxen offen offset
:4 slc ; encoding
: [0x04,0x30,0x72,0xe0,0x02,0x01,0x01,0x01]
325 buffer_store_dword v1
, v
[2:3], s
[4:7], s1 idxen offen offset
:4 tfe
326 // SICI
: buffer_store_dword v1
, v
[2:3], s
[4:7], s1 idxen offen offset
:4 tfe ; encoding
: [0x04,0x30,0x70,0xe0,0x02,0x01,0x81,0x01]
327 // VI
: buffer_store_dword v1
, v
[2:3], s
[4:7], s1 idxen offen offset
:4 tfe ; encoding
: [0x04,0x30,0x70,0xe0,0x02,0x01,0x81,0x01]
329 buffer_store_dword v1
, v
[2:3], s
[4:7], s1 idxen offen glc tfe
330 // SICI
: buffer_store_dword v1
, v
[2:3], s
[4:7], s1 idxen offen glc tfe ; encoding
: [0x00,0x70,0x70,0xe0,0x02,0x01,0x81,0x01]
331 // VI
: buffer_store_dword v1
, v
[2:3], s
[4:7], s1 idxen offen glc tfe ; encoding
: [0x00,0x70,0x70,0xe0,0x02,0x01,0x81,0x01]
333 buffer_store_dword v1
, v
[2:3], s
[4:7], s1 idxen offen offset
:4 glc slc tfe
334 // SICI
: buffer_store_dword v1
, v
[2:3], s
[4:7], s1 idxen offen offset
:4 glc slc tfe ; encoding
: [0x04,0x70,0x70,0xe0,0x02,0x01,0xc1,0x01]
335 // VI
: buffer_store_dword v1
, v
[2:3], s
[4:7], s1 idxen offen offset
:4 glc slc tfe ; encoding
: [0x04,0x70,0x72,0xe0,0x02,0x01,0x81,0x01]
337 buffer_store_dword v1
, v
[2:3], ttmp
[4:7], ttmp1 idxen offen offset
:4 glc slc tfe
338 // SICI
: buffer_store_dword v1
, v
[2:3], ttmp
[4:7], ttmp1 idxen offen offset
:4 glc slc tfe ; encoding
: [0x04,0x70,0x70,0xe0,0x02,0x01,0xdd,0x71]
339 // VI
: buffer_store_dword v1
, v
[2:3], ttmp
[4:7], ttmp1 idxen offen offset
:4 glc slc tfe ; encoding
: [0x04,0x70,0x72,0xe0,0x02,0x01,0x9d,0x71]
341 //===----------------------------------------------------------------------===//
343 //===----------------------------------------------------------------------===//
345 buffer_store_dword v1
, v
[2:3], s
[4:7], s1 addr64
346 // SICI
: buffer_store_dword v1
, v
[2:3], s
[4:7], s1 addr64 ; encoding
: [0x00,0x80,0x70,0xe0,0x02,0x01,0x01,0x01]
347 // NOVI
: error
: instruction
not supported on this GPU
349 buffer_store_dword v1
, v
[2:3], s
[4:7], s1 addr64 offset
:4
350 // SICI
: buffer_store_dword v1
, v
[2:3], s
[4:7], s1 addr64 offset
:4 ; encoding
: [0x04,0x80,0x70,0xe0,0x02,0x01,0x01,0x01]
351 // NOVI
: error
: instruction
not supported on this GPU
353 buffer_store_dword v1
, v
[2:3], s
[4:7], s1 addr64 offset
:4 glc
354 // SICI
: buffer_store_dword v1
, v
[2:3], s
[4:7], s1 addr64 offset
:4 glc ; encoding
: [0x04,0xc0,0x70,0xe0,0x02,0x01,0x01,0x01]
355 // NOVI
: error
: instruction
not supported on this GPU
357 buffer_store_dword v1
, v
[2:3], s
[4:7], s1 addr64 offset
:4 slc
358 // SICI
: buffer_store_dword v1
, v
[2:3], s
[4:7], s1 addr64 offset
:4 slc ; encoding
: [0x04,0x80,0x70,0xe0,0x02,0x01,0x41,0x01]
359 // NOVI
: error
: instruction
not supported on this GPU
361 buffer_store_dword v1
, v
[2:3], s
[4:7], s1 addr64 offset
:4 tfe
362 // SICI
: buffer_store_dword v1
, v
[2:3], s
[4:7], s1 addr64 offset
:4 tfe ; encoding
: [0x04,0x80,0x70,0xe0,0x02,0x01,0x81,0x01]
363 // NOVI
: error
: instruction
not supported on this GPU
365 buffer_store_dword v1
, v
[2:3], s
[4:7], s1 addr64 glc tfe
366 // SICI
: buffer_store_dword v1
, v
[2:3], s
[4:7], s1 addr64 glc tfe ; encoding
: [0x00,0xc0,0x70,0xe0,0x02,0x01,0x81,0x01]
367 // NOVI
: error
: instruction
not supported on this GPU
369 buffer_store_dword v1
, v
[2:3], s
[4:7], s1 addr64 offset
:4 glc slc tfe
370 // SICI
: buffer_store_dword v1
, v
[2:3], s
[4:7], s1 addr64 offset
:4 glc slc tfe ; encoding
: [0x04,0xc0,0x70,0xe0,0x02,0x01,0xc1,0x01]
371 // NOVI
: error
: instruction
not supported on this GPU
373 buffer_store_dword v1
, v
[2:3], ttmp
[4:7], ttmp1 addr64 offset
:4 glc slc tfe
374 // SICI
: buffer_store_dword v1
, v
[2:3], ttmp
[4:7], ttmp1 addr64 offset
:4 glc slc tfe ; encoding
: [0x04,0xc0,0x70,0xe0,0x02,0x01,0xdd,0x71]
375 // NOVI
: error
: instruction
not supported on this GPU
377 //===----------------------------------------------------------------------===//
379 //===----------------------------------------------------------------------===//
381 buffer_load_format_x v1
, off
, s
[4:7], s1
382 // SICI
: buffer_load_format_x v1
, off
, s
[4:7], s1 ; encoding
: [0x00,0x00,0x00,0xe0,0x00,0x01,0x01,0x01]
383 // VI
: buffer_load_format_x v1
, off
, s
[4:7], s1 ; encoding
: [0x00,0x00,0x00,0xe0,0x00,0x01,0x01,0x01]
385 buffer_load_format_xy v
[1:2], off
, s
[4:7], s1
386 // SICI
: buffer_load_format_xy v
[1:2], off
, s
[4:7], s1 ; encoding
: [0x00,0x00,0x04,0xe0,0x00,0x01,0x01,0x01]
387 // VI
: buffer_load_format_xy v
[1:2], off
, s
[4:7], s1 ; encoding
: [0x00,0x00,0x04,0xe0,0x00,0x01,0x01,0x01]
389 buffer_load_format_xyz v
[1:3], off
, s
[4:7], s1
390 // SICI
: buffer_load_format_xyz v
[1:3], off
, s
[4:7], s1 ; encoding
: [0x00,0x00,0x08,0xe0,0x00,0x01,0x01,0x01]
391 // VI
: buffer_load_format_xyz v
[1:3], off
, s
[4:7], s1 ; encoding
: [0x00,0x00,0x08,0xe0,0x00,0x01,0x01,0x01]
393 buffer_load_format_xyzw v
[1:4], off
, s
[4:7], s1
394 // SICI
: buffer_load_format_xyzw v
[1:4], off
, s
[4:7], s1 ; encoding
: [0x00,0x00,0x0c,0xe0,0x00,0x01,0x01,0x01]
395 // VI
: buffer_load_format_xyzw v
[1:4], off
, s
[4:7], s1 ; encoding
: [0x00,0x00,0x0c,0xe0,0x00,0x01,0x01,0x01]
397 buffer_store_format_x v1
, off
, s
[4:7], s1
398 // SICI
: buffer_store_format_x v1
, off
, s
[4:7], s1 ; encoding
: [0x00,0x00,0x10,0xe0,0x00,0x01,0x01,0x01]
399 // VI
: buffer_store_format_x v1
, off
, s
[4:7], s1 ; encoding
: [0x00,0x00,0x10,0xe0,0x00,0x01,0x01,0x01]
401 buffer_store_format_xy v
[1:2], off
, s
[4:7], s1
402 // SICI
: buffer_store_format_xy v
[1:2], off
, s
[4:7], s1 ; encoding
: [0x00,0x00,0x14,0xe0,0x00,0x01,0x01,0x01]
403 // VI
: buffer_store_format_xy v
[1:2], off
, s
[4:7], s1 ; encoding
: [0x00,0x00,0x14,0xe0,0x00,0x01,0x01,0x01]
405 buffer_store_format_xyz v
[1:3], off
, s
[4:7], s1
406 // SICI
: buffer_store_format_xyz v
[1:3], off
, s
[4:7], s1 ; encoding
: [0x00,0x00,0x18,0xe0,0x00,0x01,0x01,0x01]
407 // VI
: buffer_store_format_xyz v
[1:3], off
, s
[4:7], s1 ; encoding
: [0x00,0x00,0x18,0xe0,0x00,0x01,0x01,0x01]
409 buffer_store_format_xyzw v
[1:4], off
, s
[4:7], s1
410 // SICI
: buffer_store_format_xyzw v
[1:4], off
, s
[4:7], s1 ; encoding
: [0x00,0x00,0x1c,0xe0,0x00,0x01,0x01,0x01]
411 // VI
: buffer_store_format_xyzw v
[1:4], off
, s
[4:7], s1 ; encoding
: [0x00,0x00,0x1c,0xe0,0x00,0x01,0x01,0x01]
413 buffer_store_format_xyzw v
[1:4], off
, ttmp
[4:7], ttmp1
414 // SICI
: buffer_store_format_xyzw v
[1:4], off
, ttmp
[4:7], ttmp1 ; encoding
: [0x00,0x00,0x1c,0xe0,0x00,0x01,0x1d,0x71]
415 // VI
: buffer_store_format_xyzw v
[1:4], off
, ttmp
[4:7], ttmp1 ; encoding
: [0x00,0x00,0x1c,0xe0,0x00,0x01,0x1d,0x71]
417 buffer_load_ubyte v1
, off
, s
[4:7], s1
418 // SICI
: buffer_load_ubyte v1
, off
, s
[4:7], s1 ; encoding
: [0x00,0x00,0x20,0xe0,0x00,0x01,0x01,0x01]
419 // VI
: buffer_load_ubyte v1
, off
, s
[4:7], s1 ; encoding
: [0x00,0x00,0x40,0xe0,0x00,0x01,0x01,0x01]
421 buffer_load_ubyte v1
, off
, ttmp
[4:7], ttmp1
422 // SICI
: buffer_load_ubyte v1
, off
, ttmp
[4:7], ttmp1 ; encoding
: [0x00,0x00,0x20,0xe0,0x00,0x01,0x1d,0x71]
423 // VI
: buffer_load_ubyte v1
, off
, ttmp
[4:7], ttmp1 ; encoding
: [0x00,0x00,0x40,0xe0,0x00,0x01,0x1d,0x71]
425 buffer_load_sbyte v1
, off
, s
[4:7], s1
426 // SICI
: buffer_load_sbyte v1
, off
, s
[4:7], s1 ; encoding
: [0x00,0x00,0x24,0xe0,0x00,0x01,0x01,0x01]
427 // VI
: buffer_load_sbyte v1
, off
, s
[4:7], s1 ; encoding
: [0x00,0x00,0x44,0xe0,0x00,0x01,0x01,0x01]
429 buffer_load_ushort v1
, off
, s
[4:7], s1
430 // SICI
: buffer_load_ushort v1
, off
, s
[4:7], s1 ; encoding
: [0x00,0x00,0x28,0xe0,0x00,0x01,0x01,0x01]
431 // VI
: buffer_load_ushort v1
, off
, s
[4:7], s1 ; encoding
: [0x00,0x00,0x48,0xe0,0x00,0x01,0x01,0x01]
433 buffer_load_sshort v1
, off
, s
[4:7], s1
434 // SICI
: buffer_load_sshort v1
, off
, s
[4:7], s1 ; encoding
: [0x00,0x00,0x2c,0xe0,0x00,0x01,0x01,0x01]
435 // VI
: buffer_load_sshort v1
, off
, s
[4:7], s1 ; encoding
: [0x00,0x00,0x4c,0xe0,0x00,0x01,0x01,0x01]
437 buffer_load_dword v1
, off
, s
[4:7], s1
438 // SICI
: buffer_load_dword v1
, off
, s
[4:7], s1 ; encoding
: [0x00,0x00,0x30,0xe0,0x00,0x01,0x01,0x01]
439 // VI
: buffer_load_dword v1
, off
, s
[4:7], s1 ; encoding
: [0x00,0x00,0x50,0xe0,0x00,0x01,0x01,0x01]
441 buffer_load_dword v1
, off
, ttmp
[4:7], ttmp1
442 // SICI
: buffer_load_dword v1
, off
, ttmp
[4:7], ttmp1 ; encoding
: [0x00,0x00,0x30,0xe0,0x00,0x01,0x1d,0x71]
443 // VI
: buffer_load_dword v1
, off
, ttmp
[4:7], ttmp1 ; encoding
: [0x00,0x00,0x50,0xe0,0x00,0x01,0x1d,0x71]
445 buffer_load_dwordx2 v
[1:2], off
, s
[4:7], s1
446 // SICI
: buffer_load_dwordx2 v
[1:2], off
, s
[4:7], s1 ; encoding
: [0x00,0x00,0x34,0xe0,0x00,0x01,0x01,0x01]
447 // VI
: buffer_load_dwordx2 v
[1:2], off
, s
[4:7], s1 ; encoding
: [0x00,0x00,0x54,0xe0,0x00,0x01,0x01,0x01]
449 buffer_load_dwordx3 v
[0:2], off
, s
[4:7], s0 offset
:4095
450 // SICI
: buffer_load_dwordx3 v
[0:2], off
, s
[4:7], s0 offset
:4095 ; encoding
: [0xff,0x0f,0x3c,0xe0,0x00,0x00,0x01,0x00]
451 // VI
: buffer_load_dwordx3 v
[0:2], off
, s
[4:7], s0 offset
:4095 ; encoding
: [0xff,0x0f,0x58,0xe0,0x00,0x00,0x01,0x00]
453 buffer_load_dwordx4 v
[1:4], off
, s
[4:7], s1
454 // SICI
: buffer_load_dwordx4 v
[1:4], off
, s
[4:7], s1 ; encoding
: [0x00,0x00,0x38,0xe0,0x00,0x01,0x01,0x01]
455 // VI
: buffer_load_dwordx4 v
[1:4], off
, s
[4:7], s1 ; encoding
: [0x00,0x00,0x5c,0xe0,0x00,0x01,0x01,0x01]
457 buffer_load_dwordx4 v
[1:4], off
, ttmp
[4:7], ttmp1
458 // SICI
: buffer_load_dwordx4 v
[1:4], off
, ttmp
[4:7], ttmp1 ; encoding
: [0x00,0x00,0x38,0xe0,0x00,0x01,0x1d,0x71]
459 // VI
: buffer_load_dwordx4 v
[1:4], off
, ttmp
[4:7], ttmp1 ; encoding
: [0x00,0x00,0x5c,0xe0,0x00,0x01,0x1d,0x71]
461 buffer_store_byte v1
, off
, s
[4:7], s1
462 // SICI
: buffer_store_byte v1
, off
, s
[4:7], s1 ; encoding
: [0x00,0x00,0x60,0xe0,0x00,0x01,0x01,0x01]
463 // VI
: buffer_store_byte v1
, off
, s
[4:7], s1 ; encoding
: [0x00,0x00,0x60,0xe0,0x00,0x01,0x01,0x01]
465 buffer_store_byte v1
, off
, ttmp
[4:7], ttmp1
466 // SICI
: buffer_store_byte v1
, off
, ttmp
[4:7], ttmp1 ; encoding
: [0x00,0x00,0x60,0xe0,0x00,0x01,0x1d,0x71]
467 // VI
: buffer_store_byte v1
, off
, ttmp
[4:7], ttmp1 ; encoding
: [0x00,0x00,0x60,0xe0,0x00,0x01,0x1d,0x71]
469 buffer_store_short v1
, off
, s
[4:7], s1
470 // SICI
: buffer_store_short v1
, off
, s
[4:7], s1 ; encoding
: [0x00,0x00,0x68,0xe0,0x00,0x01,0x01,0x01]
471 // VI
: buffer_store_short v1
, off
, s
[4:7], s1 ; encoding
: [0x00,0x00,0x68,0xe0,0x00,0x01,0x01,0x01]
473 buffer_store_dword v1
, off
, s
[4:7], s1
474 // SICI
: buffer_store_dword v1
, off
, s
[4:7], s1 ; encoding
: [0x00,0x00,0x70,0xe0,0x00,0x01,0x01,0x01]
475 // VI
: buffer_store_dword v1
, off
, s
[4:7], s1 ; encoding
: [0x00,0x00,0x70,0xe0,0x00,0x01,0x01,0x01]
477 buffer_store_dwordx2 v
[1:2], off
, s
[4:7], s1
478 // SICI
: buffer_store_dwordx2 v
[1:2], off
, s
[4:7], s1 ; encoding
: [0x00,0x00,0x74,0xe0,0x00,0x01,0x01,0x01]
479 // VI
: buffer_store_dwordx2 v
[1:2], off
, s
[4:7], s1 ; encoding
: [0x00,0x00,0x74,0xe0,0x00,0x01,0x01,0x01]
481 buffer_store_dwordx3 v
[0:2], off
, s
[4:7], s0 offset
:4095
482 // SICI
: buffer_store_dwordx3 v
[0:2], off
, s
[4:7], s0 offset
:4095 ; encoding
: [0xff,0x0f,0x7c,0xe0,0x00,0x00,0x01,0x00]
483 // VI
: buffer_store_dwordx3 v
[0:2], off
, s
[4:7], s0 offset
:4095 ; encoding
: [0xff,0x0f,0x78,0xe0,0x00,0x00,0x01,0x00]
485 buffer_store_dwordx4 v
[1:4], off
, s
[4:7], s1
486 // SICI
: buffer_store_dwordx4 v
[1:4], off
, s
[4:7], s1 ; encoding
: [0x00,0x00,0x78,0xe0,0x00,0x01,0x01,0x01]
487 // VI
: buffer_store_dwordx4 v
[1:4], off
, s
[4:7], s1 ; encoding
: [0x00,0x00,0x7c,0xe0,0x00,0x01,0x01,0x01]
489 buffer_store_dwordx4 v
[1:4], off
, ttmp
[4:7], ttmp1
490 // SICI
: buffer_store_dwordx4 v
[1:4], off
, ttmp
[4:7], ttmp1 ; encoding
: [0x00,0x00,0x78,0xe0,0x00,0x01,0x1d,0x71]
491 // VI
: buffer_store_dwordx4 v
[1:4], off
, ttmp
[4:7], ttmp1 ; encoding
: [0x00,0x00,0x7c,0xe0,0x00,0x01,0x1d,0x71]
493 //===----------------------------------------------------------------------===//
494 // Cache invalidation
495 //===----------------------------------------------------------------------===//
498 // SICI
: buffer_wbinvl1 ; encoding
: [0x00,0x00,0xc4,0xe1,0x00,0x00,0x00,0x00]
499 // VI
: buffer_wbinvl1 ; encoding
: [0x00,0x00,0xf8,0xe0,0x00,0x00,0x00,0x00]
502 // SI
: buffer_wbinvl1_sc ; encoding
: [0x00,0x00,0xc0,0xe1,0x00,0x00,0x00,0x00]
503 // NOCI
: error
: instruction
not supported on this GPU
504 // NOVI
: error
: instruction
not supported on this GPU
507 // CI
: buffer_wbinvl1_vol ; encoding
: [0x00,0x00,0xc0,0xe1,0x00,0x00,0x00,0x00]
508 // VI
: buffer_wbinvl1_vol ; encoding
: [0x00,0x00,0xfc,0xe0,0x00,0x00,0x00,0x00]
509 // NOSI
: error
: instruction
not supported on this GPU
511 //===----------------------------------------------------------------------===//
513 //===----------------------------------------------------------------------===//
514 buffer_atomic_inc v1
, v
[2:3], s
[8:11], 56 addr64
515 // SICI
: buffer_atomic_inc v1
, v
[2:3], s
[8:11], 56 addr64 ; encoding
: [0x00,0x80,0xf0,0xe0,0x02,0x01,0x02,0xb8]
516 // NOVI
: error
: instruction
not supported on this GPU
518 buffer_atomic_inc v1
, v
[2:3], s
[8:11], s4 addr64
519 // SICI
: buffer_atomic_inc v1
, v
[2:3], s
[8:11], s4 addr64 ; encoding
: [0x00,0x80,0xf0,0xe0,0x02,0x01,0x02,0x04]
520 // NOVI
: error
: instruction
not supported on this GPU
522 buffer_atomic_inc v1
, v
[2:3], s
[8:11], 56 addr64 slc
523 // SICI
: buffer_atomic_inc v1
, v
[2:3], s
[8:11], 56 addr64 slc ; encoding
: [0x00,0x80,0xf0,0xe0,0x02,0x01,0x42,0xb8]
524 // NOVI
: error
: instruction
not supported on this GPU
526 buffer_atomic_inc v1
, v
[2:3], s
[8:11], 56 addr64 offset
:4
527 // SICI
: buffer_atomic_inc v1
, v
[2:3], s
[8:11], 56 addr64 offset
:4 ; encoding
: [0x04,0x80,0xf0,0xe0,0x02,0x01,0x02,0xb8]
528 // NOVI
: error
: instruction
not supported on this GPU
530 buffer_atomic_inc v1
, v
[2:3], s
[8:11], 56 addr64 offset
:4 slc
531 // SICI
: buffer_atomic_inc v1
, v
[2:3], s
[8:11], 56 addr64 offset
:4 slc ; encoding
: [0x04,0x80,0xf0,0xe0,0x02,0x01,0x42,0xb8]
532 // NOVI
: error
: instruction
not supported on this GPU
534 buffer_atomic_inc v1
, off
, s
[8:11], 56
535 // SICI
: buffer_atomic_inc v1
, off
, s
[8:11], 56 ; encoding
: [0x00,0x00,0xf0,0xe0,0x00,0x01,0x02,0xb8]
536 // VI
: buffer_atomic_inc v1
, off
, s
[8:11], 56 ; encoding
: [0x00,0x00,0x2c,0xe1,0x00,0x01,0x02,0xb8]
538 buffer_atomic_inc v1
, off
, s
[8:11], 56 slc
539 // SICI
: buffer_atomic_inc v1
, off
, s
[8:11], 56 slc ; encoding
: [0x00,0x00,0xf0,0xe0,0x00,0x01,0x42,0xb8]
540 // VI
: buffer_atomic_inc v1
, off
, s
[8:11], 56 slc ; encoding
: [0x00,0x00,0x2e,0xe1,0x00,0x01,0x02,0xb8]
542 buffer_atomic_inc v1
, off
, s
[8:11], s4 slc
543 // SICI
: buffer_atomic_inc v1
, off
, s
[8:11], s4 slc ; encoding
: [0x00,0x00,0xf0,0xe0,0x00,0x01,0x42,0x04]
544 // VI
: buffer_atomic_inc v1
, off
, s
[8:11], s4 slc ; encoding
: [0x00,0x00,0x2e,0xe1,0x00,0x01,0x02,0x04]
546 buffer_atomic_inc v1
, off
, s
[8:11], 56 offset
:4
547 // SICI
: buffer_atomic_inc v1
, off
, s
[8:11], 56 offset
:4 ; encoding
: [0x04,0x00,0xf0,0xe0,0x00,0x01,0x02,0xb8]
548 // VI
: buffer_atomic_inc v1
, off
, s
[8:11], 56 offset
:4 ; encoding
: [0x04,0x00,0x2c,0xe1,0x00,0x01,0x02,0xb8]
550 buffer_atomic_inc v1
, off
, s
[8:11], 56 offset
:4 slc
551 // SICI
: buffer_atomic_inc v1
, off
, s
[8:11], 56 offset
:4 slc ; encoding
: [0x04,0x00,0xf0,0xe0,0x00,0x01,0x42,0xb8]
552 // VI
: buffer_atomic_inc v1
, off
, s
[8:11], 56 offset
:4 slc ; encoding
: [0x04,0x00,0x2e,0xe1,0x00,0x01,0x02,0xb8]
554 buffer_atomic_inc v1
, v2
, s
[8:11], 56 offen
555 // SICI
: buffer_atomic_inc v1
, v2
, s
[8:11], 56 offen ; encoding
: [0x00,0x10,0xf0,0xe0,0x02,0x01,0x02,0xb8]
556 // VI
: buffer_atomic_inc v1
, v2
, s
[8:11], 56 offen ; encoding
: [0x00,0x10,0x2c,0xe1,0x02,0x01,0x02,0xb8]
558 buffer_atomic_inc v1
, v2
, s
[8:11], 56 offen slc
559 // SICI
: buffer_atomic_inc v1
, v2
, s
[8:11], 56 offen slc ; encoding
: [0x00,0x10,0xf0,0xe0,0x02,0x01,0x42,0xb8]
560 // VI
: buffer_atomic_inc v1
, v2
, s
[8:11], 56 offen slc ; encoding
: [0x00,0x10,0x2e,0xe1,0x02,0x01,0x02,0xb8]
562 buffer_atomic_inc v1
, v2
, s
[8:11], 56 offen offset
:4
563 // SICI
: buffer_atomic_inc v1
, v2
, s
[8:11], 56 offen offset
:4 ; encoding
: [0x04,0x10,0xf0,0xe0,0x02,0x01,0x02,0xb8]
564 // VI
: buffer_atomic_inc v1
, v2
, s
[8:11], 56 offen offset
:4 ; encoding
: [0x04,0x10,0x2c,0xe1,0x02,0x01,0x02,0xb8]
566 buffer_atomic_inc v1
, v2
, s
[8:11], s4 offen offset
:4
567 // SICI
: buffer_atomic_inc v1
, v2
, s
[8:11], s4 offen offset
:4 ; encoding
: [0x04,0x10,0xf0,0xe0,0x02,0x01,0x02,0x04]
568 // VI
: buffer_atomic_inc v1
, v2
, s
[8:11], s4 offen offset
:4 ; encoding
: [0x04,0x10,0x2c,0xe1,0x02,0x01,0x02,0x04]
570 buffer_atomic_inc v1
, v2
, s
[8:11], 56 offen offset
:4 slc
571 // SICI
: buffer_atomic_inc v1
, v2
, s
[8:11], 56 offen offset
:4 slc ; encoding
: [0x04,0x10,0xf0,0xe0,0x02,0x01,0x42,0xb8]
572 // VI
: buffer_atomic_inc v1
, v2
, s
[8:11], 56 offen offset
:4 slc ; encoding
: [0x04,0x10,0x2e,0xe1,0x02,0x01,0x02,0xb8]
574 buffer_atomic_inc v1
, v2
, s
[8:11], 56 idxen
575 // SICI
: buffer_atomic_inc v1
, v2
, s
[8:11], 56 idxen ; encoding
: [0x00,0x20,0xf0,0xe0,0x02,0x01,0x02,0xb8]
576 // VI
: buffer_atomic_inc v1
, v2
, s
[8:11], 56 idxen ; encoding
: [0x00,0x20,0x2c,0xe1,0x02,0x01,0x02,0xb8]
578 buffer_atomic_inc v1
, v2
, s
[8:11], 56 idxen slc
579 // SICI
: buffer_atomic_inc v1
, v2
, s
[8:11], 56 idxen slc ; encoding
: [0x00,0x20,0xf0,0xe0,0x02,0x01,0x42,0xb8]
580 // VI
: buffer_atomic_inc v1
, v2
, s
[8:11], 56 idxen slc ; encoding
: [0x00,0x20,0x2e,0xe1,0x02,0x01,0x02,0xb8]
582 buffer_atomic_inc v1
, v2
, s
[8:11], 56 idxen offset
:4
583 // SICI
: buffer_atomic_inc v1
, v2
, s
[8:11], 56 idxen offset
:4 ; encoding
: [0x04,0x20,0xf0,0xe0,0x02,0x01,0x02,0xb8]
584 // VI
: buffer_atomic_inc v1
, v2
, s
[8:11], 56 idxen offset
:4 ; encoding
: [0x04,0x20,0x2c,0xe1,0x02,0x01,0x02,0xb8]
586 buffer_atomic_inc v1
, v2
, s
[8:11], 56 idxen offset
:4 slc
587 // SICI
: buffer_atomic_inc v1
, v2
, s
[8:11], 56 idxen offset
:4 slc ; encoding
: [0x04,0x20,0xf0,0xe0,0x02,0x01,0x42,0xb8]
588 // VI
: buffer_atomic_inc v1
, v2
, s
[8:11], 56 idxen offset
:4 slc ; encoding
: [0x04,0x20,0x2e,0xe1,0x02,0x01,0x02,0xb8]
590 buffer_atomic_inc v1
, v2
, s
[8:11], s4 idxen offset
:4 slc
591 // SICI
: buffer_atomic_inc v1
, v2
, s
[8:11], s4 idxen offset
:4 slc ; encoding
: [0x04,0x20,0xf0,0xe0,0x02,0x01,0x42,0x04]
592 // VI
: buffer_atomic_inc v1
, v2
, s
[8:11], s4 idxen offset
:4 slc ; encoding
: [0x04,0x20,0x2e,0xe1,0x02,0x01,0x02,0x04]
594 buffer_atomic_inc v1
, v
[2:3], s
[8:11], 56 idxen offen
595 // SICI
: buffer_atomic_inc v1
, v
[2:3], s
[8:11], 56 idxen offen ; encoding
: [0x00,0x30,0xf0,0xe0,0x02,0x01,0x02,0xb8]
596 // VI
: buffer_atomic_inc v1
, v
[2:3], s
[8:11], 56 idxen offen ; encoding
: [0x00,0x30,0x2c,0xe1,0x02,0x01,0x02,0xb8]
598 buffer_atomic_inc v1
, v
[2:3], s
[8:11], s4 idxen offen
599 // SICI
: buffer_atomic_inc v1
, v
[2:3], s
[8:11], s4 idxen offen ; encoding
: [0x00,0x30,0xf0,0xe0,0x02,0x01,0x02,0x04]
600 // VI
: buffer_atomic_inc v1
, v
[2:3], s
[8:11], s4 idxen offen ; encoding
: [0x00,0x30,0x2c,0xe1,0x02,0x01,0x02,0x04]
602 buffer_atomic_inc v1
, v
[2:3], s
[8:11], 56 idxen offen slc
603 // SICI
: buffer_atomic_inc v1
, v
[2:3], s
[8:11], 56 idxen offen slc ; encoding
: [0x00,0x30,0xf0,0xe0,0x02,0x01,0x42,0xb8]
604 // VI
: buffer_atomic_inc v1
, v
[2:3], s
[8:11], 56 idxen offen slc ; encoding
: [0x00,0x30,0x2e,0xe1,0x02,0x01,0x02,0xb8]
606 buffer_atomic_inc v1
, v
[2:3], s
[8:11], 56 idxen offen offset
:4
607 // SICI
: buffer_atomic_inc v1
, v
[2:3], s
[8:11], 56 idxen offen offset
:4 ; encoding
: [0x04,0x30,0xf0,0xe0,0x02,0x01,0x02,0xb8]
608 // VI
: buffer_atomic_inc v1
, v
[2:3], s
[8:11], 56 idxen offen offset
:4 ; encoding
: [0x04,0x30,0x2c,0xe1,0x02,0x01,0x02,0xb8]
610 buffer_atomic_inc v1
, v
[2:3], s
[8:11], 56 idxen offen offset
:4 slc
611 // SICI
: buffer_atomic_inc v1
, v
[2:3], s
[8:11], 56 idxen offen offset
:4 slc ; encoding
: [0x04,0x30,0xf0,0xe0,0x02,0x01,0x42,0xb8]
612 // VI
: buffer_atomic_inc v1
, v
[2:3], s
[8:11], 56 idxen offen offset
:4 slc ; encoding
: [0x04,0x30,0x2e,0xe1,0x02,0x01,0x02,0xb8]
614 buffer_atomic_inc v1
, v
[2:3], s
[8:11], 56 addr64 glc
615 // SICI
: buffer_atomic_inc v1
, v
[2:3], s
[8:11], 56 addr64 glc ; encoding
: [0x00,0xc0,0xf0,0xe0,0x02,0x01,0x02,0xb8]
616 // NOVI
: error
: instruction
not supported on this GPU
618 buffer_atomic_inc v1
, v
[2:3], s
[8:11], s4 addr64 glc
619 // SICI
: buffer_atomic_inc v1
, v
[2:3], s
[8:11], s4 addr64 glc ; encoding
: [0x00,0xc0,0xf0,0xe0,0x02,0x01,0x02,0x04]
620 // NOVI
: error
: instruction
not supported on this GPU
622 buffer_atomic_inc v1
, v
[2:3], s
[8:11], 56 addr64 glc slc
623 // SICI
: buffer_atomic_inc v1
, v
[2:3], s
[8:11], 56 addr64 glc slc ; encoding
: [0x00,0xc0,0xf0,0xe0,0x02,0x01,0x42,0xb8]
624 // NOVI
: error
: instruction
not supported on this GPU
626 buffer_atomic_inc v1
, v
[2:3], s
[8:11], 56 addr64 offset
:4 glc
627 // SICI
: buffer_atomic_inc v1
, v
[2:3], s
[8:11], 56 addr64 offset
:4 glc ; encoding
: [0x04,0xc0,0xf0,0xe0,0x02,0x01,0x02,0xb8]
628 // NOVI
: error
: instruction
not supported on this GPU
630 buffer_atomic_inc v1
, v
[2:3], s
[8:11], 56 addr64 offset
:4 glc slc
631 // SICI
: buffer_atomic_inc v1
, v
[2:3], s
[8:11], 56 addr64 offset
:4 glc slc ; encoding
: [0x04,0xc0,0xf0,0xe0,0x02,0x01,0x42,0xb8]
632 // NOVI
: error
: instruction
not supported on this GPU
634 buffer_atomic_inc v1
, off
, s
[8:11], 56 glc
635 // SICI
: buffer_atomic_inc v1
, off
, s
[8:11], 56 glc ; encoding
: [0x00,0x40,0xf0,0xe0,0x00,0x01,0x02,0xb8]
636 // VI
: buffer_atomic_inc v1
, off
, s
[8:11], 56 glc ; encoding
: [0x00,0x40,0x2c,0xe1,0x00,0x01,0x02,0xb8]
638 buffer_atomic_inc v1
, off
, s
[8:11], 56 glc slc
639 // SICI
: buffer_atomic_inc v1
, off
, s
[8:11], 56 glc slc ; encoding
: [0x00,0x40,0xf0,0xe0,0x00,0x01,0x42,0xb8]
640 // VI
: buffer_atomic_inc v1
, off
, s
[8:11], 56 glc slc ; encoding
: [0x00,0x40,0x2e,0xe1,0x00,0x01,0x02,0xb8]
642 buffer_atomic_inc v1
, off
, s
[8:11], s4 glc slc
643 // SICI
: buffer_atomic_inc v1
, off
, s
[8:11], s4 glc slc ; encoding
: [0x00,0x40,0xf0,0xe0,0x00,0x01,0x42,0x04]
644 // VI
: buffer_atomic_inc v1
, off
, s
[8:11], s4 glc slc ; encoding
: [0x00,0x40,0x2e,0xe1,0x00,0x01,0x02,0x04]
646 buffer_atomic_inc v1
, off
, s
[8:11], 56 offset
:4 glc
647 // SICI
: buffer_atomic_inc v1
, off
, s
[8:11], 56 offset
:4 glc ; encoding
: [0x04,0x40,0xf0,0xe0,0x00,0x01,0x02,0xb8]
648 // VI
: buffer_atomic_inc v1
, off
, s
[8:11], 56 offset
:4 glc ; encoding
: [0x04,0x40,0x2c,0xe1,0x00,0x01,0x02,0xb8]
650 buffer_atomic_inc v1
, off
, s
[8:11], 56 offset
:4 glc slc
651 // SICI
: buffer_atomic_inc v1
, off
, s
[8:11], 56 offset
:4 glc slc ; encoding
: [0x04,0x40,0xf0,0xe0,0x00,0x01,0x42,0xb8]
652 // VI
: buffer_atomic_inc v1
, off
, s
[8:11], 56 offset
:4 glc slc ; encoding
: [0x04,0x40,0x2e,0xe1,0x00,0x01,0x02,0xb8]
654 buffer_atomic_inc v1
, v2
, s
[8:11], 56 offen glc
655 // SICI
: buffer_atomic_inc v1
, v2
, s
[8:11], 56 offen glc ; encoding
: [0x00,0x50,0xf0,0xe0,0x02,0x01,0x02,0xb8]
656 // VI
: buffer_atomic_inc v1
, v2
, s
[8:11], 56 offen glc ; encoding
: [0x00,0x50,0x2c,0xe1,0x02,0x01,0x02,0xb8]
658 buffer_atomic_inc v1
, v2
, s
[8:11], 56 offen glc slc
659 // SICI
: buffer_atomic_inc v1
, v2
, s
[8:11], 56 offen glc slc ; encoding
: [0x00,0x50,0xf0,0xe0,0x02,0x01,0x42,0xb8]
660 // VI
: buffer_atomic_inc v1
, v2
, s
[8:11], 56 offen glc slc ; encoding
: [0x00,0x50,0x2e,0xe1,0x02,0x01,0x02,0xb8]
662 buffer_atomic_inc v1
, v2
, s
[8:11], 56 offen offset
:4 glc
663 // SICI
: buffer_atomic_inc v1
, v2
, s
[8:11], 56 offen offset
:4 glc ; encoding
: [0x04,0x50,0xf0,0xe0,0x02,0x01,0x02,0xb8]
664 // VI
: buffer_atomic_inc v1
, v2
, s
[8:11], 56 offen offset
:4 glc ; encoding
: [0x04,0x50,0x2c,0xe1,0x02,0x01,0x02,0xb8]
666 buffer_atomic_inc v1
, v2
, s
[8:11], s4 offen offset
:4 glc
667 // SICI
: buffer_atomic_inc v1
, v2
, s
[8:11], s4 offen offset
:4 glc ; encoding
: [0x04,0x50,0xf0,0xe0,0x02,0x01,0x02,0x04]
668 // VI
: buffer_atomic_inc v1
, v2
, s
[8:11], s4 offen offset
:4 glc ; encoding
: [0x04,0x50,0x2c,0xe1,0x02,0x01,0x02,0x04]
670 buffer_atomic_inc v1
, v2
, s
[8:11], 56 offen offset
:4 glc slc
671 // SICI
: buffer_atomic_inc v1
, v2
, s
[8:11], 56 offen offset
:4 glc slc ; encoding
: [0x04,0x50,0xf0,0xe0,0x02,0x01,0x42,0xb8]
672 // VI
: buffer_atomic_inc v1
, v2
, s
[8:11], 56 offen offset
:4 glc slc ; encoding
: [0x04,0x50,0x2e,0xe1,0x02,0x01,0x02,0xb8]
674 buffer_atomic_inc v1
, v2
, s
[8:11], 56 idxen glc
675 // SICI
: buffer_atomic_inc v1
, v2
, s
[8:11], 56 idxen glc ; encoding
: [0x00,0x60,0xf0,0xe0,0x02,0x01,0x02,0xb8]
676 // VI
: buffer_atomic_inc v1
, v2
, s
[8:11], 56 idxen glc ; encoding
: [0x00,0x60,0x2c,0xe1,0x02,0x01,0x02,0xb8]
678 buffer_atomic_inc v1
, v2
, s
[8:11], 56 idxen glc slc
679 // SICI
: buffer_atomic_inc v1
, v2
, s
[8:11], 56 idxen glc slc ; encoding
: [0x00,0x60,0xf0,0xe0,0x02,0x01,0x42,0xb8]
680 // VI
: buffer_atomic_inc v1
, v2
, s
[8:11], 56 idxen glc slc ; encoding
: [0x00,0x60,0x2e,0xe1,0x02,0x01,0x02,0xb8]
682 buffer_atomic_inc v1
, v2
, s
[8:11], 56 idxen offset
:4 glc
683 // SICI
: buffer_atomic_inc v1
, v2
, s
[8:11], 56 idxen offset
:4 glc ; encoding
: [0x04,0x60,0xf0,0xe0,0x02,0x01,0x02,0xb8]
684 // VI
: buffer_atomic_inc v1
, v2
, s
[8:11], 56 idxen offset
:4 glc ; encoding
: [0x04,0x60,0x2c,0xe1,0x02,0x01,0x02,0xb8]
686 buffer_atomic_inc v1
, v2
, s
[8:11], 56 idxen offset
:4 glc slc
687 // SICI
: buffer_atomic_inc v1
, v2
, s
[8:11], 56 idxen offset
:4 glc slc ; encoding
: [0x04,0x60,0xf0,0xe0,0x02,0x01,0x42,0xb8]
688 // VI
: buffer_atomic_inc v1
, v2
, s
[8:11], 56 idxen offset
:4 glc slc ; encoding
: [0x04,0x60,0x2e,0xe1,0x02,0x01,0x02,0xb8]
690 buffer_atomic_inc v1
, v2
, s
[8:11], s4 idxen offset
:4 glc slc
691 // SICI
: buffer_atomic_inc v1
, v2
, s
[8:11], s4 idxen offset
:4 glc slc ; encoding
: [0x04,0x60,0xf0,0xe0,0x02,0x01,0x42,0x04]
692 // VI
: buffer_atomic_inc v1
, v2
, s
[8:11], s4 idxen offset
:4 glc slc ; encoding
: [0x04,0x60,0x2e,0xe1,0x02,0x01,0x02,0x04]
694 buffer_atomic_inc v1
, v
[2:3], s
[8:11], 56 idxen offen glc
695 // SICI
: buffer_atomic_inc v1
, v
[2:3], s
[8:11], 56 idxen offen glc ; encoding
: [0x00,0x70,0xf0,0xe0,0x02,0x01,0x02,0xb8]
696 // VI
: buffer_atomic_inc v1
, v
[2:3], s
[8:11], 56 idxen offen glc ; encoding
: [0x00,0x70,0x2c,0xe1,0x02,0x01,0x02,0xb8]
698 buffer_atomic_inc v1
, v
[2:3], s
[8:11], s4 idxen offen glc
699 // SICI
: buffer_atomic_inc v1
, v
[2:3], s
[8:11], s4 idxen offen glc ; encoding
: [0x00,0x70,0xf0,0xe0,0x02,0x01,0x02,0x04]
700 // VI
: buffer_atomic_inc v1
, v
[2:3], s
[8:11], s4 idxen offen glc ; encoding
: [0x00,0x70,0x2c,0xe1,0x02,0x01,0x02,0x04]
702 buffer_atomic_inc v1
, v
[2:3], s
[8:11], 56 idxen offen glc slc
703 // SICI
: buffer_atomic_inc v1
, v
[2:3], s
[8:11], 56 idxen offen glc slc ; encoding
: [0x00,0x70,0xf0,0xe0,0x02,0x01,0x42,0xb8]
704 // VI
: buffer_atomic_inc v1
, v
[2:3], s
[8:11], 56 idxen offen glc slc ; encoding
: [0x00,0x70,0x2e,0xe1,0x02,0x01,0x02,0xb8]
706 buffer_atomic_inc v1
, v
[2:3], s
[8:11], 56 idxen offen offset
:4 glc
707 // SICI
: buffer_atomic_inc v1
, v
[2:3], s
[8:11], 56 idxen offen offset
:4 glc ; encoding
: [0x04,0x70,0xf0,0xe0,0x02,0x01,0x02,0xb8]
708 // VI
: buffer_atomic_inc v1
, v
[2:3], s
[8:11], 56 idxen offen offset
:4 glc ; encoding
: [0x04,0x70,0x2c,0xe1,0x02,0x01,0x02,0xb8]
710 buffer_atomic_inc v1
, v
[2:3], s
[8:11], 56 idxen offen offset
:4 glc slc
711 // SICI
: buffer_atomic_inc v1
, v
[2:3], s
[8:11], 56 idxen offen offset
:4 glc slc ; encoding
: [0x04,0x70,0xf0,0xe0,0x02,0x01,0x42,0xb8]
712 // VI
: buffer_atomic_inc v1
, v
[2:3], s
[8:11], 56 idxen offen offset
:4 glc slc ; encoding
: [0x04,0x70,0x2e,0xe1,0x02,0x01,0x02,0xb8]
714 buffer_atomic_add v5
, off
, s
[8:11], 0.5 offset
:4095 glc
715 // SICI
: buffer_atomic_add v5
, off
, s
[8:11], 0.5 offset
:4095 glc ; encoding
: [0xff,0x4f,0xc8,0xe0,0x00,0x05,0x02,0xf0]
716 // VI
: buffer_atomic_add v5
, off
, s
[8:11], 0.5 offset
:4095 glc ; encoding
: [0xff,0x4f,0x08,0xe1,0x00,0x05,0x02,0xf0]
718 buffer_atomic_add v5
, off
, s
[8:11], 0.15915494 offset
:4095 glc
719 // NOSICI
: error
: invalid operand for instruction
720 // VI
: buffer_atomic_add v5
, off
, s
[8:11], 0.15915494 offset
:4095 glc ; encoding
: [0xff,0x4f,0x08,0xe1,0x00,0x05,0x02,0xf8]
722 buffer_atomic_fcmpswap v
[0:1], off
, s
[0:3], s0 offset
:4095
723 // SICI
: buffer_atomic_fcmpswap v
[0:1], off
, s
[0:3], s0 offset
:4095 ; encoding
: [0xff,0x0f,0xf8,0xe0,0x00,0x00,0x00,0x00]
724 // NOVI
: error
: not a valid operand.
726 buffer_atomic_fcmpswap v
[0:1], v
[0:1], s
[0:3], s0 addr64 offset
:4095
727 // SICI
: buffer_atomic_fcmpswap v
[0:1], v
[0:1], s
[0:3], s0 addr64 offset
:4095 ; encoding
: [0xff,0x8f,0xf8,0xe0,0x00,0x00,0x00,0x00]
728 // NOVI
: error
: not a valid operand.
730 buffer_atomic_fcmpswap_x2 v
[0:3], off
, s
[0:3], s0 offset
:4095
731 // SICI
: buffer_atomic_fcmpswap_x2 v
[0:3], off
, s
[0:3], s0 offset
:4095 ; encoding
: [0xff,0x0f,0x78,0xe1,0x00,0x00,0x00,0x00]
732 // NOVI
: error
: not a valid operand.
734 buffer_atomic_fcmpswap_x2 v
[0:3], v0
, s
[0:3], s0 idxen offset
:4095
735 // SICI
: buffer_atomic_fcmpswap_x2 v
[0:3], v0
, s
[0:3], s0 idxen offset
:4095 ; encoding
: [0xff,0x2f,0x78,0xe1,0x00,0x00,0x00,0x00]
736 // NOVI
: error
: not a valid operand.
738 buffer_atomic_fmax v1
, off
, s
[0:3], s0 offset
:4095
739 // SICI
: buffer_atomic_fmax v1
, off
, s
[0:3], s0 offset
:4095 ; encoding
: [0xff,0x0f,0x00,0xe1,0x00,0x01,0x00,0x00]
740 // NOVI
: error
: not a valid operand.
742 buffer_atomic_fmax v0
, off
, s
[0:3], s0 offset
:7
743 // SICI
: buffer_atomic_fmax v0
, off
, s
[0:3], s0 offset
:7 ; encoding
: [0x07,0x00,0x00,0xe1,0x00,0x00,0x00,0x00]
744 // NOVI
: error
: not a valid operand.
746 buffer_atomic_fmax v0
, off
, s
[0:3], s0 offset
:4095 glc
747 // SICI
: buffer_atomic_fmax v0
, off
, s
[0:3], s0 offset
:4095 glc ; encoding
: [0xff,0x4f,0x00,0xe1,0x00,0x00,0x00,0x00]
748 // NOVI
: error
: not a valid operand.
750 buffer_atomic_fmax_x2 v
[5:6], off
, s
[0:3], s0 offset
:4095
751 // SICI
: buffer_atomic_fmax_x2 v
[5:6], off
, s
[0:3], s0 offset
:4095 ; encoding
: [0xff,0x0f,0x80,0xe1,0x00,0x05,0x00,0x00]
752 // NOVI
: error
: not a valid operand.
754 buffer_atomic_fmax_x2 v
[0:1], v0
, s
[0:3], s0 idxen offset
:4095
755 // SICI
: buffer_atomic_fmax_x2 v
[0:1], v0
, s
[0:3], s0 idxen offset
:4095 ; encoding
: [0xff,0x2f,0x80,0xe1,0x00,0x00,0x00,0x00]
756 // NOVI
: error
: not a valid operand.
758 buffer_atomic_fmin v0
, v
[0:1], s
[0:3], s0 addr64 offset
:4095
759 // SICI
: buffer_atomic_fmin v0
, v
[0:1], s
[0:3], s0 addr64 offset
:4095 ; encoding
: [0xff,0x8f,0xfc,0xe0,0x00,0x00,0x00,0x00]
760 // NOVI
: error
: not a valid operand.
762 buffer_atomic_fmin v0
, off
, s
[0:3], s0
763 // SICI
: buffer_atomic_fmin v0
, off
, s
[0:3], s0 ; encoding
: [0x00,0x00,0xfc,0xe0,0x00,0x00,0x00,0x00]
764 // NOVI
: error
: instruction
not supported on this GPU
766 buffer_atomic_fmin v0
, off
, s
[0:3], s0 offset
:0
767 // SICI
: buffer_atomic_fmin v0
, off
, s
[0:3], s0 ; encoding
: [0x00,0x00,0xfc,0xe0,0x00,0x00,0x00,0x00]
768 // NOVI
: error
: not a valid operand.
770 buffer_atomic_fmin_x2 v
[0:1], off
, s
[0:3], s0 offset
:4095 slc
771 // SICI
: buffer_atomic_fmin_x2 v
[0:1], off
, s
[0:3], s0 offset
:4095 slc ; encoding
: [0xff,0x0f,0x7c,0xe1,0x00,0x00,0x40,0x00]
772 // NOVI
: error
: not a valid operand.
774 buffer_atomic_fmin_x2 v
[0:1], v0
, s
[0:3], s0 idxen offset
:4095
775 // SICI
: buffer_atomic_fmin_x2 v
[0:1], v0
, s
[0:3], s0 idxen offset
:4095 ; encoding
: [0xff,0x2f,0x7c,0xe1,0x00,0x00,0x00,0x00]
776 // NOVI
: error
: not a valid operand.
778 //===----------------------------------------------------------------------===//
780 //===----------------------------------------------------------------------===//
782 buffer_load_sbyte v5
, off
, s
[8:11], s3 lds
783 // SICI
: buffer_load_sbyte v5
, off
, s
[8:11], s3 lds ; encoding
: [0x00,0x00,0x25,0xe0,0x00,0x05,0x02,0x03]
784 // VI
: buffer_load_sbyte v5
, off
, s
[8:11], s3 lds ; encoding
: [0x00,0x00,0x45,0xe0,0x00,0x05,0x02,0x03]
786 buffer_load_sbyte v5
, off
, s
[8:11], s3 glc slc lds
787 // SICI
: buffer_load_sbyte v5
, off
, s
[8:11], s3 glc slc lds ; encoding
: [0x00,0x40,0x25,0xe0,0x00,0x05,0x42,0x03]
788 // VI
: buffer_load_sbyte v5
, off
, s
[8:11], s3 glc slc lds ; encoding
: [0x00,0x40,0x47,0xe0,0x00,0x05,0x02,0x03]
790 buffer_load_sbyte v5
, off
, s
[8:11], s3 offset
:4095 glc slc lds
791 // SICI
: buffer_load_sbyte v5
, off
, s
[8:11], s3 offset
:4095 glc slc lds ; encoding
: [0xff,0x4f,0x25,0xe0,0x00,0x05,0x42,0x03]
792 // VI
: buffer_load_sbyte v5
, off
, s
[8:11], s3 offset
:4095 glc slc lds ; encoding
: [0xff,0x4f,0x47,0xe0,0x00,0x05,0x02,0x03]
794 buffer_load_sbyte v5
, v0
, s
[8:11], s3 offen offset
:4095 slc lds
795 // SICI
: buffer_load_sbyte v5
, v0
, s
[8:11], s3 offen offset
:4095 slc lds ; encoding
: [0xff,0x1f,0x25,0xe0,0x00,0x05,0x42,0x03]
796 // VI
: buffer_load_sbyte v5
, v0
, s
[8:11], s3 offen offset
:4095 slc lds ; encoding
: [0xff,0x1f,0x47,0xe0,0x00,0x05,0x02,0x03]
798 buffer_load_sbyte v5
, v0
, s
[8:11], s3 offen lds
799 // SICI
: buffer_load_sbyte v5
, v0
, s
[8:11], s3 offen lds ; encoding
: [0x00,0x10,0x25,0xe0,0x00,0x05,0x02,0x03]
800 // VI
: buffer_load_sbyte v5
, v0
, s
[8:11], s3 offen lds ; encoding
: [0x00,0x10,0x45,0xe0,0x00,0x05,0x02,0x03]
802 buffer_load_sbyte v5
, v0
, s
[8:11], s3 idxen glc slc lds
803 // SICI
: buffer_load_sbyte v5
, v0
, s
[8:11], s3 idxen glc slc lds ; encoding
: [0x00,0x60,0x25,0xe0,0x00,0x05,0x42,0x03]
804 // VI
: buffer_load_sbyte v5
, v0
, s
[8:11], s3 idxen glc slc lds ; encoding
: [0x00,0x60,0x47,0xe0,0x00,0x05,0x02,0x03]
806 buffer_load_sbyte v5
, v
[0:1], s
[8:11], s3 idxen offen offset
:4095 lds
807 // SICI
: buffer_load_sbyte v5
, v
[0:1], s
[8:11], s3 idxen offen offset
:4095 lds ; encoding
: [0xff,0x3f,0x25,0xe0,0x00,0x05,0x02,0x03]
808 // VI
: buffer_load_sbyte v5
, v
[0:1], s
[8:11], s3 idxen offen offset
:4095 lds ; encoding
: [0xff,0x3f,0x45,0xe0,0x00,0x05,0x02,0x03]
810 buffer_load_sbyte v5
, v
[0:1], s
[8:11], s3 idxen offen offset
:4095 glc slc lds
811 // SICI
: buffer_load_sbyte v5
, v
[0:1], s
[8:11], s3 idxen offen offset
:4095 glc slc lds ; encoding
: [0xff,0x7f,0x25,0xe0,0x00,0x05,0x42,0x03]
812 // VI
: buffer_load_sbyte v5
, v
[0:1], s
[8:11], s3 idxen offen offset
:4095 glc slc lds ; encoding
: [0xff,0x7f,0x47,0xe0,0x00,0x05,0x02,0x03]
814 buffer_load_ubyte v5
, off
, s
[8:11], s3 offset
:4095 lds
815 // SICI
: buffer_load_ubyte v5
, off
, s
[8:11], s3 offset
:4095 lds ; encoding
: [0xff,0x0f,0x21,0xe0,0x00,0x05,0x02,0x03]
816 // VI
: buffer_load_ubyte v5
, off
, s
[8:11], s3 offset
:4095 lds ; encoding
: [0xff,0x0f,0x41,0xe0,0x00,0x05,0x02,0x03]
818 buffer_load_sshort v5
, v0
, s
[8:11], s3 offen offset
:4095 glc slc lds
819 // SICI
: buffer_load_sshort v5
, v0
, s
[8:11], s3 offen offset
:4095 glc slc lds ; encoding
: [0xff,0x5f,0x2d,0xe0,0x00,0x05,0x42,0x03]
820 // VI
: buffer_load_sshort v5
, v0
, s
[8:11], s3 offen offset
:4095 glc slc lds ; encoding
: [0xff,0x5f,0x4f,0xe0,0x00,0x05,0x02,0x03]
822 buffer_load_ushort v5
, v0
, s
[8:11], s3 idxen offset
:4095 glc slc lds
823 // SICI
: buffer_load_ushort v5
, v0
, s
[8:11], s3 idxen offset
:4095 glc slc lds ; encoding
: [0xff,0x6f,0x29,0xe0,0x00,0x05,0x42,0x03]
824 // VI
: buffer_load_ushort v5
, v0
, s
[8:11], s3 idxen offset
:4095 glc slc lds ; encoding
: [0xff,0x6f,0x4b,0xe0,0x00,0x05,0x02,0x03]
826 buffer_load_dword v5
, v0
, s
[8:11], s101 offen lds
827 // SICI
: buffer_load_dword v5
, v0
, s
[8:11], s101 offen lds ; encoding
: [0x00,0x10,0x31,0xe0,0x00,0x05,0x02,0x65]
828 // VI
: buffer_load_dword v5
, v0
, s
[8:11], s101 offen lds ; encoding
: [0x00,0x10,0x51,0xe0,0x00,0x05,0x02,0x65]
830 buffer_load_format_x v5
, v
[0:1], s
[8:11], s3 idxen offen offset
:4095 glc slc lds
831 // SICI
: buffer_load_format_x v5
, v
[0:1], s
[8:11], s3 idxen offen offset
:4095 glc slc lds ; encoding
: [0xff,0x7f,0x01,0xe0,0x00,0x05,0x42,0x03]
832 // VI
: buffer_load_format_x v5
, v
[0:1], s
[8:11], s3 idxen offen offset
:4095 glc slc lds ; encoding
: [0xff,0x7f,0x03,0xe0,0x00,0x05,0x02,0x03]
834 buffer_store_lds_dword s
[4:7], s0 lds
835 // NOSICI
: error
: instruction
not supported on this GPU
836 // VI
: buffer_store_lds_dword s
[4:7], s0 lds ; encoding
: [0x00,0x00,0xf5,0xe0,0x00,0x00,0x01,0x00]
838 buffer_store_lds_dword s
[4:7], s0 offset
:4095 lds
839 // NOSICI
: error
: not a valid operand.
840 // VI
: buffer_store_lds_dword s
[4:7], s0 offset
:4095 lds ; encoding
: [0xff,0x0f,0xf5,0xe0,0x00,0x00,0x01,0x00]
842 buffer_store_lds_dword s
[4:7], s8 offset
:4 lds glc slc
843 // NOSICI
: error
: not a valid operand.
844 // VI
: buffer_store_lds_dword s
[4:7], s8 offset
:4 lds glc slc ; encoding
: [0x04,0x40,0xf7,0xe0,0x00,0x00,0x01,0x08]
846 buffer_load_dwordx2 v
[1:2], off
, s
[4:7], s1 lds
847 // NOSICI
: error
: instruction
not supported on this GPU
848 // VI
: buffer_load_dwordx2 v
[1:2], off
, s
[4:7], s1 lds ; encoding
: [0x00,0x00,0x55,0xe0,0x00,0x01,0x01,0x01]
850 buffer_load_dwordx3 v
[0:2], off
, s
[4:7], s0 offset
:4095 lds
851 // NOSICI
: error
: instruction
not supported on this GPU
852 // VI
: buffer_load_dwordx3 v
[0:2], off
, s
[4:7], s0 offset
:4095 lds ; encoding
: [0xff,0x0f,0x59,0xe0,0x00,0x00,0x01,0x00]
854 buffer_load_dwordx4 v
[1:4], off
, s
[4:7], s1 lds
855 // NOSICI
: error
: instruction
not supported on this GPU
856 // VI
: buffer_load_dwordx4 v
[1:4], off
, s
[4:7], s1 lds ; encoding
: [0x00,0x00,0x5d,0xe0,0x00,0x01,0x01,0x01]
858 //===----------------------------------------------------------------------===//
860 //===----------------------------------------------------------------------===//
862 buffer_load_sbyte v5
, off
, s
[8:11], s3 lds tfe
863 // NOSICIVI
: error
: invalid operand for instruction
865 buffer_load_dword v5
, off
, s
[8:11], s3 tfe lds
866 // NOSICIVI
: error
: invalid operand for instruction
868 buffer_store_lds_dword s
[4:7], s8 offset
:4 lds tfe
869 // NOSICI
: error
: not a valid operand.
870 // NOVI
: error
: invalid operand for instruction
872 buffer_store_lds_dword s
[4:7], s8 offset
:4 tfe lds
873 // NOSICI
: error
: not a valid operand.
874 // NOVI
: error
: invalid operand for instruction