This patch attempts to convert a SCALAR_TO_VECTOR(EXTRACT_VECTOR_ELT) pair into a VECTOR_SHUFFLE.
This prevents many cases of (slow) spilling scalar data between the gpr + simd registers.
At present the optimization only accepts cases where there is no TRUNC of the scalar type (i.e. all types must match).