------- Additional Comments From pinskia at gcc dot gnu dot org  2004-12-25 
20:57 -------
Take:
char g(char c)
{
return (c & (1 << 3)) != 0;
}

(insn 8 4 30 (set (reg:HI 24 r24 [orig:44 c ] [44])
        (sign_extend:HI (reg:QI 24 r24 [ c ]))) 81 {extendqihi2} (nil)
    (nil))

(insn 30 8 11 (parallel [
            (set (reg:HI 24 r24 [orig:44 c ] [44])
                (lshiftrt:HI (reg:HI 24 r24 [orig:44 c ] [44])
                    (const_int 3 [0x3])))
            (clobber (reg:QI 19 r19))
        ]) 70 {*lshrhi3_const} (nil)
    (expr_list:REG_UNUSED (reg:QI 19 r19)
        (expr_list:REG_UNUSED (reg:QI 25 r25)
            (nil))))

(insn 11 30 12 (set (reg:HI 24 r24 [46])
        (sign_extend:HI (reg:QI 24 r24 [47]))) 81 {extendqihi2} 
(insn_list:REG_DEP_TRUE 10 (nil))
    (nil))
(insn 19 16 25 (parallel [
            (set (reg/i:HI 24 r24 [ <result> ])
                (and:HI (reg:HI 24 r24 [46])
                    (const_int 1 [0x1])))
            (clobber (scratch:QI))
        ]) 47 {andhi3} (insn_list:REG_DEP_TRUE 11 (nil))
    (expr_list:REG_UNUSED (scratch:QI)
        (nil)))


Which looks good if the rtl matches up one to one per instruction but since avr 
is not like that we get a 
werid interaction.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|                            |1
   Last reconfirmed|0000-00-00 00:00:00         |2004-12-25 20:57:17
               date|                            |


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

Reply via email to