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.

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)

Reply via email to