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

Martin Liška <marxin at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |FIXED
             Status|NEW                         |RESOLVED

--- Comment #2 from Martin Liška <marxin at gcc dot gnu.org> ---
Apparently fixed as the revision was reverted (r13-1780-g9a52d6871a268a)

Note there's a x86_64-linux-gnu test-case:

$ cat gegl.i
int gegl_downscale_2x2_u8_dst_data_x;
char *data;

int babl_format_get_bytes_per_pixel();

void
gegl_downscale_2x2_u8_dst_data() {
  int bpp = babl_format_get_bytes_per_pixel();
  switch (bpp)
  case 4: {
    char *src, *dst = gegl_downscale_2x2_u8_dst_data;
    for (; gegl_downscale_2x2_u8_dst_data_x;
         gegl_downscale_2x2_u8_dst_data_x++) {
      dst[0] = (src[0] + (unsigned)src[0]) / 4;
      dst[1] = (src[1] + (unsigned)src[1]) / 4;
      dst[2] = (src[2] + (unsigned)src[2]) / 4;
      dst[3] = (src[3] + (unsigned)src[3]) / 4;
      dst += bpp;
      src += bpp * 2;
    }
  }
}

$ gcc gegl.i -c -O2 -ftree-vectorize -w
during GIMPLE pass: forwprop
gegl.i: In function ‘gegl_downscale_2x2_u8_dst_data’:
gegl.i:7:1: internal compiler error: in fold_vec_perm, at fold-const.cc:10546
    7 | gegl_downscale_2x2_u8_dst_data() {
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
0x7027e4 fold_vec_perm(tree_node*, tree_node*, tree_node*, vec_perm_indices
const&)
        /home/marxin/Programming/gcc/gcc/fold-const.cc:10546
0x16da940 generic_simplify_VEC_PERM_EXPR
        /dev/shm/objdir/gcc/generic-match.cc:98764
0xbd5ce7 fold_ternary_loc(unsigned int, tree_code, tree_node*, tree_node*,
tree_node*, tree_node*)
        /home/marxin/Programming/gcc/gcc/fold-const.cc:12844
0x10a75c3 simplify_permutation
        /home/marxin/Programming/gcc/gcc/tree-ssa-forwprop.cc:2665
0x10aae40 execute
        /home/marxin/Programming/gcc/gcc/tree-ssa-forwprop.cc:3748
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.

Reply via email to