diff --git a/specs/language/expressions.tex b/specs/language/expressions.tex index f632d773..3161b2c1 100644 --- a/specs/language/expressions.tex +++ b/specs/language/expressions.tex @@ -27,14 +27,17 @@ \begin{itemize} \item If either operand is of scoped enumeration type no conversion is performed, and the expression is ill-formed if the types do not match. - \item If either operand is a \texttt{vector}, vector extension is - performed with the following rules: + \item If either operand is a \texttt{vector}, vector truncation or scalar + extension is performed with the following rules: \begin{itemize} - \item If both vectors are of the same length, no extension is required. + \item If both vectors are of the same length, no dimension conversion is + required. \item If one operand is a vector and the other operand is a scalar, the - scalar is extended to a vector via a Splat conversion (\ref{Conv.vsplat}). + scalar is extended to a vector via a Splat conversion (\ref{Conv.vsplat}) to + match the length of the vector. \item Otherwise, if both operands are vectors of different lengths, the - expression is ill-formed. + vector of longer length is truncated to match the length of the shorter + vector (\ref{Conv.vtrunc}). \end{itemize} \item If either operand is of type \texttt{double} or \texttt{vector}, the other operator shall be converted to match.