# 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
