The following removes the fixup we apply to pattern stmts before code generating vector epilogues. While I did expect this isn't necessary anymore since the SLP graph now exclusively records the data flow now, I expected "details" to mess this up. In particular 1/2 of this series fixes the one place I expected test coverage, OMP scan-stores, so I disabled epilogue vectorization with those.
We are not ready to kill off adjusting gather/scatter DR things, the series remembering the get_load_store_type results will. Then we can scrap all of this code. Bootstrapped and tested on x86_64-unknown-linux-gnu. * tree-vect-loop.cc (update_epilogue_loop_vinfo): Remove fixing up pattern stmt operands. --- gcc/tree-vect-loop.cc | 27 --------------------------- 1 file changed, 27 deletions(-) diff --git a/gcc/tree-vect-loop.cc b/gcc/tree-vect-loop.cc index ce08909ab83..b036fbb34a5 100644 --- a/gcc/tree-vect-loop.cc +++ b/gcc/tree-vect-loop.cc @@ -11256,33 +11256,6 @@ update_epilogue_loop_vinfo (class loop *epilogue, tree advance) } } - /* The PATTERN_DEF_SEQs and RELATED_STMTs in the epilogue were constructed - using the original main loop and thus need to be updated to refer to the - cloned variables used in the epilogue. */ - for (unsigned i = 0; i < stmt_worklist.length (); ++i) - { - gimple *stmt = stmt_worklist[i]; - tree *new_op; - - for (unsigned j = 1; j < gimple_num_ops (stmt); ++j) - { - tree op = gimple_op (stmt, j); - if ((new_op = mapping.get(op))) - gimple_set_op (stmt, j, *new_op); - else - { - /* PR92429: The last argument of simplify_replace_tree disables - folding when replacing arguments. This is required as - otherwise you might end up with different statements than the - ones analyzed in vect_loop_analyze, leading to different - vectorization. */ - op = simplify_replace_tree (op, NULL_TREE, NULL_TREE, - &find_in_mapping, &mapping, false); - gimple_set_op (stmt, j, op); - } - } - } - struct data_reference *dr; vec<data_reference_p> datarefs = LOOP_VINFO_DATAREFS (epilogue_vinfo); FOR_EACH_VEC_ELT (datarefs, i, dr) -- 2.43.0