aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/c-c++-common/cilk-plus/PS/run-1.c
blob: c8fe1c762bc3223ea04697c2ec2215e0944fbca9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/* { dg-do run } */
/* { dg-options "-fcilkplus -O3" } */

#include <stdlib.h>

#define N 4

float f1[] =  { 2.0, 3.0,  4.0,  5.0 };
float f2[] =  { 1.0, 6.0, -1.0, -2.0 };
float res[] = { 3.0, 9.0,  3.0,  3.0 };

__attribute__((noinline))
void verify (float *sum)
{
  for (int i=0; i < N; ++i)
    if (sum[i] != res[i])
      abort ();
}

int main()
{
  float sum[N];
#pragma simd
  for (int i=0; i < N; ++i)
    sum[i] = f1[i] + f2[i];
  verify (sum);
  return 0;
}