This should preserve the original association order as much as possible
for the initial SLP discovery attempt and also improve consistency.

Bootstrapped and tested on x86_64-unknown-linux-gnu, pushed.

2021-06-11  Richard Biener  <rguent...@suse.de>

        * tree-vect-slp.c (vect_build_slp_tree_2): Use stablesort
        to sort operands of the associative chain.
---
 gcc/tree-vect-slp.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc/tree-vect-slp.c b/gcc/tree-vect-slp.c
index c4f8f38012f..6237a61ffd4 100644
--- a/gcc/tree-vect-slp.c
+++ b/gcc/tree-vect-slp.c
@@ -1865,7 +1865,7 @@ vect_build_slp_tree_2 (vec_info *vinfo, slp_tree node,
          /* Now we have a set of chains with the same length.  */
          /* 1. pre-sort according to def_type and operation.  */
          for (unsigned lane = 0; lane < group_size; ++lane)
-           chains[lane].sort (dt_sort_cmp, vinfo);
+           chains[lane].stablesort (dt_sort_cmp, vinfo);
          if (dump_enabled_p ())
            {
              dump_printf_loc (MSG_NOTE, vect_location,
-- 
2.26.2

Reply via email to