On Tue, Dec 14, 2021 at 09:37:03AM +0000, Joel Hutton via Gcc-patches wrote: > Bootstrapped and regression tested on releases/gcc-11 on aarch64. > > Ok for 11? > > Previous commit broke build as it relied on directly_supported_p which > is not in 11. This reworks to avoid using directly_supported_p. > > gcc/ChangeLog: > > PR bootstrap/103688 > * tree-vect-loop.c (vectorizable_induction): Rework to avoid > directly_supported_p
Missing . after directly_supported_p --- a/gcc/tree-vect-loop.c +++ b/gcc/tree-vect-loop.c @@ -7997,8 +7997,14 @@ vectorizable_induction (loop_vec_info loop_vinfo, tree step_vectype = get_same_sized_vectype (TREE_TYPE (step_expr), vectype); /* Check for backend support of PLUS/MINUS_EXPR. */ - if (!directly_supported_p (PLUS_EXPR, step_vectype) - || !directly_supported_p (MINUS_EXPR, step_vectype)) + direct_optab ot_plus = optab_for_tree_code (tree_code (PLUS_EXPR), + step_vectype, optab_default); + direct_optab ot_minus = optab_for_tree_code (tree_code (MINUS_EXPR), + step_vectype, optab_default); Why tree_code (PLUS_EXPR) instead of just PLUS_EXPR (ditto MINUS_EXPR)? The formatting is off, step_vectype isn't aligned below tree_code. + if (ot_plus == unknown_optab + || ot_minus == unknown_optab + || optab_handler (ot_minus, TYPE_MODE (step_vectype)) == CODE_FOR_nothing + || optab_handler (ot_plus, TYPE_MODE (step_vectype)) == CODE_FOR_nothing) return false; Won't optab_handler just return CODE_FOR_nothing for unknown_optab? Anyway, I think best would be to write it as: if (!target_supports_op_p (step_vectype, PLUS_EXPR, optab_default) || !target_supports_op_p (step_vectype, MINUS_EXPR, optab_default)) return false; Jakub