daily update
[external/binutils.git] / sim / testsuite / sim / bfin / c_dsp32mac_dr_a1_u.s
1 //Original:/testcases/core/c_dsp32mac_dr_a1_u/c_dsp32mac_dr_a1_u.dsp
2 // Spec Reference: dsp32mac dr_a1 u (unsigned fraction & unsigned int)
3 # mach: bfin
4
5 .include "testutils.inc"
6         start
7
8
9
10
11 A1 = A0 = 0;
12
13 // The result accumulated in A1 , and stored to a reg half
14 imm32 r0, 0xa3545abd;
15 imm32 r1, 0xbabcfec7;
16 imm32 r2, 0xc1a48679;
17 imm32 r3, 0xd00a9007;
18 imm32 r4, 0xefbca569;
19 imm32 r5, 0xcd355a0b;
20 imm32 r6, 0xe00c80ad;
21 imm32 r7, 0xf78e900a;
22 R0.H = ( A1 = R6.L * R7.L ), A0 += R6.L * R7.L (FU);
23 R1 = A1.w;
24 R2.H = ( A1 = R3.L * R4.H ), A0 = R3.H * R4.L (FU);
25 R3 = A1.w;
26 R4.H = ( A1 += R2.H * R5.L ), A0 = R2.H * R5.H (FU);
27 R5 = A1.w;
28 R6.H = ( A1 += R0.H * R1.H ), A0 += R0.L * R1.H (FU);
29 R7 = A1.w;
30 CHECKREG r0, 0x48665ABD;
31 CHECKREG r1, 0x486656C2;
32 CHECKREG r2, 0x86E08679;
33 CHECKREG r3, 0x86E04E24;
34 CHECKREG r4, 0xB651A569;
35 CHECKREG r5, 0xB650D9C4;
36 CHECKREG r6, 0xCACA80AD;
37 CHECKREG r7, 0xCACA6268;
38
39 imm32 r0, 0x03545abd;
40 imm32 r1, 0x1abcfec7;
41 imm32 r2, 0xc2a48679;
42 imm32 r3, 0x300a9007;
43 imm32 r4, 0x54bca569;
44 imm32 r5, 0x6d355a0b;
45 imm32 r6, 0x700c80ad;
46 imm32 r7, 0x878e900a;
47 R0.H = ( A1 -= R6.L * R7.L ), A0 += R6.L * R7.L (FU);
48 R1 = A1.w;
49 R2.H = ( A1 -= R3.L * R4.H ), A0 = R3.H * R4.L (FU);
50 R3 = A1.w;
51 R4.H = ( A1 += R2.H * R5.L ), A0 -= R2.H * R5.H (FU);
52 R5 = A1.w;
53 R6.H = ( A1 -= R0.H * R1.H ), A0 += R0.L * R1.H (FU);
54 R7 = A1.w;
55 CHECKREG r0, 0x82645ABD;
56 CHECKREG r1, 0x82640BA6;
57 CHECKREG r2, 0x52B88679;
58 CHECKREG r3, 0x52B7FA82;
59 CHECKREG r4, 0x6FD0A569;
60 CHECKREG r5, 0x6FD0386A;
61 CHECKREG r6, 0x2D6780AD;
62 CHECKREG r7, 0x2D66815A;
63
64 // The result accumulated in A1, and stored to a reg half (MNOP)
65 imm32 r0, 0xb3548abd;
66 imm32 r1, 0x7bbcfec7;
67 imm32 r2, 0xa1b45679;
68 imm32 r3, 0xb00b9007;
69 imm32 r4, 0xcfbcb569;
70 imm32 r5, 0xd235c00b;
71 imm32 r6, 0xe00cabbd;
72 imm32 r7, 0x678e700b;
73 R0.H = ( A1 = R1.L * R0.L ) (FU);
74 R1 = A1.w;
75 R2.H = ( A1 = R2.L * R6.H ) (FU);
76 R3 = A1.w;
77 R4.H = ( A1 += R3.H * R5.L ) (FU);
78 R5 = A1.w;
79 R6.H = ( A1 = R4.H * R7.H ) (FU);
80 R7 = A1.w;
81 CHECKREG r0, 0x8A138ABD;
82 CHECKREG r1, 0x8A135EEB;
83 CHECKREG r2, 0x4BAE5679;
84 CHECKREG r3, 0x4BADEDAC;
85 CHECKREG r4, 0x8473B569;
86 CHECKREG r5, 0x8472EE1B;
87 CHECKREG r6, 0x3594ABBD;
88 CHECKREG r7, 0x3593BCCA;
89
90 // The result accumulated in A1 , and stored to a reg half (MNOP)
91 imm32 r0, 0xc354babd;
92 imm32 r1, 0x6cbcdec7;
93 imm32 r2, 0x71c4e679;
94 imm32 r3, 0x800c7007;
95 imm32 r4, 0x9fbcc569;
96 imm32 r5, 0xa2359c0b;
97 imm32 r6, 0xb00c30cd;
98 imm32 r7, 0xc78ea00c;
99  R0.H = A1 , A0 = R1.L * R0.L (FU);
100 R1 = A1.w;
101  R2.H = A1 , A0 = R2.H * R3.L (FU);
102 R3 = A1.w;
103  R4.H = A1 , A0 = R4.H * R5.H (FU);
104 R5 = A1.w;
105  R6.H = A1 , A0 = R6.L * R7.H (FU);
106 R7 = A1.w;
107 CHECKREG r0, 0x3594BABD;
108 CHECKREG r1, 0x3593BCCA;
109 CHECKREG r2, 0x3594E679;
110 CHECKREG r3, 0x3593BCCA;
111 CHECKREG r4, 0x3594C569;
112 CHECKREG r5, 0x3593BCCA;
113 CHECKREG r6, 0x359430CD;
114 CHECKREG r7, 0x3593BCCA;
115
116 // The result accumulated in A1 , and stored to a reg half
117 imm32 r0, 0xd3545abd;
118 imm32 r1, 0x5dbcfec7;
119 imm32 r2, 0x71d45679;
120 imm32 r3, 0x900d0007;
121 imm32 r4, 0xafbcd569;
122 imm32 r5, 0xd2359d0b;
123 imm32 r6, 0xc00ca0dd;
124 imm32 r7, 0x678ed00d;
125 R0.H = ( A1 = R1.L * R2.L ) (M), A0 += R1.L * R2.L (FU);
126 R1 = A1.w;
127 R2.H = ( A1 = R3.L * R4.H ) (M), A0 = R3.H * R4.L (FU);
128 R3 = A1.w;
129 R4.H = ( A1 = R5.H * R6.L ) (M), A0 += R5.H * R6.H (FU);
130 R5 = A1.w;
131 R6.H = ( A1 += R7.H * R0.H ) (M), A0 += R7.L * R0.H (FU);
132 R7 = A1.w;
133 CHECKREG r0, 0xFF965ABD;
134 CHECKREG r1, 0xFF96460F;
135 CHECKREG r2, 0x00055679;
136 CHECKREG r3, 0x0004CE24;
137 CHECKREG r4, 0xE33AD569;
138 CHECKREG r5, 0xE33997C1;
139 CHECKREG r6, 0x4A9DA0DD;
140 CHECKREG r7, 0x4A9CB6F5;
141
142 // The result accumulated in A1 MM=0, and stored to a reg half (MNOP)
143 imm32 r0, 0xe3545abd;
144 imm32 r1, 0xaebcfec7;
145 imm32 r2, 0xc1e45679;
146 imm32 r3, 0x1c0e0007;
147 imm32 r4, 0xe1cce569;
148 imm32 r5, 0x921c0e0b;
149 imm32 r6, 0x790190ed;
150 imm32 r7, 0x679e900e;
151 R0.H = ( A1 = R1.L * R0.L ) (M,FU);
152 R1 = A1.w;
153 R2.H = ( A1 += R2.L * R3.H ) (M,FU);
154 R3 = A1.w;
155 R4.H = ( A1 += R4.H * R5.L ) (M,FU);
156 R5 = A1.w;
157 R6.H = ( A1 = R6.H * R7.H ) (M,FU);
158 R7 = A1.w;
159 CHECKREG r0, 0xFF915ABD;
160 CHECKREG r1, 0xFF910EEB;
161 CHECKREG r2, 0x090B5679;
162 CHECKREG r3, 0x090B0589;
163 CHECKREG r4, 0x0763E569;
164 CHECKREG r5, 0x0762E14D;
165 CHECKREG r6, 0x30FA90ED;
166 CHECKREG r7, 0x30FA159E;
167
168
169
170 pass