This is the mail archive of the gcc-cvs@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]

r107402 - in /branches/autovect-branch/gcc: Cha...


Author: irar
Date: Wed Nov 23 08:00:48 2005
New Revision: 107402

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=107402
Log:
        * tree-pretty-print.c (dump_generic_node): Handle print of new tree
        codes.
        * optabs.c (optab_for_tree_code, init_optabs): Handle new optabs.
        * optabs.h (optab_index): Add new.
        (vec_extract_even_optab, vec_extract_odd_optab,
        vec_interleave_high_optab, vec_interleave_low_optab): New optabs.
        * genopinit.c (vec_extract_even_optab, vec_extract_odd_optab,
        vec_interleave_high_optab, vec_interleave_low_optab): Initialize new
        optabs.
        * target.h (builtin_extract_even, builtin_extract_odd): New hooks.
        * expr.c (expand_expr_real_1): Add implementation for new tree codes.
        * tree-vectorizer.c (new_stmt_vec_info): Initialize new fields.
        * tree-vectorizer.h (stmt_vec_info): Add new fields for interleaving
        along with macros for their access.
        * tree-data-ref.c (object_analysis): Handle COMPONENT_REFs.
        (create_data_ref): Handle offsets with casts. Always analyze offset.
        Handle COMPONENT_REFs.
        (find_data_references_in_loop): Handle COMPONENT_REFs.
        * tree-data-ref.h (first_location_in_loop): Update comment.
        * tree-vect-analyze.c (vect_analyze_operations): Add parameter to
        vectorizable_store.
        (vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
        vect_equal_offsets, vect_check_interleaving): New functions.
        (vect_analyze_data_ref_dependence): Check for interleaving.
        (vect_check_dependences): New function.
        (vect_analyze_data_ref_dependences): Call vect_check_dependences.
        (vect_update_misalignment_for_peel): Update for interleaving.
        (vect_verify_datarefs_alignment): Check only first data-ref for
        interleaving.
        (vect_enhance_data_refs_alignment): Update for interleaving. Check only
        first data-ref for interleaving.
        (vect_analyze_data_ref_access): Check interleaving, update interleaving
        data.
        (vect_analyze_data_refs): Call compute_data_dependences_for_loop with
        different parameters.
        * tree.def (VEC_EXTRACT_EVEN_EXPR, VEC_EXTRACT_ODD_EXPR,
        VEC_INTERLEAVE_HIGH_EXPR, VEC_INTERLEAVE_LOW_EXPR): New tree codes.
        * target-def.h (builtin_extract_even, builtin_extract_odd): New hooks.
        * tree-inline.c (estimate_num_insns_1): Add cases for new codes.
        * tree-vect-transform.c (vect_create_addr_base_for_vector_ref):
        Update step in case of interleaving.
        (vect_create_data_ref_ptr): Add parameter to return vector pointers
        created for interleaving data-refs. Create vector pointers with their
        ivs for all the data-refs in the interleaving group.
        (vect_permute_store_chain): New function.
        (vectorizable_store): Add new parameter to identify interleaving.
        Handle interleaved stores.
        (vect_permute_load_chain): New function.
        (vectorizable_load): Handle interleaved loads.
        (vect_transform_stmt): Add new parameter to identify interleaving.
        Handle interleaving.
        (vect_gen_niters_for_prolog_loop): Update calculation for interleaving.
        (vect_transform_loop): Remove all the interleaved stores together after
        their vectorization.
        * config/rs6000/rs6000.c (rs6000_builtin_extract_even,
        rs6000_builtin_extract_odd): New functions.
        (TARGET_VECTORIZE_BUILTIN_EXTRACT_EVEN,
        TARGET_VECTORIZE_BUILTIN_EXTRACT_ODD): Define.
        (rs6000_create_permute_call, rs6000_builtin_extract_even,
        rs6000_builtin_extract_odd): New functions.
        * config/rs6000/altivec.md (UNSPEC_EXTEVEN/ODD, UNSPEC_INTERHI/LO): New
        constants.
        (vpkuhum_nomode, vpkuwum_nomode, vec_extract_odd<mode>,
        vec_interleave_high<mode>, vec_interleave_low<mode>, ashl<mode>3):
        Implement.


Added:
    branches/autovect-branch/gcc/testsuite/gcc.dg/vect/vect-strided-a-u16-i2.c
    branches/autovect-branch/gcc/testsuite/gcc.dg/vect/vect-strided-a-u16-i4.c
    branches/autovect-branch/gcc/testsuite/gcc.dg/vect/vect-strided-u16-i2.c
    branches/autovect-branch/gcc/testsuite/gcc.dg/vect/vect-strided-u16-i4.c
    branches/autovect-branch/gcc/testsuite/gcc.dg/vect/vect-strided-u32-i4.c
    branches/autovect-branch/gcc/testsuite/gcc.dg/vect/vect-strided-u32-i8.c
    branches/autovect-branch/gcc/testsuite/gcc.dg/vect/vect-strided-u8-i2-gap.c
    branches/autovect-branch/gcc/testsuite/gcc.dg/vect/vect-strided-u8-i2.c
    branches/autovect-branch/gcc/testsuite/gcc.dg/vect/vect-strided-u8-i8-gap2.c
    branches/autovect-branch/gcc/testsuite/gcc.dg/vect/vect-strided-u8-i8-gap4.c
    branches/autovect-branch/gcc/testsuite/gcc.dg/vect/vect-strided-u8-i8-gap7.c
    branches/autovect-branch/gcc/testsuite/gcc.dg/vect/vect-strided-u8-i8.c
Modified:
    branches/autovect-branch/gcc/ChangeLog.autovect
    branches/autovect-branch/gcc/config/rs6000/altivec.md
    branches/autovect-branch/gcc/config/rs6000/rs6000.c
    branches/autovect-branch/gcc/expr.c
    branches/autovect-branch/gcc/genopinit.c
    branches/autovect-branch/gcc/optabs.c
    branches/autovect-branch/gcc/optabs.h
    branches/autovect-branch/gcc/target-def.h
    branches/autovect-branch/gcc/target.h
    branches/autovect-branch/gcc/testsuite/ChangeLog.autovect
    branches/autovect-branch/gcc/testsuite/gcc.dg/vect/pr22506.c
    branches/autovect-branch/gcc/testsuite/gcc.dg/vect/vect-1.c
    branches/autovect-branch/gcc/testsuite/gcc.dg/vect/vect-107.c
    branches/autovect-branch/gcc/testsuite/gcc.dg/vect/vect-116.c
    branches/autovect-branch/gcc/testsuite/gcc.dg/vect/vect-98.c
    branches/autovect-branch/gcc/testsuite/gcc.dg/vect/vect-dv-1.c
    branches/autovect-branch/gcc/testsuite/gcc.dg/vect/vect-reduc-6.c
    branches/autovect-branch/gcc/testsuite/gcc.dg/vect/vect-reduc-7.c
    branches/autovect-branch/gcc/testsuite/gcc.dg/vect/vect-reduc-8.c
    branches/autovect-branch/gcc/testsuite/gcc.dg/vect/vect-reduc-9.c
    branches/autovect-branch/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1.c
    branches/autovect-branch/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-2.c
    branches/autovect-branch/gcc/testsuite/gfortran.dg/vect/pr18716.f90
    branches/autovect-branch/gcc/tree-data-ref.c
    branches/autovect-branch/gcc/tree-data-ref.h
    branches/autovect-branch/gcc/tree-inline.c
    branches/autovect-branch/gcc/tree-pretty-print.c
    branches/autovect-branch/gcc/tree-vect-analyze.c
    branches/autovect-branch/gcc/tree-vect-transform.c
    branches/autovect-branch/gcc/tree-vectorizer.c
    branches/autovect-branch/gcc/tree-vectorizer.h
    branches/autovect-branch/gcc/tree.def


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]