0

多くの AVX-512 組み込み関数を含む、Xeon Phi で実行される C コードがあります。

次の行まで、コードは適切にコンパイルされます。

#ifdef __MIC__
__m512i mm_idx = _mm512_set_epi32(0, 0, 0, 0, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
__m512 mm_temp1 = _mm512_set1_ps(temp1);
__m512 mm_temp2 = _mm512_set1_ps(temp2);
__m512i mm_temp3 = _mm512_cvttps_epi32(_mm512_fmadd_ps(_mm512_cvtepi32_ps(mm_idx), mm_temp2, mm_temp1));
#else    something else 

コンパイラは次のエラーを出します。

undefined reference to '_mm512_cvt_roundepi32_ps' 
undefined reference to '_mm512_cvtt_roundps_epi32'

私の最初の質問は、なぜコンパイラは_mm512_cvttps_epi32and_mm512_cvtepi32_ps_mm512_cvtt_roundps_epi32andに変換したの_mm512_cvt_roundepi32_psですか?

2 番目の質問は、なぜこれらの組み込み関数が特に未定義なのかということです。上部に次のインクルードがあります。

#include <immintrin.h>
#include <smmintrin.h>
#include <zmmintrin.h>

icc (ICC) 15.0.1 20141023 を使用しています

4

1 に答える 1