NEON_14

本文探讨了Neon内在函数在C和C++编程中的优势,如强大的Neon指令集访问、代码移植性及灵活性。内在函数简化了ARM平台上的高性能编程,避免了直接编写汇编代码的复杂性。

为什么要使用内在函数?
内在函数是编译器知道其精确实现的函数。 Neon内部函数是arm_neon.h中定义的一组C和C ++函数,Arm编译器和GCC支持这些函数。 这些功能使您可以使用Neon,而不必直接编写汇编代码,因为这些函数本身包含内联到调用代码中的简短汇编内核。 另外,寄存器分配和流水线优化由编译器处理,因此避免了汇编程序员面临的许多困难。

 

有关所有Neon内部函数的列表,请参见Neon内部函数参考。 Neon内部工程规范包含在Arm C语言扩展(ACLE)中。

使用Neon内在函数有很多好处:

强大:内在的特性使程序员可以直接访问Neon指令集,而无需手写的汇编代码。
便携式:可能需要针对不同的目标处理器重新编写手写的Neon组装指令。 包含Neon内部函数的C和C ++代码可以为新目标或新的执行状态(例如,从AArch32迁移到AArch64)进行编译,而只需很少的代码更改或没有任何代码更改。
灵活:程序员可以在需要时使用Neon,在不需要时使用C / C ++,同时避免了许多底层工程问题。

 

但是,内在函数可能并非在所有情况下都是正确的选择:

与导入库或依赖编译器相比,使用Neon内部函数有一个更陡峭的学习曲线。
手工优化的汇编代码可能会提供最大的性能改进范围,即使更难编写。
现在,我们将通过几个示例使用Neon内在函数重新实现一些C函数。 所选择的示例并未反映出其应用程序的全部复杂性,但应说明内在函数的用法,并作为更复杂代码的起点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值