This adds the missing scalar load cost in the prologue.

Bootstrapped on x86_64-unknown-linux-gnu, testing in progress.

2021-10-21  Richard Biener  <rguent...@suse.de>

        PR tree-optimization/102847
        * tree-vect-stmts.c (vect_model_load_cost): Add the scalar
        load cost in the prologue for VMAT_INVARIANT.
---
 gcc/tree-vect-stmts.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/gcc/tree-vect-stmts.c b/gcc/tree-vect-stmts.c
index 8f527452bd0..c28c9370655 100644
--- a/gcc/tree-vect-stmts.c
+++ b/gcc/tree-vect-stmts.c
@@ -1194,6 +1194,9 @@ vect_model_load_cost (vec_info *vinfo,
   else if (memory_access_type == VMAT_INVARIANT)
     {
       /* Invariant loads will ideally be hoisted and splat to a vector.  */
+      prologue_cost += record_stmt_cost (cost_vec, 1,
+                                        scalar_load, stmt_info, 0,
+                                        vect_prologue);
       prologue_cost += record_stmt_cost (cost_vec, 1,
                                         scalar_to_vec, stmt_info, 0,
                                         vect_prologue);
-- 
2.31.1

Reply via email to