Index: test/cctest/wasm/test-run-wasm-simd.cc |
diff --git a/test/cctest/wasm/test-run-wasm-simd.cc b/test/cctest/wasm/test-run-wasm-simd.cc |
index b69eefce5e635091ef3263005ed8f3c56ee1d7f3..36eac8b9574ad27813a168e555074803d32afe6e 100644 |
--- a/test/cctest/wasm/test-run-wasm-simd.cc |
+++ b/test/cctest/wasm/test-run-wasm-simd.cc |
@@ -75,7 +75,8 @@ T Maximum(T a, T b) { |
} |
// For float operands, Min and Max must return NaN if either operand is NaN. |
-#if V8_TARGET_ARCH_ARM || SIMD_LOWERING_TARGET |
+#if V8_TARGET_ARCH_ARM || SIMD_LOWERING_TARGET || V8_TARGET_ARCH_MIPS || \ |
+ V8_TARGET_ARCH_MIPS64 |
template <> |
float Minimum(float a, float b) { |
if (std::isnan(a) || std::isnan(b)) |
@@ -89,7 +90,8 @@ float Maximum(float a, float b) { |
return std::numeric_limits<float>::quiet_NaN(); |
return a >= b ? a : b; |
} |
-#endif // V8_TARGET_ARCH_ARM || SIMD_LOWERING_TARGET |
+#endif // V8_TARGET_ARCH_ARM || SIMD_LOWERING_TARGET || V8_TARGET_ARCH_MIPS || |
+ // V8_TARGET_ARCH_MIPS64 |
template <typename T> |
T UnsignedMinimum(T a, T b) { |
@@ -485,7 +487,8 @@ WASM_EXEC_COMPILED_TEST(F32x4ConvertI32x4) { |
#endif // V8_TARGET_ARCH_ARM || SIMD_LOWERING_TARGET || V8_TARGET_ARCH_MIPS || |
// V8_TARGET_ARCH_MIPS64 |
-#if V8_TARGET_ARCH_ARM || SIMD_LOWERING_TARGET |
+#if V8_TARGET_ARCH_ARM || SIMD_LOWERING_TARGET || V8_TARGET_ARCH_MIPS || \ |
+ V8_TARGET_ARCH_MIPS64 |
void RunF32x4UnOpTest(WasmOpcode simd_op, FloatUnOp expected_op, |
float error = 0.0f) { |
FLAG_wasm_simd_prototype = true; |
@@ -510,13 +513,14 @@ void RunF32x4UnOpTest(WasmOpcode simd_op, FloatUnOp expected_op, |
WASM_EXEC_COMPILED_TEST(F32x4Abs) { RunF32x4UnOpTest(kExprF32x4Abs, std::abs); } |
WASM_EXEC_COMPILED_TEST(F32x4Neg) { RunF32x4UnOpTest(kExprF32x4Neg, Negate); } |
-#endif // V8_TARGET_ARCH_ARM || SIMD_LOWERING_TARGET |
+#endif // V8_TARGET_ARCH_ARM || SIMD_LOWERING_TARGET || V8_TARGET_ARCH_MIPS || |
+ // V8_TARGET_ARCH_MIPS64 |
#if SIMD_LOWERING_TARGET |
WASM_EXEC_COMPILED_TEST(F32x4Sqrt) { RunF32x4UnOpTest(kExprF32x4Sqrt, Sqrt); } |
#endif // SIMD_LOWERING_TARGET |
-#if V8_TARGET_ARCH_ARM |
+#if V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_MIPS || V8_TARGET_ARCH_MIPS64 |
static const float kApproxError = 0.01f; |
WASM_EXEC_COMPILED_TEST(F32x4RecipApprox) { |
@@ -526,9 +530,10 @@ WASM_EXEC_COMPILED_TEST(F32x4RecipApprox) { |
WASM_EXEC_COMPILED_TEST(F32x4RecipSqrtApprox) { |
RunF32x4UnOpTest(kExprF32x4RecipSqrtApprox, RecipSqrt, kApproxError); |
} |
-#endif // V8_TARGET_ARCH_ARM |
+#endif // V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_MIPS || V8_TARGET_ARCH_MIPS64 |
-#if V8_TARGET_ARCH_ARM || SIMD_LOWERING_TARGET |
+#if V8_TARGET_ARCH_ARM || SIMD_LOWERING_TARGET || V8_TARGET_ARCH_MIPS || \ |
+ V8_TARGET_ARCH_MIPS64 |
void RunF32x4BinOpTest(WasmOpcode simd_op, FloatBinOp expected_op) { |
FLAG_wasm_simd_prototype = true; |
WasmRunner<int32_t, float, float, float> r(kExecuteCompiled); |
@@ -563,13 +568,14 @@ WASM_EXEC_COMPILED_TEST(F32x4_Min) { |
WASM_EXEC_COMPILED_TEST(F32x4_Max) { |
RunF32x4BinOpTest(kExprF32x4Max, Maximum); |
} |
-#endif // V8_TARGET_ARCH_ARM || SIMD_LOWERING_TARGET |
+#endif // V8_TARGET_ARCH_ARM || SIMD_LOWERING_TARGET || V8_TARGET_ARCH_MIPS || |
+ // V8_TARGET_ARCH_MIPS64 |
#if SIMD_LOWERING_TARGET |
WASM_EXEC_COMPILED_TEST(F32x4Div) { RunF32x4BinOpTest(kExprF32x4Div, Div); } |
#endif // SIMD_LOWERING_TARGET |
-#if V8_TARGET_ARCH_ARM |
+#if V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_MIPS || V8_TARGET_ARCH_MIPS64 |
WASM_EXEC_COMPILED_TEST(F32x4RecipRefine) { |
RunF32x4BinOpTest(kExprF32x4RecipRefine, RecipRefine); |
} |
@@ -577,9 +583,10 @@ WASM_EXEC_COMPILED_TEST(F32x4RecipRefine) { |
WASM_EXEC_COMPILED_TEST(F32x4RecipSqrtRefine) { |
RunF32x4BinOpTest(kExprF32x4RecipSqrtRefine, RecipSqrtRefine); |
} |
-#endif // V8_TARGET_ARCH_ARM |
+#endif // V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_MIPS || V8_TARGET_ARCH_MIPS64 |
-#if V8_TARGET_ARCH_ARM || SIMD_LOWERING_TARGET |
+#if V8_TARGET_ARCH_ARM || SIMD_LOWERING_TARGET || V8_TARGET_ARCH_MIPS || \ |
+ V8_TARGET_ARCH_MIPS64 |
void RunF32x4CompareOpTest(WasmOpcode simd_op, FloatCompareOp expected_op) { |
FLAG_wasm_simd_prototype = true; |
WasmRunner<int32_t, float, float, int32_t> r(kExecuteCompiled); |
@@ -626,7 +633,8 @@ WASM_EXEC_COMPILED_TEST(F32x4Lt) { RunF32x4CompareOpTest(kExprF32x4Lt, Less); } |
WASM_EXEC_COMPILED_TEST(F32x4Le) { |
RunF32x4CompareOpTest(kExprF32x4Le, LessEqual); |
} |
-#endif // V8_TARGET_ARCH_ARM || SIMD_LOWERING_TARGET |
+#endif // V8_TARGET_ARCH_ARM || SIMD_LOWERING_TARGET || V8_TARGET_ARCH_MIPS || |
+ // V8_TARGET_ARCH_MIPS64 |
WASM_EXEC_COMPILED_TEST(I32x4Splat) { |
FLAG_wasm_simd_prototype = true; |
@@ -862,7 +870,8 @@ WASM_EXEC_COMPILED_TEST(I8x16ReplaceLane) { |
} |
#endif // V8_TARGET_ARCH_ARM |
-#if V8_TARGET_ARCH_ARM || SIMD_LOWERING_TARGET |
+#if V8_TARGET_ARCH_ARM || SIMD_LOWERING_TARGET || V8_TARGET_ARCH_MIPS || \ |
+ V8_TARGET_ARCH_MIPS64 |
// Determines if conversion from float to int will be valid. |
bool CanRoundToZeroAndConvert(double val, bool unsigned_integer) { |
const double max_uint = static_cast<double>(0xffffffffu); |
@@ -928,6 +937,8 @@ WASM_EXEC_COMPILED_TEST(I32x4ConvertF32x4) { |
CHECK_EQ(1, r.Call(*i, signed_value, unsigned_value)); |
} |
} |
+#endif // V8_TARGET_ARCH_ARM || SIMD_LOWERING_TARGET || V8_TARGET_ARCH_MIPS || |
+ // V8_TARGET_ARCH_MIPS64 |
#if V8_TARGET_ARCH_ARM |
// Tests both signed and unsigned conversion from I16x8 (unpacking). |
@@ -956,6 +967,7 @@ WASM_EXEC_COMPILED_TEST(I32x4ConvertI16x8) { |
} |
#endif // V8_TARGET_ARCH_ARM |
+#if V8_TARGET_ARCH_ARM || SIMD_LOWERING_TARGET |
void RunI32x4UnOpTest(WasmOpcode simd_op, Int32UnOp expected_op) { |
FLAG_wasm_simd_prototype = true; |
WasmRunner<int32_t, int32_t, int32_t> r(kExecuteCompiled); |