On Tue, Jun 23, 2026 at 12:54 PM Christopher Bazley via Sourceware
Forge <[email protected]> wrote:
>
> From: Christopher Bazley <[email protected]>
>
> 'nelts' is not the number of encoded elements in a VECTOR_CST; it
> is the number of patterns. Sometimes those interpretations coincide,
> as in the case of fixed length vector types (for which the number of
> elements per pattern is one), but not always.
>
> 'step' is not the step between the second and third element of
> a stepped pattern; it is the number of elements per pattern.
> This has led to confusion on the mailing list.
>
> Both variables are hereby renamed.
>
> gcc/ChangeLog:
>
>         * tree.cc (build_vector_from_ctor): Rename variables.
> ---
>  gcc/tree.cc | 16 ++++++++--------
>  1 file changed, 8 insertions(+), 8 deletions(-)
>
> diff --git a/gcc/tree.cc b/gcc/tree.cc
> index ca713cec4d6a..b4c836b4a0a7 100644
> --- a/gcc/tree.cc
> +++ b/gcc/tree.cc
> @@ -2201,23 +2201,23 @@ build_vector_from_ctor (tree type, const 
> vec<constructor_elt, va_gc> *v)
>    if (vec_safe_length (v) == 0)
>      return build_zero_cst (type);
>
> -  unsigned HOST_WIDE_INT idx, nelts, step = 1;
> +  unsigned HOST_WIDE_INT idx, npatterns, nelts_per_pattern = 1;
>    tree value;
>
>    /* If the vector is a VLA, build a VLA constant vector.  */
> -  if (!TYPE_VECTOR_SUBPARTS (type).is_constant (&nelts))
> +  if (!TYPE_VECTOR_SUBPARTS (type).is_constant (&npatterns))

No, TYPE_VECTOR_SUBPARTS is the number of elements in 'type'.

>      {
> -      nelts = constant_lower_bound (TYPE_VECTOR_SUBPARTS (type));
> -      gcc_assert (vec_safe_length (v) <= nelts);
> -      step = 2;
> +      npatterns = constant_lower_bound (TYPE_VECTOR_SUBPARTS (type));
> +      gcc_assert (vec_safe_length (v) <= npatterns);
> +      nelts_per_pattern = 2;
>      }
>
> -  tree_vector_builder vec (type, nelts, step);
> +  tree_vector_builder vec (type, npatterns, nelts_per_pattern);
>    FOR_EACH_CONSTRUCTOR_VALUE (v, idx, value)
>      {
>        if (TREE_CODE (value) == VECTOR_CST)
>         {
> -         /* If NELTS is constant then this must be too.  */
> +         /* If NPATTERNS is constant then this must be too.  */
>           unsigned int sub_nelts = VECTOR_CST_NELTS (value).to_constant ();
>           for (unsigned i = 0; i < sub_nelts; ++i)
>             vec.quick_push (VECTOR_CST_ELT (value, i));
> @@ -2225,7 +2225,7 @@ build_vector_from_ctor (tree type, const 
> vec<constructor_elt, va_gc> *v)
>        else
>         vec.quick_push (value);
>      }
> -  while (vec.length () < nelts * step)
> +  while (vec.length () < npatterns * nelts_per_pattern)
>      vec.quick_push (build_zero_cst (TREE_TYPE (type)));
>
>    return vec.build ();
> --
> 2.54.0
>

Reply via email to