1//Original:/testcases/core/c_dsp32alu_rl_m/c_dsp32alu_rl_m.dsp
2// Spec Reference: dsp32alu dreg (half)
3# mach: bfin
4
5.include "testutils.inc"
6	start
7
8
9
10
11imm32 r0, 0x55678911;
12imm32 r1, 0x2759ab1d;
13imm32 r2, 0x34455515;
14imm32 r3, 0x46665717;
15imm32 r4, 0x5678891b;
16imm32 r5, 0x6789a51d;
17imm32 r6, 0x74445515;
18imm32 r7, 0x86667777;
19R0.L = R0.L - R0.L (NS);
20R1.L = R0.L - R1.H (NS);
21R2.L = R0.H - R2.L (NS);
22R3.L = R0.H - R3.H (NS);
23R4.L = R0.L - R4.L (NS);
24R5.L = R0.L - R5.H (NS);
25R6.L = R0.H - R6.L (NS);
26R7.L = R0.H - R7.H (NS);
27CHECKREG r4, 0x567876E5;
28CHECKREG r5, 0x67899877;
29CHECKREG r6, 0x74440052;
30CHECKREG r7, 0x8666CF01;
31CHECKREG r4, 0x567876E5;
32CHECKREG r5, 0x67899877;
33CHECKREG r6, 0x74440052;
34CHECKREG r7, 0x8666CF01;
35
36imm32 r0, 0x44678911;
37imm32 r1, 0x2789ab1d;
38imm32 r2, 0x344d5515;
39imm32 r3, 0x4666d717;
40imm32 r4, 0x5678891b;
41imm32 r5, 0x6789cc1d;
42imm32 r6, 0x74445c15;
43imm32 r7, 0x86667c77;
44R0.L = R1.L - R0.L (NS);
45R1.L = R1.L - R1.H (NS);
46R2.L = R1.H - R2.L (NS);
47R3.L = R1.H - R3.H (NS);
48R4.L = R1.L - R4.L (NS);
49R5.L = R1.L - R5.H (NS);
50R6.L = R1.H - R6.L (NS);
51R7.L = R1.H - R7.H (NS);
52CHECKREG r4, 0x5678FA79;
53CHECKREG r5, 0x67891C0B;
54CHECKREG r6, 0x7444CB74;
55CHECKREG r7, 0x8666A123;
56CHECKREG r4, 0x5678FA79;
57CHECKREG r5, 0x67891C0B;
58CHECKREG r6, 0x7444CB74;
59CHECKREG r7, 0x8666A123;
60
61imm32 r0, 0xcc678911;
62imm32 r1, 0x2789ab1d;
63imm32 r2, 0x34c45515;
64imm32 r3, 0x466c7717;
65imm32 r4, 0x5678c91b;
66imm32 r5, 0x6789ac1d;
67imm32 r6, 0x74445515;
68imm32 r7, 0x866677c7;
69R0.L = R2.L - R0.L (NS);
70R1.L = R2.L - R1.H (NS);
71R2.L = R2.H - R2.L (NS);
72R3.L = R2.H - R3.H (NS);
73R4.L = R2.L - R4.L (NS);
74R5.L = R2.L - R5.H (NS);
75R6.L = R2.H - R6.L (NS);
76R7.L = R2.H - R7.H (NS);
77CHECKREG r4, 0x56781694;
78CHECKREG r5, 0x67897826;
79CHECKREG r6, 0x7444DFAF;
80CHECKREG r7, 0x8666AE5E;
81CHECKREG r4, 0x56781694;
82CHECKREG r5, 0x67897826;
83CHECKREG r6, 0x7444DFAF;
84CHECKREG r7, 0x8666AE5E;
85
86imm32 r0, 0x15678911;
87imm32 r1, 0x2789ab1d;
88imm32 r2, 0x34445515;
89imm32 r3, 0x46667717;
90imm32 r4, 0x5678891b;
91imm32 r5, 0x6789ab1d;
92imm32 r6, 0x74445515;
93imm32 r7, 0x86667777;
94R0.L = R3.L - R0.L (NS);
95R1.L = R3.L - R1.H (NS);
96R2.L = R3.H - R2.L (NS);
97R3.L = R3.H - R3.H (NS);
98R4.L = R3.L - R4.L (NS);
99R5.L = R3.L - R5.H (NS);
100R6.L = R3.H - R6.L (NS);
101R7.L = R3.H - R7.H (NS);
102CHECKREG r4, 0x567876E5;
103CHECKREG r5, 0x67899877;
104CHECKREG r6, 0x7444F151;
105CHECKREG r7, 0x8666C000;
106CHECKREG r4, 0x567876E5;
107CHECKREG r5, 0x67899877;
108CHECKREG r6, 0x7444F151;
109CHECKREG r7, 0x8666C000;
110
111imm32 r0, 0xe5678911;
112imm32 r1, 0x2e89ab1d;
113imm32 r2, 0x34e45515;
114imm32 r3, 0x466e7717;
115imm32 r4, 0x5678e91b;
116imm32 r5, 0x6789ae1d;
117imm32 r6, 0x744455e5;
118imm32 r7, 0x8666777e;
119R0.L = R4.L - R0.L (NS);
120R1.L = R4.L - R1.H (NS);
121R2.L = R4.H - R2.L (NS);
122R3.L = R4.H - R3.H (NS);
123R4.L = R4.L - R4.L (NS);
124R5.L = R4.L - R5.H (NS);
125R6.L = R4.H - R6.L (NS);
126R7.L = R4.H - R7.H (NS);
127CHECKREG r4, 0x56780000;
128CHECKREG r5, 0x67899877;
129CHECKREG r6, 0x74440093;
130CHECKREG r7, 0x8666D012;
131CHECKREG r4, 0x56780000;
132CHECKREG r5, 0x67899877;
133CHECKREG r6, 0x74440093;
134CHECKREG r7, 0x8666D012;
135
136imm32 r0, 0xdd678911;
137imm32 r1, 0xd789ab1d;
138imm32 r2, 0x3d445515;
139imm32 r3, 0x46d67717;
140imm32 r4, 0x567d891b;
141imm32 r5, 0x6789db1d;
142imm32 r6, 0x74445d15;
143imm32 r7, 0x866677d7;
144R0.L = R5.L - R0.L (NS);
145R1.L = R5.L - R1.H (NS);
146R2.L = R5.H - R2.L (NS);
147R3.L = R5.H - R3.H (NS);
148R4.L = R5.L - R4.L (NS);
149R5.L = R5.L - R5.H (NS);
150R6.L = R5.H - R6.L (NS);
151R7.L = R5.H - R7.H (NS);
152CHECKREG r4, 0x567D5202;
153CHECKREG r5, 0x67897394;
154CHECKREG r6, 0x74440A74;
155CHECKREG r7, 0x8666E123;
156CHECKREG r4, 0x567D5202;
157CHECKREG r5, 0x67897394;
158CHECKREG r6, 0x74440A74;
159CHECKREG r7, 0x8666E123;
160
161imm32 r0, 0x85678911;
162imm32 r1, 0x2789ab1d;
163imm32 r2, 0x38445515;
164imm32 r3, 0x46667717;
165imm32 r4, 0x568a891b;
166imm32 r5, 0x67a9ab1d;
167imm32 r6, 0x744a5515;
168imm32 r7, 0x8666aa77;
169R0.L = R6.L - R0.L (NS);
170R1.L = R6.L - R1.H (NS);
171R2.L = R6.H - R2.L (NS);
172R3.L = R6.H - R3.H (NS);
173R4.L = R6.L - R4.L (NS);
174R5.L = R6.L - R5.H (NS);
175R6.L = R6.H - R6.L (NS);
176R7.L = R6.H - R7.H (NS);
177CHECKREG r4, 0x568ACBFA;
178CHECKREG r5, 0x67A9ED6C;
179CHECKREG r6, 0x744A1F35;
180CHECKREG r7, 0x8666EDE4;
181CHECKREG r4, 0x568ACBFA;
182CHECKREG r5, 0x67A9ED6C;
183CHECKREG r6, 0x744A1F35;
184CHECKREG r7, 0x8666EDE4;
185
186imm32 r0, 0x35678911;
187imm32 r1, 0x2389ab1d;
188imm32 r2, 0x34845515;
189imm32 r3, 0x466a7717;
190imm32 r4, 0x5678a91b;
191imm32 r5, 0x6789ab1d;
192imm32 r6, 0x74445b15;
193imm32 r7, 0x866677b7;
194R0.L = R7.L - R0.L (NS);
195R1.L = R7.L - R1.H (NS);
196R2.L = R7.H - R2.L (NS);
197R3.L = R7.H - R3.H (NS);
198R4.L = R7.L - R4.L (NS);
199R5.L = R7.L - R5.H (NS);
200R6.L = R7.H - R6.L (NS);
201R7.L = R7.H - R7.H (NS);
202CHECKREG r4, 0x5678CE9C;
203CHECKREG r5, 0x6789102E;
204CHECKREG r6, 0x74442B51;
205CHECKREG r7, 0x86660000;
206CHECKREG r4, 0x5678CE9C;
207CHECKREG r5, 0x6789102E;
208CHECKREG r6, 0x74442B51;
209CHECKREG r7, 0x86660000;
210
211imm32 r0, 0x15678911;
212imm32 r1, 0x2789ab1d;
213imm32 r2, 0x34445515;
214imm32 r3, 0x46667717;
215imm32 r4, 0x5678891b;
216imm32 r5, 0x6789ab1d;
217imm32 r6, 0x74445515;
218imm32 r7, 0x86667777;
219R6.L = R2.L - R3.L (S);
220R1.L = R4.L - R5.H (S);
221R5.L = R7.H - R2.L (S);
222R3.L = R0.H - R0.H (S);
223R0.L = R3.L - R4.L (S);
224R2.L = R5.L - R7.H (S);
225R7.L = R6.H - R7.L (S);
226R4.L = R1.H - R6.H (S);
227CHECKREG r4, 0x5678B345;
228CHECKREG r5, 0x67898000;
229CHECKREG r6, 0x7444DDFE;
230CHECKREG r7, 0x8666FCCD;
231CHECKREG r4, 0x5678B345;
232CHECKREG r5, 0x67898000;
233CHECKREG r6, 0x7444DDFE;
234CHECKREG r7, 0x8666FCCD;
235
236imm32 r0, 0x1d678911;
237imm32 r1, 0x27d9ab1d;
238imm32 r2, 0x34445515;
239imm32 r3, 0x466d7717;
240imm32 r4, 0x5678891b;
241imm32 r5, 0x6789dd1d;
242imm32 r6, 0x74445515;
243imm32 r7, 0x866677d7;
244R3.L = R4.L - R0.L (S);
245R1.L = R6.L - R3.H (S);
246R4.L = R3.H - R2.L (S);
247R6.L = R7.H - R1.H (S);
248R2.L = R5.L - R4.L (S);
249R7.L = R2.L - R7.H (S);
250R0.L = R1.H - R6.L (S);
251R5.L = R0.H - R5.H (S);
252CHECKREG r4, 0x5678F158;
253CHECKREG r5, 0x6789B5DE;
254CHECKREG r6, 0x74448000;
255CHECKREG r7, 0x8666655F;
256CHECKREG r4, 0x5678F158;
257CHECKREG r5, 0x6789B5DE;
258CHECKREG r6, 0x74448000;
259CHECKREG r7, 0x8666655F;
260
261
262
263pass
264