1# Intel(r) Wireless MMX(tm) technology testcase for WCMPEQ
2# mach: xscale
3# as: -mcpu=xscale+iwmmxt
4
5	.include "testutils.inc"
6
7	start
8
9	.global wcmpeq
10wcmpeq:
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 Byte Wide Compare Equal To
18	
19	mvi_h_gr   r0, 0x12345678
20	mvi_h_gr   r1, 0x9abcde00
21	mvi_h_gr   r2, 0x11111111
22	mvi_h_gr   r3, 0x9abcde00
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	wcmpeqb    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, 0x9abcde00
38	test_h_gr  r2, 0x11111111
39	test_h_gr  r3, 0x9abcde00
40	test_h_gr  r4, 0x00000000
41	test_h_gr  r5, 0xffffffff
42	
43	# Test Half Word Wide Compare Equal To
44	
45	mvi_h_gr   r0, 0x12345678
46	mvi_h_gr   r1, 0x9abcde00
47	mvi_h_gr   r2, 0x11111111
48	mvi_h_gr   r3, 0x9abcde00
49	mvi_h_gr   r4, 0
50	mvi_h_gr   r5, 0
51
52	tmcrr	   wr0, r0, r1
53	tmcrr	   wr1, r2, r3
54	tmcrr	   wr2, r4, r5
55
56	wcmpeqh    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, 0x9abcde00
64	test_h_gr  r2, 0x11111111
65	test_h_gr  r3, 0x9abcde00
66	test_h_gr  r4, 0x00000000
67	test_h_gr  r5, 0xffffffff
68	
69	# Test Word Wide Compare Equal To
70	
71	mvi_h_gr   r0, 0x12345678
72	mvi_h_gr   r1, 0x9abcde00
73	mvi_h_gr   r2, 0x11111111
74	mvi_h_gr   r3, 0x9abcde00
75	mvi_h_gr   r4, 0
76	mvi_h_gr   r5, 0
77
78	tmcrr	   wr0, r0, r1
79	tmcrr	   wr1, r2, r3
80	tmcrr	   wr2, r4, r5
81
82	wcmpeqw    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, 0x9abcde00
90	test_h_gr  r2, 0x11111111
91	test_h_gr  r3, 0x9abcde00
92	test_h_gr  r4, 0x00000000
93	test_h_gr  r5, 0xffffffff
94	
95	pass
96