# sh testcase for fmac -*- Asm -*- | |
# mach: all | |
# as: -isa=shcompact | |
# ld: -m shelf32 | |
.include "compact/testutils.inc" | |
start | |
# 0.0 * x + y = y. | |
fldi0 fr0 | |
fldi1 fr1 | |
fldi1 fr2 | |
fmac fr0, fr1, fr2 | |
# check result. | |
fldi1 fr0 | |
fcmp/eq fr0, fr2 | |
bf wrong | |
# x * y + 0.0 = x * y. | |
fldi1 fr0 | |
fldi1 fr1 | |
fldi0 fr2 | |
# double it. | |
fadd fr1, fr2 | |
fmac fr0, fr1, fr2 | |
# check result. | |
fldi1 fr0 | |
fadd fr0, fr0 | |
fcmp/eq fr0, fr2 | |
bf wrong | |
# x * 0.0 + y = y. | |
fldi1 fr0 | |
fldi0 fr1 | |
fldi1 fr2 | |
fadd fr2, fr2 | |
fmac fr0, fr1, fr2 | |
# check result. | |
fldi1 fr0 | |
# double fr0. | |
fadd fr0, fr0 | |
fcmp/eq fr0, fr2 | |
bf wrong | |
# x * 0.0 + 0.0 = 0.0 | |
fldi1 fr0 | |
fadd fr0, fr0 | |
fldi0 fr1 | |
fldi0 fr2 | |
fmac fr0, fr1, fr2 | |
# check result. | |
fldi0 fr0 | |
fcmp/eq fr0, fr2 | |
bf wrong | |
# 0.0 * x + 0.0 = 0.0. | |
fldi0 fr0 | |
fldi1 fr1 | |
# double it. | |
fadd fr1, fr1 | |
fldi0 fr2 | |
fmac fr0, fr1, fr2 | |
# check result. | |
fldi0 fr0 | |
fcmp/eq fr0, fr2 | |
bf wrong | |
okay: | |
pass | |
wrong: | |
fail |