初步说明:实际上,在我写完问题时,我看到this answer正在解决我的问题。尽管如此,由于我已经花时间创建了必要文档的所有链接,因此无论如何发布它可能是有用的。此外,可能会有更好的答案。
以下是问题:
在我处理结束时,我将有__mm128i
包含:
r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 rA rB rC rD rE rF
我必须在内存中存储uint32_t
,如下所示:
r0 r4 r8 rC
或者,或者(它只取决于我如何执行先前计算的最后两步)
r3 r7 rB rF
如何有效地使用SSSE3指令?
答案 0 :(得分:3)
正如here所述,使用最多SSSE3指令,您可以使用_mm_shuffle_epi8
重新排列您的注册:
r0 r4 r8 rC 00 00 00 00 00 00 00 00 00 00 00 00
然后,你不能使用_mm_extract_epi32
,因为它是SSE4.1
您可以改为使用_mm_cvtsi128_si32
。