S390 [liftoff]: Implement simd I8x16Popcnt

Change-Id: Ide34fe0b2e5c12640a084b001ae17ff316de3f3e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3423578
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Farazmand <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/main@{#78877}
This commit is contained in:
Milad Fa 2022-01-31 16:09:54 -05:00 committed by V8 LUCI CQ
parent f126c9238b
commit cdb20294b4
4 changed files with 5 additions and 4 deletions

View File

@ -5262,7 +5262,8 @@ void TurboAssembler::S128Not(Simd128Register dst, Simd128Register src) {
V(I16x8UConvertI8x16Low, vupll, 0, 0, 0) \
V(I16x8UConvertI8x16High, vuplh, 0, 0, 0) \
V(I8x16Abs, vlp, 0, 0, 0) \
V(I8x16Neg, vlc, 0, 0, 0)
V(I8x16Neg, vlc, 0, 0, 0) \
V(I8x16Popcnt, vpopct, 0, 0, 0)
#define EMIT_SIMD_UNOP_VRR_A(name, op, c1, c2, c3) \
void TurboAssembler::name(Simd128Register dst, Simd128Register src) { \

View File

@ -1152,6 +1152,7 @@ class V8_EXPORT_PRIVATE TurboAssembler : public TurboAssemblerBase {
V(I16x8UConvertI8x16High) \
V(I8x16Abs) \
V(I8x16Neg) \
V(I8x16Popcnt) \
V(S128Not)
#define PROTOTYPE_SIMD_UNOP(name) \

View File

@ -3195,8 +3195,7 @@ CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction(
}
#undef Q15_MUL_ROAUND
case kS390_I8x16Popcnt: {
__ vpopct(i.OutputSimd128Register(), i.InputSimd128Register(0),
Condition(0), Condition(0), Condition(0));
__ I8x16Popcnt(i.OutputSimd128Register(), i.InputSimd128Register(0));
break;
}
case kS390_F64x2ConvertLowI32x4S: {

View File

@ -2631,7 +2631,7 @@ void LiftoffAssembler::emit_i8x16_shuffle(LiftoffRegister dst,
void LiftoffAssembler::emit_i8x16_popcnt(LiftoffRegister dst,
LiftoffRegister src) {
bailout(kSimd, "i8x16.popcnt");
I8x16Popcnt(dst.fp(), src.fp());
}
void LiftoffAssembler::emit_v128_anytrue(LiftoffRegister dst,