]>
Commit | Line | Data |
---|---|---|
f4b8a18d KW |
1 | /* This testcase is part of GDB, the GNU debugger. |
2 | ||
42a4f53d | 3 | Copyright 2010-2019 Free Software Foundation, Inc. |
f4b8a18d KW |
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 | ||
d468832a | 20 | __constant int opencl_version = __OPENCL_VERSION__; |
f4b8a18d KW |
21 | |
22 | #ifdef HAVE_cl_khr_fp64 | |
23 | #pragma OPENCL EXTENSION cl_khr_fp64 : enable | |
d468832a | 24 | __constant int have_cl_khr_fp64 = 1; |
f4b8a18d | 25 | #else |
d468832a | 26 | __constant int have_cl_khr_fp64 = 0; |
f4b8a18d KW |
27 | #endif |
28 | ||
29 | #ifdef HAVE_cl_khr_fp16 | |
30 | #pragma OPENCL EXTENSION cl_khr_fp16 : enable | |
d468832a | 31 | __constant int have_cl_khr_fp16 = 1; |
f4b8a18d | 32 | #else |
d468832a | 33 | __constant int have_cl_khr_fp16 = 0; |
f4b8a18d KW |
34 | #endif |
35 | ||
d468832a KW |
36 | __kernel void testkernel (__global int *data) |
37 | { | |
38 | bool b = 0; | |
f4b8a18d | 39 | |
d468832a KW |
40 | char c = 1; |
41 | char2 c2 = (char2) (1, 2); | |
f4b8a18d | 42 | #ifdef CL_VERSION_1_1 |
d468832a | 43 | char3 c3 = (char3) (1, 2, 3); |
f4b8a18d | 44 | #endif |
d468832a KW |
45 | char4 c4 = (char4) (1, 2, 3, 4); |
46 | char8 c8 = (char8) (1, 2, 3, 4, 5, 6, 7, 8); | |
47 | char16 c16 = (char16)(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16); | |
f4b8a18d | 48 | |
d468832a KW |
49 | uchar uc = 1; |
50 | uchar2 uc2 = (uchar2) (1, 2); | |
f4b8a18d | 51 | #ifdef CL_VERSION_1_1 |
d468832a | 52 | uchar3 uc3 = (uchar3) (1, 2, 3); |
f4b8a18d | 53 | #endif |
d468832a KW |
54 | uchar4 uc4 = (uchar4) (1, 2, 3, 4); |
55 | uchar8 uc8 = (uchar8) (1, 2, 3, 4, 5, 6, 7, 8); | |
56 | uchar16 uc16 = (uchar16)(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16); | |
f4b8a18d | 57 | |
d468832a KW |
58 | short s = -1; |
59 | short2 s2 = (short2) (-1, -2); | |
f4b8a18d | 60 | #ifdef CL_VERSION_1_1 |
d468832a | 61 | short3 s3 = (short3) (-1, -2, -3); |
f4b8a18d | 62 | #endif |
d468832a KW |
63 | short4 s4 = (short4) (-1, -2, -3, -4); |
64 | short8 s8 = (short8) (-1, -2, -3, -4, -5, -6, -7, -8); | |
65 | short16 s16 = (short16)(-1, -2, -3, -4, -5, -6, -7, -8, -9, -10, -11, -12, -13, -14, -15, -16); | |
f4b8a18d | 66 | |
d468832a KW |
67 | ushort us = 1; |
68 | ushort2 us2 = (ushort2) (1, 2); | |
f4b8a18d | 69 | #ifdef CL_VERSION_1_1 |
d468832a | 70 | ushort3 us3 = (ushort3) (1, 2, 3); |
f4b8a18d | 71 | #endif |
d468832a KW |
72 | ushort4 us4 = (ushort4) (1, 2, 3, 4); |
73 | ushort8 us8 = (ushort8) (1, 2, 3, 4, 5, 6, 7, 8); | |
74 | ushort16 us16 = (ushort16)(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16); | |
f4b8a18d | 75 | |
d468832a KW |
76 | int i = -1; |
77 | int2 i2 = (int2) (-1, -2); | |
f4b8a18d | 78 | #ifdef CL_VERSION_1_1 |
d468832a | 79 | int3 i3 = (int3) (-1, -2, -3); |
f4b8a18d | 80 | #endif |
d468832a KW |
81 | int4 i4 = (int4) (-1, -2, -3, -4); |
82 | int8 i8 = (int8) (-1, -2, -3, -4, -5, -6, -7, -8); | |
83 | int16 i16 = (int16)(-1, -2, -3, -4, -5, -6, -7, -8, -9, -10, -11, -12, -13, -14, -15, -16); | |
f4b8a18d | 84 | |
d468832a KW |
85 | uint ui = 1; |
86 | uint2 ui2 = (uint2) (1, 2); | |
f4b8a18d | 87 | #ifdef CL_VERSION_1_1 |
d468832a | 88 | uint3 ui3 = (uint3) (1, 2, 3); |
f4b8a18d | 89 | #endif |
d468832a KW |
90 | uint4 ui4 = (uint4) (1, 2, 3, 4); |
91 | uint8 ui8 = (uint8) (1, 2, 3, 4, 5, 6, 7, 8); | |
92 | uint16 ui16 = (uint16)(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16); | |
f4b8a18d | 93 | |
d468832a KW |
94 | long l = -1; |
95 | long2 l2 = (long2) (-1, -2); | |
f4b8a18d | 96 | #ifdef CL_VERSION_1_1 |
d468832a | 97 | long3 l3 = (long3) (-1, -2, -3); |
f4b8a18d | 98 | #endif |
d468832a KW |
99 | long4 l4 = (long4) (-1, -2, -3, -4); |
100 | long8 l8 = (long8) (-1, -2, -3, -4, -5, -6, -7, -8); | |
101 | long16 l16 = (long16)(-1, -2, -3, -4, -5, -6, -7, -8, -9, -10, -11, -12, -13, -14, -15, -16); | |
f4b8a18d | 102 | |
d468832a KW |
103 | ulong ul = 1; |
104 | ulong2 ul2 = (ulong2) (1, 2); | |
f4b8a18d | 105 | #ifdef CL_VERSION_1_1 |
d468832a | 106 | ulong3 ul3 = (ulong3) (1, 2, 3); |
f4b8a18d | 107 | #endif |
d468832a KW |
108 | ulong4 ul4 = (ulong4) (1, 2, 3, 4); |
109 | ulong8 ul8 = (ulong8) (1, 2, 3, 4, 5, 6, 7, 8); | |
110 | ulong16 ul16 = (ulong16)(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16); | |
f4b8a18d | 111 | |
d468832a | 112 | half *ph; |
f4b8a18d | 113 | #ifdef cl_khr_fp16 |
d468832a KW |
114 | half h = 1.0; |
115 | half2 h2 = (half2) (1.0, 2.0); | |
f4b8a18d | 116 | #ifdef CL_VERSION_1_1 |
d468832a | 117 | half3 h3 = (half3) (1.0, 2.0, 3.0); |
f4b8a18d | 118 | #endif |
d468832a KW |
119 | half4 h4 = (half4) (1.0, 2.0, 3.0, 4.0); |
120 | half8 h8 = (half8) (1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0); | |
121 | half16 h16 = (half16)(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0); | |
f4b8a18d KW |
122 | #endif |
123 | ||
d468832a KW |
124 | float f = 1.0; |
125 | float2 f2 = (float2) (1.0, 2.0); | |
f4b8a18d | 126 | #ifdef CL_VERSION_1_1 |
d468832a | 127 | float3 f3 = (float3) (1.0, 2.0, 3.0); |
f4b8a18d | 128 | #endif |
d468832a KW |
129 | float4 f4 = (float4) (1.0, 2.0, 3.0, 4.0); |
130 | float8 f8 = (float8) (1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0); | |
131 | float16 f16 = (float16)(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0); | |
f4b8a18d KW |
132 | |
133 | #ifdef cl_khr_fp64 | |
d468832a KW |
134 | double d = 1.0; |
135 | double2 d2 = (double2) (1.0, 2.0); | |
f4b8a18d | 136 | #ifdef CL_VERSION_1_1 |
d468832a | 137 | double3 d3 = (double3) (1.0, 2.0, 3.0); |
f4b8a18d | 138 | #endif |
d468832a KW |
139 | double4 d4 = (double4) (1.0, 2.0, 3.0, 4.0); |
140 | double8 d8 = (double8) (1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0); | |
141 | double16 d16 = (double16)(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0); | |
f4b8a18d KW |
142 | #endif |
143 | ||
d468832a KW |
144 | /* marker! */ |
145 | ||
f4b8a18d KW |
146 | data[get_global_id(0)] = 1; |
147 | } |