【问题标题】:GCC support for XMM registers badly broken?GCC 对 XMM 寄存器的支持严重损坏?
【发布时间】:2011-03-11 14:54:57
【问题描述】:

每当我检查 GCC 为使用 __m128i 类型的代码生成的汇编代码时,我都会发现这看起来像是一场灾难。有大量无用的冗余指令。

然而,作为一名汇编程序员,我宁愿使用 asm{},但 GCC 阻止我在 asm{} 中使用 XMM 寄存器。

是否有一些技巧可以让 GCC 使用 XMM,或者我需要等待未来的版本吗? 我有 4.3.4。

【问题讨论】:

    标签: gcc sse2


    【解决方案1】:

    您是否在启用优化的情况下进行编译,例如-O3 ?如果是这样,那么 gcc 通常会从内在函数生成相当不错的 SSE 代码。大多数内在函数都映射到一个 SSE 指令。你能举一个你认为效率特别低的例子吗?

    另外,我不确定您所说的“GCC 阻止我在 asm {} 中使用 XMM 寄存器”是什么意思 - 同样,如果您提供一个具体示例,那么也许有一个简单的解决方案。

    【讨论】:

    • @user654241:如果您想看到真正良好的 SIMD 代码生成,请尝试 Intel 的 ICC 编译器而不是 gcc。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-29
    • 1970-01-01
    • 2012-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多