blob: 346d01ffcaa2afaa11ba0b9e569eaf908ea2a161 [file] [log] [blame]
# sh testcase for fmul -*- Asm -*-
# mach: all
# as: -isa=shcompact
# ld: -m shelf32
.include "compact/testutils.inc"
start
# 0.0 - 0.0 = 0.0.
fldi0 fr0
fldi0 fr1
fsub fr0, fr1
fldi0 fr2
fcmp/eq fr1, fr2
bf wrong
# 1.0 - 0.0 = 1.0.
fldi0 fr0
fldi1 fr1
fsub fr0, fr1
fldi1 fr2
fcmp/eq fr1, fr2
bf wrong
# 1.0 - 1.0 = 0.0.
fldi1 fr0
fldi1 fr1
fsub fr0, fr1
fldi0 fr2
fcmp/eq fr1, fr2
bf wrong
# 0.0 - 1.0 = -1.0.
fldi1 fr0
fldi0 fr1
fsub fr0, fr1
fldi1 fr2
fneg fr2
fcmp/eq fr1, fr2
bf wrong
bra double
nop
wrong:
fail
double:
# 0.0 - 0.0 = 0.0.
fldi0 fr0
fldi0 fr2
_s2d fr0, dr0
_s2d fr2, dr2
_setpr
fsub dr0, dr2
_clrpr
fldi0 fr4
_s2d fr4, dr4
_setpr
fcmp/eq dr2, dr4
bf wrong
_clrpr
onezero:
# 1.0 - 0.0 = 1.0.
fldi0 fr0
fldi1 fr2
_s2d fr0, dr0
_s2d fr2, dr2
_setpr
fsub dr0, dr2
_clrpr
fldi1 fr4
_s2d fr4, dr4
_setpr
fcmp/eq dr2, dr4
bf wrong2
_clrpr
oneone:
# 1.0 - 1.0 = 0.0.
fldi1 fr0
fldi1 fr2
_s2d fr0, dr0
_s2d fr2, dr2
_setpr
fsub dr0, dr2
_clrpr
fldi0 fr4
_s2d fr4, dr4
_setpr
fcmp/eq dr2, dr4
bf wrong2
_clrpr
bra zeroone
nop
wrong2:
fail
zeroone:
# 0.0 - 1.0 = -1.0.
fldi1 fr0
fldi0 fr2
_s2d fr0, dr0
_s2d fr2, dr2
_setpr
fsub dr0, dr2
_clrpr
fldi1 fr4
fneg fr4
_s2d fr4, dr4
_setpr
fcmp/eq dr2, dr4
bf wrong2
_clrpr
okay:
pass