1# frv testcase for cmexpdhd $FRi,$s6,$FRj,$CCi,$cond
2# mach: all
3
4	.include "testutils.inc"
5
6	start
7
8	.global cmexpdhd
9cmexpdhd:
10	set_spr_immed	0x1b1b,cccr
11
12	set_fr_iimmed	0xdead,0xbeef,fr10
13	cmexpdhd	fr10,0,fr12,cc0,1
14	test_fr_limmed	0xdead,0xdead,fr12
15	test_fr_limmed	0xdead,0xdead,fr13
16
17	cmexpdhd	fr10,1,fr12,cc0,1
18	test_fr_limmed	0xbeef,0xbeef,fr12
19	test_fr_limmed	0xbeef,0xbeef,fr13
20
21	cmexpdhd	fr10,62,fr12,cc4,1
22	test_fr_limmed	0xdead,0xdead,fr12
23	test_fr_limmed	0xdead,0xdead,fr13
24
25	cmexpdhd	fr10,63,fr12,cc4,1
26	test_fr_limmed	0xbeef,0xbeef,fr12
27	test_fr_limmed	0xbeef,0xbeef,fr13
28
29	set_fr_iimmed	0xdead,0xbeef,fr10
30	cmexpdhd	fr10,0,fr12,cc1,0
31	test_fr_limmed	0xdead,0xdead,fr12
32	test_fr_limmed	0xdead,0xdead,fr13
33
34	cmexpdhd	fr10,1,fr12,cc1,0
35	test_fr_limmed	0xbeef,0xbeef,fr12
36	test_fr_limmed	0xbeef,0xbeef,fr13
37
38	cmexpdhd	fr10,62,fr12,cc5,0
39	test_fr_limmed	0xdead,0xdead,fr12
40	test_fr_limmed	0xdead,0xdead,fr13
41
42	cmexpdhd	fr10,63,fr12,cc5,0
43	test_fr_limmed	0xbeef,0xbeef,fr12
44	test_fr_limmed	0xbeef,0xbeef,fr13
45
46	set_fr_iimmed	0x1111,0x1111,fr12
47	set_fr_iimmed	0x2222,0x2222,fr13
48	set_fr_iimmed	0xdead,0xbeef,fr10
49	cmexpdhd	fr10,0,fr12,cc0,0
50	test_fr_limmed	0x1111,0x1111,fr12
51	test_fr_limmed	0x2222,0x2222,fr13
52
53	cmexpdhd	fr10,1,fr12,cc0,0
54	test_fr_limmed	0x1111,0x1111,fr12
55	test_fr_limmed	0x2222,0x2222,fr13
56
57	cmexpdhd	fr10,62,fr12,cc4,0
58	test_fr_limmed	0x1111,0x1111,fr12
59	test_fr_limmed	0x2222,0x2222,fr13
60
61	cmexpdhd	fr10,63,fr12,cc4,0
62	test_fr_limmed	0x1111,0x1111,fr12
63	test_fr_limmed	0x2222,0x2222,fr13
64
65	set_fr_iimmed	0xdead,0xbeef,fr10
66	cmexpdhd	fr10,0,fr12,cc1,1
67	test_fr_limmed	0x1111,0x1111,fr12
68	test_fr_limmed	0x2222,0x2222,fr13
69
70	cmexpdhd	fr10,1,fr12,cc1,1
71	test_fr_limmed	0x1111,0x1111,fr12
72	test_fr_limmed	0x2222,0x2222,fr13
73
74	cmexpdhd	fr10,62,fr12,cc5,1
75	test_fr_limmed	0x1111,0x1111,fr12
76	test_fr_limmed	0x2222,0x2222,fr13
77
78	cmexpdhd	fr10,63,fr12,cc5,1
79	test_fr_limmed	0x1111,0x1111,fr12
80	test_fr_limmed	0x2222,0x2222,fr13
81
82	set_fr_iimmed	0xdead,0xbeef,fr10
83	cmexpdhd	fr10,0,fr12,cc2,1
84	test_fr_limmed	0x1111,0x1111,fr12
85	test_fr_limmed	0x2222,0x2222,fr13
86
87	cmexpdhd	fr10,1,fr12,cc2,0
88	test_fr_limmed	0x1111,0x1111,fr12
89	test_fr_limmed	0x2222,0x2222,fr13
90
91	cmexpdhd	fr10,62,fr12,cc6,1
92	test_fr_limmed	0x1111,0x1111,fr12
93	test_fr_limmed	0x2222,0x2222,fr13
94
95	cmexpdhd	fr10,63,fr12,cc6,0
96	test_fr_limmed	0x1111,0x1111,fr12
97	test_fr_limmed	0x2222,0x2222,fr13
98
99	set_fr_iimmed	0xdead,0xbeef,fr10
100	cmexpdhd	fr10,0,fr12,cc3,1
101	test_fr_limmed	0x1111,0x1111,fr12
102	test_fr_limmed	0x2222,0x2222,fr13
103
104	cmexpdhd	fr10,1,fr12,cc3,0
105	test_fr_limmed	0x1111,0x1111,fr12
106	test_fr_limmed	0x2222,0x2222,fr13
107
108	cmexpdhd	fr10,62,fr12,cc7,1
109	test_fr_limmed	0x1111,0x1111,fr12
110	test_fr_limmed	0x2222,0x2222,fr13
111
112	cmexpdhd	fr10,63,fr12,cc7,0
113	test_fr_limmed	0x1111,0x1111,fr12
114	test_fr_limmed	0x2222,0x2222,fr13
115
116	pass
117