------- Comment #7 from hjl dot tools at gmail dot com  2010-08-20 16:54 -------
Created an attachment (id=21531)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21531&action=view)
A patch

I talked to icc people. They think the return value should be
zero-extended to reflex what hardware does. However, we need to
optimize out sign_extend in:

(insn:TI 9 7 10 (set (reg:SI 0 ax [orig:68 D.6819 ] [68])
        (zero_extend:SI (vec_select:QI (reg:V16QI 21 xmm0 [orig:64 x ] [64])
                (parallel [
                        (const_int 4 [0x4])
                    ]))))
/export/build/gnu/gcc/build-x86_64-linux/gcc/include/smmintrin.h:442 1681
{*sse4_1_pextrb}
     (expr_list:REG_DEAD (reg:V16QI 21 xmm0 [orig:64 x ] [64])
        (nil)))

(insn:TI 10 9 18 (set (reg:DI 0 ax [orig:67 D.6819 ] [67])
        (sign_extend:DI (reg:SI 0 ax [orig:68 D.6819 ] [68]))) foo.c:3 126
{extendsidi2_rex64}
     (nil))


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45336

Reply via email to