我想編寫一些C代碼,以便使用-msse4.1
標誌的gcc可以優化它。基本上我想檢查編譯器是否利用SSE4.1指令。 有很多SSE4.1指令(http://en.wikipedia.org/wiki/SSE4#New_instructions),但我無法編寫C代碼片段,它正在使用生成的彙編代碼中的任何指令。編寫一段C代碼,以便編譯器使用SSE4.1指令生成彙編代碼
在此先感謝。
我想編寫一些C代碼,以便使用-msse4.1
標誌的gcc可以優化它。基本上我想檢查編譯器是否利用SSE4.1指令。 有很多SSE4.1指令(http://en.wikipedia.org/wiki/SSE4#New_instructions),但我無法編寫C代碼片段,它正在使用生成的彙編代碼中的任何指令。編寫一段C代碼,以便編譯器使用SSE4.1指令生成彙編代碼
在此先感謝。
我懷疑GCC會放出SSE4.1指令,很容易。但是你可以看看Intel SPMD Program Compiler:
下SPMD模型,程序員寫道,大多 似乎是一個普通的串行程序的程序,但執行模型是 實際上,一些程序實例的執行並行地在 硬件上。 (請參閱說明此概念的更詳細示例。) ispc編譯基於C語言的SPMD編程語言以在SIMD 單元的CPU上運行;它經常在具有4個寬度的SSE單元的CPU 上提供3倍或更多的加速,沒有任何編寫 固有代碼的難度。
從我所看到的,編譯器很少生成SSE4.1指令。我已經看到了一些使用插入/提取指令來打包數據的例子。
但在大多數情況下,如果你想使用SSE4.1指令,你需要做的他們明確使用內部函數: