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.

Reply via email to