i386: Also check R12-R15 registers when optimizing testq to testb
[deliverable/binutils-gdb.git] / gas / testsuite / gas / i386 / x86-64-avx2.s
1 # Check x86-64 AVX2 instructions
2
3 .allow_index_reg
4 .text
5 _start:
6
7 # Tests for op mem256, mask, ymm
8 # Tests for op ymm, mask, mem256
9 vpmaskmovd (%rcx),%ymm4,%ymm6
10 vpmaskmovd %ymm4,%ymm6,(%rcx)
11 vpmaskmovq (%rcx),%ymm4,%ymm6
12 vpmaskmovq %ymm4,%ymm6,(%rcx)
13
14 # Tests for op imm8, ymm/mem256, ymm
15 vpermpd $7,%ymm6,%ymm2
16 vpermpd $7,(%rcx),%ymm6
17 vpermq $7,%ymm6,%ymm2
18 vpermq $7,(%rcx),%ymm6
19
20 # Tests for op ymm/mem256, ymm, ymm
21 vpermd %ymm4,%ymm6,%ymm2
22 vpermd (%rcx),%ymm6,%ymm2
23 vpermps %ymm4,%ymm6,%ymm2
24 vpermps (%rcx),%ymm6,%ymm2
25 vpsllvd %ymm4,%ymm6,%ymm2
26 vpsllvd (%rcx),%ymm6,%ymm2
27 vpsllvq %ymm4,%ymm6,%ymm2
28 vpsllvq (%rcx),%ymm6,%ymm2
29 vpsravd %ymm4,%ymm6,%ymm2
30 vpsravd (%rcx),%ymm6,%ymm2
31 vpsrlvd %ymm4,%ymm6,%ymm2
32 vpsrlvd (%rcx),%ymm6,%ymm2
33 vpsrlvq %ymm4,%ymm6,%ymm2
34 vpsrlvq (%rcx),%ymm6,%ymm2
35
36 # Tests for op mem256, ymm
37 vmovntdqa (%rcx),%ymm4
38
39 # Tests for op ymm, xmm
40 vbroadcastsd %xmm4,%ymm6
41 vbroadcastss %xmm4,%ymm6
42
43 # Tests for op imm8, ymm/mem256, ymm, ymm
44 vpblendd $7,%ymm4,%ymm6,%ymm2
45 vpblendd $7,(%rcx),%ymm6,%ymm2
46 vperm2i128 $7,%ymm4,%ymm6,%ymm2
47 vperm2i128 $7,(%rcx),%ymm6,%ymm2
48
49 # Tests for op imm8, xmm/mem128, ymm, ymm
50 vinserti128 $7,%xmm4,%ymm4,%ymm6
51 vinserti128 $7,(%rcx),%ymm4,%ymm6
52
53 # Tests for op mem128, ymm
54 vbroadcasti128 (%rcx),%ymm4
55
56 # Tests for op xmm/mem128, xmm, xmm
57 vpsllvd %xmm4,%xmm6,%xmm2
58 vpsllvd (%rcx),%xmm6,%xmm7
59 vpsllvq %xmm4,%xmm6,%xmm2
60 vpsllvq (%rcx),%xmm6,%xmm7
61 vpsravd %xmm4,%xmm6,%xmm2
62 vpsravd (%rcx),%xmm6,%xmm7
63 vpsrlvd %xmm4,%xmm6,%xmm2
64 vpsrlvd (%rcx),%xmm6,%xmm7
65 vpsrlvq %xmm4,%xmm6,%xmm2
66 vpsrlvq (%rcx),%xmm6,%xmm7
67
68 # Tests for op mem128, xmm, xmm
69 vpmaskmovd (%rcx),%xmm4,%xmm6
70 vpmaskmovq (%rcx),%xmm4,%xmm6
71
72 # Tests for op imm8, ymm, xmm128/mem
73 vextracti128 $7,%ymm4,%xmm6
74 vextracti128 $7,%ymm4,(%rcx)
75
76 # Tests for op xmm, xmm, mem128
77 vpmaskmovd %xmm4,%xmm6,(%rcx)
78 vpmaskmovq %xmm4,%xmm6,(%rcx)
79
80 # Tests for op imm8, xmm/mem128, xmm, xmm
81 vpblendd $7,%xmm4,%xmm6,%xmm2
82 vpblendd $7,(%rcx),%xmm6,%xmm2
83
84 # Tests for op xmm/mem64, xmm
85 vpbroadcastq %xmm4,%xmm6
86 vpbroadcastq (%rcx),%xmm4
87
88 # Tests for op xmm/mem64, ymm
89 vpbroadcastq %xmm4,%ymm6
90 vpbroadcastq (%rcx),%ymm4
91
92 # Tests for op xmm/mem32, ymm
93 vpbroadcastd %xmm4,%ymm4
94 vpbroadcastd (%rcx),%ymm4
95
96 # Tests for op xmm/mem32, xmm
97 vpbroadcastd %xmm4,%xmm6
98 vpbroadcastd (%rcx),%xmm4
99
100 # Tests for op xmm/m16, xmm
101 vpbroadcastw %xmm4,%xmm6
102 vpbroadcastw (%rcx),%xmm4
103
104 # Tests for op xmm/m16, ymm
105 vpbroadcastw %xmm4,%ymm6
106 vpbroadcastw (%rcx),%ymm4
107
108 # Tests for op xmm/m8, xmm
109 vpbroadcastb %xmm4,%xmm6
110 vpbroadcastb (%rcx),%xmm4
111
112 # Tests for op xmm/m8, ymm
113 vpbroadcastb %xmm4,%ymm6
114 vpbroadcastb (%rcx),%ymm4
115
116 # Tests for op xmm, xmm
117 vbroadcastss %xmm4,%xmm6
118
119 .intel_syntax noprefix
120
121 # Tests for op mem256, mask, ymm
122 # Tests for op ymm, mask, mem256
123 vpmaskmovd ymm6,ymm4,YMMWORD PTR [rcx]
124 vpmaskmovd YMMWORD PTR [rcx],ymm6,ymm4
125 vpmaskmovd ymm6,ymm4,[rcx]
126 vpmaskmovd [rcx],ymm6,ymm4
127 vpmaskmovq ymm6,ymm4,YMMWORD PTR [rcx]
128 vpmaskmovq YMMWORD PTR [rcx],ymm6,ymm4
129 vpmaskmovq ymm6,ymm4,[rcx]
130 vpmaskmovq [rcx],ymm6,ymm4
131
132 # Tests for op imm8, ymm/mem256, ymm
133 vpermpd ymm2,ymm6,7
134 vpermpd ymm6,YMMWORD PTR [rcx],7
135 vpermpd ymm6,[rcx],7
136 vpermq ymm2,ymm6,7
137 vpermq ymm6,YMMWORD PTR [rcx],7
138 vpermq ymm6,[rcx],7
139
140 # Tests for op ymm/mem256, ymm, ymm
141 vpermd ymm2,ymm6,ymm4
142 vpermd ymm2,ymm6,YMMWORD PTR [rcx]
143 vpermd ymm2,ymm6,[rcx]
144 vpermps ymm2,ymm6,ymm4
145 vpermps ymm2,ymm6,YMMWORD PTR [rcx]
146 vpermps ymm2,ymm6,[rcx]
147 vpsllvd ymm2,ymm6,ymm4
148 vpsllvd ymm2,ymm6,YMMWORD PTR [rcx]
149 vpsllvd ymm2,ymm6,[rcx]
150 vpsllvq ymm2,ymm6,ymm4
151 vpsllvq ymm2,ymm6,YMMWORD PTR [rcx]
152 vpsllvq ymm2,ymm6,[rcx]
153 vpsravd ymm2,ymm6,ymm4
154 vpsravd ymm2,ymm6,YMMWORD PTR [rcx]
155 vpsravd ymm2,ymm6,[rcx]
156 vpsrlvd ymm2,ymm6,ymm4
157 vpsrlvd ymm2,ymm6,YMMWORD PTR [rcx]
158 vpsrlvd ymm2,ymm6,[rcx]
159 vpsrlvq ymm2,ymm6,ymm4
160 vpsrlvq ymm2,ymm6,YMMWORD PTR [rcx]
161 vpsrlvq ymm2,ymm6,[rcx]
162
163 # Tests for op mem256, ymm
164 vmovntdqa ymm4,YMMWORD PTR [rcx]
165 vmovntdqa ymm4,[rcx]
166
167 # Tests for op ymm, xmm
168 vbroadcastsd ymm6,xmm4
169 vbroadcastss ymm6,xmm4
170
171 # Tests for op imm8, ymm/mem256, ymm, ymm
172 vpblendd ymm2,ymm6,ymm4,7
173 vpblendd ymm2,ymm6,YMMWORD PTR [rcx],7
174 vpblendd ymm2,ymm6,[rcx],7
175 vperm2i128 ymm2,ymm6,ymm4,7
176 vperm2i128 ymm2,ymm6,YMMWORD PTR [rcx],7
177 vperm2i128 ymm2,ymm6,[rcx],7
178
179 # Tests for op imm8, xmm/mem128, ymm, ymm
180 vinserti128 ymm6,ymm4,xmm4,7
181 vinserti128 ymm6,ymm4,XMMWORD PTR [rcx],7
182 vinserti128 ymm6,ymm4,[rcx],7
183
184 # Tests for op mem128, ymm
185 vbroadcasti128 ymm4,XMMWORD PTR [rcx]
186 vbroadcasti128 ymm4,[rcx]
187
188 # Tests for op xmm/mem128, xmm, xmm
189 vpsllvd xmm2,xmm6,xmm4
190 vpsllvd xmm7,xmm6,XMMWORD PTR [rcx]
191 vpsllvd xmm7,xmm6,[rcx]
192 vpsllvq xmm2,xmm6,xmm4
193 vpsllvq xmm7,xmm6,XMMWORD PTR [rcx]
194 vpsllvq xmm7,xmm6,[rcx]
195 vpsravd xmm2,xmm6,xmm4
196 vpsravd xmm7,xmm6,XMMWORD PTR [rcx]
197 vpsravd xmm7,xmm6,[rcx]
198 vpsrlvd xmm2,xmm6,xmm4
199 vpsrlvd xmm7,xmm6,XMMWORD PTR [rcx]
200 vpsrlvd xmm7,xmm6,[rcx]
201 vpsrlvq xmm2,xmm6,xmm4
202 vpsrlvq xmm7,xmm6,XMMWORD PTR [rcx]
203 vpsrlvq xmm7,xmm6,[rcx]
204
205 # Tests for op mem128, xmm, xmm
206 vpmaskmovd xmm6,xmm4,XMMWORD PTR [rcx]
207 vpmaskmovd xmm6,xmm4,[rcx]
208 vpmaskmovq xmm6,xmm4,XMMWORD PTR [rcx]
209 vpmaskmovq xmm6,xmm4,[rcx]
210
211 # Tests for op imm8, ymm, xmm128/mem
212 vextracti128 xmm6,ymm4,7
213 vextracti128 XMMWORD PTR [rcx],ymm4,7
214 vextracti128 [rcx],ymm4,7
215
216 # Tests for op xmm, xmm, mem128
217 vpmaskmovd XMMWORD PTR [rcx],xmm6,xmm4
218 vpmaskmovd [rcx],xmm6,xmm4
219 vpmaskmovq XMMWORD PTR [rcx],xmm6,xmm4
220 vpmaskmovq [rcx],xmm6,xmm4
221
222 # Tests for op imm8, xmm/mem128, xmm, xmm
223 vpblendd xmm2,xmm6,xmm4,7
224 vpblendd xmm2,xmm6,XMMWORD PTR [rcx],7
225 vpblendd xmm2,xmm6,[rcx],7
226
227 # Tests for op xmm/mem64, xmm
228 vpbroadcastq xmm6,xmm4
229 vpbroadcastq xmm4,QWORD PTR [rcx]
230 vpbroadcastq xmm4,[rcx]
231
232 # Tests for op xmm/mem64, ymm
233 vpbroadcastq ymm6,xmm4
234 vpbroadcastq ymm4,QWORD PTR [rcx]
235 vpbroadcastq ymm4,[rcx]
236
237 # Tests for op xmm/mem32, ymm
238 vpbroadcastd ymm4,xmm4
239 vpbroadcastd ymm4,DWORD PTR [rcx]
240 vpbroadcastd ymm4,[rcx]
241
242 # Tests for op xmm/mem32, xmm
243 vpbroadcastd xmm6,xmm4
244 vpbroadcastd xmm4,DWORD PTR [rcx]
245 vpbroadcastd xmm4,[rcx]
246
247 # Tests for op xmm/m16, xmm
248 vpbroadcastw xmm6,xmm4
249 vpbroadcastw xmm4,WORD PTR [rcx]
250 vpbroadcastw xmm4,[rcx]
251
252 # Tests for op xmm/m16, ymm
253 vpbroadcastw ymm6,xmm4
254 vpbroadcastw ymm4,WORD PTR [rcx]
255 vpbroadcastw ymm4,[rcx]
256
257 # Tests for op xmm/m8, xmm
258 vpbroadcastb xmm6,xmm4
259 vpbroadcastb xmm4,BYTE PTR [rcx]
260 vpbroadcastb xmm4,[rcx]
261
262 # Tests for op xmm/m8, ymm
263 vpbroadcastb ymm6,xmm4
264 vpbroadcastb ymm4,BYTE PTR [rcx]
265 vpbroadcastb ymm4,[rcx]
266
267 # Tests for op xmm, xmm
268 vbroadcastss xmm6,xmm4
This page took 0.062725 seconds and 4 git commands to generate.