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