Hi gcc-patches mailing list, Christopher Bazley via Sourceware Forge <[email protected]> has requested that the following forgejo pull request be published on the mailing list.
Created on: 2026-07-17 13:09:28+00:00 Latest update: 2026-07-17 13:31:03+00:00 Changes: 1 changed files, 38 additions, 23 deletions Head revision: chris.bazley/gcc ref promotion commit 8e37fb681d65c862e2c006bcf1b1ac0ed205c78a Base revision: gcc/gcc ref trunk commit 4c85f7cf587f0f62a5eb1884998d4ed30a39552a r17-2493-g4c85f7cf587f0f Merge base: 4c85f7cf587f0f62a5eb1884998d4ed30a39552a Full diff url: https://forge.sourceware.org/gcc/gcc/pulls/191.diff Discussion: https://forge.sourceware.org/gcc/gcc/pulls/191 Requested Reviewers: vect_create_vectorized_promotion_stmts no longer pushes more stmts than implied by vect_get_num_copies because it could previously overrun the number of slots allocated for an SLP node (based on its number of lanes and type). e.g., four defs were pushed for a promotion of V8HI to V2DI (8/2=4) even if only two lanes of the V8HI were active. Allowing it later caused ICE in vectorizable_operation for a parent node, because binary ops require both operands to be the same length. Since promotion no longer produces redundant definitions, vectorizable_conversion also had to be modified so that demotion no longer relies on an even number of defs being produced. If necessary, it now pushes a single constant zero def. gcc/ChangeLog: * tree-vect-stmts.cc (vect_create_vectorized_promotion_stmts): Require an SLP tree node to be passed by the caller, for use by vect_get_num_copies. Stop pushing more stmts than implied by vect_get_num_copies. (vectorizable_conversion): Pass SLP tree node to vect_create_vectorized_promotion_stmts. Demotion no longer relies on an even number of definitions being produced by promotion. If necessary, push a single constant zero definition. Changed files: - M: gcc/tree-vect-stmts.cc Christopher Bazley (1): vect: Prepare promotion/demotion for BB SLP with predicated tails gcc/tree-vect-stmts.cc | 61 ++++++++++++++++++++++++++---------------- 1 file changed, 38 insertions(+), 23 deletions(-) -- 2.54.0
