blob: faaeb69fe1c72ea2c6ee43062c0d2f1b5a47f4bf [file] [log] [blame]
Stephen Hines651f13c2014-04-23 16:59:28 -07001// RUN: %clang_cc1 -triple %itanium_abi_triple -emit-llvm %s -o - | FileCheck -check-prefix=CHECK-HOST %s
2// RUN: %clang_cc1 -triple %itanium_abi_triple -emit-llvm %s -o - -fcuda-is-device | FileCheck -check-prefix=CHECK-DEVICE %s
Peter Collingbourned51e43a2011-10-06 18:29:46 +00003
Stephen Hines6bcf27b2014-05-29 04:14:42 -07004#include "Inputs/cuda.h"
Peter Collingbourned51e43a2011-10-06 18:29:46 +00005
6// CHECK-HOST-NOT: constantdata = global
7// CHECK-DEVICE: constantdata = global
8__constant__ char constantdata[256];
9
10// CHECK-HOST-NOT: devicedata = global
11// CHECK-DEVICE: devicedata = global
12__device__ char devicedata[256];
13
14// CHECK-HOST-NOT: shareddata = global
15// CHECK-DEVICE: shareddata = global
16__shared__ char shareddata[256];
17
18// CHECK-HOST: hostdata = global
19// CHECK-DEVICE-NOT: hostdata = global
20char hostdata[256];
21
22// CHECK-HOST: define{{.*}}implicithostonlyfunc
23// CHECK-DEVICE-NOT: define{{.*}}implicithostonlyfunc
24void implicithostonlyfunc(void) {}
25
26// CHECK-HOST: define{{.*}}explicithostonlyfunc
27// CHECK-DEVICE-NOT: define{{.*}}explicithostonlyfunc
28__host__ void explicithostonlyfunc(void) {}
29
30// CHECK-HOST-NOT: define{{.*}}deviceonlyfunc
31// CHECK-DEVICE: define{{.*}}deviceonlyfunc
32__device__ void deviceonlyfunc(void) {}
33
34// CHECK-HOST: define{{.*}}hostdevicefunc
35// CHECK-DEVICE: define{{.*}}hostdevicefunc
36__host__ __device__ void hostdevicefunc(void) {}
37
38// CHECK-HOST: define{{.*}}globalfunc
39// CHECK-DEVICE: define{{.*}}globalfunc
40__global__ void globalfunc(void) {}