blob: 3c74c718c2a2a8eeae308871dbcf1bd2c332a11b [file] [log] [blame]
Hans Wennborgc9bd88e2014-01-14 19:35:09 +00001// RUN: %clang_cc1 %s -ffake-address-space-map -faddress-space-map-mangling=yes -triple %itanium_abi_triple -emit-llvm -o - | FileCheck -check-prefix=ASMANG %s
2// RUN: %clang_cc1 %s -ffake-address-space-map -faddress-space-map-mangling=no -triple %itanium_abi_triple -emit-llvm -o - | FileCheck -check-prefix=NOASMANG %s
David Tweed31d09b02013-09-13 12:04:22 +00003
Alexey Badera60db592016-12-07 08:43:49 +00004// We check that the address spaces are mangled the same in both version of OpenCL
5// RUN: %clang_cc1 %s -triple spir-unknown-unknown -cl-std=CL2.0 -emit-llvm -o - | FileCheck -check-prefix=OCL-20 %s
6// RUN: %clang_cc1 %s -triple spir-unknown-unknown -cl-std=CL1.2 -emit-llvm -o - | FileCheck -check-prefix=OCL-12 %s
7
David Tweed31d09b02013-09-13 12:04:22 +00008// We can't name this f as private is equivalent to default
9// no specifier given address space so we get multiple definition
10// warnings, but we do want it for comparison purposes.
11__attribute__((overloadable))
12void ff(int *arg) { }
13// ASMANG: @_Z2ffPi
14// NOASMANG: @_Z2ffPi
Alexey Badera60db592016-12-07 08:43:49 +000015// OCL-20-DAG: @_Z2ffPU3AS4i
16// OCL-12-DAG: @_Z2ffPi
David Tweed31d09b02013-09-13 12:04:22 +000017
18__attribute__((overloadable))
19void f(private int *arg) { }
20// ASMANG: @_Z1fPi
21// NOASMANG: @_Z1fPi
Alexey Badera60db592016-12-07 08:43:49 +000022// OCL-20-DAG: @_Z1fPi
23// OCL-12-DAG: @_Z1fPi
David Tweed31d09b02013-09-13 12:04:22 +000024
25__attribute__((overloadable))
26void f(global int *arg) { }
27// ASMANG: @_Z1fPU3AS1i
28// NOASMANG: @_Z1fPU8CLglobali
Alexey Badera60db592016-12-07 08:43:49 +000029// OCL-20-DAG: @_Z1fPU3AS1i
30// OCL-12-DAG: @_Z1fPU3AS1i
David Tweed31d09b02013-09-13 12:04:22 +000031
32__attribute__((overloadable))
33void f(local int *arg) { }
Egor Churaev28f00aa2016-12-23 16:11:25 +000034// ASMANG: @_Z1fPU3AS3i
David Tweed31d09b02013-09-13 12:04:22 +000035// NOASMANG: @_Z1fPU7CLlocali
Egor Churaev28f00aa2016-12-23 16:11:25 +000036// OCL-20-DAG: @_Z1fPU3AS3i
37// OCL-12-DAG: @_Z1fPU3AS3i
David Tweed31d09b02013-09-13 12:04:22 +000038
39__attribute__((overloadable))
40void f(constant int *arg) { }
Egor Churaev28f00aa2016-12-23 16:11:25 +000041// ASMANG: @_Z1fPU3AS2i
David Tweed31d09b02013-09-13 12:04:22 +000042// NOASMANG: @_Z1fPU10CLconstanti
Egor Churaev28f00aa2016-12-23 16:11:25 +000043// OCL-20-DAG: @_Z1fPU3AS2i
44// OCL-12-DAG: @_Z1fPU3AS2i