Wie führe ich eine elementweise Linksverschiebung mit __m128i durch?

Die SSE-Verschiebungsanweisungen, die ich gefunden habe, können bei allen Elementen nur um den gleichen Betrag verschoben werden:

_mm_sll_epi32()_mm_slli_epi32()

Diese verschieben alle Elemente, jedoch um den gleichen Verschiebungsbetrag.

Gibt es eine Möglichkeit, den verschiedenen Elementen unterschiedliche Verschiebungen zuzuweisen? Etwas wie das:

__m128i a,  __m128i b;  

r0:=    a0  <<  b0;
r1:=    a1  <<  b1;
r2:=    a2  <<  b2;
r3:=    a3  <<  b3;

Antworten auf die Frage(3)

Ihre Antwort auf die Frage