1# mach: bfin
2#include "test.h"
3.include "testutils.inc"
4
5	start
6
7	dmm32 ASTAT, (0x2030ca00 | _VS | _V | _AV1S | _AV0S | _AQ | _V_COPY | _AC0_COPY | _AN | _AZ);
8	dmm32 A1.w, 0xdf7ce5c7;
9	dmm32 A1.x, 0xffffff9c;
10	imm32 R0, 0x098ecb70;
11	imm32 R1, 0x80000000;
12	R1.H = (A1 += R0.L * R1.H) (M, ISS2);
13	checkreg R1, 0x80000000;
14	checkreg A1.w, 0xc534e5c7;
15	checkreg A1.x, 0xffffff9c;
16	checkreg ASTAT, (0x2030ca00 | _VS | _V | _AV1S | _AV0S | _AQ | _V_COPY | _AC0_COPY | _AN | _AZ);
17
18	dmm32 ASTAT, (0x00100600 | _VS | _AQ | _AZ);
19	dmm32 A1.w, 0xdf39474d;
20	dmm32 A1.x, 0xffffffd9;
21	imm32 R2, 0x64864b87;
22	imm32 R3, 0x61a97f85;
23	imm32 R6, 0x1bcacb1a;
24	R2.H = (A1 -= R6.L * R3.L) (M, ISS2);
25	checkreg R2, 0x80004b87;
26	checkreg A1.w, 0xf992dccb;
27	checkreg A1.x, 0xffffffd9;
28	checkreg ASTAT, (0x00100600 | _VS | _V | _AQ | _V_COPY | _AZ);
29
30	dmm32 ASTAT, (0x50f0c290 | _VS | _AC0 | _AQ | _CC | _AC0_COPY);
31	dmm32 A1.w, 0xb0a49eb4;
32	dmm32 A1.x, 0x00000000;
33	imm32 R0, 0x1a1607f3;
34	imm32 R1, 0x6dcc7fff;
35	imm32 R6, 0x80008000;
36	R6.H = (A1 -= R1.L * R0.H) (M, ISS2);
37	checkreg R6, 0x7fff8000;
38	checkreg A1.w, 0xa399b8ca;
39	checkreg A1.x, 0x00000000;
40	checkreg ASTAT, (0x50f0c290 | _VS | _V | _AC0 | _AQ | _CC | _V_COPY | _AC0_COPY);
41
42	dmm32 ASTAT, (0x48b04c10 | _VS | _AV1S | _AV0S | _AQ | _CC | _AC0_COPY | _AN);
43	dmm32 A1.w, 0x91b35cde;
44	dmm32 A1.x, 0x0000006c;
45	imm32 R1, 0xf473c458;
46	imm32 R5, 0x1358b0c2;
47	imm32 R7, 0xfbf00410;
48	R5.H = (A1 -= R1.L * R7.H) (M, ISS2);
49	checkreg R5, 0x7fffb0c2;
50	checkreg A1.w, 0xcc69025e;
51	checkreg A1.x, 0x0000006c;
52	checkreg ASTAT, (0x48b04c10 | _VS | _V | _AV1S | _AV0S | _AQ | _CC | _V_COPY | _AC0_COPY | _AN);
53
54	dmm32 ASTAT, (0x1ca04210 | _VS | _AC0 | _AQ | _AN | _AZ);
55	dmm32 A1.w, 0xf516677c;
56	dmm32 A1.x, 0x00000015;
57	imm32 R5, 0x218d4960;
58	imm32 R6, 0xfa8c8000;
59	R5 = (A1 -= R6.L * R5.H) (M, ISS2);
60	checkreg R5, 0x7fffffff;
61	checkreg A1.w, 0x05dce77c;
62	checkreg A1.x, 0x00000016;
63	checkreg ASTAT, (0x1ca04210 | _VS | _V | _AC0 | _AQ | _V_COPY | _AN | _AZ);
64
65	dmm32 ASTAT, (0x04004490 | _VS | _AC1 | _AN);
66	dmm32 A1.w, 0xd1795d0a;
67	dmm32 A1.x, 0x00000000;
68	imm32 R2, 0x67bd270e;
69	imm32 R3, 0xda302534;
70	imm32 R7, 0x7fffa2af;
71	R2.H = (A1 += R7.L * R3.L) (M, ISS2);
72	checkreg R2, 0x7fff270e;
73	checkreg A1.w, 0xc3e9b396;
74	checkreg A1.x, 0x00000000;
75	checkreg ASTAT, (0x04004490 | _VS | _V | _AC1 | _V_COPY | _AN);
76
77	dmm32 ASTAT, (0x60600490 | _VS | _AV1S | _AC1 | _CC | _AC0_COPY | _AZ);
78	dmm32 A1.w, 0xeb8abaea;
79	dmm32 A1.x, 0x00000036;
80	imm32 R1, 0x111687e8;
81	imm32 R5, 0x111687e8;
82	R1 = (A1 += R1.L * R5.L) (M, ISS2);
83	checkreg R1, 0x7fffffff;
84	checkreg A1.w, 0xabc93d2a;
85	checkreg A1.x, 0x00000036;
86	checkreg ASTAT, (0x60600490 | _VS | _V | _AV1S | _AC1 | _CC | _V_COPY | _AC0_COPY | _AZ);
87
88	dmm32 ASTAT, (0x30200e80 | _VS | _V | _AV1S | _AV0S | _AC1 | _AQ | _V_COPY | _AN);
89	dmm32 A1.w, 0xd3275e78;
90	dmm32 A1.x, 0xffffff89;
91	imm32 R3, 0xfee80d8d;
92	imm32 R6, 0x1c1a8000;
93	imm32 R7, 0x00000000;
94	R3 = (A1 += R7.L * R6.L) (M, ISS2);
95	checkreg R3, 0x80000000;
96	checkreg A1.w, 0xd3275e78;
97	checkreg A1.x, 0xffffff89;
98	checkreg ASTAT, (0x30200e80 | _VS | _V | _AV1S | _AV0S | _AC1 | _AQ | _V_COPY | _AN);
99
100	dmm32 ASTAT, (0x50208610 | _VS | _AV1S | _AV0S | _AC0 | _CC | _AC0_COPY);
101	dmm32 A1.w, 0xb3b71810;
102	dmm32 A1.x, 0x00000000;
103	imm32 R4, 0xfc2f7ffe;
104	imm32 R5, 0x7fffffff;
105	imm32 R7, 0x3488c040;
106	R7.H = (A1 -= R4.L * R5.H) (M, ISS2);
107	checkreg R7, 0x7fffc040;
108	checkreg A1.w, 0x73b8980e;
109	checkreg A1.x, 0x00000000;
110	checkreg ASTAT, (0x50208610 | _VS | _V | _AV1S | _AV0S | _AC0 | _CC | _V_COPY | _AC0_COPY);
111
112	dmm32 ASTAT, (0x48d04410 | _VS | _AV1S | _AV0S | _AC0 | _AQ);
113	dmm32 A1.w, 0xeb066305;
114	dmm32 A1.x, 0xffffff9c;
115	imm32 R0, 0x80002105;
116	imm32 R4, 0xf4fbe11e;
117	imm32 R7, 0xffffb83a;
118	R7 = (A1 += R0.L * R4.L) (M, ISS2);
119	checkreg R7, 0x80000000;
120	checkreg A1.w, 0x080fa69b;
121	checkreg A1.x, 0xffffff9d;
122	checkreg ASTAT, (0x48d04410 | _VS | _V | _AV1S | _AV0S | _AC0 | _AQ | _V_COPY);
123
124	dmm32 ASTAT, (0x3850c090 | _VS | _AV1S | _AV0S | _AC1 | _CC);
125	dmm32 A1.w, 0xdfed6537;
126	dmm32 A1.x, 0xffffffae;
127	imm32 R0, 0xe962c700;
128	imm32 R4, 0x32c97fff;
129	imm32 R7, 0x28da7373;
130	R4.H = (A1 += R7.L * R0.H) (M, ISS2);
131	checkreg R4, 0x80007fff;
132	checkreg A1.w, 0x492d423d;
133	checkreg A1.x, 0xffffffaf;
134	checkreg ASTAT, (0x3850c090 | _VS | _V | _AV1S | _AV0S | _AC1 | _CC | _V_COPY);
135
136	dmm32 ASTAT, (0x78a0ce00 | _VS | _AV1S | _AC0 | _AQ | _CC);
137	dmm32 A1.w, 0x8c733a78;
138	dmm32 A1.x, 0x0000002d;
139	imm32 R1, 0x3840acb0;
140	imm32 R3, 0x47b843ad;
141	imm32 R7, 0x7fff4d00;
142	R7 = (A1 += R1.L * R3.H) (M, ISS2);
143	checkreg R7, 0x7fffffff;
144	checkreg A1.w, 0x751c28f8;
145	checkreg A1.x, 0x0000002d;
146	checkreg ASTAT, (0x78a0ce00 | _VS | _V | _AV1S | _AC0 | _AQ | _CC | _V_COPY);
147
148	dmm32 ASTAT, (0x3cf08880 | _VS | _AV1S | _AV0S | _AC0);
149	dmm32 A1.w, 0xbde0b55f;
150	dmm32 A1.x, 0xfffffffd;
151	imm32 R0, 0x80002300;
152	imm32 R5, 0x635db45a;
153	imm32 R7, 0x67e67af3;
154	R7 = (A1 += R0.L * R5.L) (M, ISS2);
155	checkreg R7, 0x80000000;
156	checkreg A1.w, 0xd689035f;
157	checkreg A1.x, 0xfffffffd;
158	checkreg ASTAT, (0x3cf08880 | _VS | _V | _AV1S | _AV0S | _AC0 | _V_COPY);
159
160	dmm32 ASTAT, (0x58608410 | _VS | _AQ | _CC | _AZ);
161	dmm32 A1.w, 0xe4660b32;
162	dmm32 A1.x, 0xffffff84;
163	imm32 R1, 0x2c6c9118;
164	imm32 R2, 0x007793ad;
165	imm32 R7, 0x526c17d9;
166	R1.H = (A1 -= R2.L * R7.L) (M, ISS2);
167	checkreg R1, 0x80009118;
168	checkreg A1.w, 0xee7d528d;
169	checkreg A1.x, 0xffffff84;
170	checkreg ASTAT, (0x58608410 | _VS | _V | _AQ | _CC | _V_COPY | _AZ);
171
172	dmm32 ASTAT, (0x2020c210 | _VS | _AV1S | _AV0S | _AC0 | _AC0_COPY | _AN);
173	dmm32 A1.w, 0x8da6c28f;
174	dmm32 A1.x, 0x00000000;
175	imm32 R1, 0x0000fff7;
176	imm32 R4, 0xf85a0000;
177	imm32 R7, 0x7fff0000;
178	R7 = (A1 += R4.L * R1.L) (M, ISS2);
179	checkreg R7, 0x7fffffff;
180	checkreg A1.w, 0x8da6c28f;
181	checkreg A1.x, 0x00000000;
182	checkreg ASTAT, (0x2020c210 | _VS | _V | _AV1S | _AV0S | _AC0 | _V_COPY | _AC0_COPY | _AN);
183
184	pass
185