8492 AVX512 dis - legacy logical instructions
[unleashed.git] / usr / src / test / util-tests / tests / dis / i386 / 32.avx512.s
blob3107788a99744de2ddb705fc24b394a682319e70
1 /*
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
5 * 1.0 of the CDDL.
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
20 .text
21 .align 16
22 .globl libdis_test
23 .type libdis_test, @function
24 libdis_test:
25 /* bound is not AVX512, but shares the 0x62 opcode on 32-bit. */
26 bound %eax, (%ebx)
28 vmovaps %xmm0, %xmm1
29 vmovaps %xmm2, %xmm3
30 vmovaps %xmm4, %xmm5
31 vmovaps %xmm6, %xmm7
33 vmovaps %ymm0, %ymm1
34 vmovaps %ymm2, %ymm3
35 vmovaps %ymm4, %ymm5
36 vmovaps %ymm6, %ymm7
38 vmovaps %zmm0, %zmm1
39 vmovaps %zmm2, %zmm3
40 vmovaps %zmm4, %zmm5
41 vmovaps %zmm6, %zmm7
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}
52 vmovapd %zmm2, %zmm7
54 vmovups %zmm7, 0x20(%ebp)
55 vmovups 0x8(%esp), %zmm7
56 vmovups (%eax), %zmm3{z}
58 vmovupd (%esp), %zmm1{%k2}
59 vmovupd %zmm6, (%esp)
61 /* Test offset handling for both disp8*N and full. */
62 vmovaps %zmm5, (%esp)
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)
70 vmovaps (%esp), %zmm5
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]