2018.7.29 周末
https://community.arm.com/android-community/b/android/posts/arm-neon-optimization
翻译总结如下:
去除数据依赖
不要将当前指令的目的寄存器作为下一条指令的源寄存器!
原因:arm架构采用的是多级流水线技术,如果下一条指令的源寄存器是当前指令的目的寄存器,就需要当前指令执行完之后,下一条指令才能取指执行,这样会产生很大的延迟,影响性能。减少分支跳转
ARM处理器中广泛使用分支预测技术。但是一旦分支预测失败,性能就会损失很大。所以,
尽量不要用分支跳转!可以采用逻辑运算指令替代分支跳转!
比如:
VCEQ, VCGE, VCGT, VCLE, VCLT……
VBIT, VBIF, VBSL……
另外,可以使用条件执行指令,比如addgt,suble等减少分支跳转!
建议一次性多处理几行数据&#