xref: /llvm-project/llvm/test/MC/X86/apx/crc32-att.s (revision d8db2733c87ef2ee54c322cbee76711147a94948)
1# RUN: llvm-mc -triple x86_64 --show-encoding %s | FileCheck %s
2# RUN: not llvm-mc -triple i386 -show-encoding %s 2>&1 | FileCheck %s --check-prefix=ERROR
3
4# ERROR-COUNT-22: error:
5# ERROR-NOT: error:
6# CHECK: {evex}	crc32b	%al, %ebx
7# CHECK: encoding: [0x62,0xf4,0x7c,0x08,0xf0,0xd8]
8         {evex}	crc32b	%al, %ebx
9
10# CHECK: {evex}	crc32b	%al, %rbx
11# CHECK: encoding: [0x62,0xf4,0xfc,0x08,0xf0,0xd8]
12         {evex}	crc32b	%al, %rbx
13
14# CHECK: {evex}	crc32w	%ax, %ebx
15# CHECK: encoding: [0x62,0xf4,0x7d,0x08,0xf1,0xd8]
16         {evex}	crc32w	%ax, %ebx
17
18# CHECK: {evex}	crc32l	%eax, %ebx
19# CHECK: encoding: [0x62,0xf4,0x7c,0x08,0xf1,0xd8]
20         {evex}	crc32l	%eax, %ebx
21
22# CHECK: {evex}	crc32q	%rax, %rbx
23# CHECK: encoding: [0x62,0xf4,0xfc,0x08,0xf1,0xd8]
24         {evex}	crc32q	%rax, %rbx
25
26# CHECK: {evex}	crc32w	291(%rax,%rbx,4), %ecx
27# CHECK: encoding: [0x62,0xf4,0x7d,0x08,0xf1,0x8c,0x98,0x23,0x01,0x00,0x00]
28         {evex}	crc32w	291(%rax,%rbx,4), %ecx
29
30# CHECK: {evex}	crc32l	291(%rax,%rbx,4), %ecx
31# CHECK: encoding: [0x62,0xf4,0x7c,0x08,0xf1,0x8c,0x98,0x23,0x01,0x00,0x00]
32         {evex}	crc32l	291(%rax,%rbx,4), %ecx
33
34# CHECK: {evex}	crc32b	291(%rax,%rbx,4), %rcx
35# CHECK: encoding: [0x62,0xf4,0xfc,0x08,0xf0,0x8c,0x98,0x23,0x01,0x00,0x00]
36         {evex}	crc32b	291(%rax,%rbx,4), %rcx
37
38# CHECK: {evex}	crc32q	291(%rax,%rbx,4), %rcx
39# CHECK: encoding: [0x62,0xf4,0xfc,0x08,0xf1,0x8c,0x98,0x23,0x01,0x00,0x00]
40         {evex}	crc32q	291(%rax,%rbx,4), %rcx
41
42# CHECK: crc32b	%r16b, %r22d
43# CHECK: encoding: [0x62,0xec,0x7c,0x08,0xf0,0xf0]
44         crc32b	%r16b, %r22d
45
46# CHECK: crc32b	%r16b, %r23
47# CHECK: encoding: [0x62,0xec,0xfc,0x08,0xf0,0xf8]
48         crc32b	%r16b, %r23
49
50# CHECK: crc32w	%r17w, %r22d
51# CHECK: encoding: [0x62,0xec,0x7d,0x08,0xf1,0xf1]
52         crc32w	%r17w, %r22d
53
54# CHECK: crc32l	%r18d, %r22d
55# CHECK: encoding: [0x62,0xec,0x7c,0x08,0xf1,0xf2]
56         crc32l	%r18d, %r22d
57
58# CHECK: crc32q	%r19, %r23
59# CHECK: encoding: [0x62,0xec,0xfc,0x08,0xf1,0xfb]
60         crc32q	%r19, %r23
61
62# CHECK: crc32w	291(%r28,%r29,4), %r18d
63# CHECK: encoding: [0x62,0x8c,0x79,0x08,0xf1,0x94,0xac,0x23,0x01,0x00,0x00]
64         crc32w	291(%r28,%r29,4), %r18d
65
66# CHECK: crc32l	291(%r28,%r29,4), %r18d
67# CHECK: encoding: [0x62,0x8c,0x78,0x08,0xf1,0x94,0xac,0x23,0x01,0x00,0x00]
68         crc32l	291(%r28,%r29,4), %r18d
69
70# CHECK: crc32b	291(%r28,%r29,4), %r19
71# CHECK: encoding: [0x62,0x8c,0xf8,0x08,0xf0,0x9c,0xac,0x23,0x01,0x00,0x00]
72         crc32b	291(%r28,%r29,4), %r19
73
74# CHECK: crc32q	291(%r28,%r29,4), %r19
75# CHECK: encoding: [0x62,0x8c,0xf8,0x08,0xf1,0x9c,0xac,0x23,0x01,0x00,0x00]
76         crc32q	291(%r28,%r29,4), %r19
77
78# CHECK: crc32w	123(%r28,%r29,4), %r18d
79# CHECK: encoding: [0x62,0x8c,0x79,0x08,0xf1,0x54,0xac,0x7b]
80         crc32w	123(%r28,%r29,4), %r18d
81
82# CHECK: crc32l	123(%r28,%r29,4), %r18d
83# CHECK: encoding: [0x62,0x8c,0x78,0x08,0xf1,0x54,0xac,0x7b]
84         crc32l	123(%r28,%r29,4), %r18d
85
86# CHECK: crc32b	123(%r28,%r29,4), %r19
87# CHECK: encoding: [0x62,0x8c,0xf8,0x08,0xf0,0x5c,0xac,0x7b]
88         crc32b	123(%r28,%r29,4), %r19
89
90# CHECK: crc32q	123(%r28,%r29,4), %r19
91# CHECK: encoding: [0x62,0x8c,0xf8,0x08,0xf1,0x5c,0xac,0x7b]
92         crc32q	123(%r28,%r29,4), %r19
93