With a patch still in development we get NULL STMT_VINFO_VECTYPE.
One side-effect is that during scalar stmt testing we no longer
pass a vectype.  The following adjusts aarch64_vector_costs::add_stmt_cost
to check for a non-NULL vectype before accessing it, like all the
code surrounding it.  The other fix possibility would have been
to re-orderr the check with the vect_mem_access_type one, but that
one is not going to exist during scalar code costing either in the
future.

        * config/aarch64/aarch64.cc (aarch64_vector_costs::add_stmt_cost):
        Check vectype is non-NULL before accessing it.
---
 gcc/config/aarch64/aarch64.cc | 1 +
 1 file changed, 1 insertion(+)

diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc
index 72a691b8e2f..9e4a37bcaff 100644
--- a/gcc/config/aarch64/aarch64.cc
+++ b/gcc/config/aarch64/aarch64.cc
@@ -17976,6 +17976,7 @@ aarch64_vector_costs::add_stmt_cost (int count, 
vect_cost_for_stmt kind,
 
       /* Check if we've seen an SVE gather/scatter operation and which size.  
*/
       if (kind == scalar_load
+         && vectype
          && aarch64_sve_mode_p (TYPE_MODE (vectype))
          && vect_mem_access_type (stmt_info, node) == VMAT_GATHER_SCATTER)
        {
-- 
2.43.0

Reply via email to