有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/