SSE优化指令集编译错误: inlining failed in call to always_inline 'xxx': target specific option mismatch xxx


在用QtCreator编译SSE优化指令的时候,出现了如下错误,

 

inlining failed in call to always_inline '__m128i _mm_packus_epi32(__m128i, __m128i)': target specific option mismatch
_mm_packus_epi32 (__m128i __X, __m128i __Y)
^
该错误的原因是编译的时候没有指定对应的SSE选项。
解决办法:在文档中找到出错指令对应的SSE指令集,Intel官方指令集向导,然后添加到QT工程设置中,如上述出错的指令packusdw是在


sse4.1中,所以在QT设置中添加:
QMAKE_CXXFLAGS += "-msse4.1"
类似的还有,
QMAKE_CXXFLAGS += "-msse2"
QMAKE_CXXFLAGS += "-mssse3"
……


如果是自己写makefile,设置办法类似,也是添加-msse2,-msse4.1等选项。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM