3

我需要实现一个没有 AVX2 的类似 vpgatherdd 的机制。

说,我有 4 个 i32 偏移量包装在 xmm0 中。我需要提取 xmm0 中的每个元素来完成这项mov reg, [base + offset]工作。

问题是我应该如何提取元素?

pextrd,其延迟为 3。而且我并没有像流式一样这样做,每次运行时都会以 8 或 4 计算偏移量。

还有psrldq,其延迟为 1 ,有 1 movd,似乎我可以在 2 个周期内完成提取工作。

虽然1个周期不多,但我想知道这里哪个更好。下一个 8-offsets-extraction 是否可以隐藏这种延迟?

是否有选择长延迟指令与短延迟指令组的一般规则?

4

0 回答 0