ARM/AAarch64: NEON intrinsics in the kernel

Richard Earnshaw rearnsha@arm.com
Tue May 21 09:43:00 GMT 2013


On 21/05/13 10:32, Ard Biesheuvel wrote:
> Hello all,
>
> I am currently exploring various ways of using NEON instructions in
> kernel mode. One of the ways of doing so is using NEON intrinsics,
> which we would like to support in the kernel, but unfortunately, at
> the moment we can't because the support header arm_neon.h assumes C99
> conformance and includes <stdint.h>. The kernel does not supply that
> header.
>
> As far as I can tell, the only dependency arm_neon.h has on the
> contents of that header are the [u]int[8|16|32|64]_t typedefs. The
> kernel does define those, only in a different header.
>
> I would like to propose the following way to address this issue: as
> arm_neon.h is coupled very tightly with GCC's internals
> (__builtin_neon_* types and functions), could we not modify arm_neon.h
> to
> - drop the #include <stdint.h>
> - replace every instance of [u]intxx_t with the builtin macro
> __[U]INTxx_TYPE__ (as we are already dependent on specific versions of
> GCC, this should not introduce any additional limitations)
>
> In this way, it is much easier to support NEON intrinsics in
> environments that we care about (like the kernel) but do not conform
> to the standards.
>
> Kind regards,
> Ard.
>

Why don't you add a (maybe cut-down) stdint.h to the kernel.  It seems 
bizarre to me that the kernel is trying to provide standard types 
through a non-standard interface.

R.



More information about the Gcc mailing list