2 ! { dg-additional-options "-msse2" { target sse2_runtime } }
3 ! { dg-additional-options "-mavx" { target avx_runtime } }
7 subroutine work( a
, b
, n
, sum
)
10 double precision :: a(n
), b(n
), sum
, tmp
14 !$omp simd private(tmp) reduction(+:sum)
22 subroutine work_ref( a
, b
, n
, sum
)
25 double precision :: a(n
), b(n
), sum
, tmp
34 end subroutine work_ref
36 subroutine init (a
, b
, n
)
37 double precision :: a(*), b(*)
52 double precision :: a(128), b(128), sum
, sum_ref
, diff
53 double precision, parameter :: EPS
= 0.0000000000000001
55 call work(a
, b
, 128, sum
)
56 call work_ref(a
, b
, 128, sum_ref
)
60 if (diff
> EPS
.or
. -diff
> EPS
) call abort