我应该如何将SSE数据传递给我的函数/运算符?

时间:2012-08-08 21:06:23

标签: c++ parameter-passing sse simd intrinsics

我正在为SSE内在函数编写几个包装类 - 主要是为了获得类型安全的几何操作,还要添加一些便利函数。我的所有功能和操作符都是内联的。从理论上讲,它们都将直接编译为原始SSE汇编(无函数调用),我的电子永远不会离开XMM寄存器。

如何将SSE类作为参数传递以确保此结果?

我从不修改我的参数,所以选择主要是在传递值或传递const引用之间。我假设一个好的编译器会在相同的代码中优化这两种样式。但我肯定不知道。在该领域有更多经验的人能否阐述最佳实践?

提前致谢!

1 个答案:

答案 0 :(得分:4)

对大多数编译器来说都是好的,但是如果你想用Visual Studio编译代码然后使用const引用,因为Visual Studio编译器有点脑死亡并且即使函数是内联的,也会应用不必要的ABI限制。