1# mach: bfin
2#include "test.h"
3.include "testutils.inc"
4
5	start
6
7	dmm32 ASTAT, (0x4c60c810 | _VS | _AV0S | _AC1 | _AC0 | _AQ | _AC0_COPY);
8	dmm32 A0.w, 0x7fffffff;
9	dmm32 A0.x, 0x00000000;
10	imm32 R0, 0x00000000;
11	imm32 R5, 0x00007fff;
12	imm32 R7, 0x00000000;
13	R7.L = (A0 += R0.L * R5.L) (IH);
14	checkreg R7, 0x00007fff;
15	checkreg A0.w, 0x7fffffff;
16	checkreg A0.x, 0x00000000;
17	checkreg ASTAT, (0x4c60c810 | _VS | _V | _AV0S | _AC1 | _AC0 | _AQ | _V_COPY | _AC0_COPY);
18
19	dmm32 ASTAT, (0x00500680 | _VS | _AV0S | _AV0 | _AC0 | _AC0_COPY | _AN);
20	dmm32 A0.w, 0x80000000;
21	dmm32 A0.x, 0xffffffff;
22	imm32 R2, 0xffffffff;
23	imm32 R4, 0xa8dd8000;
24	imm32 R7, 0x80000000;
25	R4.L = (A0 -= R2.L * R7.H) (IH);
26	checkreg A0.w, 0x80000000;
27	checkreg A0.x, 0xffffffff;
28	checkreg R4, 0xa8dd8000;
29	checkreg ASTAT, (0x00500680 | _VS | _AV0S | _AV0 | _AC0 | _AC0_COPY | _AN);
30
31	dmm32 ASTAT, (0x50408c90 | _VS | _V | _AV1S | _AV0 | _AC0 | _AQ | _CC | _V_COPY | _AN);
32	dmm32 A1.w, 0xfa400000;
33	dmm32 A1.x, 0xffffffad;
34	imm32 R0, 0x366b1c84;
35	imm32 R3, 0x7fffffff;
36	imm32 R7, 0x32528aa5;
37	R3.H = (A1 += R0.L * R7.L) (M, IH);
38	checkreg R3, 0x8000ffff;
39	checkreg A1.w, 0x80000000;
40	checkreg A1.x, 0xffffffff;
41	checkreg ASTAT, (0x50408c90 | _VS | _V | _AV1S | _AV1 | _AV0 | _AC0 | _AQ | _CC | _V_COPY | _AN);
42
43	dmm32 ASTAT, (0x0c400c10 | _VS | _V | _AV0S | _AC1 | _AC0 | _AQ | _V_COPY | _AC0_COPY | _AN);
44	dmm32 A1.w, 0xef56cbd3;
45	dmm32 A1.x, 0x00000000;
46	imm32 R3, 0x7fff0003;
47	imm32 R4, 0x385cffff;
48	imm32 R7, 0x680dffff;
49	R7.H = (A1 -= R4.L * R3.H) (M, IH);
50	checkreg R7, 0x7fffffff;
51	checkreg A1.w, 0x7fffffff;
52	checkreg A1.x, 0x00000000;
53	checkreg ASTAT, (0x0c400c10 | _VS | _V | _AV1S | _AV1 | _AV0S | _AC1 | _AC0 | _AQ | _V_COPY | _AC0_COPY | _AN);
54
55	dmm32 ASTAT, (0x2c604c00 | _AV1S | _AV0 | _AC1);
56	dmm32 A1.w, 0xf54ee9bb;
57	dmm32 A1.x, 0x0000004a;
58	imm32 R3, 0x10bb4bdc;
59	imm32 R4, 0x7f29c57d;
60	imm32 R7, 0x2c03f00a;
61	R4.H = (A1 -= R3.L * R7.H) (M, IH);
62	checkreg R4, 0x7fffc57d;
63	checkreg A1.w, 0x7fffffff;
64	checkreg A1.x, 0x00000000;
65	checkreg ASTAT, (0x2c604c00 | _VS | _V | _AV1S | _AV1 | _AV0 | _AC1 | _V_COPY);
66
67	dmm32 ASTAT, (0x2c304800 | _VS | _V | _AV1S | _AV0S | _AQ | _V_COPY);
68	dmm32 A1.w, 0xc1a6b608;
69	dmm32 A1.x, 0x00000056;
70	imm32 R2, 0xd0457fff;
71	imm32 R6, 0xf4b2ffff;
72	R6.H = (A1 += R2.L * R6.H) (M, IH);
73	checkreg R6, 0x7fffffff;
74	checkreg A1.w, 0x7fffffff;
75	checkreg A1.x, 0x00000000;
76	checkreg ASTAT, (0x2c304800 | _VS | _V | _AV1S | _AV1 | _AV0S | _AQ | _V_COPY);
77
78	dmm32 ASTAT, (0x04a08810 | _VS | _AV1S | _AC1 | _AC0 | _AN);
79	dmm32 A1.w, 0xe9574334;
80	dmm32 A1.x, 0x00000056;
81	imm32 R3, 0xffffb2bc;
82	imm32 R5, 0x03eb4d44;
83	imm32 R6, 0x33852750;
84	R5.H = (A1 -= R6.L * R3.L) (M, IH);
85	checkreg R5, 0x7fff4d44;
86	checkreg A1.w, 0x7fffffff;
87	checkreg A1.x, 0x00000000;
88	checkreg ASTAT, (0x04a08810 | _VS | _V | _AV1S | _AV1 | _AC1 | _AC0 | _V_COPY | _AN);
89
90	dmm32 ASTAT, (0x5860c210 | _VS | _V | _AV1S | _AC1 | _AQ | _V_COPY);
91	dmm32 A1.w, 0xd5030654;
92	dmm32 A1.x, 0x0000001c;
93	imm32 R0, 0x20ccb6ee;
94	imm32 R2, 0x74c21675;
95	imm32 R4, 0x7fff7fff;
96	R2.H = (A1 -= R0.L * R4.L) (M, IH);
97	checkreg R2, 0x7fff1675;
98	checkreg A1.w, 0x7fffffff;
99	checkreg A1.x, 0x00000000;
100	checkreg ASTAT, (0x5860c210 | _VS | _V | _AV1S | _AV1 | _AC1 | _AQ | _V_COPY);
101
102	dmm32 ASTAT, (0x34800e00 | _VS | _AV1S | _AV0S | _AQ | _CC | _AC0_COPY | _AN);
103	dmm32 A1.w, 0xf0b59d3f;
104	dmm32 A1.x, 0xffffffef;
105	imm32 R4, 0x28bd7772;
106	imm32 R6, 0xef66ce6a;
107	imm32 R7, 0x80000000;
108	R6.H = (A1 -= R4.L * R7.H) (M, IH);
109	checkreg R6, 0x8000ce6a;
110	checkreg A1.w, 0x80000000;
111	checkreg A1.x, 0xffffffff;
112	checkreg ASTAT, (0x34800e00 | _VS | _V | _AV1S | _AV1 | _AV0S | _AQ | _CC | _V_COPY | _AC0_COPY | _AN);
113
114	dmm32 ASTAT, (0x5c804a90 | _VS | _AV1S | _AV0S | _AQ | _AN);
115	dmm32 A1.w, 0xc90d8c2f;
116	dmm32 A1.x, 0xffffffee;
117	imm32 R0, 0x80006a2f;
118	imm32 R3, 0x80000000;
119	R3.H = (A1 += R0.L * R0.H) (M, IH);
120	checkreg A1.w, 0x80000000;
121	checkreg A1.x, 0xffffffff;
122	checkreg ASTAT, (0x5c804a90 | _VS | _V | _AV1S | _AV1 | _AV0S | _AQ | _V_COPY | _AN);
123
124	dmm32 ASTAT, (0x5c90c010 | _VS | _V | _AV1S | _AV0S | _AC0 | _CC | _V_COPY | _AN);
125	dmm32 A1.w, 0x80ca2186;
126	dmm32 A1.x, 0x00000000;
127	imm32 R1, 0xf3ec0000;
128	imm32 R3, 0x5a859a0a;
129	imm32 R6, 0x19e852d9;
130	R3.H = (A1 -= R1.L * R6.L) (M, IH);
131	checkreg R3, 0x7fff9a0a;
132	checkreg A1.w, 0x7fffffff;
133	checkreg A1.x, 0x00000000;
134	checkreg ASTAT, (0x5c90c010 | _VS | _V | _AV1S | _AV1 | _AV0S | _AC0 | _CC | _V_COPY | _AN);
135
136	dmm32 ASTAT, (0x00f00a10 | _VS | _V | _AV0S | _CC | _V_COPY | _AN);
137	dmm32 A1.w, 0x9f5baab0;
138	dmm32 A1.x, 0x00000019;
139	imm32 R1, 0x1bb2489b;
140	imm32 R6, 0x0aa80127;
141	R1.H = (A1 -= R6.L * R6.H) (M, IH);
142	checkreg R1, 0x7fff489b;
143	checkreg A1.w, 0x7fffffff;
144	checkreg A1.x, 0x00000000;
145	checkreg ASTAT, (0x00f00a10 | _VS | _V | _AV1S | _AV1 | _AV0S | _CC | _V_COPY | _AN);
146
147	dmm32 ASTAT, (0x3c808210 | _VS | _V | _AV1S | _V_COPY | _AN);
148	dmm32 A1.w, 0xe09f1e24;
149	dmm32 A1.x, 0x00000025;
150	imm32 R1, 0x255b55bc;
151	imm32 R2, 0x7f1bd115;
152	imm32 R3, 0xbc978902;
153	R2.H = (A1 -= R3.L * R1.H) (M, IH);
154	checkreg R2, 0x7fffd115;
155	checkreg A1.w, 0x7fffffff;
156	checkreg A1.x, 0x00000000;
157	checkreg ASTAT, (0x3c808210 | _VS | _V | _AV1S | _AV1 | _V_COPY | _AN);
158
159	dmm32 ASTAT, (0x1ca04600 | _VS | _V | _AV0S | _V_COPY | _AC0_COPY);
160	dmm32 A1.w, 0xb80e1ddd;
161	dmm32 A1.x, 0xffffffca;
162	imm32 R0, 0x2155a4b5;
163	imm32 R1, 0x5dd905c2;
164	imm32 R2, 0x769083dc;
165	R1.H = (A1 -= R2.L * R0.H) (M, IH);
166	checkreg R1, 0x800005c2;
167	checkreg A1.w, 0x80000000;
168	checkreg A1.x, 0xffffffff;
169	checkreg ASTAT, (0x1ca04600 | _VS | _V | _AV1S | _AV1 | _AV0S | _V_COPY | _AC0_COPY);
170
171	dmm32 ASTAT, (0x1cb0cc90 | _VS | _V | _AV1S | _AV0S | _AQ | _V_COPY | _AC0_COPY | _AN);
172	dmm32 A1.w, 0xfc7c3973;
173	dmm32 A1.x, 0xffffff8a;
174	imm32 R1, 0x58a6c4e7;
175	imm32 R4, 0x19b16033;
176	imm32 R6, 0x301ff2ba;
177	R6.H = (A1 -= R4.L * R1.H) (M, IH);
178	checkreg R6, 0x8000f2ba;
179	checkreg A1.w, 0x80000000;
180	checkreg A1.x, 0xffffffff;
181	checkreg ASTAT, (0x1cb0cc90 | _VS | _V | _AV1S | _AV1 | _AV0S | _AQ | _V_COPY | _AC0_COPY | _AN);
182
183	dmm32 ASTAT, (0x2c800810 | _VS | _AV1S | _AQ | _CC | _AN);
184	dmm32 A1.w, 0xd86a7676;
185	dmm32 A1.x, 0xffffff97;
186	imm32 R3, 0x443fea83;
187	imm32 R4, 0x47ed4ac3;
188	imm32 R6, 0x7fffffff;
189	R4.H = (A1 += R3.L * R6.L) (M, IH);
190	checkreg R4, 0x80004ac3;
191	checkreg A1.w, 0x80000000;
192	checkreg A1.x, 0xffffffff;
193	checkreg ASTAT, (0x2c800810 | _VS | _V | _AV1S | _AV1 | _AQ | _CC | _V_COPY | _AN);
194
195	pass
196