[gcc r12-6523] [vect] PR103971, PR103977: Fix epilogue mode selection for autodetect only

Andre Simoes Dias Vieira avieira@gcc.gnu.org
Wed Jan 12 14:45:58 GMT 2022


https://gcc.gnu.org/g:016bd7523131b645bca5b5530c81ab5149922743

commit r12-6523-g016bd7523131b645bca5b5530c81ab5149922743
Author: Andre Vieira <andre.simoesdiasvieira@arm.com>
Date:   Tue Jan 11 15:52:59 2022 +0000

    [vect] PR103971, PR103977: Fix epilogue mode selection for autodetect only
    
    gcc/ChangeLog:
    
            * tree-vect-loop.c (vect-analyze-loop): Handle scenario where target
            does not add autovectorize_vector_modes.

Diff:
---
 gcc/tree-vect-loop.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/gcc/tree-vect-loop.c b/gcc/tree-vect-loop.c
index 6ed2b5f8724..ba67de490bb 100644
--- a/gcc/tree-vect-loop.c
+++ b/gcc/tree-vect-loop.c
@@ -3023,7 +3023,9 @@ vect_analyze_loop (class loop *loop, vec_info_shared *shared)
      array may contain length-agnostic and length-specific modes.  Their
      ordering is not guaranteed, so we could end up picking a mode for the main
      loop that is after the epilogue's optimal mode.  */
-  mode_i = 1;
+  vector_modes[0] = autodetected_vector_mode;
+  mode_i = 0;
+
   bool supports_partial_vectors = partial_vectors_supported_p ();
   poly_uint64 first_vinfo_vf = LOOP_VINFO_VECT_FACTOR (first_loop_vinfo);


More information about the Gcc-cvs mailing list