On 11/17/20 5:01 PM, Segher Boessenkool wrote:
> On Tue, Nov 17, 2020 at 12:41:58PM -0600, Peter Bergner wrote:
>>> +;; Return 1 if this operand is valid for an MMA disassemble insn.
>>> +(define_predicate "mma_disassemble_output_operand"
>>> +  (match_code "reg,subreg,mem")
>>> +{
>>> +  if (REG_P (op) && !vsx_register_operand (op, mode))
>>> +    return false;
>>> +  return true;
>>> +})
>>
>> Do we really want to accept subregs here?  If so, why are they not also 
>> required
>> to be vsx_register_operand()?
> 
> That *does* allow subregs!

We never call vsx_register_operand() with a subreg, because the REG_P() guards 
it.
That means we drop down into the "return true;" for all subregs and mems,
regardless of whether the subreg is of a vsx register or not.

So my question is, if we don't allow a reg of a non-vsx register, why should
we allow subregs of non-vsx registers?

Peter

Reply via email to