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