[clang] Implement lifetime analysis for lifetime_capture_by(X) (#115921)
[llvm-project.git] / clang / test / CodeGenOpenCLCXX / method-overload-address-space.clcpp
blobb10e2d790b75f760d2a7ace143c1b9e332a247fd
1 //RUN: %clang_cc1 %s -triple spir-unknown-unknown -emit-llvm -O0 -o - | FileCheck %s
3 struct C {
4   void foo() __local;
5   void foo() __global;
6   void foo();
7   void bar();
8 };
10 __global C c1;
12 __kernel void k() {
13   __local C c2;
14   C c3;
15   __global C &c_ref = c1;
16   __global C *c_ptr;
18   // CHECK: call spir_func void @_ZNU3AS11C3fooEv(ptr addrspace(1)
19   c1.foo();
20   // CHECK: call spir_func void @_ZNU3AS31C3fooEv(ptr addrspace(3)
21   c2.foo();
22   // CHECK: call spir_func void @_ZNU3AS41C3fooEv(ptr addrspace(4)
23   c3.foo();
24   // CHECK: call spir_func void @_ZNU3AS11C3fooEv(ptr addrspace(1)
25   c_ptr->foo();
26   // CHECK: spir_func void @_ZNU3AS11C3fooEv(ptr addrspace(1)
27   c_ref.foo();
29   // CHECK: call spir_func void @_ZNU3AS41C3barEv(ptr addrspace(4) {{[^,]*}} addrspacecast (ptr addrspace(1) @c1 to ptr addrspace(4)))
30   c1.bar();
31   //FIXME: Doesn't compile yet
32   //c_ptr->bar();
33   // CHECK: call spir_func void @_ZNU3AS41C3barEv(ptr addrspace(4) {{[^,]*}} addrspacecast (ptr addrspace(1) @c1 to ptr addrspace(4)))
34   c_ref.bar();