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)