gpt4 book ai didi

c++ - 将 4 个 SSE 整数提取为 4 个字符

转载 作者:搜寻专家 更新时间:2023-10-31 00:15:31 25 4
gpt4 key购买 nike

假设我有一个包含 4 个 32 位整数值的 __m128i

有什么方法可以将它存储在 char[4] 中,其中每个 int 值的较低字符存储在 char值?

期望的结果:

           r1          r2          r3          r4
__m128i 0x00000012 0x00000034 0x00000056 0x00000078

|
V

char[4] 0x12 0x34 0x56 0x78

首选 SSE2 及以下版本。在 MSVC++ 上编译。

最佳答案

对于 SSE2,您可以使用以下代码:

char[4] array;
x = _mm_packs_epi32(x, x);
x = _mm_packus_epi16(x, x);
*((int*)array) = _mm_cvtsi128_si32(x);

关于c++ - 将 4 个 SSE 整数提取为 4 个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19213084/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com