NEON_14

爲什麼要使用內在函數?
內在函數是編譯器知道其精確實現的函數。 Neon內部函數是arm_neon.h中定義的一組C和C ++函數,Arm編譯器和GCC支持這些函數。 這些功能使您可以使用Neon,而不必直接編寫彙編代碼,因爲這些函數本身包含內聯到調用代碼中的簡短彙編內核。 另外,寄存器分配和流水線優化由編譯器處理,因此避免了彙編程序員面臨的許多困難。

 

有關所有Neon內部函數的列表,請參見Neon內部函數參考。 Neon內部工程規範包含在Arm C語言擴展(ACLE)中。

使用Neon內在函數有很多好處:

強大:內在的特性使程序員可以直接訪問Neon指令集,而無需手寫的彙編代碼。
便攜式:可能需要針對不同的目標處理器重新編寫手寫的Neon組裝指令。 包含Neon內部函數的C和C ++代碼可以爲新目標或新的執行狀態(例如,從AArch32遷移到AArch64)進行編譯,而只需很少的代碼更改或沒有任何代碼更改。
靈活:程序員可以在需要時使用Neon,在不需要時使用C / C ++,同時避免了許多底層工程問題。

 

但是,內在函數可能並非在所有情況下都是正確的選擇:

與導入庫或依賴編譯器相比,使用Neon內部函數有一個更陡峭的學習曲線。
手工優化的彙編代碼可能會提供最大的性能改進範圍,即使更難編寫。
現在,我們將通過幾個示例使用Neon內在函數重新實現一些C函數。 所選擇的示例並未反映出其應用程序的全部複雜性,但應說明內在函數的用法,並作爲更復雜代碼的起點。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章