diff options
Diffstat (limited to 'gcc/tree-vect-slp.c')
-rw-r--r-- | gcc/tree-vect-slp.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/gcc/tree-vect-slp.c b/gcc/tree-vect-slp.c index 5f753a26935..6b377a8842a 100644 --- a/gcc/tree-vect-slp.c +++ b/gcc/tree-vect-slp.c @@ -421,8 +421,7 @@ vect_build_slp_tree (loop_vec_info loop_vinfo, bb_vec_info bb_vinfo, optab_vector); if (!optab - || (optab->handlers[(int) vec_mode].insn_code - == CODE_FOR_nothing)) + || optab_handler (optab, vec_mode) == CODE_FOR_nothing) { /* No vector/vector shift, try for a vector/scalar shift. */ optab = optab_for_tree_code (rhs_code, vectype, @@ -434,7 +433,7 @@ vect_build_slp_tree (loop_vec_info loop_vinfo, bb_vec_info bb_vinfo, fprintf (vect_dump, "Build SLP failed: no optab."); return false; } - icode = (int) optab->handlers[(int) vec_mode].insn_code; + icode = (int) optab_handler (optab, vec_mode); if (icode == CODE_FOR_nothing) { if (vect_print_dump_info (REPORT_SLP)) @@ -560,7 +559,7 @@ vect_build_slp_tree (loop_vec_info loop_vinfo, bb_vec_info bb_vinfo, if (first_load == stmt) { first_dr = STMT_VINFO_DATA_REF (vinfo_for_stmt (stmt)); - if (vect_supportable_dr_alignment (first_dr) + if (vect_supportable_dr_alignment (first_dr, false) == dr_unaligned_unsupported) { if (vect_print_dump_info (REPORT_SLP)) @@ -646,7 +645,7 @@ vect_build_slp_tree (loop_vec_info loop_vinfo, bb_vec_info bb_vinfo, { VEC_safe_push (slp_tree, heap, *loads, *node); *inside_cost - += targetm.vectorize.builtin_vectorization_cost (vec_perm) + += targetm.vectorize.builtin_vectorization_cost (vec_perm, NULL, 0) * group_size; } |