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?

Reply via email to