手頭有一套 SSE 內聯彙編代碼,想移植到 ARM NEON。直接逐條對照指令手冊翻譯?大錯特錯! 不同架構的優化邏輯截然不同,盲目對照只能產生「能跑但慢」的代碼。
arm_neon.h)重新實現核心計算,參考 ARM 官方優化指南。vld1q_f32 vs _mm_load_ps)。vmla_f32 (融合乘加)、vzip/vuzp (數據交織/解交織)。_mm_cmpgt_ps 掩碼操作,需用 vcgtq_f32 + vbslq_f32 模擬。-O3 -mfpu=neon 讓編譯器做重活。「直接翻譯指令代碼是移植了,可是性能沒有移植過去。」—— 移植的是算法與優化思想,而非指令助記符。