This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
First step towards supporting vectorization in the presence of types of different sizes in the loop. This patch adds support for the case when the different types are used in independent computations (i.e. there are no type casts and such). Bootstrapped with vectorization enabled on powerpc-linux, tested on the vectorizer testcases, committed to the branch. dorit Changelog: * tree-vect-analyze.c (vect_determine_vectorization_factor): Don't fail in the presence of data-types of different sizes. Record the maximum nunits as the vectorization-factor. (vect_analyze_data_ref_dependence): Don't record datarefs as same_align if they are of different sizes. (vect_update_misalignment_for_peel): Compare misalignments in terms of number of elements rather than number of bytes. (vect_enhance_data_refs_alignment): Add debug printouts. (vect_pattern_recog): Fix debug printout. * tree-vect-transform.c (vect_create_data_ref_ptr): Add new argument - PTR_INCR. (vect_finish_stmt_generation): Set a stmt_info to newly generated stmts. (vect_create_epilog_for_reduction): Remove redundant assert. (vectorizable_target_reduction_pattern): Check if multiple-types support is needed. If so - fail for now. (vectorizable_reduction, vectorizable_assignment): (vectorizable_condition): Likewise. (vectorizable_operation): Support vectorization in the presence of multiple-data-types (i.e. - the vectorization factor is bigger than the number of elements in vectype for this operation). (vectorizable_load, vectorizable_store): Likewise. (vect_gen_niters_for_prolog_loop): element_size is calculated using the data-types. (vect_trsnform_loop): Remove assert. * gcc.dg/vect/vect-1.c: Remove loop (appears in other tests). * gcc.dg/vect/vect-12.c: Now vectorizable. * gcc.dg/vect/vect-109.c: Now vectorizable. Change to unknown loop bound. * gcc.dg/vect/vect-118.c: New. * gcc.dg/vect/vect-119.c: New. * gcc.dg/vect/vect-120.c: New. * gcc.dg/vect/vect-121.c: New. * gcc.dg/vect/vect-reduc-dot-s8s16.c: New. * gcc.dg/vect/vect-96.c: Fix comment. Patch: (See attached file: sept29.multitypes1.txt)
Attachment:
sept29.multitypes1.txt
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |