------- Comment #4 from bonzini at gnu dot org 2009-09-09 15:11 ------- I don't see the reload failure anymore.
The code is: push {r4, lr} mov r4, r0 mov r1, #0 bl __gesf2 cmp r0, #0 it lt movlt r4, #0 mov r0, r4 pop {r4, pc} Pre-cond-optab, we generated push {r4, lr} mov r4, r0 mov r1, #0 bl __gesf2 cmp r0, #0 mov r0, #0 <<<< it ge movge r0, r4 pop {r4, pc} So this is fixed. I'm leaving this bug open as an enhancement though because the highlighted mov is redundant. -- bonzini at gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- OtherBugsDependingO|39714 | nThis| | Severity|normal |enhancement Status|WAITING |NEW Ever Confirmed|0 |1 Keywords| |missed-optimization Priority|P2 |P3 Last reconfirmed|0000-00-00 00:00:00 |2009-09-09 15:11:09 date| | Summary|[4.5 Regression][cond-optab]|suboptimal MAX_EXPR |worse MAX_EXPR expansion for|expansion for Thumb |Thumb | Target Milestone|4.5.0 |--- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39716