https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112740
--- Comment #9 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Note this was exposed by r14-3350-g47b833a9abe19d which changed the original IR From: _4 = VEC_COND_EXPR <_3, { -1 }, { 0 }>; _5 = VIEW_CONVERT_EXPR<vector(1) __int128 unsignedD.14>(_4); _6 = _5 == { 0 }; _7 = VEC_COND_EXPR <_6, { -1 }, { 0 }>; _8 = VIEW_CONVERT_EXPR<VD.4391>(_7); To: _4 = ~_3; _5 = VEC_COND_EXPR <_4, { 0xffffffffffffffffffffffffffffffff }, { 0 }>; Which is 100% correct and nothing wrong with that change there either.