[英]Writing a piece of C code such that compiler uses SSE4.1 instruction for generating assembly Code
我想寫一些C代碼,使用-msse4.1
標志的gcc可以優化它。 基本上我想檢查編譯器是否正在利用SSE4.1指令。 有許多SSE4.1指令( http://en.wikipedia.org/wiki/SSE4#New_instructions )但我無法編寫使用生成的匯編代碼中的任何指令的C代碼片段。
提前致謝。
從我所看到的,編譯器很少生成SSE4.1指令。 我已經看過一些情況,它會使用插入/提取指令來打包數據。
但是在大多數情況下,如果要使用SSE4.1指令,則需要使用intrinsics明確地執行它們:
我懷疑GCC會輕易發出SSE4.1指令。 但是你可以看看英特爾SPMD程序編譯器 :
在SPMD模型下,程序員編寫的程序主要看起來是常規的串行程序,盡管執行模型實際上是許多程序實例在硬件上並行執行。 (參見一個更詳細的例子來說明這個概念。)ispc編譯一個基於C的SPMD編程語言,在CPU的SIMD單元上運行; 它經常在具有4個寬SSE單元的CPU上提供3倍或更高的加速,而沒有編寫內在代碼的任何困難。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.