4

我正在查看AVX 编程参考。新的Haswell 指令包括一些期待已久的“收集”负载。但是,我无法弄清楚索引数据项的对齐限制是什么。参考的第 2.5 节“内存对齐”似乎应该列出VGATHER*表 2.4 或 2.5 之一中的各种指令......但它没有。

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

4

1 回答 1

5

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

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

于 2011-07-01T14:54:49.543 回答