xref: /illumos-gate/usr/src/test/util-tests/tests/dis/i386/32.sse-4.1.s (revision 45ede40b2394db7967e59f19288fae9b62efd4aa)
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 SSE 4.2 related instructions
18 */
19
20.text
21.align 16
22.globl libdis_test
23.type libdis_test, @function
24libdis_test:
25	blendpd		$0x42, %xmm0, %xmm1
26	blendpd		$0x42, (%ebx), %xmm1
27	blendps		$0x42, %xmm0, %xmm1
28	blendps		$0x42, (%ebx), %xmm1
29	blendvpd	%xmm1, %xmm2
30	blendvpd	(%ebx), %xmm2
31	blendvpd	0x42(%ebx), %xmm2
32	blendvps	%xmm1, %xmm2
33	blendvps	(%ebx), %xmm2
34	blendvps	0x42(%ebx), %xmm2
35	dppd		$0x42, %xmm0, %xmm1
36	dppd		$0x42, (%ebx), %xmm1
37	dpps		$0x42, %xmm0, %xmm1
38	dpps		$0x42, (%ebx), %xmm1
39	extractps	$0x23, %xmm6, %ebx
40	extractps	$0x23, %xmm6, (%ebx)
41	insertps	$0x23, %xmm1, %xmm2
42	insertps	$0x23, (%ebx), %xmm2
43	insertps	$0x23, 0x42(%ebx), %xmm2
44	movntdqa	(%ebx), %xmm0
45	mpsadbw		$0x23, %xmm1, %xmm2
46	mpsadbw		$0x23, (%ebx), %xmm2
47	mpsadbw		$0x23, 0x42(%ebx), %xmm2
48	packusdw	%xmm1, %xmm2
49	packusdw	(%ebx), %xmm2
50	packusdw	0x42(%ebx), %xmm2
51	pblendvb	%xmm1, %xmm2
52	pblendvb	(%ebx), %xmm2
53	pblendvb	0x42(%ebx), %xmm2
54	pblendw		$0x23, %xmm1, %xmm2
55	pblendw		$0x23, (%ebx), %xmm2
56	pblendw		$0x23, 0x42(%ebx), %xmm2
57	pcmpeqq		%xmm1, %xmm2
58	pcmpeqq		(%ebx), %xmm2
59	pcmpeqq		0x42(%ebx), %xmm2
60	pextrb		$0x23, %xmm4, %edx
61	pextrb		$0x23, %xmm4, (%edx)
62	pextrd		$0x23, %xmm4, %edx
63	pextrd		$0x23, %xmm4, (%edx)
64	pextrw		$0x23, %xmm4, %edx
65	pextrw		$0x23, %xmm4, (%edx)
66	phminposuw	%xmm1, %xmm2
67	phminposuw	(%ebx), %xmm2
68	phminposuw	0x42(%ebx), %xmm2
69	pinsrb		$0x23, %ebx, %xmm2
70	pinsrb		$0x23, (%ebx), %xmm2
71	pinsrb		$0x23, 0x42(%ebx), %xmm2
72	pinsrd		$0x23, %ebx, %xmm2
73	pinsrd		$0x23, (%ebx), %xmm2
74	pinsrd		$0x23, 0x42(%ebx), %xmm2
75	pmaxsb		%xmm1, %xmm2
76	pmaxsb		(%ebx), %xmm2
77	pmaxsb		0x42(%ebx), %xmm2
78	pmaxsd		%xmm1, %xmm2
79	pmaxsd		(%ebx), %xmm2
80	pmaxsd		0x42(%ebx), %xmm2
81	pmaxud		%xmm1, %xmm2
82	pmaxud		(%ebx), %xmm2
83	pmaxud		0x42(%ebx), %xmm2
84	pmaxuw		%xmm1, %xmm2
85	pmaxuw		(%ebx), %xmm2
86	pmaxuw		0x42(%ebx), %xmm2
87	pminsb		%xmm1, %xmm2
88	pminsb		(%ebx), %xmm2
89	pminsb		0x42(%ebx), %xmm2
90	pminsd		%xmm1, %xmm2
91	pminsd		(%ebx), %xmm2
92	pminsd		0x42(%ebx), %xmm2
93	pminud		%xmm1, %xmm2
94	pminud		(%ebx), %xmm2
95	pminud		0x42(%ebx), %xmm2
96	pminuw		%xmm1, %xmm2
97	pminuw		(%ebx), %xmm2
98	pminuw		0x42(%ebx), %xmm2
99	pmovsxbd	%xmm1, %xmm2
100	pmovsxbd	(%ebx), %xmm2
101	pmovsxbd	0x42(%ebx), %xmm2
102	pmovsxbq	%xmm1, %xmm2
103	pmovsxbq	(%ebx), %xmm2
104	pmovsxbq	0x42(%ebx), %xmm2
105	pmovsxbw	%xmm1, %xmm2
106	pmovsxbw	(%ebx), %xmm2
107	pmovsxbw	0x42(%ebx), %xmm2
108	pmovsxdq	%xmm1, %xmm2
109	pmovsxdq	(%ebx), %xmm2
110	pmovsxdq	0x42(%ebx), %xmm2
111	pmovsxwd	%xmm1, %xmm2
112	pmovsxwd	(%ebx), %xmm2
113	pmovsxwd	0x42(%ebx), %xmm2
114	pmovsxwq	%xmm1, %xmm2
115	pmovsxwq	(%ebx), %xmm2
116	pmovsxwq	0x42(%ebx), %xmm2
117	pmovzxbd	%xmm1, %xmm2
118	pmovzxbd	(%ebx), %xmm2
119	pmovzxbd	0x42(%ebx), %xmm2
120	pmovzxbq	%xmm1, %xmm2
121	pmovzxbq	(%ebx), %xmm2
122	pmovzxbq	0x42(%ebx), %xmm2
123	pmovzxbw	%xmm1, %xmm2
124	pmovzxbw	(%ebx), %xmm2
125	pmovzxbw	0x42(%ebx), %xmm2
126	pmovzxdq	%xmm1, %xmm2
127	pmovzxdq	(%ebx), %xmm2
128	pmovzxdq	0x42(%ebx), %xmm2
129	pmovzxwd	%xmm1, %xmm2
130	pmovzxwd	(%ebx), %xmm2
131	pmovzxwd	0x42(%ebx), %xmm2
132	pmovzxwq	%xmm1, %xmm2
133	pmovzxwq	(%ebx), %xmm2
134	pmovzxwq	0x42(%ebx), %xmm2
135	pmuldq		%xmm1, %xmm2
136	pmuldq		(%ebx), %xmm2
137	pmuldq		0x42(%ebx), %xmm2
138	pmulld		%xmm1, %xmm2
139	pmulld		(%ebx), %xmm2
140	pmulld		0x42(%ebx), %xmm2
141	ptest		%xmm1, %xmm2
142	ptest		(%ebx), %xmm2
143	ptest		0x42(%ebx), %xmm2
144	roundpd		$0x23, %xmm1, %xmm2
145	roundpd		$0x23, (%ebx), %xmm2
146	roundpd		$0x23, 0x42(%ebx), %xmm2
147	roundps		$0x23, %xmm1, %xmm2
148	roundps		$0x23, (%ebx), %xmm2
149	roundps		$0x23, 0x42(%ebx), %xmm2
150	roundsd		$0x23, %xmm1, %xmm2
151	roundsd		$0x23, (%ebx), %xmm2
152	roundsd		$0x23, 0x42(%ebx), %xmm2
153	roundss		$0x23, %xmm1, %xmm2
154	roundss		$0x23, (%ebx), %xmm2
155	roundss		$0x23, 0x42(%ebx), %xmm2
156.size libdis_test, [.-libdis_test]
157