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