[docs] Fix build-docs.sh
[llvm-project.git] / clang / test / CodeGenOpenCLCXX / address-space-deduction.clcpp
blob40bac730fd00b775f2d25eaad8b9b5076b257e7f
1 // RUN: %clang_cc1 -no-opaque-pointers %s -triple spir-unknown-unknown -O0 -emit-llvm -o - | FileCheck %s -check-prefixes=COMMON,PTR
2 // RUN: %clang_cc1 -no-opaque-pointers %s -triple spir-unknown-unknown -O0 -emit-llvm -o - -DREF | FileCheck %s -check-prefixes=COMMON,REF
4 #ifdef REF
5 #define PTR &
6 #define ADR(x) x
7 #else
8 #define PTR *
9 #define ADR(x) &x
10 #endif
12 //COMMON: @glob ={{.*}} addrspace(1) global i32
13 int glob;
14 //PTR: @glob_p ={{.*}} addrspace(1) global i32 addrspace(4)* addrspacecast (i32 addrspace(1)* @glob to i32 addrspace(4)*)
15 //REF: @glob_p ={{.*}} addrspace(1) constant i32 addrspace(4)* addrspacecast (i32 addrspace(1)* @glob to i32 addrspace(4)*)
16 int PTR glob_p = ADR(glob);
18 //COMMON: @_ZZ3fooi{{P|R}}U3AS4iE6loc_st = internal addrspace(1) global i32
19 //PTR: @_ZZ3fooiPU3AS4iE8loc_st_p = internal addrspace(1) global i32 addrspace(4)* addrspacecast (i32 addrspace(1)* @_ZZ3fooiPU3AS4iE6loc_st to i32 addrspace(4)*)
20 //REF: @_ZZ3fooiRU3AS4iE8loc_st_p = internal addrspace(1) constant i32 addrspace(4)* addrspacecast (i32 addrspace(1)* @_ZZ3fooiRU3AS4iE6loc_st to i32 addrspace(4)*)
21 //COMMON: @loc_ext_p = external addrspace(1) {{global|constant}} i32 addrspace(4)*
22 //COMMON: @loc_ext = external addrspace(1) global i32
24 //COMMON: define{{.*}} spir_func noundef i32 @_Z3fooi{{P|R}}U3AS4i(i32 noundef %par, i32 addrspace(4)*{{.*}} %par_p)
25 int foo(int par, int PTR par_p){
26   //COMMON: %loc = alloca i32
27   int loc;
28   //COMMON: %loc_p = alloca i32 addrspace(4)*
29   //COMMON: %loc_p_const = alloca i32*
30   //COMMON: [[GAS:%[._a-z0-9]*]] ={{.*}} addrspacecast i32* %loc to i32 addrspace(4)*
31   //COMMON: store i32 addrspace(4)* [[GAS]], i32 addrspace(4)** %loc_p
32   int PTR loc_p = ADR(loc);
33   //COMMON: store i32* %loc, i32** %loc_p_const
34   const __private int PTR loc_p_const = ADR(loc);
36   // CHECK directives for the following code are located above.
37   static int loc_st;
38   static int PTR loc_st_p = ADR(loc_st);
39   extern int loc_ext;
40   extern int PTR loc_ext_p;
41   (void)loc_ext_p;
42   return loc_ext;