I fixed a bug in VDot and added some optimizations.  Where is Do3 not working for armjit?

These are the quick tests I'm using right now (planning to write something to generate these):

```
	reset(vq1, 3.0f, 3.0f, 3.0f, 3.0f);
	reset(vq2, 3.0f, 3.0f, 3.0f, 3.0f);
	vadd(vq1, vq2);
	vsub(vq1, vq2);
	vdiv(vq1, vq2);
	vmul(vq1, vq2);

	reset(vq1, 3.0f, NAN, 3.0f, 3.0f);
	reset(vq2, 3.0f, 3.0f, 3.0f, NAN);
	vadd(vq1, vq2);
	vsub(vq1, vq2);
	vdiv(vq1, vq2);
	vmul(vq1, vq2);

	reset(vq1, 3.0f, -NAN, 3.0f, 3.0f);
	reset(vq2, 3.0f, 3.0f, 3.0f, -NAN);
	vadd(vq1, vq2);
	vsub(vq1, vq2);
	vdiv(vq1, vq2);
	vmul(vq1, vq2);

	reset(vq1, 3.0f, INFINITY, 3.0f, 3.0f);
	reset(vq2, 3.0f, 3.0f, 3.0f, INFINITY);
	vadd(vq1, vq2);
	vsub(vq1, vq2);
	vdiv(vq1, vq2);
	vmul(vq1, vq2);

	reset(vq1, 3.0f, -1.0f, 3.0f, 3.0f);
	reset(vq2, 3.0f, 3.0f, 3.0f, -1.0f);
	vadd(vq1, vq2);
	vsub(vq1, vq2);
	vdiv(vq1, vq2);
	vmul(vq1, vq2);

	reset(vq1, -0.0f, -0.0f, -0.0f, 3.0f);
	reset(vq2, 3.0f, 3.0f, 3.0f, -0.0f);
	vadd(vq1, vq2);
	vsub(vq1, vq2);
	vdiv(vq1, vq2);
	vmul(vq1, vq2);

	reset(vt1, 3.0f, 3.0f, 3.0f);
	reset(vt2, 3.0f, 3.0f, 3.0f);
	vadd(vt1, vt2);
	vsub(vt1, vt2);
	vdiv(vt1, vt2);
	vmul(vt1, vt2);

	reset(vd1, 3.0f, 3.0f);
	reset(vd2, 3.0f, 3.0f);
	vadd(vd1, vd2);
	vsub(vd1, vd2);
	vdiv(vd1, vd2);
	vmul(vd1, vd2);

	vs1 = 3.0f;
	vs2 = 3.0f;
	vadd(vs1, vs2);
	vsub(vs1, vs2);
	vdiv(vs1, vs2);
	vmul(vs1, vs2);
```

-[Unknown]