"Yangfei (Felix)" <felix.y...@huawei.com> writes: > Hi, > > PR: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95570 > > Here, we are doing loop versioning for alignment. The only dr here is a > gather-statter operation: x[start][i]. > Scalar evolution analysis for this dr failed, so DR_STEP is NULL_TREE, which > leads to the segfault. > But scatter-gather operation should be filtered out in > vect_enhance_data_refs_alignment. > There are similar issues in vect_verify_datarefs_alignment, > vect_get_peeling_costs_all_drs and vect_peeling_supportable. > Proposed patch adds back the necessary tests. Bootstrapped and tested on > aarch64-linux-gnu & x86_64-linux-gnu. > > Test coverage: > Existing tests [1] and newly added test ensures coverage for all the changes > except for the changes in vect_peeling_supportable. > Currently I don't have a test to cover the changes in > vect_peeling_supportable. Should we keep them?
Rather than add several instances of the new test, I think it would make sense to split the (hopefully) correct conditions in vect_enhance_data_refs_alignment out into a subroutine and use it in the other sites. Doing that for vect_peeling_supportable would then be justifiable as a clean-up. How about something like vect_relevant_for_alignment_p as the name of the subroutine? Thanks, Richard