https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66233
--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Sounds like gimple folding issue. We have: vect__4.9_31 = (vector(4) float) { 0, 1, 2, 3 }; vect__5.10_32 = (vector(4) unsigned int) vect__4.9_31; where the first stmt's rhs_code is FLOAT_EXPR and rhs1 is VECTOR_CST vector(4) int, and the second stmt's rhs_code is FIX_TRUNC_EXPR. So, for this combined together we should use VIEW_CONVERT_EXPR, but we use FIX_TRUNC_EXPR.