https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117086
--- Comment #6 from Richard Biener <rguenth at gcc dot gnu.org> ---
After a fix we now do
mask__10.8_26 = _8 < { 0, 1, 2, 3, 4, 5, 6, 7 };
vect__ifc__23.10_28 = VEC_COND_EXPR <mask__10.8_26, { 0, 1, 2, 3, 4, 5, 6, 7
}, { 0, 0, 0, 0, 0, 0, 0, 0 }>;
_30 = .REDUC_IOR (vect__ifc__23.10_28);
if (vect__ifc__23.10_28 != { 0, 0, 0, 0, 0, 0, 0, 0 })
this we elide the .REDUC_IOR as desired but still leave
(ne (vec_cond @0 @1 integer_zerop) integer_zerop) -> (ne @0 zero) on the
plate. It possibly would work for (ne (vec_cond @0 @1 @2) @2) as well
(and I'd be surprised if we didn't have this for (cond ...) already).