gpt4 book ai didi

c++ - 从 __m256 中选择元素的子集?

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

我有一个__m256,用来存放8个 float ,里面的元素是这样的:

__m256 v = {0,1,2,3,4,5,6,7};

现在我想获得另一个 __m256 值,例如:

__m256 dst = {0,1,2,4,5,6,x,x};

x 在这里表示我不在乎。

我不熟悉 SIMD,有人可以帮忙吗?或者给我一些提示?

谢谢!

最佳答案

您可以使用 AVX2 intrinsic _mm256_permutevar8x32_ps .它可以帮助您打乱 256 位 vector 中的元素。请参见下面的示例:

__m256 a = { 10, 20, 30, 40, 50, 60, 70, 80 };
__m256i k = _mm256_setr_epi32(0, 1, 2, 4, 5, 6, 0, 0);
__m256 b = _mm256_permutevar8x32_ps(a, k);

关于c++ - 从 __m256 中选择元素的子集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39383882/

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