146 lines
2.2 KiB
ArmAsm
146 lines
2.2 KiB
ArmAsm
# mach: aarch64
|
|
|
|
# Check the FP compare instructions: fcmps, fcmpzs, fcmpes, fcmpzes, fcmpd,
|
|
# fcmpzd, fcmped, fcmpzed.
|
|
# For 1 operand compares, check 0, 1, -1, +Inf, -Inf.
|
|
# For 2 operand compares, check 1/1, 1/-2, -1/2, +Inf/+Inf, +Inf/-Inf.
|
|
# FIXME: Check for qNaN and sNaN when exception raising support added.
|
|
|
|
.include "testutils.inc"
|
|
|
|
start
|
|
fmov s0, wzr
|
|
fcmp s0, #0.0
|
|
bne .Lfailure
|
|
fcmpe s0, #0.0
|
|
bne .Lfailure
|
|
fmov d0, xzr
|
|
fcmp d0, #0.0
|
|
bne .Lfailure
|
|
fcmpe d0, #0.0
|
|
bne .Lfailure
|
|
|
|
fmov s0, #1.0
|
|
fcmp s0, #0.0
|
|
blo .Lfailure
|
|
fcmpe s0, #0.0
|
|
blo .Lfailure
|
|
fmov d0, #1.0
|
|
fcmp d0, #0.0
|
|
blo .Lfailure
|
|
fcmpe d0, #0.0
|
|
blo .Lfailure
|
|
|
|
fmov s0, #-1.0
|
|
fcmp s0, #0.0
|
|
bpl .Lfailure
|
|
fcmpe s0, #0.0
|
|
bpl .Lfailure
|
|
fmov d0, #-1.0
|
|
fcmp d0, #0.0
|
|
bpl .Lfailure
|
|
fcmpe d0, #0.0
|
|
bpl .Lfailure
|
|
|
|
fmov s0, #1.0
|
|
fmov s1, wzr
|
|
fdiv s0, s0, s1
|
|
fcmp s0, #0.0
|
|
blo .Lfailure
|
|
fcmpe s0, #0.0
|
|
blo .Lfailure
|
|
fmov d0, #1.0
|
|
fmov d1, xzr
|
|
fdiv d0, d0, d1
|
|
fcmp d0, #0.0
|
|
blo .Lfailure
|
|
fcmpe d0, #0.0
|
|
blo .Lfailure
|
|
|
|
fmov s0, #-1.0
|
|
fmov s1, wzr
|
|
fdiv s0, s0, s1
|
|
fcmp s0, #0.0
|
|
bpl .Lfailure
|
|
fcmpe s0, #0.0
|
|
bpl .Lfailure
|
|
fmov d0, #-1.0
|
|
fmov d1, xzr
|
|
fdiv d0, d0, d1
|
|
fcmp d0, #0.0
|
|
bpl .Lfailure
|
|
fcmpe d0, #0.0
|
|
bpl .Lfailure
|
|
|
|
fmov s0, #1.0
|
|
fmov s1, #1.0
|
|
fcmp s0, s1
|
|
bne .Lfailure
|
|
fcmpe s0, s1
|
|
bne .Lfailure
|
|
fmov d0, #1.0
|
|
fmov d1, #1.0
|
|
fcmp d0, d1
|
|
bne .Lfailure
|
|
fcmpe d0, d1
|
|
bne .Lfailure
|
|
|
|
fmov s0, #1.0
|
|
fmov s1, #-2.0
|
|
fcmp s0, s1
|
|
blo .Lfailure
|
|
fcmpe s0, s1
|
|
blo .Lfailure
|
|
fmov d0, #1.0
|
|
fmov d1, #-2.0
|
|
fcmp d0, d1
|
|
blo .Lfailure
|
|
fcmpe d0, d1
|
|
blo .Lfailure
|
|
|
|
fmov s0, #-1.0
|
|
fmov s1, #2.0
|
|
fcmp s0, s1
|
|
bpl .Lfailure
|
|
fcmpe s0, s1
|
|
bpl .Lfailure
|
|
fmov d0, #-1.0
|
|
fmov d1, #2.0
|
|
fcmp d0, d1
|
|
bpl .Lfailure
|
|
fcmpe d0, d1
|
|
bpl .Lfailure
|
|
|
|
fmov s0, #1.0
|
|
fmov s1, wzr
|
|
fdiv s0, s0, s1
|
|
fcmp s0, s0
|
|
bne .Lfailure
|
|
fcmpe s0, s0
|
|
bne .Lfailure
|
|
fmov s1, #-1.0
|
|
fmov s2, wzr
|
|
fdiv s1, s1, s2
|
|
fcmp s0, s1
|
|
blo .Lfailure
|
|
fcmpe s0, s1
|
|
blo .Lfailure
|
|
|
|
fmov d0, #1.0
|
|
fmov d1, xzr
|
|
fdiv d0, d0, d1
|
|
fcmp d0, d0
|
|
bne .Lfailure
|
|
fcmpe d0, d0
|
|
bne .Lfailure
|
|
fmov d1, #-1.0
|
|
fmov d2, xzr
|
|
fdiv d1, d1, d2
|
|
fcmp d0, d1
|
|
blo .Lfailure
|
|
fcmpe d0, d1
|
|
blo .Lfailure
|
|
|
|
pass
|
|
.Lfailure:
|
|
fail
|