Add .noavx512XX directives to x86 assembler
[external/binutils.git] / gas / testsuite / gas / i386 / noavx512-1.s
1 # Test .arch .noavx512XX
2         .text
3         vpabsb %zmm5, %zmm6{%k7}                # AVX512BW
4         vpabsb %xmm5, %xmm6{%k7}                # AVX512BW + AVX512VL
5         vpabsb %ymm5, %ymm6{%k7}                # AVX512BW + AVX512VL
6         vpconflictd %zmm5, %zmm6                # AVX412CD
7         vpconflictd %xmm5, %xmm6                # AVX412CD + AVX512VL
8         vpconflictd %ymm5, %ymm6                # AVX412CD + AVX512VL
9         vcvtpd2qq (%ecx), %zmm6{%k7}            # AVX512DQ
10         vcvtpd2qq (%ecx), %xmm6{%k7}            # AVX512DQ + AVX512VL
11         vcvtpd2qq (%ecx), %ymm6{%k7}            # AVX512DQ + AVX512VL
12         vexp2ps %zmm5, %zmm6{%k7}               # AVX512ER
13         vaddpd %zmm4, %zmm5, %zmm6{%k7}         # AVX512F
14         vaddpd %xmm4, %xmm5, %xmm6{%k7}         # AVX512F + AVX512VL
15         vaddpd %ymm4, %ymm5, %ymm6{%k7}         # AVX512F + AVX512VL
16         vpmadd52luq %zmm4, %zmm5, %zmm6{%k7}    # AVX512IFMA
17         vpmadd52luq %xmm4, %xmm5, %xmm6{%k7}    # AVX512IFMA + AVX512VL
18         vpmadd52luq %ymm4, %ymm5, %ymm6{%k7}    # AVX512IFMA + AVX512VL
19         vgatherpf0dpd 23(%ebp,%ymm7,8){%k1}     # AVX512PF
20         vpermb %zmm4, %zmm5, %zmm6{%k7}         # AVX512VBMI
21         vpermb %xmm4, %xmm5, %xmm6{%k7}         # AVX512VBMI + AVX512VL
22         vpermb %ymm4, %ymm5, %ymm6{%k7}         # AVX512VBMI + AVX512VL
23
24         .arch .noavx512bw
25         vpabsb %zmm5, %zmm6{%k7}                # AVX512BW
26         vpabsb %xmm5, %xmm6{%k7}                # AVX512BW + AVX512VL
27         vpabsb %ymm5, %ymm6{%k7}                # AVX512BW + AVX512VL
28         vpconflictd %zmm5, %zmm6                # AVX412CD
29         vpconflictd %xmm5, %xmm6                # AVX412CD + AVX512VL
30         vpconflictd %ymm5, %ymm6                # AVX412CD + AVX512VL
31         vcvtpd2qq (%ecx), %zmm6{%k7}            # AVX512DQ
32         vcvtpd2qq (%ecx), %xmm6{%k7}            # AVX512DQ + AVX512VL
33         vcvtpd2qq (%ecx), %ymm6{%k7}            # AVX512DQ + AVX512VL
34         vexp2ps %zmm5, %zmm6{%k7}               # AVX512ER
35         vaddpd %zmm4, %zmm5, %zmm6{%k7}         # AVX512F
36         vaddpd %xmm4, %xmm5, %xmm6{%k7}         # AVX512F + AVX512VL
37         vaddpd %ymm4, %ymm5, %ymm6{%k7}         # AVX512F + AVX512VL
38         vpmadd52luq %zmm4, %zmm5, %zmm6{%k7}    # AVX512IFMA
39         vpmadd52luq %xmm4, %xmm5, %xmm6{%k7}    # AVX512IFMA + AVX512VL
40         vpmadd52luq %ymm4, %ymm5, %ymm6{%k7}    # AVX512IFMA + AVX512VL
41         vgatherpf0dpd 23(%ebp,%ymm7,8){%k1}     # AVX512PF
42         vpermb %zmm4, %zmm5, %zmm6{%k7}         # AVX512VBMI
43         vpermb %xmm4, %xmm5, %xmm6{%k7}         # AVX512VBMI + AVX512VL
44         vpermb %ymm4, %ymm5, %ymm6{%k7}         # AVX512VBMI + AVX512VL
45
46         .arch .noavx512cd
47         vpabsb %zmm5, %zmm6{%k7}                # AVX512BW
48         vpabsb %xmm5, %xmm6{%k7}                # AVX512BW + AVX512VL
49         vpabsb %ymm5, %ymm6{%k7}                # AVX512BW + AVX512VL
50         vpconflictd %zmm5, %zmm6                # AVX412CD
51         vpconflictd %xmm5, %xmm6                # AVX412CD + AVX512VL
52         vpconflictd %ymm5, %ymm6                # AVX412CD + AVX512VL
53         vcvtpd2qq (%ecx), %zmm6{%k7}            # AVX512DQ
54         vcvtpd2qq (%ecx), %xmm6{%k7}            # AVX512DQ + AVX512VL
55         vcvtpd2qq (%ecx), %ymm6{%k7}            # AVX512DQ + AVX512VL
56         vexp2ps %zmm5, %zmm6{%k7}               # AVX512ER
57         vaddpd %zmm4, %zmm5, %zmm6{%k7}         # AVX512F
58         vaddpd %xmm4, %xmm5, %xmm6{%k7}         # AVX512F + AVX512VL
59         vaddpd %ymm4, %ymm5, %ymm6{%k7}         # AVX512F + AVX512VL
60         vpmadd52luq %zmm4, %zmm5, %zmm6{%k7}    # AVX512IFMA
61         vpmadd52luq %xmm4, %xmm5, %xmm6{%k7}    # AVX512IFMA + AVX512VL
62         vpmadd52luq %ymm4, %ymm5, %ymm6{%k7}    # AVX512IFMA + AVX512VL
63         vgatherpf0dpd 23(%ebp,%ymm7,8){%k1}     # AVX512PF
64         vpermb %zmm4, %zmm5, %zmm6{%k7}         # AVX512VBMI
65         vpermb %xmm4, %xmm5, %xmm6{%k7}         # AVX512VBMI + AVX512VL
66         vpermb %ymm4, %ymm5, %ymm6{%k7}         # AVX512VBMI + AVX512VL
67
68         .arch .noavx512dq
69         vpabsb %zmm5, %zmm6{%k7}                # AVX512BW
70         vpabsb %xmm5, %xmm6{%k7}                # AVX512BW + AVX512VL
71         vpabsb %ymm5, %ymm6{%k7}                # AVX512BW + AVX512VL
72         vpconflictd %zmm5, %zmm6                # AVX412CD
73         vpconflictd %xmm5, %xmm6                # AVX412CD + AVX512VL
74         vpconflictd %ymm5, %ymm6                # AVX412CD + AVX512VL
75         vcvtpd2qq (%ecx), %zmm6{%k7}            # AVX512DQ
76         vcvtpd2qq (%ecx), %xmm6{%k7}            # AVX512DQ + AVX512VL
77         vcvtpd2qq (%ecx), %ymm6{%k7}            # AVX512DQ + AVX512VL
78         vexp2ps %zmm5, %zmm6{%k7}               # AVX512ER
79         vaddpd %zmm4, %zmm5, %zmm6{%k7}         # AVX512F
80         vaddpd %xmm4, %xmm5, %xmm6{%k7}         # AVX512F + AVX512VL
81         vaddpd %ymm4, %ymm5, %ymm6{%k7}         # AVX512F + AVX512VL
82         vpmadd52luq %zmm4, %zmm5, %zmm6{%k7}    # AVX512IFMA
83         vpmadd52luq %xmm4, %xmm5, %xmm6{%k7}    # AVX512IFMA + AVX512VL
84         vpmadd52luq %ymm4, %ymm5, %ymm6{%k7}    # AVX512IFMA + AVX512VL
85         vgatherpf0dpd 23(%ebp,%ymm7,8){%k1}     # AVX512PF
86         vpermb %zmm4, %zmm5, %zmm6{%k7}         # AVX512VBMI
87         vpermb %xmm4, %xmm5, %xmm6{%k7}         # AVX512VBMI + AVX512VL
88         vpermb %ymm4, %ymm5, %ymm6{%k7}         # AVX512VBMI + AVX512VL
89
90         .arch .noavx512er
91         vpabsb %zmm5, %zmm6{%k7}                # AVX512BW
92         vpabsb %xmm5, %xmm6{%k7}                # AVX512BW + AVX512VL
93         vpabsb %ymm5, %ymm6{%k7}                # AVX512BW + AVX512VL
94         vpconflictd %zmm5, %zmm6                # AVX412CD
95         vpconflictd %xmm5, %xmm6                # AVX412CD + AVX512VL
96         vpconflictd %ymm5, %ymm6                # AVX412CD + AVX512VL
97         vcvtpd2qq (%ecx), %zmm6{%k7}            # AVX512DQ
98         vcvtpd2qq (%ecx), %xmm6{%k7}            # AVX512DQ + AVX512VL
99         vcvtpd2qq (%ecx), %ymm6{%k7}            # AVX512DQ + AVX512VL
100         vexp2ps %zmm5, %zmm6{%k7}               # AVX512ER
101         vaddpd %zmm4, %zmm5, %zmm6{%k7}         # AVX512F
102         vaddpd %xmm4, %xmm5, %xmm6{%k7}         # AVX512F + AVX512VL
103         vaddpd %ymm4, %ymm5, %ymm6{%k7}         # AVX512F + AVX512VL
104         vpmadd52luq %zmm4, %zmm5, %zmm6{%k7}    # AVX512IFMA
105         vpmadd52luq %xmm4, %xmm5, %xmm6{%k7}    # AVX512IFMA + AVX512VL
106         vpmadd52luq %ymm4, %ymm5, %ymm6{%k7}    # AVX512IFMA + AVX512VL
107         vgatherpf0dpd 23(%ebp,%ymm7,8){%k1}     # AVX512PF
108         vpermb %zmm4, %zmm5, %zmm6{%k7}         # AVX512VBMI
109         vpermb %xmm4, %xmm5, %xmm6{%k7}         # AVX512VBMI + AVX512VL
110         vpermb %ymm4, %ymm5, %ymm6{%k7}         # AVX512VBMI + AVX512VL
111
112         .arch .noavx512ifma
113         vpabsb %zmm5, %zmm6{%k7}                # AVX512BW
114         vpabsb %xmm5, %xmm6{%k7}                # AVX512BW + AVX512VL
115         vpabsb %ymm5, %ymm6{%k7}                # AVX512BW + AVX512VL
116         vpconflictd %zmm5, %zmm6                # AVX412CD
117         vpconflictd %xmm5, %xmm6                # AVX412CD + AVX512VL
118         vpconflictd %ymm5, %ymm6                # AVX412CD + AVX512VL
119         vcvtpd2qq (%ecx), %zmm6{%k7}            # AVX512DQ
120         vcvtpd2qq (%ecx), %xmm6{%k7}            # AVX512DQ + AVX512VL
121         vcvtpd2qq (%ecx), %ymm6{%k7}            # AVX512DQ + AVX512VL
122         vexp2ps %zmm5, %zmm6{%k7}               # AVX512ER
123         vaddpd %zmm4, %zmm5, %zmm6{%k7}         # AVX512F
124         vaddpd %xmm4, %xmm5, %xmm6{%k7}         # AVX512F + AVX512VL
125         vaddpd %ymm4, %ymm5, %ymm6{%k7}         # AVX512F + AVX512VL
126         vpmadd52luq %zmm4, %zmm5, %zmm6{%k7}    # AVX512IFMA
127         vpmadd52luq %xmm4, %xmm5, %xmm6{%k7}    # AVX512IFMA + AVX512VL
128         vpmadd52luq %ymm4, %ymm5, %ymm6{%k7}    # AVX512IFMA + AVX512VL
129         vgatherpf0dpd 23(%ebp,%ymm7,8){%k1}     # AVX512PF
130         vpermb %zmm4, %zmm5, %zmm6{%k7}         # AVX512VBMI
131         vpermb %xmm4, %xmm5, %xmm6{%k7}         # AVX512VBMI + AVX512VL
132         vpermb %ymm4, %ymm5, %ymm6{%k7}         # AVX512VBMI + AVX512VL
133
134         .arch .noavx512pf
135         vpabsb %zmm5, %zmm6{%k7}                # AVX512BW
136         vpabsb %xmm5, %xmm6{%k7}                # AVX512BW + AVX512VL
137         vpabsb %ymm5, %ymm6{%k7}                # AVX512BW + AVX512VL
138         vpconflictd %zmm5, %zmm6                # AVX412CD
139         vpconflictd %xmm5, %xmm6                # AVX412CD + AVX512VL
140         vpconflictd %ymm5, %ymm6                # AVX412CD + AVX512VL
141         vcvtpd2qq (%ecx), %zmm6{%k7}            # AVX512DQ
142         vcvtpd2qq (%ecx), %xmm6{%k7}            # AVX512DQ + AVX512VL
143         vcvtpd2qq (%ecx), %ymm6{%k7}            # AVX512DQ + AVX512VL
144         vexp2ps %zmm5, %zmm6{%k7}               # AVX512ER
145         vaddpd %zmm4, %zmm5, %zmm6{%k7}         # AVX512F
146         vaddpd %xmm4, %xmm5, %xmm6{%k7}         # AVX512F + AVX512VL
147         vaddpd %ymm4, %ymm5, %ymm6{%k7}         # AVX512F + AVX512VL
148         vpmadd52luq %zmm4, %zmm5, %zmm6{%k7}    # AVX512IFMA
149         vpmadd52luq %xmm4, %xmm5, %xmm6{%k7}    # AVX512IFMA + AVX512VL
150         vpmadd52luq %ymm4, %ymm5, %ymm6{%k7}    # AVX512IFMA + AVX512VL
151         vgatherpf0dpd 23(%ebp,%ymm7,8){%k1}     # AVX512PF
152         vpermb %zmm4, %zmm5, %zmm6{%k7}         # AVX512VBMI
153         vpermb %xmm4, %xmm5, %xmm6{%k7}         # AVX512VBMI + AVX512VL
154         vpermb %ymm4, %ymm5, %ymm6{%k7}         # AVX512VBMI + AVX512VL
155
156         .arch .noavx512vbmi
157         vpabsb %zmm5, %zmm6{%k7}                # AVX512BW
158         vpabsb %xmm5, %xmm6{%k7}                # AVX512BW + AVX512VL
159         vpabsb %ymm5, %ymm6{%k7}                # AVX512BW + AVX512VL
160         vpconflictd %zmm5, %zmm6                # AVX412CD
161         vpconflictd %xmm5, %xmm6                # AVX412CD + AVX512VL
162         vpconflictd %ymm5, %ymm6                # AVX412CD + AVX512VL
163         vcvtpd2qq (%ecx), %zmm6{%k7}            # AVX512DQ
164         vcvtpd2qq (%ecx), %xmm6{%k7}            # AVX512DQ + AVX512VL
165         vcvtpd2qq (%ecx), %ymm6{%k7}            # AVX512DQ + AVX512VL
166         vexp2ps %zmm5, %zmm6{%k7}               # AVX512ER
167         vaddpd %zmm4, %zmm5, %zmm6{%k7}         # AVX512F
168         vaddpd %xmm4, %xmm5, %xmm6{%k7}         # AVX512F + AVX512VL
169         vaddpd %ymm4, %ymm5, %ymm6{%k7}         # AVX512F + AVX512VL
170         vpmadd52luq %zmm4, %zmm5, %zmm6{%k7}    # AVX512IFMA
171         vpmadd52luq %xmm4, %xmm5, %xmm6{%k7}    # AVX512IFMA + AVX512VL
172         vpmadd52luq %ymm4, %ymm5, %ymm6{%k7}    # AVX512IFMA + AVX512VL
173         vgatherpf0dpd 23(%ebp,%ymm7,8){%k1}     # AVX512PF
174         vpermb %zmm4, %zmm5, %zmm6{%k7}         # AVX512VBMI
175         vpermb %xmm4, %xmm5, %xmm6{%k7}         # AVX512VBMI + AVX512VL
176         vpermb %ymm4, %ymm5, %ymm6{%k7}         # AVX512VBMI + AVX512VL
177
178         .arch .noavx512f
179         vpabsb %zmm5, %zmm6{%k7}                # AVX512BW
180         vpabsb %xmm5, %xmm6{%k7}                # AVX512BW + AVX512VL
181         vpabsb %ymm5, %ymm6{%k7}                # AVX512BW + AVX512VL
182         vpconflictd %zmm5, %zmm6                # AVX412CD
183         vpconflictd %xmm5, %xmm6                # AVX412CD + AVX512VL
184         vpconflictd %ymm5, %ymm6                # AVX412CD + AVX512VL
185         vcvtpd2qq (%ecx), %zmm6{%k7}            # AVX512DQ
186         vcvtpd2qq (%ecx), %xmm6{%k7}            # AVX512DQ + AVX512VL
187         vcvtpd2qq (%ecx), %ymm6{%k7}            # AVX512DQ + AVX512VL
188         vexp2ps %zmm5, %zmm6{%k7}               # AVX512ER
189         vaddpd %zmm4, %zmm5, %zmm6{%k7}         # AVX512F
190         vaddpd %xmm4, %xmm5, %xmm6{%k7}         # AVX512F + AVX512VL
191         vaddpd %ymm4, %ymm5, %ymm6{%k7}         # AVX512F + AVX512VL
192         vpmadd52luq %zmm4, %zmm5, %zmm6{%k7}    # AVX512IFMA
193         vpmadd52luq %xmm4, %xmm5, %xmm6{%k7}    # AVX512IFMA + AVX512VL
194         vpmadd52luq %ymm4, %ymm5, %ymm6{%k7}    # AVX512IFMA + AVX512VL
195         vgatherpf0dpd 23(%ebp,%ymm7,8){%k1}     # AVX512PF
196         vpermb %zmm4, %zmm5, %zmm6{%k7}         # AVX512VBMI
197         vpermb %xmm4, %xmm5, %xmm6{%k7}         # AVX512VBMI + AVX512VL
198         vpermb %ymm4, %ymm5, %ymm6{%k7}         # AVX512VBMI + AVX512VL
199
200         vpabsb %xmm5, %xmm6
201         vpabsb %ymm5, %ymm6
202         vaddpd %xmm4, %xmm5, %xmm6
203         vaddpd %ymm4, %ymm5, %ymm6
204         pabsb %xmm5, %xmm6
205         addpd %xmm4, %xmm6
206
207         .p2align 4