blob: 68fa02dadb26d8929902899bba1cca873285009b [file] [log] [blame]
Anastasia Stulova784fb782015-11-23 11:14:44 +00001// RUN: %clang_cc1 %s -O0 -ffake-address-space-map -emit-llvm -o - | FileCheck %s
2// RUN: %clang_cc1 %s -O0 -DCL20 -cl-std=CL2.0 -ffake-address-space-map -emit-llvm -o - | FileCheck %s --check-prefix=CL20
Peter Collingbourne599cb8e2011-03-18 22:38:29 +00003
Anastasia Stulova784fb782015-11-23 11:14:44 +00004// CHECK: i32* %arg
5void f__p(__private int *arg) {}
Peter Collingbourne599cb8e2011-03-18 22:38:29 +00006
Anastasia Stulova784fb782015-11-23 11:14:44 +00007// CHECK: i32 addrspace(1)* %arg
8void f__g(__global int *arg) {}
Peter Collingbourne599cb8e2011-03-18 22:38:29 +00009
Anastasia Stulova784fb782015-11-23 11:14:44 +000010// CHECK: i32 addrspace(2)* %arg
11void f__l(__local int *arg) {}
Peter Collingbourne599cb8e2011-03-18 22:38:29 +000012
Anastasia Stulova784fb782015-11-23 11:14:44 +000013// CHECK: i32 addrspace(3)* %arg
14void f__c(__constant int *arg) {}
Peter Collingbourne599cb8e2011-03-18 22:38:29 +000015
Anastasia Stulova784fb782015-11-23 11:14:44 +000016// CHECK: i32* %arg
17void fp(private int *arg) {}
Peter Collingbourne599cb8e2011-03-18 22:38:29 +000018
Anastasia Stulova784fb782015-11-23 11:14:44 +000019// CHECK: i32 addrspace(1)* %arg
20void fg(global int *arg) {}
Peter Collingbourne599cb8e2011-03-18 22:38:29 +000021
Anastasia Stulova784fb782015-11-23 11:14:44 +000022// CHECK: i32 addrspace(2)* %arg
23void fl(local int *arg) {}
Peter Collingbourne599cb8e2011-03-18 22:38:29 +000024
Anastasia Stulova784fb782015-11-23 11:14:44 +000025// CHECK: i32 addrspace(3)* %arg
26void fc(constant int *arg) {}
Peter Collingbourne599cb8e2011-03-18 22:38:29 +000027
Anastasia Stulova784fb782015-11-23 11:14:44 +000028#ifdef CL20
29int i;
30// CL20-DAG: @i = common addrspace(1) global i32 0
31int *ptr;
32// CL20-DAG: @ptr = common addrspace(1) global i32 addrspace(4)* null
33#endif
Peter Collingbourne599cb8e2011-03-18 22:38:29 +000034
Anastasia Stulova784fb782015-11-23 11:14:44 +000035// CHECK: i32* %arg
36// CL20-DAG: i32 addrspace(4)* %arg
37void f(int *arg) {
38
39 int i;
40// CHECK: %i = alloca i32,
41// CL20-DAG: %i = alloca i32,
42
43#ifdef CL20
44 static int ii;
45// CL20-DAG: @f.ii = internal addrspace(1) global i32 0
46#endif
47}