当处理SSE(AVX)中的整数和浮点数时,将所有整数转换为浮点数并仅使用浮点数是一个好习惯吗?
因为之后我们只需要一些SIMD指令,而我们需要使用的是添加和比较指令(<, <=, ==
),我希望这种转换应完全保留。
答案 0 :(得分:6)
将我的评论扩展为答案。
基本上你在权衡下面的权衡:
坚持使用整数:
转换为浮点数:
float
而没有精确损失的输入。我现在说坚持使用整数。如果您不想复制float
版本的代码,那就是您的电话。
我唯一能看到模拟具有浮点的整数变得更快的时候就是你需要进行分割的时候。
请注意,我没有提及可读性,因为潜入手动矢量化可能意味着性能更重要。