emit_arm64_packed: Implement PackedAbsDiffSumS8
This commit is contained in:
parent
0ebbc4a9c5
commit
a320a333e1
1 changed files with 6 additions and 4 deletions
|
@ -378,10 +378,12 @@ void EmitIR<IR::Opcode::PackedSaturatedSubS16>(oaknut::CodeGenerator& code, Emit
|
||||||
|
|
||||||
template<>
|
template<>
|
||||||
void EmitIR<IR::Opcode::PackedAbsDiffSumS8>(oaknut::CodeGenerator& code, EmitContext& ctx, IR::Inst* inst) {
|
void EmitIR<IR::Opcode::PackedAbsDiffSumS8>(oaknut::CodeGenerator& code, EmitContext& ctx, IR::Inst* inst) {
|
||||||
(void)code;
|
EmitPackedOp(code, ctx, inst, [&](auto& Vresult, auto& Va, auto& Vb) {
|
||||||
(void)ctx;
|
code.MOVI(D2, oaknut::RepImm{0b00001111});
|
||||||
(void)inst;
|
code.SABD(Vresult->B8(), Va->B8(), Vb->B8());
|
||||||
ASSERT_FALSE("Unimplemented");
|
code.AND(Vresult->B8(), Vresult->B8(), V2.B8()); // TODO: Zext tracking
|
||||||
|
code.UADDLV(Vresult->toH(), Vresult->B8());
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
template<>
|
template<>
|
||||||
|
|
Loading…
Reference in a new issue