1# MIPS32 DSP ASE test
2# mach:  mips32r2 mips64r2
3#as:		-mdsp
4#ld:		-N -Ttext=0x80010000
5#output:	*\\npass\\n
6
7# Copyright (C) 2005-2023 Free Software Foundation, Inc.
8# Contributed by MIPS Technologies, Inc.  Written by Chao-ying Fu.
9#
10# This file is part of the GNU simulators.
11#
12# This program is free software; you can redistribute it and/or modify
13# it under the terms of the GNU General Public License as published by
14# the Free Software Foundation; either version 3 of the License, or
15# (at your option) any later version.
16#
17# This program is distributed in the hope that it will be useful,
18# but WITHOUT ANY WARRANTY; without even the implied warranty of
19# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20# GNU General Public License for more details.
21#
22# You should have received a copy of the GNU General Public License
23# along with this program.  If not, see <http://www.gnu.org/licenses/>.
24
25	.include "testutils.inc"
26	.include "utils-dsp.inc"
27
28	setup
29
30	.set noreorder
31
32	.ent DIAG
33DIAG:
34
35	writemsg "[1] Test addq.ph"
36	dspck_dstio addq.ph, 0x0, 0x0, 0x0, 0x0, 0x0
37	dspck_dstio addq.ph, 0x20002, 0x10001, 0x10001, 0x0, 0x0
38	dspck_dstio addq.ph, 0xfffefffe, 0xffffffff, 0xffffffff, 0x0, 0x0
39	dspck_dstio addq.ph, 0xffff0000, 0xffffffff, 0x1, 0x0, 0x0
40	dspck_dstio addq.ph, 0x0, 0xffffffff, 0x10001, 0x0, 0x0
41
42	writemsg "[2] Test addq_s.ph"
43	dspck_dstio addq_s.ph, 0x0, 0x0, 0x0, 0x0, 0x0
44	dspck_dstio addq_s.ph, 0x20002, 0x10001, 0x10001, 0x0, 0x0
45	dspck_dstio addq_s.ph, 0xfffefffe, 0xffffffff, 0xffffffff, 0x0, 0x0
46	dspck_dstio addq_s.ph, 0xffff0000, 0xffffffff, 0x1, 0x0, 0x0
47	dspck_dstio addq_s.ph, 0xffff0000, 0x1, 0xffffffff, 0x0, 0x0
48
49	writemsg "[3] Test addq_s.w"
50	dspck_dsti addq_s.w, 0x0, 0x0, 0x0, 0x0
51	dspck_dstio addq_s.w, 0x2, 0x1, 0x1, 0x0, 0x0
52	dspck_dstio addq_s.w, 0xfffffffe, 0xffffffff, 0xffffffff, 0x0, 0x0
53	dspck_dstio addq_s.w, 0x0, 0xffffffff, 0x1, 0x0, 0x0
54	dspck_dstio addq_s.w, 0xffff, 0xffffffff, 0x10000, 0x0, 0x0
55
56	writemsg "[4] Test addu.qb"
57	dspck_dstio addu.qb, 0x0, 0x0, 0x0, 0x0, 0x0
58	dspck_dstio addu.qb, 0x2040000, 0x102ff01, 0x10201ff, 0x0, 0x100000
59	dspck_dstio addu.qb, 0xfe0001fe, 0x7f80ffff, 0x7f8002ff, 0x0, 0x100000
60	dspck_dstio addu.qb, 0xffffffff, 0x10203, 0xfffefdfc, 0x0, 0x0
61	dspck_dstio addu.qb, 0xffffffff, 0xfbfaf9f8, 0x4050607, 0x0, 0x0
62
63	writemsg "[5] Test addu_s.qb"
64	dspck_dstio addu_s.qb, 0x0, 0x0, 0x0, 0x0, 0x0
65	dspck_dstio addu_s.qb, 0x204ffff, 0x102ff01, 0x10201ff, 0x0, 0x100000
66	dspck_dstio addu_s.qb, 0xfeffffff, 0x7f80ffff, 0x7f8002ff, 0x0, 0x100000
67	dspck_dstio addu_s.qb, 0xffffffff, 0x10203, 0xfffefdfc, 0x0, 0x0
68	dspck_dstio addu_s.qb, 0xffffffff, 0xfbfaf9f8, 0x4050607, 0x0, 0x0
69
70	writemsg "[6] Test subq.ph"
71	dspck_dstio subq.ph, 0x0, 0x0, 0x0, 0x0, 0x0
72	dspck_dstio subq.ph, 0x10001, 0x20002, 0x10001, 0x0, 0x0
73	dspck_dstio subq.ph, 0x1ffff, 0x2fffe, 0x1ffff, 0x0, 0x0
74	dspck_dstio subq.ph, 0x7fff0000, 0xfffe8000, 0x7fff8000, 0x0, 0x100000
75	dspck_dstio subq.ph, 0x1ffff, 0x7fff8000, 0x7ffe8001, 0x0, 0x0
76
77	writemsg "[7] Test subq_s.ph"
78	dspck_dstio subq_s.ph, 0x0, 0x0, 0x0, 0x0, 0x0
79	dspck_dstio subq_s.ph, 0x10001, 0x20002, 0x10001, 0x0, 0x0
80	dspck_dstio subq_s.ph, 0x1ffff, 0x2fffe, 0x1ffff, 0x0, 0x0
81	dspck_dstio subq_s.ph, 0x0, 0x7fff8000, 0x7fff8000, 0x0, 0x0
82	dspck_dstio subq_s.ph, 0x1ffff, 0x7fff8000, 0x7ffe8001, 0x0, 0x0
83
84	writemsg "[8] Test subq_s.w"
85	dspck_dsti subq_s.w, 0x0, 0x0, 0x0, 0x0
86	dspck_dsti subq_s.w, 0x0, 0x7fffffff, 0x7fffffff, 0x0
87	dspck_dstio subq_s.w, 0x7fffffff, 0x0, 0x80000000, 0x0, 0x100000
88	dspck_dstio subq_s.w, 0x1, 0x2, 0x1, 0x0, 0x0
89	dspck_dstio subq_s.w, 0xffffffff, 0xfffffffe, 0xffffffff, 0x0, 0x0
90
91	writemsg "[9] Test subu.qb"
92	dspck_dstio subu.qb, 0x0, 0x0, 0x0, 0x0, 0x0
93	dspck_dstio subu.qb, 0x4030201, 0x8060402, 0x4030201, 0x0, 0x0
94	dspck_dstio subu.qb, 0xfcfdfeff, 0x4030201, 0x8060402, 0x0, 0x100000
95	dspck_dstio subu.qb, 0x102ff01, 0x2040000, 0x10201ff, 0x0, 0x100000
96	dspck_dstio subu.qb, 0x7f80ffff, 0xfe0001fe, 0x7f8002ff, 0x0, 0x100000
97
98	writemsg "[10] Test subu_s.qb"
99	dspck_dstio subu_s.qb, 0x0, 0x0, 0x0, 0x0, 0x0
100	dspck_dstio subu_s.qb, 0x4030201, 0x8060402, 0x4030201, 0x0, 0x0
101	dspck_dstio subu_s.qb, 0x0, 0x4030201, 0x8060402, 0x0, 0x100000
102	dspck_dstio subu_s.qb, 0x1020000, 0x2040000, 0x10201ff, 0x0, 0x100000
103	dspck_dstio subu_s.qb, 0x7f000000, 0xfe0001fe, 0x7f8002ff, 0x0, 0x100000
104
105	writemsg "[11] Test addsc"
106	dspck_dstio addsc, 0x0, 0x0, 0x0, 0x0, 0x0
107	dspck_dstio addsc, 0x1000000, 0x84000000, 0x7d000000, 0x0, 0x2000
108	dspck_dstio addsc, 0xf1000000, 0x74000000, 0x7d000000, 0x0, 0x0
109	dspck_dstio addsc, 0x2, 0x1, 0x1, 0x0, 0x0
110	dspck_dstio addsc, 0xffffffff, 0xfffffffe, 0x1, 0x0, 0x0
111
112	writemsg "[12] Test addwc"
113	dspck_dstio addwc, 0x0, 0x0, 0x0, 0x0, 0x0
114	dspck_dstio addwc, 0x2, 0x1, 0x1, 0x0, 0x0
115	dspck_dstio addwc, 0x3, 0x1, 0x1, 0x2000, 0x2000
116	dspck_dsti addwc, 0x1, 0xffffffff, 0x1, 0x2000
117	dspck_dsti addwc, 0x11, 0xa, 0x6, 0x2000
118
119	writemsg "[13] Test modsub"
120	dspck_dstio modsub, 0x0, 0x0, 0x0, 0x0, 0x0
121	dspck_dstio modsub, 0x76, 0x78, 0x7802, 0x0, 0x0
122	dspck_dstio modsub, 0x74, 0x76, 0x7802, 0x0, 0x0
123	dspck_dstio modsub, 0x78, 0x0, 0x7802, 0x0, 0x0
124	dspck_dstio modsub, 0xf9, 0xfc, 0xfe03, 0x0, 0x0
125
126	writemsg "[14] Test raddu.w.qb"
127	dspck_dsio raddu.w.qb, 0x0, 0x0, 0x0, 0x0
128	dspck_dsio raddu.w.qb, 0x2, 0x1000100, 0x0, 0x0
129	dspck_dsio raddu.w.qb, 0x4, 0x1010101, 0x0, 0x0
130	dspck_dsio raddu.w.qb, 0x200, 0xff01ff01, 0x0, 0x0
131	dspck_dsio raddu.w.qb, 0x3fc, 0xffffffff, 0x0, 0x0
132
133	writemsg "[15] Test absq_s.ph"
134	dspck_dsio absq_s.ph, 0x0, 0x0, 0x0, 0x0
135	dspck_dsio absq_s.ph, 0x10001, 0xffffffff, 0x0, 0x0
136	dspck_dsio absq_s.ph, 0x7fff7fff, 0x80008000, 0x0, 0x100000
137	dspck_dsio absq_s.ph, 0x60000002, 0xa000fffe, 0x0, 0x0
138	dspck_dsio absq_s.ph, 0x70000004, 0x9000fffc, 0x0, 0x0
139
140	writemsg "[16] Test absq_s.w"
141	dspck_dsio absq_s.w, 0x0, 0x0, 0x0, 0x0
142	dspck_dsio absq_s.w, 0x1, 0xffffffff, 0x0, 0x0
143	dspck_dsio absq_s.w, 0x7fffffff, 0x80000000, 0x0, 0x100000
144	dspck_dsio absq_s.w, 0x40000001, 0xbfffffff, 0x0, 0x0
145	dspck_dsio absq_s.w, 0x8000001, 0xf7ffffff, 0x0, 0x0
146
147	writemsg "[17] Test precrq.qb.ph"
148	dspck_dstio precrq.qb.ph, 0x0, 0x0, 0x0, 0x0, 0x0
149	dspck_dstio precrq.qb.ph, 0xff7f4020, 0xffff7fff, 0x40002000, 0x0, 0x0
150	dspck_dstio precrq.qb.ph, 0xfeba7632, 0xfedcba98, 0x76543210, 0x0, 0x0
151	dspck_dstio precrq.qb.ph, 0x7632feba, 0x76543210, 0xfedcba98, 0x0, 0x0
152	dspck_dstio precrq.qb.ph, 0x14589cd, 0x1234567, 0x89abcdef, 0x0, 0x0
153
154	writemsg "[18] Test precrq.ph.w"
155	dspck_dstio precrq.ph.w, 0x0, 0x0, 0x0, 0x0, 0x0
156	dspck_dstio precrq.ph.w, 0xffff4000, 0xffff7fff, 0x40002000, 0x0, 0x0
157	dspck_dstio precrq.ph.w, 0xfedc7654, 0xfedcba98, 0x76543210, 0x0, 0x0
158	dspck_dstio precrq.ph.w, 0x7654fedc, 0x76543210, 0xfedcba98, 0x0, 0x0
159	dspck_dstio precrq.ph.w, 0x12389ab, 0x1234567, 0x89abcdef, 0x0, 0x0
160
161	writemsg "[19] Test precrq_rs.ph.w"
162	dspck_dstio precrq_rs.ph.w, 0x0, 0x0, 0x0, 0x0, 0x0
163	dspck_dstio precrq_rs.ph.w, 0x7fff0000, 0x7fffffff, 0xffffffff, 0x0, 0x400000
164	dspck_dstio precrq_rs.ph.w, 0x80008001, 0x80007fff, 0x8000ffff, 0x0, 0x0
165	dspck_dstio precrq_rs.ph.w, 0xfedd7654, 0xfedcba98, 0x76543210, 0x0, 0x0
166	dspck_dstio precrq_rs.ph.w, 0x7654fedd, 0x76543210, 0xfedcba98, 0x0, 0x0
167
168	writemsg "[20] Test precrqu_s.qb.ph"
169	dspck_dstio precrqu_s.qb.ph, 0x0, 0x0, 0x0, 0x0, 0x0
170	dspck_dstio precrqu_s.qb.ph, 0xff8040, 0xffff7fff, 0x40002000, 0x0, 0x400000
171	dspck_dstio precrqu_s.qb.ph, 0xec64, 0xfedcba98, 0x76543210, 0x0, 0x400000
172	dspck_dstio precrqu_s.qb.ph, 0xec640000, 0x76543210, 0xfedcba98, 0x0, 0x400000
173	dspck_dstio precrqu_s.qb.ph, 0x28a0000, 0x1234567, 0x89abcdef, 0x0, 0x400000
174
175	writemsg "[21] Test preceq.w.phl"
176	dspck_dsio preceq.w.phl, 0x0, 0x0, 0x0, 0x0
177	dspck_dsio preceq.w.phl, 0xffff0000, 0xffffffff, 0x0, 0x0
178	dspck_dsio preceq.w.phl, 0x80000000, 0x80004000, 0x0, 0x0
179	dspck_dsio preceq.w.phl, 0xc0010000, 0xc0012001, 0x0, 0x0
180	dspck_dsio preceq.w.phl, 0x76540000, 0x76543210, 0x0, 0x0
181
182	writemsg "[22] Test preceq.w.phr"
183	dspck_dsio preceq.w.phr, 0x0, 0x0, 0x0, 0x0
184	dspck_dsio preceq.w.phr, 0xffff0000, 0xffffffff, 0x0, 0x0
185	dspck_dsio preceq.w.phr, 0x40000000, 0x80004000, 0x0, 0x0
186	dspck_dsio preceq.w.phr, 0x20010000, 0xc0012001, 0x0, 0x0
187	dspck_dsio preceq.w.phr, 0x32100000, 0x76543210, 0x0, 0x0
188
189	writemsg "[23] Test precequ.ph.qbl"
190	dspck_dsio precequ.ph.qbl, 0x0, 0x0, 0x0, 0x0
191	dspck_dsio precequ.ph.qbl, 0x7f807f80, 0xffffffff, 0x0, 0x0
192	dspck_dsio precequ.ph.qbl, 0x40000000, 0x80004000, 0x0, 0x0
193	dspck_dsio precequ.ph.qbl, 0x60000080, 0xc0012001, 0x0, 0x0
194	dspck_dsio precequ.ph.qbl, 0x3b002a00, 0x76543210, 0x0, 0x0
195
196	writemsg "[24] Test precequ.ph.qbr"
197	dspck_dsio precequ.ph.qbr, 0x0, 0x0, 0x0, 0x0
198	dspck_dsio precequ.ph.qbr, 0x7f807f80, 0xffffffff, 0x0, 0x0
199	dspck_dsio precequ.ph.qbr, 0x20000000, 0x80004000, 0x0, 0x0
200	dspck_dsio precequ.ph.qbr, 0x10000080, 0xc0012001, 0x0, 0x0
201	dspck_dsio precequ.ph.qbr, 0x19000800, 0x76543210, 0x0, 0x0
202
203	writemsg "[25] Test precequ.ph.qbla"
204	dspck_dsio precequ.ph.qbla, 0x0, 0x0, 0x0, 0x0
205	dspck_dsio precequ.ph.qbla, 0x7f807f80, 0xffffffff, 0x0, 0x0
206	dspck_dsio precequ.ph.qbla, 0x40002000, 0x80004000, 0x0, 0x0
207	dspck_dsio precequ.ph.qbla, 0x60001000, 0xc0012001, 0x0, 0x0
208	dspck_dsio precequ.ph.qbla, 0x3b001900, 0x76543210, 0x0, 0x0
209
210	writemsg "[26] Test precequ.ph.qbra"
211	dspck_dsio precequ.ph.qbra, 0x0, 0x0, 0x0, 0x0
212	dspck_dsio precequ.ph.qbra, 0x7f807f80, 0xffffffff, 0x0, 0x0
213	dspck_dsio precequ.ph.qbra, 0x0, 0x80004000, 0x0, 0x0
214	dspck_dsio precequ.ph.qbra, 0x800080, 0xc0012001, 0x0, 0x0
215	dspck_dsio precequ.ph.qbra, 0x2a000800, 0x76543210, 0x0, 0x0
216
217	writemsg "[27] Test preceu.ph.qbl"
218	dspck_dsio preceu.ph.qbl, 0x0, 0x0, 0x0, 0x0
219	dspck_dsio preceu.ph.qbl, 0xff00ff, 0xffffffff, 0x0, 0x0
220	dspck_dsio preceu.ph.qbl, 0x800000, 0x80004000, 0x0, 0x0
221	dspck_dsio preceu.ph.qbl, 0xc00001, 0xc0012001, 0x0, 0x0
222	dspck_dsio preceu.ph.qbl, 0x760054, 0x76543210, 0x0, 0x0
223
224	writemsg "[28] Test preceu.ph.qbr"
225	dspck_dsio preceu.ph.qbr, 0x0, 0x0, 0x0, 0x0
226	dspck_dsio preceu.ph.qbr, 0xff00ff, 0xffffffff, 0x0, 0x0
227	dspck_dsio preceu.ph.qbr, 0x400000, 0x80004000, 0x0, 0x0
228	dspck_dsio preceu.ph.qbr, 0x200001, 0xc0012001, 0x0, 0x0
229	dspck_dsio preceu.ph.qbr, 0x320010, 0x76543210, 0x0, 0x0
230
231	writemsg "[29] Test preceu.ph.qbla"
232	dspck_dsio preceu.ph.qbla, 0x0, 0x0, 0x0, 0x0
233	dspck_dsio preceu.ph.qbla, 0xff00ff, 0xffffffff, 0x0, 0x0
234	dspck_dsio preceu.ph.qbla, 0x800040, 0x80004000, 0x0, 0x0
235	dspck_dsio preceu.ph.qbla, 0xc00020, 0xc0012001, 0x0, 0x0
236	dspck_dsio preceu.ph.qbla, 0x760032, 0x76543210, 0x0, 0x0
237
238	writemsg "[30] Test preceu.ph.qbra"
239	dspck_dsio preceu.ph.qbra, 0x0, 0x0, 0x0, 0x0
240	dspck_dsio preceu.ph.qbra, 0xff00ff, 0xffffffff, 0x0, 0x0
241	dspck_dsio preceu.ph.qbra, 0x0, 0x80004000, 0x0, 0x0
242	dspck_dsio preceu.ph.qbra, 0x10001, 0xc0012001, 0x0, 0x0
243	dspck_dsio preceu.ph.qbra, 0x540010, 0x76543210, 0x0, 0x0
244
245	writemsg "[31] Test shll.qb"
246	dspck_dtsaio shll.qb, 0x0, 0x0, 0, 0x0, 0x0
247	dspck_dtsai shll.qb, 0x202fefe, 0x101ffff, 1, 0x0
248	dspck_dtsai shll.qb, 0xfefe0002, 0x7fff8081, 1, 0x0
249	dspck_dtsai shll.qb, 0xfcfc0020, 0x7fff8008, 2, 0x0
250	dspck_dtsai shll.qb, 0x68b0d868, 0x6db6db6d, 3, 0x0
251
252	writemsg "[32] Test shllv.qb"
253	dspck_dstio shllv.qb, 0x0, 0x0, 0x0, 0x0, 0x0
254	dspck_dsti shllv.qb, 0x202fefe, 0x101ffff, 0x1, 0x0
255	dspck_dsti shllv.qb, 0xfefe0002, 0x7fff8081, 0x1, 0x0
256	dspck_dsti shllv.qb, 0xfcfc0020, 0x7fff8008, 0x2, 0x0
257	dspck_dsti shllv.qb, 0x68b0d868, 0x6db6db6d, 0x3, 0x0
258
259	writemsg "[33] Test shll.ph"
260	dspck_dtsaio shll.ph, 0x0, 0x0, 0, 0x0, 0x0
261	dspck_dtsaio shll.ph, 0x2fffe, 0x1ffff, 1, 0x0, 0x0
262	dspck_dtsaio shll.ph, 0xfffe0000, 0x7fff8000, 1, 0x0, 0x400000
263	dspck_dtsaio shll.ph, 0xfffc0020, 0x7fff8008, 2, 0x0, 0x400000
264	dspck_dtsaio shll.ph, 0x6db0db68, 0x6db6db6d, 3, 0x0, 0x400000
265
266	writemsg "[34] Test shllv.ph"
267	dspck_dstio shllv.ph, 0x0, 0x0, 0x0, 0x0, 0x0
268	dspck_dstio shllv.ph, 0x2fffe, 0x1ffff, 0x1, 0x0, 0x0
269	dspck_dstio shllv.ph, 0xfffe0000, 0x7fff8000, 0x1, 0x0, 0x400000
270	dspck_dstio shllv.ph, 0xfffc0020, 0x7fff8008, 0x2, 0x0, 0x400000
271	dspck_dstio shllv.ph, 0x6db0db68, 0x6db6db6d, 0x3, 0x0, 0x400000
272
273	writemsg "[35] Test shll_s.ph"
274	dspck_dtsaio shll_s.ph, 0x0, 0x0, 0, 0x0, 0x0
275	dspck_dtsaio shll_s.ph, 0x2fffe, 0x1ffff, 1, 0x0, 0x0
276	dspck_dtsaio shll_s.ph, 0x7fff8000, 0x7fff8000, 1, 0x0, 0x400000
277	dspck_dtsaio shll_s.ph, 0x7fff8000, 0x7fff8008, 2, 0x0, 0x400000
278	dspck_dtsaio shll_s.ph, 0x7fff8000, 0x6db6db6d, 3, 0x0, 0x400000
279
280	writemsg "[36] Test shllv_s.ph"
281	dspck_dstio shllv_s.ph, 0x0, 0x0, 0x0, 0x0, 0x0
282	dspck_dstio shllv_s.ph, 0x2fffe, 0x1ffff, 0x1, 0x0, 0x0
283	dspck_dstio shllv_s.ph, 0x7fff8000, 0x7fff8000, 0x1, 0x0, 0x400000
284	dspck_dstio shllv_s.ph, 0x7fff8000, 0x7fff8008, 0x2, 0x0, 0x400000
285	dspck_dstio shllv_s.ph, 0x7fff8000, 0x6db6db6d, 0x3, 0x0, 0x400000
286
287	writemsg "[37] Test shll_s.w"
288	dspck_dtsaio shll_s.w, 0x0, 0x0, 0, 0x0, 0x0
289	dspck_dtsaio shll_s.w, 0x3fffe, 0x1ffff, 1, 0x0, 0x0
290	dspck_dtsaio shll_s.w, 0x7fffffff, 0x7fff8000, 1, 0x0, 0x400000
291	dspck_dtsaio shll_s.w, 0x80000000, 0x80000000, 1, 0x0, 0x400000
292	dspck_dtsaio shll_s.w, 0x7fffffff, 0x7fff8008, 2, 0x0, 0x400000
293
294	writemsg "[38] Test shllv_s.w"
295	dspck_dstio shllv_s.w, 0x0, 0x0, 0x0, 0x0, 0x0
296	dspck_dstio shllv_s.w, 0x3fffe, 0x1ffff, 0x1, 0x0, 0x0
297	dspck_dstio shllv_s.w, 0x7fffffff, 0x7fff8000, 0x1, 0x0, 0x400000
298	dspck_dstio shllv_s.w, 0x80000000, 0x80000000, 0x1, 0x0, 0x400000
299	dspck_dstio shllv_s.w, 0x7fffffff, 0x7fff8008, 0x2, 0x0, 0x400000
300
301	writemsg "[39] Test shrl.qb"
302	dspck_dtsaio shrl.qb, 0x0, 0x0, 0, 0x0, 0x0
303	dspck_dtsai shrl.qb, 0x7f7f, 0x101ffff, 1, 0x0
304	dspck_dtsai shrl.qb, 0x3f7f4040, 0x7fff8081, 1, 0x0
305	dspck_dtsai shrl.qb, 0x1f3f2002, 0x7fff8008, 2, 0x0
306	dspck_dtsai shrl.qb, 0xd161b0d, 0x6db6db6d, 3, 0x0
307
308	writemsg "[40] Test shrlv.qb"
309	dspck_dstio shrlv.qb, 0x0, 0x0, 0x0, 0x0, 0x0
310	dspck_dsti shrlv.qb, 0x7f7f, 0x101ffff, 0x1, 0x0
311	dspck_dsti shrlv.qb, 0x3f7f4040, 0x7fff8081, 0x1, 0x0
312	dspck_dsti shrlv.qb, 0x1f3f2002, 0x7fff8008, 0x2, 0x0
313	dspck_dsti shrlv.qb, 0xd161b0d, 0x6db6db6d, 0x3, 0x0
314
315	writemsg "[41] Test shra.ph"
316	dspck_dtsaio shra.ph, 0x10001, 0x20002, 1, 0x0, 0x0
317	dspck_dtsaio shra.ph, 0x10006, 0x10106f6f, 12, 0x0, 0x0
318	dspck_dtsaio shra.ph, 0x1c000, 0x28000, 1, 0x0, 0x0
319	dspck_dtsaio shra.ph, 0x2f800, 0x208000, 4, 0x0, 0x0
320	dspck_dtsaio shra.ph, 0xfc01fc00, 0x80208000, 5, 0x0, 0x0
321
322	writemsg "[42] Test shrav.ph"
323	dspck_dstio shrav.ph, 0x10001, 0x20002, 0x1, 0x0, 0x0
324	dspck_dstio shrav.ph, 0x10006, 0x10106f6f, 0xc, 0x0, 0x0
325	dspck_dstio shrav.ph, 0x1c000, 0x28000, 0x1, 0x0, 0x0
326	dspck_dstio shrav.ph, 0x2f800, 0x208000, 0x4, 0x0, 0x0
327	dspck_dstio shrav.ph, 0xfc01fc00, 0x80208000, 0x5, 0x0, 0x0
328
329	writemsg "[43] Test shra_r.ph"
330	dspck_dtsaio shra_r.ph, 0x20001, 0x30002, 1, 0x0, 0x0
331	dspck_dtsaio shra_r.ph, 0x10001, 0x20001, 1, 0x0, 0x0
332	dspck_dtsaio shra_r.ph, 0x10001, 0x10001, 1, 0x0, 0x0
333	dspck_dtsaio shra_r.ph, 0x0, 0x10001, 2, 0x0, 0x0
334	dspck_dtsaio shra_r.ph, 0x7fff8000, 0x7fff8000, 0, 0x0, 0x0
335	dspck_dtsaio shra_r.ph, 0x4000c000, 0x7fff8000, 1, 0x0, 0x0
336	dspck_dtsaio shra_r.ph, 0x2000e000, 0x7ffe8000, 2, 0x0, 0x0
337
338	writemsg "[44] Test shrav_r.ph"
339	dspck_dstio shrav_r.ph, 0x20001, 0x30002, 0x1, 0x0, 0x0
340	dspck_dstio shrav_r.ph, 0x10001, 0x20001, 0x1, 0x0, 0x0
341	dspck_dstio shrav_r.ph, 0x10001, 0x10001, 0x1, 0x0, 0x0
342	dspck_dstio shrav_r.ph, 0x0, 0x10001, 0x2, 0x0, 0x0
343	dspck_dstio shrav_r.ph, 0x7fff8000, 0x7fff8000, 0, 0x0, 0x0
344	dspck_dstio shrav_r.ph, 0x2000e000, 0x7fff8000, 2, 0x0, 0x0
345
346	writemsg "[45] Test shra_r.w"
347	dspck_dtsaio shra_r.w, 0x1, 0x2, 1, 0x0, 0x0
348	dspck_dtsaio shra_r.w, 0xffff8000, 0x80000000, 16, 0x0, 0x0
349	dspck_dtsaio shra_r.w, 0x8001, 0x10001, 1, 0x0, 0x0
350	dspck_dtsaio shra_r.w, 0x1, 0x10001, 17, 0x0, 0x0
351	dspck_dtsaio shra_r.w, 0xffffc001, 0x80010001, 17, 0x0, 0x0
352	dspck_dtsaio shra_r.w, 0x7fffffff, 0x7fffffff, 0, 0x0, 0x0
353	dspck_dtsaio shra_r.w, 0x40000000, 0x7fffffff, 1, 0x0, 0x0
354	dspck_dtsaio shra_r.w, 0x20000000, 0x7ffffffe, 2, 0x0, 0x0
355
356	writemsg "[46] Test shrav_r.w"
357	dspck_dstio shrav_r.w, 0x1, 0x2, 0x1, 0x0, 0x0
358	dspck_dstio shrav_r.w, 0xffff8000, 0x80000000, 0x10, 0x0, 0x0
359	dspck_dstio shrav_r.w, 0x8001, 0x10001, 0x1, 0x0, 0x0
360	dspck_dstio shrav_r.w, 0x8001, 0x10001, 0x21, 0x0, 0x0
361	dspck_dstio shrav_r.w, 0x4000, 0x10001, 0x2, 0x0, 0x0
362	dspck_dstio shrav_r.w, 0x7fffffff, 0x7fffffff, 0x0, 0x0, 0x0
363	dspck_dstio shrav_r.w, 0x10000000, 0x7ffffffc, 0x3, 0x0, 0x0
364	dspck_dstio shrav_r.w, 0x08000000, 0x7ffffff8, 0x4, 0x0, 0x0
365
366	writemsg "[47] Test muleu_s.ph.qbl"
367	dspck_dstio muleu_s.ph.qbl, 0x0, 0x0, 0x0, 0x0, 0x0
368	dspck_dstio muleu_s.ph.qbl, 0x0, 0x0, 0x40004000, 0x0, 0x0
369	dspck_dstio muleu_s.ph.qbl, 0x0, 0xffffffff, 0x0, 0x0, 0x0
370	dspck_dstio muleu_s.ph.qbl, 0x10001, 0x1010101, 0x10001, 0x0, 0x0
371	dspck_dstio muleu_s.ph.qbl, 0x10000, 0x1000001, 0x10001, 0x0, 0x0
372
373	writemsg "[48] Test muleu_s.ph.qbr"
374	dspck_dstio muleu_s.ph.qbr, 0x0, 0x0, 0x0, 0x0, 0x0
375	dspck_dstio muleu_s.ph.qbr, 0x0, 0x0, 0x40004000, 0x0, 0x0
376	dspck_dstio muleu_s.ph.qbr, 0x0, 0xffffffff, 0x0, 0x0, 0x0
377	dspck_dstio muleu_s.ph.qbr, 0x10001, 0x1010101, 0x10001, 0x0, 0x0
378	dspck_dstio muleu_s.ph.qbr, 0x1, 0x1000001, 0x10001, 0x0, 0x0
379
380	writemsg "[49] Test mulq_rs.ph"
381	dspck_dstio mulq_rs.ph, 0x0, 0x0, 0x0, 0x0, 0x0
382	dspck_dstio mulq_rs.ph, 0x0, 0x1, 0x1, 0x0, 0x0
383	dspck_dstio mulq_rs.ph, 0x20000000, 0x40007fff, 0x40000000, 0x0, 0x0
384	dspck_dstio mulq_rs.ph, 0x33330000, 0x66660000, 0x40007fff, 0x0, 0x0
385	dspck_dstio mulq_rs.ph, 0xccd3332, 0x66666666, 0x10003fff, 0x0, 0x0
386
387	writemsg "[50] Test muleq_s.w.phl"
388	dspck_dstio muleq_s.w.phl, 0x0, 0x0, 0x0, 0x0, 0x0
389	dspck_dstio muleq_s.w.phl, 0x0, 0x0, 0x40004000, 0x0, 0x0
390	dspck_dstio muleq_s.w.phl, 0x0, 0x7fff7fff, 0x0, 0x0, 0x0
391	dspck_dstio muleq_s.w.phl, 0x0, 0x0, 0xc000c000, 0x0, 0x0
392	dspck_dstio muleq_s.w.phl, 0x0, 0x80008000, 0x0, 0x0, 0x0
393
394	writemsg "[51] Test muleq_s.w.phr"
395	dspck_dstio muleq_s.w.phr, 0x0, 0x0, 0x0, 0x0, 0x0
396	dspck_dstio muleq_s.w.phr, 0x0, 0x0, 0x40004000, 0x0, 0x0
397	dspck_dstio muleq_s.w.phr, 0x0, 0x7fff7fff, 0x0, 0x0, 0x0
398	dspck_dstio muleq_s.w.phr, 0x0, 0x0, 0xc000c000, 0x0, 0x0
399	dspck_dstio muleq_s.w.phr, 0x0, 0x80008000, 0x0, 0x0, 0x0
400
401	writemsg "[52] Test dpau.h.qbl"
402	dspck_astio dpau.h.qbl, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
403	dspck_astio dpau.h.qbl, 0x0, 0x0, 0x0, 0x1, 0x1010101, 0x1000001, 0x0, 0x0
404	dspck_astio dpau.h.qbl, 0xffffffff, 0xffffffff, 0x0, 0x0, 0x1010101, 0x1000001, 0x0, 0x0
405	dspck_astio dpau.h.qbl, 0x0, 0x0, 0x0, 0x0, 0xffff0000, 0xffff, 0x0, 0x0
406	dspck_astio dpau.h.qbl, 0x0, 0x0, 0x0, 0xff, 0xffff0001, 0x1ffff, 0x0, 0x0
407
408	writemsg "[53] Test dpau.h.qbr"
409	dspck_astio dpau.h.qbr, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
410	dspck_astio dpau.h.qbr, 0x0, 0x0, 0x0, 0x1, 0x1010101, 0x1000001, 0x0, 0x0
411	dspck_astio dpau.h.qbr, 0xffffffff, 0xffffffff, 0x0, 0x0, 0x1010101, 0x1000001, 0x0, 0x0
412	dspck_astio dpau.h.qbr, 0x0, 0x0, 0x0, 0x0, 0xffff0000, 0xffff, 0x0, 0x0
413	dspck_astio dpau.h.qbr, 0x0, 0x0, 0x0, 0xff, 0xffff0001, 0x1ffff, 0x0, 0x0
414
415	writemsg "[54] Test dpsu.h.qbl"
416	dspck_astio dpsu.h.qbl, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
417	dspck_astio dpsu.h.qbl, 0x0, 0x1, 0x0, 0x0, 0x1010101, 0x1000001, 0x0, 0x0
418	dspck_astio dpsu.h.qbl, 0x0, 0x0, 0xffffffff, 0xffffffff, 0x1010101, 0x1000001, 0x0, 0x0
419	dspck_astio dpsu.h.qbl, 0x0, 0x0, 0x0, 0x0, 0xffff0000, 0xffff, 0x0, 0x0
420	dspck_astio dpsu.h.qbl, 0x0, 0xff, 0x0, 0x0, 0xffff0001, 0x1ffff, 0x0, 0x0
421
422	writemsg "[55] Test dpsu.h.qbr"
423	dspck_astio dpsu.h.qbr, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
424	dspck_astio dpsu.h.qbr, 0x0, 0x1, 0x0, 0x0, 0x1010101, 0x1000001, 0x0, 0x0
425	dspck_astio dpsu.h.qbr, 0x0, 0x0, 0xffffffff, 0xffffffff, 0x1010101, 0x1000001, 0x0, 0x0
426	dspck_astio dpsu.h.qbr, 0x0, 0x0, 0x0, 0x0, 0xffff0000, 0xffff, 0x0, 0x0
427	dspck_astio dpsu.h.qbr, 0x0, 0xff, 0x0, 0x0, 0xffff0001, 0x1ffff, 0x0, 0x0
428
429	writemsg "[56] Test dpaq_s.w.ph"
430	dspck_astio dpaq_s.w.ph, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
431	dspck_astio dpaq_s.w.ph, 0x0, 0x0, 0x0, 0xfffc0004, 0x7fff7fff, 0x7fff7fff, 0x0, 0x0
432	dspck_astio dpaq_s.w.ph, 0x0, 0x0, 0x0, 0xfffffffe, 0x80008000, 0x80008000, 0x0, 0xf0000
433	dspck_astio dpaq_s.w.ph, 0x0, 0x0, 0xffffffff, 0xa0000000, 0x40002000, 0x80008000, 0x0, 0x0
434	dspck_astio dpaq_s.w.ph, 0xffffffff, 0xa0000000, 0xffffffff, 0x88000000, 0x10000800, 0x80008000, 0x0, 0x0
435
436	writemsg "[57] Test dpsq_s.w.ph"
437	dspck_astio dpsq_s.w.ph, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
438	dspck_astio dpsq_s.w.ph, 0x0, 0xfffc0004, 0x0, 0x0, 0x7fff7fff, 0x7fff7fff, 0x0, 0x0
439	dspck_astio dpsq_s.w.ph, 0x0, 0xfffffffe, 0x0, 0x0, 0x80008000, 0x80008000, 0x0, 0xf0000
440	dspck_astio dpsq_s.w.ph, 0xffffffff, 0xa0000000, 0x0, 0x0, 0x40002000, 0x80008000, 0x0, 0x0
441	dspck_astio dpsq_s.w.ph, 0xffffffff, 0x88000000, 0xffffffff, 0xa0000000, 0x10000800, 0x80008000, 0x0, 0x0
442
443	writemsg "[58] Test mulsaq_s.w.ph"
444	dspck_astio mulsaq_s.w.ph, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
445	dspck_astio mulsaq_s.w.ph, 0x0, 0x0, 0x0, 0x0, 0x4000, 0xc0000000, 0x0, 0x0
446	dspck_astio mulsaq_s.w.ph, 0x0, 0x0, 0xffffffff, 0x60010000, 0x80004000, 0x7fff4000, 0x0, 0x0
447	dspck_astio mulsaq_s.w.ph, 0x0, 0x0, 0x0, 0x5fffffff, 0x80004000, 0x80004000, 0x0, 0xf0000
448	dspck_astio mulsaq_s.w.ph, 0x7fffffff, 0xffffffff, 0x80000000, 0xfffc0003, 0x7fff8001, 0x7fff7fff, 0x0, 0x0
449
450	writemsg "[59] Test dpaq_sa.l.w"
451	dspck_astio dpaq_sa.l.w, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
452	dspck_astio dpaq_sa.l.w, 0x0, 0x0, 0x7ffffffe, 0x2, 0x7fffffff, 0x7fffffff, 0x0, 0x0
453	dspck_astio dpaq_sa.l.w, 0x0, 0x0, 0x7fffffff, 0xffffffff, 0x80000000, 0x80000000, 0x0, 0xf0000
454	dspck_astio dpaq_sa.l.w, 0x0, 0x0, 0xc0000000, 0x80000000, 0xc0000000, 0x7fffffff, 0x0, 0x0
455	dspck_astio dpaq_sa.l.w, 0x20000000, 0x0, 0x0, 0x40000000, 0xe0000000, 0x7fffffff, 0x0, 0x0
456
457	writemsg "[60] Test dpsq_sa.l.w"
458	dspck_astio dpsq_sa.l.w, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
459	dspck_astio dpsq_sa.l.w, 0x7fffffff, 0xffffffff, 0x0, 0x0, 0x80000000, 0x80000000, 0x0, 0xf0000
460	dspck_astio dpsq_sa.l.w, 0x80000000, 0x0, 0x80000000, 0x0, 0x80000000, 0x80000000, 0x0, 0xf0000
461	dspck_astio dpsq_sa.l.w, 0x0, 0x0, 0x80000000, 0x1, 0x80000000, 0x80000000, 0x0, 0xf0000
462	dspck_astio dpsq_sa.l.w, 0x0, 0x0, 0x3fffffff, 0x80000000, 0xc0000000, 0x7fffffff, 0x0, 0x0
463
464	writemsg "[61] Test maq_s.w.phl"
465	dspck_astio maq_s.w.phl, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
466	dspck_astio maq_s.w.phl, 0xffffffff, 0x0, 0xffffffff, 0x0, 0x0, 0x40004000, 0x0, 0x0
467	dspck_astio maq_s.w.phl, 0x0, 0xffffffff, 0x0, 0xffffffff, 0x7fff7fff, 0x0, 0x0, 0x0
468	dspck_astio maq_s.w.phl, 0xffffffff, 0x0, 0xffffffff, 0x0, 0x7fff7fff, 0x0, 0x0, 0x0
469	dspck_astio maq_s.w.phl, 0x0, 0x40000000, 0x0, 0x40000000, 0x0, 0xc000c000, 0x0, 0x0
470
471	writemsg "[62] Test maq_s.w.phr"
472	dspck_astio maq_s.w.phr, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
473	dspck_astio maq_s.w.phr, 0xffffffff, 0x0, 0xffffffff, 0x0, 0x0, 0x40004000, 0x0, 0x0
474	dspck_astio maq_s.w.phr, 0x0, 0xffffffff, 0x0, 0xffffffff, 0x7fff7fff, 0x0, 0x0, 0x0
475	dspck_astio maq_s.w.phr, 0xffffffff, 0x0, 0xffffffff, 0x0, 0x7fff7fff, 0x0, 0x0, 0x0
476	dspck_astio maq_s.w.phr, 0x0, 0x40000000, 0x0, 0x40000000, 0x0, 0xc000c000, 0x0, 0x0
477
478	writemsg "[63] Test maq_sa.w.phl"
479	dspck_astio maq_sa.w.phl, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
480	dspck_astio maq_sa.w.phl, 0xffffffff, 0x80000000, 0xffffffff, 0x80000000, 0x0, 0x40004000, 0x0, 0x0
481	dspck_astio maq_sa.w.phl, 0x0, 0x7fffffff, 0x0, 0x7fffffff, 0x7fff7fff, 0x0, 0x0, 0x0
482	dspck_astio maq_sa.w.phl, 0xffffffff, 0x80000000, 0xffffffff, 0x80000000, 0x7fff7fff, 0x0, 0x0, 0x0
483	dspck_astio maq_sa.w.phl, 0x0, 0x40000000, 0x0, 0x40000000, 0x0, 0xc000c000, 0x0, 0x0
484
485	writemsg "[64] Test maq_sa.w.phr"
486	dspck_astio maq_sa.w.phr, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
487	dspck_astio maq_sa.w.phr, 0xffffffff, 0x80000000, 0xffffffff, 0x80000000, 0x0, 0x40004000, 0x0, 0x0
488	dspck_astio maq_sa.w.phr, 0x0, 0x7fffffff, 0x0, 0x7fffffff, 0x7fff7fff, 0x0, 0x0, 0x0
489	dspck_astio maq_sa.w.phr, 0xffffffff, 0x80000000, 0xffffffff, 0x80000000, 0x7fff7fff, 0x0, 0x0, 0x0
490	dspck_astio maq_sa.w.phr, 0x0, 0x40000000, 0x0, 0x40000000, 0x0, 0xc000c000, 0x0, 0x0
491
492	writemsg "[65] Test bitrev"
493	dspck_dsio bitrev, 0x0, 0x0, 0x0, 0x0
494	dspck_dsio bitrev, 0x1, 0x8000, 0x0, 0x0
495	dspck_dsio bitrev, 0x8000, 0x1, 0x0, 0x0
496	dspck_dsio bitrev, 0xc0c0, 0x1010303, 0x0, 0x0
497	dspck_dsio bitrev, 0x1, 0xffff8000, 0x0, 0x0
498
499	writemsg "[66] Test insv"
500	dspck_tsi insv, 0xf0caf0f0, 0xf0f0f0f0, 0xa5a5a5a5, 0x311
501	dspck_tsi insv, 0x7fffffe, 0x0, 0x7ffffff, 0xd01
502	dspck_tsi insv, 0x3fff, 0x0, 0x3fff, 0x700
503	dspck_tsi insv, 0xf0f2f0f0, 0xf0f0f0f0, 0xa5a5a5a5, 0x28f
504	dspck_tsi insv, 0x3fc, 0x0, 0x3ff, 0x402
505
506	writemsg "[67] Test repl.qb"
507	dspck_dIio repl.qb, 0x0, 0, 0x0, 0x0
508	dspck_dIio repl.qb, 0x1010101, 1, 0x0, 0x0
509	dspck_dIio repl.qb, 0xffffffff, 255, 0x0, 0x0
510	dspck_dIio repl.qb, 0x7f7f7f7f, 127, 0x0, 0x0
511	dspck_dIio repl.qb, 0xfefefefe, 254, 0x0, 0x0
512
513	writemsg "[68] Test replv.qb"
514	dspck_dsio replv.qb, 0x0, 0x0, 0x0, 0x0
515	dspck_dsio replv.qb, 0x1010101, 0x1, 0x0, 0x0
516	dspck_dsio replv.qb, 0xffffffff, 0xff, 0x0, 0x0
517	dspck_dsio replv.qb, 0x7f7f7f7f, 0x37f, 0x0, 0x0
518	dspck_dsio replv.qb, 0xfefefefe, 0xfffffffe, 0x0, 0x0
519
520	writemsg "[69] Test repl.ph"
521	dspck_dIio repl.ph, 0x0, 0, 0x0, 0x0
522	dspck_dIio repl.ph, 0x10001, 1, 0x0, 0x0
523	dspck_dIio repl.ph, 0xffffffff, -1, 0x0, 0x0
524	dspck_dIio repl.ph, 0xff7fff7f, -129, 0x0, 0x0
525	dspck_dIio repl.ph, 0xfffefffe, -2, 0x0, 0x0
526
527	writemsg "[70] Test replv.ph"
528	dspck_dsio replv.ph, 0x0, 0x0, 0x0, 0x0
529	dspck_dsio replv.ph, 0x10001, 0x1, 0x0, 0x0
530	dspck_dsio replv.ph, 0xffffffff, 0x5555ffff, 0x0, 0x0
531	dspck_dsio replv.ph, 0x37f037f, 0x37f, 0x0, 0x0
532	dspck_dsio replv.ph, 0xfffefffe, 0xfffffffe, 0x0, 0x0
533
534	writemsg "[71] Test cmpu.eq.qb"
535	dspck_stio cmpu.eq.qb, 0x0, 0x0, 0x0, 0xf000000
536	dspck_stio cmpu.eq.qb, 0xffffffff, 0x0, 0x0, 0x0
537	dspck_stio cmpu.eq.qb, 0x0, 0xffffffff, 0x0, 0x0
538	dspck_stio cmpu.eq.qb, 0x10203, 0x4050607, 0x0, 0x0
539	dspck_stio cmpu.eq.qb, 0x8090a0b, 0xc0d0e0f, 0x0, 0x0
540
541	writemsg "[72] Test cmpu.lt.qb"
542	dspck_stio cmpu.lt.qb, 0x0, 0x0, 0x0, 0x0
543	dspck_stio cmpu.lt.qb, 0xffffffff, 0x0, 0x0, 0x0
544	dspck_stio cmpu.lt.qb, 0x0, 0xffffffff, 0x0, 0xf000000
545	dspck_stio cmpu.lt.qb, 0x10203, 0x4050607, 0x0, 0xf000000
546	dspck_stio cmpu.lt.qb, 0x8090a0b, 0xc0d0e0f, 0x0, 0xf000000
547
548	writemsg "[73] Test cmpu.le.qb"
549	dspck_stio cmpu.le.qb, 0x0, 0x0, 0x0, 0xf000000
550	dspck_stio cmpu.le.qb, 0xffffffff, 0x0, 0x0, 0x0
551	dspck_stio cmpu.le.qb, 0x0, 0xffffffff, 0x0, 0xf000000
552	dspck_stio cmpu.le.qb, 0x10203, 0x4050607, 0x0, 0xf000000
553	dspck_stio cmpu.le.qb, 0x8090a0b, 0xc0d0e0f, 0x0, 0xf000000
554
555	writemsg "[74] Test cmpgu.eq.qb"
556	dspck_dstio cmpgu.eq.qb, 0xf, 0x0, 0x0, 0x0, 0x0
557	dspck_dstio cmpgu.eq.qb, 0x0, 0xffffffff, 0x0, 0x0, 0x0
558	dspck_dstio cmpgu.eq.qb, 0x0, 0x0, 0xffffffff, 0x0, 0x0
559	dspck_dstio cmpgu.eq.qb, 0x0, 0x10203, 0x4050607, 0x0, 0x0
560	dspck_dstio cmpgu.eq.qb, 0x0, 0x8090a0b, 0xc0d0e0f, 0x0, 0x0
561
562	writemsg "[75] Test cmpgu.lt.qb"
563	dspck_dstio cmpgu.lt.qb, 0x0, 0x0, 0x0, 0x0, 0x0
564	dspck_dstio cmpgu.lt.qb, 0x0, 0xffffffff, 0x0, 0x0, 0x0
565	dspck_dstio cmpgu.lt.qb, 0xf, 0x0, 0xffffffff, 0x0, 0x0
566	dspck_dstio cmpgu.lt.qb, 0xf, 0x10203, 0x4050607, 0x0, 0x0
567	dspck_dstio cmpgu.lt.qb, 0xf, 0x8090a0b, 0xc0d0e0f, 0x0, 0x0
568
569	writemsg "[76] Test cmpgu.le.qb"
570	dspck_dstio cmpgu.le.qb, 0xf, 0x0, 0x0, 0x0, 0x0
571	dspck_dstio cmpgu.le.qb, 0x0, 0xffffffff, 0x0, 0x0, 0x0
572	dspck_dstio cmpgu.le.qb, 0xf, 0x0, 0xffffffff, 0x0, 0x0
573	dspck_dstio cmpgu.le.qb, 0xf, 0x10203, 0x4050607, 0x0, 0x0
574	dspck_dstio cmpgu.le.qb, 0xf, 0x8090a0b, 0xc0d0e0f, 0x0, 0x0
575
576	writemsg "[77] Test cmp.eq.ph"
577	dspck_stio cmp.eq.ph, 0x0, 0x0, 0x0, 0x3000000
578	dspck_stio cmp.eq.ph, 0x0, 0xffffffff, 0x0, 0x0
579	dspck_stio cmp.eq.ph, 0xffffffff, 0x0, 0x0, 0x0
580	dspck_stio cmp.eq.ph, 0x7fff7fff, 0xffffffff, 0x0, 0x0
581	dspck_stio cmp.eq.ph, 0x11112222, 0x33334444, 0x0, 0x0
582
583	writemsg "[78] Test cmp.lt.ph"
584	dspck_stio cmp.lt.ph, 0x0, 0x0, 0x0, 0x0
585	dspck_stio cmp.lt.ph, 0x0, 0xffffffff, 0x0, 0x0
586	dspck_stio cmp.lt.ph, 0xffffffff, 0x0, 0x0, 0x3000000
587	dspck_stio cmp.lt.ph, 0x7fff7fff, 0xffffffff, 0x0, 0x0
588	dspck_stio cmp.lt.ph, 0x11112222, 0x33334444, 0x0, 0x3000000
589
590	writemsg "[79] Test cmp.le.ph"
591	dspck_stio cmp.le.ph, 0x0, 0x0, 0x0, 0x3000000
592	dspck_stio cmp.le.ph, 0x0, 0xffffffff, 0x0, 0x0
593	dspck_stio cmp.le.ph, 0xffffffff, 0x0, 0x0, 0x3000000
594	dspck_stio cmp.le.ph, 0x7fff7fff, 0xffffffff, 0x0, 0x0
595	dspck_stio cmp.le.ph, 0x11112222, 0x33334444, 0x0, 0x3000000
596
597	writemsg "[80] Test pick.qb"
598	dspck_dsti pick.qb, 0x0, 0x0, 0x0, 0x0
599	dspck_dsti pick.qb, 0x0, 0xffffffff, 0x0, 0x0
600	dspck_dsti pick.qb, 0xffffffff, 0xffffffff, 0x0, 0xf000000
601	dspck_dsti pick.qb, 0xff, 0xffffffff, 0x0, 0x1000000
602	dspck_dsti pick.qb, 0xff00, 0xffffffff, 0x0, 0x2000000
603
604	writemsg "[81] Test pick.ph"
605	dspck_dsti pick.ph, 0x0, 0x0, 0x0, 0x0
606	dspck_dsti pick.ph, 0x0, 0xffffffff, 0x0, 0x0
607	dspck_dsti pick.ph, 0xffffffff, 0xffffffff, 0x0, 0x3000000
608	dspck_dsti pick.ph, 0xffff, 0xffffffff, 0x0, 0x1000000
609	dspck_dsti pick.ph, 0xffff0000, 0xffffffff, 0x0, 0x2000000
610
611	writemsg "[82] Test packrl.ph"
612	dspck_dstio packrl.ph, 0x00000000, 0x00000000, 0x00000000, 0x0, 0x0
613	dspck_dstio packrl.ph, 0x0000ffff, 0x00000000, 0xffff0000, 0x0, 0x0
614	dspck_dstio packrl.ph, 0x00000000, 0x00000000, 0x0000ffff, 0x0, 0x0
615	dspck_dstio packrl.ph, 0x00005555, 0x00000000, 0x5555aaaa, 0x0, 0x0
616	dspck_dstio packrl.ph, 0x0000aaaa, 0x00000000, 0xaaaa5555, 0x0, 0x0
617
618	writemsg "[83] Test extr.w"
619	dspck_atsaio extr.w, 0x0, 0x0 0x0, 0x0, 0x0, 0x0
620	dspck_atsaio extr.w, 0x7fffffff, 0xcbcdef01 0xffffffff, 0x1f, 0x0, 0x800000
621	dspck_atsaio extr.w, 0x3fffffff, 0x2bcdef01 0x7ffffffe, 0x1f, 0x0, 0x0
622	dspck_atsaio extr.w, 0xffffffff, 0xffffffff 0xffffffff, 0x0, 0x0, 0x0
623	dspck_atsaio extr.w, 0x0, 0xfffffffe 0x7fffffff, 0x1, 0x0, 0x0
624
625	writemsg "[84] Test extr_r.w"
626	dspck_atsaio extr_r.w, 0x0, 0x0 0x0, 0x0, 0x0, 0x0
627	dspck_atsaio extr_r.w, 0x7fffffff, 0xcbcdef01 0x0, 0x1f, 0x0, 0x800000
628	dspck_atsaio extr_r.w, 0x3fffffff, 0x2bcdef01 0x7ffffffe, 0x1f, 0x0, 0x0
629	dspck_atsaio extr_r.w, 0xffffffff, 0xffffffff 0xffffffff, 0x0, 0x0, 0x0
630	dspck_atsaio extr_r.w, 0x0, 0xfffffffe 0x7fffffff, 0x1, 0x0, 0x0
631
632	writemsg "[85] Test extr_rs.w"
633	dspck_atsaio extr_rs.w, 0x0, 0x0 0x0, 0x0, 0x0, 0x0
634	dspck_atsaio extr_rs.w, 0x7fffffff, 0xcbcdef01 0x7fffffff, 0x1f, 0x0, 0x800000
635	dspck_atsaio extr_rs.w, 0x3fffffff, 0x2bcdef01 0x7ffffffe, 0x1f, 0x0, 0x0
636	dspck_atsaio extr_rs.w, 0xffffffff, 0xffffffff 0xffffffff, 0x0, 0x0, 0x0
637	dspck_atsaio extr_rs.w, 0x0, 0xfffffffe 0x7fffffff, 0x1, 0x0, 0x0
638
639	writemsg "[86] Test extr_s.h"
640	dspck_atsaio extr_s.h, 0x0, 0x0 0x0, 0x0, 0x0, 0x0
641	dspck_atsaio extr_s.h, 0x7fffffff, 0xcbcdef01 0x7fff, 0x1f, 0x0, 0x800000
642	dspck_atsaio extr_s.h, 0x3fffffff, 0x2bcdef01 0x7fff, 0x1f, 0x0, 0x800000
643	dspck_atsaio extr_s.h, 0xffffffff, 0xffffffff 0xffffffff, 0x0, 0x0, 0x0
644	dspck_atsaio extr_s.h, 0x0, 0xfffffffe 0x7fff, 0x1, 0x0, 0x800000
645
646	writemsg "[87] Test extrv_s.h"
647	dspck_atsio extrv_s.h, 0x0, 0x0 0x0, 0x0, 0x0, 0x0
648	dspck_atsio extrv_s.h, 0x7fffffff, 0xcbcdef01 0x7fff, 0x1f, 0x0, 0x800000
649	dspck_atsio extrv_s.h, 0x3fffffff, 0x2bcdef01 0x7fff, 0x1f, 0x0, 0x800000
650	dspck_atsio extrv_s.h, 0xffffffff, 0xffffffff 0xffffffff, 0x0, 0x0, 0x0
651	dspck_atsio extrv_s.h, 0x0, 0xfffffffe 0x7fff, 0x1, 0x0, 0x800000
652
653	writemsg "[88] Test extrv.w"
654	dspck_atsio extrv.w, 0x0, 0x0 0x0, 0x0, 0x0, 0x0
655	dspck_atsio extrv.w, 0x7fffffff, 0xcbcdef01 0xffffffff, 0x1f, 0x0, 0x800000
656	dspck_atsio extrv.w, 0x3fffffff, 0x2bcdef01 0x7ffffffe, 0x1f, 0x0, 0x0
657	dspck_atsio extrv.w, 0xffffffff, 0xffffffff 0xffffffff, 0x0, 0x0, 0x0
658	dspck_atsio extrv.w, 0x0, 0xfffffffe 0x7fffffff, 0x1, 0x0, 0x0
659
660	writemsg "[89] Test extrv_r.w"
661	dspck_atsio extrv_r.w, 0x0, 0x0 0x0, 0x0, 0x0, 0x0
662	dspck_atsio extrv_r.w, 0x7fffffff, 0xcbcdef01 0x0, 0x1f, 0x0, 0x800000
663	dspck_atsio extrv_r.w, 0x3fffffff, 0x2bcdef01 0x7ffffffe, 0x1f, 0x0, 0x0
664	dspck_atsio extrv_r.w, 0xffffffff, 0xffffffff 0xffffffff, 0x0, 0x0, 0x0
665	dspck_atsio extrv_r.w, 0x0, 0xfffffffe 0x7fffffff, 0x1, 0x0, 0x0
666
667	writemsg "[90] Test extrv_rs.w"
668	dspck_atsio extrv_rs.w, 0x0, 0x0 0x0, 0x0, 0x0, 0x0
669	dspck_atsio extrv_rs.w, 0x7fffffff, 0xcbcdef01 0x7fffffff, 0x1f, 0x0, 0x800000
670	dspck_atsio extrv_rs.w, 0x3fffffff, 0x2bcdef01 0x7ffffffe, 0x1f, 0x0, 0x0
671	dspck_atsio extrv_rs.w, 0xffffffff, 0xffffffff 0xffffffff, 0x0, 0x0, 0x0
672	dspck_atsio extrv_rs.w, 0x0, 0xfffffffe 0x7fffffff, 0x1, 0x0, 0x0
673
674	writemsg "[91] Test extp"
675	dspck_tasiimom extp, 0x0, 0x0, 0x0, 0x0, 0x4000, 0x403f, 0x0, 0x403f
676	dspck_tasiimom extp, 0xffffffff, 0xffff7eff, 0x7e, 0x7, 0xf, 0x3f, 0x0, 0x4000
677	dspck_tasiim extp, 0xfffffff7, 0xefffffff, 0x7e, 0x7, 0x23, 0x3f
678	dspck_tasiim extp, 0xffff7eff, 0xffffffff, 0x7e, 0x7, 0x2f, 0x3f
679
680	writemsg "[92] Test extpv"
681	dspck_tasimom extpv, 0x0, 0x0, 0x0, 0x0, 0x4000, 0x403f, 0x0, 0x403f
682	dspck_tasimom extpv, 0xffffffff, 0xffff7eff, 0x7e, 0x7, 0xf, 0x3f, 0x0, 0x4000
683	dspck_tasim extpv, 0xfffffff7, 0xefffffff, 0x7e, 0x7, 0x23, 0x3f
684	dspck_tasim extpv, 0xffff7eff, 0xffffffff, 0x7e, 0x7, 0x2f, 0x3f
685
686	writemsg "[93] Test extpdp"
687	dspck_tasiimom extpdp, 0x0, 0x0, 0x0, 0x0, 0x4000, 0x403f, 0x3f, 0x403f
688	dspck_tasiimom extpdp, 0xffffffff, 0xffff7eff, 0x7e, 0x7, 0xf, 0x3f, 0x0, 0x4000
689	dspck_tasiim extpdp, 0xfffffff7, 0xefffffff, 0x7e, 0x7, 0x23, 0x3f
690	dspck_tasiim extpdp, 0xffff7eff, 0xffffffff, 0x7e, 0x7, 0x2f, 0x3f
691
692	writemsg "[94] Test extpdpv"
693	dspck_tasimom extpdpv, 0x0, 0x0, 0x0, 0x0, 0x4000, 0x403f, 0x3f, 0x403f
694	dspck_tasimom extpdpv, 0xffffffff, 0xffff7eff, 0x7e, 0x7, 0xf, 0x3f, 0x0, 0x4000
695	dspck_tasim extpdpv, 0xfffffff7, 0xefffffff, 0x7e, 0x7, 0x23, 0x3f
696	dspck_tasim extpdpv, 0xffff7eff, 0xffffffff, 0x7e, 0x7, 0x2f, 0x3f
697
698	writemsg "[95] Test shilo"
699	dspck_asaio shilo, 0x0, 0x0, 0x0, 0x0, 0, 0x0, 0x0
700	dspck_asaio shilo, 0x1, 0x80000000, 0x1, 0x80000000, 0, 0x0, 0x0
701	dspck_asaio shilo, 0x1, 0x80000000, 0x3, 0x0, -1, 0x0, 0x0
702	dspck_asaio shilo, 0x1, 0x80000000, 0x6, 0x0, -2, 0x0, 0x0
703	dspck_asaio shilo, 0x1, 0x80000000, 0x18, 0x0, -4, 0x0, 0x0
704
705	writemsg "[96] Test shilov"
706	dspck_asio shilov, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
707	dspck_asio shilov, 0x1, 0x80000000, 0x1, 0x80000000, 0x0, 0x0, 0x0
708	dspck_asio shilov, 0x1, 0x80000000, 0x3, 0x0, 0xffffffff, 0x0, 0x0
709	dspck_asio shilov, 0x1, 0x80000000, 0x6, 0x0, 0xfffffffe, 0x0, 0x0
710	dspck_asio shilov, 0x1, 0x80000000, 0x18, 0x0, 0xfffffffc, 0x0, 0x0
711
712	writemsg "[97] Test mthlip"
713	dspck_saio mthlip, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20
714	dspck_saio mthlip, 0x0, 0x1, 0x1, 0x2, 0x2, 0x8, 0x28
715	dspck_saio mthlip, 0xffffffff, 0xffff1234, 0xffff1234, 0xfffffffe, 0xfffffffe, 0x10, 0x30
716	dspck_saio mthlip, 0xdeadbeef, 0x1234, 0x1234, 0xbeefdead, 0xbeefdead, 0x18, 0x38
717
718	writemsg "[98] Test wrdsp"
719	dspck_wrdsp 0x0, 0x0, 0x0, 0x0
720	dspck_wrdsp 0x4000, 0x20, 0x0, 0x4000
721	dspck_wrdsp 0xffffffff, 0x3f, 0x0, 0x0fff7fbf
722	dspck_wrdsp 0x3f, 0x1, 0x0, 0x3f
723	dspck_wrdsp 0x1f80, 0x2, 0x0, 0x1f80
724
725	writemsg "[99] Test rddsp"
726	dspck_rddsp 0x0, 0x0, 0x0
727	dspck_rddsp 0x0, 0x0, 0xffffffff
728	dspck_rddsp 0x3f, 0x1, 0xffffffff
729	dspck_rddsp 0x1f80, 0x2, 0x0fff7fbf
730	dspck_rddsp 0x2000, 0x4, 0x0fff7fbf
731
732	writemsg "[100] Test lbux"
733	.data
734mydata:
735	.byte	0x12
736	.byte	0x34
737	.byte	0x56
738	.byte	0x78
739	.byte	0x9a
740	.byte	0xbc
741	.byte	0xde
742	.byte	0xf0
743	.previous
744	dspck_load lbux, 0x12, 0x0, mydata
745	dspck_load lbux, 0x34, 0x1, mydata
746	dspck_load lbux, 0x56, 0x2, mydata
747	dspck_load lbux, 0x78, 0x3, mydata
748	dspck_load lbux, 0x9a, 0x4, mydata
749	dspck_load lbux, 0xbc, 0x5, mydata
750	dspck_load lbux, 0xde, 0x6, mydata
751	dspck_load lbux, 0xf0, 0x7, mydata
752
753	writemsg "[101] Test lhx"
754	.data
755myhdata:
756	.hword	0x1234
757	.hword	0x5678
758	.hword	0x9abc
759	.hword	0xdef0
760	.previous
761	dspck_load lhx, 0x1234, 0x0, myhdata
762	dspck_load lhx, 0x5678, 0x2, myhdata
763	dspck_load lhx, 0xffff9abc, 0x4, myhdata
764	dspck_load lhx, 0xffffdef0, 0x6, myhdata
765
766	writemsg "[102] Test lwx"
767	.data
768mywdata:
769	.word	0x12345678
770	.word	0x9abcdef0
771	.word	0x13579abc
772	.word	0xffff0001
773	.previous
774	dspck_load lwx, 0x12345678, 0x0, mywdata
775	dspck_load lwx, 0x9abcdef0, 0x4, mywdata
776	dspck_load lwx, 0x13579abc, 0x8, mywdata
777	dspck_load lwx, 0xffff0001, 0xc, mywdata
778
779	writemsg "[103] Test bposge32"
780	dspck_bposge32 0x0, 0
781	dspck_bposge32 0x1f, 0
782	dspck_bposge32 0x20, 1
783	dspck_bposge32 0x3f, 1
784
785	pass
786	.end DIAG
787
788