https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120050

--- Comment #5 from Xi Ruoyao <xry111 at gcc dot gnu.org> ---
Before ext-dce:

(insn 420 419 421 43 (set (reg:SI 423 [ _144 ])
        (truncate:SI (reg:DI 304 [ ivtmp.55 ]))) 203 {truncdisi2}
     (nil))
(insn 421 420 422 43 (set (reg:DI 523 [ i ])
        (sign_extend:DI (reg:SI 423 [ _144 ]))) 238 {extendsidi2}
"../../gcc/gcc/genhooks.cc":198:8 323 {*movsi_internal}
(insn 439 436 440 45 (set (reg:SI 430 [ shp_91->pos ])
        (mem:SI (plus:DI (reg/v/f:DI 240 [ shp ])
                (const_int 8 [0x8])) [5 shp_91->pos+0 S4 A64]))
"../../gcc/gcc/genhooks.cc":198:8 323 {*movsi_internal}                         
     (nil))                                                                     
(insn 440 439 441 45 (set (reg:SI 431 [ i ])
        (subreg/u:SI (reg:DI 523 [ i ]) 0)) "../../gcc/gcc/genhooks.cc":198:8
323 {*movsi_internal}                                  
     (nil))
(jump_insn 441 440 442 45 (set (pc)
    (if_then_else (eq (reg:SI 430 [ shp_91->pos ])
                (reg:SI 431 [ i ])) 
            (label_ref 448)
            (pc))) "../../gcc/gcc/genhooks.cc":198:8 487 {*branch_equalitysi}
    (expr_list:REG_DEAD (reg:SI 431 [ i ])
        (expr_list:REG_DEAD (reg:SI 430 [ shp_91->pos ])
            (int_list:REG_BR_PROB 548896828 (nil))))
 -> 448)      

And ext-dce rewrites the sign_extend in insn 421 as subreg.  I don't even know
if this is correct before ext-dce...

Reply via email to