1# frv testcase for ldqf @($GRi,$GRj),$GRk
2# mach: frv
3# as(frv): -mcpu=frv
4
5	.include "testutils.inc"
6
7	start
8
9	.global ldqf
10ldqf:
11	set_mem_limmed	0xdead,0xbeef,sp
12	inc_gr_immed	-4,sp
13	set_mem_limmed	0xbeef,0xdead,sp
14	inc_gr_immed	-4,sp
15	set_mem_limmed	0x1234,0x5678,sp
16	inc_gr_immed	-4,sp
17	set_mem_limmed	0x9abc,0xdef0,sp
18	set_fr_iimmed	0xdead,0xbeef,fr8
19	set_fr_iimmed	0xbeef,0xdead,fr9
20	set_fr_iimmed	0x1234,0x5678,fr10
21	set_fr_iimmed	0x9abc,0xdef0,fr11
22
23	set_gr_immed	0,gr7
24	; loading into fr0 is business as usual
25	ldqf 		@(sp,gr7),fr0
26	test_fr_limmed	0x9abc,0xdef0,fr0
27	test_fr_limmed	0x1234,0x5678,fr1
28	test_fr_limmed	0xbeef,0xdead,fr2
29	test_fr_limmed	0xdead,0xbeef,fr3
30
31	ldqf 		@(sp,gr7),fr8
32	test_fr_limmed	0x9abc,0xdef0,fr8
33	test_fr_limmed	0x1234,0x5678,fr9
34	test_fr_limmed	0xbeef,0xdead,fr10
35	test_fr_limmed	0xdead,0xbeef,fr11
36
37	set_fr_iimmed	0xdead,0xbeef,fr8
38	set_fr_iimmed	0xbeef,0xdead,fr9
39	set_fr_iimmed	0x1234,0x5678,fr10
40	set_fr_iimmed	0x9abc,0xdef0,fr11
41	inc_gr_immed	-16,sp
42	set_gr_immed	16,gr7
43	ldqf 		@(sp,gr7),fr8
44	test_fr_limmed	0x9abc,0xdef0,fr8
45	test_fr_limmed	0x1234,0x5678,fr9
46	test_fr_limmed	0xbeef,0xdead,fr10
47	test_fr_limmed	0xdead,0xbeef,fr11
48
49	set_fr_iimmed	0xdead,0xbeef,fr8
50	set_fr_iimmed	0xbeef,0xdead,fr9
51	set_fr_iimmed	0x1234,0x5678,fr10
52	set_fr_iimmed	0x9abc,0xdef0,fr11
53	inc_gr_immed	32,sp
54	set_gr_immed	-16,gr7
55	ldqf 		@(sp,gr7),fr8
56	test_fr_limmed	0x9abc,0xdef0,fr8
57	test_fr_limmed	0x1234,0x5678,fr9
58	test_fr_limmed	0xbeef,0xdead,fr10
59	test_fr_limmed	0xdead,0xbeef,fr11
60
61	pass
62