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...

Reply via email to