gimple *new_stmt;
tree mask = NULL_TREE;
if (LOOP_VINFO_FULLY_MASKED_P (loop_vinfo))
- mask = vect_get_loop_mask (gsi, masks, vec_num, vectype_in, i);
+ mask = vect_get_loop_mask (loop_vinfo, gsi, masks, vec_num, vectype_in, i);
/* Handle MINUS by adding the negative. */
if (reduc_fn != IFN_LAST && code == MINUS_EXPR)
gcc_assert (commutative_binary_op_p (code, op.type));
std::swap (vop[0], vop[1]);
}
- tree mask = vect_get_loop_mask (gsi, masks, vec_num * ncopies,
- vectype_in, i);
+ tree mask = vect_get_loop_mask (loop_vinfo, gsi, masks,
+ vec_num * ncopies, vectype_in, i);
gcall *call = gimple_build_call_internal (cond_fn, 4, mask,
vop[0], vop[1], vop[0]);
new_temp = make_ssa_name (vec_dest, call);
if (masked_loop_p && mask_by_cond_expr)
{
- tree mask = vect_get_loop_mask (gsi, masks, vec_num * ncopies,
- vectype_in, i);
+ tree mask = vect_get_loop_mask (loop_vinfo, gsi, masks,
+ vec_num * ncopies, vectype_in, i);
build_vect_cond_expr (code, vop, mask, gsi);
}
the loop mask for the final iteration. */
gcc_assert (ncopies == 1 && !slp_node);
tree scalar_type = TREE_TYPE (STMT_VINFO_VECTYPE (stmt_info));
- tree mask = vect_get_loop_mask (gsi, &LOOP_VINFO_MASKS (loop_vinfo),
+ tree mask = vect_get_loop_mask (loop_vinfo, gsi,
+ &LOOP_VINFO_MASKS (loop_vinfo),
1, vectype, 0);
tree scalar_res = gimple_build (&stmts, CFN_EXTRACT_LAST, scalar_type,
mask, vec_lhs_phi);
arrangement. */
tree
-vect_get_loop_mask (gimple_stmt_iterator *gsi, vec_loop_masks *masks,
+vect_get_loop_mask (loop_vec_info,
+ gimple_stmt_iterator *gsi, vec_loop_masks *masks,
unsigned int nvectors, tree vectype, unsigned int index)
{
rgroup_controls *rgm = &(*masks)[nvectors - 1];
unsigned int vec_num = vec_oprnds0.length ();
/* Always true for SLP. */
gcc_assert (ncopies == 1);
- vargs[varg++] = vect_get_loop_mask (gsi, masks, vec_num,
+ vargs[varg++] = vect_get_loop_mask (loop_vinfo,
+ gsi, masks, vec_num,
vectype_out, i);
}
size_t k;
unsigned int vec_num = vec_oprnds0.length ();
/* Always true for SLP. */
gcc_assert (ncopies == 1);
- tree mask = vect_get_loop_mask (gsi, masks, vec_num,
+ tree mask = vect_get_loop_mask (loop_vinfo,
+ gsi, masks, vec_num,
vectype_out, i);
vargs[mask_opno] = prepare_vec_mask
(loop_vinfo, TREE_TYPE (mask), mask,
int varg = 0;
if (masked_loop_p && reduc_idx >= 0)
- vargs[varg++] = vect_get_loop_mask (gsi, masks, ncopies,
+ vargs[varg++] = vect_get_loop_mask (loop_vinfo, gsi, masks, ncopies,
vectype_out, j);
for (i = 0; i < nargs; i++)
{
if (mask_opno >= 0 && masked_loop_p)
{
- tree mask = vect_get_loop_mask (gsi, masks, ncopies,
+ tree mask = vect_get_loop_mask (loop_vinfo, gsi, masks, ncopies,
vectype_out, j);
vargs[mask_opno]
= prepare_vec_mask (loop_vinfo, TREE_TYPE (mask), mask,
}
else if (masked_loop_p && mask_out_inactive)
{
- tree mask = vect_get_loop_mask (gsi, masks, vec_num * ncopies,
- vectype, i);
+ tree mask = vect_get_loop_mask (loop_vinfo, gsi, masks,
+ vec_num * ncopies, vectype, i);
auto_vec<tree> vops (5);
vops.quick_push (mask);
vops.quick_push (vop0);
if (loop_vinfo->scalar_cond_masked_set.contains ({ op0,
ncopies}))
{
- mask = vect_get_loop_mask (gsi, masks, vec_num * ncopies,
- vectype, i);
+ mask = vect_get_loop_mask (loop_vinfo, gsi, masks,
+ vec_num * ncopies, vectype, i);
vop0 = prepare_vec_mask (loop_vinfo, TREE_TYPE (mask), mask,
vop0, gsi);
if (loop_vinfo->scalar_cond_masked_set.contains ({ op1,
ncopies }))
{
- mask = vect_get_loop_mask (gsi, masks, vec_num * ncopies,
- vectype, i);
+ mask = vect_get_loop_mask (loop_vinfo, gsi, masks,
+ vec_num * ncopies, vectype, i);
vop1 = prepare_vec_mask (loop_vinfo, TREE_TYPE (mask), mask,
vop1, gsi);
tree final_mask = NULL;
if (loop_masks)
- final_mask = vect_get_loop_mask (gsi, loop_masks, ncopies,
- vectype, j);
+ final_mask = vect_get_loop_mask (loop_vinfo, gsi, loop_masks,
+ ncopies, vectype, j);
if (vec_mask)
final_mask = prepare_vec_mask (loop_vinfo, mask_vectype,
final_mask, vec_mask, gsi);
tree final_mask = NULL_TREE;
if (loop_masks)
- final_mask = vect_get_loop_mask (gsi, loop_masks,
+ final_mask = vect_get_loop_mask (loop_vinfo, gsi, loop_masks,
vec_num * ncopies,
vectype, vec_num * j + i);
if (vec_mask)
tree final_mask = NULL_TREE;
if (loop_masks)
- final_mask = vect_get_loop_mask (gsi, loop_masks, ncopies,
- vectype, j);
+ final_mask = vect_get_loop_mask (loop_vinfo, gsi, loop_masks,
+ ncopies, vectype, j);
if (vec_mask)
final_mask = prepare_vec_mask (loop_vinfo, mask_vectype,
final_mask, vec_mask, gsi);
tree final_mask = NULL_TREE;
if (loop_masks
&& memory_access_type != VMAT_INVARIANT)
- final_mask = vect_get_loop_mask (gsi, loop_masks,
+ final_mask = vect_get_loop_mask (loop_vinfo, gsi, loop_masks,
vec_num * ncopies,
vectype, vec_num * j + i);
if (vec_mask)
if (masks)
{
tree loop_mask
- = vect_get_loop_mask (gsi, masks, vec_num * ncopies,
+ = vect_get_loop_mask (loop_vinfo, gsi, masks, vec_num * ncopies,
vectype, i);
tree tmp2 = make_ssa_name (vec_cmp_type);
gassign *g