簡體   English   中英

編寫一段C代碼,使編譯器使用SSE4.1指令生成匯編代碼

[英]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明確地執行它們:

http://software.intel.com/sites/products/documentation/studio/composer/en-us/2011/compiler_c/intref_cls/common/intref_bk_sse41.htm

我懷疑GCC會輕易發出SSE4.1指令。 但是你可以看看英特爾SPMD程序編譯器

在SPMD模型下,程序員編寫的程序主要看起來是常規的串行程序,盡管執行模型實際上是許多程序實例在硬件上並行執行。 (參見一個更詳細的例子來說明這個概念。)ispc編譯一個基於C的SPMD編程語言,在CPU的SIMD單元上運行; 它經常在具有4個寬SSE單元的CPU上提供3倍或更高的加速,而沒有編寫內在代碼的任何困難。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM