This commit was manufactured by cvs2svn to create branch 'gdb_7_0-branch'.
[external/binutils.git] / sim / testsuite / sim / mips / mdmx-ob-sb1.s
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
15 DIAG:
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