擁有裝入NEON寄存器uint32x4_t
型r1
,r3
和r4
我有以下代碼:NEON簡單向量賦值內在?
r3 = veorq_u32(r0,r3);
r4 = r1;
r1 = vandq_u32(r1,r3);
r4 = veorq_u32(r4,r2);
r1 = veorq_u32(r1,r0);
而我只是想知道是否GCC實際上轉化r4 = r1
到vmov
指令。看着反彙編的代碼,我並不感到驚訝,它沒有。 (而且我想不出什麼生成的彙編代碼實際上做)
通過ARM的NEON內在略讀引用我無法找到任何簡單的載體 - >矢量分配的內在。
什麼是實現這一目標的最簡單的方法?我不知道一個內聯彙編代碼會是什麼樣子,因爲我不知道在哪個寄存器是r1
和vld1q_u32
分配r4
。我不需要實際交換,只需分配。
大會如何看起來像?你用-O2編譯過嗎? – auselen 2013-03-13 13:47:17
是的,只有一堆邏輯指令,但沒有我期望的'vmov'。 – NumberFour 2013-03-13 14:13:36
如果您認爲缺少NEON指令'vmov'的變體的內在函數,請隨時在http://gcc.gnu.org/上發佈一個包含操作碼,參數,文檔鏈接等的錯誤。 – ydroneaud 2013-03-13 14:35:05