float DotProduct(const void *v0, *const void *v1)
{
float dot;
asm __volatile__("
lqc2 vf16,0x0(%1)
lqc2 vf17,0x0(%2)
vaddw.x vf18,vf00,vf00
vmul.xyz vf16,vf16,vf17
vmulax.x ACC,vf18,vf16x
vmadday.x ACC,vf18,vf16y
vmaddz.x vf16,vf18,vf16z
.set noat
qmfc2 $1,vf16
mtc1 $1,%0
.set at
"
: "=f"(dot)
: "r"(v0), "r"(v1)
: "$1"
);
return dot;
}
RSS