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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P3                          |P1
           Keywords|                            |ra
                 CC|                            |segher at gcc dot gnu.org

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
#10 0x00000000011550f2 in process_insn_for_elimination (insn=0x7ffff6577680, 
    final_p=true, first_p=false) at ../../src/trunk/gcc/lra-eliminations.c:1333
1333      eliminate_regs_in_insn (insn, final_p, first_p, 0);
(gdb) p debug_rtx (insn)
(debug_insn 18 4 19 2 (var_location:HI u16_1 (subreg:HI (ashiftrt:SI
(sign_extend:SI (subreg:HI (reg/v:SI 100 [ u16_1 ]) 0))
            (zero_extend:SI (subreg:QI (ior:TI (and:TI (mem/c:TI (reg/f:DI 65
ap) [1 u128_1+0 S16 A128])
                            (const_int -16711681 [0xffffffffff00ffff]))
                        (ashift:TI (zero_extend:TI (clobber:TI (const_int 0
[0])))
                            (const_int 16 [0x10]))) 0))) 0)) "t.c":4:9 -1
     (nil))

and it chokes on the (zero_extend:TI (clobber ...)) which combine introduces.
Before combine it was

(debug_insn 18 17 19 2 (var_location:HI u16_1 (subreg:HI (ashiftrt:SI
(sign_extend:SI (subreg:HI (reg/v:SI 100 [ u16_1 ]) 0))
            (zero_extend:SI (subreg:QI (reg/v:TI 103 [ u128_1 ]) 0))) 0))
"t.c":4:9 -1
     (nil))

not sure what goes wrong but I suppose if sth doesn't work out combine should
reset the debug_insn rather than leaving garbage.  Possibly latent of course.

Reply via email to