Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(480)

Side by Side Diff: test/cctest/wasm/test-run-wasm-64.cc

Issue 1779123002: [wasm] I'm adding the float-to-int64 tests again. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « test/cctest/wasm/test-run-wasm.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <stdint.h> 5 #include <stdint.h>
6 #include <stdlib.h> 6 #include <stdlib.h>
7 #include <string.h> 7 #include <string.h>
8 8
9 #include "src/wasm/wasm-macro-gen.h" 9 #include "src/wasm/wasm-macro-gen.h"
10 10
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after
250 } 250 }
251 251
252 // kExprF64ReinterpretI64: 252 // kExprF64ReinterpretI64:
253 // kExprI64ReinterpretF64: 253 // kExprI64ReinterpretF64:
254 254
255 // kExprI64Clz: 255 // kExprI64Clz:
256 // kExprI64Ctz: 256 // kExprI64Ctz:
257 // kExprI64Popcnt: 257 // kExprI64Popcnt:
258 258
259 // kExprF32SConvertI64: 259 // kExprF32SConvertI64:
260 TEST(Run_WasmF32SConvertI64) {
261 WasmRunner<float> r(MachineType::Int64());
262 BUILD(r, WASM_F32_SCONVERT_I64(WASM_GET_LOCAL(0)));
263 FOR_INT64_INPUTS(i) { CHECK_EQ(static_cast<float>(*i), r.Call(*i)); }
264 }
260 // kExprF32UConvertI64: 265 // kExprF32UConvertI64:
266 TEST(Run_WasmF32UConvertI64) {
267 struct {
268 uint64_t input;
269 uint32_t expected;
270 } values[] = {{0x0, 0x0},
271 {0x1, 0x3f800000},
272 {0xffffffff, 0x4f800000},
273 {0x1b09788b, 0x4dd84bc4},
274 {0x4c5fce8, 0x4c98bf9d},
275 {0xcc0de5bf, 0x4f4c0de6},
276 {0x2, 0x40000000},
277 {0x3, 0x40400000},
278 {0x4, 0x40800000},
279 {0x5, 0x40a00000},
280 {0x8, 0x41000000},
281 {0x9, 0x41100000},
282 {0xffffffffffffffff, 0x5f800000},
283 {0xfffffffffffffffe, 0x5f800000},
284 {0xfffffffffffffffd, 0x5f800000},
285 {0x0, 0x0},
286 {0x100000000, 0x4f800000},
287 {0xffffffff00000000, 0x5f800000},
288 {0x1b09788b00000000, 0x5dd84bc4},
289 {0x4c5fce800000000, 0x5c98bf9d},
290 {0xcc0de5bf00000000, 0x5f4c0de6},
291 {0x200000000, 0x50000000},
292 {0x300000000, 0x50400000},
293 {0x400000000, 0x50800000},
294 {0x500000000, 0x50a00000},
295 {0x800000000, 0x51000000},
296 {0x900000000, 0x51100000},
297 {0x273a798e187937a3, 0x5e1ce9e6},
298 {0xece3af835495a16b, 0x5f6ce3b0},
299 {0xb668ecc11223344, 0x5d3668ed},
300 {0x9e, 0x431e0000},
301 {0x43, 0x42860000},
302 {0xaf73, 0x472f7300},
303 {0x116b, 0x458b5800},
304 {0x658ecc, 0x4acb1d98},
305 {0x2b3b4c, 0x4a2ced30},
306 {0x88776655, 0x4f087766},
307 {0x70000000, 0x4ee00000},
308 {0x7200000, 0x4ce40000},
309 {0x7fffffff, 0x4f000000},
310 {0x56123761, 0x4eac246f},
311 {0x7fffff00, 0x4efffffe},
312 {0x761c4761eeeeeeee, 0x5eec388f},
313 {0x80000000eeeeeeee, 0x5f000000},
314 {0x88888888dddddddd, 0x5f088889},
315 {0xa0000000dddddddd, 0x5f200000},
316 {0xddddddddaaaaaaaa, 0x5f5dddde},
317 {0xe0000000aaaaaaaa, 0x5f600000},
318 {0xeeeeeeeeeeeeeeee, 0x5f6eeeef},
319 {0xfffffffdeeeeeeee, 0x5f800000},
320 {0xf0000000dddddddd, 0x5f700000},
321 {0x7fffffdddddddd, 0x5b000000},
322 {0x3fffffaaaaaaaa, 0x5a7fffff},
323 {0x1fffffaaaaaaaa, 0x59fffffd},
324 {0xfffff, 0x497ffff0},
325 {0x7ffff, 0x48ffffe0},
326 {0x3ffff, 0x487fffc0},
327 {0x1ffff, 0x47ffff80},
328 {0xffff, 0x477fff00},
329 {0x7fff, 0x46fffe00},
330 {0x3fff, 0x467ffc00},
331 {0x1fff, 0x45fff800},
332 {0xfff, 0x457ff000},
333 {0x7ff, 0x44ffe000},
334 {0x3ff, 0x447fc000},
335 {0x1ff, 0x43ff8000},
336 {0x3fffffffffff, 0x56800000},
337 {0x1fffffffffff, 0x56000000},
338 {0xfffffffffff, 0x55800000},
339 {0x7ffffffffff, 0x55000000},
340 {0x3ffffffffff, 0x54800000},
341 {0x1ffffffffff, 0x54000000},
342 {0x8000008000000000, 0x5f000000},
343 {0x8000008000000001, 0x5f000001},
344 {0x8000000000000400, 0x5f000000},
345 {0x8000000000000401, 0x5f000000}};
346 WasmRunner<float> r(MachineType::Uint64());
347 BUILD(r, WASM_F32_UCONVERT_I64(WASM_GET_LOCAL(0)));
348 for (size_t i = 0; i < arraysize(values); i++) {
349 CHECK_EQ(bit_cast<float>(values[i].expected), r.Call(values[i].input));
350 }
351 }
261 // kExprF64SConvertI64: 352 // kExprF64SConvertI64:
353 TEST(Run_WasmF64SConvertI64) {
354 WasmRunner<double> r(MachineType::Int64());
355 BUILD(r, WASM_F64_SCONVERT_I64(WASM_GET_LOCAL(0)));
356 FOR_INT64_INPUTS(i) { CHECK_EQ(static_cast<double>(*i), r.Call(*i)); }
357 }
262 // kExprF64UConvertI64: 358 // kExprF64UConvertI64:
359 TEST(Run_Wasm_F64UConvertI64) {
360 struct {
361 uint64_t input;
362 uint64_t expected;
363 } values[] = {{0x0, 0x0},
364 {0x1, 0x3ff0000000000000},
365 {0xffffffff, 0x41efffffffe00000},
366 {0x1b09788b, 0x41bb09788b000000},
367 {0x4c5fce8, 0x419317f3a0000000},
368 {0xcc0de5bf, 0x41e981bcb7e00000},
369 {0x2, 0x4000000000000000},
370 {0x3, 0x4008000000000000},
371 {0x4, 0x4010000000000000},
372 {0x5, 0x4014000000000000},
373 {0x8, 0x4020000000000000},
374 {0x9, 0x4022000000000000},
375 {0xffffffffffffffff, 0x43f0000000000000},
376 {0xfffffffffffffffe, 0x43f0000000000000},
377 {0xfffffffffffffffd, 0x43f0000000000000},
378 {0x100000000, 0x41f0000000000000},
379 {0xffffffff00000000, 0x43efffffffe00000},
380 {0x1b09788b00000000, 0x43bb09788b000000},
381 {0x4c5fce800000000, 0x439317f3a0000000},
382 {0xcc0de5bf00000000, 0x43e981bcb7e00000},
383 {0x200000000, 0x4200000000000000},
384 {0x300000000, 0x4208000000000000},
385 {0x400000000, 0x4210000000000000},
386 {0x500000000, 0x4214000000000000},
387 {0x800000000, 0x4220000000000000},
388 {0x900000000, 0x4222000000000000},
389 {0x273a798e187937a3, 0x43c39d3cc70c3c9c},
390 {0xece3af835495a16b, 0x43ed9c75f06a92b4},
391 {0xb668ecc11223344, 0x43a6cd1d98224467},
392 {0x9e, 0x4063c00000000000},
393 {0x43, 0x4050c00000000000},
394 {0xaf73, 0x40e5ee6000000000},
395 {0x116b, 0x40b16b0000000000},
396 {0x658ecc, 0x415963b300000000},
397 {0x2b3b4c, 0x41459da600000000},
398 {0x88776655, 0x41e10eeccaa00000},
399 {0x70000000, 0x41dc000000000000},
400 {0x7200000, 0x419c800000000000},
401 {0x7fffffff, 0x41dfffffffc00000},
402 {0x56123761, 0x41d5848dd8400000},
403 {0x7fffff00, 0x41dfffffc0000000},
404 {0x761c4761eeeeeeee, 0x43dd8711d87bbbbc},
405 {0x80000000eeeeeeee, 0x43e00000001dddde},
406 {0x88888888dddddddd, 0x43e11111111bbbbc},
407 {0xa0000000dddddddd, 0x43e40000001bbbbc},
408 {0xddddddddaaaaaaaa, 0x43ebbbbbbbb55555},
409 {0xe0000000aaaaaaaa, 0x43ec000000155555},
410 {0xeeeeeeeeeeeeeeee, 0x43edddddddddddde},
411 {0xfffffffdeeeeeeee, 0x43efffffffbdddde},
412 {0xf0000000dddddddd, 0x43ee0000001bbbbc},
413 {0x7fffffdddddddd, 0x435ffffff7777777},
414 {0x3fffffaaaaaaaa, 0x434fffffd5555555},
415 {0x1fffffaaaaaaaa, 0x433fffffaaaaaaaa},
416 {0xfffff, 0x412ffffe00000000},
417 {0x7ffff, 0x411ffffc00000000},
418 {0x3ffff, 0x410ffff800000000},
419 {0x1ffff, 0x40fffff000000000},
420 {0xffff, 0x40efffe000000000},
421 {0x7fff, 0x40dfffc000000000},
422 {0x3fff, 0x40cfff8000000000},
423 {0x1fff, 0x40bfff0000000000},
424 {0xfff, 0x40affe0000000000},
425 {0x7ff, 0x409ffc0000000000},
426 {0x3ff, 0x408ff80000000000},
427 {0x1ff, 0x407ff00000000000},
428 {0x3fffffffffff, 0x42cfffffffffff80},
429 {0x1fffffffffff, 0x42bfffffffffff00},
430 {0xfffffffffff, 0x42affffffffffe00},
431 {0x7ffffffffff, 0x429ffffffffffc00},
432 {0x3ffffffffff, 0x428ffffffffff800},
433 {0x1ffffffffff, 0x427ffffffffff000},
434 {0x8000008000000000, 0x43e0000010000000},
435 {0x8000008000000001, 0x43e0000010000000},
436 {0x8000000000000400, 0x43e0000000000000},
437 {0x8000000000000401, 0x43e0000000000001}};
438 WasmRunner<double> r(MachineType::Uint64());
439 BUILD(r, WASM_F64_UCONVERT_I64(WASM_GET_LOCAL(0)));
440 for (size_t i = 0; i < arraysize(values); i++) {
441 CHECK_EQ(bit_cast<double>(values[i].expected), r.Call(values[i].input));
442 }
443 }
263 // kExprI64SConvertF32: 444 // kExprI64SConvertF32:
264 // kExprI64SConvertF64: 445 // kExprI64SConvertF64:
265 // kExprI64UConvertF32: 446 // kExprI64UConvertF32:
266 // kExprI64UConvertF64: 447 // kExprI64UConvertF64:
267 448
268 TEST(Run_WasmCallI64Parameter) { 449 TEST(Run_WasmCallI64Parameter) {
269 // Build the target function. 450 // Build the target function.
270 LocalType param_types[20]; 451 LocalType param_types[20];
271 for (int i = 0; i < 20; i++) param_types[i] = kAstI64; 452 for (int i = 0; i < 20; i++) param_types[i] = kAstI64;
272 param_types[3] = kAstI32; 453 param_types[3] = kAstI32;
(...skipping 22 matching lines...) Expand all
295 WASM_I64V_10(0xbcd1234000000013), WASM_I64V_10(0xbcd1234000000014), 476 WASM_I64V_10(0xbcd1234000000013), WASM_I64V_10(0xbcd1234000000014),
296 WASM_I64V_10(0xbcd1234000000015), WASM_I64V_10(0xbcd1234000000016), 477 WASM_I64V_10(0xbcd1234000000015), WASM_I64V_10(0xbcd1234000000016),
297 WASM_I64V_10(0xbcd1234000000017), WASM_I64V_10(0xbcd1234000000018), 478 WASM_I64V_10(0xbcd1234000000017), WASM_I64V_10(0xbcd1234000000018),
298 WASM_I64V_10(0xbcd1234000000019), WASM_I64V_10(0xbcd123400000001a), 479 WASM_I64V_10(0xbcd1234000000019), WASM_I64V_10(0xbcd123400000001a),
299 WASM_I64V_10(0xbcd123400000001b), WASM_I64V_10(0xbcd123400000001c), 480 WASM_I64V_10(0xbcd123400000001b), WASM_I64V_10(0xbcd123400000001c),
300 WASM_I64V_10(0xbcd123400000001d)))); 481 WASM_I64V_10(0xbcd123400000001d))));
301 482
302 CHECK_EQ(i + 0xb, r.Call()); 483 CHECK_EQ(i + 0xb, r.Call());
303 } 484 }
304 } 485 }
OLDNEW
« no previous file with comments | « test/cctest/wasm/test-run-wasm.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698