File: avx2.s

package info (click to toggle)
binutils 2.31.1-12
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 307,644 kB
  • sloc: ansic: 1,161,122; asm: 638,494; cpp: 128,815; exp: 68,557; makefile: 55,828; sh: 22,360; yacc: 14,238; lisp: 13,272; perl: 2,111; ada: 1,681; lex: 1,652; pascal: 1,446; cs: 879; sed: 195; python: 154; xml: 95; awk: 25
file content (268 lines) | stat: -rw-r--r-- 6,555 bytes parent folder | download | duplicates (25)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
# Check i386 AVX2 instructions

	.allow_index_reg
	.text
_start:

# Tests for op mem256, mask,  ymm
# Tests for op ymm, mask, mem256
	vpmaskmovd (%ecx),%ymm4,%ymm6
	vpmaskmovd %ymm4,%ymm6,(%ecx)
	vpmaskmovq (%ecx),%ymm4,%ymm6
	vpmaskmovq %ymm4,%ymm6,(%ecx)

# Tests for op imm8, ymm/mem256, ymm
	vpermpd $7,%ymm6,%ymm2
	vpermpd $7,(%ecx),%ymm6
	vpermq $7,%ymm6,%ymm2
	vpermq $7,(%ecx),%ymm6

# Tests for op ymm/mem256, ymm, ymm
	vpermd %ymm4,%ymm6,%ymm2
	vpermd (%ecx),%ymm6,%ymm2
	vpermps %ymm4,%ymm6,%ymm2
	vpermps (%ecx),%ymm6,%ymm2
	vpsllvd %ymm4,%ymm6,%ymm2
	vpsllvd (%ecx),%ymm6,%ymm2
	vpsllvq %ymm4,%ymm6,%ymm2
	vpsllvq (%ecx),%ymm6,%ymm2
	vpsravd %ymm4,%ymm6,%ymm2
	vpsravd (%ecx),%ymm6,%ymm2
	vpsrlvd %ymm4,%ymm6,%ymm2
	vpsrlvd (%ecx),%ymm6,%ymm2
	vpsrlvq %ymm4,%ymm6,%ymm2
	vpsrlvq (%ecx),%ymm6,%ymm2

# Tests for op mem256, ymm
	vmovntdqa (%ecx),%ymm4

# Tests for op ymm, xmm
	vbroadcastsd %xmm4,%ymm6
	vbroadcastss %xmm4,%ymm6

# Tests for op imm8, ymm/mem256, ymm, ymm
	vpblendd $7,%ymm4,%ymm6,%ymm2
	vpblendd $7,(%ecx),%ymm6,%ymm2
	vperm2i128 $7,%ymm4,%ymm6,%ymm2
	vperm2i128 $7,(%ecx),%ymm6,%ymm2

# Tests for op imm8, xmm/mem128, ymm, ymm
	vinserti128 $7,%xmm4,%ymm4,%ymm6
	vinserti128 $7,(%ecx),%ymm4,%ymm6

# Tests for op mem128, ymm
	vbroadcasti128 (%ecx),%ymm4

# Tests for op xmm/mem128, xmm, xmm
	vpsllvd %xmm4,%xmm6,%xmm2
	vpsllvd (%ecx),%xmm6,%xmm7
	vpsllvq %xmm4,%xmm6,%xmm2
	vpsllvq (%ecx),%xmm6,%xmm7
	vpsravd %xmm4,%xmm6,%xmm2
	vpsravd (%ecx),%xmm6,%xmm7
	vpsrlvd %xmm4,%xmm6,%xmm2
	vpsrlvd (%ecx),%xmm6,%xmm7
	vpsrlvq %xmm4,%xmm6,%xmm2
	vpsrlvq (%ecx),%xmm6,%xmm7

# Tests for op mem128, xmm, xmm
	vpmaskmovd (%ecx),%xmm4,%xmm6
	vpmaskmovq (%ecx),%xmm4,%xmm6

# Tests for op imm8, ymm, xmm128/mem
	vextracti128 $7,%ymm4,%xmm6
	vextracti128 $7,%ymm4,(%ecx)

# Tests for op xmm, xmm, mem128
	vpmaskmovd %xmm4,%xmm6,(%ecx)
	vpmaskmovq %xmm4,%xmm6,(%ecx)

# Tests for op imm8, xmm/mem128, xmm, xmm
	vpblendd $7,%xmm4,%xmm6,%xmm2
	vpblendd $7,(%ecx),%xmm6,%xmm2

# Tests for op xmm/mem64, xmm
	vpbroadcastq %xmm4,%xmm6
	vpbroadcastq (%ecx),%xmm4

# Tests for op xmm/mem64, ymm
	vpbroadcastq %xmm4,%ymm6
	vpbroadcastq (%ecx),%ymm4

# Tests for op xmm/mem32, ymm
	vpbroadcastd %xmm4,%ymm4
	vpbroadcastd (%ecx),%ymm4

# Tests for op xmm/mem32, xmm
	vpbroadcastd %xmm4,%xmm6
	vpbroadcastd (%ecx),%xmm4

# Tests for op xmm/m16, xmm
	vpbroadcastw %xmm4,%xmm6
	vpbroadcastw (%ecx),%xmm4

# Tests for op xmm/m16, ymm
	vpbroadcastw %xmm4,%ymm6
	vpbroadcastw (%ecx),%ymm4

# Tests for op xmm/m8, xmm
	vpbroadcastb %xmm4,%xmm6
	vpbroadcastb (%ecx),%xmm4

# Tests for op xmm/m8, ymm
	vpbroadcastb %xmm4,%ymm6
	vpbroadcastb (%ecx),%ymm4

# Tests for op xmm, xmm
	vbroadcastss %xmm4,%xmm6

	.intel_syntax noprefix

# Tests for op mem256, mask,  ymm
# Tests for op ymm, mask, mem256
	vpmaskmovd ymm6,ymm4,YMMWORD PTR [ecx]
	vpmaskmovd YMMWORD PTR [ecx],ymm6,ymm4
	vpmaskmovd ymm6,ymm4,[ecx]
	vpmaskmovd [ecx],ymm6,ymm4
	vpmaskmovq ymm6,ymm4,YMMWORD PTR [ecx]
	vpmaskmovq YMMWORD PTR [ecx],ymm6,ymm4
	vpmaskmovq ymm6,ymm4,[ecx]
	vpmaskmovq [ecx],ymm6,ymm4

# Tests for op imm8, ymm/mem256, ymm
	vpermpd ymm2,ymm6,7
	vpermpd ymm6,YMMWORD PTR [ecx],7
	vpermpd ymm6,[ecx],7
	vpermq ymm2,ymm6,7
	vpermq ymm6,YMMWORD PTR [ecx],7
	vpermq ymm6,[ecx],7

# Tests for op ymm/mem256, ymm, ymm
	vpermd ymm2,ymm6,ymm4
	vpermd ymm2,ymm6,YMMWORD PTR [ecx]
	vpermd ymm2,ymm6,[ecx]
	vpermps ymm2,ymm6,ymm4
	vpermps ymm2,ymm6,YMMWORD PTR [ecx]
	vpermps ymm2,ymm6,[ecx]
	vpsllvd ymm2,ymm6,ymm4
	vpsllvd ymm2,ymm6,YMMWORD PTR [ecx]
	vpsllvd ymm2,ymm6,[ecx]
	vpsllvq ymm2,ymm6,ymm4
	vpsllvq ymm2,ymm6,YMMWORD PTR [ecx]
	vpsllvq ymm2,ymm6,[ecx]
	vpsravd ymm2,ymm6,ymm4
	vpsravd ymm2,ymm6,YMMWORD PTR [ecx]
	vpsravd ymm2,ymm6,[ecx]
	vpsrlvd ymm2,ymm6,ymm4
	vpsrlvd ymm2,ymm6,YMMWORD PTR [ecx]
	vpsrlvd ymm2,ymm6,[ecx]
	vpsrlvq ymm2,ymm6,ymm4
	vpsrlvq ymm2,ymm6,YMMWORD PTR [ecx]
	vpsrlvq ymm2,ymm6,[ecx]

# Tests for op mem256, ymm
	vmovntdqa ymm4,YMMWORD PTR [ecx]
	vmovntdqa ymm4,[ecx]

# Tests for op ymm, xmm
	vbroadcastsd ymm6,xmm4
	vbroadcastss ymm6,xmm4

# Tests for op imm8, ymm/mem256, ymm, ymm
	vpblendd ymm2,ymm6,ymm4,7
	vpblendd ymm2,ymm6,YMMWORD PTR [ecx],7
	vpblendd ymm2,ymm6,[ecx],7
	vperm2i128 ymm2,ymm6,ymm4,7
	vperm2i128 ymm2,ymm6,YMMWORD PTR [ecx],7
	vperm2i128 ymm2,ymm6,[ecx],7

# Tests for op imm8, xmm/mem128, ymm, ymm
	vinserti128 ymm6,ymm4,xmm4,7
	vinserti128 ymm6,ymm4,XMMWORD PTR [ecx],7
	vinserti128 ymm6,ymm4,[ecx],7

# Tests for op mem128, ymm
	vbroadcasti128 ymm4,XMMWORD PTR [ecx]
	vbroadcasti128 ymm4,[ecx]

# Tests for op xmm/mem128, xmm, xmm
	vpsllvd xmm2,xmm6,xmm4
	vpsllvd xmm7,xmm6,XMMWORD PTR [ecx]
	vpsllvd xmm7,xmm6,[ecx]
	vpsllvq xmm2,xmm6,xmm4
	vpsllvq xmm7,xmm6,XMMWORD PTR [ecx]
	vpsllvq xmm7,xmm6,[ecx]
	vpsravd xmm2,xmm6,xmm4
	vpsravd xmm7,xmm6,XMMWORD PTR [ecx]
	vpsravd xmm7,xmm6,[ecx]
	vpsrlvd xmm2,xmm6,xmm4
	vpsrlvd xmm7,xmm6,XMMWORD PTR [ecx]
	vpsrlvd xmm7,xmm6,[ecx]
	vpsrlvq xmm2,xmm6,xmm4
	vpsrlvq xmm7,xmm6,XMMWORD PTR [ecx]
	vpsrlvq xmm7,xmm6,[ecx]

# Tests for op mem128, xmm, xmm
	vpmaskmovd xmm6,xmm4,XMMWORD PTR [ecx]
	vpmaskmovd xmm6,xmm4,[ecx]
	vpmaskmovq xmm6,xmm4,XMMWORD PTR [ecx]
	vpmaskmovq xmm6,xmm4,[ecx]

# Tests for op imm8, ymm, xmm128/mem
	vextracti128 xmm6,ymm4,7
	vextracti128 XMMWORD PTR [ecx],ymm4,7
	vextracti128 [ecx],ymm4,7

# Tests for op xmm, xmm, mem128
	vpmaskmovd XMMWORD PTR [ecx],xmm6,xmm4
	vpmaskmovd [ecx],xmm6,xmm4
	vpmaskmovq XMMWORD PTR [ecx],xmm6,xmm4
	vpmaskmovq [ecx],xmm6,xmm4

# Tests for op imm8, xmm/mem128, xmm, xmm
	vpblendd xmm2,xmm6,xmm4,7
	vpblendd xmm2,xmm6,XMMWORD PTR [ecx],7
	vpblendd xmm2,xmm6,[ecx],7

# Tests for op xmm/mem64, xmm
	vpbroadcastq xmm6,xmm4
	vpbroadcastq xmm4,QWORD PTR [ecx]
	vpbroadcastq xmm4,[ecx]

# Tests for op xmm/mem64, ymm
	vpbroadcastq ymm6,xmm4
	vpbroadcastq ymm4,QWORD PTR [ecx]
	vpbroadcastq ymm4,[ecx]

# Tests for op xmm/mem32, ymm
	vpbroadcastd ymm4,xmm4
	vpbroadcastd ymm4,DWORD PTR [ecx]
	vpbroadcastd ymm4,[ecx]

# Tests for op xmm/mem32, xmm
	vpbroadcastd xmm6,xmm4
	vpbroadcastd xmm4,DWORD PTR [ecx]
	vpbroadcastd xmm4,[ecx]

# Tests for op xmm/m16, xmm
	vpbroadcastw xmm6,xmm4
	vpbroadcastw xmm4,WORD PTR [ecx]
	vpbroadcastw xmm4,[ecx]

# Tests for op xmm/m16, ymm
	vpbroadcastw ymm6,xmm4
	vpbroadcastw ymm4,WORD PTR [ecx]
	vpbroadcastw ymm4,[ecx]

# Tests for op xmm/m8, xmm
	vpbroadcastb xmm6,xmm4
	vpbroadcastb xmm4,BYTE PTR [ecx]
	vpbroadcastb xmm4,[ecx]

# Tests for op xmm/m8, ymm
	vpbroadcastb ymm6,xmm4
	vpbroadcastb ymm4,BYTE PTR [ecx]
	vpbroadcastb ymm4,[ecx]

# Tests for op xmm, xmm
	vbroadcastss xmm6,xmm4