On Mon, Feb 22, 2016 at 09:15:29AM -0700, Jeff Law wrote: > Yea, as it's currently written, it's a bit vague. I think your suggesting > of saying that VOIDmode should not be used is what we need. I'll leave the > final word-smithing to you.
Here is what I've committed. 2016-02-22 Jakub Jelinek <ja...@redhat.com> PR target/69885 * doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must be specified. --- gcc/doc/md.texi.jj 2016-02-12 00:50:55.000000000 +0100 +++ gcc/doc/md.texi 2016-02-22 17:20:00.910016901 +0100 @@ -5283,7 +5283,9 @@ Arithmetic-shift operand 1 left by a num 2, and store the result in operand 0. Here @var{m} is the mode of operand 0 and operand 1; operand 2's mode is specified by the instruction pattern, and the compiler will convert the operand to that -mode before generating the instruction. The meaning of out-of-range shift +mode before generating the instruction. The shift or rotate expander +or instruction pattern should explicitly specify the mode of the operand 2, +it should never be @code{VOIDmode}. The meaning of out-of-range shift counts can optionally be specified by @code{TARGET_SHIFT_TRUNCATION_MASK}. @xref{TARGET_SHIFT_TRUNCATION_MASK}. Operand 2 is always a scalar type. Jakub