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?