aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4>2006-09-29 23:55:30 +0000
committerjsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4>2006-09-29 23:55:30 +0000
commit4a50e4f349774223316277a0192c96e2270ba8c6 (patch)
tree53c3e73429ea2d159b321ef1e604e4b504b3f89b
parent9e59532a2e81ababcc1de136c21ae624b456526a (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: svn+ssh://gcc.gnu.org/svn/gcc/branches/csl/sourcerygxx-4_1@117322 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--ChangeLog.csl7
-rw-r--r--gcc/doc/extend.texi36
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