https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64792

            Bug ID: 64792
           Summary: [5 Regression][SH] movu.b movu.w not working
           Product: gcc
           Version: 5.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: olegendo at gcc dot gnu.org
            Target: sh*-*-*

The treg_set_expr patch from r220081 disabled early matching of the SH2A movu.b
and movu.w patterns during RTL expansion and combine.  This was done because
it's otherwise difficult to convert zero-extending loads back to sign-extending
loads in cases where using sign-extended values is fine.  Sign-extending loads
are shorter (2 bytes vs. 4 bytes insns) and the zero-extending loads should be
formed as a last resort option, after combine and split1, but before RA.  The
idea is to do that in a simple peephole-like RTL pass.

Reply via email to