On 11/19/20 12:58 PM, acsaw...@linux.ibm.com wrote: > +(define_expand "mma_disassemble_pair" > + [(match_operand:V16QI 0 "mma_disassemble_output_operand") > + (match_operand:OO 1 "input_operand") > + (match_operand 2 "const_0_to_1_operand")]
Maybe we should use vsx_register_operand instead of input_operand here? > +(define_insn_and_split "*mma_disassemble_pair" > + [(set (match_operand:V16QI 0 "mma_disassemble_output_operand" "=mwa") > + (unspec:V16QI [(match_operand:OO 1 "input_operand" "wa") > + (match_operand 2 "const_0_to_1_operand")] > + UNSPEC_MMA_EXTRACT))] Likewise? > + "TARGET_MMA > + && fpr_reg_operand (operands[1], OOmode)" pairs can be assigned to any vsx register, so I think we want vsx_register_operand here too. > +(define_expand "mma_disassemble_acc" > + [(match_operand:V16QI 0 "mma_disassemble_output_operand") > + (match_operand:XO 1 "input_operand") > + (match_operand 2 "const_0_to_3_operand")] Likewise as above, do we want to use the fpr_reg_operand predicate here instead of input_operand? > +(define_insn_and_split "*mma_disassemble_acc" > + [(set (match_operand:V16QI 0 "mma_disassemble_output_operand" "=mwa") > + (unspec:V16QI [(match_operand:XO 1 "input_operand" "d") > + (match_operand 2 "const_0_to_3_operand")] Likewise? Peter