xref: /llvm-project/llvm/test/MC/X86/gfni-att.s (revision c394d97ed3c10a8a77742296248e68c654f37c45)
1// RUN: llvm-mc -triple x86_64-unknown-unknown --show-encoding < %s | FileCheck %s
2
3// CHECK: gf2p8affineinvqb $7, %xmm2, %xmm1
4// CHECK: encoding: [0x66,0x0f,0x3a,0xcf,0xca,0x07]
5          gf2p8affineinvqb $7, %xmm2, %xmm1
6
7// CHECK: gf2p8affineqb $7, %xmm2, %xmm1
8// CHECK: encoding: [0x66,0x0f,0x3a,0xce,0xca,0x07]
9          gf2p8affineqb $7, %xmm2, %xmm1
10
11// CHECK: gf2p8affineinvqb  $7, (%rcx), %xmm1
12// CHECK: encoding: [0x66,0x0f,0x3a,0xcf,0x09,0x07]
13          gf2p8affineinvqb  $7, (%rcx), %xmm1
14
15// CHECK: gf2p8affineinvqb  $7, -4(%rsp), %xmm1
16// CHECK: encoding: [0x66,0x0f,0x3a,0xcf,0x4c,0x24,0xfc,0x07]
17          gf2p8affineinvqb  $7, -4(%rsp), %xmm1
18
19// CHECK: gf2p8affineinvqb  $7, 4(%rsp), %xmm1
20// CHECK: encoding: [0x66,0x0f,0x3a,0xcf,0x4c,0x24,0x04,0x07]
21          gf2p8affineinvqb  $7, 4(%rsp), %xmm1
22
23// CHECK: gf2p8affineinvqb  $7, 268435456(%rcx,%r14,8), %xmm1
24// CHECK: encoding: [0x66,0x42,0x0f,0x3a,0xcf,0x8c,0xf1,0x00,0x00,0x00,0x10,0x07]
25          gf2p8affineinvqb  $7, 268435456(%rcx,%r14,8), %xmm1
26
27// CHECK: gf2p8affineinvqb  $7, -536870912(%rcx,%r14,8), %xmm1
28// CHECK: encoding: [0x66,0x42,0x0f,0x3a,0xcf,0x8c,0xf1,0x00,0x00,0x00,0xe0,0x07]
29          gf2p8affineinvqb  $7, -536870912(%rcx,%r14,8), %xmm1
30
31// CHECK: gf2p8affineinvqb  $7, -536870910(%rcx,%r14,8), %xmm1
32// CHECK: encoding: [0x66,0x42,0x0f,0x3a,0xcf,0x8c,0xf1,0x02,0x00,0x00,0xe0,0x07]
33          gf2p8affineinvqb  $7, -536870910(%rcx,%r14,8), %xmm1
34
35// CHECK: gf2p8affineqb  $7, (%rcx), %xmm1
36// CHECK: encoding: [0x66,0x0f,0x3a,0xce,0x09,0x07]
37          gf2p8affineqb  $7, (%rcx), %xmm1
38
39// CHECK: gf2p8affineqb  $7, -4(%rsp), %xmm1
40// CHECK: encoding: [0x66,0x0f,0x3a,0xce,0x4c,0x24,0xfc,0x07]
41          gf2p8affineqb  $7, -4(%rsp), %xmm1
42
43// CHECK: gf2p8affineqb  $7, 4(%rsp), %xmm1
44// CHECK: encoding: [0x66,0x0f,0x3a,0xce,0x4c,0x24,0x04,0x07]
45          gf2p8affineqb  $7, 4(%rsp), %xmm1
46
47// CHECK: gf2p8affineqb  $7, 268435456(%rcx,%r14,8), %xmm1
48// CHECK: encoding: [0x66,0x42,0x0f,0x3a,0xce,0x8c,0xf1,0x00,0x00,0x00,0x10,0x07]
49          gf2p8affineqb  $7, 268435456(%rcx,%r14,8), %xmm1
50
51// CHECK: gf2p8affineqb  $7, -536870912(%rcx,%r14,8), %xmm1
52// CHECK: encoding: [0x66,0x42,0x0f,0x3a,0xce,0x8c,0xf1,0x00,0x00,0x00,0xe0,0x07]
53          gf2p8affineqb  $7, -536870912(%rcx,%r14,8), %xmm1
54
55// CHECK: gf2p8affineqb  $7, -536870910(%rcx,%r14,8), %xmm1
56// CHECK: encoding: [0x66,0x42,0x0f,0x3a,0xce,0x8c,0xf1,0x02,0x00,0x00,0xe0,0x07]
57          gf2p8affineqb  $7, -536870910(%rcx,%r14,8), %xmm1
58
59// CHECK: gf2p8mulb %xmm2, %xmm1
60// CHECK: encoding: [0x66,0x0f,0x38,0xcf,0xca]
61          gf2p8mulb %xmm2, %xmm1
62
63// CHECK: gf2p8mulb  (%rcx), %xmm1
64// CHECK: encoding: [0x66,0x0f,0x38,0xcf,0x09]
65          gf2p8mulb  (%rcx), %xmm1
66
67// CHECK: gf2p8mulb  -4(%rsp), %xmm1
68// CHECK: encoding: [0x66,0x0f,0x38,0xcf,0x4c,0x24,0xfc]
69          gf2p8mulb  -4(%rsp), %xmm1
70
71// CHECK: gf2p8mulb  4(%rsp), %xmm1
72// CHECK: encoding: [0x66,0x0f,0x38,0xcf,0x4c,0x24,0x04]
73          gf2p8mulb  4(%rsp), %xmm1
74
75// CHECK: gf2p8mulb  268435456(%rcx,%r14,8), %xmm1
76// CHECK: encoding: [0x66,0x42,0x0f,0x38,0xcf,0x8c,0xf1,0x00,0x00,0x00,0x10]
77          gf2p8mulb  268435456(%rcx,%r14,8), %xmm1
78
79// CHECK: gf2p8mulb  -536870912(%rcx,%r14,8), %xmm1
80// CHECK: encoding: [0x66,0x42,0x0f,0x38,0xcf,0x8c,0xf1,0x00,0x00,0x00,0xe0]
81          gf2p8mulb  -536870912(%rcx,%r14,8), %xmm1
82
83// CHECK: gf2p8mulb  -536870910(%rcx,%r14,8), %xmm1
84// CHECK: encoding: [0x66,0x42,0x0f,0x38,0xcf,0x8c,0xf1,0x02,0x00,0x00,0xe0]
85          gf2p8mulb  -536870910(%rcx,%r14,8), %xmm1
86
87// CHECK: vgf2p8affineinvqb $7, %xmm2, %xmm10, %xmm1
88// CHECK: encoding: [0xc4,0xe3,0xa9,0xcf,0xca,0x07]
89          vgf2p8affineinvqb $7, %xmm2, %xmm10, %xmm1
90
91// CHECK: vgf2p8affineqb $7, %xmm2, %xmm10, %xmm1
92// CHECK: encoding: [0xc4,0xe3,0xa9,0xce,0xca,0x07]
93          vgf2p8affineqb $7, %xmm2, %xmm10, %xmm1
94
95// CHECK: vgf2p8affineinvqb  $7, (%rcx), %xmm10, %xmm1
96// CHECK: encoding: [0xc4,0xe3,0xa9,0xcf,0x09,0x07]
97          vgf2p8affineinvqb  $7, (%rcx), %xmm10, %xmm1
98
99// CHECK: vgf2p8affineinvqb  $7, -4(%rsp), %xmm10, %xmm1
100// CHECK: encoding: [0xc4,0xe3,0xa9,0xcf,0x4c,0x24,0xfc,0x07]
101          vgf2p8affineinvqb  $7, -4(%rsp), %xmm10, %xmm1
102
103// CHECK: vgf2p8affineinvqb  $7, 4(%rsp), %xmm10, %xmm1
104// CHECK: encoding: [0xc4,0xe3,0xa9,0xcf,0x4c,0x24,0x04,0x07]
105          vgf2p8affineinvqb  $7, 4(%rsp), %xmm10, %xmm1
106
107// CHECK: vgf2p8affineinvqb  $7, 268435456(%rcx,%r14,8), %xmm10, %xmm1
108// CHECK: encoding: [0xc4,0xa3,0xa9,0xcf,0x8c,0xf1,0x00,0x00,0x00,0x10,0x07]
109          vgf2p8affineinvqb  $7, 268435456(%rcx,%r14,8), %xmm10, %xmm1
110
111// CHECK: vgf2p8affineinvqb  $7, -536870912(%rcx,%r14,8), %xmm10, %xmm1
112// CHECK: encoding: [0xc4,0xa3,0xa9,0xcf,0x8c,0xf1,0x00,0x00,0x00,0xe0,0x07]
113          vgf2p8affineinvqb  $7, -536870912(%rcx,%r14,8), %xmm10, %xmm1
114
115// CHECK: vgf2p8affineinvqb  $7, -536870910(%rcx,%r14,8), %xmm10, %xmm1
116// CHECK: encoding: [0xc4,0xa3,0xa9,0xcf,0x8c,0xf1,0x02,0x00,0x00,0xe0,0x07]
117          vgf2p8affineinvqb  $7, -536870910(%rcx,%r14,8), %xmm10, %xmm1
118
119// CHECK: vgf2p8affineqb  $7, (%rcx), %xmm10, %xmm1
120// CHECK: encoding: [0xc4,0xe3,0xa9,0xce,0x09,0x07]
121          vgf2p8affineqb  $7, (%rcx), %xmm10, %xmm1
122
123// CHECK: vgf2p8affineqb  $7, -4(%rsp), %xmm10, %xmm1
124// CHECK: encoding: [0xc4,0xe3,0xa9,0xce,0x4c,0x24,0xfc,0x07]
125          vgf2p8affineqb  $7, -4(%rsp), %xmm10, %xmm1
126
127// CHECK: vgf2p8affineqb  $7, 4(%rsp), %xmm10, %xmm1
128// CHECK: encoding: [0xc4,0xe3,0xa9,0xce,0x4c,0x24,0x04,0x07]
129          vgf2p8affineqb  $7, 4(%rsp), %xmm10, %xmm1
130
131// CHECK: vgf2p8affineqb  $7, 268435456(%rcx,%r14,8), %xmm10, %xmm1
132// CHECK: encoding: [0xc4,0xa3,0xa9,0xce,0x8c,0xf1,0x00,0x00,0x00,0x10,0x07]
133          vgf2p8affineqb  $7, 268435456(%rcx,%r14,8), %xmm10, %xmm1
134
135// CHECK: vgf2p8affineqb  $7, -536870912(%rcx,%r14,8), %xmm10, %xmm1
136// CHECK: encoding: [0xc4,0xa3,0xa9,0xce,0x8c,0xf1,0x00,0x00,0x00,0xe0,0x07]
137          vgf2p8affineqb  $7, -536870912(%rcx,%r14,8), %xmm10, %xmm1
138
139// CHECK: vgf2p8affineqb  $7, -536870910(%rcx,%r14,8), %xmm10, %xmm1
140// CHECK: encoding: [0xc4,0xa3,0xa9,0xce,0x8c,0xf1,0x02,0x00,0x00,0xe0,0x07]
141          vgf2p8affineqb  $7, -536870910(%rcx,%r14,8), %xmm10, %xmm1
142
143// CHECK: vgf2p8affineinvqb $7, %ymm2, %ymm10, %ymm1
144// CHECK: encoding: [0xc4,0xe3,0xad,0xcf,0xca,0x07]
145          vgf2p8affineinvqb $7, %ymm2, %ymm10, %ymm1
146
147// CHECK: vgf2p8affineqb $7, %ymm2, %ymm10, %ymm1
148// CHECK: encoding: [0xc4,0xe3,0xad,0xce,0xca,0x07]
149          vgf2p8affineqb $7, %ymm2, %ymm10, %ymm1
150
151// CHECK: vgf2p8affineinvqb  $7, (%rcx), %ymm10, %ymm1
152// CHECK: encoding: [0xc4,0xe3,0xad,0xcf,0x09,0x07]
153          vgf2p8affineinvqb  $7, (%rcx), %ymm10, %ymm1
154
155// CHECK: vgf2p8affineinvqb  $7, -4(%rsp), %ymm10, %ymm1
156// CHECK: encoding: [0xc4,0xe3,0xad,0xcf,0x4c,0x24,0xfc,0x07]
157          vgf2p8affineinvqb  $7, -4(%rsp), %ymm10, %ymm1
158
159// CHECK: vgf2p8affineinvqb  $7, 4(%rsp), %ymm10, %ymm1
160// CHECK: encoding: [0xc4,0xe3,0xad,0xcf,0x4c,0x24,0x04,0x07]
161          vgf2p8affineinvqb  $7, 4(%rsp), %ymm10, %ymm1
162
163// CHECK: vgf2p8affineinvqb  $7, 268435456(%rcx,%r14,8), %ymm10, %ymm1
164// CHECK: encoding: [0xc4,0xa3,0xad,0xcf,0x8c,0xf1,0x00,0x00,0x00,0x10,0x07]
165          vgf2p8affineinvqb  $7, 268435456(%rcx,%r14,8), %ymm10, %ymm1
166
167// CHECK: vgf2p8affineinvqb  $7, -536870912(%rcx,%r14,8), %ymm10, %ymm1
168// CHECK: encoding: [0xc4,0xa3,0xad,0xcf,0x8c,0xf1,0x00,0x00,0x00,0xe0,0x07]
169          vgf2p8affineinvqb  $7, -536870912(%rcx,%r14,8), %ymm10, %ymm1
170
171// CHECK: vgf2p8affineinvqb  $7, -536870910(%rcx,%r14,8), %ymm10, %ymm1
172// CHECK: encoding: [0xc4,0xa3,0xad,0xcf,0x8c,0xf1,0x02,0x00,0x00,0xe0,0x07]
173          vgf2p8affineinvqb  $7, -536870910(%rcx,%r14,8), %ymm10, %ymm1
174
175// CHECK: vgf2p8affineqb  $7, (%rcx), %ymm10, %ymm1
176// CHECK: encoding: [0xc4,0xe3,0xad,0xce,0x09,0x07]
177          vgf2p8affineqb  $7, (%rcx), %ymm10, %ymm1
178
179// CHECK: vgf2p8affineqb  $7, -4(%rsp), %ymm10, %ymm1
180// CHECK: encoding: [0xc4,0xe3,0xad,0xce,0x4c,0x24,0xfc,0x07]
181          vgf2p8affineqb  $7, -4(%rsp), %ymm10, %ymm1
182
183// CHECK: vgf2p8affineqb  $7, 4(%rsp), %ymm10, %ymm1
184// CHECK: encoding: [0xc4,0xe3,0xad,0xce,0x4c,0x24,0x04,0x07]
185          vgf2p8affineqb  $7, 4(%rsp), %ymm10, %ymm1
186
187// CHECK: vgf2p8affineqb  $7, 268435456(%rcx,%r14,8), %ymm10, %ymm1
188// CHECK: encoding: [0xc4,0xa3,0xad,0xce,0x8c,0xf1,0x00,0x00,0x00,0x10,0x07]
189          vgf2p8affineqb  $7, 268435456(%rcx,%r14,8), %ymm10, %ymm1
190
191// CHECK: vgf2p8affineqb  $7, -536870912(%rcx,%r14,8), %ymm10, %ymm1
192// CHECK: encoding: [0xc4,0xa3,0xad,0xce,0x8c,0xf1,0x00,0x00,0x00,0xe0,0x07]
193          vgf2p8affineqb  $7, -536870912(%rcx,%r14,8), %ymm10, %ymm1
194
195// CHECK: vgf2p8affineqb  $7, -536870910(%rcx,%r14,8), %ymm10, %ymm1
196// CHECK: encoding: [0xc4,0xa3,0xad,0xce,0x8c,0xf1,0x02,0x00,0x00,0xe0,0x07]
197          vgf2p8affineqb  $7, -536870910(%rcx,%r14,8), %ymm10, %ymm1
198
199// CHECK: vgf2p8mulb %xmm2, %xmm10, %xmm1
200// CHECK: encoding: [0xc4,0xe2,0x29,0xcf,0xca]
201          vgf2p8mulb %xmm2, %xmm10, %xmm1
202
203// CHECK: vgf2p8mulb  (%rcx), %xmm10, %xmm1
204// CHECK: encoding: [0xc4,0xe2,0x29,0xcf,0x09]
205          vgf2p8mulb  (%rcx), %xmm10, %xmm1
206
207// CHECK: vgf2p8mulb  -4(%rsp), %xmm10, %xmm1
208// CHECK: encoding: [0xc4,0xe2,0x29,0xcf,0x4c,0x24,0xfc]
209          vgf2p8mulb  -4(%rsp), %xmm10, %xmm1
210
211// CHECK: vgf2p8mulb  4(%rsp), %xmm10, %xmm1
212// CHECK: encoding: [0xc4,0xe2,0x29,0xcf,0x4c,0x24,0x04]
213          vgf2p8mulb  4(%rsp), %xmm10, %xmm1
214
215// CHECK: vgf2p8mulb  268435456(%rcx,%r14,8), %xmm10, %xmm1
216// CHECK: encoding: [0xc4,0xa2,0x29,0xcf,0x8c,0xf1,0x00,0x00,0x00,0x10]
217          vgf2p8mulb  268435456(%rcx,%r14,8), %xmm10, %xmm1
218
219// CHECK: vgf2p8mulb  -536870912(%rcx,%r14,8), %xmm10, %xmm1
220// CHECK: encoding: [0xc4,0xa2,0x29,0xcf,0x8c,0xf1,0x00,0x00,0x00,0xe0]
221          vgf2p8mulb  -536870912(%rcx,%r14,8), %xmm10, %xmm1
222
223// CHECK: vgf2p8mulb  -536870910(%rcx,%r14,8), %xmm10, %xmm1
224// CHECK: encoding: [0xc4,0xa2,0x29,0xcf,0x8c,0xf1,0x02,0x00,0x00,0xe0]
225          vgf2p8mulb  -536870910(%rcx,%r14,8), %xmm10, %xmm1
226
227// CHECK: vgf2p8mulb %ymm2, %ymm10, %ymm1
228// CHECK: encoding: [0xc4,0xe2,0x2d,0xcf,0xca]
229          vgf2p8mulb %ymm2, %ymm10, %ymm1
230
231// CHECK: vgf2p8mulb  (%rcx), %ymm10, %ymm1
232// CHECK: encoding: [0xc4,0xe2,0x2d,0xcf,0x09]
233          vgf2p8mulb  (%rcx), %ymm10, %ymm1
234
235// CHECK: vgf2p8mulb  -4(%rsp), %ymm10, %ymm1
236// CHECK: encoding: [0xc4,0xe2,0x2d,0xcf,0x4c,0x24,0xfc]
237          vgf2p8mulb  -4(%rsp), %ymm10, %ymm1
238
239// CHECK: vgf2p8mulb  4(%rsp), %ymm10, %ymm1
240// CHECK: encoding: [0xc4,0xe2,0x2d,0xcf,0x4c,0x24,0x04]
241          vgf2p8mulb  4(%rsp), %ymm10, %ymm1
242
243// CHECK: vgf2p8mulb  268435456(%rcx,%r14,8), %ymm10, %ymm1
244// CHECK: encoding: [0xc4,0xa2,0x2d,0xcf,0x8c,0xf1,0x00,0x00,0x00,0x10]
245          vgf2p8mulb  268435456(%rcx,%r14,8), %ymm10, %ymm1
246
247// CHECK: vgf2p8mulb  -536870912(%rcx,%r14,8), %ymm10, %ymm1
248// CHECK: encoding: [0xc4,0xa2,0x2d,0xcf,0x8c,0xf1,0x00,0x00,0x00,0xe0]
249          vgf2p8mulb  -536870912(%rcx,%r14,8), %ymm10, %ymm1
250
251// CHECK: vgf2p8mulb  -536870910(%rcx,%r14,8), %ymm10, %ymm1
252// CHECK: encoding: [0xc4,0xa2,0x2d,0xcf,0x8c,0xf1,0x02,0x00,0x00,0xe0]
253          vgf2p8mulb  -536870910(%rcx,%r14,8), %ymm10, %ymm1
254
255