NEON_14

为什么要使用内在函数?
内在函数是编译器知道其精确实现的函数。 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函数。 所选择的示例并未反映出其应用程序的全部复杂性,但应说明内在函数的用法,并作为更复杂代码的起点。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章