xref: /illumos-gate/usr/src/test/util-tests/tests/dis/i386/32.ssse3.s (revision 2380c36e1bade5eb4eb6c6b7445ff58583f998cf)
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 2016 Joyent, Inc.
14 */
15
16/*
17 * Test SSSE3 related instructions
18 */
19
20.text
21.align 16
22.globl libdis_test
23.type libdis_test, @function
24libdis_test:
25	pabsb		%mm0, %mm1
26	pabsb		(%eax), %mm1
27	pabsb		%xmm0, %xmm1
28	pabsb		(%eax), %xmm1
29	pabsd		%mm0, %mm1
30	pabsd		(%eax), %mm1
31	pabsd		%xmm0, %xmm1
32	pabsd		(%eax), %xmm1
33	pabsw		%mm0, %mm1
34	pabsw		(%eax), %mm1
35	pabsw		%xmm0, %xmm1
36	pabsw		(%eax), %xmm1
37	palignr		$0x23, %mm0, %mm1
38	palignr		$0x23, (%eax), %mm1
39	palignr		$0x23, %xmm0, %xmm1
40	palignr		$0x23, (%eax), %xmm1
41	phaddd		%mm0, %mm1
42	phaddd		(%eax), %mm1
43	phaddd		%xmm0, %xmm1
44	phaddd		(%eax), %xmm1
45	phaddw		%mm0, %mm1
46	phaddw		(%eax), %mm1
47	phaddw		%xmm0, %xmm1
48	phaddw		(%eax), %xmm1
49	phaddsw		%mm0, %mm1
50	phaddsw		(%eax), %mm1
51	phaddsw		%xmm0, %xmm1
52	phaddsw		(%eax), %xmm1
53	phsubd		%mm0, %mm1
54	phsubd		(%eax), %mm1
55	phsubd		%xmm0, %xmm1
56	phsubd		(%eax), %xmm1
57	phsubw		%mm0, %mm1
58	phsubw		(%eax), %mm1
59	phsubw		%xmm0, %xmm1
60	phsubw		(%eax), %xmm1
61	phsubsw		%mm0, %mm1
62	phsubsw		(%eax), %mm1
63	phsubsw		%xmm0, %xmm1
64	phsubsw		(%eax), %xmm1
65	pmaddubsw	%mm0, %mm1
66	pmaddubsw	(%eax), %mm1
67	pmaddubsw	%xmm0, %xmm1
68	pmaddubsw	(%eax), %xmm1
69	pmulhrsw	%mm0, %mm1
70	pmulhrsw	(%eax), %mm1
71	pmulhrsw	%xmm0, %xmm1
72	pmulhrsw	(%eax), %xmm1
73	pshufb		%mm0, %mm1
74	pshufb		(%eax), %mm1
75	pshufb		%xmm0, %xmm1
76	pshufb		(%eax), %xmm1
77	psignb		%mm0, %mm1
78	psignb		(%eax), %mm1
79	psignb		%xmm0, %xmm1
80	psignb		(%eax), %xmm1
81	psignd		%mm0, %mm1
82	psignd		(%eax), %mm1
83	psignd		%xmm0, %xmm1
84	psignd		(%eax), %xmm1
85	psignw		%mm0, %mm1
86	psignw		(%eax), %mm1
87	psignw		%xmm0, %xmm1
88	psignw		(%eax), %xmm1
89.size libdis_test, [.-libdis_test]
90