我需要从每个 24 位输入中解压缩两个 16 位值。(3 字节 -> 4 字节)。我已经按照 na\xc3\xafve 的方式做到了,但我对性能不满意。
\n例如,InBuffer 是__m128i:
value1 = (uint16_t)InBuffer[0:11] // bit-ranges\nvalue2 = (uint16_t)InBuffer[12:24]\n\nvalue3 = (uint16_t)InBuffer[25:36] \nvalue4 = (uint16_t)InBuffer[37:48]\n... for all the 128 bits.\nRun Code Online (Sandbox Code Playgroud)\n解包后,值应存储在 __m256i 变量中。
\n我该如何使用 AVX2 解决这个问题?可能使用解包/洗牌/排列内在函数?
\n