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).

Reply via email to