@cpp-linter/clang-tidy-win32-x64 12.0.1 → 13.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (171) hide show
  1. package/README.md +2 -2
  2. package/bin/clang-tidy.exe +2 -2
  3. package/lib/clang/{12.0.1 → 13.0.0}/include/__clang_cuda_device_functions.h +174 -102
  4. package/lib/clang/{12.0.1 → 13.0.0}/include/__clang_cuda_runtime_wrapper.h +6 -1
  5. package/lib/clang/{12.0.1 → 13.0.0}/include/__clang_hip_cmath.h +272 -94
  6. package/lib/clang/{12.0.1 → 13.0.0}/include/__clang_hip_libdevice_declares.h +24 -12
  7. package/lib/clang/{12.0.1 → 13.0.0}/include/__clang_hip_math.h +48 -2
  8. package/lib/clang/13.0.0/include/__clang_hip_runtime_wrapper.h +124 -0
  9. package/lib/clang/{12.0.1 → 13.0.0}/include/altivec.h +1165 -423
  10. package/lib/clang/{12.0.1 → 13.0.0}/include/amxintrin.h +234 -19
  11. package/lib/clang/{12.0.1 → 13.0.0}/include/arm_acle.h +55 -0
  12. package/lib/clang/{12.0.1 → 13.0.0}/include/arm_neon.h +1077 -165
  13. package/lib/clang/{12.0.1 → 13.0.0}/include/arm_sve.h +11791 -5896
  14. package/lib/clang/{12.0.1 → 13.0.0}/include/avx512fintrin.h +177 -37
  15. package/lib/clang/13.0.0/include/builtins.h +16 -0
  16. package/lib/clang/{12.0.1 → 13.0.0}/include/cuda_wrappers/complex +8 -0
  17. package/lib/clang/13.0.0/include/hexagon_circ_brev_intrinsics.h +298 -0
  18. package/lib/clang/13.0.0/include/hexagon_protos.h +8450 -0
  19. package/lib/clang/13.0.0/include/hexagon_types.h +2653 -0
  20. package/lib/clang/13.0.0/include/hvx_hexagon_protos.h +4392 -0
  21. package/lib/clang/{12.0.1 → 13.0.0}/include/intrin.h +44 -8
  22. package/lib/clang/{12.0.1 → 13.0.0}/include/keylockerintrin.h +30 -0
  23. package/lib/clang/{12.0.1 → 13.0.0}/include/opencl-c-base.h +144 -3
  24. package/lib/clang/{12.0.1 → 13.0.0}/include/opencl-c.h +505 -355
  25. package/lib/clang/13.0.0/include/openmp_wrappers/__clang_openmp_device_functions.h +106 -0
  26. package/lib/clang/{12.0.1 → 13.0.0}/include/openmp_wrappers/cmath +54 -0
  27. package/lib/clang/{12.0.1 → 13.0.0}/include/openmp_wrappers/complex +1 -7
  28. package/lib/clang/{12.0.1 → 13.0.0}/include/openmp_wrappers/complex.h +0 -1
  29. package/lib/clang/{12.0.1 → 13.0.0}/include/openmp_wrappers/math.h +10 -0
  30. package/lib/clang/{12.0.1 → 13.0.0}/include/openmp_wrappers/new +2 -24
  31. package/lib/clang/13.0.0/include/riscv_vector.h +123865 -0
  32. package/lib/clang/{12.0.1 → 13.0.0}/include/uintrintrin.h +7 -0
  33. package/lib/clang/{12.0.1 → 13.0.0}/include/vaesintrin.h +21 -20
  34. package/lib/clang/{12.0.1 → 13.0.0}/include/vecintrin.h +206 -77
  35. package/lib/clang/{12.0.1 → 13.0.0}/include/vpclmulqdqintrin.h +2 -0
  36. package/lib/clang/{12.0.1 → 13.0.0}/include/wasm_simd128.h +806 -239
  37. package/package.json +6 -6
  38. package/lib/clang/12.0.1/include/__clang_hip_runtime_wrapper.h +0 -69
  39. package/lib/clang/12.0.1/include/openmp_wrappers/__clang_openmp_device_functions.h +0 -42
  40. package/lib/clang/{12.0.1 → 13.0.0}/include/__clang_cuda_builtin_vars.h +0 -0
  41. package/lib/clang/{12.0.1 → 13.0.0}/include/__clang_cuda_cmath.h +0 -0
  42. package/lib/clang/{12.0.1 → 13.0.0}/include/__clang_cuda_complex_builtins.h +0 -0
  43. package/lib/clang/{12.0.1 → 13.0.0}/include/__clang_cuda_intrinsics.h +0 -0
  44. package/lib/clang/{12.0.1 → 13.0.0}/include/__clang_cuda_libdevice_declares.h +0 -0
  45. package/lib/clang/{12.0.1 → 13.0.0}/include/__clang_cuda_math.h +2 -2
  46. package/lib/clang/{12.0.1 → 13.0.0}/include/__clang_cuda_math_forward_declares.h +0 -0
  47. package/lib/clang/{12.0.1 → 13.0.0}/include/__stddef_max_align_t.h +0 -0
  48. package/lib/clang/{12.0.1 → 13.0.0}/include/__wmmintrin_aes.h +0 -0
  49. package/lib/clang/{12.0.1 → 13.0.0}/include/__wmmintrin_pclmul.h +0 -0
  50. package/lib/clang/{12.0.1 → 13.0.0}/include/adxintrin.h +0 -0
  51. package/lib/clang/{12.0.1 → 13.0.0}/include/ammintrin.h +0 -0
  52. package/lib/clang/{12.0.1 → 13.0.0}/include/arm64intr.h +0 -0
  53. package/lib/clang/{12.0.1 → 13.0.0}/include/arm_bf16.h +0 -0
  54. package/lib/clang/{12.0.1 → 13.0.0}/include/arm_cde.h +0 -0
  55. package/lib/clang/{12.0.1 → 13.0.0}/include/arm_cmse.h +0 -0
  56. package/lib/clang/{12.0.1 → 13.0.0}/include/arm_fp16.h +0 -0
  57. package/lib/clang/{12.0.1 → 13.0.0}/include/arm_mve.h +0 -0
  58. package/lib/clang/{12.0.1 → 13.0.0}/include/armintr.h +0 -0
  59. package/lib/clang/{12.0.1 → 13.0.0}/include/avx2intrin.h +0 -0
  60. package/lib/clang/{12.0.1 → 13.0.0}/include/avx512bf16intrin.h +0 -0
  61. package/lib/clang/{12.0.1 → 13.0.0}/include/avx512bitalgintrin.h +0 -0
  62. package/lib/clang/{12.0.1 → 13.0.0}/include/avx512bwintrin.h +0 -0
  63. package/lib/clang/{12.0.1 → 13.0.0}/include/avx512cdintrin.h +0 -0
  64. package/lib/clang/{12.0.1 → 13.0.0}/include/avx512dqintrin.h +0 -0
  65. package/lib/clang/{12.0.1 → 13.0.0}/include/avx512erintrin.h +0 -0
  66. package/lib/clang/{12.0.1 → 13.0.0}/include/avx512ifmaintrin.h +0 -0
  67. package/lib/clang/{12.0.1 → 13.0.0}/include/avx512ifmavlintrin.h +0 -0
  68. package/lib/clang/{12.0.1 → 13.0.0}/include/avx512pfintrin.h +0 -0
  69. package/lib/clang/{12.0.1 → 13.0.0}/include/avx512vbmi2intrin.h +0 -0
  70. package/lib/clang/{12.0.1 → 13.0.0}/include/avx512vbmiintrin.h +0 -0
  71. package/lib/clang/{12.0.1 → 13.0.0}/include/avx512vbmivlintrin.h +0 -0
  72. package/lib/clang/{12.0.1 → 13.0.0}/include/avx512vlbf16intrin.h +0 -0
  73. package/lib/clang/{12.0.1 → 13.0.0}/include/avx512vlbitalgintrin.h +0 -0
  74. package/lib/clang/{12.0.1 → 13.0.0}/include/avx512vlbwintrin.h +0 -0
  75. package/lib/clang/{12.0.1 → 13.0.0}/include/avx512vlcdintrin.h +0 -0
  76. package/lib/clang/{12.0.1 → 13.0.0}/include/avx512vldqintrin.h +0 -0
  77. package/lib/clang/{12.0.1 → 13.0.0}/include/avx512vlintrin.h +0 -0
  78. package/lib/clang/{12.0.1 → 13.0.0}/include/avx512vlvbmi2intrin.h +0 -0
  79. package/lib/clang/{12.0.1 → 13.0.0}/include/avx512vlvnniintrin.h +0 -0
  80. package/lib/clang/{12.0.1 → 13.0.0}/include/avx512vlvp2intersectintrin.h +0 -0
  81. package/lib/clang/{12.0.1 → 13.0.0}/include/avx512vnniintrin.h +0 -0
  82. package/lib/clang/{12.0.1 → 13.0.0}/include/avx512vp2intersectintrin.h +0 -0
  83. package/lib/clang/{12.0.1 → 13.0.0}/include/avx512vpopcntdqintrin.h +0 -0
  84. package/lib/clang/{12.0.1 → 13.0.0}/include/avx512vpopcntdqvlintrin.h +0 -0
  85. package/lib/clang/{12.0.1 → 13.0.0}/include/avxintrin.h +0 -0
  86. package/lib/clang/{12.0.1 → 13.0.0}/include/avxvnniintrin.h +0 -0
  87. package/lib/clang/{12.0.1 → 13.0.0}/include/bmi2intrin.h +0 -0
  88. package/lib/clang/{12.0.1 → 13.0.0}/include/bmiintrin.h +0 -0
  89. package/lib/clang/{12.0.1 → 13.0.0}/include/cet.h +0 -0
  90. package/lib/clang/{12.0.1 → 13.0.0}/include/cetintrin.h +0 -0
  91. package/lib/clang/{12.0.1 → 13.0.0}/include/cldemoteintrin.h +0 -0
  92. package/lib/clang/{12.0.1 → 13.0.0}/include/clflushoptintrin.h +0 -0
  93. package/lib/clang/{12.0.1 → 13.0.0}/include/clwbintrin.h +0 -0
  94. package/lib/clang/{12.0.1 → 13.0.0}/include/clzerointrin.h +0 -0
  95. package/lib/clang/{12.0.1 → 13.0.0}/include/cpuid.h +0 -0
  96. package/lib/clang/{12.0.1 → 13.0.0}/include/cuda_wrappers/algorithm +0 -0
  97. package/lib/clang/{12.0.1 → 13.0.0}/include/cuda_wrappers/new +0 -0
  98. package/lib/clang/{12.0.1 → 13.0.0}/include/emmintrin.h +0 -0
  99. package/lib/clang/{12.0.1 → 13.0.0}/include/enqcmdintrin.h +0 -0
  100. package/lib/clang/{12.0.1 → 13.0.0}/include/f16cintrin.h +0 -0
  101. package/lib/clang/{12.0.1 → 13.0.0}/include/float.h +0 -0
  102. package/lib/clang/{12.0.1 → 13.0.0}/include/fma4intrin.h +0 -0
  103. package/lib/clang/{12.0.1 → 13.0.0}/include/fmaintrin.h +0 -0
  104. package/lib/clang/{12.0.1 → 13.0.0}/include/fxsrintrin.h +0 -0
  105. package/lib/clang/{12.0.1 → 13.0.0}/include/gfniintrin.h +0 -0
  106. package/lib/clang/{12.0.1 → 13.0.0}/include/hresetintrin.h +0 -0
  107. package/lib/clang/{12.0.1 → 13.0.0}/include/htmintrin.h +0 -0
  108. package/lib/clang/{12.0.1 → 13.0.0}/include/htmxlintrin.h +0 -0
  109. package/lib/clang/{12.0.1 → 13.0.0}/include/ia32intrin.h +0 -0
  110. package/lib/clang/{12.0.1 → 13.0.0}/include/immintrin.h +5 -5
  111. /package/lib/clang/{12.0.1 → 13.0.0}/include/inttypes.h +0 -0
  112. /package/lib/clang/{12.0.1 → 13.0.0}/include/invpcidintrin.h +0 -0
  113. /package/lib/clang/{12.0.1 → 13.0.0}/include/iso646.h +0 -0
  114. /package/lib/clang/{12.0.1 → 13.0.0}/include/limits.h +0 -0
  115. /package/lib/clang/{12.0.1 → 13.0.0}/include/lwpintrin.h +0 -0
  116. /package/lib/clang/{12.0.1 → 13.0.0}/include/lzcntintrin.h +0 -0
  117. /package/lib/clang/{12.0.1 → 13.0.0}/include/mm3dnow.h +0 -0
  118. /package/lib/clang/{12.0.1 → 13.0.0}/include/mm_malloc.h +0 -0
  119. /package/lib/clang/{12.0.1 → 13.0.0}/include/mmintrin.h +0 -0
  120. /package/lib/clang/{12.0.1 → 13.0.0}/include/module.modulemap +0 -0
  121. /package/lib/clang/{12.0.1 → 13.0.0}/include/movdirintrin.h +0 -0
  122. /package/lib/clang/{12.0.1 → 13.0.0}/include/msa.h +0 -0
  123. /package/lib/clang/{12.0.1 → 13.0.0}/include/mwaitxintrin.h +0 -0
  124. /package/lib/clang/{12.0.1 → 13.0.0}/include/nmmintrin.h +0 -0
  125. /package/lib/clang/{12.0.1 → 13.0.0}/include/openmp_wrappers/complex_cmath.h +0 -0
  126. /package/lib/clang/{12.0.1 → 13.0.0}/include/pconfigintrin.h +0 -0
  127. /package/lib/clang/{12.0.1 → 13.0.0}/include/pkuintrin.h +0 -0
  128. /package/lib/clang/{12.0.1 → 13.0.0}/include/pmmintrin.h +0 -0
  129. /package/lib/clang/{12.0.1 → 13.0.0}/include/popcntintrin.h +0 -0
  130. /package/lib/clang/{12.0.1 → 13.0.0}/include/ppc_wrappers/emmintrin.h +0 -0
  131. /package/lib/clang/{12.0.1 → 13.0.0}/include/ppc_wrappers/mm_malloc.h +0 -0
  132. /package/lib/clang/{12.0.1 → 13.0.0}/include/ppc_wrappers/mmintrin.h +0 -0
  133. /package/lib/clang/{12.0.1 → 13.0.0}/include/ppc_wrappers/pmmintrin.h +0 -0
  134. /package/lib/clang/{12.0.1 → 13.0.0}/include/ppc_wrappers/smmintrin.h +0 -0
  135. /package/lib/clang/{12.0.1 → 13.0.0}/include/ppc_wrappers/tmmintrin.h +0 -0
  136. /package/lib/clang/{12.0.1 → 13.0.0}/include/ppc_wrappers/xmmintrin.h +0 -0
  137. /package/lib/clang/{12.0.1 → 13.0.0}/include/prfchwintrin.h +0 -0
  138. /package/lib/clang/{12.0.1 → 13.0.0}/include/ptwriteintrin.h +0 -0
  139. /package/lib/clang/{12.0.1 → 13.0.0}/include/rdseedintrin.h +0 -0
  140. /package/lib/clang/{12.0.1 → 13.0.0}/include/rtmintrin.h +0 -0
  141. /package/lib/clang/{12.0.1 → 13.0.0}/include/s390intrin.h +0 -0
  142. /package/lib/clang/{12.0.1 → 13.0.0}/include/serializeintrin.h +0 -0
  143. /package/lib/clang/{12.0.1 → 13.0.0}/include/sgxintrin.h +0 -0
  144. /package/lib/clang/{12.0.1 → 13.0.0}/include/shaintrin.h +0 -0
  145. /package/lib/clang/{12.0.1 → 13.0.0}/include/smmintrin.h +0 -0
  146. /package/lib/clang/{12.0.1 → 13.0.0}/include/stdalign.h +0 -0
  147. /package/lib/clang/{12.0.1 → 13.0.0}/include/stdarg.h +0 -0
  148. /package/lib/clang/{12.0.1 → 13.0.0}/include/stdatomic.h +0 -0
  149. /package/lib/clang/{12.0.1 → 13.0.0}/include/stdbool.h +0 -0
  150. /package/lib/clang/{12.0.1 → 13.0.0}/include/stddef.h +0 -0
  151. /package/lib/clang/{12.0.1 → 13.0.0}/include/stdint.h +0 -0
  152. /package/lib/clang/{12.0.1 → 13.0.0}/include/stdnoreturn.h +0 -0
  153. /package/lib/clang/{12.0.1 → 13.0.0}/include/tbmintrin.h +0 -0
  154. /package/lib/clang/{12.0.1 → 13.0.0}/include/tgmath.h +0 -0
  155. /package/lib/clang/{12.0.1 → 13.0.0}/include/tmmintrin.h +0 -0
  156. /package/lib/clang/{12.0.1 → 13.0.0}/include/tsxldtrkintrin.h +0 -0
  157. /package/lib/clang/{12.0.1 → 13.0.0}/include/unwind.h +0 -0
  158. /package/lib/clang/{12.0.1 → 13.0.0}/include/vadefs.h +0 -0
  159. /package/lib/clang/{12.0.1 → 13.0.0}/include/varargs.h +0 -0
  160. /package/lib/clang/{12.0.1 → 13.0.0}/include/waitpkgintrin.h +0 -0
  161. /package/lib/clang/{12.0.1 → 13.0.0}/include/wbnoinvdintrin.h +0 -0
  162. /package/lib/clang/{12.0.1 → 13.0.0}/include/wmmintrin.h +0 -0
  163. /package/lib/clang/{12.0.1 → 13.0.0}/include/x86gprintrin.h +0 -0
  164. /package/lib/clang/{12.0.1 → 13.0.0}/include/x86intrin.h +0 -0
  165. /package/lib/clang/{12.0.1 → 13.0.0}/include/xmmintrin.h +0 -0
  166. /package/lib/clang/{12.0.1 → 13.0.0}/include/xopintrin.h +0 -0
  167. /package/lib/clang/{12.0.1 → 13.0.0}/include/xsavecintrin.h +0 -0
  168. /package/lib/clang/{12.0.1 → 13.0.0}/include/xsaveintrin.h +0 -0
  169. /package/lib/clang/{12.0.1 → 13.0.0}/include/xsaveoptintrin.h +0 -0
  170. /package/lib/clang/{12.0.1 → 13.0.0}/include/xsavesintrin.h +0 -0
  171. /package/lib/clang/{12.0.1 → 13.0.0}/include/xtestintrin.h +0 -0
@@ -23,10 +23,11 @@
23
23
  #endif //cl_khr_3d_image_writes
24
24
  #endif //__OPENCL_C_VERSION__ < CL_VERSION_2_0
25
25
 
26
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)
26
+
27
+ #if (defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)) && defined(__SPIR__)
27
28
  #pragma OPENCL EXTENSION cl_intel_planar_yuv : begin
28
29
  #pragma OPENCL EXTENSION cl_intel_planar_yuv : end
29
- #endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)
30
+ #endif // (defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)) && defined(__SPIR__)
30
31
 
31
32
  #define __ovld __attribute__((overloadable))
32
33
  #define __conv __attribute__((convergent))
@@ -6339,101 +6340,6 @@ half16 __ovld __cnfn convert_half16_rtz(double16);
6339
6340
 
6340
6341
  #endif // cl_khr_fp16
6341
6342
 
6342
- /**
6343
- * OpenCL v1.1/1.2/2.0 s6.2.4.2 - as_type operators
6344
- * Reinterprets a data type as another data type of the same size
6345
- */
6346
- #define as_char(x) __builtin_astype((x), char)
6347
- #define as_char2(x) __builtin_astype((x), char2)
6348
- #define as_char3(x) __builtin_astype((x), char3)
6349
- #define as_char4(x) __builtin_astype((x), char4)
6350
- #define as_char8(x) __builtin_astype((x), char8)
6351
- #define as_char16(x) __builtin_astype((x), char16)
6352
-
6353
- #define as_uchar(x) __builtin_astype((x), uchar)
6354
- #define as_uchar2(x) __builtin_astype((x), uchar2)
6355
- #define as_uchar3(x) __builtin_astype((x), uchar3)
6356
- #define as_uchar4(x) __builtin_astype((x), uchar4)
6357
- #define as_uchar8(x) __builtin_astype((x), uchar8)
6358
- #define as_uchar16(x) __builtin_astype((x), uchar16)
6359
-
6360
- #define as_short(x) __builtin_astype((x), short)
6361
- #define as_short2(x) __builtin_astype((x), short2)
6362
- #define as_short3(x) __builtin_astype((x), short3)
6363
- #define as_short4(x) __builtin_astype((x), short4)
6364
- #define as_short8(x) __builtin_astype((x), short8)
6365
- #define as_short16(x) __builtin_astype((x), short16)
6366
-
6367
- #define as_ushort(x) __builtin_astype((x), ushort)
6368
- #define as_ushort2(x) __builtin_astype((x), ushort2)
6369
- #define as_ushort3(x) __builtin_astype((x), ushort3)
6370
- #define as_ushort4(x) __builtin_astype((x), ushort4)
6371
- #define as_ushort8(x) __builtin_astype((x), ushort8)
6372
- #define as_ushort16(x) __builtin_astype((x), ushort16)
6373
-
6374
- #define as_int(x) __builtin_astype((x), int)
6375
- #define as_int2(x) __builtin_astype((x), int2)
6376
- #define as_int3(x) __builtin_astype((x), int3)
6377
- #define as_int4(x) __builtin_astype((x), int4)
6378
- #define as_int8(x) __builtin_astype((x), int8)
6379
- #define as_int16(x) __builtin_astype((x), int16)
6380
-
6381
- #define as_uint(x) __builtin_astype((x), uint)
6382
- #define as_uint2(x) __builtin_astype((x), uint2)
6383
- #define as_uint3(x) __builtin_astype((x), uint3)
6384
- #define as_uint4(x) __builtin_astype((x), uint4)
6385
- #define as_uint8(x) __builtin_astype((x), uint8)
6386
- #define as_uint16(x) __builtin_astype((x), uint16)
6387
-
6388
- #define as_long(x) __builtin_astype((x), long)
6389
- #define as_long2(x) __builtin_astype((x), long2)
6390
- #define as_long3(x) __builtin_astype((x), long3)
6391
- #define as_long4(x) __builtin_astype((x), long4)
6392
- #define as_long8(x) __builtin_astype((x), long8)
6393
- #define as_long16(x) __builtin_astype((x), long16)
6394
-
6395
- #define as_ulong(x) __builtin_astype((x), ulong)
6396
- #define as_ulong2(x) __builtin_astype((x), ulong2)
6397
- #define as_ulong3(x) __builtin_astype((x), ulong3)
6398
- #define as_ulong4(x) __builtin_astype((x), ulong4)
6399
- #define as_ulong8(x) __builtin_astype((x), ulong8)
6400
- #define as_ulong16(x) __builtin_astype((x), ulong16)
6401
-
6402
- #define as_float(x) __builtin_astype((x), float)
6403
- #define as_float2(x) __builtin_astype((x), float2)
6404
- #define as_float3(x) __builtin_astype((x), float3)
6405
- #define as_float4(x) __builtin_astype((x), float4)
6406
- #define as_float8(x) __builtin_astype((x), float8)
6407
- #define as_float16(x) __builtin_astype((x), float16)
6408
-
6409
- #ifdef cl_khr_fp64
6410
- #define as_double(x) __builtin_astype((x), double)
6411
- #define as_double2(x) __builtin_astype((x), double2)
6412
- #define as_double3(x) __builtin_astype((x), double3)
6413
- #define as_double4(x) __builtin_astype((x), double4)
6414
- #define as_double8(x) __builtin_astype((x), double8)
6415
- #define as_double16(x) __builtin_astype((x), double16)
6416
- #endif //cl_khr_fp64
6417
-
6418
- #ifdef cl_khr_fp16
6419
- #define as_half(x) __builtin_astype((x), half)
6420
- #define as_half2(x) __builtin_astype((x), half2)
6421
- #define as_half3(x) __builtin_astype((x), half3)
6422
- #define as_half4(x) __builtin_astype((x), half4)
6423
- #define as_half8(x) __builtin_astype((x), half8)
6424
- #define as_half16(x) __builtin_astype((x), half16)
6425
- #endif //cl_khr_fp16
6426
-
6427
- // OpenCL v1.1 s6.9, v1.2/2.0 s6.10 - Function qualifiers
6428
-
6429
- #define __kernel_exec(X, typen) __kernel \
6430
- __attribute__((work_group_size_hint(X, 1, 1))) \
6431
- __attribute__((vec_type_hint(typen)))
6432
-
6433
- #define kernel_exec(X, typen) __kernel \
6434
- __attribute__((work_group_size_hint(X, 1, 1))) \
6435
- __attribute__((vec_type_hint(typen)))
6436
-
6437
6343
  // OpenCL v1.1 s6.11.1, v1.2 s6.12.1, v2.0 s6.13.1 - Work-item Functions
6438
6344
 
6439
6345
  /**
@@ -6494,8 +6400,7 @@ size_t __ovld __cnfn get_local_id(uint dimindx);
6494
6400
  * Returns the number of work-groups that will execute a
6495
6401
  * kernel for dimension identified by dimindx.
6496
6402
  * Valid values of dimindx are 0 to get_work_dim() - 1.
6497
- * For other values of dimindx, get_num_groups () returns
6498
- * 1.
6403
+ * For other values of dimindx, get_num_groups() returns 1.
6499
6404
  * For clEnqueueTask, this always returns 1.
6500
6405
  */
6501
6406
  size_t __ovld __cnfn get_num_groups(uint dimindx);
@@ -7354,7 +7259,7 @@ half16 __ovld __cnfn fmod(half16 x, half16 y);
7354
7259
  * Returns fmin(x - floor (x), 0x1.fffffep-1f ).
7355
7260
  * floor(x) is returned in iptr.
7356
7261
  */
7357
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
7262
+ #if defined(__opencl_c_generic_address_space)
7358
7263
  float __ovld fract(float x, float *iptr);
7359
7264
  float2 __ovld fract(float2 x, float2 *iptr);
7360
7265
  float3 __ovld fract(float3 x, float3 *iptr);
@@ -7436,7 +7341,7 @@ half4 __ovld fract(half4 x, __private half4 *iptr);
7436
7341
  half8 __ovld fract(half8 x, __private half8 *iptr);
7437
7342
  half16 __ovld fract(half16 x, __private half16 *iptr);
7438
7343
  #endif //cl_khr_fp16
7439
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
7344
+ #endif //defined(__opencl_c_generic_address_space)
7440
7345
 
7441
7346
  /**
7442
7347
  * Extract mantissa and exponent from x. For each
@@ -7444,7 +7349,7 @@ half16 __ovld fract(half16 x, __private half16 *iptr);
7444
7349
  * magnitude in the interval [1/2, 1) or 0. Each
7445
7350
  * component of x equals mantissa returned * 2^exp.
7446
7351
  */
7447
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
7352
+ #if defined(__opencl_c_generic_address_space)
7448
7353
  float __ovld frexp(float x, int *exp);
7449
7354
  float2 __ovld frexp(float2 x, int2 *exp);
7450
7355
  float3 __ovld frexp(float3 x, int3 *exp);
@@ -7526,7 +7431,7 @@ half4 __ovld frexp(half4 x, __private int4 *exp);
7526
7431
  half8 __ovld frexp(half8 x, __private int8 *exp);
7527
7432
  half16 __ovld frexp(half16 x, __private int16 *exp);
7528
7433
  #endif //cl_khr_fp16
7529
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
7434
+ #endif //defined(__opencl_c_generic_address_space)
7530
7435
 
7531
7436
  /**
7532
7437
  * Compute the value of the square root of x^2 + y^2
@@ -7651,7 +7556,7 @@ half8 __ovld __cnfn lgamma(half8 x);
7651
7556
  half16 __ovld __cnfn lgamma(half16 x);
7652
7557
  #endif //cl_khr_fp16
7653
7558
 
7654
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
7559
+ #if defined(__opencl_c_generic_address_space)
7655
7560
  float __ovld lgamma_r(float x, int *signp);
7656
7561
  float2 __ovld lgamma_r(float2 x, int2 *signp);
7657
7562
  float3 __ovld lgamma_r(float3 x, int3 *signp);
@@ -7733,7 +7638,7 @@ half4 __ovld lgamma_r(half4 x, __private int4 *signp);
7733
7638
  half8 __ovld lgamma_r(half8 x, __private int8 *signp);
7734
7639
  half16 __ovld lgamma_r(half16 x, __private int16 *signp);
7735
7640
  #endif //cl_khr_fp16
7736
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
7641
+ #endif //defined(__opencl_c_generic_address_space)
7737
7642
 
7738
7643
  /**
7739
7644
  * Compute natural logarithm.
@@ -7957,7 +7862,7 @@ half16 __ovld __cnfn minmag(half16 x, half16 y);
7957
7862
  * the argument. It stores the integral part in the object
7958
7863
  * pointed to by iptr.
7959
7864
  */
7960
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
7865
+ #if defined(__opencl_c_generic_address_space)
7961
7866
  float __ovld modf(float x, float *iptr);
7962
7867
  float2 __ovld modf(float2 x, float2 *iptr);
7963
7868
  float3 __ovld modf(float3 x, float3 *iptr);
@@ -8039,7 +7944,7 @@ half4 __ovld modf(half4 x, __private half4 *iptr);
8039
7944
  half8 __ovld modf(half8 x, __private half8 *iptr);
8040
7945
  half16 __ovld modf(half16 x, __private half16 *iptr);
8041
7946
  #endif //cl_khr_fp16
8042
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
7947
+ #endif //defined(__opencl_c_generic_address_space)
8043
7948
 
8044
7949
  /**
8045
7950
  * Returns a quiet NaN. The nancode may be placed
@@ -8217,7 +8122,7 @@ half16 __ovld __cnfn remainder(half16 x, half16 y);
8217
8122
  * sign as x/y. It stores this signed value in the object
8218
8123
  * pointed to by quo.
8219
8124
  */
8220
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
8125
+ #if defined(__opencl_c_generic_address_space)
8221
8126
  float __ovld remquo(float x, float y, int *quo);
8222
8127
  float2 __ovld remquo(float2 x, float2 y, int2 *quo);
8223
8128
  float3 __ovld remquo(float3 x, float3 y, int3 *quo);
@@ -8300,7 +8205,7 @@ half4 __ovld remquo(half4 x, half4 y, __private int4 *quo);
8300
8205
  half8 __ovld remquo(half8 x, half8 y, __private int8 *quo);
8301
8206
  half16 __ovld remquo(half16 x, half16 y, __private int16 *quo);
8302
8207
  #endif //cl_khr_fp16
8303
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
8208
+ #endif //defined(__opencl_c_generic_address_space)
8304
8209
  /**
8305
8210
  * Round to integral value (using round to nearest
8306
8211
  * even rounding mode) in floating-point format.
@@ -8441,7 +8346,7 @@ half16 __ovld __cnfn sin(half16);
8441
8346
  * is the return value and computed cosine is returned
8442
8347
  * in cosval.
8443
8348
  */
8444
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
8349
+ #if defined(__opencl_c_generic_address_space)
8445
8350
  float __ovld sincos(float x, float *cosval);
8446
8351
  float2 __ovld sincos(float2 x, float2 *cosval);
8447
8352
  float3 __ovld sincos(float3 x, float3 *cosval);
@@ -8523,7 +8428,7 @@ half4 __ovld sincos(half4 x, __private half4 *cosval);
8523
8428
  half8 __ovld sincos(half8 x, __private half8 *cosval);
8524
8429
  half16 __ovld sincos(half16 x, __private half16 *cosval);
8525
8430
  #endif //cl_khr_fp16
8526
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
8431
+ #endif //defined(__opencl_c_generic_address_space)
8527
8432
 
8528
8433
  /**
8529
8434
  * Compute hyperbolic sine.
@@ -9449,54 +9354,54 @@ ulong16 __ovld __cnfn clz(ulong16 x);
9449
9354
  * component type of x, if x is a vector.
9450
9355
  */
9451
9356
  #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
9452
- char __ovld ctz(char x);
9453
- uchar __ovld ctz(uchar x);
9454
- char2 __ovld ctz(char2 x);
9455
- uchar2 __ovld ctz(uchar2 x);
9456
- char3 __ovld ctz(char3 x);
9457
- uchar3 __ovld ctz(uchar3 x);
9458
- char4 __ovld ctz(char4 x);
9459
- uchar4 __ovld ctz(uchar4 x);
9460
- char8 __ovld ctz(char8 x);
9461
- uchar8 __ovld ctz(uchar8 x);
9462
- char16 __ovld ctz(char16 x);
9463
- uchar16 __ovld ctz(uchar16 x);
9464
- short __ovld ctz(short x);
9465
- ushort __ovld ctz(ushort x);
9466
- short2 __ovld ctz(short2 x);
9467
- ushort2 __ovld ctz(ushort2 x);
9468
- short3 __ovld ctz(short3 x);
9469
- ushort3 __ovld ctz(ushort3 x);
9470
- short4 __ovld ctz(short4 x);
9471
- ushort4 __ovld ctz(ushort4 x);
9472
- short8 __ovld ctz(short8 x);
9473
- ushort8 __ovld ctz(ushort8 x);
9474
- short16 __ovld ctz(short16 x);
9475
- ushort16 __ovld ctz(ushort16 x);
9476
- int __ovld ctz(int x);
9477
- uint __ovld ctz(uint x);
9478
- int2 __ovld ctz(int2 x);
9479
- uint2 __ovld ctz(uint2 x);
9480
- int3 __ovld ctz(int3 x);
9481
- uint3 __ovld ctz(uint3 x);
9482
- int4 __ovld ctz(int4 x);
9483
- uint4 __ovld ctz(uint4 x);
9484
- int8 __ovld ctz(int8 x);
9485
- uint8 __ovld ctz(uint8 x);
9486
- int16 __ovld ctz(int16 x);
9487
- uint16 __ovld ctz(uint16 x);
9488
- long __ovld ctz(long x);
9489
- ulong __ovld ctz(ulong x);
9490
- long2 __ovld ctz(long2 x);
9491
- ulong2 __ovld ctz(ulong2 x);
9492
- long3 __ovld ctz(long3 x);
9493
- ulong3 __ovld ctz(ulong3 x);
9494
- long4 __ovld ctz(long4 x);
9495
- ulong4 __ovld ctz(ulong4 x);
9496
- long8 __ovld ctz(long8 x);
9497
- ulong8 __ovld ctz(ulong8 x);
9498
- long16 __ovld ctz(long16 x);
9499
- ulong16 __ovld ctz(ulong16 x);
9357
+ char __ovld __cnfn ctz(char x);
9358
+ uchar __ovld __cnfn ctz(uchar x);
9359
+ char2 __ovld __cnfn ctz(char2 x);
9360
+ uchar2 __ovld __cnfn ctz(uchar2 x);
9361
+ char3 __ovld __cnfn ctz(char3 x);
9362
+ uchar3 __ovld __cnfn ctz(uchar3 x);
9363
+ char4 __ovld __cnfn ctz(char4 x);
9364
+ uchar4 __ovld __cnfn ctz(uchar4 x);
9365
+ char8 __ovld __cnfn ctz(char8 x);
9366
+ uchar8 __ovld __cnfn ctz(uchar8 x);
9367
+ char16 __ovld __cnfn ctz(char16 x);
9368
+ uchar16 __ovld __cnfn ctz(uchar16 x);
9369
+ short __ovld __cnfn ctz(short x);
9370
+ ushort __ovld __cnfn ctz(ushort x);
9371
+ short2 __ovld __cnfn ctz(short2 x);
9372
+ ushort2 __ovld __cnfn ctz(ushort2 x);
9373
+ short3 __ovld __cnfn ctz(short3 x);
9374
+ ushort3 __ovld __cnfn ctz(ushort3 x);
9375
+ short4 __ovld __cnfn ctz(short4 x);
9376
+ ushort4 __ovld __cnfn ctz(ushort4 x);
9377
+ short8 __ovld __cnfn ctz(short8 x);
9378
+ ushort8 __ovld __cnfn ctz(ushort8 x);
9379
+ short16 __ovld __cnfn ctz(short16 x);
9380
+ ushort16 __ovld __cnfn ctz(ushort16 x);
9381
+ int __ovld __cnfn ctz(int x);
9382
+ uint __ovld __cnfn ctz(uint x);
9383
+ int2 __ovld __cnfn ctz(int2 x);
9384
+ uint2 __ovld __cnfn ctz(uint2 x);
9385
+ int3 __ovld __cnfn ctz(int3 x);
9386
+ uint3 __ovld __cnfn ctz(uint3 x);
9387
+ int4 __ovld __cnfn ctz(int4 x);
9388
+ uint4 __ovld __cnfn ctz(uint4 x);
9389
+ int8 __ovld __cnfn ctz(int8 x);
9390
+ uint8 __ovld __cnfn ctz(uint8 x);
9391
+ int16 __ovld __cnfn ctz(int16 x);
9392
+ uint16 __ovld __cnfn ctz(uint16 x);
9393
+ long __ovld __cnfn ctz(long x);
9394
+ ulong __ovld __cnfn ctz(ulong x);
9395
+ long2 __ovld __cnfn ctz(long2 x);
9396
+ ulong2 __ovld __cnfn ctz(ulong2 x);
9397
+ long3 __ovld __cnfn ctz(long3 x);
9398
+ ulong3 __ovld __cnfn ctz(ulong3 x);
9399
+ long4 __ovld __cnfn ctz(long4 x);
9400
+ ulong4 __ovld __cnfn ctz(ulong4 x);
9401
+ long8 __ovld __cnfn ctz(long8 x);
9402
+ ulong8 __ovld __cnfn ctz(ulong8 x);
9403
+ long16 __ovld __cnfn ctz(long16 x);
9404
+ ulong16 __ovld __cnfn ctz(ulong16 x);
9500
9405
  #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
9501
9406
 
9502
9407
  /**
@@ -10002,6 +9907,7 @@ ulong16 __ovld __cnfn upsample(uint16 hi, uint16 lo);
10002
9907
  /*
10003
9908
  * popcount(x): returns the number of set bit in x
10004
9909
  */
9910
+ #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)
10005
9911
  char __ovld __cnfn popcount(char x);
10006
9912
  uchar __ovld __cnfn popcount(uchar x);
10007
9913
  char2 __ovld __cnfn popcount(char2 x);
@@ -10050,6 +9956,7 @@ long8 __ovld __cnfn popcount(long8 x);
10050
9956
  ulong8 __ovld __cnfn popcount(ulong8 x);
10051
9957
  long16 __ovld __cnfn popcount(long16 x);
10052
9958
  ulong16 __ovld __cnfn popcount(ulong16 x);
9959
+ #endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)
10053
9960
 
10054
9961
  /**
10055
9962
  * Multiply two 24-bit integer values x and y and add
@@ -11342,7 +11249,7 @@ half8 __ovld vload8(size_t offset, const __constant half *p);
11342
11249
  half16 __ovld vload16(size_t offset, const __constant half *p);
11343
11250
  #endif //cl_khr_fp16
11344
11251
 
11345
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
11252
+ #if defined(__opencl_c_generic_address_space)
11346
11253
  char2 __ovld vload2(size_t offset, const char *p);
11347
11254
  uchar2 __ovld vload2(size_t offset, const uchar *p);
11348
11255
  short2 __ovld vload2(size_t offset, const short *p);
@@ -11580,9 +11487,9 @@ half4 __ovld vload4(size_t offset, const __private half *p);
11580
11487
  half8 __ovld vload8(size_t offset, const __private half *p);
11581
11488
  half16 __ovld vload16(size_t offset, const __private half *p);
11582
11489
  #endif //cl_khr_fp16
11583
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
11490
+ #endif //defined(__opencl_c_generic_address_space)
11584
11491
 
11585
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
11492
+ #if defined(__opencl_c_generic_address_space)
11586
11493
  void __ovld vstore2(char2 data, size_t offset, char *p);
11587
11494
  void __ovld vstore2(uchar2 data, size_t offset, uchar *p);
11588
11495
  void __ovld vstore2(short2 data, size_t offset, short *p);
@@ -11816,7 +11723,7 @@ void __ovld vstore4(half4 data, size_t offset, __private half *p);
11816
11723
  void __ovld vstore8(half8 data, size_t offset, __private half *p);
11817
11724
  void __ovld vstore16(half16 data, size_t offset, __private half *p);
11818
11725
  #endif //cl_khr_fp16
11819
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
11726
+ #endif //defined(__opencl_c_generic_address_space)
11820
11727
 
11821
11728
  /**
11822
11729
  * Read sizeof (half) bytes of data from address
@@ -11827,13 +11734,13 @@ void __ovld vstore16(half16 data, size_t offset, __private half *p);
11827
11734
  * must be 16-bit aligned.
11828
11735
  */
11829
11736
  float __ovld vload_half(size_t offset, const __constant half *p);
11830
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
11737
+ #if defined(__opencl_c_generic_address_space)
11831
11738
  float __ovld vload_half(size_t offset, const half *p);
11832
11739
  #else
11833
11740
  float __ovld vload_half(size_t offset, const __global half *p);
11834
11741
  float __ovld vload_half(size_t offset, const __local half *p);
11835
11742
  float __ovld vload_half(size_t offset, const __private half *p);
11836
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
11743
+ #endif //defined(__opencl_c_generic_address_space)
11837
11744
 
11838
11745
  /**
11839
11746
  * Read sizeof (halfn) bytes of data from address
@@ -11848,7 +11755,7 @@ float3 __ovld vload_half3(size_t offset, const __constant half *p);
11848
11755
  float4 __ovld vload_half4(size_t offset, const __constant half *p);
11849
11756
  float8 __ovld vload_half8(size_t offset, const __constant half *p);
11850
11757
  float16 __ovld vload_half16(size_t offset, const __constant half *p);
11851
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
11758
+ #if defined(__opencl_c_generic_address_space)
11852
11759
  float2 __ovld vload_half2(size_t offset, const half *p);
11853
11760
  float3 __ovld vload_half3(size_t offset, const half *p);
11854
11761
  float4 __ovld vload_half4(size_t offset, const half *p);
@@ -11870,7 +11777,7 @@ float3 __ovld vload_half3(size_t offset, const __private half *p);
11870
11777
  float4 __ovld vload_half4(size_t offset, const __private half *p);
11871
11778
  float8 __ovld vload_half8(size_t offset, const __private half *p);
11872
11779
  float16 __ovld vload_half16(size_t offset, const __private half *p);
11873
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
11780
+ #endif //defined(__opencl_c_generic_address_space)
11874
11781
 
11875
11782
  /**
11876
11783
  * The float value given by data is first
@@ -11883,7 +11790,7 @@ float16 __ovld vload_half16(size_t offset, const __private half *p);
11883
11790
  * The default current rounding mode is round to
11884
11791
  * nearest even.
11885
11792
  */
11886
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
11793
+ #if defined(__opencl_c_generic_address_space)
11887
11794
  void __ovld vstore_half(float data, size_t offset, half *p);
11888
11795
  void __ovld vstore_half_rte(float data, size_t offset, half *p);
11889
11796
  void __ovld vstore_half_rtz(float data, size_t offset, half *p);
@@ -11929,7 +11836,7 @@ void __ovld vstore_half_rtz(double data, size_t offset, __private half *p);
11929
11836
  void __ovld vstore_half_rtp(double data, size_t offset, __private half *p);
11930
11837
  void __ovld vstore_half_rtn(double data, size_t offset, __private half *p);
11931
11838
  #endif //cl_khr_fp64
11932
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
11839
+ #endif //defined(__opencl_c_generic_address_space)
11933
11840
 
11934
11841
  /**
11935
11842
  * The floatn value given by data is converted to
@@ -11942,7 +11849,7 @@ void __ovld vstore_half_rtn(double data, size_t offset, __private half *p);
11942
11849
  * The default current rounding mode is round to
11943
11850
  * nearest even.
11944
11851
  */
11945
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
11852
+ #if defined(__opencl_c_generic_address_space)
11946
11853
  void __ovld vstore_half2(float2 data, size_t offset, half *p);
11947
11854
  void __ovld vstore_half3(float3 data, size_t offset, half *p);
11948
11855
  void __ovld vstore_half4(float4 data, size_t offset, half *p);
@@ -12148,7 +12055,7 @@ void __ovld vstore_half4_rtn(double4 data, size_t offset, __private half *p);
12148
12055
  void __ovld vstore_half8_rtn(double8 data, size_t offset, __private half *p);
12149
12056
  void __ovld vstore_half16_rtn(double16 data, size_t offset, __private half *p);
12150
12057
  #endif //cl_khr_fp64
12151
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
12058
+ #endif //defined(__opencl_c_generic_address_space)
12152
12059
 
12153
12060
  /**
12154
12061
  * For n = 1, 2, 4, 8 and 16 read sizeof (halfn)
@@ -12169,7 +12076,7 @@ float3 __ovld vloada_half3(size_t offset, const __constant half *p);
12169
12076
  float4 __ovld vloada_half4(size_t offset, const __constant half *p);
12170
12077
  float8 __ovld vloada_half8(size_t offset, const __constant half *p);
12171
12078
  float16 __ovld vloada_half16(size_t offset, const __constant half *p);
12172
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
12079
+ #if defined(__opencl_c_generic_address_space)
12173
12080
  float __ovld vloada_half(size_t offset, const half *p);
12174
12081
  float2 __ovld vloada_half2(size_t offset, const half *p);
12175
12082
  float3 __ovld vloada_half3(size_t offset, const half *p);
@@ -12195,7 +12102,7 @@ float3 __ovld vloada_half3(size_t offset, const __private half *p);
12195
12102
  float4 __ovld vloada_half4(size_t offset, const __private half *p);
12196
12103
  float8 __ovld vloada_half8(size_t offset, const __private half *p);
12197
12104
  float16 __ovld vloada_half16(size_t offset, const __private half *p);
12198
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
12105
+ #endif //defined(__opencl_c_generic_address_space)
12199
12106
 
12200
12107
  /**
12201
12108
  * The floatn value given by data is converted to
@@ -12213,7 +12120,7 @@ float16 __ovld vloada_half16(size_t offset, const __private half *p);
12213
12120
  * mode. The default current rounding mode is
12214
12121
  * round to nearest even.
12215
12122
  */
12216
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
12123
+ #if defined(__opencl_c_generic_address_space)
12217
12124
  void __ovld vstorea_half(float data, size_t offset, half *p);
12218
12125
  void __ovld vstorea_half2(float2 data, size_t offset, half *p);
12219
12126
  void __ovld vstorea_half3(float3 data, size_t offset, half *p);
@@ -12498,7 +12405,7 @@ void __ovld vstorea_half4_rtn(double4 data,size_t offset, __private half *p);
12498
12405
  void __ovld vstorea_half8_rtn(double8 data,size_t offset, __private half *p);
12499
12406
  void __ovld vstorea_half16_rtn(double16 data,size_t offset, __private half *p);
12500
12407
  #endif //cl_khr_fp64
12501
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
12408
+ #endif //defined(__opencl_c_generic_address_space)
12502
12409
 
12503
12410
  // OpenCL v1.1 s6.11.8, v1.2 s6.12.8, v2.0 s6.13.8 - Synchronization Functions
12504
12411
 
@@ -12582,7 +12489,7 @@ void __ovld write_mem_fence(cl_mem_fence_flags flags);
12582
12489
 
12583
12490
  // OpenCL v2.0 s6.13.9 - Address Space Qualifier Functions
12584
12491
 
12585
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
12492
+ #if defined(__opencl_c_generic_address_space)
12586
12493
  cl_mem_fence_flags __ovld get_fence(const void *ptr);
12587
12494
  cl_mem_fence_flags __ovld get_fence(void *ptr);
12588
12495
 
@@ -12593,7 +12500,7 @@ cl_mem_fence_flags __ovld get_fence(void *ptr);
12593
12500
  * where gentype is builtin type or user defined type.
12594
12501
  */
12595
12502
 
12596
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
12503
+ #endif //defined(__opencl_c_generic_address_space)
12597
12504
 
12598
12505
  // OpenCL v1.1 s6.11.10, v1.2 s6.12.10, v2.0 s6.13.10 - Async Copies from Global to Local Memory, Local to Global Memory, and Prefetch
12599
12506
 
@@ -13397,291 +13304,324 @@ void __ovld atomic_init(volatile atomic_double *object, double value);
13397
13304
  void __ovld atomic_work_item_fence(cl_mem_fence_flags flags, memory_order order, memory_scope scope);
13398
13305
 
13399
13306
  // atomic_fetch()
13307
+ // OpenCL v2.0 s6.13.11.7.5:
13308
+ // add/sub: atomic type argument can be uintptr_t/intptr_t, value type argument can be ptrdiff_t.
13400
13309
 
13310
+ #if defined(__opencl_c_atomic_order_seq_cst) && defined(__opencl_c_atomic_scope_device)
13401
13311
  int __ovld atomic_fetch_add(volatile atomic_int *object, int operand);
13402
- int __ovld atomic_fetch_add_explicit(volatile atomic_int *object, int operand, memory_order order);
13403
- int __ovld atomic_fetch_add_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
13404
13312
  uint __ovld atomic_fetch_add(volatile atomic_uint *object, uint operand);
13405
- uint __ovld atomic_fetch_add_explicit(volatile atomic_uint *object, uint operand, memory_order order);
13406
- uint __ovld atomic_fetch_add_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13407
13313
  int __ovld atomic_fetch_sub(volatile atomic_int *object, int operand);
13408
- int __ovld atomic_fetch_sub_explicit(volatile atomic_int *object, int operand, memory_order order);
13409
- int __ovld atomic_fetch_sub_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
13410
13314
  uint __ovld atomic_fetch_sub(volatile atomic_uint *object, uint operand);
13411
- uint __ovld atomic_fetch_sub_explicit(volatile atomic_uint *object, uint operand, memory_order order);
13412
- uint __ovld atomic_fetch_sub_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13413
13315
  int __ovld atomic_fetch_or(volatile atomic_int *object, int operand);
13414
- int __ovld atomic_fetch_or_explicit(volatile atomic_int *object, int operand, memory_order order);
13415
- int __ovld atomic_fetch_or_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
13416
13316
  uint __ovld atomic_fetch_or(volatile atomic_uint *object, uint operand);
13417
- uint __ovld atomic_fetch_or_explicit(volatile atomic_uint *object, uint operand, memory_order order);
13418
- uint __ovld atomic_fetch_or_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13419
13317
  int __ovld atomic_fetch_xor(volatile atomic_int *object, int operand);
13420
- int __ovld atomic_fetch_xor_explicit(volatile atomic_int *object, int operand, memory_order order);
13421
- int __ovld atomic_fetch_xor_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
13422
13318
  uint __ovld atomic_fetch_xor(volatile atomic_uint *object, uint operand);
13423
- uint __ovld atomic_fetch_xor_explicit(volatile atomic_uint *object, uint operand, memory_order order);
13424
- uint __ovld atomic_fetch_xor_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13425
13319
  int __ovld atomic_fetch_and(volatile atomic_int *object, int operand);
13426
- int __ovld atomic_fetch_and_explicit(volatile atomic_int *object, int operand, memory_order order);
13427
- int __ovld atomic_fetch_and_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
13428
13320
  uint __ovld atomic_fetch_and(volatile atomic_uint *object, uint operand);
13429
- uint __ovld atomic_fetch_and_explicit(volatile atomic_uint *object, uint operand, memory_order order);
13430
- uint __ovld atomic_fetch_and_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13431
13321
  int __ovld atomic_fetch_min(volatile atomic_int *object, int operand);
13432
- int __ovld atomic_fetch_min_explicit(volatile atomic_int *object, int operand, memory_order order);
13433
- int __ovld atomic_fetch_min_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
13434
13322
  uint __ovld atomic_fetch_min(volatile atomic_uint *object, uint operand);
13435
- uint __ovld atomic_fetch_min_explicit(volatile atomic_uint *object, uint operand, memory_order order);
13436
- uint __ovld atomic_fetch_min_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13437
13323
  int __ovld atomic_fetch_max(volatile atomic_int *object, int operand);
13438
- int __ovld atomic_fetch_max_explicit(volatile atomic_int *object, int operand, memory_order order);
13439
- int __ovld atomic_fetch_max_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
13440
13324
  uint __ovld atomic_fetch_max(volatile atomic_uint *object, uint operand);
13441
- uint __ovld atomic_fetch_max_explicit(volatile atomic_uint *object, uint operand, memory_order order);
13442
- uint __ovld atomic_fetch_max_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13443
13325
 
13444
13326
  #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13445
13327
  long __ovld atomic_fetch_add(volatile atomic_long *object, long operand);
13446
- long __ovld atomic_fetch_add_explicit(volatile atomic_long *object, long operand, memory_order order);
13447
- long __ovld atomic_fetch_add_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
13448
13328
  ulong __ovld atomic_fetch_add(volatile atomic_ulong *object, ulong operand);
13449
- ulong __ovld atomic_fetch_add_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
13450
- ulong __ovld atomic_fetch_add_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13451
13329
  long __ovld atomic_fetch_sub(volatile atomic_long *object, long operand);
13452
- long __ovld atomic_fetch_sub_explicit(volatile atomic_long *object, long operand, memory_order order);
13453
- long __ovld atomic_fetch_sub_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
13454
13330
  ulong __ovld atomic_fetch_sub(volatile atomic_ulong *object, ulong operand);
13455
- ulong __ovld atomic_fetch_sub_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
13456
- ulong __ovld atomic_fetch_sub_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13457
13331
  long __ovld atomic_fetch_or(volatile atomic_long *object, long operand);
13458
- long __ovld atomic_fetch_or_explicit(volatile atomic_long *object, long operand, memory_order order);
13459
- long __ovld atomic_fetch_or_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
13460
13332
  ulong __ovld atomic_fetch_or(volatile atomic_ulong *object, ulong operand);
13461
- ulong __ovld atomic_fetch_or_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
13462
- ulong __ovld atomic_fetch_or_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13463
13333
  long __ovld atomic_fetch_xor(volatile atomic_long *object, long operand);
13464
- long __ovld atomic_fetch_xor_explicit(volatile atomic_long *object, long operand, memory_order order);
13465
- long __ovld atomic_fetch_xor_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
13466
13334
  ulong __ovld atomic_fetch_xor(volatile atomic_ulong *object, ulong operand);
13467
- ulong __ovld atomic_fetch_xor_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
13468
- ulong __ovld atomic_fetch_xor_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13469
13335
  long __ovld atomic_fetch_and(volatile atomic_long *object, long operand);
13470
- long __ovld atomic_fetch_and_explicit(volatile atomic_long *object, long operand, memory_order order);
13471
- long __ovld atomic_fetch_and_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
13472
13336
  ulong __ovld atomic_fetch_and(volatile atomic_ulong *object, ulong operand);
13473
- ulong __ovld atomic_fetch_and_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
13474
- ulong __ovld atomic_fetch_and_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13475
13337
  long __ovld atomic_fetch_min(volatile atomic_long *object, long operand);
13476
- long __ovld atomic_fetch_min_explicit(volatile atomic_long *object, long operand, memory_order order);
13477
- long __ovld atomic_fetch_min_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
13478
13338
  ulong __ovld atomic_fetch_min(volatile atomic_ulong *object, ulong operand);
13479
- ulong __ovld atomic_fetch_min_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
13480
- ulong __ovld atomic_fetch_min_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13481
13339
  long __ovld atomic_fetch_max(volatile atomic_long *object, long operand);
13482
- long __ovld atomic_fetch_max_explicit(volatile atomic_long *object, long operand, memory_order order);
13483
- long __ovld atomic_fetch_max_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
13484
13340
  ulong __ovld atomic_fetch_max(volatile atomic_ulong *object, ulong operand);
13485
- ulong __ovld atomic_fetch_max_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
13486
- ulong __ovld atomic_fetch_max_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13341
+ uintptr_t __ovld atomic_fetch_add(volatile atomic_uintptr_t *object, ptrdiff_t operand);
13342
+ uintptr_t __ovld atomic_fetch_sub(volatile atomic_uintptr_t *object, ptrdiff_t operand);
13487
13343
  #endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13344
+ #endif
13488
13345
 
13489
- // OpenCL v2.0 s6.13.11.7.5:
13490
- // add/sub: atomic type argument can be uintptr_t/intptr_t, value type argument can be ptrdiff_t.
13491
- // or/xor/and/min/max: atomic type argument can be intptr_t/uintptr_t, value type argument can be intptr_t/uintptr_t.
13492
-
13346
+ #if defined(__opencl_c_atomic_scope_device)
13347
+ int __ovld atomic_fetch_add_explicit(volatile atomic_int *object, int operand, memory_order order);
13348
+ uint __ovld atomic_fetch_add_explicit(volatile atomic_uint *object, uint operand, memory_order order);
13349
+ int __ovld atomic_fetch_sub_explicit(volatile atomic_int *object, int operand, memory_order order);
13350
+ uint __ovld atomic_fetch_sub_explicit(volatile atomic_uint *object, uint operand, memory_order order);
13351
+ int __ovld atomic_fetch_or_explicit(volatile atomic_int *object, int operand, memory_order order);
13352
+ uint __ovld atomic_fetch_or_explicit(volatile atomic_uint *object, uint operand, memory_order order);
13353
+ int __ovld atomic_fetch_xor_explicit(volatile atomic_int *object, int operand, memory_order order);
13354
+ uint __ovld atomic_fetch_xor_explicit(volatile atomic_uint *object, uint operand, memory_order order);
13355
+ int __ovld atomic_fetch_and_explicit(volatile atomic_int *object, int operand, memory_order order);
13356
+ uint __ovld atomic_fetch_and_explicit(volatile atomic_uint *object, uint operand, memory_order order);
13357
+ int __ovld atomic_fetch_min_explicit(volatile atomic_int *object, int operand, memory_order order);
13358
+ uint __ovld atomic_fetch_min_explicit(volatile atomic_uint *object, uint operand, memory_order order);
13359
+ int __ovld atomic_fetch_max_explicit(volatile atomic_int *object, int operand, memory_order order);
13360
+ uint __ovld atomic_fetch_max_explicit(volatile atomic_uint *object, uint operand, memory_order order);
13493
13361
  #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13494
- uintptr_t __ovld atomic_fetch_add(volatile atomic_uintptr_t *object, ptrdiff_t operand);
13362
+ long __ovld atomic_fetch_add_explicit(volatile atomic_long *object, long operand, memory_order order);
13363
+ ulong __ovld atomic_fetch_add_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
13364
+ long __ovld atomic_fetch_sub_explicit(volatile atomic_long *object, long operand, memory_order order);
13365
+ ulong __ovld atomic_fetch_sub_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
13366
+ long __ovld atomic_fetch_or_explicit(volatile atomic_long *object, long operand, memory_order order);
13367
+ ulong __ovld atomic_fetch_or_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
13368
+ long __ovld atomic_fetch_xor_explicit(volatile atomic_long *object, long operand, memory_order order);
13369
+ ulong __ovld atomic_fetch_xor_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
13370
+ long __ovld atomic_fetch_and_explicit(volatile atomic_long *object, long operand, memory_order order);
13371
+ ulong __ovld atomic_fetch_and_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
13372
+ long __ovld atomic_fetch_min_explicit(volatile atomic_long *object, long operand, memory_order order);
13373
+ ulong __ovld atomic_fetch_min_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
13374
+ long __ovld atomic_fetch_max_explicit(volatile atomic_long *object, long operand, memory_order order);
13375
+ ulong __ovld atomic_fetch_max_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
13495
13376
  uintptr_t __ovld atomic_fetch_add_explicit(volatile atomic_uintptr_t *object, ptrdiff_t operand, memory_order order);
13496
- uintptr_t __ovld atomic_fetch_add_explicit(volatile atomic_uintptr_t *object, ptrdiff_t operand, memory_order order, memory_scope scope);
13497
- uintptr_t __ovld atomic_fetch_sub(volatile atomic_uintptr_t *object, ptrdiff_t operand);
13498
13377
  uintptr_t __ovld atomic_fetch_sub_explicit(volatile atomic_uintptr_t *object, ptrdiff_t operand, memory_order order);
13499
- uintptr_t __ovld atomic_fetch_sub_explicit(volatile atomic_uintptr_t *object, ptrdiff_t operand, memory_order order, memory_scope scope);
13378
+ #endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13379
+ #endif
13500
13380
 
13501
- uintptr_t __ovld atomic_fetch_or(volatile atomic_uintptr_t *object, intptr_t operand);
13502
- uintptr_t __ovld atomic_fetch_or_explicit(volatile atomic_uintptr_t *object, intptr_t operand, memory_order order);
13503
- uintptr_t __ovld atomic_fetch_or_explicit(volatile atomic_uintptr_t *object, intptr_t operand, memory_order order, memory_scope scope);
13504
- uintptr_t __ovld atomic_fetch_xor(volatile atomic_uintptr_t *object, intptr_t operand);
13505
- uintptr_t __ovld atomic_fetch_xor_explicit(volatile atomic_uintptr_t *object, intptr_t operand, memory_order order);
13506
- uintptr_t __ovld atomic_fetch_xor_explicit(volatile atomic_uintptr_t *object, intptr_t operand, memory_order order, memory_scope scope);
13507
- uintptr_t __ovld atomic_fetch_and(volatile atomic_uintptr_t *object, intptr_t operand);
13508
- uintptr_t __ovld atomic_fetch_and_explicit(volatile atomic_uintptr_t *object, intptr_t operand, memory_order order);
13509
- uintptr_t __ovld atomic_fetch_and_explicit(volatile atomic_uintptr_t *object, intptr_t operand, memory_order order, memory_scope scope);
13510
- uintptr_t __ovld atomic_fetch_min(volatile atomic_uintptr_t *object, intptr_t opermax);
13511
- uintptr_t __ovld atomic_fetch_min_explicit(volatile atomic_uintptr_t *object, intptr_t opermax, memory_order minder);
13512
- uintptr_t __ovld atomic_fetch_min_explicit(volatile atomic_uintptr_t *object, intptr_t opermax, memory_order minder, memory_scope scope);
13513
- uintptr_t __ovld atomic_fetch_max(volatile atomic_uintptr_t *object, intptr_t opermax);
13514
- uintptr_t __ovld atomic_fetch_max_explicit(volatile atomic_uintptr_t *object, intptr_t opermax, memory_order minder);
13515
- uintptr_t __ovld atomic_fetch_max_explicit(volatile atomic_uintptr_t *object, intptr_t opermax, memory_order minder, memory_scope scope);
13516
-
13517
- intptr_t __ovld atomic_fetch_or(volatile atomic_intptr_t *object, uintptr_t operand);
13518
- intptr_t __ovld atomic_fetch_or_explicit(volatile atomic_intptr_t *object, uintptr_t operand, memory_order order);
13519
- intptr_t __ovld atomic_fetch_or_explicit(volatile atomic_intptr_t *object, uintptr_t operand, memory_order order, memory_scope scope);
13520
- intptr_t __ovld atomic_fetch_xor(volatile atomic_intptr_t *object, uintptr_t operand);
13521
- intptr_t __ovld atomic_fetch_xor_explicit(volatile atomic_intptr_t *object, uintptr_t operand, memory_order order);
13522
- intptr_t __ovld atomic_fetch_xor_explicit(volatile atomic_intptr_t *object, uintptr_t operand, memory_order order, memory_scope scope);
13523
- intptr_t __ovld atomic_fetch_and(volatile atomic_intptr_t *object, uintptr_t operand);
13524
- intptr_t __ovld atomic_fetch_and_explicit(volatile atomic_intptr_t *object, uintptr_t operand, memory_order order);
13525
- intptr_t __ovld atomic_fetch_and_explicit(volatile atomic_intptr_t *object, uintptr_t operand, memory_order order, memory_scope scope);
13526
- intptr_t __ovld atomic_fetch_min(volatile atomic_intptr_t *object, uintptr_t opermax);
13527
- intptr_t __ovld atomic_fetch_min_explicit(volatile atomic_intptr_t *object, uintptr_t opermax, memory_order minder);
13528
- intptr_t __ovld atomic_fetch_min_explicit(volatile atomic_intptr_t *object, uintptr_t opermax, memory_order minder, memory_scope scope);
13529
- intptr_t __ovld atomic_fetch_max(volatile atomic_intptr_t *object, uintptr_t opermax);
13530
- intptr_t __ovld atomic_fetch_max_explicit(volatile atomic_intptr_t *object, uintptr_t opermax, memory_order minder);
13531
- intptr_t __ovld atomic_fetch_max_explicit(volatile atomic_intptr_t *object, uintptr_t opermax, memory_order minder, memory_scope scope);
13381
+ int __ovld atomic_fetch_add_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
13382
+ uint __ovld atomic_fetch_add_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13383
+ int __ovld atomic_fetch_sub_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
13384
+ uint __ovld atomic_fetch_sub_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13385
+ int __ovld atomic_fetch_or_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
13386
+ uint __ovld atomic_fetch_or_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13387
+ int __ovld atomic_fetch_xor_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
13388
+ uint __ovld atomic_fetch_xor_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13389
+ int __ovld atomic_fetch_and_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
13390
+ uint __ovld atomic_fetch_and_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13391
+ int __ovld atomic_fetch_min_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
13392
+ uint __ovld atomic_fetch_min_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13393
+ int __ovld atomic_fetch_max_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
13394
+ uint __ovld atomic_fetch_max_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13395
+ #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13396
+ long __ovld atomic_fetch_add_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
13397
+ ulong __ovld atomic_fetch_add_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13398
+ long __ovld atomic_fetch_sub_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
13399
+ ulong __ovld atomic_fetch_sub_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13400
+ long __ovld atomic_fetch_or_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
13401
+ ulong __ovld atomic_fetch_or_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13402
+ long __ovld atomic_fetch_xor_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
13403
+ ulong __ovld atomic_fetch_xor_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13404
+ long __ovld atomic_fetch_and_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
13405
+ ulong __ovld atomic_fetch_and_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13406
+ long __ovld atomic_fetch_min_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
13407
+ ulong __ovld atomic_fetch_min_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13408
+ long __ovld atomic_fetch_max_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
13409
+ ulong __ovld atomic_fetch_max_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13410
+ #endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13411
+ #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13412
+ uintptr_t __ovld atomic_fetch_add_explicit(volatile atomic_uintptr_t *object, ptrdiff_t operand, memory_order order, memory_scope scope);
13413
+ uintptr_t __ovld atomic_fetch_sub_explicit(volatile atomic_uintptr_t *object, ptrdiff_t operand, memory_order order, memory_scope scope);
13532
13414
  #endif
13533
13415
 
13534
13416
  // atomic_store()
13535
13417
 
13418
+ #if defined(__opencl_c_atomic_order_seq_cst) && defined(__opencl_c_atomic_scope_device)
13536
13419
  void __ovld atomic_store(volatile atomic_int *object, int desired);
13537
- void __ovld atomic_store_explicit(volatile atomic_int *object, int desired, memory_order order);
13538
- void __ovld atomic_store_explicit(volatile atomic_int *object, int desired, memory_order order, memory_scope scope);
13539
13420
  void __ovld atomic_store(volatile atomic_uint *object, uint desired);
13540
- void __ovld atomic_store_explicit(volatile atomic_uint *object, uint desired, memory_order order);
13541
- void __ovld atomic_store_explicit(volatile atomic_uint *object, uint desired, memory_order order, memory_scope scope);
13542
13421
  void __ovld atomic_store(volatile atomic_float *object, float desired);
13543
- void __ovld atomic_store_explicit(volatile atomic_float *object, float desired, memory_order order);
13544
- void __ovld atomic_store_explicit(volatile atomic_float *object, float desired, memory_order order, memory_scope scope);
13422
+
13545
13423
  #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13546
13424
  #ifdef cl_khr_fp64
13547
13425
  void __ovld atomic_store(volatile atomic_double *object, double desired);
13548
- void __ovld atomic_store_explicit(volatile atomic_double *object, double desired, memory_order order);
13549
- void __ovld atomic_store_explicit(volatile atomic_double *object, double desired, memory_order order, memory_scope scope);
13550
13426
  #endif //cl_khr_fp64
13551
13427
  void __ovld atomic_store(volatile atomic_long *object, long desired);
13552
- void __ovld atomic_store_explicit(volatile atomic_long *object, long desired, memory_order order);
13553
- void __ovld atomic_store_explicit(volatile atomic_long *object, long desired, memory_order order, memory_scope scope);
13554
13428
  void __ovld atomic_store(volatile atomic_ulong *object, ulong desired);
13429
+ #endif
13430
+ #endif
13431
+
13432
+ #if defined(__opencl_c_atomic_scope_device)
13433
+ void __ovld atomic_store_explicit(volatile atomic_int *object, int desired, memory_order order);
13434
+ void __ovld atomic_store_explicit(volatile atomic_uint *object, uint desired, memory_order order);
13435
+ void __ovld atomic_store_explicit(volatile atomic_float *object, float desired, memory_order order);
13436
+ #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13437
+ #ifdef cl_khr_fp64
13438
+ void __ovld atomic_store_explicit(volatile atomic_double *object, double desired, memory_order order);
13439
+ #endif //cl_khr_fp64
13440
+ void __ovld atomic_store_explicit(volatile atomic_long *object, long desired, memory_order order);
13555
13441
  void __ovld atomic_store_explicit(volatile atomic_ulong *object, ulong desired, memory_order order);
13442
+ #endif
13443
+ #endif
13444
+
13445
+ void __ovld atomic_store_explicit(volatile atomic_int *object, int desired, memory_order order, memory_scope scope);
13446
+ void __ovld atomic_store_explicit(volatile atomic_uint *object, uint desired, memory_order order, memory_scope scope);
13447
+ void __ovld atomic_store_explicit(volatile atomic_float *object, float desired, memory_order order, memory_scope scope);
13448
+ #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13449
+ #ifdef cl_khr_fp64
13450
+ void __ovld atomic_store_explicit(volatile atomic_double *object, double desired, memory_order order, memory_scope scope);
13451
+ #endif //cl_khr_fp64
13452
+ void __ovld atomic_store_explicit(volatile atomic_long *object, long desired, memory_order order, memory_scope scope);
13556
13453
  void __ovld atomic_store_explicit(volatile atomic_ulong *object, ulong desired, memory_order order, memory_scope scope);
13557
13454
  #endif
13558
13455
 
13559
13456
  // atomic_load()
13560
-
13457
+ #if defined(__opencl_c_atomic_order_seq_cst) && defined(__opencl_c_atomic_scope_device)
13561
13458
  int __ovld atomic_load(volatile atomic_int *object);
13562
- int __ovld atomic_load_explicit(volatile atomic_int *object, memory_order order);
13563
- int __ovld atomic_load_explicit(volatile atomic_int *object, memory_order order, memory_scope scope);
13564
13459
  uint __ovld atomic_load(volatile atomic_uint *object);
13565
- uint __ovld atomic_load_explicit(volatile atomic_uint *object, memory_order order);
13566
- uint __ovld atomic_load_explicit(volatile atomic_uint *object, memory_order order, memory_scope scope);
13567
13460
  float __ovld atomic_load(volatile atomic_float *object);
13568
- float __ovld atomic_load_explicit(volatile atomic_float *object, memory_order order);
13569
- float __ovld atomic_load_explicit(volatile atomic_float *object, memory_order order, memory_scope scope);
13570
13461
  #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13571
13462
  #ifdef cl_khr_fp64
13572
13463
  double __ovld atomic_load(volatile atomic_double *object);
13573
- double __ovld atomic_load_explicit(volatile atomic_double *object, memory_order order);
13574
- double __ovld atomic_load_explicit(volatile atomic_double *object, memory_order order, memory_scope scope);
13575
13464
  #endif //cl_khr_fp64
13576
13465
  long __ovld atomic_load(volatile atomic_long *object);
13577
- long __ovld atomic_load_explicit(volatile atomic_long *object, memory_order order);
13578
- long __ovld atomic_load_explicit(volatile atomic_long *object, memory_order order, memory_scope scope);
13579
13466
  ulong __ovld atomic_load(volatile atomic_ulong *object);
13467
+ #endif
13468
+ #endif
13469
+
13470
+ #if defined(__opencl_c_atomic_scope_device)
13471
+ int __ovld atomic_load_explicit(volatile atomic_int *object, memory_order order);
13472
+ uint __ovld atomic_load_explicit(volatile atomic_uint *object, memory_order order);
13473
+ float __ovld atomic_load_explicit(volatile atomic_float *object, memory_order order);
13474
+ #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13475
+ #ifdef cl_khr_fp64
13476
+ double __ovld atomic_load_explicit(volatile atomic_double *object, memory_order order);
13477
+ #endif //cl_khr_fp64
13478
+ long __ovld atomic_load_explicit(volatile atomic_long *object, memory_order order);
13580
13479
  ulong __ovld atomic_load_explicit(volatile atomic_ulong *object, memory_order order);
13480
+ #endif
13481
+ #endif
13482
+
13483
+ int __ovld atomic_load_explicit(volatile atomic_int *object, memory_order order, memory_scope scope);
13484
+ uint __ovld atomic_load_explicit(volatile atomic_uint *object, memory_order order, memory_scope scope);
13485
+ float __ovld atomic_load_explicit(volatile atomic_float *object, memory_order order, memory_scope scope);
13486
+ #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13487
+ #ifdef cl_khr_fp64
13488
+ double __ovld atomic_load_explicit(volatile atomic_double *object, memory_order order, memory_scope scope);
13489
+ #endif //cl_khr_fp64
13490
+ long __ovld atomic_load_explicit(volatile atomic_long *object, memory_order order, memory_scope scope);
13581
13491
  ulong __ovld atomic_load_explicit(volatile atomic_ulong *object, memory_order order, memory_scope scope);
13582
13492
  #endif
13583
13493
 
13584
13494
  // atomic_exchange()
13585
13495
 
13496
+ #if defined(__opencl_c_atomic_order_seq_cst) && defined(__opencl_c_atomic_scope_device)
13586
13497
  int __ovld atomic_exchange(volatile atomic_int *object, int desired);
13587
- int __ovld atomic_exchange_explicit(volatile atomic_int *object, int desired, memory_order order);
13588
- int __ovld atomic_exchange_explicit(volatile atomic_int *object, int desired, memory_order order, memory_scope scope);
13589
13498
  uint __ovld atomic_exchange(volatile atomic_uint *object, uint desired);
13590
- uint __ovld atomic_exchange_explicit(volatile atomic_uint *object, uint desired, memory_order order);
13591
- uint __ovld atomic_exchange_explicit(volatile atomic_uint *object, uint desired, memory_order order, memory_scope scope);
13592
13499
  float __ovld atomic_exchange(volatile atomic_float *object, float desired);
13593
- float __ovld atomic_exchange_explicit(volatile atomic_float *object, float desired, memory_order order);
13594
- float __ovld atomic_exchange_explicit(volatile atomic_float *object, float desired, memory_order order, memory_scope scope);
13595
13500
  #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13596
13501
  #ifdef cl_khr_fp64
13597
13502
  double __ovld atomic_exchange(volatile atomic_double *object, double desired);
13598
- double __ovld atomic_exchange_explicit(volatile atomic_double *object, double desired, memory_order order);
13599
- double __ovld atomic_exchange_explicit(volatile atomic_double *object, double desired, memory_order order, memory_scope scope);
13600
13503
  #endif //cl_khr_fp64
13601
13504
  long __ovld atomic_exchange(volatile atomic_long *object, long desired);
13602
- long __ovld atomic_exchange_explicit(volatile atomic_long *object, long desired, memory_order order);
13603
- long __ovld atomic_exchange_explicit(volatile atomic_long *object, long desired, memory_order order, memory_scope scope);
13604
13505
  ulong __ovld atomic_exchange(volatile atomic_ulong *object, ulong desired);
13506
+ #endif
13507
+ #endif
13508
+
13509
+ #if defined(__opencl_c_atomic_scope_device)
13510
+ int __ovld atomic_exchange_explicit(volatile atomic_int *object, int desired, memory_order order);
13511
+ uint __ovld atomic_exchange_explicit(volatile atomic_uint *object, uint desired, memory_order order);
13512
+ float __ovld atomic_exchange_explicit(volatile atomic_float *object, float desired, memory_order order);
13513
+ #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13514
+ #ifdef cl_khr_fp64
13515
+ double __ovld atomic_exchange_explicit(volatile atomic_double *object, double desired, memory_order order);
13516
+ #endif //cl_khr_fp64
13517
+ long __ovld atomic_exchange_explicit(volatile atomic_long *object, long desired, memory_order order);
13605
13518
  ulong __ovld atomic_exchange_explicit(volatile atomic_ulong *object, ulong desired, memory_order order);
13519
+ #endif
13520
+ #endif
13521
+
13522
+ int __ovld atomic_exchange_explicit(volatile atomic_int *object, int desired, memory_order order, memory_scope scope);
13523
+ uint __ovld atomic_exchange_explicit(volatile atomic_uint *object, uint desired, memory_order order, memory_scope scope);
13524
+ float __ovld atomic_exchange_explicit(volatile atomic_float *object, float desired, memory_order order, memory_scope scope);
13525
+ #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13526
+ #ifdef cl_khr_fp64
13527
+ double __ovld atomic_exchange_explicit(volatile atomic_double *object, double desired, memory_order order, memory_scope scope);
13528
+ #endif //cl_khr_fp64
13529
+ long __ovld atomic_exchange_explicit(volatile atomic_long *object, long desired, memory_order order, memory_scope scope);
13606
13530
  ulong __ovld atomic_exchange_explicit(volatile atomic_ulong *object, ulong desired, memory_order order, memory_scope scope);
13607
13531
  #endif
13608
13532
 
13609
13533
  // atomic_compare_exchange_strong() and atomic_compare_exchange_weak()
13610
-
13534
+ #if defined(__opencl_c_atomic_order_seq_cst) && defined(__opencl_c_atomic_scope_device)
13611
13535
  bool __ovld atomic_compare_exchange_strong(volatile atomic_int *object, int *expected, int desired);
13536
+ bool __ovld atomic_compare_exchange_strong(volatile atomic_uint *object, uint *expected, uint desired);
13537
+ bool __ovld atomic_compare_exchange_weak(volatile atomic_int *object, int *expected, int desired);
13538
+ bool __ovld atomic_compare_exchange_weak(volatile atomic_uint *object, uint *expected, uint desired);
13539
+ bool __ovld atomic_compare_exchange_strong(volatile atomic_float *object, float *expected, float desired);
13540
+ bool __ovld atomic_compare_exchange_weak(volatile atomic_float *object, float *expected, float desired);
13541
+
13542
+ #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13543
+ #ifdef cl_khr_fp64
13544
+ bool __ovld atomic_compare_exchange_strong(volatile atomic_double *object, double *expected, double desired);
13545
+ bool __ovld atomic_compare_exchange_weak(volatile atomic_double *object, double *expected, double desired);
13546
+ #endif //cl_khr_fp64
13547
+ bool __ovld atomic_compare_exchange_strong(volatile atomic_long *object, long *expected, long desired);
13548
+ bool __ovld atomic_compare_exchange_weak(volatile atomic_long *object, long *expected, long desired);
13549
+ bool __ovld atomic_compare_exchange_strong(volatile atomic_ulong *object, ulong *expected, ulong desired);
13550
+ bool __ovld atomic_compare_exchange_weak(volatile atomic_ulong *object, ulong *expected, ulong desired);
13551
+ #endif
13552
+ #endif
13553
+
13612
13554
  bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_int *object, int *expected,
13613
13555
  int desired, memory_order success, memory_order failure);
13614
- bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_int *object, int *expected,
13615
- int desired, memory_order success, memory_order failure, memory_scope scope);
13616
- bool __ovld atomic_compare_exchange_strong(volatile atomic_uint *object, uint *expected, uint desired);
13617
13556
  bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_uint *object, uint *expected,
13618
13557
  uint desired, memory_order success, memory_order failure);
13619
- bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_uint *object, uint *expected,
13620
- uint desired, memory_order success, memory_order failure, memory_scope scope);
13621
- bool __ovld atomic_compare_exchange_weak(volatile atomic_int *object, int *expected, int desired);
13622
13558
  bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_int *object, int *expected,
13623
13559
  int desired, memory_order success, memory_order failure);
13624
- bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_int *object, int *expected,
13625
- int desired, memory_order success, memory_order failure, memory_scope scope);
13626
- bool __ovld atomic_compare_exchange_weak(volatile atomic_uint *object, uint *expected, uint desired);
13627
13560
  bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_uint *object, uint *expected,
13628
13561
  uint desired, memory_order success, memory_order failure);
13629
- bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_uint *object, uint *expected,
13630
- uint desired, memory_order success, memory_order failure, memory_scope scope);
13631
- bool __ovld atomic_compare_exchange_strong(volatile atomic_float *object, float *expected, float desired);
13632
13562
  bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_float *object, float *expected,
13633
13563
  float desired, memory_order success, memory_order failure);
13634
- bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_float *object, float *expected,
13635
- float desired, memory_order success, memory_order failure, memory_scope scope);
13636
- bool __ovld atomic_compare_exchange_weak(volatile atomic_float *object, float *expected, float desired);
13637
13564
  bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_float *object, float *expected,
13638
13565
  float desired, memory_order success, memory_order failure);
13639
- bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_float *object, float *expected,
13640
- float desired, memory_order success, memory_order failure, memory_scope scope);
13641
13566
  #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13642
13567
  #ifdef cl_khr_fp64
13643
- bool __ovld atomic_compare_exchange_strong(volatile atomic_double *object, double *expected, double desired);
13644
13568
  bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_double *object, double *expected,
13645
13569
  double desired, memory_order success, memory_order failure);
13646
- bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_double *object, double *expected,
13647
- double desired, memory_order success, memory_order failure, memory_scope scope);
13648
- bool __ovld atomic_compare_exchange_weak(volatile atomic_double *object, double *expected, double desired);
13649
13570
  bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_double *object, double *expected,
13650
13571
  double desired, memory_order success, memory_order failure);
13651
- bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_double *object, double *expected,
13652
- double desired, memory_order success, memory_order failure, memory_scope scope);
13653
13572
  #endif //cl_khr_fp64
13654
- bool __ovld atomic_compare_exchange_strong(volatile atomic_long *object, long *expected, long desired);
13655
13573
  bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_long *object, long *expected,
13656
13574
  long desired, memory_order success, memory_order failure);
13657
- bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_long *object, long *expected,
13658
- long desired, memory_order success, memory_order failure, memory_scope scope);
13659
- bool __ovld atomic_compare_exchange_weak(volatile atomic_long *object, long *expected, long desired);
13660
13575
  bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_long *object, long *expected,
13661
13576
  long desired, memory_order success, memory_order failure);
13662
- bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_long *object, long *expected,
13663
- long desired, memory_order success, memory_order failure, memory_scope scope);
13664
- bool __ovld atomic_compare_exchange_strong(volatile atomic_ulong *object, ulong *expected, ulong desired);
13665
13577
  bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_ulong *object, ulong *expected,
13666
13578
  ulong desired, memory_order success, memory_order failure);
13667
- bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_ulong *object, ulong *expected,
13668
- ulong desired, memory_order success, memory_order failure, memory_scope scope);
13669
- bool __ovld atomic_compare_exchange_weak(volatile atomic_ulong *object, ulong *expected, ulong desired);
13670
13579
  bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_ulong *object, ulong *expected,
13671
13580
  ulong desired, memory_order success, memory_order failure);
13581
+ #endif
13582
+
13583
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_int *object, int *expected,
13584
+ int desired, memory_order success, memory_order failure, memory_scope scope);
13585
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_uint *object, uint *expected,
13586
+ uint desired, memory_order success, memory_order failure, memory_scope scope);
13587
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_int *object, int *expected,
13588
+ int desired, memory_order success, memory_order failure, memory_scope scope);
13589
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_uint *object, uint *expected,
13590
+ uint desired, memory_order success, memory_order failure, memory_scope scope);
13591
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_float *object, float *expected,
13592
+ float desired, memory_order success, memory_order failure, memory_scope scope);
13593
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_float *object, float *expected,
13594
+ float desired, memory_order success, memory_order failure, memory_scope scope);
13595
+ #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13596
+ #ifdef cl_khr_fp64
13597
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_double *object, double *expected,
13598
+ double desired, memory_order success, memory_order failure, memory_scope scope);
13599
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_double *object, double *expected,
13600
+ double desired, memory_order success, memory_order failure, memory_scope scope);
13601
+ #endif //cl_khr_fp64
13602
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_long *object, long *expected,
13603
+ long desired, memory_order success, memory_order failure, memory_scope scope);
13604
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_long *object, long *expected,
13605
+ long desired, memory_order success, memory_order failure, memory_scope scope);
13606
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_ulong *object, ulong *expected,
13607
+ ulong desired, memory_order success, memory_order failure, memory_scope scope);
13672
13608
  bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_ulong *object, ulong *expected,
13673
13609
  ulong desired, memory_order success, memory_order failure, memory_scope scope);
13674
13610
  #endif
13675
13611
 
13676
13612
  // atomic_flag_test_and_set() and atomic_flag_clear()
13677
-
13613
+ #if defined(__opencl_c_atomic_order_seq_cst) && defined(__opencl_c_atomic_scope_device)
13678
13614
  bool __ovld atomic_flag_test_and_set(volatile atomic_flag *object);
13679
- bool __ovld atomic_flag_test_and_set_explicit(volatile atomic_flag *object, memory_order order);
13680
- bool __ovld atomic_flag_test_and_set_explicit(volatile atomic_flag *object, memory_order order, memory_scope scope);
13681
13615
  void __ovld atomic_flag_clear(volatile atomic_flag *object);
13616
+ #endif
13617
+
13618
+ #if defined(__opencl_c_atomic_scope_device)
13619
+ bool __ovld atomic_flag_test_and_set_explicit(volatile atomic_flag *object, memory_order order);
13682
13620
  void __ovld atomic_flag_clear_explicit(volatile atomic_flag *object, memory_order order);
13683
- void __ovld atomic_flag_clear_explicit(volatile atomic_flag *object, memory_order order, memory_scope scope);
13621
+ #endif
13684
13622
 
13623
+ bool __ovld atomic_flag_test_and_set_explicit(volatile atomic_flag *object, memory_order order, memory_scope scope);
13624
+ void __ovld atomic_flag_clear_explicit(volatile atomic_flag *object, memory_order order, memory_scope scope);
13685
13625
  #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
13686
13626
 
13687
13627
  // OpenCL v1.1 s6.11.12, v1.2 s6.12.12, v2.0 s6.13.12 - Miscellaneous Vector Functions
@@ -14176,12 +14116,6 @@ half16 __ovld __cnfn shuffle2(half8 x, half8 y, ushort16 mask);
14176
14116
  half16 __ovld __cnfn shuffle2(half16 x, half16 y, ushort16 mask);
14177
14117
  #endif //cl_khr_fp16
14178
14118
 
14179
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)
14180
- // OpenCL v1.2 s6.12.13, v2.0 s6.13.13 - printf
14181
-
14182
- int printf(__constant const char* st, ...) __attribute__((format(printf, 1, 2)));
14183
- #endif
14184
-
14185
14119
  // OpenCL v1.1 s6.11.3, v1.2 s6.12.14, v2.0 s6.13.14 - Image Read and Write Functions
14186
14120
 
14187
14121
  #ifdef cl_khr_gl_msaa_sharing
@@ -16130,6 +16064,230 @@ double __ovld sub_group_clustered_reduce_max( double value, uint clustersize );
16130
16064
 
16131
16065
  #endif // cl_khr_subgroup_clustered_reduce
16132
16066
 
16067
+ #if defined(cl_khr_extended_bit_ops)
16068
+ char __ovld __cnfn bitfield_insert(char, char, uint, uint);
16069
+ uchar __ovld __cnfn bitfield_insert(uchar, uchar, uint, uint);
16070
+ short __ovld __cnfn bitfield_insert(short, short, uint, uint);
16071
+ ushort __ovld __cnfn bitfield_insert(ushort, ushort, uint, uint);
16072
+ int __ovld __cnfn bitfield_insert(int, int, uint, uint);
16073
+ uint __ovld __cnfn bitfield_insert(uint, uint, uint, uint);
16074
+ long __ovld __cnfn bitfield_insert(long, long, uint, uint);
16075
+ ulong __ovld __cnfn bitfield_insert(ulong, ulong, uint, uint);
16076
+ char2 __ovld __cnfn bitfield_insert(char2, char2, uint, uint);
16077
+ uchar2 __ovld __cnfn bitfield_insert(uchar2, uchar2, uint, uint);
16078
+ short2 __ovld __cnfn bitfield_insert(short2, short2, uint, uint);
16079
+ ushort2 __ovld __cnfn bitfield_insert(ushort2, ushort2, uint, uint);
16080
+ int2 __ovld __cnfn bitfield_insert(int2, int2, uint, uint);
16081
+ uint2 __ovld __cnfn bitfield_insert(uint2, uint2, uint, uint);
16082
+ long2 __ovld __cnfn bitfield_insert(long2, long2, uint, uint);
16083
+ ulong2 __ovld __cnfn bitfield_insert(ulong2, ulong2, uint, uint);
16084
+ char3 __ovld __cnfn bitfield_insert(char3, char3, uint, uint);
16085
+ uchar3 __ovld __cnfn bitfield_insert(uchar3, uchar3, uint, uint);
16086
+ short3 __ovld __cnfn bitfield_insert(short3, short3, uint, uint);
16087
+ ushort3 __ovld __cnfn bitfield_insert(ushort3, ushort3, uint, uint);
16088
+ int3 __ovld __cnfn bitfield_insert(int3, int3, uint, uint);
16089
+ uint3 __ovld __cnfn bitfield_insert(uint3, uint3, uint, uint);
16090
+ long3 __ovld __cnfn bitfield_insert(long3, long3, uint, uint);
16091
+ ulong3 __ovld __cnfn bitfield_insert(ulong3, ulong3, uint, uint);
16092
+ char4 __ovld __cnfn bitfield_insert(char4, char4, uint, uint);
16093
+ uchar4 __ovld __cnfn bitfield_insert(uchar4, uchar4, uint, uint);
16094
+ short4 __ovld __cnfn bitfield_insert(short4, short4, uint, uint);
16095
+ ushort4 __ovld __cnfn bitfield_insert(ushort4, ushort4, uint, uint);
16096
+ int4 __ovld __cnfn bitfield_insert(int4, int4, uint, uint);
16097
+ uint4 __ovld __cnfn bitfield_insert(uint4, uint4, uint, uint);
16098
+ long4 __ovld __cnfn bitfield_insert(long4, long4, uint, uint);
16099
+ ulong4 __ovld __cnfn bitfield_insert(ulong4, ulong4, uint, uint);
16100
+ char8 __ovld __cnfn bitfield_insert(char8, char8, uint, uint);
16101
+ uchar8 __ovld __cnfn bitfield_insert(uchar8, uchar8, uint, uint);
16102
+ short8 __ovld __cnfn bitfield_insert(short8, short8, uint, uint);
16103
+ ushort8 __ovld __cnfn bitfield_insert(ushort8, ushort8, uint, uint);
16104
+ int8 __ovld __cnfn bitfield_insert(int8, int8, uint, uint);
16105
+ uint8 __ovld __cnfn bitfield_insert(uint8, uint8, uint, uint);
16106
+ long8 __ovld __cnfn bitfield_insert(long8, long8, uint, uint);
16107
+ ulong8 __ovld __cnfn bitfield_insert(ulong8, ulong8, uint, uint);
16108
+ char16 __ovld __cnfn bitfield_insert(char16, char16, uint, uint);
16109
+ uchar16 __ovld __cnfn bitfield_insert(uchar16, uchar16, uint, uint);
16110
+ short16 __ovld __cnfn bitfield_insert(short16, short16, uint, uint);
16111
+ ushort16 __ovld __cnfn bitfield_insert(ushort16, ushort16, uint, uint);
16112
+ int16 __ovld __cnfn bitfield_insert(int16, int16, uint, uint);
16113
+ uint16 __ovld __cnfn bitfield_insert(uint16, uint16, uint, uint);
16114
+ long16 __ovld __cnfn bitfield_insert(long16, long16, uint, uint);
16115
+ ulong16 __ovld __cnfn bitfield_insert(ulong16, ulong16, uint, uint);
16116
+
16117
+ char __ovld __cnfn bitfield_extract_signed(char, uint, uint);
16118
+ short __ovld __cnfn bitfield_extract_signed(short, uint, uint);
16119
+ int __ovld __cnfn bitfield_extract_signed(int, uint, uint);
16120
+ long __ovld __cnfn bitfield_extract_signed(long, uint, uint);
16121
+ char2 __ovld __cnfn bitfield_extract_signed(char2, uint, uint);
16122
+ short2 __ovld __cnfn bitfield_extract_signed(short2, uint, uint);
16123
+ int2 __ovld __cnfn bitfield_extract_signed(int2, uint, uint);
16124
+ long2 __ovld __cnfn bitfield_extract_signed(long2, uint, uint);
16125
+ char3 __ovld __cnfn bitfield_extract_signed(char3, uint, uint);
16126
+ short3 __ovld __cnfn bitfield_extract_signed(short3, uint, uint);
16127
+ int3 __ovld __cnfn bitfield_extract_signed(int3, uint, uint);
16128
+ long3 __ovld __cnfn bitfield_extract_signed(long3, uint, uint);
16129
+ char4 __ovld __cnfn bitfield_extract_signed(char4, uint, uint);
16130
+ short4 __ovld __cnfn bitfield_extract_signed(short4, uint, uint);
16131
+ int4 __ovld __cnfn bitfield_extract_signed(int4, uint, uint);
16132
+ long4 __ovld __cnfn bitfield_extract_signed(long4, uint, uint);
16133
+ char8 __ovld __cnfn bitfield_extract_signed(char8, uint, uint);
16134
+ short8 __ovld __cnfn bitfield_extract_signed(short8, uint, uint);
16135
+ int8 __ovld __cnfn bitfield_extract_signed(int8, uint, uint);
16136
+ long8 __ovld __cnfn bitfield_extract_signed(long8, uint, uint);
16137
+ char16 __ovld __cnfn bitfield_extract_signed(char16, uint, uint);
16138
+ short16 __ovld __cnfn bitfield_extract_signed(short16, uint, uint);
16139
+ int16 __ovld __cnfn bitfield_extract_signed(int16, uint, uint);
16140
+ long16 __ovld __cnfn bitfield_extract_signed(long16, uint, uint);
16141
+
16142
+ char __ovld __cnfn bitfield_extract_signed(uchar, uint, uint);
16143
+ short __ovld __cnfn bitfield_extract_signed(ushort, uint, uint);
16144
+ int __ovld __cnfn bitfield_extract_signed(uint, uint, uint);
16145
+ long __ovld __cnfn bitfield_extract_signed(ulong, uint, uint);
16146
+ char2 __ovld __cnfn bitfield_extract_signed(uchar2, uint, uint);
16147
+ short2 __ovld __cnfn bitfield_extract_signed(ushort2, uint, uint);
16148
+ int2 __ovld __cnfn bitfield_extract_signed(uint2, uint, uint);
16149
+ long2 __ovld __cnfn bitfield_extract_signed(ulong2, uint, uint);
16150
+ char3 __ovld __cnfn bitfield_extract_signed(uchar3, uint, uint);
16151
+ short3 __ovld __cnfn bitfield_extract_signed(ushort3, uint, uint);
16152
+ int3 __ovld __cnfn bitfield_extract_signed(uint3, uint, uint);
16153
+ long3 __ovld __cnfn bitfield_extract_signed(ulong3, uint, uint);
16154
+ char4 __ovld __cnfn bitfield_extract_signed(uchar4, uint, uint);
16155
+ short4 __ovld __cnfn bitfield_extract_signed(ushort4, uint, uint);
16156
+ int4 __ovld __cnfn bitfield_extract_signed(uint4, uint, uint);
16157
+ long4 __ovld __cnfn bitfield_extract_signed(ulong4, uint, uint);
16158
+ char8 __ovld __cnfn bitfield_extract_signed(uchar8, uint, uint);
16159
+ short8 __ovld __cnfn bitfield_extract_signed(ushort8, uint, uint);
16160
+ int8 __ovld __cnfn bitfield_extract_signed(uint8, uint, uint);
16161
+ long8 __ovld __cnfn bitfield_extract_signed(ulong8, uint, uint);
16162
+ char16 __ovld __cnfn bitfield_extract_signed(uchar16, uint, uint);
16163
+ short16 __ovld __cnfn bitfield_extract_signed(ushort16, uint, uint);
16164
+ int16 __ovld __cnfn bitfield_extract_signed(uint16, uint, uint);
16165
+ long16 __ovld __cnfn bitfield_extract_signed(ulong16, uint, uint);
16166
+
16167
+ uchar __ovld __cnfn bitfield_extract_unsigned(char, uint, uint);
16168
+ ushort __ovld __cnfn bitfield_extract_unsigned(short, uint, uint);
16169
+ uint __ovld __cnfn bitfield_extract_unsigned(int, uint, uint);
16170
+ ulong __ovld __cnfn bitfield_extract_unsigned(long, uint, uint);
16171
+ uchar2 __ovld __cnfn bitfield_extract_unsigned(char2, uint, uint);
16172
+ ushort2 __ovld __cnfn bitfield_extract_unsigned(short2, uint, uint);
16173
+ uint2 __ovld __cnfn bitfield_extract_unsigned(int2, uint, uint);
16174
+ ulong2 __ovld __cnfn bitfield_extract_unsigned(long2, uint, uint);
16175
+ uchar3 __ovld __cnfn bitfield_extract_unsigned(char3, uint, uint);
16176
+ ushort3 __ovld __cnfn bitfield_extract_unsigned(short3, uint, uint);
16177
+ uint3 __ovld __cnfn bitfield_extract_unsigned(int3, uint, uint);
16178
+ ulong3 __ovld __cnfn bitfield_extract_unsigned(long3, uint, uint);
16179
+ uchar4 __ovld __cnfn bitfield_extract_unsigned(char4, uint, uint);
16180
+ ushort4 __ovld __cnfn bitfield_extract_unsigned(short4, uint, uint);
16181
+ uint4 __ovld __cnfn bitfield_extract_unsigned(int4, uint, uint);
16182
+ ulong4 __ovld __cnfn bitfield_extract_unsigned(long4, uint, uint);
16183
+ uchar8 __ovld __cnfn bitfield_extract_unsigned(char8, uint, uint);
16184
+ ushort8 __ovld __cnfn bitfield_extract_unsigned(short8, uint, uint);
16185
+ uint8 __ovld __cnfn bitfield_extract_unsigned(int8, uint, uint);
16186
+ ulong8 __ovld __cnfn bitfield_extract_unsigned(long8, uint, uint);
16187
+ uchar16 __ovld __cnfn bitfield_extract_unsigned(char16, uint, uint);
16188
+ ushort16 __ovld __cnfn bitfield_extract_unsigned(short16, uint, uint);
16189
+ uint16 __ovld __cnfn bitfield_extract_unsigned(int16, uint, uint);
16190
+ ulong16 __ovld __cnfn bitfield_extract_unsigned(long16, uint, uint);
16191
+
16192
+ uchar __ovld __cnfn bitfield_extract_unsigned(uchar, uint, uint);
16193
+ ushort __ovld __cnfn bitfield_extract_unsigned(ushort, uint, uint);
16194
+ uint __ovld __cnfn bitfield_extract_unsigned(uint, uint, uint);
16195
+ ulong __ovld __cnfn bitfield_extract_unsigned(ulong, uint, uint);
16196
+ uchar2 __ovld __cnfn bitfield_extract_unsigned(uchar2, uint, uint);
16197
+ ushort2 __ovld __cnfn bitfield_extract_unsigned(ushort2, uint, uint);
16198
+ uint2 __ovld __cnfn bitfield_extract_unsigned(uint2, uint, uint);
16199
+ ulong2 __ovld __cnfn bitfield_extract_unsigned(ulong2, uint, uint);
16200
+ uchar3 __ovld __cnfn bitfield_extract_unsigned(uchar3, uint, uint);
16201
+ ushort3 __ovld __cnfn bitfield_extract_unsigned(ushort3, uint, uint);
16202
+ uint3 __ovld __cnfn bitfield_extract_unsigned(uint3, uint, uint);
16203
+ ulong3 __ovld __cnfn bitfield_extract_unsigned(ulong3, uint, uint);
16204
+ uchar4 __ovld __cnfn bitfield_extract_unsigned(uchar4, uint, uint);
16205
+ ushort4 __ovld __cnfn bitfield_extract_unsigned(ushort4, uint, uint);
16206
+ uint4 __ovld __cnfn bitfield_extract_unsigned(uint4, uint, uint);
16207
+ ulong4 __ovld __cnfn bitfield_extract_unsigned(ulong4, uint, uint);
16208
+ uchar8 __ovld __cnfn bitfield_extract_unsigned(uchar8, uint, uint);
16209
+ ushort8 __ovld __cnfn bitfield_extract_unsigned(ushort8, uint, uint);
16210
+ uint8 __ovld __cnfn bitfield_extract_unsigned(uint8, uint, uint);
16211
+ ulong8 __ovld __cnfn bitfield_extract_unsigned(ulong8, uint, uint);
16212
+ uchar16 __ovld __cnfn bitfield_extract_unsigned(uchar16, uint, uint);
16213
+ ushort16 __ovld __cnfn bitfield_extract_unsigned(ushort16, uint, uint);
16214
+ uint16 __ovld __cnfn bitfield_extract_unsigned(uint16, uint, uint);
16215
+ ulong16 __ovld __cnfn bitfield_extract_unsigned(ulong16, uint, uint);
16216
+
16217
+ char __ovld __cnfn bit_reverse(char);
16218
+ uchar __ovld __cnfn bit_reverse(uchar);
16219
+ short __ovld __cnfn bit_reverse(short);
16220
+ ushort __ovld __cnfn bit_reverse(ushort);
16221
+ int __ovld __cnfn bit_reverse(int);
16222
+ uint __ovld __cnfn bit_reverse(uint);
16223
+ long __ovld __cnfn bit_reverse(long);
16224
+ ulong __ovld __cnfn bit_reverse(ulong);
16225
+ char2 __ovld __cnfn bit_reverse(char2);
16226
+ uchar2 __ovld __cnfn bit_reverse(uchar2);
16227
+ short2 __ovld __cnfn bit_reverse(short2);
16228
+ ushort2 __ovld __cnfn bit_reverse(ushort2);
16229
+ int2 __ovld __cnfn bit_reverse(int2);
16230
+ uint2 __ovld __cnfn bit_reverse(uint2);
16231
+ long2 __ovld __cnfn bit_reverse(long2);
16232
+ ulong2 __ovld __cnfn bit_reverse(ulong2);
16233
+ char3 __ovld __cnfn bit_reverse(char3);
16234
+ uchar3 __ovld __cnfn bit_reverse(uchar3);
16235
+ short3 __ovld __cnfn bit_reverse(short3);
16236
+ ushort3 __ovld __cnfn bit_reverse(ushort3);
16237
+ int3 __ovld __cnfn bit_reverse(int3);
16238
+ uint3 __ovld __cnfn bit_reverse(uint3);
16239
+ long3 __ovld __cnfn bit_reverse(long3);
16240
+ ulong3 __ovld __cnfn bit_reverse(ulong3);
16241
+ char4 __ovld __cnfn bit_reverse(char4);
16242
+ uchar4 __ovld __cnfn bit_reverse(uchar4);
16243
+ short4 __ovld __cnfn bit_reverse(short4);
16244
+ ushort4 __ovld __cnfn bit_reverse(ushort4);
16245
+ int4 __ovld __cnfn bit_reverse(int4);
16246
+ uint4 __ovld __cnfn bit_reverse(uint4);
16247
+ long4 __ovld __cnfn bit_reverse(long4);
16248
+ ulong4 __ovld __cnfn bit_reverse(ulong4);
16249
+ char8 __ovld __cnfn bit_reverse(char8);
16250
+ uchar8 __ovld __cnfn bit_reverse(uchar8);
16251
+ short8 __ovld __cnfn bit_reverse(short8);
16252
+ ushort8 __ovld __cnfn bit_reverse(ushort8);
16253
+ int8 __ovld __cnfn bit_reverse(int8);
16254
+ uint8 __ovld __cnfn bit_reverse(uint8);
16255
+ long8 __ovld __cnfn bit_reverse(long8);
16256
+ ulong8 __ovld __cnfn bit_reverse(ulong8);
16257
+ char16 __ovld __cnfn bit_reverse(char16);
16258
+ uchar16 __ovld __cnfn bit_reverse(uchar16);
16259
+ short16 __ovld __cnfn bit_reverse(short16);
16260
+ ushort16 __ovld __cnfn bit_reverse(ushort16);
16261
+ int16 __ovld __cnfn bit_reverse(int16);
16262
+ uint16 __ovld __cnfn bit_reverse(uint16);
16263
+ long16 __ovld __cnfn bit_reverse(long16);
16264
+ ulong16 __ovld __cnfn bit_reverse(ulong16);
16265
+ #endif // cl_khr_extended_bit_ops
16266
+
16267
+ #if defined(__opencl_c_integer_dot_product_input_4x8bit)
16268
+ uint __ovld __cnfn dot(uchar4, uchar4);
16269
+ int __ovld __cnfn dot(char4, char4);
16270
+ int __ovld __cnfn dot(uchar4, char4);
16271
+ int __ovld __cnfn dot(char4, uchar4);
16272
+
16273
+ uint __ovld __cnfn dot_acc_sat(uchar4, uchar4, uint);
16274
+ int __ovld __cnfn dot_acc_sat(char4, char4, int);
16275
+ int __ovld __cnfn dot_acc_sat(uchar4, char4, int);
16276
+ int __ovld __cnfn dot_acc_sat(char4, uchar4, int);
16277
+ #endif // __opencl_c_integer_dot_product_input_4x8bit
16278
+
16279
+ #if defined(__opencl_c_integer_dot_product_input_4x8bit_packed)
16280
+ uint __ovld __cnfn dot_4x8packed_uu_uint(uint, uint);
16281
+ int __ovld __cnfn dot_4x8packed_ss_int(uint, uint);
16282
+ int __ovld __cnfn dot_4x8packed_us_int(uint, uint);
16283
+ int __ovld __cnfn dot_4x8packed_su_int(uint, uint);
16284
+
16285
+ uint __ovld __cnfn dot_acc_sat_4x8packed_uu_uint(uint, uint, uint);
16286
+ int __ovld __cnfn dot_acc_sat_4x8packed_ss_int(uint, uint, int);
16287
+ int __ovld __cnfn dot_acc_sat_4x8packed_us_int(uint, uint, int);
16288
+ int __ovld __cnfn dot_acc_sat_4x8packed_su_int(uint, uint, int);
16289
+ #endif // __opencl_c_integer_dot_product_input_4x8bit_packed
16290
+
16133
16291
  #if defined(cl_intel_subgroups)
16134
16292
  // Intel-Specific Sub Group Functions
16135
16293
  float __ovld __conv intel_sub_group_shuffle( float x, uint c );
@@ -17127,31 +17285,23 @@ uint16 __ovld amd_sadw(uint16 src0, uint16 src1, uint16 src2);
17127
17285
  #endif // cl_amd_media_ops2
17128
17286
 
17129
17287
  #if defined(cl_arm_integer_dot_product_int8)
17130
- #pragma OPENCL EXTENSION cl_arm_integer_dot_product_int8 : begin
17131
17288
  uint __ovld arm_dot(uchar4 a, uchar4 b);
17132
17289
  int __ovld arm_dot(char4 a, char4 b);
17133
- #pragma OPENCL EXTENSION cl_arm_integer_dot_product_int8 : end
17134
17290
  #endif // defined(cl_arm_integer_dot_product_int8)
17135
17291
 
17136
17292
  #if defined(cl_arm_integer_dot_product_accumulate_int8)
17137
- #pragma OPENCL EXTENSION cl_arm_integer_dot_product_accumulate_int8 : begin
17138
17293
  uint __ovld arm_dot_acc(uchar4 a, uchar4 b, uint c);
17139
17294
  int __ovld arm_dot_acc(char4 a, char4 b, int c);
17140
- #pragma OPENCL EXTENSION cl_arm_integer_dot_product_accumulate_int8 : end
17141
17295
  #endif // defined(cl_arm_integer_dot_product_accumulate_int8)
17142
17296
 
17143
17297
  #if defined(cl_arm_integer_dot_product_accumulate_int16)
17144
- #pragma OPENCL EXTENSION cl_arm_integer_dot_product_accumulate_int16 : begin
17145
17298
  uint __ovld arm_dot_acc(ushort2 a, ushort2 b, uint c);
17146
17299
  int __ovld arm_dot_acc(short2 a, short2 b, int c);
17147
- #pragma OPENCL EXTENSION cl_arm_integer_dot_product_accumulate_int16 : end
17148
17300
  #endif // defined(cl_arm_integer_dot_product_accumulate_int16)
17149
17301
 
17150
17302
  #if defined(cl_arm_integer_dot_product_accumulate_saturate_int8)
17151
- #pragma OPENCL EXTENSION cl_arm_integer_dot_product_accumulate_saturate_int8 : begin
17152
17303
  uint __ovld arm_dot_acc_sat(uchar4 a, uchar4 b, uint c);
17153
17304
  int __ovld arm_dot_acc_sat(char4 a, char4 b, int c);
17154
- #pragma OPENCL EXTENSION cl_arm_integer_dot_product_accumulate_saturate_int8 : end
17155
17305
  #endif // defined(cl_arm_integer_dot_product_accumulate_saturate_int8)
17156
17306
 
17157
17307
  // Disable any extensions we may have enabled previously.