Hi all, This refactor allows widening patterns (such as widen_plus/widen_minus) to be represented as either internal_fns or tree_codes. The widening patterns were originally added as tree codes with the expectation that they would be refactored later.
[vect-patterns] Refactor as internal_fn's Refactor vect-patterns to allow patterns to be internal_fns starting with widening_plus/minus patterns. gcc/ChangeLog: * gimple-match.h (class code_helper): Move code_helper class to more visible header. * internal-fn.h (internal_fn_name): Add internal_fn range check. * optabs-tree.h (supportable_convert_operation): Change function prototypes to use code_helper. * tree-vect-patterns.c (vect_recog_widen_op_pattern): Refactor to use code_helper. * tree-vect-stmts.c (vect_gen_widened_results_half): Refactor to use code_helper, build internal_fns. (vect_create_vectorized_promotion_stmts): Refactor to use code_helper. (vectorizable_conversion): Refactor to use code_helper. (supportable_widening_operation): Refactor to use code_helper. (supportable_narrowing_operation): Refactor to use code_helper. * tree-vectorizer.h (supportable_widening_operation): Refactor to use code_helper. (supportable_narrowing_operation): Refactor to use code_helper. * tree.h (class code_helper): Refactor to use code_helper.
rb14487.patch
Description: rb14487.patch