1# Check EVEX WIG instructions
2
3	.allow_index_reg
4	.text
5_start:
6
7	vextractps	$0xab, %xmm29, %rax	 # AVX512
8	vextractps	$123, %xmm29, %rax	 # AVX512
9	vextractps	$123, %xmm29, %r8	 # AVX512
10	vextractps	$123, %xmm29, (%rcx)	 # AVX512
11	vextractps	$123, %xmm29, 0x123(%rax,%r14,8)	 # AVX512
12	vextractps	$123, %xmm29, 508(%rdx)	 # AVX512 Disp8
13	vextractps	$123, %xmm29, 512(%rdx)	 # AVX512
14	vextractps	$123, %xmm29, -512(%rdx)	 # AVX512 Disp8
15	vextractps	$123, %xmm29, -516(%rdx)	 # AVX512
16
17	vpmovsxbd	%xmm29, %zmm30{%k7}	 # AVX512
18	vpmovsxbd	%xmm29, %zmm30{%k7}{z}	 # AVX512
19	vpmovsxbd	(%rcx), %zmm30{%k7}	 # AVX512
20	vpmovsxbd	0x123(%rax,%r14,8), %zmm30{%k7}	 # AVX512
21	vpmovsxbd	2032(%rdx), %zmm30{%k7}	 # AVX512 Disp8
22	vpmovsxbd	2048(%rdx), %zmm30{%k7}	 # AVX512
23	vpmovsxbd	-2048(%rdx), %zmm30{%k7}	 # AVX512 Disp8
24	vpmovsxbd	-2064(%rdx), %zmm30{%k7}	 # AVX512
25
26	vpmovsxbq	%xmm29, %zmm30{%k7}	 # AVX512
27	vpmovsxbq	%xmm29, %zmm30{%k7}{z}	 # AVX512
28	vpmovsxbq	(%rcx), %zmm30{%k7}	 # AVX512
29	vpmovsxbq	0x123(%rax,%r14,8), %zmm30{%k7}	 # AVX512
30	vpmovsxbq	1016(%rdx), %zmm30{%k7}	 # AVX512 Disp8
31	vpmovsxbq	1024(%rdx), %zmm30{%k7}	 # AVX512
32	vpmovsxbq	-1024(%rdx), %zmm30{%k7}	 # AVX512 Disp8
33	vpmovsxbq	-1032(%rdx), %zmm30{%k7}	 # AVX512
34
35	vpmovsxwd	%ymm29, %zmm30{%k7}	 # AVX512
36	vpmovsxwd	%ymm29, %zmm30{%k7}{z}	 # AVX512
37	vpmovsxwd	(%rcx), %zmm30{%k7}	 # AVX512
38	vpmovsxwd	0x123(%rax,%r14,8), %zmm30{%k7}	 # AVX512
39	vpmovsxwd	4064(%rdx), %zmm30{%k7}	 # AVX512 Disp8
40	vpmovsxwd	4096(%rdx), %zmm30{%k7}	 # AVX512
41	vpmovsxwd	-4096(%rdx), %zmm30{%k7}	 # AVX512 Disp8
42	vpmovsxwd	-4128(%rdx), %zmm30{%k7}	 # AVX512
43
44	vpmovsxwq	%xmm29, %zmm30{%k7}	 # AVX512
45	vpmovsxwq	%xmm29, %zmm30{%k7}{z}	 # AVX512
46	vpmovsxwq	(%rcx), %zmm30{%k7}	 # AVX512
47	vpmovsxwq	0x123(%rax,%r14,8), %zmm30{%k7}	 # AVX512
48	vpmovsxwq	2032(%rdx), %zmm30{%k7}	 # AVX512 Disp8
49	vpmovsxwq	2048(%rdx), %zmm30{%k7}	 # AVX512
50	vpmovsxwq	-2048(%rdx), %zmm30{%k7}	 # AVX512 Disp8
51	vpmovsxwq	-2064(%rdx), %zmm30{%k7}	 # AVX512
52
53	vpmovzxbd	%xmm29, %zmm30{%k7}	 # AVX512
54	vpmovzxbd	%xmm29, %zmm30{%k7}{z}	 # AVX512
55	vpmovzxbd	(%rcx), %zmm30{%k7}	 # AVX512
56	vpmovzxbd	0x123(%rax,%r14,8), %zmm30{%k7}	 # AVX512
57	vpmovzxbd	2032(%rdx), %zmm30{%k7}	 # AVX512 Disp8
58	vpmovzxbd	2048(%rdx), %zmm30{%k7}	 # AVX512
59	vpmovzxbd	-2048(%rdx), %zmm30{%k7}	 # AVX512 Disp8
60	vpmovzxbd	-2064(%rdx), %zmm30{%k7}	 # AVX512
61
62	vpmovzxbq	%xmm29, %zmm30{%k7}	 # AVX512
63	vpmovzxbq	%xmm29, %zmm30{%k7}{z}	 # AVX512
64	vpmovzxbq	(%rcx), %zmm30{%k7}	 # AVX512
65	vpmovzxbq	0x123(%rax,%r14,8), %zmm30{%k7}	 # AVX512
66	vpmovzxbq	1016(%rdx), %zmm30{%k7}	 # AVX512 Disp8
67	vpmovzxbq	1024(%rdx), %zmm30{%k7}	 # AVX512
68	vpmovzxbq	-1024(%rdx), %zmm30{%k7}	 # AVX512 Disp8
69	vpmovzxbq	-1032(%rdx), %zmm30{%k7}	 # AVX512
70
71	vpmovzxwd	%ymm29, %zmm30{%k7}	 # AVX512
72	vpmovzxwd	%ymm29, %zmm30{%k7}{z}	 # AVX512
73	vpmovzxwd	(%rcx), %zmm30{%k7}	 # AVX512
74	vpmovzxwd	0x123(%rax,%r14,8), %zmm30{%k7}	 # AVX512
75	vpmovzxwd	4064(%rdx), %zmm30{%k7}	 # AVX512 Disp8
76	vpmovzxwd	4096(%rdx), %zmm30{%k7}	 # AVX512
77	vpmovzxwd	-4096(%rdx), %zmm30{%k7}	 # AVX512 Disp8
78	vpmovzxwd	-4128(%rdx), %zmm30{%k7}	 # AVX512
79
80	vpmovzxwq	%xmm29, %zmm30{%k7}	 # AVX512
81	vpmovzxwq	%xmm29, %zmm30{%k7}{z}	 # AVX512
82	vpmovzxwq	(%rcx), %zmm30{%k7}	 # AVX512
83	vpmovzxwq	0x123(%rax,%r14,8), %zmm30{%k7}	 # AVX512
84	vpmovzxwq	2032(%rdx), %zmm30{%k7}	 # AVX512 Disp8
85	vpmovzxwq	2048(%rdx), %zmm30{%k7}	 # AVX512
86	vpmovzxwq	-2048(%rdx), %zmm30{%k7}	 # AVX512 Disp8
87	vpmovzxwq	-2064(%rdx), %zmm30{%k7}	 # AVX512
88
89	.intel_syntax noprefix
90	vextractps	rax, xmm29, 0xab	 # AVX512
91	vextractps	rax, xmm29, 123	 # AVX512
92	vextractps	r8, xmm29, 123	 # AVX512
93	vextractps	DWORD PTR [rcx], xmm29, 123	 # AVX512
94	vextractps	DWORD PTR [rax+r14*8+0x1234], xmm29, 123	 # AVX512
95	vextractps	DWORD PTR [rdx+508], xmm29, 123	 # AVX512 Disp8
96	vextractps	DWORD PTR [rdx+512], xmm29, 123	 # AVX512
97	vextractps	DWORD PTR [rdx-512], xmm29, 123	 # AVX512 Disp8
98	vextractps	DWORD PTR [rdx-516], xmm29, 123	 # AVX512
99
100	vpmovsxbd	zmm30{k7}, xmm29	 # AVX512
101	vpmovsxbd	zmm30{k7}{z}, xmm29	 # AVX512
102	vpmovsxbd	zmm30{k7}, XMMWORD PTR [rcx]	 # AVX512
103	vpmovsxbd	zmm30{k7}, XMMWORD PTR [rax+r14*8+0x1234]	 # AVX512
104	vpmovsxbd	zmm30{k7}, XMMWORD PTR [rdx+2032]	 # AVX512 Disp8
105	vpmovsxbd	zmm30{k7}, XMMWORD PTR [rdx+2048]	 # AVX512
106	vpmovsxbd	zmm30{k7}, XMMWORD PTR [rdx-2048]	 # AVX512 Disp8
107	vpmovsxbd	zmm30{k7}, XMMWORD PTR [rdx-2064]	 # AVX512
108
109	vpmovsxbq	zmm30{k7}, xmm29	 # AVX512
110	vpmovsxbq	zmm30{k7}{z}, xmm29	 # AVX512
111	vpmovsxbq	zmm30{k7}, QWORD PTR [rcx]	 # AVX512
112	vpmovsxbq	zmm30{k7}, QWORD PTR [rax+r14*8+0x1234]	 # AVX512
113	vpmovsxbq	zmm30{k7}, QWORD PTR [rdx+1016]	 # AVX512 Disp8
114	vpmovsxbq	zmm30{k7}, QWORD PTR [rdx+1024]	 # AVX512
115	vpmovsxbq	zmm30{k7}, QWORD PTR [rdx-1024]	 # AVX512 Disp8
116	vpmovsxbq	zmm30{k7}, QWORD PTR [rdx-1032]	 # AVX512
117
118	vpmovsxwd	zmm30{k7}, ymm29	 # AVX512
119	vpmovsxwd	zmm30{k7}{z}, ymm29	 # AVX512
120	vpmovsxwd	zmm30{k7}, YMMWORD PTR [rcx]	 # AVX512
121	vpmovsxwd	zmm30{k7}, YMMWORD PTR [rax+r14*8+0x1234]	 # AVX512
122	vpmovsxwd	zmm30{k7}, YMMWORD PTR [rdx+4064]	 # AVX512 Disp8
123	vpmovsxwd	zmm30{k7}, YMMWORD PTR [rdx+4096]	 # AVX512
124	vpmovsxwd	zmm30{k7}, YMMWORD PTR [rdx-4096]	 # AVX512 Disp8
125	vpmovsxwd	zmm30{k7}, YMMWORD PTR [rdx-4128]	 # AVX512
126
127	vpmovsxwq	zmm30{k7}, xmm29	 # AVX512
128	vpmovsxwq	zmm30{k7}{z}, xmm29	 # AVX512
129	vpmovsxwq	zmm30{k7}, XMMWORD PTR [rcx]	 # AVX512
130	vpmovsxwq	zmm30{k7}, XMMWORD PTR [rax+r14*8+0x1234]	 # AVX512
131	vpmovsxwq	zmm30{k7}, XMMWORD PTR [rdx+2032]	 # AVX512 Disp8
132	vpmovsxwq	zmm30{k7}, XMMWORD PTR [rdx+2048]	 # AVX512
133	vpmovsxwq	zmm30{k7}, XMMWORD PTR [rdx-2048]	 # AVX512 Disp8
134	vpmovsxwq	zmm30{k7}, XMMWORD PTR [rdx-2064]	 # AVX512
135
136	vpmovzxbd	zmm30{k7}, xmm29	 # AVX512
137	vpmovzxbd	zmm30{k7}{z}, xmm29	 # AVX512
138	vpmovzxbd	zmm30{k7}, XMMWORD PTR [rcx]	 # AVX512
139	vpmovzxbd	zmm30{k7}, XMMWORD PTR [rax+r14*8+0x1234]	 # AVX512
140	vpmovzxbd	zmm30{k7}, XMMWORD PTR [rdx+2032]	 # AVX512 Disp8
141	vpmovzxbd	zmm30{k7}, XMMWORD PTR [rdx+2048]	 # AVX512
142	vpmovzxbd	zmm30{k7}, XMMWORD PTR [rdx-2048]	 # AVX512 Disp8
143	vpmovzxbd	zmm30{k7}, XMMWORD PTR [rdx-2064]	 # AVX512
144
145	vpmovzxbq	zmm30{k7}, xmm29	 # AVX512
146	vpmovzxbq	zmm30{k7}{z}, xmm29	 # AVX512
147	vpmovzxbq	zmm30{k7}, QWORD PTR [rcx]	 # AVX512
148	vpmovzxbq	zmm30{k7}, QWORD PTR [rax+r14*8+0x1234]	 # AVX512
149	vpmovzxbq	zmm30{k7}, QWORD PTR [rdx+1016]	 # AVX512 Disp8
150	vpmovzxbq	zmm30{k7}, QWORD PTR [rdx+1024]	 # AVX512
151	vpmovzxbq	zmm30{k7}, QWORD PTR [rdx-1024]	 # AVX512 Disp8
152	vpmovzxbq	zmm30{k7}, QWORD PTR [rdx-1032]	 # AVX512
153
154	vpmovzxwd	zmm30{k7}, ymm29	 # AVX512
155	vpmovzxwd	zmm30{k7}{z}, ymm29	 # AVX512
156	vpmovzxwd	zmm30{k7}, YMMWORD PTR [rcx]	 # AVX512
157	vpmovzxwd	zmm30{k7}, YMMWORD PTR [rax+r14*8+0x1234]	 # AVX512
158	vpmovzxwd	zmm30{k7}, YMMWORD PTR [rdx+4064]	 # AVX512 Disp8
159	vpmovzxwd	zmm30{k7}, YMMWORD PTR [rdx+4096]	 # AVX512
160	vpmovzxwd	zmm30{k7}, YMMWORD PTR [rdx-4096]	 # AVX512 Disp8
161	vpmovzxwd	zmm30{k7}, YMMWORD PTR [rdx-4128]	 # AVX512
162
163	vpmovzxwq	zmm30{k7}, xmm29	 # AVX512
164	vpmovzxwq	zmm30{k7}{z}, xmm29	 # AVX512
165	vpmovzxwq	zmm30{k7}, XMMWORD PTR [rcx]	 # AVX512
166	vpmovzxwq	zmm30{k7}, XMMWORD PTR [rax+r14*8+0x1234]	 # AVX512
167	vpmovzxwq	zmm30{k7}, XMMWORD PTR [rdx+2032]	 # AVX512 Disp8
168	vpmovzxwq	zmm30{k7}, XMMWORD PTR [rdx+2048]	 # AVX512
169	vpmovzxwq	zmm30{k7}, XMMWORD PTR [rdx-2048]	 # AVX512 Disp8
170	vpmovzxwq	zmm30{k7}, XMMWORD PTR [rdx-2064]	 # AVX512
171
172