http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52407
Richard Guenther <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |wrong-code
Status|UNCONFIRMED |NEW
Last reconfirmed| |2012-02-28
CC| |jakub at gcc dot gnu.org,
| |rguenth at gcc dot gnu.org
Ever Confirmed|0 |1
--- Comment #2 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-02-28
10:39:53 UTC ---
It looks like a bug in the way we expand the vector init:
;; MEM[(int64_t *)&w + 8B] = 2;
(insn 39 38 40 (set (reg:DI 102)
(const_int 2 [0x2])) t.c:19 -1
(nil))
(insn 40 39 41 (set (reg:DI 103)
(vec_select:DI (reg/v:V2DI 98 [ w ])
(parallel [
(const_int 0 [0])
]))) t.c:19 -1
(nil))
(insn 41 40 0 (set (reg/v:V2DI 98 [ w ])
(vec_concat:V2DI (reg:DI 102)
(reg:DI 103))) t.c:19 -1
(nil))
^^^ should be vec_concat 103 102
;; MEM[(int64_t *)&w] = 2;
(insn 42 41 43 (set (reg:DI 104)
(const_int 2 [0x2])) t.c:19 -1
(nil))
(insn 43 42 44 (set (reg:DI 105)
(vec_select:DI (reg/v:V2DI 98 [ w ])
(parallel [
(const_int 1 [0x1])
]))) t.c:19 -1
(nil))
(insn 44 43 0 (set (reg/v:V2DI 98 [ w ])
(vec_concat:V2DI (reg:DI 105)
(reg:DI 104))) t.c:19 -1
(nil))
^^^ should be vec_concat 104 105
no?