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
