https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98535
--- Comment #8 from rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> --- (In reply to Richard Biener from comment #6) > that is, we end up with > > <bb 26> [local count: 73320728]: > _99 = {j$b_2(D)}; > _100 = VIEW_CONVERT_EXPR<unsigned short>(_99); > _101 = [vec_duplicate_expr] _100; > _102 = {j$c_10(D)}; > _103 = VIEW_CONVERT_EXPR<unsigned short>(_102); > _104 = [vec_duplicate_expr] _103; > _105 = {j$d_11(D)}; > _106 = VIEW_CONVERT_EXPR<unsigned short>(_105); > _107 = [vec_duplicate_expr] _106; > _108 = {j$e_12(D)}; > _109 = VIEW_CONVERT_EXPR<unsigned short>(_108); > _110 = [vec_duplicate_expr] _109; > _111 = VEC_PERM_EXPR <_101, _107, { 0, POLY_INT_CST [4, 4], 1, > POLY_INT_CST [5, 4], 2, POLY_INT_CST [6, 4], ... }>; > _112 = VEC_PERM_EXPR <_111, _111, { 0, POLY_INT_CST [4, 4], 1, > POLY_INT_CST [5, 4], 2, POLY_INT_CST [6, 4], ... }>; > _113 = VIEW_CONVERT_EXPR<vector([4,4]) short int>(_112); > > seemingly ignoring _104 and _108 entirely ... Yeah, that does seem wrong. I'll have a look. Congrats on getting attachment 50000 btw ;-)