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
83