c++ - 我应该如何将 SSE 数据传递给我的函数/运算符(operator)?

标签 c++ parameter-passing sse simd intrinsics

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

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

我从不修改我的参数,所以选择主要是在按值传递或按常量引用传递之间进行选择。我假设一个好的编译器会优化同一代码的两种样式。但我不确定。在该领域有更多经验的人可以阐述最佳做法吗?

提前致谢!

最佳答案

对于大多数编译器来说,两者都可以,但如果您希望代码使用 Visual Studio 进行编译,则使用 const 引用,因为 Visual Studio 编译器有点脑残,即使函数是内联的,也会应用不必要的 ABI 限制。

关于c++ - 我应该如何将 SSE 数据传递给我的函数/运算符(operator)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11873172/

相关文章:

php - 将参数从一个页面上的 JS/Jquery 传递到另一个页面上的 PHP

c - 矢量化代码随机减速的原因

gcc - SSE 4 popcount 为 16 个 8 位值?

c++ - 这里发生了什么?我将结果分配给 C++ 中的结果

c++ - vector 循环无法正常运行

c++ - 在 vector 初始化中为对象调用非默认构造函数

javascript - 这种使用回调和参数的方式正确吗?

g++ SSE 内在困境 - 来自内在 "saturates"的值

c# - 使用 C++ Baclground-Task 将解决方案部署到物理 WP8.1 设备

具有最快 "Exists"查找的 C++ 容器( vector/数组/等)