# 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