【发布时间】:2013-04-18 02:08:41
【问题描述】:
查看 AVX2 内在函数文档,那里收集了加载指令,例如 VPGATHERDD:
__m128i _mm_i32gather_epi32 (int const * base, __m128i index, const int scale);
从文档中我不清楚的是计算的加载地址是 element 地址还是 byte 地址,即元素 @ 的加载地址987654324@:
load_addr = base + index[i] * scale; // (1) element addressing ?
或:
load_addr = (char *)base + index[i] * scale; // (2) byte addressing ?
从Intel docs 看来,它可能是 (2),但这并没有多大意义,因为收集负载的最小元素大小是 32 位 - 为什么要从未对齐的地址加载(即使用比例
【问题讨论】: