使用SSE加载不连续的浮点数

时间:2013-04-22 18:27:41

标签: intel sse

是否有英特尔SSE指令可以从(非连续的)均匀间隔的内存地址加载浮点数?

例如,给定一个数组A = {0, 1, 2, 3 .... n},我想一次加载到一个128位寄存器{A[0], A[4], A[8], A[12]},然后是 {A[5], A[9], A[13], A[17]}

1 个答案:

答案 0 :(得分:2)

您需要加载多个连续的向量,然后使用例如将它们置换为所需的排列。 pshufdpunpckldq等。在Haswell及其他地方使用AVX2会产生负载感应,但在此之前,这是您可以做到的最佳选择。