Mercurial > hg > CbC > CbC_gcc
view libgomp/testsuite/libgomp.c++/simd14.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
// { dg-do run } // { dg-options "-O2" } // { dg-additional-options "-msse2" { target sse2_runtime } } // { dg-additional-options "-mavx" { target avx_runtime } } int a[1024]; short b[2048]; static inline void bar (int &x, unsigned long long &y, short *&z) { a[x] = x + y + *z; x++; y += 17; z += 2; } __attribute__((noinline, noclone)) int foo (unsigned long long &s, short *&t) { int i, j = 0; int &r = j; #pragma omp parallel for simd linear(r) linear(s:17ULL) linear(t:2) for (i = 0; i < 1024; i++) bar (r, s, t); return j; } int main () { int i; for (i = 0; i < 2048; i++) b[i] = 3 * i; unsigned long long s = 12; short *t = b; int j = foo (s, t); for (i = 0; i < 1024; i++) if (a[i] != 12 + 24 * i) __builtin_abort (); if (j != 1024 || s != 12 + 1024 * 17ULL || t != &b[2048]) __builtin_abort (); }