1 // RUN
: not llvm-mc
-arch
=amdgcn
-show-encoding
%s | FileCheck
%s
--check-prefix
=SICI
2 // RUN
: not llvm-mc
-arch
=amdgcn
-mcpu
=tahiti
-show-encoding
%s | FileCheck
%s
--check-prefix
=SICI
3 // RUN
: not llvm-mc
-arch
=amdgcn
-mcpu
=bonaire
-show-encoding
%s | FileCheck
%s
--check-prefixes
=SICI
,CI
4 // RUN
: not llvm-mc
-arch
=amdgcn
-mcpu
=tonga
-show-encoding
%s | FileCheck
%s
--check-prefix
=GFX89
5 // RUN
: not llvm-mc
-arch
=amdgcn
-mcpu
=gfx900
-show-encoding
%s | FileCheck
%s
--check-prefixes
=GFX89
,GFX9
7 // RUN
: not llvm-mc
-arch
=amdgcn
%s
2>&1 | FileCheck
%s
--check-prefixes
=NOGCN
,NOSI
,NOSICI
,NOSICIVI
--implicit-check-
not=error
:
8 // RUN
: not llvm-mc
-arch
=amdgcn
-mcpu
=tahiti
%s
2>&1 | FileCheck
%s
--check-prefixes
=NOGCN
,NOSI
,NOSICI
,NOSICIVI
--implicit-check-
not=error
:
9 // RUN
: not llvm-mc
-arch
=amdgcn
-mcpu
=bonaire
%s
2>&1 | FileCheck
%s
--check-prefixes
=NOGCN
,NOSICI
,NOCIVI
,NOSICIVI
--implicit-check-
not=error
:
10 // RUN
: not llvm-mc
-arch
=amdgcn
-mcpu
=tonga
%s
2>&1 | FileCheck
%s
--check-prefixes
=NOGCN
,NOSICIVI
,NOVI
,NOGFX89
--implicit-check-
not=error
:
11 // RUN
: not llvm-mc
-arch
=amdgcn
-mcpu
=gfx900
%s
2>&1 | FileCheck
%s
--check-prefixes
=NOGCN
,NOGFX89
,NOGFX9
--implicit-check-
not=error
:
13 //---------------------------------------------------------------------------//
14 // fp literal
, expected fp operand
15 //---------------------------------------------------------------------------//
17 // SICI
: v_fract_f64_e32 v
[0:1], 0.5 ; encoding
: [0xf0,0x7c,0x00,0x7e]
18 // GFX89
: v_fract_f64_e32 v
[0:1], 0.5 ; encoding
: [0xf0,0x64,0x00,0x7e]
19 v_fract_f64 v
[0:1], 0.5
21 // SICI
: v_sqrt_f64_e32 v
[0:1], -4.0 ; encoding
: [0xf7,0x68,0x00,0x7e]
22 // GFX89
: v_sqrt_f64_e32 v
[0:1], -4.0 ; encoding
: [0xf7,0x50,0x00,0x7e]
23 v_sqrt_f64 v
[0:1], -4.0
25 // SICI
: v_log_clamp_f32_e32 v1
, 0.5 ; encoding
: [0xf0,0x4c,0x02,0x7e]
26 // NOGFX89
: error
: instruction
not supported on this GPU
27 v_log_clamp_f32 v1
, 0.5
29 // SICI
: v_fract_f64_e32 v
[0:1], 0.5 ; encoding
: [0xf0,0x7c,0x00,0x7e]
30 // GFX89
: v_fract_f64_e32 v
[0:1], 0.5 ; encoding
: [0xf0,0x64,0x00,0x7e]
31 v_fract_f64 v
[0:1], 0.5
33 // SICI
: v_trunc_f32_e32 v0
, 0.5 ; encoding
: [0xf0,0x42,0x00,0x7e]
34 // GFX89
: v_trunc_f32_e32 v0
, 0.5 ; encoding
: [0xf0,0x38,0x00,0x7e]
37 // SICI
: v_fract_f64_e32 v
[0:1], -1.0 ; encoding
: [0xf3,0x7c,0x00,0x7e]
38 // GFX89
: v_fract_f64_e32 v
[0:1], -1.0 ; encoding
: [0xf3,0x64,0x00,0x7e]
39 v_fract_f64 v
[0:1], -1.0
41 // SICI
: v_trunc_f32_e32 v0
, -1.0 ; encoding
: [0xf3,0x42,0x00,0x7e]
42 // GFX89
: v_trunc_f32_e32 v0
, -1.0 ; encoding
: [0xf3,0x38,0x00,0x7e]
45 // SICI
: v_fract_f64_e32 v
[0:1], 4.0 ; encoding
: [0xf6,0x7c,0x00,0x7e]
46 // GFX89
: v_fract_f64_e32 v
[0:1], 4.0 ; encoding
: [0xf6,0x64,0x00,0x7e]
47 v_fract_f64 v
[0:1], 4.0
49 // SICI
: v_trunc_f32_e32 v0
, 4.0 ; encoding
: [0xf6,0x42,0x00,0x7e]
50 // GFX89
: v_trunc_f32_e32 v0
, 4.0 ; encoding
: [0xf6,0x38,0x00,0x7e]
53 // SICI
: v_fract_f64_e32 v
[0:1], 0 ; encoding
: [0x80,0x7c,0x00,0x7e]
54 // GFX89
: v_fract_f64_e32 v
[0:1], 0 ; encoding
: [0x80,0x64,0x00,0x7e]
55 v_fract_f64 v
[0:1], 0.0
57 // SICI
: v_trunc_f32_e32 v0
, 0 ; encoding
: [0x80,0x42,0x00,0x7e]
58 // GFX89
: v_trunc_f32_e32 v0
, 0 ; encoding
: [0x80,0x38,0x00,0x7e]
61 // SICI
: v_fract_f64_e32 v
[0:1], 0x3ff80000 ; encoding
: [0xff,0x7c,0x00,0x7e,0x00,0x00,0xf8,0x3f]
62 // GFX89
: v_fract_f64_e32 v
[0:1], 0x3ff80000 ; encoding
: [0xff,0x64,0x00,0x7e,0x00,0x00,0xf8,0x3f]
63 v_fract_f64 v
[0:1], 1.5
65 // SICI
: v_trunc_f32_e32 v0
, 0x3fc00000 ; encoding
: [0xff,0x42,0x00,0x7e,0x00,0x00,0xc0,0x3f]
66 // GFX89
: v_trunc_f32_e32 v0
, 0x3fc00000 ; encoding
: [0xff,0x38,0x00,0x7e,0x00,0x00,0xc0,0x3f]
69 // SICI
: v_fract_f64_e32 v
[0:1], 0xc00921ca ; encoding
: [0xff,0x7c,0x00,0x7e,0xca,0x21,0x09,0xc0]
70 // GFX89
: v_fract_f64_e32 v
[0:1], 0xc00921ca ; encoding
: [0xff,0x64,0x00,0x7e,0xca,0x21,0x09,0xc0]
71 v_fract_f64 v
[0:1], -3.1415
73 // SICI
: v_trunc_f32_e32 v0
, 0xc0490e56 ; encoding
: [0xff,0x42,0x00,0x7e,0x56,0x0e,0x49,0xc0]
74 // GFX89
: v_trunc_f32_e32 v0
, 0xc0490e56 ; encoding
: [0xff,0x38,0x00,0x7e,0x56,0x0e,0x49,0xc0]
75 v_trunc_f32 v0
, -3.1415
77 // SICI
: v_fract_f64_e32 v
[0:1], 0x44b52d02 ; encoding
: [0xff,0x7c,0x00,0x7e,0x02,0x2d,0xb5,0x44]
78 // GFX89
: v_fract_f64_e32 v
[0:1], 0x44b52d02 ; encoding
: [0xff,0x64,0x00,0x7e,0x02,0x2d,0xb5,0x44]
79 v_fract_f64 v
[0:1], 100000000000000000000000.0
81 // SICI
: v_trunc_f32_e32 v0
, 0x65a96816 ; encoding
: [0xff,0x42,0x00,0x7e,0x16,0x68,0xa9,0x65]
82 // GFX89
: v_trunc_f32_e32 v0
, 0x65a96816 ; encoding
: [0xff,0x38,0x00,0x7e,0x16,0x68,0xa9,0x65]
83 v_trunc_f32 v0
, 100000000000000000000000.0
85 // SICI
: v_fract_f64_e32 v
[0:1], 0x416312d0 ; encoding
: [0xff,0x7c,0x00,0x7e,0xd0,0x12,0x63,0x41]
86 // GFX89
: v_fract_f64_e32 v
[0:1], 0x416312d0 ; encoding
: [0xff,0x64,0x00,0x7e,0xd0,0x12,0x63,0x41]
87 v_fract_f64 v
[0:1], 10000000.0
89 // SICI
: v_trunc_f32_e32 v0
, 0x4b189680 ; encoding
: [0xff,0x42,0x00,0x7e,0x80,0x96,0x18,0x4b]
90 // GFX89
: v_trunc_f32_e32 v0
, 0x4b189680 ; encoding
: [0xff,0x38,0x00,0x7e,0x80,0x96,0x18,0x4b]
91 v_trunc_f32 v0
, 10000000.0
93 // SICI
: v_fract_f64_e32 v
[0:1], 0x47efffff ; encoding
: [0xff,0x7c,0x00,0x7e,0xff,0xff,0xef,0x47]
94 // GFX89
: v_fract_f64_e32 v
[0:1], 0x47efffff ; encoding
: [0xff,0x64,0x00,0x7e,0xff,0xff,0xef,0x47]
95 v_fract_f64 v
[0:1], 3.402823e+38
97 // SICI
: v_trunc_f32_e32 v0
, 0x7f7ffffd ; encoding
: [0xff,0x42,0x00,0x7e,0xfd,0xff,0x7f,0x7f]
98 // GFX89
: v_trunc_f32_e32 v0
, 0x7f7ffffd ; encoding
: [0xff,0x38,0x00,0x7e,0xfd,0xff,0x7f,0x7f]
99 v_trunc_f32 v0
, 3.402823e+38
101 // SICI
: v_fract_f64_e32 v
[0:1], 0x381fffff ; encoding
: [0xff,0x7c,0x00,0x7e,0xff,0xff,0x1f,0x38]
102 // GFX89
: v_fract_f64_e32 v
[0:1], 0x381fffff ; encoding
: [0xff,0x64,0x00,0x7e,0xff,0xff,0x1f,0x38]
103 v_fract_f64 v
[0:1], 2.3509886e-38
105 // SICI
: v_trunc_f32_e32 v0
, 0xffffff ; encoding
: [0xff,0x42,0x00,0x7e,0xff,0xff,0xff,0x00]
106 // GFX89
: v_trunc_f32_e32 v0
, 0xffffff ; encoding
: [0xff,0x38,0x00,0x7e,0xff,0xff,0xff,0x00]
107 v_trunc_f32 v0
, 2.3509886e-38
109 // SICI
: v_fract_f64_e32 v
[0:1], 0x3179f623 ; encoding
: [0xff,0x7c,0x00,0x7e,0x23,0xf6,0x79,0x31]
110 // GFX89
: v_fract_f64_e32 v
[0:1], 0x3179f623 ; encoding
: [0xff,0x64,0x00,0x7e,0x23,0xf6,0x79,0x31]
111 v_fract_f64 v
[0:1], 2.3509886e-70
113 // NOSICI
: error
: invalid operand for instruction
114 // NOGFX89
: error
: invalid operand for instruction
115 v_trunc_f32 v0
, 2.3509886e-70
117 //---------------------------------------------------------------------------//
118 // fp literal
, expected int operand
119 //---------------------------------------------------------------------------//
121 // SICI
: s_mov_b64 s
[0:1], 0.5 ; encoding
: [0xf0,0x04,0x80,0xbe]
122 // GFX89
: s_mov_b64 s
[0:1], 0.5 ; encoding
: [0xf0,0x01,0x80,0xbe]
123 s_mov_b64_e32 s
[0:1], 0.5
125 // SICI
: v_and_b32_e32 v0
, 0.5, v1 ; encoding
: [0xf0,0x02,0x00,0x36]
126 // GFX89
: v_and_b32_e32 v0
, 0.5, v1 ; encoding
: [0xf0,0x02,0x00,0x26]
127 v_and_b32_e32 v0
, 0.5, v1
129 // SICI
: v_and_b32_e64 v0
, 0.5, v1 ; encoding
: [0x00,0x00,0x36,0xd2,0xf0,0x02,0x02,0x00]
130 // GFX89
: v_and_b32_e64 v0
, 0.5, v1 ; encoding
: [0x00,0x00,0x13,0xd1,0xf0,0x02,0x02,0x00]
131 v_and_b32_e64 v0
, 0.5, v1
133 // SICI
: s_mov_b64 s
[0:1], -1.0 ; encoding
: [0xf3,0x04,0x80,0xbe]
134 // GFX89
: s_mov_b64 s
[0:1], -1.0 ; encoding
: [0xf3,0x01,0x80,0xbe]
135 s_mov_b64_e32 s
[0:1], -1.0
137 // SICI
: v_and_b32_e32 v0
, -1.0, v1 ; encoding
: [0xf3,0x02,0x00,0x36]
138 // GFX89
: v_and_b32_e32 v0
, -1.0, v1 ; encoding
: [0xf3,0x02,0x00,0x26]
139 v_and_b32_e32 v0
, -1.0, v1
141 // SICI
: v_and_b32_e64 v0
, -1.0, v1 ; encoding
: [0x00,0x00,0x36,0xd2,0xf3,0x02,0x02,0x00]
142 // GFX89
: v_and_b32_e64 v0
, -1.0, v1 ; encoding
: [0x00,0x00,0x13,0xd1,0xf3,0x02,0x02,0x00]
143 v_and_b32_e64 v0
, -1.0, v1
145 // SICI
: s_mov_b64 s
[0:1], 4.0 ; encoding
: [0xf6,0x04,0x80,0xbe]
146 // GFX89
: s_mov_b64 s
[0:1], 4.0 ; encoding
: [0xf6,0x01,0x80,0xbe]
147 s_mov_b64_e32 s
[0:1], 4.0
149 // SICI
: v_and_b32_e32 v0
, 4.0, v1 ; encoding
: [0xf6,0x02,0x00,0x36]
150 // GFX89
: v_and_b32_e32 v0
, 4.0, v1 ; encoding
: [0xf6,0x02,0x00,0x26]
151 v_and_b32_e32 v0
, 4.0, v1
153 // SICI
: v_and_b32_e64 v0
, 4.0, v1 ; encoding
: [0x00,0x00,0x36,0xd2,0xf6,0x02,0x02,0x00]
154 // GFX89
: v_and_b32_e64 v0
, 4.0, v1 ; encoding
: [0x00,0x00,0x13,0xd1,0xf6,0x02,0x02,0x00]
155 v_and_b32_e64 v0
, 4.0, v1
157 // SICI
: s_mov_b64 s
[0:1], 0 ; encoding
: [0x80,0x04,0x80,0xbe]
158 // GFX89
: s_mov_b64 s
[0:1], 0 ; encoding
: [0x80,0x01,0x80,0xbe]
159 s_mov_b64_e32 s
[0:1], 0.0
161 // SICI
: v_and_b32_e32 v0
, 0, v1 ; encoding
: [0x80,0x02,0x00,0x36]
162 // GFX89
: v_and_b32_e32 v0
, 0, v1 ; encoding
: [0x80,0x02,0x00,0x26]
163 v_and_b32_e32 v0
, 0.0, v1
165 // SICI
: v_and_b32_e64 v0
, 0, v1 ; encoding
: [0x00,0x00,0x36,0xd2,0x80,0x02,0x02,0x00]
166 // GFX89
: v_and_b32_e64 v0
, 0, v1 ; encoding
: [0x00,0x00,0x13,0xd1,0x80,0x02,0x02,0x00]
167 v_and_b32_e64 v0
, 0.0, v1
169 // NOSICI
: error
: invalid operand for instruction
170 // NOGFX89
: error
: invalid operand for instruction
171 s_mov_b64_e32 s
[0:1], 1.5
173 // SICI
: v_and_b32_e32 v0
, 0x3fc00000, v1 ; encoding
: [0xff,0x02,0x00,0x36,0x00,0x00,0xc0,0x3f]
174 // GFX89
: v_and_b32_e32 v0
, 0x3fc00000, v1 ; encoding
: [0xff,0x02,0x00,0x26,0x00,0x00,0xc0,0x3f]
175 v_and_b32_e32 v0
, 1.5, v1
177 // NOSICI
: error
: invalid operand for instruction
178 // NOGFX89
: error
: invalid operand for instruction
179 s_mov_b64_e32 s
[0:1], -3.1415
181 // SICI
: v_and_b32_e32 v0
, 0xc0490e56, v1 ; encoding
: [0xff,0x02,0x00,0x36,0x56,0x0e,0x49,0xc0]
182 // GFX89
: v_and_b32_e32 v0
, 0xc0490e56, v1 ; encoding
: [0xff,0x02,0x00,0x26,0x56,0x0e,0x49,0xc0]
183 v_and_b32_e32 v0
, -3.1415, v1
185 // NOSICI
: error
: invalid operand for instruction
186 // NOGFX89
: error
: invalid operand for instruction
187 s_mov_b64_e32 s
[0:1], 100000000000000000000000.0
189 // SICI
: v_and_b32_e32 v0
, 0x65a96816, v1 ; encoding
: [0xff,0x02,0x00,0x36,0x16,0x68,0xa9,0x65]
190 // GFX89
: v_and_b32_e32 v0
, 0x65a96816, v1 ; encoding
: [0xff,0x02,0x00,0x26,0x16,0x68,0xa9,0x65]
191 v_and_b32_e32 v0
, 100000000000000000000000.0, v1
193 // NOSICI
: error
: invalid operand for instruction
194 // NOGFX89
: error
: invalid operand for instruction
195 s_mov_b64_e32 s
[0:1], 10000000.0
197 // SICI
: v_and_b32_e32 v0
, 0x4b189680, v1 ; encoding
: [0xff,0x02,0x00,0x36,0x80,0x96,0x18,0x4b]
198 // GFX89
: v_and_b32_e32 v0
, 0x4b189680, v1 ; encoding
: [0xff,0x02,0x00,0x26,0x80,0x96,0x18,0x4b]
199 v_and_b32_e32 v0
, 10000000.0, v1
201 // NOSICI
: error
: invalid operand for instruction
202 // NOGFX89
: error
: invalid operand for instruction
203 s_mov_b64_e32 s
[0:1], 3.402823e+38
205 // SICI
: v_and_b32_e32 v0
, 0x7f7ffffd, v1 ; encoding
: [0xff,0x02,0x00,0x36,0xfd,0xff,0x7f,0x7f]
206 // GFX89
: v_and_b32_e32 v0
, 0x7f7ffffd, v1 ; encoding
: [0xff,0x02,0x00,0x26,0xfd,0xff,0x7f,0x7f]
207 v_and_b32_e32 v0
, 3.402823e+38, v1
209 // NOSICI
: error
: invalid operand for instruction
210 // NOGFX89
: error
: invalid operand for instruction
211 s_mov_b64_e32 s
[0:1], 2.3509886e-38
213 // SICI
: v_and_b32_e32 v0
, 0xffffff, v1 ; encoding
: [0xff,0x02,0x00,0x36,0xff,0xff,0xff,0x00]
214 // GFX89
: v_and_b32_e32 v0
, 0xffffff, v1 ; encoding
: [0xff,0x02,0x00,0x26,0xff,0xff,0xff,0x00]
215 v_and_b32_e32 v0
, 2.3509886e-38, v1
217 // NOSICI
: error
: invalid operand for instruction
218 // NOGFX89
: error
: invalid operand for instruction
219 s_mov_b64_e32 s
[0:1], 2.3509886e-70
221 // NOSICI
: error
: invalid operand for instruction
222 // NOGFX89
: error
: invalid operand for instruction
223 v_and_b32_e32 v0
, 2.3509886e-70, v1
225 //---------------------------------------------------------------------------//
226 // int literal
, expected fp operand
227 //---------------------------------------------------------------------------//
229 // SICI
: v_trunc_f32_e32 v0
, 0 ; encoding
: [0x80,0x42,0x00,0x7e]
230 // GFX89
: v_trunc_f32_e32 v0
, 0 ; encoding
: [0x80,0x38,0x00,0x7e]
231 v_trunc_f32_e32 v0
, 0
233 // SICI
: v_fract_f64_e32 v
[0:1], 0 ; encoding
: [0x80,0x7c,0x00,0x7e]
234 // GFX89
: v_fract_f64_e32 v
[0:1], 0 ; encoding
: [0x80,0x64,0x00,0x7e]
235 v_fract_f64_e32 v
[0:1], 0
237 // SICI
: v_trunc_f32_e64 v0
, 0 ; encoding
: [0x00,0x00,0x42,0xd3,0x80,0x00,0x00,0x00]
238 // GFX89
: v_trunc_f32_e64 v0
, 0 ; encoding
: [0x00,0x00,0x5c,0xd1,0x80,0x00,0x00,0x00]
239 v_trunc_f32_e64 v0
, 0
241 // SICI
: v_fract_f64_e64 v
[0:1], 0 ; encoding
: [0x00,0x00,0x7c,0xd3,0x80,0x00,0x00,0x00]
242 // GFX89
: v_fract_f64_e64 v
[0:1], 0 ; encoding
: [0x00,0x00,0x72,0xd1,0x80,0x00,0x00,0x00]
243 v_fract_f64_e64 v
[0:1], 0
245 // SICI
: v_trunc_f32_e32 v0
, -13 ; encoding
: [0xcd,0x42,0x00,0x7e]
246 // GFX89
: v_trunc_f32_e32 v0
, -13 ; encoding
: [0xcd,0x38,0x00,0x7e]
247 v_trunc_f32_e32 v0
, -13
249 // SICI
: v_fract_f64_e32 v
[0:1], -13 ; encoding
: [0xcd,0x7c,0x00,0x7e]
250 // GFX89
: v_fract_f64_e32 v
[0:1], -13 ; encoding
: [0xcd,0x64,0x00,0x7e]
251 v_fract_f64_e32 v
[0:1], -13
253 // SICI
: v_trunc_f32_e64 v0
, -13 ; encoding
: [0x00,0x00,0x42,0xd3,0xcd,0x00,0x00,0x00]
254 // GFX89
: v_trunc_f32_e64 v0
, -13 ; encoding
: [0x00,0x00,0x5c,0xd1,0xcd,0x00,0x00,0x00]
255 v_trunc_f32_e64 v0
, -13
257 // SICI
: v_fract_f64_e64 v
[0:1], -13 ; encoding
: [0x00,0x00,0x7c,0xd3,0xcd,0x00,0x00,0x00]
258 // GFX89
: v_fract_f64_e64 v
[0:1], -13 ; encoding
: [0x00,0x00,0x72,0xd1,0xcd,0x00,0x00,0x00]
259 v_fract_f64_e64 v
[0:1], -13
261 // SICI
: v_trunc_f32_e32 v0
, 35 ; encoding
: [0xa3,0x42,0x00,0x7e]
262 // GFX89
: v_trunc_f32_e32 v0
, 35 ; encoding
: [0xa3,0x38,0x00,0x7e]
263 v_trunc_f32_e32 v0
, 35
265 // SICI
: v_fract_f64_e32 v
[0:1], 35 ; encoding
: [0xa3,0x7c,0x00,0x7e]
266 // GFX89
: v_fract_f64_e32 v
[0:1], 35 ; encoding
: [0xa3,0x64,0x00,0x7e]
267 v_fract_f64_e32 v
[0:1], 35
269 // SICI
: v_trunc_f32_e64 v0
, 35 ; encoding
: [0x00,0x00,0x42,0xd3,0xa3,0x00,0x00,0x00]
270 // GFX89
: v_trunc_f32_e64 v0
, 35 ; encoding
: [0x00,0x00,0x5c,0xd1,0xa3,0x00,0x00,0x00]
271 v_trunc_f32_e64 v0
, 35
273 // SICI
: v_fract_f64_e64 v
[0:1], 35 ; encoding
: [0x00,0x00,0x7c,0xd3,0xa3,0x00,0x00,0x00]
274 // GFX89
: v_fract_f64_e64 v
[0:1], 35 ; encoding
: [0x00,0x00,0x72,0xd1,0xa3,0x00,0x00,0x00]
275 v_fract_f64_e64 v
[0:1], 35
277 // SICI
: v_trunc_f32_e32 v0
, 0x4d2 ; encoding
: [0xff,0x42,0x00,0x7e,0xd2,0x04,0x00,0x00]
278 // GFX89
: v_trunc_f32_e32 v0
, 0x4d2 ; encoding
: [0xff,0x38,0x00,0x7e,0xd2,0x04,0x00,0x00]
279 v_trunc_f32_e32 v0
, 1234
281 // SICI
: v_fract_f64_e32 v
[0:1], 0x4d2 ; encoding
: [0xff,0x7c,0x00,0x7e,0xd2,0x04,0x00,0x00]
282 // GFX89
: v_fract_f64_e32 v
[0:1], 0x4d2 ; encoding
: [0xff,0x64,0x00,0x7e,0xd2,0x04,0x00,0x00]
283 v_fract_f64_e32 v
[0:1], 1234
285 // NOSICI
: error
: literal operands are
not supported
286 // NOGFX89
: error
: literal operands are
not supported
287 v_trunc_f32_e64 v0
, 1234
289 // NOSICI
: error
: literal operands are
not supported
290 // NOGFX89
: error
: literal operands are
not supported
291 v_fract_f64_e64 v
[0:1], 1234
293 // SICI
: v_trunc_f32_e32 v0
, 0xffff2bcf ; encoding
: [0xff,0x42,0x00,0x7e,0xcf,0x2b,0xff,0xff]
294 // GFX89
: v_trunc_f32_e32 v0
, 0xffff2bcf ; encoding
: [0xff,0x38,0x00,0x7e,0xcf,0x2b,0xff,0xff]
295 v_trunc_f32_e32 v0
, -54321
297 // SICI
: v_fract_f64_e32 v
[0:1], 0xffff2bcf ; encoding
: [0xff,0x7c,0x00,0x7e,0xcf,0x2b,0xff,0xff]
298 // GFX89
: v_fract_f64_e32 v
[0:1], 0xffff2bcf ; encoding
: [0xff,0x64,0x00,0x7e,0xcf,0x2b,0xff,0xff]
299 v_fract_f64_e32 v
[0:1], -54321
301 // SICI
: v_trunc_f32_e32 v0
, 0xdeadbeef ; encoding
: [0xff,0x42,0x00,0x7e,0xef,0xbe,0xad,0xde]
302 // GFX89
: v_trunc_f32_e32 v0
, 0xdeadbeef ; encoding
: [0xff,0x38,0x00,0x7e,0xef,0xbe,0xad,0xde]
303 v_trunc_f32_e32 v0
, 0xdeadbeef
305 // SICI
: v_fract_f64_e32 v
[0:1], 0xdeadbeef ; encoding
: [0xff,0x7c,0x00,0x7e,0xef,0xbe,0xad,0xde]
306 // GFX89
: v_fract_f64_e32 v
[0:1], 0xdeadbeef ; encoding
: [0xff,0x64,0x00,0x7e,0xef,0xbe,0xad,0xde]
307 v_fract_f64_e32 v
[0:1], 0xdeadbeef
309 // SICI
: v_trunc_f32_e32 v0
, -1 ; encoding
: [0xc1,0x42,0x00,0x7e]
310 // GFX89
: v_trunc_f32_e32 v0
, -1 ; encoding
: [0xc1,0x38,0x00,0x7e]
311 v_trunc_f32_e32 v0
, 0xffffffff
313 // SICI
: v_fract_f64_e32 v
[0:1], 0xffffffff ; encoding
: [0xff,0x7c,0x00,0x7e,0xff,0xff,0xff,0xff]
314 // GFX89
: v_fract_f64_e32 v
[0:1], 0xffffffff ; encoding
: [0xff,0x64,0x00,0x7e,0xff,0xff,0xff,0xff]
315 v_fract_f64_e32 v
[0:1], 0xffffffff
317 // NOSICI
: error
: invalid operand for instruction
318 // NOGFX89
: error
: invalid operand for instruction
319 v_trunc_f32_e32 v0
, 0x123456789abcdef0
321 // NOSICI
: error
: invalid operand for instruction
322 // NOGFX89
: error
: invalid operand for instruction
323 v_fract_f64_e32 v
[0:1], 0x123456789abcdef0
325 // SICI
: v_trunc_f32_e32 v0
, -1 ; encoding
: [0xc1,0x42,0x00,0x7e]
326 // GFX89
: v_trunc_f32_e32 v0
, -1 ; encoding
: [0xc1,0x38,0x00,0x7e]
327 v_trunc_f32_e32 v0
, 0xffffffffffffffff
329 // SICI
: v_fract_f64_e32 v
[0:1], -1 ; encoding
: [0xc1,0x7c,0x00,0x7e]
330 // GFX89
: v_fract_f64_e32 v
[0:1], -1 ; encoding
: [0xc1,0x64,0x00,0x7e]
331 v_fract_f64_e32 v
[0:1], 0xffffffffffffffff
333 //---------------------------------------------------------------------------//
334 // int literal
, expected int operand
335 //---------------------------------------------------------------------------//
337 // SICI
: s_mov_b64 s
[0:1], 0 ; encoding
: [0x80,0x04,0x80,0xbe]
338 // GFX89
: s_mov_b64 s
[0:1], 0 ; encoding
: [0x80,0x01,0x80,0xbe]
339 s_mov_b64_e32 s
[0:1], 0
341 // SICI
: v_and_b32_e32 v0
, 0, v1 ; encoding
: [0x80,0x02,0x00,0x36]
342 // GFX89
: v_and_b32_e32 v0
, 0, v1 ; encoding
: [0x80,0x02,0x00,0x26]
343 v_and_b32_e32 v0
, 0, v1
345 // SICI
: v_and_b32_e64 v0
, 0, v1 ; encoding
: [0x00,0x00,0x36,0xd2,0x80,0x02,0x02,0x00]
346 // GFX89
: v_and_b32_e64 v0
, 0, v1 ; encoding
: [0x00,0x00,0x13,0xd1,0x80,0x02,0x02,0x00]
347 v_and_b32_e64 v0
, 0, v1
349 // SICI
: s_mov_b64 s
[0:1], -13 ; encoding
: [0xcd,0x04,0x80,0xbe]
350 // GFX89
: s_mov_b64 s
[0:1], -13 ; encoding
: [0xcd,0x01,0x80,0xbe]
351 s_mov_b64_e32 s
[0:1], -13
353 // SICI
: v_and_b32_e32 v0
, -13, v1 ; encoding
: [0xcd,0x02,0x00,0x36]
354 // GFX89
: v_and_b32_e32 v0
, -13, v1 ; encoding
: [0xcd,0x02,0x00,0x26]
355 v_and_b32_e32 v0
, -13, v1
357 // SICI
: v_and_b32_e64 v0
, -13, v1 ; encoding
: [0x00,0x00,0x36,0xd2,0xcd,0x02,0x02,0x00]
358 // GFX89
: v_and_b32_e64 v0
, -13, v1 ; encoding
: [0x00,0x00,0x13,0xd1,0xcd,0x02,0x02,0x00]
359 v_and_b32_e64 v0
, -13, v1
361 // SICI
: s_mov_b64 s
[0:1], 35 ; encoding
: [0xa3,0x04,0x80,0xbe]
362 // GFX89
: s_mov_b64 s
[0:1], 35 ; encoding
: [0xa3,0x01,0x80,0xbe]
363 s_mov_b64_e32 s
[0:1], 35
365 // SICI
: v_and_b32_e32 v0
, 35, v1 ; encoding
: [0xa3,0x02,0x00,0x36]
366 // GFX89
: v_and_b32_e32 v0
, 35, v1 ; encoding
: [0xa3,0x02,0x00,0x26]
367 v_and_b32_e32 v0
, 35, v1
369 // SICI
: v_and_b32_e64 v0
, 35, v1 ; encoding
: [0x00,0x00,0x36,0xd2,0xa3,0x02,0x02,0x00]
370 // GFX89
: v_and_b32_e64 v0
, 35, v1 ; encoding
: [0x00,0x00,0x13,0xd1,0xa3,0x02,0x02,0x00]
371 v_and_b32_e64 v0
, 35, v1
373 // SICI
: s_mov_b64 s
[0:1], 0x4d2 ; encoding
: [0xff,0x04,0x80,0xbe,0xd2,0x04,0x00,0x00]
374 // GFX89
: s_mov_b64 s
[0:1], 0x4d2 ; encoding
: [0xff,0x01,0x80,0xbe,0xd2,0x04,0x00,0x00]
375 s_mov_b64_e32 s
[0:1], 1234
377 // SICI
: v_and_b32_e32 v0
, 0x4d2, v1 ; encoding
: [0xff,0x02,0x00,0x36,0xd2,0x04,0x00,0x00]
378 // GFX89
: v_and_b32_e32 v0
, 0x4d2, v1 ; encoding
: [0xff,0x02,0x00,0x26,0xd2,0x04,0x00,0x00]
379 v_and_b32_e32 v0
, 1234, v1
381 // NOSICI
: error
: literal operands are
not supported
382 // NOGFX89
: error
: literal operands are
not supported
383 v_and_b32_e64 v0
, 1234, v1
385 // SICI
: s_mov_b64 s
[0:1], 0xffff2bcf ; encoding
: [0xff,0x04,0x80,0xbe,0xcf,0x2b,0xff,0xff]
386 // GFX89
: s_mov_b64 s
[0:1], 0xffff2bcf ; encoding
: [0xff,0x01,0x80,0xbe,0xcf,0x2b,0xff,0xff]
387 s_mov_b64_e32 s
[0:1], -54321
389 // SICI
: v_and_b32_e32 v0
, 0xffff2bcf, v1 ; encoding
: [0xff,0x02,0x00,0x36,0xcf,0x2b,0xff,0xff]
390 // GFX89
: v_and_b32_e32 v0
, 0xffff2bcf, v1 ; encoding
: [0xff,0x02,0x00,0x26,0xcf,0x2b,0xff,0xff]
391 v_and_b32_e32 v0
, -54321, v1
393 // SICI
: s_mov_b64 s
[0:1], 0xdeadbeef ; encoding
: [0xff,0x04,0x80,0xbe,0xef,0xbe,0xad,0xde]
394 // GFX89
: s_mov_b64 s
[0:1], 0xdeadbeef ; encoding
: [0xff,0x01,0x80,0xbe,0xef,0xbe,0xad,0xde]
395 s_mov_b64_e32 s
[0:1], 0xdeadbeef
397 // SICI
: v_and_b32_e32 v0
, 0xdeadbeef, v1 ; encoding
: [0xff,0x02,0x00,0x36,0xef,0xbe,0xad,0xde]
398 // GFX89
: v_and_b32_e32 v0
, 0xdeadbeef, v1 ; encoding
: [0xff,0x02,0x00,0x26,0xef,0xbe,0xad,0xde]
399 v_and_b32_e32 v0
, 0xdeadbeef, v1
401 // SICI
: s_mov_b64 s
[0:1], 0xffffffff ; encoding
: [0xff,0x04,0x80,0xbe,0xff,0xff,0xff,0xff]
402 // GFX89
: s_mov_b64 s
[0:1], 0xffffffff ; encoding
: [0xff,0x01,0x80,0xbe,0xff,0xff,0xff,0xff]
403 s_mov_b64_e32 s
[0:1], 0xffffffff
405 // SICI
: v_and_b32_e32 v0
, -1, v1 ; encoding
: [0xc1,0x02,0x00,0x36]
406 // GFX89
: v_and_b32_e32 v0
, -1, v1 ; encoding
: [0xc1,0x02,0x00,0x26]
407 v_and_b32_e32 v0
, 0xffffffff, v1
409 // NOSICI
: error
: invalid operand for instruction
410 // NOGFX89
: error
: invalid operand for instruction
411 s_mov_b64_e32 s
[0:1], 0x123456789abcdef0
413 // NOSICI
: error
: invalid operand for instruction
414 // NOGFX89
: error
: invalid operand for instruction
415 v_and_b32_e32 v0
, 0x123456789abcdef0, v1
417 // SICI
: s_mov_b64 s
[0:1], -1 ; encoding
: [0xc1,0x04,0x80,0xbe]
418 // GFX89
: s_mov_b64 s
[0:1], -1 ; encoding
: [0xc1,0x01,0x80,0xbe]
419 s_mov_b64_e32 s
[0:1], 0xffffffffffffffff
421 // SICI
: v_and_b32_e32 v0
, -1, v1 ; encoding
: [0xc1,0x02,0x00,0x36]
422 // GFX89
: v_and_b32_e32 v0
, -1, v1 ; encoding
: [0xc1,0x02,0x00,0x26]
423 v_and_b32_e32 v0
, 0xffffffffffffffff, v1
425 //---------------------------------------------------------------------------//
427 //---------------------------------------------------------------------------//
429 // NOSICI
: error
: invalid operand for instruction
430 // NOGFX89
: error
: invalid operand for instruction
431 v_trunc_f32_e32 v0
, 0x3fc45f306dc9c882
433 // NOSICI
: error
: invalid operand for instruction
434 // GFX89
: v_fract_f64_e32 v
[0:1], 0.15915494309189532 ; encoding
: [0xf8,0x64,0x00,0x7e]
435 v_fract_f64_e32 v
[0:1], 0x3fc45f306dc9c882
437 // SICI
: v_trunc_f32_e32 v0
, 0x3e22f983 ; encoding
: [0xff,0x42,0x00,0x7e,0x83,0xf9,0x22,0x3e]
438 // GFX89
: v_trunc_f32_e32 v0
, 0.15915494 ; encoding
: [0xf8,0x38,0x00,0x7e]
439 v_trunc_f32_e32 v0
, 0x3e22f983
441 // SICI
: v_fract_f64_e32 v
[0:1], 0x3e22f983 ; encoding
: [0xff,0x7c,0x00,0x7e,0x83,0xf9,0x22,0x3e]
442 // GFX89
: v_fract_f64_e32 v
[0:1], 0x3e22f983 ; encoding
: [0xff,0x64,0x00,0x7e,0x83,0xf9,0x22,0x3e]
443 v_fract_f64_e32 v
[0:1], 0x3e22f983
445 // NOSICI
: error
: invalid operand for instruction
446 // NOGFX89
: error
: invalid operand for instruction
447 v_trunc_f32_e64 v0
, 0x3fc45f306dc9c882
449 // NOSICI
: error
: invalid operand for instruction
450 // GFX89
: v_fract_f64_e64 v
[0:1], 0.15915494309189532 ; encoding
: [0x00,0x00,0x72,0xd1,0xf8,0x00,0x00,0x00]
451 v_fract_f64_e64 v
[0:1], 0x3fc45f306dc9c882
453 // NOSICI
: error
: literal operands are
not supported
454 // GFX89
: v_trunc_f32_e64 v0
, 0.15915494 ; encoding
: [0x00,0x00,0x5c,0xd1,0xf8,0x00,0x00,0x00]
455 v_trunc_f32_e64 v0
, 0x3e22f983
457 // NOSICI
: error
: literal operands are
not supported
458 // NOGFX89
: error
: literal operands are
not supported
459 v_fract_f64_e64 v
[0:1], 0x3e22f983
461 // NOSICI
: error
: invalid operand for instruction
462 // GFX89
: s_mov_b64 s
[0:1], 0.15915494309189532 ; encoding
: [0xf8,0x01,0x80,0xbe]
463 s_mov_b64_e32 s
[0:1], 0.159154943091895317852646485335
465 // SICI
: v_and_b32_e32 v0
, 0x3e22f983, v1 ; encoding
: [0xff,0x02,0x00,0x36,0x83,0xf9,0x22,0x3e]
466 // GFX89
: v_and_b32_e32 v0
, 0.15915494, v1 ; encoding
: [0xf8,0x02,0x00,0x26]
467 v_and_b32_e32 v0
, 0.159154943091895317852646485335, v1
469 // NOSICI
: error
: literal operands are
not supported
470 // GFX89
: v_and_b32_e64 v0
, 0.15915494, v1 ; encoding
: [0x00,0x00,0x13,0xd1,0xf8,0x02,0x02,0x00]
471 v_and_b32_e64 v0
, 0.159154943091895317852646485335, v1
473 // SICI
: v_fract_f64_e32 v
[0:1], 0x3fc45f30 ; encoding
: [0xff,0x7c,0x00,0x7e,0x30,0x5f,0xc4,0x3f]
474 // GFX89
: v_fract_f64_e32 v
[0:1], 0.15915494309189532 ; encoding
: [0xf8,0x64,0x00,0x7e]
475 v_fract_f64 v
[0:1], 0.159154943091895317852646485335
477 // SICI
: v_trunc_f32_e32 v0
, 0x3e22f983 ; encoding
: [0xff,0x42,0x00,0x7e,0x83,0xf9,0x22,0x3e]
478 // GFX89
: v_trunc_f32_e32 v0
, 0.15915494 ; encoding
: [0xf8,0x38,0x00,0x7e]
479 v_trunc_f32 v0
, 0.159154943091895317852646485335
481 //---------------------------------------------------------------------------//
482 // integer literal truncation checks
483 //---------------------------------------------------------------------------//
485 // NOGCN
: error
: invalid operand for instruction
486 s_mov_b32 s0
, 0x101ffffffff
488 // NOGCN
: error
: invalid operand for instruction
489 s_mov_b32 s0
, 0x1000000001
491 // NOGCN
: error
: invalid operand for instruction
492 s_mov_b32 s0
, 0x1000000fff
494 // NOGCN
: error
: invalid operand for instruction
495 v_trunc_f32 v0
, 0x1fffffffff0
497 // NOGCN
: error
: invalid operand for instruction
498 v_trunc_f32 v0
, 0x100000001
500 // NOGCN
: error
: invalid operand for instruction
501 v_trunc_f32 v0
, 0x1fffffff000
503 // NOGCN
: error
: invalid operand for instruction
504 s_mov_b64 s
[0:1], 0x101ffffffff
506 // NOGCN
: error
: invalid operand for instruction
507 s_mov_b64 s
[0:1], 0x1000000001
509 // NOGCN
: error
: invalid operand for instruction
510 s_mov_b64 s
[0:1], 0x1000000fff
512 // NOGFX89
: error
: invalid operand for instruction
513 // NOSI
: error
: instruction
not supported on this GPU
514 // NOCIVI
: error
: invalid operand for instruction
515 v_trunc_f64 v
[0:1], 0x1fffffffff0
517 // NOGFX89
: error
: invalid operand for instruction
518 // NOSI
: error
: instruction
not supported on this GPU
519 // NOCIVI
: error
: invalid operand for instruction
520 v_trunc_f64 v
[0:1], 0x100000001
522 // NOGFX89
: error
: invalid operand for instruction
523 // NOSI
: error
: instruction
not supported on this GPU
524 // NOCIVI
: error
: invalid operand for instruction
525 v_trunc_f64 v
[0:1], 0x1fffffff000
527 //---------------------------------------------------------------------------//
528 // named inline values
: scc
, vccz
, execz
529 //---------------------------------------------------------------------------//
531 // SICI
: buffer_atomic_add v0
, off
, s
[0:3], src_scc offset
:4095 ; encoding
: [0xff,0x0f,0xc8,0xe0,0x00,0x00,0x00,0xfd]
532 // GFX89
: buffer_atomic_add v0
, off
, s
[0:3], src_scc offset
:4095 ; encoding
: [0xff,0x0f,0x08,0xe1,0x00,0x00,0x00,0xfd]
533 buffer_atomic_add v0
, off
, s
[0:3], scc offset
:4095
535 // SICI
: s_add_i32 s0
, src_vccz
, s0 ; encoding
: [0xfb,0x00,0x00,0x81]
536 // GFX89
: s_add_i32 s0
, src_vccz
, s0 ; encoding
: [0xfb,0x00,0x00,0x81]
537 s_add_i32 s0
, vccz
, s0
539 // SICI
: s_add_i32 s0
, src_execz
, s0 ; encoding
: [0xfc,0x00,0x00,0x81]
540 // GFX89
: s_add_i32 s0
, src_execz
, s0 ; encoding
: [0xfc,0x00,0x00,0x81]
541 s_add_i32 s0
, execz
, s0
543 // SICI
: s_add_i32 s0
, src_scc
, s0 ; encoding
: [0xfd,0x00,0x00,0x81]
544 // GFX89
: s_add_i32 s0
, src_scc
, s0 ; encoding
: [0xfd,0x00,0x00,0x81]
545 s_add_i32 s0
, scc
, s0
547 // SICI
: s_and_b64 s
[0:1], s
[0:1], src_vccz ; encoding
: [0x00,0xfb,0x80,0x87]
548 // GFX89
: s_and_b64 s
[0:1], s
[0:1], src_vccz ; encoding
: [0x00,0xfb,0x80,0x86]
549 s_and_b64 s
[0:1], s
[0:1], src_vccz
551 // SICI
: s_and_b64 s
[0:1], s
[0:1], src_execz ; encoding
: [0x00,0xfc,0x80,0x87]
552 // GFX89
: s_and_b64 s
[0:1], s
[0:1], src_execz ; encoding
: [0x00,0xfc,0x80,0x86]
553 s_and_b64 s
[0:1], s
[0:1], src_execz
555 // SICI
: s_and_b64 s
[0:1], s
[0:1], src_scc ; encoding
: [0x00,0xfd,0x80,0x87]
556 // GFX89
: s_and_b64 s
[0:1], s
[0:1], src_scc ; encoding
: [0x00,0xfd,0x80,0x86]
557 s_and_b64 s
[0:1], s
[0:1], src_scc
559 // NOSICI
: error
: instruction
not supported on this GPU
560 // GFX89
: v_add_u16_e32 v0
, src_vccz
, v0 ; encoding
: [0xfb,0x00,0x00,0x4c]
561 v_add_u16 v0
, vccz
, v0
563 // NOSICI
: error
: instruction
not supported on this GPU
564 // NOVI
: error
: invalid operand for instruction
565 // GFX9
: v_add_u16_sdwa v0
, src_scc
, v0 dst_sel
:DWORD dst_unused
:UNUSED_PAD src0_sel
:DWORD src1_sel
:DWORD ; encoding
: [0xf9,0x00,0x00,0x4c,0xfd,0x06,0x86,0x06]
566 v_add_u16_sdwa v0
, scc
, v0 dst_sel
:DWORD dst_unused
:UNUSED_PAD src0_sel
:DWORD src1_sel
:DWORD
568 // NOSICI
: error
: instruction
not supported on this GPU
569 // NOVI
: error
: invalid operand for instruction
570 // GFX9
: v_add_u16_sdwa v0
, v0
, src_scc dst_sel
:DWORD dst_unused
:UNUSED_PAD src0_sel
:DWORD src1_sel
:DWORD ; encoding
: [0xf9,0xfa,0x01,0x4c,0x00,0x06,0x06,0x86]
571 v_add_u16_sdwa v0
, v0
, scc dst_sel
:DWORD dst_unused
:UNUSED_PAD src0_sel
:DWORD src1_sel
:DWORD
573 // GFX9
: v_add_u32_e32 v0
, src_execz
, v0 ; encoding
: [0xfc,0x00,0x00,0x68]
574 // NOSICI
: error
: instruction
not supported on this GPU
575 // NOVI
: error
: operands are
not valid for this GPU
or mode
576 v_add_u32 v0
, execz
, v0
578 // GFX9
: v_add_u32_e64 v0
, src_scc
, v0 ; encoding
: [0x00,0x00,0x34,0xd1,0xfd,0x00,0x02,0x00]
579 // NOSICI
: error
: instruction
not supported on this GPU
580 // NOVI
: error
: operands are
not valid for this GPU
or mode
581 v_add_u32_e64 v0
, scc
, v0
583 // SICI
: v_cmp_eq_i64_e32 vcc
, src_scc
, v
[0:1] ; encoding
: [0xfd,0x00,0x44,0x7d]
584 // GFX89
: v_cmp_eq_i64_e32 vcc
, src_scc
, v
[0:1] ; encoding
: [0xfd,0x00,0xc4,0x7d]
585 v_cmp_eq_i64 vcc
, scc
, v
[0:1]
587 // NOSICI
: error
: instruction
not supported on this GPU
588 // GFX89
: v_max_f16_e32 v0
, src_execz
, v0 ; encoding
: [0xfc,0x00,0x00,0x5a]
589 v_max_f16 v0
, execz
, v0
591 // SICI
: v_max_f32_e32 v0
, src_vccz
, v0 ; encoding
: [0xfb,0x00,0x00,0x20]
592 // GFX89
: v_max_f32_e32 v0
, src_vccz
, v0 ; encoding
: [0xfb,0x00,0x00,0x16]
593 v_max_f32 v0
, vccz
, v0
595 // SICI
: v_max_f64 v
[0:1], src_scc
, v
[0:1] ; encoding
: [0x00,0x00,0xce,0xd2,0xfd,0x00,0x02,0x00]
596 // GFX89
: v_max_f64 v
[0:1], src_scc
, v
[0:1] ; encoding
: [0x00,0x00,0x83,0xd2,0xfd,0x00,0x02,0x00]
597 v_max_f64 v
[0:1], scc
, v
[0:1]
599 // NOSICIVI
: error
: instruction
not supported on this GPU
600 // GFX9
: v_pk_add_f16 v0
, src_execz
, v0 ; encoding
: [0x00,0x40,0x8f,0xd3,0xfc,0x00,0x02,0x18]
601 v_pk_add_f16 v0
, execz
, v0
603 // NOSICI
: error
: instruction
not supported on this GPU
604 // GFX89
: v_ceil_f16_e64 v0
, -src_vccz ; encoding
: [0x00,0x00,0x85,0xd1,0xfb,0x00,0x00,0x20]
605 v_ceil_f16 v0
, neg(vccz
)
607 // NOSICI
: error
: instruction
not supported on this GPU
608 // GFX89
: v_ceil_f16_e64 v0
, |src_scc| ; encoding
: [0x00,0x01,0x85,0xd1,0xfd,0x00,0x00,0x00]
609 v_ceil_f16 v0
, abs(scc
)
611 // NOSI
: error
: instruction
not supported on this GPU
612 // CI
: v_ceil_f64_e64 v
[5:6], |src_execz| ; encoding
: [0x05,0x01,0x30,0xd3,0xfc,0x00,0x00,0x00]
613 // GFX89
: v_ceil_f64_e64 v
[5:6], |src_execz| ; encoding
: [0x05,0x01,0x58,0xd1,0xfc,0x00,0x00,0x00]
614 v_ceil_f64 v
[5:6], |execz|
616 // NOSI
: error
: instruction
not supported on this GPU
617 // CI
: v_ceil_f64_e64 v
[5:6], -vcc ; encoding
: [0x05,0x00,0x30,0xd3,0x6a,0x00,0x00,0x20]
618 // GFX89
: v_ceil_f64_e64 v
[5:6], -vcc ; encoding
: [0x05,0x00,0x58,0xd1,0x6a,0x00,0x00,0x20]
619 v_ceil_f64 v
[5:6], -vcc
621 // SICI
: v_ceil_f32_e64 v0
, -src_vccz ; encoding
: [0x00,0x00,0x44,0xd3,0xfb,0x00,0x00,0x20]
622 // GFX89
: v_ceil_f32_e64 v0
, -src_vccz ; encoding
: [0x00,0x00,0x5d,0xd1,0xfb,0x00,0x00,0x20]
625 // SICI
: v_ceil_f32_e64 v0
, |src_execz| ; encoding
: [0x00,0x01,0x44,0xd3,0xfc,0x00,0x00,0x00]
626 // GFX89
: v_ceil_f32_e64 v0
, |src_execz| ; encoding
: [0x00,0x01,0x5d,0xd1,0xfc,0x00,0x00,0x00]
627 v_ceil_f32 v0
, |execz|
629 // NOSICI
: error
: instruction
not supported on this GPU
630 // NOVI
: error
: invalid operand for instruction
631 // GFX9
: v_ceil_f16_sdwa v5
, |src_vccz| dst_sel
:DWORD dst_unused
:UNUSED_PRESERVE src0_sel
:DWORD ; encoding
: [0xf9,0x8a,0x0a,0x7e,0xfb,0x16,0xa6,0x00]
632 v_ceil_f16_sdwa v5
, |vccz| dst_sel
:DWORD dst_unused
:UNUSED_PRESERVE
634 // NOSICI
: error
: instruction
not supported on this GPU
635 // NOVI
: error
: invalid operand for instruction
636 // GFX9
: v_ceil_f16_sdwa v5
, -src_scc dst_sel
:DWORD dst_unused
:UNUSED_PRESERVE src0_sel
:DWORD ; encoding
: [0xf9,0x8a,0x0a,0x7e,0xfd,0x16,0x96,0x00]
637 v_ceil_f16_sdwa v5
, -scc dst_sel
:DWORD dst_unused
:UNUSED_PRESERVE
639 // GFX9
: v_ceil_f32_sdwa v5
, src_vccz dst_sel
:DWORD dst_unused
:UNUSED_PRESERVE src0_sel
:DWORD ; encoding
: [0xf9,0x3a,0x0a,0x7e,0xfb,0x16,0x86,0x00]
640 // NOSICI
: error
: sdwa variant of this instruction is
not supported
641 // NOVI
: error
: invalid operand for instruction
642 v_ceil_f32_sdwa v5
, vccz dst_sel
:DWORD src0_sel
:DWORD
644 // GFX9
: v_ceil_f32_sdwa v5
, |src_execz| dst_sel
:DWORD dst_unused
:UNUSED_PRESERVE src0_sel
:DWORD ; encoding
: [0xf9,0x3a,0x0a,0x7e,0xfc,0x16,0xa6,0x00]
645 // NOSICI
: error
: sdwa variant of this instruction is
not supported
646 // NOVI
: error
: invalid operand for instruction
647 v_ceil_f32_sdwa v5
, |execz| dst_sel
:DWORD src0_sel
:DWORD
649 //---------------------------------------------------------------------------//
650 // named inline values
: shared_base
, shared_limit
, private_base
, etc
651 //---------------------------------------------------------------------------//
653 // NOSICIVI
: error
: register
not available on this GPU
654 // GFX9
: buffer_atomic_add v0
, off
, s
[0:3], src_shared_base offset
:4095 ; encoding
: [0xff,0x0f,0x08,0xe1,0x00,0x00,0x00,0xeb]
655 buffer_atomic_add v0
, off
, s
[0:3], src_shared_base offset
:4095
657 // NOSICIVI
: error
: register
not available on this GPU
658 // GFX9
: s_add_i32 s0
, src_shared_base
, s0 ; encoding
: [0xeb,0x00,0x00,0x81]
659 s_add_i32 s0
, src_shared_base
, s0
661 // NOSICIVI
: error
: register
not available on this GPU
662 // GFX9
: s_add_i32 s0
, src_shared_limit
, s0 ; encoding
: [0xec,0x00,0x00,0x81]
663 s_add_i32 s0
, src_shared_limit
, s0
665 // NOSICIVI
: error
: register
not available on this GPU
666 // GFX9
: s_add_i32 s0
, src_private_base
, s0 ; encoding
: [0xed,0x00,0x00,0x81]
667 s_add_i32 s0
, src_private_base
, s0
669 // NOSICIVI
: error
: register
not available on this GPU
670 // GFX9
: s_add_i32 s0
, src_private_limit
, s0 ; encoding
: [0xee,0x00,0x00,0x81]
671 s_add_i32 s0
, src_private_limit
, s0
673 // NOSICIVI
: error
: register
not available on this GPU
674 // GFX9
: s_add_i32 s0
, src_pops_exiting_wave_id
, s0 ; encoding
: [0xef,0x00,0x00,0x81]
675 s_add_i32 s0
, src_pops_exiting_wave_id
, s0
677 // NOSICIVI
: error
: register
not available on this GPU
678 // GFX9
: s_and_b64 s
[0:1], s
[0:1], src_shared_base ; encoding
: [0x00,0xeb,0x80,0x86]
679 s_and_b64 s
[0:1], s
[0:1], src_shared_base
681 // NOSICIVI
: error
: register
not available on this GPU
682 // GFX9
: s_and_b64 s
[0:1], s
[0:1], src_shared_limit ; encoding
: [0x00,0xec,0x80,0x86]
683 s_and_b64 s
[0:1], s
[0:1], src_shared_limit
685 // NOSICIVI
: error
: register
not available on this GPU
686 // GFX9
: s_and_b64 s
[0:1], s
[0:1], src_private_base ; encoding
: [0x00,0xed,0x80,0x86]
687 s_and_b64 s
[0:1], s
[0:1], src_private_base
689 // NOSICIVI
: error
: register
not available on this GPU
690 // GFX9
: s_and_b64 s
[0:1], s
[0:1], src_private_limit ; encoding
: [0x00,0xee,0x80,0x86]
691 s_and_b64 s
[0:1], s
[0:1], src_private_limit
693 // NOSICIVI
: error
: register
not available on this GPU
694 // GFX9
: s_and_b64 s
[0:1], s
[0:1], src_pops_exiting_wave_id ; encoding
: [0x00,0xef,0x80,0x86]
695 s_and_b64 s
[0:1], s
[0:1], src_pops_exiting_wave_id
697 // GFX9
: v_add_u16_e32 v0
, src_shared_base
, v0 ; encoding
: [0xeb,0x00,0x00,0x4c]
698 // NOSICI
: error
: instruction
not supported on this GPU
699 // NOVI
: error
: register
not available on this GPU
700 v_add_u16 v0
, src_shared_base
, v0
702 // GFX9
: v_add_u16_sdwa v0
, src_shared_base
, v0 dst_sel
:DWORD dst_unused
:UNUSED_PAD src0_sel
:DWORD src1_sel
:DWORD ; encoding
: [0xf9,0x00,0x00,0x4c,0xeb,0x06,0x86,0x06]
703 // NOSICI
: error
: instruction
not supported on this GPU
704 // NOVI
: error
: register
not available on this GPU
705 v_add_u16_sdwa v0
, src_shared_base
, v0 dst_sel
:DWORD dst_unused
:UNUSED_PAD src0_sel
:DWORD src1_sel
:DWORD
707 // GFX9
: v_add_u16_sdwa v0
, v0
, src_shared_base dst_sel
:DWORD dst_unused
:UNUSED_PAD src0_sel
:DWORD src1_sel
:DWORD ; encoding
: [0xf9,0xd6,0x01,0x4c,0x00,0x06,0x06,0x86]
708 // NOSICI
: error
: instruction
not supported on this GPU
709 // NOVI
: error
: register
not available on this GPU
710 v_add_u16_sdwa v0
, v0
, src_shared_base dst_sel
:DWORD dst_unused
:UNUSED_PAD src0_sel
:DWORD src1_sel
:DWORD
712 // GFX9
: v_add_u32_e32 v0
, src_shared_base
, v0 ; encoding
: [0xeb,0x00,0x00,0x68]
713 // NOSICI
: error
: instruction
not supported on this GPU
714 // NOVI
: error
: register
not available on this GPU
715 v_add_u32 v0
, src_shared_base
, v0
717 // GFX9
: v_add_u32_e64 v0
, src_shared_base
, v0 ; encoding
: [0x00,0x00,0x34,0xd1,0xeb,0x00,0x02,0x00]
718 // NOSICI
: error
: instruction
not supported on this GPU
719 // NOVI
: error
: register
not available on this GPU
720 v_add_u32_e64 v0
, src_shared_base
, v0
722 // NOSICIVI
: error
: register
not available on this GPU
723 // GFX9
: v_cmp_eq_i64_e32 vcc
, src_shared_base
, v
[0:1] ; encoding
: [0xeb,0x00,0xc4,0x7d]
724 v_cmp_eq_i64 vcc
, src_shared_base
, v
[0:1]
726 // GFX9
: v_max_f16_e32 v0
, src_shared_base
, v0 ; encoding
: [0xeb,0x00,0x00,0x5a]
727 // NOSICI
: error
: instruction
not supported on this GPU
728 // NOVI
: error
: register
not available on this GPU
729 v_max_f16 v0
, src_shared_base
, v0
731 // NOSICIVI
: error
: register
not available on this GPU
732 // GFX9
: v_max_f32_e32 v0
, src_shared_base
, v0 ; encoding
: [0xeb,0x00,0x00,0x16]
733 v_max_f32 v0
, src_shared_base
, v0
735 // NOSICIVI
: error
: register
not available on this GPU
736 // GFX9
: v_max_f64 v
[0:1], src_shared_base
, v
[0:1] ; encoding
: [0x00,0x00,0x83,0xd2,0xeb,0x00,0x02,0x00]
737 v_max_f64 v
[0:1], src_shared_base
, v
[0:1]
739 // NOSICIVI
: error
: instruction
not supported on this GPU
740 // GFX9
: v_pk_add_f16 v0
, src_shared_base
, v0 ; encoding
: [0x00,0x40,0x8f,0xd3,0xeb,0x00,0x02,0x18]
741 v_pk_add_f16 v0
, src_shared_base
, v0
743 // GFX9
: v_ceil_f16_e64 v0
, -src_shared_base ; encoding
: [0x00,0x00,0x85,0xd1,0xeb,0x00,0x00,0x20]
744 // NOSICI
: error
: instruction
not supported on this GPU
745 // NOVI
: error
: register
not available on this GPU
746 v_ceil_f16 v0
, neg(src_shared_base
)
748 // GFX9
: v_ceil_f16_e64 v0
, |src_shared_base| ; encoding
: [0x00,0x01,0x85,0xd1,0xeb,0x00,0x00,0x00]
749 // NOSICI
: error
: instruction
not supported on this GPU
750 // NOVI
: error
: register
not available on this GPU
751 v_ceil_f16 v0
, abs(src_shared_base
)
753 // GFX9
: v_ceil_f64_e64 v
[5:6], |src_shared_base| ; encoding
: [0x05,0x01,0x58,0xd1,0xeb,0x00,0x00,0x00]
754 // NOSI
: error
: instruction
not supported on this GPU
755 // NOCIVI
: error
: register
not available on this GPU
756 // NOVI
: error
: register
not available on this GPU
757 v_ceil_f64 v
[5:6], |src_shared_base|
759 // GFX9
: v_ceil_f64_e64 v
[5:6], -src_shared_base ; encoding
: [0x05,0x00,0x58,0xd1,0xeb,0x00,0x00,0x20]
760 // NOSI
: error
: instruction
not supported on this GPU
761 // NOCIVI
: error
: register
not available on this GPU
762 // NOVI
: error
: register
not available on this GPU
763 v_ceil_f64 v
[5:6], -src_shared_base
765 // NOSICIVI
: error
: register
not available on this GPU
766 // GFX9
: v_ceil_f32_e64 v0
, -src_shared_base ; encoding
: [0x00,0x00,0x5d,0xd1,0xeb,0x00,0x00,0x20]
767 v_ceil_f32 v0
, -src_shared_base
769 // NOSICIVI
: error
: register
not available on this GPU
770 // GFX9
: v_ceil_f32_e64 v0
, |src_shared_base| ; encoding
: [0x00,0x01,0x5d,0xd1,0xeb,0x00,0x00,0x00]
771 v_ceil_f32 v0
, |src_shared_base|
773 // GFX9
: v_ceil_f16_sdwa v5
, |src_shared_base| dst_sel
:DWORD dst_unused
:UNUSED_PRESERVE src0_sel
:DWORD ; encoding
: [0xf9,0x8a,0x0a,0x7e,0xeb,0x16,0xa6,0x00]
774 // NOSICI
: error
: instruction
not supported on this GPU
775 // NOVI
: error
: register
not available on this GPU
776 v_ceil_f16_sdwa v5
, |src_shared_base| dst_sel
:DWORD dst_unused
:UNUSED_PRESERVE
778 // GFX9
: v_ceil_f16_sdwa v5
, -src_shared_base dst_sel
:DWORD dst_unused
:UNUSED_PRESERVE src0_sel
:DWORD ; encoding
: [0xf9,0x8a,0x0a,0x7e,0xeb,0x16,0x96,0x00]
779 // NOSICI
: error
: instruction
not supported on this GPU
780 // NOVI
: error
: register
not available on this GPU
781 v_ceil_f16_sdwa v5
, -src_shared_base dst_sel
:DWORD dst_unused
:UNUSED_PRESERVE
783 // GFX9
: v_ceil_f32_sdwa v5
, src_shared_base dst_sel
:DWORD dst_unused
:UNUSED_PRESERVE src0_sel
:DWORD ; encoding
: [0xf9,0x3a,0x0a,0x7e,0xeb,0x16,0x86,0x00]
784 // NOSICI
: error
: sdwa variant of this instruction is
not supported
785 // NOVI
: error
: register
not available on this GPU
786 v_ceil_f32_sdwa v5
, src_shared_base dst_sel
:DWORD src0_sel
:DWORD
788 // GFX9
: v_ceil_f32_sdwa v5
, |src_shared_base| dst_sel
:DWORD dst_unused
:UNUSED_PRESERVE src0_sel
:DWORD ; encoding
: [0xf9,0x3a,0x0a,0x7e,0xeb,0x16,0xa6,0x00]
789 // NOSICI
: error
: sdwa variant of this instruction is
not supported
790 // NOVI
: error
: register
not available on this GPU
791 v_ceil_f32_sdwa v5
, |src_shared_base| dst_sel
:DWORD src0_sel
:DWORD
793 //---------------------------------------------------------------------------//
794 // named inline values compete with other scalars for constant bus access
795 //---------------------------------------------------------------------------//
797 // NOGFX9
: error
: invalid operand
(violates constant bus restrictions
)
798 // NOSICI
: error
: instruction
not supported on this GPU
799 // NOVI
: error
: register
not available on this GPU
800 v_add_u32 v0
, private_base
, s0
802 // NOGFX9
: error
: invalid operand
(violates constant bus restrictions
)
803 // NOSICI
: error
: instruction
not supported on this GPU
804 // NOVI
: error
: operands are
not valid for this GPU
or mode
805 v_add_u32 v0
, scc
, s0
807 // v_div_fmas implicitly reads VCC
808 // NOSICIVI
: error
: register
not available on this GPU
809 // NOGFX9
: error
: invalid operand
(violates constant bus restrictions
)
810 v_div_fmas_f32 v0
, shared_base
, v0
, v1
812 // v_div_fmas implicitly reads VCC
813 // NOSICIVI
: error
: register
not available on this GPU
814 // NOGFX9
: error
: invalid operand
(violates constant bus restrictions
)
815 v_div_fmas_f32 v0
, v0
, shared_limit
, v1
817 // v_div_fmas implicitly reads VCC
818 // NOSICIVI
: error
: register
not available on this GPU
819 // NOGFX9
: error
: invalid operand
(violates constant bus restrictions
)
820 v_div_fmas_f32 v0
, v0
, v1
, private_limit
822 // v_div_fmas implicitly reads VCC
823 // NOGCN
: error
: invalid operand
(violates constant bus restrictions
)
824 v_div_fmas_f32 v0
, execz
, v0
, v1
826 // v_div_fmas implicitly reads VCC
827 // NOGCN
: error
: invalid operand
(violates constant bus restrictions
)
828 v_div_fmas_f32 v0
, v0
, scc
, v1
830 // v_div_fmas implicitly reads VCC
831 // NOGCN
: error
: invalid operand
(violates constant bus restrictions
)
832 v_div_fmas_f32 v0
, v0
, v1
, vccz
834 // v_addc_co_u32 implicitly reads VCC
(VOP2
)
835 // NOSICIVI
: error
: instruction
not supported on this GPU
836 // NOGFX9
: error
: invalid operand
(violates constant bus restrictions
)
837 v_addc_co_u32 v0
, vcc
, shared_base
, v0
, vcc
839 // NOSICIVI
: error
: register
not available on this GPU
840 // NOGFX9
: error
: invalid operand
(violates constant bus restrictions
)
841 v_madak_f32 v0
, shared_base
, v0
, 0x11213141
843 // NOGCN
: error
: invalid operand
(violates constant bus restrictions
)
844 v_madak_f32 v0
, scc
, v0
, 0x11213141
846 // NOSICIVI
: error
: register
not available on this GPU
847 // NOGFX9
: error
: invalid operand
(violates constant bus restrictions
)
848 v_cmp_eq_f32 s
[0:1], private_base
, private_limit
850 // NOSICIVI
: error
: register
not available on this GPU
851 // NOGFX9
: error
: invalid operand
(violates constant bus restrictions
)
852 v_cmp_eq_f32 s
[0:1], private_base
, s0
854 // NOGCN
: error
: invalid operand
(violates constant bus restrictions
)
855 v_cmp_eq_f32 s
[0:1], execz
, s0
857 // NOSICIVI
: error
: instruction
not supported on this GPU
858 // NOGFX9
: error
: invalid operand
(violates constant bus restrictions
)
859 v_pk_add_f16 v255
, private_base
, private_limit
861 // NOSICIVI
: error
: instruction
not supported on this GPU
862 // NOGFX9
: error
: invalid operand
(violates constant bus restrictions
)
863 v_pk_add_f16 v255
, vccz
, execz