tree ones = build_all_ones_cst (vec_cmp_type);
}
(if (expand_vec_cmp_expr_p (vec_cmp_type, vec_truth_type, LT_EXPR)
- && expand_vec_cond_expr_p (vec_cmp_type, vec_truth_type, LT_EXPR))
+ && expand_vec_cond_expr_p (vec_cmp_type, vec_truth_type))
(view_convert:type (vec_cond (lt:vec_truth_type
(view_convert:vec_cmp_type @0)
{ zeros; })
(if (VECTOR_TYPE_P (type)
&& (TREE_CODE_CLASS (op) != tcc_comparison
|| types_match (type, TREE_TYPE (@1))
- || expand_vec_cond_expr_p (type, TREE_TYPE (@0), ERROR_MARK)
+ || expand_vec_cond_expr_p (type, TREE_TYPE (@0))
|| (optimize_vectors_before_lowering_p ()
/* The following is optimistic on the side of non-support, we are
missing the legacy vcond{,u,eq} cases. Do this only when
lowering will be able to fixup.. */
- && !expand_vec_cond_expr_p (TREE_TYPE (@1),
- TREE_TYPE (@0), ERROR_MARK))))
+ && !expand_vec_cond_expr_p (TREE_TYPE (@1), TREE_TYPE (@0)))))
(vec_cond @0 (op! @1 @3) (op! @2 @4))))
/* (c ? a : b) op d --> c ? (a op d) : (b op d) */
(if (VECTOR_TYPE_P (type)
&& (TREE_CODE_CLASS (op) != tcc_comparison
|| types_match (type, TREE_TYPE (@1))
- || expand_vec_cond_expr_p (type, TREE_TYPE (@0), ERROR_MARK)
+ || expand_vec_cond_expr_p (type, TREE_TYPE (@0))
|| (optimize_vectors_before_lowering_p ()
- && !expand_vec_cond_expr_p (TREE_TYPE (@1),
- TREE_TYPE (@0), ERROR_MARK))))
+ && !expand_vec_cond_expr_p (TREE_TYPE (@1), TREE_TYPE (@0)))))
(vec_cond @0 (op! @1 @3) (op! @2 @3))))
(simplify
(op @3 (vec_cond:s @0 @1 @2))
(if (VECTOR_TYPE_P (type)
&& (TREE_CODE_CLASS (op) != tcc_comparison
|| types_match (type, TREE_TYPE (@1))
- || expand_vec_cond_expr_p (type, TREE_TYPE (@0), ERROR_MARK)
+ || expand_vec_cond_expr_p (type, TREE_TYPE (@0))
|| (optimize_vectors_before_lowering_p ()
- && !expand_vec_cond_expr_p (TREE_TYPE (@1),
- TREE_TYPE (@0), ERROR_MARK))))
+ && !expand_vec_cond_expr_p (TREE_TYPE (@1), TREE_TYPE (@0)))))
(vec_cond @0 (op! @3 @1) (op! @3 @2)))))
#if GIMPLE
bool supportable_convert_operation (enum tree_code, tree, tree,
enum tree_code *);
bool expand_vec_cmp_expr_p (tree, tree, enum tree_code);
-bool expand_vec_cond_expr_p (tree, tree, enum tree_code);
+bool expand_vec_cond_expr_p (tree, tree, enum tree_code = ERROR_MARK);
void init_tree_optimization_optabs (tree);
bool target_supports_op_p (tree, enum tree_code,
enum optab_subtype = optab_default);
return false;
}
if (!expand_vec_cond_expr_p (clone_arg_vectype,
- arginfo[i].vectype, ERROR_MARK))
+ arginfo[i].vectype))
{
if (dump_enabled_p ())
dump_printf_loc (MSG_MISSED_OPTIMIZATION,
|| !initializer_zerop (init))
{
tree masktype = truth_type_for (vectype);
- if (!expand_vec_cond_expr_p (vectype, masktype, VECTOR_CST))
+ if (!expand_vec_cond_expr_p (vectype, masktype))
return -1;
whole_vector_shift_kind = scan_store_kind_lshift_cond;
}
&& (masked
|| (!expand_vec_cmp_expr_p (comp_vectype, vec_cmp_type,
cond_code)
- || !expand_vec_cond_expr_p (vectype, vec_cmp_type,
- ERROR_MARK))))
+ || !expand_vec_cond_expr_p (vectype, vec_cmp_type))))
return false;
if (slp_node