r238035 - in /trunk/gcc: ChangeLog tree-vect-st...

rsandifo@gcc.gnu.org rsandifo@gcc.gnu.org
Wed Jul 6 08:12:00 GMT 2016


Author: rsandifo
Date: Wed Jul  6 08:12:36 2016
New Revision: 238035

URL: https://gcc.gnu.org/viewcvs?rev=238035&root=gcc&view=rev
Log:
[3/7] Fix load/store costs for strided groups

vect_model_store_cost had:

      /* Costs of the stores.  */
      if (STMT_VINFO_STRIDED_P (stmt_info)
          && !STMT_VINFO_GROUPED_ACCESS (stmt_info))
        {
          /* N scalar stores plus extracting the elements.  */
          inside_cost += record_stmt_cost (body_cost_vec,
				       ncopies * TYPE_VECTOR_SUBPARTS (vectype),
				       scalar_store, stmt_info, 0, vect_body);

But non-SLP strided groups also use individual scalar stores rather than
vector stores, so I think we should skip this only for SLP groups.

The same applies to vect_model_load_cost.

Tested on aarch64-linux-gnu and x86_64-linux-gnu.

gcc/
	* tree-vect-stmts.c (vect_model_store_cost): For non-SLP
	strided groups, use the cost of N scalar accesses instead
	of ncopies vector accesses.
	(vect_model_load_cost): Likewise.

Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/tree-vect-stmts.c



More information about the Gcc-cvs mailing list