AVX - 将 __256 向量存储回 C 中的内存 (void**),

AVX - storing __256 vector back to the memory (void**) in C,

我有以下用 C 编写的代码摘录,

  double* res;
  posix_memalign((void **)&res, 32, sizeof(double)*4);

  __m256 ymm0, ymm1, ymm2, ymm3;

  ymm0 = _mm256_load_pd(vector_a);
  ymm1 = _mm256_load_pd(vector_b);

  ymm2 = _mm256_mul_pd(ymm1, ymm2); 

  ymm3 = _mm256_store_pd((double*)res, ymm3); <--- problem line, 

编译时,出现以下错误消息,

 error: assigning to '__m256' from incompatible type 'void'
    ymm3 = _mm256_store_pd((double*)res, ymm3);

我认为将它转换为“res”的双指针可以解决问题,但没有成功..

有人可以帮忙吗?

编译器 - clang 3.4 - x86 ubuntu

_mm256_store_pd 没有 return 任何东西。删除对 ymm3 的分配: _mm256_store_pd((double*)res, ymm3);

你也不需要投 res 因为它已经是 double*