brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.8 KiB · 49b210c Raw
91 lines · plain
1// RUN: %clang_cc1 -triple spir-unknown-unknown -emit-llvm -O0 -cl-std=clc++ -o - %s | FileCheck %s2// RUN: %clang_cc1 -triple spir-unknown-unknown -emit-llvm -O0 -cl-std=cl2.0 -o - %s | FileCheck %s3// RUN: %clang_cc1 -triple spir-unknown-unknown -emit-llvm -O0 -cl-std=cl3.0 -o - %s | FileCheck %s4 5typedef struct {6  float x,y,z;7} A;8typedef private A *PA;9typedef global A *GA;10 11void test(void) {12  global int *glob;13  local int *loc;14  private int *priv;15  generic int *gen;16 17  //CHECK: %[[ARG:.*]] = addrspacecast ptr addrspace(1) %{{.*}} to ptr addrspace(4)18  //CHECK: %[[RET:.*]] = call spir_func ptr addrspace(1) @__to_global(ptr addrspace(4) %[[ARG]])19  //CHECK: store ptr addrspace(1) %[[RET]], ptr %glob20  glob = to_global(glob);21  22  //CHECK: %[[ARG:.*]] = addrspacecast ptr addrspace(3) %{{.*}} to ptr addrspace(4)23  //CHECK: %[[RET:.*]] = call spir_func ptr addrspace(1) @__to_global(ptr addrspace(4) %[[ARG]])24  //CHECK: store ptr addrspace(1) %[[RET]], ptr %glob25  glob = to_global(loc);26 27  //CHECK: %[[ARG:.*]] = addrspacecast ptr %{{.*}} to ptr addrspace(4)28  //CHECK: %[[RET:.*]] = call spir_func ptr addrspace(1) @__to_global(ptr addrspace(4) %[[ARG]])29  //CHECK: store ptr addrspace(1) %[[RET]], ptr %glob30  glob = to_global(priv);31 32  //CHECK: %[[ARG:.*]] = load ptr addrspace(4), ptr %gen33  //CHECK: %[[RET:.*]] = call spir_func ptr addrspace(1) @__to_global(ptr addrspace(4) %[[ARG]])34  //CHECK: store ptr addrspace(1) %[[RET]], ptr %glob35  glob = to_global(gen);36  37  //CHECK: %[[ARG:.*]] = addrspacecast ptr addrspace(1) %{{.*}} to ptr addrspace(4)38  //CHECK: %[[RET:.*]] = call spir_func ptr addrspace(3) @__to_local(ptr addrspace(4) %[[ARG]])39  //CHECK: store ptr addrspace(3) %[[RET]], ptr %loc40  loc = to_local(glob);41 42  //CHECK: %[[ARG:.*]] = addrspacecast ptr addrspace(3) %{{.*}} to ptr addrspace(4)43  //CHECK: %[[RET:.*]] = call spir_func ptr addrspace(3) @__to_local(ptr addrspace(4) %[[ARG]])44  //CHECK: store ptr addrspace(3) %[[RET]], ptr %loc45  loc = to_local(loc);46 47  //CHECK: %[[ARG:.*]] = addrspacecast ptr %{{.*}} to ptr addrspace(4)48  //CHECK: %[[RET:.*]] = call spir_func ptr addrspace(3) @__to_local(ptr addrspace(4) %[[ARG]])49  //CHECK: store ptr addrspace(3) %[[RET]], ptr %loc50  loc = to_local(priv);51 52  //CHECK: %[[ARG:.*]] = load ptr addrspace(4), ptr %gen53  //CHECK: %[[RET:.*]] = call spir_func ptr addrspace(3) @__to_local(ptr addrspace(4) %[[ARG]])54  //CHECK: store ptr addrspace(3) %[[RET]], ptr %loc55  loc = to_local(gen);56 57  //CHECK: %[[ARG:.*]] = addrspacecast ptr addrspace(1) %{{.*}} to ptr addrspace(4)58  //CHECK: %[[RET:.*]] = call spir_func ptr @__to_private(ptr addrspace(4) %[[ARG]])59  //CHECK: store ptr %[[RET]], ptr %priv60  priv = to_private(glob);61 62  //CHECK: %[[ARG:.*]] = addrspacecast ptr addrspace(3) %{{.*}} to ptr addrspace(4)63  //CHECK: %[[RET:.*]] = call spir_func ptr @__to_private(ptr addrspace(4) %[[ARG]])64  //CHECK: store ptr %[[RET]], ptr %priv65  priv = to_private(loc);66 67  //CHECK: %[[ARG:.*]] = addrspacecast ptr %{{.*}} to ptr addrspace(4)68  //CHECK: %[[RET:.*]] = call spir_func ptr @__to_private(ptr addrspace(4) %[[ARG]])69  //CHECK: store ptr %[[RET]], ptr %priv70  priv = to_private(priv);71 72  //CHECK: %[[ARG:.*]] = load ptr addrspace(4), ptr %gen73  //CHECK: %[[RET:.*]] = call spir_func ptr @__to_private(ptr addrspace(4) %[[ARG]])74  //CHECK: store ptr %[[RET]], ptr %priv75  priv = to_private(gen);76 77  //CHECK: %[[ARG:.*]] = addrspacecast ptr %{{.*}} to ptr addrspace(4)78  //CHECK: %[[RET:.*]] = call spir_func ptr addrspace(1) @__to_global(ptr addrspace(4) %[[ARG]])79  //CHECK: store ptr addrspace(1) %[[RET]], ptr %gA80  PA pA;81  GA gA = to_global(pA);82 83  //CHECK-NOT: addrspacecast84  //CHECK-NOT: bitcast85  //CHECK: call spir_func ptr addrspace(1) @__to_global(ptr addrspace(4) %{{.*}})86  //CHECK-NOT: addrspacecast87  //CHECK-NOT: bitcast88  generic void *gen_v;89  global void *glob_v = to_global(gen_v);90}91