------- 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

Reply via email to