https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90610
--- Comment #4 from Martin Liška <marxin at gcc dot gnu.org> --- First change is in zbuf.c.170t.veclower21: GOOD: vect_shuffle3_high_369 = VEC_PERM_EXPR <vect__46.1053_372, vect_cst__502, { 0, 3 }>; vect_shuffle3_low_444 = VEC_PERM_EXPR <vect_cst__502, vect__44.1050_442, { 3, 0 }>; vect_shuffle3_high_368 = VEC_PERM_EXPR <vect_shuffle3_low_444, vect__46.1053_372, { 0, 3 }>; MEM[(float * *)vectp_vlzp.1055_503] = vect_shuffle3_low_371; vectp_vlzp.1054_445 = vectp_vlzp.1055_503 + 16; MEM[(float * *)vectp_vlzp.1054_445] = vect_shuffle3_high_369; BAD: vect_shuffle3_low_444 = VEC_PERM_EXPR <vect_cst__502, vect__44.1050_442, { 3, 0 }>; vect_shuffle3_high_368 = VEC_PERM_EXPR <vect_shuffle3_low_444, vect__46.1053_372, { 0, 3 }>; MEM[(float * *)vectp_vlzp.1055_503] = vect_shuffle3_low_371; vectp_vlzp.1054_445 = vectp_vlzp.1055_503 + 16; MEM[(float * *)vectp_vlzp.1054_445] = vect_cst__502; Type of vectors: vector(2) long unsigned int @Richi: Is it enough to see the problem?