xref: /netbsd-src/external/gpl3/gdb/dist/sim/testsuite/arm/iwmmxt/wror.cgs (revision 4b169a6ba595ae283ca507b26b15fdff40495b1c)
1# Intel(r) Wireless MMX(tm) technology testcase for WROR
2# mach: xscale
3# as: -mcpu=xscale+iwmmxt
4
5	.include "testutils.inc"
6
7	start
8
9	.global wror
10wror:
11	# Enable access to CoProcessors 0 & 1 before
12        # we attempt these instructions.
13
14	mvi_h_gr   r1, 3
15	mcr        p15, 0, r1, cr15, cr1, 0
16
17	# Test Halfword wide rotate right by register
18
19	mvi_h_gr   r0, 0x12345678
20	mvi_h_gr   r1, 0x9abcdef0
21	mvi_h_gr   r2, 0x11111111
22	mvi_h_gr   r3, 0x00000000
23	mvi_h_gr   r4, 0
24	mvi_h_gr   r5, 0
25
26	tmcrr	   wr0, r0, r1
27	tmcrr	   wr1, r2, r3
28	tmcrr	   wr2, r4, r5
29
30	wrorh	   wr2, wr0, wr1
31
32	tmrrc	   r0, r1, wr0
33	tmrrc	   r2, r3, wr1
34	tmrrc	   r4, r5, wr2
35
36	test_h_gr  r0, 0x12345678
37	test_h_gr  r1, 0x9abcdef0
38	test_h_gr  r2, 0x11111111
39	test_h_gr  r3, 0x00000000
40	test_h_gr  r4, 0x091a2b3c
41	test_h_gr  r5, 0x4d5e6f78
42
43	# Test Halfword wide rotate right by CG register
44
45	mvi_h_gr   r0, 0x12345678
46	mvi_h_gr   r1, 0x9abcdef0
47	mvi_h_gr   r2, 0x11111111
48	mvi_h_gr   r3, 0
49	mvi_h_gr   r4, 0
50
51	tmcrr	   wr0, r0, r1
52	tmcr	   wcgr0, r2
53	tmcrr	   wr1, r2, r3
54
55	wrorhg	   wr1, wr0, wcgr0
56
57	tmrrc	   r0, r1, wr0
58	tmrc	   r2, wcgr0
59	tmrrc	   r3, r4, wr2
60
61	test_h_gr  r0, 0x12345678
62	test_h_gr  r1, 0x9abcdef0
63	test_h_gr  r2, 0x11111111
64	test_h_gr  r3, 0x091a2b3c
65	test_h_gr  r4, 0x4d5e6f78
66
67	# Test Word wide rotate right by register
68
69	mvi_h_gr   r0, 0x12345678
70	mvi_h_gr   r1, 0x9abcdef0
71	mvi_h_gr   r2, 0x11111111
72	mvi_h_gr   r3, 0x00000000
73	mvi_h_gr   r4, 0
74	mvi_h_gr   r5, 0
75
76	tmcrr	   wr0, r0, r1
77	tmcrr	   wr1, r2, r3
78	tmcrr	   wr2, r4, r5
79
80	wrorw	   wr2, wr0, wr1
81
82	tmrrc	   r0, r1, wr0
83	tmrrc	   r2, r3, wr1
84	tmrrc	   r4, r5, wr2
85
86	test_h_gr  r0, 0x12345678
87	test_h_gr  r1, 0x9abcdef0
88	test_h_gr  r2, 0x11111111
89	test_h_gr  r3, 0x00000000
90	test_h_gr  r4, 0x2b3c091a
91	test_h_gr  r5, 0x6f784d5e
92
93	# Test Word wide rotate right by CG register
94
95	mvi_h_gr   r0, 0x12345678
96	mvi_h_gr   r1, 0x9abcdef0
97	mvi_h_gr   r2, 0x11111111
98	mvi_h_gr   r3, 0
99	mvi_h_gr   r4, 0
100
101	tmcrr	   wr0, r0, r1
102	tmcr	   wcgr0, r2
103	tmcrr	   wr1, r2, r3
104
105	wrorwg	   wr1, wr0, wcgr0
106
107	tmrrc	   r0, r1, wr0
108	tmrc	   r2, wcgr0
109	tmrrc	   r3, r4, wr2
110
111	test_h_gr  r0, 0x12345678
112	test_h_gr  r1, 0x9abcdef0
113	test_h_gr  r2, 0x11111111
114	test_h_gr  r3, 0x2b3c091a
115	test_h_gr  r4, 0x6f784d5e
116
117	# Test Double Word wide rotate right by register
118
119	mvi_h_gr   r0, 0x12345678
120	mvi_h_gr   r1, 0x9abcdef0
121	mvi_h_gr   r2, 0x11111111
122	mvi_h_gr   r3, 0x00000000
123	mvi_h_gr   r4, 0
124	mvi_h_gr   r5, 0
125
126	tmcrr	   wr0, r0, r1
127	tmcrr	   wr1, r2, r3
128	tmcrr	   wr2, r4, r5
129
130	wrord	   wr2, wr0, wr1
131
132	tmrrc	   r0, r1, wr0
133	tmrrc	   r2, r3, wr1
134	tmrrc	   r4, r5, wr2
135
136	test_h_gr  r0, 0x12345678
137	test_h_gr  r1, 0x9abcdef0
138	test_h_gr  r2, 0x11111111
139	test_h_gr  r3, 0x00000000
140	test_h_gr  r4, 0x6f78091a
141	test_h_gr  r5, 0x2b3c4d5e
142
143	# Test Double Word wide rotate right by CG register
144
145	mvi_h_gr   r0, 0x12345678
146	mvi_h_gr   r1, 0x9abcdef0
147	mvi_h_gr   r2, 0x11111111
148	mvi_h_gr   r3, 0
149	mvi_h_gr   r4, 0
150
151	tmcrr	   wr0, r0, r1
152	tmcr	   wcgr0, r2
153	tmcrr	   wr1, r2, r3
154
155	wrordg	   wr1, wr0, wcgr0
156
157	tmrrc	   r0, r1, wr0
158	tmrc	   r2, wcgr0
159	tmrrc	   r3, r4, wr2
160
161	test_h_gr  r0, 0x12345678
162	test_h_gr  r1, 0x9abcdef0
163	test_h_gr  r2, 0x11111111
164	test_h_gr  r3, 0x6f78091a
165	test_h_gr  r4, 0x2b3c4d5e
166
167	pass
168