【问题描述】
鲲鹏环境下编译OpenBLAS过程报incompatible type for argument 1 of ‘_mm512_abs_pd’问题,详细报错如下:
dasum_microk_skylakex-2.c:42:38: error: incompatible type for argument 1 of ‘_mm512_abs_pd’
accum_0 += _mm512_abs_pd(_mm512_load_pd(&x1[i + 0]));
^~~~~~~~~~~~~~
In file included from /xxxxx/7.3.0/include/immintrin.h:45:0,
from ../kernel/xxxxx/dasum_microk_skylakex-2.c:6,
from ../kernel/xxxxx/dasum.c:8:
/usr/lib/gcc/xxxxxx/7.3.0/include/avx512fintrin.h:7301:1: note: expected ‘__m512 {aka __vector(16) float}’ but argument is of type ‘__m512d {aka __vector(8) double}’
_mm512_abs_pd (__m512 __A)
^~~~~~~~~~~~~
【解决方法】
1、查找avx512fintrin.h文件
find / -name "avx512fintrin.h"
2、修改avx512fintrin.h文件,找到_mm512_abs_pd (__m512 __A)替换为_mm512_abs_pd (__m512d __A)

3、重新make编译即可
【问题描述】
鲲鹏环境下编译OpenBLAS过程报incompatible type for argument 1 of ‘_mm512_abs_pd’问题,详细报错如下:
dasum_microk_skylakex-2.c:42:38: error: incompatible type for argument 1 of ‘_mm512_abs_pd’
accum_0 += _mm512_abs_pd(_mm512_load_pd(&x1[i + 0]));
^~~~~~~~~~~~~~
In file included from /xxxxx/7.3.0/include/immintrin.h:45:0,
from ../kernel/xxxxx/dasum_microk_skylakex-2.c:6,
from ../kernel/xxxxx/dasum.c:8:
/usr/lib/gcc/xxxxxx/7.3.0/include/avx512fintrin.h:7301:1: note: expected ‘__m512 {aka __vector(16) float}’ but argument is of type ‘__m512d {aka __vector(8) double}’
_mm512_abs_pd (__m512 __A)
^~~~~~~~~~~~~
【解决方法】
1、查找avx512fintrin.h文件
find / -name "avx512fintrin.h"
2、修改avx512fintrin.h文件,找到_mm512_abs_pd (__m512 __A)替换为_mm512_abs_pd (__m512d __A)
3、重新make编译即可