xref: /llvm-project/llvm/test/MC/AMDGPU/gfx11-promotions.s (revision bccd1190c99120e3675771c23901d4a44f82c617)
1// RUN: llvm-mc -triple=amdgcn -show-encoding -mcpu=gfx1100 -mattr=+wavefrontsize32 %s | FileCheck --check-prefix=GFX11 %s
2
3// Check opcode promotions and forced suffices.
4// 1. When a suffix is optional, check that it may be omitted.
5// 2. When a suffix is optional, check that it may be specified w/o any effect.
6// 3. When a suffix is required, check that specifying it enforces opcode promotion.
7// 4. When a suffix is required, check that omitting the suffix results in a different encoding.
8
9//===----------------------------------------------------------------------===//
10// VOP1.
11//===----------------------------------------------------------------------===//
12
13v_mov_b32 v0, v1
14// GFX11: v_mov_b32_e32 v0, v1                    ; encoding: [0x01,0x03,0x00,0x7e]
15
16v_mov_b32_e32 v0, v1
17// GFX11: v_mov_b32_e32 v0, v1                    ; encoding: [0x01,0x03,0x00,0x7e]
18
19//===----------------------------------------------------------------------===//
20// VOP2.
21//===----------------------------------------------------------------------===//
22
23v_add_f16 v5, v1, v2
24// GFX11: v_add_f16_e32 v5, v1, v2                ; encoding: [0x01,0x05,0x0a,0x64]
25
26v_add_f16_e32 v5, v1, v2
27// GFX11: v_add_f16_e32 v5, v1, v2                ; encoding: [0x01,0x05,0x0a,0x64]
28
29//===----------------------------------------------------------------------===//
30// VOPC.
31//===----------------------------------------------------------------------===//
32
33v_cmp_lt_f32 vcc_lo, v1, v2
34// GFX11: v_cmp_lt_f32_e32 vcc_lo, v1, v2         ; encoding: [0x01,0x05,0x22,0x7c]
35
36v_cmp_lt_f32_e32 vcc_lo, v1, v2
37// GFX11: v_cmp_lt_f32_e32 vcc_lo, v1, v2         ; encoding: [0x01,0x05,0x22,0x7c]
38
39//===----------------------------------------------------------------------===//
40// VOPCX.
41//===----------------------------------------------------------------------===//
42
43v_cmpx_class_f16 v1, v2
44// GFX11: v_cmpx_class_f16_e32 v1, v2             ; encoding: [0x01,0x05,0xfa,0x7d]
45
46v_cmpx_class_f16_e32 v1, v2
47// GFX11: v_cmpx_class_f16_e32 v1, v2             ; encoding: [0x01,0x05,0xfa,0x7d]
48
49//===----------------------------------------------------------------------===//
50// VOP1.DPP8.
51//===----------------------------------------------------------------------===//
52
53v_bfrev_b32 v5, v1 dpp8:[7,6,5,4,3,2,1,0]
54// GFX11: v_bfrev_b32_dpp v5, v1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x70,0x0a,0x7e,0x01,0x77,0x39,0x05]
55
56v_bfrev_b32_dpp v5, v1 dpp8:[7,6,5,4,3,2,1,0]
57// GFX11: v_bfrev_b32_dpp v5, v1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x70,0x0a,0x7e,0x01,0x77,0x39,0x05]
58
59//===----------------------------------------------------------------------===//
60// VOP1.DPP16.
61//===----------------------------------------------------------------------===//
62
63v_bfrev_b32 v5, v1 quad_perm:[3,2,1,0]
64// GFX11: v_bfrev_b32_dpp v5, v1 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x70,0x0a,0x7e,0x01,0x1b,0x00,0xff]
65
66v_bfrev_b32_dpp v5, v1 quad_perm:[3,2,1,0]
67// GFX11: v_bfrev_b32_dpp v5, v1 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x70,0x0a,0x7e,0x01,0x1b,0x00,0xff]
68
69//===----------------------------------------------------------------------===//
70// VOP2.DPP8.
71//===----------------------------------------------------------------------===//
72
73v_add_f16 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0]
74// GFX11: v_add_f16_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x64,0x01,0x77,0x39,0x05]
75
76v_add_f16_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0]
77// GFX11: v_add_f16_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x64,0x01,0x77,0x39,0x05]
78
79//===----------------------------------------------------------------------===//
80// VOP2.DPP16.
81//===----------------------------------------------------------------------===//
82
83v_add_f16 v5, v1, v2 quad_perm:[3,2,1,0]
84// GFX11: v_add_f16_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x64,0x01,0x1b,0x00,0xff]
85
86v_add_f16_dpp v5, v1, v2 quad_perm:[3,2,1,0]
87// GFX11: v_add_f16_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x64,0x01,0x1b,0x00,0xff]
88
89//===----------------------------------------------------------------------===//
90// VOPC.DPP8.
91//===----------------------------------------------------------------------===//
92
93v_cmp_le_u16 v1, v2 dpp8:[7,7,7,3,4,4,6,7] fi:1
94// GFX11: v_cmp_le_u16 vcc_lo, v1, v2 dpp8:[7,7,7,3,4,4,6,7] fi:1 ; encoding: [0xea,0x04,0x76,0x7c,0x01,0xff,0x47,0xfa]
95
96v_cmp_le_u16_dpp v1, v2 dpp8:[7,7,7,3,4,4,6,7] fi:1
97// GFX11: v_cmp_le_u16 vcc_lo, v1, v2 dpp8:[7,7,7,3,4,4,6,7] fi:1 ; encoding: [0xea,0x04,0x76,0x7c,0x01,0xff,0x47,0xfa]
98
99//===----------------------------------------------------------------------===//
100// VOPC.DPP16.
101//===----------------------------------------------------------------------===//
102
103v_cmp_gt_u16 v1, v2 row_shl:0x7 row_mask:0x0 bank_mask:0x0 fi:1
104// GFX11: v_cmp_gt_u16 vcc_lo, v1, v2 row_shl:7 row_mask:0x0 bank_mask:0x0 fi:1 ; encoding: [0xfa,0x04,0x78,0x7c,0x01,0x07,0x05,0x00]
105
106v_cmp_gt_u16_dpp v1, v2 row_shl:0x7 row_mask:0x0 bank_mask:0x0 fi:1
107// GFX11: v_cmp_gt_u16 vcc_lo, v1, v2 row_shl:7 row_mask:0x0 bank_mask:0x0 fi:1 ; encoding: [0xfa,0x04,0x78,0x7c,0x01,0x07,0x05,0x00]
108
109//===----------------------------------------------------------------------===//
110// VOPCX.DPP8.
111//===----------------------------------------------------------------------===//
112
113v_cmpx_class_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0]
114// GFX11: v_cmpx_class_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0xfa,0x7d,0x01,0x77,0x39,0x05]
115
116v_cmpx_class_f16_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0]
117// GFX11: v_cmpx_class_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0xfa,0x7d,0x01,0x77,0x39,0x05]
118
119//===----------------------------------------------------------------------===//
120// VOPCX.DPP16.
121//===----------------------------------------------------------------------===//
122
123v_cmpx_class_f16 v1, v2 quad_perm:[3,2,1,0]
124// GFX11: v_cmpx_class_f16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7d,0x01,0x1b,0x00,0xff]
125
126v_cmpx_class_f16_dpp v1, v2 quad_perm:[3,2,1,0]
127// GFX11: v_cmpx_class_f16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7d,0x01,0x1b,0x00,0xff]
128
129//===----------------------------------------------------------------------===//
130// VOP1 -> VOP3.
131//===----------------------------------------------------------------------===//
132
133v_sin_f32 v5, 0.5 mul:2
134// GFX11: v_sin_f32_e64 v5, 0.5 mul:2             ; encoding: [0x05,0x00,0xb5,0xd5,0xf0,0x00,0x00,0x08]
135
136v_sin_f32_e64 v5, 0.5 mul:2
137// GFX11: v_sin_f32_e64 v5, 0.5 mul:2             ; encoding: [0x05,0x00,0xb5,0xd5,0xf0,0x00,0x00,0x08]
138
139v_sin_f32_e64 v5, v1
140// GFX11: v_sin_f32_e64 v5, v1                    ; encoding: [0x05,0x00,0xb5,0xd5,0x01,0x01,0x00,0x00]
141
142v_sin_f32 v5, v1
143// GFX11: v_sin_f32_e32 v5, v1                    ; encoding: [0x01,0x6b,0x0a,0x7e]
144
145//===----------------------------------------------------------------------===//
146// VOP2 -> VOP3.
147//===----------------------------------------------------------------------===//
148
149v_add_f32 v5, v1, -v2
150// GFX11: v_add_f32_e64 v5, v1, -v2               ; encoding: [0x05,0x00,0x03,0xd5,0x01,0x05,0x02,0x40]
151
152v_add_f32_e64 v5, v1, -v2
153// GFX11: v_add_f32_e64 v5, v1, -v2               ; encoding: [0x05,0x00,0x03,0xd5,0x01,0x05,0x02,0x40]
154
155v_add_f32_e64 v5, v1, v2
156// GFX11: v_add_f32_e64 v5, v1, v2                ; encoding: [0x05,0x00,0x03,0xd5,0x01,0x05,0x02,0x00]
157
158v_add_f32 v5, v1, v2
159// GFX11: v_add_f32_e32 v5, v1, v2                ; encoding: [0x01,0x05,0x0a,0x06]
160
161//===----------------------------------------------------------------------===//
162// VOPC -> VOP3.
163//===----------------------------------------------------------------------===//
164
165v_cmp_f_f32 s10, -v1, v2
166// GFX11: v_cmp_f_f32_e64 s10, -v1, v2            ; encoding: [0x0a,0x00,0x10,0xd4,0x01,0x05,0x02,0x20]
167
168v_cmp_f_f32_e64 s10, -v1, v2
169// GFX11: v_cmp_f_f32_e64 s10, -v1, v2            ; encoding: [0x0a,0x00,0x10,0xd4,0x01,0x05,0x02,0x20]
170
171v_cmp_f_f32_e64 vcc_lo, v1, v2
172// GFX11: v_cmp_f_f32_e64 vcc_lo, v1, v2          ; encoding: [0x6a,0x00,0x10,0xd4,0x01,0x05,0x02,0x00]
173
174v_cmp_f_f32 vcc_lo, v1, v2
175// GFX11: v_cmp_f_f32_e32 vcc_lo, v1, v2          ; encoding: [0x01,0x05,0x20,0x7c]
176
177//===----------------------------------------------------------------------===//
178// VOPCX -> VOP3.
179//===----------------------------------------------------------------------===//
180
181v_cmpx_f_f32 -v1, v2
182// GFX11: v_cmpx_f_f32_e64 -v1, v2                ; encoding: [0x7e,0x00,0x90,0xd4,0x01,0x05,0x02,0x20]
183
184v_cmpx_f_f32_e64 -v1, v2
185// GFX11: v_cmpx_f_f32_e64 -v1, v2                ; encoding: [0x7e,0x00,0x90,0xd4,0x01,0x05,0x02,0x20]
186
187v_cmpx_f_f32_e64 v1, v2
188// GFX11: v_cmpx_f_f32_e64 v1, v2                 ; encoding: [0x7e,0x00,0x90,0xd4,0x01,0x05,0x02,0x00]
189
190v_cmpx_f_f32 v1, v2
191// GFX11: v_cmpx_f_f32_e32 v1, v2                 ; encoding: [0x01,0x05,0x20,0x7d]
192
193//===----------------------------------------------------------------------===//
194// VOP3.
195//===----------------------------------------------------------------------===//
196
197v_add3_u32 v5, v1, v2, s3
198// GFX11: v_add3_u32 v5, v1, v2, s3               ; encoding: [0x05,0x00,0x55,0xd6,0x01,0x05,0x0e,0x00]
199
200v_add3_u32_e64 v5, v1, v2, s3
201// GFX11: v_add3_u32 v5, v1, v2, s3               ; encoding: [0x05,0x00,0x55,0xd6,0x01,0x05,0x0e,0x00]
202
203//===----------------------------------------------------------------------===//
204// VOP1 -> VOP3.DPP8.
205//===----------------------------------------------------------------------===//
206
207v_sin_f32 v5, v1 div:2 dpp8:[0,0,0,0,0,0,0,0]
208// GFX11: v_sin_f32_e64_dpp v5, v1 div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x05,0x00,0xb5,0xd5,0xe9,0x00,0x00,0x18,0x01,0x00,0x00,0x00]
209
210v_sin_f32_e64_dpp v5, v1 div:2 dpp8:[0,0,0,0,0,0,0,0]
211// GFX11: v_sin_f32_e64_dpp v5, v1 div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x05,0x00,0xb5,0xd5,0xe9,0x00,0x00,0x18,0x01,0x00,0x00,0x00]
212
213v_sin_f32_e64_dpp v5, v1 dpp8:[7,6,5,4,3,2,1,0]
214// GFX11: v_sin_f32_e64_dpp v5, v1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0xb5,0xd5,0xe9,0x00,0x00,0x00,0x01,0x77,0x39,0x05]
215
216v_sin_f32 v5, v1 dpp8:[7,6,5,4,3,2,1,0]
217// GFX11: v_sin_f32_dpp v5, v1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x6a,0x0a,0x7e,0x01,0x77,0x39,0x05]
218
219//===----------------------------------------------------------------------===//
220// VOP2 -> VOP3.DPP8.
221//===----------------------------------------------------------------------===//
222
223v_add_f32 v5, v1, v2 mul:4 dpp8:[7,6,5,4,3,2,1,0]
224// GFX11: v_add_f32_e64_dpp v5, v1, v2 mul:4 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x03,0xd5,0xe9,0x04,0x02,0x10,0x01,0x77,0x39,0x05]
225
226v_add_f32_e64_dpp v5, v1, v2 mul:4 dpp8:[7,6,5,4,3,2,1,0]
227// GFX11: v_add_f32_e64_dpp v5, v1, v2 mul:4 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x03,0xd5,0xe9,0x04,0x02,0x10,0x01,0x77,0x39,0x05]
228
229v_add_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0]
230// GFX11: v_add_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x03,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05]
231
232v_add_f32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0]
233// GFX11: v_add_f32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x06,0x01,0x77,0x39,0x05]
234
235//===----------------------------------------------------------------------===//
236// VOPC -> VOP3.DPP8.
237//===----------------------------------------------------------------------===//
238
239v_cmp_class_f32 s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0]
240// GFX11: v_cmp_class_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x7e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05]
241
242v_cmp_class_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0]
243// GFX11: v_cmp_class_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x7e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05]
244
245v_cmp_class_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0]
246// GFX11: v_cmp_class_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x7e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05]
247
248v_cmp_class_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0]
249// GFX11: v_cmp_class_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0xfc,0x7c,0x01,0x77,0x39,0x05]
250
251//===----------------------------------------------------------------------===//
252// VOPCX -> VOP3.DPP8.
253//===----------------------------------------------------------------------===//
254
255v_cmpx_class_f32 -v1, v2 dpp8:[7,6,5,4,3,2,1,0]
256// GFX11: v_cmpx_class_f32_e64_dpp -v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xfe,0xd4,0xe9,0x04,0x02,0x20,0x01,0x77,0x39,0x05]
257
258v_cmpx_class_f32_e64_dpp -v1, v2 dpp8:[7,6,5,4,3,2,1,0]
259// GFX11: v_cmpx_class_f32_e64_dpp -v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xfe,0xd4,0xe9,0x04,0x02,0x20,0x01,0x77,0x39,0x05]
260
261v_cmpx_class_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0]
262// GFX11: v_cmpx_class_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xfe,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05]
263
264v_cmpx_class_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0]
265// GFX11: v_cmpx_class_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0xfc,0x7d,0x01,0x77,0x39,0x05]
266
267//===----------------------------------------------------------------------===//
268// VOP1 -> VOP3.DPP16.
269//===----------------------------------------------------------------------===//
270
271v_sin_f32 v5, v1 div:2 row_xmask:15
272// GFX11: v_sin_f32_e64_dpp v5, v1 div:2 row_xmask:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0xb5,0xd5,0xfa,0x00,0x00,0x18,0x01,0x6f,0x01,0xff]
273
274v_sin_f32_e64_dpp v5, v1 div:2 row_xmask:15
275// GFX11: v_sin_f32_e64_dpp v5, v1 div:2 row_xmask:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0xb5,0xd5,0xfa,0x00,0x00,0x18,0x01,0x6f,0x01,0xff]
276
277v_sin_f32_e64_dpp v5, v1 quad_perm:[3,2,1,0]
278// GFX11: v_sin_f32_e64_dpp v5, v1 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0xb5,0xd5,0xfa,0x00,0x00,0x00,0x01,0x1b,0x00,0xff]
279
280v_sin_f32 v5, v1 quad_perm:[3,2,1,0]
281// GFX11: v_sin_f32_dpp v5, v1 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x6a,0x0a,0x7e,0x01,0x1b,0x00,0xff]
282
283//===----------------------------------------------------------------------===//
284// VOP2 -> VOP3.DPP16.
285//===----------------------------------------------------------------------===//
286
287v_add_f32 v5, v1, v2 div:2 quad_perm:[3,2,1,0]
288// GFX11: v_add_f32_e64_dpp v5, v1, v2 div:2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd5,0xfa,0x04,0x02,0x18,0x01,0x1b,0x00,0xff]
289
290v_add_f32_e64_dpp v5, v1, v2 div:2 quad_perm:[3,2,1,0]
291// GFX11: v_add_f32_e64_dpp v5, v1, v2 div:2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd5,0xfa,0x04,0x02,0x18,0x01,0x1b,0x00,0xff]
292
293v_add_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0]
294// GFX11: v_add_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff]
295
296v_add_f32 v5, v1, v2 quad_perm:[3,2,1,0]
297// GFX11: v_add_f32_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x06,0x01,0x1b,0x00,0xff]
298
299//===----------------------------------------------------------------------===//
300// VOPC -> VOP3.DPP16.
301//===----------------------------------------------------------------------===//
302
303v_cmp_class_f32 s5, v1, v2 quad_perm:[3,2,1,0]
304// GFX11: v_cmp_class_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff]
305
306v_cmp_class_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0]
307// GFX11: v_cmp_class_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff]
308
309v_cmp_class_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf
310// GFX11: v_cmp_class_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff]
311
312v_cmp_class_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf
313// GFX11: v_cmp_class_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x50,0x01,0xff]
314
315//===----------------------------------------------------------------------===//
316// VOPCX -> VOP3.DPP16.
317//===----------------------------------------------------------------------===//
318
319v_cmpx_class_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0]
320// GFX11: v_cmpx_class_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xfe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff]
321
322v_cmpx_class_f32 v1, v2 quad_perm:[3,2,1,0]
323// GFX11: v_cmpx_class_f32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7d,0x01,0x1b,0x00,0xff]
324
325//===----------------------------------------------------------------------===//
326// VOP3P.
327//===----------------------------------------------------------------------===//
328
329v_dot2_f32_f16 v0, v1, v2, v3
330// GFX11: v_dot2_f32_f16 v0, v1, v2, v3           ; encoding: [0x00,0x40,0x13,0xcc,0x01,0x05,0x0e,0x1c]
331
332v_dot2_f32_f16_e64 v0, v1, v2, v3
333// GFX11: v_dot2_f32_f16 v0, v1, v2, v3           ; encoding: [0x00,0x40,0x13,0xcc,0x01,0x05,0x0e,0x1c]
334
335//===----------------------------------------------------------------------===//
336// VOP3P.DPP8.
337//===----------------------------------------------------------------------===//
338
339v_dot2_f32_f16 v0, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0]
340// GFX11: v_dot2_f32_f16_e64_dpp v0, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x00,0x40,0x13,0xcc,0xe9,0x04,0x0e,0x1c,0x01,0x77,0x39,0x05]
341
342v_dot2_f32_f16_e64_dpp v0, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0]
343// GFX11: v_dot2_f32_f16_e64_dpp v0, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x00,0x40,0x13,0xcc,0xe9,0x04,0x0e,0x1c,0x01,0x77,0x39,0x05]
344
345//===----------------------------------------------------------------------===//
346// VOP3P.DPP16.
347//===----------------------------------------------------------------------===//
348
349v_dot2_f32_f16 v0, v1, v2, v3 quad_perm:[1,2,3,0]
350// GFX11: v_dot2_f32_f16_e64_dpp v0, v1, v2, v3 quad_perm:[1,2,3,0] row_mask:0xf bank_mask:0xf ; encoding: [0x00,0x40,0x13,0xcc,0xfa,0x04,0x0e,0x1c,0x01,0x39,0x00,0xff]
351
352v_dot2_f32_f16_e64_dpp v0, v1, v2, v3 quad_perm:[1,2,3,0]
353// GFX11: v_dot2_f32_f16_e64_dpp v0, v1, v2, v3 quad_perm:[1,2,3,0] row_mask:0xf bank_mask:0xf ; encoding: [0x00,0x40,0x13,0xcc,0xfa,0x04,0x0e,0x1c,0x01,0x39,0x00,0xff]
354