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

--- Comment #8 from chenglulu <chenglulu at loongson dot cn> ---
(In reply to Andrew Pinski from comment #4)
> (In reply to chenglulu from comment #3)
> > This involves the template <optab>di3_fake:
> > (define_insn "<optab>di3_fake"
> >   [(set (match_operand:DI 0 "register_operand" "=r,&r,&r")
> >         (sign_extend:DI
> >           (any_div:SI (match_operand:DI 1 "register_operand" "r,r,0")
> >                       (match_operand:DI 2 "register_operand" "r,r,r"))))]
> 
> That pattern definitely looks broken.
> Divide's operands' mode must match the mode of the divide IIRC.

OK, thanks! So the compilation failure is caused by an error in this template,
right? (Sorry, I don't understand the optimization of this combine)

Reply via email to