| 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 <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 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 49 FOR_INT64_INPUTS(i) { | 49 FOR_INT64_INPUTS(i) { |
| 50 FOR_INT64_INPUTS(j) { CHECK_EQ((*i) ^ (*j), r.Call(*i, *j)); } | 50 FOR_INT64_INPUTS(j) { CHECK_EQ((*i) ^ (*j), r.Call(*i, *j)); } |
| 51 } | 51 } |
| 52 } | 52 } |
| 53 // kExprI64Shl: | 53 // kExprI64Shl: |
| 54 // kExprI64ShrU: | 54 // kExprI64ShrU: |
| 55 // kExprI64ShrS: | 55 // kExprI64ShrS: |
| 56 // kExprI64Eq: | 56 // kExprI64Eq: |
| 57 // kExprI64Ne: | 57 // kExprI64Ne: |
| 58 // kExprI64LtS: | 58 // kExprI64LtS: |
| 59 TEST(Run_WasmI64LtS) { |
| 60 WasmRunner<int32_t> r(MachineType::Int64(), MachineType::Int64()); |
| 61 BUILD(r, WASM_I64_LTS(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1))); |
| 62 FOR_INT64_INPUTS(i) { |
| 63 FOR_INT64_INPUTS(j) { CHECK_EQ(*i < *j ? 1 : 0, r.Call(*i, *j)); } |
| 64 } |
| 65 } |
| 59 // kExprI64LeS: | 66 // kExprI64LeS: |
| 67 TEST(Run_WasmI64LeS) { |
| 68 WasmRunner<int32_t> r(MachineType::Int64(), MachineType::Int64()); |
| 69 BUILD(r, WASM_I64_LES(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1))); |
| 70 FOR_INT64_INPUTS(i) { |
| 71 FOR_INT64_INPUTS(j) { CHECK_EQ(*i <= *j ? 1 : 0, r.Call(*i, *j)); } |
| 72 } |
| 73 } |
| 60 // kExprI64LtU: | 74 // kExprI64LtU: |
| 75 TEST(Run_WasmI64LtU) { |
| 76 WasmRunner<int32_t> r(MachineType::Int64(), MachineType::Int64()); |
| 77 BUILD(r, WASM_I64_LTU(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1))); |
| 78 FOR_UINT64_INPUTS(i) { |
| 79 FOR_UINT64_INPUTS(j) { CHECK_EQ(*i < *j ? 1 : 0, r.Call(*i, *j)); } |
| 80 } |
| 81 } |
| 61 // kExprI64LeU: | 82 // kExprI64LeU: |
| 83 TEST(Run_WasmI64LeU) { |
| 84 WasmRunner<int32_t> r(MachineType::Int64(), MachineType::Int64()); |
| 85 BUILD(r, WASM_I64_LEU(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1))); |
| 86 FOR_UINT64_INPUTS(i) { |
| 87 FOR_UINT64_INPUTS(j) { CHECK_EQ(*i <= *j ? 1 : 0, r.Call(*i, *j)); } |
| 88 } |
| 89 } |
| 62 // kExprI64GtS: | 90 // kExprI64GtS: |
| 91 TEST(Run_WasmI64GtS) { |
| 92 WasmRunner<int32_t> r(MachineType::Int64(), MachineType::Int64()); |
| 93 BUILD(r, WASM_I64_GTS(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1))); |
| 94 FOR_INT64_INPUTS(i) { |
| 95 FOR_INT64_INPUTS(j) { CHECK_EQ(*i > *j ? 1 : 0, r.Call(*i, *j)); } |
| 96 } |
| 97 } |
| 63 // kExprI64GeS: | 98 // kExprI64GeS: |
| 99 TEST(Run_WasmI64GeS) { |
| 100 WasmRunner<int32_t> r(MachineType::Int64(), MachineType::Int64()); |
| 101 BUILD(r, WASM_I64_GES(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1))); |
| 102 FOR_INT64_INPUTS(i) { |
| 103 FOR_INT64_INPUTS(j) { CHECK_EQ(*i >= *j ? 1 : 0, r.Call(*i, *j)); } |
| 104 } |
| 105 } |
| 106 |
| 64 // kExprI64GtU: | 107 // kExprI64GtU: |
| 108 TEST(Run_WasmI64GtU) { |
| 109 WasmRunner<int32_t> r(MachineType::Int64(), MachineType::Int64()); |
| 110 BUILD(r, WASM_I64_GTU(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1))); |
| 111 FOR_UINT64_INPUTS(i) { |
| 112 FOR_UINT64_INPUTS(j) { CHECK_EQ(*i > *j ? 1 : 0, r.Call(*i, *j)); } |
| 113 } |
| 114 } |
| 115 |
| 65 // kExprI64GeU: | 116 // kExprI64GeU: |
| 66 | 117 TEST(Run_WasmI64GeU) { |
| 118 WasmRunner<int32_t> r(MachineType::Int64(), MachineType::Int64()); |
| 119 BUILD(r, WASM_I64_GEU(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1))); |
| 120 FOR_UINT64_INPUTS(i) { |
| 121 FOR_UINT64_INPUTS(j) { CHECK_EQ(*i >= *j ? 1 : 0, r.Call(*i, *j)); } |
| 122 } |
| 123 } |
| 67 // kExprI32ConvertI64: | 124 // kExprI32ConvertI64: |
| 68 TEST(Run_WasmI32ConvertI64) { | 125 TEST(Run_WasmI32ConvertI64) { |
| 69 FOR_INT64_INPUTS(i) { | 126 FOR_INT64_INPUTS(i) { |
| 70 WasmRunner<int32_t> r; | 127 WasmRunner<int32_t> r; |
| 71 BUILD(r, WASM_I32_CONVERT_I64(WASM_I64(*i))); | 128 BUILD(r, WASM_I32_CONVERT_I64(WASM_I64(*i))); |
| 72 CHECK_EQ(static_cast<int32_t>(*i), r.Call()); | 129 CHECK_EQ(static_cast<int32_t>(*i), r.Call()); |
| 73 } | 130 } |
| 74 } | 131 } |
| 75 // kExprI64SConvertI32: | 132 // kExprI64SConvertI32: |
| 76 // kExprI64UConvertI32: | 133 // kExprI64UConvertI32: |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 120 WASM_I64(0xbcd1234000000013), WASM_I64(0xbcd1234000000014), | 177 WASM_I64(0xbcd1234000000013), WASM_I64(0xbcd1234000000014), |
| 121 WASM_I64(0xbcd1234000000015), WASM_I64(0xbcd1234000000016), | 178 WASM_I64(0xbcd1234000000015), WASM_I64(0xbcd1234000000016), |
| 122 WASM_I64(0xbcd1234000000017), WASM_I64(0xbcd1234000000018), | 179 WASM_I64(0xbcd1234000000017), WASM_I64(0xbcd1234000000018), |
| 123 WASM_I64(0xbcd1234000000019), WASM_I64(0xbcd123400000001a), | 180 WASM_I64(0xbcd1234000000019), WASM_I64(0xbcd123400000001a), |
| 124 WASM_I64(0xbcd123400000001b), WASM_I64(0xbcd123400000001c), | 181 WASM_I64(0xbcd123400000001b), WASM_I64(0xbcd123400000001c), |
| 125 WASM_I64(0xbcd123400000001d)))); | 182 WASM_I64(0xbcd123400000001d)))); |
| 126 | 183 |
| 127 CHECK_EQ(i + 0xb, r.Call()); | 184 CHECK_EQ(i + 0xb, r.Call()); |
| 128 } | 185 } |
| 129 } | 186 } |
| OLD | NEW |