This change adds implementation for named barriers for SPIRV backend. Since there is no built in API/intrinsics for named barrier in SPIRV, the implementation loosely follows implementation for AMD
28 lines
389 B
C++
28 lines
389 B
C++
// clang-format off
|
|
// RUN: %libomptarget-compilexx-generic && %libomptarget-run-generic | %fcheck-generic
|
|
// clang-format on
|
|
|
|
#include <cstdio>
|
|
|
|
int foo() { return 1; }
|
|
|
|
class C {
|
|
public:
|
|
C() : x(foo()) {}
|
|
|
|
int x;
|
|
};
|
|
|
|
C c;
|
|
#pragma omp declare target(c)
|
|
|
|
int main() {
|
|
int x = 0;
|
|
#pragma omp target map(from : x)
|
|
{ x = c.x; }
|
|
|
|
// CHECK: PASS
|
|
if (x == 1)
|
|
printf("PASS\n");
|
|
}
|