]> git.ipfire.org Git - thirdparty/gcc.git/commit
tree-optimization/122297 - fix load/store bias handling
authorJuergen Christ <jchrist@linux.ibm.com>
Thu, 5 Feb 2026 10:42:45 +0000 (11:42 +0100)
committerJuergen Christ <jchrist@linux.ibm.com>
Tue, 10 Feb 2026 12:18:35 +0000 (13:18 +0100)
commit2291c5c4471040acd3da83b5e2cbe56d7b4720e9
tree222056a16771e649076b99148513b1c723b7b33f
parent6b550d69fe7cb62ea6e240ce7a4ba29ce33aa1b1
tree-optimization/122297 - fix load/store bias handling

When load/store with length is used and only QImode versions are
available, vectorizable_live_operation produces wrong results for
VEC_EXTRACT.  Provide a flag to vect_get_loop_len to specify if
bias-adjusted length should be used or not.

gcc/ChangeLog:

PR tree-optimization/122297
* tree-vect-loop.cc (vectorize_fold_left_reduction): Adjust.
(vectorizable_induction): Adjust.
(vectorizable_live_operation_1): Adjust.
(vect_get_loop_len): Provide parameter to select bias-adjusted
length.
(vect_gen_loop_len_mask): Adjust.
(vect_update_ivs_after_vectorizer_for_early_breaks): Adjust.
* tree-vect-stmts.cc (vect_get_strided_load_store_ops): Adjust.
(vectorizable_call): Adjust.
(vectorizable_operation): Adjust.
(vectorizable_store): Adjust.
(vectorizable_load): Adjust.
(vectorizable_condition): Adjust.
* tree-vectorizer.h (vect_get_loop_len): Add parameter.

gcc/testsuite/ChangeLog:

PR tree-optimization/122297
* gcc.dg/vect/nodump-extractlast-1.c: Fix typo.
* gcc.dg/vect/nodump-extractlast-2.c: New test.

Signed-off-by: Juergen Christ <jchrist@linux.ibm.com>
gcc/testsuite/gcc.dg/vect/nodump-extractlast-1.c
gcc/testsuite/gcc.dg/vect/nodump-extractlast-2.c [new file with mode: 0644]
gcc/tree-vect-loop.cc
gcc/tree-vect-stmts.cc
gcc/tree-vectorizer.h