L’inscription en ligne a échoué lors de l’appel à always_inline ‘_mm_mullo_epi32’: incompatibilité d’option spécifique à la cible

J’essaye de comstackr un programme C en utilisant cmake qui utilise les composants insortingnsèques de SIMD. Quand j’essaye de le comstackr, j’obtiens deux erreurs

/ usr / lib / gcc / x86_64-linux-gnu / 5 / include / smminsortingn.h : 326: 1: erreur: l’inlining a échoué dans l’appel à always_inline ‘_mm_mullo_epi32’: déséquilibre d’option spécifique à la cible _mm_mullo_epi32 (__m128i __X, __m128i __y)

/ usr / lib / gcc / x86_64-linux-gnu / 5 / include / tmminsortingn.h : 136: 1: erreur: l’inlignage a échoué dans l’appel à always_inline ‘_mm_shuffle_epi8’: déséquilibre d’option spécifique à l’objective _mm_shuffle_epi8 (__m128i __X, __m128i __y)

Ce problème a déjà été résolu ici StackOverflow en définissant

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse4.1") 

J’essaie la même chose et beaucoup d’autres options. Mais mon projet ne parvient toujours pas à comstackr.

 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse4.1") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -sse4_1") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=nehalem") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse4.1 -msse4.2") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ssse3") 

Puisque vous comstackz du code C, pas du C ++, vous avez besoin de:

 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -msse4.1") 

Vous pouvez vous débarrasser de tous les autres -march XXX et -msseXXX .

Si vous utilisez un mélange de C et C ++, vous pouvez également append:

 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse4.1")