使用SIMD的非同质比较

Non-Homogenous Comparison using SIMD

本文关键字:同质 比较 SIMD 使用      更新时间:2023-10-16

是否可以使用SIMD指令(intrinsic)进行非同构(两种不相同的数据类型)比较,特别是在SSE2到SSE4中。X指令集?。即float和double?或者32位和64位整数?甚至是浮点数和整数等等?

你的意思是你有一个整数数组,你想把它和双精度数组中的值进行比较?不幸的是,您将不得不执行某种转换来实现这一点。有一组cvtXX2YY指令是这样做的,它们应该在内在函数中可用。你只需要挑出一个做正确转换的,例如_mm_cvtpi32_ps——从这个例子中可以看到,你不能把四个整数转换成四个浮点数……一次两个。别问我为什么……

如果你在问"你能把一个整数和一个浮点数转换成另一个整数和浮点数吗?",那么不,那是不可用的。