以下代码适用于英特尔编译器(版本:18.0.2),但不适用于GNU编译器(版本:6.1.0):
#include <immintrin.h>
double ALIGN array1[8] = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0};
__m512d a1AVX = _mm512_load_pd(array1);
__m512d exp = _mm512_exp_pd(a1AVX);
错误消息说明以下内容:error: ‘_mm512_exp_pd’ was not declared in this scope
。它来自SVML library。
我正在使用以下编译器标志:-std=c++11 -march=knl -mtune=knl -fpic -O3 -DNDDEBUG
。
我在这里错过了编译器标志吗?
答案 0 :(得分:3)
gcc 支持支持英特尔内在函数。但是,<fmt:formatDate value="${yourBean.date}" pattern="<%=DateUtil.BY_DEFAULT_DATE_FORMAT %>" />
不是内在函数,而是来自_mm512_exp_pd
库的函数,是英特尔编译器独有的函数。您可以查看英特尔内在函数和SVML
函数here的完整列表。