https://gcc.gnu.org/bugzilla/show_bug.cgi?id=125786

--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> ---
I'll note we have

/* (@0 ? @2 : @3) lop (@1 ? @2 : @3)  -->  (@0 lop @1) ? @2 : @3.  */
(for lop (bit_and bit_ior bit_xor)
   (simplify
   (lop
      (vec_cond @0 integer_minus_onep@2 integer_zerop@3)
      (vec_cond @1 @2 @3))
      (if (target_supports_op_p (TREE_TYPE (@0), lop, optab_vector))
   (vec_cond (lop @0 @1) @2 @3))))

that would catch the testcase, but we do not support the logical op here
and the reassoc pass does not bother to verify (ick).  That's a different
issue.

Also inverted value matching is broken (missed opt), have a patch for that.

Reply via email to