1
0
mirror of https://github.com/OpenMP/Examples.git synced 2025-04-07 15:12:11 +01:00
OpenMP-Examples/SIMD/sources/linear_modifier.1.cpp
2021-08-17 09:11:55 -07:00

46 lines
662 B
C++

/*
* @@name: linear_modifier.1cpp
* @@type: C++
* @@compilable: yes
* @@linkable: yes
* @@expect: success
* @@version: omp_4.5
*/
#include <stdio.h>
#define NN 1023
int a[NN];
#pragma omp declare simd linear(ref(p)) simdlen(8)
void add_one2(int& p)
{
p += 1;
}
int main(void)
{
int i;
int* p = a;
for (i = 0; i < NN; i++) {
a[i] = i;
}
#pragma omp simd linear(p) simdlen(8)
for (i = 0; i < NN; i++) {
int& k = *p;
add_one2(k);
add_one2(a[i]);
p++;
}
for (i = 0; i < NN; i++) {
if (a[i] != i+2) {
printf("failed\n");
return 1;
}
}
printf("passed\n");
return 0;
}