36 lines · plain
1//RUN: %clang_cc1 %s -triple spir-unknown-unknown -emit-llvm -O0 -o - | FileCheck %s2 3struct C {4 void foo() __local;5 void foo() __global;6 void foo();7 void bar();8};9 10__global C c1;11 12__kernel void k() {13 __local C c2;14 C c3;15 __global C &c_ref = c1;16 __global C *c_ptr;17 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();28 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 yet32 //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();35}36