On Tue, 30 Oct 2012, Richard Biener wrote: > > As requested this adds predicates to check whether the lhs of > a assign or call is a store and whether rhs1 of an assignment > is a load. It uses this in place of the existing, slightly > bogus, check in the stmt estimate code. > > Bootstrap and regtest running on x86_64-unknown-linux-gnu.
Committed with the following adjustment as we now would inline foo as we no longer account memory move costs for stmts like pInput_9 = &MEM[(void *)pInput_1 + 8B]; adding noinline looks reasonable anyway (we'll fix the above to cost something again with a followup). Richard. Index: gcc/testsuite/gcc.dg/vect/slp-perm-2.c =================================================================== *** gcc/testsuite/gcc.dg/vect/slp-perm-2.c (revision 192984) --- gcc/testsuite/gcc.dg/vect/slp-perm-2.c (working copy) *************** *** 12,18 **** #define N 16 ! void foo (unsigned int *__restrict__ pInput, unsigned int *__restrict__ pOutput) { unsigned int i, a, b; --- 12,19 ---- #define N 16 ! void __attribute__((noinline)) ! foo (unsigned int *__restrict__ pInput, unsigned int *__restrict__ pOutput) { unsigned int i, a, b;