1; RUN: llc < %s -march=nvptx -mcpu=sm_20 | FileCheck %s
2; RUN: llc < %s -march=nvptx64 -mcpu=sm_20 | FileCheck %s
3
4
5@texture = internal addrspace(1) global i64 0, align 8
6; CHECK: .global .texref texture
7@surface = internal addrspace(1) global i64 0, align 8
8; CHECK: .global .surfref surface
9
10
11; CHECK: .entry kernel_func_maxntid
12define void @kernel_func_maxntid(float* %a) {
13; CHECK: .maxntid 10, 20, 30
14; CHECK: ret
15  ret void
16}
17
18; CHECK: .entry kernel_func_reqntid
19define void @kernel_func_reqntid(float* %a) {
20; CHECK: .reqntid 11, 22, 33
21; CHECK: ret
22  ret void
23}
24
25; CHECK: .entry kernel_func_minctasm
26define void @kernel_func_minctasm(float* %a) {
27; CHECK: .minnctapersm 42
28; CHECK: ret
29  ret void
30}
31
32
33
34!nvvm.annotations = !{!1, !2, !3, !4, !5, !6, !7, !8}
35
36!1 = metadata !{void (float*)* @kernel_func_maxntid, metadata !"kernel", i32 1}
37!2 = metadata !{void (float*)* @kernel_func_maxntid,
38                metadata !"maxntidx", i32 10,
39                metadata !"maxntidy", i32 20,
40                metadata !"maxntidz", i32 30}
41
42!3 = metadata !{void (float*)* @kernel_func_reqntid, metadata !"kernel", i32 1}
43!4 = metadata !{void (float*)* @kernel_func_reqntid,
44                metadata !"reqntidx", i32 11,
45                metadata !"reqntidy", i32 22,
46                metadata !"reqntidz", i32 33}
47
48!5 = metadata !{void (float*)* @kernel_func_minctasm, metadata !"kernel", i32 1}
49!6 = metadata !{void (float*)* @kernel_func_minctasm,
50                metadata !"minctasm", i32 42}
51
52!7 = metadata !{i64 addrspace(1)* @texture, metadata !"texture", i32 1}
53!8 = metadata !{i64 addrspace(1)* @surface, metadata !"surface", i32 1}
54