https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86882
Uroš Bizjak <ubizjak at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2018-08-08 CC| |segher at gcc dot gnu.org Target Milestone|--- |9.0 Ever confirmed|0 |1 --- Comment #1 from Uroš Bizjak <ubizjak at gmail dot com> --- Confirmed, combine creates invalid RTX: Trying 11, 13 -> 14: 11: {r95:HI=r92:QI#0&0xffffffffffffff00;clobber flags:CC;} REG_UNUSED flags:CC REG_DEAD r92:QI 13: {r97:HI=r95:HI^0x101;clobber flags:CC;} REG_UNUSED flags:CC REG_DEAD r95:HI 14: r92:QI=r97:HI#0 Failed to match this instruction: (parallel [ (set (clobber:QI (const_int 0 [0])) (const_int 1 [0x1])) (set (reg:HI 97) (xor:HI (and:HI (subreg:HI (reg:QI 92 [ <retval> ]) 0) (const_int -256 [0xffffffffffffff00])) (const_int 257 [0x101]))) ]) Failed to match this instruction: (parallel [ (set (clobber:QI (const_int 0 [0])) (const_int 1 [0x1])) (set (reg:HI 97) (xor:HI (and:HI (subreg:HI (reg:QI 92 [ <retval> ]) 0) (const_int -256 [0xffffffffffffff00])) (const_int 257 [0x101]))) ]) This part: (set (clobber:QI (const_int 0 [0])) (const_int 1 [0x1])) is invalid and triggers assert in reg_overlap_mentioned_p.