blob: fa6b14c1ca7dc2a1e489cb132ebca4fc3bad3200 [file] [log] [blame]
Justin Holewinski2c585b92012-05-24 17:43:12 +00001// RUN: %clang_cc1 -triple nvptx-unknown-unknown -emit-llvm -o %t %s
2// RUN: %clang_cc1 -triple nvptx64-unknown-unknown -emit-llvm -o %t %s
Justin Holewinski285dc652011-04-20 19:34:15 +00003
Justin Holewinski285dc652011-04-20 19:34:15 +00004int read_tid() {
5
6 int x = __builtin_ptx_read_tid_x();
7 int y = __builtin_ptx_read_tid_y();
8 int z = __builtin_ptx_read_tid_z();
9 int w = __builtin_ptx_read_tid_w();
10
11 return x + y + z + w;
12
13}
14
15int read_ntid() {
16
17 int x = __builtin_ptx_read_ntid_x();
18 int y = __builtin_ptx_read_ntid_y();
19 int z = __builtin_ptx_read_ntid_z();
20 int w = __builtin_ptx_read_ntid_w();
21
22 return x + y + z + w;
23
24}
25
26int read_ctaid() {
27
28 int x = __builtin_ptx_read_ctaid_x();
29 int y = __builtin_ptx_read_ctaid_y();
30 int z = __builtin_ptx_read_ctaid_z();
31 int w = __builtin_ptx_read_ctaid_w();
32
33 return x + y + z + w;
34
35}
36
37int read_nctaid() {
38
39 int x = __builtin_ptx_read_nctaid_x();
40 int y = __builtin_ptx_read_nctaid_y();
41 int z = __builtin_ptx_read_nctaid_z();
42 int w = __builtin_ptx_read_nctaid_w();
43
44 return x + y + z + w;
45
46}
47
48int read_ids() {
49
50 int a = __builtin_ptx_read_laneid();
51 int b = __builtin_ptx_read_warpid();
52 int c = __builtin_ptx_read_nwarpid();
53 int d = __builtin_ptx_read_smid();
54 int e = __builtin_ptx_read_nsmid();
55 int f = __builtin_ptx_read_gridid();
56
57 return a + b + c + d + e + f;
58
59}
60
61int read_lanemasks() {
62
63 int a = __builtin_ptx_read_lanemask_eq();
64 int b = __builtin_ptx_read_lanemask_le();
65 int c = __builtin_ptx_read_lanemask_lt();
66 int d = __builtin_ptx_read_lanemask_ge();
67 int e = __builtin_ptx_read_lanemask_gt();
68
69 return a + b + c + d + e;
70
71}
72
73
74long read_clocks() {
75
76 int a = __builtin_ptx_read_clock();
77 long b = __builtin_ptx_read_clock64();
78
79 return (long)a + b;
80
81}
82
83int read_pms() {
84
85 int a = __builtin_ptx_read_pm0();
86 int b = __builtin_ptx_read_pm1();
87 int c = __builtin_ptx_read_pm2();
88 int d = __builtin_ptx_read_pm3();
89
90 return a + b + c + d;
91
92}
93
94void sync() {
95
96 __builtin_ptx_bar_sync(0);
97
98}