https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113572

            Bug ID: 113572
           Summary: aarch64: internal compiler error in
                    aarch64_sve::vector_cst_all_same
           Product: gcc
           Version: 14.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: mpolacek at gcc dot gnu.org
  Target Milestone: ---

typedef unsigned long uint64_t;
#pragma GCC aarch64 "arm_sve.h"

uint64_t u;
struct S { int i; } he;

void
foo ()
{
  svuint64_t vld_clz = svld1_u64 (svwhilelt_b64 (0, 4), (uint64_t *) &he);
  vld_clz = svclz_u64_z (svwhilelt_b64 (0, 1), vld_clz);
  svst1_u64 (svwhilelt_b64 (0, 1), &u, vld_clz);
}

$ ./cc1 -quiet -Iinclude pr.c -O -march=armv8.2-a+sve
during GIMPLE pass: ccp
pr.c: In function ‘foo’:
pr.c:13:1: internal compiler error: Segmentation fault
   13 | }
      | ^
0x10534af crash_signal
        /home/mpolacek/src/gcc/gcc/toplev.cc:317
0x7f997160899f ???
       
/usr/src/debug/glibc-2.38-14.fc39.x86_64/signal/../sysdeps/unix/sysv/linux/x86_64/libc_sigaction.c:0
0xc58d3a location_wrapper_p(tree_node const*)
        /home/mpolacek/src/gcc/gcc/tree.h:4379
0xc58d3a tree_strip_any_location_wrapper(tree_node*)
        /home/mpolacek/src/gcc/gcc/tree.h:4391
0xc58d3a operand_compare::operand_equal_p(tree_node const*, tree_node const*,
unsigned int)
        /home/mpolacek/src/gcc/gcc/fold-const.cc:3122
0xc5be00 operand_compare::operand_equal_p(tree_node const*, tree_node const*,
unsigned int)
        /home/mpolacek/src/gcc/gcc/fold-const.cc:4183
0xc5be00 operand_compare::verify_hash_value(tree_node const*, tree_node const*,
unsigned int, bool*)
        /home/mpolacek/src/gcc/gcc/fold-const.cc:4163
0xc5be00 operand_compare::verify_hash_value(tree_node const*, tree_node const*,
unsigned int, bool*)
        /home/mpolacek/src/gcc/gcc/fold-const.cc:4155
0xc5c807 operand_compare::operand_equal_p(tree_node const*, tree_node const*,
unsigned int)
        /home/mpolacek/src/gcc/gcc/fold-const.cc:3119
0xc5c807 operand_equal_p(tree_node const*, tree_node const*, unsigned int)
        /home/mpolacek/src/gcc/gcc/fold-const.cc:4194
0x1505f77 aarch64_sve::vector_cst_all_same(tree_node*, unsigned int)
        /home/mpolacek/src/gcc/gcc/config/aarch64/aarch64-sve-builtins.cc:3477
0x150b92f aarch64_sve::gimple_folder::redirect_pred_x()
        /home/mpolacek/src/gcc/gcc/config/aarch64/aarch64-sve-builtins.cc:3591
0x150b9ab aarch64_sve::gimple_folder::fold()
        /home/mpolacek/src/gcc/gcc/config/aarch64/aarch64-sve-builtins.cc:3672
0x150ba81 aarch64_sve::gimple_fold_builtin(unsigned int, gimple_stmt_iterator*,
gcall*)
        /home/mpolacek/src/gcc/gcc/config/aarch64/aarch64-sve-builtins.cc:4743
0x141baf2 aarch64_gimple_fold_builtin
        /home/mpolacek/src/gcc/gcc/config/aarch64/aarch64.cc:15499
0xce1490 gimple_fold_call
        /home/mpolacek/src/gcc/gcc/gimple-fold.cc:5669
0xce350b fold_stmt_1
        /home/mpolacek/src/gcc/gcc/gimple-fold.cc:6431
0x12393be substitute_and_fold_dom_walker::before_dom_children(basic_block_def*)
        /home/mpolacek/src/gcc/gcc/tree-ssa-propagate.cc:859
0x1dcddee dom_walker::walk(basic_block_def*)
        /home/mpolacek/src/gcc/gcc/domwalk.cc:311
0x1238495 substitute_and_fold_engine::substitute_and_fold(basic_block_def*)
        /home/mpolacek/src/gcc/gcc/tree-ssa-propagate.cc:999

Reply via email to