i386: Check for reserved VEX.vvvv and EVEX.vvvv
[external/binutils.git] / gas / testsuite / gas / i386 / evex-wig.s
1 # Check EVEX WIG instructions
2
3         .allow_index_reg
4         .text
5 _start:
6
7         {evex} vcvtsi2ss %eax, %xmm0, %xmm0
8         {evex} vcvtsi2ss 4(%eax), %xmm0, %xmm0
9
10         {evex} vcvtsi2sd %eax, %xmm0, %xmm0
11         {evex} vcvtsi2sd 4(%eax), %xmm0, %xmm0
12
13         {evex} vcvtss2si %xmm0, %eax
14
15         {evex} vcvtsd2si %xmm0, %eax
16
17         {evex} vcvttss2si %xmm0, %eax
18
19         {evex} vcvttsd2si %xmm0, %eax
20
21         vcvtusi2ss %eax, %xmm0, %xmm0
22         vcvtusi2ss 4(%eax), %xmm0, %xmm0
23
24         vcvtusi2sd %eax, %xmm0, %xmm0
25         vcvtusi2sd 4(%eax), %xmm0, %xmm0
26
27         vcvtss2usi %xmm0, %eax
28
29         vcvtsd2usi %xmm0, %eax
30
31         vcvttss2usi %xmm0, %eax
32
33         vcvttsd2usi %xmm0, %eax
34
35         {evex} vextractps $0, %xmm0, %eax
36         {evex} vextractps $0, %xmm0, 4(%eax)
37
38         {evex} vmovd %eax, %xmm0
39         {evex} vmovd 4(%eax), %xmm0
40
41         {evex} vmovd %xmm0, %eax
42         {evex} vmovd %xmm0, 4(%eax)
43
44         vpbroadcastd %eax, %xmm0
45
46         {evex} vpextrb $0, %xmm0, %eax
47         {evex} vpextrb $0, %xmm0, 1(%eax)
48
49         {evex} vpextrd $0, %xmm0, %eax
50         {evex} vpextrd $0, %xmm0, 4(%eax)
51
52         {evex} vpextrw $0, %xmm0, %eax
53         {evex} {store} vpextrw $0, %xmm0, %eax
54         {evex} vpextrw $0, %xmm0, 2(%eax)
55
56         {evex} vpinsrb $0, %eax, %xmm0, %xmm0
57         {evex} vpinsrb $0, 1(%eax), %xmm0, %xmm0
58
59         {evex} vpinsrd $0, %eax, %xmm0, %xmm0
60         {evex} vpinsrd $0, 4(%eax), %xmm0, %xmm0
61
62         {evex} vpinsrw $0, %eax, %xmm0, %xmm0
63         {evex} vpinsrw $0, 2(%eax), %xmm0, %xmm0
64
65         vpmovsxbd       %xmm5, %zmm6{%k7}        # AVX512
66         vpmovsxbd       %xmm5, %zmm6{%k7}{z}     # AVX512
67         vpmovsxbd       (%ecx), %zmm6{%k7}       # AVX512
68         vpmovsxbd       -123456(%esp,%esi,8), %zmm6{%k7}         # AVX512
69         vpmovsxbd       2032(%edx), %zmm6{%k7}   # AVX512 Disp8
70         vpmovsxbd       2048(%edx), %zmm6{%k7}   # AVX512
71         vpmovsxbd       -2048(%edx), %zmm6{%k7}  # AVX512 Disp8
72         vpmovsxbd       -2064(%edx), %zmm6{%k7}  # AVX512
73
74         vpmovsxbq       %xmm5, %zmm6{%k7}        # AVX512
75         vpmovsxbq       %xmm5, %zmm6{%k7}{z}     # AVX512
76         vpmovsxbq       (%ecx), %zmm6{%k7}       # AVX512
77         vpmovsxbq       -123456(%esp,%esi,8), %zmm6{%k7}         # AVX512
78         vpmovsxbq       1016(%edx), %zmm6{%k7}   # AVX512 Disp8
79         vpmovsxbq       1024(%edx), %zmm6{%k7}   # AVX512
80         vpmovsxbq       -1024(%edx), %zmm6{%k7}  # AVX512 Disp8
81         vpmovsxbq       -1032(%edx), %zmm6{%k7}  # AVX512
82
83         vpmovsxwd       %ymm5, %zmm6{%k7}        # AVX512
84         vpmovsxwd       %ymm5, %zmm6{%k7}{z}     # AVX512
85         vpmovsxwd       (%ecx), %zmm6{%k7}       # AVX512
86         vpmovsxwd       -123456(%esp,%esi,8), %zmm6{%k7}         # AVX512
87         vpmovsxwd       4064(%edx), %zmm6{%k7}   # AVX512 Disp8
88         vpmovsxwd       4096(%edx), %zmm6{%k7}   # AVX512
89         vpmovsxwd       -4096(%edx), %zmm6{%k7}  # AVX512 Disp8
90         vpmovsxwd       -4128(%edx), %zmm6{%k7}  # AVX512
91
92         vpmovsxwq       %xmm5, %zmm6{%k7}        # AVX512
93         vpmovsxwq       %xmm5, %zmm6{%k7}{z}     # AVX512
94         vpmovsxwq       (%ecx), %zmm6{%k7}       # AVX512
95         vpmovsxwq       -123456(%esp,%esi,8), %zmm6{%k7}         # AVX512
96         vpmovsxwq       2032(%edx), %zmm6{%k7}   # AVX512 Disp8
97         vpmovsxwq       2048(%edx), %zmm6{%k7}   # AVX512
98         vpmovsxwq       -2048(%edx), %zmm6{%k7}  # AVX512 Disp8
99         vpmovsxwq       -2064(%edx), %zmm6{%k7}  # AVX512
100
101         vpmovzxbd       %xmm5, %zmm6{%k7}        # AVX512
102         vpmovzxbd       %xmm5, %zmm6{%k7}{z}     # AVX512
103         vpmovzxbd       (%ecx), %zmm6{%k7}       # AVX512
104         vpmovzxbd       -123456(%esp,%esi,8), %zmm6{%k7}         # AVX512
105         vpmovzxbd       2032(%edx), %zmm6{%k7}   # AVX512 Disp8
106         vpmovzxbd       2048(%edx), %zmm6{%k7}   # AVX512
107         vpmovzxbd       -2048(%edx), %zmm6{%k7}  # AVX512 Disp8
108         vpmovzxbd       -2064(%edx), %zmm6{%k7}  # AVX512
109
110         vpmovzxbq       %xmm5, %zmm6{%k7}        # AVX512
111         vpmovzxbq       %xmm5, %zmm6{%k7}{z}     # AVX512
112         vpmovzxbq       (%ecx), %zmm6{%k7}       # AVX512
113         vpmovzxbq       -123456(%esp,%esi,8), %zmm6{%k7}         # AVX512
114         vpmovzxbq       1016(%edx), %zmm6{%k7}   # AVX512 Disp8
115         vpmovzxbq       1024(%edx), %zmm6{%k7}   # AVX512
116         vpmovzxbq       -1024(%edx), %zmm6{%k7}  # AVX512 Disp8
117         vpmovzxbq       -1032(%edx), %zmm6{%k7}  # AVX512
118
119         vpmovzxwd       %ymm5, %zmm6{%k7}        # AVX512
120         vpmovzxwd       %ymm5, %zmm6{%k7}{z}     # AVX512
121         vpmovzxwd       (%ecx), %zmm6{%k7}       # AVX512
122         vpmovzxwd       -123456(%esp,%esi,8), %zmm6{%k7}         # AVX512
123         vpmovzxwd       4064(%edx), %zmm6{%k7}   # AVX512 Disp8
124         vpmovzxwd       4096(%edx), %zmm6{%k7}   # AVX512
125         vpmovzxwd       -4096(%edx), %zmm6{%k7}  # AVX512 Disp8
126         vpmovzxwd       -4128(%edx), %zmm6{%k7}  # AVX512
127
128         vpmovzxwq       %xmm5, %zmm6{%k7}        # AVX512
129         vpmovzxwq       %xmm5, %zmm6{%k7}{z}     # AVX512
130         vpmovzxwq       (%ecx), %zmm6{%k7}       # AVX512
131         vpmovzxwq       -123456(%esp,%esi,8), %zmm6{%k7}         # AVX512
132         vpmovzxwq       2032(%edx), %zmm6{%k7}   # AVX512 Disp8
133         vpmovzxwq       2048(%edx), %zmm6{%k7}   # AVX512
134         vpmovzxwq       -2048(%edx), %zmm6{%k7}  # AVX512 Disp8
135         vpmovzxwq       -2064(%edx), %zmm6{%k7}  # AVX512
136
137         .intel_syntax noprefix
138         vpmovsxbd       zmm6{k7}, xmm5   # AVX512
139         vpmovsxbd       zmm6{k7}{z}, xmm5        # AVX512
140         vpmovsxbd       zmm6{k7}, XMMWORD PTR [ecx]      # AVX512
141         vpmovsxbd       zmm6{k7}, XMMWORD PTR [esp+esi*8-123456]         # AVX512
142         vpmovsxbd       zmm6{k7}, XMMWORD PTR [edx+2032]         # AVX512 Disp8
143         vpmovsxbd       zmm6{k7}, XMMWORD PTR [edx+2048]         # AVX512
144         vpmovsxbd       zmm6{k7}, XMMWORD PTR [edx-2048]         # AVX512 Disp8
145         vpmovsxbd       zmm6{k7}, XMMWORD PTR [edx-2064]         # AVX512
146
147         vpmovsxbq       zmm6{k7}, xmm5   # AVX512
148         vpmovsxbq       zmm6{k7}{z}, xmm5        # AVX512
149         vpmovsxbq       zmm6{k7}, QWORD PTR [ecx]        # AVX512
150         vpmovsxbq       zmm6{k7}, QWORD PTR [esp+esi*8-123456]   # AVX512
151         vpmovsxbq       zmm6{k7}, QWORD PTR [edx+1016]   # AVX512 Disp8
152         vpmovsxbq       zmm6{k7}, QWORD PTR [edx+1024]   # AVX512
153         vpmovsxbq       zmm6{k7}, QWORD PTR [edx-1024]   # AVX512 Disp8
154         vpmovsxbq       zmm6{k7}, QWORD PTR [edx-1032]   # AVX512
155
156         vpmovsxwd       zmm6{k7}, ymm5   # AVX512
157         vpmovsxwd       zmm6{k7}{z}, ymm5        # AVX512
158         vpmovsxwd       zmm6{k7}, YMMWORD PTR [ecx]      # AVX512
159         vpmovsxwd       zmm6{k7}, YMMWORD PTR [esp+esi*8-123456]         # AVX512
160         vpmovsxwd       zmm6{k7}, YMMWORD PTR [edx+4064]         # AVX512 Disp8
161         vpmovsxwd       zmm6{k7}, YMMWORD PTR [edx+4096]         # AVX512
162         vpmovsxwd       zmm6{k7}, YMMWORD PTR [edx-4096]         # AVX512 Disp8
163         vpmovsxwd       zmm6{k7}, YMMWORD PTR [edx-4128]         # AVX512
164
165         vpmovsxwq       zmm6{k7}, xmm5   # AVX512
166         vpmovsxwq       zmm6{k7}{z}, xmm5        # AVX512
167         vpmovsxwq       zmm6{k7}, XMMWORD PTR [ecx]      # AVX512
168         vpmovsxwq       zmm6{k7}, XMMWORD PTR [esp+esi*8-123456]         # AVX512
169         vpmovsxwq       zmm6{k7}, XMMWORD PTR [edx+2032]         # AVX512 Disp8
170         vpmovsxwq       zmm6{k7}, XMMWORD PTR [edx+2048]         # AVX512
171         vpmovsxwq       zmm6{k7}, XMMWORD PTR [edx-2048]         # AVX512 Disp8
172         vpmovsxwq       zmm6{k7}, XMMWORD PTR [edx-2064]         # AVX512
173
174         vpmovzxbd       zmm6{k7}, xmm5   # AVX512
175         vpmovzxbd       zmm6{k7}{z}, xmm5        # AVX512
176         vpmovzxbd       zmm6{k7}, XMMWORD PTR [ecx]      # AVX512
177         vpmovzxbd       zmm6{k7}, XMMWORD PTR [esp+esi*8-123456]         # AVX512
178         vpmovzxbd       zmm6{k7}, XMMWORD PTR [edx+2032]         # AVX512 Disp8
179         vpmovzxbd       zmm6{k7}, XMMWORD PTR [edx+2048]         # AVX512
180         vpmovzxbd       zmm6{k7}, XMMWORD PTR [edx-2048]         # AVX512 Disp8
181         vpmovzxbd       zmm6{k7}, XMMWORD PTR [edx-2064]         # AVX512
182
183         vpmovzxbq       zmm6{k7}, xmm5   # AVX512
184         vpmovzxbq       zmm6{k7}{z}, xmm5        # AVX512
185         vpmovzxbq       zmm6{k7}, QWORD PTR [ecx]        # AVX512
186         vpmovzxbq       zmm6{k7}, QWORD PTR [esp+esi*8-123456]   # AVX512
187         vpmovzxbq       zmm6{k7}, QWORD PTR [edx+1016]   # AVX512 Disp8
188         vpmovzxbq       zmm6{k7}, QWORD PTR [edx+1024]   # AVX512
189         vpmovzxbq       zmm6{k7}, QWORD PTR [edx-1024]   # AVX512 Disp8
190         vpmovzxbq       zmm6{k7}, QWORD PTR [edx-1032]   # AVX512
191
192         vpmovzxwd       zmm6{k7}, ymm5   # AVX512
193         vpmovzxwd       zmm6{k7}{z}, ymm5        # AVX512
194         vpmovzxwd       zmm6{k7}, YMMWORD PTR [ecx]      # AVX512
195         vpmovzxwd       zmm6{k7}, YMMWORD PTR [esp+esi*8-123456]         # AVX512
196         vpmovzxwd       zmm6{k7}, YMMWORD PTR [edx+4064]         # AVX512 Disp8
197         vpmovzxwd       zmm6{k7}, YMMWORD PTR [edx+4096]         # AVX512
198         vpmovzxwd       zmm6{k7}, YMMWORD PTR [edx-4096]         # AVX512 Disp8
199         vpmovzxwd       zmm6{k7}, YMMWORD PTR [edx-4128]         # AVX512
200
201         vpmovzxwq       zmm6{k7}, xmm5   # AVX512
202         vpmovzxwq       zmm6{k7}{z}, xmm5        # AVX512
203         vpmovzxwq       zmm6{k7}, XMMWORD PTR [ecx]      # AVX512
204         vpmovzxwq       zmm6{k7}, XMMWORD PTR [esp+esi*8-123456]         # AVX512
205         vpmovzxwq       zmm6{k7}, XMMWORD PTR [edx+2032]         # AVX512 Disp8
206         vpmovzxwq       zmm6{k7}, XMMWORD PTR [edx+2048]         # AVX512
207         vpmovzxwq       zmm6{k7}, XMMWORD PTR [edx-2048]         # AVX512 Disp8
208         vpmovzxwq       zmm6{k7}, XMMWORD PTR [edx-2064]         # AVX512
209