Hi! On Mon, Aug 12, 2024 at 09:55:07AM +0100, Richard Sandiford wrote: > "Kewen.Lin" <li...@linux.ibm.com> writes: > > (define_insn "*vsx_le_perm_store_<mode>" > > [(set (match_operand:VSX_LE_128 0 "memory_operand" "=Z,Q") > > (match_operand:VSX_LE_128 1 "vsx_register_operand" "+wa,r"))] > > Is it well-formed to have "+" on an operand that is only semantically > an input? df and most passes would consider it to be a pure input > and so would disregard any write that is intended to take place.
It is well-formed, but it doesn't make sense, indeed :-) Named patterns have requirements on their arguments, but everything else is whatever the target wants :-) Hopefully *no* passes will consider this a pure input, we have that "+" after all! It would be better if it wasn't there, sure. Segher