# frv testcase for scan $GRi,$GRj,$GRk
# mach: all

	.include "testutils.inc"

	start

	.global scan
scan:
	set_gr_limmed	0x2aaa,0xaaaa,gr7
	set_gr_limmed	0xaaaa,0xaaaa,gr8
	scan 		gr7,gr8,gr9
	test_gr_immed	0,gr9
	test_gr_limmed	0x2aaa,0xaaaa,gr7
	test_gr_limmed	0xaaaa,0xaaaa,gr8

	set_gr_limmed	0x2aaa,0xaaaa,gr7
	set_gr_limmed	0xaaaa,0xaaab,gr8
	scan 		gr7,gr8,gr9
	test_gr_immed	0,gr9
	test_gr_limmed	0x2aaa,0xaaaa,gr7
	test_gr_limmed	0xaaaa,0xaaab,gr8

	set_gr_limmed	0xd555,0x5555,gr7
	set_gr_limmed	0xaaaa,0xaaaa,gr8
	scan 		gr7,gr8,gr9
	test_gr_immed	63,gr9
	test_gr_limmed	0xd555,0x5555,gr7
	test_gr_limmed	0xaaaa,0xaaaa,gr8

	set_gr_limmed	0xd555,0x5555,gr7
	set_gr_limmed	0xaaaa,0xaaab,gr8
	scan 		gr7,gr8,gr9
	test_gr_immed	63,gr9
	test_gr_limmed	0xd555,0x5555,gr7
	test_gr_limmed	0xaaaa,0xaaab,gr8

	set_gr_limmed	0xffff,0xffff,gr7
	set_gr_limmed	0x7fff,0xffff,gr8
	scan 		gr7,gr8,gr9
	test_gr_immed	0,gr9
	test_gr_limmed	0xffff,0xffff,gr7
	test_gr_limmed	0x7fff,0xffff,gr8

	set_gr_limmed	0xffff,0xffff,gr7
	set_gr_limmed	0xbfff,0xffff,gr8
	scan 		gr7,gr8,gr9
	test_gr_immed	2,gr9
	test_gr_limmed	0xffff,0xffff,gr7
	test_gr_limmed	0xbfff,0xffff,gr8

	set_gr_limmed	0xffff,0xffff,gr7
	set_gr_limmed	0xfffe,0xffff,gr8
	scan 		gr7,gr8,gr9
	test_gr_immed	16,gr9
	test_gr_limmed	0xffff,0xffff,gr7
	test_gr_limmed	0xfffe,0xffff,gr8

	set_gr_limmed	0xffff,0xffff,gr7
	set_gr_limmed	0xffff,0xfffd,gr8
	scan 		gr7,gr8,gr9
	test_gr_immed	31,gr9
	test_gr_limmed	0xffff,0xffff,gr7
	test_gr_limmed	0xffff,0xfffd,gr8

	set_gr_limmed	0xdead,0xbeef,gr7
	set_gr_limmed	0xbeef,0xdead,gr8
	scan 		gr7,gr8,gr9
	test_gr_immed	7,gr9
	test_gr_limmed	0xdead,0xbeef,gr7
	test_gr_limmed	0xbeef,0xdead,gr8

	pass
