1/* This testcase is part of GDB, the GNU debugger.
2
3   Copyright 2010-2013 Free Software Foundation, Inc.
4
5   This program is free software; you can redistribute it and/or modify
6   it under the terms of the GNU General Public License as published by
7   the Free Software Foundation; either version 3 of the License, or
8   (at your option) any later version.
9
10   This program is distributed in the hope that it will be useful,
11   but WITHOUT ANY WARRANTY; without even the implied warranty of
12   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13   GNU General Public License for more details.
14
15   You should have received a copy of the GNU General Public License
16   along with this program.  If not, see <http://www.gnu.org/licenses/>.
17
18   Contributed by Ken Werner <ken.werner@de.ibm.com>  */
19
20__constant int opencl_version = __OPENCL_VERSION__;
21
22#ifdef HAVE_cl_khr_fp64
23#pragma OPENCL EXTENSION cl_khr_fp64 : enable
24__constant int have_cl_khr_fp64 = 1;
25#else
26__constant int have_cl_khr_fp64 = 0;
27#endif
28
29#ifdef HAVE_cl_khr_fp16
30#pragma OPENCL EXTENSION cl_khr_fp16 : enable
31__constant int have_cl_khr_fp16 = 1;
32#else
33__constant int have_cl_khr_fp16 = 0;
34#endif
35
36__kernel void testkernel (__global int *data)
37{
38#define CREATE_VEC(TYPE, NAME)\
39  TYPE NAME =\
40  (TYPE)  (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15);
41
42  CREATE_VEC(char16, c16)
43  CREATE_VEC(uchar16, uc16)
44  CREATE_VEC(short16, s16)
45  CREATE_VEC(ushort16, us16)
46  CREATE_VEC(int16, i16)
47  CREATE_VEC(uint16, ui16)
48  CREATE_VEC(long16, l16)
49  CREATE_VEC(ulong16, ul16)
50#ifdef cl_khr_fp16
51  CREATE_VEC(half16, h16)
52#endif
53  CREATE_VEC(float16, f16)
54#ifdef cl_khr_fp64
55  CREATE_VEC(double16, d16)
56#endif
57
58  /* marker! */
59
60  data[get_global_id(0)] = 1;
61}
62