1# mach: bfin
2#include "test.h"
3.include "testutils.inc"
4
5	start
6
7	dmm32 ASTAT, (0x44004010 | _VS | _AV1S | _AV0S | _AC1 | _AC0 | _AQ | _CC | _AC0_COPY);
8	dmm32 A1.w, 0x851fa4fc;
9	dmm32 A1.x, 0x00000000;
10	imm32 R0, 0x00000000;
11	imm32 R2, 0x80000000;
12	imm32 R5, 0x139d77b4;
13	R5.H = (A1 += R2.L * R0.L) (M, S2RND);
14	checkreg R5, 0x7fff77b4;
15	checkreg A1.w, 0x851fa4fc;
16	checkreg A1.x, 0x00000000;
17	checkreg ASTAT, (0x44004010 | _VS | _V | _AV1S | _AV0S | _AC1 | _AC0 | _AQ | _CC | _V_COPY | _AC0_COPY);
18
19	dmm32 ASTAT, (0x48000600 | _VS | _V | _AV1S | _CC | _V_COPY);
20	dmm32 A1.w, 0xc5ee7420;
21	dmm32 A1.x, 0x00000000;
22	imm32 R1, 0x45f17fff;
23	imm32 R2, 0x00000000;
24	imm32 R4, 0xffffffff;
25	R1 = (A1 -= R2.L * R4.H) (M, S2RND);
26	checkreg R1, 0x7fffffff;
27	checkreg A1.w, 0xc5ee7420;
28	checkreg A1.x, 0x00000000;
29	checkreg ASTAT, (0x48000600 | _VS | _V | _AV1S | _CC | _V_COPY);
30
31	dmm32 ASTAT, (0x48500a10 | _VS | _V | _AV1S | _AC0 | _CC | _V_COPY | _AC0_COPY | _AZ);
32	dmm32 A1.w, 0x965cddab;
33	dmm32 A1.x, 0x00000063;
34	imm32 R1, 0x1d4cc3e7;
35	imm32 R3, 0xe7ce9d8e;
36	imm32 R6, 0x3cc80b2f;
37	R6.H = (A1 -= R3.L * R1.L) (M, S2RND);
38	checkreg R6, 0x7fff0b2f;
39	checkreg A1.w, 0xe1b28889;
40	checkreg A1.x, 0x00000063;
41	checkreg ASTAT, (0x48500a10 | _VS | _V | _AV1S | _AC0 | _CC | _V_COPY | _AC0_COPY | _AZ);
42
43	dmm32 ASTAT, (0x44308410 | _VS | _AV0S | _CC | _AN);
44	dmm32 A1.w, 0x92315df7;
45	dmm32 A1.x, 0x0000007e;
46	imm32 R1, 0x9e4b24e0;
47	imm32 R4, 0xe3da8000;
48	imm32 R7, 0x00ba086c;
49	R1.H = (A1 -= R7.L * R4.H) (M, S2RND);
50	checkreg R1, 0x7fff24e0;
51	checkreg A1.w, 0x8ab26dff;
52	checkreg A1.x, 0x0000007e;
53	checkreg ASTAT, (0x44308410 | _VS | _V | _AV0S | _CC | _V_COPY | _AN);
54
55	dmm32 ASTAT, (0x10a00090 | _VS | _V | _AC0 | _AQ | _CC | _V_COPY | _AC0_COPY);
56	dmm32 A1.w, 0x8ed084bf;
57	dmm32 A1.x, 0xffffffbe;
58	imm32 R0, 0x8000ffff;
59	imm32 R3, 0xbb4e34ef;
60	imm32 R5, 0x7af8492d;
61	R5 = (A1 += R3.L * R0.L) (M, S2RND);
62	checkreg R5, 0x80000000;
63	checkreg A1.w, 0xc3bf4fd0;
64	checkreg A1.x, 0xffffffbe;
65	checkreg ASTAT, (0x10a00090 | _VS | _V | _AC0 | _AQ | _CC | _V_COPY | _AC0_COPY);
66
67	dmm32 ASTAT, (0x10f04e10 | _VS | _V | _AV1S | _AV0S | _AC1 | _AN | _AZ);
68	dmm32 A1.w, 0x81becdd8;
69	dmm32 A1.x, 0x00000058;
70	imm32 R2, 0x14946201;
71	imm32 R4, 0x1a162edd;
72	R2.H = (A1 -= R2.L * R4.L) (M, S2RND);
73	checkreg R2, 0x7fff6201;
74	checkreg A1.w, 0x6fce04fb;
75	checkreg A1.x, 0x00000058;
76	checkreg ASTAT, (0x10f04e10 | _VS | _V | _AV1S | _AV0S | _AC1 | _V_COPY | _AN | _AZ);
77
78	dmm32 ASTAT, (0x20f04c80 | _VS | _AV0S | _AN);
79	dmm32 A1.w, 0xe9cc0041;
80	dmm32 A1.x, 0x00000079;
81	imm32 R1, 0x0f62a5a2;
82	imm32 R3, 0x4e8e9bdd;
83	imm32 R7, 0x6630d991;
84	R1 = (A1 -= R3.L * R7.H) (M, S2RND);
85	checkreg R1, 0x7fffffff;
86	checkreg A1.w, 0x11c4b8d1;
87	checkreg A1.x, 0x0000007a;
88	checkreg ASTAT, (0x20f04c80 | _VS | _V | _AV0S | _V_COPY | _AN);
89
90	dmm32 ASTAT, (0x20104e00 | _VS | _AC1 | _AC0 | _AQ | _AN);
91	dmm32 A1.w, 0xadeb5c67;
92	dmm32 A1.x, 0xffffffa6;
93	imm32 R1, 0x07911840;
94	imm32 R7, 0x01070000;
95	R7 = (A1 += R1.L * R7.H) (M, S2RND);
96	checkreg R7, 0x80000000;
97	checkreg A1.w, 0xae044627;
98	checkreg A1.x, 0xffffffa6;
99	checkreg ASTAT, (0x20104e00 | _VS | _V | _AC1 | _AC0 | _AQ | _V_COPY | _AN);
100
101	dmm32 ASTAT, (0x08e04010 | _VS | _AV0S);
102	dmm32 A1.w, 0xff80f384;
103	dmm32 A1.x, 0x00000003;
104	imm32 R1, 0x00000000;
105	imm32 R2, 0x8000387c;
106	imm32 R3, 0x1e547fff;
107	R2.H = (A1 -= R1.L * R3.L) (M, S2RND);
108	checkreg R2, 0x7fff387c;
109	checkreg A1.w, 0xff80f384;
110	checkreg A1.x, 0x00000003;
111	checkreg ASTAT, (0x08e04010 | _VS | _V | _AV0S | _V_COPY);
112
113	dmm32 ASTAT, (0x0cf08280 | _VS | _AV1S | _AC1 | _CC | _AN);
114	dmm32 A1.w, 0x80000000;
115	dmm32 A1.x, 0xffffff80;
116	imm32 R2, 0xecc35cac;
117	imm32 R4, 0x00007fff;
118	imm32 R7, 0x80000000;
119	R7 = (A1 -= R4.L * R2.L) (M, S2RND);
120	checkreg R7, 0x80000000;
121	checkreg A1.w, 0x51aa5cac;
122	checkreg A1.x, 0xffffff80;
123	checkreg ASTAT, (0x0cf08280 | _VS | _V | _AV1S | _AC1 | _CC | _V_COPY | _AN);
124
125	dmm32 ASTAT, (0x40c08090 | _VS | _AV1S | _AV0S | _AV0 | _AC1 | _AC0 | _AQ | _CC | _AC0_COPY | _AN);
126	dmm32 A1.w, 0xfcbe6525;
127	dmm32 A1.x, 0x00000039;
128	imm32 R0, 0x0003f3c0;
129	imm32 R2, 0xfffffffc;
130	imm32 R6, 0xffff0000;
131	R0.H = (A1 -= R2.L * R6.H) (M, S2RND);
132	checkreg R0, 0x7ffff3c0;
133	checkreg A1.w, 0xfcc26521;
134	checkreg A1.x, 0x00000039;
135	checkreg ASTAT, (0x40c08090 | _VS | _V | _AV1S | _AV0S | _AV0 | _AC1 | _AC0 | _AQ | _CC | _V_COPY | _AC0_COPY | _AN);
136
137	dmm32 ASTAT, (0x00704c10 | _VS | _V | _AV0S | _AC1 | _AC0 | _AQ | _V_COPY);
138	dmm32 A1.w, 0xdfbb3c19;
139	dmm32 A1.x, 0x00000000;
140	imm32 R0, 0x50407788;
141	imm32 R4, 0x50407788;
142	imm32 R6, 0x0d3f0c0a;
143	R6.H = (A1 -= R4.L * R0.L) (M, S2RND);
144	checkreg R6, 0x7fff0c0a;
145	checkreg A1.w, 0xa7eb83d9;
146	checkreg A1.x, 0x00000000;
147	checkreg ASTAT, (0x00704c10 | _VS | _V | _AV0S | _AC1 | _AC0 | _AQ | _V_COPY);
148
149	dmm32 ASTAT, (0x3c50c610 | _VS | _V | _AV1S | _AC1 | _CC | _V_COPY | _AN);
150	dmm32 A1.w, 0xbc7ca70b;
151	dmm32 A1.x, 0xffffff80;
152	imm32 R1, 0x76b3a772;
153	imm32 R2, 0x5cc87864;
154	imm32 R5, 0x33169c34;
155	R1 = (A1 += R2.L * R5.H) (M, S2RND);
156	checkreg R1, 0x80000000;
157	checkreg A1.w, 0xd482eba3;
158	checkreg A1.x, 0xffffff80;
159	checkreg ASTAT, (0x3c50c610 | _VS | _V | _AV1S | _AC1 | _CC | _V_COPY | _AN);
160
161	dmm32 ASTAT, (0x50008480 | _VS | _AC1 | _AC0 | _AQ | _AC0_COPY);
162	dmm32 A1.w, 0xd843bd0f;
163	dmm32 A1.x, 0x00000027;
164	imm32 R0, 0xc5d36b7c;
165	imm32 R7, 0x7fff8000;
166	R0.H = (A1 += R0.L * R7.L) (M, S2RND);
167	checkreg R0, 0x7fff6b7c;
168	checkreg A1.w, 0x0e01bd0f;
169	checkreg A1.x, 0x00000028;
170	checkreg ASTAT, (0x50008480 | _VS | _V | _AC1 | _AC0 | _AQ | _V_COPY | _AC0_COPY);
171
172	dmm32 ASTAT, (0x50208610 | _VS | _V | _AV1S | _AV0S | _V_COPY | _AN);
173	dmm32 A1.w, 0xcf30f0be;
174	dmm32 A1.x, 0xffffffad;
175	imm32 R0, 0x6d8f3470;
176	imm32 R4, 0x4174b386;
177	imm32 R6, 0x0793b3dd;
178	R0.H = (A1 -= R4.L * R6.H) (M, S2RND);
179	checkreg R0, 0x80003470;
180	checkreg A1.w, 0xd17430cc;
181	checkreg A1.x, 0xffffffad;
182	checkreg ASTAT, (0x50208610 | _VS | _V | _AV1S | _AV0S | _V_COPY | _AN);
183
184	dmm32 ASTAT, (0x60700c10 | _VS | _V | _AV1S | _AV0S | _AQ | _V_COPY | _AC0_COPY);
185	dmm32 A1.w, 0xc867b111;
186	dmm32 A1.x, 0xffffff90;
187	imm32 R4, 0x580f445e;
188	imm32 R5, 0x1fb2e64b;
189	imm32 R6, 0xb6bc814b;
190	R6.H = (A1 += R5.L * R4.L) (M, S2RND);
191	checkreg R6, 0x8000814b;
192	checkreg A1.w, 0xc18a2c9b;
193	checkreg A1.x, 0xffffff90;
194	checkreg ASTAT, (0x60700c10 | _VS | _V | _AV1S | _AV0S | _AQ | _V_COPY | _AC0_COPY);
195
196	dmm32 ASTAT, (0x4070c080 | _AV0S | _CC);
197	dmm32 A1.w, 0xe1239b9f;
198	dmm32 A1.x, 0xffffffcd;
199	imm32 R4, 0xe4d2beb4;
200	imm32 R5, 0x1c919600;
201	imm32 R6, 0x18356124;
202	R5.H = (A1 -= R4.L * R6.L) (M, S2RND);
203	checkreg R5, 0x80009600;
204	checkreg A1.w, 0xf9ea964f;
205	checkreg A1.x, 0xffffffcd;
206	checkreg ASTAT, (0x4070c080 | _VS | _V | _AV0S | _CC | _V_COPY);
207
208	dmm32 ASTAT, (0x50608210 | _VS | _AV1S | _AV0S | _AV0 | _AC0 | _AQ | _CC | _AC0_COPY | _AN);
209	dmm32 A1.w, 0xe8c00d5a;
210	dmm32 A1.x, 0xffffffbe;
211	imm32 R1, 0x2baf99f2;
212	imm32 R4, 0x03e69887;
213	imm32 R7, 0x07f45a0f;
214	R1 = (A1 -= R7.L * R4.H) (M, S2RND);
215	checkreg R1, 0x80000000;
216	checkreg A1.w, 0xe760f6e0;
217	checkreg A1.x, 0xffffffbe;
218	checkreg ASTAT, (0x50608210 | _VS | _V | _AV1S | _AV0S | _AV0 | _AC0 | _AQ | _CC | _V_COPY | _AC0_COPY | _AN);
219
220	pass
221