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

            Bug ID: 84265
           Summary: ICE in vect_permute_load_chain, at
                    tree-vect-data-refs.c:5933
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: marxin at gcc dot gnu.org
                CC: amker at gcc dot gnu.org, rdsandiford at googlemail dot com
  Target Milestone: ---
              Host: x86_64-unknown-linux-gnu
            Target: aarch64-linux-gnu

Both seen on native machine and cross compiler:

$ cat ice.i
struct a
{
  unsigned long b;
  unsigned long c;
  int d;
  int *e;
  char f;
};

struct
{
  int g;
  struct a h[];
} i;

int j, k;
void l ()
{
  for (; k; k++)
    j += (int) (i.h[k].c - i.h[k].b);
}

$ ./xgcc -B. -O3 ice.i -c
during GIMPLE pass: vect
ice.i: In function ā€˜lā€™:
ice.i:17:6: internal compiler error: in vect_permute_load_chain, at
tree-vect-data-refs.c:5933
 void l ()
      ^
0x134b950 vect_permute_load_chain
        ../../gcc/tree-vect-data-refs.c:5933
0x134c46f vect_transform_grouped_load(gimple*, vec<tree_node*, va_heap,
vl_ptr>, int, gimple_stmt_iterator*)
        ../../gcc/tree-vect-data-refs.c:6355
0xe31758 vectorizable_load
        ../../gcc/tree-vect-stmts.c:8366
0xe3c1df vect_transform_stmt(gimple*, gimple_stmt_iterator*, bool*, _slp_tree*,
_slp_instance*)
        ../../gcc/tree-vect-stmts.c:9453
0xe4b522 vect_transform_loop(_loop_vec_info*)
        ../../gcc/tree-vect-loop.c:8872
0xe6b173 vectorize_loops()
        ../../gcc/tree-vectorizer.c:740

Reply via email to