bool
vector_targets_convertible_p (const_tree t1, const_tree t2)
{
- if (TREE_CODE (t1) == VECTOR_TYPE && TREE_CODE (t2) == VECTOR_TYPE
+ if (VECTOR_TYPE_P (t1) && VECTOR_TYPE_P (t2)
&& (TYPE_VECTOR_OPAQUE (t1) || TYPE_VECTOR_OPAQUE (t2))
&& tree_int_cst_equal (TYPE_SIZE (t1), TYPE_SIZE (t2)))
return true;
|| mask == error_mark_node)
return error_mark_node;
- if (TREE_CODE (TREE_TYPE (mask)) != VECTOR_TYPE
- || TREE_CODE (TREE_TYPE (TREE_TYPE (mask))) != INTEGER_TYPE)
+ if (!VECTOR_INTEGER_TYPE_P (TREE_TYPE (mask)))
{
if (complain)
error_at (loc, "__builtin_shuffle last argument must "
return error_mark_node;
}
- if (TREE_CODE (TREE_TYPE (v0)) != VECTOR_TYPE
- || TREE_CODE (TREE_TYPE (v1)) != VECTOR_TYPE)
+ if (!VECTOR_TYPE_P (TREE_TYPE (v0))
+ || !VECTOR_TYPE_P (TREE_TYPE (v1)))
{
if (complain)
error_at (loc, "__builtin_shuffle arguments must be vectors");
tree *vecp, tree index)
{
bool ret = false;
- if (TREE_CODE (TREE_TYPE (*vecp)) == VECTOR_TYPE)
+ if (VECTOR_TYPE_P (TREE_TYPE (*vecp)))
{
tree type = TREE_TYPE (*vecp);
tree type1;
bool integer_only_op = false;
enum stv_conv ret = stv_firstarg;
- gcc_assert (TREE_CODE (type0) == VECTOR_TYPE
- || TREE_CODE (type1) == VECTOR_TYPE);
+ gcc_assert (VECTOR_TYPE_P (type0) || VECTOR_TYPE_P (type1));
switch (code)
{
/* Most GENERIC binary expressions require homogeneous arguments.
case LT_EXPR:
case GT_EXPR:
/* What about UNLT_EXPR? */
- if (TREE_CODE (type0) == VECTOR_TYPE)
+ if (VECTOR_TYPE_P (type0))
{
ret = stv_secondarg;
std::swap (type0, type1);
if (TREE_CODE (TREE_TYPE (array)) != ARRAY_TYPE
&& TREE_CODE (TREE_TYPE (array)) != POINTER_TYPE
/* Allow vector[index] but not index[vector]. */
- && TREE_CODE (TREE_TYPE (array)) != VECTOR_TYPE)
+ && !VECTOR_TYPE_P (TREE_TYPE (array)))
{
if (TREE_CODE (TREE_TYPE (index)) != ARRAY_TYPE
&& TREE_CODE (TREE_TYPE (index)) != POINTER_TYPE)
vector constructor is not constant (e.g. {1,2,3,foo()}) then punt
below and handle as a constructor. */
if (code == VECTOR_TYPE
- && TREE_CODE (TREE_TYPE (inside_init)) == VECTOR_TYPE
+ && VECTOR_TYPE_P (TREE_TYPE (inside_init))
&& vector_types_convertible_p (TREE_TYPE (inside_init), type, true)
&& TREE_CONSTANT (inside_init))
{
if (type == 0)
type = TREE_TYPE (constructor_decl);
- if (TREE_CODE (type) == VECTOR_TYPE
+ if (VECTOR_TYPE_P (type)
&& TYPE_VECTOR_OPAQUE (type))
error ("opaque vector types cannot be initialized");
constructor_unfilled_index = constructor_index;
}
- else if (TREE_CODE (constructor_type) == VECTOR_TYPE)
+ else if (VECTOR_TYPE_P (constructor_type))
{
/* Vectors are like simple fixed-size arrays. */
constructor_max_index =
constructor_unfilled_fields = constructor_fields;
constructor_bit_index = bitsize_zero_node;
}
- else if (TREE_CODE (constructor_type) == VECTOR_TYPE)
+ else if (VECTOR_TYPE_P (constructor_type))
{
/* Vectors are like simple fixed-size arrays. */
constructor_max_index =
else if (TREE_CODE (constructor_type) != RECORD_TYPE
&& TREE_CODE (constructor_type) != UNION_TYPE
&& TREE_CODE (constructor_type) != ARRAY_TYPE
- && TREE_CODE (constructor_type) != VECTOR_TYPE)
+ && !VECTOR_TYPE_P (constructor_type))
{
/* A nonincremental scalar initializer--just return
the element, after verifying there is just one. */
pop_init_level (loc, 1, braced_init_obstack),
true, braced_init_obstack);
else if ((TREE_CODE (constructor_type) == ARRAY_TYPE
- || TREE_CODE (constructor_type) == VECTOR_TYPE)
+ || VECTOR_TYPE_P (constructor_type))
&& constructor_max_index
&& tree_int_cst_lt (constructor_max_index,
constructor_index))
constructor_unfilled_index. */
constructor_unfilled_index = constructor_index;
}
- else if (TREE_CODE (constructor_type) == VECTOR_TYPE)
+ else if (VECTOR_TYPE_P (constructor_type))
{
tree elttype = TYPE_MAIN_VARIANT (TREE_TYPE (constructor_type));
/* Do not apply default conversion in mixed vector/scalar expression. */
if (convert_p
- && !((TREE_CODE (TREE_TYPE (op0)) == VECTOR_TYPE)
- != (TREE_CODE (TREE_TYPE (op1)) == VECTOR_TYPE)))
+ && VECTOR_TYPE_P (TREE_TYPE (op0)) == VECTOR_TYPE_P (TREE_TYPE (op1)))
{
op0 = default_conversion (op0);
op1 = default_conversion (op1);