On Sun, Oct 28, 2012 at 2:37 AM, H.J. Lu <hjl.to...@gmail.com> wrote:

>>> 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.
>>
>
> They are caused by this patch. I configure glibc with CFLAGS="-O3 -g"

Can you please send me offline preprocessed sources to investigate
this failure? There is another place in the code that generates subreg
"by hand".

Thanks,
Uros.

Reply via email to