gpt4 book ai didi

optimization - SSE2 使用 GCC 进行双重计算

转载 作者:行者123 更新时间:2023-12-03 16:12:09 24 4
gpt4 key购买 nike

如何在 GCC 中使用 SSE2?
我想使用双值。

我搜索……像这样:
http://vrm-vrm.blogspot.com/2009/10/gcc-intrinsics.html
仅适用于双值。

最佳答案

如果要使用 SSE2 double insns,你必须用 gcc -mfpmath=sse -msse2 编译.

选项 -msse2单独将允许您使用 SSE2 内在函数,-mfpmath=sse将导致 GCC 为所有 FP 操作发出 SSE2 insn。

另请注意,-O3 启用了矢量化。 .

矢量化 SSE2-4 insn 的优势是显而易见的,Sandy Bridge 处理器每个周期最多可以执行三个 256 位操作(例如 4 个双乘法、4 个双加法和一些 shuffle)

但是,英特尔优化手册建议即使对标量操作也使用 SSE,原因包括平坦寄存器模型和与传统 x87 insns 相比更短的延迟。

编辑:

忘了说,对于 32 位代码,您还可以添加 -msseregparm ,这将导致 FP 参数和返回值通过 SSE 寄存器传递。默认情况下,它们在内存中和 %st0 中传递。 , 分别。自然,这会更改 ABI,因此所有交互模块都必须使用此选项进行编译。

关于optimization - SSE2 使用 GCC 进行双重计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8125934/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com