On 30 November 2015 at 18:55, Tom de Vries <tom_devr...@mentor.com> wrote: > On 30/11/15 17:48, Jakub Jelinek wrote: >> >> On Mon, Nov 30, 2015 at 05:36:25PM +0100, Tom de Vries wrote: >>> >>> +int >>> +main (void) >>> +{ >>> + unsigned results[nEvents]; >>> + unsigned pData[nEvents]; >>> + unsigned coeff = 2; >>> + >>> + init (&results[0], &pData[0]); >>> + >>> +#pragma omp parallel for >>> + for (int idx = 0; idx < (int)nEvents; idx++) >>> + results[idx] = coeff * pData[idx]; >> >> >> Could you please add another testcase, where you have say pData >> and some other pointer that init sets to alias with pData, and verify >> that such loop (would need to be say normal loop inside #pragma omp single >> or master) is not vectorized? > > > I've: > - added a simpler (not vectorizer-based) version of the testcase as > pr46032-2.c, and > - copied pr46032-2.c to pr46032-3.c and modified it such that two > pointers are aliasing > > Committed to trunk. >
Hi, I've committed the attached patch as obvious: it adds dg-require-effective-target fopenmp to these new tests so that they are skipped e.g. on arm bare-metal targets (using newlib). Note that pr46032.c has some failures: FAIL: gcc.dg/pr46032.c scan-tree-dump-times vect "note: vectorized 1 loop" 1 on arm-none-linux-gnueabi, on arm-none-linux-gnueabihf with -mfpu=vfp*, and on armeb-none-linux-gnueabihf I haven't looked at the details yet; see http://people.linaro.org/~christophe.lyon/cross-validation/gcc/trunk/231076/report-build-info.html for more information. Thanks, Christophe. 2015-12-01 Christophe Lyon <christophe.l...@linaro.org> * gcc.dg/pr46032.c: Add dg-require-effective-target fopenmp. * gcc.dg/pr46032-2.c: Likewise. * gcc.dg/pr46032-3.c: Likewise. > Thanks, > - Tom >
Index: gcc/testsuite/gcc.dg/pr46032-2.c =================================================================== --- gcc/testsuite/gcc.dg/pr46032-2.c (revision 231108) +++ gcc/testsuite/gcc.dg/pr46032-2.c (working copy) @@ -1,4 +1,5 @@ /* { dg-do compile } */ +/* { dg-require-effective-target fopenmp } */ /* { dg-options "-O2 -fopenmp -std=c99 -fipa-pta -fdump-tree-optimized" } */ #define N 2 Index: gcc/testsuite/gcc.dg/pr46032-3.c =================================================================== --- gcc/testsuite/gcc.dg/pr46032-3.c (revision 231108) +++ gcc/testsuite/gcc.dg/pr46032-3.c (working copy) @@ -1,4 +1,5 @@ /* { dg-do compile } */ +/* { dg-require-effective-target fopenmp } */ /* { dg-options "-O2 -fopenmp -std=c99 -fipa-pta -fdump-tree-optimized" } */ #define N 2 Index: gcc/testsuite/gcc.dg/pr46032.c =================================================================== --- gcc/testsuite/gcc.dg/pr46032.c (revision 231108) +++ gcc/testsuite/gcc.dg/pr46032.c (working copy) @@ -1,4 +1,5 @@ /* { dg-do compile } */ +/* { dg-require-effective-target fopenmp } */ /* { dg-options "-O2 -fopenmp -ftree-vectorize -std=c99 -fipa-pta -fdump-tree-vect-all" } */ extern void abort (void);