--- Comment #5 from ian at airs dot com 2007-02-16 00:38 ---
I believe this is also related to the failure of gcc.c-torture/execute/simd-1.c
on i686-pc-linux-gnu at -O1 and above.
I think the problem is that we fail to add a REG_EQUIV note here in
local-alloc.c:
if (REG_N_SET
--- Comment #4 from steven at gcc dot gnu dot org 2007-02-15 20:15 ---
NB we don't add the REG_EQUIV note because insn 136 has multiple sets. Such
insns can't have REG_EQ* notes according to set_unique_reg_note. But that, I
think, is not the bug. More likely is that I exposed a latent
--- Comment #3 from steven at gcc dot gnu dot org 2007-02-15 20:06 ---
The third hunk of the patch changes something:
Index: local-alloc.c
===
--- local-alloc.c (revision 121794)
+++ local-alloc.c (working copy)
--- Comment #1 from grigory_zagorodnev at linux dot intel dot com
2007-02-14 13:38 ---
>From the entire "REG_EQ* notes cleanups" patch, only local-alloc.c changes do
matter for this regression. Backed out local-alloc changes fixes the
regression.
--
http://gcc.gnu.org/bugzilla/show
--- Comment #2 from grigory_zagorodnev at linux dot intel dot com
2007-02-14 13:40 ---
Created an attachment (id=13048)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13048&action=view)
Source code for minimal reproducer
There is a minimal reproducer for the problem. Test-case is
--
steven at gcc dot gnu dot org changed:
What|Removed |Added
AssignedTo|unassigned at gcc dot gnu |steven at gcc dot gnu dot
|dot org