1# Check 64bit instructions with encoding options
2
3	.allow_index_reg
4	.text
5_start:
6
7# Tests for op reg, reg
8	add %dl,%cl
9	add.s %dl,%cl
10	add %dx,%cx
11	add.s %dx,%cx
12	add %edx,%ecx
13	add.s %edx,%ecx
14	addb %dl,%cl
15	addb.s %dl,%cl
16	addw %dx,%cx
17	addw.s %dx,%cx
18	addl %edx,%ecx
19	addl.s %edx,%ecx
20	add %rdx,%rcx
21	add.s %rdx,%rcx
22	addq %rdx,%rcx
23	addq.s %rdx,%rcx
24	adc %dl,%cl
25	adc.s %dl,%cl
26	adc %dx,%cx
27	adc.s %dx,%cx
28	adc %edx,%ecx
29	adc.s %edx,%ecx
30	adcb %dl,%cl
31	adcb.s %dl,%cl
32	adcw %dx,%cx
33	adcw.s %dx,%cx
34	adcl %edx,%ecx
35	adcl.s %edx,%ecx
36	adc %rdx,%rcx
37	adc.s %rdx,%rcx
38	adcq %rdx,%rcx
39	adcq.s %rdx,%rcx
40	and %dl,%cl
41	and.s %dl,%cl
42	and %dx,%cx
43	and.s %dx,%cx
44	and %edx,%ecx
45	and.s %edx,%ecx
46	andb %dl,%cl
47	andb.s %dl,%cl
48	andw %dx,%cx
49	andw.s %dx,%cx
50	andl %edx,%ecx
51	andl.s %edx,%ecx
52	and %rdx,%rcx
53	and.s %rdx,%rcx
54	andq %rdx,%rcx
55	andq.s %rdx,%rcx
56	cmp %dl,%cl
57	cmp.s %dl,%cl
58	cmp %dx,%cx
59	cmp.s %dx,%cx
60	cmp %edx,%ecx
61	cmp.s %edx,%ecx
62	cmpb %dl,%cl
63	cmpb.s %dl,%cl
64	cmpw %dx,%cx
65	cmpw.s %dx,%cx
66	cmpl %edx,%ecx
67	cmpl.s %edx,%ecx
68	cmp %rdx,%rcx
69	cmp.s %rdx,%rcx
70	cmpq %rdx,%rcx
71	cmpq.s %rdx,%rcx
72	mov %dl,%cl
73	mov.s %dl,%cl
74	mov %dx,%cx
75	mov.s %dx,%cx
76	mov %edx,%ecx
77	mov.s %edx,%ecx
78	movb %dl,%cl
79	movb.s %dl,%cl
80	movw %dx,%cx
81	movw.s %dx,%cx
82	movl %edx,%ecx
83	movl.s %edx,%ecx
84	mov %rdx,%rcx
85	mov.s %rdx,%rcx
86	movq %rdx,%rcx
87	movq.s %rdx,%rcx
88	or %dl,%cl
89	or.s %dl,%cl
90	or %dx,%cx
91	or.s %dx,%cx
92	or %edx,%ecx
93	or.s %edx,%ecx
94	orb %dl,%cl
95	orb.s %dl,%cl
96	orw %dx,%cx
97	orw.s %dx,%cx
98	orl %edx,%ecx
99	orl.s %edx,%ecx
100	or %rdx,%rcx
101	or.s %rdx,%rcx
102	orq %rdx,%rcx
103	orq.s %rdx,%rcx
104	sbb %dl,%cl
105	sbb.s %dl,%cl
106	sbb %dx,%cx
107	sbb.s %dx,%cx
108	sbb %edx,%ecx
109	sbb.s %edx,%ecx
110	sbbb %dl,%cl
111	sbbb.s %dl,%cl
112	sbbw %dx,%cx
113	sbbw.s %dx,%cx
114	sbbl %edx,%ecx
115	sbbl.s %edx,%ecx
116	sbb %rdx,%rcx
117	sbb.s %rdx,%rcx
118	sbbq %rdx,%rcx
119	sbbq.s %rdx,%rcx
120	sub %dl,%cl
121	sub.s %dl,%cl
122	sub %dx,%cx
123	sub.s %dx,%cx
124	sub %edx,%ecx
125	sub.s %edx,%ecx
126	subb %dl,%cl
127	subb.s %dl,%cl
128	subw %dx,%cx
129	subw.s %dx,%cx
130	subl %edx,%ecx
131	subl.s %edx,%ecx
132	sub %rdx,%rcx
133	sub.s %rdx,%rcx
134	subq %rdx,%rcx
135	subq.s %rdx,%rcx
136	xor %dl,%cl
137	xor.s %dl,%cl
138	xor %dx,%cx
139	xor.s %dx,%cx
140	xor %edx,%ecx
141	xor.s %edx,%ecx
142	xorb %dl,%cl
143	xorb.s %dl,%cl
144	xorw %dx,%cx
145	xorw.s %dx,%cx
146	xorl %edx,%ecx
147	xorl.s %edx,%ecx
148	xor %rdx,%rcx
149	xor.s %rdx,%rcx
150	xorq %rdx,%rcx
151	xorq.s %rdx,%rcx
152
153# Tests for op ymm, ymm
154	vmovapd %ymm4,%ymm6
155	vmovapd.s %ymm4,%ymm6
156	vmovaps %ymm4,%ymm6
157	vmovaps.s %ymm4,%ymm6
158	vmovdqa %ymm4,%ymm6
159	vmovdqa.s %ymm4,%ymm6
160	vmovdqu %ymm4,%ymm6
161	vmovdqu.s %ymm4,%ymm6
162	vmovupd %ymm4,%ymm6
163	vmovupd.s %ymm4,%ymm6
164	vmovups %ymm4,%ymm6
165	vmovups.s %ymm4,%ymm6
166
167# Tests for op xmm, xmm
168	movapd %xmm4,%xmm6
169	movapd.s %xmm4,%xmm6
170	movaps %xmm4,%xmm6
171	movaps.s %xmm4,%xmm6
172	movdqa %xmm4,%xmm6
173	movdqa.s %xmm4,%xmm6
174	movdqu %xmm4,%xmm6
175	movdqu.s %xmm4,%xmm6
176	movq %xmm4,%xmm6
177	movq.s %xmm4,%xmm6
178	movsd %xmm4,%xmm6
179	movsd.s %xmm4,%xmm6
180	movss %xmm4,%xmm6
181	movss.s %xmm4,%xmm6
182	movupd %xmm4,%xmm6
183	movupd.s %xmm4,%xmm6
184	movups %xmm4,%xmm6
185	movups.s %xmm4,%xmm6
186	vmovapd %xmm4,%xmm6
187	vmovapd.s %xmm4,%xmm6
188	vmovaps %xmm4,%xmm6
189	vmovaps.s %xmm4,%xmm6
190	vmovdqa %xmm4,%xmm6
191	vmovdqa.s %xmm4,%xmm6
192	vmovdqu %xmm4,%xmm6
193	vmovdqu.s %xmm4,%xmm6
194	vmovq %xmm4,%xmm6
195	vmovq.s %xmm4,%xmm6
196	vmovupd %xmm4,%xmm6
197	vmovupd.s %xmm4,%xmm6
198	vmovups %xmm4,%xmm6
199	vmovups.s %xmm4,%xmm6
200
201# Tests for op xmm, xmm, xmm
202	vmovsd %xmm4,%xmm6,%xmm2
203	vmovsd.s %xmm4,%xmm6,%xmm2
204	vmovss %xmm4,%xmm6,%xmm2
205	vmovss.s %xmm4,%xmm6,%xmm2
206
207# Tests for op mm, mm
208	movq %mm0,%mm4
209	movq.s %mm0,%mm4
210
211	.intel_syntax noprefix
212
213# Tests for op reg, reg
214	add cl,dl
215	add.s cl,dl
216	add cx,dx
217	add.s cx,dx
218	add ecx,edx
219	add.s ecx,edx
220	add rcx,rdx
221	add.s rcx,rdx
222	adc cl,dl
223	adc.s cl,dl
224	adc cx,dx
225	adc.s cx,dx
226	adc ecx,edx
227	adc.s ecx,edx
228	adc rcx,rdx
229	adc.s rcx,rdx
230	and cl,dl
231	and.s cl,dl
232	and cx,dx
233	and.s cx,dx
234	and ecx,edx
235	and.s ecx,edx
236	and rcx,rdx
237	and.s rcx,rdx
238	cmp cl,dl
239	cmp.s cl,dl
240	cmp cx,dx
241	cmp.s cx,dx
242	cmp ecx,edx
243	cmp.s ecx,edx
244	cmp rcx,rdx
245	cmp.s rcx,rdx
246	mov cl,dl
247	mov.s cl,dl
248	mov cx,dx
249	mov.s cx,dx
250	mov ecx,edx
251	mov.s ecx,edx
252	mov rcx,rdx
253	mov.s rcx,rdx
254	or cl,dl
255	or.s cl,dl
256	or cx,dx
257	or.s cx,dx
258	or ecx,edx
259	or.s ecx,edx
260	or rcx,rdx
261	or.s rcx,rdx
262	sbb cl,dl
263	sbb.s cl,dl
264	sbb cx,dx
265	sbb.s cx,dx
266	sbb ecx,edx
267	sbb.s ecx,edx
268	sbb rcx,rdx
269	sbb.s rcx,rdx
270	sub cl,dl
271	sub.s cl,dl
272	sub cx,dx
273	sub.s cx,dx
274	sub ecx,edx
275	sub.s ecx,edx
276	sub rcx,rdx
277	sub.s rcx,rdx
278	xor cl,dl
279	xor.s cl,dl
280	xor cx,dx
281	xor.s cx,dx
282	xor ecx,edx
283	xor.s ecx,edx
284	xor rcx,rdx
285	xor.s rcx,rdx
286
287# Tests for op ymm, ymm
288	vmovapd ymm6,ymm4
289	vmovapd.s ymm6,ymm4
290	vmovaps ymm6,ymm4
291	vmovaps.s ymm6,ymm4
292	vmovdqa ymm6,ymm4
293	vmovdqa.s ymm6,ymm4
294	vmovdqu ymm6,ymm4
295	vmovdqu.s ymm6,ymm4
296	vmovupd ymm6,ymm4
297	vmovupd.s ymm6,ymm4
298	vmovups ymm6,ymm4
299	vmovups.s ymm6,ymm4
300
301# Tests for op xmm, xmm
302	movapd xmm6,xmm4
303	movapd.s xmm6,xmm4
304	movaps xmm6,xmm4
305	movaps.s xmm6,xmm4
306	movdqa xmm6,xmm4
307	movdqa.s xmm6,xmm4
308	movdqu xmm6,xmm4
309	movdqu.s xmm6,xmm4
310	movq xmm6,xmm4
311	movq.s xmm6,xmm4
312	movsd xmm6,xmm4
313	movsd.s xmm6,xmm4
314	movss xmm6,xmm4
315	movss.s xmm6,xmm4
316	movupd xmm6,xmm4
317	movupd.s xmm6,xmm4
318	movups xmm6,xmm4
319	movups.s xmm6,xmm4
320	vmovapd xmm6,xmm4
321	vmovapd.s xmm6,xmm4
322	vmovaps xmm6,xmm4
323	vmovaps.s xmm6,xmm4
324	vmovdqa xmm6,xmm4
325	vmovdqa.s xmm6,xmm4
326	vmovdqu xmm6,xmm4
327	vmovdqu.s xmm6,xmm4
328	vmovq xmm6,xmm4
329	vmovq.s xmm6,xmm4
330	vmovupd xmm6,xmm4
331	vmovupd.s xmm6,xmm4
332	vmovups xmm6,xmm4
333	vmovups.s xmm6,xmm4
334
335# Tests for op xmm, xmm, xmm
336	vmovsd xmm2,xmm6,xmm4
337	vmovsd.s xmm2,xmm6,xmm4
338	vmovss xmm2,xmm6,xmm4
339	vmovss.s xmm2,xmm6,xmm4
340
341# Tests for op mm, mm
342	movq mm4,mm0
343	movq.s mm4,mm0
344