http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56275
Uros Bizjak <ubizjak at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2013-02-10 Component|other |rtl-optimization Known to work| |4.7.3, 4.8.0 Target Milestone|--- |4.6.4 Ever Confirmed|0 |1 --- Comment #1 from Uros Bizjak <ubizjak at gmail dot com> 2013-02-10 14:55:03 UTC --- Confirmed, latent on 4.7+. I'm testing following patch: --cut here-- Index: simplify-rtx.c =================================================================== --- simplify-rtx.c (revision 195496) +++ simplify-rtx.c (working copy) @@ -188,7 +188,8 @@ /* If we're accessing the constant in a different mode than it was originally stored, attempt to fix that up via subreg simplifications. If that fails we have no choice but to return the original memory. */ - if (offset != 0 || cmode != GET_MODE (x)) + if ((offset != 0 || cmode != GET_MODE (x)) + && offset < GET_MODE_SIZE (cmode)) { rtx tem = simplify_subreg (GET_MODE (x), c, cmode, offset); if (tem && CONSTANT_P (tem)) --cut here--