https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70251
Ilya Enkovich <ienkovich at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2016-03-16 Ever confirmed|0 |1 --- Comment #1 from Ilya Enkovich <ienkovich at gcc dot gnu.org> --- Confirm. The problem is that vect_patt_50.39_93 = VEC_COND_EXPR <mask_patt_51.38_90, { 1, .. , 1 }, { 0, .. , 0 }>; vect__17.44_98 = vect_patt_50.39_93 + vect__16.43_97; is replaced with: _1 = VIEW_CONVERT_EXPR<vector(64) unsigned char>(mask_patt_51.38_90); vect__17.44_98 = vect__16.43_97 - _1; which works for vector masks but doesn't work for scalar masks.