summaryrefslogtreecommitdiff
path: root/test/CodeGenOpenCLCXX/template-address-spaces.cl
diff options
context:
space:
mode:
authorMikael Nilsson <mikael.nilsson@arm.com>2018-12-12 14:11:59 +0000
committerMikael Nilsson <mikael.nilsson@arm.com>2018-12-12 14:11:59 +0000
commit8e20f7a8e079e9229434a170e7e451eb3c779966 (patch)
tree41b4fe607bea3167baa47bc7cfb5f4cae141367a /test/CodeGenOpenCLCXX/template-address-spaces.cl
parentdf55f5633e966afc4b3d5fc76e76f89ba4140b3c (diff)
downloadclang-8e20f7a8e079e9229434a170e7e451eb3c779966.tar.gz
[OpenCL] Add generic AS to 'this' pointer
Address spaces are cast into generic before invoking the constructor. Added support for a trailing Qualifiers object in FunctionProtoType. Differential Revision: https://reviews.llvm.org/D54862 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@348927 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGenOpenCLCXX/template-address-spaces.cl')
-rw-r--r--test/CodeGenOpenCLCXX/template-address-spaces.cl15
1 files changed, 9 insertions, 6 deletions
diff --git a/test/CodeGenOpenCLCXX/template-address-spaces.cl b/test/CodeGenOpenCLCXX/template-address-spaces.cl
index eb274ea456..7c722537fc 100644
--- a/test/CodeGenOpenCLCXX/template-address-spaces.cl
+++ b/test/CodeGenOpenCLCXX/template-address-spaces.cl
@@ -9,13 +9,16 @@ struct S{
template<typename T>
T S<T>::foo() { return a;}
-//CHECK: %struct.S = type { i32 }
-//CHECK: %struct.S.0 = type { i32 addrspace(4)* }
-//CHECK: %struct.S.1 = type { i32 addrspace(1)* }
+// CHECK: %struct.S = type { i32 }
+// CHECK: %struct.S.0 = type { i32 addrspace(4)* }
+// CHECK: %struct.S.1 = type { i32 addrspace(1)* }
-//CHECK: i32 @_ZN1SIiE3fooEv(%struct.S* %this)
-//CHECK: i32 addrspace(4)* @_ZN1SIPU3AS4iE3fooEv(%struct.S.0* %this)
-//CHECK: i32 addrspace(1)* @_ZN1SIPU3AS1iE3fooEv(%struct.S.1* %this)
+// CHECK: %0 = addrspacecast %struct.S* %sint to %struct.S addrspace(4)*
+// CHECK: %call = call i32 @_ZNU3AS41SIiE3fooEv(%struct.S addrspace(4)* %0) #1
+// CHECK: %1 = addrspacecast %struct.S.0* %sintptr to %struct.S.0 addrspace(4)*
+// CHECK: %call1 = call i32 addrspace(4)* @_ZNU3AS41SIPU3AS4iE3fooEv(%struct.S.0 addrspace(4)* %1) #1
+// CHECK: %2 = addrspacecast %struct.S.1* %sintptrgl to %struct.S.1 addrspace(4)*
+// CHECK: %call2 = call i32 addrspace(1)* @_ZNU3AS41SIPU3AS1iE3fooEv(%struct.S.1 addrspace(4)* %2) #1
void bar(){
S<int> sint;