https://gcc.gnu.org/g:46fec3d7adf9a313342979d8426ae7558ae12d6f

commit r17-1657-g46fec3d7adf9a313342979d8426ae7558ae12d6f
Author: Richard Biener <[email protected]>
Date:   Wed Jun 17 13:23:41 2026 +0200

    Handle vec_deconstruct where appropriate
    
    The following replaces vec_to_scalar handling where now vec_deconstruct
    is expected.
    
            * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost):
            Expect vec_deconstruct where formerly handling vec_to_scalar
            for emulated gather/scatter, elementwise and strided accesses.

Diff:
---
 gcc/config/i386/i386.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc/config/i386/i386.cc b/gcc/config/i386/i386.cc
index d93dad7e8237..c0a0204b9b66 100644
--- a/gcc/config/i386/i386.cc
+++ b/gcc/config/i386/i386.cc
@@ -26728,7 +26728,7 @@ ix86_vector_costs::add_stmt_cost (int count, 
vect_cost_for_stmt kind,
      latency and execution resources for the many scalar loads
      (AGU and load ports).  Try to account for this by scaling the
      construction cost by the number of elements involved.  */
-  if ((kind == vec_construct || kind == vec_to_scalar)
+  if ((kind == vec_construct || kind == vec_deconstruct)
       && ((node
           && (((SLP_TREE_MEMORY_ACCESS_TYPE (node) == VMAT_ELEMENTWISE
                 || (SLP_TREE_MEMORY_ACCESS_TYPE (node) == VMAT_STRIDED_SLP

Reply via email to