http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58110

Jan Hubicka <hubicka at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2013-08-09
                 CC|                            |hubicka at gcc dot gnu.org,
                   |                            |vmakarov at redhat dot com
     Ever confirmed|0                           |1
           Severity|normal                      |enhancement

--- Comment #2 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
Here BX is used after reload for:

(insn 118 116 119 9 (parallel [
            (set (reg:DI 3 bx [orig:111 D.4408 ] [111])
                (plus:DI (reg/v:DI 1 dx [orig:242 n ] [242])
                    (const_int -16 [0xfffffffffffffff0])))
            (clobber (reg:CC 17 flags))
        ]) memcpy.c:96 249 {*adddi_1}
     (nil))

...

(insn 120 119 122 9 (set (reg:V16QI 51 xmm14 [281])
        (unspec:V16QI [
                (mem:V16QI (plus:DI (reg/v/f:DI 4 si [orig:241 src ] [241])
                        (reg:DI 3 bx [orig:111 D.4408 ] [111])) [0 S16 A8])
            ] UNSPEC_LOADU))
/usr/lib64/gcc/x86_64-suse-linux/4.7/include/emmintrin.h:685 1107
{sse2_loaddqu}
     (nil))
...
(insn 175 173 178 9 (set (mem:V16QI (plus:DI (reg/v/f:DI 0 ax [orig:240 dest ]
[240])
                (reg:DI 3 bx [orig:111 D.4408 ] [111])) [0 S16 A8])
        (unspec:V16QI [
                (reg:V16QI 51 xmm14 [281])
            ] UNSPEC_STOREU))
/usr/lib64/gcc/x86_64-suse-linux/4.7/include/emmintrin.h:703 1109
{sse2_storedqu}
     (nil))
....

and this gets updated by postrealod to

(insn 120 119 122 9 (set (reg:V16QI 51 xmm14 [281])
        (unspec:V16QI [
                (mem:V16QI (plus:DI (plus:DI (reg/v/f:DI 4 si [orig:241 src ]
[241])
                            (reg/v:DI 1 dx [orig:242 n ] [242]))
                        (const_int -16 [0xfffffffffffffff0])) [0 S16 A8])
            ] UNSPEC_LOADU))
/usr/lib64/gcc/x86_64-suse-linux/4.7/include/emmintrin.h:685 1107
{sse2_loaddqu}
     (nil))

So RBX become unused.

Vladimir, perhaps you can take a look?

Reply via email to