Commit 3506bff7 authored by Ng Zhi An's avatar Ng Zhi An Committed by Commit Bot

[wasm-simd][liftoff][arm][arm64] Implement integer widening

Bug: v8:9909
Change-Id: I787c9bc9c998c873bf431df13eb3b92044cbc1e4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2157647Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#67317}
parent 7e3f7361
......@@ -2372,42 +2372,42 @@ void LiftoffAssembler::emit_i16x8_uconvert_i32x4(LiftoffRegister dst,
void LiftoffAssembler::emit_i16x8_sconvert_i8x16_low(LiftoffRegister dst,
LiftoffRegister src) {
bailout(kSimd, "i16x8_sconvert_i8x16_low");
vmovl(NeonS8, liftoff::GetSimd128Register(dst), src.low_fp());
}
void LiftoffAssembler::emit_i16x8_sconvert_i8x16_high(LiftoffRegister dst,
LiftoffRegister src) {
bailout(kSimd, "i16x8_sconvert_i8x16_high");
vmovl(NeonS8, liftoff::GetSimd128Register(dst), src.high_fp());
}
void LiftoffAssembler::emit_i16x8_uconvert_i8x16_low(LiftoffRegister dst,
LiftoffRegister src) {
bailout(kSimd, "i16x8_uconvert_i8x16_low");
vmovl(NeonU8, liftoff::GetSimd128Register(dst), src.low_fp());
}
void LiftoffAssembler::emit_i16x8_uconvert_i8x16_high(LiftoffRegister dst,
LiftoffRegister src) {
bailout(kSimd, "i16x8_uconvert_i8x16_high");
vmovl(NeonU8, liftoff::GetSimd128Register(dst), src.high_fp());
}
void LiftoffAssembler::emit_i32x4_sconvert_i16x8_low(LiftoffRegister dst,
LiftoffRegister src) {
bailout(kSimd, "i32x4_sconvert_i16x8_low");
vmovl(NeonS16, liftoff::GetSimd128Register(dst), src.low_fp());
}
void LiftoffAssembler::emit_i32x4_sconvert_i16x8_high(LiftoffRegister dst,
LiftoffRegister src) {
bailout(kSimd, "i32x4_sconvert_i16x8_high");
vmovl(NeonS16, liftoff::GetSimd128Register(dst), src.high_fp());
}
void LiftoffAssembler::emit_i32x4_uconvert_i16x8_low(LiftoffRegister dst,
LiftoffRegister src) {
bailout(kSimd, "i32x4_uconvert_i16x8_low");
vmovl(NeonU16, liftoff::GetSimd128Register(dst), src.low_fp());
}
void LiftoffAssembler::emit_i32x4_uconvert_i16x8_high(LiftoffRegister dst,
LiftoffRegister src) {
bailout(kSimd, "i32x4_uconvert_i16x8_high");
vmovl(NeonU16, liftoff::GetSimd128Register(dst), src.high_fp());
}
void LiftoffAssembler::emit_s128_and_not(LiftoffRegister dst,
......
......@@ -1624,42 +1624,42 @@ void LiftoffAssembler::emit_i16x8_uconvert_i32x4(LiftoffRegister dst,
void LiftoffAssembler::emit_i16x8_sconvert_i8x16_low(LiftoffRegister dst,
LiftoffRegister src) {
bailout(kSimd, "i16x8_sconvert_i8x16_low");
Sxtl(dst.fp().V8H(), src.fp().V8B());
}
void LiftoffAssembler::emit_i16x8_sconvert_i8x16_high(LiftoffRegister dst,
LiftoffRegister src) {
bailout(kSimd, "i16x8_sconvert_i8x16_high");
Sxtl2(dst.fp().V8H(), src.fp().V16B());
}
void LiftoffAssembler::emit_i16x8_uconvert_i8x16_low(LiftoffRegister dst,
LiftoffRegister src) {
bailout(kSimd, "i16x8_uconvert_i8x16_low");
Uxtl(dst.fp().V8H(), src.fp().V8B());
}
void LiftoffAssembler::emit_i16x8_uconvert_i8x16_high(LiftoffRegister dst,
LiftoffRegister src) {
bailout(kSimd, "i16x8_uconvert_i8x16_high");
Uxtl2(dst.fp().V8H(), src.fp().V16B());
}
void LiftoffAssembler::emit_i32x4_sconvert_i16x8_low(LiftoffRegister dst,
LiftoffRegister src) {
bailout(kSimd, "i32x4_sconvert_i16x8_low");
Sxtl(dst.fp().V4S(), src.fp().V4H());
}
void LiftoffAssembler::emit_i32x4_sconvert_i16x8_high(LiftoffRegister dst,
LiftoffRegister src) {
bailout(kSimd, "i32x4_sconvert_i16x8_high");
Sxtl2(dst.fp().V4S(), src.fp().V8H());
}
void LiftoffAssembler::emit_i32x4_uconvert_i16x8_low(LiftoffRegister dst,
LiftoffRegister src) {
bailout(kSimd, "i32x4_uconvert_i16x8_low");
Uxtl(dst.fp().V4S(), src.fp().V4H());
}
void LiftoffAssembler::emit_i32x4_uconvert_i16x8_high(LiftoffRegister dst,
LiftoffRegister src) {
bailout(kSimd, "i32x4_uconvert_i16x8_high");
Uxtl2(dst.fp().V4S(), src.fp().V8H());
}
void LiftoffAssembler::emit_s128_and_not(LiftoffRegister dst,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment