77 lines
1.1 KiB
ArmAsm
77 lines
1.1 KiB
ArmAsm
# mach: aarch64
|
|
|
|
# Check the FP scalar compare zero instructions: fcmeq, fcmle, fcmlt, fcmge,
|
|
# fcmgt.
|
|
# Check values -1, 0, and 1.
|
|
|
|
.include "testutils.inc"
|
|
|
|
start
|
|
fmov s0, wzr
|
|
fcmeq s1, s0, #0.0
|
|
mov w0, v1.s[0]
|
|
cmp w0, #-1
|
|
bne .Lfailure
|
|
fmov s0, #-1.0
|
|
fcmeq s1, s0, #0.0
|
|
mov w0, v1.s[0]
|
|
cmp w0, #0
|
|
bne .Lfailure
|
|
fmov d0, xzr
|
|
fcmeq d1, d0, #0.0
|
|
mov x0, v1.d[0]
|
|
cmp x0, #-1
|
|
bne .Lfailure
|
|
fmov d0, #1.0
|
|
fcmeq d1, d0, #0.0
|
|
mov x0, v1.d[0]
|
|
cmp x0, #0
|
|
bne .Lfailure
|
|
|
|
fmov s0, #-1.0
|
|
fcmle s1, s0, #0.0
|
|
mov w0, v1.s[0]
|
|
cmp w0, #-1
|
|
bne .Lfailure
|
|
fmov d0, #-1.0
|
|
fcmle d1, d0, #0.0
|
|
mov x0, v1.d[0]
|
|
cmp x0, #-1
|
|
bne .Lfailure
|
|
|
|
fmov s0, #-1.0
|
|
fcmlt s1, s0, #0.0
|
|
mov w0, v1.s[0]
|
|
cmp w0, #-1
|
|
bne .Lfailure
|
|
fmov d0, #-1.0
|
|
fcmlt d1, d0, #0.0
|
|
mov x0, v1.d[0]
|
|
cmp x0, #-1
|
|
bne .Lfailure
|
|
|
|
fmov s0, #1.0
|
|
fcmge s1, s0, #0.0
|
|
mov w0, v1.s[0]
|
|
cmp w0, #-1
|
|
bne .Lfailure
|
|
fmov d0, #1.0
|
|
fcmge d1, d0, #0.0
|
|
mov x0, v1.d[0]
|
|
cmp x0, #-1
|
|
bne .Lfailure
|
|
|
|
fmov s0, #1.0
|
|
fcmgt s1, s0, #0.0
|
|
mov w0, v1.s[0]
|
|
cmp w0, #-1
|
|
bne .Lfailure
|
|
fmov d0, #1.0
|
|
fcmgt d1, d0, #0.0
|
|
mov x0, v1.d[0]
|
|
cmp x0, #-1
|
|
bne .Lfailure
|
|
|
|
pass
|
|
.Lfailure:
|
|
fail
|