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

问题描述 投票:2回答:1

GCC通知我,SIMD内在_mm_permute_ps的最后一个论点必须是8位立即。那么为什么它的最后一个论点被宣布为期待一个int

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

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

c intel api-design intrinsics avx
1个回答
1
投票

它与采用随机向量或立即参数的所有其他内在函数一致。可能表示它是一个整数而不是一个字符,同时避免依赖于stdint.h for int8_t。

从C ++的角度来看,更有趣的部分是constexpr,所以你可以给它非编译时参数,然后为编译器带来有趣的东西。我曾经尝试过改进gcc的内在函数,假设直接参数是编译时,它打破了大量的代码。

© www.soinside.com 2019 - 2024. All rights reserved.