1# mach: aarch64
2
3# Check the FP scalar compare zero instructions: fcmeq, fcmle, fcmlt, fcmge,
4# fcmgt.
5# Check values -1, 0, and 1.
6
7.include "testutils.inc"
8
9	start
10	fmov s0, wzr
11	fcmeq s1, s0, #0.0
12	mov w0, v1.s[0]
13	cmp w0, #-1
14	bne .Lfailure
15	fmov s0, #-1.0
16	fcmeq s1, s0, #0.0
17	mov w0, v1.s[0]
18	cmp w0, #0
19	bne .Lfailure
20	fmov d0, xzr
21	fcmeq d1, d0, #0.0
22	mov x0, v1.d[0]
23	cmp x0, #-1
24	bne .Lfailure
25	fmov d0, #1.0
26	fcmeq d1, d0, #0.0
27	mov x0, v1.d[0]
28	cmp x0, #0
29	bne .Lfailure
30
31	fmov s0, #-1.0
32	fcmle s1, s0, #0.0
33	mov w0, v1.s[0]
34	cmp w0, #-1
35	bne .Lfailure
36	fmov d0, #-1.0
37	fcmle d1, d0, #0.0
38	mov x0, v1.d[0]
39	cmp x0, #-1
40	bne .Lfailure
41
42	fmov s0, #-1.0
43	fcmlt s1, s0, #0.0
44	mov w0, v1.s[0]
45	cmp w0, #-1
46	bne .Lfailure
47	fmov d0, #-1.0
48	fcmlt d1, d0, #0.0
49	mov x0, v1.d[0]
50	cmp x0, #-1
51	bne .Lfailure
52
53	fmov s0, #1.0
54	fcmge s1, s0, #0.0
55	mov w0, v1.s[0]
56	cmp w0, #-1
57	bne .Lfailure
58	fmov d0, #1.0
59	fcmge d1, d0, #0.0
60	mov x0, v1.d[0]
61	cmp x0, #-1
62	bne .Lfailure
63
64	fmov s0, #1.0
65	fcmgt s1, s0, #0.0
66	mov w0, v1.s[0]
67	cmp w0, #-1
68	bne .Lfailure
69	fmov d0, #1.0
70	fcmgt d1, d0, #0.0
71	mov x0, v1.d[0]
72	cmp x0, #-1
73	bne .Lfailure
74
75	pass
76.Lfailure:
77	fail
78