# sh testcase for fdiv -*- Asm -*- # mach: all # as: -isa=shcompact # ld: -m shelf32 .include "compact/testutils.inc" start _clrpr # 1.0 / 0.0 should be INF # (and not crash the sim). fldi0 fr0 fldi1 fr1 fdiv fr0, fr1 # 0.0 / 1.0 == 0.0. fldi0 fr0 fldi1 fr1 fdiv fr1, fr0 fldi0 fr2 fcmp/eq fr0, fr2 bf wrong # 2.0 / 1.0 == 2.0. fldi1 fr1 fldi1 fr2 fadd fr2, fr2 fdiv fr1, fr2 # Load 2.0 into fr3. fldi1 fr3 fadd fr3, fr3 fcmp/eq fr2, fr3 bf wrong # (1.0 / 2.0) + (1.0 / 2.0) == 1.0. fldi1 fr1 fldi1 fr2 fadd fr2, fr2 fdiv fr2, fr1 # fr1 should contain 0.5. fadd fr1, fr1 # Load 1.0 into fr3. fldi1 fr3 # Compare fr1 with fr3. fcmp/eq fr1, fr3 bf wrong bra double nop wrong: fail double: # double test # (1.0 / 2.0) + (1.0 / 2.0) == 1.0. fldi1 fr1 _s2d fr1, dr6 fldi1 fr2 fadd fr2, fr2 _s2d fr2, dr8 _setpr fdiv dr8, dr6 # dr0 should contain 0.5. # double it, expect 1.0. fadd dr6, dr6 _clrpr foo: # Load 1.0 into dr4. fldi1 fr1 _s2d fr1, dr10 # Compare dr0 with dr10. _setpr fcmp/eq dr6, dr10 bf wrong2 _clrpr okay: pass wrong2: fail