xmmintrin.h vs gcc向量扩展

时间:2011-05-03 02:20:14

标签: gcc sse simd

我更喜欢哪种方法来编写SIMD指令?

mm *方法表单* mmintrin.h似乎在编译器之间更具可移植性。

但是gcc vector extensions似乎会产生更简单的代码,并支持更多的架构。

那么哪种方法最好?

2 个答案:

答案 0 :(得分:4)

如果使用gcc向量扩展,您将只能使用SSE功能的有限子集,因为有许多SSE内在函数不适用于通用向量模型(如gcc)。如果你只想做相当基本的事情,例如对向量进行浮点运算,然后你就可以使用它,但如果你有兴趣利用SIMD获得最大的性能优势,那么你需要使用本机内在函数。

答案 1 :(得分:2)

* mmintrin.h文件中提供的内在函数仅在SSE计算机上可用,但它们可在不同的编译器中使用。 GCC向量扩展更有限,但在更广泛的平台上实现,显然是GCC特定的。

与所有事情一样,没有最好的'回答;你必须选择一个符合你需求的产品。