summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/wasm/simd/pairwise-x64-ion-codegen.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/jit-test/tests/wasm/simd/pairwise-x64-ion-codegen.js')
-rw-r--r--js/src/jit-test/tests/wasm/simd/pairwise-x64-ion-codegen.js38
1 files changed, 38 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/wasm/simd/pairwise-x64-ion-codegen.js b/js/src/jit-test/tests/wasm/simd/pairwise-x64-ion-codegen.js
new file mode 100644
index 0000000000..53ab47fdb8
--- /dev/null
+++ b/js/src/jit-test/tests/wasm/simd/pairwise-x64-ion-codegen.js
@@ -0,0 +1,38 @@
+// |jit-test| skip-if: !wasmSimdEnabled() || !hasDisassembler() || wasmCompileMode() != "ion" || !getBuildConfiguration().x64 || getBuildConfiguration().simulator; include:codegen-x64-test.js
+
+// Tests for SIMD add pairwise instructions.
+
+if (!isAvxPresent()) {
+
+ codegenTestX64_IGNOREDxv128_v128(
+ [['i16x8.extadd_pairwise_i8x16_s', `
+66 0f 6f 05 ${RIPRADDR} movdqax ${RIPR}, %xmm0
+66 0f 38 04 c1 pmaddubsw %xmm1, %xmm0`],
+ ['i16x8.extadd_pairwise_i8x16_u', `
+66 0f 6f c1 movdqa %xmm1, %xmm0
+66 0f 38 04 05 ${RIPRADDR} pmaddubswx ${RIPR}, %xmm0`],
+ ['i32x4.extadd_pairwise_i16x8_s', `
+66 0f 6f c1 movdqa %xmm1, %xmm0
+66 0f f5 05 ${RIPRADDR} pmaddwdx ${RIPR}, %xmm0`],
+ ['i32x4.extadd_pairwise_i16x8_u', `
+66 0f 6f c1 movdqa %xmm1, %xmm0
+66 0f ef 05 ${RIPRADDR} pxorx ${RIPR}, %xmm0
+66 0f f5 05 ${RIPRADDR} pmaddwdx ${RIPR}, %xmm0
+66 0f fe 05 ${RIPRADDR} padddx ${RIPR}, %xmm0`]]);
+
+} else {
+
+ codegenTestX64_IGNOREDxv128_v128(
+ [['i16x8.extadd_pairwise_i8x16_s', `
+66 0f 6f 05 ${RIPRADDR} movdqax ${RIPR}, %xmm0
+66 0f 38 04 c1 pmaddubsw %xmm1, %xmm0`],
+ ['i16x8.extadd_pairwise_i8x16_u', `
+c4 e2 71 04 05 ${RIPRADDR} vpmaddubswx ${RIPR}, %xmm1, %xmm0`],
+ ['i32x4.extadd_pairwise_i16x8_s', `
+c5 f1 f5 05 ${RIPRADDR} vpmaddwdx ${RIPR}, %xmm1, %xmm0`],
+ ['i32x4.extadd_pairwise_i16x8_u', `
+c5 f1 ef 05 ${RIPRADDR} vpxorx ${RIPR}, %xmm1, %xmm0
+66 0f f5 05 ${RIPRADDR} pmaddwdx ${RIPR}, %xmm0
+66 0f fe 05 ${RIPRADDR} padddx ${RIPR}, %xmm0`]]);
+
+}