[Bug target/102226] [12 Regression] ICE with -O3 -msve-vector-bits=128

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Sep 7 09:41:36 GMT 2021


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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
           Assignee|unassigned at gcc dot gnu.org      |rguenth at gcc dot gnu.org

--- Comment #6 from Richard Biener <rguenth at gcc dot gnu.org> ---
diff --git a/gcc/tree-vect-loop.c b/gcc/tree-vect-loop.c
index 0c8d992624b..c9dcc647d2c 100644
--- a/gcc/tree-vect-loop.c
+++ b/gcc/tree-vect-loop.c
@@ -7755,11 +7755,11 @@ vect_transform_cycle_phi (loop_vec_info loop_vinfo,
                                                  (reduc_info),
                                                &stmts);
            }
+         if (!useless_type_conversion_p (vectype_out, TREE_TYPE (def)))
+           def = gimple_convert (&stmts, vectype_out, def);
          /* Adjust the input so we pick up the partially reduced value
             for the skip edge in vect_create_epilog_for_reduction.  */
          accumulator->reduc_input = def;
-         if (!useless_type_conversion_p (vectype_out, TREE_TYPE (def)))
-           def = gimple_convert (&stmts, vectype_out, def);
          if (loop_vinfo->main_loop_edge)
            {
              /* While we'd like to insert on the edge this will split

fixes it.


More information about the Gcc-bugs mailing list