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