https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102324
Bug ID: 102324 Summary: ICE in initialize_matrix_A, at tree-data-ref.c:3959 Product: gcc Version: 12.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: ktkachov at gcc dot gnu.org Target Milestone: --- The AArch64 SVE ACLE testcase below #include <arm_sve.h> svint8_t doit(svbool_t ptrue, svint8_t m0) { auto combine_low = [&ptrue]( svint8_t in) -> svint8_t { int8_t data [2000]; svst1(ptrue, (int8_t *)data, in); for (int _i = (int)svcntb()/2; _i < (int)svcntb(); ++_i) data[_i] = data[_i-(int)svcntb()]; in = svld1(ptrue, data); return in; }; return combine_low(m0); } ICEs with -march=armv8-a+sve -O2 ice.cc: In lambda function: ice.cc:4:5: internal compiler error: in initialize_matrix_A, at tree-data-ref.c:3959 4 | [&ptrue]( svint8_t in) -> svint8_t { | ^ 0x1ed2988 initialize_matrix_A $SRC/gcc/tree-data-ref.c:3959 0x1ed2965 initialize_matrix_A $SRC/gcc/tree-data-ref.c:3929 0x1ed8454 analyze_subscript_affine_affine $SRC/gcc/tree-data-ref.c:4361 0x1edb8fd analyze_siv_subscript $SRC/gcc/tree-data-ref.c:4703 0x1edb8fd analyze_overlapping_iterations $SRC/gcc/tree-data-ref.c:4933 0x1edb8fd subscript_dependence_tester_1 $SRC/gcc/tree-data-ref.c:5487 0x1edc10c subscript_dependence_tester $SRC/gcc/tree-data-ref.c:5537 0x1edc10c compute_affine_dependence(data_dependence_relation*, loop*) $SRC/gcc/tree-data-ref.c:5597 0x118ea4d loop_distribution::get_data_dependence(graph*, data_reference*, data_reference*) $SRC/gcc/tree-loop-distribution.c:1379 0x118eaba loop_distribution::data_dep_in_cycle_p(graph*, data_reference*, data_reference*) $SRC/gcc/tree-loop-distribution.c:1398 0x118ed49 loop_distribution::update_type_for_merge(graph*, partition*, partition*) $SRC/gcc/tree-loop-distribution.c:1441 0x118f927 loop_distribution::build_rdg_partition_for_vertex(graph*, int) $SRC/gcc/tree-loop-distribution.c:1485 0x118fb51 loop_distribution::rdg_build_partitions(graph*, vec<gimple*, va_heap, vl_ptr>, vec<partition*, va_heap, vl_ptr>*) $SRC/gcc/tree-loop-distribution.c:1938 0x1191c19 loop_distribution::distribute_loop(loop*, vec<gimple*, va_heap, vl_ptr> const&, control_dependences*, int*, bool*, bool) $SRC/gcc/tree-loop-distribution.c:2984 0x11940f8 loop_distribution::execute(function*) $SRC/gcc/tree-loop-distribution.c:3353 0x119508d execute $SRC/gcc/tree-loop-distribution.c:3441 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions.