https://gcc.gnu.org/bugzilla/show_bug.cgi?id=126366

--- Comment #2 from Tamar Christina <tnfchris at gcc dot gnu.org> ---
Yes masked peeling with PEELED loops are still broken

diff --git a/gcc/tree-vect-data-refs.cc b/gcc/tree-vect-data-refs.cc
index 0e0754769ae..5e9bc869241 100644
--- a/gcc/tree-vect-data-refs.cc
+++ b/gcc/tree-vect-data-refs.cc
@@ -2645,11 +2645,7 @@ vect_enhance_data_refs_alignment (loop_vec_info
loop_vinfo)
   if (!vect_can_advance_ivs_p (loop_vinfo)
       || !slpeel_can_duplicate_loop_p (loop, LOOP_VINFO_MAIN_EXIT
(loop_vinfo),
                                       loop_preheader_edge (loop))
-      || loop->inner
-      /* We don't currently maintain the LCSSA for prologue peeled inversed
-        loops.  */
-      || (LOOP_VINFO_EARLY_BREAKS_VECT_PEELED (loop_vinfo)
-         && !LOOP_VINFO_NITERS_UNCOUNTED_P (loop_vinfo)))
+      || loop->inner)
     do_peeling = false;

   struct _vect_peel_extended_info peel_for_known_alignment;

due to a junk threading of the induction value

;;   basic block 24, loop depth 0, count 65751655 (estimated locally, freq
0.4096), maybe hot
;;    prev block 6, next block 18, flags: (NEW)
;;    pred:       6 [10.0% (guessed)]  count:65751655 (estimated locally, freq
0.4096) (FALSE_VALUE)
  # RANGE [irange] unsigned int [0, 99] MASK 0x7f VALUE 0x0
  # d_98 = PHI <d_11(6)>
  _62 = niters.4_52 - POLY_INT_CST [4, 4];
;;    succ:       18 [always]  count:65751655 (estimated locally, freq 0.4096)
(FALLTHRU)

;;   basic block 18, loop depth 0, count 77309413 (estimated locally, freq
0.4816), maybe hot
;;   Invalid sum of incoming counts 143061068 (estimated locally, freq 0.8912),
should be 77309413 (estimated locally, freq 0.4816)
;;    prev block 24, next block 22, flags: (NEW)
;;    pred:       4 [10.0% (guessed)]  count:77309413 (estimated locally, freq
0.4816) (FALSE_VALUE,EXECUTABLE)
;;                24 [always]  count:65751655 (estimated locally, freq 0.4096)
(FALLTHRU)
  # d_59 = PHI <d_11(4), d_11(24)>
;;    succ:       22 [always]  count:77309413 (estimated locally, freq 0.4816)
(FALLTHRU)

;;   basic block 22, loop depth 0, count 128419524 (estimated locally, freq
0.8000), maybe hot
;;   Invalid sum of incoming counts 90151366 (estimated locally, freq 0.5616),
should be 128419524 (estimated locally, freq 0.8000)
;;    prev block 18, next block 19, flags: (NEW)
;;    pred:       18 [always]  count:77309413 (estimated locally, freq 0.4816)
(FALLTHRU)
;;                13 [10.0% (guessed)]  count:12841953 (estimated locally, freq
0.0800) (TRUE_VALUE)
  # d_61 = PHI <_63(18), 0(13)>
;;    succ:       19 [always]  count:128419524 (estimated locally, freq 0.8000)
(FALLTHRU)

;;   basic block 19, loop depth 1, count 858993463 (estimated locally, freq
5.3512), maybe hot
;;    prev block 22, next block 20, flags: (NEW, REACHABLE, VISITED)
;;    pred:       22 [always]  count:128419524 (estimated locally, freq 0.8000)
(FALLTHRU)
;;                20 [always]  count:730573940 (estimated locally, freq 4.5512)
(FALLTHRU,DFS_BACK,EXECUTABLE)


_63 isn't even in the same subgraph.

Will fix.

Reply via email to