为什么vmovapd导致段错误?

时间:2016-10-09 16:13:19

标签: segmentation-fault vectorization sse memory-alignment avx

我已经使用

分配了一个与32个字节对​​齐的双精度数组
double *dst;
posix_memalign((void**)&dst, 32, 4*sizeof(double));

我稍后使用_mm256_store_pd(dst,q);并在指令

处偶尔出现段错误
vmovapd YMMWORD PTR [rdi],ymm0

为什么会出现段错误? vmovapd可能因为对齐以外的原因导致段错误吗?

1 个答案:

答案 0 :(得分:1)

代码中的其他地方出现错误,导致使用未对齐的指针。正如彼得·科德斯指出的那样,另一个原因可能是指针无效。