backend/arm64: Implement VectorMultiply64, but allow only during debugging
This commit is contained in:
parent
191125a208
commit
e26a9769dc
1 changed files with 11 additions and 4 deletions
|
@ -956,10 +956,17 @@ void EmitIR<IR::Opcode::VectorMultiply32>(oaknut::CodeGenerator& code, EmitConte
|
||||||
|
|
||||||
template<>
|
template<>
|
||||||
void EmitIR<IR::Opcode::VectorMultiply64>(oaknut::CodeGenerator& code, EmitContext& ctx, IR::Inst* inst) {
|
void EmitIR<IR::Opcode::VectorMultiply64>(oaknut::CodeGenerator& code, EmitContext& ctx, IR::Inst* inst) {
|
||||||
(void)code;
|
ASSERT_MSG(ctx.conf.very_verbose_debugging_output, "VectorMultiply64 is for debugging only");
|
||||||
(void)ctx;
|
EmitThreeOp(code, ctx, inst, [&](auto& Qresult, auto& Qa, auto& Qb) {
|
||||||
(void)inst;
|
code.FMOV(Xscratch0, Qa->toD());
|
||||||
ASSERT_FALSE("Unimplemented");
|
code.FMOV(Xscratch1, Qb->toD());
|
||||||
|
code.MUL(Xscratch0, Xscratch0, Xscratch1);
|
||||||
|
code.FMOV(Qresult->toD(), Xscratch0);
|
||||||
|
code.FMOV(Xscratch0, Qa->Delem()[1]);
|
||||||
|
code.FMOV(Xscratch1, Qb->Delem()[1]);
|
||||||
|
code.MUL(Xscratch0, Xscratch0, Xscratch1);
|
||||||
|
code.FMOV(Qresult->Delem()[1], Xscratch0);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
template<>
|
template<>
|
||||||
|
|
Loading…
Reference in a new issue