Permutieren von Bytes innerhalb von SSE __m128i register

8

Ich habe folgendes Problem:

In __m128i register gibt es 16 8bit Werte in folgender Reihenfolge:

%Vor%

Was ich erreichen möchte, ist, Bytes effizient zu mischen, um diese Reihenfolge zu erhalten:

%Vor%

Es ist tatsächlich analog zur 4x4-Matrix-Transposition, aber arbeitet mit einem 8-Bit-Element in einem Register.

Können Sie mir bitte auf welche Art von SSE-Anweisungen (vorzugsweise <= SSE2) hinweisen? sind dafür geeignet?

    
born49 06.07.2014, 10:43
quelle

1 Antwort

5

Sie werden wirklich SSSE3 dafür verwenden wollen, es ist viel sauberer als zu versuchen, & lt; = SSE2

zu gehen

Ihr Code sieht etwa so aus:

%Vor%

Wenn Sie wirklich SSE2 wollen, genügt das:
(vorausgesetzt, ich interpretiere deine erste Bestellung richtig)

%Vor%

Oder leichter debuggbar:

%Vor%     
Apriori 06.07.2014, 18:53
quelle

Tags und Links