xref: /netbsd-src/external/gpl3/gdb/dist/sim/testsuite/arm/iwmmxt/wmac.cgs (revision 4b169a6ba595ae283ca507b26b15fdff40495b1c)
1# Intel(r) Wireless MMX(tm) technology testcase for WMAC
2# mach: xscale
3# as: -mcpu=xscale+iwmmxt
4
5	.include "testutils.inc"
6
7	start
8
9	.global wmac
10wmac:
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 Unsigned, Multiply Accumulate, Non-zeroing
18
19	mvi_h_gr   r0, 0x12345678
20	mvi_h_gr   r1, 0x9abcdef0
21	mvi_h_gr   r2, 0x11111111
22	mvi_h_gr   r3, 0x22222222
23	mvi_h_gr   r4, 0x33333333
24	mvi_h_gr   r5, 0x44444444
25
26	tmcrr	   wr0, r0, r1
27	tmcrr	   wr1, r2, r3
28	tmcrr	   wr2, r4, r5
29
30	wmacu	   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, 0x22222222
40	test_h_gr  r4, 0x6c889377
41	test_h_gr  r5, 0x44444444
42
43	# Test Unsigned, Multiply Accumulate, Zeroing
44
45	mvi_h_gr   r0, 0x12345678
46	mvi_h_gr   r1, 0x9abcdef0
47	mvi_h_gr   r2, 0x11111111
48	mvi_h_gr   r3, 0x22222222
49	mvi_h_gr   r4, 0x33333333
50	mvi_h_gr   r5, 0x44444444
51
52	tmcrr	   wr0, r0, r1
53	tmcrr	   wr1, r2, r3
54	tmcrr	   wr2, r4, r5
55
56	wmacuz	   wr2, wr0, wr1
57
58	tmrrc	   r0, r1, wr0
59	tmrrc	   r2, r3, wr1
60	tmrrc	   r4, r5, wr2
61
62	test_h_gr  r0, 0x12345678
63	test_h_gr  r1, 0x9abcdef0
64	test_h_gr  r2, 0x11111111
65	test_h_gr  r3, 0x22222222
66	test_h_gr  r4, 0x39556044
67	test_h_gr  r5, 0x00000000
68
69	# Test Signed, Multiply Accumulate, Non-zeroing
70
71	mvi_h_gr   r0, 0x12345678
72	mvi_h_gr   r1, 0x9abcdef0
73	mvi_h_gr   r2, 0x11111111
74	mvi_h_gr   r3, 0x22222222
75	mvi_h_gr   r4, 0x33333333
76	mvi_h_gr   r5, 0x44444444
77
78	tmcrr	   wr0, r0, r1
79	tmcrr	   wr1, r2, r3
80	tmcrr	   wr2, r4, r5
81
82	wmacs	   wr2, wr0, wr1
83
84	tmrrc	   r0, r1, wr0
85	tmrrc	   r2, r3, wr1
86	tmrrc	   r4, r5, wr2
87
88	test_h_gr  r0, 0x12345678
89	test_h_gr  r1, 0x9abcdef0
90	test_h_gr  r2, 0x11111111
91	test_h_gr  r3, 0x22222222
92	test_h_gr  r4, 0x28449377
93	test_h_gr  r5, 0x44444444
94
95	# Test Signed, Multiply Accumulate, Zeroing
96
97	mvi_h_gr   r0, 0x12345678
98	mvi_h_gr   r1, 0x9abcdef0
99	mvi_h_gr   r2, 0x11111111
100	mvi_h_gr   r3, 0x22222222
101	mvi_h_gr   r4, 0x33333333
102	mvi_h_gr   r5, 0x44444444
103
104	tmcrr	   wr0, r0, r1
105	tmcrr	   wr1, r2, r3
106	tmcrr	   wr2, r4, r5
107
108	wmacsz	   wr2, wr0, wr1
109
110	tmrrc	   r0, r1, wr0
111	tmrrc	   r2, r3, wr1
112	tmrrc	   r4, r5, wr2
113
114	test_h_gr  r0, 0x12345678
115	test_h_gr  r1, 0x9abcdef0
116	test_h_gr  r2, 0x11111111
117	test_h_gr  r3, 0x22222222
118	test_h_gr  r4, 0xf5116044
119	test_h_gr  r5, 0xffffffff
120
121	pass
122