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