gpt4 book ai didi

c - 如何将两个 __m128 值合并为 __m256?

转载 作者:太空狗 更新时间:2023-10-29 16:30:42 25 4
gpt4 key购买 nike

我想将两个 __m128 值合并为一个 __m256

是这样的:

__m128 a = _mm_set_ps(1, 2, 3, 4);
__m128 b = _mm_set_ps(5, 6, 7, 8);

类似于:

__m256 c = { 1, 2, 3, 4, 5, 6, 7, 8 };

是否有任何内在函数可用于执行此操作?

最佳答案

这应该做你想做的:

__m128 a = _mm_set_ps(1,2,3,4);
__m128 b = _mm_set_ps(5,6,7,8);

__m256 c = _mm256_castps128_ps256(a);
c = _mm256_insertf128_ps(c,b,1);

如果顺序与您想要的相反,则只需切换 ab


感兴趣的本质是 _mm256_insertf128_ps,它可以让您将 128 位寄存器插入 256 位 AVX 寄存器的下半部分或上半部分:

http://software.intel.com/sites/products/documentation/studio/composer/en-us/2011/compiler_c/intref_cls/common/intref_avx_insertf128_ps.htm

他们的完整家族在这里:

关于c - 如何将两个 __m128 值合并为 __m256?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11116769/

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