/* { dg-do run { target openacc_nvidia_accel_selected } } */ /* { dg-options "-foffload=-fdump-rtl-mach" } */ /* { dg-skip-if "" { *-*-* } { "*" } { "-O2" } } */ #pragma acc routine seq int __attribute__((noinline)) foo (int x) { return x & 2; } int main () { int r = 0; #pragma acc parallel copy(r) vector_length(32) { #pragma acc loop vector reduction (+:r) for (int i = 00; i < 40; i++) r += i; /* This piece is a multi-block SESE region */ if (foo (r)) r *= 2; if (r & 1) /* to here. */ #pragma acc loop vector reduction (+:r) for (int i = 00; i < 40; i++) r += i; } return 0; } /* Match {N->N(.N)+} */ /* { dg-final { scan-offload-rtl-dump "SESE regions:.* \[0-9\]+{\[0-9\]+->\[0-9\]+(\\.\[0-9\]+)+}" "mach" } } */