1
1
// RUN: %clang_cc1 -triple amdgcn -fcuda-is-device \
2
2
// RUN: -emit-llvm -o - -x hip %s \
3
- // RUN: | FileCheck -check-prefixes=DEV,NORDC %s
3
+ // RUN: | FileCheck -check-prefixes=DEV,HIP-D,NORDC,HIP- NORDC %s
4
4
// RUN: %clang_cc1 -triple amdgcn -fcuda-is-device \
5
5
// RUN: -fgpu-rdc -cuid=abc -emit-llvm -o - -x hip %s \
6
- // RUN: | FileCheck -check-prefixes=DEV,RDC %s
6
+ // RUN: | FileCheck -check-prefixes=DEV,HIP-D %s
7
7
// RUN: %clang_cc1 -triple x86_64-unknown-gnu-linux \
8
8
// RUN: -emit-llvm -o - -x hip %s \
9
- // RUN: | FileCheck -check-prefixes=HOST,NORDC-H %s
9
+ // RUN: | FileCheck -check-prefixes=HOST,HIP-H, NORDC-H %s
10
10
// RUN: %clang_cc1 -triple x86_64-unknown-gnu-linux \
11
11
// RUN: -fgpu-rdc -cuid=abc -emit-llvm -o - -x hip %s \
12
- // RUN: | FileCheck -check-prefixes=HOST,RDC-H %s
12
+ // RUN: | FileCheck -check-prefixes=HOST,HIP-H,RDC-H %s
13
+
13
14
// RUN: %clang_cc1 -triple nvptx -fcuda-is-device \
14
- // RUN: -fgpu-rdc -cuid=abc -emit-llvm -o - %s \
15
- // RUN: | FileCheck -check-prefixes=CUDA %s
15
+ // RUN: -emit-llvm -o - -x cuda %s \
16
+ // RUN: | FileCheck -check-prefixes=DEV,CUDA-D,NORDC,CUDA-NORDC %s
17
+ // RUN: %clang_cc1 -triple nvptx -fcuda-is-device \
18
+ // RUN: -fgpu-rdc -cuid=abc -emit-llvm -o - -x cuda %s \
19
+ // RUN: | FileCheck -check-prefixes=DEV,CUDA-D %s
20
+
21
+ // RUN: %clang_cc1 -triple x86_64-unknown-gnu-linux \
22
+ // RUN: -emit-llvm -o - -x cuda %s \
23
+ // RUN: | FileCheck -check-prefixes=HOST,NORDC-H %s
24
+ // RUN: %clang_cc1 -triple x86_64-unknown-gnu-linux \
25
+ // RUN: -fgpu-rdc -cuid=abc -emit-llvm -o - -x cuda %s \
26
+ // RUN: | FileCheck -check-prefixes=HOST,RDC-H %s
16
27
17
28
#include " Inputs/cuda.h"
18
29
@@ -24,58 +35,53 @@ __device__ int v1;
24
35
// NORDC-H-DAG: @v2 = internal global i32 undef
25
36
// RDC-H-DAG: @v2 = global i32 undef
26
37
__constant__ int v2;
27
- // DEV-DAG: @v3 = addrspace(1) externally_initialized global ptr addrspace(1) null
38
+ // HIP-D-DAG: @v3 = addrspace(1) externally_initialized global ptr addrspace(1) null
39
+ // CUDA-D-DAG: @v3 = addrspace(1) externally_initialized global i32 0, align 4
28
40
// NORDC-H-DAG: @v3 = internal externally_initialized global ptr null
29
41
// RDC-H-DAG: @v3 = externally_initialized global ptr null
30
- #if __HIP__
31
42
__managed__ int v3;
32
- #endif
33
43
34
44
// DEV-DAG: @ev1 = external addrspace(1) global i32
35
45
// HOST-DAG: @ev1 = external global i32
36
46
extern __device__ int ev1;
37
47
// DEV-DAG: @ev2 = external addrspace(4) global i32
38
48
// HOST-DAG: @ev2 = external global i32
39
49
extern __constant__ int ev2;
40
- // DEV-DAG: @ev3 = external addrspace(1) externally_initialized global ptr addrspace(1)
50
+ // HIP-D-DAG: @ev3 = external addrspace(1) externally_initialized global ptr addrspace(1)
51
+ // CUDA-D-DAG: @ev3 = external addrspace(1) global i32, align 4
41
52
// HOST-DAG: @ev3 = external externally_initialized global ptr
42
- #if __HIP__
43
53
extern __managed__ int ev3;
44
- #endif
45
54
46
55
// NORDC-DAG: @_ZL3sv1 = addrspace(1) externally_initialized global i32 0
47
- // RDC-DAG: @_ZL3sv1.static.[[HASH:.*]] = addrspace(1) externally_initialized global i32 0
56
+ // HIP-RDC-DAG: @_ZL3sv1.static.[[HASH:.*]] = addrspace(1) externally_initialized global i32 0
57
+ // CUDA-RDC-DAG: @_ZL3sv1__static__[[HASH:.*]] = addrspace(1) externally_initialized global i32 0
48
58
// HOST-DAG: @_ZL3sv1 = internal global i32 undef
49
- // CUDA-DAG: @_ZL3sv1__static__[[HASH:.*]] = addrspace(1) externally_initialized global i32 0
50
59
static __device__ int sv1;
51
60
// NORDC-DAG: @_ZL3sv2 = addrspace(4) externally_initialized constant i32 0
52
- // RDC-DAG: @_ZL3sv2.static.[[HASH]] = addrspace(4) externally_initialized constant i32 0
61
+ // HIP-RDC-DAG: @_ZL3sv2.static.[[HASH]] = addrspace(4) externally_initialized constant i32 0
62
+ // CUDA-RDC-DAG: @_ZL3sv2__static__[[HASH]] = addrspace(4) externally_initialized constant i32 0
53
63
// HOST-DAG: @_ZL3sv2 = internal global i32 undef
54
- // CUDA-DAG: @_ZL3sv2__static__[[HASH]] = addrspace(4) externally_initialized constant i32 0
55
64
static __constant__ int sv2;
56
- // NORDC-DAG: @_ZL3sv3 = addrspace(1) externally_initialized global ptr addrspace(1) null
57
- // RDC-DAG: @_ZL3sv3.static.[[HASH]] = addrspace(1) externally_initialized global ptr addrspace(1) null
65
+ // HIP-NORDC-DAG: @_ZL3sv3 = addrspace(1) externally_initialized global ptr addrspace(1) null
66
+ // CUDA-NORDC-DAG: @_ZL3sv3 = addrspace(1) externally_initialized global i32 0, align 4
67
+ // HIP-RDC-DAG: @_ZL3sv3.static.[[HASH]] = addrspace(1) externally_initialized global ptr addrspace(1) null
68
+ // CUDA-RDC-DAG: @_ZL3sv3__static__[[HASH]] = addrspace(1) externally_initialized global i32 0, align 4
58
69
// HOST-DAG: @_ZL3sv3 = internal externally_initialized global ptr null
59
- #if __HIP__
60
70
static __managed__ int sv3;
61
- #endif
62
71
63
72
__device__ __host__ int work (int *x);
64
73
65
74
__device__ __host__ int fun1 () {
66
- return work (&ev1) + work (&ev2) + work (&sv1) + work (&sv2)
67
- #if __HIP__
68
- + work (&ev3) + work (&sv3)
69
- #endif
70
- ;
75
+ return work (&ev1) + work (&ev2) + work (&sv1) + work (&sv2) +
76
+ work (&ev3) + work (&sv3);
71
77
}
72
78
73
- // HOST : hipRegisterVar({{.*}}@v1
74
- // HOST : hipRegisterVar({{.*}}@v2
75
- // HOST : hipRegisterManagedVar({{.*}}@v3
76
- // HOST -NOT: hipRegisterVar({{.*}}@ev1
77
- // HOST -NOT: hipRegisterVar({{.*}}@ev2
78
- // HOST -NOT: hipRegisterManagedVar({{.*}}@ev3
79
- // HOST : hipRegisterVar({{.*}}@_ZL3sv1
80
- // HOST : hipRegisterVar({{.*}}@_ZL3sv2
81
- // HOST : hipRegisterManagedVar({{.*}}@_ZL3sv3
79
+ // HIP-H : hipRegisterVar({{.*}}@v1
80
+ // HIP-H : hipRegisterVar({{.*}}@v2
81
+ // HIP-H : hipRegisterManagedVar({{.*}}@v3
82
+ // HIP-H -NOT: hipRegisterVar({{.*}}@ev1
83
+ // HIP-H -NOT: hipRegisterVar({{.*}}@ev2
84
+ // HIP-H -NOT: hipRegisterManagedVar({{.*}}@ev3
85
+ // HIP-H : hipRegisterVar({{.*}}@_ZL3sv1
86
+ // HIP-H : hipRegisterVar({{.*}}@_ZL3sv2
87
+ // HIP-H : hipRegisterManagedVar({{.*}}@_ZL3sv3
0 commit comments