The fix for PR53331 caused a degradation to 187.facerec on powerpc64-unknown-linux-gnu. The following simple patch reverses the degradation without otherwise affecting SPEC cpu2000 or cpu2006. Bootstrapped and regtested on that platform with no new regressions. Ok for trunk?
Thanks, Bill 2012-06-10 Bill Schmidt <wschm...@linux.ibm.com> * tree-vect-stmts.c (vect_model_load_cost): Change cost model for strided loads. Index: gcc/tree-vect-stmts.c =================================================================== --- gcc/tree-vect-stmts.c (revision 188341) +++ gcc/tree-vect-stmts.c (working copy) @@ -1031,11 +1031,10 @@ vect_model_load_cost (stmt_vec_info stmt_info, int /* The loads themselves. */ if (STMT_VINFO_STRIDE_LOAD_P (stmt_info)) { - /* N scalar loads plus gathering them into a vector. - ??? scalar_to_vec isn't the cost for that. */ + /* N scalar loads plus gathering them into a vector. */ inside_cost += (vect_get_stmt_cost (scalar_load) * ncopies * TYPE_VECTOR_SUBPARTS (STMT_VINFO_VECTYPE (stmt_info))); - inside_cost += ncopies * vect_get_stmt_cost (scalar_to_vec); + inside_cost += ncopies * vect_get_stmt_cost (vec_perm); } else vect_get_load_cost (first_dr, ncopies,