summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGenOpenCL/blocks.cl
blob: 375c53963253ce28a854ca09d1fc61b169d7c3cc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// RUN: %clang_cc1 %s -cl-std=CL2.0 -emit-llvm -o - -O0 -triple spir-unknown-unknown | FileCheck %s --check-prefix=COMMON
// RUN: %clang_cc1 %s -cl-std=CL2.0 -emit-llvm -o - -O0 -triple amdgcn-amd-amdhsa-opencl | FileCheck %s --check-prefix=AMD

// Checking for null instead of @__NSConcreteGlobalBlock symbol
// COMMON: @__block_literal_global = internal addrspace(1) constant { i8**, i32, i32, i8*, %struct.__block_descriptor addrspace(2)* } { i8** null
// AMD: @__block_literal_global = internal addrspace(1) constant { i8**, i32, i32, i8*, %struct.__block_descriptor addrspace(2)* } { i8** addrspacecast (i8* addrspace(4)* null to i8**)
void (^block_A)(local void *) = ^(local void *a) {
  return;
};

void foo(){
  int i;
// Checking for null instead of @_NSConcreteStackBlock symbol
// COMMON: store i8* null, i8** %block.isa
// AMD: store i8* addrspacecast (i8 addrspace(4)* null to i8*), i8** %block.isa,
  int (^ block_B)(void) = ^{
    return i;
  };
}
OpenPOWER on IntegriCloud