clang: lib/Headers/opencl-c-base.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9#ifndef _OPENCL_BASE_H_
10#define _OPENCL_BASE_H_
11
12
13
14#if (defined(__OPENCL_CPP_VERSION__) || __OPENCL_C_VERSION__ >= 200)
15
16#if defined(__SPIR__) || defined(__SPIRV__)
17#define cl_khr_subgroup_extended_types 1
18#define cl_khr_subgroup_non_uniform_vote 1
19#define cl_khr_subgroup_ballot 1
20#define cl_khr_subgroup_non_uniform_arithmetic 1
21#define cl_khr_subgroup_shuffle 1
22#define cl_khr_subgroup_shuffle_relative 1
23#define cl_khr_subgroup_clustered_reduce 1
24#define cl_khr_subgroup_rotate 1
25#define cl_khr_extended_bit_ops 1
26#define cl_khr_integer_dot_product 1
27#define __opencl_c_integer_dot_product_input_4x8bit 1
28#define __opencl_c_integer_dot_product_input_4x8bit_packed 1
29#define cl_ext_float_atomics 1
30#ifdef cl_khr_fp16
31#define __opencl_c_ext_fp16_global_atomic_load_store 1
32#define __opencl_c_ext_fp16_local_atomic_load_store 1
33#define __opencl_c_ext_fp16_global_atomic_add 1
34#define __opencl_c_ext_fp16_local_atomic_add 1
35#define __opencl_c_ext_fp16_global_atomic_min_max 1
36#define __opencl_c_ext_fp16_local_atomic_min_max 1
37#endif
38#ifdef cl_khr_fp64
39#define __opencl_c_ext_fp64_global_atomic_add 1
40#define __opencl_c_ext_fp64_local_atomic_add 1
41#define __opencl_c_ext_fp64_global_atomic_min_max 1
42#define __opencl_c_ext_fp64_local_atomic_min_max 1
43#endif
44#define __opencl_c_ext_fp32_global_atomic_add 1
45#define __opencl_c_ext_fp32_local_atomic_add 1
46#define __opencl_c_ext_fp32_global_atomic_min_max 1
47#define __opencl_c_ext_fp32_local_atomic_min_max 1
48#define __opencl_c_ext_image_raw10_raw12 1
49#define __opencl_c_ext_image_unorm_int_2_101010 1
50#define cl_khr_kernel_clock 1
51#define __opencl_c_kernel_clock_scope_device 1
52#define __opencl_c_kernel_clock_scope_work_group 1
53#define __opencl_c_kernel_clock_scope_sub_group 1
54
55#endif
56#endif
57
58
59#if (__OPENCL_CPP_VERSION__ == 100 || __OPENCL_C_VERSION__ == 200)
60#define __opencl_c_pipes 1
61#define __opencl_c_generic_address_space 1
62#define __opencl_c_work_group_collective_functions 1
63#define __opencl_c_atomic_order_acq_rel 1
64#define __opencl_c_atomic_order_seq_cst 1
65#define __opencl_c_atomic_scope_device 1
66#define __opencl_c_atomic_scope_all_devices 1
67#define __opencl_c_device_enqueue 1
68#define __opencl_c_read_write_images 1
69#define __opencl_c_program_scope_global_variables 1
70#define __opencl_c_images 1
71#endif
72
73
74#if (__OPENCL_CPP_VERSION__ == 202100 || __OPENCL_C_VERSION__ == 300)
75
76#if defined(__SPIR__) || defined(__SPIRV__)
77#define __opencl_c_work_group_collective_functions 1
78#define __opencl_c_atomic_order_seq_cst 1
79#define __opencl_c_atomic_scope_device 1
80#define __opencl_c_atomic_scope_all_devices 1
81#define __opencl_c_read_write_images 1
82#endif
83
84
85
86#ifdef __undef___opencl_c_work_group_collective_functions
87#undef __opencl_c_work_group_collective_functions
88#endif
89#ifdef __undef___opencl_c_atomic_order_seq_cst
90#undef __opencl_c_atomic_order_seq_cst
91#endif
92#ifdef __undef___opencl_c_atomic_scope_device
93#undef __opencl_c_atomic_scope_device
94#endif
95#ifdef __undef___opencl_c_atomic_scope_all_devices
96#undef __opencl_c_atomic_scope_all_devices
97#endif
98#ifdef __undef___opencl_c_read_write_images
99#undef __opencl_c_read_write_images
100#endif
101
102#endif
103
104#if !defined(__opencl_c_generic_address_space)
105
106
107#define __opencl_c_named_address_space_builtins 1
108#endif
109
110#if defined(cl_intel_subgroups) || defined(cl_khr_subgroups) || defined(__opencl_c_subgroups)
111
112#define __opencl_subgroup_builtins 1
113#endif
114
115
116
117
118
119
121
122
123
124
126
127
128
129
131
132
133
134
136
137
138
139
140
141
142
144
145
146
147
148
149
150
152
153
154
155
156
157
159
160
161
162
163
164
166
167
169typedef char char3 __attribute__((ext_vector_type(3)));
170typedef char char4 __attribute__((ext_vector_type(4)));
171typedef char char8 __attribute__((ext_vector_type(8)));
172typedef char char16 __attribute__((ext_vector_type(16)));
178typedef short short2 __attribute__((ext_vector_type(2)));
179typedef short short3 __attribute__((ext_vector_type(3)));
180typedef short short4 __attribute__((ext_vector_type(4)));
181typedef short short8 __attribute__((ext_vector_type(8)));
182typedef short short16 __attribute__((ext_vector_type(16)));
188typedef int int2 __attribute__((ext_vector_type(2)));
189typedef int int3 __attribute__((ext_vector_type(3)));
190typedef int int4 __attribute__((ext_vector_type(4)));
191typedef int int8 __attribute__((ext_vector_type(8)));
192typedef int int16 __attribute__((ext_vector_type(16)));
198typedef long long2 __attribute__((ext_vector_type(2)));
199typedef long long3 __attribute__((ext_vector_type(3)));
200typedef long long4 __attribute__((ext_vector_type(4)));
201typedef long long8 __attribute__((ext_vector_type(8)));
202typedef long long16 __attribute__((ext_vector_type(16)));
208typedef float float2 __attribute__((ext_vector_type(2)));
209typedef float float3 __attribute__((ext_vector_type(3)));
210typedef float float4 __attribute__((ext_vector_type(4)));
211typedef float float8 __attribute__((ext_vector_type(8)));
212typedef float float16 __attribute__((ext_vector_type(16)));
213#ifdef cl_khr_fp16
214#pragma OPENCL EXTENSION cl_khr_fp16 : enable
215typedef half half2 __attribute__((ext_vector_type(2)));
216typedef half half3 __attribute__((ext_vector_type(3)));
217typedef half half4 __attribute__((ext_vector_type(4)));
218typedef half half8 __attribute__((ext_vector_type(8)));
219typedef half half16 __attribute__((ext_vector_type(16)));
220#endif
221#ifdef cl_khr_fp64
222#if __OPENCL_C_VERSION__ < CL_VERSION_1_2
223#pragma OPENCL EXTENSION cl_khr_fp64 : enable
224#endif
225typedef double double2 __attribute__((ext_vector_type(2)));
226typedef double double3 __attribute__((ext_vector_type(3)));
227typedef double double4 __attribute__((ext_vector_type(4)));
228typedef double double8 __attribute__((ext_vector_type(8)));
229typedef double double16 __attribute__((ext_vector_type(16)));
230#endif
231
232
233#define __half half
234
235#if defined(__OPENCL_CPP_VERSION__)
236#define NULL nullptr
237#elif defined(__OPENCL_C_VERSION__)
238#define NULL ((void*)0)
239#endif
240
241
242
243
244
245#define MAXFLOAT 0x1.fffffep127f
246
247
248
249
250
251
252#define HUGE_VALF (__builtin_huge_valf())
253
254
255
256
257
258
259#define HUGE_VAL (__builtin_huge_val())
260
261
262
263
264
265#define INFINITY (__builtin_inff())
266
267
268
269
270#define NAN as_float(INT_MAX)
271
272#define FP_ILOGB0 INT_MIN
273#define FP_ILOGBNAN INT_MAX
274
275#define FLT_DIG 6
276#define FLT_MANT_DIG 24
277#define FLT_MAX_10_EXP +38
278#define FLT_MAX_EXP +128
279#define FLT_MIN_10_EXP -37
280#define FLT_MIN_EXP -125
281#define FLT_RADIX 2
282#define FLT_MAX 0x1.fffffep127f
283#define FLT_MIN 0x1.0p-126f
284#define FLT_EPSILON 0x1.0p-23f
285
286#define M_E_F 2.71828182845904523536028747135266250f
287#define M_LOG2E_F 1.44269504088896340735992468100189214f
288#define M_LOG10E_F 0.434294481903251827651128918916605082f
289#define M_LN2_F 0.693147180559945309417232121458176568f
290#define M_LN10_F 2.30258509299404568401799145468436421f
291#define M_PI_F 3.14159265358979323846264338327950288f
292#define M_PI_2_F 1.57079632679489661923132169163975144f
293#define M_PI_4_F 0.785398163397448309615660845819875721f
294#define M_1_PI_F 0.318309886183790671537767526745028724f
295#define M_2_PI_F 0.636619772367581343075535053490057448f
296#define M_2_SQRTPI_F 1.12837916709551257389615890312154517f
297#define M_SQRT2_F 1.41421356237309504880168872420969808f
298#define M_SQRT1_2_F 0.707106781186547524400844362104849039f
299
300#define DBL_DIG 15
301#define DBL_MANT_DIG 53
302#define DBL_MAX_10_EXP +308
303#define DBL_MAX_EXP +1024
304#define DBL_MIN_10_EXP -307
305#define DBL_MIN_EXP -1021
306#define DBL_RADIX 2
307#define DBL_MAX 0x1.fffffffffffffp1023
308#define DBL_MIN 0x1.0p-1022
309#define DBL_EPSILON 0x1.0p-52
310
311#define M_E 0x1.5bf0a8b145769p+1
312#define M_LOG2E 0x1.71547652b82fep+0
313#define M_LOG10E 0x1.bcb7b1526e50ep-2
314#define M_LN2 0x1.62e42fefa39efp-1
315#define M_LN10 0x1.26bb1bbb55516p+1
316#define M_PI 0x1.921fb54442d18p+1
317#define M_PI_2 0x1.921fb54442d18p+0
318#define M_PI_4 0x1.921fb54442d18p-1
319#define M_1_PI 0x1.45f306dc9c883p-2
320#define M_2_PI 0x1.45f306dc9c883p-1
321#define M_2_SQRTPI 0x1.20dd750429b6dp+0
322#define M_SQRT2 0x1.6a09e667f3bcdp+0
323#define M_SQRT1_2 0x1.6a09e667f3bcdp-1
324
325#ifdef cl_khr_fp16
326
327#define HALF_DIG 3
328#define HALF_MANT_DIG 11
329#define HALF_MAX_10_EXP +4
330#define HALF_MAX_EXP +16
331#define HALF_MIN_10_EXP -4
332#define HALF_MIN_EXP -13
333#define HALF_RADIX 2
334#define HALF_MAX ((0x1.ffcp15h))
335#define HALF_MIN ((0x1.0p-14h))
336#define HALF_EPSILON ((0x1.0p-10h))
337
338#define M_E_H 2.71828182845904523536028747135266250h
339#define M_LOG2E_H 1.44269504088896340735992468100189214h
340#define M_LOG10E_H 0.434294481903251827651128918916605082h
341#define M_LN2_H 0.693147180559945309417232121458176568h
342#define M_LN10_H 2.30258509299404568401799145468436421h
343#define M_PI_H 3.14159265358979323846264338327950288h
344#define M_PI_2_H 1.57079632679489661923132169163975144h
345#define M_PI_4_H 0.785398163397448309615660845819875721h
346#define M_1_PI_H 0.318309886183790671537767526745028724h
347#define M_2_PI_H 0.636619772367581343075535053490057448h
348#define M_2_SQRTPI_H 1.12837916709551257389615890312154517h
349#define M_SQRT2_H 1.41421356237309504880168872420969808h
350#define M_SQRT1_2_H 0.707106781186547524400844362104849039h
351
352#endif
353
354#define CHAR_BIT 8
355#define SCHAR_MAX 127
356#define SCHAR_MIN (-128)
357#define UCHAR_MAX 255
358#define CHAR_MAX SCHAR_MAX
359#define CHAR_MIN SCHAR_MIN
360#define USHRT_MAX 65535
361#define SHRT_MAX 32767
362#define SHRT_MIN (-32768)
363#define UINT_MAX 0xffffffff
364#define INT_MAX 2147483647
365#define INT_MIN (-2147483647-1)
366#define ULONG_MAX 0xffffffffffffffffUL
367#define LONG_MAX 0x7fffffffffffffffL
368#define LONG_MIN (-0x7fffffffffffffffL-1)
369
370
371
372
374
375
376
377
378
379#define CLK_LOCAL_MEM_FENCE 0x01
380
381
382
383
384
385#define CLK_GLOBAL_MEM_FENCE 0x02
386
387#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
388
393#if defined(__opencl_c_atomic_scope_all_devices)
394 memory_scope_all_svm_devices = __OPENCL_MEMORY_SCOPE_ALL_SVM_DEVICES,
395#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
396 memory_scope_all_devices = memory_scope_all_svm_devices,
397#endif
398#endif
399
400
401
402
403
404
405#if defined(cl_intel_subgroups) || defined(cl_khr_subgroups) || defined(__opencl_c_subgroups)
406 memory_scope_sub_group = __OPENCL_MEMORY_SCOPE_SUB_GROUP
407#endif
409
410
411
412
413
414
415#define CLK_IMAGE_MEM_FENCE 0x04
416
417#ifndef ATOMIC_VAR_INIT
418#define ATOMIC_VAR_INIT(x) (x)
419#endif
420#define ATOMIC_FLAG_INIT 0
421
422
424{
429#if defined(__opencl_c_atomic_order_seq_cst)
431#endif
433
434#endif
435
436
437
438
439
440
441
442#define CLK_ADDRESS_NONE 0
443#define CLK_ADDRESS_CLAMP_TO_EDGE 2
444#define CLK_ADDRESS_CLAMP 4
445#define CLK_ADDRESS_REPEAT 6
446#define CLK_ADDRESS_MIRRORED_REPEAT 8
447
448
449
450
451#define CLK_NORMALIZED_COORDS_FALSE 0
452#define CLK_NORMALIZED_COORDS_TRUE 1
453
454
455
456
457#define CLK_FILTER_NEAREST 0x10
458#define CLK_FILTER_LINEAR 0x20
459
460#ifdef cl_khr_gl_msaa_sharing
461#pragma OPENCL EXTENSION cl_khr_gl_msaa_sharing : enable
462#endif
463
464
465
466
467#define CLK_SNORM_INT8 0x10D0
468#define CLK_SNORM_INT16 0x10D1
469#define CLK_UNORM_INT8 0x10D2
470#define CLK_UNORM_INT16 0x10D3
471#define CLK_UNORM_SHORT_565 0x10D4
472#define CLK_UNORM_SHORT_555 0x10D5
473#define CLK_UNORM_INT_101010 0x10D6
474#define CLK_SIGNED_INT8 0x10D7
475#define CLK_SIGNED_INT16 0x10D8
476#define CLK_SIGNED_INT32 0x10D9
477#define CLK_UNSIGNED_INT8 0x10DA
478#define CLK_UNSIGNED_INT16 0x10DB
479#define CLK_UNSIGNED_INT32 0x10DC
480#define CLK_HALF_FLOAT 0x10DD
481#define CLK_FLOAT 0x10DE
482#define CLK_UNORM_INT24 0x10DF
483#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
484#define CLK_UNORM_INT_101010_2 0x10E0
485#endif
486#ifdef __opencl_c_ext_image_raw10_raw12
487#define CLK_UNSIGNED_INT_RAW10_EXT 0x10E3
488#define CLK_UNSIGNED_INT_RAW12_EXT 0x10E4
489#endif
490#ifdef __opencl_c_ext_image_unorm_int_2_101010
491#define CLK_UNORM_INT_2_101010_EXT 0x10E5
492#endif
493
494
495
496#define CLK_R 0x10B0
497#define CLK_A 0x10B1
498#define CLK_RG 0x10B2
499#define CLK_RA 0x10B3
500#define CLK_RGB 0x10B4
501#define CLK_RGBA 0x10B5
502#define CLK_BGRA 0x10B6
503#define CLK_ARGB 0x10B7
504#define CLK_INTENSITY 0x10B8
505#define CLK_LUMINANCE 0x10B9
506#define CLK_Rx 0x10BA
507#define CLK_RGx 0x10BB
508#define CLK_RGBx 0x10BC
509#define CLK_DEPTH 0x10BD
510#define CLK_DEPTH_STENCIL 0x10BE
511#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
512#define CLK_sRGB 0x10BF
513#define CLK_sRGBx 0x10C0
514#define CLK_sRGBA 0x10C1
515#define CLK_sBGRA 0x10C2
516#define CLK_ABGR 0x10C3
517#endif
518
519
520#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
521#define CLK_NULL_RESERVE_ID (__builtin_astype(((void*)(__SIZE_MAX__)), reserve_id_t))
522
523
524#define CL_COMPLETE 0x0
525#define CL_RUNNING 0x1
526#define CL_SUBMITTED 0x2
527#define CL_QUEUED 0x3
528
529#define CLK_SUCCESS 0
530#define CLK_ENQUEUE_FAILURE -101
531#define CLK_INVALID_QUEUE -102
532#define CLK_INVALID_NDRANGE -160
533#define CLK_INVALID_EVENT_WAIT_LIST -57
534#define CLK_DEVICE_QUEUE_FULL -161
535#define CLK_INVALID_ARG_SIZE -51
536#define CLK_EVENT_ALLOCATION_FAILURE -100
537#define CLK_OUT_OF_RESOURCES -5
538
539#define CLK_NULL_QUEUE 0
540#define CLK_NULL_EVENT (__builtin_astype(((__SIZE_MAX__)), clk_event_t))
541
542
543#define CLK_ENQUEUE_FLAGS_NO_WAIT 0x0
544#define CLK_ENQUEUE_FLAGS_WAIT_KERNEL 0x1
545#define CLK_ENQUEUE_FLAGS_WAIT_WORK_GROUP 0x2
546
549
550
551#define CLK_PROFILING_COMMAND_EXEC_TIME 0x1
552
553#define MAX_WORK_DIM 3
554
555#ifdef __opencl_c_device_enqueue
556typedef struct {
557 unsigned int workDimension;
561} ndrange_t;
562#endif
563
564#endif
565
566
567
568
569
570#define as_char(x) __builtin_astype((x), char)
571#define as_char2(x) __builtin_astype((x), char2)
572#define as_char3(x) __builtin_astype((x), char3)
573#define as_char4(x) __builtin_astype((x), char4)
574#define as_char8(x) __builtin_astype((x), char8)
575#define as_char16(x) __builtin_astype((x), char16)
576
577#define as_uchar(x) __builtin_astype((x), uchar)
578#define as_uchar2(x) __builtin_astype((x), uchar2)
579#define as_uchar3(x) __builtin_astype((x), uchar3)
580#define as_uchar4(x) __builtin_astype((x), uchar4)
581#define as_uchar8(x) __builtin_astype((x), uchar8)
582#define as_uchar16(x) __builtin_astype((x), uchar16)
583
584#define as_short(x) __builtin_astype((x), short)
585#define as_short2(x) __builtin_astype((x), short2)
586#define as_short3(x) __builtin_astype((x), short3)
587#define as_short4(x) __builtin_astype((x), short4)
588#define as_short8(x) __builtin_astype((x), short8)
589#define as_short16(x) __builtin_astype((x), short16)
590
591#define as_ushort(x) __builtin_astype((x), ushort)
592#define as_ushort2(x) __builtin_astype((x), ushort2)
593#define as_ushort3(x) __builtin_astype((x), ushort3)
594#define as_ushort4(x) __builtin_astype((x), ushort4)
595#define as_ushort8(x) __builtin_astype((x), ushort8)
596#define as_ushort16(x) __builtin_astype((x), ushort16)
597
598#define as_int(x) __builtin_astype((x), int)
599#define as_int2(x) __builtin_astype((x), int2)
600#define as_int3(x) __builtin_astype((x), int3)
601#define as_int4(x) __builtin_astype((x), int4)
602#define as_int8(x) __builtin_astype((x), int8)
603#define as_int16(x) __builtin_astype((x), int16)
604
605#define as_uint(x) __builtin_astype((x), uint)
606#define as_uint2(x) __builtin_astype((x), uint2)
607#define as_uint3(x) __builtin_astype((x), uint3)
608#define as_uint4(x) __builtin_astype((x), uint4)
609#define as_uint8(x) __builtin_astype((x), uint8)
610#define as_uint16(x) __builtin_astype((x), uint16)
611
612#define as_long(x) __builtin_astype((x), long)
613#define as_long2(x) __builtin_astype((x), long2)
614#define as_long3(x) __builtin_astype((x), long3)
615#define as_long4(x) __builtin_astype((x), long4)
616#define as_long8(x) __builtin_astype((x), long8)
617#define as_long16(x) __builtin_astype((x), long16)
618
619#define as_ulong(x) __builtin_astype((x), ulong)
620#define as_ulong2(x) __builtin_astype((x), ulong2)
621#define as_ulong3(x) __builtin_astype((x), ulong3)
622#define as_ulong4(x) __builtin_astype((x), ulong4)
623#define as_ulong8(x) __builtin_astype((x), ulong8)
624#define as_ulong16(x) __builtin_astype((x), ulong16)
625
626#define as_float(x) __builtin_astype((x), float)
627#define as_float2(x) __builtin_astype((x), float2)
628#define as_float3(x) __builtin_astype((x), float3)
629#define as_float4(x) __builtin_astype((x), float4)
630#define as_float8(x) __builtin_astype((x), float8)
631#define as_float16(x) __builtin_astype((x), float16)
632
633#ifdef cl_khr_fp64
634#define as_double(x) __builtin_astype((x), double)
635#define as_double2(x) __builtin_astype((x), double2)
636#define as_double3(x) __builtin_astype((x), double3)
637#define as_double4(x) __builtin_astype((x), double4)
638#define as_double8(x) __builtin_astype((x), double8)
639#define as_double16(x) __builtin_astype((x), double16)
640#endif
641
642#ifdef cl_khr_fp16
643#define as_half(x) __builtin_astype((x), half)
644#define as_half2(x) __builtin_astype((x), half2)
645#define as_half3(x) __builtin_astype((x), half3)
646#define as_half4(x) __builtin_astype((x), half4)
647#define as_half8(x) __builtin_astype((x), half8)
648#define as_half16(x) __builtin_astype((x), half16)
649#endif
650
651#define as_size_t(x) __builtin_astype((x), size_t)
652#define as_ptrdiff_t(x) __builtin_astype((x), ptrdiff_t)
653#define as_intptr_t(x) __builtin_astype((x), intptr_t)
654#define as_uintptr_t(x) __builtin_astype((x), uintptr_t)
655
656
657#if defined(__OPENCL_CPP_VERSION__)
658template <typename _Tp> struct __remove_address_space { using type = _Tp; };
659#if defined(__opencl_c_generic_address_space)
660template <typename _Tp> struct __remove_address_space<__generic _Tp> {
661 using type = _Tp;
662};
663#endif
664template <typename _Tp> struct __remove_address_space<__global _Tp> {
665 using type = _Tp;
666};
667template <typename _Tp> struct __remove_address_space<__private _Tp> {
668 using type = _Tp;
669};
670template <typename _Tp> struct __remove_address_space<__local _Tp> {
671 using type = _Tp;
672};
673template <typename _Tp> struct __remove_address_space<__constant _Tp> {
674 using type = _Tp;
675};
676#endif
677
678
679
680#define __kernel_exec(X, typen) __kernel \
681 __attribute__((work_group_size_hint(X, 1, 1))) \
682 __attribute__((vec_type_hint(typen)))
683
684#define kernel_exec(X, typen) __kernel \
685 __attribute__((work_group_size_hint(X, 1, 1))) \
686 __attribute__((vec_type_hint(typen)))
687
688#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)
689
690
692#endif
693
694#ifdef cl_intel_device_side_avc_motion_estimation
695
696#define CLK_AVC_ME_MAJOR_16x16_INTEL 0x0
697#define CLK_AVC_ME_MAJOR_16x8_INTEL 0x1
698#define CLK_AVC_ME_MAJOR_8x16_INTEL 0x2
699#define CLK_AVC_ME_MAJOR_8x8_INTEL 0x3
700
701#define CLK_AVC_ME_MINOR_8x8_INTEL 0x0
702#define CLK_AVC_ME_MINOR_8x4_INTEL 0x1
703#define CLK_AVC_ME_MINOR_4x8_INTEL 0x2
704#define CLK_AVC_ME_MINOR_4x4_INTEL 0x3
705
706#define CLK_AVC_ME_MAJOR_FORWARD_INTEL 0x0
707#define CLK_AVC_ME_MAJOR_BACKWARD_INTEL 0x1
708#define CLK_AVC_ME_MAJOR_BIDIRECTIONAL_INTEL 0x2
709
710#define CLK_AVC_ME_PARTITION_MASK_ALL_INTEL 0x0
711#define CLK_AVC_ME_PARTITION_MASK_16x16_INTEL 0x7E
712#define CLK_AVC_ME_PARTITION_MASK_16x8_INTEL 0x7D
713#define CLK_AVC_ME_PARTITION_MASK_8x16_INTEL 0x7B
714#define CLK_AVC_ME_PARTITION_MASK_8x8_INTEL 0x77
715#define CLK_AVC_ME_PARTITION_MASK_8x4_INTEL 0x6F
716#define CLK_AVC_ME_PARTITION_MASK_4x8_INTEL 0x5F
717#define CLK_AVC_ME_PARTITION_MASK_4x4_INTEL 0x3F
718
719#define CLK_AVC_ME_SLICE_TYPE_PRED_INTEL 0x0
720#define CLK_AVC_ME_SLICE_TYPE_BPRED_INTEL 0x1
721#define CLK_AVC_ME_SLICE_TYPE_INTRA_INTEL 0x2
722
723#define CLK_AVC_ME_SEARCH_WINDOW_EXHAUSTIVE_INTEL 0x0
724#define CLK_AVC_ME_SEARCH_WINDOW_SMALL_INTEL 0x1
725#define CLK_AVC_ME_SEARCH_WINDOW_TINY_INTEL 0x2
726#define CLK_AVC_ME_SEARCH_WINDOW_EXTRA_TINY_INTEL 0x3
727#define CLK_AVC_ME_SEARCH_WINDOW_DIAMOND_INTEL 0x4
728#define CLK_AVC_ME_SEARCH_WINDOW_LARGE_DIAMOND_INTEL 0x5
729#define CLK_AVC_ME_SEARCH_WINDOW_RESERVED0_INTEL 0x6
730#define CLK_AVC_ME_SEARCH_WINDOW_RESERVED1_INTEL 0x7
731#define CLK_AVC_ME_SEARCH_WINDOW_CUSTOM_INTEL 0x8
732
733#define CLK_AVC_ME_SAD_ADJUST_MODE_NONE_INTEL 0x0
734#define CLK_AVC_ME_SAD_ADJUST_MODE_HAAR_INTEL 0x2
735
736#define CLK_AVC_ME_SUBPIXEL_MODE_INTEGER_INTEL 0x0
737#define CLK_AVC_ME_SUBPIXEL_MODE_HPEL_INTEL 0x1
738#define CLK_AVC_ME_SUBPIXEL_MODE_QPEL_INTEL 0x3
739
740#define CLK_AVC_ME_COST_PRECISION_QPEL_INTEL 0x0
741#define CLK_AVC_ME_COST_PRECISION_HPEL_INTEL 0x1
742#define CLK_AVC_ME_COST_PRECISION_PEL_INTEL 0x2
743#define CLK_AVC_ME_COST_PRECISION_DPEL_INTEL 0x3
744
745#define CLK_AVC_ME_BIDIR_WEIGHT_QUARTER_INTEL 0x10
746#define CLK_AVC_ME_BIDIR_WEIGHT_THIRD_INTEL 0x15
747#define CLK_AVC_ME_BIDIR_WEIGHT_HALF_INTEL 0x20
748#define CLK_AVC_ME_BIDIR_WEIGHT_TWO_THIRD_INTEL 0x2B
749#define CLK_AVC_ME_BIDIR_WEIGHT_THREE_QUARTER_INTEL 0x30
750
751#define CLK_AVC_ME_BORDER_REACHED_LEFT_INTEL 0x0
752#define CLK_AVC_ME_BORDER_REACHED_RIGHT_INTEL 0x2
753#define CLK_AVC_ME_BORDER_REACHED_TOP_INTEL 0x4
754#define CLK_AVC_ME_BORDER_REACHED_BOTTOM_INTEL 0x8
755
756#define CLK_AVC_ME_INTRA_16x16_INTEL 0x0
757#define CLK_AVC_ME_INTRA_8x8_INTEL 0x1
758#define CLK_AVC_ME_INTRA_4x4_INTEL 0x2
759
760#define CLK_AVC_ME_SKIP_BLOCK_PARTITION_16x16_INTEL 0x0
761#define CLK_AVC_ME_SKIP_BLOCK_PARTITION_8x8_INTEL 0x4000
762
763#define CLK_AVC_ME_SKIP_BLOCK_16x16_FORWARD_ENABLE_INTEL (0x1 << 24)
764#define CLK_AVC_ME_SKIP_BLOCK_16x16_BACKWARD_ENABLE_INTEL (0x2 << 24)
765#define CLK_AVC_ME_SKIP_BLOCK_16x16_DUAL_ENABLE_INTEL (0x3 << 24)
766#define CLK_AVC_ME_SKIP_BLOCK_8x8_FORWARD_ENABLE_INTEL (0x55 << 24)
767#define CLK_AVC_ME_SKIP_BLOCK_8x8_BACKWARD_ENABLE_INTEL (0xAA << 24)
768#define CLK_AVC_ME_SKIP_BLOCK_8x8_DUAL_ENABLE_INTEL (0xFF << 24)
769#define CLK_AVC_ME_SKIP_BLOCK_8x8_0_FORWARD_ENABLE_INTEL (0x1 << 24)
770#define CLK_AVC_ME_SKIP_BLOCK_8x8_0_BACKWARD_ENABLE_INTEL (0x2 << 24)
771#define CLK_AVC_ME_SKIP_BLOCK_8x8_1_FORWARD_ENABLE_INTEL (0x1 << 26)
772#define CLK_AVC_ME_SKIP_BLOCK_8x8_1_BACKWARD_ENABLE_INTEL (0x2 << 26)
773#define CLK_AVC_ME_SKIP_BLOCK_8x8_2_FORWARD_ENABLE_INTEL (0x1 << 28)
774#define CLK_AVC_ME_SKIP_BLOCK_8x8_2_BACKWARD_ENABLE_INTEL (0x2 << 28)
775#define CLK_AVC_ME_SKIP_BLOCK_8x8_3_FORWARD_ENABLE_INTEL (0x1 << 30)
776#define CLK_AVC_ME_SKIP_BLOCK_8x8_3_BACKWARD_ENABLE_INTEL (0x2 << 30)
777
778#define CLK_AVC_ME_BLOCK_BASED_SKIP_4x4_INTEL 0x00
779#define CLK_AVC_ME_BLOCK_BASED_SKIP_8x8_INTEL 0x80
780
781#define CLK_AVC_ME_INTRA_LUMA_PARTITION_MASK_ALL_INTEL 0x0
782#define CLK_AVC_ME_INTRA_LUMA_PARTITION_MASK_16x16_INTEL 0x6
783#define CLK_AVC_ME_INTRA_LUMA_PARTITION_MASK_8x8_INTEL 0x5
784#define CLK_AVC_ME_INTRA_LUMA_PARTITION_MASK_4x4_INTEL 0x3
785
786#define CLK_AVC_ME_INTRA_NEIGHBOR_LEFT_MASK_ENABLE_INTEL 0x60
787#define CLK_AVC_ME_INTRA_NEIGHBOR_UPPER_MASK_ENABLE_INTEL 0x10
788#define CLK_AVC_ME_INTRA_NEIGHBOR_UPPER_RIGHT_MASK_ENABLE_INTEL 0x8
789#define CLK_AVC_ME_INTRA_NEIGHBOR_UPPER_LEFT_MASK_ENABLE_INTEL 0x4
790
791#define CLK_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_INTEL 0x0
792#define CLK_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_INTEL 0x1
793#define CLK_AVC_ME_LUMA_PREDICTOR_MODE_DC_INTEL 0x2
794#define CLK_AVC_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_LEFT_INTEL 0x3
795#define CLK_AVC_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_RIGHT_INTEL 0x4
796#define CLK_AVC_ME_LUMA_PREDICTOR_MODE_PLANE_INTEL 0x4
797#define CLK_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_RIGHT_INTEL 0x5
798#define CLK_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_DOWN_INTEL 0x6
799#define CLK_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_LEFT_INTEL 0x7
800#define CLK_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_UP_INTEL 0x8
801#define CLK_AVC_ME_CHROMA_PREDICTOR_MODE_DC_INTEL 0x0
802#define CLK_AVC_ME_CHROMA_PREDICTOR_MODE_HORIZONTAL_INTEL 0x1
803#define CLK_AVC_ME_CHROMA_PREDICTOR_MODE_VERTICAL_INTEL 0x2
804#define CLK_AVC_ME_CHROMA_PREDICTOR_MODE_PLANE_INTEL 0x3
805
806#define CLK_AVC_ME_FRAME_FORWARD_INTEL 0x1
807#define CLK_AVC_ME_FRAME_BACKWARD_INTEL 0x2
808#define CLK_AVC_ME_FRAME_DUAL_INTEL 0x3
809
810#define CLK_AVC_ME_INTERLACED_SCAN_TOP_FIELD_INTEL 0x0
811#define CLK_AVC_ME_INTERLACED_SCAN_BOTTOM_FIELD_INTEL 0x1
812
813#define CLK_AVC_ME_INITIALIZE_INTEL 0x0
814
815#define CLK_AVC_IME_PAYLOAD_INITIALIZE_INTEL 0x0
816#define CLK_AVC_REF_PAYLOAD_INITIALIZE_INTEL 0x0
817#define CLK_AVC_SIC_PAYLOAD_INITIALIZE_INTEL 0x0
818
819#define CLK_AVC_IME_RESULT_INITIALIZE_INTEL 0x0
820#define CLK_AVC_REF_RESULT_INITIALIZE_INTEL 0x0
821#define CLK_AVC_SIC_RESULT_INITIALIZE_INTEL 0x0
822
823#define CLK_AVC_IME_RESULT_SINGLE_REFERENCE_STREAMOUT_INITIALIZE_INTEL 0x0
824#define CLK_AVC_IME_RESULT_SINGLE_REFERENCE_STREAMIN_INITIALIZE_INTEL 0x0
825#define CLK_AVC_IME_RESULT_DUAL_REFERENCE_STREAMOUT_INITIALIZE_INTEL 0x0
826#define CLK_AVC_IME_RESULT_DUAL_REFERENCE_STREAMIN_INITIALIZE_INTEL 0x0
827
828#endif
829
830
831#pragma OPENCL EXTENSION all : disable
832
833#endif
const internal::VariadicAllOfMatcher< Type > type
Matches Types in the clang AST.
__INTPTR_TYPE__ intptr_t
A signed integer type with the property that any valid pointer to void can be converted to this type,...
int kernel_enqueue_flags_t
int printf(__constant const char *st,...) __attribute__((format(printf
__UINTPTR_TYPE__ uintptr_t
An unsigned integer type with the property that any valid pointer to void can be converted to this ty...
char char2 __attribute__((ext_vector_type(2)))
unsigned char uchar
An unsigned 8-bit integer.
__PTRDIFF_TYPE__ ptrdiff_t
A signed integer type that is the result of subtracting two pointers.
unsigned long ulong
An unsigned 64-bit integer.
unsigned int uint
An unsigned 32-bit integer.
__SIZE_TYPE__ size_t
The unsigned integer type of the result of the sizeof operator.
@ memory_scope_work_group
unsigned short ushort
An unsigned 16-bit integer.