Revision f230a1cf deps/v8/test/mjsunit/compiler/rotate.js
deps/v8/test/mjsunit/compiler/rotate.js | ||
---|---|---|
222 | 222 |
assertEquals(1 << ((i % 32)), ROR4(1, i)); |
223 | 223 |
} |
224 | 224 |
|
225 |
//--------------------------------------------------------- |
|
226 |
// add test cases for constant operand |
|
227 |
//--------------------------------------------------------- |
|
228 |
// constant operand: 20 |
|
229 |
function ROR1_sa20(x) { |
|
230 |
return (x >>> 20) | (x << 12); |
|
231 |
} |
|
232 |
|
|
233 |
function ROR2_sa20(x) { |
|
234 |
return (x >>> 12) | (x << 20); |
|
235 |
} |
|
236 |
|
|
237 |
function ROR3_sa20(x, sa) { |
|
238 |
return (x << 12) | (x >>> 20); |
|
239 |
} |
|
240 |
|
|
241 |
function ROR4_sa20(x) { |
|
242 |
return (x << 20) | (x >>> 12); |
|
243 |
} |
|
244 |
|
|
245 |
// constant operand: 40 |
|
246 |
function ROR1_sa40(x) { |
|
247 |
return (x >>> 40) | (x << -8); |
|
248 |
} |
|
249 |
|
|
250 |
function ROR2_sa40(x) { |
|
251 |
return (x >>> -8) | (x << 40); |
|
252 |
} |
|
253 |
|
|
254 |
function ROR3_sa40(x, sa) { |
|
255 |
return (x << -8) | (x >>> 40); |
|
256 |
} |
|
257 |
|
|
258 |
function ROR4_sa40(x) { |
|
259 |
return (x << 40) | (x >>> -8); |
|
260 |
} |
|
261 |
|
|
262 |
// ROR1_sa20 |
|
263 |
assertEquals(ROR1(0x0000FFFF, 20), ROR1_sa20(0x0000FFFF)); |
|
264 |
assertEquals(ROR1(0x0000FFFF, 20), ROR1_sa20(0x0000FFFF)); |
|
265 |
%OptimizeFunctionOnNextCall(ROR1_sa20); |
|
266 |
assertEquals(ROR1(0x0000FFFF, 20), ROR1_sa20(0x0000FFFF)); |
|
267 |
|
|
268 |
// ROR1_sa40 |
|
269 |
assertEquals(ROR1(0x0000FFFF, 40), ROR1_sa40(0x0000FFFF)); |
|
270 |
assertEquals(ROR1(0x0000FFFF, 40), ROR1_sa40(0x0000FFFF)); |
|
271 |
%OptimizeFunctionOnNextCall(ROR1_sa40); |
|
272 |
assertEquals(ROR1(0x0000FFFF, 40), ROR1_sa40(0x0000FFFF)); |
|
273 |
|
|
274 |
// ROR2_sa20 |
|
275 |
assertEquals(ROR2(0xFFFFFFFF, 20), ROR2_sa20(0xFFFFFFFF)); |
|
276 |
assertEquals(ROR2(0xFFFFFFFF, 20), ROR2_sa20(0xFFFFFFFF)); |
|
277 |
%OptimizeFunctionOnNextCall(ROR2_sa20); |
|
278 |
assertEquals(ROR2(0xFFFFFFFF, 20), ROR2_sa20(0xFFFFFFFF)); |
|
279 |
|
|
280 |
// ROR2_sa40 |
|
281 |
assertEquals(ROR2(0x0000FFFF, 40), ROR2_sa40(0x0000FFFF)); |
|
282 |
assertEquals(ROR2(0x0000FFFF, 40), ROR2_sa40(0x0000FFFF)); |
|
283 |
%OptimizeFunctionOnNextCall(ROR2_sa40); |
|
284 |
assertEquals(ROR2(0x0000FFFF, 40), ROR2_sa40(0x0000FFFF)); |
|
285 |
|
|
286 |
// ROR3_sa20 |
|
287 |
assertEquals(ROR3(0x0000FFFF, 20), ROR3_sa20(0x0000FFFF)); |
|
288 |
assertEquals(ROR3(0x0000FFFF, 20), ROR3_sa20(0x0000FFFF)); |
|
289 |
%OptimizeFunctionOnNextCall(ROR3_sa20); |
|
290 |
assertEquals(ROR3(0x0000FFFF, 20), ROR3_sa20(0x0000FFFF)); |
|
291 |
|
|
292 |
// ROR3_sa40 |
|
293 |
assertEquals(ROR3(0x0000FFFF, 40), ROR3_sa40(0x0000FFFF)); |
|
294 |
assertEquals(ROR3(0x0000FFFF, 40), ROR3_sa40(0x0000FFFF)); |
|
295 |
%OptimizeFunctionOnNextCall(ROR3_sa40); |
|
296 |
assertEquals(ROR3(0x0000FFFF, 40), ROR3_sa40(0x0000FFFF)); |
|
297 |
|
|
298 |
// ROR4_sa20 |
|
299 |
assertEquals(ROR4(0x0000FFFF, 20), ROR4_sa20(0x0000FFFF)); |
|
300 |
assertEquals(ROR4(0x0000FFFF, 20), ROR4_sa20(0x0000FFFF)); |
|
301 |
%OptimizeFunctionOnNextCall(ROR4_sa20); |
|
302 |
assertEquals(ROR4(0x0000FFFF, 20), ROR4_sa20(0x0000FFFF)); |
|
303 |
|
|
304 |
// ROR4_sa40 |
|
305 |
assertEquals(ROR4(0xFFFFFFFF, 40), ROR4_sa40(0xFFFFFFFF)); |
|
306 |
assertEquals(ROR4(0xFFFFFFFF, 40), ROR4_sa40(0xFFFFFFFF)); |
|
307 |
%OptimizeFunctionOnNextCall(ROR4_sa40); |
|
308 |
assertEquals(ROR4(0xFFFFFFFF, 40), ROR4_sa40(0xFFFFFFFF)); |
|
309 |
|
|
310 |
|
Also available in: Unified diff