xref: /llvm-project/clang/test/CodeGenOpenCLCXX/method-overload-address-space.clcpp (revision ebd97534e71aafaa637e466d700f66bbfa63d56b)
1*ebd97534SNikita Popov//RUN: %clang_cc1 %s -triple spir-unknown-unknown -emit-llvm -O0 -o - | FileCheck %s
2d1c8a151SAnastasia Stulova
3d1c8a151SAnastasia Stulovastruct C {
4d1c8a151SAnastasia Stulova  void foo() __local;
5d1c8a151SAnastasia Stulova  void foo() __global;
6d1c8a151SAnastasia Stulova  void foo();
7d1c8a151SAnastasia Stulova  void bar();
8d1c8a151SAnastasia Stulova};
9d1c8a151SAnastasia Stulova
10d1c8a151SAnastasia Stulova__global C c1;
11d1c8a151SAnastasia Stulova
12d1c8a151SAnastasia Stulova__kernel void k() {
13d1c8a151SAnastasia Stulova  __local C c2;
14d1c8a151SAnastasia Stulova  C c3;
15d1c8a151SAnastasia Stulova  __global C &c_ref = c1;
16d1c8a151SAnastasia Stulova  __global C *c_ptr;
17d1c8a151SAnastasia Stulova
18*ebd97534SNikita Popov  // CHECK: call spir_func void @_ZNU3AS11C3fooEv(ptr addrspace(1)
19d1c8a151SAnastasia Stulova  c1.foo();
20*ebd97534SNikita Popov  // CHECK: call spir_func void @_ZNU3AS31C3fooEv(ptr addrspace(3)
21d1c8a151SAnastasia Stulova  c2.foo();
22*ebd97534SNikita Popov  // CHECK: call spir_func void @_ZNU3AS41C3fooEv(ptr addrspace(4)
23d1c8a151SAnastasia Stulova  c3.foo();
24*ebd97534SNikita Popov  // CHECK: call spir_func void @_ZNU3AS11C3fooEv(ptr addrspace(1)
25d1c8a151SAnastasia Stulova  c_ptr->foo();
26*ebd97534SNikita Popov  // CHECK: spir_func void @_ZNU3AS11C3fooEv(ptr addrspace(1)
27d1c8a151SAnastasia Stulova  c_ref.foo();
28d1c8a151SAnastasia Stulova
29*ebd97534SNikita Popov  // CHECK: call spir_func void @_ZNU3AS41C3barEv(ptr addrspace(4) {{[^,]*}} addrspacecast (ptr addrspace(1) @c1 to ptr addrspace(4)))
30d1c8a151SAnastasia Stulova  c1.bar();
31d1c8a151SAnastasia Stulova  //FIXME: Doesn't compile yet
32d1c8a151SAnastasia Stulova  //c_ptr->bar();
33*ebd97534SNikita Popov  // CHECK: call spir_func void @_ZNU3AS41C3barEv(ptr addrspace(4) {{[^,]*}} addrspacecast (ptr addrspace(1) @c1 to ptr addrspace(4)))
34d1c8a151SAnastasia Stulova  c_ref.bar();
35d1c8a151SAnastasia Stulova}
36