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