binutils-gdb/sim/testsuite/aarch64/fcmp.s
Mike Frysinger 1368b914e9 sim: testsuite: flatten tree
Now that all port tests live under testsuite/sim/*/, and none live
in testsuite/ directly, flatten the structure by moving all of the
dirs under testsuite/sim/ to testsuite/ directly.

We need to stop passing --tool to dejagnu so that it searches all
dirs and not just ones that start with "sim".  Since we have no
other dirs in this tree, and no plans to add any, should be fine.
2021-01-15 19:18:34 -05:00

147 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