public static float TestSIMDTransform(int iterationCount)
{
Vector3 v = new Vector3(1, 2, 3);
AffineTransform m = AffineTransform.Identity;
float accumulator = 0;
for (int i = 0; i < iterationCount; ++i)
{
Vector3 r0, r1;
AffineTransform.Transform(ref v, ref m, out r0);
AffineTransform.Transform(ref r0, ref m, out r1);
AffineTransform.Transform(ref r1, ref m, out r0);
AffineTransform.Transform(ref r0, ref m, out r1);
AffineTransform.Transform(ref r1, ref m, out r0);
AffineTransform.Transform(ref r0, ref m, out r1);
AffineTransform.Transform(ref r1, ref m, out r0);
AffineTransform.Transform(ref r0, ref m, out r1);
AffineTransform.Transform(ref r1, ref m, out r0);
AffineTransform.Transform(ref r0, ref m, out r1);
accumulator += 0.000001f * r1.X;
}
return accumulator;
}