------- Comment #22 from pinskia at gcc dot gnu dot org 2010-07-14 16:50
-------
(In reply to comment #21)
> Even if it did not voilate aliasing rules, the IR looks good:
The expansion looks incorrect though:
(insn 39 38 40 t.cc:55 (set (reg:DI 107)
(vec_select:DI (reg:V2DI 79 [ D.4999 ])
(parallel [
(const_int 1 [0x1])
]))) -1 (nil))
(insn 40 39 41 t.cc:55 (set (reg:DI 108)
(vec_select:DI (reg:V2DI 79 [ D.4999 ])
(parallel [
(const_int 1 [0x1])
]))) -1 (nil))
(insn 41 40 42 t.cc:55 (set (reg:DI 109)
(vec_select:DI (reg:V2DI 79 [ D.4999 ])
(parallel [
(const_int 0 [0x0])
]))) -1 (nil))
(insn 42 41 43 t.cc:55 (set (reg:DI 110)
(vec_select:DI (reg:V2DI 79 [ D.4999 ])
(parallel [
(const_int 0 [0x0])
]))) -1 (nil))
(insn 43 42 44 t.cc:55 (set (reg:SI 37 r8)
(subreg:SI (reg:DI 107) 0)) -1 (nil))
(insn 44 43 45 t.cc:55 (set (reg:SI 2 cx)
(subreg:SI (reg:DI 108) 0)) -1 (nil))
(insn 45 44 46 t.cc:55 (set (reg:SI 1 dx)
(subreg:SI (reg:DI 109) 0)) -1 (nil))
(insn 46 45 47 t.cc:55 (set (reg:SI 4 si)
(subreg:SI (reg:DI 110) 0)) -1 (nil))
Please file that as a different bug.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44900