【发布时间】:2011-05-03 02:20:13
【问题描述】:
我应该更喜欢哪种方法来编写 SIMD 指令?
mm* *mmintrin.h 形式的方法似乎更易于跨编译器移植。
但 gcc vector extensions 似乎可以生成更简单的代码,并支持更多架构。
那么哪种方法最好呢?
【问题讨论】:
-
你可以同时使用。我就是做这个的。矢量扩展涵盖了大多数垂直操作,这是您大部分时间应该使用的。当您需要其他操作时,您可以强制转换。例如,如果您有一个 16 字节向量
x,您可以使用_mm_movemask_epi8((__m128i)x)。