diff options
Diffstat (limited to 'gcc/doc')
-rw-r--r-- | gcc/doc/md.texi | 29 | ||||
-rw-r--r-- | gcc/doc/sourcebuild.texi | 3 |
2 files changed, 32 insertions, 0 deletions
diff --git a/gcc/doc/md.texi b/gcc/doc/md.texi index 245fa90..f5167a1 100644 --- a/gcc/doc/md.texi +++ b/gcc/doc/md.texi @@ -4937,6 +4937,35 @@ operand 5. Bit @var{i} of the mask is set if element @var{i} of the result should be loaded from memory and clear if element @var{i} of the result should be set to zero. +@cindex @code{scatter_store@var{m}} instruction pattern +@item @samp{scatter_store@var{m}} +Store a vector of mode @var{m} into several distinct memory locations. +Operand 0 is a scalar base address and operand 1 is a vector of offsets +from that base. Operand 4 is the vector of values that should be stored, +which has the same number of elements as the offset. For each element +index @var{i}: + +@itemize @bullet +@item +extend the offset element @var{i} to address width, using zero +extension if operand 2 is 1 and sign extension if operand 2 is zero; +@item +multiply the extended offset by operand 3; +@item +add the result to the base; and +@item +store element @var{i} of operand 4 to that address. +@end itemize + +The value of operand 2 does not matter if the offsets are already +address width. + +@cindex @code{mask_scatter_store@var{m}} instruction pattern +@item @samp{mask_scatter_store@var{m}} +Like @samp{scatter_store@var{m}}, but takes an extra mask operand as +operand 5. Bit @var{i} of the mask is set if element @var{i} +of the result should be stored to memory. + @cindex @code{vec_set@var{m}} instruction pattern @item @samp{vec_set@var{m}} Set given field in the vector value. Operand 0 is the vector to modify, diff --git a/gcc/doc/sourcebuild.texi b/gcc/doc/sourcebuild.texi index e02d4da..f0233c9 100644 --- a/gcc/doc/sourcebuild.texi +++ b/gcc/doc/sourcebuild.texi @@ -1421,6 +1421,9 @@ so that vector loops can handle partial as well as full vectors. @item vect_masked_store Target supports vector masked stores. +@item vect_scatter_store +Target supports vector scatter stores. + @item vect_aligned_arrays Target aligns arrays to vector alignment boundary. |