针对各cpu支持neon的编译选项

编译配置

S3C2410 200MHz softfloat        
采用软浮点库,编译选项

-mcpu=arm920t -mtune=arm920t -O3 -msoft-float -ffast-math

OMAP2420 400MHz softfloat        
采用软浮点库,编译选项

-mcpu=arm1136jf-s -mtune=arm1136jf-s -O3 -msoft-float -ffast-math

OMAP2420 400MHz vfp        
采用VFP硬件浮点,编译选项

-mcpu=arm1136jf-s -mtune=arm1136jf-s -O3 -mfloat-abi=softfp -mfpu=vfp -ffast-math

OMAP3530 600MHz vfp        
采用VFP硬件浮点,编译选项

-mcpu=cortex-a8 -mtune=cortex-a8 -O3 -mfloat-abi=softfp -mfpu=vfp -ffast-math

OMAP3530 600MHz auto vectorized        
采用neon向量浮点,gcc-4.3.2自动生成neon向量指令,编译选项

-mcpu=cortex-a8 -mtune=cortex-a8 -O3 -mfloat-abi=softfp -mfpu=neon -ftree-vectorize -ffast-math

OMAP3530 600MHz manual vectorized        
采用手工编写的汇编函数,人工调用neon向量浮点指令,编译选项
-mcpu=cortex-a8 -mtune=cortex-a8 -O3 -mfloat-abi=softfp
PentiumD920 3.0GHz scalar fpu        
采用FPU硬件浮点,编译选项
-march=nocona -O3
PentiumD920 3.0GHz SSE3 vectorized        
采用sse3向量浮点,gcc-4.3.2自动生成sse3向量指令,编译选项
-march=nocona -O3 -ftree-vectorize -ffast-math -mfpmath=sse -mmmx -msse -msse2 -msse3

新版本gcc-4.3已经加入了neon向量指令支持,而对sse的支持在更早版本中就已经加入了。要启用向量指令自动生成功能,需要在编译参数中加入适当的处理器指令集标记和浮点选择标记,在arm架构下为
-mfloat-abi=softfp -mfpu=neon -ftree-vectorize -ffast-math
在x86架构下为
-mfpmath=sse -ftree-vectorize -mmmx -msse -msse2 -msse3 -ffast-math
另外,在arm linux平台下,如果使用的是EABI(embedded application binary interface)配置则允许系统中混合运行softfp,vfp,neon向量浮点等各种浮点实现代码。例如在cortex-a8上运行同时运行优化的向量浮点代码和老式arm920t的软浮点代码,这使得上述测试能够方便的完成。如果用老的oabi环境,切换不同的浮点配置必须把全部的用户代码重新编译。
下载地址在这里可以找到。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值