diff options
author | Joseph Myers <joseph@codesourcery.com> | 2006-09-29 23:55:30 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2006-09-29 23:55:30 +0000 |
commit | af36330c7d32f284f75b0394d6328e33ec966a24 (patch) | |
tree | 53c3e73429ea2d159b321ef1e604e4b504b3f89b | |
parent | d6b8a7000a5fd786c8553a50a554ec4f1ef0e436 (diff) |
* doc/extend.texi (ARM NEON Intrinsics): Note that only intrinsics
not the underlying built-in functions are supported. Document
types used.
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/csl/sourcerygxx-4_1@117322 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | ChangeLog.csl | 7 | ||||
-rw-r--r-- | gcc/doc/extend.texi | 36 |
2 files changed, 41 insertions, 2 deletions
diff --git a/ChangeLog.csl b/ChangeLog.csl index c363b6b84c8..9019b3d2c26 100644 --- a/ChangeLog.csl +++ b/ChangeLog.csl @@ -1,3 +1,10 @@ +2006-09-29 Joseph Myers <joseph@codesourcery.com> + + gcc/ + * doc/extend.texi (ARM NEON Intrinsics): Note that only intrinsics + not the underlying built-in functions are supported. Document + types used. + 2006-09-29 Julian Brown <julian@codesourcery.com> * Merge from CSL arm-neon-4_1 branch, revision 150297. diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi index fced27683ac..ff3040e9d0a 100644 --- a/gcc/doc/extend.texi +++ b/gcc/doc/extend.texi @@ -6052,8 +6052,40 @@ long long __builtin_arm_wzero () @node ARM NEON Intrinsics @subsection ARM NEON Intrinsics -These built-in intrinsics for the ARM Advanced SIMD extension are available -when the @option{-mfpu=neon} switch is used: +These built-in intrinsics for the ARM Advanced SIMD extension are +available when the @option{-mfpu=neon} switch is used. These +intrinsics are defined in @code{<arm_neon.h>}. + +@emph{Note:} Only the @code{<arm_neon.h>} interface is supported. +Internally, GCC uses built-in functions to achieve the functionality +in the aforementioned header file, but they are not supported and are +subject to change without notice. + +For scalars, these intrinsics use the standard types @code{int8_t}, +@code{int16_t}, @code{int32_t}, @code{int64_t}, @code{uint8_t}, +@code{uint16_t}, @code{uint32_t} and @code{uint64_t} from +@code{<stdint.h>}, as well as @code{float32_t} for single-precision +floating-point values and @code{poly8_t} and @code{poly16_t} for +polynomials. + +For vectors, the intrinsics support 64-bit and 128-bit vectors whose +elements are one of the above types. The type +@code{@var{T}x@var{N}_t} is a vector of @var{N} elements of type +@code{@var{T}_t} (for example, @code{int16x8_t}). These types should +be considered as opaque types that can only be used via these +intrinsics. + +Some intrinsics use structures containing two, three or four vectors. +Such structures are named @code{@var{V}x@var{M}_t} for a vector type +@var{V}, and contain a single element, an array called @code{val} +whose elements are of the vector type. For example: + +@smallexample +typedef struct int16x8x3_t +@{ + int16x8_t val[3]; +@} int16x8x3_t; +@end smallexample @include arm-neon-intrinsics.texi |