Anastasia Stulova | a4b1cf3 | 2019-01-31 15:23:48 +0000 | [diff] [blame] | 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 |
David Tweed | 31d09b0 | 2013-09-13 12:04:22 +0000 | [diff] [blame] | 5 | |
Alexey Bader | a60db59 | 2016-12-07 08:43:49 +0000 | [diff] [blame] | 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 | |
David Tweed | 31d09b0 | 2013-09-13 12:04:22 +0000 | [diff] [blame] | 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) { } |
Yaxun Liu | b7318e0 | 2017-10-13 03:37:48 +0000 | [diff] [blame] | 15 | // ASMANG10: @_Z2ffPi |
| 16 | // ASMANG20: @_Z2ffPU3AS4i |
Anastasia Stulova | a4b1cf3 | 2019-01-31 15:23:48 +0000 | [diff] [blame] | 17 | // NOASMANG10: @_Z2ffPU9CLprivatei |
Yaxun Liu | b7318e0 | 2017-10-13 03:37:48 +0000 | [diff] [blame] | 18 | // NOASMANG20: @_Z2ffPU9CLgenerici |
Alexey Bader | a60db59 | 2016-12-07 08:43:49 +0000 | [diff] [blame] | 19 | // OCL-20-DAG: @_Z2ffPU3AS4i |
| 20 | // OCL-12-DAG: @_Z2ffPi |
David Tweed | 31d09b0 | 2013-09-13 12:04:22 +0000 | [diff] [blame] | 21 | |
| 22 | __attribute__((overloadable)) |
| 23 | void f(private int *arg) { } |
| 24 | // ASMANG: @_Z1fPi |
Yaxun Liu | b7318e0 | 2017-10-13 03:37:48 +0000 | [diff] [blame] | 25 | // NOASMANG: @_Z1fPU9CLprivatei |
Alexey Bader | a60db59 | 2016-12-07 08:43:49 +0000 | [diff] [blame] | 26 | // OCL-20-DAG: @_Z1fPi |
| 27 | // OCL-12-DAG: @_Z1fPi |
David Tweed | 31d09b0 | 2013-09-13 12:04:22 +0000 | [diff] [blame] | 28 | |
| 29 | __attribute__((overloadable)) |
| 30 | void f(global int *arg) { } |
| 31 | // ASMANG: @_Z1fPU3AS1i |
| 32 | // NOASMANG: @_Z1fPU8CLglobali |
Alexey Bader | a60db59 | 2016-12-07 08:43:49 +0000 | [diff] [blame] | 33 | // OCL-20-DAG: @_Z1fPU3AS1i |
| 34 | // OCL-12-DAG: @_Z1fPU3AS1i |
David Tweed | 31d09b0 | 2013-09-13 12:04:22 +0000 | [diff] [blame] | 35 | |
| 36 | __attribute__((overloadable)) |
| 37 | void f(local int *arg) { } |
Egor Churaev | 28f00aa | 2016-12-23 16:11:25 +0000 | [diff] [blame] | 38 | // ASMANG: @_Z1fPU3AS3i |
David Tweed | 31d09b0 | 2013-09-13 12:04:22 +0000 | [diff] [blame] | 39 | // NOASMANG: @_Z1fPU7CLlocali |
Egor Churaev | 28f00aa | 2016-12-23 16:11:25 +0000 | [diff] [blame] | 40 | // OCL-20-DAG: @_Z1fPU3AS3i |
| 41 | // OCL-12-DAG: @_Z1fPU3AS3i |
David Tweed | 31d09b0 | 2013-09-13 12:04:22 +0000 | [diff] [blame] | 42 | |
| 43 | __attribute__((overloadable)) |
| 44 | void f(constant int *arg) { } |
Egor Churaev | 28f00aa | 2016-12-23 16:11:25 +0000 | [diff] [blame] | 45 | // ASMANG: @_Z1fPU3AS2i |
David Tweed | 31d09b0 | 2013-09-13 12:04:22 +0000 | [diff] [blame] | 46 | // NOASMANG: @_Z1fPU10CLconstanti |
Egor Churaev | 28f00aa | 2016-12-23 16:11:25 +0000 | [diff] [blame] | 47 | // OCL-20-DAG: @_Z1fPU3AS2i |
| 48 | // OCL-12-DAG: @_Z1fPU3AS2i |
Yaxun Liu | b7318e0 | 2017-10-13 03:37:48 +0000 | [diff] [blame] | 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 |