------- Comment #2 from pinskia at gcc dot gnu dot org 2006-08-26 04:19 ------- ;; Register 120 in 0. ;; Register 121 in 3. ;; Register 122 in 3. (insn:HI 6 16 10 2 (set (reg/v:DI 120 [ a ]) (reg:DI 3 3 [ a ])) 331 {*movdi_internal64} (nil) (expr_list:REG_DEAD (reg:DI 3 3 [ a ]) (expr_list:REG_EQUIV (mem/c/i:DI (plus:DI (reg/f:DI 67 ap) (const_int 48 [0x30])) [2 a+0 S4 A64]) (nil))))
(insn:HI 10 6 11 2 (set (reg:SI 122) (ashift:SI (subreg/s:SI (reg/v:DI 120 [ a ]) 4) (const_int 1 [0x1]))) 172 {ashlsi3_no_power} (nil) (nil)) (insn:HI 11 10 19 2 (set (reg:SI 121) (plus:SI (reg:SI 122) (subreg/s:SI (reg/v:DI 120 [ a ]) 4))) 79 {*addsi3_internal1} (nil) (expr_list:REG_DEAD (reg:SI 122) (expr_list:REG_DEAD (reg/v:DI 120 [ a ]) (nil)))) (insn:HI 19 11 25 2 (set (reg/i:DI 3 3 [ <result> ]) (sign_extend:DI (reg:SI 121))) 27 {*rs6000.md:371} (nil) (expr_list:REG_DEAD (reg:SI 121) (nil))) (insn:HI 25 19 30 2 (use (reg/i:DI 3 3 [ <result> ])) -1 (nil) (nil)) if local alloc put r120 into r3 and 121 in r0, this would have worked. -- pinskia at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Severity|normal |enhancement Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Keywords| |missed-optimization, ra Last reconfirmed|0000-00-00 00:00:00 |2006-08-26 04:19:35 date| | Summary|missed-rtl-optimization |local alloc causing an extra | |move http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25848