On 06/15/2016 02:53 AM, Richard Sandiford wrote:
This patch uses the vect_memory_access_type from patch 6 to represent
the effect of a negative contiguous stride or a zero stride.  The latter
is valid only for loads.

Tested on aarch64-linux-gnu and x86_64-linux-gnu.  OK to install?

Thanks,
Richard


gcc/
        * tree-vectorizer.h (vect_memory_access_type): Add
        VMAT_INVARIANT, VMAT_CONTIGUOUS_DOWN and VMAT_CONTIGUOUS_REVERSED.
        * tree-vect-stmts.c (compare_step_with_zero): New function.
        (perm_mask_for_reverse): Move further up file.
        (get_group_load_store_type): Stick to VMAT_ELEMENTWISE if the
        step is negative.
        (get_negative_load_store_type): New function.
        (get_load_store_type): Call it.  Add an ncopies argument.
        (vectorizable_mask_load_store): Update call accordingly and
        remove tests for negative steps.
        (vectorizable_store, vectorizable_load): Likewise.  Handle new
        memory_access_types.
OK.
jeff

Reply via email to