https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120903
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- With `char*` GCC has: _7 = a_2(D) < &MEM <uint32_t> [(void *)&r + 4B]; _4 = a_2(D) > &r; _9 = _4 & _7; But we only optimize ==/!= for aliasing IIRC.