i386: Check for reserved VEX.vvvv and EVEX.vvvv
[external/binutils.git] / gas / testsuite / gas / i386 / avx512f_vl-opts.s
1 # Check 32bit AVX512{F,VL} swap instructions
2
3         .allow_index_reg
4         .text
5 _start:
6         vmovapd %xmm5, %xmm6{%k7}        # AVX512{F,VL}
7         vmovapd.s       %xmm5, %xmm6{%k7}        # AVX512{F,VL}
8         vmovapd %xmm5, %xmm6{%k7}{z}     # AVX512{F,VL}
9         vmovapd.s       %xmm5, %xmm6{%k7}{z}     # AVX512{F,VL}
10         vmovapd %xmm5, %xmm6{%k7}        # AVX512{F,VL}
11         vmovapd.s       %xmm5, %xmm6{%k7}        # AVX512{F,VL}
12         vmovapd %xmm5, %xmm6{%k7}{z}     # AVX512{F,VL}
13         vmovapd.s       %xmm5, %xmm6{%k7}{z}     # AVX512{F,VL}
14         vmovapd %ymm5, %ymm6{%k7}        # AVX512{F,VL}
15         vmovapd.s       %ymm5, %ymm6{%k7}        # AVX512{F,VL}
16         vmovapd %ymm5, %ymm6{%k7}{z}     # AVX512{F,VL}
17         vmovapd.s       %ymm5, %ymm6{%k7}{z}     # AVX512{F,VL}
18         vmovapd %ymm5, %ymm6{%k7}        # AVX512{F,VL}
19         vmovapd.s       %ymm5, %ymm6{%k7}        # AVX512{F,VL}
20         vmovapd %ymm5, %ymm6{%k7}{z}     # AVX512{F,VL}
21         vmovapd.s       %ymm5, %ymm6{%k7}{z}     # AVX512{F,VL}
22         vmovaps %xmm5, %xmm6{%k7}        # AVX512{F,VL}
23         vmovaps.s       %xmm5, %xmm6{%k7}        # AVX512{F,VL}
24         vmovaps %xmm5, %xmm6{%k7}{z}     # AVX512{F,VL}
25         vmovaps.s       %xmm5, %xmm6{%k7}{z}     # AVX512{F,VL}
26         vmovaps %xmm5, %xmm6{%k7}        # AVX512{F,VL}
27         vmovaps.s       %xmm5, %xmm6{%k7}        # AVX512{F,VL}
28         vmovaps %xmm5, %xmm6{%k7}{z}     # AVX512{F,VL}
29         vmovaps.s       %xmm5, %xmm6{%k7}{z}     # AVX512{F,VL}
30         vmovaps %ymm5, %ymm6{%k7}        # AVX512{F,VL}
31         vmovaps.s       %ymm5, %ymm6{%k7}        # AVX512{F,VL}
32         vmovaps %ymm5, %ymm6{%k7}{z}     # AVX512{F,VL}
33         vmovaps.s       %ymm5, %ymm6{%k7}{z}     # AVX512{F,VL}
34         vmovaps %ymm5, %ymm6{%k7}        # AVX512{F,VL}
35         vmovaps.s       %ymm5, %ymm6{%k7}        # AVX512{F,VL}
36         vmovaps %ymm5, %ymm6{%k7}{z}     # AVX512{F,VL}
37         vmovaps.s       %ymm5, %ymm6{%k7}{z}     # AVX512{F,VL}
38         vmovdqa32       %xmm5, %xmm6{%k7}        # AVX512{F,VL}
39         vmovdqa32.s     %xmm5, %xmm6{%k7}        # AVX512{F,VL}
40         vmovdqa32       %xmm5, %xmm6{%k7}{z}     # AVX512{F,VL}
41         vmovdqa32.s     %xmm5, %xmm6{%k7}{z}     # AVX512{F,VL}
42         vmovdqa32       %xmm5, %xmm6{%k7}        # AVX512{F,VL}
43         vmovdqa32.s     %xmm5, %xmm6{%k7}        # AVX512{F,VL}
44         vmovdqa32       %xmm5, %xmm6{%k7}{z}     # AVX512{F,VL}
45         vmovdqa32.s     %xmm5, %xmm6{%k7}{z}     # AVX512{F,VL}
46         vmovdqa32       %ymm5, %ymm6{%k7}        # AVX512{F,VL}
47         vmovdqa32.s     %ymm5, %ymm6{%k7}        # AVX512{F,VL}
48         vmovdqa32       %ymm5, %ymm6{%k7}{z}     # AVX512{F,VL}
49         vmovdqa32.s     %ymm5, %ymm6{%k7}{z}     # AVX512{F,VL}
50         vmovdqa32       %ymm5, %ymm6{%k7}        # AVX512{F,VL}
51         vmovdqa32.s     %ymm5, %ymm6{%k7}        # AVX512{F,VL}
52         vmovdqa32       %ymm5, %ymm6{%k7}{z}     # AVX512{F,VL}
53         vmovdqa32.s     %ymm5, %ymm6{%k7}{z}     # AVX512{F,VL}
54         vmovdqa64       %xmm5, %xmm6{%k7}        # AVX512{F,VL}
55         vmovdqa64.s     %xmm5, %xmm6{%k7}        # AVX512{F,VL}
56         vmovdqa64       %xmm5, %xmm6{%k7}{z}     # AVX512{F,VL}
57         vmovdqa64.s     %xmm5, %xmm6{%k7}{z}     # AVX512{F,VL}
58         vmovdqa64       %xmm5, %xmm6{%k7}        # AVX512{F,VL}
59         vmovdqa64.s     %xmm5, %xmm6{%k7}        # AVX512{F,VL}
60         vmovdqa64       %xmm5, %xmm6{%k7}{z}     # AVX512{F,VL}
61         vmovdqa64.s     %xmm5, %xmm6{%k7}{z}     # AVX512{F,VL}
62         vmovdqa64       %ymm5, %ymm6{%k7}        # AVX512{F,VL}
63         vmovdqa64.s     %ymm5, %ymm6{%k7}        # AVX512{F,VL}
64         vmovdqa64       %ymm5, %ymm6{%k7}{z}     # AVX512{F,VL}
65         vmovdqa64.s     %ymm5, %ymm6{%k7}{z}     # AVX512{F,VL}
66         vmovdqa64       %ymm5, %ymm6{%k7}        # AVX512{F,VL}
67         vmovdqa64.s     %ymm5, %ymm6{%k7}        # AVX512{F,VL}
68         vmovdqa64       %ymm5, %ymm6{%k7}{z}     # AVX512{F,VL}
69         vmovdqa64.s     %ymm5, %ymm6{%k7}{z}     # AVX512{F,VL}
70         vmovdqu32       %xmm5, %xmm6{%k7}        # AVX512{F,VL}
71         vmovdqu32.s     %xmm5, %xmm6{%k7}        # AVX512{F,VL}
72         vmovdqu32       %xmm5, %xmm6{%k7}{z}     # AVX512{F,VL}
73         vmovdqu32.s     %xmm5, %xmm6{%k7}{z}     # AVX512{F,VL}
74         vmovdqu32       %xmm5, %xmm6{%k7}        # AVX512{F,VL}
75         vmovdqu32.s     %xmm5, %xmm6{%k7}        # AVX512{F,VL}
76         vmovdqu32       %xmm5, %xmm6{%k7}{z}     # AVX512{F,VL}
77         vmovdqu32.s     %xmm5, %xmm6{%k7}{z}     # AVX512{F,VL}
78         vmovdqu32       %ymm5, %ymm6{%k7}        # AVX512{F,VL}
79         vmovdqu32.s     %ymm5, %ymm6{%k7}        # AVX512{F,VL}
80         vmovdqu32       %ymm5, %ymm6{%k7}{z}     # AVX512{F,VL}
81         vmovdqu32.s     %ymm5, %ymm6{%k7}{z}     # AVX512{F,VL}
82         vmovdqu32       %ymm5, %ymm6{%k7}        # AVX512{F,VL}
83         vmovdqu32.s     %ymm5, %ymm6{%k7}        # AVX512{F,VL}
84         vmovdqu32       %ymm5, %ymm6{%k7}{z}     # AVX512{F,VL}
85         vmovdqu32.s     %ymm5, %ymm6{%k7}{z}     # AVX512{F,VL}
86         vmovdqu64       %xmm5, %xmm6{%k7}        # AVX512{F,VL}
87         vmovdqu64.s     %xmm5, %xmm6{%k7}        # AVX512{F,VL}
88         vmovdqu64       %xmm5, %xmm6{%k7}{z}     # AVX512{F,VL}
89         vmovdqu64.s     %xmm5, %xmm6{%k7}{z}     # AVX512{F,VL}
90         vmovdqu64       %xmm5, %xmm6{%k7}        # AVX512{F,VL}
91         vmovdqu64.s     %xmm5, %xmm6{%k7}        # AVX512{F,VL}
92         vmovdqu64       %xmm5, %xmm6{%k7}{z}     # AVX512{F,VL}
93         vmovdqu64.s     %xmm5, %xmm6{%k7}{z}     # AVX512{F,VL}
94         vmovdqu64       %ymm5, %ymm6{%k7}        # AVX512{F,VL}
95         vmovdqu64.s     %ymm5, %ymm6{%k7}        # AVX512{F,VL}
96         vmovdqu64       %ymm5, %ymm6{%k7}{z}     # AVX512{F,VL}
97         vmovdqu64.s     %ymm5, %ymm6{%k7}{z}     # AVX512{F,VL}
98         vmovdqu64       %ymm5, %ymm6{%k7}        # AVX512{F,VL}
99         vmovdqu64.s     %ymm5, %ymm6{%k7}        # AVX512{F,VL}
100         vmovdqu64       %ymm5, %ymm6{%k7}{z}     # AVX512{F,VL}
101         vmovdqu64.s     %ymm5, %ymm6{%k7}{z}     # AVX512{F,VL}
102         vmovupd %xmm5, %xmm6{%k7}        # AVX512{F,VL}
103         vmovupd.s       %xmm5, %xmm6{%k7}        # AVX512{F,VL}
104         vmovupd %xmm5, %xmm6{%k7}{z}     # AVX512{F,VL}
105         vmovupd.s       %xmm5, %xmm6{%k7}{z}     # AVX512{F,VL}
106         vmovupd %xmm5, %xmm6{%k7}        # AVX512{F,VL}
107         vmovupd.s       %xmm5, %xmm6{%k7}        # AVX512{F,VL}
108         vmovupd %xmm5, %xmm6{%k7}{z}     # AVX512{F,VL}
109         vmovupd.s       %xmm5, %xmm6{%k7}{z}     # AVX512{F,VL}
110         vmovupd %ymm5, %ymm6{%k7}        # AVX512{F,VL}
111         vmovupd.s       %ymm5, %ymm6{%k7}        # AVX512{F,VL}
112         vmovupd %ymm5, %ymm6{%k7}{z}     # AVX512{F,VL}
113         vmovupd.s       %ymm5, %ymm6{%k7}{z}     # AVX512{F,VL}
114         vmovupd %ymm5, %ymm6{%k7}        # AVX512{F,VL}
115         vmovupd.s       %ymm5, %ymm6{%k7}        # AVX512{F,VL}
116         vmovupd %ymm5, %ymm6{%k7}{z}     # AVX512{F,VL}
117         vmovupd.s       %ymm5, %ymm6{%k7}{z}     # AVX512{F,VL}
118         vmovups %xmm5, %xmm6{%k7}        # AVX512{F,VL}
119         vmovups.s       %xmm5, %xmm6{%k7}        # AVX512{F,VL}
120         vmovups %xmm5, %xmm6{%k7}{z}     # AVX512{F,VL}
121         vmovups.s       %xmm5, %xmm6{%k7}{z}     # AVX512{F,VL}
122         vmovups %xmm5, %xmm6{%k7}        # AVX512{F,VL}
123         vmovups.s       %xmm5, %xmm6{%k7}        # AVX512{F,VL}
124         vmovups %xmm5, %xmm6{%k7}{z}     # AVX512{F,VL}
125         vmovups.s       %xmm5, %xmm6{%k7}{z}     # AVX512{F,VL}
126         vmovups %ymm5, %ymm6{%k7}        # AVX512{F,VL}
127         vmovups.s       %ymm5, %ymm6{%k7}        # AVX512{F,VL}
128         vmovups %ymm5, %ymm6{%k7}{z}     # AVX512{F,VL}
129         vmovups.s       %ymm5, %ymm6{%k7}{z}     # AVX512{F,VL}
130         vmovups %ymm5, %ymm6{%k7}        # AVX512{F,VL}
131         vmovups.s       %ymm5, %ymm6{%k7}        # AVX512{F,VL}
132         vmovups %ymm5, %ymm6{%k7}{z}     # AVX512{F,VL}
133         vmovups.s       %ymm5, %ymm6{%k7}{z}     # AVX512{F,VL}
134
135         .intel_syntax noprefix
136         vmovapd xmm6{k7}, xmm5   # AVX512{F,VL}
137         vmovapd.s       xmm6{k7}, xmm5   # AVX512{F,VL}
138         vmovapd xmm6{k7}{z}, xmm5        # AVX512{F,VL}
139         vmovapd.s       xmm6{k7}{z}, xmm5        # AVX512{F,VL}
140         vmovapd xmm6{k7}, xmm5   # AVX512{F,VL}
141         vmovapd.s       xmm6{k7}, xmm5   # AVX512{F,VL}
142         vmovapd xmm6{k7}{z}, xmm5        # AVX512{F,VL}
143         vmovapd.s       xmm6{k7}{z}, xmm5        # AVX512{F,VL}
144         vmovapd ymm6{k7}, ymm5   # AVX512{F,VL}
145         vmovapd.s       ymm6{k7}, ymm5   # AVX512{F,VL}
146         vmovapd ymm6{k7}{z}, ymm5        # AVX512{F,VL}
147         vmovapd.s       ymm6{k7}{z}, ymm5        # AVX512{F,VL}
148         vmovapd ymm6{k7}, ymm5   # AVX512{F,VL}
149         vmovapd.s       ymm6{k7}, ymm5   # AVX512{F,VL}
150         vmovapd ymm6{k7}{z}, ymm5        # AVX512{F,VL}
151         vmovapd.s       ymm6{k7}{z}, ymm5        # AVX512{F,VL}
152         vmovaps xmm6{k7}, xmm5   # AVX512{F,VL}
153         vmovaps.s       xmm6{k7}, xmm5   # AVX512{F,VL}
154         vmovaps xmm6{k7}{z}, xmm5        # AVX512{F,VL}
155         vmovaps.s       xmm6{k7}{z}, xmm5        # AVX512{F,VL}
156         vmovaps xmm6{k7}, xmm5   # AVX512{F,VL}
157         vmovaps.s       xmm6{k7}, xmm5   # AVX512{F,VL}
158         vmovaps xmm6{k7}{z}, xmm5        # AVX512{F,VL}
159         vmovaps.s       xmm6{k7}{z}, xmm5        # AVX512{F,VL}
160         vmovaps ymm6{k7}, ymm5   # AVX512{F,VL}
161         vmovaps.s       ymm6{k7}, ymm5   # AVX512{F,VL}
162         vmovaps ymm6{k7}{z}, ymm5        # AVX512{F,VL}
163         vmovaps.s       ymm6{k7}{z}, ymm5        # AVX512{F,VL}
164         vmovaps ymm6{k7}, ymm5   # AVX512{F,VL}
165         vmovaps.s       ymm6{k7}, ymm5   # AVX512{F,VL}
166         vmovaps ymm6{k7}{z}, ymm5        # AVX512{F,VL}
167         vmovaps.s       ymm6{k7}{z}, ymm5        # AVX512{F,VL}
168         vmovdqa32       xmm6{k7}, xmm5   # AVX512{F,VL}
169         vmovdqa32.s     xmm6{k7}, xmm5   # AVX512{F,VL}
170         vmovdqa32       xmm6{k7}{z}, xmm5        # AVX512{F,VL}
171         vmovdqa32.s     xmm6{k7}{z}, xmm5        # AVX512{F,VL}
172         vmovdqa32       xmm6{k7}, xmm5   # AVX512{F,VL}
173         vmovdqa32.s     xmm6{k7}, xmm5   # AVX512{F,VL}
174         vmovdqa32       xmm6{k7}{z}, xmm5        # AVX512{F,VL}
175         vmovdqa32.s     xmm6{k7}{z}, xmm5        # AVX512{F,VL}
176         vmovdqa32       ymm6{k7}, ymm5   # AVX512{F,VL}
177         vmovdqa32.s     ymm6{k7}, ymm5   # AVX512{F,VL}
178         vmovdqa32       ymm6{k7}{z}, ymm5        # AVX512{F,VL}
179         vmovdqa32.s     ymm6{k7}{z}, ymm5        # AVX512{F,VL}
180         vmovdqa32       ymm6{k7}, ymm5   # AVX512{F,VL}
181         vmovdqa32.s     ymm6{k7}, ymm5   # AVX512{F,VL}
182         vmovdqa32       ymm6{k7}{z}, ymm5        # AVX512{F,VL}
183         vmovdqa32.s     ymm6{k7}{z}, ymm5        # AVX512{F,VL}
184         vmovdqa64       xmm6{k7}, xmm5   # AVX512{F,VL}
185         vmovdqa64.s     xmm6{k7}, xmm5   # AVX512{F,VL}
186         vmovdqa64       xmm6{k7}{z}, xmm5        # AVX512{F,VL}
187         vmovdqa64.s     xmm6{k7}{z}, xmm5        # AVX512{F,VL}
188         vmovdqa64       xmm6{k7}, xmm5   # AVX512{F,VL}
189         vmovdqa64.s     xmm6{k7}, xmm5   # AVX512{F,VL}
190         vmovdqa64       xmm6{k7}{z}, xmm5        # AVX512{F,VL}
191         vmovdqa64.s     xmm6{k7}{z}, xmm5        # AVX512{F,VL}
192         vmovdqa64       ymm6{k7}, ymm5   # AVX512{F,VL}
193         vmovdqa64.s     ymm6{k7}, ymm5   # AVX512{F,VL}
194         vmovdqa64       ymm6{k7}{z}, ymm5        # AVX512{F,VL}
195         vmovdqa64.s     ymm6{k7}{z}, ymm5        # AVX512{F,VL}
196         vmovdqa64       ymm6{k7}, ymm5   # AVX512{F,VL}
197         vmovdqa64.s     ymm6{k7}, ymm5   # AVX512{F,VL}
198         vmovdqa64       ymm6{k7}{z}, ymm5        # AVX512{F,VL}
199         vmovdqa64.s     ymm6{k7}{z}, ymm5        # AVX512{F,VL}
200         vmovdqu32       xmm6{k7}, xmm5   # AVX512{F,VL}
201         vmovdqu32.s     xmm6{k7}, xmm5   # AVX512{F,VL}
202         vmovdqu32       xmm6{k7}{z}, xmm5        # AVX512{F,VL}
203         vmovdqu32.s     xmm6{k7}{z}, xmm5        # AVX512{F,VL}
204         vmovdqu32       xmm6{k7}, xmm5   # AVX512{F,VL}
205         vmovdqu32.s     xmm6{k7}, xmm5   # AVX512{F,VL}
206         vmovdqu32       xmm6{k7}{z}, xmm5        # AVX512{F,VL}
207         vmovdqu32.s     xmm6{k7}{z}, xmm5        # AVX512{F,VL}
208         vmovdqu32       ymm6{k7}, ymm5   # AVX512{F,VL}
209         vmovdqu32.s     ymm6{k7}, ymm5   # AVX512{F,VL}
210         vmovdqu32       ymm6{k7}{z}, ymm5        # AVX512{F,VL}
211         vmovdqu32.s     ymm6{k7}{z}, ymm5        # AVX512{F,VL}
212         vmovdqu32       ymm6{k7}, ymm5   # AVX512{F,VL}
213         vmovdqu32.s     ymm6{k7}, ymm5   # AVX512{F,VL}
214         vmovdqu32       ymm6{k7}{z}, ymm5        # AVX512{F,VL}
215         vmovdqu32.s     ymm6{k7}{z}, ymm5        # AVX512{F,VL}
216         vmovdqu64       xmm6{k7}, xmm5   # AVX512{F,VL}
217         vmovdqu64.s     xmm6{k7}, xmm5   # AVX512{F,VL}
218         vmovdqu64       xmm6{k7}{z}, xmm5        # AVX512{F,VL}
219         vmovdqu64.s     xmm6{k7}{z}, xmm5        # AVX512{F,VL}
220         vmovdqu64       xmm6{k7}, xmm5   # AVX512{F,VL}
221         vmovdqu64.s     xmm6{k7}, xmm5   # AVX512{F,VL}
222         vmovdqu64       xmm6{k7}{z}, xmm5        # AVX512{F,VL}
223         vmovdqu64.s     xmm6{k7}{z}, xmm5        # AVX512{F,VL}
224         vmovdqu64       ymm6{k7}, ymm5   # AVX512{F,VL}
225         vmovdqu64.s     ymm6{k7}, ymm5   # AVX512{F,VL}
226         vmovdqu64       ymm6{k7}{z}, ymm5        # AVX512{F,VL}
227         vmovdqu64.s     ymm6{k7}{z}, ymm5        # AVX512{F,VL}
228         vmovdqu64       ymm6{k7}, ymm5   # AVX512{F,VL}
229         vmovdqu64.s     ymm6{k7}, ymm5   # AVX512{F,VL}
230         vmovdqu64       ymm6{k7}{z}, ymm5        # AVX512{F,VL}
231         vmovdqu64.s     ymm6{k7}{z}, ymm5        # AVX512{F,VL}
232         vmovupd xmm6{k7}, xmm5   # AVX512{F,VL}
233         vmovupd.s       xmm6{k7}, xmm5   # AVX512{F,VL}
234         vmovupd xmm6{k7}{z}, xmm5        # AVX512{F,VL}
235         vmovupd.s       xmm6{k7}{z}, xmm5        # AVX512{F,VL}
236         vmovupd xmm6{k7}, xmm5   # AVX512{F,VL}
237         vmovupd.s       xmm6{k7}, xmm5   # AVX512{F,VL}
238         vmovupd xmm6{k7}{z}, xmm5        # AVX512{F,VL}
239         vmovupd.s       xmm6{k7}{z}, xmm5        # AVX512{F,VL}
240         vmovupd ymm6{k7}, ymm5   # AVX512{F,VL}
241         vmovupd.s       ymm6{k7}, ymm5   # AVX512{F,VL}
242         vmovupd ymm6{k7}{z}, ymm5        # AVX512{F,VL}
243         vmovupd.s       ymm6{k7}{z}, ymm5        # AVX512{F,VL}
244         vmovupd ymm6{k7}, ymm5   # AVX512{F,VL}
245         vmovupd.s       ymm6{k7}, ymm5   # AVX512{F,VL}
246         vmovupd ymm6{k7}{z}, ymm5        # AVX512{F,VL}
247         vmovupd.s       ymm6{k7}{z}, ymm5        # AVX512{F,VL}
248         vmovups xmm6{k7}, xmm5   # AVX512{F,VL}
249         vmovups.s       xmm6{k7}, xmm5   # AVX512{F,VL}
250         vmovups xmm6{k7}{z}, xmm5        # AVX512{F,VL}
251         vmovups.s       xmm6{k7}{z}, xmm5        # AVX512{F,VL}
252         vmovups xmm6{k7}, xmm5   # AVX512{F,VL}
253         vmovups.s       xmm6{k7}, xmm5   # AVX512{F,VL}
254         vmovups xmm6{k7}{z}, xmm5        # AVX512{F,VL}
255         vmovups.s       xmm6{k7}{z}, xmm5        # AVX512{F,VL}
256         vmovups ymm6{k7}, ymm5   # AVX512{F,VL}
257         vmovups.s       ymm6{k7}, ymm5   # AVX512{F,VL}
258         vmovups ymm6{k7}{z}, ymm5        # AVX512{F,VL}
259         vmovups.s       ymm6{k7}{z}, ymm5        # AVX512{F,VL}
260         vmovups ymm6{k7}, ymm5   # AVX512{F,VL}
261         vmovups.s       ymm6{k7}, ymm5   # AVX512{F,VL}
262         vmovups ymm6{k7}{z}, ymm5        # AVX512{F,VL}
263         vmovups.s       ymm6{k7}{z}, ymm5        # AVX512{F,VL}