新的Haswell AVX"聚集"指令有哪些对齐限制?

tim*_*day 4 memory x86 alignment vectorization avx

我在看AVX编程参考.在新的Haswell指令包括一些期待已久的"聚集"的负荷.但是,我无法弄清楚索引数据项的对齐限制.第2.5节"内存对齐"的引用似乎应该列出VGATHER*表2.4或2.5 中的各种指令......但事实并非如此.

背景:虽然收集指令支持的数据大小为4和8字节,但我的应用程序可以从将相邻的16位数据值集合加载到DWORDS中受益.具有2字节比例的奇数索引将产生2字节对齐的4字节加载,并且我从手册中不清楚这是否会出错或者无法按预期工作(我宁愿怀疑我运气不好)支持未对齐访问的指令似乎在其中有一个"U".

Nor*_* P. 5

这是我第一次听说AVX2.但我猜测内存对齐限制与使用新的VEX编码方案的Sandy Bridge上AVX的当前实现不会有所不同.即,除非在名称中明确使用对齐VMOV指令,否则不需要对齐A.大多数指令允许以任何字节粒度对齐进行访问.

实际上,请参阅英特尔(R)高级矢量扩展编程参考的第35页第2.5节,其中正是如此.