繁体   English   中英

使用GCC强制自动矢量化

[英]Forcing Automatic vectorization with GCC

这是我非常简单的问题。 使用ICC,我知道可以使用#pragma SIMD强制编译器选择不进行矢量化的循环矢量化。 GCC中有类似的东西吗? 或者,是否有计划在将来的版本中添加此功能?

相当相关,如何用Graphite强制矢量化呢?

感谢您考虑我的要求Fabio

只要允许gcc使用SSE / SSE2 / etc指令,编译器通常会在意识到“值得”时产生矢量指令。 像编译器中的大多数事情一样,这需要程序员提供一些运气/计划/照顾,以避免编译器认为“也许这不安全”或“这太复杂了,我不知道发生了什么”。 但是通常,如果您使用的是相当现代的gcc版本(4.x版本都应该这样做),那么它会成功。

您可以通过添加-msse-msse2 (等用于以后的SSE扩展)使编译器使用SSE或SSE2指令。 在x86-64中, -msse2是默认设置。

但是,我不知道有什么方法可以强制执行此操作。 编译器会这样做(因为很高兴它是一个好的解决方案),或者不会。

抱歉,无法回答有关Graphite的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM