1# source file to test assembly of MIPS DSP ASE for MIPS32 instructions
2
3	.set noreorder
4	.set noat
5
6	.text
7text_label:
8
9	addq.ph		$0,$1,$2
10	addq_s.ph	$1,$2,$3
11	addq_s.w	$2,$3,$4
12	addu.qb		$3,$4,$5
13	addu_s.qb	$4,$5,$6
14	subq.ph		$5,$6,$7
15	subq_s.ph	$6,$7,$8
16	subq_s.w	$7,$8,$9
17	subu.qb		$8,$9,$10
18	subu_s.qb	$9,$10,$11
19	addsc		$10,$11,$12
20	addwc		$11,$12,$13
21	modsub		$12,$13,$14
22	raddu.w.qb	$13,$14
23	absq_s.ph	$14,$15
24	absq_s.w	$15,$16
25	precrq.qb.ph	$16,$17,$18
26	precrq.ph.w	$17,$18,$19
27	precrq_rs.ph.w	$18,$19,$20
28	precrqu_s.qb.ph	$19,$20,$21
29	preceq.w.phl	$20,$21
30	preceq.w.phr	$21,$22
31	precequ.ph.qbl	$22,$23
32	precequ.ph.qbr	$23,$24
33	precequ.ph.qbla	$24,$25
34	precequ.ph.qbra	$25,$26
35	preceu.ph.qbl	$26,$27
36	preceu.ph.qbr	$27,$28
37	preceu.ph.qbla	$28,$29
38	preceu.ph.qbra	$29,$30
39	shll.qb		$30,$31,-1
40	shll.qb		$30,$31,0
41	shll.qb		$30,$31,7
42	shll.qb		$30,$31,8
43	shllv.qb	$31,$0,$1
44	shll.ph		$0,$1,-1
45	shll.ph		$0,$1,0
46	shll.ph		$0,$1,15
47	shll.ph		$0,$1,16
48	shllv.ph	$1,$2,$3
49	shll_s.ph	$2,$3,-1
50	shll_s.ph	$2,$3,0
51	shll_s.ph	$2,$3,15
52	shll_s.ph	$2,$3,16
53	shllv_s.ph	$3,$4,$5
54	shll_s.w	$4,$5,-1
55	shll_s.w	$4,$5,0
56	shll_s.w	$4,$5,31
57	shll_s.w	$4,$5,32
58	shllv_s.w	$5,$6,$7
59	shrl.qb		$6,$7,-1
60	shrl.qb		$6,$7,0
61	shrl.qb		$6,$7,7
62	shrl.qb		$6,$7,8
63	shrlv.qb	$7,$8,$9
64	shra.ph		$8,$9,-1
65	shra.ph		$8,$9,0
66	shra.ph		$8,$9,15
67	shra.ph		$8,$9,16
68	shrav.ph	$9,$10,$11
69	shra_r.ph	$10,$11,-1
70	shra_r.ph	$10,$11,0
71	shra_r.ph	$10,$11,15
72	shra_r.ph	$10,$11,16
73	shrav_r.ph	$11,$12,$13
74	shra_r.w	$12,$13,-1
75	shra_r.w	$12,$13,0
76	shra_r.w	$12,$13,31
77	shra_r.w	$12,$13,32
78	shrav_r.w	$13,$14,$15
79	muleu_s.ph.qbl	$14,$15,$16
80	muleu_s.ph.qbr	$15,$16,$17
81	mulq_rs.ph	$16,$17,$18
82	muleq_s.w.phl	$17,$18,$19
83	muleq_s.w.phr	$18,$19,$20
84	dpau.h.qbl	$ac0,$19,$20
85	dpau.h.qbr	$ac1,$20,$21
86	dpsu.h.qbl	$ac2,$21,$22
87	dpsu.h.qbr	$ac3,$22,$23
88	dpaq_s.w.ph	$ac0,$23,$24
89	dpsq_s.w.ph	$ac1,$24,$25
90	mulsaq_s.w.ph	$ac2,$25,$26
91	dpaq_sa.l.w	$ac3,$26,$27
92	dpsq_sa.l.w	$ac0,$27,$28
93	maq_s.w.phl	$ac1,$28,$29
94	maq_s.w.phr	$ac2,$29,$30
95	maq_sa.w.phl	$ac3,$30,$31
96	maq_sa.w.phr	$ac0,$31,$0
97	bitrev		$0,$1
98	insv		$1,$2
99	repl.qb		$2,-1
100	repl.qb		$2,0
101	repl.qb		$2,255
102	repl.qb		$2,256
103	replv.qb	$3,$4
104	repl.ph		$4,-513
105	repl.ph		$4,-512
106	repl.ph		$4,511
107	repl.ph		$4,512
108	replv.ph	$5,$6
109	cmpu.eq.qb	$6,$7
110	cmpu.lt.qb	$7,$8
111	cmpu.le.qb	$8,$9
112	cmpgu.eq.qb	$9,$10,$11
113	cmpgu.lt.qb	$10,$11,$12
114	cmpgu.le.qb	$11,$12,$13
115	cmp.eq.ph	$12,$13
116	cmp.lt.ph	$13,$14
117	cmp.le.ph	$14,$15
118	pick.qb		$15,$16,$17
119	pick.ph		$16,$17,$18
120	packrl.ph	$17,$18,$19
121	extr.w		$18,$ac1,-1
122	extr.w		$18,$ac1,0
123	extr.w		$18,$ac1,31
124	extr.w		$18,$ac1,32
125	extr_r.w	$19,$ac2,-1
126	extr_r.w	$19,$ac2,0
127	extr_r.w	$19,$ac2,31
128	extr_r.w	$19,$ac2,32
129	extr_rs.w	$20,$ac3,-1
130	extr_rs.w	$20,$ac3,0
131	extr_rs.w	$20,$ac3,31
132	extr_rs.w	$20,$ac3,32
133	extr_s.h	$21,$ac0,-1
134	extr_s.h	$21,$ac0,0
135	extr_s.h	$21,$ac0,31
136	extr_s.h	$21,$ac0,32
137	extrv_s.h	$22,$ac1,$23
138	extrv.w		$23,$ac2,$24
139	extrv_r.w	$24,$ac3,$25
140	extrv_rs.w	$25,$ac0,$26
141	extp		$26,$ac1,-1
142	extp		$26,$ac1,0
143	extp		$26,$ac1,31
144	extp		$26,$ac1,32
145	extpv		$27,$ac2,$28
146	extpdp		$28,$ac3,-1
147	extpdp		$28,$ac3,0
148	extpdp		$28,$ac3,31
149	extpdp		$28,$ac3,32
150	extpdpv		$29,$ac0,$30
151	shilo		$ac1,-33
152	shilo		$ac1,-32
153	shilo		$ac1,31
154	shilo		$ac1,32
155	shilov		$ac2,$30
156	mthlip		$31,$ac3
157	mfhi		$0,$ac0
158	mflo		$1,$ac1
159	mthi		$2,$ac2
160	mtlo		$3,$ac3
161	wrdsp		$4,-1
162	wrdsp		$4,0
163	wrdsp		$4,63
164	wrdsp		$4,64
165	wrdsp		$5
166	rddsp		$6,-1
167	rddsp		$6,0
168	rddsp		$6,63
169	rddsp		$6,64
170	rddsp		$7
171	lbux		$8,$9($10)
172	lhx		$9,$10($11)
173	lwx		$10,$11($12)
174	bposge32	text_label
175	nop
176
177# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ...
178	.space	8
179