https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101755
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- d = a | -2; b = (d == 0) ? c : (c % d); d can never be 0, VRP figures this out now. so we end up with: d = a | -2; b = 0xc7d24b5e % d; if (b != 0xc7d24b5e) abort(); and b cannot be 0xc7d24b5e because d is negative :). So VRP is optimizing this all the way out. The test was trying to make sure the value 0xc7d24b5e was emitted as a REG_EQUAL note when splitting up the constant (for the forming) in RTL. https://gcc.gnu.org/pipermail/gcc-patches/2015-June/422430.html https://gcc.gnu.org/pipermail/gcc-patches/2015-June/422432.html