SSE/AVX generate: fix order of calls

The order of function argument evaluation is undefined. That's not what
was intended. Thus, the code has to resort to individual gen(N) calls,
keep the result around and finally call _mm*set*.

Signed-off-by: Matthias Kretz <kretz@kde.org>
simdarray: the end iterator was wrong

end() was pointing to data0.end() (which is somewhere in the middle of
the thing). Also the non-const overload was missing.

Signed-off-by: Matthias Kretz <kretz@kde.org>
simdarray interleave: implement correct order

Signed-off-by: Matthias Kretz <kretz@kde.org>
use const-ref for passing overaligned simdarray

Signed-off-by: Matthias Kretz <kretz@kde.org>