static SSEFloat Select(SSEFloat v1, SSEFloat v2, SSEFloat control)
{
SSEFloat vTemp1 = new SSEFloat(
i2f(~f2i(control.r0) & f2i(v1.r0)),
i2f(~f2i(control.r1) & f2i(v1.r1)),
i2f(~f2i(control.r2) & f2i(v1.r2)),
i2f(~f2i(control.r3) & f2i(v1.r3)));
SSEFloat vTemp2 = new SSEFloat(
i2f(f2i(v2.r0) & f2i(control.r0)),
i2f(f2i(v2.r1) & f2i(control.r1)),
i2f(f2i(v2.r2) & f2i(control.r2)),
i2f(f2i(v2.r3) & f2i(control.r3)));
return new SSEFloat(
i2f(f2i(vTemp1.r0) | f2i(vTemp2.r0)),
i2f(f2i(vTemp1.r1) | f2i(vTemp2.r1)),
i2f(f2i(vTemp1.r2) | f2i(vTemp2.r2)),
i2f(f2i(vTemp1.r3) | f2i(vTemp2.r3)));
}