[wasm-relaxed-simd] Enable i16x8.relaxed_q15mulr_s liftoff on x64/ia32

Bug: v8:12609, v8:12284
Change-Id: I2b72b20b64d3487343212f30fba614a92845e770
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3837854
Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#82598}
This commit is contained in:
Deepti Gandluri 2022-08-18 23:10:43 -07:00 committed by V8 LUCI CQ
parent 9661da60af
commit b85b5d3bf3
3 changed files with 12 additions and 4 deletions

View File

@ -3654,7 +3654,12 @@ void LiftoffAssembler::emit_i16x8_q15mulr_sat_s(LiftoffRegister dst,
void LiftoffAssembler::emit_i16x8_relaxed_q15mulr_s(LiftoffRegister dst,
LiftoffRegister src1,
LiftoffRegister src2) {
bailout(kRelaxedSimd, "emit_i16x8_relaxed_q15mulr_s");
if (CpuFeatures::IsSupported(AVX) || dst == src1) {
Pmulhrsw(dst.fp(), src1.fp(), src2.fp());
} else {
movdqa(dst.fp(), src1.fp());
pmulhrsw(dst.fp(), src2.fp());
}
}
void LiftoffAssembler::emit_i16x8_dot_i8x16_i7x16_s(LiftoffRegister dst,

View File

@ -3234,7 +3234,12 @@ void LiftoffAssembler::emit_i16x8_q15mulr_sat_s(LiftoffRegister dst,
void LiftoffAssembler::emit_i16x8_relaxed_q15mulr_s(LiftoffRegister dst,
LiftoffRegister src1,
LiftoffRegister src2) {
bailout(kRelaxedSimd, "emit_i16x8_relaxed_q15mulr_s");
if (CpuFeatures::IsSupported(AVX) || dst == src1) {
Pmulhrsw(dst.fp(), src1.fp(), src2.fp());
} else {
movdqa(dst.fp(), src1.fp());
pmulhrsw(dst.fp(), src2.fp());
}
}
void LiftoffAssembler::emit_i16x8_dot_i8x16_i7x16_s(LiftoffRegister dst,

View File

@ -405,8 +405,6 @@ WASM_RELAXED_SIMD_TEST(I8x16RelaxedSwizzle) {
}
WASM_RELAXED_SIMD_TEST(I16x8RelaxedQ15MulRS) {
// TODO(v8:12609): Complete Liftoff implementation.
if (execution_tier == TestExecutionTier::kLiftoff) return;
WasmRunner<int32_t, int16_t, int16_t> r(execution_tier);
// Global to hold output.
int16_t* g = r.builder().template AddGlobal<int16_t>(kWasmS128);