有2个指针指向2个未对齐的8字节块,这些指针将被加载到xmm寄存器中。如果可能,请使用内在函数。并且如果可能的话,不使用辅助寄存器。没有pinsrd。 (SSSE核心2)

最佳答案

msvc specs看来,您可以执行以下操作:

__m128d xx;                   // an uninitialised xmm register
xx = _mm_loadh_pd(xx, ptra);  // load the higher 64 bits from (unaligned) ptra
xx = _mm_loadl_pd(xx, ptrb);  // load the lower 64 bits from (unaligned) ptrb

从我的经验来看,从未对齐的存储中加载比从对齐的指针中加载慢得多,因此,如果您确实想要更高的性能,那么您不希望过多地执行这种类型的操作。

希望这可以帮助。

关于sse - 用SSSE3将2个未对齐的64位值加载到sse寄存器中的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7217977/

10-11 03:28