1 // RUN
: llvm-mc
-triple x86_64-unknown-unknown
--show-encoding
%s | FileCheck
%s
3 // CHECK
: crc32b
485498096, %r13d
4 // CHECK
: encoding
: [0xf2,0x44,0x0f,0x38,0xf0,0x2c,0x25,0xf0,0x1c,0xf0,0x1c]
5 crc32b
485498096, %r13d
7 // CHECK
: crc32b
64(%rdx
), %r13d
8 // CHECK
: encoding
: [0xf2,0x44,0x0f,0x38,0xf0,0x6a,0x40]
11 // CHECK
: crc32b
-64(%rdx
,%rax
,4), %r13d
12 // CHECK
: encoding
: [0xf2,0x44,0x0f,0x38,0xf0,0x6c,0x82,0xc0]
13 crc32b
-64(%rdx
,%rax
,4), %r13d
15 // CHECK
: crc32b
64(%rdx
,%rax
,4), %r13d
16 // CHECK
: encoding
: [0xf2,0x44,0x0f,0x38,0xf0,0x6c,0x82,0x40]
17 crc32b
64(%rdx
,%rax
,4), %r13d
19 // CHECK
: crc32b
64(%rdx
,%rax
), %r13d
20 // CHECK
: encoding
: [0xf2,0x44,0x0f,0x38,0xf0,0x6c,0x02,0x40]
21 crc32b
64(%rdx
,%rax
), %r13d
23 // CHECK
: crc32b
%r14b
, %r13d
24 // CHECK
: encoding
: [0xf2,0x45,0x0f,0x38,0xf0,0xee]
27 // CHECK
: crc32b
(%rdx
), %r13d
28 // CHECK
: encoding
: [0xf2,0x44,0x0f,0x38,0xf0,0x2a]
31 // CHECK
: crc32w
485498096, %r13d
32 // CHECK
: encoding
: [0x66,0xf2,0x44,0x0f,0x38,0xf1,0x2c,0x25,0xf0,0x1c,0xf0,0x1c]
33 crc32w
485498096, %r13d
35 // CHECK
: crc32w
64(%rdx
), %r13d
36 // CHECK
: encoding
: [0x66,0xf2,0x44,0x0f,0x38,0xf1,0x6a,0x40]
37 crc32w
64(%rdx
), %r13d
39 // CHECK
: crc32w
-64(%rdx
,%rax
,4), %r13d
40 // CHECK
: encoding
: [0x66,0xf2,0x44,0x0f,0x38,0xf1,0x6c,0x82,0xc0]
41 crc32w
-64(%rdx
,%rax
,4), %r13d
43 // CHECK
: crc32w
64(%rdx
,%rax
,4), %r13d
44 // CHECK
: encoding
: [0x66,0xf2,0x44,0x0f,0x38,0xf1,0x6c,0x82,0x40]
45 crc32w
64(%rdx
,%rax
,4), %r13d
47 // CHECK
: crc32w
64(%rdx
,%rax
), %r13d
48 // CHECK
: encoding
: [0x66,0xf2,0x44,0x0f,0x38,0xf1,0x6c,0x02,0x40]
49 crc32w
64(%rdx
,%rax
), %r13d
51 // CHECK
: crc32w
%r14w
, %r13d
52 // CHECK
: encoding
: [0x66,0xf2,0x45,0x0f,0x38,0xf1,0xee]
55 // CHECK
: crc32w
(%rdx
), %r13d
56 // CHECK
: encoding
: [0x66,0xf2,0x44,0x0f,0x38,0xf1,0x2a]
59 // CHECK
: crc32l
485498096, %r13d
60 // CHECK
: encoding
: [0xf2,0x44,0x0f,0x38,0xf1,0x2c,0x25,0xf0,0x1c,0xf0,0x1c]
61 crc32l
485498096, %r13d
63 // CHECK
: crc32l
64(%rdx
), %r13d
64 // CHECK
: encoding
: [0xf2,0x44,0x0f,0x38,0xf1,0x6a,0x40]
65 crc32l
64(%rdx
), %r13d
67 // CHECK
: crc32l
-64(%rdx
,%rax
,4), %r13d
68 // CHECK
: encoding
: [0xf2,0x44,0x0f,0x38,0xf1,0x6c,0x82,0xc0]
69 crc32l
-64(%rdx
,%rax
,4), %r13d
71 // CHECK
: crc32l
64(%rdx
,%rax
,4), %r13d
72 // CHECK
: encoding
: [0xf2,0x44,0x0f,0x38,0xf1,0x6c,0x82,0x40]
73 crc32l
64(%rdx
,%rax
,4), %r13d
75 // CHECK
: crc32l
64(%rdx
,%rax
), %r13d
76 // CHECK
: encoding
: [0xf2,0x44,0x0f,0x38,0xf1,0x6c,0x02,0x40]
77 crc32l
64(%rdx
,%rax
), %r13d
79 // CHECK
: crc32l
%r14d
, %r13d
80 // CHECK
: encoding
: [0xf2,0x45,0x0f,0x38,0xf1,0xee]
83 // CHECK
: crc32l
(%rdx
), %r13d
84 // CHECK
: encoding
: [0xf2,0x44,0x0f,0x38,0xf1,0x2a]
87 // CHECK
: crc32q
485498096, %r13
88 // CHECK
: encoding
: [0xf2,0x4c,0x0f,0x38,0xf1,0x2c,0x25,0xf0,0x1c,0xf0,0x1c]
89 crc32q
485498096, %r13
91 // CHECK
: crc32q
64(%rdx
), %r13
92 // CHECK
: encoding
: [0xf2,0x4c,0x0f,0x38,0xf1,0x6a,0x40]
95 // CHECK
: crc32q
-64(%rdx
,%rax
,4), %r13
96 // CHECK
: encoding
: [0xf2,0x4c,0x0f,0x38,0xf1,0x6c,0x82,0xc0]
97 crc32q
-64(%rdx
,%rax
,4), %r13
99 // CHECK
: crc32q
64(%rdx
,%rax
,4), %r13
100 // CHECK
: encoding
: [0xf2,0x4c,0x0f,0x38,0xf1,0x6c,0x82,0x40]
101 crc32q
64(%rdx
,%rax
,4), %r13
103 // CHECK
: crc32q
64(%rdx
,%rax
), %r13
104 // CHECK
: encoding
: [0xf2,0x4c,0x0f,0x38,0xf1,0x6c,0x02,0x40]
105 crc32q
64(%rdx
,%rax
), %r13
107 // CHECK
: crc32q
%r14, %r13
108 // CHECK
: encoding
: [0xf2,0x4d,0x0f,0x38,0xf1,0xee]
111 // CHECK
: crc32q
(%rdx
), %r13
112 // CHECK
: encoding
: [0xf2,0x4c,0x0f,0x38,0xf1,0x2a]
115 // CHECK
: pcmpestri $
0, 485498096, %xmm6
116 // CHECK
: encoding
: [0x66,0x0f,0x3a,0x61,0x34,0x25,0xf0,0x1c,0xf0,0x1c,0x00]
117 pcmpestri $
0, 485498096, %xmm6
119 // CHECK
: pcmpestri $
0, -64(%rdx
,%rax
,4), %xmm6
120 // CHECK
: encoding
: [0x66,0x0f,0x3a,0x61,0x74,0x82,0xc0,0x00]
121 pcmpestri $
0, -64(%rdx
,%rax
,4), %xmm6
123 // CHECK
: pcmpestri $
0, 64(%rdx
,%rax
,4), %xmm6
124 // CHECK
: encoding
: [0x66,0x0f,0x3a,0x61,0x74,0x82,0x40,0x00]
125 pcmpestri $
0, 64(%rdx
,%rax
,4), %xmm6
127 // CHECK
: pcmpestri $
0, 64(%rdx
,%rax
), %xmm6
128 // CHECK
: encoding
: [0x66,0x0f,0x3a,0x61,0x74,0x02,0x40,0x00]
129 pcmpestri $
0, 64(%rdx
,%rax
), %xmm6
131 // CHECK
: pcmpestri $
0, 64(%rdx
), %xmm6
132 // CHECK
: encoding
: [0x66,0x0f,0x3a,0x61,0x72,0x40,0x00]
133 pcmpestri $
0, 64(%rdx
), %xmm6
135 // CHECK
: pcmpestri $
0, (%rdx
), %xmm6
136 // CHECK
: encoding
: [0x66,0x0f,0x3a,0x61,0x32,0x00]
137 pcmpestri $
0, (%rdx
), %xmm6
139 // CHECK
: pcmpestri $
0, %xmm6
, %xmm6
140 // CHECK
: encoding
: [0x66,0x0f,0x3a,0x61,0xf6,0x00]
141 pcmpestri $
0, %xmm6
, %xmm6
143 // CHECK
: pcmpestrm $
0, 485498096, %xmm6
144 // CHECK
: encoding
: [0x66,0x0f,0x3a,0x60,0x34,0x25,0xf0,0x1c,0xf0,0x1c,0x00]
145 pcmpestrm $
0, 485498096, %xmm6
147 // CHECK
: pcmpestrm $
0, -64(%rdx
,%rax
,4), %xmm6
148 // CHECK
: encoding
: [0x66,0x0f,0x3a,0x60,0x74,0x82,0xc0,0x00]
149 pcmpestrm $
0, -64(%rdx
,%rax
,4), %xmm6
151 // CHECK
: pcmpestrm $
0, 64(%rdx
,%rax
,4), %xmm6
152 // CHECK
: encoding
: [0x66,0x0f,0x3a,0x60,0x74,0x82,0x40,0x00]
153 pcmpestrm $
0, 64(%rdx
,%rax
,4), %xmm6
155 // CHECK
: pcmpestrm $
0, 64(%rdx
,%rax
), %xmm6
156 // CHECK
: encoding
: [0x66,0x0f,0x3a,0x60,0x74,0x02,0x40,0x00]
157 pcmpestrm $
0, 64(%rdx
,%rax
), %xmm6
159 // CHECK
: pcmpestrm $
0, 64(%rdx
), %xmm6
160 // CHECK
: encoding
: [0x66,0x0f,0x3a,0x60,0x72,0x40,0x00]
161 pcmpestrm $
0, 64(%rdx
), %xmm6
163 // CHECK
: pcmpestrm $
0, (%rdx
), %xmm6
164 // CHECK
: encoding
: [0x66,0x0f,0x3a,0x60,0x32,0x00]
165 pcmpestrm $
0, (%rdx
), %xmm6
167 // CHECK
: pcmpestrm $
0, %xmm6
, %xmm6
168 // CHECK
: encoding
: [0x66,0x0f,0x3a,0x60,0xf6,0x00]
169 pcmpestrm $
0, %xmm6
, %xmm6
171 // CHECK
: pcmpgtq
485498096, %xmm6
172 // CHECK
: encoding
: [0x66,0x0f,0x38,0x37,0x34,0x25,0xf0,0x1c,0xf0,0x1c]
173 pcmpgtq
485498096, %xmm6
175 // CHECK
: pcmpgtq
-64(%rdx
,%rax
,4), %xmm6
176 // CHECK
: encoding
: [0x66,0x0f,0x38,0x37,0x74,0x82,0xc0]
177 pcmpgtq
-64(%rdx
,%rax
,4), %xmm6
179 // CHECK
: pcmpgtq
64(%rdx
,%rax
,4), %xmm6
180 // CHECK
: encoding
: [0x66,0x0f,0x38,0x37,0x74,0x82,0x40]
181 pcmpgtq
64(%rdx
,%rax
,4), %xmm6
183 // CHECK
: pcmpgtq
64(%rdx
,%rax
), %xmm6
184 // CHECK
: encoding
: [0x66,0x0f,0x38,0x37,0x74,0x02,0x40]
185 pcmpgtq
64(%rdx
,%rax
), %xmm6
187 // CHECK
: pcmpgtq
64(%rdx
), %xmm6
188 // CHECK
: encoding
: [0x66,0x0f,0x38,0x37,0x72,0x40]
189 pcmpgtq
64(%rdx
), %xmm6
191 // CHECK
: pcmpgtq
(%rdx
), %xmm6
192 // CHECK
: encoding
: [0x66,0x0f,0x38,0x37,0x32]
193 pcmpgtq
(%rdx
), %xmm6
195 // CHECK
: pcmpgtq
%xmm6
, %xmm6
196 // CHECK
: encoding
: [0x66,0x0f,0x38,0x37,0xf6]
199 // CHECK
: pcmpistri $
0, 485498096, %xmm6
200 // CHECK
: encoding
: [0x66,0x0f,0x3a,0x63,0x34,0x25,0xf0,0x1c,0xf0,0x1c,0x00]
201 pcmpistri $
0, 485498096, %xmm6
203 // CHECK
: pcmpistri $
0, -64(%rdx
,%rax
,4), %xmm6
204 // CHECK
: encoding
: [0x66,0x0f,0x3a,0x63,0x74,0x82,0xc0,0x00]
205 pcmpistri $
0, -64(%rdx
,%rax
,4), %xmm6
207 // CHECK
: pcmpistri $
0, 64(%rdx
,%rax
,4), %xmm6
208 // CHECK
: encoding
: [0x66,0x0f,0x3a,0x63,0x74,0x82,0x40,0x00]
209 pcmpistri $
0, 64(%rdx
,%rax
,4), %xmm6
211 // CHECK
: pcmpistri $
0, 64(%rdx
,%rax
), %xmm6
212 // CHECK
: encoding
: [0x66,0x0f,0x3a,0x63,0x74,0x02,0x40,0x00]
213 pcmpistri $
0, 64(%rdx
,%rax
), %xmm6
215 // CHECK
: pcmpistri $
0, 64(%rdx
), %xmm6
216 // CHECK
: encoding
: [0x66,0x0f,0x3a,0x63,0x72,0x40,0x00]
217 pcmpistri $
0, 64(%rdx
), %xmm6
219 // CHECK
: pcmpistri $
0, (%rdx
), %xmm6
220 // CHECK
: encoding
: [0x66,0x0f,0x3a,0x63,0x32,0x00]
221 pcmpistri $
0, (%rdx
), %xmm6
223 // CHECK
: pcmpistri $
0, %xmm6
, %xmm6
224 // CHECK
: encoding
: [0x66,0x0f,0x3a,0x63,0xf6,0x00]
225 pcmpistri $
0, %xmm6
, %xmm6
227 // CHECK
: pcmpistrm $
0, 485498096, %xmm6
228 // CHECK
: encoding
: [0x66,0x0f,0x3a,0x62,0x34,0x25,0xf0,0x1c,0xf0,0x1c,0x00]
229 pcmpistrm $
0, 485498096, %xmm6
231 // CHECK
: pcmpistrm $
0, -64(%rdx
,%rax
,4), %xmm6
232 // CHECK
: encoding
: [0x66,0x0f,0x3a,0x62,0x74,0x82,0xc0,0x00]
233 pcmpistrm $
0, -64(%rdx
,%rax
,4), %xmm6
235 // CHECK
: pcmpistrm $
0, 64(%rdx
,%rax
,4), %xmm6
236 // CHECK
: encoding
: [0x66,0x0f,0x3a,0x62,0x74,0x82,0x40,0x00]
237 pcmpistrm $
0, 64(%rdx
,%rax
,4), %xmm6
239 // CHECK
: pcmpistrm $
0, 64(%rdx
,%rax
), %xmm6
240 // CHECK
: encoding
: [0x66,0x0f,0x3a,0x62,0x74,0x02,0x40,0x00]
241 pcmpistrm $
0, 64(%rdx
,%rax
), %xmm6
243 // CHECK
: pcmpistrm $
0, 64(%rdx
), %xmm6
244 // CHECK
: encoding
: [0x66,0x0f,0x3a,0x62,0x72,0x40,0x00]
245 pcmpistrm $
0, 64(%rdx
), %xmm6
247 // CHECK
: pcmpistrm $
0, (%rdx
), %xmm6
248 // CHECK
: encoding
: [0x66,0x0f,0x3a,0x62,0x32,0x00]
249 pcmpistrm $
0, (%rdx
), %xmm6
251 // CHECK
: pcmpistrm $
0, %xmm6
, %xmm6
252 // CHECK
: encoding
: [0x66,0x0f,0x3a,0x62,0xf6,0x00]
253 pcmpistrm $
0, %xmm6
, %xmm6