File: to_addr_builtin.cl

package info (click to toggle)
llvm-toolchain-15 1%3A15.0.6-4
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 1,554,644 kB
  • sloc: cpp: 5,922,452; ansic: 1,012,136; asm: 674,362; python: 191,568; objc: 73,855; f90: 42,327; lisp: 31,913; pascal: 11,973; javascript: 10,144; sh: 9,421; perl: 7,447; ml: 5,527; awk: 3,523; makefile: 2,520; xml: 885; cs: 573; fortran: 567
file content (130 lines) | stat: -rw-r--r-- 6,961 bytes parent folder | download | duplicates (11)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
// RUN: %clang_cc1 -verify -fsyntax-only %s
// RUN: %clang_cc1 -Wconversion -verify -fsyntax-only -cl-std=CL2.0 %s
// RUN: %clang_cc1 -Wconversion -verify -fsyntax-only -cl-std=CL3.0 -cl-ext=-all %s
// RUN: %clang_cc1 -Wconversion -verify -fsyntax-only -cl-std=CL3.0 %s

void test(void) {
  global int *glob;
  local int *loc;
  constant int *con;
  private int *priv;
  global float *glob_wrong_ty;
  typedef constant int const_int_ty;
  const_int_ty *con_typedef;

  glob = to_global(glob, loc);
#if (__OPENCL_C_VERSION__ < CL_VERSION_2_0) || (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 && !defined(__opencl_c_generic_address_space))
  // expected-error@-2{{use of undeclared identifier 'to_global'}}
#else
  // expected-error@-4{{too many arguments to function call, expected 1, have 2}}
#endif

  int x;
  glob = to_global(x);
#if (__OPENCL_C_VERSION__ < CL_VERSION_2_0) || (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 && !defined(__opencl_c_generic_address_space))
  // expected-error@-2{{use of undeclared identifier 'to_global'}}
#else
  // expected-error@-4{{invalid argument x to function: 'to_global', expecting a generic pointer argument}}
#endif

  glob = to_global(con);
#if (__OPENCL_C_VERSION__ < CL_VERSION_2_0) || (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 && !defined(__opencl_c_generic_address_space))
  // expected-error@-2{{use of undeclared identifier 'to_global'}}
#else
  // expected-error@-4{{invalid argument con to function: 'to_global', expecting a generic pointer argument}}
#endif

  glob = to_global(con_typedef);
#if (__OPENCL_C_VERSION__ < CL_VERSION_2_0) || (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 && !defined(__opencl_c_generic_address_space))
  // expected-error@-2{{use of undeclared identifier 'to_global'}}
#else
  // expected-error@-4{{invalid argument con_typedef to function: 'to_global', expecting a generic pointer argument}}
#endif

  loc = to_global(glob);
#if (__OPENCL_C_VERSION__ < CL_VERSION_2_0) || (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 && !defined(__opencl_c_generic_address_space))
  // expected-error@-2{{use of undeclared identifier 'to_global'}}
#else
  // expected-error@-4{{assigning '__global int *' to '__local int *__private' changes address space of pointer}}
  // expected-warning@-5{{passing non-generic address space pointer to to_global may cause dynamic conversion affecting performance}}
#endif

  loc = to_private(glob);
#if (__OPENCL_C_VERSION__ < CL_VERSION_2_0) || (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 && !defined(__opencl_c_generic_address_space))
  // expected-error@-2{{use of undeclared identifier 'to_private'}}
#else
  // expected-error@-4{{assigning '__private int *' to '__local int *__private' changes address space of pointer}}
  // expected-warning@-5{{passing non-generic address space pointer to to_private may cause dynamic conversion affecting performance}}
#endif

  loc = to_local(glob);
#if (__OPENCL_C_VERSION__ < CL_VERSION_2_0) || (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 && !defined(__opencl_c_generic_address_space))
  // expected-error@-2{{use of undeclared identifier 'to_local'}}
#else
  // expected-warning@-4{{passing non-generic address space pointer to to_local may cause dynamic conversion affecting performance}}
#endif

  priv = to_global(glob);
#if (__OPENCL_C_VERSION__ < CL_VERSION_2_0) || (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 && !defined(__opencl_c_generic_address_space))
  // expected-error@-2{{use of undeclared identifier 'to_global'}}
#else
  // expected-error@-4{{assigning '__global int *' to '__private int *__private' changes address space of pointer}}
  // expected-warning@-5{{passing non-generic address space pointer to to_global may cause dynamic conversion affecting performance}}
#endif

  priv = to_private(glob);
#if (__OPENCL_C_VERSION__ < CL_VERSION_2_0) || (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 && !defined(__opencl_c_generic_address_space))
  // expected-error@-2{{use of undeclared identifier 'to_private'}}
#else
  // expected-warning@-4{{passing non-generic address space pointer to to_private may cause dynamic conversion affecting performance}}
#endif


  priv = to_local(glob);
#if (__OPENCL_C_VERSION__ < CL_VERSION_2_0) || (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 && !defined(__opencl_c_generic_address_space))
  // expected-error@-2{{use of undeclared identifier 'to_local'}}
#else
  // expected-error@-4{{assigning '__local int *' to '__private int *__private' changes address space of pointer}}
  // expected-warning@-5{{passing non-generic address space pointer to to_local may cause dynamic conversion affecting performance}}
#endif

  glob = to_global(glob);
#if (__OPENCL_C_VERSION__ < CL_VERSION_2_0) || (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 && !defined(__opencl_c_generic_address_space))
  // expected-error@-2{{use of undeclared identifier 'to_global'}}
#else
  // expected-warning@-4{{passing non-generic address space pointer to to_global may cause dynamic conversion affecting performance}}
#endif

  glob = to_private(glob);
#if (__OPENCL_C_VERSION__ < CL_VERSION_2_0) || (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 && !defined(__opencl_c_generic_address_space))
  // expected-error@-2{{use of undeclared identifier 'to_private'}}
#else
  // expected-error@-4{{assigning '__private int *' to '__global int *__private' changes address space of pointer}}
  // expected-warning@-5{{passing non-generic address space pointer to to_private may cause dynamic conversion affecting performance}}
#endif

  glob = to_local(glob);
#if (__OPENCL_C_VERSION__ < CL_VERSION_2_0) || (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 && !defined(__opencl_c_generic_address_space))
  // expected-error@-2{{use of undeclared identifier 'to_local'}}
#else
  // expected-error@-4{{assigning '__local int *' to '__global int *__private' changes address space of pointer}}
  // expected-warning@-5{{passing non-generic address space pointer to to_local may cause dynamic conversion affecting performance}}
#endif

  global char *glob_c = to_global(loc);
#if (__OPENCL_C_VERSION__ < CL_VERSION_2_0) || (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 && !defined(__opencl_c_generic_address_space))
  // expected-error@-2{{use of undeclared identifier 'to_global'}}
#else
  // expected-warning@-4{{incompatible pointer types initializing '__global char *__private' with an expression of type '__global int *'}}
  // expected-warning@-5{{passing non-generic address space pointer to to_global may cause dynamic conversion affecting performance}}
#endif

  glob_wrong_ty = to_global(glob);
#if (__OPENCL_C_VERSION__ < CL_VERSION_2_0) || (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 && !defined(__opencl_c_generic_address_space))
  // expected-error@-2{{use of undeclared identifier 'to_global'}}
#else
  // expected-warning@-4{{incompatible pointer types assigning to '__global float *__private' from '__global int *'}}
  // expected-warning@-5{{passing non-generic address space pointer to to_global may cause dynamic conversion affecting performance}}
#endif

}