On Sat, Oct 27, 2012 at 5:12 AM, Uros Bizjak <ubiz...@gmail.com> wrote: > Hello! > > As suggested by Richard S. [1], after the patch that converts subreg:M > (op:N (...)(...)) to op:M (subreg:M (...) subreg:M (...)), we can > remove several peephole2 patterns that handle subregs of PLUS, MINUS > and MULT operators. I have attached RFC prototype patch that will > trigger an ICE when to-be-removed pattern triggers, with the intention > that these patterns wil be removed entirely (An "invalid" pattern was > indeed generated elsewhere, see patch). > > 2012-10-18 Uros Bizjak <ubiz...@gmail.com> > > * config/i386/i386.md (ashift to lea splitter): Split to SImode mult. > (simple lea to add/shift peephole2s): Remove peephole2s that operate > on subregs of DImode operations. > (*mov<mode>_insv_1_rex64): Use gen_int_mode to truncate > const_int RTX to QImode value. > (*movsi_insv_1): Ditto. > > The patch was bootstrapped and regression tested on > x86_64-pc-linux-gnu {,-m32} without problems, but I will ask H.J. to > test the patch on x32 before it is committed to mainline SVN. > > [1] http://gcc.gnu.org/ml/gcc-patches/2012-09/msg01856.html > > Uros.
I tested it on x32, ia32 and x86-64 with GCC testsuite and glibc. There are no GCC regressions on x32. However, for glibc trunk, on x32 and x86-64, I got make[4]: *** [/export/build/gnu/glibc-test/build-x86_64-linux/math/test-ildoubl.out] Error 1 make[4]: *** [/export/build/gnu/glibc-test/build-x86_64-linux/math/test-ldouble.out] Error 1 On ia32, I got make[4]: *** [/export/build/gnu/glibc-32bit-test/build-i686-linux/math/test-fenv.out] Error 1 make[4]: *** [/export/build/gnu/glibc-32bit-test/build-i686-linux/math/test-ifloat.out] Error 1 make[4]: *** [/export/build/gnu/glibc-32bit-test/build-i686-linux/math/test-idouble.out] Error 1 make[4]: *** [/export/build/gnu/glibc-32bit-test/build-i686-linux/math/test-float.out] Error 1 make[4]: *** [/export/build/gnu/glibc-32bit-test/build-i686-linux/math/test-double.out] Error 1 I am testing if they are caused by the change. -- H.J.