Richard Biener <rguent...@suse.de> writes:

>       * tree-vectorizer.h (vect_slp_analyze_and_verify_instance_alignment):
>       Declare.
>       (vect_analyze_data_refs_alignment): Make loop vect specific.
>       (vect_verify_datarefs_alignment): Likewise.
>       * tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependences):
>       Add missing continue.
>       (vect_compute_data_ref_alignment): Export.
>       (vect_compute_data_refs_alignment): Merge into...
>       (vect_analyze_data_refs_alignment): ... this.
>       (verify_data_ref_alignment): Split out from ...
>       (vect_verify_datarefs_alignment): ... here.
>       (vect_slp_analyze_and_verify_node_alignment): New function.
>       (vect_slp_analyze_and_verify_instance_alignment): Likewise.
>       * tree-vect-slp.c (vect_supported_load_permutation_p): Remove
>       misplaced checks on alignment.
>       (vect_slp_analyze_bb_1): Add fatal output parameter.  Do
>       alignment analysis after SLP discovery and do it per instance.
>       (vect_slp_bb): When vect_slp_analyze_bb_1 fatally failed do not
>       bother to re-try using different vector sizes.

This breaks libgfortran on ia64:

../../../libgfortran/generated/matmul_c4.c: In function 'matmul_c4':
../../../libgfortran/generated/matmul_c4.c:79:1: internal compiler error: in 
vectorizable_store, at tree-vect-stmts.c:5651
 matmul_c4 (gfc_array_c4 * const restrict retarray,
 ^
0x40000000010ff01f vectorizable_store
        ../../gcc/tree-vect-stmts.c:5651
0x4000000001115b5f vect_transform_stmt(gimple*, gimple_stmt_iterator*, bool*, 
_slp_tree*, _slp_instance*)
        ../../gcc/tree-vect-stmts.c:8003
0x400000000114df1f vect_schedule_slp_instance
        ../../gcc/tree-vect-slp.c:3484
0x4000000001154d6f vect_schedule_slp(vec_info*)
        ../../gcc/tree-vect-slp.c:3549
0x40000000011562bf vect_slp_bb(basic_block_def*)
        ../../gcc/tree-vect-slp.c:2543
0x4000000001159f2f execute
        ../../gcc/tree-vectorizer.c:734

Andreas.

-- 
Andreas Schwab, SUSE Labs, sch...@suse.de
GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE  1748 E4D4 88E3 0EEA B9D7
"And now for something completely different."

Reply via email to