| 1 | // RUN: %clang_cc1 %s -ffake-address-space-map -faddress-space-map-mangling=yes -triple %itanium_abi_triple -emit-llvm -o - | FileCheck -check-prefixes="ASMANG,ASMANG10" %s |
| 2 | // RUN: %clang_cc1 %s -cl-std=CL2.0 -ffake-address-space-map -faddress-space-map-mangling=yes -triple %itanium_abi_triple -emit-llvm -o - | FileCheck -check-prefixes="ASMANG,ASMANG20" %s |
| 3 | // RUN: %clang_cc1 %s -ffake-address-space-map -faddress-space-map-mangling=no -triple %itanium_abi_triple -emit-llvm -o - | FileCheck -check-prefixes="NOASMANG,NOASMANG10" %s |
| 4 | // RUN: %clang_cc1 %s -cl-std=CL2.0 -ffake-address-space-map -faddress-space-map-mangling=no -triple %itanium_abi_triple -emit-llvm -o - | FileCheck -check-prefixes="NOASMANG,NOASMANG20" %s |
| 5 | |
| 6 | // We check that the address spaces are mangled the same in both version of OpenCL |
| 7 | // RUN: %clang_cc1 %s -triple spir-unknown-unknown -cl-std=CL2.0 -emit-llvm -o - | FileCheck -check-prefix=OCL-20 %s |
| 8 | // RUN: %clang_cc1 %s -triple spir-unknown-unknown -cl-std=CL1.2 -emit-llvm -o - | FileCheck -check-prefix=OCL-12 %s |
| 9 | |
| 10 | // We can't name this f as private is equivalent to default |
| 11 | // no specifier given address space so we get multiple definition |
| 12 | // warnings, but we do want it for comparison purposes. |
| 13 | __attribute__((overloadable)) |
| 14 | void ff(int *arg) { } |
| 15 | // ASMANG10: @_Z2ffPi |
| 16 | // ASMANG20: @_Z2ffPU3AS4i |
| 17 | // NOASMANG10: @_Z2ffPU9CLprivatei |
| 18 | // NOASMANG20: @_Z2ffPU9CLgenerici |
| 19 | // OCL-20-DAG: @_Z2ffPU3AS4i |
| 20 | // OCL-12-DAG: @_Z2ffPi |
| 21 | |
| 22 | __attribute__((overloadable)) |
| 23 | void f(private int *arg) { } |
| 24 | // ASMANG: @_Z1fPi |
| 25 | // NOASMANG: @_Z1fPU9CLprivatei |
| 26 | // OCL-20-DAG: @_Z1fPi |
| 27 | // OCL-12-DAG: @_Z1fPi |
| 28 | |
| 29 | __attribute__((overloadable)) |
| 30 | void f(global int *arg) { } |
| 31 | // ASMANG: @_Z1fPU3AS1i |
| 32 | // NOASMANG: @_Z1fPU8CLglobali |
| 33 | // OCL-20-DAG: @_Z1fPU3AS1i |
| 34 | // OCL-12-DAG: @_Z1fPU3AS1i |
| 35 | |
| 36 | __attribute__((overloadable)) |
| 37 | void f(local int *arg) { } |
| 38 | // ASMANG: @_Z1fPU3AS3i |
| 39 | // NOASMANG: @_Z1fPU7CLlocali |
| 40 | // OCL-20-DAG: @_Z1fPU3AS3i |
| 41 | // OCL-12-DAG: @_Z1fPU3AS3i |
| 42 | |
| 43 | __attribute__((overloadable)) |
| 44 | void f(constant int *arg) { } |
| 45 | // ASMANG: @_Z1fPU3AS2i |
| 46 | // NOASMANG: @_Z1fPU10CLconstanti |
| 47 | // OCL-20-DAG: @_Z1fPU3AS2i |
| 48 | // OCL-12-DAG: @_Z1fPU3AS2i |
| 49 | |
| 50 | #if __OPENCL_C_VERSION__ >= 200 |
| 51 | __attribute__((overloadable)) |
| 52 | void f(generic int *arg) { } |
| 53 | // ASMANG20: @_Z1fPU3AS4i |
| 54 | // NOASMANG20: @_Z1fPU9CLgenerici |
| 55 | // OCL-20-DAG: @_Z1fPU3AS4i |
| 56 | #endif |
| 57 | |