我正在编写一些代码并尝试使用SIMD内在函数SSE2/3来加速它.我的代码具有这样的性质,我需要将一些数据加载到XMM寄存器中并对其进行多次操作.当我查看生成的汇编程序代码时,GCC似乎不断将数据刷新回内存,以便在XMM0和XMM1中重新加载其他内容.我正在编译x86-64所以我有15个寄存器.为什么GCC只使用两个,我该怎么做才能让它使用更多?有什么方法可以"固定"寄存器中的某些值吗?我在我的变量定义中添加了"register"关键字,但生成的汇编代码是相同的.