https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121266
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- So if we look at `orl $-1, %eax`. This will create a dependency on the instruction that modified eax last. This means there is an false dependency since the result does not really depends on the previous value but the way the decoder inside the processor works, it does not know that (just yet). So there is a trade off for a small speedup vs a small size increase. -Oz does not do that small trade off and always does for size.