https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94892
--- Comment #10 from Drea Pinski <pinskia at gcc dot gnu.org> --- a[0,1]|b[-1,0] != 1 vs a[0,1]|b[-1,0] != -1 for the first case we know that a[0,1] != 1 as b does not matter what the value is. For the second case we know that b[0,-1] != -1 as it does not matter what value a is it won't be -1. So in theory we could match: (ne (ior:c zero_one_valuep@0 zero_negone_valuep@1) onep) -> (ne @0 onep) (ne (ior:c zero_one_valuep@0 zero_negone_valuep@1) negonep) -> (ne @1 negonep)
