gpt4 book ai didi

c - 为什么 _mm_permute_ps 的最后一个参数是一个 int?

转载 作者:太空宇宙 更新时间:2023-11-03 23:37:27 25 4
gpt4 key购买 nike

GCC 友善地通知我,SIMD 内在 _mm_permute_ps 的最后一个参数必须是 8 位立即数。为什么它的最后一个参数被声明为期望 int

__m128     _mm_permute_ps(__m128  a, int imm8);
__m256d _mm256_permute_pd(__m256d a, int imm8);

8 位类型参数不会为最终用户提供更有用的界面吗?

最佳答案

它与采用洗牌 vector 或直接参数的所有其他内在函数一致。可能是为了表明它是一个整数而不是一个字符,同时避免 int8_t 依赖于 stdint.h。

从 C++ 的角度来看,更有趣的部分是它不是 constexpr,因此您可以给它非编译时参数,这会给编译器带来有趣的东西。我曾经尝试以一种假设直接参数是编译时的方式改进 gcc 的内在函数,但它破坏了数量惊人的代码。

关于c - 为什么 _mm_permute_ps 的最后一个参数是一个 int?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55462512/

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