Richard Ball <richard.b...@arm.com> writes:
> Hi Prathamesh,
>
> Thanks for the review, I missed that code up above.
> I've looking into this and it seems to me at least, that what you have
> suggested, is equivalent.
> I'll make the change and repost.

The original patch is OK.  Checking in the other loop is too early,
because we want to accept variable-length vectors when repeating_p is true.

Like Prathamesh says, please add the testcase to the testsuite.

Thanks,
Richard

>
> Thanks,
> Richard
> -------------------------------------------------------------------------------
> From: Prathamesh Kulkarni <prathamesh.kulka...@linaro.org>
> Sent: 30 January 2024 17:36
> To: Richard Ball <richard.b...@arm.com>
> Cc: gcc-patches@gcc.gnu.org <gcc-patches@gcc.gnu.org>; Richard Sandiford
> <richard.sandif...@arm.com>; Kyrylo Tkachov <kyrylo.tkac...@arm.com>; Richard
> Earnshaw <richard.earns...@arm.com>; Marcus Shawcroft
> <marcus.shawcr...@arm.com>
> Subject: Re: [PATCH] aarch64: Fix ICE in poly-int.h due to SLP.
>  
> On Tue, 30 Jan 2024 at 20:13, Richard Ball <richard.b...@arm.com> wrote:
>>
>> Adds a check to ensure that the input vector arguments
>> to a function are not variable length. Previously, only the
>> output vector of a function was checked.
> Hi,
> Quoting from patch:
> @@ -8989,6 +8989,14 @@ vectorizable_slp_permutation_1 (vec_info
> *vinfo, gimple_stmt_iterator *gsi,
>        instead of relying on the pattern described above.  */
>        if (!nunits.is_constant (&npatterns))
>       return -1;
> +  FOR_EACH_VEC_ELT (children, i, child)
> +     if (SLP_TREE_VECTYPE (child))
> +       {
> +         tree child_vectype = SLP_TREE_VECTYPE (child);
> +         poly_uint64 child_nunits = TYPE_VECTOR_SUBPARTS (child_vectype);
> +         if (!child_nunits.is_constant ())
> +           return -1;
> +       }
>
> Just wondering if that'd be equivalent to checking:
> if (!TYPE_VECTOR_SUBPARTS (op_vectype).is_constant ())
>   return -1;
> Instead of (again) iterating over children since we bail out in the
> function above,
> if SLP_TREE_VECTYPE (child) and op_vectype are not compatible types ?
>
> Also, could you please include the offending test-case in the patch ?
>
> Thanks,
> Prathamesh
>
>>
>> gcc/ChangeLog:
>>
>>         * tree-vect-slp.cc (vectorizable_slp_permutation_1):
>>         Add variable-length check for vector input arguments
>>         to a function.

Reply via email to