在上一篇<使用WEC7的NEON内在函数功能>中,论述了使用wec7的neon内在函数进行代码优化的可能。在这一篇中将讲述neon指令对三角、对数、指数函数效率的提升。
一、测试平台
1、CPU: Cortex-A8 1GHz
2、OS: Wince6R3
3、COMPLIER: 1、vs2005 2、wec7
二、测试代码链接
1、http://gruntthepeon.free.fr/ssemath/neon_mathfun.html
2、http://blog.csdn.net/zht9961020/article/details/7232924
三、测试结果
sin .. -> 0.0 millions of vector evaluations/second -> 9900 cycles/value cos .. -> 0.0 millions of vector evaluations/second -> 10750 cycles/value exp .. -> 0.0 millions of vector evaluations/second -> 8300 cycles/value log .. -> 0.0 millions of vector evaluations/second -> 9075 cycles/value cephes_sinf .. -> 0.5 millions of vector evaluations/second -> 457 cycles/value cephes_cosf .. -> 0.4 millions of vector evaluations/second -> 503 cycles/value cephes_expf .. -> 0.1 millions of vector evaluations/second -> 1835 cycles/value cephes_logf .. -> 0.2 millions of vector evaluations/second -> 950 cycles/value sin_ps .. -> 3.4 millions of vector evaluations/second -> 73 cycles/value cos_ps .. -> 3.3 millions of vector evaluations/second -> 74 cycles/value sincos_ps .. -> 3.5 millions of vector evaluations/second -> 70 cycles/value exp_ps .. -> 7.2 millions of vector evaluations/second -> 35 cycles/value log_ps .. -> 5.8 millions of vector evaluations/second -> 43 cycles/value my_sin .. -> 0.5 millions of vector evaluations/second -> 431 cycles/value my_cos .. -> 0.4 millions of vector evaluations/second -> 590 cycles/value
四、分析
1、1~4是使用系统库函数,5~8是用的另一个库,9~13是使用neon优化过的,这些测试分支均来自第一处测试代码链接
2、14~15是用的另一个库,来自第二处测试代码链接
从结果来看,使用neon优化过的具有明显的优势