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 53211ce340fbe8ca88a7f9f6448f3b264df629f5..c0a3cb54dc83e8f89e9c0cabbbc3d1217a84c0f0 100644 |
--- a/test/cctest/wasm/test-run-wasm-simd.cc |
+++ b/test/cctest/wasm/test-run-wasm-simd.cc |
@@ -212,6 +212,11 @@ T Not(T a) { |
return ~a; |
} |
+template <typename T> |
+T Sqrt(T a) { |
+ return std::sqrt(a); |
+} |
+ |
} // namespace |
#if !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_X64 |
@@ -379,9 +384,7 @@ WASM_EXEC_COMPILED_TEST(F32x4ReplaceLane) { |
CHECK_EQ(1, r.Call(3.14159f, -1.5f)); |
} |
-#endif // V8_TARGET_ARCH_ARM || SIMD_LOWERING_TARGET |
-#if V8_TARGET_ARCH_ARM |
// Tests both signed and unsigned conversion. |
WASM_EXEC_COMPILED_TEST(F32x4FromInt32x4) { |
FLAG_wasm_simd_prototype = true; |
@@ -417,13 +420,18 @@ void RunF32x4UnOpTest(WasmOpcode simd_op, FloatUnOp expected_op) { |
FOR_FLOAT32_INPUTS(i) { |
if (std::isnan(*i)) continue; |
+ if (std::isnan(expected_op(*i))) continue; |
CHECK_EQ(1, r.Call(*i, expected_op(*i))); |
} |
} |
WASM_EXEC_COMPILED_TEST(F32x4Abs) { RunF32x4UnOpTest(kExprF32x4Abs, std::abs); } |
WASM_EXEC_COMPILED_TEST(F32x4Neg) { RunF32x4UnOpTest(kExprF32x4Neg, Negate); } |
-#endif // V8_TARGET_ARCH_ARM |
+#endif // V8_TARGET_ARCH_ARM || SIMD_LOWERING_TARGET |
+ |
+#if SIMD_LOWERING_TARGET |
+WASM_EXEC_COMPILED_TEST(F32x4Sqrt) { RunF32x4UnOpTest(kExprF32x4Sqrt, Sqrt); } |
+#endif // SIMD_LOWERING_TARGET |
#if V8_TARGET_ARCH_ARM || SIMD_LOWERING_TARGET |
void RunF32x4BinOpTest(WasmOpcode simd_op, FloatBinOp expected_op, |
@@ -808,7 +816,9 @@ WASM_EXEC_COMPILED_TEST(I32x4FromFloat32x4) { |
CHECK_EQ(1, r.Call(*i, signed_value, unsigned_value)); |
} |
} |
+#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); |
@@ -825,7 +835,7 @@ void RunI32x4UnOpTest(WasmOpcode simd_op, Int32UnOp expected_op) { |
WASM_EXEC_COMPILED_TEST(I32x4Neg) { RunI32x4UnOpTest(kExprI32x4Neg, Negate); } |
WASM_EXEC_COMPILED_TEST(S128Not) { RunI32x4UnOpTest(kExprS128Not, Not); } |
-#endif // V8_TARGET_ARCH_ARM |
+#endif // V8_TARGET_ARCH_ARM || SIMD_LOWERING_TARGET |
void RunI32x4BinOpTest(WasmOpcode simd_op, Int32BinOp expected_op) { |
FLAG_wasm_simd_prototype = true; |