1 // 2 // Copyright (c) 2023 The Khronos Group Inc. 3 // 4 // Licensed under the Apache License, Version 2.0 (the "License"); 5 // you may not use this file except in compliance with the License. 6 // You may obtain a copy of the License at 7 // 8 // http://www.apache.org/licenses/LICENSE-2.0 9 // 10 // Unless required by applicable law or agreed to in writing, software 11 // distributed under the License is distributed on an "AS IS" BASIS, 12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 // See the License for the specific language governing permissions and 14 // limitations under the License. 15 // 16 17 #include "harness/kernelHelpers.h" 18 #include "harness/testHarness.h" 19 #include "harness/errorHelpers.h" 20 #include "harness/typeWrappers.h" 21 #include "harness/conversions.h" 22 #include "harness/rounding_mode.h" 23 24 extern int test_hostptr(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 25 extern int test_fpmath(cl_device_id deviceID, cl_context context, 26 cl_command_queue queue, int num_elements); 27 extern int test_intmath_int(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 28 extern int test_intmath_int2(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 29 extern int test_intmath_int4(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 30 extern int test_intmath_long(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 31 extern int test_intmath_long2(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 32 extern int test_intmath_long4(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 33 extern int test_hiloeo(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 34 extern int test_if(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 35 extern int test_sizeof(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 36 extern int test_loop(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 37 extern int test_pointer_cast(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 38 extern int test_local_arg_def(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 39 extern int test_local_kernel_def(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 40 extern int test_local_kernel_scope(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 41 extern int test_constant(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 42 extern int test_constant_source(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 43 extern int test_readimage(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 44 extern int test_readimage_int16(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 45 extern int test_readimage_fp32(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 46 extern int test_writeimage(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 47 extern int test_writeimage_int16(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 48 extern int test_writeimage_fp32(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 49 extern int test_mri_one(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 50 extern int test_mri_multiple(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 51 extern int test_image_r8(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 52 extern int test_simplebarrier(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 53 extern int test_barrier(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 54 extern int test_wg_barrier(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 55 extern int test_int2fp(cl_device_id deviceID, cl_context context, 56 cl_command_queue queue, int num_elements); 57 extern int test_fp2int(cl_device_id deviceID, cl_context context, 58 cl_command_queue queue, int num_elements); 59 extern int test_imagearraycopy(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 60 extern int test_imagearraycopy3d(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 61 extern int test_imagereadwrite(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 62 extern int test_imagereadwrite3d(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 63 extern int test_readimage3d(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 64 extern int test_readimage3d_int16(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 65 extern int test_readimage3d_fp32(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 66 extern int test_bufferreadwriterect(cl_device_id device, cl_context context, cl_command_queue queue_, int num_elements); 67 extern int test_imagecopy(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 68 extern int test_imagecopy3d(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 69 extern int test_imagerandomcopy(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 70 extern int test_arraycopy(cl_device_id device, cl_context context, cl_command_queue queue, int n_elems); 71 extern int test_arrayimagecopy(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 72 extern int test_arrayimagecopy3d(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 73 extern int test_imagenpot(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 74 extern int test_sampler_float(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 75 extern int test_sampler_int(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 76 extern int test_createkernelsinprogram(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 77 extern int test_single_large_allocation(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 78 extern int test_multiple_max_allocation(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 79 extern int test_arrayreadwrite(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 80 extern int test_imagedim_pow2(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 81 extern int test_imagedim_non_pow2(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 82 extern int test_image_param(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 83 extern int test_image_multipass_integer_coord(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 84 extern int test_image_multipass_float_coord(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 85 86 extern int test_vload_global(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 87 extern int test_vload_local(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 88 extern int test_vload_constant(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 89 extern int test_vload_private(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 90 extern int test_vstore_global(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 91 extern int test_vstore_local(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 92 extern int test_vstore_private(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 93 94 extern int test_explicit_s2v_char(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 95 extern int test_explicit_s2v_uchar(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 96 extern int test_explicit_s2v_short(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 97 extern int test_explicit_s2v_ushort(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 98 extern int test_explicit_s2v_int(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 99 extern int test_explicit_s2v_uint(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 100 extern int test_explicit_s2v_long(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 101 extern int test_explicit_s2v_ulong(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 102 extern int test_explicit_s2v_float(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 103 extern int test_explicit_s2v_double(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 104 105 extern int test_enqueue_map_buffer(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 106 extern int test_enqueue_map_image(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 107 108 extern int test_work_item_functions(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 109 110 extern int test_astype(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 111 112 extern int test_native_kernel(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 113 114 extern int test_async_copy_global_to_local(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 115 extern int test_async_copy_local_to_global(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 116 extern int test_async_strided_copy_global_to_local(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 117 extern int test_async_strided_copy_local_to_global(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 118 extern int test_async_copy_global_to_local2D(cl_device_id deviceID, 119 cl_context context, 120 cl_command_queue queue, 121 int num_elements); 122 extern int test_async_copy_local_to_global2D(cl_device_id deviceID, 123 cl_context context, 124 cl_command_queue queue, 125 int num_elements); 126 extern int test_async_copy_global_to_local3D(cl_device_id deviceID, 127 cl_context context, 128 cl_command_queue queue, 129 int num_elements); 130 extern int test_async_copy_local_to_global3D(cl_device_id deviceID, 131 cl_context context, 132 cl_command_queue queue, 133 int num_elements); 134 extern int test_async_work_group_copy_fence_import_after_export_aliased_local( 135 cl_device_id deviceID, cl_context context, cl_command_queue queue, 136 int num_elements); 137 extern int test_async_work_group_copy_fence_import_after_export_aliased_global( 138 cl_device_id deviceID, cl_context context, cl_command_queue queue, 139 int num_elements); 140 extern int 141 test_async_work_group_copy_fence_import_after_export_aliased_global_and_local( 142 cl_device_id deviceID, cl_context context, cl_command_queue queue, 143 int num_elements); 144 extern int test_async_work_group_copy_fence_export_after_import_aliased_local( 145 cl_device_id deviceID, cl_context context, cl_command_queue queue, 146 int num_elements); 147 extern int test_async_work_group_copy_fence_export_after_import_aliased_global( 148 cl_device_id deviceID, cl_context context, cl_command_queue queue, 149 int num_elements); 150 extern int 151 test_async_work_group_copy_fence_export_after_import_aliased_global_and_local( 152 cl_device_id deviceID, cl_context context, cl_command_queue queue, 153 int num_elements); 154 extern int test_prefetch(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 155 156 extern int test_host_numeric_constants(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 157 extern int test_kernel_numeric_constants(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 158 extern int test_kernel_limit_constants(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 159 160 extern int test_kernel_preprocessor_macros(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 161 162 extern int test_kernel_call_kernel_function(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); 163 164 extern int test_parameter_types(cl_device_id device, cl_context context, cl_command_queue queue, int num_elements); 165 extern int test_vector_creation(cl_device_id deviceID, cl_context context, 166 cl_command_queue queue, int num_elements); 167 extern int test_vector_swizzle(cl_device_id deviceID, cl_context context, 168 cl_command_queue queue, int num_elements); 169 extern int test_vec_type_hint(cl_device_id deviceID, cl_context context, 170 cl_command_queue queue, int num_elements); 171 172 173 extern int test_kernel_memory_alignment_local(cl_device_id device, cl_context context, cl_command_queue queue, int n_elems ); 174 extern int test_kernel_memory_alignment_global(cl_device_id device, cl_context context, cl_command_queue queue, int n_elems ); 175 extern int test_kernel_memory_alignment_constant(cl_device_id device, cl_context context, cl_command_queue queue, int n_elems ); 176 extern int test_kernel_memory_alignment_private(cl_device_id device, cl_context context, cl_command_queue queue, int n_elems ); 177 178 extern int test_progvar_prog_scope_misc(cl_device_id device, cl_context context, cl_command_queue queue, int n_elems ); 179 extern int test_progvar_prog_scope_uninit(cl_device_id device, cl_context context, cl_command_queue queue, int n_elems ); 180 extern int test_progvar_prog_scope_init(cl_device_id device, cl_context context, cl_command_queue queue, int n_elems ); 181 extern int test_progvar_func_scope(cl_device_id device, cl_context context, cl_command_queue queue, int n_elems ); 182 183 extern int test_global_work_offsets(cl_device_id device, cl_context context, cl_command_queue queue, int n_elems ); 184 extern int test_get_global_offset(cl_device_id device, cl_context context, cl_command_queue queue, int n_elems ); 185 186 extern int test_global_linear_id(cl_device_id device, cl_context context, cl_command_queue queue, int n_elems ); 187 extern int test_local_linear_id(cl_device_id device, cl_context context, cl_command_queue queue, int n_elems ); 188 extern int test_enqueued_local_size(cl_device_id device, cl_context context, cl_command_queue queue, int n_elems ); 189 190 extern int test_simple_read_image_pitch(cl_device_id device, cl_context cl_context_, cl_command_queue q, int num_elements); 191 extern int test_simple_write_image_pitch(cl_device_id device, cl_context cl_context_, cl_command_queue q, int num_elements); 192 193 #if defined( __APPLE__ ) 194 extern int test_queue_priority(cl_device_id device, cl_context context, cl_command_queue queue, int num_elements); 195 #endif 196 197 extern int test_get_linear_ids(cl_device_id device, cl_context cl_context_, cl_command_queue q, int num_elements); 198 extern int test_rw_image_access_qualifier(cl_device_id device_id, cl_context context, cl_command_queue commands, int num_elements); 199 200