VEC_LSHIFT_EXPR
VEC_RSHIFT_EXPR
VEC_WIDEN_MULT_HI_EXPR
VEC_WIDEN_MULT_LO_EXPR
N
) of the same integral type.
The result is a vector that contains half as many elements, of an integral type
whose size is twice as wide. In the case of VEC_WIDEN_MULT_HI_EXPR
the
high N/2
elements of the two vector are multiplied to produce the
vector of N/2
products. In the case of VEC_WIDEN_MULT_LO_EXPR
the
low N/2
elements of the two vector are multiplied to produce the
vector of N/2
products.
VEC_UNPACK_HI_EXPR
VEC_UNPACK_LO_EXPR
N
elements
of the same integral or floating point type. The result is a vector
that contains half as many elements, of an integral or floating point type
whose size is twice as wide. In the case of VEC_UNPACK_HI_EXPR
the
high N/2
elements of the vector are extracted and widened (promoted).
In the case of VEC_UNPACK_LO_EXPR
the low N/2
elements of the
vector are extracted and widened (promoted).
VEC_UNPACK_FLOAT_HI_EXPR
VEC_UNPACK_FLOAT_LO_EXPR
N
elements of the same
integral type. The result is a vector that contains half as many elements
of a floating point type whose size is twice as wide. In the case of
VEC_UNPACK_HI_EXPR
the high N/2
elements of the vector are
extracted, converted and widened. In the case of VEC_UNPACK_LO_EXPR
the low N/2
elements of the vector are extracted, converted and widened.
VEC_PACK_TRUNC_EXPR
VEC_PACK_SAT_EXPR
VEC_PACK_FIX_TRUNC_EXPR
VEC_COND_EXPR
?:
expressions. The three operands must be
vectors of the same size and number of elements. The second and third
operands must have the same type as the entire expression. The first
operand is of signed integral vector type. If an element of the first
operand evaluates to a zero value, the corresponding element of the
result is taken from the third operand. If it evaluates to a minus one
value, it is taken from the second operand. It should never evaluate to
any other value currently, but optimizations should not rely on that
property. In contrast with a COND_EXPR
, all operands are always
evaluated.
SAD_EXPR