2 * This file and its contents are supplied under the terms of the
3 * Common Development and Distribution License ("CDDL"), version 1.0.
4 * You may only use this file in accordance with the terms of version
7 * A full copy of the text of the CDDL should have accompanied this
8 * source. A copy of the CDDL is also available via the Internet at
9 * http://www.illumos.org/license/CDDL.
13 * Copyright 2017 Joyent, Inc.
17 * Basic test for AVX512 instructions
23 .type libdis_test, @function
25 /* bound is not AVX512, but shares the 0x62 opcode on 32-bit. */
43 vmovaps
%zmm4
, 0x8(%esp
)
44 vmovaps
0x8(%esp
), %zmm3
45 vmovaps
%zmm1
, %zmm7
{%k1
}{z
}
46 vmovaps
%zmm6
, %zmm4
{%k7
}
47 vmovaps
%zmm2
, %zmm3
{z
}
49 vmovaps
%xmm7
, %xmm2
{%k3
}{z
}
50 vmovaps
%ymm1
, %ymm3
{%k5
}
54 vmovups
%zmm7
, 0x20(%ebp
)
55 vmovups
0x8(%esp
), %zmm7
56 vmovups
(%eax
), %zmm3
{z
}
58 vmovupd
(%esp
), %zmm1
{%k2
}
61 /* Test offset handling for both disp8*N and full. */
63 vmovaps
%zmm5
, 0x20(%esp
)
64 vmovaps
%zmm4
, 0x40(%esp
)
65 vmovaps
%zmm4
, 0x60(%esp
)
66 vmovaps
%zmm4
, 0x80(%esp
)
67 vmovaps
%zmm4
, -0x80(%esp
)
68 vmovaps
%zmm4
, -0x20(%esp
)
71 vmovaps
0x20(%esp
), %zmm5
72 vmovaps
0x40(%esp
), %zmm5
73 vmovaps
0x60(%esp
), %zmm5
74 vmovaps
0x80(%esp
), %zmm5
75 vmovaps
-0x80(%esp
), %zmm5
76 vmovaps
-0x20(%esp
), %zmm5
78 vmovdqa32
%zmm6
, 0x100(%esp
)
79 vmovdqa32
%ymm6
, 0x100(%esp
)
80 vmovdqa32
%xmm6
, 0x100(%esp
)
81 vmovdqa32
(%eax
), %zmm6
82 vmovdqa32
(%eax
), %ymm6
83 vmovdqa32
(%eax
), %xmm6
85 vmovdqa64
%zmm6
, 0x100(%esp
)
86 vmovdqa64
%ymm6
, 0x100(%esp
)
87 vmovdqa64
%xmm6
, 0x100(%esp
)
88 vmovdqa64
0x800(%esp
), %zmm6
89 vmovdqa64
0x800(%esp
), %ymm6
90 vmovdqa64
0x800(%esp
), %xmm6
92 vmovdqu8
%zmm0
, (%esp
)
93 vmovdqu16
%zmm0
, (%esp
)
94 vmovdqu32
%zmm0
, (%esp
)
95 vmovdqu64
%zmm0
, (%esp
)
96 vmovdqu8
(%esp
), %zmm0
97 vmovdqu16
(%esp
), %zmm0
98 vmovdqu32
(%esp
), %zmm0
99 vmovdqu64
(%esp
), %zmm0
101 vandnpd
%xmm0
, %xmm1
, %xmm2
{z
}
102 vandnpd
(%eax
), %xmm3
, %xmm4
{z
}
103 vandnpd
0x42(%ecx
), %xmm5
, %xmm6
{z
}
104 vandnpd
%ymm0
, %ymm1
, %ymm2
{z
}
105 vandnpd
(%ebx
), %ymm3
, %ymm4
{z
}
106 vandnpd
0x42(%edx
), %ymm5
, %ymm6
{z
}
107 vandnpd
%zmm0
, %zmm1
, %zmm2
108 vandnpd
(%ebx
), %zmm3
, %zmm4
109 vandnpd
0x42(%edx
), %zmm5
, %zmm6
111 vandnps
%xmm0
, %xmm1
, %xmm2
{z
}
112 vandnps
(%eax
), %xmm3
, %xmm4
{z
}
113 vandnps
0x42(%ecx
), %xmm5
, %xmm6
{z
}
114 vandnps
%ymm0
, %ymm1
, %ymm2
{z
}
115 vandnps
(%ebx
), %ymm3
, %ymm4
{z
}
116 vandnps
0x42(%edx
), %ymm5
, %ymm6
{z
}
117 vandnps
%zmm0
, %zmm1
, %zmm2
118 vandnps
(%ebx
), %zmm3
, %zmm4
119 vandnps
0x42(%edx
), %zmm5
, %zmm6
121 vandpd
%xmm0
, %xmm1
, %xmm2
{z
}
122 vandpd
(%eax
), %xmm3
, %xmm4
{z
}
123 vandpd
0x42(%ecx
), %xmm5
, %xmm6
{z
}
124 vandpd
%ymm0
, %ymm1
, %ymm2
{z
}
125 vandpd
(%ebx
), %ymm3
, %ymm4
{z
}
126 vandpd
0x42(%edx
), %ymm5
, %ymm6
{z
}
127 vandpd
%zmm0
, %zmm1
, %zmm2
128 vandpd
(%ebx
), %zmm3
, %zmm4
129 vandpd
0x42(%edx
), %zmm5
, %zmm6
131 vandps
%xmm0
, %xmm1
, %xmm2
{z
}
132 vandps
(%eax
), %xmm3
, %xmm4
{z
}
133 vandps
0x42(%ecx
), %xmm5
, %xmm6
{z
}
134 vandps
%ymm0
, %ymm1
, %ymm2
{z
}
135 vandps
(%ebx
), %ymm3
, %ymm4
{z
}
136 vandps
0x42(%edx
), %ymm5
, %ymm6
{z
}
137 vandps
%zmm0
, %zmm1
, %zmm2
138 vandps
(%ebx
), %zmm3
, %zmm4
139 vandps
0x42(%edx
), %zmm5
, %zmm6
141 vpandd
%xmm0
, %xmm1
, %xmm2
142 vpandd
(%eax
), %xmm3
, %xmm4
143 vpandd
0x42(%ecx
), %xmm5
, %xmm6
144 vpandd
%ymm0
, %ymm1
, %ymm2
145 vpandd
(%ebx
), %ymm3
, %ymm4
146 vpandd
0x42(%edx
), %ymm5
, %ymm6
147 vpandd
%zmm0
, %zmm1
, %zmm2
148 vpandd
(%ebx
), %zmm3
, %zmm4
149 vpandd
0x42(%edx
), %zmm5
, %zmm6
151 vpandq
%xmm0
, %xmm1
, %xmm2
152 vpandq
(%eax
), %xmm3
, %xmm4
153 vpandq
0x42(%ecx
), %xmm5
, %xmm6
154 vpandq
%ymm0
, %ymm1
, %ymm2
155 vpandq
(%ebx
), %ymm3
, %ymm4
156 vpandq
0x42(%edx
), %ymm5
, %ymm6
157 vpandq
%zmm0
, %zmm1
, %zmm2
158 vpandq
(%ebx
), %zmm3
, %zmm4
159 vpandq
0x42(%edx
), %zmm5
, %zmm6
161 vpandnd
%xmm0
, %xmm1
, %xmm2
162 vpandnd
(%eax
), %xmm3
, %xmm4
163 vpandnd
0x42(%ecx
), %xmm5
, %xmm6
164 vpandnd
%ymm0
, %ymm1
, %ymm2
165 vpandnd
(%ebx
), %ymm3
, %ymm4
166 vpandnd
0x42(%edx
), %ymm5
, %ymm6
167 vpandnd
%zmm0
, %zmm1
, %zmm2
168 vpandnd
(%ebx
), %zmm3
, %zmm4
169 vpandnd
0x42(%edx
), %zmm5
, %zmm6
171 vpandnq
%xmm0
, %xmm1
, %xmm2
172 vpandnq
(%eax
), %xmm3
, %xmm4
173 vpandnq
0x42(%ecx
), %xmm5
, %xmm6
174 vpandnq
%ymm0
, %ymm1
, %ymm2
175 vpandnq
(%ebx
), %ymm3
, %ymm4
176 vpandnq
0x42(%edx
), %ymm5
, %ymm6
177 vpandnq
%zmm0
, %zmm1
, %zmm2
178 vpandnq
(%ebx
), %zmm3
, %zmm4
179 vpandnq
0x42(%edx
), %zmm5
, %zmm6
181 vorpd
%xmm0
, %xmm1
, %xmm2
{z
}
182 vorpd
(%eax
), %xmm3
, %xmm4
{z
}
183 vorpd
0x42(%ecx
), %xmm5
, %xmm6
{z
}
184 vorpd
%ymm0
, %ymm1
, %ymm2
{z
}
185 vorpd
(%ebx
), %ymm3
, %ymm4
{z
}
186 vorpd
0x42(%edx
), %ymm5
, %ymm6
{z
}
187 vorpd
%zmm0
, %zmm1
, %zmm2
188 vorpd
(%eax
), %zmm3
, %zmm4
189 vorpd
0x42(%ecx
), %zmm5
, %zmm6
191 vorps
%xmm0
, %xmm1
, %xmm2
{z
}
192 vorps
(%eax
), %xmm3
, %xmm4
{z
}
193 vorps
0x42(%ecx
), %xmm5
, %xmm6
{z
}
194 vorps
%ymm0
, %ymm1
, %ymm2
{z
}
195 vorps
(%ebx
), %ymm3
, %ymm4
{z
}
196 vorps
0x42(%edx
), %ymm5
, %ymm6
{z
}
197 vorps
%zmm0
, %zmm1
, %zmm2
198 vorps
(%eax
), %zmm3
, %zmm4
199 vorps
0x42(%ecx
), %zmm5
, %zmm6
201 vpord
%xmm0
, %xmm1
, %xmm2
202 vpord
(%eax
), %xmm3
, %xmm4
203 vpord
0x42(%ecx
), %xmm5
, %xmm6
204 vpord
%ymm0
, %ymm1
, %ymm2
205 vpord
(%ebx
), %ymm3
, %ymm4
206 vpord
0x42(%edx
), %ymm5
, %ymm6
207 vpord
%zmm0
, %zmm1
, %zmm2
208 vpord
(%eax
), %zmm3
, %zmm4
209 vpord
0x42(%ecx
), %zmm5
, %zmm6
211 vporq
%xmm0
, %xmm1
, %xmm2
212 vporq
(%eax
), %xmm3
, %xmm4
213 vporq
0x42(%ecx
), %xmm5
, %xmm6
214 vporq
%ymm0
, %ymm1
, %ymm2
215 vporq
(%ebx
), %ymm3
, %ymm4
216 vporq
0x42(%edx
), %ymm5
, %ymm6
217 vporq
%zmm0
, %zmm1
, %zmm2
218 vporq
(%eax
), %zmm3
, %zmm4
219 vporq
0x42(%ecx
), %zmm5
, %zmm6
221 vpxord
%xmm0
, %xmm1
, %xmm2
222 vpxord
(%eax
), %xmm3
, %xmm4
223 vpxord
0x42(%ecx
), %xmm5
, %xmm6
224 vpxord
%ymm0
, %ymm1
, %ymm2
225 vpxord
(%ebx
), %ymm3
, %ymm4
226 vpxord
0x42(%edx
), %ymm5
, %ymm6
227 vpxord
%zmm0
, %zmm1
, %zmm2
228 vpxord
(%eax
), %zmm3
, %zmm4
229 vpxord
0x42(%ecx
), %zmm5
, %zmm6
231 vpxorq
%xmm0
, %xmm1
, %xmm2
232 vpxorq
(%eax
), %xmm3
, %xmm4
233 vpxorq
0x42(%ecx
), %xmm5
, %xmm6
234 vpxorq
%ymm0
, %ymm1
, %ymm2
235 vpxorq
(%ebx
), %ymm3
, %ymm4
236 vpxorq
0x42(%edx
), %ymm5
, %ymm6
237 vpxorq
%zmm0
, %zmm1
, %zmm2
238 vpxorq
(%eax
), %zmm3
, %zmm4
239 vpxorq
0x42(%ecx
), %zmm5
, %zmm6
241 vxorpd
%xmm0
, %xmm1
, %xmm2
{z
}
242 vxorpd
(%eax
), %xmm3
, %xmm4
{z
}
243 vxorpd
0x42(%ecx
), %xmm5
, %xmm6
{z
}
244 vxorpd
%ymm0
, %ymm1
, %ymm2
{z
}
245 vxorpd
(%ebx
), %ymm3
, %ymm4
{z
}
246 vxorpd
0x42(%edx
), %ymm5
, %ymm6
{z
}
247 vxorpd
%zmm0
, %zmm1
, %zmm2
248 vxorpd
(%ebx
), %zmm3
, %zmm4
249 vxorpd
0x42(%edx
), %zmm5
, %zmm6
251 vxorps
%xmm0
, %xmm1
, %xmm2
{z
}
252 vxorps
(%eax
), %xmm3
, %xmm4
{z
}
253 vxorps
0x42(%ecx
), %xmm5
, %xmm6
{z
}
254 vxorps
%ymm0
, %ymm1
, %ymm2
{z
}
255 vxorps
(%ebx
), %ymm3
, %ymm4
{z
}
256 vxorps
0x42(%edx
), %ymm5
, %ymm6
{z
}
257 vxorps
%zmm0
, %zmm1
, %zmm2
258 vxorps
(%ebx
), %zmm3
, %zmm4
259 vxorps
0x42(%edx
), %zmm5
, %zmm6
260 .size libdis_test, [.-libdis_test]