diff options
Diffstat (limited to 'gcc/tree-vect-data-refs.c')
-rw-r--r-- | gcc/tree-vect-data-refs.c | 28 |
1 files changed, 8 insertions, 20 deletions
diff --git a/gcc/tree-vect-data-refs.c b/gcc/tree-vect-data-refs.c index ad59bf3..6a02986 100644 --- a/gcc/tree-vect-data-refs.c +++ b/gcc/tree-vect-data-refs.c @@ -4129,7 +4129,7 @@ vect_permute_store_chain (VEC(tree,heap) *dr_chain, gimple_stmt_iterator *gsi, VEC(tree,heap) **result_chain) { - tree perm_dest, vect1, vect2, high, low; + tree vect1, vect2, high, low; gimple perm_stmt; tree vectype = STMT_VINFO_VECTYPE (vinfo_for_stmt (stmt)); tree perm_mask_low, perm_mask_high; @@ -4161,8 +4161,7 @@ vect_permute_store_chain (VEC(tree,heap) *dr_chain, /* Create interleaving stmt: high = VEC_PERM_EXPR <vect1, vect2, {0, nelt, 1, nelt+1, ...}> */ - perm_dest = create_tmp_reg (vectype, "vect_inter_high"); - high = make_ssa_name (perm_dest, NULL); + high = make_temp_ssa_name (vectype, NULL, "vect_inter_high"); perm_stmt = gimple_build_assign_with_ops3 (VEC_PERM_EXPR, high, vect1, vect2, perm_mask_high); @@ -4172,8 +4171,7 @@ vect_permute_store_chain (VEC(tree,heap) *dr_chain, /* Create interleaving stmt: low = VEC_PERM_EXPR <vect1, vect2, {nelt/2, nelt*3/2, nelt/2+1, nelt*3/2+1, ...}> */ - perm_dest = create_tmp_reg (vectype, "vect_inter_low"); - low = make_ssa_name (perm_dest, NULL); + low = make_temp_ssa_name (vectype, NULL, "vect_inter_low"); perm_stmt = gimple_build_assign_with_ops3 (VEC_PERM_EXPR, low, vect1, vect2, perm_mask_low); @@ -4584,7 +4582,7 @@ vect_permute_load_chain (VEC(tree,heap) *dr_chain, gimple_stmt_iterator *gsi, VEC(tree,heap) **result_chain) { - tree perm_dest, data_ref, first_vect, second_vect; + tree data_ref, first_vect, second_vect; tree perm_mask_even, perm_mask_odd; gimple perm_stmt; tree vectype = STMT_VINFO_VECTYPE (vinfo_for_stmt (stmt)); @@ -4612,29 +4610,19 @@ vect_permute_load_chain (VEC(tree,heap) *dr_chain, second_vect = VEC_index (tree, dr_chain, j+1); /* data_ref = permute_even (first_data_ref, second_data_ref); */ - perm_dest = create_tmp_reg (vectype, "vect_perm_even"); - - perm_stmt = gimple_build_assign_with_ops3 (VEC_PERM_EXPR, perm_dest, + data_ref = make_temp_ssa_name (vectype, NULL, "vect_perm_even"); + perm_stmt = gimple_build_assign_with_ops3 (VEC_PERM_EXPR, data_ref, first_vect, second_vect, perm_mask_even); - - data_ref = make_ssa_name (perm_dest, perm_stmt); - gimple_assign_set_lhs (perm_stmt, data_ref); vect_finish_stmt_generation (stmt, perm_stmt, gsi); - VEC_replace (tree, *result_chain, j/2, data_ref); /* data_ref = permute_odd (first_data_ref, second_data_ref); */ - perm_dest = create_tmp_reg (vectype, "vect_perm_odd"); - - perm_stmt = gimple_build_assign_with_ops3 (VEC_PERM_EXPR, perm_dest, + data_ref = make_temp_ssa_name (vectype, NULL, "vect_perm_odd"); + perm_stmt = gimple_build_assign_with_ops3 (VEC_PERM_EXPR, data_ref, first_vect, second_vect, perm_mask_odd); - - data_ref = make_ssa_name (perm_dest, perm_stmt); - gimple_assign_set_lhs (perm_stmt, data_ref); vect_finish_stmt_generation (stmt, perm_stmt, gsi); - VEC_replace (tree, *result_chain, j/2+length/2, data_ref); } dr_chain = VEC_copy (tree, heap, *result_chain); |