[riscv] Fix qfma test fail
Change-Id: Ie61c0312e1a4da1f7408e30a61732c8bc6520c7d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4114558 Auto-Submit: Yahan Lu <yahan@iscas.ac.cn> Reviewed-by: ji qiu <qiuji@iscas.ac.cn> Commit-Queue: ji qiu <qiuji@iscas.ac.cn> Cr-Commit-Position: refs/heads/main@{#84921}
This commit is contained in:
parent
e2a9b050cf
commit
e4b6eaf837
@ -3264,16 +3264,16 @@ CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction(
|
||||
}
|
||||
case kRiscvF64x2Qfma: {
|
||||
__ VU.set(kScratchReg, E64, m1);
|
||||
__ vfmadd_vv(i.InputSimd128Register(1), i.InputSimd128Register(2),
|
||||
i.InputSimd128Register(0));
|
||||
__ vmv_vv(i.OutputSimd128Register(), i.InputSimd128Register(1));
|
||||
__ vfmadd_vv(i.InputSimd128Register(0), i.InputSimd128Register(1),
|
||||
i.InputSimd128Register(2));
|
||||
__ vmv_vv(i.OutputSimd128Register(), i.InputSimd128Register(0));
|
||||
break;
|
||||
}
|
||||
case kRiscvF64x2Qfms: {
|
||||
__ VU.set(kScratchReg, E64, m1);
|
||||
__ vfnmsub_vv(i.InputSimd128Register(1), i.InputSimd128Register(2),
|
||||
i.InputSimd128Register(0));
|
||||
__ vmv_vv(i.OutputSimd128Register(), i.InputSimd128Register(1));
|
||||
__ vfnmsub_vv(i.InputSimd128Register(0), i.InputSimd128Register(1),
|
||||
i.InputSimd128Register(2));
|
||||
__ vmv_vv(i.OutputSimd128Register(), i.InputSimd128Register(0));
|
||||
break;
|
||||
}
|
||||
case kRiscvF32x4ExtractLane: {
|
||||
@ -3452,16 +3452,16 @@ CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction(
|
||||
}
|
||||
case kRiscvF32x4Qfma: {
|
||||
__ VU.set(kScratchReg, E32, m1);
|
||||
__ vfmadd_vv(i.InputSimd128Register(1), i.InputSimd128Register(2),
|
||||
i.InputSimd128Register(0));
|
||||
__ vmv_vv(i.OutputSimd128Register(), i.InputSimd128Register(1));
|
||||
__ vfmadd_vv(i.InputSimd128Register(0), i.InputSimd128Register(1),
|
||||
i.InputSimd128Register(2));
|
||||
__ vmv_vv(i.OutputSimd128Register(), i.InputSimd128Register(0));
|
||||
break;
|
||||
}
|
||||
case kRiscvF32x4Qfms: {
|
||||
__ VU.set(kScratchReg, E32, m1);
|
||||
__ vfnmsub_vv(i.InputSimd128Register(1), i.InputSimd128Register(2),
|
||||
i.InputSimd128Register(0));
|
||||
__ vmv_vv(i.OutputSimd128Register(), i.InputSimd128Register(1));
|
||||
__ vfnmsub_vv(i.InputSimd128Register(0), i.InputSimd128Register(1),
|
||||
i.InputSimd128Register(2));
|
||||
__ vmv_vv(i.OutputSimd128Register(), i.InputSimd128Register(0));
|
||||
break;
|
||||
}
|
||||
case kRiscvI64x2SConvertI32x4Low: {
|
||||
|
@ -2062,28 +2062,36 @@ void LiftoffAssembler::emit_f32x4_qfma(LiftoffRegister dst,
|
||||
LiftoffRegister src1,
|
||||
LiftoffRegister src2,
|
||||
LiftoffRegister src3) {
|
||||
bailout(kRelaxedSimd, "emit_f32x4_qfma");
|
||||
VU.set(kScratchReg, E32, m1);
|
||||
vfmadd_vv(src1.fp().toV(), src2.fp().toV(), src3.fp().toV());
|
||||
vmv_vv(dst.fp().toV(), src1.fp().toV());
|
||||
}
|
||||
|
||||
void LiftoffAssembler::emit_f32x4_qfms(LiftoffRegister dst,
|
||||
LiftoffRegister src1,
|
||||
LiftoffRegister src2,
|
||||
LiftoffRegister src3) {
|
||||
bailout(kRelaxedSimd, "emit_f32x4_qfms");
|
||||
VU.set(kScratchReg, E32, m1);
|
||||
vfnmsub_vv(src1.fp().toV(), src2.fp().toV(), src3.fp().toV());
|
||||
vmv_vv(dst.fp().toV(), src1.fp().toV());
|
||||
}
|
||||
|
||||
void LiftoffAssembler::emit_f64x2_qfma(LiftoffRegister dst,
|
||||
LiftoffRegister src1,
|
||||
LiftoffRegister src2,
|
||||
LiftoffRegister src3) {
|
||||
bailout(kRelaxedSimd, "emit_f64x2_qfma");
|
||||
VU.set(kScratchReg, E64, m1);
|
||||
vfmadd_vv(src1.fp().toV(), src2.fp().toV(), src3.fp().toV());
|
||||
vmv_vv(dst.fp().toV(), src1.fp().toV());
|
||||
}
|
||||
|
||||
void LiftoffAssembler::emit_f64x2_qfms(LiftoffRegister dst,
|
||||
LiftoffRegister src1,
|
||||
LiftoffRegister src2,
|
||||
LiftoffRegister src3) {
|
||||
bailout(kRelaxedSimd, "emit_f64x2_qfms");
|
||||
VU.set(kScratchReg, E64, m1);
|
||||
vfnmsub_vv(src1.fp().toV(), src2.fp().toV(), src3.fp().toV());
|
||||
vmv_vv(dst.fp().toV(), src1.fp().toV());
|
||||
}
|
||||
|
||||
void LiftoffAssembler::StackCheck(Label* ool_code, Register limit_address) {
|
||||
|
Loading…
Reference in New Issue
Block a user