https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115659
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Component|target |tree-optimization CC| |pinskia at gcc dot gnu.org --- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Note I think this could help scalar code too: ``` int a[1], b[1], c[1]; void test (void) { a[0] = (b[0] == c[0]) ? -1 : a[0]; } void test1 (void) { a[0] = (-(b[0] == c[0])) | a[0]; } ``` So this could be something like: ``` (simplify (cond @0 @1 integer_all_ones_p) (bit_ior (negate (convert @0)) @1)) (simplify (vec_cond @0 @1 integer_all_ones_p) (bit_ior (view_convert @0) @1)) ``` The second one might need a target_supports_op_p for the bit_ior.