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

            Bug ID: 97405
           Summary: ICE in get_or_alloc_expr_for in code hoisting with SVE
                    intrinsics
           Product: gcc
           Version: unknown
            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: ---
            Target: aarch64

The following ICEs:
#include "arm_sve.h"

void
a (svuint8x3_t b, unsigned char *p, int c) {
  if (c)
    svst1_u8(svptrue_pat_b8(SV_VL16), p, svget3_u8(b, 1));
  else
    svst1_u8(svwhilelt_b8(6, 6), p, svget3_u8(b, 1));
}

with -O2 -march=armv8.2-a+sve on aarch64 with both GCC 10 and 11 branches

during GIMPLE pass: pre
sveice.c: In function 'a':
sveice.c:4:1: internal compiler error: in get_or_alloc_expr_for, at
tree-ssa-pre.c:1098
    4 | a (svuint8x3_t b, unsigned char *p, int c) {
      | ^
0xf3a0e9 get_or_alloc_expr_for
        $SRC/gcc/tree-ssa-pre.c:1098
0xf3a0e9 find_or_generate_expression
        $SRC/gcc/tree-ssa-pre.c:2693
0xf3aadd create_component_ref_by_pieces_1
        $SRC/gcc/tree-ssa-pre.c:2613
0xf393fc create_component_ref_by_pieces
        $SRC/gcc/tree-ssa-pre.c:2681
0xf393fc create_expression_by_pieces
        $SRC/gcc/tree-ssa-pre.c:2830
0xf3da24 do_hoist_insertion
        $SRC/gcc/tree-ssa-pre.c:3598
0xf3da24 insert
        $SRC/gcc/tree-ssa-pre.c:3685
0xf3da24 execute
        $SRC/gcc/tree-ssa-pre.c:4235
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