Fixes VADDV assert and implementation detail

AArch64's ADDV instruction doesn't support 8byte elements, it instead
needs to use ADDP(scalar) for the operation.

Fixes an assert and minor behaviour difference there
This commit is contained in:
Ryan Houdek committed 2020-07-12 03:41:02 +01:00
1 parent 43a8915074
commit 383b8b7bb5
1 file changed
+3 -1
@@ -269,8 +269,10 @@ DEF_OP(VAddV) {
case 1:
case 2:
case 4:
addv(GetDst(Node).VCast(Op->Header.ElementSize * 8, 1), GetSrc(Op->Header.Args[0].ID()).VCast(OpSize * 8, Elements));
break;
case 8:
addv(GetDst(Node).VCast(OpSize * 8, Elements), GetSrc(Op->Header.Args[0].ID()).VCast(OpSize * 8, Elements));
addp(GetDst(Node).VCast(OpSize * 8, 1), GetSrc(Op->Header.Args[0].ID()).VCast(OpSize * 8, Elements));
break;
default: LogMan::Msg::A("Unknown Element Size: %d", Op->Header.ElementSize); break;
}