1# mach: bfin
2#include "test.h"
3.include "testutils.inc"
4
5	start
6
7	dmm32 ASTAT, (0x3ce00800 | _VS | _AV1S | _AV0S | _AQ | _AZ);
8	imm32 R2, 0x00000000;
9	imm32 R4, 0x00000000;
10	imm32 R7, 0x00000000;
11	R2 = ASHIFT R7 BY R4.L (S);
12	checkreg ASTAT, (0x3ce00800 | _VS | _AV1S | _AV0S | _AQ | _AZ);
13	checkreg R2, 0x00000000;
14	checkreg R4, 0x00000000;
15	checkreg R7, 0x00000000;
16
17	dmm32 ASTAT, (0x7c104680 | _VS | _AV1S | _AV0S | _AC1 | _AC0 | _AC0_COPY | _AZ);
18	imm32 R7, 0x00000000;
19	R7 = R7 << 0xe (S);
20	checkreg R7, 0x00000000;
21	checkreg ASTAT, (0x7c104680 | _VS | _AV1S | _AV0S | _AC1 | _AC0 | _AC0_COPY | _AZ);
22
23	dmm32 ASTAT, (0x10d08690 | _VS | _AV1S | _AV0S | _AC1 | _AC0 | _CC | _AC0_COPY | _AN);
24	imm32 R2, 0x0000ffff;
25	imm32 R5, 0x00000000;
26	R2 = R5 << 0x1a (S);
27	checkreg R2, 0x00000000;
28	checkreg ASTAT, (0x10d08690 | _VS | _AV1S | _AV0S | _AC1 | _AC0 | _CC | _AC0_COPY | _AZ);
29
30	dmm32 ASTAT, (0x30f08e90 | _VS | _AV1S | _AV0S | _AC1 | _AC0 | _CC | _AC0_COPY | _AN);
31	imm32 R6, 0x00000000;
32	R6 = ASHIFT R6 BY R6.L (S);
33	checkreg ASTAT, (0x30f08e90 | _VS | _AV1S | _AV0S | _AC1 | _AC0 | _CC | _AC0_COPY | _AZ);
34	checkreg R6, 0x00000000;
35
36	dmm32 ASTAT, (0x4060c800 | _VS | _AV0S | _AC1 | _CC | _AZ);
37	imm32 R5, 0x00000000;
38	imm32 R7, 0x00000000;
39	R5 = R7 << 0x15 (S);
40	checkreg ASTAT, (0x4060c800 | _VS | _AV0S | _AC1 | _CC | _AZ);
41	checkreg R5, 0x00000000;
42	checkreg R7, 0x00000000;
43
44	dmm32 ASTAT, (0x78604a10 | _VS | _AN);
45	imm32 R1, 0x00000000;
46	imm32 R4, 0xe1a88000;
47	R4 = R1 << 0xb (S);
48	checkreg R4, 0x00000000;
49	checkreg ASTAT, (0x78604a10 | _VS | _AZ);
50
51	dmm32 ASTAT, (0x64304800 | _VS | _AV1S | _AV0S | _AC0_COPY);
52	imm32 R2, 0x00000000;
53	imm32 R7, 0x00000000;
54	R7 = R2 << 0xa (S);
55	checkreg ASTAT, (0x64304800 | _VS | _AV1S | _AV0S | _AC0_COPY | _AZ);
56	checkreg R2, 0x00000000;
57	checkreg R7, 0x00000000;
58
59	dmm32 ASTAT, (0x68f0c280 | _VS | _AC1 | _AC0_COPY | _AN);
60	imm32 R2, 0x00000000;
61	imm32 R5, 0x0000f74a;
62	R5 = R2 << 0x10 (S);
63	checkreg R5, 0x00000000;
64	checkreg ASTAT, (0x68f0c280 | _VS | _AC1 | _AC0_COPY | _AZ);
65
66	dmm32 ASTAT, (0x54200c80 | _VS | _AV1S | _AV0S | _AQ);
67	imm32 R1, 0x00000000;
68	imm32 R2, 0x00000000;
69	R2 = R1 << 0xa (S);
70	checkreg ASTAT, (0x54200c80 | _VS | _AV1S | _AV0S | _AQ | _AZ);
71	checkreg R1, 0x00000000;
72	checkreg R2, 0x00000000;
73
74	dmm32 ASTAT, (0x20300a80 | _VS | _AV1S | _CC | _AZ);
75	imm32 R2, 0x00000000;
76	imm32 R7, 0x00000000;
77	R7 = R2 << 0x8 (S);
78	checkreg ASTAT, (0x20300a80 | _VS | _AV1S | _CC | _AZ);
79	checkreg R2, 0x00000000;
80	checkreg R7, 0x00000000;
81
82	dmm32 ASTAT, (0x14408e10 | _VS | _AV0S | _AQ | _CC | _AZ);
83	imm32 R4, 0x0000007f;
84	imm32 R6, 0x00000000;
85	R4 = R6 << 0x3 (S);
86	checkreg R4, 0x00000000;
87	checkreg ASTAT, (0x14408e10 | _VS | _AV0S | _AQ | _CC | _AZ);
88
89	dmm32 ASTAT, (0x2850c490 | _VS | _AV1S | _AV0S | _AZ);
90	imm32 R5, 0x00000000;
91	imm32 R7, 0xf67f0000;
92	R7 = ASHIFT R5 BY R7.L (S);
93	checkreg R7, 0x00000000;
94	checkreg ASTAT, (0x2850c490 | _VS | _AV1S | _AV0S | _AZ);
95
96	dmm32 ASTAT, (0x24a00400 | _VS | _AV1S | _AC0 | _AC0_COPY | _AN);
97	imm32 R4, 0x00001e68;
98	imm32 R6, 0x00000000;
99	R4 = R6 << 0x8 (S);
100	checkreg R4, 0x00000000;
101	checkreg ASTAT, (0x24a00400 | _VS | _AV1S | _AC0 | _AC0_COPY | _AZ);
102
103	dmm32 ASTAT, (0x34608e00 | _VS | _V | _AV1S | _AV0S | _AC1 | _AQ | _V_COPY | _AN);
104	imm32 R1, 0x00000000;
105	imm32 R5, 0x272beb60;
106	R5 = R1 << 0xa (S);
107	checkreg R5, 0x00000000;
108	checkreg ASTAT, (0x34608e00 | _VS | _AV1S | _AV0S | _AC1 | _AQ | _AZ);
109
110	dmm32 ASTAT, (0x20800c90 | _VS | _AV1S | _AV0S | _AC1 | _AC0 | _AC0_COPY | _AN);
111	imm32 R3, 0x532993ba;
112	imm32 R5, 0x00000000;
113	R3 = R5 << 0x9 (S);
114	checkreg R3, 0x00000000;
115	checkreg ASTAT, (0x20800c90 | _VS | _AV1S | _AV0S | _AC1 | _AC0 | _AC0_COPY | _AZ);
116
117	dmm32 ASTAT, (0x5430c090 | _VS | _V | _AV0S | _AC0 | _AQ | _V_COPY | _AC0_COPY);
118	imm32 R1, 0xb1510802;
119	imm32 R6, 0x00000000;
120	R1 = R6 << 0x1e (S);
121	checkreg R1, 0x00000000;
122	checkreg ASTAT, (0x5430c090 | _VS | _AV0S | _AC0 | _AQ | _AC0_COPY | _AZ);
123
124	dmm32 ASTAT, (0x5cf04c90 | _VS | _AV1S | _AC1 | _AQ | _AC0_COPY);
125	dmm32 A1.w, 0xf9bc55b7;
126	dmm32 A1.x, 0x0000002a;
127	imm32 R0, 0x002d0024;
128	imm32 R1, 0x16970042;
129	A1 += R0.L * R1.L;
130	checkreg A1.w, 0xf9bc6847;
131	checkreg A1.x, 0x0000002a;
132	checkreg ASTAT, (0x5cf04c90 | _VS | _AV1S | _AC1 | _AQ | _AC0_COPY);
133
134	dmm32 ASTAT, (0x7c804090 | _VS | _AV0S | _AC1 | _AC0 | _CC | _AC0_COPY | _AZ);
135	imm32 R5, 0x00000000;
136	imm32 R7, 0xfe773828;
137	R7 = R5 << 0x19 (S);
138	checkreg R7, 0x00000000;
139	checkreg ASTAT, (0x7c804090 | _VS | _AV0S | _AC1 | _AC0 | _CC | _AC0_COPY | _AZ);
140
141	dmm32 ASTAT, (0x30f04e90 | _VS | _AV0S | _AC0 | _AQ);
142	imm32 R3, 0x00000000;
143	imm32 R7, 0x00000372;
144	R7 = R3 << 0x6 (S);
145	checkreg R7, 0x00000000;
146	checkreg ASTAT, (0x30f04e90 | _VS | _AV0S | _AC0 | _AQ | _AZ);
147
148	dmm32 ASTAT, (0x04708210 | _VS | _AV1S | _AC0 | _AQ | _AN);
149	imm32 R5, 0x00000000;
150	imm32 R7, 0x79b3d220;
151	R7 = R5 << 0x13 (S);
152	checkreg R7, 0x00000000;
153	checkreg ASTAT, (0x04708210 | _VS | _AV1S | _AC0 | _AQ | _AZ);
154
155	dmm32 ASTAT, (0x24e08680 | _VS | _AV0S | _AC1 | _CC | _AZ);
156	imm32 R0, 0x00000000;
157	imm32 R6, 0x00000000;
158	imm32 R7, 0xa820afc0;
159	R6 = ASHIFT R0 BY R7.L (S);
160	checkreg ASTAT, (0x24e08680 | _VS | _AV0S | _AC1 | _CC | _AZ);
161	checkreg R0, 0x00000000;
162	checkreg R6, 0x00000000;
163	checkreg R7, 0xa820afc0;
164
165	dmm32 ASTAT, (0x0ca0c090 | _VS | _AQ | _AZ);
166	imm32 R6, 0x00000000;
167	imm32 R7, 0x0000001f;
168	R7 = R6 << 0x14 (S);
169	checkreg R7, 0x00000000;
170	checkreg ASTAT, (0x0ca0c090 | _VS | _AQ | _AZ);
171
172	dmm32 ASTAT, (0x20204680 | _VS | _AV1S | _AV0S | _AC0 | _AC0_COPY);
173	imm32 R6, 0x00000000;
174	R6 = R6 << 0x15 (S);
175	checkreg ASTAT, (0x20204680 | _VS | _AV1S | _AV0S | _AC0 | _AC0_COPY | _AZ);
176	checkreg R6, 0x00000000;
177
178	dmm32 ASTAT, (0x14f08c00 | _VS | _AC1 | _AC0 | _AQ | _AC0_COPY | _AZ);
179	imm32 R2, 0x00000000;
180	imm32 R6, 0x00007fff;
181	R6 = R2 << 0x1b (S);
182	checkreg R6, 0x00000000;
183	checkreg ASTAT, (0x14f08c00 | _VS | _AC1 | _AC0 | _AQ | _AC0_COPY | _AZ);
184
185	dmm32 ASTAT, (0x50b08c00 | _VS | _AC1 | _AQ | _CC | _AN);
186	imm32 R1, 0x00000000;
187	imm32 R4, 0x0000fffd;
188	R4 = R1 << 0x9 (S);
189	checkreg R4, 0x00000000;
190	checkreg ASTAT, (0x50b08c00 | _VS | _AC1 | _AQ | _CC | _AZ);
191
192	dmm32 ASTAT, (0x1cb04200 | _VS | _AV0S | _AC1 | _CC);
193	imm32 R0, 0x00000000;
194	imm32 R2, 0xdeab0000;
195	R2 = R0 << 0x1e (S);
196	checkreg R2, 0x00000000;
197	checkreg ASTAT, (0x1cb04200 | _VS | _AV0S | _AC1 | _CC | _AZ);
198
199	dmm32 ASTAT, (0x54c0ca00 | _VS | _AV1S | _AV0S | _AC1);
200	imm32 R6, 0x00000000;
201	imm32 R7, 0x9ec9c597;
202	R7 = R6 << 0x8 (S);
203	checkreg R7, 0x00000000;
204	checkreg ASTAT, (0x54c0ca00 | _VS | _AV1S | _AV0S | _AC1 | _AZ);
205
206	dmm32 ASTAT, (0x18804400 | _VS | _AV0S | _AC1 | _AC0 | _AC0_COPY | _AN);
207	imm32 R7, 0x00000000;
208	R7 = R7 << 0x1d (S);
209	checkreg ASTAT, (0x18804400 | _VS | _AV0S | _AC1 | _AC0 | _AC0_COPY | _AZ);
210	checkreg R7, 0x00000000;
211
212	dmm32 ASTAT, (0x40c08e90 | _VS | _AV1S | _AV0S | _CC);
213	imm32 R2, 0x00000000;
214	imm32 R5, 0x80000000;
215	imm32 R7, 0x00000000;
216	R5 = ASHIFT R2 BY R7.L (S);
217	checkreg R5, 0x00000000;
218	checkreg ASTAT, (0x40c08e90 | _VS | _AV1S | _AV0S | _CC | _AZ);
219
220	dmm32 ASTAT, (0x70b04290 | _VS | _AV1S | _AV0S | _AQ | _AZ);
221	imm32 R5, 0x8000c2d0;
222	imm32 R6, 0x00000000;
223	R5 = R6 << 0x2 (S);
224	checkreg R5, 0x00000000;
225	checkreg ASTAT, (0x70b04290 | _VS | _AV1S | _AV0S | _AQ | _AZ);
226
227	dmm32 ASTAT, (0x7cf04480 | _VS | _AV0S | _AC0 | _AC0_COPY | _AZ);
228	imm32 R3, 0x00000000;
229	imm32 R7, 0x00000000;
230	R7 = ASHIFT R3 BY R7.L (S);
231	checkreg ASTAT, (0x7cf04480 | _VS | _AV0S | _AC0 | _AC0_COPY | _AZ);
232	checkreg R3, 0x00000000;
233	checkreg R7, 0x00000000;
234
235	dmm32 ASTAT, (0x78d0c290 | _VS | _AV0S | _AC1 | _AC0 | _AQ | _CC | _AC0_COPY | _AZ);
236	imm32 R1, 0x7c98345a;
237	imm32 R4, 0x00000000;
238	R1 = ASHIFT R4 BY R1.L (S);
239	checkreg R1, 0x00000000;
240	checkreg ASTAT, (0x78d0c290 | _VS | _AV0S | _AC1 | _AC0 | _AQ | _CC | _AC0_COPY | _AZ);
241
242	dmm32 ASTAT, (0x58400e80 | _VS | _V | _AV0S | _AQ | _CC | _V_COPY);
243	imm32 R2, 0x00000000;
244	imm32 R4, 0x7fffffff;
245	R4 = R2 << 0x8 (S);
246	checkreg R4, 0x00000000;
247	checkreg ASTAT, (0x58400e80 | _VS | _AV0S | _AQ | _CC | _AZ);
248
249	dmm32 ASTAT, (0x4c804080 | _VS | _V | _AV1S | _AV0S | _AV0 | _V_COPY);
250	imm32 R3, 0x00000000;
251	imm32 R7, 0x3d196b66;
252	R7 = ASHIFT R3 BY R3.L (S);
253	checkreg R7, 0x00000000;
254	checkreg ASTAT, (0x4c804080 | _VS | _AV1S | _AV0S | _AV0 | _AZ);
255
256	dmm32 ASTAT, (0x44304a10 | _VS | _AV0S | _AQ | _AZ);
257	imm32 R4, 0x00000000;
258	imm32 R6, 0x00000000;
259	R6 = R4 << 0x11 (S);
260	checkreg ASTAT, (0x44304a10 | _VS | _AV0S | _AQ | _AZ);
261	checkreg R4, 0x00000000;
262	checkreg R6, 0x00000000;
263
264	pass
265