3.4.6. Function calls and inlining

Calls to other functions within a loop are not accepted by the compiler because it cannot process the content of the called function. Vectorization is inhibited because the compiler cannot pass the partial result of vectorization to the other function in NEON registers.

Splitting complex operations into several functions to aid clarity is common practice. In order for these functions to be considered for vectorization, they must be marked with the __inline or __forceinline keywords. These functions are then expanded inline for vectorization. See __inline and __forceinline in the Compiler Reference Guide for more information.

Note

These keywords also imply internal static linkage.

Copyright © 2007 ARM Limited. All rights reserved.ARM DUI 0350A
Non-Confidential