[vect] PR103971, PR103977: Fix epilogue mode selection for autodetect only
authorAndre Vieira <andre.simoesdiasvieira@arm.com>
Tue, 11 Jan 2022 15:52:59 +0000 (15:52 +0000)
committerAndre Vieira <andre.simoesdiasvieira@arm.com>
Wed, 12 Jan 2022 14:44:25 +0000 (14:44 +0000)
gcc/ChangeLog:

* tree-vect-loop.c (vect-analyze-loop): Handle scenario where target
does not add autovectorize_vector_modes.

gcc/tree-vect-loop.c

index 6ed2b5f..ba67de4 100644 (file)
@@ -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);