xref: /netbsd-src/external/gpl3/gdb/dist/sim/testsuite/arm/iwmmxt/walignr.cgs (revision 4b169a6ba595ae283ca507b26b15fdff40495b1c)
1# Intel(r) Wireless MMX(tm) technology testcase for WALIGNR
2# mach: xscale
3# as: -mcpu=xscale+iwmmxt
4
5	.include "testutils.inc"
6
7	start
8
9	.global walignr
10walignr:
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 0 byte align
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	mvi_h_gr   r6, 3
26
27	tmcrr	   wr0, r0, r1
28	tmcrr	   wr1, r2, r3
29	tmcrr	   wr2, r4, r5
30	tmcr	   wcgr0, r6
31
32	walignr0   wr2, wr0, wr1
33
34	tmrrc	   r0, r1, wr0
35	tmrrc	   r2, r3, wr1
36	tmrrc	   r4, r5, wr2
37	tmrc	   r6, wcgr0
38
39	test_h_gr  r0, 0x12345678
40	test_h_gr  r1, 0x9abcdef0
41	test_h_gr  r2, 0x11111111
42	test_h_gr  r3, 0x00000000
43	test_h_gr  r4, 0xbcdef012
44	test_h_gr  r5, 0x1111119a
45	test_h_gr  r6, 3
46
47	# Test 1 byte align
48
49	mvi_h_gr   r0, 0x12345678
50	mvi_h_gr   r1, 0x9abcdef0
51	mvi_h_gr   r2, 0x11111111
52	mvi_h_gr   r3, 0x00000000
53	mvi_h_gr   r4, 0
54	mvi_h_gr   r5, 0
55	mvi_h_gr   r6, 4
56
57	tmcrr	   wr0, r0, r1
58	tmcrr	   wr1, r2, r3
59	tmcrr	   wr2, r4, r5
60	tmcr	   wcgr1, r6
61
62	walignr1   wr2, wr0, wr1
63
64	tmrrc	   r0, r1, wr0
65	tmrrc	   r2, r3, wr1
66	tmrrc	   r4, r5, wr2
67	tmrc	   r6, wcgr1
68
69	test_h_gr  r0, 0x12345678
70	test_h_gr  r1, 0x9abcdef0
71	test_h_gr  r2, 0x11111111
72	test_h_gr  r3, 0x00000000
73	test_h_gr  r4, 0x9abcdef0
74	test_h_gr  r5, 0x11111111
75	test_h_gr  r6, 4
76
77	# Test 2 byte align
78
79	mvi_h_gr   r0, 0x12345678
80	mvi_h_gr   r1, 0x9abcdef0
81	mvi_h_gr   r2, 0x11111111
82	mvi_h_gr   r3, 0x00000000
83	mvi_h_gr   r4, 0
84	mvi_h_gr   r5, 0
85	mvi_h_gr   r6, 2
86
87	tmcrr	   wr0, r0, r1
88	tmcrr	   wr1, r2, r3
89	tmcrr	   wr2, r4, r5
90	tmcr	   wcgr2, r6
91
92	walignr2   wr2, wr0, wr1
93
94	tmrrc	   r0, r1, wr0
95	tmrrc	   r2, r3, wr1
96	tmrrc	   r4, r5, wr2
97	tmrc	   r6, wcgr2
98
99	test_h_gr  r0, 0x12345678
100	test_h_gr  r1, 0x9abcdef0
101	test_h_gr  r2, 0x11111111
102	test_h_gr  r3, 0x00000000
103	test_h_gr  r4, 0xdef01234
104	test_h_gr  r5, 0x11119abc
105	test_h_gr  r6, 2
106
107	# Test 3 byte align
108
109	mvi_h_gr   r0, 0x12345678
110	mvi_h_gr   r1, 0x9abcdef0
111	mvi_h_gr   r2, 0x11111111
112	mvi_h_gr   r3, 0x00000000
113	mvi_h_gr   r4, 0
114	mvi_h_gr   r5, 0
115	mvi_h_gr   r6, 5
116
117	tmcrr	   wr0, r0, r1
118	tmcrr	   wr1, r2, r3
119	tmcrr	   wr2, r4, r5
120	tmcr	   wcgr3, r6
121
122	walignr3   wr2, wr0, wr1
123
124	tmrrc	   r0, r1, wr0
125	tmrrc	   r2, r3, wr1
126	tmrrc	   r4, r5, wr2
127	tmrc	   r6, wcgr3
128
129	test_h_gr  r0, 0x12345678
130	test_h_gr  r1, 0x9abcdef0
131	test_h_gr  r2, 0x11111111
132	test_h_gr  r3, 0x00000000
133	test_h_gr  r4, 0x119abcde
134	test_h_gr  r5, 0x00111111
135	test_h_gr  r6, 5
136
137	pass
138