I found another pair of equivalent expressions that produce different results. Working as expected: if ((floatBitsToUint(R0).y >= 0x4u ? 0xffffffffu : 0u) == 0xffffffffu) Showing artifacts: if ((floatBitsToUint(R0).y >= 0x4u ? 0xffffffffu : 0u) != 0u)