xref: /illumos-gate/usr/src/test/util-tests/tests/dis/i386/64.avx512_vnni.s (revision 9164a50bf932130cbb5097a16f6986873ce0e6e5)
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.
6 *
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.
10 */
11
12/*
13 * Copyright 2019 Joyent, Inc.
14 * Copyright 2024 Oxide Computer Company
15 */
16
17/*
18 * 64-bit AVX-512 VNNI instruction disassembly.
19 */
20
21.text
22.align 16
23.globl libdis_test
24.type libdis_test, @function
25libdis_test:
26	vpdpbusd	%xmm0, %xmm1, %xmm2
27	vpdpbusd	%ymm3, %ymm4, %ymm5
28	vpdpbusd	%zmm6, %zmm7, %zmm8
29	vpdpbusd	%xmm9, %xmm10, %xmm11{%k1}
30	vpdpbusd	%xmm12, %xmm13, %xmm14{%k2}{z}
31	vpdpbusd	%ymm15, %ymm16, %ymm17{%k3}
32	vpdpbusd	%ymm18, %ymm19, %ymm20{%k4}{z}
33	vpdpbusd	%zmm21, %zmm22, %zmm23{%k5}
34	vpdpbusd	%zmm24, %zmm25, %zmm26{%k6}{z}
35	vpdpbusd	0x64(%rax), %zmm27, %zmm28
36	vpdpbusd	0x123456(%rbx, %rcx, 8), %zmm29, %zmm30
37	vpdpbusd	(%rdx){1to4}, %xmm1, %xmm2
38	vpdpbusd	0x23(%rdx){1to4}, %xmm1, %xmm2
39	vpdpbusd	(%rdx){1to8}, %ymm1, %ymm2
40	vpdpbusd	0x23(%rdx){1to8}, %ymm1, %ymm2
41	vpdpbusd	(%rdx){1to16}, %zmm1, %zmm2
42	vpdpbusd	0x23(%rdx){1to16}, %zmm1, %zmm2
43
44	vpdpbusds	%xmm0, %xmm1, %xmm2
45	vpdpbusds	%ymm3, %ymm4, %ymm5
46	vpdpbusds	%zmm6, %zmm7, %zmm8
47	vpdpbusds	%xmm9, %xmm10, %xmm11{%k1}
48	vpdpbusds	%xmm12, %xmm13, %xmm14{%k2}{z}
49	vpdpbusds	%ymm15, %ymm16, %ymm17{%k3}
50	vpdpbusds	%ymm18, %ymm19, %ymm20{%k4}{z}
51	vpdpbusds	%zmm21, %zmm22, %zmm23{%k5}
52	vpdpbusds	%zmm24, %zmm25, %zmm26{%k6}{z}
53	vpdpbusds	0x64(%rax), %zmm27, %zmm28
54	vpdpbusds	0x123456(%rbx, %rcx, 8), %zmm29, %zmm30
55	vpdpbusds	(%rdx){1to4}, %xmm1, %xmm2
56	vpdpbusds	0x23(%rdx){1to4}, %xmm1, %xmm2
57	vpdpbusds	(%rdx){1to8}, %ymm1, %ymm2
58	vpdpbusds	0x23(%rdx){1to8}, %ymm1, %ymm2
59	vpdpbusds	(%rdx){1to16}, %zmm1, %zmm2
60	vpdpbusds	0x23(%rdx){1to16}, %zmm1, %zmm2
61
62	vpdpwssd	%xmm0, %xmm1, %xmm2
63	vpdpwssd	%ymm3, %ymm4, %ymm5
64	vpdpwssd	%zmm6, %zmm7, %zmm8
65	vpdpwssd	%xmm9, %xmm10, %xmm11{%k1}
66	vpdpwssd	%xmm12, %xmm13, %xmm14{%k2}{z}
67	vpdpwssd	%ymm15, %ymm16, %ymm17{%k3}
68	vpdpwssd	%ymm18, %ymm19, %ymm20{%k4}{z}
69	vpdpwssd	%zmm21, %zmm22, %zmm23{%k5}
70	vpdpwssd	%zmm24, %zmm25, %zmm26{%k6}{z}
71	vpdpwssd	0x64(%rax), %zmm27, %zmm28
72	vpdpwssd	0x123456(%rbx, %rcx, 8), %zmm29, %zmm30
73	vpdpwssd	(%rdx){1to4}, %xmm1, %xmm2
74	vpdpwssd	0x23(%rdx){1to4}, %xmm1, %xmm2
75	vpdpwssd	(%rdx){1to8}, %ymm1, %ymm2
76	vpdpwssd	0x23(%rdx){1to8}, %ymm1, %ymm2
77	vpdpwssd	(%rdx){1to16}, %zmm1, %zmm2
78	vpdpwssd	0x23(%rdx){1to16}, %zmm1, %zmm2
79
80	vpdpwssds	%xmm0, %xmm1, %xmm2
81	vpdpwssds	%ymm3, %ymm4, %ymm5
82	vpdpwssds	%zmm6, %zmm7, %zmm8
83	vpdpwssds	%xmm9, %xmm10, %xmm11{%k1}
84	vpdpwssds	%xmm12, %xmm13, %xmm14{%k2}{z}
85	vpdpwssds	%ymm15, %ymm16, %ymm17{%k3}
86	vpdpwssds	%ymm18, %ymm19, %ymm20{%k4}{z}
87	vpdpwssds	%zmm21, %zmm22, %zmm23{%k5}
88	vpdpwssds	%zmm24, %zmm25, %zmm26{%k6}{z}
89	vpdpwssds	0x64(%rax), %zmm27, %zmm28
90	vpdpwssds	0x123456(%rbx, %rcx, 8), %zmm29, %zmm30
91	vpdpwssds	(%rdx){1to4}, %xmm1, %xmm2
92	vpdpwssds	0x23(%rdx){1to4}, %xmm1, %xmm2
93	vpdpwssds	(%rdx){1to8}, %ymm1, %ymm2
94	vpdpwssds	0x23(%rdx){1to8}, %ymm1, %ymm2
95	vpdpwssds	(%rdx){1to16}, %zmm1, %zmm2
96	vpdpwssds	0x23(%rdx){1to16}, %zmm1, %zmm2
97.size libdis_test, [.-libdis_test]
98