【问题标题】:How should I pass SSE data to my functions/operators?我应该如何将 SSE 数据传递给我的函数/操作员?
【发布时间】:2012-08-06 01:46:25
【问题描述】:

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

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

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

提前致谢!

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 谢谢 - 我目前只使用 GCC,但兼容很好。 const 引用它。干杯!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-16
    • 1970-01-01
    • 2014-12-17
    • 2012-02-29
    • 1970-01-01
    相关资源
    最近更新 更多