https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69810
David Edelsohn <dje at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |segher at gcc dot gnu.org --- Comment #2 from David Edelsohn <dje at gcc dot gnu.org> --- So the rs6000.md extendqihi2_dot splitter isn't expecting this weird insn (insn 34 32 35 5 (parallel [ (set (reg:CC 75 7 [179]) (compare:CC (sign_extend:HI (reg:QI 9 9 [177])) (const_int 0 [0]))) (clobber (reg:HI 7 7)) ]) anton.c:19 32 {*extendqihi2_dot} (nil)) It isn't able to use cr0, so it tries to split it (define_insn_and_split "*extendqi<mode>2_dot" [(set (match_operand:CC 2 "cc_reg_operand" "=x,?y") (compare:CC (sign_extend:EXTQI (match_operand:QI 1 "gpc_reg_operand" "r, r")) (const_int 0))) (clobber (match_scratch:EXTQI 0 "=r,r"))] "rs6000_gen_cell_microcode" "@ extsb. %0,%1 #" "&& reload_completed && cc_reg_not_cr0_operand (operands[2], CCmode)" [(set (match_dup 0) (sign_extend:EXTQI (match_dup 1))) (set (match_dup 2) (compare:CC (match_dup 0) (const_int 0)))] "" [(set_attr "type" "exts") (set_attr "dot" "yes") (set_attr "length" "4,8")]) where (define_mode_iterator EXTQI [HI SI (DI "TARGET_POWERPC64")]) but PPC doesn't have a (compare:CC (HI) (...)) instruction. The splitter has to extend to at least SImode. Is the EXTQI iterator is defined correctly?