# sh testcase for fsqrt -*- Asm -*- # mach: all # as: -isa=shcompact # ld: -m shelf32 .include "compact/testutils.inc" start # sqrt(0.0) = 0.0. fldi0 fr0 fsqrt fr0 fldi0 fr1 fcmp/eq fr0, fr1 bf wrong # sqrt(1.0) = 1.0. fldi1 fr0 fsqrt fr0 fldi1 fr1 fcmp/eq fr0, fr1 bf wrong # sqrt(4.0) = 2.0 fldi1 fr0 # Double it. fadd fr0, fr0 # Double it again. fadd fr0, fr0 fsqrt fr0 fldi1 fr1 # Double it. fadd fr1, fr1 fcmp/eq fr0, fr1 bf wrong bra double nop wrong: fail double: # sqrt(0.0) = 0.0. fldi0 fr0 _s2d fr0, dr0 _setpr fsqrt dr0 _clrpr fldi0 fr2 _s2d fr2, dr2 _setpr fcmp/eq dr0, dr2 bf wrong2 _clrpr # sqrt(1.0) = 1.0. fldi1 fr0 _s2d fr0, dr0 _setpr fsqrt dr0 _clrpr fldi1 fr2 _s2d fr2, dr2 _setpr fcmp/eq fr0, fr2 bf wrong2 _clrpr # sqrt(4.0) = 2.0. fldi1 fr0 # Double it. fadd fr0, fr0 # Double it again. fadd fr0, fr0 _s2d fr0, dr0 _setpr fsqrt dr0 _clrpr fldi1 fr2 # Double it. fadd fr2, fr2 _s2d fr2, dr2 _setpr fcmp/eq fr0, fr2 bf wrong2 _clrpr okay: pass wrong2: fail