sse

    13热度

    2回答

    我正在写一些代码,并尝试使用SIMD内在函数SSE2/3加速它。我的代码具有这样的性质,我需要将一些数据加载到XMM寄存器中并多次执行。当我查看生成的汇编代码时,GCC似乎不断清理数据回到内存,以重新加载XMM0和XMM1中的其他内容。我正在编译x86-64,所以我有15个寄存器。为什么GCC只使用两个,我能做些什么来让它使用更多?有什么方法可以在寄存器中“固定”一些值吗?我在我的变量定义中添加了