OLD | NEW |
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 <stdlib.h> | 6 #include <stdlib.h> |
6 #include <string.h> | 7 #include <string.h> |
7 | 8 |
8 #include "src/base/utils/random-number-generator.h" | 9 #include "src/base/utils/random-number-generator.h" |
9 | 10 |
10 #include "src/compiler/graph-visualizer.h" | 11 #include "src/compiler/graph-visualizer.h" |
11 #include "src/compiler/js-graph.h" | 12 #include "src/compiler/js-graph.h" |
12 #include "src/compiler/wasm-compiler.h" | 13 #include "src/compiler/wasm-compiler.h" |
13 | 14 |
14 #include "src/wasm/ast-decoder.h" | 15 #include "src/wasm/ast-decoder.h" |
(...skipping 3419 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3434 if (*i < static_cast<float>(UINT64_MAX) && *i > -1) { | 3435 if (*i < static_cast<float>(UINT64_MAX) && *i > -1) { |
3435 CHECK_EQ(static_cast<uint64_t>(*i), r.Call(*i)); | 3436 CHECK_EQ(static_cast<uint64_t>(*i), r.Call(*i)); |
3436 } else { | 3437 } else { |
3437 CHECK_TRAP64(r.Call(*i)); | 3438 CHECK_TRAP64(r.Call(*i)); |
3438 } | 3439 } |
3439 } | 3440 } |
3440 } | 3441 } |
3441 #endif | 3442 #endif |
3442 | 3443 |
3443 | 3444 |
| 3445 // TODO(titzer): Fix and re-enable. |
| 3446 #if 0 |
3444 TEST(Run_Wasm_I32SConvertF32) { | 3447 TEST(Run_Wasm_I32SConvertF32) { |
3445 WasmRunner<int32_t> r(MachineType::Float32()); | 3448 WasmRunner<int32_t> r(MachineType::Float32()); |
3446 BUILD(r, WASM_I32_SCONVERT_F32(WASM_GET_LOCAL(0))); | 3449 BUILD(r, WASM_I32_SCONVERT_F32(WASM_GET_LOCAL(0))); |
3447 | 3450 |
3448 FOR_FLOAT32_INPUTS(i) { | 3451 FOR_FLOAT32_INPUTS(i) { |
3449 if (*i < static_cast<float>(INT32_MAX) && | 3452 if (*i < static_cast<float>(INT32_MAX) && |
3450 *i >= static_cast<float>(INT32_MIN)) { | 3453 *i >= static_cast<float>(INT32_MIN)) { |
3451 CHECK_EQ(static_cast<int32_t>(*i), r.Call(*i)); | 3454 CHECK_EQ(static_cast<int32_t>(*i), r.Call(*i)); |
3452 } else { | 3455 } else { |
3453 CHECK_TRAP32(r.Call(*i)); | 3456 CHECK_TRAP32(r.Call(*i)); |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3490 BUILD(r, WASM_I32_UCONVERT_F64(WASM_GET_LOCAL(0))); | 3493 BUILD(r, WASM_I32_UCONVERT_F64(WASM_GET_LOCAL(0))); |
3491 | 3494 |
3492 FOR_FLOAT64_INPUTS(i) { | 3495 FOR_FLOAT64_INPUTS(i) { |
3493 if (*i < static_cast<float>(UINT32_MAX) && *i > -1) { | 3496 if (*i < static_cast<float>(UINT32_MAX) && *i > -1) { |
3494 CHECK_EQ(static_cast<uint32_t>(*i), r.Call(*i)); | 3497 CHECK_EQ(static_cast<uint32_t>(*i), r.Call(*i)); |
3495 } else { | 3498 } else { |
3496 CHECK_TRAP32(r.Call(*i)); | 3499 CHECK_TRAP32(r.Call(*i)); |
3497 } | 3500 } |
3498 } | 3501 } |
3499 } | 3502 } |
| 3503 #endif |
3500 | 3504 |
3501 | 3505 |
3502 TEST(Run_Wasm_F64CopySign) { | 3506 TEST(Run_Wasm_F64CopySign) { |
3503 WasmRunner<double> r(MachineType::Float64(), MachineType::Float64()); | 3507 WasmRunner<double> r(MachineType::Float64(), MachineType::Float64()); |
3504 BUILD(r, WASM_F64_COPYSIGN(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1))); | 3508 BUILD(r, WASM_F64_COPYSIGN(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1))); |
3505 | 3509 |
3506 FOR_FLOAT64_INPUTS(i) { | 3510 FOR_FLOAT64_INPUTS(i) { |
3507 FOR_FLOAT64_INPUTS(j) { CheckDoubleEq(copysign(*i, *j), r.Call(*i, *j)); } | 3511 FOR_FLOAT64_INPUTS(j) { CheckDoubleEq(copysign(*i, *j), r.Call(*i, *j)); } |
3508 } | 3512 } |
3509 } | 3513 } |
3510 | 3514 |
3511 | 3515 |
3512 TEST(Run_Wasm_F32CopySign) { | 3516 TEST(Run_Wasm_F32CopySign) { |
3513 WasmRunner<float> r(MachineType::Float32(), MachineType::Float32()); | 3517 WasmRunner<float> r(MachineType::Float32(), MachineType::Float32()); |
3514 BUILD(r, WASM_F32_COPYSIGN(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1))); | 3518 BUILD(r, WASM_F32_COPYSIGN(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1))); |
3515 | 3519 |
3516 FOR_FLOAT32_INPUTS(i) { | 3520 FOR_FLOAT32_INPUTS(i) { |
3517 FOR_FLOAT32_INPUTS(j) { CheckFloatEq(copysign(*i, *j), r.Call(*i, *j)); } | 3521 FOR_FLOAT32_INPUTS(j) { CheckFloatEq(copysign(*i, *j), r.Call(*i, *j)); } |
3518 } | 3522 } |
3519 } | 3523 } |
OLD | NEW |