2017-03-26 82 views
-1

我想在一些項目中使用SIMD指令,一切工作正常,但我不能使用_mm_set1_epi32(x)命令(我仍然可以使用_mm_set_epi32(x,x,x, x),它工作正常),但只要我想使用其他來源的命令使用的代碼CodeGo.net,我得到一個「內存訪問錯誤」的消息(請原諒,我沒有正確的英文翻譯的錯誤,我試圖從德國那裏是Speicherzugriffsfehler)翻譯其運行時錯誤與_mm_set1_epi32

一些額外的信息:

  • 我得到了一個空項目,錯誤的位置我什麼都不做,除了使用命令
  • 我得到了這個問題,沒有其他命令

有關代碼示例,沒有真正的東西張貼在這裏,除了這一點:

int main() { 
    __m128i test = _mm_set1_epi32(1); 
} 

的錯誤在運行時,與編譯沒有問題。

+1

[MCVE],其版本,編譯器,哪些選項, –

+0

的等我用的是以下在我的生成文件中: CXX =鐺++ CXXFLAGS = -Wall -v -g -std = C++ 11 -Wall -pedantic -msse -mmmx -msse2 -msse4.1 -v -mavx2 – uv239

+0

仍然沒有[mcve]? –

回答

0

我解決了這個問題。我用來編譯錯誤的標誌位,這也是我沒有放置任何代碼的原因,它只是1行,我嘗試執行該命令並將其包含在主函數中。

所以要解決,我現在使用:

-g -std=c++11 -Wall -pedantic -msse4.1 -v 

,我使用前:

-g -std=c++11 -Wall -pedantic -msse -mmmx -msse2 -msse4.1 -v -mavx2