This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH][testuite] Fix pr80481.C after epilogue vectorization


On 31/10/2019 14:04, Jakub Jelinek wrote:
On Thu, Oct 31, 2019 at 01:55:26PM +0000, Andre Vieira (lists) wrote:
I used to have this testcase in my patch when testing but forgot to include
it in the patch I sent upstream.  This testcase checks that a vmovaps isn't
generated when vectorizing the loop.  When I turn epilogue vectorization it
seems to come back.

@Jakub: This test has -fopenmp but I debuged through the testcase and
loop->simdlen always seems to be 0 for any loop we analyze, so I don't think
this is a conflict between my epilogue vectorization and openmp code paths
in vect_analyze_loop.

The test certainly should have used -fopenmp-simd instead, it only uses
#pragma omp simd and no other OpenMP pragmas.
All the loops marked as omp simd are certainly marked with corresponding
simdlen during ompexp, not sure what happens afterwards.

	Jakub


When I debug the vect_analyze_loop calls loop->simdlen is 0 everywhere, with or without epilogue vectorization turned on. However, I also noticed that excluding -fopenmp and -fopenmp-simd will yield the generation of vmovaps even without epilogue vectorization. So maybe its worth understanding why this vmovaps is geneated. I will be honest, I don't even know what the instruction does right now...


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]