Commit b9fa48ce authored by Ng Zhi An's avatar Ng Zhi An Committed by Commit Bot

[liftoff][wasm-simd][arm][arm64] Implement min

Bug: v8:9909
Change-Id: Ie56a99718ee16b70e93ae812a68a1cb08f95da56
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2136869Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#67044}
parent bfe8e955
...@@ -1760,13 +1760,15 @@ void LiftoffAssembler::emit_i32x4_mul(LiftoffRegister dst, LiftoffRegister lhs, ...@@ -1760,13 +1760,15 @@ void LiftoffAssembler::emit_i32x4_mul(LiftoffRegister dst, LiftoffRegister lhs,
void LiftoffAssembler::emit_i32x4_min_s(LiftoffRegister dst, void LiftoffAssembler::emit_i32x4_min_s(LiftoffRegister dst,
LiftoffRegister lhs, LiftoffRegister lhs,
LiftoffRegister rhs) { LiftoffRegister rhs) {
bailout(kSimd, "i32x4_min_s"); vmin(NeonS32, liftoff::GetSimd128Register(dst),
liftoff::GetSimd128Register(lhs), liftoff::GetSimd128Register(rhs));
} }
void LiftoffAssembler::emit_i32x4_min_u(LiftoffRegister dst, void LiftoffAssembler::emit_i32x4_min_u(LiftoffRegister dst,
LiftoffRegister lhs, LiftoffRegister lhs,
LiftoffRegister rhs) { LiftoffRegister rhs) {
bailout(kSimd, "i32x4_min_u"); vmin(NeonU32, liftoff::GetSimd128Register(dst),
liftoff::GetSimd128Register(lhs), liftoff::GetSimd128Register(rhs));
} }
void LiftoffAssembler::emit_i32x4_max_s(LiftoffRegister dst, void LiftoffAssembler::emit_i32x4_max_s(LiftoffRegister dst,
...@@ -1821,13 +1823,15 @@ void LiftoffAssembler::emit_i16x8_add_saturate_u(LiftoffRegister dst, ...@@ -1821,13 +1823,15 @@ void LiftoffAssembler::emit_i16x8_add_saturate_u(LiftoffRegister dst,
void LiftoffAssembler::emit_i16x8_min_s(LiftoffRegister dst, void LiftoffAssembler::emit_i16x8_min_s(LiftoffRegister dst,
LiftoffRegister lhs, LiftoffRegister lhs,
LiftoffRegister rhs) { LiftoffRegister rhs) {
bailout(kSimd, "i16x8_min_s"); vmin(NeonS16, liftoff::GetSimd128Register(dst),
liftoff::GetSimd128Register(lhs), liftoff::GetSimd128Register(rhs));
} }
void LiftoffAssembler::emit_i16x8_min_u(LiftoffRegister dst, void LiftoffAssembler::emit_i16x8_min_u(LiftoffRegister dst,
LiftoffRegister lhs, LiftoffRegister lhs,
LiftoffRegister rhs) { LiftoffRegister rhs) {
bailout(kSimd, "i16x8_min_u"); vmin(NeonU16, liftoff::GetSimd128Register(dst),
liftoff::GetSimd128Register(lhs), liftoff::GetSimd128Register(rhs));
} }
void LiftoffAssembler::emit_i16x8_max_s(LiftoffRegister dst, void LiftoffAssembler::emit_i16x8_max_s(LiftoffRegister dst,
...@@ -1926,13 +1930,15 @@ void LiftoffAssembler::emit_i8x16_add_saturate_u(LiftoffRegister dst, ...@@ -1926,13 +1930,15 @@ void LiftoffAssembler::emit_i8x16_add_saturate_u(LiftoffRegister dst,
void LiftoffAssembler::emit_i8x16_min_s(LiftoffRegister dst, void LiftoffAssembler::emit_i8x16_min_s(LiftoffRegister dst,
LiftoffRegister lhs, LiftoffRegister lhs,
LiftoffRegister rhs) { LiftoffRegister rhs) {
bailout(kSimd, "i8x16_min_s"); vmin(NeonS8, liftoff::GetSimd128Register(dst),
liftoff::GetSimd128Register(lhs), liftoff::GetSimd128Register(rhs));
} }
void LiftoffAssembler::emit_i8x16_min_u(LiftoffRegister dst, void LiftoffAssembler::emit_i8x16_min_u(LiftoffRegister dst,
LiftoffRegister lhs, LiftoffRegister lhs,
LiftoffRegister rhs) { LiftoffRegister rhs) {
bailout(kSimd, "i8x16_min_u"); vmin(NeonU8, liftoff::GetSimd128Register(dst),
liftoff::GetSimd128Register(lhs), liftoff::GetSimd128Register(rhs));
} }
void LiftoffAssembler::emit_i8x16_max_s(LiftoffRegister dst, void LiftoffAssembler::emit_i8x16_max_s(LiftoffRegister dst,
......
...@@ -1247,13 +1247,13 @@ void LiftoffAssembler::emit_i32x4_mul(LiftoffRegister dst, LiftoffRegister lhs, ...@@ -1247,13 +1247,13 @@ void LiftoffAssembler::emit_i32x4_mul(LiftoffRegister dst, LiftoffRegister lhs,
void LiftoffAssembler::emit_i32x4_min_s(LiftoffRegister dst, void LiftoffAssembler::emit_i32x4_min_s(LiftoffRegister dst,
LiftoffRegister lhs, LiftoffRegister lhs,
LiftoffRegister rhs) { LiftoffRegister rhs) {
bailout(kSimd, "i32x4_min_s"); Smin(dst.fp().V4S(), lhs.fp().V4S(), rhs.fp().V4S());
} }
void LiftoffAssembler::emit_i32x4_min_u(LiftoffRegister dst, void LiftoffAssembler::emit_i32x4_min_u(LiftoffRegister dst,
LiftoffRegister lhs, LiftoffRegister lhs,
LiftoffRegister rhs) { LiftoffRegister rhs) {
bailout(kSimd, "i32x4_min_u"); Umin(dst.fp().V4S(), lhs.fp().V4S(), rhs.fp().V4S());
} }
void LiftoffAssembler::emit_i32x4_max_s(LiftoffRegister dst, void LiftoffAssembler::emit_i32x4_max_s(LiftoffRegister dst,
...@@ -1325,13 +1325,13 @@ void LiftoffAssembler::emit_i16x8_add_saturate_u(LiftoffRegister dst, ...@@ -1325,13 +1325,13 @@ void LiftoffAssembler::emit_i16x8_add_saturate_u(LiftoffRegister dst,
void LiftoffAssembler::emit_i16x8_min_s(LiftoffRegister dst, void LiftoffAssembler::emit_i16x8_min_s(LiftoffRegister dst,
LiftoffRegister lhs, LiftoffRegister lhs,
LiftoffRegister rhs) { LiftoffRegister rhs) {
bailout(kSimd, "i16x8_min_s"); Smin(dst.fp().V8H(), lhs.fp().V8H(), rhs.fp().V8H());
} }
void LiftoffAssembler::emit_i16x8_min_u(LiftoffRegister dst, void LiftoffAssembler::emit_i16x8_min_u(LiftoffRegister dst,
LiftoffRegister lhs, LiftoffRegister lhs,
LiftoffRegister rhs) { LiftoffRegister rhs) {
bailout(kSimd, "i16x8_min_u"); Umin(dst.fp().V8H(), lhs.fp().V8H(), rhs.fp().V8H());
} }
void LiftoffAssembler::emit_i16x8_max_s(LiftoffRegister dst, void LiftoffAssembler::emit_i16x8_max_s(LiftoffRegister dst,
...@@ -1403,13 +1403,13 @@ void LiftoffAssembler::emit_i8x16_add_saturate_u(LiftoffRegister dst, ...@@ -1403,13 +1403,13 @@ void LiftoffAssembler::emit_i8x16_add_saturate_u(LiftoffRegister dst,
void LiftoffAssembler::emit_i8x16_min_s(LiftoffRegister dst, void LiftoffAssembler::emit_i8x16_min_s(LiftoffRegister dst,
LiftoffRegister lhs, LiftoffRegister lhs,
LiftoffRegister rhs) { LiftoffRegister rhs) {
bailout(kSimd, "i8x16_min_s"); Smin(dst.fp().V16B(), lhs.fp().V16B(), rhs.fp().V16B());
} }
void LiftoffAssembler::emit_i8x16_min_u(LiftoffRegister dst, void LiftoffAssembler::emit_i8x16_min_u(LiftoffRegister dst,
LiftoffRegister lhs, LiftoffRegister lhs,
LiftoffRegister rhs) { LiftoffRegister rhs) {
bailout(kSimd, "i8x16_min_u"); Umin(dst.fp().V16B(), lhs.fp().V16B(), rhs.fp().V16B());
} }
void LiftoffAssembler::emit_i8x16_max_s(LiftoffRegister dst, void LiftoffAssembler::emit_i8x16_max_s(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