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