xref: /netbsd-src/external/gpl3/gdb/dist/sim/testsuite/bfin/c_logi2op_log_r_shft.s (revision 4b169a6ba595ae283ca507b26b15fdff40495b1c)
1//Original:/testcases/core/c_logi2op_log_r_shft/c_logi2op_log_r_shft.dsp
2// Spec Reference: Logi2op >>=
3# mach: bfin
4
5.include "testutils.inc"
6	start
7
8
9
10
11// Logical >>= : negative data
12// bit 0-7
13imm32 r0, 0x81111111;
14imm32 r1, 0x81111111;
15imm32 r2, 0x81111111;
16imm32 r3, 0x81111111;
17imm32 r4, 0x81111111;
18imm32 r5, 0x81111111;
19imm32 r6, 0x81111111;
20imm32 r7, 0x81111111;
21R0 >>= 0; /* r0 = 0x81111111 */
22R1 >>= 1; /* r1 = 0x40888888 */
23R2 >>= 2; /* r2 = 0x20444444 */
24R3 >>= 3; /* r3 = 0x10222222 */
25R4 >>= 4; /* r4 = 0x08111111 */
26R5 >>= 5; /* r5 = 0x04088888 */
27R6 >>= 6; /* r6 = 0x02044444 */
28R7 >>= 7; /* r7 = 0x01022222 */
29CHECKREG r0, 0x81111111;
30CHECKREG r1, 0x40888888;
31CHECKREG r2, 0x20444444;
32CHECKREG r3, 0x10222222;
33CHECKREG r4, 0x08111111;
34CHECKREG r5, 0x04088888;
35CHECKREG r6, 0x02044444;
36CHECKREG r7, 0x01022222;
37
38// bit 8-15
39imm32 r0, 0x82222222;
40imm32 r1, 0x82222222;
41imm32 r2, 0x82222222;
42imm32 r3, 0x82222222;
43imm32 r4, 0x82222222;
44imm32 r5, 0x82222222;
45imm32 r6, 0x82222222;
46imm32 r7, 0x82222222;
47R0 >>= 8; /* r0 = 0x00822222 */
48R1 >>= 9; /* r1 = 0x00411111 */
49R2 >>= 10; /* r2 = 0x00208888 */
50R3 >>= 11; /* r3 = 0x00104444 */
51R4 >>= 12; /* r4 = 0x00082222 */
52R5 >>= 13; /* r5 = 0x00041111 */
53R6 >>= 14; /* r6 = 0x00020888 */
54R7 >>= 15; /* r7 = 0x00010444 */
55CHECKREG r0, 0x00822222;
56CHECKREG r1, 0x00411111;
57CHECKREG r2, 0x00208888;
58CHECKREG r3, 0x00104444;
59CHECKREG r4, 0x00082222;
60CHECKREG r5, 0x00041111;
61CHECKREG r6, 0x00020888;
62CHECKREG r7, 0x00010444;
63
64// bit 16-23
65imm32 r0, 0x83333333;
66imm32 r1, 0x83333333;
67imm32 r2, 0x83333333;
68imm32 r3, 0x83333333;
69imm32 r4, 0x83333333;
70imm32 r5, 0x83333333;
71imm32 r6, 0x83333333;
72imm32 r7, 0x83333333;
73R0 >>= 16; /* r0 = 0x00008333 */
74R1 >>= 17; /* r1 = 0x00004199 */
75R2 >>= 18; /* r2 = 0x000020CC */
76R3 >>= 19; /* r3 = 0x00001066 */
77R4 >>= 20; /* r4 = 0x00000833 */
78R5 >>= 21; /* r5 = 0x00000419 */
79R6 >>= 22; /* r6 = 0x0000020C */
80R7 >>= 23; /* r7 = 0x00000106 */
81CHECKREG r0, 0x00008333;
82CHECKREG r1, 0x00004199;
83CHECKREG r2, 0x000020CC;
84CHECKREG r3, 0x00001066;
85CHECKREG r4, 0x00000833;
86CHECKREG r5, 0x00000419;
87CHECKREG r6, 0x0000020C;
88CHECKREG r7, 0x00000106;
89
90// bit 24-31
91imm32 r0, 0x84444444;
92imm32 r1, 0x84444444;
93imm32 r2, 0x84444444;
94imm32 r3, 0x84444444;
95imm32 r4, 0x84444444;
96imm32 r5, 0x84444444;
97imm32 r6, 0x84444444;
98imm32 r7, 0x84444444;
99R0 >>= 24; /* r0 = 0x00000084 */
100R1 >>= 25; /* r1 = 0x00000042 */
101R2 >>= 26; /* r2 = 0x00000021 */
102R3 >>= 27; /* r3 = 0x00000010 */
103R4 >>= 28; /* r4 = 0x00000008 */
104R5 >>= 29; /* r5 = 0x00000004 */
105R6 >>= 30; /* r6 = 0x00000002 */
106R7 >>= 31; /* r7 = 0x00000001 */
107CHECKREG r0, 0x00000084;
108CHECKREG r1, 0x00000042;
109CHECKREG r2, 0x00000021;
110CHECKREG r3, 0x00000010;
111CHECKREG r4, 0x00000008;
112CHECKREG r5, 0x00000004;
113CHECKREG r6, 0x00000002;
114CHECKREG r7, 0x00000001;
115
116// Arithmetic >>= : positive data
117// bit 0-7
118imm32 r0, 0x41111111;
119imm32 r1, 0x41111111;
120imm32 r2, 0x41111111;
121imm32 r3, 0x41111111;
122imm32 r4, 0x41111111;
123imm32 r5, 0x41111111;
124imm32 r6, 0x41111111;
125imm32 r7, 0x41111111;
126R0 >>= 0; /* r0 = 0x41111111 */
127R1 >>= 1; /* r1 = 0x20888888 */
128R2 >>= 2; /* r2 = 0x10444444 */
129R3 >>= 3; /* r3 = 0x08222222 */
130R4 >>= 4; /* r4 = 0x04111111 */
131R5 >>= 5; /* r5 = 0x02088888 */
132R6 >>= 6; /* r6 = 0x01044444 */
133R7 >>= 7; /* r7 = 0x00822222 */
134CHECKREG r0, 0x41111111;
135CHECKREG r1, 0x20888888;
136CHECKREG r2, 0x10444444;
137CHECKREG r3, 0x08222222;
138CHECKREG r4, 0x04111111;
139CHECKREG r5, 0x02088888;
140CHECKREG r6, 0x01044444;
141CHECKREG r7, 0x00822222;
142
143// bit 8-15
144imm32 r0, 0x42222222;
145imm32 r1, 0x42222222;
146imm32 r2, 0x42222222;
147imm32 r3, 0x42222222;
148imm32 r4, 0x42222222;
149imm32 r5, 0x42222222;
150imm32 r6, 0x42222222;
151imm32 r7, 0x42222222;
152R0 >>= 8; /* r0 = 0x00422222 */
153R1 >>= 9; /* r1 = 0x00211111 */
154R2 >>= 10; /* r2 = 0x00108888 */
155R3 >>= 11; /* r3 = 0x00084444 */
156R4 >>= 12; /* r4 = 0x00042222 */
157R5 >>= 13; /* r5 = 0x00021111 */
158R6 >>= 14; /* r6 = 0x00010888 */
159R7 >>= 15; /* r7 = 0x00008444 */
160CHECKREG r0, 0x00422222;
161CHECKREG r1, 0x00211111;
162CHECKREG r2, 0x00108888;
163CHECKREG r3, 0x00084444;
164CHECKREG r4, 0x00042222;
165CHECKREG r5, 0x00021111;
166CHECKREG r6, 0x00010888;
167CHECKREG r7, 0x00008444;
168
169// bit 16-23
170imm32 r0, 0x43333333;
171imm32 r1, 0x43333333;
172imm32 r2, 0x43333333;
173imm32 r3, 0x43333333;
174imm32 r4, 0x43333333;
175imm32 r5, 0x43333333;
176imm32 r6, 0x43333333;
177imm32 r7, 0x43333333;
178R0 >>= 16; /* r0 = 0x00004333 */
179R1 >>= 17; /* r1 = 0x00002199 */
180R2 >>= 18; /* r2 = 0x000010CC */
181R3 >>= 19; /* r3 = 0x00000866 */
182R4 >>= 20; /* r4 = 0x00000433 */
183R5 >>= 21; /* r5 = 0x00000219 */
184R6 >>= 22; /* r6 = 0x0000010C */
185R7 >>= 23; /* r7 = 0x00000086 */
186CHECKREG r0, 0x00004333;
187CHECKREG r1, 0x00002199;
188CHECKREG r2, 0x000010CC;
189CHECKREG r3, 0x00000866;
190CHECKREG r4, 0x00000433;
191CHECKREG r5, 0x00000219;
192CHECKREG r6, 0x0000010C;
193CHECKREG r7, 0x00000086;
194
195// bit 24-31
196imm32 r0, 0x44444444;
197imm32 r1, 0x44444444;
198imm32 r2, 0x44444444;
199imm32 r3, 0x44444444;
200imm32 r4, 0x44444444;
201imm32 r5, 0x44444444;
202imm32 r6, 0x44444444;
203imm32 r7, 0x44444444;
204R0 >>= 24; /* r0 = 0x00000044 */
205R1 >>= 25; /* r1 = 0x00000022 */
206R2 >>= 26; /* r2 = 0x00000011 */
207R3 >>= 27; /* r3 = 0x00000008 */
208R4 >>= 28; /* r4 = 0x00000004 */
209R5 >>= 29; /* r5 = 0x00000002 */
210R6 >>= 30; /* r6 = 0x00000001 */
211R7 >>= 31; /* r7 = 0x00000000 */
212CHECKREG r0, 0x00000044;
213CHECKREG r1, 0x00000022;
214CHECKREG r2, 0x00000011;
215CHECKREG r3, 0x00000008;
216CHECKREG r4, 0x00000004;
217CHECKREG r5, 0x00000002;
218CHECKREG r6, 0x00000001;
219CHECKREG r7, 0x00000000;
220
221
222pass
223