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>