1 // RUN
: %clang_cc1 -cl-std
=CL2.0 -emit-llvm -o - -triple spir-unknown-unknown %s | FileCheck %s
2 // RUN
: %clang_cc1 -cl-std
=CL3.0 -cl-ext
=+__opencl_c_generic_address_space -emit-llvm -o - -triple spir-unknown-unknown %s | FileCheck %s
4 typedef short short4 __attribute__
((ext_vector_type(4)));
6 // CHECK-DAG
: declare spir_func
<4 x i16
> @_Z5clampDv4_sS_S_
(<4 x i16
> noundef
, <4 x i16
> noundef
, <4 x i16
> noundef
)
7 short4 __attribute__
((overloadable)) clamp
(short4 x
, short4 minval
, short4 maxval
);
8 // CHECK-DAG
: declare spir_func
<4 x i16
> @_Z5clampDv4_sss
(<4 x i16
> noundef
, i16 noundef signext
, i16 noundef signext
)
9 short4 __attribute__
((overloadable)) clamp
(short4 x
, short minval
, short maxval
);
10 void __attribute__
((overloadable)) foo
(global int
*a
, global int
*b
);
11 void __attribute__
((overloadable)) foo
(generic int
*a
, generic int
*b
);
12 void __attribute__
((overloadable)) bar
(generic int
*global
*a
, generic int
*global
*b
);
13 void __attribute__
((overloadable)) bar
(generic int
*generic
*a
, generic int
*generic
*b
);
15 // Checking address space resolution
21 generic int
*generic
*gengen
= 0;
22 generic int
*local
*genloc
= 0;
23 generic int
*global
*genglob
= 0;
24 // CHECK-DAG
: call spir_func void
@_Z3fooPU3AS1iS0_
(ptr addrspace
(1) noundef
{{.
*}}, ptr addrspace
(1) noundef
{{.
*}})
26 // CHECK-DAG
: call spir_func void
@_Z3fooPU3AS4iS0_
(ptr addrspace
(4) noundef
{{.
*}}, ptr addrspace
(4) noundef
{{.
*}})
28 // CHECK-DAG
: call spir_func void
@_Z3fooPU3AS4iS0_
(ptr addrspace
(4) noundef
{{.
*}}, ptr addrspace
(4) noundef
{{.
*}})
31 // CHECK-DAG
: call spir_func void
@_Z3barPU3AS4PU3AS4iS2_
(ptr addrspace
(4) noundef
{{.
*}}, ptr addrspace
(4) noundef
{{.
*}})
33 // CHECK-DAG
: call spir_func void
@_Z3barPU3AS4PU3AS4iS2_
(ptr addrspace
(4) noundef
{{.
*}}, ptr addrspace
(4) noundef
{{.
*}})
35 // CHECK-DAG
: call spir_func void
@_Z3barPU3AS1PU3AS4iS2_
(ptr addrspace
(1) noundef
{{.
*}}, ptr addrspace
(1) noundef
{{.
*}})
36 bar
(genglob, genglob
);
39 // Checking vector vs scalar resolution
43 // CHECK-DAG
: call spir_func
<4 x i16
> @_Z5clampDv4_sss
(<4 x i16
> noundef
{{.
*}}, i16 noundef signext
0, i16 noundef signext
255)
45 // CHECK-DAG
: call spir_func
<4 x i16
> @_Z5clampDv4_sS_S_
(<4 x i16
> noundef
{{.
*}}, <4 x i16
> noundef
{{.
*}}, <4 x i16
> noundef
{{.
*}})