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

时间:2019-04-01 19:47:46

标签: c intel api-design intrinsics avx

GCC谨通知我,SIMD内在<p>Please press <span>Ctrl</span> + <kbd>Shift</kbd>.的最后一个参数必须是8位立即数。为什么然后将其最后一个参数声明为期望_mm_permute_ps

int

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

1 个答案:

答案 0 :(得分:1)

它与所有其他使用shuffle向量或立即数参数的内部函数一致。可能表示它是整数而不是字符,同时避免依赖于stdint.h来获取int8_t。

从C ++的角度来看,更有趣的部分不是constexpr,因此您可以为其提供非编译时间参数,这将为编译器带来一些乐趣。我曾经尝试以一种假设直接参数为编译时的方式来改进gcc的内在函数,并且它破坏了令人惊讶的代码量。