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