Five fixes, for fcsel, fcvtz, fminnm, mls, and non-widening mul.
[external/binutils.git] / sim / testsuite / sim / aarch64 / fminnm.s
1 # mach: aarch64
2
3 # Check the FP min/max number instructions: fminnm, fmaxnm, dminnm, dmaxnm.
4 # For min, check 2/1, 1/0, -1/-Inf.
5 # For max, check 1/2, -1/0, 1/+inf.
6
7 .include "testutils.inc"
8
9         start
10         fmov s0, #2.0
11         fmov s1, #1.0
12         fminnm s2, s0, s1
13         fcmp s2, s1
14         bne .Lfailure
15         fmov d0, #2.0
16         fmov d1, #1.0
17         fminnm d2, d0, d1
18         fcmp d2, d1
19         bne .Lfailure
20
21         fmov s0, #1.0
22         fmov s1, wzr
23         fminnm s2, s0, s1
24         fcmp s2, s1
25         bne .Lfailure
26         fmov d0, #1.0
27         fmov d1, xzr
28         fminnm d2, d0, d1
29         fcmp d2, d1
30         bne .Lfailure
31
32         fmov s0, #-1.0
33         fmov s1, wzr
34         fdiv s1, s0, s1
35         fminnm s2, s0, s1
36         fcmp s2, s1
37         bne .Lfailure
38         fmov d0, #-1.0
39         fmov d1, xzr
40         fdiv d1, d0, d1
41         fminnm d1, d0, d1
42         fcmp d0, d0
43         bne .Lfailure
44
45         fmov s0, #1.0
46         fmov s1, #2.0
47         fmaxnm s2, s0, s1
48         fcmp s2, s1
49         bne .Lfailure
50         fmov d0, #1.0
51         fmov d1, #2.0
52         fmaxnm d2, d0, d1
53         fcmp d2, d1
54         bne .Lfailure
55
56         fmov s0, #-1.0
57         fmov s1, wzr
58         fmaxnm s2, s0, s1
59         fcmp s2, s1
60         bne .Lfailure
61         fmov d0, #-1.0
62         fmov d1, xzr
63         fmaxnm d2, d0, d1
64         fcmp d2, d1
65         bne .Lfailure
66
67         fmov s0, #1.0
68         fmov s1, wzr
69         fdiv s1, s0, s1
70         fmaxnm s2, s0, s1
71         fcmp s2, s1
72         bne .Lfailure
73         fmov d0, #1.0
74         fmov d1, xzr
75         fdiv d1, d0, d1
76         fmaxnm d1, d0, d1
77         fcmp d0, d0
78         bne .Lfailure
79
80         pass
81 .Lfailure:
82         fail