brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.0 KiB · b10e2d7 Raw
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