我剛開始嘗試使用NEON優化一些android代碼。但是,我遇到了一些問題。主要問題是我真的無法弄清楚如何做一個快速的16位浮點轉換。使用ARM霓虹燈將短陣列轉換爲浮點
我看到它可能使用vcvt.s32.f32將多個32位整數轉換爲1個SIMD指令的浮點數。但是,如何將一組4個S16轉換爲4個S32?我認爲它與VUZP指令有關,但我不知道如何...
同樣,我看到它可能使用VCVT.s16.f32一次轉換1 16位浮點數,但可能雖然這很有幫助,但使用SIMD不能完成它似乎非常浪費。
多年來,我在許多不同的平臺上編寫過彙編程序,但由於某些原因,我發現ARM文檔完全不可理解。
因爲這樣的任何幫助將HUGELY讚賞。
還有什麼辦法可以獲得NEON設備的吞吐量和延遲數據嗎?
在此先感謝!
對NEON並不熟悉,但不能將4個短褲「拓寬」爲4個整數然後轉換?看看[GCCs內在函數](http://gcc.gnu.org/onlinedocs/gcc/ARM-NEON-Intrinsics.html)我想也許vaddl.s16的零秒操作數可以。 – user786653
@ user786653:嗯,它可能只是做到了這一點:D – Goz
是的..這似乎工作。不能相信我沒有注意到這個說明.. – Goz