http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57967
--- Comment #4 from Mikael Pettersson <mikpe at it dot uu.se> --- I can reproduce the wrong-code with gcc-4.7.3 on armv5tel-linux-gnueabi. The wrong-code disappeared on 4.7 branch with the recent PR57829 fix in r200773. On trunk the wrong-code disappeared with r186147, Mike Stump's "remove wrong code in immed_double_const" patch. Backporting that to 4.7.3 (pre-PR57829 fix) also fixes the wrong-code. However, r186147 (a) had some regressions on ARM and s390x (see PR57735), and (b) should be redundant for 4.7 given the PR57829 fix.