Christopher Bazley <[email protected]> writes: > On 22/06/2026 21:30, Richard Sandiford wrote: >>> There is a greater practical difference in the encoding of VECTOR_CST: >>> >>> The tree_vector_builder in vect_create_constant_vectors has >>> one element per pattern, therefore encoded_nelts is simply the number of >>> patterns (i.e. element values) in gimple_build_vector. If the vector is >>> constant then builder->build () uses that encoding. However, >>> builder->build () requires the number of patterns to be an integral >>> power of 2, which may not be true for the number of element values >>> supplied by BB SLP. >>> >>> encoded_nelts is also the number of element values in >>> gimple_build_vector_from_elems, but here build_vector_from_ctor sets >>> step to 2 for VLA vector types (e.g., encoding {1, 0}, {2, 0}, {3, 0}, >>> {0, 0} if a VLA type with lower bound 4 existed) instead of step 1, >>> which is a different encoding from that used for the tree_vector_builder >>> in vect_create_constant_vectors (e.g., {1}, {2}, {3}). The latter would >>> be invalid without zero-padding as in my first patch version because the >>> number of patterns might not be an integral power of 2. >> >> FWIW, the nomenclature and notation here isn't the one that I'm used to. >> It sounds like you're using "step" to mean "nelts_per_pattern". But to mem >> "step 2" means an "encoding with nelts_per_pattern == 3 and a step of 2 >> between elements 1 and 2 of a pattern". For example: > Yes, I am sorry about that. I did not realise until I had sent that > email how horribly confusing it would be to use the term "step" for > number of elements per pattern. > > I did so simply because "step" is a variable in the > build_vector_from_ctor function that is used with the meaning "number of > elements per pattern". (Its value is passed as the last argument to a > tree_vector_builder constructor.) I think that variable should be renamed.
Ah, yeah, agreed. A patch to rename "nelts" to "npatterns" and "step" to "nelts_per_pattern" is preapproved, if you feel like doing that. Thanks, Richard
