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.