x86-64: REX prefix is invalid with VEX etc
[deliverable/binutils-gdb.git] / gas / testsuite / gas / i386 / x86-64-pseudos.s
1 # Check 64bit instructions with pseudo prefixes for encoding
2
3 .text
4 _start:
5 {vex3} vmovaps %xmm7,%xmm2
6 {vex3} {load} vmovaps %xmm7,%xmm2
7 {vex3} {store} vmovaps %xmm7,%xmm2
8 vmovaps %xmm7,%xmm2
9 {vex} vmovaps %xmm7,%xmm2
10 {vex} {load} vmovaps %xmm7,%xmm2
11 {vex} {store} vmovaps %xmm7,%xmm2
12 {vex3} vmovaps (%rax),%xmm2
13 vmovaps (%rax),%xmm2
14 {vex2} vmovaps (%rax),%xmm2
15 {evex} vmovaps (%rax),%xmm2
16 {disp32} vmovaps (%rax),%xmm2
17 {evex} {disp8} vmovaps (%rax),%xmm2
18 {evex} {disp32} vmovaps (%rax),%xmm2
19
20 mov %rcx, %rax
21 {load} mov %rcx, %rax
22 {store} mov %rcx, %rax
23 adc %ecx, %eax
24 {load} adc %ecx, %eax
25 {store} adc %ecx, %eax
26 add %ecx, %eax
27 {load} add %ecx, %eax
28 {store} add %ecx, %eax
29 and %ecx, %eax
30 {load} and %ecx, %eax
31 {store} and %ecx, %eax
32 cmp %ecx, %eax
33 {load} cmp %ecx, %eax
34 {store} cmp %ecx, %eax
35 or %ecx, %eax
36 {load} or %ecx, %eax
37 {store} or %ecx, %eax
38 sbb %ecx, %eax
39 {load} sbb %ecx, %eax
40 {store} sbb %ecx, %eax
41 sub %ecx, %eax
42 {load} sub %ecx, %eax
43 {store} sub %ecx, %eax
44 xor %ecx, %eax
45 {load} xor %ecx, %eax
46 {store} xor %ecx, %eax
47
48 {load} mov 0x12345678, %eax
49 {load} mov %eax, 0x12345678
50 {store} mov 0x12345678, %eax
51 {store} mov %eax, 0x12345678
52 {load} mov 0x123456789abcdef0, %eax
53 {load} mov %eax, 0x123456789abcdef0
54 {store} mov 0x123456789abcdef0, %eax
55 {store} mov %eax, 0x123456789abcdef0
56 {load} movabs 0x123456789abcdef0, %eax
57 {load} movabs %eax, 0x123456789abcdef0
58 {store} movabs 0x123456789abcdef0, %eax
59 {store} movabs %eax, 0x123456789abcdef0
60 {load} mov %eax, (%rdi)
61 {load} mov (%rdi), %eax
62 {store} mov %eax, (%rdi)
63 {store} mov (%rdi), %eax
64 {load} mov %es, %edi
65 {load} mov %eax, %gs
66 {store} mov %es, %edi
67 {store} mov %eax, %gs
68 {load} mov %cr0, %rdi
69 {load} mov %rax, %cr7
70 {store} mov %cr0, %rdi
71 {store} mov %rax, %cr7
72 {load} mov %dr0, %rdi
73 {load} mov %rax, %dr7
74 {store} mov %dr0, %rdi
75 {store} mov %rax, %dr7
76 {load} kmovb %k0, %edi
77 {load} kmovb %eax, %k7
78 {store} kmovb %k0, %edi
79 {store} kmovb %eax, %k7
80 {load} kmovd %k0, %edi
81 {load} kmovd %eax, %k7
82 {store} kmovd %k0, %edi
83 {store} kmovd %eax, %k7
84 {load} kmovq %k0, %rdi
85 {load} kmovq %rax, %k7
86 {store} kmovq %k0, %rdi
87 {store} kmovq %rax, %k7
88 {load} kmovw %k0, %edi
89 {load} kmovw %eax, %k7
90 {store} kmovw %k0, %edi
91 {store} kmovw %eax, %k7
92 {load} kmovb %k0, %k7
93 {store} kmovb %k0, %k7
94 {load} kmovd %k0, %k7
95 {store} kmovd %k0, %k7
96 {load} kmovq %k0, %k7
97 {store} kmovq %k0, %k7
98 {load} kmovw %k0, %k7
99 {store} kmovw %k0, %k7
100 {load} adc %eax, (%rdi)
101 {load} adc (%rdi), %eax
102 {store} adc %eax, (%rdi)
103 {store} adc (%rdi), %eax
104 {load} add %eax, (%rdi)
105 {load} add (%rdi), %eax
106 {store} add %eax, (%rdi)
107 {store} add (%rdi), %eax
108 {load} and %eax, (%rdi)
109 {load} and (%rdi), %eax
110 {store} and %eax, (%rdi)
111 {store} and (%rdi), %eax
112 {load} cmp %eax, (%rdi)
113 {load} cmp (%rdi), %eax
114 {store} cmp %eax, (%rdi)
115 {store} cmp (%rdi), %eax
116 {load} or %eax, (%rdi)
117 {load} or (%rdi), %eax
118 {store} or %eax, (%rdi)
119 {store} or (%rdi), %eax
120 {load} sbb %eax, (%rdi)
121 {load} sbb (%rdi), %eax
122 {store} sbb %eax, (%rdi)
123 {store} sbb (%rdi), %eax
124 {load} sub %eax, (%rdi)
125 {load} sub (%rdi), %eax
126 {store} sub %eax, (%rdi)
127 {store} sub (%rdi), %eax
128 {load} xor %eax, (%rdi)
129 {load} xor (%rdi), %eax
130 {store} xor %eax, (%rdi)
131 {store} xor (%rdi), %eax
132
133 fadd %st, %st
134 {load} fadd %st, %st
135 {store} fadd %st, %st
136 fdiv %st, %st
137 {load} fdiv %st, %st
138 {store} fdiv %st, %st
139 fdivr %st, %st
140 {load} fdivr %st, %st
141 {store} fdivr %st, %st
142 fmul %st, %st
143 {load} fmul %st, %st
144 {store} fmul %st, %st
145 fsub %st, %st
146 {load} fsub %st, %st
147 {store} fsub %st, %st
148 fsubr %st, %st
149 {load} fsubr %st, %st
150 {store} fsubr %st, %st
151
152 movq %mm0, %mm7
153 {load} movq %mm0, %mm7
154 {store} movq %mm0, %mm7
155
156 movaps %xmm0, %xmm7
157 {load} movaps %xmm0, %xmm7
158 {store} movaps %xmm0, %xmm7
159 movups %xmm0, %xmm7
160 {load} movups %xmm0, %xmm7
161 {store} movups %xmm0, %xmm7
162 movss %xmm0, %xmm7
163 {load} movss %xmm0, %xmm7
164 {store} movss %xmm0, %xmm7
165 movapd %xmm0, %xmm7
166 {load} movapd %xmm0, %xmm7
167 {store} movapd %xmm0, %xmm7
168 movupd %xmm0, %xmm7
169 {load} movupd %xmm0, %xmm7
170 {store} movupd %xmm0, %xmm7
171 movsd %xmm0, %xmm7
172 {load} movsd %xmm0, %xmm7
173 {store} movsd %xmm0, %xmm7
174 movdqa %xmm0, %xmm7
175 {load} movdqa %xmm0, %xmm7
176 {store} movdqa %xmm0, %xmm7
177 movdqu %xmm0, %xmm7
178 {load} movdqu %xmm0, %xmm7
179 {store} movdqu %xmm0, %xmm7
180 movq %xmm0, %xmm7
181 {load} movq %xmm0, %xmm7
182 {store} movq %xmm0, %xmm7
183 vmovaps %xmm0, %xmm7
184 {load} vmovaps %xmm0, %xmm7
185 {store} vmovaps %xmm0, %xmm7
186 vmovaps %zmm0, %zmm7
187 {load} vmovaps %zmm0, %zmm7
188 {store} vmovaps %zmm0, %zmm7
189 vmovaps %xmm0, %xmm7{%k7}
190 {load} vmovaps %xmm0, %xmm7{%k7}
191 {store} vmovaps %xmm0, %xmm7{%k7}
192 vmovups %zmm0, %zmm7
193 {load} vmovups %zmm0, %zmm7
194 {store} vmovups %zmm0, %zmm7
195 vmovups %xmm0, %xmm7
196 {load} vmovups %xmm0, %xmm7
197 {store} vmovups %xmm0, %xmm7
198 vmovups %xmm0, %xmm7{%k7}
199 {load} vmovups %xmm0, %xmm7{%k7}
200 {store} vmovups %xmm0, %xmm7{%k7}
201 vmovss %xmm0, %xmm1, %xmm7
202 {load} vmovss %xmm0, %xmm1, %xmm7
203 {store} vmovss %xmm0, %xmm1, %xmm7
204 vmovss %xmm0, %xmm1, %xmm7{%k7}
205 {load} vmovss %xmm0, %xmm1, %xmm7{%k7}
206 {store} vmovss %xmm0, %xmm1, %xmm7{%k7}
207 vmovapd %xmm0, %xmm7
208 {load} vmovapd %xmm0, %xmm7
209 {store} vmovapd %xmm0, %xmm7
210 vmovapd %zmm0, %zmm7
211 {load} vmovapd %zmm0, %zmm7
212 {store} vmovapd %zmm0, %zmm7
213 vmovapd %xmm0, %xmm7{%k7}
214 {load} vmovapd %xmm0, %xmm7{%k7}
215 {store} vmovapd %xmm0, %xmm7{%k7}
216 vmovupd %xmm0, %xmm7
217 {load} vmovupd %xmm0, %xmm7
218 {store} vmovupd %xmm0, %xmm7
219 vmovupd %zmm0, %zmm7
220 {load} vmovupd %zmm0, %zmm7
221 {store} vmovupd %zmm0, %zmm7
222 vmovupd %xmm0, %xmm7{%k7}
223 {load} vmovupd %xmm0, %xmm7{%k7}
224 {store} vmovupd %xmm0, %xmm7{%k7}
225 vmovsd %xmm0, %xmm1, %xmm7
226 {load} vmovsd %xmm0, %xmm1, %xmm7
227 {store} vmovsd %xmm0, %xmm1, %xmm7
228 vmovsd %xmm0, %xmm1, %xmm7{%k7}
229 {load} vmovsd %xmm0, %xmm1, %xmm7{%k7}
230 {store} vmovsd %xmm0, %xmm1, %xmm7{%k7}
231 vmovdqa %xmm0, %xmm7
232 {load} vmovdqa %xmm0, %xmm7
233 {store} vmovdqa %xmm0, %xmm7
234 vmovdqa32 %zmm0, %zmm7
235 {load} vmovdqa32 %zmm0, %zmm7
236 {store} vmovdqa32 %zmm0, %zmm7
237 vmovdqa32 %xmm0, %xmm7
238 {load} vmovdqa32 %xmm0, %xmm7
239 {store} vmovdqa32 %xmm0, %xmm7
240 vmovdqa64 %zmm0, %zmm7
241 {load} vmovdqa64 %zmm0, %zmm7
242 {store} vmovdqa64 %zmm0, %zmm7
243 vmovdqa64 %xmm0, %xmm7
244 {load} vmovdqa64 %xmm0, %xmm7
245 {store} vmovdqa64 %xmm0, %xmm7
246 vmovdqu %xmm0, %xmm7
247 {load} vmovdqu %xmm0, %xmm7
248 {store} vmovdqu %xmm0, %xmm7
249 vmovdqu8 %zmm0, %zmm7
250 {load} vmovdqu8 %zmm0, %zmm7
251 {store} vmovdqu8 %zmm0, %zmm7
252 vmovdqu8 %xmm0, %xmm7
253 {load} vmovdqu8 %xmm0, %xmm7
254 {store} vmovdqu8 %zmm0, %zmm7
255 vmovdqu16 %zmm0, %zmm7
256 {load} vmovdqu16 %zmm0, %zmm7
257 {store} vmovdqu16 %zmm0, %zmm7
258 vmovdqu16 %xmm0, %xmm7
259 {load} vmovdqu16 %xmm0, %xmm7
260 {store} vmovdqu16 %xmm0, %xmm7
261 vmovdqu32 %zmm0, %zmm7
262 {load} vmovdqu32 %zmm0, %zmm7
263 {store} vmovdqu32 %zmm0, %zmm7
264 vmovdqu32 %xmm0, %xmm7
265 {load} vmovdqu32 %xmm0, %xmm7
266 {store} vmovdqu32 %xmm0, %xmm7
267 vmovdqu64 %zmm0, %zmm7
268 {load} vmovdqu64 %zmm0, %zmm7
269 {store} vmovdqu64 %zmm0, %zmm7
270 vmovdqu64 %xmm0, %xmm7
271 {load} vmovdqu64 %xmm0, %xmm7
272 {store} vmovdqu64 %xmm0, %xmm7
273 vmovq %xmm0, %xmm7
274 {load} vmovq %xmm0, %xmm7
275 {store} vmovq %xmm0, %xmm7
276 {evex} vmovq %xmm0, %xmm7
277 {load} {evex} vmovq %xmm0, %xmm7
278 {store} {evex} vmovq %xmm0, %xmm7
279
280 pextrw $0, %xmm0, %edi
281 {load} pextrw $0, %xmm0, %edi
282 {store} pextrw $0, %xmm0, %edi
283
284 vpextrw $0, %xmm0, %edi
285 {load} vpextrw $0, %xmm0, %edi
286 {store} vpextrw $0, %xmm0, %edi
287
288 {evex} vpextrw $0, %xmm0, %edi
289 {load} {evex} vpextrw $0, %xmm0, %edi
290 {store} {evex} vpextrw $0, %xmm0, %edi
291
292 bndmov %bnd3, %bnd0
293 {load} bndmov %bnd3, %bnd0
294 {store} bndmov %bnd3, %bnd0
295
296 movaps (%rax),%xmm2
297 {load} movaps (%rax),%xmm2
298 {store} movaps (%rax),%xmm2
299 {disp8} movaps (%rax),%xmm2
300 {disp32} movaps (%rax),%xmm2
301 movaps -1(%rax),%xmm2
302 {disp8} movaps -1(%rax),%xmm2
303 {disp32} movaps -1(%rax),%xmm2
304 movaps 128(%rax),%xmm2
305 {disp8} movaps 128(%rax),%xmm2
306 {disp32} movaps 128(%rax),%xmm2
307 {rex} mov %al,%ah
308 {rex} movl %eax,%ebx
309 {rex} movl %eax,%r14d
310 {rex} movl %eax,(%r8)
311 {rex} movaps %xmm7,%xmm2
312 {rex} movaps %xmm7,%xmm12
313 {rex} movaps (%rcx),%xmm2
314 {rex} movaps (%r8),%xmm2
315 {rex} phaddw (%rcx),%mm0
316 {rex} phaddw (%r8),%mm0
317
318 .intel_syntax noprefix
319 {vex3} vmovaps xmm2,xmm7
320 {vex3} {load} vmovaps xmm2,xmm7
321 {vex3} {store} vmovaps xmm2,xmm7
322 vmovaps xmm2,xmm7
323 {vex2} vmovaps xmm2,xmm7
324 {vex2} {load} vmovaps xmm2,xmm7
325 {vex2} {store} vmovaps xmm2,xmm7
326 {vex3} vmovaps xmm2,XMMWORD PTR [rax]
327 vmovaps xmm2,XMMWORD PTR [rax]
328 {vex2} vmovaps xmm2,XMMWORD PTR [rax]
329 {evex} vmovaps xmm2,XMMWORD PTR [rax]
330 {disp32} vmovaps xmm2,XMMWORD PTR [rax]
331 {evex} {disp8} vmovaps xmm2,XMMWORD PTR [rax]
332 {evex} {disp32} vmovaps xmm2,XMMWORD PTR [rax]
333 mov rax,rcx
334 {load} mov rax,rcx
335 {store} mov rax,rcx
336 movaps xmm2,XMMWORD PTR [rax]
337 {load} movaps xmm2,XMMWORD PTR [rax]
338 {store} movaps xmm2,XMMWORD PTR [rax]
339 {disp8} movaps xmm2,XMMWORD PTR [rax]
340 {disp32} movaps xmm2,XMMWORD PTR [rax]
341 movaps xmm2,XMMWORD PTR [rax-1]
342 {disp8} movaps xmm2,XMMWORD PTR [rax-1]
343 {disp32} movaps xmm2,XMMWORD PTR [rax-1]
344 movaps xmm2,XMMWORD PTR [rax+128]
345 {disp8} movaps xmm2,XMMWORD PTR [rax+128]
346 {disp32} movaps xmm2,XMMWORD PTR [rax+128]
347 {rex} mov ah,al
348 {rex} mov ebx,eax
349 {rex} mov r14d,eax
350 {rex} mov DWORD PTR [r8],eax
351 {rex} movaps xmm2,xmm7
352 {rex} movaps xmm12,xmm7
353 {rex} movaps xmm2,XMMWORD PTR [rcx]
354 {rex} movaps xmm2,XMMWORD PTR [r8]
355 {rex} phaddw mm0,QWORD PTR [rcx]
356 {rex} phaddw mm0,QWORD PTR [r8]
This page took 0.036159 seconds and 4 git commands to generate.