Commit 9d7c26c3 authored by Milad Fa's avatar Milad Fa Committed by Commit Bot

S390 [wasm-simd]: Implement i64x2 signed compares

Bug: v8:11415
Change-Id: I0101d88d19e5cad20d5f0fa6926cf0ebd9d000e9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2698091
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Reviewed-by: 's avatarJoran Siu <joransiu@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#72796}
parent 647ec342
......@@ -2522,6 +2522,8 @@ void InstructionSelector::VisitI32x4TruncSatF64x2SZero(Node* node) {
void InstructionSelector::VisitI32x4TruncSatF64x2UZero(Node* node) {
UNIMPLEMENTED();
}
void InstructionSelector::VisitI64x2GtS(Node* node) { UNIMPLEMENTED(); }
void InstructionSelector::VisitI64x2GeS(Node* node) { UNIMPLEMENTED(); }
void InstructionSelector::EmitPrepareResults(
ZoneVector<PushParameter>* results, const CallDescriptor* call_descriptor,
......
......@@ -3187,6 +3187,19 @@ CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction(
Condition(2));
break;
}
case kS390_I64x2GtS: {
__ vch(i.OutputSimd128Register(), i.InputSimd128Register(0),
i.InputSimd128Register(1), Condition(0), Condition(3));
break;
}
case kS390_I64x2GeS: {
// Compute !(B > A) which is equal to A >= B.
__ vch(kScratchDoubleReg, i.InputSimd128Register(1),
i.InputSimd128Register(0), Condition(0), Condition(3));
__ vno(i.OutputSimd128Register(), kScratchDoubleReg, kScratchDoubleReg,
Condition(0), Condition(0), Condition(3));
break;
}
case kS390_I32x4GtS: {
__ vch(i.OutputSimd128Register(), i.InputSimd128Register(0),
i.InputSimd128Register(1), Condition(0), Condition(2));
......
......@@ -269,6 +269,8 @@ namespace compiler {
V(S390_I64x2UConvertI32x4High) \
V(S390_I64x2SignSelect) \
V(S390_I64x2Ne) \
V(S390_I64x2GtS) \
V(S390_I64x2GeS) \
V(S390_I32x4Splat) \
V(S390_I32x4ExtractLane) \
V(S390_I32x4ReplaceLane) \
......
......@@ -216,6 +216,8 @@ int InstructionScheduler::GetTargetInstructionFlags(
case kS390_I64x2UConvertI32x4High:
case kS390_I64x2SignSelect:
case kS390_I64x2Ne:
case kS390_I64x2GtS:
case kS390_I64x2GeS:
case kS390_I32x4Splat:
case kS390_I32x4ExtractLane:
case kS390_I32x4ReplaceLane:
......
......@@ -2429,6 +2429,8 @@ void InstructionSelector::VisitWord64AtomicStore(Node* node) {
V(I64x2ExtMulHighI32x4U) \
V(I16x8Q15MulRSatS) \
V(I64x2Ne) \
V(I64x2GtS) \
V(I64x2GeS) \
V(I32x4Add) \
V(I32x4AddHoriz) \
V(I32x4Sub) \
......
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