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

--- Comment #11 from Hongtao.liu <crazylht at gmail dot com> ---
(In reply to Hongtao.liu from comment #10)
> (In reply to Hongtao.liu from comment #9)
> > > 
> > > (define_insn "movsf_hardfloat"
> > >   [(set (match_operand:SF 0 "nonimmediate_operand"
> > >    "=!r,       f,         v,          wa,        m,         wY,
> > >     Z,         m,         wa,         !r,        f,         wa,
> > >     !r,        *c*l,      !r,         *h")
> > >   (match_operand:SF 1 "input_operand"
> > >    "m,         m,         wY,         Z,         f,         v,
> > >     wa,        r,         j,          j,         f,         wa,
> > >     r,         r,         *h,         0"))]
> > >   "(register_operand (operands[0], SFmode)
> > >    || register_operand (operands[1], SFmode))
> > >    && TARGET_HARD_FLOAT
> > >    && (TARGET_ALLOW_SF_SUBREG
> > >        || valid_sf_si_move (operands[0], operands[1], SFmode))"
> > > 
> > > Oh, The pattern disllow sf subreg.
> > 
> > Here TARGET_ALLOW_SF_SUBREG || valid_sf_si_move (operands[0], operands[1],
> > SFmode) is false, others are true which means input_operand accept
> > (subreg:SF (reg:DI 4))
> 
> And w/ -mpower10 (subreg:SF (reg:DI 4) 0) can be handled by reload to
> 
typo should be (subreg:SF (reg:DI) 4)

Reply via email to