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

时间:2011-07-01 09:43:39

标签: memory x86 alignment vectorization avx

我在看AVX programming referencenew Haswell instructions包括一些热切期待的“聚集”负载。但是,我无法弄清楚索引数据项的对齐限制。第2.5节“引用内存对齐”似乎应该列出表2.4或2.5中的各种VGATHER*指令......但它没有。

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

1 个答案:

答案 0 :(得分:5)

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

事实上,请参见Intel(R) Advanced Vector Extensions Programming Reference第35页第2.5节,其中明确说明了这一点。