A melhor maneira de mudar um __m128i?

Eu preciso mudar uma variável __m128i, (digamos v), por m bits, de maneira que os bits se movam por toda a variável (portanto, a variável resultante representa v * 2 ^ m). Qual é a melhor maneira de fazer isso ?!

Observe que _mm_slli_epi64 alterna v0 e v1 separadamente:

r0 := v0 << count
r1 := v1 << count

então os últimos bits da v0 foram perdidos, mas quero movê-los para r1.

Edit: Estou procurando um código, mais rápido que isso (m <64):

r0 = v0 << m;
r1 = v0 >> (64-m);
r1 ^= v1 << m;
r2 = v1 >> (64-m);

questionAnswers(2)

yourAnswerToTheQuestion