¿La mejor manera de cambiar un __m128i?
Necesito cambiar una variable __m128i, (digamos v), por m bits, de tal manera que los bits se muevan a través de toda la variable (Entonces, la variable resultante representa v * 2 ^ m). ¡¿Cuál es la mejor manera de hacer esto?!
Tenga en cuenta que _mm_slli_epi64 cambia v0 y v1 por separado:
r0 := v0 << count
r1 := v1 << count
así que faltaron los últimos bits de v0, pero quiero mover esos bits a r1.
Editar: busco un código, más rápido que esto (m <64):
r0 = v0 << m;
r1 = v0 >> (64-m);
r1 ^= v1 << m;
r2 = v1 >> (64-m);