James Greenhalgh <james.greenha...@arm.com> writes:
> On Thu, Jan 04, 2018 at 11:27:56AM +0000, Richard Sandiford wrote:
>> Ping**2
>
> This is OK.

Thanks.

> It took me a while to get the hang of the interface - a worked example
> in the comment in vec-perm-indices.c would probably have been helpful.
> It took until your code for REV for this to really make sense to me; so
> perhaps that make for a good example.

Yeah, good idea.

Is the following OK?  Tested on aarch64-linux-gnu.

Thanks,
Richard


2018-01-09  Richard Sandiford  <richard.sandif...@linaro.org>

gcc/
        * vec-perm-indices.c (vec_perm_indices::series_p): Give examples
        of usage.

Index: gcc/vec-perm-indices.c
===================================================================
--- gcc/vec-perm-indices.c      2018-01-03 11:12:55.709763763 +0000
+++ gcc/vec-perm-indices.c      2018-01-09 15:46:40.004232873 +0000
@@ -114,7 +114,18 @@ vec_perm_indices::rotate_inputs (int del
 }
 
 /* Return true if index OUT_BASE + I * OUT_STEP selects input
-   element IN_BASE + I * IN_STEP.  */
+   element IN_BASE + I * IN_STEP.  For example, the call to test
+   whether a permute reverses a vector of N elements would be:
+
+     series_p (0, 1, N - 1, -1)
+
+   which would return true for { N - 1, N - 2, N - 3, ... }.
+   The calls to test for an interleaving of elements starting
+   at N1 and N2 would be:
+
+     series_p (0, 2, N1, 1) && series_p (1, 2, N2, 1).
+
+   which would return true for { N1, N2, N1 + 1, N2 + 1, ... }.  */
 
 bool
 vec_perm_indices::series_p (unsigned int out_base, unsigned int out_step,

Reply via email to