当前位置:  开发笔记 > 编程语言 > 正文

如何在使用内在函数时让GCC使用两个以上的SIMD寄存器?

如何解决《如何在使用内在函数时让GCC使用两个以上的SIMD寄存器?》经验,为你挑选了0个好方法。
如何解决《如何在使用内在函数时让GCC使用两个以上的SIMD寄存器?》经验,为你挑选了0个好方法。

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

推荐阅读
有风吹过best
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有