Hi,

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.

I suspect the vmovaps is introduced because of the epilogue and it is just a testism, but would like a second opinion.

Cheers,
Andre

gcc/testsuite/ChangeLog:
2019-10-31  Andre Vieira  <andre.simoesdiasvie...@arm.com>

        * g++.dg/pr80481.C: Disable epilogue vectorization.
diff --git a/gcc/testsuite/g++.dg/pr80481.C b/gcc/testsuite/g++.dg/pr80481.C
index bd5002c89d5137012f36f16946eec3d4ea7dc97c..1f2697825cd854287a7209328ff5e6e90fbab481 100644
--- a/gcc/testsuite/g++.dg/pr80481.C
+++ b/gcc/testsuite/g++.dg/pr80481.C
@@ -1,6 +1,8 @@
 // { dg-do compile { target { i?86-*-* x86_64-*-* }  && { ! *-*-solaris* } } }
 // { dg-options "-Ofast -funroll-loops -fopenmp -march=knl" }
 // { dg-final { scan-assembler-not "vmovaps" } }
+// Disabling epilogues until we find a better way to deal with scans.
+// { dg-additional-options "--param vect-epilogues-nomask=0" }
 
 #include <math.h>
 

Reply via email to