GCC通知我,SIMD内在_mm_permute_ps
的最后一个论点必须是8位立即。那么为什么它的最后一个论点被宣布为期待一个int
?
__m128 _mm_permute_ps(__m128 a, int imm8);
__m256d _mm256_permute_pd(__m256d a, int imm8);
8位类型参数是否不会为最终用户提供更有用的界面?
它与采用随机向量或立即参数的所有其他内在函数一致。可能表示它是一个整数而不是一个字符,同时避免依赖于stdint.h for int8_t。
从C ++的角度来看,更有趣的部分是constexpr,所以你可以给它非编译时参数,然后为编译器带来有趣的东西。我曾经尝试过改进gcc的内在函数,假设直接参数是编译时,它打破了大量的代码。