OLD | NEW |
1 // Copyright 2016 the V8 project authors. All rights reserved. | 1 // Copyright 2016 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 "src/assembler-inl.h" | 5 #include "src/assembler-inl.h" |
6 #include "test/cctest/cctest.h" | 6 #include "test/cctest/cctest.h" |
7 #include "test/cctest/compiler/value-helper.h" | 7 #include "test/cctest/compiler/value-helper.h" |
8 #include "test/cctest/wasm/wasm-run-utils.h" | 8 #include "test/cctest/wasm/wasm-run-utils.h" |
9 #include "test/common/wasm/wasm-macro-gen.h" | 9 #include "test/common/wasm/wasm-macro-gen.h" |
10 | 10 |
(...skipping 914 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
925 int32_t unpacked_signed = static_cast<int32_t>(Widen<int16_t>(*i)); | 925 int32_t unpacked_signed = static_cast<int32_t>(Widen<int16_t>(*i)); |
926 int32_t unpacked_unsigned = | 926 int32_t unpacked_unsigned = |
927 static_cast<int32_t>(UnsignedWiden<int16_t>(*i)); | 927 static_cast<int32_t>(UnsignedWiden<int16_t>(*i)); |
928 CHECK_EQ(1, r.Call(*i, unpacked_signed, unpacked_unsigned)); | 928 CHECK_EQ(1, r.Call(*i, unpacked_signed, unpacked_unsigned)); |
929 } | 929 } |
930 } | 930 } |
931 #endif // V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_ARM64 || V8_TARGET_ARCH_MIPS || | 931 #endif // V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_ARM64 || V8_TARGET_ARCH_MIPS || |
932 // V8_TARGET_ARCH_MIPS64 | 932 // V8_TARGET_ARCH_MIPS64 |
933 | 933 |
934 #if V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_ARM64 || SIMD_LOWERING_TARGET || \ | 934 #if V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_ARM64 || SIMD_LOWERING_TARGET || \ |
935 V8_TARGET_ARCH_MIPS || V8_TARGET_ARCH_MIPS64 | 935 V8_TARGET_ARCH_MIPS || V8_TARGET_ARCH_MIPS64 || V8_TARGET_ARCH_X64 |
936 void RunI32x4UnOpTest(WasmOpcode simd_op, Int32UnOp expected_op) { | 936 void RunI32x4UnOpTest(WasmOpcode simd_op, Int32UnOp expected_op) { |
937 WasmRunner<int32_t, int32_t, int32_t> r(kExecuteCompiled); | 937 WasmRunner<int32_t, int32_t, int32_t> r(kExecuteCompiled); |
938 byte a = 0; | 938 byte a = 0; |
939 byte expected = 1; | 939 byte expected = 1; |
940 byte simd = r.AllocateLocal(kWasmS128); | 940 byte simd = r.AllocateLocal(kWasmS128); |
941 BUILD(r, WASM_SET_LOCAL(simd, WASM_SIMD_I32x4_SPLAT(WASM_GET_LOCAL(a))), | 941 BUILD(r, WASM_SET_LOCAL(simd, WASM_SIMD_I32x4_SPLAT(WASM_GET_LOCAL(a))), |
942 WASM_SET_LOCAL(simd, WASM_SIMD_UNOP(simd_op, WASM_GET_LOCAL(simd))), | 942 WASM_SET_LOCAL(simd, WASM_SIMD_UNOP(simd_op, WASM_GET_LOCAL(simd))), |
943 WASM_SIMD_CHECK_SPLAT4(I32x4, simd, I32, expected), WASM_ONE); | 943 WASM_SIMD_CHECK_SPLAT4(I32x4, simd, I32, expected), WASM_ONE); |
944 | 944 |
945 FOR_INT32_INPUTS(i) { CHECK_EQ(1, r.Call(*i, expected_op(*i))); } | 945 FOR_INT32_INPUTS(i) { CHECK_EQ(1, r.Call(*i, expected_op(*i))); } |
946 } | 946 } |
947 | 947 |
948 WASM_SIMD_TEST(I32x4Neg) { RunI32x4UnOpTest(kExprI32x4Neg, Negate); } | 948 WASM_SIMD_TEST(I32x4Neg) { RunI32x4UnOpTest(kExprI32x4Neg, Negate); } |
949 #endif // V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_ARM64 || SIMD_LOWERING_TARGET || | 949 #endif // V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_ARM64 || SIMD_LOWERING_TARGET || |
950 // V8_TARGET_ARCH_MIPS || V8_TARGET_ARCH_MIPS64 | 950 // V8_TARGET_ARCH_MIPS || V8_TARGET_ARCH_MIPS64 || V8_TARGET_ARCH_X64 |
951 | 951 |
952 #if V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_ARM64 || SIMD_LOWERING_TARGET | 952 #if V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_ARM64 || SIMD_LOWERING_TARGET || \ |
| 953 V8_TARGET_ARCH_X64 |
953 WASM_SIMD_TEST(S128Not) { RunI32x4UnOpTest(kExprS128Not, Not); } | 954 WASM_SIMD_TEST(S128Not) { RunI32x4UnOpTest(kExprS128Not, Not); } |
954 #endif // V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_ARM64 || SIMD_LOWERING_TARGET | 955 #endif // V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_ARM64 || SIMD_LOWERING_TARGET |
| 956 // V8_TARGET_ARCH_X64 |
955 | 957 |
956 void RunI32x4BinOpTest(WasmOpcode simd_op, Int32BinOp expected_op) { | 958 void RunI32x4BinOpTest(WasmOpcode simd_op, Int32BinOp expected_op) { |
957 WasmRunner<int32_t, int32_t, int32_t, int32_t> r(kExecuteCompiled); | 959 WasmRunner<int32_t, int32_t, int32_t, int32_t> r(kExecuteCompiled); |
958 byte a = 0; | 960 byte a = 0; |
959 byte b = 1; | 961 byte b = 1; |
960 byte expected = 2; | 962 byte expected = 2; |
961 byte simd0 = r.AllocateLocal(kWasmS128); | 963 byte simd0 = r.AllocateLocal(kWasmS128); |
962 byte simd1 = r.AllocateLocal(kWasmS128); | 964 byte simd1 = r.AllocateLocal(kWasmS128); |
963 BUILD(r, WASM_SET_LOCAL(simd0, WASM_SIMD_I32x4_SPLAT(WASM_GET_LOCAL(a))), | 965 BUILD(r, WASM_SET_LOCAL(simd0, WASM_SIMD_I32x4_SPLAT(WASM_GET_LOCAL(a))), |
964 WASM_SET_LOCAL(simd1, WASM_SIMD_I32x4_SPLAT(WASM_GET_LOCAL(b))), | 966 WASM_SET_LOCAL(simd1, WASM_SIMD_I32x4_SPLAT(WASM_GET_LOCAL(b))), |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1011 WASM_SIMD_CHECK_SPLAT4(I32x4, simd1, I32, expected), WASM_ONE); | 1013 WASM_SIMD_CHECK_SPLAT4(I32x4, simd1, I32, expected), WASM_ONE); |
1012 | 1014 |
1013 FOR_INT32_INPUTS(i) { | 1015 FOR_INT32_INPUTS(i) { |
1014 FOR_INT32_INPUTS(j) { CHECK_EQ(1, r.Call(*i, *j, expected_op(*i, *j))); } | 1016 FOR_INT32_INPUTS(j) { CHECK_EQ(1, r.Call(*i, *j, expected_op(*i, *j))); } |
1015 } | 1017 } |
1016 } | 1018 } |
1017 | 1019 |
1018 WASM_SIMD_TEST(I32x4Eq) { RunI32x4CompareOpTest(kExprI32x4Eq, Equal); } | 1020 WASM_SIMD_TEST(I32x4Eq) { RunI32x4CompareOpTest(kExprI32x4Eq, Equal); } |
1019 | 1021 |
1020 WASM_SIMD_TEST(I32x4Ne) { RunI32x4CompareOpTest(kExprI32x4Ne, NotEqual); } | 1022 WASM_SIMD_TEST(I32x4Ne) { RunI32x4CompareOpTest(kExprI32x4Ne, NotEqual); } |
1021 #endif // V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_ARM64 || V8_TARGET_ARCH_X64 || | |
1022 // SIMD_LOWERING_TARGET || V8_TARGET_ARCH_MIPS || V8_TARGET_ARCH_MIPS64 | |
1023 | 1023 |
1024 #if V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_ARM64 || SIMD_LOWERING_TARGET || \ | |
1025 V8_TARGET_ARCH_MIPS || V8_TARGET_ARCH_MIPS64 | |
1026 WASM_SIMD_TEST(I32x4LtS) { RunI32x4CompareOpTest(kExprI32x4LtS, Less); } | 1024 WASM_SIMD_TEST(I32x4LtS) { RunI32x4CompareOpTest(kExprI32x4LtS, Less); } |
1027 | 1025 |
1028 WASM_SIMD_TEST(I32x4LeS) { RunI32x4CompareOpTest(kExprI32x4LeS, LessEqual); } | 1026 WASM_SIMD_TEST(I32x4LeS) { RunI32x4CompareOpTest(kExprI32x4LeS, LessEqual); } |
1029 | 1027 |
1030 WASM_SIMD_TEST(I32x4GtS) { RunI32x4CompareOpTest(kExprI32x4GtS, Greater); } | 1028 WASM_SIMD_TEST(I32x4GtS) { RunI32x4CompareOpTest(kExprI32x4GtS, Greater); } |
1031 | 1029 |
1032 WASM_SIMD_TEST(I32x4GeS) { RunI32x4CompareOpTest(kExprI32x4GeS, GreaterEqual); } | 1030 WASM_SIMD_TEST(I32x4GeS) { RunI32x4CompareOpTest(kExprI32x4GeS, GreaterEqual); } |
1033 | 1031 |
1034 WASM_SIMD_TEST(I32x4LtU) { RunI32x4CompareOpTest(kExprI32x4LtU, UnsignedLess); } | 1032 WASM_SIMD_TEST(I32x4LtU) { RunI32x4CompareOpTest(kExprI32x4LtU, UnsignedLess); } |
1035 | 1033 |
1036 WASM_SIMD_TEST(I32x4LeU) { | 1034 WASM_SIMD_TEST(I32x4LeU) { |
1037 RunI32x4CompareOpTest(kExprI32x4LeU, UnsignedLessEqual); | 1035 RunI32x4CompareOpTest(kExprI32x4LeU, UnsignedLessEqual); |
1038 } | 1036 } |
1039 | 1037 |
1040 WASM_SIMD_TEST(I32x4GtU) { | 1038 WASM_SIMD_TEST(I32x4GtU) { |
1041 RunI32x4CompareOpTest(kExprI32x4GtU, UnsignedGreater); | 1039 RunI32x4CompareOpTest(kExprI32x4GtU, UnsignedGreater); |
1042 } | 1040 } |
1043 | 1041 |
1044 WASM_SIMD_TEST(I32x4GeU) { | 1042 WASM_SIMD_TEST(I32x4GeU) { |
1045 RunI32x4CompareOpTest(kExprI32x4GeU, UnsignedGreaterEqual); | 1043 RunI32x4CompareOpTest(kExprI32x4GeU, UnsignedGreaterEqual); |
1046 } | 1044 } |
1047 #endif // V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_ARM64 || SIMD_LOWERING_TARGET || | |
1048 // V8_TARGET_ARCH_MIPS || V8_TARGET_ARCH_MIPS64 | |
1049 | 1045 |
1050 #if V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_ARM64 || V8_TARGET_ARCH_X64 || \ | |
1051 SIMD_LOWERING_TARGET || V8_TARGET_ARCH_MIPS || V8_TARGET_ARCH_MIPS64 | |
1052 void RunI32x4ShiftOpTest(WasmOpcode simd_op, Int32ShiftOp expected_op, | 1046 void RunI32x4ShiftOpTest(WasmOpcode simd_op, Int32ShiftOp expected_op, |
1053 int shift) { | 1047 int shift) { |
1054 WasmRunner<int32_t, int32_t, int32_t> r(kExecuteCompiled); | 1048 WasmRunner<int32_t, int32_t, int32_t> r(kExecuteCompiled); |
1055 byte a = 0; | 1049 byte a = 0; |
1056 byte expected = 1; | 1050 byte expected = 1; |
1057 byte simd = r.AllocateLocal(kWasmS128); | 1051 byte simd = r.AllocateLocal(kWasmS128); |
1058 BUILD(r, WASM_SET_LOCAL(simd, WASM_SIMD_I32x4_SPLAT(WASM_GET_LOCAL(a))), | 1052 BUILD(r, WASM_SET_LOCAL(simd, WASM_SIMD_I32x4_SPLAT(WASM_GET_LOCAL(a))), |
1059 WASM_SET_LOCAL( | 1053 WASM_SET_LOCAL( |
1060 simd, WASM_SIMD_SHIFT_OP(simd_op, shift, WASM_GET_LOCAL(simd))), | 1054 simd, WASM_SIMD_SHIFT_OP(simd_op, shift, WASM_GET_LOCAL(simd))), |
1061 WASM_SIMD_CHECK_SPLAT4(I32x4, simd, I32, expected), WASM_ONE); | 1055 WASM_SIMD_CHECK_SPLAT4(I32x4, simd, I32, expected), WASM_ONE); |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1099 FOR_INT8_INPUTS(i) { | 1093 FOR_INT8_INPUTS(i) { |
1100 int32_t unpacked_signed = static_cast<int32_t>(Widen<int8_t>(*i)); | 1094 int32_t unpacked_signed = static_cast<int32_t>(Widen<int8_t>(*i)); |
1101 int32_t unpacked_unsigned = static_cast<int32_t>(UnsignedWiden<int8_t>(*i)); | 1095 int32_t unpacked_unsigned = static_cast<int32_t>(UnsignedWiden<int8_t>(*i)); |
1102 CHECK_EQ(1, r.Call(*i, unpacked_signed, unpacked_unsigned)); | 1096 CHECK_EQ(1, r.Call(*i, unpacked_signed, unpacked_unsigned)); |
1103 } | 1097 } |
1104 } | 1098 } |
1105 #endif // V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_ARM64 || V8_TARGET_ARCH_MIPS || | 1099 #endif // V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_ARM64 || V8_TARGET_ARCH_MIPS || |
1106 // V8_TARGET_ARCH_MIPS64 | 1100 // V8_TARGET_ARCH_MIPS64 |
1107 | 1101 |
1108 #if SIMD_LOWERING_TARGET || V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_ARM64 || \ | 1102 #if SIMD_LOWERING_TARGET || V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_ARM64 || \ |
1109 V8_TARGET_ARCH_MIPS || V8_TARGET_ARCH_MIPS64 | 1103 V8_TARGET_ARCH_MIPS || V8_TARGET_ARCH_MIPS64 || V8_TARGET_ARCH_X64 |
1110 void RunI16x8UnOpTest(WasmOpcode simd_op, Int16UnOp expected_op) { | 1104 void RunI16x8UnOpTest(WasmOpcode simd_op, Int16UnOp expected_op) { |
1111 WasmRunner<int32_t, int32_t, int32_t> r(kExecuteCompiled); | 1105 WasmRunner<int32_t, int32_t, int32_t> r(kExecuteCompiled); |
1112 byte a = 0; | 1106 byte a = 0; |
1113 byte expected = 1; | 1107 byte expected = 1; |
1114 byte simd = r.AllocateLocal(kWasmS128); | 1108 byte simd = r.AllocateLocal(kWasmS128); |
1115 BUILD(r, WASM_SET_LOCAL(simd, WASM_SIMD_I16x8_SPLAT(WASM_GET_LOCAL(a))), | 1109 BUILD(r, WASM_SET_LOCAL(simd, WASM_SIMD_I16x8_SPLAT(WASM_GET_LOCAL(a))), |
1116 WASM_SET_LOCAL(simd, WASM_SIMD_UNOP(simd_op, WASM_GET_LOCAL(simd))), | 1110 WASM_SET_LOCAL(simd, WASM_SIMD_UNOP(simd_op, WASM_GET_LOCAL(simd))), |
1117 WASM_SIMD_CHECK_SPLAT8(I16x8, simd, I32, expected), WASM_ONE); | 1111 WASM_SIMD_CHECK_SPLAT8(I16x8, simd, I32, expected), WASM_ONE); |
1118 | 1112 |
1119 FOR_INT16_INPUTS(i) { CHECK_EQ(1, r.Call(*i, expected_op(*i))); } | 1113 FOR_INT16_INPUTS(i) { CHECK_EQ(1, r.Call(*i, expected_op(*i))); } |
1120 } | 1114 } |
1121 | 1115 |
1122 WASM_SIMD_TEST(I16x8Neg) { RunI16x8UnOpTest(kExprI16x8Neg, Negate); } | 1116 WASM_SIMD_TEST(I16x8Neg) { RunI16x8UnOpTest(kExprI16x8Neg, Negate); } |
1123 #endif // SIMD_LOWERING_TARGET || V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_ARM64 || | 1117 #endif // SIMD_LOWERING_TARGET || V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_ARM64 || |
1124 // V8_TARGET_ARCH_MIPS || | 1118 // V8_TARGET_ARCH_MIPS || V8_TARGET_ARCH_MIPS64 || V8_TARGET_ARCH_X64 |
1125 // V8_TARGET_ARCH_MIPS64 | |
1126 | 1119 |
1127 #if V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_ARM64 || V8_TARGET_ARCH_MIPS || \ | 1120 #if V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_ARM64 || V8_TARGET_ARCH_MIPS || \ |
1128 V8_TARGET_ARCH_MIPS64 | 1121 V8_TARGET_ARCH_MIPS64 |
1129 // Tests both signed and unsigned conversion from I32x4 (packing). | 1122 // Tests both signed and unsigned conversion from I32x4 (packing). |
1130 WASM_SIMD_TEST(I16x8ConvertI32x4) { | 1123 WASM_SIMD_TEST(I16x8ConvertI32x4) { |
1131 WasmRunner<int32_t, int32_t, int32_t, int32_t> r(kExecuteCompiled); | 1124 WasmRunner<int32_t, int32_t, int32_t, int32_t> r(kExecuteCompiled); |
1132 byte a = 0; | 1125 byte a = 0; |
1133 byte packed_signed = 1; | 1126 byte packed_signed = 1; |
1134 byte packed_unsigned = 2; | 1127 byte packed_unsigned = 2; |
1135 byte simd0 = r.AllocateLocal(kWasmS128); | 1128 byte simd0 = r.AllocateLocal(kWasmS128); |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1180 | 1173 |
1181 WASM_SIMD_TEST(I16x8AddSaturateS) { | 1174 WASM_SIMD_TEST(I16x8AddSaturateS) { |
1182 RunI16x8BinOpTest(kExprI16x8AddSaturateS, AddSaturate); | 1175 RunI16x8BinOpTest(kExprI16x8AddSaturateS, AddSaturate); |
1183 } | 1176 } |
1184 | 1177 |
1185 WASM_SIMD_TEST(I16x8Sub) { RunI16x8BinOpTest(kExprI16x8Sub, Sub); } | 1178 WASM_SIMD_TEST(I16x8Sub) { RunI16x8BinOpTest(kExprI16x8Sub, Sub); } |
1186 | 1179 |
1187 WASM_SIMD_TEST(I16x8SubSaturateS) { | 1180 WASM_SIMD_TEST(I16x8SubSaturateS) { |
1188 RunI16x8BinOpTest(kExprI16x8SubSaturateS, SubSaturate); | 1181 RunI16x8BinOpTest(kExprI16x8SubSaturateS, SubSaturate); |
1189 } | 1182 } |
1190 #endif // V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_ARM64 || V8_TARGET_ARCH_X64 || | |
1191 // SIMD_LOWERING_TARGET || V8_TARGET_ARCH_MIPS || V8_TARGET_ARCH_MIPS64 | |
1192 | 1183 |
1193 #if V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_ARM64 || V8_TARGET_ARCH_X64 || \ | |
1194 SIMD_LOWERING_TARGET || V8_TARGET_ARCH_MIPS || V8_TARGET_ARCH_MIPS64 | |
1195 WASM_SIMD_TEST(I16x8Mul) { RunI16x8BinOpTest(kExprI16x8Mul, Mul); } | 1184 WASM_SIMD_TEST(I16x8Mul) { RunI16x8BinOpTest(kExprI16x8Mul, Mul); } |
1196 | 1185 |
1197 WASM_SIMD_TEST(I16x8MinS) { RunI16x8BinOpTest(kExprI16x8MinS, Minimum); } | 1186 WASM_SIMD_TEST(I16x8MinS) { RunI16x8BinOpTest(kExprI16x8MinS, Minimum); } |
1198 | 1187 |
1199 WASM_SIMD_TEST(I16x8MaxS) { RunI16x8BinOpTest(kExprI16x8MaxS, Maximum); } | 1188 WASM_SIMD_TEST(I16x8MaxS) { RunI16x8BinOpTest(kExprI16x8MaxS, Maximum); } |
1200 | 1189 |
1201 WASM_SIMD_TEST(I16x8AddSaturateU) { | 1190 WASM_SIMD_TEST(I16x8AddSaturateU) { |
1202 RunI16x8BinOpTest(kExprI16x8AddSaturateU, UnsignedAddSaturate); | 1191 RunI16x8BinOpTest(kExprI16x8AddSaturateU, UnsignedAddSaturate); |
1203 } | 1192 } |
1204 | 1193 |
(...skipping 23 matching lines...) Expand all Loading... |
1228 WASM_SIMD_CHECK_SPLAT8(I16x8, simd1, I32, expected), WASM_ONE); | 1217 WASM_SIMD_CHECK_SPLAT8(I16x8, simd1, I32, expected), WASM_ONE); |
1229 | 1218 |
1230 FOR_INT16_INPUTS(i) { | 1219 FOR_INT16_INPUTS(i) { |
1231 FOR_INT16_INPUTS(j) { CHECK_EQ(1, r.Call(*i, *j, expected_op(*i, *j))); } | 1220 FOR_INT16_INPUTS(j) { CHECK_EQ(1, r.Call(*i, *j, expected_op(*i, *j))); } |
1232 } | 1221 } |
1233 } | 1222 } |
1234 | 1223 |
1235 WASM_SIMD_TEST(I16x8Eq) { RunI16x8CompareOpTest(kExprI16x8Eq, Equal); } | 1224 WASM_SIMD_TEST(I16x8Eq) { RunI16x8CompareOpTest(kExprI16x8Eq, Equal); } |
1236 | 1225 |
1237 WASM_SIMD_TEST(I16x8Ne) { RunI16x8CompareOpTest(kExprI16x8Ne, NotEqual); } | 1226 WASM_SIMD_TEST(I16x8Ne) { RunI16x8CompareOpTest(kExprI16x8Ne, NotEqual); } |
1238 #endif // V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_ARM64 || V8_TARGET_ARCH_X64 || | |
1239 // SIMD_LOWERING_TARGET || V8_TARGET_ARCH_MIPS || V8_TARGET_ARCH_MIPS64 | |
1240 | 1227 |
1241 #if V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_ARM64 || SIMD_LOWERING_TARGET || \ | |
1242 V8_TARGET_ARCH_MIPS || V8_TARGET_ARCH_MIPS64 | |
1243 WASM_SIMD_TEST(I16x8LtS) { RunI16x8CompareOpTest(kExprI16x8LtS, Less); } | 1228 WASM_SIMD_TEST(I16x8LtS) { RunI16x8CompareOpTest(kExprI16x8LtS, Less); } |
1244 | 1229 |
1245 WASM_SIMD_TEST(I16x8LeS) { RunI16x8CompareOpTest(kExprI16x8LeS, LessEqual); } | 1230 WASM_SIMD_TEST(I16x8LeS) { RunI16x8CompareOpTest(kExprI16x8LeS, LessEqual); } |
1246 | 1231 |
1247 WASM_SIMD_TEST(I16x8GtS) { RunI16x8CompareOpTest(kExprI16x8GtS, Greater); } | 1232 WASM_SIMD_TEST(I16x8GtS) { RunI16x8CompareOpTest(kExprI16x8GtS, Greater); } |
1248 | 1233 |
1249 WASM_SIMD_TEST(I16x8GeS) { RunI16x8CompareOpTest(kExprI16x8GeS, GreaterEqual); } | 1234 WASM_SIMD_TEST(I16x8GeS) { RunI16x8CompareOpTest(kExprI16x8GeS, GreaterEqual); } |
1250 | 1235 |
1251 WASM_SIMD_TEST(I16x8GtU) { | 1236 WASM_SIMD_TEST(I16x8GtU) { |
1252 RunI16x8CompareOpTest(kExprI16x8GtU, UnsignedGreater); | 1237 RunI16x8CompareOpTest(kExprI16x8GtU, UnsignedGreater); |
1253 } | 1238 } |
1254 | 1239 |
1255 WASM_SIMD_TEST(I16x8GeU) { | 1240 WASM_SIMD_TEST(I16x8GeU) { |
1256 RunI16x8CompareOpTest(kExprI16x8GeU, UnsignedGreaterEqual); | 1241 RunI16x8CompareOpTest(kExprI16x8GeU, UnsignedGreaterEqual); |
1257 } | 1242 } |
1258 | 1243 |
1259 WASM_SIMD_TEST(I16x8LtU) { RunI16x8CompareOpTest(kExprI16x8LtU, UnsignedLess); } | 1244 WASM_SIMD_TEST(I16x8LtU) { RunI16x8CompareOpTest(kExprI16x8LtU, UnsignedLess); } |
1260 | 1245 |
1261 WASM_SIMD_TEST(I16x8LeU) { | 1246 WASM_SIMD_TEST(I16x8LeU) { |
1262 RunI16x8CompareOpTest(kExprI16x8LeU, UnsignedLessEqual); | 1247 RunI16x8CompareOpTest(kExprI16x8LeU, UnsignedLessEqual); |
1263 } | 1248 } |
1264 #endif // V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_ARM64 || SIMD_LOWERING_TARGET || | |
1265 // V8_TARGET_ARCH_MIPS || V8_TARGET_ARCH_MIPS64 | |
1266 | 1249 |
1267 #if V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_ARM64 || V8_TARGET_ARCH_X64 || \ | |
1268 SIMD_LOWERING_TARGET || V8_TARGET_ARCH_MIPS || V8_TARGET_ARCH_MIPS64 | |
1269 void RunI16x8ShiftOpTest(WasmOpcode simd_op, Int16ShiftOp expected_op, | 1250 void RunI16x8ShiftOpTest(WasmOpcode simd_op, Int16ShiftOp expected_op, |
1270 int shift) { | 1251 int shift) { |
1271 WasmRunner<int32_t, int32_t, int32_t> r(kExecuteCompiled); | 1252 WasmRunner<int32_t, int32_t, int32_t> r(kExecuteCompiled); |
1272 byte a = 0; | 1253 byte a = 0; |
1273 byte expected = 1; | 1254 byte expected = 1; |
1274 byte simd = r.AllocateLocal(kWasmS128); | 1255 byte simd = r.AllocateLocal(kWasmS128); |
1275 BUILD(r, WASM_SET_LOCAL(simd, WASM_SIMD_I16x8_SPLAT(WASM_GET_LOCAL(a))), | 1256 BUILD(r, WASM_SET_LOCAL(simd, WASM_SIMD_I16x8_SPLAT(WASM_GET_LOCAL(a))), |
1276 WASM_SET_LOCAL( | 1257 WASM_SET_LOCAL( |
1277 simd, WASM_SIMD_SHIFT_OP(simd_op, shift, WASM_GET_LOCAL(simd))), | 1258 simd, WASM_SIMD_SHIFT_OP(simd_op, shift, WASM_GET_LOCAL(simd))), |
1278 WASM_SIMD_CHECK_SPLAT8(I16x8, simd, I32, expected), WASM_ONE); | 1259 WASM_SIMD_CHECK_SPLAT8(I16x8, simd, I32, expected), WASM_ONE); |
1279 | 1260 |
1280 FOR_INT16_INPUTS(i) { CHECK_EQ(1, r.Call(*i, expected_op(*i, shift))); } | 1261 FOR_INT16_INPUTS(i) { CHECK_EQ(1, r.Call(*i, expected_op(*i, shift))); } |
1281 } | 1262 } |
1282 | 1263 |
1283 WASM_SIMD_TEST(I16x8Shl) { | 1264 WASM_SIMD_TEST(I16x8Shl) { |
1284 RunI16x8ShiftOpTest(kExprI16x8Shl, LogicalShiftLeft, 1); | 1265 RunI16x8ShiftOpTest(kExprI16x8Shl, LogicalShiftLeft, 1); |
1285 } | 1266 } |
1286 | 1267 |
1287 WASM_SIMD_TEST(I16x8ShrS) { | 1268 WASM_SIMD_TEST(I16x8ShrS) { |
1288 RunI16x8ShiftOpTest(kExprI16x8ShrS, ArithmeticShiftRight, 1); | 1269 RunI16x8ShiftOpTest(kExprI16x8ShrS, ArithmeticShiftRight, 1); |
1289 } | 1270 } |
1290 | 1271 |
1291 WASM_SIMD_TEST(I16x8ShrU) { | 1272 WASM_SIMD_TEST(I16x8ShrU) { |
1292 RunI16x8ShiftOpTest(kExprI16x8ShrU, LogicalShiftRight, 1); | 1273 RunI16x8ShiftOpTest(kExprI16x8ShrU, LogicalShiftRight, 1); |
1293 } | 1274 } |
1294 #endif // V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_ARM64 || V8_TARGET_ARCH_X64 || | |
1295 // SIMD_LOWERING_TARGET || V8_TARGET_ARCH_MIPS || V8_TARGET_ARCH_MIPS64 | |
1296 | 1275 |
1297 #if V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_ARM64 || V8_TARGET_ARCH_MIPS || \ | |
1298 V8_TARGET_ARCH_MIPS64 || SIMD_LOWERING_TARGET | |
1299 void RunI8x16UnOpTest(WasmOpcode simd_op, Int8UnOp expected_op) { | 1276 void RunI8x16UnOpTest(WasmOpcode simd_op, Int8UnOp expected_op) { |
1300 WasmRunner<int32_t, int32_t, int32_t> r(kExecuteCompiled); | 1277 WasmRunner<int32_t, int32_t, int32_t> r(kExecuteCompiled); |
1301 byte a = 0; | 1278 byte a = 0; |
1302 byte expected = 1; | 1279 byte expected = 1; |
1303 byte simd = r.AllocateLocal(kWasmS128); | 1280 byte simd = r.AllocateLocal(kWasmS128); |
1304 BUILD(r, WASM_SET_LOCAL(simd, WASM_SIMD_I8x16_SPLAT(WASM_GET_LOCAL(a))), | 1281 BUILD(r, WASM_SET_LOCAL(simd, WASM_SIMD_I8x16_SPLAT(WASM_GET_LOCAL(a))), |
1305 WASM_SET_LOCAL(simd, WASM_SIMD_UNOP(simd_op, WASM_GET_LOCAL(simd))), | 1282 WASM_SET_LOCAL(simd, WASM_SIMD_UNOP(simd_op, WASM_GET_LOCAL(simd))), |
1306 WASM_SIMD_CHECK_SPLAT16(I8x16, simd, I32, expected), WASM_ONE); | 1283 WASM_SIMD_CHECK_SPLAT16(I8x16, simd, I32, expected), WASM_ONE); |
1307 | 1284 |
1308 FOR_INT8_INPUTS(i) { CHECK_EQ(1, r.Call(*i, expected_op(*i))); } | 1285 FOR_INT8_INPUTS(i) { CHECK_EQ(1, r.Call(*i, expected_op(*i))); } |
1309 } | 1286 } |
1310 | 1287 |
1311 WASM_SIMD_TEST(I8x16Neg) { RunI8x16UnOpTest(kExprI8x16Neg, Negate); } | 1288 WASM_SIMD_TEST(I8x16Neg) { RunI8x16UnOpTest(kExprI8x16Neg, Negate); } |
1312 #endif // V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_ARM64 || V8_TARGET_ARCH_MIPS || | 1289 #endif // V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_ARM64 || V8_TARGET_ARCH_X64 || |
1313 // V8_TARGET_ARCH_MIPS64 || SIMD_LOWERING_TARGET | 1290 // SIMD_LOWERING_TARGET || V8_TARGET_ARCH_MIPS || V8_TARGET_ARCH_MIPS64 |
1314 | 1291 |
1315 #if V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_ARM64 || V8_TARGET_ARCH_MIPS || \ | 1292 #if V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_ARM64 || V8_TARGET_ARCH_MIPS || \ |
1316 V8_TARGET_ARCH_MIPS64 | 1293 V8_TARGET_ARCH_MIPS64 |
1317 // Tests both signed and unsigned conversion from I16x8 (packing). | 1294 // Tests both signed and unsigned conversion from I16x8 (packing). |
1318 WASM_SIMD_TEST(I8x16ConvertI16x8) { | 1295 WASM_SIMD_TEST(I8x16ConvertI16x8) { |
1319 WasmRunner<int32_t, int32_t, int32_t, int32_t> r(kExecuteCompiled); | 1296 WasmRunner<int32_t, int32_t, int32_t, int32_t> r(kExecuteCompiled); |
1320 byte a = 0; | 1297 byte a = 0; |
1321 byte packed_signed = 1; | 1298 byte packed_signed = 1; |
1322 byte packed_unsigned = 2; | 1299 byte packed_unsigned = 2; |
1323 byte simd0 = r.AllocateLocal(kWasmS128); | 1300 byte simd0 = r.AllocateLocal(kWasmS128); |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1410 WASM_SIMD_CHECK_SPLAT16(I8x16, simd1, I32, expected), WASM_ONE); | 1387 WASM_SIMD_CHECK_SPLAT16(I8x16, simd1, I32, expected), WASM_ONE); |
1411 | 1388 |
1412 FOR_INT8_INPUTS(i) { | 1389 FOR_INT8_INPUTS(i) { |
1413 FOR_INT8_INPUTS(j) { CHECK_EQ(1, r.Call(*i, *j, expected_op(*i, *j))); } | 1390 FOR_INT8_INPUTS(j) { CHECK_EQ(1, r.Call(*i, *j, expected_op(*i, *j))); } |
1414 } | 1391 } |
1415 } | 1392 } |
1416 | 1393 |
1417 WASM_SIMD_TEST(I8x16Eq) { RunI8x16CompareOpTest(kExprI8x16Eq, Equal); } | 1394 WASM_SIMD_TEST(I8x16Eq) { RunI8x16CompareOpTest(kExprI8x16Eq, Equal); } |
1418 | 1395 |
1419 WASM_SIMD_TEST(I8x16Ne) { RunI8x16CompareOpTest(kExprI8x16Ne, NotEqual); } | 1396 WASM_SIMD_TEST(I8x16Ne) { RunI8x16CompareOpTest(kExprI8x16Ne, NotEqual); } |
1420 #endif // V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_ARM64 || V8_TARGET_ARCH_X64 || | |
1421 // SIMD_LOWERING_TARGET || V8_TARGET_ARCH_MIPS || V8_TARGET_ARCH_MIPS64 | |
1422 | 1397 |
1423 #if V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_ARM64 || SIMD_LOWERING_TARGET || \ | |
1424 V8_TARGET_ARCH_MIPS || V8_TARGET_ARCH_MIPS64 | |
1425 WASM_SIMD_TEST(I8x16Mul) { RunI8x16BinOpTest(kExprI8x16Mul, Mul); } | |
1426 #endif // V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_ARM64 || V8_TARGET_ARCH_X64 || | |
1427 // V8_TARGET_ARCH_MIPS || V8_TARGET_ARCH_MIPS64 | |
1428 | |
1429 #if V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_ARM64 || SIMD_LOWERING_TARGET || \ | |
1430 V8_TARGET_ARCH_MIPS || V8_TARGET_ARCH_MIPS64 | |
1431 WASM_SIMD_TEST(I8x16GtS) { RunI8x16CompareOpTest(kExprI8x16GtS, Greater); } | 1398 WASM_SIMD_TEST(I8x16GtS) { RunI8x16CompareOpTest(kExprI8x16GtS, Greater); } |
1432 | 1399 |
1433 WASM_SIMD_TEST(I8x16GeS) { RunI8x16CompareOpTest(kExprI8x16GeS, GreaterEqual); } | 1400 WASM_SIMD_TEST(I8x16GeS) { RunI8x16CompareOpTest(kExprI8x16GeS, GreaterEqual); } |
1434 | 1401 |
1435 WASM_SIMD_TEST(I8x16LtS) { RunI8x16CompareOpTest(kExprI8x16LtS, Less); } | 1402 WASM_SIMD_TEST(I8x16LtS) { RunI8x16CompareOpTest(kExprI8x16LtS, Less); } |
1436 | 1403 |
1437 WASM_SIMD_TEST(I8x16LeS) { RunI8x16CompareOpTest(kExprI8x16LeS, LessEqual); } | 1404 WASM_SIMD_TEST(I8x16LeS) { RunI8x16CompareOpTest(kExprI8x16LeS, LessEqual); } |
1438 | 1405 |
1439 WASM_SIMD_TEST(I8x16GtU) { | 1406 WASM_SIMD_TEST(I8x16GtU) { |
1440 RunI8x16CompareOpTest(kExprI8x16GtU, UnsignedGreater); | 1407 RunI8x16CompareOpTest(kExprI8x16GtU, UnsignedGreater); |
1441 } | 1408 } |
1442 | 1409 |
1443 WASM_SIMD_TEST(I8x16GeU) { | 1410 WASM_SIMD_TEST(I8x16GeU) { |
1444 RunI8x16CompareOpTest(kExprI8x16GeU, UnsignedGreaterEqual); | 1411 RunI8x16CompareOpTest(kExprI8x16GeU, UnsignedGreaterEqual); |
1445 } | 1412 } |
1446 | 1413 |
1447 WASM_SIMD_TEST(I8x16LtU) { RunI8x16CompareOpTest(kExprI8x16LtU, UnsignedLess); } | 1414 WASM_SIMD_TEST(I8x16LtU) { RunI8x16CompareOpTest(kExprI8x16LtU, UnsignedLess); } |
1448 | 1415 |
1449 WASM_SIMD_TEST(I8x16LeU) { | 1416 WASM_SIMD_TEST(I8x16LeU) { |
1450 RunI8x16CompareOpTest(kExprI8x16LeU, UnsignedLessEqual); | 1417 RunI8x16CompareOpTest(kExprI8x16LeU, UnsignedLessEqual); |
1451 } | 1418 } |
1452 #endif // V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_ARM64 || SIMD_LOWERING_TARGET | 1419 #endif // V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_ARM64 || V8_TARGET_ARCH_X64 || |
1453 // || V8_TARGET_ARCH_MIPS || V8_TARGET_ARCH_MIPS64 | 1420 // SIMD_LOWERING_TARGET || V8_TARGET_ARCH_MIPS || V8_TARGET_ARCH_MIPS64 |
| 1421 |
| 1422 #if V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_ARM64 || SIMD_LOWERING_TARGET || \ |
| 1423 V8_TARGET_ARCH_MIPS || V8_TARGET_ARCH_MIPS64 |
| 1424 WASM_SIMD_TEST(I8x16Mul) { RunI8x16BinOpTest(kExprI8x16Mul, Mul); } |
| 1425 #endif // V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_ARM64 || V8_TARGET_ARCH_X64 || |
| 1426 // V8_TARGET_ARCH_MIPS || V8_TARGET_ARCH_MIPS64 |
1454 | 1427 |
1455 void RunI8x16ShiftOpTest(WasmOpcode simd_op, Int8ShiftOp expected_op, | 1428 void RunI8x16ShiftOpTest(WasmOpcode simd_op, Int8ShiftOp expected_op, |
1456 int shift) { | 1429 int shift) { |
1457 WasmRunner<int32_t, int32_t, int32_t> r(kExecuteCompiled); | 1430 WasmRunner<int32_t, int32_t, int32_t> r(kExecuteCompiled); |
1458 byte a = 0; | 1431 byte a = 0; |
1459 byte expected = 1; | 1432 byte expected = 1; |
1460 byte simd = r.AllocateLocal(kWasmS128); | 1433 byte simd = r.AllocateLocal(kWasmS128); |
1461 BUILD(r, WASM_SET_LOCAL(simd, WASM_SIMD_I8x16_SPLAT(WASM_GET_LOCAL(a))), | 1434 BUILD(r, WASM_SET_LOCAL(simd, WASM_SIMD_I8x16_SPLAT(WASM_GET_LOCAL(a))), |
1462 WASM_SET_LOCAL( | 1435 WASM_SET_LOCAL( |
1463 simd, WASM_SIMD_SHIFT_OP(simd_op, shift, WASM_GET_LOCAL(simd))), | 1436 simd, WASM_SIMD_SHIFT_OP(simd_op, shift, WASM_GET_LOCAL(simd))), |
1464 WASM_SIMD_CHECK_SPLAT16(I8x16, simd, I32, expected), WASM_ONE); | 1437 WASM_SIMD_CHECK_SPLAT16(I8x16, simd, I32, expected), WASM_ONE); |
1465 | 1438 |
1466 FOR_INT8_INPUTS(i) { CHECK_EQ(1, r.Call(*i, expected_op(*i, shift))); } | 1439 FOR_INT8_INPUTS(i) { CHECK_EQ(1, r.Call(*i, expected_op(*i, shift))); } |
1467 } | 1440 } |
1468 | 1441 |
1469 #if V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_ARM64 || V8_TARGET_ARCH_MIPS || \ | 1442 #if V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_ARM64 || V8_TARGET_ARCH_MIPS || \ |
1470 V8_TARGET_ARCH_MIPS64 || SIMD_LOWERING_TARGET | 1443 V8_TARGET_ARCH_MIPS64 || SIMD_LOWERING_TARGET |
1471 WASM_SIMD_TEST(I8x16Shl) { | 1444 WASM_SIMD_TEST(I8x16Shl) { |
1472 RunI8x16ShiftOpTest(kExprI8x16Shl, LogicalShiftLeft, 1); | 1445 RunI8x16ShiftOpTest(kExprI8x16Shl, LogicalShiftLeft, 1); |
1473 } | 1446 } |
1474 | 1447 |
1475 WASM_SIMD_TEST(I8x16ShrS) { | 1448 WASM_SIMD_TEST(I8x16ShrS) { |
1476 RunI8x16ShiftOpTest(kExprI8x16ShrS, ArithmeticShiftRight, 1); | 1449 RunI8x16ShiftOpTest(kExprI8x16ShrS, ArithmeticShiftRight, 1); |
1477 } | 1450 } |
| 1451 |
| 1452 WASM_SIMD_TEST(I8x16ShrU) { |
| 1453 RunI8x16ShiftOpTest(kExprI8x16ShrU, LogicalShiftRight, 1); |
| 1454 } |
1478 #endif // V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_ARM64 || V8_TARGET_ARCH_MIPS || | 1455 #endif // V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_ARM64 || V8_TARGET_ARCH_MIPS || |
1479 // V8_TARGET_ARCH_MIPS64 || SIMD_LOWERING_TARGET | 1456 // V8_TARGET_ARCH_MIPS64 || SIMD_LOWERING_TARGET |
1480 | 1457 |
1481 #if V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_ARM64 || SIMD_LOWERING_TARGET || \ | |
1482 V8_TARGET_ARCH_MIPS || V8_TARGET_ARCH_MIPS64 | |
1483 WASM_SIMD_TEST(I8x16ShrU) { | |
1484 RunI8x16ShiftOpTest(kExprI8x16ShrU, LogicalShiftRight, 1); | |
1485 } | |
1486 #endif // V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_ARM64 || SIMD_LOWERING_TARGET || | |
1487 // V8_TARGET_ARCH_MIPS || V8_TARGET_ARCH_MIPS64 | |
1488 | |
1489 #if V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_ARM64 || V8_TARGET_ARCH_X64 || \ | 1458 #if V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_ARM64 || V8_TARGET_ARCH_X64 || \ |
1490 V8_TARGET_ARCH_MIPS || V8_TARGET_ARCH_MIPS64 | 1459 V8_TARGET_ARCH_MIPS || V8_TARGET_ARCH_MIPS64 |
1491 // Test Select by making a mask where the 0th and 3rd lanes are true and the | 1460 // Test Select by making a mask where the 0th and 3rd lanes are true and the |
1492 // rest false, and comparing for non-equality with zero to convert to a boolean | 1461 // rest false, and comparing for non-equality with zero to convert to a boolean |
1493 // vector. | 1462 // vector. |
1494 #define WASM_SIMD_SELECT_TEST(format) \ | 1463 #define WASM_SIMD_SELECT_TEST(format) \ |
1495 WASM_SIMD_TEST(S##format##Select) { \ | 1464 WASM_SIMD_TEST(S##format##Select) { \ |
1496 WasmRunner<int32_t, int32_t, int32_t> r(kExecuteCompiled); \ | 1465 WasmRunner<int32_t, int32_t, int32_t> r(kExecuteCompiled); \ |
1497 byte val1 = 0; \ | 1466 byte val1 = 0; \ |
1498 byte val2 = 1; \ | 1467 byte val2 = 1; \ |
(...skipping 712 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2211 WASM_SIMD_I32x4_EXTRACT_LANE(0, WASM_SIMD_LOAD_MEM(WASM_ZERO))); | 2180 WASM_SIMD_I32x4_EXTRACT_LANE(0, WASM_SIMD_LOAD_MEM(WASM_ZERO))); |
2212 | 2181 |
2213 FOR_INT32_INPUTS(i) { | 2182 FOR_INT32_INPUTS(i) { |
2214 int32_t expected = *i; | 2183 int32_t expected = *i; |
2215 r.module().WriteMemory(&memory[0], expected); | 2184 r.module().WriteMemory(&memory[0], expected); |
2216 CHECK_EQ(expected, r.Call()); | 2185 CHECK_EQ(expected, r.Call()); |
2217 } | 2186 } |
2218 } | 2187 } |
2219 #endif // V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_ARM64 || SIMD_LOWERING_TARGET || | 2188 #endif // V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_ARM64 || SIMD_LOWERING_TARGET || |
2220 // V8_TARGET_ARCH_X64 || V8_TARGET_ARCH_MIPS || V8_TARGET_ARCH_MIPS64 | 2189 // V8_TARGET_ARCH_X64 || V8_TARGET_ARCH_MIPS || V8_TARGET_ARCH_MIPS64 |
OLD | NEW |