[ARM] Better OR's for MVE compares
[llvm-core.git] / test / MC / X86 / SHA-64.s
blob56a47f249829b74acd69890468b996df5eaa4ee7
1 // RUN: llvm-mc -triple x86_64-unknown-unknown --show-encoding %s | FileCheck %s
3 // CHECK: sha1msg1 485498096, %xmm15
4 // CHECK: encoding: [0x44,0x0f,0x38,0xc9,0x3c,0x25,0xf0,0x1c,0xf0,0x1c]
5 sha1msg1 485498096, %xmm15
7 // CHECK: sha1msg1 485498096, %xmm6
8 // CHECK: encoding: [0x0f,0x38,0xc9,0x34,0x25,0xf0,0x1c,0xf0,0x1c]
9 sha1msg1 485498096, %xmm6
11 // CHECK: sha1msg1 64(%rdx,%rax,4), %xmm15
12 // CHECK: encoding: [0x44,0x0f,0x38,0xc9,0x7c,0x82,0x40]
13 sha1msg1 64(%rdx,%rax,4), %xmm15
15 // CHECK: sha1msg1 -64(%rdx,%rax,4), %xmm15
16 // CHECK: encoding: [0x44,0x0f,0x38,0xc9,0x7c,0x82,0xc0]
17 sha1msg1 -64(%rdx,%rax,4), %xmm15
19 // CHECK: sha1msg1 64(%rdx,%rax,4), %xmm6
20 // CHECK: encoding: [0x0f,0x38,0xc9,0x74,0x82,0x40]
21 sha1msg1 64(%rdx,%rax,4), %xmm6
23 // CHECK: sha1msg1 -64(%rdx,%rax,4), %xmm6
24 // CHECK: encoding: [0x0f,0x38,0xc9,0x74,0x82,0xc0]
25 sha1msg1 -64(%rdx,%rax,4), %xmm6
27 // CHECK: sha1msg1 64(%rdx,%rax), %xmm15
28 // CHECK: encoding: [0x44,0x0f,0x38,0xc9,0x7c,0x02,0x40]
29 sha1msg1 64(%rdx,%rax), %xmm15
31 // CHECK: sha1msg1 64(%rdx,%rax), %xmm6
32 // CHECK: encoding: [0x0f,0x38,0xc9,0x74,0x02,0x40]
33 sha1msg1 64(%rdx,%rax), %xmm6
35 // CHECK: sha1msg1 64(%rdx), %xmm15
36 // CHECK: encoding: [0x44,0x0f,0x38,0xc9,0x7a,0x40]
37 sha1msg1 64(%rdx), %xmm15
39 // CHECK: sha1msg1 64(%rdx), %xmm6
40 // CHECK: encoding: [0x0f,0x38,0xc9,0x72,0x40]
41 sha1msg1 64(%rdx), %xmm6
43 // CHECK: sha1msg1 (%rdx), %xmm15
44 // CHECK: encoding: [0x44,0x0f,0x38,0xc9,0x3a]
45 sha1msg1 (%rdx), %xmm15
47 // CHECK: sha1msg1 (%rdx), %xmm6
48 // CHECK: encoding: [0x0f,0x38,0xc9,0x32]
49 sha1msg1 (%rdx), %xmm6
51 // CHECK: sha1msg1 %xmm15, %xmm15
52 // CHECK: encoding: [0x45,0x0f,0x38,0xc9,0xff]
53 sha1msg1 %xmm15, %xmm15
55 // CHECK: sha1msg1 %xmm6, %xmm6
56 // CHECK: encoding: [0x0f,0x38,0xc9,0xf6]
57 sha1msg1 %xmm6, %xmm6
59 // CHECK: sha1msg2 485498096, %xmm15
60 // CHECK: encoding: [0x44,0x0f,0x38,0xca,0x3c,0x25,0xf0,0x1c,0xf0,0x1c]
61 sha1msg2 485498096, %xmm15
63 // CHECK: sha1msg2 485498096, %xmm6
64 // CHECK: encoding: [0x0f,0x38,0xca,0x34,0x25,0xf0,0x1c,0xf0,0x1c]
65 sha1msg2 485498096, %xmm6
67 // CHECK: sha1msg2 64(%rdx,%rax,4), %xmm15
68 // CHECK: encoding: [0x44,0x0f,0x38,0xca,0x7c,0x82,0x40]
69 sha1msg2 64(%rdx,%rax,4), %xmm15
71 // CHECK: sha1msg2 -64(%rdx,%rax,4), %xmm15
72 // CHECK: encoding: [0x44,0x0f,0x38,0xca,0x7c,0x82,0xc0]
73 sha1msg2 -64(%rdx,%rax,4), %xmm15
75 // CHECK: sha1msg2 64(%rdx,%rax,4), %xmm6
76 // CHECK: encoding: [0x0f,0x38,0xca,0x74,0x82,0x40]
77 sha1msg2 64(%rdx,%rax,4), %xmm6
79 // CHECK: sha1msg2 -64(%rdx,%rax,4), %xmm6
80 // CHECK: encoding: [0x0f,0x38,0xca,0x74,0x82,0xc0]
81 sha1msg2 -64(%rdx,%rax,4), %xmm6
83 // CHECK: sha1msg2 64(%rdx,%rax), %xmm15
84 // CHECK: encoding: [0x44,0x0f,0x38,0xca,0x7c,0x02,0x40]
85 sha1msg2 64(%rdx,%rax), %xmm15
87 // CHECK: sha1msg2 64(%rdx,%rax), %xmm6
88 // CHECK: encoding: [0x0f,0x38,0xca,0x74,0x02,0x40]
89 sha1msg2 64(%rdx,%rax), %xmm6
91 // CHECK: sha1msg2 64(%rdx), %xmm15
92 // CHECK: encoding: [0x44,0x0f,0x38,0xca,0x7a,0x40]
93 sha1msg2 64(%rdx), %xmm15
95 // CHECK: sha1msg2 64(%rdx), %xmm6
96 // CHECK: encoding: [0x0f,0x38,0xca,0x72,0x40]
97 sha1msg2 64(%rdx), %xmm6
99 // CHECK: sha1msg2 (%rdx), %xmm15
100 // CHECK: encoding: [0x44,0x0f,0x38,0xca,0x3a]
101 sha1msg2 (%rdx), %xmm15
103 // CHECK: sha1msg2 (%rdx), %xmm6
104 // CHECK: encoding: [0x0f,0x38,0xca,0x32]
105 sha1msg2 (%rdx), %xmm6
107 // CHECK: sha1msg2 %xmm15, %xmm15
108 // CHECK: encoding: [0x45,0x0f,0x38,0xca,0xff]
109 sha1msg2 %xmm15, %xmm15
111 // CHECK: sha1msg2 %xmm6, %xmm6
112 // CHECK: encoding: [0x0f,0x38,0xca,0xf6]
113 sha1msg2 %xmm6, %xmm6
115 // CHECK: sha1nexte 485498096, %xmm15
116 // CHECK: encoding: [0x44,0x0f,0x38,0xc8,0x3c,0x25,0xf0,0x1c,0xf0,0x1c]
117 sha1nexte 485498096, %xmm15
119 // CHECK: sha1nexte 485498096, %xmm6
120 // CHECK: encoding: [0x0f,0x38,0xc8,0x34,0x25,0xf0,0x1c,0xf0,0x1c]
121 sha1nexte 485498096, %xmm6
123 // CHECK: sha1nexte 64(%rdx,%rax,4), %xmm15
124 // CHECK: encoding: [0x44,0x0f,0x38,0xc8,0x7c,0x82,0x40]
125 sha1nexte 64(%rdx,%rax,4), %xmm15
127 // CHECK: sha1nexte -64(%rdx,%rax,4), %xmm15
128 // CHECK: encoding: [0x44,0x0f,0x38,0xc8,0x7c,0x82,0xc0]
129 sha1nexte -64(%rdx,%rax,4), %xmm15
131 // CHECK: sha1nexte 64(%rdx,%rax,4), %xmm6
132 // CHECK: encoding: [0x0f,0x38,0xc8,0x74,0x82,0x40]
133 sha1nexte 64(%rdx,%rax,4), %xmm6
135 // CHECK: sha1nexte -64(%rdx,%rax,4), %xmm6
136 // CHECK: encoding: [0x0f,0x38,0xc8,0x74,0x82,0xc0]
137 sha1nexte -64(%rdx,%rax,4), %xmm6
139 // CHECK: sha1nexte 64(%rdx,%rax), %xmm15
140 // CHECK: encoding: [0x44,0x0f,0x38,0xc8,0x7c,0x02,0x40]
141 sha1nexte 64(%rdx,%rax), %xmm15
143 // CHECK: sha1nexte 64(%rdx,%rax), %xmm6
144 // CHECK: encoding: [0x0f,0x38,0xc8,0x74,0x02,0x40]
145 sha1nexte 64(%rdx,%rax), %xmm6
147 // CHECK: sha1nexte 64(%rdx), %xmm15
148 // CHECK: encoding: [0x44,0x0f,0x38,0xc8,0x7a,0x40]
149 sha1nexte 64(%rdx), %xmm15
151 // CHECK: sha1nexte 64(%rdx), %xmm6
152 // CHECK: encoding: [0x0f,0x38,0xc8,0x72,0x40]
153 sha1nexte 64(%rdx), %xmm6
155 // CHECK: sha1nexte (%rdx), %xmm15
156 // CHECK: encoding: [0x44,0x0f,0x38,0xc8,0x3a]
157 sha1nexte (%rdx), %xmm15
159 // CHECK: sha1nexte (%rdx), %xmm6
160 // CHECK: encoding: [0x0f,0x38,0xc8,0x32]
161 sha1nexte (%rdx), %xmm6
163 // CHECK: sha1nexte %xmm15, %xmm15
164 // CHECK: encoding: [0x45,0x0f,0x38,0xc8,0xff]
165 sha1nexte %xmm15, %xmm15
167 // CHECK: sha1nexte %xmm6, %xmm6
168 // CHECK: encoding: [0x0f,0x38,0xc8,0xf6]
169 sha1nexte %xmm6, %xmm6
171 // CHECK: sha1rnds4 $0, 485498096, %xmm15
172 // CHECK: encoding: [0x44,0x0f,0x3a,0xcc,0x3c,0x25,0xf0,0x1c,0xf0,0x1c,0x00]
173 sha1rnds4 $0, 485498096, %xmm15
175 // CHECK: sha1rnds4 $0, 485498096, %xmm6
176 // CHECK: encoding: [0x0f,0x3a,0xcc,0x34,0x25,0xf0,0x1c,0xf0,0x1c,0x00]
177 sha1rnds4 $0, 485498096, %xmm6
179 // CHECK: sha1rnds4 $0, 64(%rdx,%rax,4), %xmm15
180 // CHECK: encoding: [0x44,0x0f,0x3a,0xcc,0x7c,0x82,0x40,0x00]
181 sha1rnds4 $0, 64(%rdx,%rax,4), %xmm15
183 // CHECK: sha1rnds4 $0, -64(%rdx,%rax,4), %xmm15
184 // CHECK: encoding: [0x44,0x0f,0x3a,0xcc,0x7c,0x82,0xc0,0x00]
185 sha1rnds4 $0, -64(%rdx,%rax,4), %xmm15
187 // CHECK: sha1rnds4 $0, 64(%rdx,%rax,4), %xmm6
188 // CHECK: encoding: [0x0f,0x3a,0xcc,0x74,0x82,0x40,0x00]
189 sha1rnds4 $0, 64(%rdx,%rax,4), %xmm6
191 // CHECK: sha1rnds4 $0, -64(%rdx,%rax,4), %xmm6
192 // CHECK: encoding: [0x0f,0x3a,0xcc,0x74,0x82,0xc0,0x00]
193 sha1rnds4 $0, -64(%rdx,%rax,4), %xmm6
195 // CHECK: sha1rnds4 $0, 64(%rdx,%rax), %xmm15
196 // CHECK: encoding: [0x44,0x0f,0x3a,0xcc,0x7c,0x02,0x40,0x00]
197 sha1rnds4 $0, 64(%rdx,%rax), %xmm15
199 // CHECK: sha1rnds4 $0, 64(%rdx,%rax), %xmm6
200 // CHECK: encoding: [0x0f,0x3a,0xcc,0x74,0x02,0x40,0x00]
201 sha1rnds4 $0, 64(%rdx,%rax), %xmm6
203 // CHECK: sha1rnds4 $0, 64(%rdx), %xmm15
204 // CHECK: encoding: [0x44,0x0f,0x3a,0xcc,0x7a,0x40,0x00]
205 sha1rnds4 $0, 64(%rdx), %xmm15
207 // CHECK: sha1rnds4 $0, 64(%rdx), %xmm6
208 // CHECK: encoding: [0x0f,0x3a,0xcc,0x72,0x40,0x00]
209 sha1rnds4 $0, 64(%rdx), %xmm6
211 // CHECK: sha1rnds4 $0, (%rdx), %xmm15
212 // CHECK: encoding: [0x44,0x0f,0x3a,0xcc,0x3a,0x00]
213 sha1rnds4 $0, (%rdx), %xmm15
215 // CHECK: sha1rnds4 $0, (%rdx), %xmm6
216 // CHECK: encoding: [0x0f,0x3a,0xcc,0x32,0x00]
217 sha1rnds4 $0, (%rdx), %xmm6
219 // CHECK: sha1rnds4 $0, %xmm15, %xmm15
220 // CHECK: encoding: [0x45,0x0f,0x3a,0xcc,0xff,0x00]
221 sha1rnds4 $0, %xmm15, %xmm15
223 // CHECK: sha1rnds4 $0, %xmm6, %xmm6
224 // CHECK: encoding: [0x0f,0x3a,0xcc,0xf6,0x00]
225 sha1rnds4 $0, %xmm6, %xmm6
227 // CHECK: sha256msg1 485498096, %xmm15
228 // CHECK: encoding: [0x44,0x0f,0x38,0xcc,0x3c,0x25,0xf0,0x1c,0xf0,0x1c]
229 sha256msg1 485498096, %xmm15
231 // CHECK: sha256msg1 485498096, %xmm6
232 // CHECK: encoding: [0x0f,0x38,0xcc,0x34,0x25,0xf0,0x1c,0xf0,0x1c]
233 sha256msg1 485498096, %xmm6
235 // CHECK: sha256msg1 64(%rdx,%rax,4), %xmm15
236 // CHECK: encoding: [0x44,0x0f,0x38,0xcc,0x7c,0x82,0x40]
237 sha256msg1 64(%rdx,%rax,4), %xmm15
239 // CHECK: sha256msg1 -64(%rdx,%rax,4), %xmm15
240 // CHECK: encoding: [0x44,0x0f,0x38,0xcc,0x7c,0x82,0xc0]
241 sha256msg1 -64(%rdx,%rax,4), %xmm15
243 // CHECK: sha256msg1 64(%rdx,%rax,4), %xmm6
244 // CHECK: encoding: [0x0f,0x38,0xcc,0x74,0x82,0x40]
245 sha256msg1 64(%rdx,%rax,4), %xmm6
247 // CHECK: sha256msg1 -64(%rdx,%rax,4), %xmm6
248 // CHECK: encoding: [0x0f,0x38,0xcc,0x74,0x82,0xc0]
249 sha256msg1 -64(%rdx,%rax,4), %xmm6
251 // CHECK: sha256msg1 64(%rdx,%rax), %xmm15
252 // CHECK: encoding: [0x44,0x0f,0x38,0xcc,0x7c,0x02,0x40]
253 sha256msg1 64(%rdx,%rax), %xmm15
255 // CHECK: sha256msg1 64(%rdx,%rax), %xmm6
256 // CHECK: encoding: [0x0f,0x38,0xcc,0x74,0x02,0x40]
257 sha256msg1 64(%rdx,%rax), %xmm6
259 // CHECK: sha256msg1 64(%rdx), %xmm15
260 // CHECK: encoding: [0x44,0x0f,0x38,0xcc,0x7a,0x40]
261 sha256msg1 64(%rdx), %xmm15
263 // CHECK: sha256msg1 64(%rdx), %xmm6
264 // CHECK: encoding: [0x0f,0x38,0xcc,0x72,0x40]
265 sha256msg1 64(%rdx), %xmm6
267 // CHECK: sha256msg1 (%rdx), %xmm15
268 // CHECK: encoding: [0x44,0x0f,0x38,0xcc,0x3a]
269 sha256msg1 (%rdx), %xmm15
271 // CHECK: sha256msg1 (%rdx), %xmm6
272 // CHECK: encoding: [0x0f,0x38,0xcc,0x32]
273 sha256msg1 (%rdx), %xmm6
275 // CHECK: sha256msg1 %xmm15, %xmm15
276 // CHECK: encoding: [0x45,0x0f,0x38,0xcc,0xff]
277 sha256msg1 %xmm15, %xmm15
279 // CHECK: sha256msg1 %xmm6, %xmm6
280 // CHECK: encoding: [0x0f,0x38,0xcc,0xf6]
281 sha256msg1 %xmm6, %xmm6
283 // CHECK: sha256msg2 485498096, %xmm15
284 // CHECK: encoding: [0x44,0x0f,0x38,0xcd,0x3c,0x25,0xf0,0x1c,0xf0,0x1c]
285 sha256msg2 485498096, %xmm15
287 // CHECK: sha256msg2 485498096, %xmm6
288 // CHECK: encoding: [0x0f,0x38,0xcd,0x34,0x25,0xf0,0x1c,0xf0,0x1c]
289 sha256msg2 485498096, %xmm6
291 // CHECK: sha256msg2 64(%rdx,%rax,4), %xmm15
292 // CHECK: encoding: [0x44,0x0f,0x38,0xcd,0x7c,0x82,0x40]
293 sha256msg2 64(%rdx,%rax,4), %xmm15
295 // CHECK: sha256msg2 -64(%rdx,%rax,4), %xmm15
296 // CHECK: encoding: [0x44,0x0f,0x38,0xcd,0x7c,0x82,0xc0]
297 sha256msg2 -64(%rdx,%rax,4), %xmm15
299 // CHECK: sha256msg2 64(%rdx,%rax,4), %xmm6
300 // CHECK: encoding: [0x0f,0x38,0xcd,0x74,0x82,0x40]
301 sha256msg2 64(%rdx,%rax,4), %xmm6
303 // CHECK: sha256msg2 -64(%rdx,%rax,4), %xmm6
304 // CHECK: encoding: [0x0f,0x38,0xcd,0x74,0x82,0xc0]
305 sha256msg2 -64(%rdx,%rax,4), %xmm6
307 // CHECK: sha256msg2 64(%rdx,%rax), %xmm15
308 // CHECK: encoding: [0x44,0x0f,0x38,0xcd,0x7c,0x02,0x40]
309 sha256msg2 64(%rdx,%rax), %xmm15
311 // CHECK: sha256msg2 64(%rdx,%rax), %xmm6
312 // CHECK: encoding: [0x0f,0x38,0xcd,0x74,0x02,0x40]
313 sha256msg2 64(%rdx,%rax), %xmm6
315 // CHECK: sha256msg2 64(%rdx), %xmm15
316 // CHECK: encoding: [0x44,0x0f,0x38,0xcd,0x7a,0x40]
317 sha256msg2 64(%rdx), %xmm15
319 // CHECK: sha256msg2 64(%rdx), %xmm6
320 // CHECK: encoding: [0x0f,0x38,0xcd,0x72,0x40]
321 sha256msg2 64(%rdx), %xmm6
323 // CHECK: sha256msg2 (%rdx), %xmm15
324 // CHECK: encoding: [0x44,0x0f,0x38,0xcd,0x3a]
325 sha256msg2 (%rdx), %xmm15
327 // CHECK: sha256msg2 (%rdx), %xmm6
328 // CHECK: encoding: [0x0f,0x38,0xcd,0x32]
329 sha256msg2 (%rdx), %xmm6
331 // CHECK: sha256msg2 %xmm15, %xmm15
332 // CHECK: encoding: [0x45,0x0f,0x38,0xcd,0xff]
333 sha256msg2 %xmm15, %xmm15
335 // CHECK: sha256msg2 %xmm6, %xmm6
336 // CHECK: encoding: [0x0f,0x38,0xcd,0xf6]
337 sha256msg2 %xmm6, %xmm6
339 // CHECK: sha256rnds2 %xmm0, 485498096, %xmm15
340 // CHECK: encoding: [0x44,0x0f,0x38,0xcb,0x3c,0x25,0xf0,0x1c,0xf0,0x1c]
341 sha256rnds2 %xmm0, 485498096, %xmm15
343 // CHECK: sha256rnds2 %xmm0, 485498096, %xmm6
344 // CHECK: encoding: [0x0f,0x38,0xcb,0x34,0x25,0xf0,0x1c,0xf0,0x1c]
345 sha256rnds2 %xmm0, 485498096, %xmm6
347 // CHECK: sha256rnds2 %xmm0, 64(%rdx,%rax,4), %xmm15
348 // CHECK: encoding: [0x44,0x0f,0x38,0xcb,0x7c,0x82,0x40]
349 sha256rnds2 %xmm0, 64(%rdx,%rax,4), %xmm15
351 // CHECK: sha256rnds2 %xmm0, -64(%rdx,%rax,4), %xmm15
352 // CHECK: encoding: [0x44,0x0f,0x38,0xcb,0x7c,0x82,0xc0]
353 sha256rnds2 %xmm0, -64(%rdx,%rax,4), %xmm15
355 // CHECK: sha256rnds2 %xmm0, 64(%rdx,%rax,4), %xmm6
356 // CHECK: encoding: [0x0f,0x38,0xcb,0x74,0x82,0x40]
357 sha256rnds2 %xmm0, 64(%rdx,%rax,4), %xmm6
359 // CHECK: sha256rnds2 %xmm0, -64(%rdx,%rax,4), %xmm6
360 // CHECK: encoding: [0x0f,0x38,0xcb,0x74,0x82,0xc0]
361 sha256rnds2 %xmm0, -64(%rdx,%rax,4), %xmm6
363 // CHECK: sha256rnds2 %xmm0, 64(%rdx,%rax), %xmm15
364 // CHECK: encoding: [0x44,0x0f,0x38,0xcb,0x7c,0x02,0x40]
365 sha256rnds2 %xmm0, 64(%rdx,%rax), %xmm15
367 // CHECK: sha256rnds2 %xmm0, 64(%rdx,%rax), %xmm6
368 // CHECK: encoding: [0x0f,0x38,0xcb,0x74,0x02,0x40]
369 sha256rnds2 %xmm0, 64(%rdx,%rax), %xmm6
371 // CHECK: sha256rnds2 %xmm0, 64(%rdx), %xmm15
372 // CHECK: encoding: [0x44,0x0f,0x38,0xcb,0x7a,0x40]
373 sha256rnds2 %xmm0, 64(%rdx), %xmm15
375 // CHECK: sha256rnds2 %xmm0, 64(%rdx), %xmm6
376 // CHECK: encoding: [0x0f,0x38,0xcb,0x72,0x40]
377 sha256rnds2 %xmm0, 64(%rdx), %xmm6
379 // CHECK: sha256rnds2 %xmm0, (%rdx), %xmm15
380 // CHECK: encoding: [0x44,0x0f,0x38,0xcb,0x3a]
381 sha256rnds2 %xmm0, (%rdx), %xmm15
383 // CHECK: sha256rnds2 %xmm0, (%rdx), %xmm6
384 // CHECK: encoding: [0x0f,0x38,0xcb,0x32]
385 sha256rnds2 %xmm0, (%rdx), %xmm6
387 // CHECK: sha256rnds2 %xmm0, %xmm15, %xmm15
388 // CHECK: encoding: [0x45,0x0f,0x38,0xcb,0xff]
389 sha256rnds2 %xmm0, %xmm15, %xmm15
391 // CHECK: sha256rnds2 %xmm0, %xmm6, %xmm6
392 // CHECK: encoding: [0x0f,0x38,0xcb,0xf6]
393 sha256rnds2 %xmm0, %xmm6, %xmm6