http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52338
Richard Earnshaw <rearnsha at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2012-02-22 Ever Confirmed|0 |1 --- Comment #1 from Richard Earnshaw <rearnsha at gcc dot gnu.org> 2012-02-22 11:52:48 UTC --- The sequence that doesn't need conditional execution will generally execute in just two cycles, the version using the conditional execution will take 3 (perhaps more) as on some cores conditional instructions can be quite slow (though still faster than branching if there is no pattern to that the branch predictor can lock onto). The patterns to deal with these sequences were originally written for ARM state and have been subsequently converted to also handle Thumb2. In ARM state both sequences need 8 bytes and the non-compare version is clearly preferable.