On Fri, Jan 27, 2017 at 10:30 AM, Tamar Christina <tamar.christ...@arm.com> wrote: > Hi all, > > This fixes (PR78142) by only creating one vector in the char case. > r241590 is causing more registers to be used and so > the SP registered happens to be picked and used. > > This test I believe was checking explicitly that the > SP is not used if not needed. By creating a single vector then less > registers are needed so SP won't be used.
The test is written that way because our previuos vector initialization code involved constructing the initializer on the stack and then reloading it into the vector registers instead of constructing the vector initializer through a sequence of ins instructions which is what we changed the vector initialization code to. I think it helped hmmer (?) but memory is fading .... :) [Patch AArch64] GCC 6 regression in vector performance. - Fix vector initialization to happen with lane load instructions. gcc/ * config/aarch64/aarch64.c (aarch64_expand_vector_init): Refactor, always use lane loads to construct non-constant vectors. gcc/testsuite/ * gcc.target/aarch64/vector_initialization_nostack.c: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@233461 138bc75d-0d04-0410-961f-82ee72b054a4 regards Ramana > > Ran regression tests on aarch64-none-linux-gnu. > > Ok for trunk? > > Thanks, > Tamar > > gcc/testsuite/ > > 2017-01-26 Tamar Christina <tamar.christ...@arm.com> > > PR middle-end/78142 > * gcc.target/aarch64/vector_initialization_nostack.c > (f12): Use one vector.