[gcc r16-4075] Fix get_load_store_type wrt VMAT_ELEMENTWISE classification

Richard Biener rguenth@gcc.gnu.org
Wed Sep 24 11:33:16 GMT 2025


https://gcc.gnu.org/g:191d8b846c999e538f34552d14cb96f424f5490a

commit r16-4075-g191d8b846c999e538f34552d14cb96f424f5490a
Author: Richard Biener <rguenther@suse.de>
Date:   Wed Sep 24 12:24:11 2025 +0200

    Fix get_load_store_type wrt VMAT_ELEMENTWISE classification
    
    We may not classify a BB vectorization load as VMAT_ELEMENTWISE as
    that will ICE.  Instead we build vectors from existing scalar loads.
    Make that explicit.
    
            * tree-vect-stmts.cc (get_load_store_type): Explicitly fail
            when we end up with VMAT_ELEMENTWISE for BB vectorization.

Diff:
---
 gcc/tree-vect-stmts.cc | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/gcc/tree-vect-stmts.cc b/gcc/tree-vect-stmts.cc
index 841733349b5c..995151f9a271 100644
--- a/gcc/tree-vect-stmts.cc
+++ b/gcc/tree-vect-stmts.cc
@@ -2507,6 +2507,11 @@ get_load_store_type (vec_info  *vinfo, stmt_vec_info stmt_info,
 			 "not falling back to elementwise accesses\n");
       return false;
     }
+
+  /* For BB vectorization build up the vector from existing scalar defs.  */
+  if (!loop_vinfo && *memory_access_type == VMAT_ELEMENTWISE)
+    return false;
+
   return true;
 }


More information about the Gcc-cvs mailing list