[SKX] Enabling load/store instructions: encoding
[oota-llvm.git] / test / MC / X86 / x86-64-avx512bw.s
1 // RUN: llvm-mc -triple x86_64-unknown-unknown -mcpu=skx  --show-encoding %s | FileCheck %s
2
3 // CHECK: vmovdqu8 %zmm19, %zmm29
4 // CHECK:  encoding: [0x62,0x21,0x7f,0x48,0x6f,0xeb]
5           vmovdqu8 %zmm19, %zmm29
6
7 // CHECK: vmovdqu8 %zmm19, %zmm29 {%k7}
8 // CHECK:  encoding: [0x62,0x21,0x7f,0x4f,0x6f,0xeb]
9           vmovdqu8 %zmm19, %zmm29 {%k7}
10
11 // CHECK: vmovdqu8 %zmm19, %zmm29 {%k7} {z}
12 // CHECK:  encoding: [0x62,0x21,0x7f,0xcf,0x6f,0xeb]
13           vmovdqu8 %zmm19, %zmm29 {%k7} {z}
14
15 // CHECK: vmovdqu8 (%rcx), %zmm29
16 // CHECK:  encoding: [0x62,0x61,0x7f,0x48,0x6f,0x29]
17           vmovdqu8 (%rcx), %zmm29
18
19 // CHECK: vmovdqu8 291(%rax,%r14,8), %zmm29
20 // CHECK:  encoding: [0x62,0x21,0x7f,0x48,0x6f,0xac,0xf0,0x23,0x01,0x00,0x00]
21           vmovdqu8 291(%rax,%r14,8), %zmm29
22
23 // CHECK: vmovdqu8 8128(%rdx), %zmm29
24 // CHECK:  encoding: [0x62,0x61,0x7f,0x48,0x6f,0x6a,0x7f]
25           vmovdqu8 8128(%rdx), %zmm29
26
27 // CHECK: vmovdqu8 8192(%rdx), %zmm29
28 // CHECK:  encoding: [0x62,0x61,0x7f,0x48,0x6f,0xaa,0x00,0x20,0x00,0x00]
29           vmovdqu8 8192(%rdx), %zmm29
30
31 // CHECK: vmovdqu8 -8192(%rdx), %zmm29
32 // CHECK:  encoding: [0x62,0x61,0x7f,0x48,0x6f,0x6a,0x80]
33           vmovdqu8 -8192(%rdx), %zmm29
34
35 // CHECK: vmovdqu8 -8256(%rdx), %zmm29
36 // CHECK:  encoding: [0x62,0x61,0x7f,0x48,0x6f,0xaa,0xc0,0xdf,0xff,0xff]
37           vmovdqu8 -8256(%rdx), %zmm29
38
39 // CHECK: vmovdqu16 %zmm18, %zmm17
40 // CHECK:  encoding: [0x62,0xa1,0xff,0x48,0x6f,0xca]
41           vmovdqu16 %zmm18, %zmm17
42
43 // CHECK: vmovdqu16 %zmm18, %zmm17 {%k3}
44 // CHECK:  encoding: [0x62,0xa1,0xff,0x4b,0x6f,0xca]
45           vmovdqu16 %zmm18, %zmm17 {%k3}
46
47 // CHECK: vmovdqu16 %zmm18, %zmm17 {%k3} {z}
48 // CHECK:  encoding: [0x62,0xa1,0xff,0xcb,0x6f,0xca]
49           vmovdqu16 %zmm18, %zmm17 {%k3} {z}
50
51 // CHECK: vmovdqu16 (%rcx), %zmm17
52 // CHECK:  encoding: [0x62,0xe1,0xff,0x48,0x6f,0x09]
53           vmovdqu16 (%rcx), %zmm17
54
55 // CHECK: vmovdqu16 291(%rax,%r14,8), %zmm17
56 // CHECK:  encoding: [0x62,0xa1,0xff,0x48,0x6f,0x8c,0xf0,0x23,0x01,0x00,0x00]
57           vmovdqu16 291(%rax,%r14,8), %zmm17
58
59 // CHECK: vmovdqu16 8128(%rdx), %zmm17
60 // CHECK:  encoding: [0x62,0xe1,0xff,0x48,0x6f,0x4a,0x7f]
61           vmovdqu16 8128(%rdx), %zmm17
62
63 // CHECK: vmovdqu16 8192(%rdx), %zmm17
64 // CHECK:  encoding: [0x62,0xe1,0xff,0x48,0x6f,0x8a,0x00,0x20,0x00,0x00]
65           vmovdqu16 8192(%rdx), %zmm17
66
67 // CHECK: vmovdqu16 -8192(%rdx), %zmm17
68 // CHECK:  encoding: [0x62,0xe1,0xff,0x48,0x6f,0x4a,0x80]
69           vmovdqu16 -8192(%rdx), %zmm17
70
71 // CHECK: vmovdqu16 -8256(%rdx), %zmm17
72 // CHECK:  encoding: [0x62,0xe1,0xff,0x48,0x6f,0x8a,0xc0,0xdf,0xff,0xff]
73           vmovdqu16 -8256(%rdx), %zmm17
74
75 // CHECK: kandq  %k7, %k5, %k5
76 // CHECK:  encoding: [0xc4,0xe1,0xd4,0x41,0xef]
77           kandq  %k7, %k5, %k5
78
79 // CHECK: kandd  %k4, %k5, %k5
80 // CHECK:  encoding: [0xc4,0xe1,0xd5,0x41,0xec]
81           kandd  %k4, %k5, %k5
82
83 // CHECK: kandnq %k4, %k5, %k2
84 // CHECK:  encoding: [0xc4,0xe1,0xd4,0x42,0xd4]
85           kandnq %k4, %k5, %k2
86
87 // CHECK: kandnd %k6, %k6, %k3
88 // CHECK:  encoding: [0xc4,0xe1,0xcd,0x42,0xde]
89           kandnd %k6, %k6, %k3
90
91 // CHECK: korq   %k4, %k5, %k4
92 // CHECK:  encoding: [0xc4,0xe1,0xd4,0x45,0xe4]
93           korq   %k4, %k5, %k4
94
95 // CHECK: kord   %k6, %k6, %k5
96 // CHECK:  encoding: [0xc4,0xe1,0xcd,0x45,0xee]
97           kord   %k6, %k6, %k5
98
99 // CHECK: kxnorq %k6, %k5, %k2
100 // CHECK:  encoding: [0xc4,0xe1,0xd4,0x46,0xd6]
101           kxnorq %k6, %k5, %k2
102
103 // CHECK: kxnord %k5, %k3, %k5
104 // CHECK:  encoding: [0xc4,0xe1,0xe5,0x46,0xed]
105           kxnord %k5, %k3, %k5
106
107 // CHECK: kxorq  %k4, %k3, %k2
108 // CHECK:  encoding: [0xc4,0xe1,0xe4,0x47,0xd4]
109           kxorq  %k4, %k3, %k2
110
111 // CHECK: kxord  %k6, %k5, %k2
112 // CHECK:  encoding: [0xc4,0xe1,0xd5,0x47,0xd6]
113           kxord  %k6, %k5, %k2
114
115 // CHECK: knotq  %k6, %k3
116 // CHECK:  encoding: [0xc4,0xe1,0xf8,0x44,0xde]
117           knotq  %k6, %k3
118
119 // CHECK: knotd  %k4, %k3
120 // CHECK:  encoding: [0xc4,0xe1,0xf9,0x44,0xdc]
121           knotd  %k4, %k3
122
123 // CHECK: kmovq  %k5, %k2
124 // CHECK:  encoding: [0xc4,0xe1,0xf8,0x90,0xd5]
125           kmovq  %k5, %k2
126
127 // CHECK: kmovq  (%rcx), %k2
128 // CHECK:  encoding: [0xc4,0xe1,0xf8,0x90,0x11]
129           kmovq  (%rcx), %k2
130
131 // CHECK: kmovq  291(%rax,%r14,8), %k2
132 // CHECK:  encoding: [0xc4,0xa1,0xf8,0x90,0x94,0xf0,0x23,0x01,0x00,0x00]
133           kmovq  291(%rax,%r14,8), %k2
134
135 // CHECK: kmovd  %k4, %k5
136 // CHECK:  encoding: [0xc4,0xe1,0xf9,0x90,0xec]
137           kmovd  %k4, %k5
138
139 // CHECK: kmovd  (%rcx), %k5
140 // CHECK:  encoding: [0xc4,0xe1,0xf9,0x90,0x29]
141           kmovd  (%rcx), %k5
142
143 // CHECK: kmovd  291(%rax,%r14,8), %k5
144 // CHECK:  encoding: [0xc4,0xa1,0xf9,0x90,0xac,0xf0,0x23,0x01,0x00,0x00]
145           kmovd  291(%rax,%r14,8), %k5
146
147 // CHECK: kmovq  %k3, (%rcx)
148 // CHECK:  encoding: [0xc4,0xe1,0xf8,0x91,0x19]
149           kmovq  %k3, (%rcx)
150
151 // CHECK: kmovq  %k3, 291(%rax,%r14,8)
152 // CHECK:  encoding: [0xc4,0xa1,0xf8,0x91,0x9c,0xf0,0x23,0x01,0x00,0x00]
153           kmovq  %k3, 291(%rax,%r14,8)
154
155 // CHECK: kmovd  %k3, (%rcx)
156 // CHECK:  encoding: [0xc4,0xe1,0xf9,0x91,0x19]
157           kmovd  %k3, (%rcx)
158
159 // CHECK: kmovd  %k3, 291(%rax,%r14,8)
160 // CHECK:  encoding: [0xc4,0xa1,0xf9,0x91,0x9c,0xf0,0x23,0x01,0x00,0x00]
161           kmovd  %k3, 291(%rax,%r14,8)
162
163 // CHECK: kmovq  %rax, %k2
164 // CHECK:  encoding: [0xc4,0xe1,0xfb,0x92,0xd0]
165           kmovq  %rax, %k2
166
167 // CHECK: kmovq  %r8, %k2
168 // CHECK:  encoding: [0xc4,0xc1,0xfb,0x92,0xd0]
169           kmovq  %r8, %k2
170
171 // CHECK: kmovd  %eax, %k4
172 // CHECK:  encoding: [0xc5,0xfb,0x92,0xe0]
173           kmovd  %eax, %k4
174
175 // CHECK: kmovd  %ebp, %k4
176 // CHECK:  encoding: [0xc5,0xfb,0x92,0xe5]
177           kmovd  %ebp, %k4
178
179 // CHECK: kmovd  %r13d, %k4
180 // CHECK:  encoding: [0xc4,0xc1,0x7b,0x92,0xe5]
181           kmovd  %r13d, %k4
182
183 // CHECK: kmovq  %k3, %rax
184 // CHECK:  encoding: [0xc4,0xe1,0xfb,0x93,0xc3]
185           kmovq  %k3, %rax
186
187 // CHECK: kmovq  %k3, %r8
188 // CHECK:  encoding: [0xc4,0x61,0xfb,0x93,0xc3]
189           kmovq  %k3, %r8
190
191 // CHECK: kmovd  %k5, %eax
192 // CHECK:  encoding: [0xc5,0xfb,0x93,0xc5]
193           kmovd  %k5, %eax
194
195 // CHECK: kmovd  %k5, %ebp
196 // CHECK:  encoding: [0xc5,0xfb,0x93,0xed]
197           kmovd  %k5, %ebp
198
199 // CHECK: kmovd  %k5, %r13d
200 // CHECK:  encoding: [0xc5,0x7b,0x93,0xed]
201           kmovd  %k5, %r13d
202
203 // CHECK: vmovdqu8 %zmm18, (%rcx)
204 // CHECK:  encoding: [0x62,0xe1,0x7f,0x48,0x7f,0x11]
205           vmovdqu8 %zmm18, (%rcx)
206
207 // CHECK: vmovdqu8 %zmm18, (%rcx) {%k3}
208 // CHECK:  encoding: [0x62,0xe1,0x7f,0x4b,0x7f,0x11]
209           vmovdqu8 %zmm18, (%rcx) {%k3}
210
211 // CHECK: vmovdqu8 %zmm18, 291(%rax,%r14,8)
212 // CHECK:  encoding: [0x62,0xa1,0x7f,0x48,0x7f,0x94,0xf0,0x23,0x01,0x00,0x00]
213           vmovdqu8 %zmm18, 291(%rax,%r14,8)
214
215 // CHECK: vmovdqu8 %zmm18, 8128(%rdx)
216 // CHECK:  encoding: [0x62,0xe1,0x7f,0x48,0x7f,0x52,0x7f]
217           vmovdqu8 %zmm18, 8128(%rdx)
218
219 // CHECK: vmovdqu8 %zmm18, 8192(%rdx)
220 // CHECK:  encoding: [0x62,0xe1,0x7f,0x48,0x7f,0x92,0x00,0x20,0x00,0x00]
221           vmovdqu8 %zmm18, 8192(%rdx)
222
223 // CHECK: vmovdqu8 %zmm18, -8192(%rdx)
224 // CHECK:  encoding: [0x62,0xe1,0x7f,0x48,0x7f,0x52,0x80]
225           vmovdqu8 %zmm18, -8192(%rdx)
226
227 // CHECK: vmovdqu8 %zmm18, -8256(%rdx)
228 // CHECK:  encoding: [0x62,0xe1,0x7f,0x48,0x7f,0x92,0xc0,0xdf,0xff,0xff]
229           vmovdqu8 %zmm18, -8256(%rdx)
230
231 // CHECK: vmovdqu16 %zmm28, (%rcx)
232 // CHECK:  encoding: [0x62,0x61,0xff,0x48,0x7f,0x21]
233           vmovdqu16 %zmm28, (%rcx)
234
235 // CHECK: vmovdqu16 %zmm28, (%rcx) {%k6}
236 // CHECK:  encoding: [0x62,0x61,0xff,0x4e,0x7f,0x21]
237           vmovdqu16 %zmm28, (%rcx) {%k6}
238
239 // CHECK: vmovdqu16 %zmm28, 291(%rax,%r14,8)
240 // CHECK:  encoding: [0x62,0x21,0xff,0x48,0x7f,0xa4,0xf0,0x23,0x01,0x00,0x00]
241           vmovdqu16 %zmm28, 291(%rax,%r14,8)
242
243 // CHECK: vmovdqu16 %zmm28, 8128(%rdx)
244 // CHECK:  encoding: [0x62,0x61,0xff,0x48,0x7f,0x62,0x7f]
245           vmovdqu16 %zmm28, 8128(%rdx)
246
247 // CHECK: vmovdqu16 %zmm28, 8192(%rdx)
248 // CHECK:  encoding: [0x62,0x61,0xff,0x48,0x7f,0xa2,0x00,0x20,0x00,0x00]
249           vmovdqu16 %zmm28, 8192(%rdx)
250
251 // CHECK: vmovdqu16 %zmm28, -8192(%rdx)
252 // CHECK:  encoding: [0x62,0x61,0xff,0x48,0x7f,0x62,0x80]
253           vmovdqu16 %zmm28, -8192(%rdx)
254
255 // CHECK: vmovdqu16 %zmm28, -8256(%rdx)
256 // CHECK:  encoding: [0x62,0x61,0xff,0x48,0x7f,0xa2,0xc0,0xdf,0xff,0xff]
257           vmovdqu16 %zmm28, -8256(%rdx)