On 12 November 2015 at 16:49, Andreas Schwab <sch...@suse.de> wrote: > 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 >
Same problem on armeb. > 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."