xref: /openbmc/qemu/tests/tcg/cris/bare/check_lsr.s (revision f0984d40)
1# mach: crisv0 crisv3 crisv8 crisv10 crisv32
2# output: ffffffff\n1\n1\n1ffff\n5a67f\n1\n0\n0\n3699fc67\nffffffff\n1\n1\n1ffff\n5a67f\nda670000\nda670000\nda670000\nda673c67\nffffffff\nffff7fff\n1\nffff0000\nffff0001\n5a67000f\nda67f100\nda67f100\nda67f100\nda67f127\nffffffff\nffffff7f\n1\nffffff00\nffffff00\nffffff01\n5a67f100\n5a67f109\n
3
4 .include "testutils.inc"
5 start
6 moveq -1,r3
7 lsrq 0,r3
8 test_move_cc 1 0 0 0
9 checkr3 ffffffff
10
11 moveq 2,r3
12 lsrq 1,r3
13 test_move_cc 0 0 0 0
14 checkr3 1
15
16 moveq -1,r3
17 lsrq 31,r3
18 test_move_cc 0 0 0 0
19 checkr3 1
20
21 moveq -1,r3
22 lsrq 15,r3
23 test_move_cc 0 0 0 0
24 checkr3 1ffff
25
26 move.d 0x5a67f19f,r3
27 lsrq 12,r3
28 test_move_cc 0 0 0 0
29 checkr3 5a67f
30
31 move.d 0xda67f19f,r3
32 move.d 31,r4
33 lsr.d r4,r3
34 test_move_cc 0 0 0 0
35 checkr3 1
36
37 move.d 0xda67f19f,r3
38 move.d 32,r4
39 lsr.d r4,r3
40 test_move_cc 0 1 0 0
41 checkr3 0
42
43 move.d 0xda67f19f,r3
44 move.d 33,r4
45 lsr.d r4,r3
46 test_move_cc 0 1 0 0
47 checkr3 0
48
49 move.d 0xda67f19f,r3
50 move.d 66,r4
51 lsr.d r4,r3
52 test_move_cc 0 0 0 0
53 checkr3 3699fc67
54
55 moveq -1,r3
56 moveq 0,r4
57 lsr.d r4,r3
58 test_move_cc 1 0 0 0
59 checkr3 ffffffff
60
61 moveq 2,r3
62 moveq 1,r4
63 lsr.d r4,r3
64 test_move_cc 0 0 0 0
65 checkr3 1
66
67 moveq -1,r3
68 moveq 31,r4
69 lsr.d r4,r3
70 test_move_cc 0 0 0 0
71 checkr3 1
72
73 moveq -1,r3
74 moveq 15,r4
75 lsr.d r4,r3
76 test_move_cc 0 0 0 0
77 checkr3 1ffff
78
79 move.d 0x5a67f19f,r3
80 moveq 12,r4
81 lsr.d r4,r3
82 test_move_cc 0 0 0 0
83 checkr3 5a67f
84
85 move.d 0xda67f19f,r3
86 move.d 31,r4
87 lsr.w r4,r3
88 test_move_cc 0 1 0 0
89 checkr3 da670000
90
91 move.d 0xda67f19f,r3
92 move.d 32,r4
93 lsr.w r4,r3
94 test_move_cc 0 1 0 0
95 checkr3 da670000
96
97 move.d 0xda67f19f,r3
98 move.d 33,r4
99 lsr.w r4,r3
100 test_move_cc 0 1 0 0
101 checkr3 da670000
102
103 move.d 0xda67f19f,r3
104 move.d 66,r4
105 lsr.w r4,r3
106 test_move_cc 0 0 0 0
107 checkr3 da673c67
108
109 moveq -1,r3
110 moveq 0,r4
111 lsr.w r4,r3
112 test_move_cc 1 0 0 0
113 checkr3 ffffffff
114
115 moveq -1,r3
116 moveq 1,r4
117 lsr.w r4,r3
118 test_move_cc 0 0 0 0
119 checkr3 ffff7fff
120
121 moveq 2,r3
122 moveq 1,r4
123 lsr.w r4,r3
124 test_move_cc 0 0 0 0
125 checkr3 1
126
127;; FIXME: this was wrong. Z should be set.
128 moveq -1,r3
129 moveq 31,r4
130 lsr.w r4,r3
131 test_move_cc 0 1 0 0
132 checkr3 ffff0000
133
134 moveq -1,r3
135 moveq 15,r4
136 lsr.w r4,r3
137 test_move_cc 0 0 0 0
138 checkr3 ffff0001
139
140 move.d 0x5a67f19f,r3
141 moveq 12,r4
142 lsr.w r4,r3
143 test_move_cc 0 0 0 0
144 checkr3 5a67000f
145
146 move.d 0xda67f19f,r3
147 move.d 31,r4
148 lsr.b r4,r3
149 test_move_cc 0 1 0 0
150 checkr3 da67f100
151
152 move.d 0xda67f19f,r3
153 move.d 32,r4
154 lsr.b r4,r3
155 test_move_cc 0 1 0 0
156 checkr3 da67f100
157
158 move.d 0xda67f19f,r3
159 move.d 33,r4
160 lsr.b r4,r3
161 test_move_cc 0 1 0 0
162 checkr3 da67f100
163
164 move.d 0xda67f19f,r3
165 move.d 66,r4
166 lsr.b r4,r3
167 test_move_cc 0 0 0 0
168 checkr3 da67f127
169
170 moveq -1,r3
171 moveq 0,r4
172 lsr.b r4,r3
173 test_move_cc 1 0 0 0
174 checkr3 ffffffff
175
176 moveq -1,r3
177 moveq 1,r4
178 lsr.b r4,r3
179 test_move_cc 0 0 0 0
180 checkr3 ffffff7f
181
182 moveq 2,r3
183 moveq 1,r4
184 lsr.b r4,r3
185 test_move_cc 0 0 0 0
186 checkr3 1
187
188 moveq -1,r3
189 moveq 31,r4
190 lsr.b r4,r3
191 test_move_cc 0 1 0 0
192 checkr3 ffffff00
193
194 moveq -1,r3
195 moveq 15,r4
196 lsr.b r4,r3
197 test_move_cc 0 1 0 0
198 checkr3 ffffff00
199
200 moveq -1,r3
201 moveq 7,r4
202 lsr.b r4,r3
203 test_move_cc 0 0 0 0
204 checkr3 ffffff01
205
206 move.d 0x5a67f19f,r3
207 moveq 12,r4
208 lsr.b r4,r3
209 test_move_cc 0 1 0 0
210 checkr3 5a67f100
211
212 move.d 0x5a67f19f,r3
213 moveq 4,r4
214 lsr.b r4,r3
215 test_move_cc 0 0 0 0
216 checkr3 5a67f109
217
218 quit
219