Added a basic version of vector interleaving

select(x % 2 == 0, f(x/2), g(x/2)) now compiles to
a shufflevector instead of a vector select