8384 AVX512 dis - EVEX prefix support
[unleashed.git] / usr / src / test / util-tests / tests / dis / i386 / 32.avx512.s
blobadcdae36da2d90818005e0970265bfbd0307c665
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 mov 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
100 .size libdis_test, [.-libdis_test]