这是我非常简单的问题。使用ICC,我知道可以使用#pragma SIMD来强制编译器选择不进行矢量化的循环的矢量化。海湾合作委员会有类似的东西吗?或者,是否有计划在将来的版本中添加此功能?
很相关,用Graphite强制矢量化怎么办?
感谢您考虑我的要求 法比奥
答案 0 :(得分:1)
只要gcc被允许使用SSE / SSE2 / etc指令,编译器通常会在它意识到它“值得”时生成向量指令。像编译器中的大多数东西一样,这需要程序员一些运气/计划/关心,以避免编译器思考“可能这不安全”或“这太复杂,我无法弄清楚发生了什么”。但是很多时候,如果你使用一个相当现代的gcc版本就会成功(4.x版本都应该这样做)。
您可以通过添加-msse
或-msse2
(等等以用于以后的SSE扩展)使编译器使用SSE或SSE2指令。 -msse2
是x86-64中的默认值。
抱歉,无法回答有关Graphite的问题。