1*6ca2c52aSchristos//Original:/proj/frio/dv/testcases/core/c_dsp32shift_rot/c_dsp32shift_rot.dsp
2*6ca2c52aSchristos// Spec Reference: dsp32shift rot
3*6ca2c52aSchristos# mach: bfin
4*6ca2c52aSchristos
5*6ca2c52aSchristos.include "testutils.inc"
6*6ca2c52aSchristos	start
7*6ca2c52aSchristos
8*6ca2c52aSchristos
9*6ca2c52aSchristos	R0 = 0;
10*6ca2c52aSchristos	ASTAT = R0;
11*6ca2c52aSchristos
12*6ca2c52aSchristos	imm32 r0, 0x01230001;
13*6ca2c52aSchristos	imm32 r1, 0x12345678;
14*6ca2c52aSchristos	imm32 r2, 0x23456789;
15*6ca2c52aSchristos	imm32 r3, 0x3456789a;
16*6ca2c52aSchristos	imm32 r4, 0x456789ab;
17*6ca2c52aSchristos	imm32 r5, 0x56789abc;
18*6ca2c52aSchristos	imm32 r6, 0x6789abcd;
19*6ca2c52aSchristos	imm32 r7, 0x789abcde;
20*6ca2c52aSchristos	R1 = ROT R0 BY R0.L;
21*6ca2c52aSchristos	R2 = ROT R1 BY R0.L;
22*6ca2c52aSchristos	R3 = ROT R2 BY R0.L;
23*6ca2c52aSchristos	R4 = ROT R3 BY R0.L;
24*6ca2c52aSchristos	R5 = ROT R4 BY R0.L;
25*6ca2c52aSchristos	R6 = ROT R5 BY R0.L;
26*6ca2c52aSchristos	R7 = ROT R6 BY R0.L;
27*6ca2c52aSchristos	R0 = ROT R7 BY R0.L;
28*6ca2c52aSchristos	CHECKREG r1, 0x02460002;
29*6ca2c52aSchristos	CHECKREG r0, 0x23000100;
30*6ca2c52aSchristos	CHECKREG r2, 0x048C0004;
31*6ca2c52aSchristos	CHECKREG r3, 0x09180008;
32*6ca2c52aSchristos	CHECKREG r4, 0x12300010;
33*6ca2c52aSchristos	CHECKREG r5, 0x24600020;
34*6ca2c52aSchristos	CHECKREG r6, 0x48C00040;
35*6ca2c52aSchristos	CHECKREG r7, 0x91800080;
36*6ca2c52aSchristos
37*6ca2c52aSchristos	imm32 r0, 0x01230001;
38*6ca2c52aSchristos	imm32 r1, 0x12345678;
39*6ca2c52aSchristos	imm32 r2, 0x23456789;
40*6ca2c52aSchristos	imm32 r3, 0x3456789a;
41*6ca2c52aSchristos	imm32 r4, 0x456789ab;
42*6ca2c52aSchristos	imm32 r5, 0x56789abc;
43*6ca2c52aSchristos	imm32 r6, 0x6789abcd;
44*6ca2c52aSchristos	imm32 r7, 0x789abcde;
45*6ca2c52aSchristos	R1.L = 15;
46*6ca2c52aSchristos	R2 = ROT R0 BY R1.L;
47*6ca2c52aSchristos	R3 = ROT R1 BY R1.L;
48*6ca2c52aSchristos	R4 = ROT R2 BY R1.L;
49*6ca2c52aSchristos	R5 = ROT R3 BY R1.L;
50*6ca2c52aSchristos	R6 = ROT R4 BY R1.L;
51*6ca2c52aSchristos	R7 = ROT R5 BY R1.L;
52*6ca2c52aSchristos	R0 = ROT R6 BY R1.L;
53*6ca2c52aSchristos	R1 = ROT R7 BY R1.L;
54*6ca2c52aSchristos	CHECKREG r0, 0x2C04C400;
55*6ca2c52aSchristos	CHECKREG r1, 0x5C489000;
56*6ca2c52aSchristos	CHECKREG r2, 0x8000C048;
57*6ca2c52aSchristos	CHECKREG r3, 0x0007C48D;
58*6ca2c52aSchristos	CHECKREG r4, 0x60242000;
59*6ca2c52aSchristos	CHECKREG r5, 0xE2468001;
60*6ca2c52aSchristos	CHECKREG r6, 0x10005809;
61*6ca2c52aSchristos	CHECKREG r7, 0x4000B891;
62*6ca2c52aSchristos
63*6ca2c52aSchristos	imm32 r0, 0x01230002;
64*6ca2c52aSchristos	imm32 r1, 0x12345678;
65*6ca2c52aSchristos	imm32 r2, 0x23456789;
66*6ca2c52aSchristos	imm32 r3, 0x3456789a;
67*6ca2c52aSchristos	imm32 r4, 0x456789ab;
68*6ca2c52aSchristos	imm32 r5, 0x56789abc;
69*6ca2c52aSchristos	imm32 r6, 0x6789abcd;
70*6ca2c52aSchristos	imm32 r7, 0x789abcde;
71*6ca2c52aSchristos	R2 = 16;
72*6ca2c52aSchristos	R3 = ROT R0 BY R2.L;
73*6ca2c52aSchristos	R4 = ROT R1 BY R2.L;
74*6ca2c52aSchristos	R5 = ROT R2 BY R2.L;
75*6ca2c52aSchristos	R6 = ROT R3 BY R2.L;
76*6ca2c52aSchristos	R7 = ROT R4 BY R2.L;
77*6ca2c52aSchristos	R0 = ROT R5 BY R2.L;
78*6ca2c52aSchristos	R1 = ROT R6 BY R2.L;
79*6ca2c52aSchristos	R2 = ROT R7 BY R2.L;
80*6ca2c52aSchristos	CHECKREG r0, 0x00000008;
81*6ca2c52aSchristos	CHECKREG r1, 0x00010048;
82*6ca2c52aSchristos	CHECKREG r2, 0x2B3CC48D;
83*6ca2c52aSchristos	CHECKREG r3, 0x00020091;
84*6ca2c52aSchristos	CHECKREG r4, 0x5678891A;
85*6ca2c52aSchristos	CHECKREG r5, 0x00100000;
86*6ca2c52aSchristos	CHECKREG r6, 0x00910001;
87*6ca2c52aSchristos	CHECKREG r7, 0x891A2B3C;
88*6ca2c52aSchristos
89*6ca2c52aSchristos	imm32 r0, 0x01230003;
90*6ca2c52aSchristos	imm32 r1, 0x12345678;
91*6ca2c52aSchristos	imm32 r2, 0x23456789;
92*6ca2c52aSchristos	imm32 r3, 0x3456789a;
93*6ca2c52aSchristos	imm32 r4, 0x456789ab;
94*6ca2c52aSchristos	imm32 r5, 0x56789abc;
95*6ca2c52aSchristos	imm32 r6, 0x6789abcd;
96*6ca2c52aSchristos	imm32 r7, 0x789abcde;
97*6ca2c52aSchristos	R3.L = 31;
98*6ca2c52aSchristos	R4 = ROT R0 BY R3.L;
99*6ca2c52aSchristos	R5 = ROT R1 BY R3.L;
100*6ca2c52aSchristos	R6 = ROT R2 BY R3.L;
101*6ca2c52aSchristos	R7 = ROT R3 BY R3.L;
102*6ca2c52aSchristos	R0 = ROT R4 BY R3.L;
103*6ca2c52aSchristos	R1 = ROT R5 BY R3.L;
104*6ca2c52aSchristos	R2 = ROT R6 BY R3.L;
105*6ca2c52aSchristos	R3 = ROT R7 BY R3.L;
106*6ca2c52aSchristos	CHECKREG r0, 0x60123000;
107*6ca2c52aSchristos	CHECKREG r1, 0x11234567;
108*6ca2c52aSchristos	CHECKREG r2, 0x62345678;
109*6ca2c52aSchristos	CHECKREG r3, 0xE3456001;
110*6ca2c52aSchristos	CHECKREG r4, 0x8048C000;
111*6ca2c52aSchristos	CHECKREG r5, 0x448D159E;
112*6ca2c52aSchristos	CHECKREG r6, 0x88D159E2;
113*6ca2c52aSchristos	CHECKREG r7, 0x8D158007;
114*6ca2c52aSchristos
115*6ca2c52aSchristos	imm32 r0, 0x01230004;
116*6ca2c52aSchristos	imm32 r1, 0x12345678;
117*6ca2c52aSchristos	imm32 r2, 0x23456789;
118*6ca2c52aSchristos	imm32 r3, 0x3456789a;
119*6ca2c52aSchristos	imm32 r4, 0x456789ab;
120*6ca2c52aSchristos	imm32 r5, 0x56789abc;
121*6ca2c52aSchristos	imm32 r6, 0x6789abcd;
122*6ca2c52aSchristos	imm32 r7, 0x789abcde;
123*6ca2c52aSchristos	R4.L = -1;
124*6ca2c52aSchristos	R0 = ROT R0 BY R4.L;
125*6ca2c52aSchristos	R1 = ROT R1 BY R4.L;
126*6ca2c52aSchristos	R2 = ROT R2 BY R4.L;
127*6ca2c52aSchristos	R3 = ROT R3 BY R4.L;
128*6ca2c52aSchristos	R4 = ROT R4 BY R4.L;
129*6ca2c52aSchristos	R5 = ROT R5 BY R4.L;
130*6ca2c52aSchristos	R6 = ROT R6 BY R4.L;
131*6ca2c52aSchristos	R7 = ROT R7 BY R4.L;
132*6ca2c52aSchristos	CHECKREG r0, 0x80918002;
133*6ca2c52aSchristos	CHECKREG r1, 0x091A2B3C;
134*6ca2c52aSchristos	CHECKREG r2, 0x11A2B3C4;
135*6ca2c52aSchristos	CHECKREG r3, 0x9A2B3C4D;
136*6ca2c52aSchristos	CHECKREG r4, 0x22B3FFFF;
137*6ca2c52aSchristos	CHECKREG r5, 0xAB3C4D5E;
138*6ca2c52aSchristos	CHECKREG r6, 0x33C4D5E6;
139*6ca2c52aSchristos	CHECKREG r7, 0xBC4D5E6F;
140*6ca2c52aSchristos
141*6ca2c52aSchristos	imm32 r0, 0x01230005;
142*6ca2c52aSchristos	imm32 r1, 0x12345678;
143*6ca2c52aSchristos	imm32 r2, 0x23456789;
144*6ca2c52aSchristos	imm32 r3, 0x3456789a;
145*6ca2c52aSchristos	imm32 r4, 0x456789ab;
146*6ca2c52aSchristos	imm32 r5, 0x56789abc;
147*6ca2c52aSchristos	imm32 r6, 0x6789abcd;
148*6ca2c52aSchristos	imm32 r7, 0x789abcde;
149*6ca2c52aSchristos	R5.L = -15;
150*6ca2c52aSchristos	R6 = ROT R0 BY R5.L;
151*6ca2c52aSchristos	R7 = ROT R1 BY R5.L;
152*6ca2c52aSchristos	R0 = ROT R2 BY R5.L;
153*6ca2c52aSchristos	R1 = ROT R3 BY R5.L;
154*6ca2c52aSchristos	R2 = ROT R4 BY R5.L;
155*6ca2c52aSchristos	R3 = ROT R5 BY R5.L;
156*6ca2c52aSchristos	R4 = ROT R6 BY R5.L;
157*6ca2c52aSchristos	R5 = ROT R7 BY R5.L;
158*6ca2c52aSchristos	CHECKREG r0, 0x9E26468A;
159*6ca2c52aSchristos	CHECKREG r1, 0xE26A68AC;
160*6ca2c52aSchristos	CHECKREG r2, 0x26AE8ACF;
161*6ca2c52aSchristos	CHECKREG r3, 0xFFC4ACF1;
162*6ca2c52aSchristos	CHECKREG r4, 0x091A0028;
163*6ca2c52aSchristos	CHECKREG r5, 0x91A0B3C0;
164*6ca2c52aSchristos	CHECKREG r6, 0x00140246;
165*6ca2c52aSchristos	CHECKREG r7, 0x59E02468;
166*6ca2c52aSchristos
167*6ca2c52aSchristos	imm32 r0, 0x01230006;
168*6ca2c52aSchristos	imm32 r1, 0x12345678;
169*6ca2c52aSchristos	imm32 r2, 0x23456789;
170*6ca2c52aSchristos	imm32 r3, 0x3456789a;
171*6ca2c52aSchristos	imm32 r4, 0x456789ab;
172*6ca2c52aSchristos	imm32 r5, 0x56789abc;
173*6ca2c52aSchristos	imm32 r6, 0x6789abcd;
174*6ca2c52aSchristos	imm32 r7, 0x789abcde;
175*6ca2c52aSchristos	R6.L = -16;
176*6ca2c52aSchristos	R7 = ROT R0 BY R6.L;
177*6ca2c52aSchristos	R0 = ROT R1 BY R6.L;
178*6ca2c52aSchristos	R1 = ROT R2 BY R6.L;
179*6ca2c52aSchristos	R2 = ROT R3 BY R6.L;
180*6ca2c52aSchristos	R3 = ROT R4 BY R6.L;
181*6ca2c52aSchristos	R4 = ROT R5 BY R6.L;
182*6ca2c52aSchristos	R5 = ROT R6 BY R6.L;
183*6ca2c52aSchristos	R6 = ROT R7 BY R6.L;
184*6ca2c52aSchristos	CHECKREG r0, 0xACF01234;
185*6ca2c52aSchristos	CHECKREG r1, 0xCF122345;
186*6ca2c52aSchristos	CHECKREG r2, 0xF1343456;
187*6ca2c52aSchristos	CHECKREG r3, 0x13564567;
188*6ca2c52aSchristos	CHECKREG r4, 0x35795678;
189*6ca2c52aSchristos	CHECKREG r5, 0xFFE16789;
190*6ca2c52aSchristos	CHECKREG r6, 0x0247000C;
191*6ca2c52aSchristos	CHECKREG r7, 0x000C0123;
192*6ca2c52aSchristos
193*6ca2c52aSchristos	imm32 r0, 0x01230007;
194*6ca2c52aSchristos	imm32 r1, 0x12345678;
195*6ca2c52aSchristos	imm32 r2, 0x23456789;
196*6ca2c52aSchristos	imm32 r3, 0x3456789a;
197*6ca2c52aSchristos	imm32 r4, 0x456789ab;
198*6ca2c52aSchristos	imm32 r5, 0x56789abc;
199*6ca2c52aSchristos	imm32 r6, 0x6789abcd;
200*6ca2c52aSchristos	imm32 r7, 0x789abcde;
201*6ca2c52aSchristos	R7.L = -27;
202*6ca2c52aSchristos	R0 = ROT R0 BY R7.L;
203*6ca2c52aSchristos	R1 = ROT R1 BY R7.L;
204*6ca2c52aSchristos	R2 = ROT R2 BY R7.L;
205*6ca2c52aSchristos	R3 = ROT R3 BY R7.L;
206*6ca2c52aSchristos	R4 = ROT R4 BY R7.L;
207*6ca2c52aSchristos	R5 = ROT R5 BY R7.L;
208*6ca2c52aSchristos	R6 = ROT R6 BY R7.L;
209*6ca2c52aSchristos	R7 = ROT R7 BY R7.L;
210*6ca2c52aSchristos	CHECKREG r0, 0x48C001C0;
211*6ca2c52aSchristos	CHECKREG r1, 0x8D159E02;
212*6ca2c52aSchristos	CHECKREG r2, 0xD159E244;
213*6ca2c52aSchristos	CHECKREG r3, 0x159E2686;
214*6ca2c52aSchristos	CHECKREG r4, 0x59E26AE8;
215*6ca2c52aSchristos	CHECKREG r5, 0x9E26AF2A;
216*6ca2c52aSchristos	CHECKREG r6, 0xE26AF36C;
217*6ca2c52aSchristos	CHECKREG r7, 0x26BFF96F;
218*6ca2c52aSchristos
219*6ca2c52aSchristos	imm32 r0, 0x01230008;
220*6ca2c52aSchristos	imm32 r1, 0x12345678;
221*6ca2c52aSchristos	imm32 r2, 0x23456789;
222*6ca2c52aSchristos	imm32 r3, 0x3456789a;
223*6ca2c52aSchristos	imm32 r4, 0x456789ab;
224*6ca2c52aSchristos	imm32 r5, 0x56789abc;
225*6ca2c52aSchristos	imm32 r6, 0x6789abcd;
226*6ca2c52aSchristos	imm32 r7, 0x789abcde;
227*6ca2c52aSchristos	R0.L = 7;
228*6ca2c52aSchristos//r0  = rot   (r0 by rl0);
229*6ca2c52aSchristos	R1 = ROT R1 BY R0.L;
230*6ca2c52aSchristos	R2 = ROT R2 BY R0.L;
231*6ca2c52aSchristos	R3 = ROT R3 BY R0.L;
232*6ca2c52aSchristos	R4 = ROT R4 BY R0.L;
233*6ca2c52aSchristos	R5 = ROT R5 BY R0.L;
234*6ca2c52aSchristos	R6 = ROT R6 BY R0.L;
235*6ca2c52aSchristos	R7 = ROT R7 BY R0.L;
236*6ca2c52aSchristos	CHECKREG r0, 0x01230007;
237*6ca2c52aSchristos	CHECKREG r1, 0x1A2B3C04;
238*6ca2c52aSchristos	CHECKREG r2, 0xA2B3C4C8;
239*6ca2c52aSchristos	CHECKREG r3, 0x2B3C4D4D;
240*6ca2c52aSchristos	CHECKREG r4, 0xB3C4D591;
241*6ca2c52aSchristos	CHECKREG r5, 0x3C4D5E15;
242*6ca2c52aSchristos	CHECKREG r6, 0xC4D5E6D9;
243*6ca2c52aSchristos	CHECKREG r7, 0x4D5E6F5E;
244*6ca2c52aSchristos
245*6ca2c52aSchristos	imm32 r0, 0x01230009;
246*6ca2c52aSchristos	imm32 r1, 0x12345678;
247*6ca2c52aSchristos	imm32 r2, 0x23456789;
248*6ca2c52aSchristos	imm32 r3, 0x3456789a;
249*6ca2c52aSchristos	imm32 r4, 0x456789ab;
250*6ca2c52aSchristos	imm32 r5, 0x56789abc;
251*6ca2c52aSchristos	imm32 r6, 0x6789abcd;
252*6ca2c52aSchristos	imm32 r7, 0x789abcde;
253*6ca2c52aSchristos	R1.L = 16;
254*6ca2c52aSchristos	R0 = ROT R0 BY R1.L;
255*6ca2c52aSchristos//r1  = rot   (r1 by rl1);
256*6ca2c52aSchristos	R2 = ROT R2 BY R1.L;
257*6ca2c52aSchristos	R3 = ROT R3 BY R1.L;
258*6ca2c52aSchristos	R4 = ROT R4 BY R1.L;
259*6ca2c52aSchristos	R5 = ROT R5 BY R1.L;
260*6ca2c52aSchristos	R6 = ROT R6 BY R1.L;
261*6ca2c52aSchristos	R7 = ROT R7 BY R1.L;
262*6ca2c52aSchristos	CHECKREG r0, 0x00090091;
263*6ca2c52aSchristos	CHECKREG r1, 0x12340010;
264*6ca2c52aSchristos	CHECKREG r2, 0x678991A2;
265*6ca2c52aSchristos	CHECKREG r3, 0x789A9A2B;
266*6ca2c52aSchristos	CHECKREG r4, 0x89AB22B3;
267*6ca2c52aSchristos	CHECKREG r5, 0x9ABCAB3C;
268*6ca2c52aSchristos	CHECKREG r6, 0xABCD33C4;
269*6ca2c52aSchristos	CHECKREG r7, 0xBCDEBC4D;
270*6ca2c52aSchristos
271*6ca2c52aSchristos	imm32 r0, 0x0123000a;
272*6ca2c52aSchristos	imm32 r1, 0x12345678;
273*6ca2c52aSchristos	imm32 r2, 0x23456789;
274*6ca2c52aSchristos	imm32 r3, 0x3456789a;
275*6ca2c52aSchristos	imm32 r4, 0x456789ab;
276*6ca2c52aSchristos	imm32 r5, 0x56789abc;
277*6ca2c52aSchristos	imm32 r6, 0x6789abcd;
278*6ca2c52aSchristos	imm32 r7, 0x789abcde;
279*6ca2c52aSchristos	R2.L = 30;
280*6ca2c52aSchristos	R0 = ROT R0 BY R2.L;
281*6ca2c52aSchristos	R1 = ROT R1 BY R2.L;
282*6ca2c52aSchristos//r2  = rot   (r2 by rl2);
283*6ca2c52aSchristos	R3 = ROT R3 BY R2.L;
284*6ca2c52aSchristos	R4 = ROT R4 BY R2.L;
285*6ca2c52aSchristos	R5 = ROT R5 BY R2.L;
286*6ca2c52aSchristos	R6 = ROT R6 BY R2.L;
287*6ca2c52aSchristos	R7 = ROT R7 BY R2.L;
288*6ca2c52aSchristos	CHECKREG r0, 0x80246001;
289*6ca2c52aSchristos	CHECKREG r1, 0x02468ACF;
290*6ca2c52aSchristos	CHECKREG r2, 0x2345001E;
291*6ca2c52aSchristos	CHECKREG r3, 0x868ACF13;
292*6ca2c52aSchristos	CHECKREG r4, 0xC8ACF135;
293*6ca2c52aSchristos	CHECKREG r5, 0x0ACF1357;
294*6ca2c52aSchristos	CHECKREG r6, 0x6CF13579;
295*6ca2c52aSchristos	CHECKREG r7, 0xAF13579B;
296*6ca2c52aSchristos
297*6ca2c52aSchristos	imm32 r0, 0x0123000b;
298*6ca2c52aSchristos	imm32 r1, 0x12345678;
299*6ca2c52aSchristos	imm32 r2, 0x23456789;
300*6ca2c52aSchristos	imm32 r3, 0x3456789a;
301*6ca2c52aSchristos	imm32 r4, 0x456789ab;
302*6ca2c52aSchristos	imm32 r5, 0x56789abc;
303*6ca2c52aSchristos	imm32 r6, 0x6789abcd;
304*6ca2c52aSchristos	imm32 r7, 0x789abcde;
305*6ca2c52aSchristos	R3.L = 31;
306*6ca2c52aSchristos	R0 = ROT R0 BY R3.L;
307*6ca2c52aSchristos	R1 = ROT R1 BY R3.L;
308*6ca2c52aSchristos	R2 = ROT R2 BY R3.L;
309*6ca2c52aSchristos//r3  = rot   (r3 by rl3);
310*6ca2c52aSchristos	R4 = ROT R4 BY R3.L;
311*6ca2c52aSchristos	R5 = ROT R5 BY R3.L;
312*6ca2c52aSchristos	R6 = ROT R6 BY R3.L;
313*6ca2c52aSchristos	R7 = ROT R7 BY R3.L;
314*6ca2c52aSchristos	CHECKREG r0, 0xC048C002;
315*6ca2c52aSchristos	CHECKREG r1, 0x448D159E;
316*6ca2c52aSchristos	CHECKREG r2, 0x88D159E2;
317*6ca2c52aSchristos	CHECKREG r3, 0x3456001F;
318*6ca2c52aSchristos	CHECKREG r4, 0x9159E26A;
319*6ca2c52aSchristos	CHECKREG r5, 0x559E26AF;
320*6ca2c52aSchristos	CHECKREG r6, 0x99E26AF3;
321*6ca2c52aSchristos	CHECKREG r7, 0x1E26AF37;
322*6ca2c52aSchristos
323*6ca2c52aSchristos	imm32 r0, 0x0123000c;
324*6ca2c52aSchristos	imm32 r1, 0x12345678;
325*6ca2c52aSchristos	imm32 r2, 0x23456789;
326*6ca2c52aSchristos	imm32 r3, 0x3456789a;
327*6ca2c52aSchristos	imm32 r4, 0x456789ab;
328*6ca2c52aSchristos	imm32 r5, 0x56789abc;
329*6ca2c52aSchristos	imm32 r6, 0x6789abcd;
330*6ca2c52aSchristos	imm32 r7, 0x789abcde;
331*6ca2c52aSchristos	R4.L = -2;
332*6ca2c52aSchristos	R0 = ROT R0 BY R4.L;
333*6ca2c52aSchristos	R1 = ROT R1 BY R4.L;
334*6ca2c52aSchristos	R2 = ROT R2 BY R4.L;
335*6ca2c52aSchristos	R3 = ROT R3 BY R4.L;
336*6ca2c52aSchristos//r4  = rot   (r4 by rl4);
337*6ca2c52aSchristos	R5 = ROT R5 BY R4.L;
338*6ca2c52aSchristos	R6 = ROT R6 BY R4.L;
339*6ca2c52aSchristos	R7 = ROT R7 BY R4.L;
340*6ca2c52aSchristos	CHECKREG r0, 0x4048C003;
341*6ca2c52aSchristos	CHECKREG r1, 0x048D159E;
342*6ca2c52aSchristos	CHECKREG r2, 0x88D159E2;
343*6ca2c52aSchristos	CHECKREG r3, 0x0D159E26;
344*6ca2c52aSchristos	CHECKREG r4, 0x4567FFFE;
345*6ca2c52aSchristos	CHECKREG r5, 0x559E26AF;
346*6ca2c52aSchristos	CHECKREG r6, 0x99E26AF3;
347*6ca2c52aSchristos	CHECKREG r7, 0x1E26AF37;
348*6ca2c52aSchristos
349*6ca2c52aSchristos	imm32 r0, 0x0123000d;
350*6ca2c52aSchristos	imm32 r1, 0x12345678;
351*6ca2c52aSchristos	imm32 r2, 0x23456789;
352*6ca2c52aSchristos	imm32 r3, 0x3456789a;
353*6ca2c52aSchristos	imm32 r4, 0x456789ab;
354*6ca2c52aSchristos	imm32 r5, 0x56789abc;
355*6ca2c52aSchristos	imm32 r6, 0x6789abcd;
356*6ca2c52aSchristos	imm32 r7, 0x789abcde;
357*6ca2c52aSchristos	R5.L = -17;
358*6ca2c52aSchristos	R0 = ROT R0 BY R5.L;
359*6ca2c52aSchristos	R1 = ROT R1 BY R5.L;
360*6ca2c52aSchristos	R2 = ROT R2 BY R5.L;
361*6ca2c52aSchristos	R3 = ROT R3 BY R5.L;
362*6ca2c52aSchristos	R4 = ROT R4 BY R5.L;
363*6ca2c52aSchristos//r5  = rot   (r5 by rl5);
364*6ca2c52aSchristos	R6 = ROT R6 BY R5.L;
365*6ca2c52aSchristos	R7 = ROT R7 BY R5.L;
366*6ca2c52aSchristos	CHECKREG r0, 0x000D8091;
367*6ca2c52aSchristos	CHECKREG r1, 0x5678891A;
368*6ca2c52aSchristos	CHECKREG r2, 0x678911A2;
369*6ca2c52aSchristos	CHECKREG r3, 0x789A9A2B;
370*6ca2c52aSchristos	CHECKREG r4, 0x89AB22B3;
371*6ca2c52aSchristos	CHECKREG r5, 0x5678FFEF;
372*6ca2c52aSchristos	CHECKREG r6, 0xABCDB3C4;
373*6ca2c52aSchristos	CHECKREG r7, 0xBCDEBC4D;
374*6ca2c52aSchristos
375*6ca2c52aSchristos	imm32 r0, 0x0123000e;
376*6ca2c52aSchristos	imm32 r1, 0x12345678;
377*6ca2c52aSchristos	imm32 r2, 0x23456789;
378*6ca2c52aSchristos	imm32 r3, 0x3456789a;
379*6ca2c52aSchristos	imm32 r4, 0x456789ab;
380*6ca2c52aSchristos	imm32 r5, 0x56789abc;
381*6ca2c52aSchristos	imm32 r6, 0x6789abcd;
382*6ca2c52aSchristos	imm32 r7, 0x789abcde;
383*6ca2c52aSchristos	R6.L = -30;
384*6ca2c52aSchristos	R0 = ROT R0 BY R6.L;
385*6ca2c52aSchristos	R1 = ROT R1 BY R6.L;
386*6ca2c52aSchristos	R2 = ROT R2 BY R6.L;
387*6ca2c52aSchristos	R3 = ROT R3 BY R6.L;
388*6ca2c52aSchristos	R4 = ROT R4 BY R6.L;
389*6ca2c52aSchristos	R5 = ROT R5 BY R6.L;
390*6ca2c52aSchristos//r6  = rot   (r6 by rl6);
391*6ca2c52aSchristos	R7 = ROT R7 BY R6.L;
392*6ca2c52aSchristos	CHECKREG r0, 0x09180070;
393*6ca2c52aSchristos	CHECKREG r1, 0x91A2B3C0;
394*6ca2c52aSchristos	CHECKREG r2, 0x1A2B3C48;
395*6ca2c52aSchristos	CHECKREG r3, 0xA2B3C4D4;
396*6ca2c52aSchristos	CHECKREG r4, 0x2B3C4D5D;
397*6ca2c52aSchristos	CHECKREG r5, 0xB3C4D5E1;
398*6ca2c52aSchristos	CHECKREG r6, 0x6789FFE2;
399*6ca2c52aSchristos	CHECKREG r7, 0xC4D5E6F1;
400*6ca2c52aSchristos
401*6ca2c52aSchristos	imm32 r0, 0x0123000f;
402*6ca2c52aSchristos	imm32 r1, 0x12345678;
403*6ca2c52aSchristos	imm32 r2, 0x23456789;
404*6ca2c52aSchristos	imm32 r3, 0x3456789a;
405*6ca2c52aSchristos	imm32 r4, 0x456789ab;
406*6ca2c52aSchristos	imm32 r5, 0x56789abc;
407*6ca2c52aSchristos	imm32 r6, 0x6789abcd;
408*6ca2c52aSchristos	imm32 r7, 0x789abcde;
409*6ca2c52aSchristos	R7.L = -31;
410*6ca2c52aSchristos	R0 = ROT R0 BY R7.L;
411*6ca2c52aSchristos	R1 = ROT R1 BY R7.L;
412*6ca2c52aSchristos	R2 = ROT R2 BY R7.L;
413*6ca2c52aSchristos	R3 = ROT R3 BY R7.L;
414*6ca2c52aSchristos	R4 = ROT R4 BY R7.L;
415*6ca2c52aSchristos	R5 = ROT R5 BY R7.L;
416*6ca2c52aSchristos	R6 = ROT R6 BY R7.L;
417*6ca2c52aSchristos	R7 = ROT R7 BY R7.L;
418*6ca2c52aSchristos	CHECKREG r0, 0x048C003E;
419*6ca2c52aSchristos	CHECKREG r1, 0x48D159E0;
420*6ca2c52aSchristos	CHECKREG r2, 0x8D159E24;
421*6ca2c52aSchristos	CHECKREG r3, 0xD159E268;
422*6ca2c52aSchristos	CHECKREG r4, 0x159E26AC;
423*6ca2c52aSchristos	CHECKREG r5, 0x59E26AF2;
424*6ca2c52aSchristos	CHECKREG r6, 0x9E26AF36;
425*6ca2c52aSchristos	CHECKREG r7, 0xE26BFF86;
426*6ca2c52aSchristos
427*6ca2c52aSchristos	pass
428