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

130typedef unsigned int uint;

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.