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 bd0133a3b72bf6ad478e3d8bce392a7fc1f77e79..770add6b3549598a9ce1067c658083efbadd35c5 100644 |
--- a/test/cctest/wasm/test-run-wasm-simd.cc |
+++ b/test/cctest/wasm/test-run-wasm-simd.cc |
@@ -1569,8 +1569,9 @@ WASM_SIMD_SELECT_TEST(8x16) |
#endif // V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_X64 |
#if V8_TARGET_ARCH_ARM |
+// Test unary ops with a lane test pattern, all lanes distinct. |
template <typename T> |
-void RunUnaryPermuteOpTest( |
+void RunUnaryLaneOpTest( |
WasmOpcode simd_op, |
const std::array<T, kSimd128Size / sizeof(T)>& expected) { |
FLAG_wasm_simd_prototype = true; |
@@ -1591,35 +1592,35 @@ void RunUnaryPermuteOpTest( |
} |
WASM_EXEC_COMPILED_TEST(S32x2Reverse) { |
- RunUnaryPermuteOpTest<int32_t>(kExprS32x2Reverse, {{1, 0, 3, 2}}); |
+ RunUnaryLaneOpTest<int32_t>(kExprS32x2Reverse, {{1, 0, 3, 2}}); |
} |
WASM_EXEC_COMPILED_TEST(S16x4Reverse) { |
- RunUnaryPermuteOpTest<int16_t>(kExprS16x4Reverse, {{3, 2, 1, 0, 7, 6, 5, 4}}); |
+ RunUnaryLaneOpTest<int16_t>(kExprS16x4Reverse, {{3, 2, 1, 0, 7, 6, 5, 4}}); |
} |
WASM_EXEC_COMPILED_TEST(S16x2Reverse) { |
- RunUnaryPermuteOpTest<int16_t>(kExprS16x2Reverse, {{1, 0, 3, 2, 5, 4, 7, 6}}); |
+ RunUnaryLaneOpTest<int16_t>(kExprS16x2Reverse, {{1, 0, 3, 2, 5, 4, 7, 6}}); |
} |
WASM_EXEC_COMPILED_TEST(S8x8Reverse) { |
- RunUnaryPermuteOpTest<int8_t>(kExprS8x8Reverse, {{7, 6, 5, 4, 3, 2, 1, 0, 15, |
- 14, 13, 12, 11, 10, 9, 8}}); |
+ RunUnaryLaneOpTest<int8_t>(kExprS8x8Reverse, {{7, 6, 5, 4, 3, 2, 1, 0, 15, 14, |
+ 13, 12, 11, 10, 9, 8}}); |
} |
WASM_EXEC_COMPILED_TEST(S8x4Reverse) { |
- RunUnaryPermuteOpTest<int8_t>(kExprS8x4Reverse, {{3, 2, 1, 0, 7, 6, 5, 4, 11, |
- 10, 9, 8, 15, 14, 13, 12}}); |
+ RunUnaryLaneOpTest<int8_t>(kExprS8x4Reverse, {{3, 2, 1, 0, 7, 6, 5, 4, 11, 10, |
+ 9, 8, 15, 14, 13, 12}}); |
} |
WASM_EXEC_COMPILED_TEST(S8x2Reverse) { |
- RunUnaryPermuteOpTest<int8_t>( |
- kExprS8x2Reverse, |
- {{1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14}}); |
+ RunUnaryLaneOpTest<int8_t>(kExprS8x2Reverse, {{1, 0, 3, 2, 5, 4, 7, 6, 9, 8, |
+ 11, 10, 13, 12, 15, 14}}); |
} |
+// Test binary ops with two lane test patterns, all lanes distinct. |
template <typename T> |
-void RunBinaryPermuteOpTest( |
+void RunBinaryLaneOpTest( |
WasmOpcode simd_op, |
const std::array<T, kSimd128Size / sizeof(T)>& expected) { |
FLAG_wasm_simd_prototype = true; |
@@ -1643,92 +1644,104 @@ void RunBinaryPermuteOpTest( |
} |
} |
+WASM_EXEC_COMPILED_TEST(F32x4AddHoriz) { |
+ RunBinaryLaneOpTest<float>(kExprF32x4AddHoriz, {{1.0f, 5.0f, 9.0f, 13.0f}}); |
+} |
+ |
+WASM_EXEC_COMPILED_TEST(I32x4AddHoriz) { |
+ RunBinaryLaneOpTest<int32_t>(kExprI32x4AddHoriz, {{1, 5, 9, 13}}); |
+} |
+ |
+WASM_EXEC_COMPILED_TEST(I16x8AddHoriz) { |
+ RunBinaryLaneOpTest<int16_t>(kExprI16x8AddHoriz, |
+ {{1, 5, 9, 13, 17, 21, 25, 29}}); |
+} |
+ |
WASM_EXEC_COMPILED_TEST(S32x4ZipLeft) { |
- RunBinaryPermuteOpTest<int32_t>(kExprS32x4ZipLeft, {{0, 4, 1, 5}}); |
+ RunBinaryLaneOpTest<int32_t>(kExprS32x4ZipLeft, {{0, 4, 1, 5}}); |
} |
WASM_EXEC_COMPILED_TEST(S32x4ZipRight) { |
- RunBinaryPermuteOpTest<int32_t>(kExprS32x4ZipRight, {{2, 6, 3, 7}}); |
+ RunBinaryLaneOpTest<int32_t>(kExprS32x4ZipRight, {{2, 6, 3, 7}}); |
} |
WASM_EXEC_COMPILED_TEST(S32x4UnzipLeft) { |
- RunBinaryPermuteOpTest<int32_t>(kExprS32x4UnzipLeft, {{0, 2, 4, 6}}); |
+ RunBinaryLaneOpTest<int32_t>(kExprS32x4UnzipLeft, {{0, 2, 4, 6}}); |
} |
WASM_EXEC_COMPILED_TEST(S32x4UnzipRight) { |
- RunBinaryPermuteOpTest<int32_t>(kExprS32x4UnzipRight, {{1, 3, 5, 7}}); |
+ RunBinaryLaneOpTest<int32_t>(kExprS32x4UnzipRight, {{1, 3, 5, 7}}); |
} |
WASM_EXEC_COMPILED_TEST(S32x4TransposeLeft) { |
- RunBinaryPermuteOpTest<int32_t>(kExprS32x4TransposeLeft, {{0, 4, 2, 6}}); |
+ RunBinaryLaneOpTest<int32_t>(kExprS32x4TransposeLeft, {{0, 4, 2, 6}}); |
} |
WASM_EXEC_COMPILED_TEST(S32x4TransposeRight) { |
- RunBinaryPermuteOpTest<int32_t>(kExprS32x4TransposeRight, {{1, 5, 3, 7}}); |
+ RunBinaryLaneOpTest<int32_t>(kExprS32x4TransposeRight, {{1, 5, 3, 7}}); |
} |
WASM_EXEC_COMPILED_TEST(S16x8ZipLeft) { |
- RunBinaryPermuteOpTest<int16_t>(kExprS16x8ZipLeft, |
- {{0, 8, 1, 9, 2, 10, 3, 11}}); |
+ RunBinaryLaneOpTest<int16_t>(kExprS16x8ZipLeft, {{0, 8, 1, 9, 2, 10, 3, 11}}); |
} |
WASM_EXEC_COMPILED_TEST(S16x8ZipRight) { |
- RunBinaryPermuteOpTest<int16_t>(kExprS16x8ZipRight, |
- {{4, 12, 5, 13, 6, 14, 7, 15}}); |
+ RunBinaryLaneOpTest<int16_t>(kExprS16x8ZipRight, |
+ {{4, 12, 5, 13, 6, 14, 7, 15}}); |
} |
WASM_EXEC_COMPILED_TEST(S16x8UnzipLeft) { |
- RunBinaryPermuteOpTest<int16_t>(kExprS16x8UnzipLeft, |
- {{0, 2, 4, 6, 8, 10, 12, 14}}); |
+ RunBinaryLaneOpTest<int16_t>(kExprS16x8UnzipLeft, |
+ {{0, 2, 4, 6, 8, 10, 12, 14}}); |
} |
WASM_EXEC_COMPILED_TEST(S16x8UnzipRight) { |
- RunBinaryPermuteOpTest<int16_t>(kExprS16x8UnzipRight, |
- {{1, 3, 5, 7, 9, 11, 13, 15}}); |
+ RunBinaryLaneOpTest<int16_t>(kExprS16x8UnzipRight, |
+ {{1, 3, 5, 7, 9, 11, 13, 15}}); |
} |
WASM_EXEC_COMPILED_TEST(S16x8TransposeLeft) { |
- RunBinaryPermuteOpTest<int16_t>(kExprS16x8TransposeLeft, |
- {{0, 8, 2, 10, 4, 12, 6, 14}}); |
+ RunBinaryLaneOpTest<int16_t>(kExprS16x8TransposeLeft, |
+ {{0, 8, 2, 10, 4, 12, 6, 14}}); |
} |
WASM_EXEC_COMPILED_TEST(S16x8TransposeRight) { |
- RunBinaryPermuteOpTest<int16_t>(kExprS16x8TransposeRight, |
- {{1, 9, 3, 11, 5, 13, 7, 15}}); |
+ RunBinaryLaneOpTest<int16_t>(kExprS16x8TransposeRight, |
+ {{1, 9, 3, 11, 5, 13, 7, 15}}); |
} |
WASM_EXEC_COMPILED_TEST(S8x16ZipLeft) { |
- RunBinaryPermuteOpTest<int8_t>( |
+ RunBinaryLaneOpTest<int8_t>( |
kExprS8x16ZipLeft, |
{{0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23}}); |
} |
WASM_EXEC_COMPILED_TEST(S8x16ZipRight) { |
- RunBinaryPermuteOpTest<int8_t>( |
+ RunBinaryLaneOpTest<int8_t>( |
kExprS8x16ZipRight, |
{{8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31}}); |
} |
WASM_EXEC_COMPILED_TEST(S8x16UnzipLeft) { |
- RunBinaryPermuteOpTest<int8_t>( |
+ RunBinaryLaneOpTest<int8_t>( |
kExprS8x16UnzipLeft, |
{{0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30}}); |
} |
WASM_EXEC_COMPILED_TEST(S8x16UnzipRight) { |
- RunBinaryPermuteOpTest<int8_t>( |
+ RunBinaryLaneOpTest<int8_t>( |
kExprS8x16UnzipRight, |
{{1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31}}); |
} |
WASM_EXEC_COMPILED_TEST(S8x16TransposeLeft) { |
- RunBinaryPermuteOpTest<int8_t>( |
+ RunBinaryLaneOpTest<int8_t>( |
kExprS8x16TransposeLeft, |
{{0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30}}); |
} |
WASM_EXEC_COMPILED_TEST(S8x16TransposeRight) { |
- RunBinaryPermuteOpTest<int8_t>( |
+ RunBinaryLaneOpTest<int8_t>( |
kExprS8x16TransposeRight, |
{{1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31}}); |
} |