On Thu, Jul 31, 2025 at 01:23:00PM +0200, Richard Biener wrote:
> On Thu, 31 Jul 2025, Richard Biener wrote:
> 
> > On Thu, 31 Jul 2025, Spencer Abson wrote:
> > 
> > > On Thu, Jul 31, 2025 at 12:14:20PM +0200, Richard Biener wrote:
> > > > On Tue, 29 Jul 2025, Richard Biener wrote:
> > > > 
> > > > > This should be present only on SLP nodes now.  The RISC-V changes
> > > > > are mechanical along the line of the SLP_TREE_TYPE changes.  The
> > > > > aarch64 changes are for removing vect_mem_access_type and gating
> > > > > one problematical test with !m_costing_for_scalar (rather than
> > > > > on a NULL node).
> > > > > 
> > > > > Bootstrapped and tested on x86_64-unknown-linux-gnu.
> > > > 
> > > > I have now pushed this variant.
> > > > 
> > > > Richard.
> > > 
> > > Hi,
> > > 
> > > This seems to segfault quite a bit on aarch64.  I haven't had a moment to 
> > > look into it
> > > properly, but here is some info that might be helpful.
> > 
> > Can you try
> > 
> > diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc
> > index a761addc06c..4fadd13637a 100644
> > --- a/gcc/config/aarch64/aarch64.cc
> > +++ b/gcc/config/aarch64/aarch64.cc
> > @@ -17997,7 +17997,7 @@ aarch64_vector_costs::add_stmt_cost (int count, 
> > vect_cost_for_stmt kind,
> >        stmt_cost = aarch64_detect_scalar_stmt_subtype (m_vinfo, kind,
> >                                                       stmt_info, 
> > stmt_cost);
> >  
> > -      if (vectype && m_vec_flags)
> > +      if (vectype && m_vec_flags && !m_costing_for_scalar)
> >         stmt_cost = aarch64_detect_vector_stmt_subtype (m_vinfo, kind,
> >                                                         stmt_info, node,
> >                                                         vectype, where,
> > 
> > 
> 
> I've reproduced it now, the above doesn't help.  w/o understanding
> all the dances, I have a patch to improve things by checking for
> 'node' in relevant places (we now ensure that with m_costing_for_scalar
> node is never non-NULL).
> 
> This shows we're confused by the stmts we cost for the loop-around code.
> 
> Apart from doing vect.exp testing with qemu I mostly rely on the CI
> to pick up this kind of issues, but it has been unavailable lately.
> 
> I'll post a patch.
> 
> Richard.

Yeah, sorry that took me a while (was on a distant branch).  FWIW, It seems
to be the access to memory_access_type via SLP_TREE_MEMORY_ACCESS_TYPE in
aarch64_detect_vector_stmt_subtype.

  if (kind == scalar_load
      && sve_costs
      && SLP_TREE_MEMORY_ACCESS_TYPE (node) == VMAT_GATHER_SCATTER)

Thanks,
Spencer
> 
> ?
> > 
> > > Below is the trace from compiling 
> > > gcc.target/aarch64/sme/vect-dotprod-twoway.c
> > > 
> > > during GIMPLE pass: vect
> > > ../gcc/gcc/testsuite/gcc.target/aarch64/sme/vect-dotprod-twoway.c: In 
> > > function ‘udot2’:
> > > ../gcc/gcc/testsuite/gcc.target/aarch64/sme/vect-dotprod-twoway.c:6:10: 
> > > internal compiler error: Segmentation fault
> > >     6 | uint32_t udot2(int n, uint16_t* data) __arm_streaming
> > >       |          ^~~~~
> > > 0x26e937b internal_error(char const*, ...)
> > >   ../../gcc/gcc/diagnostic-global-context.cc:534
> > > 0x10fb6a3 crash_signal
> > >   ../../gcc/gcc/toplev.cc:323
> > > 0x15c1ebc aarch64_detect_vector_stmt_subtype
> > >   ../../gcc/gcc/config/aarch64/aarch64.cc:17469
> > > 0x15c1ebc aarch64_vector_costs::add_stmt_cost(int, vect_cost_for_stmt, 
> > > _stmt_vec_info*, _slp_tree*, tree_node*, int, vect_cost_model_location)
> > >   ../../gcc/gcc/config/aarch64/aarch64.cc:18001
> > > 0x143df57 add_stmt_cost(vector_costs*, int, vect_cost_for_stmt, 
> > > _stmt_vec_info*, _slp_tree*, tree_node*, int, vect_cost_model_location)
> > >   ../../gcc/gcc/tree-vectorizer.h:2006
> > > 0x143df57 vect_estimate_min_profitable_iters
> > >   ../../gcc/gcc/tree-vect-loop.cc:4438
> > > 0x143df57 vect_analyze_loop_costing
> > >   ../../gcc/gcc/tree-vect-loop.cc:2081
> > > 0x144064b vect_analyze_loop_2
> > >   ../../gcc/gcc/tree-vect-loop.cc:2781
> > > 0x1441d5b vect_analyze_loop_1
> > >   ../../gcc/gcc/tree-vect-loop.cc:3109
> > > 0x144220f vect_analyze_loop(loop*, gimple*, vec_info_shared*)
> > >   ../../gcc/gcc/tree-vect-loop.cc:3245
> > > 0x148b167 try_vectorize_loop_1
> > >   ../../gcc/gcc/tree-vectorizer.cc:1100
> > > 0x148b167 try_vectorize_loop
> > >   ../../gcc/gcc/tree-vectorizer.cc:1219
> > > 0x148ba37 execute
> > >   ../../gcc/gcc/tree-vectorizer.cc:1335
> > > 
> > > 
> > > And the new failiures from running gcc.target/aarch64/sve/aarch64-sve.exp
> > > 
> > > Unexpected results in this build (new failures)
> > >           === g++ tests ===
> > > 
> > > Running g++:g++.target/aarch64/sve/aarch64-sve.exp ...
> > > FAIL: g++.target/aarch64/sve/pr119706.C (internal compiler error: 
> > > Segmentation fault)
> > > FAIL: g++.target/aarch64/sve/pr119706.C (test for excess errors)
> > >           === gcc tests ===
> > > 
> > > Running gcc:gcc.target/aarch64/sve/aarch64-sve.exp ...
> > > FAIL: gcc.target/aarch64/sve/cost_model_10.c (internal compiler error: 
> > > Segmentation fault)
> > > FAIL: gcc.target/aarch64/sve/cost_model_10.c (test for excess errors)
> > > UNRESOLVED: gcc.target/aarch64/sve/cost_model_10.c scan-assembler 
> > > \\tcmp\\tx[0-9]+, x[0-9]+\\n
> > > UNRESOLVED: gcc.target/aarch64/sve/cost_model_10.c scan-assembler 
> > > \\tptrue\\tp
> > > UNRESOLVED: gcc.target/aarch64/sve/cost_model_10.c scan-assembler-not 
> > > \\twhilelo\\t
> > > FAIL: gcc.target/aarch64/sve/cost_model_11.c (internal compiler error: 
> > > Segmentation fault)
> > > FAIL: gcc.target/aarch64/sve/cost_model_11.c (test for excess errors)
> > > UNRESOLVED: gcc.target/aarch64/sve/cost_model_11.c scan-assembler-not 
> > > \\tld4d\\t
> > > FAIL: gcc.target/aarch64/sve/cost_model_13.c (internal compiler error: 
> > > Segmentation fault)
> > > FAIL: gcc.target/aarch64/sve/cost_model_13.c (test for excess errors)
> > > UNRESOLVED: gcc.target/aarch64/sve/cost_model_13.c scan-assembler 
> > > \\tadd\\tz[0-9]+\\.h,
> > > UNRESOLVED: gcc.target/aarch64/sve/cost_model_13.c scan-assembler 
> > > \\tld1h\\tz[0-9]+\\.h,
> > > UNRESOLVED: gcc.target/aarch64/sve/cost_model_13.c scan-assembler-not 
> > > \\tldr\\tq[0-9]+,
> > > UNRESOLVED: gcc.target/aarch64/sve/cost_model_13.c scan-assembler-not 
> > > \\tv[0-9]+\\.8h,
> > > FAIL: gcc.target/aarch64/sve/cost_model_14.c (internal compiler error: 
> > > Segmentation fault)
> > > FAIL: gcc.target/aarch64/sve/cost_model_14.c (test for excess errors)
> > > UNRESOLVED: gcc.target/aarch64/sve/cost_model_14.c scan-assembler-times 
> > > \\tadd\\tz[0-9]+\\.d, 8
> > > UNRESOLVED: gcc.target/aarch64/sve/cost_model_14.c scan-assembler-times 
> > > \\tld1d\\tz[0-9]+\\.d, 1
> > > UNRESOLVED: gcc.target/aarch64/sve/cost_model_14.c scan-assembler-times 
> > > \\tldr\\tz[0-9]+, 4
> > > FAIL: gcc.target/aarch64/sve/extract_5.c (internal compiler error: 
> > > Segmentation fault)
> > > FAIL: gcc.target/aarch64/sve/extract_5.c (test for excess errors)
> > > XPASS: gcc.target/aarch64/sve/gather_load_13.c scan-assembler \\s+ld1w\\t
> > > FAIL: gcc.target/aarch64/sve/ld1_extend.c (internal compiler error: 
> > > Segmentation fault)
> > > FAIL: gcc.target/aarch64/sve/ld1_extend.c (test for excess errors)
> > > UNRESOLVED: gcc.target/aarch64/sve/ld1_extend.c scan-assembler-times 
> > > \\tld1sb\\t 4
> > > FAIL: gcc.target/aarch64/sve/mask_load_2.c (internal compiler error: 
> > > Segmentation fault)
> > > FAIL: gcc.target/aarch64/sve/mask_load_2.c (test for excess errors)
> > > UNRESOLVED: gcc.target/aarch64/sve/mask_load_2.c scan-assembler-times 
> > > add\\tz[0-9]+\\.s, p[0-7]/m 1
> > > UNRESOLVED: gcc.target/aarch64/sve/mask_load_2.c scan-assembler-times 
> > > ld1w\\tz[0-9]+\\.d, p[0-7]/z 1
> > > FAIL: gcc.target/aarch64/sve/part_vect_single_iter_epilog.c (internal 
> > > compiler error: Segmentation fault)
> > > FAIL: gcc.target/aarch64/sve/part_vect_single_iter_epilog.c (test for 
> > > excess errors)
> > > UNRESOLVED: gcc.target/aarch64/sve/part_vect_single_iter_epilog.c 
> > > scan-assembler-times \\twhilelo\\tp[0-9]+.h, wzr, [xw][0-9]+ 1
> > > FAIL: gcc.target/aarch64/sve/peel_ind_9.c (internal compiler error: 
> > > Segmentation fault)
> > > FAIL: gcc.target/aarch64/sve/peel_ind_9.c (test for excess errors)
> > > FAIL: gcc.target/aarch64/sve/peel_ind_9.c scan-tree-dump vect "LOOP 
> > > VECTORIZED"
> > > FAIL: gcc.target/aarch64/sve/peel_ind_9_run.c (internal compiler error: 
> > > Segmentation fault)
> > > FAIL: gcc.target/aarch64/sve/peel_ind_9_run.c (test for excess errors)
> > > UNRESOLVED: gcc.target/aarch64/sve/peel_ind_9_run.c compilation failed to 
> > > produce executable
> > > FAIL: gcc.target/aarch64/sve/pr103761.c (internal compiler error: 
> > > Segmentation fault)
> > > FAIL: gcc.target/aarch64/sve/pr103761.c (test for excess errors)
> > > FAIL: gcc.target/aarch64/sve/pr98535.c (internal compiler error: 
> > > Segmentation fault)
> > > FAIL: gcc.target/aarch64/sve/pr98535.c (test for excess errors)
> > > FAIL: gcc.target/aarch64/sve/pred-cond-reduc.c (internal compiler error: 
> > > Segmentation fault)
> > > FAIL: gcc.target/aarch64/sve/pred-cond-reduc.c (test for excess errors)
> > > FAIL: gcc.target/aarch64/sve/reduc_10.c (internal compiler error: 
> > > Segmentation fault)
> > > FAIL: gcc.target/aarch64/sve/reduc_10.c (test for excess errors)
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_10.c scan-assembler-times 
> > > \\tadd\\tz[0-9]+\\.h, p[0-7]/m, z[0-9]+\\.h, z[0-9]+\\.h\\n 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_10.c scan-assembler-times 
> > > \\tadd\\tz[0-9]+\\.h, z[0-9]+\\.h, z[0-9]+\\.h\\n 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_10.c scan-assembler-times 
> > > \\tand\\tz[0-9]+\\.d, z[0-9]+\\.d, z[0-9]+\\.d\\n 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_10.c scan-assembler-times 
> > > \\tand\\tz[0-9]+\\.h, p[0-7]/m, z[0-9]+\\.h, z[0-9]+\\.h\\n 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_10.c scan-assembler-times 
> > > \\tandv\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_10.c scan-assembler-times 
> > > \\teor\\tz[0-9]+\\.d, z[0-9]+\\.d, z[0-9]+\\.d\\n 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_10.c scan-assembler-times 
> > > \\teor\\tz[0-9]+\\.h, p[0-7]/m, z[0-9]+\\.h, z[0-9]+\\.h\\n 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_10.c scan-assembler-times 
> > > \\teorv\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_10.c scan-assembler-times 
> > > \\torr\\tz[0-9]+\\.d, z[0-9]+\\.d, z[0-9]+\\.d\\n 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_10.c scan-assembler-times 
> > > \\torr\\tz[0-9]+\\.h, p[0-7]/m, z[0-9]+\\.h, z[0-9]+\\.h\\n 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_10.c scan-assembler-times 
> > > \\torv\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_10.c scan-assembler-times 
> > > \\tuaddv\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_10.c scan-assembler-times 
> > > \\tumax\\tz[0-9]+\\.h, p[0-7]/m, z[0-9]+\\.h, z[0-9]+\\.h\\n 2
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_10.c scan-assembler-times 
> > > \\tumaxv\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_10.c scan-assembler-times 
> > > \\tumin\\tz[0-9]+\\.h, p[0-7]/m, z[0-9]+\\.h, z[0-9]+\\.h\\n 2
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_10.c scan-assembler-times 
> > > \\tuminv\\t 1
> > > FAIL: gcc.target/aarch64/sve/reduc_10_run.c (internal compiler error: 
> > > Segmentation fault)
> > > FAIL: gcc.target/aarch64/sve/reduc_10_run.c (test for excess errors)
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_10_run.c compilation failed to 
> > > produce executable
> > > FAIL: gcc.target/aarch64/sve/reduc_11.c (internal compiler error: 
> > > Segmentation fault)
> > > FAIL: gcc.target/aarch64/sve/reduc_11.c (test for excess errors)
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_11.c scan-assembler-times 
> > > \\tadd\\tz[0-9]+\\.h, p[0-7]/m, z[0-9]+\\.h, z[0-9]+\\.h\\n 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_11.c scan-assembler-times 
> > > \\tadd\\tz[0-9]+\\.h, z[0-9]+\\.h, z[0-9]+\\.h\\n 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_11.c scan-assembler-times 
> > > \\tand\\tz[0-9]+\\.d, z[0-9]+\\.d, z[0-9]+\\.d\\n 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_11.c scan-assembler-times 
> > > \\tand\\tz[0-9]+\\.h, p[0-7]/m, z[0-9]+\\.h, z[0-9]+\\.h\\n 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_11.c scan-assembler-times 
> > > \\tandv\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_11.c scan-assembler-times 
> > > \\teor\\tz[0-9]+\\.d, z[0-9]+\\.d, z[0-9]+\\.d\\n 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_11.c scan-assembler-times 
> > > \\teor\\tz[0-9]+\\.h, p[0-7]/m, z[0-9]+\\.h, z[0-9]+\\.h\\n 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_11.c scan-assembler-times 
> > > \\teorv\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_11.c scan-assembler-times 
> > > \\torr\\tz[0-9]+\\.d, z[0-9]+\\.d, z[0-9]+\\.d\\n 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_11.c scan-assembler-times 
> > > \\torr\\tz[0-9]+\\.h, p[0-7]/m, z[0-9]+\\.h, z[0-9]+\\.h\\n 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_11.c scan-assembler-times 
> > > \\torv\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_11.c scan-assembler-times 
> > > \\tuaddv\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_11.c scan-assembler-times 
> > > \\tumax\\tz[0-9]+\\.h, p[0-7]/m, z[0-9]+\\.h, z[0-9]+\\.h\\n 2
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_11.c scan-assembler-times 
> > > \\tumaxv\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_11.c scan-assembler-times 
> > > \\tumin\\tz[0-9]+\\.h, p[0-7]/m, z[0-9]+\\.h, z[0-9]+\\.h\\n 2
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_11.c scan-assembler-times 
> > > \\tuminv\\t 1
> > > FAIL: gcc.target/aarch64/sve/reduc_11_run.c (internal compiler error: 
> > > Segmentation fault)
> > > FAIL: gcc.target/aarch64/sve/reduc_11_run.c (test for excess errors)
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_11_run.c compilation failed to 
> > > produce executable
> > > FAIL: gcc.target/aarch64/sve/reduc_12.c (internal compiler error: 
> > > Segmentation fault)
> > > FAIL: gcc.target/aarch64/sve/reduc_12.c (test for excess errors)
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_12.c scan-assembler-times 
> > > \\tadd\\tz[0-9]+\\.h, p[0-7]/m, z[0-9]+\\.h, z[0-9]+\\.h\\n 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_12.c scan-assembler-times 
> > > \\tadd\\tz[0-9]+\\.h, z[0-9]+\\.h, z[0-9]+\\.h\\n 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_12.c scan-assembler-times 
> > > \\tand\\tz[0-9]+\\.d, z[0-9]+\\.d, z[0-9]+\\.d\\n 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_12.c scan-assembler-times 
> > > \\tand\\tz[0-9]+\\.h, p[0-7]/m, z[0-9]+\\.h, z[0-9]+\\.h\\n 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_12.c scan-assembler-times 
> > > \\tandv\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_12.c scan-assembler-times 
> > > \\teor\\tz[0-9]+\\.d, z[0-9]+\\.d, z[0-9]+\\.d\\n 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_12.c scan-assembler-times 
> > > \\teor\\tz[0-9]+\\.h, p[0-7]/m, z[0-9]+\\.h, z[0-9]+\\.h\\n 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_12.c scan-assembler-times 
> > > \\teorv\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_12.c scan-assembler-times 
> > > \\torr\\tz[0-9]+\\.d, z[0-9]+\\.d, z[0-9]+\\.d\\n 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_12.c scan-assembler-times 
> > > \\torr\\tz[0-9]+\\.h, p[0-7]/m, z[0-9]+\\.h, z[0-9]+\\.h\\n 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_12.c scan-assembler-times 
> > > \\torv\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_12.c scan-assembler-times 
> > > \\tuaddv\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_12.c scan-assembler-times 
> > > \\tumax\\tz[0-9]+\\.h, p[0-7]/m, z[0-9]+\\.h, z[0-9]+\\.h\\n 2
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_12.c scan-assembler-times 
> > > \\tumaxv\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_12.c scan-assembler-times 
> > > \\tumin\\tz[0-9]+\\.h, p[0-7]/m, z[0-9]+\\.h, z[0-9]+\\.h\\n 2
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_12.c scan-assembler-times 
> > > \\tuminv\\t 1
> > > FAIL: gcc.target/aarch64/sve/reduc_12_run.c (internal compiler error: 
> > > Segmentation fault)
> > > FAIL: gcc.target/aarch64/sve/reduc_12_run.c (test for excess errors)
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_12_run.c compilation failed to 
> > > produce executable
> > > FAIL: gcc.target/aarch64/sve/reduc_13.c (internal compiler error: 
> > > Segmentation fault)
> > > FAIL: gcc.target/aarch64/sve/reduc_13.c (test for excess errors)
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_13.c scan-assembler-times 
> > > \\tadd\\tz[0-9]+\\.s, p[0-7]/m, z[0-9]+\\.s, z[0-9]+\\.s\\n 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_13.c scan-assembler-times 
> > > \\tadd\\tz[0-9]+\\.s, z[0-9]+\\.s, z[0-9]+\\.s\\n 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_13.c scan-assembler-times 
> > > \\tand\\tz[0-9]+\\.d, z[0-9]+\\.d, z[0-9]+\\.d\\n 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_13.c scan-assembler-times 
> > > \\tand\\tz[0-9]+\\.s, p[0-7]/m, z[0-9]+\\.s, z[0-9]+\\.s\\n 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_13.c scan-assembler-times 
> > > \\teor\\tz[0-9]+\\.d, z[0-9]+\\.d, z[0-9]+\\.d\\n 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_13.c scan-assembler-times 
> > > \\teor\\tz[0-9]+\\.s, p[0-7]/m, z[0-9]+\\.s, z[0-9]+\\.s\\n 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_13.c scan-assembler-times 
> > > \\torr\\tz[0-9]+\\.d, z[0-9]+\\.d, z[0-9]+\\.d\\n 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_13.c scan-assembler-times 
> > > \\torr\\tz[0-9]+\\.s, p[0-7]/m, z[0-9]+\\.s, z[0-9]+\\.s\\n 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_13.c scan-assembler-times 
> > > \\tumax\\tz[0-9]+\\.s, p[0-7]/m, z[0-9]+\\.s, z[0-9]+\\.s\\n 2
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_13.c scan-assembler-times 
> > > \\tumin\\tz[0-9]+\\.s, p[0-7]/m, z[0-9]+\\.s, z[0-9]+\\.s\\n 2
> > > FAIL: gcc.target/aarch64/sve/reduc_13_run.c (internal compiler error: 
> > > Segmentation fault)
> > > FAIL: gcc.target/aarch64/sve/reduc_13_run.c (test for excess errors)
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_13_run.c compilation failed to 
> > > produce executable
> > > FAIL: gcc.target/aarch64/sve/reduc_14.c (internal compiler error: 
> > > Segmentation fault)
> > > FAIL: gcc.target/aarch64/sve/reduc_14.c (test for excess errors)
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_14.c scan-assembler-times 
> > > \\tadd\\tz[0-9]+\\.s, p[0-7]/m, z[0-9]+\\.s, z[0-9]+\\.s\\n 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_14.c scan-assembler-times 
> > > \\tadd\\tz[0-9]+\\.s, z[0-9]+\\.s, z[0-9]+\\.s\\n 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_14.c scan-assembler-times 
> > > \\tand\\tz[0-9]+\\.d, z[0-9]+\\.d, z[0-9]+\\.d\\n 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_14.c scan-assembler-times 
> > > \\tand\\tz[0-9]+\\.s, p[0-7]/m, z[0-9]+\\.s, z[0-9]+\\.s\\n 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_14.c scan-assembler-times 
> > > \\tandv\\t 2
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_14.c scan-assembler-times 
> > > \\teor\\tz[0-9]+\\.d, z[0-9]+\\.d, z[0-9]+\\.d\\n 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_14.c scan-assembler-times 
> > > \\teor\\tz[0-9]+\\.s, p[0-7]/m, z[0-9]+\\.s, z[0-9]+\\.s\\n 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_14.c scan-assembler-times 
> > > \\teorv\\t 2
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_14.c scan-assembler-times 
> > > \\torr\\tz[0-9]+\\.d, z[0-9]+\\.d, z[0-9]+\\.d\\n 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_14.c scan-assembler-times 
> > > \\torr\\tz[0-9]+\\.s, p[0-7]/m, z[0-9]+\\.s, z[0-9]+\\.s\\n 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_14.c scan-assembler-times 
> > > \\torv\\t 2
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_14.c scan-assembler-times 
> > > \\tuaddv\\t 2
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_14.c scan-assembler-times 
> > > \\tumax\\tz[0-9]+\\.s, p[0-7]/m, z[0-9]+\\.s, z[0-9]+\\.s\\n 2
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_14.c scan-assembler-times 
> > > \\tumaxv\\t 2
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_14.c scan-assembler-times 
> > > \\tumin\\tz[0-9]+\\.s, p[0-7]/m, z[0-9]+\\.s, z[0-9]+\\.s\\n 2
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_14.c scan-assembler-times 
> > > \\tuminv\\t 2
> > > FAIL: gcc.target/aarch64/sve/reduc_14_run.c (internal compiler error: 
> > > Segmentation fault)
> > > FAIL: gcc.target/aarch64/sve/reduc_14_run.c (test for excess errors)
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_14_run.c compilation failed to 
> > > produce executable
> > > FAIL: gcc.target/aarch64/sve/reduc_15.c (internal compiler error: 
> > > Segmentation fault)
> > > FAIL: gcc.target/aarch64/sve/reduc_15.c (test for excess errors)
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_15.c scan-assembler-times 
> > > \\tadd\\tz[0-9]+\\.s, p[0-7]/m, z[0-9]+\\.s, z[0-9]+\\.s\\n 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_15.c scan-assembler-times 
> > > \\tadd\\tz[0-9]+\\.s, z[0-9]+\\.s, z[0-9]+\\.s\\n 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_15.c scan-assembler-times 
> > > \\tuaddv\\t 1
> > > FAIL: gcc.target/aarch64/sve/reduc_15_run.c (internal compiler error: 
> > > Segmentation fault)
> > > FAIL: gcc.target/aarch64/sve/reduc_15_run.c (test for excess errors)
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_15_run.c compilation failed to 
> > > produce executable
> > > FAIL: gcc.target/aarch64/sve/reduc_9.c (internal compiler error: 
> > > Segmentation fault)
> > > FAIL: gcc.target/aarch64/sve/reduc_9.c (test for excess errors)
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_9.c scan-assembler-times 
> > > \\tadd\\tz[0-9]+\\.h, p[0-7]/m, z[0-9]+\\.h, z[0-9]+\\.h\\n 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_9.c scan-assembler-times 
> > > \\tadd\\tz[0-9]+\\.h, z[0-9]+\\.h, z[0-9]+\\.h\\n 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_9.c scan-assembler-times 
> > > \\tand\\tz[0-9]+\\.d, z[0-9]+\\.d, z[0-9]+\\.d\\n 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_9.c scan-assembler-times 
> > > \\tand\\tz[0-9]+\\.h, p[0-7]/m, z[0-9]+\\.h, z[0-9]+\\.h\\n 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_9.c scan-assembler-times 
> > > \\tandv\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_9.c scan-assembler-times 
> > > \\teor\\tz[0-9]+\\.d, z[0-9]+\\.d, z[0-9]+\\.d\\n 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_9.c scan-assembler-times 
> > > \\teor\\tz[0-9]+\\.h, p[0-7]/m, z[0-9]+\\.h, z[0-9]+\\.h\\n 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_9.c scan-assembler-times 
> > > \\teorv\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_9.c scan-assembler-times 
> > > \\torr\\tz[0-9]+\\.d, z[0-9]+\\.d, z[0-9]+\\.d\\n 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_9.c scan-assembler-times 
> > > \\torr\\tz[0-9]+\\.h, p[0-7]/m, z[0-9]+\\.h, z[0-9]+\\.h\\n 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_9.c scan-assembler-times 
> > > \\torv\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_9.c scan-assembler-times 
> > > \\tuaddv\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_9.c scan-assembler-times 
> > > \\tumax\\tz[0-9]+\\.h, p[0-7]/m, z[0-9]+\\.h, z[0-9]+\\.h\\n 2
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_9.c scan-assembler-times 
> > > \\tumaxv\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_9.c scan-assembler-times 
> > > \\tumin\\tz[0-9]+\\.h, p[0-7]/m, z[0-9]+\\.h, z[0-9]+\\.h\\n 2
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_9.c scan-assembler-times 
> > > \\tuminv\\t 1
> > > FAIL: gcc.target/aarch64/sve/reduc_9_run.c (internal compiler error: 
> > > Segmentation fault)
> > > FAIL: gcc.target/aarch64/sve/reduc_9_run.c (test for excess errors)
> > > UNRESOLVED: gcc.target/aarch64/sve/reduc_9_run.c compilation failed to 
> > > produce executable
> > > FAIL: gcc.target/aarch64/sve/slp_perm_4.c (internal compiler error: 
> > > Segmentation fault)
> > > FAIL: gcc.target/aarch64/sve/slp_perm_4.c (test for excess errors)
> > > UNRESOLVED: gcc.target/aarch64/sve/slp_perm_4.c scan-assembler 
> > > \\ttrn1\\tz[0-9]+\\.b, z[0-9]+\\.b, z[0-9]+\\.b\\n
> > > FAIL: gcc.target/aarch64/sve/slp_perm_7.c (internal compiler error: 
> > > Segmentation fault)
> > > FAIL: gcc.target/aarch64/sve/slp_perm_7.c (test for excess errors)
> > > UNRESOLVED: gcc.target/aarch64/sve/slp_perm_7.c scan-assembler 
> > > \\ttbl\\tz[0-9]+\\.b, {z[0-9]+\\.b}, z[0-9]+\\.b\\n
> > > FAIL: gcc.target/aarch64/sve/slp_perm_8.c (internal compiler error: 
> > > Segmentation fault)
> > > FAIL: gcc.target/aarch64/sve/slp_perm_8.c (test for excess errors)
> > > UNRESOLVED: gcc.target/aarch64/sve/slp_perm_8.c scan-assembler 
> > > \\tld1s?b\\tz[0-9]+\\.h
> > > UNRESOLVED: gcc.target/aarch64/sve/slp_perm_8.c scan-assembler 
> > > \\tptrue\\tp[0-7]\\.h, vl6\\n
> > > UNRESOLVED: gcc.target/aarch64/sve/slp_perm_8.c scan-assembler 
> > > \\ttrn1\\tz[0-9]+\\.h,
> > > FAIL: gcc.target/aarch64/sve/struct_vect_18.c (internal compiler error: 
> > > Segmentation fault)
> > > FAIL: gcc.target/aarch64/sve/struct_vect_18.c (test for excess errors)
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_18.c scan-assembler-times 
> > > \\tb[.a-z]+\\t 4
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_18.c scan-assembler-times 
> > > \\tld1b\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_18.c scan-assembler-times 
> > > \\tld1d\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_18.c scan-assembler-times 
> > > \\tld1h\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_18.c scan-assembler-times 
> > > \\tld1w\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_18.c scan-assembler-times 
> > > \\tld3b\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_18.c scan-assembler-times 
> > > \\tld3d\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_18.c scan-assembler-times 
> > > \\tld3h\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_18.c scan-assembler-times 
> > > \\tld3w\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_18.c scan-assembler-times 
> > > \\tldr\\td 2
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_18.c scan-assembler-times 
> > > \\tldr\\ts 2
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_18.c scan-assembler-times 
> > > \\tldrb\\tw 2
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_18.c scan-assembler-times 
> > > \\tldrh\\tw 2
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_18.c scan-assembler-times 
> > > \\tst1b\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_18.c scan-assembler-times 
> > > \\tst1d\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_18.c scan-assembler-times 
> > > \\tst1h\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_18.c scan-assembler-times 
> > > \\tst1w\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_18.c scan-assembler-times 
> > > \\tstr\\td 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_18.c scan-assembler-times 
> > > \\tstr\\ts 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_18.c scan-assembler-times 
> > > \\tstrb\\tw 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_18.c scan-assembler-times 
> > > \\tstrh\\tw 1
> > > FAIL: gcc.target/aarch64/sve/struct_vect_18_run.c (internal compiler 
> > > error: Segmentation fault)
> > > FAIL: gcc.target/aarch64/sve/struct_vect_18_run.c (test for excess errors)
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_18_run.c compilation 
> > > failed to produce executable
> > > FAIL: gcc.target/aarch64/sve/struct_vect_19.c (internal compiler error: 
> > > Segmentation fault)
> > > FAIL: gcc.target/aarch64/sve/struct_vect_19.c (test for excess errors)
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_19.c scan-assembler-times 
> > > \\tb[.a-z]+\\t 12
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_19.c scan-assembler-times 
> > > \\tld1b\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_19.c scan-assembler-times 
> > > \\tld1d\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_19.c scan-assembler-times 
> > > \\tld1h\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_19.c scan-assembler-times 
> > > \\tld1w\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_19.c scan-assembler-times 
> > > \\tld3b\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_19.c scan-assembler-times 
> > > \\tld3d\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_19.c scan-assembler-times 
> > > \\tld3h\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_19.c scan-assembler-times 
> > > \\tld3w\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_19.c scan-assembler-times 
> > > \\tldr\\td 2
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_19.c scan-assembler-times 
> > > \\tldr\\ts 2
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_19.c scan-assembler-times 
> > > \\tldrb\\tw 2
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_19.c scan-assembler-times 
> > > \\tldrh\\tw 2
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_19.c scan-assembler-times 
> > > \\tst1b\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_19.c scan-assembler-times 
> > > \\tst1d\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_19.c scan-assembler-times 
> > > \\tst1h\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_19.c scan-assembler-times 
> > > \\tst1w\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_19.c scan-assembler-times 
> > > \\tstr\\td 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_19.c scan-assembler-times 
> > > \\tstr\\ts 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_19.c scan-assembler-times 
> > > \\tstrb\\tw 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_19.c scan-assembler-times 
> > > \\tstrh\\tw 1
> > > FAIL: gcc.target/aarch64/sve/struct_vect_19_run.c (internal compiler 
> > > error: Segmentation fault)
> > > FAIL: gcc.target/aarch64/sve/struct_vect_19_run.c (test for excess errors)
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_19_run.c compilation 
> > > failed to produce executable
> > > FAIL: gcc.target/aarch64/sve/struct_vect_20.c (internal compiler error: 
> > > Segmentation fault)
> > > FAIL: gcc.target/aarch64/sve/struct_vect_20.c (test for excess errors)
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_20.c scan-assembler-times 
> > > \\tb[.a-z]+\\t 4
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_20.c scan-assembler-times 
> > > \\tld1b\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_20.c scan-assembler-times 
> > > \\tld1d\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_20.c scan-assembler-times 
> > > \\tld1h\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_20.c scan-assembler-times 
> > > \\tld1w\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_20.c scan-assembler-times 
> > > \\tld2b\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_20.c scan-assembler-times 
> > > \\tld2d\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_20.c scan-assembler-times 
> > > \\tld2h\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_20.c scan-assembler-times 
> > > \\tld2w\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_20.c scan-assembler-times 
> > > \\tldr\\td 2
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_20.c scan-assembler-times 
> > > \\tldr\\ts 2
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_20.c scan-assembler-times 
> > > \\tldrb\\tw 2
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_20.c scan-assembler-times 
> > > \\tldrh\\tw 2
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_20.c scan-assembler-times 
> > > \\tst1b\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_20.c scan-assembler-times 
> > > \\tst1d\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_20.c scan-assembler-times 
> > > \\tst1h\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_20.c scan-assembler-times 
> > > \\tst1w\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_20.c scan-assembler-times 
> > > \\tstr\\td 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_20.c scan-assembler-times 
> > > \\tstr\\ts 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_20.c scan-assembler-times 
> > > \\tstrb\\tw 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_20.c scan-assembler-times 
> > > \\tstrh\\tw 1
> > > FAIL: gcc.target/aarch64/sve/struct_vect_20_run.c (internal compiler 
> > > error: Segmentation fault)
> > > FAIL: gcc.target/aarch64/sve/struct_vect_20_run.c (test for excess errors)
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_20_run.c compilation 
> > > failed to produce executable
> > > FAIL: gcc.target/aarch64/sve/struct_vect_21.c (internal compiler error: 
> > > Segmentation fault)
> > > FAIL: gcc.target/aarch64/sve/struct_vect_21.c (test for excess errors)
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_21.c scan-assembler-times 
> > > \\tb[.a-z]+\\t 12
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_21.c scan-assembler-times 
> > > \\tld1b\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_21.c scan-assembler-times 
> > > \\tld1d\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_21.c scan-assembler-times 
> > > \\tld1h\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_21.c scan-assembler-times 
> > > \\tld1w\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_21.c scan-assembler-times 
> > > \\tld2b\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_21.c scan-assembler-times 
> > > \\tld2d\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_21.c scan-assembler-times 
> > > \\tld2h\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_21.c scan-assembler-times 
> > > \\tld2w\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_21.c scan-assembler-times 
> > > \\tldr\\td 2
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_21.c scan-assembler-times 
> > > \\tldr\\ts 2
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_21.c scan-assembler-times 
> > > \\tldrb\\tw 2
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_21.c scan-assembler-times 
> > > \\tldrh\\tw 2
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_21.c scan-assembler-times 
> > > \\tst1b\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_21.c scan-assembler-times 
> > > \\tst1d\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_21.c scan-assembler-times 
> > > \\tst1h\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_21.c scan-assembler-times 
> > > \\tst1w\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_21.c scan-assembler-times 
> > > \\tstr\\td 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_21.c scan-assembler-times 
> > > \\tstr\\ts 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_21.c scan-assembler-times 
> > > \\tstrb\\tw 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_21.c scan-assembler-times 
> > > \\tstrh\\tw 1
> > > FAIL: gcc.target/aarch64/sve/struct_vect_21_run.c (internal compiler 
> > > error: Segmentation fault)
> > > FAIL: gcc.target/aarch64/sve/struct_vect_21_run.c (test for excess errors)
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_21_run.c compilation 
> > > failed to produce executable
> > > FAIL: gcc.target/aarch64/sve/struct_vect_22.c (internal compiler error: 
> > > Segmentation fault)
> > > FAIL: gcc.target/aarch64/sve/struct_vect_22.c (test for excess errors)
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_22.c scan-assembler-times 
> > > \\tb[.a-z]+\\t 4
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_22.c scan-assembler-times 
> > > \\tld1b\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_22.c scan-assembler-times 
> > > \\tld1d\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_22.c scan-assembler-times 
> > > \\tld1h\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_22.c scan-assembler-times 
> > > \\tld1w\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_22.c scan-assembler-times 
> > > \\tld4b\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_22.c scan-assembler-times 
> > > \\tld4d\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_22.c scan-assembler-times 
> > > \\tld4h\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_22.c scan-assembler-times 
> > > \\tld4w\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_22.c scan-assembler-times 
> > > \\tldr\\td 2
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_22.c scan-assembler-times 
> > > \\tldr\\ts 2
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_22.c scan-assembler-times 
> > > \\tldrb\\tw 2
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_22.c scan-assembler-times 
> > > \\tldrh\\tw 2
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_22.c scan-assembler-times 
> > > \\tst1b\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_22.c scan-assembler-times 
> > > \\tst1d\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_22.c scan-assembler-times 
> > > \\tst1h\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_22.c scan-assembler-times 
> > > \\tst1w\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_22.c scan-assembler-times 
> > > \\tstr\\td 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_22.c scan-assembler-times 
> > > \\tstr\\ts 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_22.c scan-assembler-times 
> > > \\tstrb\\tw 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_22.c scan-assembler-times 
> > > \\tstrh\\tw 1
> > > FAIL: gcc.target/aarch64/sve/struct_vect_22_run.c (internal compiler 
> > > error: Segmentation fault)
> > > FAIL: gcc.target/aarch64/sve/struct_vect_22_run.c (test for excess errors)
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_22_run.c compilation 
> > > failed to produce executable
> > > FAIL: gcc.target/aarch64/sve/struct_vect_23.c (internal compiler error: 
> > > Segmentation fault)
> > > FAIL: gcc.target/aarch64/sve/struct_vect_23.c (test for excess errors)
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_23.c scan-assembler-times 
> > > \\tb[.a-z]+\\t 12
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_23.c scan-assembler-times 
> > > \\tld1b\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_23.c scan-assembler-times 
> > > \\tld1d\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_23.c scan-assembler-times 
> > > \\tld1h\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_23.c scan-assembler-times 
> > > \\tld1w\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_23.c scan-assembler-times 
> > > \\tld4b\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_23.c scan-assembler-times 
> > > \\tld4d\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_23.c scan-assembler-times 
> > > \\tld4h\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_23.c scan-assembler-times 
> > > \\tld4w\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_23.c scan-assembler-times 
> > > \\tldr\\td 2
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_23.c scan-assembler-times 
> > > \\tldr\\ts 2
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_23.c scan-assembler-times 
> > > \\tldrb\\tw 2
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_23.c scan-assembler-times 
> > > \\tldrh\\tw 2
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_23.c scan-assembler-times 
> > > \\tst1b\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_23.c scan-assembler-times 
> > > \\tst1d\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_23.c scan-assembler-times 
> > > \\tst1h\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_23.c scan-assembler-times 
> > > \\tst1w\\t 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_23.c scan-assembler-times 
> > > \\tstr\\td 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_23.c scan-assembler-times 
> > > \\tstr\\ts 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_23.c scan-assembler-times 
> > > \\tstrb\\tw 1
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_23.c scan-assembler-times 
> > > \\tstrh\\tw 1
> > > FAIL: gcc.target/aarch64/sve/struct_vect_23_run.c (internal compiler 
> > > error: Segmentation fault)
> > > FAIL: gcc.target/aarch64/sve/struct_vect_23_run.c (test for excess errors)
> > > UNRESOLVED: gcc.target/aarch64/sve/struct_vect_23_run.c compilation 
> > > failed to produce executable
> > > 
> > > Thanks,
> > > Spencer
> > > 
> > > >  
> > > > >       * tree-vectorizer.h (_stmt_vec_info::memory_access_type): 
> > > > > Remove.
> > > > >       (STMT_VINFO_MEMORY_ACCESS_TYPE): Likewise.
> > > > >       (vect_mem_access_type): Likewise.
> > > > >       * tree-vect-stmts.cc (vectorizable_store): Do not set
> > > > >       STMT_VINFO_MEMORY_ACCESS_TYPE.  Fix SLP_TREE_MEMORY_ACCESS_TYPE
> > > > >       usage.
> > > > >       * tree-vect-loop.cc (update_epilogue_loop_vinfo): Remove
> > > > >       checking of memory access type.
> > > > >       * config/riscv/riscv-vector-costs.cc 
> > > > > (costs::compute_local_live_ranges):
> > > > >       Use SLP_TREE_MEMORY_ACCESS_TYPE.
> > > > >       (costs::need_additional_vector_vars_p): Likewise.
> > > > >       (segment_loadstore_group_size): Get SLP node as argument,
> > > > >       use SLP_TREE_MEMORY_ACCESS_TYPE.
> > > > >       (costs::adjust_stmt_cost): Pass down SLP node.
> > > > >       * config/aarch64/aarch64.cc (aarch64_ld234_st234_vectors): Use
> > > > >       SLP_TREE_MEMORY_ACCESS_TYPE instead of vect_mem_access_type.
> > > > >       (aarch64_detect_vector_stmt_subtype): Likewise.
> > > > >       (aarch64_vector_costs::count_ops): Likewise.
> > > > >       (aarch64_vector_costs::add_stmt_cost): Likewise.
> > > > > ---
> > > > >  gcc/config/aarch64/aarch64.cc          | 15 ++++++++-------
> > > > >  gcc/config/riscv/riscv-vector-costs.cc | 16 ++++++++--------
> > > > >  gcc/tree-vect-loop.cc                  |  6 ++----
> > > > >  gcc/tree-vect-stmts.cc                 |  3 +--
> > > > >  gcc/tree-vectorizer.h                  | 17 -----------------
> > > > >  5 files changed, 19 insertions(+), 38 deletions(-)
> > > > > 
> > > > > diff --git a/gcc/config/aarch64/aarch64.cc 
> > > > > b/gcc/config/aarch64/aarch64.cc
> > > > > index cb1699ab7c5..8acf24947ea 100644
> > > > > --- a/gcc/config/aarch64/aarch64.cc
> > > > > +++ b/gcc/config/aarch64/aarch64.cc
> > > > > @@ -17166,8 +17166,8 @@ aarch64_ld234_st234_vectors 
> > > > > (vect_cost_for_stmt kind, stmt_vec_info stmt_info,
> > > > >        && STMT_VINFO_DATA_REF (stmt_info))
> > > > >      {
> > > > >        stmt_info = DR_GROUP_FIRST_ELEMENT (stmt_info);
> > > > > -      if (stmt_info
> > > > > -       && vect_mem_access_type (stmt_info, node) == 
> > > > > VMAT_LOAD_STORE_LANES)
> > > > > +      if (node
> > > > > +       && SLP_TREE_MEMORY_ACCESS_TYPE (node) == 
> > > > > VMAT_LOAD_STORE_LANES)
> > > > >       return DR_GROUP_SIZE (stmt_info);
> > > > >      }
> > > > >    return 0;
> > > > > @@ -17439,7 +17439,7 @@ aarch64_detect_vector_stmt_subtype (vec_info 
> > > > > *vinfo, vect_cost_for_stmt kind,
> > > > >       cost by the number of elements in the vector.  */
> > > > >    if (kind == scalar_load
> > > > >        && sve_costs
> > > > > -      && vect_mem_access_type (stmt_info, node) == 
> > > > > VMAT_GATHER_SCATTER)
> > > > > +      && SLP_TREE_MEMORY_ACCESS_TYPE (node) == VMAT_GATHER_SCATTER)
> > > > >      {
> > > > >        unsigned int nunits = vect_nunits_for_cost (vectype);
> > > > >        /* Test for VNx2 modes, which have 64-bit containers.  */
> > > > > @@ -17452,7 +17452,7 @@ aarch64_detect_vector_stmt_subtype (vec_info 
> > > > > *vinfo, vect_cost_for_stmt kind,
> > > > >       in a scatter operation.  */
> > > > >    if (kind == scalar_store
> > > > >        && sve_costs
> > > > > -      && vect_mem_access_type (stmt_info, node) == 
> > > > > VMAT_GATHER_SCATTER)
> > > > > +      && SLP_TREE_MEMORY_ACCESS_TYPE (node) == VMAT_GATHER_SCATTER)
> > > > >      return sve_costs->scatter_store_elt_cost;
> > > > >  
> > > > >    /* Detect cases in which vec_to_scalar represents an in-loop 
> > > > > reduction.  */
> > > > > @@ -17708,7 +17708,7 @@ aarch64_vector_costs::count_ops (unsigned int 
> > > > > count, vect_cost_for_stmt kind,
> > > > >    if (stmt_info
> > > > >        && kind == vec_to_scalar
> > > > >        && (m_vec_flags & VEC_ADVSIMD)
> > > > > -      && vect_mem_access_type (stmt_info, node) == 
> > > > > VMAT_GATHER_SCATTER)
> > > > > +      && SLP_TREE_MEMORY_ACCESS_TYPE (node) == VMAT_GATHER_SCATTER)
> > > > >      {
> > > > >        auto dr = STMT_VINFO_DATA_REF (stmt_info);
> > > > >        tree dr_ref = DR_REF (dr);
> > > > > @@ -17823,7 +17823,7 @@ aarch64_vector_costs::count_ops (unsigned int 
> > > > > count, vect_cost_for_stmt kind,
> > > > >    if (stmt_info
> > > > >        && sve_issue
> > > > >        && (kind == scalar_load || kind == scalar_store)
> > > > > -      && vect_mem_access_type (stmt_info, node) == 
> > > > > VMAT_GATHER_SCATTER)
> > > > > +      && SLP_TREE_MEMORY_ACCESS_TYPE (node) == VMAT_GATHER_SCATTER)
> > > > >      {
> > > > >        unsigned int pairs = CEIL (count, 2);
> > > > >        ops->pred_ops += sve_issue->gather_scatter_pair_pred_ops * 
> > > > > pairs;
> > > > > @@ -17978,9 +17978,10 @@ 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
> > > > > +       && !m_costing_for_scalar
> > > > >         && vectype
> > > > >         && aarch64_sve_mode_p (TYPE_MODE (vectype))
> > > > > -       && vect_mem_access_type (stmt_info, node) == 
> > > > > VMAT_GATHER_SCATTER)
> > > > > +       && SLP_TREE_MEMORY_ACCESS_TYPE (node) == VMAT_GATHER_SCATTER)
> > > > >       {
> > > > >         const sve_vec_cost *sve_costs = 
> > > > > aarch64_tune_params.vec_costs->sve;
> > > > >         if (sve_costs)
> > > > > diff --git a/gcc/config/riscv/riscv-vector-costs.cc 
> > > > > b/gcc/config/riscv/riscv-vector-costs.cc
> > > > > index 1c6bc25c2ad..44ef44a1435 100644
> > > > > --- a/gcc/config/riscv/riscv-vector-costs.cc
> > > > > +++ b/gcc/config/riscv/riscv-vector-costs.cc
> > > > > @@ -400,7 +400,7 @@ costs::compute_local_live_ranges (
> > > > >                 pair &live_range
> > > > >                   = live_ranges->get_or_insert (lhs, &existed_p);
> > > > >                 gcc_assert (!existed_p);
> > > > > -               if (STMT_VINFO_MEMORY_ACCESS_TYPE 
> > > > > (program_point.stmt_info)
> > > > > +               if (SLP_TREE_MEMORY_ACCESS_TYPE (*node)
> > > > >                     == VMAT_LOAD_STORE_LANES)
> > > > >                   point = get_first_lane_point (program_points,
> > > > >                                                 
> > > > > program_point.stmt_info);
> > > > > @@ -418,8 +418,7 @@ costs::compute_local_live_ranges (
> > > > >                     bool existed_p = false;
> > > > >                     pair &live_range
> > > > >                       = live_ranges->get_or_insert (var, &existed_p);
> > > > > -                   if (STMT_VINFO_MEMORY_ACCESS_TYPE (
> > > > > -                         program_point.stmt_info)
> > > > > +                   if (SLP_TREE_MEMORY_ACCESS_TYPE (*node)
> > > > >                         == VMAT_LOAD_STORE_LANES)
> > > > >                       point = get_last_lane_point (program_points,
> > > > >                                                    
> > > > > program_point.stmt_info);
> > > > > @@ -608,7 +607,7 @@ costs::need_additional_vector_vars_p 
> > > > > (stmt_vec_info stmt_info,
> > > > >    if (type == load_vec_info_type || type == store_vec_info_type)
> > > > >      {
> > > > >        if (STMT_VINFO_GATHER_SCATTER_P (stmt_info)
> > > > > -       && STMT_VINFO_MEMORY_ACCESS_TYPE (stmt_info) == 
> > > > > VMAT_GATHER_SCATTER)
> > > > > +       && SLP_TREE_MEMORY_ACCESS_TYPE (node) == VMAT_GATHER_SCATTER)
> > > > >       return true;
> > > > >  
> > > > >        machine_mode mode = TYPE_MODE (STMT_VINFO_VECTYPE (stmt_info));
> > > > > @@ -1086,7 +1085,7 @@ costs::better_main_loop_than_p (const 
> > > > > vector_costs *uncast_other) const
> > > > >     load/store.  */
> > > > >  static int
> > > > >  segment_loadstore_group_size (enum vect_cost_for_stmt kind,
> > > > > -                           stmt_vec_info stmt_info)
> > > > > +                           stmt_vec_info stmt_info, slp_tree node)
> > > > >  {
> > > > >    if (stmt_info
> > > > >        && (kind == vector_load || kind == vector_store)
> > > > > @@ -1094,7 +1093,7 @@ segment_loadstore_group_size (enum 
> > > > > vect_cost_for_stmt kind,
> > > > >      {
> > > > >        stmt_info = DR_GROUP_FIRST_ELEMENT (stmt_info);
> > > > >        if (stmt_info
> > > > > -       && STMT_VINFO_MEMORY_ACCESS_TYPE (stmt_info) == 
> > > > > VMAT_LOAD_STORE_LANES)
> > > > > +       && SLP_TREE_MEMORY_ACCESS_TYPE (node) == 
> > > > > VMAT_LOAD_STORE_LANES)
> > > > >       return DR_GROUP_SIZE (stmt_info);
> > > > >      }
> > > > >    return 0;
> > > > > @@ -1108,7 +1107,7 @@ segment_loadstore_group_size (enum 
> > > > > vect_cost_for_stmt kind,
> > > > >  unsigned
> > > > >  costs::adjust_stmt_cost (enum vect_cost_for_stmt kind, loop_vec_info 
> > > > > loop,
> > > > >                        stmt_vec_info stmt_info,
> > > > > -                      slp_tree, tree vectype, int stmt_cost)
> > > > > +                      slp_tree node, tree vectype, int stmt_cost)
> > > > >  {
> > > > >    const cpu_vector_cost *costs = get_vector_costs ();
> > > > >    switch (kind)
> > > > > @@ -1131,7 +1130,8 @@ costs::adjust_stmt_cost (enum 
> > > > > vect_cost_for_stmt kind, loop_vec_info loop,
> > > > >                each vector in the group.  Here we additionally add 
> > > > > permute
> > > > >                costs for each.  */
> > > > >             /* TODO: Indexed and ordered/unordered cost.  */
> > > > > -           int group_size = segment_loadstore_group_size (kind, 
> > > > > stmt_info);
> > > > > +           int group_size = segment_loadstore_group_size (kind, 
> > > > > stmt_info,
> > > > > +                                                          node);
> > > > >             if (group_size > 1)
> > > > >               {
> > > > >                 switch (group_size)
> > > > > diff --git a/gcc/tree-vect-loop.cc b/gcc/tree-vect-loop.cc
> > > > > index 830fece33c6..ce08909ab83 100644
> > > > > --- a/gcc/tree-vect-loop.cc
> > > > > +++ b/gcc/tree-vect-loop.cc
> > > > > @@ -11294,11 +11294,9 @@ update_epilogue_loop_vinfo (class loop 
> > > > > *epilogue, tree advance)
> > > > >        updated offset we set using ADVANCE.  Instead we have to make 
> > > > > sure the
> > > > >        reference in the data references point to the corresponding 
> > > > > copy of
> > > > >        the original in the epilogue.  Make sure to update both
> > > > > -      gather/scatters recognized by dataref analysis and also other
> > > > > -      refs that get_load_store_type classified as 
> > > > > VMAT_GATHER_SCATTER.  */
> > > > > +      gather/scatters recognized by dataref analysis.  */
> > > > >        auto vstmt_vinfo = vect_stmt_to_vectorize (stmt_vinfo);
> > > > > -      if (STMT_VINFO_MEMORY_ACCESS_TYPE (vstmt_vinfo) == 
> > > > > VMAT_GATHER_SCATTER
> > > > > -       || STMT_VINFO_STRIDED_P (vstmt_vinfo)
> > > > > +      if (STMT_VINFO_STRIDED_P (vstmt_vinfo)
> > > > >         || STMT_VINFO_GATHER_SCATTER_P (vstmt_vinfo))
> > > > >       {
> > > > >         /* ???  As we copy epilogues from the main loop incremental
> > > > > diff --git a/gcc/tree-vect-stmts.cc b/gcc/tree-vect-stmts.cc
> > > > > index 4cf6c3b1a6f..1dfb148e803 100644
> > > > > --- a/gcc/tree-vect-stmts.cc
> > > > > +++ b/gcc/tree-vect-stmts.cc
> > > > > @@ -7934,7 +7934,6 @@ vectorizable_store (vec_info *vinfo,
> > > > >    bool costing_p = cost_vec;
> > > > >    if (costing_p) /* transformation not required.  */
> > > > >      {
> > > > > -      STMT_VINFO_MEMORY_ACCESS_TYPE (stmt_info) = memory_access_type;
> > > > >        SLP_TREE_MEMORY_ACCESS_TYPE (slp_node) = memory_access_type;
> > > > >  
> > > > >        if (loop_vinfo
> > > > > @@ -7965,7 +7964,7 @@ vectorizable_store (vec_info *vinfo,
> > > > >  
> > > > >        SLP_TREE_TYPE (slp_node) = store_vec_info_type;
> > > > >      }
> > > > > -  gcc_assert (memory_access_type == SLP_TREE_MEMORY_ACCESS_TYPE 
> > > > > (stmt_info));
> > > > > +  gcc_assert (memory_access_type == SLP_TREE_MEMORY_ACCESS_TYPE 
> > > > > (slp_node));
> > > > >  
> > > > >    /* Transform.  */
> > > > >  
> > > > > diff --git a/gcc/tree-vectorizer.h b/gcc/tree-vectorizer.h
> > > > > index 76ff2cfea2f..7e7b2b4b836 100644
> > > > > --- a/gcc/tree-vectorizer.h
> > > > > +++ b/gcc/tree-vectorizer.h
> > > > > @@ -1437,10 +1437,6 @@ public:
> > > > >    /* For both loads and stores.  */
> > > > >    unsigned simd_lane_access_p : 3;
> > > > >  
> > > > > -  /* Classifies how the load or store is going to be implemented
> > > > > -     for loop vectorization.  */
> > > > > -  vect_memory_access_type memory_access_type;
> > > > > -
> > > > >    /* For INTEGER_INDUC_COND_REDUCTION, the initial value to be used. 
> > > > >  */
> > > > >    tree induc_cond_initial_val;
> > > > >  
> > > > > @@ -1583,7 +1579,6 @@ struct gather_scatter_info {
> > > > >  #define STMT_VINFO_DATA_REF(S)             ((S)->dr_aux.dr + 0)
> > > > >  #define STMT_VINFO_GATHER_SCATTER_P(S)          (S)->gather_scatter_p
> > > > >  #define STMT_VINFO_STRIDED_P(S)                 (S)->strided_p
> > > > > -#define STMT_VINFO_MEMORY_ACCESS_TYPE(S)   (S)->memory_access_type
> > > > >  #define STMT_VINFO_SIMD_LANE_ACCESS_P(S)   (S)->simd_lane_access_p
> > > > >  #define STMT_VINFO_VEC_INDUC_COND_INITIAL_VAL(S) 
> > > > > (S)->induc_cond_initial_val
> > > > >  #define STMT_VINFO_REDUC_EPILOGUE_ADJUSTMENT(S) 
> > > > > (S)->reduc_epilogue_adjustment
> > > > > @@ -2832,18 +2827,6 @@ vect_is_reduction (stmt_vec_info stmt_info)
> > > > >    return STMT_VINFO_REDUC_IDX (stmt_info) >= 0;
> > > > >  }
> > > > >  
> > > > > -/* Returns the memory acccess type being used to vectorize the 
> > > > > statement.  If
> > > > > -   SLP this is read from NODE, otherwise it's read from the 
> > > > > STMT_VINFO.  */
> > > > > -
> > > > > -inline vect_memory_access_type
> > > > > -vect_mem_access_type (stmt_vec_info stmt_info, slp_tree node)
> > > > > -{
> > > > > -  if (node)
> > > > > -    return SLP_TREE_MEMORY_ACCESS_TYPE (node);
> > > > > -  else
> > > > > -    return STMT_VINFO_MEMORY_ACCESS_TYPE (stmt_info);
> > > > > -}
> > > > > -
> > > > >  /* If STMT_INFO describes a reduction, return the vect_reduction_type
> > > > >     of the reduction it describes, otherwise return -1.  */
> > > > >  inline int
> > > > > 
> > > > 
> > > > -- 
> > > > Richard Biener <rguent...@suse.de>
> > > > SUSE Software Solutions Germany GmbH,
> > > > Frankenstrasse 146, 90461 Nuernberg, Germany;
> > > > GF: Ivo Totev, Andrew McDonald, Werner Knoblich; (HRB 36809, AG 
> > > > Nuernberg)
> > > 
> > 
> > 
> 
> -- 
> Richard Biener <rguent...@suse.de>
> SUSE Software Solutions Germany GmbH,
> Frankenstrasse 146, 90461 Nuernberg, Germany;
> GF: Ivo Totev, Andrew McDonald, Werner Knoblich; (HRB 36809, AG Nuernberg)

Reply via email to