On 30 November 2015 at 18:55, Tom de Vries <[email protected]> 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 <[email protected]>
* 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);