# sh testcase for fmul -*- Asm -*- # mach: all # as: -isa=shcompact # ld: -m shelf32 .include "compact/testutils.inc" .macro init fldi0 fr0 fldi1 fr1 fldi1 fr2 fadd fr2, fr2 fldi0 fr7 fldi1 fr8 .endm start # 0.0 * 0.0 = 0.0. init fmul fr0, fr0 fcmp/eq fr7, fr0 bf wrong # 0.0 * 1.0 = 0.0. init fmul fr1, fr0 fcmp/eq fr7, fr0 bf wrong # 1.0 * 0.0 = 0.0. init fmul fr0, fr1 fcmp/eq fr7, fr1 bf wrong # 1.0 * 1.0 = 1.0. init fmul fr1, fr1 fcmp/eq fr8, fr1 bf wrong # 2.0 * 1.0 = 2.0. init fmul fr2, fr1 fcmp/eq fr2, fr1 bf wrong bra double nop wrong: fail .macro dinit fldi0 fr0 fldi1 fr2 fldi1 fr4 fadd fr4, fr4 fldi0 fr8 fldi1 fr10 _s2d fr0, dr0 _s2d fr2, dr2 _s2d fr4, dr4 _s2d fr8, dr8 _s2d fr10, dr10 .endm double: # 0.0 * 0.0 = 0.0. dinit _setpr fmul dr0, dr0 fcmp/eq dr8, dr0 bf wrong _clrpr # 0.0 * 1.0 = 0.0. dinit _setpr fmul dr2, dr0 fcmp/eq dr8, dr0 bf wrong2 _clrpr # 1.0 * 0.0 = 0.0. dinit _setpr fmul dr0, dr2 fcmp/eq dr8, dr2 bf wrong2 _clrpr bra next nop wrong2: fail next: # 1.0 * 1.0 = 1.0. dinit _setpr fmul dr2, dr2 fcmp/eq dr10, dr2 bf wrong3 _clrpr # 2.0 * 1.0 = 2.0. dinit _setpr fmul dr4, dr2 fcmp/eq dr4, dr2 bf wrong3 _clrpr okay: pass wrong3: fail