Mercurial > hg > CbC > CbC_gcc
view libgomp/testsuite/libgomp.c++/pr66702-1.C @ 138:fc828634a951
merge
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 08 Nov 2018 14:17:14 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
// PR middle-end/66702 // { dg-do run { target vect_simd_clones } } // { dg-options "-O2" } // { dg-additional-options "-msse2" { target sse2_runtime } } // { dg-additional-options "-mavx" { target avx_runtime } } void bar (int &a, int &b, int *&c, int &d) { volatile int x; int *volatile y; x = a; a = x; x = b; b = x; y = c; c = y; x = d; d = x; } void (*volatile barp) (int &, int &, int *&, int &) = bar; #pragma omp declare simd uniform(b, c) linear(d:2) aligned(c:32) notinbranch int foo (int a, int b, int *c, int d) { a++; b++; c += 8; d += 2; barp (a, b, c, d); return a + b + *c + d; } volatile int e = 5; int c[64] __attribute__((aligned (32))); int main () { int d = 7, r = 0; int b = e; for (int i = 0; i < 64; i++) c[i] = i; #pragma omp simd reduction(+:r) linear(d:2) for (int i = 0; i < 64; i++) { r += foo (i, b, c, d); d += 2; } if (r != 7584) __builtin_abort (); }