On Fri, Dec 17, 2021 at 10:33:12PM -0500, David Edelsohn wrote:
> On Thu, Dec 16, 2021 at 9:43 PM HAO CHEN GUI <guih...@linux.ibm.com> wrote:
> > +(define_insn "rs6000_mffscrni"
> > +  [(set (match_operand:DF 0 "gpc_reg_operand" "=d")
> > +       (unspec_volatile:DF [(match_operand:DF 1 "u2bit_cint_operand" "n")]
> 
> Why is this input operand 1 DFmode?  This is a 2 bit integer value.
> This pattern is called from rs6000_set_fpscr_rn with an SImode
> operand, and it seems that this should be SImode as well.

Yup.  This predicate will only allow const_int, and matching a const_int
ignores the mode, so most (or all?) things will work whatever mode you
give here.  But only MODE_INT modes make sense (and possibly VOIDmode,
but VOIDmode in machine descriptions means anything is allowed, also not
what you want here).


Segher

Reply via email to