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.