]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - sim/testsuite/mips64r5900-elf/f-rsqrt.s
* config/sh/tm-sh.h (BELIEVE_PCC_PROMOTION): Define, so that
[thirdparty/binutils-gdb.git] / sim / testsuite / mips64r5900-elf / f-rsqrt.s
CommitLineData
dd0f6109
AC
1.include "t-macros.i"
2
3 start
4
5 ### $f3 = $f2 / sqrt ($f1)
6
7test_rsqrt:
8 loadfp $f1 4.0
9 loadfp $f2 1.0
10 rsqrt.s $f3, $f2, $f1
11 checkfp 0 $f3 0.5
12
13 ################
14
15
16## +1.0 / sqrt (+0.0)
17## -> 0x7fffffff (+Max) D+SD
18test_rsqrt_1:
19 clearfcsr
20 loadfp $f1, +1.0
21 loadfp $f2, +0.0
22 rsqrt.s $f3, $f1, $f2
23 checkfpx 1 0x00010021 $f3 0x7fffffff
24
25
26## -1.0 / sqrt (+0.0)
27## -> 0xffffffff (-Max) D+SD
28test_rsqrt_2:
29 clearfcsr
30 loadfp $f1, -1.0
31 loadfp $f2, +0.0
32 rsqrt.s $f3, $f1, $f2
33 checkfpx 1 0x00010021 $f3 0xffffffff
34
35
36## 0 / sqrt (-0)
37##and 0 / sqrt (0)
38## ->0x7fffffff I + SI
39test_rsqrt_3a:
40 clearfcsr
41 loadfp $f1, +0.0
42 loadfp $f2, -0.0
43 rsqrt.s $f3, $f1, $f2
44 checkfpx 1 0x00020041 $f3 0x7fffffff
45
46test_rsqrt_3b:
47 clearfcsr
48 loadfp $f1, +0.0
49 loadfp $f2, +0.0
50 rsqrt.s $f3, $f1, $f2
51 checkfpx 1 0x00020041 $f3 0x7fffffff
52
53
54## Correctly:
55## (-0) / sqrt (-0)
56## ->FFFFFFFF (I + SI)
57test_rsqrt_4a:
58 clearfcsr
59 loadfp $f1, -0.0
60 loadfp $f2, -0.0
61 rsqrt.s $f3, $f1, $f2
62 checkfpx 1 0x00020041 $f3 0xffffffff
63
64test_rsqrt_4b:
65 clearfcsr
66 loadfp $f1, -0.0
67 loadfp $f2, +0.0
68 rsqrt.s $f3, $f1, $f2
69 checkfpx 1 0x00020041 $f3 0xffffffff
70
71
72## (max) / sqrt (min*2) -> no O+SO
73##
74test_rsqrt_5aa:
75 clearfcsr
76 loadfpx $f1, 0x7fffffff
77 loadfpx $f2, 0x00800001
78 rsqrt.s $f3, $f1, $f2
79 checkfpx 1 0x00000001 $f3 0x7fffffff
80
81test_rsqrt_5ab:
82 clearfcsr
83 loadfpx $f1, 0x7fffffff
84 loadfpx $f2, 0x80800001
85 rsqrt.s $f3, $f1, $f2
86 checkfpx 1 0x00020041 $f3 0x7fffffff
87
88test_rsqrt_5ba:
89 clearfcsr
90 loadfpx $f1, 0xffffffff
91 loadfpx $f2, 0x00800001
92 rsqrt.s $f3, $f1, $f2
93 checkfpx 1 0x00000001 $f3 0xffffffff
94
95test_rsqrt_5bb:
96 clearfcsr
97 loadfpx $f1, 0xffffffff
98 loadfpx $f2, 0x80800001
99 rsqrt.s $f3, $f1, $f2
100 checkfpx 1 0x00020041 $f3 0xffffffff
101
102
103## (max) / sqrt (min*2) -> no U+SU
104##
105test_rsqrt_6aa:
106 clearfcsr
107 loadfpx $f1, 0x00800001
108 loadfpx $f2, 0x7fffffff
109 rsqrt.s $f3, $f1, $f2
110 checkfpx 1 0x00000001 $f3 0x00000000
111
112test_rsqrt_6ab:
113 clearfcsr
114 loadfpx $f1, 0x00800001
115 loadfpx $f2, 0xffffffff
116 rsqrt.s $f3, $f1, $f2
117 checkfpx 1 0x00020041 $f3 0x00000000
118
119test_rsqrt_6ba:
120 clearfcsr
121 loadfpx $f1, 0x80800001
122 loadfpx $f2, 0x7fffffff
123 rsqrt.s $f3, $f1, $f2
124 checkfpx 1 0x00000001 $f3 0x80000000
125
126test_rsqrt_6bb:
127 clearfcsr
128 loadfpx $f1, 0x80800001
129 loadfpx $f2, 0xffffffff
130 rsqrt.s $f3, $f1, $f2
131 checkfpx 1 0x00020041 $f3 0x80000000
132
133
134## Correctly:
135## (max/min) / sqrt ([+-]0)
136## ->MAX/MIN (D + SD)
137test_rsqrt_7aa:
138 clearfcsr
139 loadfpx $f1, 0x7fffffff
140 loadfpx $f2, 0x00000000
141 rsqrt.s $f3, $f1, $f2
142 checkfpx 1 0x00010021 $f3 0x7fffffff
143
144test_rsqrt_7ab:
145 clearfcsr
146 loadfpx $f1, 0x7fffffff
147 loadfpx $f2, 0x80000000
148 rsqrt.s $f3, $f1, $f2
149 checkfpx 1 0x00010021 $f3 0x7fffffff
150
151test_rsqrt_7ba:
152 clearfcsr
153 loadfpx $f1, 0xffffffff
154 loadfpx $f2, 0x00000000
155 rsqrt.s $f3, $f1, $f2
156 checkfpx 1 0x00010021 $f3 0xffffffff
157
158test_rsqrt_7bb:
159 clearfcsr
160 loadfpx $f1, 0xffffffff
161 loadfpx $f2, 0x80000000
162 rsqrt.s $f3, $f1, $f2
163 checkfpx 1 0x00010021 $f3 0xffffffff
164
165
166## Like max/sqrt but check that bits are set/cleared
167##
168test_rsqrt_9aa:
169 clearfcsr
170 loadfpx $f1, 0x7fffffff
171 loadfpx $f2, 0x00000000
172 rsqrt.s $f3, $f1, $f2
173 loadfpx $f1, 0x00800001
174 loadfpx $f2, 0xffffffff
175 rsqrt.s $f3, $f1, $f2
176 checkfpx 1 0x00020061 $f3 0x00000000
177
178
179 exit0