Skip to content

Commit 448b4af

Browse files
committedDec 14, 2017
[X86][AES]: Adding full coverage of MC encoding for the AES and AVXAES isa sets.<NFC>
NFC. Adding MC regressions tests to cover the AES and AVXAES ISA sets both 32 and 64 bit. This patch is part of a larger task to cover MC encoding of all X86 ISA Sets. started in revision: https://reviews.llvm.org/D39952 Reviewers: zvi, craig.topper, m_zuckerman, RKSimon Differential Revision: https://reviews.llvm.org/D41154 Change-Id: I2564f9797628d0c070c4766f837f399337fb87d2 llvm-svn: 320670
1 parent cf77203 commit 448b4af

File tree

4 files changed

+1016
-0
lines changed

4 files changed

+1016
-0
lines changed
 

‎llvm/test/MC/X86/AES-32.s

+170
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,170 @@
1+
// RUN: llvm-mc -triple i386-unknown-unknown --show-encoding %s | FileCheck %s
2+
3+
// CHECK: aesdec -485498096(%edx,%eax,4), %xmm1
4+
// CHECK: encoding: [0x66,0x0f,0x38,0xde,0x8c,0x82,0x10,0xe3,0x0f,0xe3]
5+
aesdec -485498096(%edx,%eax,4), %xmm1
6+
7+
// CHECK: aesdec 485498096(%edx,%eax,4), %xmm1
8+
// CHECK: encoding: [0x66,0x0f,0x38,0xde,0x8c,0x82,0xf0,0x1c,0xf0,0x1c]
9+
aesdec 485498096(%edx,%eax,4), %xmm1
10+
11+
// CHECK: aesdec 485498096(%edx), %xmm1
12+
// CHECK: encoding: [0x66,0x0f,0x38,0xde,0x8a,0xf0,0x1c,0xf0,0x1c]
13+
aesdec 485498096(%edx), %xmm1
14+
15+
// CHECK: aesdec 485498096, %xmm1
16+
// CHECK: encoding: [0x66,0x0f,0x38,0xde,0x0d,0xf0,0x1c,0xf0,0x1c]
17+
aesdec 485498096, %xmm1
18+
19+
// CHECK: aesdec 64(%edx,%eax), %xmm1
20+
// CHECK: encoding: [0x66,0x0f,0x38,0xde,0x4c,0x02,0x40]
21+
aesdec 64(%edx,%eax), %xmm1
22+
23+
// CHECK: aesdec (%edx), %xmm1
24+
// CHECK: encoding: [0x66,0x0f,0x38,0xde,0x0a]
25+
aesdec (%edx), %xmm1
26+
27+
// CHECK: aesdeclast -485498096(%edx,%eax,4), %xmm1
28+
// CHECK: encoding: [0x66,0x0f,0x38,0xdf,0x8c,0x82,0x10,0xe3,0x0f,0xe3]
29+
aesdeclast -485498096(%edx,%eax,4), %xmm1
30+
31+
// CHECK: aesdeclast 485498096(%edx,%eax,4), %xmm1
32+
// CHECK: encoding: [0x66,0x0f,0x38,0xdf,0x8c,0x82,0xf0,0x1c,0xf0,0x1c]
33+
aesdeclast 485498096(%edx,%eax,4), %xmm1
34+
35+
// CHECK: aesdeclast 485498096(%edx), %xmm1
36+
// CHECK: encoding: [0x66,0x0f,0x38,0xdf,0x8a,0xf0,0x1c,0xf0,0x1c]
37+
aesdeclast 485498096(%edx), %xmm1
38+
39+
// CHECK: aesdeclast 485498096, %xmm1
40+
// CHECK: encoding: [0x66,0x0f,0x38,0xdf,0x0d,0xf0,0x1c,0xf0,0x1c]
41+
aesdeclast 485498096, %xmm1
42+
43+
// CHECK: aesdeclast 64(%edx,%eax), %xmm1
44+
// CHECK: encoding: [0x66,0x0f,0x38,0xdf,0x4c,0x02,0x40]
45+
aesdeclast 64(%edx,%eax), %xmm1
46+
47+
// CHECK: aesdeclast (%edx), %xmm1
48+
// CHECK: encoding: [0x66,0x0f,0x38,0xdf,0x0a]
49+
aesdeclast (%edx), %xmm1
50+
51+
// CHECK: aesdeclast %xmm1, %xmm1
52+
// CHECK: encoding: [0x66,0x0f,0x38,0xdf,0xc9]
53+
aesdeclast %xmm1, %xmm1
54+
55+
// CHECK: aesdec %xmm1, %xmm1
56+
// CHECK: encoding: [0x66,0x0f,0x38,0xde,0xc9]
57+
aesdec %xmm1, %xmm1
58+
59+
// CHECK: aesenc -485498096(%edx,%eax,4), %xmm1
60+
// CHECK: encoding: [0x66,0x0f,0x38,0xdc,0x8c,0x82,0x10,0xe3,0x0f,0xe3]
61+
aesenc -485498096(%edx,%eax,4), %xmm1
62+
63+
// CHECK: aesenc 485498096(%edx,%eax,4), %xmm1
64+
// CHECK: encoding: [0x66,0x0f,0x38,0xdc,0x8c,0x82,0xf0,0x1c,0xf0,0x1c]
65+
aesenc 485498096(%edx,%eax,4), %xmm1
66+
67+
// CHECK: aesenc 485498096(%edx), %xmm1
68+
// CHECK: encoding: [0x66,0x0f,0x38,0xdc,0x8a,0xf0,0x1c,0xf0,0x1c]
69+
aesenc 485498096(%edx), %xmm1
70+
71+
// CHECK: aesenc 485498096, %xmm1
72+
// CHECK: encoding: [0x66,0x0f,0x38,0xdc,0x0d,0xf0,0x1c,0xf0,0x1c]
73+
aesenc 485498096, %xmm1
74+
75+
// CHECK: aesenc 64(%edx,%eax), %xmm1
76+
// CHECK: encoding: [0x66,0x0f,0x38,0xdc,0x4c,0x02,0x40]
77+
aesenc 64(%edx,%eax), %xmm1
78+
79+
// CHECK: aesenc (%edx), %xmm1
80+
// CHECK: encoding: [0x66,0x0f,0x38,0xdc,0x0a]
81+
aesenc (%edx), %xmm1
82+
83+
// CHECK: aesenclast -485498096(%edx,%eax,4), %xmm1
84+
// CHECK: encoding: [0x66,0x0f,0x38,0xdd,0x8c,0x82,0x10,0xe3,0x0f,0xe3]
85+
aesenclast -485498096(%edx,%eax,4), %xmm1
86+
87+
// CHECK: aesenclast 485498096(%edx,%eax,4), %xmm1
88+
// CHECK: encoding: [0x66,0x0f,0x38,0xdd,0x8c,0x82,0xf0,0x1c,0xf0,0x1c]
89+
aesenclast 485498096(%edx,%eax,4), %xmm1
90+
91+
// CHECK: aesenclast 485498096(%edx), %xmm1
92+
// CHECK: encoding: [0x66,0x0f,0x38,0xdd,0x8a,0xf0,0x1c,0xf0,0x1c]
93+
aesenclast 485498096(%edx), %xmm1
94+
95+
// CHECK: aesenclast 485498096, %xmm1
96+
// CHECK: encoding: [0x66,0x0f,0x38,0xdd,0x0d,0xf0,0x1c,0xf0,0x1c]
97+
aesenclast 485498096, %xmm1
98+
99+
// CHECK: aesenclast 64(%edx,%eax), %xmm1
100+
// CHECK: encoding: [0x66,0x0f,0x38,0xdd,0x4c,0x02,0x40]
101+
aesenclast 64(%edx,%eax), %xmm1
102+
103+
// CHECK: aesenclast (%edx), %xmm1
104+
// CHECK: encoding: [0x66,0x0f,0x38,0xdd,0x0a]
105+
aesenclast (%edx), %xmm1
106+
107+
// CHECK: aesenclast %xmm1, %xmm1
108+
// CHECK: encoding: [0x66,0x0f,0x38,0xdd,0xc9]
109+
aesenclast %xmm1, %xmm1
110+
111+
// CHECK: aesenc %xmm1, %xmm1
112+
// CHECK: encoding: [0x66,0x0f,0x38,0xdc,0xc9]
113+
aesenc %xmm1, %xmm1
114+
115+
// CHECK: aesimc -485498096(%edx,%eax,4), %xmm1
116+
// CHECK: encoding: [0x66,0x0f,0x38,0xdb,0x8c,0x82,0x10,0xe3,0x0f,0xe3]
117+
aesimc -485498096(%edx,%eax,4), %xmm1
118+
119+
// CHECK: aesimc 485498096(%edx,%eax,4), %xmm1
120+
// CHECK: encoding: [0x66,0x0f,0x38,0xdb,0x8c,0x82,0xf0,0x1c,0xf0,0x1c]
121+
aesimc 485498096(%edx,%eax,4), %xmm1
122+
123+
// CHECK: aesimc 485498096(%edx), %xmm1
124+
// CHECK: encoding: [0x66,0x0f,0x38,0xdb,0x8a,0xf0,0x1c,0xf0,0x1c]
125+
aesimc 485498096(%edx), %xmm1
126+
127+
// CHECK: aesimc 485498096, %xmm1
128+
// CHECK: encoding: [0x66,0x0f,0x38,0xdb,0x0d,0xf0,0x1c,0xf0,0x1c]
129+
aesimc 485498096, %xmm1
130+
131+
// CHECK: aesimc 64(%edx,%eax), %xmm1
132+
// CHECK: encoding: [0x66,0x0f,0x38,0xdb,0x4c,0x02,0x40]
133+
aesimc 64(%edx,%eax), %xmm1
134+
135+
// CHECK: aesimc (%edx), %xmm1
136+
// CHECK: encoding: [0x66,0x0f,0x38,0xdb,0x0a]
137+
aesimc (%edx), %xmm1
138+
139+
// CHECK: aesimc %xmm1, %xmm1
140+
// CHECK: encoding: [0x66,0x0f,0x38,0xdb,0xc9]
141+
aesimc %xmm1, %xmm1
142+
143+
// CHECK: aeskeygenassist $0, -485498096(%edx,%eax,4), %xmm1
144+
// CHECK: encoding: [0x66,0x0f,0x3a,0xdf,0x8c,0x82,0x10,0xe3,0x0f,0xe3,0x00]
145+
aeskeygenassist $0, -485498096(%edx,%eax,4), %xmm1
146+
147+
// CHECK: aeskeygenassist $0, 485498096(%edx,%eax,4), %xmm1
148+
// CHECK: encoding: [0x66,0x0f,0x3a,0xdf,0x8c,0x82,0xf0,0x1c,0xf0,0x1c,0x00]
149+
aeskeygenassist $0, 485498096(%edx,%eax,4), %xmm1
150+
151+
// CHECK: aeskeygenassist $0, 485498096(%edx), %xmm1
152+
// CHECK: encoding: [0x66,0x0f,0x3a,0xdf,0x8a,0xf0,0x1c,0xf0,0x1c,0x00]
153+
aeskeygenassist $0, 485498096(%edx), %xmm1
154+
155+
// CHECK: aeskeygenassist $0, 485498096, %xmm1
156+
// CHECK: encoding: [0x66,0x0f,0x3a,0xdf,0x0d,0xf0,0x1c,0xf0,0x1c,0x00]
157+
aeskeygenassist $0, 485498096, %xmm1
158+
159+
// CHECK: aeskeygenassist $0, 64(%edx,%eax), %xmm1
160+
// CHECK: encoding: [0x66,0x0f,0x3a,0xdf,0x4c,0x02,0x40,0x00]
161+
aeskeygenassist $0, 64(%edx,%eax), %xmm1
162+
163+
// CHECK: aeskeygenassist $0, (%edx), %xmm1
164+
// CHECK: encoding: [0x66,0x0f,0x3a,0xdf,0x0a,0x00]
165+
aeskeygenassist $0, (%edx), %xmm1
166+
167+
// CHECK: aeskeygenassist $0, %xmm1, %xmm1
168+
// CHECK: encoding: [0x66,0x0f,0x3a,0xdf,0xc9,0x00]
169+
aeskeygenassist $0, %xmm1, %xmm1
170+

0 commit comments

Comments
 (0)