xref: /netbsd-src/external/gpl3/gdb/dist/sim/testsuite/mips/mdmx-ob-sb1.s (revision 4b169a6ba595ae283ca507b26b15fdff40495b1c)
1# MDMX .OB op tests.
2# mach:	 sb1
3# as:		-mabi=eabi
4# ld:		-N -Ttext=0x80010000
5# output:	*\\npass\\n
6
7	.include "testutils.inc"
8	.include "utils-mdmx.inc"
9
10	setup
11
12	.set noreorder
13
14	.ent DIAG
15DIAG:
16
17	enable_mdmx
18
19	# set Status.SBX to enable SB-1 extensions.
20	mfc0	$2, $12
21	or	$2, $2, (1 << 16)
22	mtc0	$2, $12
23
24
25	###
26	### SB-1 Non-accumulator .ob format ops.
27	###
28	### Key: v = vector
29	###      ev = vector of single element
30	###      cv = vector of constant.
31	###
32
33
34	writemsg "pavg.ob (v)"
35	ld_ob	$f8, 0x1122334455667788
36	ld_ob	$f9, 0x66778899aabbccdd
37	pavg.ob	$f10, $f8, $f9
38	ck_ob $f10, 0x3c4d5e6f8091a2b3
39
40	writemsg "pavg.ob (ev)"
41	ld_ob	$f8, 0x1122334455667788
42	ld_ob	$f9, 0x66778899aabbccdd
43	pavg.ob	$f10, $f8, $f9[6]
44	ck_ob $f10, 0x444d555e666f7780
45
46	writemsg "pavg.ob (cv)"
47	ld_ob	$f8, 0x1122334455667788
48	pavg.ob	$f10, $f8, 0x10
49	ck_ob $f10, 0x1119222a333b444c
50
51
52	writemsg "pabsdiff.ob (v)"
53	ld_ob	$f8, 0x1122334455667788
54	ld_ob	$f9, 0x66778899aabbccdd
55	pabsdiff.ob	$f10, $f8, $f9
56	ck_ob $f10, 0x5555555555555555
57
58	writemsg "pabsdiff.ob (ev)"
59	ld_ob	$f8, 0x1122334455667788
60	ld_ob	$f9, 0x66778899aabbccdd
61	pabsdiff.ob	$f10, $f8, $f9[7]
62	ck_ob $f10, 0x5544332211001122
63
64	writemsg "pabsdiff.ob (cv)"
65	ld_ob	$f8, 0x0001020304050607
66	pabsdiff.ob	$f10, $f8, 0x04
67	ck_ob $f10, 0x0403020100010203
68
69
70	###
71	### SB-1 Accumulator .ob format ops
72	###
73	### Key: v = vector
74	###      ev = vector of single element
75	###      cv = vector of constant.
76	###
77
78
79	writemsg "pabsdiffc.ob (v)"
80	ld_acc_ob 0x0001020304050607, 0x0000000000000000, 0x0000000000000000
81	ld_ob	$f8, 0x1122334455667788
82	ld_ob	$f9, 0x66778899aabbccdd
83	pabsdiffc.ob $f8, $f9
84	ck_acc_ob 0x0001020304050607, 0x0000000000000000, 0x5555555555555555
85
86	writemsg "pabsdiffc.ob (ev)"
87	ld_acc_ob 0x0001020304050607, 0x0000000000000000, 0x0000000000000000
88	ld_ob	$f8, 0x1122334455667788
89	ld_ob	$f9, 0x66778899aabbccdd
90	pabsdiffc.ob $f8, $f9[7]
91	ck_acc_ob 0x0001020304050607, 0x0000000000000000, 0x5544332211001122
92
93	writemsg "pabsdiffc.ob (cv)"
94	ld_acc_ob 0x0001020304050607, 0x0000000000000000, 0x0000000000000000
95	ld_ob	$f8, 0x0001020304050607
96	pabsdiffc.ob $f8, 0x04
97	ck_acc_ob 0x0001020304050607, 0x0000000000000000, 0x0403020100010203
98
99
100	pass
101
102	.end DIAG
103