unresolved external symbol __mm256_setr_epi64x

前端 未结 2 1969
栀梦
栀梦 2020-12-11 06:44

I have written and debugged some AVX code with g++ and now I\'m trying to get it to work with MSVC, but I keep getting

error LNK2019: unresolved exte

2条回答
  •  陌清茗
    陌清茗 (楼主)
    2020-12-11 07:31

    In 32-bit mode MSVC does not support

    • _mm_set_epi64x
    • _mm_setr_epi64x
    • _mm_set1_epi64x
    • _mm256_set_epi64x
    • _mm256_setr_epi64x
    • _mm256_set1_epi64x

    In your case in 32-bit mode you can do this:

        union {
            int64_t q[4];
            int32_t r[8];
        } u;
        u.q[0] = a; u.q[1] = b; u.q[2] = c; u.q[3] = d;
        return _mm256_setr_epi32(u.r[0], u.r[1], u.r[2], u.r[3], u.r[4], u.r[5], u.r[6], u.r[7]);
    

    Since Visual Studio 2015 (_MSC_VER 1900) these intrinsics are supported in 32-bit mode.

提交回复
热议问题