Anastasia Stulova | 88ed70e | 2019-07-25 11:04:29 +0000 | [diff] [blame] | 1 | //RUN: %clang_cc1 %s -triple spir-unknown-unknown -cl-std=clc++ -emit-llvm -O0 -o - | FileCheck %s |
Anastasia Stulova | 5cffa45 | 2019-01-21 16:01:38 +0000 | [diff] [blame] | 2 | |
| 3 | struct 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 | |
Erich Keane | 61478ec | 2019-07-26 12:36:12 +0000 | [diff] [blame] | 18 | // CHECK: call spir_func void @_ZNU3AS11C3fooEv(%struct.C addrspace(1)* |
Anastasia Stulova | 5cffa45 | 2019-01-21 16:01:38 +0000 | [diff] [blame] | 19 | c1.foo(); |
Erich Keane | 61478ec | 2019-07-26 12:36:12 +0000 | [diff] [blame] | 20 | // CHECK: call spir_func void @_ZNU3AS31C3fooEv(%struct.C addrspace(3)* |
Anastasia Stulova | 5cffa45 | 2019-01-21 16:01:38 +0000 | [diff] [blame] | 21 | c2.foo(); |
Erich Keane | 61478ec | 2019-07-26 12:36:12 +0000 | [diff] [blame] | 22 | // CHECK: call spir_func void @_ZNU3AS41C3fooEv(%struct.C addrspace(4)* |
Anastasia Stulova | 5cffa45 | 2019-01-21 16:01:38 +0000 | [diff] [blame] | 23 | c3.foo(); |
Erich Keane | 61478ec | 2019-07-26 12:36:12 +0000 | [diff] [blame] | 24 | // CHECK: call spir_func void @_ZNU3AS11C3fooEv(%struct.C addrspace(1)* |
Anastasia Stulova | 5cffa45 | 2019-01-21 16:01:38 +0000 | [diff] [blame] | 25 | c_ptr->foo(); |
Erich Keane | 61478ec | 2019-07-26 12:36:12 +0000 | [diff] [blame] | 26 | // CHECK: spir_func void @_ZNU3AS11C3fooEv(%struct.C addrspace(1)* |
Anastasia Stulova | 5cffa45 | 2019-01-21 16:01:38 +0000 | [diff] [blame] | 27 | c_ref.foo(); |
| 28 | |
Erich Keane | 61478ec | 2019-07-26 12:36:12 +0000 | [diff] [blame] | 29 | // CHECK: call spir_func void @_ZNU3AS41C3barEv(%struct.C addrspace(4)* addrspacecast (%struct.C addrspace(1)* @c1 to %struct.C addrspace(4)*)) |
Anastasia Stulova | 5cffa45 | 2019-01-21 16:01:38 +0000 | [diff] [blame] | 30 | c1.bar(); |
| 31 | //FIXME: Doesn't compile yet |
| 32 | //c_ptr->bar(); |
Erich Keane | 61478ec | 2019-07-26 12:36:12 +0000 | [diff] [blame] | 33 | // CHECK: call spir_func void @_ZNU3AS41C3barEv(%struct.C addrspace(4)* addrspacecast (%struct.C addrspace(1)* @c1 to %struct.C addrspace(4)*)) |
Anastasia Stulova | 5cffa45 | 2019-01-21 16:01:38 +0000 | [diff] [blame] | 34 | c_ref.bar(); |
| 35 | } |