@cpp-linter/clang-tidy-win32-x64 12.0.1 → 14.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 (178) hide show
  1. package/README.md +2 -2
  2. package/bin/clang-tidy.exe +2 -2
  3. package/lib/clang/{12.0.1 → 14.0.0}/include/__clang_cuda_complex_builtins.h +3 -3
  4. package/lib/clang/{12.0.1 → 14.0.0}/include/__clang_cuda_device_functions.h +174 -102
  5. package/lib/clang/{12.0.1 → 14.0.0}/include/__clang_cuda_intrinsics.h +32 -0
  6. package/lib/clang/{12.0.1 → 14.0.0}/include/__clang_cuda_libdevice_declares.h +6 -0
  7. package/lib/clang/{12.0.1 → 14.0.0}/include/__clang_cuda_math.h +3 -3
  8. package/lib/clang/{12.0.1 → 14.0.0}/include/__clang_cuda_runtime_wrapper.h +68 -8
  9. package/lib/clang/14.0.0/include/__clang_cuda_texture_intrinsics.h +740 -0
  10. package/lib/clang/{12.0.1 → 14.0.0}/include/__clang_hip_cmath.h +272 -94
  11. package/lib/clang/{12.0.1 → 14.0.0}/include/__clang_hip_libdevice_declares.h +24 -12
  12. package/lib/clang/{12.0.1 → 14.0.0}/include/__clang_hip_math.h +48 -2
  13. package/lib/clang/14.0.0/include/__clang_hip_runtime_wrapper.h +137 -0
  14. package/lib/clang/{12.0.1 → 14.0.0}/include/__wmmintrin_aes.h +1 -1
  15. package/lib/clang/{12.0.1 → 14.0.0}/include/altivec.h +1348 -496
  16. package/lib/clang/{12.0.1 → 14.0.0}/include/ammintrin.h +4 -0
  17. package/lib/clang/14.0.0/include/amxintrin.h +494 -0
  18. package/lib/clang/{12.0.1 → 14.0.0}/include/arm_acle.h +61 -0
  19. package/lib/clang/{12.0.1 → 14.0.0}/include/arm_neon.h +5544 -4634
  20. package/lib/clang/14.0.0/include/arm_neon_sve_bridge.h +184 -0
  21. package/lib/clang/{12.0.1 → 14.0.0}/include/arm_sve.h +11791 -5896
  22. package/lib/clang/{12.0.1 → 14.0.0}/include/avx2intrin.h +181 -181
  23. package/lib/clang/{12.0.1 → 14.0.0}/include/avx512bf16intrin.h +3 -3
  24. package/lib/clang/{12.0.1 → 14.0.0}/include/avx512bwintrin.h +71 -71
  25. package/lib/clang/{12.0.1 → 14.0.0}/include/avx512dqintrin.h +365 -365
  26. package/lib/clang/{12.0.1 → 14.0.0}/include/avx512erintrin.h +102 -102
  27. package/lib/clang/{12.0.1 → 14.0.0}/include/avx512fintrin.h +1750 -1606
  28. package/lib/clang/14.0.0/include/avx512fp16intrin.h +3349 -0
  29. package/lib/clang/{12.0.1 → 14.0.0}/include/avx512vbmi2intrin.h +48 -48
  30. package/lib/clang/{12.0.1 → 14.0.0}/include/avx512vlbf16intrin.h +51 -3
  31. package/lib/clang/{12.0.1 → 14.0.0}/include/avx512vlbwintrin.h +94 -94
  32. package/lib/clang/{12.0.1 → 14.0.0}/include/avx512vldqintrin.h +134 -134
  33. package/lib/clang/14.0.0/include/avx512vlfp16intrin.h +2068 -0
  34. package/lib/clang/{12.0.1 → 14.0.0}/include/avx512vlintrin.h +563 -563
  35. package/lib/clang/{12.0.1 → 14.0.0}/include/avx512vlvbmi2intrin.h +96 -96
  36. package/lib/clang/{12.0.1 → 14.0.0}/include/avx512vlvnniintrin.h +8 -8
  37. package/lib/clang/{12.0.1 → 14.0.0}/include/avxintrin.h +189 -192
  38. package/lib/clang/14.0.0/include/builtins.h +16 -0
  39. package/lib/clang/{12.0.1 → 14.0.0}/include/cetintrin.h +10 -0
  40. package/lib/clang/{12.0.1 → 14.0.0}/include/cpuid.h +2 -1
  41. package/lib/clang/14.0.0/include/crc32intrin.h +100 -0
  42. package/lib/clang/{12.0.1 → 14.0.0}/include/cuda_wrappers/complex +8 -0
  43. package/lib/clang/{12.0.1 → 14.0.0}/include/emmintrin.h +21 -17
  44. package/lib/clang/{12.0.1 → 14.0.0}/include/f16cintrin.h +4 -4
  45. package/lib/clang/{12.0.1 → 14.0.0}/include/float.h +15 -6
  46. package/lib/clang/{12.0.1 → 14.0.0}/include/gfniintrin.h +47 -48
  47. package/lib/clang/14.0.0/include/hexagon_circ_brev_intrinsics.h +298 -0
  48. package/lib/clang/14.0.0/include/hexagon_protos.h +8439 -0
  49. package/lib/clang/14.0.0/include/hexagon_types.h +2621 -0
  50. package/lib/clang/14.0.0/include/hvx_hexagon_protos.h +5183 -0
  51. package/lib/clang/{12.0.1 → 14.0.0}/include/ia32intrin.h +6 -6
  52. package/lib/clang/{12.0.1 → 14.0.0}/include/immintrin.h +31 -13
  53. package/lib/clang/{12.0.1 → 14.0.0}/include/intrin.h +63 -19
  54. package/lib/clang/{12.0.1 → 14.0.0}/include/keylockerintrin.h +32 -8
  55. package/lib/clang/{12.0.1 → 14.0.0}/include/limits.h +20 -0
  56. package/lib/clang/{12.0.1 → 14.0.0}/include/mmintrin.h +4 -0
  57. package/lib/clang/{12.0.1 → 14.0.0}/include/nmmintrin.h +4 -0
  58. package/lib/clang/{12.0.1 → 14.0.0}/include/opencl-c-base.h +206 -7
  59. package/lib/clang/{12.0.1 → 14.0.0}/include/opencl-c.h +2187 -797
  60. package/lib/clang/14.0.0/include/openmp_wrappers/__clang_openmp_device_functions.h +106 -0
  61. package/lib/clang/{12.0.1 → 14.0.0}/include/openmp_wrappers/cmath +54 -0
  62. package/lib/clang/{12.0.1 → 14.0.0}/include/openmp_wrappers/complex +11 -8
  63. package/lib/clang/{12.0.1 → 14.0.0}/include/openmp_wrappers/complex.h +9 -1
  64. package/lib/clang/{12.0.1 → 14.0.0}/include/openmp_wrappers/math.h +10 -0
  65. package/lib/clang/{12.0.1 → 14.0.0}/include/openmp_wrappers/new +2 -24
  66. package/lib/clang/{12.0.1 → 14.0.0}/include/pmmintrin.h +4 -0
  67. package/lib/clang/{12.0.1 → 14.0.0}/include/ppc_wrappers/emmintrin.h +3 -2
  68. package/lib/clang/{12.0.1 → 14.0.0}/include/ppc_wrappers/mm_malloc.h +2 -2
  69. package/lib/clang/{12.0.1 → 14.0.0}/include/ppc_wrappers/mmintrin.h +3 -2
  70. package/lib/clang/{12.0.1 → 14.0.0}/include/ppc_wrappers/pmmintrin.h +3 -2
  71. package/lib/clang/{12.0.1 → 14.0.0}/include/ppc_wrappers/smmintrin.h +4 -3
  72. package/lib/clang/{12.0.1 → 14.0.0}/include/ppc_wrappers/tmmintrin.h +3 -2
  73. package/lib/clang/{12.0.1 → 14.0.0}/include/ppc_wrappers/xmmintrin.h +3 -2
  74. package/lib/clang/{12.0.1 → 14.0.0}/include/prfchwintrin.h +5 -2
  75. package/lib/clang/14.0.0/include/riscv_vector.h +95423 -0
  76. package/lib/clang/{12.0.1 → 14.0.0}/include/smmintrin.h +80 -159
  77. package/lib/clang/{12.0.1 → 14.0.0}/include/stdatomic.h +14 -1
  78. package/lib/clang/{12.0.1 → 14.0.0}/include/stdint.h +168 -0
  79. package/lib/clang/{12.0.1 → 14.0.0}/include/tmmintrin.h +10 -6
  80. package/lib/clang/{12.0.1 → 14.0.0}/include/uintrintrin.h +7 -0
  81. package/lib/clang/{12.0.1 → 14.0.0}/include/unwind.h +2 -1
  82. package/lib/clang/{12.0.1 → 14.0.0}/include/vaesintrin.h +22 -21
  83. package/lib/clang/{12.0.1 → 14.0.0}/include/vecintrin.h +206 -77
  84. package/lib/clang/{12.0.1 → 14.0.0}/include/vpclmulqdqintrin.h +8 -6
  85. package/lib/clang/14.0.0/include/wasm_simd128.h +1877 -0
  86. package/lib/clang/{12.0.1 → 14.0.0}/include/wmmintrin.h +4 -0
  87. package/lib/clang/{12.0.1 → 14.0.0}/include/x86gprintrin.h +12 -0
  88. package/lib/clang/{12.0.1 → 14.0.0}/include/xmmintrin.h +9 -5
  89. package/lib/clang/{12.0.1 → 14.0.0}/include/xopintrin.h +31 -31
  90. package/package.json +6 -6
  91. package/lib/clang/12.0.1/include/__clang_hip_runtime_wrapper.h +0 -69
  92. package/lib/clang/12.0.1/include/amxintrin.h +0 -278
  93. package/lib/clang/12.0.1/include/openmp_wrappers/__clang_openmp_device_functions.h +0 -42
  94. package/lib/clang/12.0.1/include/wasm_simd128.h +0 -1167
  95. /package/lib/clang/{12.0.1 → 14.0.0}/include/__clang_cuda_builtin_vars.h +0 -0
  96. /package/lib/clang/{12.0.1 → 14.0.0}/include/__clang_cuda_cmath.h +0 -0
  97. /package/lib/clang/{12.0.1 → 14.0.0}/include/__clang_cuda_math_forward_declares.h +0 -0
  98. /package/lib/clang/{12.0.1 → 14.0.0}/include/__stddef_max_align_t.h +0 -0
  99. /package/lib/clang/{12.0.1 → 14.0.0}/include/__wmmintrin_pclmul.h +0 -0
  100. /package/lib/clang/{12.0.1 → 14.0.0}/include/adxintrin.h +0 -0
  101. /package/lib/clang/{12.0.1 → 14.0.0}/include/arm64intr.h +0 -0
  102. /package/lib/clang/{12.0.1 → 14.0.0}/include/arm_bf16.h +0 -0
  103. /package/lib/clang/{12.0.1 → 14.0.0}/include/arm_cde.h +0 -0
  104. /package/lib/clang/{12.0.1 → 14.0.0}/include/arm_cmse.h +0 -0
  105. /package/lib/clang/{12.0.1 → 14.0.0}/include/arm_fp16.h +0 -0
  106. /package/lib/clang/{12.0.1 → 14.0.0}/include/arm_mve.h +0 -0
  107. /package/lib/clang/{12.0.1 → 14.0.0}/include/armintr.h +0 -0
  108. /package/lib/clang/{12.0.1 → 14.0.0}/include/avx512bitalgintrin.h +0 -0
  109. /package/lib/clang/{12.0.1 → 14.0.0}/include/avx512cdintrin.h +0 -0
  110. /package/lib/clang/{12.0.1 → 14.0.0}/include/avx512ifmaintrin.h +0 -0
  111. /package/lib/clang/{12.0.1 → 14.0.0}/include/avx512ifmavlintrin.h +0 -0
  112. /package/lib/clang/{12.0.1 → 14.0.0}/include/avx512pfintrin.h +0 -0
  113. /package/lib/clang/{12.0.1 → 14.0.0}/include/avx512vbmiintrin.h +0 -0
  114. /package/lib/clang/{12.0.1 → 14.0.0}/include/avx512vbmivlintrin.h +0 -0
  115. /package/lib/clang/{12.0.1 → 14.0.0}/include/avx512vlbitalgintrin.h +0 -0
  116. /package/lib/clang/{12.0.1 → 14.0.0}/include/avx512vlcdintrin.h +0 -0
  117. /package/lib/clang/{12.0.1 → 14.0.0}/include/avx512vlvp2intersectintrin.h +0 -0
  118. /package/lib/clang/{12.0.1 → 14.0.0}/include/avx512vnniintrin.h +0 -0
  119. /package/lib/clang/{12.0.1 → 14.0.0}/include/avx512vp2intersectintrin.h +0 -0
  120. /package/lib/clang/{12.0.1 → 14.0.0}/include/avx512vpopcntdqintrin.h +0 -0
  121. /package/lib/clang/{12.0.1 → 14.0.0}/include/avx512vpopcntdqvlintrin.h +0 -0
  122. /package/lib/clang/{12.0.1 → 14.0.0}/include/avxvnniintrin.h +0 -0
  123. /package/lib/clang/{12.0.1 → 14.0.0}/include/bmi2intrin.h +0 -0
  124. /package/lib/clang/{12.0.1 → 14.0.0}/include/bmiintrin.h +0 -0
  125. /package/lib/clang/{12.0.1 → 14.0.0}/include/cet.h +0 -0
  126. /package/lib/clang/{12.0.1 → 14.0.0}/include/cldemoteintrin.h +0 -0
  127. /package/lib/clang/{12.0.1 → 14.0.0}/include/clflushoptintrin.h +0 -0
  128. /package/lib/clang/{12.0.1 → 14.0.0}/include/clwbintrin.h +0 -0
  129. /package/lib/clang/{12.0.1 → 14.0.0}/include/clzerointrin.h +0 -0
  130. /package/lib/clang/{12.0.1 → 14.0.0}/include/cuda_wrappers/algorithm +0 -0
  131. /package/lib/clang/{12.0.1 → 14.0.0}/include/cuda_wrappers/new +0 -0
  132. /package/lib/clang/{12.0.1 → 14.0.0}/include/enqcmdintrin.h +0 -0
  133. /package/lib/clang/{12.0.1 → 14.0.0}/include/fma4intrin.h +0 -0
  134. /package/lib/clang/{12.0.1 → 14.0.0}/include/fmaintrin.h +0 -0
  135. /package/lib/clang/{12.0.1 → 14.0.0}/include/fxsrintrin.h +0 -0
  136. /package/lib/clang/{12.0.1 → 14.0.0}/include/hresetintrin.h +0 -0
  137. /package/lib/clang/{12.0.1 → 14.0.0}/include/htmintrin.h +0 -0
  138. /package/lib/clang/{12.0.1 → 14.0.0}/include/htmxlintrin.h +0 -0
  139. /package/lib/clang/{12.0.1 → 14.0.0}/include/inttypes.h +0 -0
  140. /package/lib/clang/{12.0.1 → 14.0.0}/include/invpcidintrin.h +0 -0
  141. /package/lib/clang/{12.0.1 → 14.0.0}/include/iso646.h +0 -0
  142. /package/lib/clang/{12.0.1 → 14.0.0}/include/lwpintrin.h +0 -0
  143. /package/lib/clang/{12.0.1 → 14.0.0}/include/lzcntintrin.h +0 -0
  144. /package/lib/clang/{12.0.1 → 14.0.0}/include/mm3dnow.h +0 -0
  145. /package/lib/clang/{12.0.1 → 14.0.0}/include/mm_malloc.h +0 -0
  146. /package/lib/clang/{12.0.1 → 14.0.0}/include/module.modulemap +0 -0
  147. /package/lib/clang/{12.0.1 → 14.0.0}/include/movdirintrin.h +0 -0
  148. /package/lib/clang/{12.0.1 → 14.0.0}/include/msa.h +0 -0
  149. /package/lib/clang/{12.0.1 → 14.0.0}/include/mwaitxintrin.h +0 -0
  150. /package/lib/clang/{12.0.1 → 14.0.0}/include/openmp_wrappers/complex_cmath.h +0 -0
  151. /package/lib/clang/{12.0.1 → 14.0.0}/include/pconfigintrin.h +0 -0
  152. /package/lib/clang/{12.0.1 → 14.0.0}/include/pkuintrin.h +0 -0
  153. /package/lib/clang/{12.0.1 → 14.0.0}/include/popcntintrin.h +0 -0
  154. /package/lib/clang/{12.0.1 → 14.0.0}/include/ptwriteintrin.h +0 -0
  155. /package/lib/clang/{12.0.1 → 14.0.0}/include/rdseedintrin.h +0 -0
  156. /package/lib/clang/{12.0.1 → 14.0.0}/include/rtmintrin.h +0 -0
  157. /package/lib/clang/{12.0.1 → 14.0.0}/include/s390intrin.h +0 -0
  158. /package/lib/clang/{12.0.1 → 14.0.0}/include/serializeintrin.h +0 -0
  159. /package/lib/clang/{12.0.1 → 14.0.0}/include/sgxintrin.h +0 -0
  160. /package/lib/clang/{12.0.1 → 14.0.0}/include/shaintrin.h +0 -0
  161. /package/lib/clang/{12.0.1 → 14.0.0}/include/stdalign.h +0 -0
  162. /package/lib/clang/{12.0.1 → 14.0.0}/include/stdarg.h +0 -0
  163. /package/lib/clang/{12.0.1 → 14.0.0}/include/stdbool.h +0 -0
  164. /package/lib/clang/{12.0.1 → 14.0.0}/include/stddef.h +0 -0
  165. /package/lib/clang/{12.0.1 → 14.0.0}/include/stdnoreturn.h +0 -0
  166. /package/lib/clang/{12.0.1 → 14.0.0}/include/tbmintrin.h +0 -0
  167. /package/lib/clang/{12.0.1 → 14.0.0}/include/tgmath.h +0 -0
  168. /package/lib/clang/{12.0.1 → 14.0.0}/include/tsxldtrkintrin.h +0 -0
  169. /package/lib/clang/{12.0.1 → 14.0.0}/include/vadefs.h +0 -0
  170. /package/lib/clang/{12.0.1 → 14.0.0}/include/varargs.h +0 -0
  171. /package/lib/clang/{12.0.1 → 14.0.0}/include/waitpkgintrin.h +0 -0
  172. /package/lib/clang/{12.0.1 → 14.0.0}/include/wbnoinvdintrin.h +0 -0
  173. /package/lib/clang/{12.0.1 → 14.0.0}/include/x86intrin.h +0 -0
  174. /package/lib/clang/{12.0.1 → 14.0.0}/include/xsavecintrin.h +0 -0
  175. /package/lib/clang/{12.0.1 → 14.0.0}/include/xsaveintrin.h +0 -0
  176. /package/lib/clang/{12.0.1 → 14.0.0}/include/xsaveoptintrin.h +0 -0
  177. /package/lib/clang/{12.0.1 → 14.0.0}/include/xsavesintrin.h +0 -0
  178. /package/lib/clang/{12.0.1 → 14.0.0}/include/xtestintrin.h +0 -0
@@ -11,11 +11,11 @@
11
11
 
12
12
  #include "opencl-c-base.h"
13
13
 
14
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
14
+ #if defined(__opencl_c_images)
15
15
  #ifndef cl_khr_depth_images
16
16
  #define cl_khr_depth_images
17
17
  #endif //cl_khr_depth_images
18
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
18
+ #endif //defined(__opencl_c_images)
19
19
 
20
20
  #if __OPENCL_C_VERSION__ < CL_VERSION_2_0
21
21
  #ifdef cl_khr_3d_image_writes
@@ -23,10 +23,14 @@
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
+ #if (defined(__OPENCL_CPP_VERSION__) || \
27
+ (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)) && \
28
+ (defined(__SPIR__) || defined(__SPIRV__))
27
29
  #pragma OPENCL EXTENSION cl_intel_planar_yuv : begin
28
30
  #pragma OPENCL EXTENSION cl_intel_planar_yuv : end
29
- #endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)
31
+ #endif // (defined(__OPENCL_CPP_VERSION__) ||
32
+ // (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)) &&
33
+ // (defined(__SPIR__) || defined(__SPIRV__))
30
34
 
31
35
  #define __ovld __attribute__((overloadable))
32
36
  #define __conv __attribute__((convergent))
@@ -6339,101 +6343,6 @@ half16 __ovld __cnfn convert_half16_rtz(double16);
6339
6343
 
6340
6344
  #endif // cl_khr_fp16
6341
6345
 
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
6346
  // OpenCL v1.1 s6.11.1, v1.2 s6.12.1, v2.0 s6.13.1 - Work-item Functions
6438
6347
 
6439
6348
  /**
@@ -6494,8 +6403,7 @@ size_t __ovld __cnfn get_local_id(uint dimindx);
6494
6403
  * Returns the number of work-groups that will execute a
6495
6404
  * kernel for dimension identified by dimindx.
6496
6405
  * Valid values of dimindx are 0 to get_work_dim() - 1.
6497
- * For other values of dimindx, get_num_groups () returns
6498
- * 1.
6406
+ * For other values of dimindx, get_num_groups() returns 1.
6499
6407
  * For clEnqueueTask, this always returns 1.
6500
6408
  */
6501
6409
  size_t __ovld __cnfn get_num_groups(uint dimindx);
@@ -7354,7 +7262,7 @@ half16 __ovld __cnfn fmod(half16 x, half16 y);
7354
7262
  * Returns fmin(x - floor (x), 0x1.fffffep-1f ).
7355
7263
  * floor(x) is returned in iptr.
7356
7264
  */
7357
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
7265
+ #if defined(__opencl_c_generic_address_space)
7358
7266
  float __ovld fract(float x, float *iptr);
7359
7267
  float2 __ovld fract(float2 x, float2 *iptr);
7360
7268
  float3 __ovld fract(float3 x, float3 *iptr);
@@ -7377,7 +7285,9 @@ half4 __ovld fract(half4 x, half4 *iptr);
7377
7285
  half8 __ovld fract(half8 x, half8 *iptr);
7378
7286
  half16 __ovld fract(half16 x, half16 *iptr);
7379
7287
  #endif //cl_khr_fp16
7380
- #else
7288
+ #endif //defined(__opencl_c_generic_address_space)
7289
+
7290
+ #if defined(__opencl_c_named_address_space_builtins)
7381
7291
  float __ovld fract(float x, __global float *iptr);
7382
7292
  float2 __ovld fract(float2 x, __global float2 *iptr);
7383
7293
  float3 __ovld fract(float3 x, __global float3 *iptr);
@@ -7436,7 +7346,7 @@ half4 __ovld fract(half4 x, __private half4 *iptr);
7436
7346
  half8 __ovld fract(half8 x, __private half8 *iptr);
7437
7347
  half16 __ovld fract(half16 x, __private half16 *iptr);
7438
7348
  #endif //cl_khr_fp16
7439
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
7349
+ #endif //defined(__opencl_c_named_address_space_builtins)
7440
7350
 
7441
7351
  /**
7442
7352
  * Extract mantissa and exponent from x. For each
@@ -7444,7 +7354,7 @@ half16 __ovld fract(half16 x, __private half16 *iptr);
7444
7354
  * magnitude in the interval [1/2, 1) or 0. Each
7445
7355
  * component of x equals mantissa returned * 2^exp.
7446
7356
  */
7447
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
7357
+ #if defined(__opencl_c_generic_address_space)
7448
7358
  float __ovld frexp(float x, int *exp);
7449
7359
  float2 __ovld frexp(float2 x, int2 *exp);
7450
7360
  float3 __ovld frexp(float3 x, int3 *exp);
@@ -7467,7 +7377,9 @@ half4 __ovld frexp(half4 x, int4 *exp);
7467
7377
  half8 __ovld frexp(half8 x, int8 *exp);
7468
7378
  half16 __ovld frexp(half16 x, int16 *exp);
7469
7379
  #endif //cl_khr_fp16
7470
- #else
7380
+ #endif //defined(__opencl_c_generic_address_space)
7381
+
7382
+ #if defined(__opencl_c_named_address_space_builtins)
7471
7383
  float __ovld frexp(float x, __global int *exp);
7472
7384
  float2 __ovld frexp(float2 x, __global int2 *exp);
7473
7385
  float3 __ovld frexp(float3 x, __global int3 *exp);
@@ -7526,7 +7438,7 @@ half4 __ovld frexp(half4 x, __private int4 *exp);
7526
7438
  half8 __ovld frexp(half8 x, __private int8 *exp);
7527
7439
  half16 __ovld frexp(half16 x, __private int16 *exp);
7528
7440
  #endif //cl_khr_fp16
7529
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
7441
+ #endif //defined(__opencl_c_named_address_space_builtins)
7530
7442
 
7531
7443
  /**
7532
7444
  * Compute the value of the square root of x^2 + y^2
@@ -7651,7 +7563,7 @@ half8 __ovld __cnfn lgamma(half8 x);
7651
7563
  half16 __ovld __cnfn lgamma(half16 x);
7652
7564
  #endif //cl_khr_fp16
7653
7565
 
7654
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
7566
+ #if defined(__opencl_c_generic_address_space)
7655
7567
  float __ovld lgamma_r(float x, int *signp);
7656
7568
  float2 __ovld lgamma_r(float2 x, int2 *signp);
7657
7569
  float3 __ovld lgamma_r(float3 x, int3 *signp);
@@ -7674,7 +7586,9 @@ half4 __ovld lgamma_r(half4 x, int4 *signp);
7674
7586
  half8 __ovld lgamma_r(half8 x, int8 *signp);
7675
7587
  half16 __ovld lgamma_r(half16 x, int16 *signp);
7676
7588
  #endif //cl_khr_fp16
7677
- #else
7589
+ #endif //defined(__opencl_c_generic_address_space)
7590
+
7591
+ #if defined(__opencl_c_named_address_space_builtins)
7678
7592
  float __ovld lgamma_r(float x, __global int *signp);
7679
7593
  float2 __ovld lgamma_r(float2 x, __global int2 *signp);
7680
7594
  float3 __ovld lgamma_r(float3 x, __global int3 *signp);
@@ -7733,7 +7647,7 @@ half4 __ovld lgamma_r(half4 x, __private int4 *signp);
7733
7647
  half8 __ovld lgamma_r(half8 x, __private int8 *signp);
7734
7648
  half16 __ovld lgamma_r(half16 x, __private int16 *signp);
7735
7649
  #endif //cl_khr_fp16
7736
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
7650
+ #endif //defined(__opencl_c_named_address_space_builtins)
7737
7651
 
7738
7652
  /**
7739
7653
  * Compute natural logarithm.
@@ -7957,7 +7871,7 @@ half16 __ovld __cnfn minmag(half16 x, half16 y);
7957
7871
  * the argument. It stores the integral part in the object
7958
7872
  * pointed to by iptr.
7959
7873
  */
7960
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
7874
+ #if defined(__opencl_c_generic_address_space)
7961
7875
  float __ovld modf(float x, float *iptr);
7962
7876
  float2 __ovld modf(float2 x, float2 *iptr);
7963
7877
  float3 __ovld modf(float3 x, float3 *iptr);
@@ -7980,7 +7894,9 @@ half4 __ovld modf(half4 x, half4 *iptr);
7980
7894
  half8 __ovld modf(half8 x, half8 *iptr);
7981
7895
  half16 __ovld modf(half16 x, half16 *iptr);
7982
7896
  #endif //cl_khr_fp16
7983
- #else
7897
+ #endif //defined(__opencl_c_generic_address_space)
7898
+
7899
+ #if defined(__opencl_c_named_address_space_builtins)
7984
7900
  float __ovld modf(float x, __global float *iptr);
7985
7901
  float2 __ovld modf(float2 x, __global float2 *iptr);
7986
7902
  float3 __ovld modf(float3 x, __global float3 *iptr);
@@ -8039,7 +7955,7 @@ half4 __ovld modf(half4 x, __private half4 *iptr);
8039
7955
  half8 __ovld modf(half8 x, __private half8 *iptr);
8040
7956
  half16 __ovld modf(half16 x, __private half16 *iptr);
8041
7957
  #endif //cl_khr_fp16
8042
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
7958
+ #endif //defined(__opencl_c_named_address_space_builtins)
8043
7959
 
8044
7960
  /**
8045
7961
  * Returns a quiet NaN. The nancode may be placed
@@ -8217,7 +8133,7 @@ half16 __ovld __cnfn remainder(half16 x, half16 y);
8217
8133
  * sign as x/y. It stores this signed value in the object
8218
8134
  * pointed to by quo.
8219
8135
  */
8220
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
8136
+ #if defined(__opencl_c_generic_address_space)
8221
8137
  float __ovld remquo(float x, float y, int *quo);
8222
8138
  float2 __ovld remquo(float2 x, float2 y, int2 *quo);
8223
8139
  float3 __ovld remquo(float3 x, float3 y, int3 *quo);
@@ -8239,9 +8155,10 @@ half3 __ovld remquo(half3 x, half3 y, int3 *quo);
8239
8155
  half4 __ovld remquo(half4 x, half4 y, int4 *quo);
8240
8156
  half8 __ovld remquo(half8 x, half8 y, int8 *quo);
8241
8157
  half16 __ovld remquo(half16 x, half16 y, int16 *quo);
8242
-
8243
8158
  #endif //cl_khr_fp16
8244
- #else
8159
+ #endif //defined(__opencl_c_generic_address_space)
8160
+
8161
+ #if defined(__opencl_c_named_address_space_builtins)
8245
8162
  float __ovld remquo(float x, float y, __global int *quo);
8246
8163
  float2 __ovld remquo(float2 x, float2 y, __global int2 *quo);
8247
8164
  float3 __ovld remquo(float3 x, float3 y, __global int3 *quo);
@@ -8300,7 +8217,7 @@ half4 __ovld remquo(half4 x, half4 y, __private int4 *quo);
8300
8217
  half8 __ovld remquo(half8 x, half8 y, __private int8 *quo);
8301
8218
  half16 __ovld remquo(half16 x, half16 y, __private int16 *quo);
8302
8219
  #endif //cl_khr_fp16
8303
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
8220
+ #endif //defined(__opencl_c_named_address_space_builtins)
8304
8221
  /**
8305
8222
  * Round to integral value (using round to nearest
8306
8223
  * even rounding mode) in floating-point format.
@@ -8441,7 +8358,7 @@ half16 __ovld __cnfn sin(half16);
8441
8358
  * is the return value and computed cosine is returned
8442
8359
  * in cosval.
8443
8360
  */
8444
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
8361
+ #if defined(__opencl_c_generic_address_space)
8445
8362
  float __ovld sincos(float x, float *cosval);
8446
8363
  float2 __ovld sincos(float2 x, float2 *cosval);
8447
8364
  float3 __ovld sincos(float3 x, float3 *cosval);
@@ -8464,7 +8381,9 @@ half4 __ovld sincos(half4 x, half4 *cosval);
8464
8381
  half8 __ovld sincos(half8 x, half8 *cosval);
8465
8382
  half16 __ovld sincos(half16 x, half16 *cosval);
8466
8383
  #endif //cl_khr_fp16
8467
- #else
8384
+ #endif //defined(__opencl_c_generic_address_space)
8385
+
8386
+ #if defined(__opencl_c_named_address_space_builtins)
8468
8387
  float __ovld sincos(float x, __global float *cosval);
8469
8388
  float2 __ovld sincos(float2 x, __global float2 *cosval);
8470
8389
  float3 __ovld sincos(float3 x, __global float3 *cosval);
@@ -8523,7 +8442,7 @@ half4 __ovld sincos(half4 x, __private half4 *cosval);
8523
8442
  half8 __ovld sincos(half8 x, __private half8 *cosval);
8524
8443
  half16 __ovld sincos(half16 x, __private half16 *cosval);
8525
8444
  #endif //cl_khr_fp16
8526
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
8445
+ #endif //defined(__opencl_c_named_address_space_builtins)
8527
8446
 
8528
8447
  /**
8529
8448
  * Compute hyperbolic sine.
@@ -9449,54 +9368,54 @@ ulong16 __ovld __cnfn clz(ulong16 x);
9449
9368
  * component type of x, if x is a vector.
9450
9369
  */
9451
9370
  #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);
9371
+ char __ovld __cnfn ctz(char x);
9372
+ uchar __ovld __cnfn ctz(uchar x);
9373
+ char2 __ovld __cnfn ctz(char2 x);
9374
+ uchar2 __ovld __cnfn ctz(uchar2 x);
9375
+ char3 __ovld __cnfn ctz(char3 x);
9376
+ uchar3 __ovld __cnfn ctz(uchar3 x);
9377
+ char4 __ovld __cnfn ctz(char4 x);
9378
+ uchar4 __ovld __cnfn ctz(uchar4 x);
9379
+ char8 __ovld __cnfn ctz(char8 x);
9380
+ uchar8 __ovld __cnfn ctz(uchar8 x);
9381
+ char16 __ovld __cnfn ctz(char16 x);
9382
+ uchar16 __ovld __cnfn ctz(uchar16 x);
9383
+ short __ovld __cnfn ctz(short x);
9384
+ ushort __ovld __cnfn ctz(ushort x);
9385
+ short2 __ovld __cnfn ctz(short2 x);
9386
+ ushort2 __ovld __cnfn ctz(ushort2 x);
9387
+ short3 __ovld __cnfn ctz(short3 x);
9388
+ ushort3 __ovld __cnfn ctz(ushort3 x);
9389
+ short4 __ovld __cnfn ctz(short4 x);
9390
+ ushort4 __ovld __cnfn ctz(ushort4 x);
9391
+ short8 __ovld __cnfn ctz(short8 x);
9392
+ ushort8 __ovld __cnfn ctz(ushort8 x);
9393
+ short16 __ovld __cnfn ctz(short16 x);
9394
+ ushort16 __ovld __cnfn ctz(ushort16 x);
9395
+ int __ovld __cnfn ctz(int x);
9396
+ uint __ovld __cnfn ctz(uint x);
9397
+ int2 __ovld __cnfn ctz(int2 x);
9398
+ uint2 __ovld __cnfn ctz(uint2 x);
9399
+ int3 __ovld __cnfn ctz(int3 x);
9400
+ uint3 __ovld __cnfn ctz(uint3 x);
9401
+ int4 __ovld __cnfn ctz(int4 x);
9402
+ uint4 __ovld __cnfn ctz(uint4 x);
9403
+ int8 __ovld __cnfn ctz(int8 x);
9404
+ uint8 __ovld __cnfn ctz(uint8 x);
9405
+ int16 __ovld __cnfn ctz(int16 x);
9406
+ uint16 __ovld __cnfn ctz(uint16 x);
9407
+ long __ovld __cnfn ctz(long x);
9408
+ ulong __ovld __cnfn ctz(ulong x);
9409
+ long2 __ovld __cnfn ctz(long2 x);
9410
+ ulong2 __ovld __cnfn ctz(ulong2 x);
9411
+ long3 __ovld __cnfn ctz(long3 x);
9412
+ ulong3 __ovld __cnfn ctz(ulong3 x);
9413
+ long4 __ovld __cnfn ctz(long4 x);
9414
+ ulong4 __ovld __cnfn ctz(ulong4 x);
9415
+ long8 __ovld __cnfn ctz(long8 x);
9416
+ ulong8 __ovld __cnfn ctz(ulong8 x);
9417
+ long16 __ovld __cnfn ctz(long16 x);
9418
+ ulong16 __ovld __cnfn ctz(ulong16 x);
9500
9419
  #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
9501
9420
 
9502
9421
  /**
@@ -10002,6 +9921,7 @@ ulong16 __ovld __cnfn upsample(uint16 hi, uint16 lo);
10002
9921
  /*
10003
9922
  * popcount(x): returns the number of set bit in x
10004
9923
  */
9924
+ #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)
10005
9925
  char __ovld __cnfn popcount(char x);
10006
9926
  uchar __ovld __cnfn popcount(uchar x);
10007
9927
  char2 __ovld __cnfn popcount(char2 x);
@@ -10050,6 +9970,7 @@ long8 __ovld __cnfn popcount(long8 x);
10050
9970
  ulong8 __ovld __cnfn popcount(ulong8 x);
10051
9971
  long16 __ovld __cnfn popcount(long16 x);
10052
9972
  ulong16 __ovld __cnfn popcount(ulong16 x);
9973
+ #endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)
10053
9974
 
10054
9975
  /**
10055
9976
  * Multiply two 24-bit integer values x and y and add
@@ -11280,309 +11201,311 @@ half16 __ovld __cnfn select(half16 a, half16 b, ushort16 c);
11280
11201
  * 64-bit aligned if gentype is long, ulong, double.
11281
11202
  */
11282
11203
 
11283
- char2 __ovld vload2(size_t offset, const __constant char *p);
11284
- uchar2 __ovld vload2(size_t offset, const __constant uchar *p);
11285
- short2 __ovld vload2(size_t offset, const __constant short *p);
11286
- ushort2 __ovld vload2(size_t offset, const __constant ushort *p);
11287
- int2 __ovld vload2(size_t offset, const __constant int *p);
11288
- uint2 __ovld vload2(size_t offset, const __constant uint *p);
11289
- long2 __ovld vload2(size_t offset, const __constant long *p);
11290
- ulong2 __ovld vload2(size_t offset, const __constant ulong *p);
11291
- float2 __ovld vload2(size_t offset, const __constant float *p);
11292
- char3 __ovld vload3(size_t offset, const __constant char *p);
11293
- uchar3 __ovld vload3(size_t offset, const __constant uchar *p);
11294
- short3 __ovld vload3(size_t offset, const __constant short *p);
11295
- ushort3 __ovld vload3(size_t offset, const __constant ushort *p);
11296
- int3 __ovld vload3(size_t offset, const __constant int *p);
11297
- uint3 __ovld vload3(size_t offset, const __constant uint *p);
11298
- long3 __ovld vload3(size_t offset, const __constant long *p);
11299
- ulong3 __ovld vload3(size_t offset, const __constant ulong *p);
11300
- float3 __ovld vload3(size_t offset, const __constant float *p);
11301
- char4 __ovld vload4(size_t offset, const __constant char *p);
11302
- uchar4 __ovld vload4(size_t offset, const __constant uchar *p);
11303
- short4 __ovld vload4(size_t offset, const __constant short *p);
11304
- ushort4 __ovld vload4(size_t offset, const __constant ushort *p);
11305
- int4 __ovld vload4(size_t offset, const __constant int *p);
11306
- uint4 __ovld vload4(size_t offset, const __constant uint *p);
11307
- long4 __ovld vload4(size_t offset, const __constant long *p);
11308
- ulong4 __ovld vload4(size_t offset, const __constant ulong *p);
11309
- float4 __ovld vload4(size_t offset, const __constant float *p);
11310
- char8 __ovld vload8(size_t offset, const __constant char *p);
11311
- uchar8 __ovld vload8(size_t offset, const __constant uchar *p);
11312
- short8 __ovld vload8(size_t offset, const __constant short *p);
11313
- ushort8 __ovld vload8(size_t offset, const __constant ushort *p);
11314
- int8 __ovld vload8(size_t offset, const __constant int *p);
11315
- uint8 __ovld vload8(size_t offset, const __constant uint *p);
11316
- long8 __ovld vload8(size_t offset, const __constant long *p);
11317
- ulong8 __ovld vload8(size_t offset, const __constant ulong *p);
11318
- float8 __ovld vload8(size_t offset, const __constant float *p);
11319
- char16 __ovld vload16(size_t offset, const __constant char *p);
11320
- uchar16 __ovld vload16(size_t offset, const __constant uchar *p);
11321
- short16 __ovld vload16(size_t offset, const __constant short *p);
11322
- ushort16 __ovld vload16(size_t offset, const __constant ushort *p);
11323
- int16 __ovld vload16(size_t offset, const __constant int *p);
11324
- uint16 __ovld vload16(size_t offset, const __constant uint *p);
11325
- long16 __ovld vload16(size_t offset, const __constant long *p);
11326
- ulong16 __ovld vload16(size_t offset, const __constant ulong *p);
11327
- float16 __ovld vload16(size_t offset, const __constant float *p);
11204
+ char2 __ovld __purefn vload2(size_t offset, const __constant char *p);
11205
+ uchar2 __ovld __purefn vload2(size_t offset, const __constant uchar *p);
11206
+ short2 __ovld __purefn vload2(size_t offset, const __constant short *p);
11207
+ ushort2 __ovld __purefn vload2(size_t offset, const __constant ushort *p);
11208
+ int2 __ovld __purefn vload2(size_t offset, const __constant int *p);
11209
+ uint2 __ovld __purefn vload2(size_t offset, const __constant uint *p);
11210
+ long2 __ovld __purefn vload2(size_t offset, const __constant long *p);
11211
+ ulong2 __ovld __purefn vload2(size_t offset, const __constant ulong *p);
11212
+ float2 __ovld __purefn vload2(size_t offset, const __constant float *p);
11213
+ char3 __ovld __purefn vload3(size_t offset, const __constant char *p);
11214
+ uchar3 __ovld __purefn vload3(size_t offset, const __constant uchar *p);
11215
+ short3 __ovld __purefn vload3(size_t offset, const __constant short *p);
11216
+ ushort3 __ovld __purefn vload3(size_t offset, const __constant ushort *p);
11217
+ int3 __ovld __purefn vload3(size_t offset, const __constant int *p);
11218
+ uint3 __ovld __purefn vload3(size_t offset, const __constant uint *p);
11219
+ long3 __ovld __purefn vload3(size_t offset, const __constant long *p);
11220
+ ulong3 __ovld __purefn vload3(size_t offset, const __constant ulong *p);
11221
+ float3 __ovld __purefn vload3(size_t offset, const __constant float *p);
11222
+ char4 __ovld __purefn vload4(size_t offset, const __constant char *p);
11223
+ uchar4 __ovld __purefn vload4(size_t offset, const __constant uchar *p);
11224
+ short4 __ovld __purefn vload4(size_t offset, const __constant short *p);
11225
+ ushort4 __ovld __purefn vload4(size_t offset, const __constant ushort *p);
11226
+ int4 __ovld __purefn vload4(size_t offset, const __constant int *p);
11227
+ uint4 __ovld __purefn vload4(size_t offset, const __constant uint *p);
11228
+ long4 __ovld __purefn vload4(size_t offset, const __constant long *p);
11229
+ ulong4 __ovld __purefn vload4(size_t offset, const __constant ulong *p);
11230
+ float4 __ovld __purefn vload4(size_t offset, const __constant float *p);
11231
+ char8 __ovld __purefn vload8(size_t offset, const __constant char *p);
11232
+ uchar8 __ovld __purefn vload8(size_t offset, const __constant uchar *p);
11233
+ short8 __ovld __purefn vload8(size_t offset, const __constant short *p);
11234
+ ushort8 __ovld __purefn vload8(size_t offset, const __constant ushort *p);
11235
+ int8 __ovld __purefn vload8(size_t offset, const __constant int *p);
11236
+ uint8 __ovld __purefn vload8(size_t offset, const __constant uint *p);
11237
+ long8 __ovld __purefn vload8(size_t offset, const __constant long *p);
11238
+ ulong8 __ovld __purefn vload8(size_t offset, const __constant ulong *p);
11239
+ float8 __ovld __purefn vload8(size_t offset, const __constant float *p);
11240
+ char16 __ovld __purefn vload16(size_t offset, const __constant char *p);
11241
+ uchar16 __ovld __purefn vload16(size_t offset, const __constant uchar *p);
11242
+ short16 __ovld __purefn vload16(size_t offset, const __constant short *p);
11243
+ ushort16 __ovld __purefn vload16(size_t offset, const __constant ushort *p);
11244
+ int16 __ovld __purefn vload16(size_t offset, const __constant int *p);
11245
+ uint16 __ovld __purefn vload16(size_t offset, const __constant uint *p);
11246
+ long16 __ovld __purefn vload16(size_t offset, const __constant long *p);
11247
+ ulong16 __ovld __purefn vload16(size_t offset, const __constant ulong *p);
11248
+ float16 __ovld __purefn vload16(size_t offset, const __constant float *p);
11328
11249
  #ifdef cl_khr_fp64
11329
- double2 __ovld vload2(size_t offset, const __constant double *p);
11330
- double3 __ovld vload3(size_t offset, const __constant double *p);
11331
- double4 __ovld vload4(size_t offset, const __constant double *p);
11332
- double8 __ovld vload8(size_t offset, const __constant double *p);
11333
- double16 __ovld vload16(size_t offset, const __constant double *p);
11250
+ double2 __ovld __purefn vload2(size_t offset, const __constant double *p);
11251
+ double3 __ovld __purefn vload3(size_t offset, const __constant double *p);
11252
+ double4 __ovld __purefn vload4(size_t offset, const __constant double *p);
11253
+ double8 __ovld __purefn vload8(size_t offset, const __constant double *p);
11254
+ double16 __ovld __purefn vload16(size_t offset, const __constant double *p);
11334
11255
  #endif //cl_khr_fp64
11335
11256
 
11336
11257
  #ifdef cl_khr_fp16
11337
- half __ovld vload(size_t offset, const __constant half *p);
11338
- half2 __ovld vload2(size_t offset, const __constant half *p);
11339
- half3 __ovld vload3(size_t offset, const __constant half *p);
11340
- half4 __ovld vload4(size_t offset, const __constant half *p);
11341
- half8 __ovld vload8(size_t offset, const __constant half *p);
11342
- half16 __ovld vload16(size_t offset, const __constant half *p);
11258
+ half __ovld __purefn vload(size_t offset, const __constant half *p);
11259
+ half2 __ovld __purefn vload2(size_t offset, const __constant half *p);
11260
+ half3 __ovld __purefn vload3(size_t offset, const __constant half *p);
11261
+ half4 __ovld __purefn vload4(size_t offset, const __constant half *p);
11262
+ half8 __ovld __purefn vload8(size_t offset, const __constant half *p);
11263
+ half16 __ovld __purefn vload16(size_t offset, const __constant half *p);
11343
11264
  #endif //cl_khr_fp16
11344
11265
 
11345
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
11346
- char2 __ovld vload2(size_t offset, const char *p);
11347
- uchar2 __ovld vload2(size_t offset, const uchar *p);
11348
- short2 __ovld vload2(size_t offset, const short *p);
11349
- ushort2 __ovld vload2(size_t offset, const ushort *p);
11350
- int2 __ovld vload2(size_t offset, const int *p);
11351
- uint2 __ovld vload2(size_t offset, const uint *p);
11352
- long2 __ovld vload2(size_t offset, const long *p);
11353
- ulong2 __ovld vload2(size_t offset, const ulong *p);
11354
- float2 __ovld vload2(size_t offset, const float *p);
11355
- char3 __ovld vload3(size_t offset, const char *p);
11356
- uchar3 __ovld vload3(size_t offset, const uchar *p);
11357
- short3 __ovld vload3(size_t offset, const short *p);
11358
- ushort3 __ovld vload3(size_t offset, const ushort *p);
11359
- int3 __ovld vload3(size_t offset, const int *p);
11360
- uint3 __ovld vload3(size_t offset, const uint *p);
11361
- long3 __ovld vload3(size_t offset, const long *p);
11362
- ulong3 __ovld vload3(size_t offset, const ulong *p);
11363
- float3 __ovld vload3(size_t offset, const float *p);
11364
- char4 __ovld vload4(size_t offset, const char *p);
11365
- uchar4 __ovld vload4(size_t offset, const uchar *p);
11366
- short4 __ovld vload4(size_t offset, const short *p);
11367
- ushort4 __ovld vload4(size_t offset, const ushort *p);
11368
- int4 __ovld vload4(size_t offset, const int *p);
11369
- uint4 __ovld vload4(size_t offset, const uint *p);
11370
- long4 __ovld vload4(size_t offset, const long *p);
11371
- ulong4 __ovld vload4(size_t offset, const ulong *p);
11372
- float4 __ovld vload4(size_t offset, const float *p);
11373
- char8 __ovld vload8(size_t offset, const char *p);
11374
- uchar8 __ovld vload8(size_t offset, const uchar *p);
11375
- short8 __ovld vload8(size_t offset, const short *p);
11376
- ushort8 __ovld vload8(size_t offset, const ushort *p);
11377
- int8 __ovld vload8(size_t offset, const int *p);
11378
- uint8 __ovld vload8(size_t offset, const uint *p);
11379
- long8 __ovld vload8(size_t offset, const long *p);
11380
- ulong8 __ovld vload8(size_t offset, const ulong *p);
11381
- float8 __ovld vload8(size_t offset, const float *p);
11382
- char16 __ovld vload16(size_t offset, const char *p);
11383
- uchar16 __ovld vload16(size_t offset, const uchar *p);
11384
- short16 __ovld vload16(size_t offset, const short *p);
11385
- ushort16 __ovld vload16(size_t offset, const ushort *p);
11386
- int16 __ovld vload16(size_t offset, const int *p);
11387
- uint16 __ovld vload16(size_t offset, const uint *p);
11388
- long16 __ovld vload16(size_t offset, const long *p);
11389
- ulong16 __ovld vload16(size_t offset, const ulong *p);
11390
- float16 __ovld vload16(size_t offset, const float *p);
11266
+ #if defined(__opencl_c_generic_address_space)
11267
+ char2 __ovld __purefn vload2(size_t offset, const char *p);
11268
+ uchar2 __ovld __purefn vload2(size_t offset, const uchar *p);
11269
+ short2 __ovld __purefn vload2(size_t offset, const short *p);
11270
+ ushort2 __ovld __purefn vload2(size_t offset, const ushort *p);
11271
+ int2 __ovld __purefn vload2(size_t offset, const int *p);
11272
+ uint2 __ovld __purefn vload2(size_t offset, const uint *p);
11273
+ long2 __ovld __purefn vload2(size_t offset, const long *p);
11274
+ ulong2 __ovld __purefn vload2(size_t offset, const ulong *p);
11275
+ float2 __ovld __purefn vload2(size_t offset, const float *p);
11276
+ char3 __ovld __purefn vload3(size_t offset, const char *p);
11277
+ uchar3 __ovld __purefn vload3(size_t offset, const uchar *p);
11278
+ short3 __ovld __purefn vload3(size_t offset, const short *p);
11279
+ ushort3 __ovld __purefn vload3(size_t offset, const ushort *p);
11280
+ int3 __ovld __purefn vload3(size_t offset, const int *p);
11281
+ uint3 __ovld __purefn vload3(size_t offset, const uint *p);
11282
+ long3 __ovld __purefn vload3(size_t offset, const long *p);
11283
+ ulong3 __ovld __purefn vload3(size_t offset, const ulong *p);
11284
+ float3 __ovld __purefn vload3(size_t offset, const float *p);
11285
+ char4 __ovld __purefn vload4(size_t offset, const char *p);
11286
+ uchar4 __ovld __purefn vload4(size_t offset, const uchar *p);
11287
+ short4 __ovld __purefn vload4(size_t offset, const short *p);
11288
+ ushort4 __ovld __purefn vload4(size_t offset, const ushort *p);
11289
+ int4 __ovld __purefn vload4(size_t offset, const int *p);
11290
+ uint4 __ovld __purefn vload4(size_t offset, const uint *p);
11291
+ long4 __ovld __purefn vload4(size_t offset, const long *p);
11292
+ ulong4 __ovld __purefn vload4(size_t offset, const ulong *p);
11293
+ float4 __ovld __purefn vload4(size_t offset, const float *p);
11294
+ char8 __ovld __purefn vload8(size_t offset, const char *p);
11295
+ uchar8 __ovld __purefn vload8(size_t offset, const uchar *p);
11296
+ short8 __ovld __purefn vload8(size_t offset, const short *p);
11297
+ ushort8 __ovld __purefn vload8(size_t offset, const ushort *p);
11298
+ int8 __ovld __purefn vload8(size_t offset, const int *p);
11299
+ uint8 __ovld __purefn vload8(size_t offset, const uint *p);
11300
+ long8 __ovld __purefn vload8(size_t offset, const long *p);
11301
+ ulong8 __ovld __purefn vload8(size_t offset, const ulong *p);
11302
+ float8 __ovld __purefn vload8(size_t offset, const float *p);
11303
+ char16 __ovld __purefn vload16(size_t offset, const char *p);
11304
+ uchar16 __ovld __purefn vload16(size_t offset, const uchar *p);
11305
+ short16 __ovld __purefn vload16(size_t offset, const short *p);
11306
+ ushort16 __ovld __purefn vload16(size_t offset, const ushort *p);
11307
+ int16 __ovld __purefn vload16(size_t offset, const int *p);
11308
+ uint16 __ovld __purefn vload16(size_t offset, const uint *p);
11309
+ long16 __ovld __purefn vload16(size_t offset, const long *p);
11310
+ ulong16 __ovld __purefn vload16(size_t offset, const ulong *p);
11311
+ float16 __ovld __purefn vload16(size_t offset, const float *p);
11391
11312
 
11392
11313
  #ifdef cl_khr_fp64
11393
- double2 __ovld vload2(size_t offset, const double *p);
11394
- double3 __ovld vload3(size_t offset, const double *p);
11395
- double4 __ovld vload4(size_t offset, const double *p);
11396
- double8 __ovld vload8(size_t offset, const double *p);
11397
- double16 __ovld vload16(size_t offset, const double *p);
11314
+ double2 __ovld __purefn vload2(size_t offset, const double *p);
11315
+ double3 __ovld __purefn vload3(size_t offset, const double *p);
11316
+ double4 __ovld __purefn vload4(size_t offset, const double *p);
11317
+ double8 __ovld __purefn vload8(size_t offset, const double *p);
11318
+ double16 __ovld __purefn vload16(size_t offset, const double *p);
11398
11319
  #endif //cl_khr_fp64
11399
11320
 
11400
11321
  #ifdef cl_khr_fp16
11401
- half __ovld vload(size_t offset, const half *p);
11402
- half2 __ovld vload2(size_t offset, const half *p);
11403
- half3 __ovld vload3(size_t offset, const half *p);
11404
- half4 __ovld vload4(size_t offset, const half *p);
11405
- half8 __ovld vload8(size_t offset, const half *p);
11406
- half16 __ovld vload16(size_t offset, const half *p);
11322
+ half __ovld __purefn vload(size_t offset, const half *p);
11323
+ half2 __ovld __purefn vload2(size_t offset, const half *p);
11324
+ half3 __ovld __purefn vload3(size_t offset, const half *p);
11325
+ half4 __ovld __purefn vload4(size_t offset, const half *p);
11326
+ half8 __ovld __purefn vload8(size_t offset, const half *p);
11327
+ half16 __ovld __purefn vload16(size_t offset, const half *p);
11407
11328
  #endif //cl_khr_fp16
11408
- #else
11409
- char2 __ovld vload2(size_t offset, const __global char *p);
11410
- uchar2 __ovld vload2(size_t offset, const __global uchar *p);
11411
- short2 __ovld vload2(size_t offset, const __global short *p);
11412
- ushort2 __ovld vload2(size_t offset, const __global ushort *p);
11413
- int2 __ovld vload2(size_t offset, const __global int *p);
11414
- uint2 __ovld vload2(size_t offset, const __global uint *p);
11415
- long2 __ovld vload2(size_t offset, const __global long *p);
11416
- ulong2 __ovld vload2(size_t offset, const __global ulong *p);
11417
- float2 __ovld vload2(size_t offset, const __global float *p);
11418
- char3 __ovld vload3(size_t offset, const __global char *p);
11419
- uchar3 __ovld vload3(size_t offset, const __global uchar *p);
11420
- short3 __ovld vload3(size_t offset, const __global short *p);
11421
- ushort3 __ovld vload3(size_t offset, const __global ushort *p);
11422
- int3 __ovld vload3(size_t offset, const __global int *p);
11423
- uint3 __ovld vload3(size_t offset, const __global uint *p);
11424
- long3 __ovld vload3(size_t offset, const __global long *p);
11425
- ulong3 __ovld vload3(size_t offset, const __global ulong *p);
11426
- float3 __ovld vload3(size_t offset, const __global float *p);
11427
- char4 __ovld vload4(size_t offset, const __global char *p);
11428
- uchar4 __ovld vload4(size_t offset, const __global uchar *p);
11429
- short4 __ovld vload4(size_t offset, const __global short *p);
11430
- ushort4 __ovld vload4(size_t offset, const __global ushort *p);
11431
- int4 __ovld vload4(size_t offset, const __global int *p);
11432
- uint4 __ovld vload4(size_t offset, const __global uint *p);
11433
- long4 __ovld vload4(size_t offset, const __global long *p);
11434
- ulong4 __ovld vload4(size_t offset, const __global ulong *p);
11435
- float4 __ovld vload4(size_t offset, const __global float *p);
11436
- char8 __ovld vload8(size_t offset, const __global char *p);
11437
- uchar8 __ovld vload8(size_t offset, const __global uchar *p);
11438
- short8 __ovld vload8(size_t offset, const __global short *p);
11439
- ushort8 __ovld vload8(size_t offset, const __global ushort *p);
11440
- int8 __ovld vload8(size_t offset, const __global int *p);
11441
- uint8 __ovld vload8(size_t offset, const __global uint *p);
11442
- long8 __ovld vload8(size_t offset, const __global long *p);
11443
- ulong8 __ovld vload8(size_t offset, const __global ulong *p);
11444
- float8 __ovld vload8(size_t offset, const __global float *p);
11445
- char16 __ovld vload16(size_t offset, const __global char *p);
11446
- uchar16 __ovld vload16(size_t offset, const __global uchar *p);
11447
- short16 __ovld vload16(size_t offset, const __global short *p);
11448
- ushort16 __ovld vload16(size_t offset, const __global ushort *p);
11449
- int16 __ovld vload16(size_t offset, const __global int *p);
11450
- uint16 __ovld vload16(size_t offset, const __global uint *p);
11451
- long16 __ovld vload16(size_t offset, const __global long *p);
11452
- ulong16 __ovld vload16(size_t offset, const __global ulong *p);
11453
- float16 __ovld vload16(size_t offset, const __global float *p);
11454
- char2 __ovld vload2(size_t offset, const __local char *p);
11455
- uchar2 __ovld vload2(size_t offset, const __local uchar *p);
11456
- short2 __ovld vload2(size_t offset, const __local short *p);
11457
- ushort2 __ovld vload2(size_t offset, const __local ushort *p);
11458
- int2 __ovld vload2(size_t offset, const __local int *p);
11459
- uint2 __ovld vload2(size_t offset, const __local uint *p);
11460
- long2 __ovld vload2(size_t offset, const __local long *p);
11461
- ulong2 __ovld vload2(size_t offset, const __local ulong *p);
11462
- float2 __ovld vload2(size_t offset, const __local float *p);
11463
- char3 __ovld vload3(size_t offset, const __local char *p);
11464
- uchar3 __ovld vload3(size_t offset, const __local uchar *p);
11465
- short3 __ovld vload3(size_t offset, const __local short *p);
11466
- ushort3 __ovld vload3(size_t offset, const __local ushort *p);
11467
- int3 __ovld vload3(size_t offset, const __local int *p);
11468
- uint3 __ovld vload3(size_t offset, const __local uint *p);
11469
- long3 __ovld vload3(size_t offset, const __local long *p);
11470
- ulong3 __ovld vload3(size_t offset, const __local ulong *p);
11471
- float3 __ovld vload3(size_t offset, const __local float *p);
11472
- char4 __ovld vload4(size_t offset, const __local char *p);
11473
- uchar4 __ovld vload4(size_t offset, const __local uchar *p);
11474
- short4 __ovld vload4(size_t offset, const __local short *p);
11475
- ushort4 __ovld vload4(size_t offset, const __local ushort *p);
11476
- int4 __ovld vload4(size_t offset, const __local int *p);
11477
- uint4 __ovld vload4(size_t offset, const __local uint *p);
11478
- long4 __ovld vload4(size_t offset, const __local long *p);
11479
- ulong4 __ovld vload4(size_t offset, const __local ulong *p);
11480
- float4 __ovld vload4(size_t offset, const __local float *p);
11481
- char8 __ovld vload8(size_t offset, const __local char *p);
11482
- uchar8 __ovld vload8(size_t offset, const __local uchar *p);
11483
- short8 __ovld vload8(size_t offset, const __local short *p);
11484
- ushort8 __ovld vload8(size_t offset, const __local ushort *p);
11485
- int8 __ovld vload8(size_t offset, const __local int *p);
11486
- uint8 __ovld vload8(size_t offset, const __local uint *p);
11487
- long8 __ovld vload8(size_t offset, const __local long *p);
11488
- ulong8 __ovld vload8(size_t offset, const __local ulong *p);
11489
- float8 __ovld vload8(size_t offset, const __local float *p);
11490
- char16 __ovld vload16(size_t offset, const __local char *p);
11491
- uchar16 __ovld vload16(size_t offset, const __local uchar *p);
11492
- short16 __ovld vload16(size_t offset, const __local short *p);
11493
- ushort16 __ovld vload16(size_t offset, const __local ushort *p);
11494
- int16 __ovld vload16(size_t offset, const __local int *p);
11495
- uint16 __ovld vload16(size_t offset, const __local uint *p);
11496
- long16 __ovld vload16(size_t offset, const __local long *p);
11497
- ulong16 __ovld vload16(size_t offset, const __local ulong *p);
11498
- float16 __ovld vload16(size_t offset, const __local float *p);
11499
- char2 __ovld vload2(size_t offset, const __private char *p);
11500
- uchar2 __ovld vload2(size_t offset, const __private uchar *p);
11501
- short2 __ovld vload2(size_t offset, const __private short *p);
11502
- ushort2 __ovld vload2(size_t offset, const __private ushort *p);
11503
- int2 __ovld vload2(size_t offset, const __private int *p);
11504
- uint2 __ovld vload2(size_t offset, const __private uint *p);
11505
- long2 __ovld vload2(size_t offset, const __private long *p);
11506
- ulong2 __ovld vload2(size_t offset, const __private ulong *p);
11507
- float2 __ovld vload2(size_t offset, const __private float *p);
11508
- char3 __ovld vload3(size_t offset, const __private char *p);
11509
- uchar3 __ovld vload3(size_t offset, const __private uchar *p);
11510
- short3 __ovld vload3(size_t offset, const __private short *p);
11511
- ushort3 __ovld vload3(size_t offset, const __private ushort *p);
11512
- int3 __ovld vload3(size_t offset, const __private int *p);
11513
- uint3 __ovld vload3(size_t offset, const __private uint *p);
11514
- long3 __ovld vload3(size_t offset, const __private long *p);
11515
- ulong3 __ovld vload3(size_t offset, const __private ulong *p);
11516
- float3 __ovld vload3(size_t offset, const __private float *p);
11517
- char4 __ovld vload4(size_t offset, const __private char *p);
11518
- uchar4 __ovld vload4(size_t offset, const __private uchar *p);
11519
- short4 __ovld vload4(size_t offset, const __private short *p);
11520
- ushort4 __ovld vload4(size_t offset, const __private ushort *p);
11521
- int4 __ovld vload4(size_t offset, const __private int *p);
11522
- uint4 __ovld vload4(size_t offset, const __private uint *p);
11523
- long4 __ovld vload4(size_t offset, const __private long *p);
11524
- ulong4 __ovld vload4(size_t offset, const __private ulong *p);
11525
- float4 __ovld vload4(size_t offset, const __private float *p);
11526
- char8 __ovld vload8(size_t offset, const __private char *p);
11527
- uchar8 __ovld vload8(size_t offset, const __private uchar *p);
11528
- short8 __ovld vload8(size_t offset, const __private short *p);
11529
- ushort8 __ovld vload8(size_t offset, const __private ushort *p);
11530
- int8 __ovld vload8(size_t offset, const __private int *p);
11531
- uint8 __ovld vload8(size_t offset, const __private uint *p);
11532
- long8 __ovld vload8(size_t offset, const __private long *p);
11533
- ulong8 __ovld vload8(size_t offset, const __private ulong *p);
11534
- float8 __ovld vload8(size_t offset, const __private float *p);
11535
- char16 __ovld vload16(size_t offset, const __private char *p);
11536
- uchar16 __ovld vload16(size_t offset, const __private uchar *p);
11537
- short16 __ovld vload16(size_t offset, const __private short *p);
11538
- ushort16 __ovld vload16(size_t offset, const __private ushort *p);
11539
- int16 __ovld vload16(size_t offset, const __private int *p);
11540
- uint16 __ovld vload16(size_t offset, const __private uint *p);
11541
- long16 __ovld vload16(size_t offset, const __private long *p);
11542
- ulong16 __ovld vload16(size_t offset, const __private ulong *p);
11543
- float16 __ovld vload16(size_t offset, const __private float *p);
11329
+ #endif //defined(__opencl_c_generic_address_space)
11330
+
11331
+ #if defined(__opencl_c_named_address_space_builtins)
11332
+ char2 __ovld __purefn vload2(size_t offset, const __global char *p);
11333
+ uchar2 __ovld __purefn vload2(size_t offset, const __global uchar *p);
11334
+ short2 __ovld __purefn vload2(size_t offset, const __global short *p);
11335
+ ushort2 __ovld __purefn vload2(size_t offset, const __global ushort *p);
11336
+ int2 __ovld __purefn vload2(size_t offset, const __global int *p);
11337
+ uint2 __ovld __purefn vload2(size_t offset, const __global uint *p);
11338
+ long2 __ovld __purefn vload2(size_t offset, const __global long *p);
11339
+ ulong2 __ovld __purefn vload2(size_t offset, const __global ulong *p);
11340
+ float2 __ovld __purefn vload2(size_t offset, const __global float *p);
11341
+ char3 __ovld __purefn vload3(size_t offset, const __global char *p);
11342
+ uchar3 __ovld __purefn vload3(size_t offset, const __global uchar *p);
11343
+ short3 __ovld __purefn vload3(size_t offset, const __global short *p);
11344
+ ushort3 __ovld __purefn vload3(size_t offset, const __global ushort *p);
11345
+ int3 __ovld __purefn vload3(size_t offset, const __global int *p);
11346
+ uint3 __ovld __purefn vload3(size_t offset, const __global uint *p);
11347
+ long3 __ovld __purefn vload3(size_t offset, const __global long *p);
11348
+ ulong3 __ovld __purefn vload3(size_t offset, const __global ulong *p);
11349
+ float3 __ovld __purefn vload3(size_t offset, const __global float *p);
11350
+ char4 __ovld __purefn vload4(size_t offset, const __global char *p);
11351
+ uchar4 __ovld __purefn vload4(size_t offset, const __global uchar *p);
11352
+ short4 __ovld __purefn vload4(size_t offset, const __global short *p);
11353
+ ushort4 __ovld __purefn vload4(size_t offset, const __global ushort *p);
11354
+ int4 __ovld __purefn vload4(size_t offset, const __global int *p);
11355
+ uint4 __ovld __purefn vload4(size_t offset, const __global uint *p);
11356
+ long4 __ovld __purefn vload4(size_t offset, const __global long *p);
11357
+ ulong4 __ovld __purefn vload4(size_t offset, const __global ulong *p);
11358
+ float4 __ovld __purefn vload4(size_t offset, const __global float *p);
11359
+ char8 __ovld __purefn vload8(size_t offset, const __global char *p);
11360
+ uchar8 __ovld __purefn vload8(size_t offset, const __global uchar *p);
11361
+ short8 __ovld __purefn vload8(size_t offset, const __global short *p);
11362
+ ushort8 __ovld __purefn vload8(size_t offset, const __global ushort *p);
11363
+ int8 __ovld __purefn vload8(size_t offset, const __global int *p);
11364
+ uint8 __ovld __purefn vload8(size_t offset, const __global uint *p);
11365
+ long8 __ovld __purefn vload8(size_t offset, const __global long *p);
11366
+ ulong8 __ovld __purefn vload8(size_t offset, const __global ulong *p);
11367
+ float8 __ovld __purefn vload8(size_t offset, const __global float *p);
11368
+ char16 __ovld __purefn vload16(size_t offset, const __global char *p);
11369
+ uchar16 __ovld __purefn vload16(size_t offset, const __global uchar *p);
11370
+ short16 __ovld __purefn vload16(size_t offset, const __global short *p);
11371
+ ushort16 __ovld __purefn vload16(size_t offset, const __global ushort *p);
11372
+ int16 __ovld __purefn vload16(size_t offset, const __global int *p);
11373
+ uint16 __ovld __purefn vload16(size_t offset, const __global uint *p);
11374
+ long16 __ovld __purefn vload16(size_t offset, const __global long *p);
11375
+ ulong16 __ovld __purefn vload16(size_t offset, const __global ulong *p);
11376
+ float16 __ovld __purefn vload16(size_t offset, const __global float *p);
11377
+ char2 __ovld __purefn vload2(size_t offset, const __local char *p);
11378
+ uchar2 __ovld __purefn vload2(size_t offset, const __local uchar *p);
11379
+ short2 __ovld __purefn vload2(size_t offset, const __local short *p);
11380
+ ushort2 __ovld __purefn vload2(size_t offset, const __local ushort *p);
11381
+ int2 __ovld __purefn vload2(size_t offset, const __local int *p);
11382
+ uint2 __ovld __purefn vload2(size_t offset, const __local uint *p);
11383
+ long2 __ovld __purefn vload2(size_t offset, const __local long *p);
11384
+ ulong2 __ovld __purefn vload2(size_t offset, const __local ulong *p);
11385
+ float2 __ovld __purefn vload2(size_t offset, const __local float *p);
11386
+ char3 __ovld __purefn vload3(size_t offset, const __local char *p);
11387
+ uchar3 __ovld __purefn vload3(size_t offset, const __local uchar *p);
11388
+ short3 __ovld __purefn vload3(size_t offset, const __local short *p);
11389
+ ushort3 __ovld __purefn vload3(size_t offset, const __local ushort *p);
11390
+ int3 __ovld __purefn vload3(size_t offset, const __local int *p);
11391
+ uint3 __ovld __purefn vload3(size_t offset, const __local uint *p);
11392
+ long3 __ovld __purefn vload3(size_t offset, const __local long *p);
11393
+ ulong3 __ovld __purefn vload3(size_t offset, const __local ulong *p);
11394
+ float3 __ovld __purefn vload3(size_t offset, const __local float *p);
11395
+ char4 __ovld __purefn vload4(size_t offset, const __local char *p);
11396
+ uchar4 __ovld __purefn vload4(size_t offset, const __local uchar *p);
11397
+ short4 __ovld __purefn vload4(size_t offset, const __local short *p);
11398
+ ushort4 __ovld __purefn vload4(size_t offset, const __local ushort *p);
11399
+ int4 __ovld __purefn vload4(size_t offset, const __local int *p);
11400
+ uint4 __ovld __purefn vload4(size_t offset, const __local uint *p);
11401
+ long4 __ovld __purefn vload4(size_t offset, const __local long *p);
11402
+ ulong4 __ovld __purefn vload4(size_t offset, const __local ulong *p);
11403
+ float4 __ovld __purefn vload4(size_t offset, const __local float *p);
11404
+ char8 __ovld __purefn vload8(size_t offset, const __local char *p);
11405
+ uchar8 __ovld __purefn vload8(size_t offset, const __local uchar *p);
11406
+ short8 __ovld __purefn vload8(size_t offset, const __local short *p);
11407
+ ushort8 __ovld __purefn vload8(size_t offset, const __local ushort *p);
11408
+ int8 __ovld __purefn vload8(size_t offset, const __local int *p);
11409
+ uint8 __ovld __purefn vload8(size_t offset, const __local uint *p);
11410
+ long8 __ovld __purefn vload8(size_t offset, const __local long *p);
11411
+ ulong8 __ovld __purefn vload8(size_t offset, const __local ulong *p);
11412
+ float8 __ovld __purefn vload8(size_t offset, const __local float *p);
11413
+ char16 __ovld __purefn vload16(size_t offset, const __local char *p);
11414
+ uchar16 __ovld __purefn vload16(size_t offset, const __local uchar *p);
11415
+ short16 __ovld __purefn vload16(size_t offset, const __local short *p);
11416
+ ushort16 __ovld __purefn vload16(size_t offset, const __local ushort *p);
11417
+ int16 __ovld __purefn vload16(size_t offset, const __local int *p);
11418
+ uint16 __ovld __purefn vload16(size_t offset, const __local uint *p);
11419
+ long16 __ovld __purefn vload16(size_t offset, const __local long *p);
11420
+ ulong16 __ovld __purefn vload16(size_t offset, const __local ulong *p);
11421
+ float16 __ovld __purefn vload16(size_t offset, const __local float *p);
11422
+ char2 __ovld __purefn vload2(size_t offset, const __private char *p);
11423
+ uchar2 __ovld __purefn vload2(size_t offset, const __private uchar *p);
11424
+ short2 __ovld __purefn vload2(size_t offset, const __private short *p);
11425
+ ushort2 __ovld __purefn vload2(size_t offset, const __private ushort *p);
11426
+ int2 __ovld __purefn vload2(size_t offset, const __private int *p);
11427
+ uint2 __ovld __purefn vload2(size_t offset, const __private uint *p);
11428
+ long2 __ovld __purefn vload2(size_t offset, const __private long *p);
11429
+ ulong2 __ovld __purefn vload2(size_t offset, const __private ulong *p);
11430
+ float2 __ovld __purefn vload2(size_t offset, const __private float *p);
11431
+ char3 __ovld __purefn vload3(size_t offset, const __private char *p);
11432
+ uchar3 __ovld __purefn vload3(size_t offset, const __private uchar *p);
11433
+ short3 __ovld __purefn vload3(size_t offset, const __private short *p);
11434
+ ushort3 __ovld __purefn vload3(size_t offset, const __private ushort *p);
11435
+ int3 __ovld __purefn vload3(size_t offset, const __private int *p);
11436
+ uint3 __ovld __purefn vload3(size_t offset, const __private uint *p);
11437
+ long3 __ovld __purefn vload3(size_t offset, const __private long *p);
11438
+ ulong3 __ovld __purefn vload3(size_t offset, const __private ulong *p);
11439
+ float3 __ovld __purefn vload3(size_t offset, const __private float *p);
11440
+ char4 __ovld __purefn vload4(size_t offset, const __private char *p);
11441
+ uchar4 __ovld __purefn vload4(size_t offset, const __private uchar *p);
11442
+ short4 __ovld __purefn vload4(size_t offset, const __private short *p);
11443
+ ushort4 __ovld __purefn vload4(size_t offset, const __private ushort *p);
11444
+ int4 __ovld __purefn vload4(size_t offset, const __private int *p);
11445
+ uint4 __ovld __purefn vload4(size_t offset, const __private uint *p);
11446
+ long4 __ovld __purefn vload4(size_t offset, const __private long *p);
11447
+ ulong4 __ovld __purefn vload4(size_t offset, const __private ulong *p);
11448
+ float4 __ovld __purefn vload4(size_t offset, const __private float *p);
11449
+ char8 __ovld __purefn vload8(size_t offset, const __private char *p);
11450
+ uchar8 __ovld __purefn vload8(size_t offset, const __private uchar *p);
11451
+ short8 __ovld __purefn vload8(size_t offset, const __private short *p);
11452
+ ushort8 __ovld __purefn vload8(size_t offset, const __private ushort *p);
11453
+ int8 __ovld __purefn vload8(size_t offset, const __private int *p);
11454
+ uint8 __ovld __purefn vload8(size_t offset, const __private uint *p);
11455
+ long8 __ovld __purefn vload8(size_t offset, const __private long *p);
11456
+ ulong8 __ovld __purefn vload8(size_t offset, const __private ulong *p);
11457
+ float8 __ovld __purefn vload8(size_t offset, const __private float *p);
11458
+ char16 __ovld __purefn vload16(size_t offset, const __private char *p);
11459
+ uchar16 __ovld __purefn vload16(size_t offset, const __private uchar *p);
11460
+ short16 __ovld __purefn vload16(size_t offset, const __private short *p);
11461
+ ushort16 __ovld __purefn vload16(size_t offset, const __private ushort *p);
11462
+ int16 __ovld __purefn vload16(size_t offset, const __private int *p);
11463
+ uint16 __ovld __purefn vload16(size_t offset, const __private uint *p);
11464
+ long16 __ovld __purefn vload16(size_t offset, const __private long *p);
11465
+ ulong16 __ovld __purefn vload16(size_t offset, const __private ulong *p);
11466
+ float16 __ovld __purefn vload16(size_t offset, const __private float *p);
11544
11467
 
11545
11468
  #ifdef cl_khr_fp64
11546
- double2 __ovld vload2(size_t offset, const __global double *p);
11547
- double3 __ovld vload3(size_t offset, const __global double *p);
11548
- double4 __ovld vload4(size_t offset, const __global double *p);
11549
- double8 __ovld vload8(size_t offset, const __global double *p);
11550
- double16 __ovld vload16(size_t offset, const __global double *p);
11551
- double2 __ovld vload2(size_t offset, const __local double *p);
11552
- double3 __ovld vload3(size_t offset, const __local double *p);
11553
- double4 __ovld vload4(size_t offset, const __local double *p);
11554
- double8 __ovld vload8(size_t offset, const __local double *p);
11555
- double16 __ovld vload16(size_t offset, const __local double *p);
11556
- double2 __ovld vload2(size_t offset, const __private double *p);
11557
- double3 __ovld vload3(size_t offset, const __private double *p);
11558
- double4 __ovld vload4(size_t offset, const __private double *p);
11559
- double8 __ovld vload8(size_t offset, const __private double *p);
11560
- double16 __ovld vload16(size_t offset, const __private double *p);
11469
+ double2 __ovld __purefn vload2(size_t offset, const __global double *p);
11470
+ double3 __ovld __purefn vload3(size_t offset, const __global double *p);
11471
+ double4 __ovld __purefn vload4(size_t offset, const __global double *p);
11472
+ double8 __ovld __purefn vload8(size_t offset, const __global double *p);
11473
+ double16 __ovld __purefn vload16(size_t offset, const __global double *p);
11474
+ double2 __ovld __purefn vload2(size_t offset, const __local double *p);
11475
+ double3 __ovld __purefn vload3(size_t offset, const __local double *p);
11476
+ double4 __ovld __purefn vload4(size_t offset, const __local double *p);
11477
+ double8 __ovld __purefn vload8(size_t offset, const __local double *p);
11478
+ double16 __ovld __purefn vload16(size_t offset, const __local double *p);
11479
+ double2 __ovld __purefn vload2(size_t offset, const __private double *p);
11480
+ double3 __ovld __purefn vload3(size_t offset, const __private double *p);
11481
+ double4 __ovld __purefn vload4(size_t offset, const __private double *p);
11482
+ double8 __ovld __purefn vload8(size_t offset, const __private double *p);
11483
+ double16 __ovld __purefn vload16(size_t offset, const __private double *p);
11561
11484
  #endif //cl_khr_fp64
11562
11485
 
11563
11486
  #ifdef cl_khr_fp16
11564
- half __ovld vload(size_t offset, const __global half *p);
11565
- half2 __ovld vload2(size_t offset, const __global half *p);
11566
- half3 __ovld vload3(size_t offset, const __global half *p);
11567
- half4 __ovld vload4(size_t offset, const __global half *p);
11568
- half8 __ovld vload8(size_t offset, const __global half *p);
11569
- half16 __ovld vload16(size_t offset, const __global half *p);
11570
- half __ovld vload(size_t offset, const __local half *p);
11571
- half2 __ovld vload2(size_t offset, const __local half *p);
11572
- half3 __ovld vload3(size_t offset, const __local half *p);
11573
- half4 __ovld vload4(size_t offset, const __local half *p);
11574
- half8 __ovld vload8(size_t offset, const __local half *p);
11575
- half16 __ovld vload16(size_t offset, const __local half *p);
11576
- half __ovld vload(size_t offset, const __private half *p);
11577
- half2 __ovld vload2(size_t offset, const __private half *p);
11578
- half3 __ovld vload3(size_t offset, const __private half *p);
11579
- half4 __ovld vload4(size_t offset, const __private half *p);
11580
- half8 __ovld vload8(size_t offset, const __private half *p);
11581
- half16 __ovld vload16(size_t offset, const __private half *p);
11487
+ half __ovld __purefn vload(size_t offset, const __global half *p);
11488
+ half2 __ovld __purefn vload2(size_t offset, const __global half *p);
11489
+ half3 __ovld __purefn vload3(size_t offset, const __global half *p);
11490
+ half4 __ovld __purefn vload4(size_t offset, const __global half *p);
11491
+ half8 __ovld __purefn vload8(size_t offset, const __global half *p);
11492
+ half16 __ovld __purefn vload16(size_t offset, const __global half *p);
11493
+ half __ovld __purefn vload(size_t offset, const __local half *p);
11494
+ half2 __ovld __purefn vload2(size_t offset, const __local half *p);
11495
+ half3 __ovld __purefn vload3(size_t offset, const __local half *p);
11496
+ half4 __ovld __purefn vload4(size_t offset, const __local half *p);
11497
+ half8 __ovld __purefn vload8(size_t offset, const __local half *p);
11498
+ half16 __ovld __purefn vload16(size_t offset, const __local half *p);
11499
+ half __ovld __purefn vload(size_t offset, const __private half *p);
11500
+ half2 __ovld __purefn vload2(size_t offset, const __private half *p);
11501
+ half3 __ovld __purefn vload3(size_t offset, const __private half *p);
11502
+ half4 __ovld __purefn vload4(size_t offset, const __private half *p);
11503
+ half8 __ovld __purefn vload8(size_t offset, const __private half *p);
11504
+ half16 __ovld __purefn vload16(size_t offset, const __private half *p);
11582
11505
  #endif //cl_khr_fp16
11583
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
11506
+ #endif //defined(__opencl_c_named_address_space_builtins)
11584
11507
 
11585
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
11508
+ #if defined(__opencl_c_generic_address_space)
11586
11509
  void __ovld vstore2(char2 data, size_t offset, char *p);
11587
11510
  void __ovld vstore2(uchar2 data, size_t offset, uchar *p);
11588
11511
  void __ovld vstore2(short2 data, size_t offset, short *p);
@@ -11643,7 +11566,9 @@ void __ovld vstore4(half4 data, size_t offset, half *p);
11643
11566
  void __ovld vstore8(half8 data, size_t offset, half *p);
11644
11567
  void __ovld vstore16(half16 data, size_t offset, half *p);
11645
11568
  #endif //cl_khr_fp16
11646
- #else
11569
+ #endif //defined(__opencl_c_generic_address_space)
11570
+
11571
+ #if defined(__opencl_c_named_address_space_builtins)
11647
11572
  void __ovld vstore2(char2 data, size_t offset, __global char *p);
11648
11573
  void __ovld vstore2(uchar2 data, size_t offset, __global uchar *p);
11649
11574
  void __ovld vstore2(short2 data, size_t offset, __global short *p);
@@ -11816,7 +11741,7 @@ void __ovld vstore4(half4 data, size_t offset, __private half *p);
11816
11741
  void __ovld vstore8(half8 data, size_t offset, __private half *p);
11817
11742
  void __ovld vstore16(half16 data, size_t offset, __private half *p);
11818
11743
  #endif //cl_khr_fp16
11819
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
11744
+ #endif //defined(__opencl_c_named_address_space_builtins)
11820
11745
 
11821
11746
  /**
11822
11747
  * Read sizeof (half) bytes of data from address
@@ -11826,14 +11751,16 @@ void __ovld vstore16(half16 data, size_t offset, __private half *p);
11826
11751
  * The read address computed as (p + offset)
11827
11752
  * must be 16-bit aligned.
11828
11753
  */
11829
- float __ovld vload_half(size_t offset, const __constant half *p);
11830
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
11831
- float __ovld vload_half(size_t offset, const half *p);
11832
- #else
11833
- float __ovld vload_half(size_t offset, const __global half *p);
11834
- float __ovld vload_half(size_t offset, const __local half *p);
11835
- float __ovld vload_half(size_t offset, const __private half *p);
11836
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
11754
+ float __ovld __purefn vload_half(size_t offset, const __constant half *p);
11755
+ #if defined(__opencl_c_generic_address_space)
11756
+ float __ovld __purefn vload_half(size_t offset, const half *p);
11757
+ #endif //defined(__opencl_c_generic_address_space)
11758
+
11759
+ #if defined(__opencl_c_named_address_space_builtins)
11760
+ float __ovld __purefn vload_half(size_t offset, const __global half *p);
11761
+ float __ovld __purefn vload_half(size_t offset, const __local half *p);
11762
+ float __ovld __purefn vload_half(size_t offset, const __private half *p);
11763
+ #endif //defined(__opencl_c_named_address_space_builtins)
11837
11764
 
11838
11765
  /**
11839
11766
  * Read sizeof (halfn) bytes of data from address
@@ -11843,34 +11770,36 @@ float __ovld vload_half(size_t offset, const __private half *p);
11843
11770
  * value is returned. The read address computed
11844
11771
  * as (p + (offset * n)) must be 16-bit aligned.
11845
11772
  */
11846
- float2 __ovld vload_half2(size_t offset, const __constant half *p);
11847
- float3 __ovld vload_half3(size_t offset, const __constant half *p);
11848
- float4 __ovld vload_half4(size_t offset, const __constant half *p);
11849
- float8 __ovld vload_half8(size_t offset, const __constant half *p);
11850
- float16 __ovld vload_half16(size_t offset, const __constant half *p);
11851
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
11852
- float2 __ovld vload_half2(size_t offset, const half *p);
11853
- float3 __ovld vload_half3(size_t offset, const half *p);
11854
- float4 __ovld vload_half4(size_t offset, const half *p);
11855
- float8 __ovld vload_half8(size_t offset, const half *p);
11856
- float16 __ovld vload_half16(size_t offset, const half *p);
11857
- #else
11858
- float2 __ovld vload_half2(size_t offset, const __global half *p);
11859
- float3 __ovld vload_half3(size_t offset, const __global half *p);
11860
- float4 __ovld vload_half4(size_t offset, const __global half *p);
11861
- float8 __ovld vload_half8(size_t offset, const __global half *p);
11862
- float16 __ovld vload_half16(size_t offset, const __global half *p);
11863
- float2 __ovld vload_half2(size_t offset, const __local half *p);
11864
- float3 __ovld vload_half3(size_t offset, const __local half *p);
11865
- float4 __ovld vload_half4(size_t offset, const __local half *p);
11866
- float8 __ovld vload_half8(size_t offset, const __local half *p);
11867
- float16 __ovld vload_half16(size_t offset, const __local half *p);
11868
- float2 __ovld vload_half2(size_t offset, const __private half *p);
11869
- float3 __ovld vload_half3(size_t offset, const __private half *p);
11870
- float4 __ovld vload_half4(size_t offset, const __private half *p);
11871
- float8 __ovld vload_half8(size_t offset, const __private half *p);
11872
- float16 __ovld vload_half16(size_t offset, const __private half *p);
11873
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
11773
+ float2 __ovld __purefn vload_half2(size_t offset, const __constant half *p);
11774
+ float3 __ovld __purefn vload_half3(size_t offset, const __constant half *p);
11775
+ float4 __ovld __purefn vload_half4(size_t offset, const __constant half *p);
11776
+ float8 __ovld __purefn vload_half8(size_t offset, const __constant half *p);
11777
+ float16 __ovld __purefn vload_half16(size_t offset, const __constant half *p);
11778
+ #if defined(__opencl_c_generic_address_space)
11779
+ float2 __ovld __purefn vload_half2(size_t offset, const half *p);
11780
+ float3 __ovld __purefn vload_half3(size_t offset, const half *p);
11781
+ float4 __ovld __purefn vload_half4(size_t offset, const half *p);
11782
+ float8 __ovld __purefn vload_half8(size_t offset, const half *p);
11783
+ float16 __ovld __purefn vload_half16(size_t offset, const half *p);
11784
+ #endif //defined(__opencl_c_generic_address_space)
11785
+
11786
+ #if defined(__opencl_c_named_address_space_builtins)
11787
+ float2 __ovld __purefn vload_half2(size_t offset, const __global half *p);
11788
+ float3 __ovld __purefn vload_half3(size_t offset, const __global half *p);
11789
+ float4 __ovld __purefn vload_half4(size_t offset, const __global half *p);
11790
+ float8 __ovld __purefn vload_half8(size_t offset, const __global half *p);
11791
+ float16 __ovld __purefn vload_half16(size_t offset, const __global half *p);
11792
+ float2 __ovld __purefn vload_half2(size_t offset, const __local half *p);
11793
+ float3 __ovld __purefn vload_half3(size_t offset, const __local half *p);
11794
+ float4 __ovld __purefn vload_half4(size_t offset, const __local half *p);
11795
+ float8 __ovld __purefn vload_half8(size_t offset, const __local half *p);
11796
+ float16 __ovld __purefn vload_half16(size_t offset, const __local half *p);
11797
+ float2 __ovld __purefn vload_half2(size_t offset, const __private half *p);
11798
+ float3 __ovld __purefn vload_half3(size_t offset, const __private half *p);
11799
+ float4 __ovld __purefn vload_half4(size_t offset, const __private half *p);
11800
+ float8 __ovld __purefn vload_half8(size_t offset, const __private half *p);
11801
+ float16 __ovld __purefn vload_half16(size_t offset, const __private half *p);
11802
+ #endif //defined(__opencl_c_named_address_space_builtins)
11874
11803
 
11875
11804
  /**
11876
11805
  * The float value given by data is first
@@ -11883,7 +11812,7 @@ float16 __ovld vload_half16(size_t offset, const __private half *p);
11883
11812
  * The default current rounding mode is round to
11884
11813
  * nearest even.
11885
11814
  */
11886
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
11815
+ #if defined(__opencl_c_generic_address_space)
11887
11816
  void __ovld vstore_half(float data, size_t offset, half *p);
11888
11817
  void __ovld vstore_half_rte(float data, size_t offset, half *p);
11889
11818
  void __ovld vstore_half_rtz(float data, size_t offset, half *p);
@@ -11896,7 +11825,9 @@ void __ovld vstore_half_rtz(double data, size_t offset, half *p);
11896
11825
  void __ovld vstore_half_rtp(double data, size_t offset, half *p);
11897
11826
  void __ovld vstore_half_rtn(double data, size_t offset, half *p);
11898
11827
  #endif //cl_khr_fp64
11899
- #else
11828
+ #endif //defined(__opencl_c_generic_address_space)
11829
+
11830
+ #if defined(__opencl_c_named_address_space_builtins)
11900
11831
  void __ovld vstore_half(float data, size_t offset, __global half *p);
11901
11832
  void __ovld vstore_half_rte(float data, size_t offset, __global half *p);
11902
11833
  void __ovld vstore_half_rtz(float data, size_t offset, __global half *p);
@@ -11929,7 +11860,7 @@ void __ovld vstore_half_rtz(double data, size_t offset, __private half *p);
11929
11860
  void __ovld vstore_half_rtp(double data, size_t offset, __private half *p);
11930
11861
  void __ovld vstore_half_rtn(double data, size_t offset, __private half *p);
11931
11862
  #endif //cl_khr_fp64
11932
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
11863
+ #endif //defined(__opencl_c_named_address_space_builtins)
11933
11864
 
11934
11865
  /**
11935
11866
  * The floatn value given by data is converted to
@@ -11942,7 +11873,7 @@ void __ovld vstore_half_rtn(double data, size_t offset, __private half *p);
11942
11873
  * The default current rounding mode is round to
11943
11874
  * nearest even.
11944
11875
  */
11945
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
11876
+ #if defined(__opencl_c_generic_address_space)
11946
11877
  void __ovld vstore_half2(float2 data, size_t offset, half *p);
11947
11878
  void __ovld vstore_half3(float3 data, size_t offset, half *p);
11948
11879
  void __ovld vstore_half4(float4 data, size_t offset, half *p);
@@ -11995,7 +11926,9 @@ void __ovld vstore_half4_rtn(double4 data, size_t offset, half *p);
11995
11926
  void __ovld vstore_half8_rtn(double8 data, size_t offset, half *p);
11996
11927
  void __ovld vstore_half16_rtn(double16 data, size_t offset, half *p);
11997
11928
  #endif //cl_khr_fp64
11998
- #else
11929
+ #endif //defined(__opencl_c_generic_address_space)
11930
+
11931
+ #if defined(__opencl_c_named_address_space_builtins)
11999
11932
  void __ovld vstore_half2(float2 data, size_t offset, __global half *p);
12000
11933
  void __ovld vstore_half3(float3 data, size_t offset, __global half *p);
12001
11934
  void __ovld vstore_half4(float4 data, size_t offset, __global half *p);
@@ -12148,7 +12081,7 @@ void __ovld vstore_half4_rtn(double4 data, size_t offset, __private half *p);
12148
12081
  void __ovld vstore_half8_rtn(double8 data, size_t offset, __private half *p);
12149
12082
  void __ovld vstore_half16_rtn(double16 data, size_t offset, __private half *p);
12150
12083
  #endif //cl_khr_fp64
12151
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
12084
+ #endif //defined(__opencl_c_named_address_space_builtins)
12152
12085
 
12153
12086
  /**
12154
12087
  * For n = 1, 2, 4, 8 and 16 read sizeof (halfn)
@@ -12163,39 +12096,36 @@ void __ovld vstore_half16_rtn(double16 data, size_t offset, __private half *p);
12163
12096
  * The address computed as (p + (offset * 4))
12164
12097
  * must be aligned to sizeof (half) * 4 bytes.
12165
12098
  */
12166
- float __ovld vloada_half(size_t offset, const __constant half *p);
12167
- float2 __ovld vloada_half2(size_t offset, const __constant half *p);
12168
- float3 __ovld vloada_half3(size_t offset, const __constant half *p);
12169
- float4 __ovld vloada_half4(size_t offset, const __constant half *p);
12170
- float8 __ovld vloada_half8(size_t offset, const __constant half *p);
12171
- float16 __ovld vloada_half16(size_t offset, const __constant half *p);
12172
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
12173
- float __ovld vloada_half(size_t offset, const half *p);
12174
- float2 __ovld vloada_half2(size_t offset, const half *p);
12175
- float3 __ovld vloada_half3(size_t offset, const half *p);
12176
- float4 __ovld vloada_half4(size_t offset, const half *p);
12177
- float8 __ovld vloada_half8(size_t offset, const half *p);
12178
- float16 __ovld vloada_half16(size_t offset, const half *p);
12179
- #else
12180
- float __ovld vloada_half(size_t offset, const __global half *p);
12181
- float2 __ovld vloada_half2(size_t offset, const __global half *p);
12182
- float3 __ovld vloada_half3(size_t offset, const __global half *p);
12183
- float4 __ovld vloada_half4(size_t offset, const __global half *p);
12184
- float8 __ovld vloada_half8(size_t offset, const __global half *p);
12185
- float16 __ovld vloada_half16(size_t offset, const __global half *p);
12186
- float __ovld vloada_half(size_t offset, const __local half *p);
12187
- float2 __ovld vloada_half2(size_t offset, const __local half *p);
12188
- float3 __ovld vloada_half3(size_t offset, const __local half *p);
12189
- float4 __ovld vloada_half4(size_t offset, const __local half *p);
12190
- float8 __ovld vloada_half8(size_t offset, const __local half *p);
12191
- float16 __ovld vloada_half16(size_t offset, const __local half *p);
12192
- float __ovld vloada_half(size_t offset, const __private half *p);
12193
- float2 __ovld vloada_half2(size_t offset, const __private half *p);
12194
- float3 __ovld vloada_half3(size_t offset, const __private half *p);
12195
- float4 __ovld vloada_half4(size_t offset, const __private half *p);
12196
- float8 __ovld vloada_half8(size_t offset, const __private half *p);
12197
- float16 __ovld vloada_half16(size_t offset, const __private half *p);
12198
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
12099
+ float2 __ovld __purefn vloada_half2(size_t offset, const __constant half *p);
12100
+ float3 __ovld __purefn vloada_half3(size_t offset, const __constant half *p);
12101
+ float4 __ovld __purefn vloada_half4(size_t offset, const __constant half *p);
12102
+ float8 __ovld __purefn vloada_half8(size_t offset, const __constant half *p);
12103
+ float16 __ovld __purefn vloada_half16(size_t offset, const __constant half *p);
12104
+ #if defined(__opencl_c_generic_address_space)
12105
+ float2 __ovld __purefn vloada_half2(size_t offset, const half *p);
12106
+ float3 __ovld __purefn vloada_half3(size_t offset, const half *p);
12107
+ float4 __ovld __purefn vloada_half4(size_t offset, const half *p);
12108
+ float8 __ovld __purefn vloada_half8(size_t offset, const half *p);
12109
+ float16 __ovld __purefn vloada_half16(size_t offset, const half *p);
12110
+ #endif //defined(__opencl_c_generic_address_space)
12111
+
12112
+ #if defined(__opencl_c_named_address_space_builtins)
12113
+ float2 __ovld __purefn vloada_half2(size_t offset, const __global half *p);
12114
+ float3 __ovld __purefn vloada_half3(size_t offset, const __global half *p);
12115
+ float4 __ovld __purefn vloada_half4(size_t offset, const __global half *p);
12116
+ float8 __ovld __purefn vloada_half8(size_t offset, const __global half *p);
12117
+ float16 __ovld __purefn vloada_half16(size_t offset, const __global half *p);
12118
+ float2 __ovld __purefn vloada_half2(size_t offset, const __local half *p);
12119
+ float3 __ovld __purefn vloada_half3(size_t offset, const __local half *p);
12120
+ float4 __ovld __purefn vloada_half4(size_t offset, const __local half *p);
12121
+ float8 __ovld __purefn vloada_half8(size_t offset, const __local half *p);
12122
+ float16 __ovld __purefn vloada_half16(size_t offset, const __local half *p);
12123
+ float2 __ovld __purefn vloada_half2(size_t offset, const __private half *p);
12124
+ float3 __ovld __purefn vloada_half3(size_t offset, const __private half *p);
12125
+ float4 __ovld __purefn vloada_half4(size_t offset, const __private half *p);
12126
+ float8 __ovld __purefn vloada_half8(size_t offset, const __private half *p);
12127
+ float16 __ovld __purefn vloada_half16(size_t offset, const __private half *p);
12128
+ #endif //defined(__opencl_c_named_address_space_builtins)
12199
12129
 
12200
12130
  /**
12201
12131
  * The floatn value given by data is converted to
@@ -12213,36 +12143,31 @@ float16 __ovld vloada_half16(size_t offset, const __private half *p);
12213
12143
  * mode. The default current rounding mode is
12214
12144
  * round to nearest even.
12215
12145
  */
12216
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
12217
- void __ovld vstorea_half(float data, size_t offset, half *p);
12146
+ #if defined(__opencl_c_generic_address_space)
12218
12147
  void __ovld vstorea_half2(float2 data, size_t offset, half *p);
12219
12148
  void __ovld vstorea_half3(float3 data, size_t offset, half *p);
12220
12149
  void __ovld vstorea_half4(float4 data, size_t offset, half *p);
12221
12150
  void __ovld vstorea_half8(float8 data, size_t offset, half *p);
12222
12151
  void __ovld vstorea_half16(float16 data, size_t offset, half *p);
12223
12152
 
12224
- void __ovld vstorea_half_rte(float data, size_t offset, half *p);
12225
12153
  void __ovld vstorea_half2_rte(float2 data, size_t offset, half *p);
12226
12154
  void __ovld vstorea_half3_rte(float3 data, size_t offset, half *p);
12227
12155
  void __ovld vstorea_half4_rte(float4 data, size_t offset, half *p);
12228
12156
  void __ovld vstorea_half8_rte(float8 data, size_t offset, half *p);
12229
12157
  void __ovld vstorea_half16_rte(float16 data, size_t offset, half *p);
12230
12158
 
12231
- void __ovld vstorea_half_rtz(float data, size_t offset, half *p);
12232
12159
  void __ovld vstorea_half2_rtz(float2 data, size_t offset, half *p);
12233
12160
  void __ovld vstorea_half3_rtz(float3 data, size_t offset, half *p);
12234
12161
  void __ovld vstorea_half4_rtz(float4 data, size_t offset, half *p);
12235
12162
  void __ovld vstorea_half8_rtz(float8 data, size_t offset, half *p);
12236
12163
  void __ovld vstorea_half16_rtz(float16 data, size_t offset, half *p);
12237
12164
 
12238
- void __ovld vstorea_half_rtp(float data, size_t offset, half *p);
12239
12165
  void __ovld vstorea_half2_rtp(float2 data, size_t offset, half *p);
12240
12166
  void __ovld vstorea_half3_rtp(float3 data, size_t offset, half *p);
12241
12167
  void __ovld vstorea_half4_rtp(float4 data, size_t offset, half *p);
12242
12168
  void __ovld vstorea_half8_rtp(float8 data, size_t offset, half *p);
12243
12169
  void __ovld vstorea_half16_rtp(float16 data, size_t offset, half *p);
12244
12170
 
12245
- void __ovld vstorea_half_rtn(float data, size_t offset, half *p);
12246
12171
  void __ovld vstorea_half2_rtn(float2 data, size_t offset, half *p);
12247
12172
  void __ovld vstorea_half3_rtn(float3 data, size_t offset, half *p);
12248
12173
  void __ovld vstorea_half4_rtn(float4 data, size_t offset, half *p);
@@ -12250,142 +12175,123 @@ void __ovld vstorea_half8_rtn(float8 data, size_t offset, half *p);
12250
12175
  void __ovld vstorea_half16_rtn(float16 data, size_t offset, half *p);
12251
12176
 
12252
12177
  #ifdef cl_khr_fp64
12253
- void __ovld vstorea_half(double data, size_t offset, half *p);
12254
12178
  void __ovld vstorea_half2(double2 data, size_t offset, half *p);
12255
12179
  void __ovld vstorea_half3(double3 data, size_t offset, half *p);
12256
12180
  void __ovld vstorea_half4(double4 data, size_t offset, half *p);
12257
12181
  void __ovld vstorea_half8(double8 data, size_t offset, half *p);
12258
12182
  void __ovld vstorea_half16(double16 data, size_t offset, half *p);
12259
12183
 
12260
- void __ovld vstorea_half_rte(double data, size_t offset, half *p);
12261
12184
  void __ovld vstorea_half2_rte(double2 data, size_t offset, half *p);
12262
12185
  void __ovld vstorea_half3_rte(double3 data, size_t offset, half *p);
12263
12186
  void __ovld vstorea_half4_rte(double4 data, size_t offset, half *p);
12264
12187
  void __ovld vstorea_half8_rte(double8 data, size_t offset, half *p);
12265
12188
  void __ovld vstorea_half16_rte(double16 data, size_t offset, half *p);
12266
12189
 
12267
- void __ovld vstorea_half_rtz(double data, size_t offset, half *p);
12268
12190
  void __ovld vstorea_half2_rtz(double2 data, size_t offset, half *p);
12269
12191
  void __ovld vstorea_half3_rtz(double3 data, size_t offset, half *p);
12270
12192
  void __ovld vstorea_half4_rtz(double4 data, size_t offset, half *p);
12271
12193
  void __ovld vstorea_half8_rtz(double8 data, size_t offset, half *p);
12272
12194
  void __ovld vstorea_half16_rtz(double16 data, size_t offset, half *p);
12273
12195
 
12274
- void __ovld vstorea_half_rtp(double data, size_t offset, half *p);
12275
12196
  void __ovld vstorea_half2_rtp(double2 data, size_t offset, half *p);
12276
12197
  void __ovld vstorea_half3_rtp(double3 data, size_t offset, half *p);
12277
12198
  void __ovld vstorea_half4_rtp(double4 data, size_t offset, half *p);
12278
12199
  void __ovld vstorea_half8_rtp(double8 data, size_t offset, half *p);
12279
12200
  void __ovld vstorea_half16_rtp(double16 data, size_t offset, half *p);
12280
12201
 
12281
- void __ovld vstorea_half_rtn(double data, size_t offset, half *p);
12282
12202
  void __ovld vstorea_half2_rtn(double2 data, size_t offset, half *p);
12283
12203
  void __ovld vstorea_half3_rtn(double3 data, size_t offset, half *p);
12284
12204
  void __ovld vstorea_half4_rtn(double4 data, size_t offset, half *p);
12285
12205
  void __ovld vstorea_half8_rtn(double8 data, size_t offset, half *p);
12286
12206
  void __ovld vstorea_half16_rtn(double16 data, size_t offset, half *p);
12287
12207
  #endif //cl_khr_fp64
12208
+ #endif //defined(__opencl_c_generic_address_space)
12288
12209
 
12289
- #else
12290
- void __ovld vstorea_half(float data, size_t offset, __global half *p);
12210
+ #if defined(__opencl_c_named_address_space_builtins)
12291
12211
  void __ovld vstorea_half2(float2 data, size_t offset, __global half *p);
12292
12212
  void __ovld vstorea_half3(float3 data, size_t offset, __global half *p);
12293
12213
  void __ovld vstorea_half4(float4 data, size_t offset, __global half *p);
12294
12214
  void __ovld vstorea_half8(float8 data, size_t offset, __global half *p);
12295
12215
  void __ovld vstorea_half16(float16 data, size_t offset, __global half *p);
12296
12216
 
12297
- void __ovld vstorea_half_rte(float data, size_t offset, __global half *p);
12298
12217
  void __ovld vstorea_half2_rte(float2 data, size_t offset, __global half *p);
12299
12218
  void __ovld vstorea_half3_rte(float3 data, size_t offset, __global half *p);
12300
12219
  void __ovld vstorea_half4_rte(float4 data, size_t offset, __global half *p);
12301
12220
  void __ovld vstorea_half8_rte(float8 data, size_t offset, __global half *p);
12302
12221
  void __ovld vstorea_half16_rte(float16 data, size_t offset, __global half *p);
12303
12222
 
12304
- void __ovld vstorea_half_rtz(float data, size_t offset, __global half *p);
12305
12223
  void __ovld vstorea_half2_rtz(float2 data, size_t offset, __global half *p);
12306
12224
  void __ovld vstorea_half3_rtz(float3 data, size_t offset, __global half *p);
12307
12225
  void __ovld vstorea_half4_rtz(float4 data, size_t offset, __global half *p);
12308
12226
  void __ovld vstorea_half8_rtz(float8 data, size_t offset, __global half *p);
12309
12227
  void __ovld vstorea_half16_rtz(float16 data, size_t offset, __global half *p);
12310
12228
 
12311
- void __ovld vstorea_half_rtp(float data, size_t offset, __global half *p);
12312
12229
  void __ovld vstorea_half2_rtp(float2 data, size_t offset, __global half *p);
12313
12230
  void __ovld vstorea_half3_rtp(float3 data, size_t offset, __global half *p);
12314
12231
  void __ovld vstorea_half4_rtp(float4 data, size_t offset, __global half *p);
12315
12232
  void __ovld vstorea_half8_rtp(float8 data, size_t offset, __global half *p);
12316
12233
  void __ovld vstorea_half16_rtp(float16 data, size_t offset, __global half *p);
12317
12234
 
12318
- void __ovld vstorea_half_rtn(float data, size_t offset, __global half *p);
12319
12235
  void __ovld vstorea_half2_rtn(float2 data, size_t offset, __global half *p);
12320
12236
  void __ovld vstorea_half3_rtn(float3 data, size_t offset, __global half *p);
12321
12237
  void __ovld vstorea_half4_rtn(float4 data, size_t offset, __global half *p);
12322
12238
  void __ovld vstorea_half8_rtn(float8 data, size_t offset, __global half *p);
12323
12239
  void __ovld vstorea_half16_rtn(float16 data, size_t offset, __global half *p);
12324
12240
 
12325
- void __ovld vstorea_half(float data, size_t offset, __local half *p);
12326
12241
  void __ovld vstorea_half2(float2 data, size_t offset, __local half *p);
12327
12242
  void __ovld vstorea_half3(float3 data, size_t offset, __local half *p);
12328
12243
  void __ovld vstorea_half4(float4 data, size_t offset, __local half *p);
12329
12244
  void __ovld vstorea_half8(float8 data, size_t offset, __local half *p);
12330
12245
  void __ovld vstorea_half16(float16 data, size_t offset, __local half *p);
12331
12246
 
12332
- void __ovld vstorea_half_rte(float data, size_t offset, __local half *p);
12333
12247
  void __ovld vstorea_half2_rte(float2 data, size_t offset, __local half *p);
12334
12248
  void __ovld vstorea_half3_rte(float3 data, size_t offset, __local half *p);
12335
12249
  void __ovld vstorea_half4_rte(float4 data, size_t offset, __local half *p);
12336
12250
  void __ovld vstorea_half8_rte(float8 data, size_t offset, __local half *p);
12337
12251
  void __ovld vstorea_half16_rte(float16 data, size_t offset, __local half *p);
12338
12252
 
12339
- void __ovld vstorea_half_rtz(float data, size_t offset, __local half *p);
12340
12253
  void __ovld vstorea_half2_rtz(float2 data, size_t offset, __local half *p);
12341
12254
  void __ovld vstorea_half3_rtz(float3 data, size_t offset, __local half *p);
12342
12255
  void __ovld vstorea_half4_rtz(float4 data, size_t offset, __local half *p);
12343
12256
  void __ovld vstorea_half8_rtz(float8 data, size_t offset, __local half *p);
12344
12257
  void __ovld vstorea_half16_rtz(float16 data, size_t offset, __local half *p);
12345
12258
 
12346
- void __ovld vstorea_half_rtp(float data, size_t offset, __local half *p);
12347
12259
  void __ovld vstorea_half2_rtp(float2 data, size_t offset, __local half *p);
12348
12260
  void __ovld vstorea_half3_rtp(float3 data, size_t offset, __local half *p);
12349
12261
  void __ovld vstorea_half4_rtp(float4 data, size_t offset, __local half *p);
12350
12262
  void __ovld vstorea_half8_rtp(float8 data, size_t offset, __local half *p);
12351
12263
  void __ovld vstorea_half16_rtp(float16 data, size_t offset, __local half *p);
12352
12264
 
12353
- void __ovld vstorea_half_rtn(float data, size_t offset, __local half *p);
12354
12265
  void __ovld vstorea_half2_rtn(float2 data, size_t offset, __local half *p);
12355
12266
  void __ovld vstorea_half3_rtn(float3 data, size_t offset, __local half *p);
12356
12267
  void __ovld vstorea_half4_rtn(float4 data, size_t offset, __local half *p);
12357
12268
  void __ovld vstorea_half8_rtn(float8 data, size_t offset, __local half *p);
12358
12269
  void __ovld vstorea_half16_rtn(float16 data, size_t offset, __local half *p);
12359
12270
 
12360
- void __ovld vstorea_half(float data, size_t offset, __private half *p);
12361
12271
  void __ovld vstorea_half2(float2 data, size_t offset, __private half *p);
12362
12272
  void __ovld vstorea_half3(float3 data, size_t offset, __private half *p);
12363
12273
  void __ovld vstorea_half4(float4 data, size_t offset, __private half *p);
12364
12274
  void __ovld vstorea_half8(float8 data, size_t offset, __private half *p);
12365
12275
  void __ovld vstorea_half16(float16 data, size_t offset, __private half *p);
12366
12276
 
12367
- void __ovld vstorea_half_rte(float data, size_t offset, __private half *p);
12368
12277
  void __ovld vstorea_half2_rte(float2 data, size_t offset, __private half *p);
12369
12278
  void __ovld vstorea_half3_rte(float3 data, size_t offset, __private half *p);
12370
12279
  void __ovld vstorea_half4_rte(float4 data, size_t offset, __private half *p);
12371
12280
  void __ovld vstorea_half8_rte(float8 data, size_t offset, __private half *p);
12372
12281
  void __ovld vstorea_half16_rte(float16 data, size_t offset, __private half *p);
12373
12282
 
12374
- void __ovld vstorea_half_rtz(float data, size_t offset, __private half *p);
12375
12283
  void __ovld vstorea_half2_rtz(float2 data, size_t offset, __private half *p);
12376
12284
  void __ovld vstorea_half3_rtz(float3 data, size_t offset, __private half *p);
12377
12285
  void __ovld vstorea_half4_rtz(float4 data, size_t offset, __private half *p);
12378
12286
  void __ovld vstorea_half8_rtz(float8 data, size_t offset, __private half *p);
12379
12287
  void __ovld vstorea_half16_rtz(float16 data, size_t offset, __private half *p);
12380
12288
 
12381
- void __ovld vstorea_half_rtp(float data, size_t offset, __private half *p);
12382
12289
  void __ovld vstorea_half2_rtp(float2 data, size_t offset, __private half *p);
12383
12290
  void __ovld vstorea_half3_rtp(float3 data, size_t offset, __private half *p);
12384
12291
  void __ovld vstorea_half4_rtp(float4 data, size_t offset, __private half *p);
12385
12292
  void __ovld vstorea_half8_rtp(float8 data, size_t offset, __private half *p);
12386
12293
  void __ovld vstorea_half16_rtp(float16 data, size_t offset, __private half *p);
12387
12294
 
12388
- void __ovld vstorea_half_rtn(float data, size_t offset, __private half *p);
12389
12295
  void __ovld vstorea_half2_rtn(float2 data, size_t offset, __private half *p);
12390
12296
  void __ovld vstorea_half3_rtn(float3 data, size_t offset, __private half *p);
12391
12297
  void __ovld vstorea_half4_rtn(float4 data, size_t offset, __private half *p);
@@ -12393,112 +12299,97 @@ void __ovld vstorea_half8_rtn(float8 data, size_t offset, __private half *p);
12393
12299
  void __ovld vstorea_half16_rtn(float16 data, size_t offset, __private half *p);
12394
12300
 
12395
12301
  #ifdef cl_khr_fp64
12396
- void __ovld vstorea_half(double data, size_t offset, __global half *p);
12397
12302
  void __ovld vstorea_half2(double2 data, size_t offset, __global half *p);
12398
12303
  void __ovld vstorea_half3(double3 data, size_t offset, __global half *p);
12399
12304
  void __ovld vstorea_half4(double4 data, size_t offset, __global half *p);
12400
12305
  void __ovld vstorea_half8(double8 data, size_t offset, __global half *p);
12401
12306
  void __ovld vstorea_half16(double16 data, size_t offset, __global half *p);
12402
12307
 
12403
- void __ovld vstorea_half_rte(double data, size_t offset, __global half *p);
12404
12308
  void __ovld vstorea_half2_rte(double2 data, size_t offset, __global half *p);
12405
12309
  void __ovld vstorea_half3_rte(double3 data, size_t offset, __global half *p);
12406
12310
  void __ovld vstorea_half4_rte(double4 data, size_t offset, __global half *p);
12407
12311
  void __ovld vstorea_half8_rte(double8 data, size_t offset, __global half *p);
12408
12312
  void __ovld vstorea_half16_rte(double16 data, size_t offset, __global half *p);
12409
12313
 
12410
- void __ovld vstorea_half_rtz(double data, size_t offset, __global half *p);
12411
12314
  void __ovld vstorea_half2_rtz(double2 data, size_t offset, __global half *p);
12412
12315
  void __ovld vstorea_half3_rtz(double3 data, size_t offset, __global half *p);
12413
12316
  void __ovld vstorea_half4_rtz(double4 data, size_t offset, __global half *p);
12414
12317
  void __ovld vstorea_half8_rtz(double8 data, size_t offset, __global half *p);
12415
12318
  void __ovld vstorea_half16_rtz(double16 data, size_t offset, __global half *p);
12416
12319
 
12417
- void __ovld vstorea_half_rtp(double data, size_t offset, __global half *p);
12418
12320
  void __ovld vstorea_half2_rtp(double2 data, size_t offset, __global half *p);
12419
12321
  void __ovld vstorea_half3_rtp(double3 data, size_t offset, __global half *p);
12420
12322
  void __ovld vstorea_half4_rtp(double4 data, size_t offset, __global half *p);
12421
12323
  void __ovld vstorea_half8_rtp(double8 data, size_t offset, __global half *p);
12422
12324
  void __ovld vstorea_half16_rtp(double16 data, size_t offset, __global half *p);
12423
12325
 
12424
- void __ovld vstorea_half_rtn(double data, size_t offset, __global half *p);
12425
12326
  void __ovld vstorea_half2_rtn(double2 data, size_t offset, __global half *p);
12426
12327
  void __ovld vstorea_half3_rtn(double3 data, size_t offset, __global half *p);
12427
12328
  void __ovld vstorea_half4_rtn(double4 data, size_t offset, __global half *p);
12428
12329
  void __ovld vstorea_half8_rtn(double8 data, size_t offset, __global half *p);
12429
12330
  void __ovld vstorea_half16_rtn(double16 data, size_t offset, __global half *p);
12430
12331
 
12431
- void __ovld vstorea_half(double data, size_t offset, __local half *p);
12432
12332
  void __ovld vstorea_half2(double2 data, size_t offset, __local half *p);
12433
12333
  void __ovld vstorea_half3(double3 data, size_t offset, __local half *p);
12434
12334
  void __ovld vstorea_half4(double4 data, size_t offset, __local half *p);
12435
12335
  void __ovld vstorea_half8(double8 data, size_t offset, __local half *p);
12436
12336
  void __ovld vstorea_half16(double16 data, size_t offset, __local half *p);
12437
12337
 
12438
- void __ovld vstorea_half_rte(double data, size_t offset, __local half *p);
12439
12338
  void __ovld vstorea_half2_rte(double2 data, size_t offset, __local half *p);
12440
12339
  void __ovld vstorea_half3_rte(double3 data, size_t offset, __local half *p);
12441
12340
  void __ovld vstorea_half4_rte(double4 data, size_t offset, __local half *p);
12442
12341
  void __ovld vstorea_half8_rte(double8 data, size_t offset, __local half *p);
12443
12342
  void __ovld vstorea_half16_rte(double16 data, size_t offset, __local half *p);
12444
12343
 
12445
- void __ovld vstorea_half_rtz(double data, size_t offset, __local half *p);
12446
12344
  void __ovld vstorea_half2_rtz(double2 data, size_t offset, __local half *p);
12447
12345
  void __ovld vstorea_half3_rtz(double3 data, size_t offset, __local half *p);
12448
12346
  void __ovld vstorea_half4_rtz(double4 data, size_t offset, __local half *p);
12449
12347
  void __ovld vstorea_half8_rtz(double8 data, size_t offset, __local half *p);
12450
12348
  void __ovld vstorea_half16_rtz(double16 data, size_t offset, __local half *p);
12451
12349
 
12452
- void __ovld vstorea_half_rtp(double data, size_t offset, __local half *p);
12453
12350
  void __ovld vstorea_half2_rtp(double2 data, size_t offset, __local half *p);
12454
12351
  void __ovld vstorea_half3_rtp(double3 data, size_t offset, __local half *p);
12455
12352
  void __ovld vstorea_half4_rtp(double4 data, size_t offset, __local half *p);
12456
12353
  void __ovld vstorea_half8_rtp(double8 data, size_t offset, __local half *p);
12457
12354
  void __ovld vstorea_half16_rtp(double16 data, size_t offset, __local half *p);
12458
12355
 
12459
- void __ovld vstorea_half_rtn(double data, size_t offset, __local half *p);
12460
12356
  void __ovld vstorea_half2_rtn(double2 data, size_t offset, __local half *p);
12461
12357
  void __ovld vstorea_half3_rtn(double3 data, size_t offset, __local half *p);
12462
12358
  void __ovld vstorea_half4_rtn(double4 data, size_t offset, __local half *p);
12463
12359
  void __ovld vstorea_half8_rtn(double8 data, size_t offset, __local half *p);
12464
12360
  void __ovld vstorea_half16_rtn(double16 data, size_t offset, __local half *p);
12465
12361
 
12466
- void __ovld vstorea_half(double data, size_t offset, __private half *p);
12467
12362
  void __ovld vstorea_half2(double2 data, size_t offset, __private half *p);
12468
12363
  void __ovld vstorea_half3(double3 data, size_t offset, __private half *p);
12469
12364
  void __ovld vstorea_half4(double4 data, size_t offset, __private half *p);
12470
12365
  void __ovld vstorea_half8(double8 data, size_t offset, __private half *p);
12471
12366
  void __ovld vstorea_half16(double16 data, size_t offset, __private half *p);
12472
12367
 
12473
- void __ovld vstorea_half_rte(double data, size_t offset, __private half *p);
12474
12368
  void __ovld vstorea_half2_rte(double2 data, size_t offset, __private half *p);
12475
12369
  void __ovld vstorea_half3_rte(double3 data, size_t offset, __private half *p);
12476
12370
  void __ovld vstorea_half4_rte(double4 data, size_t offset, __private half *p);
12477
12371
  void __ovld vstorea_half8_rte(double8 data, size_t offset, __private half *p);
12478
12372
  void __ovld vstorea_half16_rte(double16 data, size_t offset, __private half *p);
12479
12373
 
12480
- void __ovld vstorea_half_rtz(double data, size_t offset, __private half *p);
12481
12374
  void __ovld vstorea_half2_rtz(double2 data, size_t offset, __private half *p);
12482
12375
  void __ovld vstorea_half3_rtz(double3 data, size_t offset, __private half *p);
12483
12376
  void __ovld vstorea_half4_rtz(double4 data, size_t offset, __private half *p);
12484
12377
  void __ovld vstorea_half8_rtz(double8 data, size_t offset, __private half *p);
12485
12378
  void __ovld vstorea_half16_rtz(double16 data, size_t offset, __private half *p);
12486
12379
 
12487
- void __ovld vstorea_half_rtp(double data, size_t offset, __private half *p);
12488
12380
  void __ovld vstorea_half2_rtp(double2 data, size_t offset, __private half *p);
12489
12381
  void __ovld vstorea_half3_rtp(double3 data, size_t offset, __private half *p);
12490
12382
  void __ovld vstorea_half4_rtp(double4 data, size_t offset, __private half *p);
12491
12383
  void __ovld vstorea_half8_rtp(double8 data, size_t offset, __private half *p);
12492
12384
  void __ovld vstorea_half16_rtp(double16 data, size_t offset, __private half *p);
12493
12385
 
12494
- void __ovld vstorea_half_rtn(double data, size_t offset, __private half *p);
12495
12386
  void __ovld vstorea_half2_rtn(double2 data,size_t offset, __private half *p);
12496
12387
  void __ovld vstorea_half3_rtn(double3 data,size_t offset, __private half *p);
12497
12388
  void __ovld vstorea_half4_rtn(double4 data,size_t offset, __private half *p);
12498
12389
  void __ovld vstorea_half8_rtn(double8 data,size_t offset, __private half *p);
12499
12390
  void __ovld vstorea_half16_rtn(double16 data,size_t offset, __private half *p);
12500
12391
  #endif //cl_khr_fp64
12501
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
12392
+ #endif //defined(__opencl_c_named_address_space_builtins)
12502
12393
 
12503
12394
  // OpenCL v1.1 s6.11.8, v1.2 s6.12.8, v2.0 s6.13.8 - Synchronization Functions
12504
12395
 
@@ -12582,7 +12473,7 @@ void __ovld write_mem_fence(cl_mem_fence_flags flags);
12582
12473
 
12583
12474
  // OpenCL v2.0 s6.13.9 - Address Space Qualifier Functions
12584
12475
 
12585
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
12476
+ #if defined(__opencl_c_generic_address_space)
12586
12477
  cl_mem_fence_flags __ovld get_fence(const void *ptr);
12587
12478
  cl_mem_fence_flags __ovld get_fence(void *ptr);
12588
12479
 
@@ -12593,7 +12484,7 @@ cl_mem_fence_flags __ovld get_fence(void *ptr);
12593
12484
  * where gentype is builtin type or user defined type.
12594
12485
  */
12595
12486
 
12596
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
12487
+ #endif //defined(__opencl_c_generic_address_space)
12597
12488
 
12598
12489
  // 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
12490
 
@@ -13382,6 +13273,7 @@ unsigned long __ovld atom_xor(volatile __local unsigned long *p, unsigned long v
13382
13273
  #endif
13383
13274
 
13384
13275
  // atomic_init()
13276
+ #if defined(__opencl_c_generic_address_space)
13385
13277
  void __ovld atomic_init(volatile atomic_int *object, int value);
13386
13278
  void __ovld atomic_init(volatile atomic_uint *object, uint value);
13387
13279
  void __ovld atomic_init(volatile atomic_float *object, float value);
@@ -13392,296 +13284,1562 @@ void __ovld atomic_init(volatile atomic_ulong *object, ulong value);
13392
13284
  void __ovld atomic_init(volatile atomic_double *object, double value);
13393
13285
  #endif //cl_khr_fp64
13394
13286
  #endif
13287
+ #endif //defined(__opencl_c_generic_address_space)
13288
+ #if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
13289
+ void __ovld atomic_init(volatile __global atomic_int *object, int value);
13290
+ void __ovld atomic_init(volatile __local atomic_int *object, int value);
13291
+ void __ovld atomic_init(volatile __global atomic_uint *object, uint value);
13292
+ void __ovld atomic_init(volatile __local atomic_uint *object, uint value);
13293
+ void __ovld atomic_init(volatile __global atomic_float *object, float value);
13294
+ void __ovld atomic_init(volatile __local atomic_float *object, float value);
13295
+ #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13296
+ void __ovld atomic_init(volatile __global atomic_long *object, long value);
13297
+ void __ovld atomic_init(volatile __local atomic_long *object, long value);
13298
+ void __ovld atomic_init(volatile __global atomic_ulong *object, ulong value);
13299
+ void __ovld atomic_init(volatile __local atomic_ulong *object, ulong value);
13300
+ #ifdef cl_khr_fp64
13301
+ void __ovld atomic_init(volatile __global atomic_double *object, double value);
13302
+ void __ovld atomic_init(volatile __local atomic_double *object, double value);
13303
+ #endif //cl_khr_fp64
13304
+ #endif
13305
+ #endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
13395
13306
 
13396
13307
  // atomic_work_item_fence()
13397
13308
  void __ovld atomic_work_item_fence(cl_mem_fence_flags flags, memory_order order, memory_scope scope);
13398
13309
 
13399
13310
  // atomic_fetch()
13311
+ // OpenCL v2.0 s6.13.11.7.5:
13312
+ // add/sub: atomic type argument can be uintptr_t/intptr_t, value type argument can be ptrdiff_t.
13400
13313
 
13314
+ #if defined(__opencl_c_atomic_order_seq_cst) && defined(__opencl_c_atomic_scope_device)
13315
+ #if defined(__opencl_c_generic_address_space)
13401
13316
  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
13317
  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
13318
  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
13319
  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
13320
  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
13321
  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
13322
  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
13323
  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
13324
  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
13325
  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
13326
  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
13327
  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
13328
  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
13329
  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
-
13444
13330
  #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13445
13331
  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
13332
  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
13333
  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
13334
  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
13335
  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
13336
  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
13337
  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
13338
  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
13339
  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
13340
  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
13341
  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
13342
  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
13343
  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
13344
  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);
13345
+ uintptr_t __ovld atomic_fetch_add(volatile atomic_uintptr_t *object, ptrdiff_t operand);
13346
+ uintptr_t __ovld atomic_fetch_sub(volatile atomic_uintptr_t *object, ptrdiff_t operand);
13487
13347
  #endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13348
+ #endif //defined(__opencl_c_generic_address_space)
13349
+ #if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
13350
+ int __ovld atomic_fetch_add(volatile __global atomic_int *object, int operand);
13351
+ int __ovld atomic_fetch_add(volatile __local atomic_int *object, int operand);
13352
+ uint __ovld atomic_fetch_add(volatile __global atomic_uint *object, uint operand);
13353
+ uint __ovld atomic_fetch_add(volatile __local atomic_uint *object, uint operand);
13354
+ int __ovld atomic_fetch_sub(volatile __global atomic_int *object, int operand);
13355
+ int __ovld atomic_fetch_sub(volatile __local atomic_int *object, int operand);
13356
+ uint __ovld atomic_fetch_sub(volatile __global atomic_uint *object, uint operand);
13357
+ uint __ovld atomic_fetch_sub(volatile __local atomic_uint *object, uint operand);
13358
+ int __ovld atomic_fetch_or(volatile __global atomic_int *object, int operand);
13359
+ int __ovld atomic_fetch_or(volatile __local atomic_int *object, int operand);
13360
+ uint __ovld atomic_fetch_or(volatile __global atomic_uint *object, uint operand);
13361
+ uint __ovld atomic_fetch_or(volatile __local atomic_uint *object, uint operand);
13362
+ int __ovld atomic_fetch_xor(volatile __global atomic_int *object, int operand);
13363
+ int __ovld atomic_fetch_xor(volatile __local atomic_int *object, int operand);
13364
+ uint __ovld atomic_fetch_xor(volatile __global atomic_uint *object, uint operand);
13365
+ uint __ovld atomic_fetch_xor(volatile __local atomic_uint *object, uint operand);
13366
+ int __ovld atomic_fetch_and(volatile __global atomic_int *object, int operand);
13367
+ int __ovld atomic_fetch_and(volatile __local atomic_int *object, int operand);
13368
+ uint __ovld atomic_fetch_and(volatile __global atomic_uint *object, uint operand);
13369
+ uint __ovld atomic_fetch_and(volatile __local atomic_uint *object, uint operand);
13370
+ int __ovld atomic_fetch_min(volatile __global atomic_int *object, int operand);
13371
+ int __ovld atomic_fetch_min(volatile __local atomic_int *object, int operand);
13372
+ uint __ovld atomic_fetch_min(volatile __global atomic_uint *object, uint operand);
13373
+ uint __ovld atomic_fetch_min(volatile __local atomic_uint *object, uint operand);
13374
+ int __ovld atomic_fetch_max(volatile __global atomic_int *object, int operand);
13375
+ int __ovld atomic_fetch_max(volatile __local atomic_int *object, int operand);
13376
+ uint __ovld atomic_fetch_max(volatile __global atomic_uint *object, uint operand);
13377
+ uint __ovld atomic_fetch_max(volatile __local atomic_uint *object, uint operand);
13378
+ #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13379
+ long __ovld atomic_fetch_add(volatile __global atomic_long *object, long operand);
13380
+ long __ovld atomic_fetch_add(volatile __local atomic_long *object, long operand);
13381
+ ulong __ovld atomic_fetch_add(volatile __global atomic_ulong *object, ulong operand);
13382
+ ulong __ovld atomic_fetch_add(volatile __local atomic_ulong *object, ulong operand);
13383
+ uintptr_t __ovld atomic_fetch_add(volatile __global atomic_uintptr_t *object, ptrdiff_t operand);
13384
+ uintptr_t __ovld atomic_fetch_add(volatile __local atomic_uintptr_t *object, ptrdiff_t operand);
13385
+ long __ovld atomic_fetch_sub(volatile __global atomic_long *object, long operand);
13386
+ long __ovld atomic_fetch_sub(volatile __local atomic_long *object, long operand);
13387
+ ulong __ovld atomic_fetch_sub(volatile __global atomic_ulong *object, ulong operand);
13388
+ ulong __ovld atomic_fetch_sub(volatile __local atomic_ulong *object, ulong operand);
13389
+ uintptr_t __ovld atomic_fetch_sub(volatile __global atomic_uintptr_t *object, ptrdiff_t operand);
13390
+ uintptr_t __ovld atomic_fetch_sub(volatile __local atomic_uintptr_t *object, ptrdiff_t operand);
13391
+ long __ovld atomic_fetch_or(volatile __global atomic_long *object, long operand);
13392
+ long __ovld atomic_fetch_or(volatile __local atomic_long *object, long operand);
13393
+ ulong __ovld atomic_fetch_or(volatile __global atomic_ulong *object, ulong operand);
13394
+ ulong __ovld atomic_fetch_or(volatile __local atomic_ulong *object, ulong operand);
13395
+ uintptr_t __ovld atomic_fetch_or(volatile __global atomic_uintptr_t *object, intptr_t operand);
13396
+ uintptr_t __ovld atomic_fetch_or(volatile __local atomic_uintptr_t *object, intptr_t operand);
13397
+ intptr_t __ovld atomic_fetch_or(volatile __global atomic_intptr_t *object, uintptr_t operand);
13398
+ intptr_t __ovld atomic_fetch_or(volatile __local atomic_intptr_t *object, uintptr_t operand);
13399
+ long __ovld atomic_fetch_xor(volatile __global atomic_long *object, long operand);
13400
+ long __ovld atomic_fetch_xor(volatile __local atomic_long *object, long operand);
13401
+ ulong __ovld atomic_fetch_xor(volatile __global atomic_ulong *object, ulong operand);
13402
+ ulong __ovld atomic_fetch_xor(volatile __local atomic_ulong *object, ulong operand);
13403
+ uintptr_t __ovld atomic_fetch_xor(volatile __global atomic_uintptr_t *object, intptr_t operand);
13404
+ uintptr_t __ovld atomic_fetch_xor(volatile __local atomic_uintptr_t *object, intptr_t operand);
13405
+ intptr_t __ovld atomic_fetch_xor(volatile __global atomic_intptr_t *object, uintptr_t operand);
13406
+ intptr_t __ovld atomic_fetch_xor(volatile __local atomic_intptr_t *object, uintptr_t operand);
13407
+ long __ovld atomic_fetch_and(volatile __global atomic_long *object, long operand);
13408
+ long __ovld atomic_fetch_and(volatile __local atomic_long *object, long operand);
13409
+ ulong __ovld atomic_fetch_and(volatile __global atomic_ulong *object, ulong operand);
13410
+ ulong __ovld atomic_fetch_and(volatile __local atomic_ulong *object, ulong operand);
13411
+ uintptr_t __ovld atomic_fetch_and(volatile __global atomic_uintptr_t *object, intptr_t operand);
13412
+ uintptr_t __ovld atomic_fetch_and(volatile __local atomic_uintptr_t *object, intptr_t operand);
13413
+ intptr_t __ovld atomic_fetch_and(volatile __global atomic_intptr_t *object, uintptr_t operand);
13414
+ intptr_t __ovld atomic_fetch_and(volatile __local atomic_intptr_t *object, uintptr_t operand);
13415
+ long __ovld atomic_fetch_min(volatile __global atomic_long *object, long operand);
13416
+ long __ovld atomic_fetch_min(volatile __local atomic_long *object, long operand);
13417
+ ulong __ovld atomic_fetch_min(volatile __global atomic_ulong *object, ulong operand);
13418
+ ulong __ovld atomic_fetch_min(volatile __local atomic_ulong *object, ulong operand);
13419
+ uintptr_t __ovld atomic_fetch_min(volatile __global atomic_uintptr_t *object, intptr_t operand);
13420
+ uintptr_t __ovld atomic_fetch_min(volatile __local atomic_uintptr_t *object, intptr_t operand);
13421
+ intptr_t __ovld atomic_fetch_min(volatile __global atomic_intptr_t *object, uintptr_t operand);
13422
+ intptr_t __ovld atomic_fetch_min(volatile __local atomic_intptr_t *object, uintptr_t operand);
13423
+ long __ovld atomic_fetch_max(volatile __global atomic_long *object, long operand);
13424
+ long __ovld atomic_fetch_max(volatile __local atomic_long *object, long operand);
13425
+ ulong __ovld atomic_fetch_max(volatile __global atomic_ulong *object, ulong operand);
13426
+ ulong __ovld atomic_fetch_max(volatile __local atomic_ulong *object, ulong operand);
13427
+ uintptr_t __ovld atomic_fetch_add(volatile __global atomic_uintptr_t *object, ptrdiff_t operand);
13428
+ uintptr_t __ovld atomic_fetch_sub(volatile __local atomic_uintptr_t *object, ptrdiff_t operand);
13429
+ #endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13430
+ #endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
13431
+ #endif
13488
13432
 
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
-
13433
+ #if defined(__opencl_c_atomic_scope_device)
13434
+ #if defined(__opencl_c_generic_address_space)
13435
+ int __ovld atomic_fetch_add_explicit(volatile atomic_int *object, int operand, memory_order order);
13436
+ uint __ovld atomic_fetch_add_explicit(volatile atomic_uint *object, uint operand, memory_order order);
13437
+ int __ovld atomic_fetch_sub_explicit(volatile atomic_int *object, int operand, memory_order order);
13438
+ uint __ovld atomic_fetch_sub_explicit(volatile atomic_uint *object, uint operand, memory_order order);
13439
+ int __ovld atomic_fetch_or_explicit(volatile atomic_int *object, int operand, memory_order order);
13440
+ uint __ovld atomic_fetch_or_explicit(volatile atomic_uint *object, uint operand, memory_order order);
13441
+ int __ovld atomic_fetch_xor_explicit(volatile atomic_int *object, int operand, memory_order order);
13442
+ uint __ovld atomic_fetch_xor_explicit(volatile atomic_uint *object, uint operand, memory_order order);
13443
+ int __ovld atomic_fetch_and_explicit(volatile atomic_int *object, int operand, memory_order order);
13444
+ uint __ovld atomic_fetch_and_explicit(volatile atomic_uint *object, uint operand, memory_order order);
13445
+ int __ovld atomic_fetch_min_explicit(volatile atomic_int *object, int operand, memory_order order);
13446
+ uint __ovld atomic_fetch_min_explicit(volatile atomic_uint *object, uint operand, memory_order order);
13447
+ int __ovld atomic_fetch_max_explicit(volatile atomic_int *object, int operand, memory_order order);
13448
+ uint __ovld atomic_fetch_max_explicit(volatile atomic_uint *object, uint operand, memory_order order);
13493
13449
  #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);
13450
+ long __ovld atomic_fetch_add_explicit(volatile atomic_long *object, long operand, memory_order order);
13451
+ ulong __ovld atomic_fetch_add_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
13452
+ long __ovld atomic_fetch_sub_explicit(volatile atomic_long *object, long operand, memory_order order);
13453
+ ulong __ovld atomic_fetch_sub_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
13454
+ long __ovld atomic_fetch_or_explicit(volatile atomic_long *object, long operand, memory_order order);
13455
+ ulong __ovld atomic_fetch_or_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
13456
+ long __ovld atomic_fetch_xor_explicit(volatile atomic_long *object, long operand, memory_order order);
13457
+ ulong __ovld atomic_fetch_xor_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
13458
+ long __ovld atomic_fetch_and_explicit(volatile atomic_long *object, long operand, memory_order order);
13459
+ ulong __ovld atomic_fetch_and_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
13460
+ long __ovld atomic_fetch_min_explicit(volatile atomic_long *object, long operand, memory_order order);
13461
+ ulong __ovld atomic_fetch_min_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
13462
+ long __ovld atomic_fetch_max_explicit(volatile atomic_long *object, long operand, memory_order order);
13463
+ ulong __ovld atomic_fetch_max_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
13495
13464
  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
13465
  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);
13466
+ #endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13467
+ #endif //defined(__opencl_c_generic_address_space)
13468
+ #if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
13469
+ int __ovld atomic_fetch_add_explicit(volatile __global atomic_int *object, int operand, memory_order order);
13470
+ int __ovld atomic_fetch_add_explicit(volatile __local atomic_int *object, int operand, memory_order order);
13471
+ uint __ovld atomic_fetch_add_explicit(volatile __global atomic_uint *object, uint operand, memory_order order);
13472
+ uint __ovld atomic_fetch_add_explicit(volatile __local atomic_uint *object, uint operand, memory_order order);
13473
+ int __ovld atomic_fetch_sub_explicit(volatile __global atomic_int *object, int operand, memory_order order);
13474
+ int __ovld atomic_fetch_sub_explicit(volatile __local atomic_int *object, int operand, memory_order order);
13475
+ uint __ovld atomic_fetch_sub_explicit(volatile __global atomic_uint *object, uint operand, memory_order order);
13476
+ uint __ovld atomic_fetch_sub_explicit(volatile __local atomic_uint *object, uint operand, memory_order order);
13477
+ int __ovld atomic_fetch_or_explicit(volatile __global atomic_int *object, int operand, memory_order order);
13478
+ int __ovld atomic_fetch_or_explicit(volatile __local atomic_int *object, int operand, memory_order order);
13479
+ uint __ovld atomic_fetch_or_explicit(volatile __global atomic_uint *object, uint operand, memory_order order);
13480
+ uint __ovld atomic_fetch_or_explicit(volatile __local atomic_uint *object, uint operand, memory_order order);
13481
+ int __ovld atomic_fetch_xor_explicit(volatile __global atomic_int *object, int operand, memory_order order);
13482
+ int __ovld atomic_fetch_xor_explicit(volatile __local atomic_int *object, int operand, memory_order order);
13483
+ uint __ovld atomic_fetch_xor_explicit(volatile __global atomic_uint *object, uint operand, memory_order order);
13484
+ uint __ovld atomic_fetch_xor_explicit(volatile __local atomic_uint *object, uint operand, memory_order order);
13485
+ int __ovld atomic_fetch_and_explicit(volatile __global atomic_int *object, int operand, memory_order order);
13486
+ int __ovld atomic_fetch_and_explicit(volatile __local atomic_int *object, int operand, memory_order order);
13487
+ uint __ovld atomic_fetch_and_explicit(volatile __global atomic_uint *object, uint operand, memory_order order);
13488
+ uint __ovld atomic_fetch_and_explicit(volatile __local atomic_uint *object, uint operand, memory_order order);
13489
+ int __ovld atomic_fetch_min_explicit(volatile __global atomic_int *object, int operand, memory_order order);
13490
+ int __ovld atomic_fetch_min_explicit(volatile __local atomic_int *object, int operand, memory_order order);
13491
+ uint __ovld atomic_fetch_min_explicit(volatile __global atomic_uint *object, uint operand, memory_order order);
13492
+ uint __ovld atomic_fetch_min_explicit(volatile __local atomic_uint *object, uint operand, memory_order order);
13493
+ int __ovld atomic_fetch_max_explicit(volatile __global atomic_int *object, int operand, memory_order order);
13494
+ int __ovld atomic_fetch_max_explicit(volatile __local atomic_int *object, int operand, memory_order order);
13495
+ uint __ovld atomic_fetch_max_explicit(volatile __global atomic_uint *object, uint operand, memory_order order);
13496
+ uint __ovld atomic_fetch_max_explicit(volatile __local atomic_uint *object, uint operand, memory_order order);
13497
+ #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13498
+ long __ovld atomic_fetch_add_explicit(volatile __global atomic_long *object, long operand, memory_order order);
13499
+ long __ovld atomic_fetch_add_explicit(volatile __local atomic_long *object, long operand, memory_order order);
13500
+ ulong __ovld atomic_fetch_add_explicit(volatile __global atomic_ulong *object, ulong operand, memory_order order);
13501
+ ulong __ovld atomic_fetch_add_explicit(volatile __local atomic_ulong *object, ulong operand, memory_order order);
13502
+ uintptr_t __ovld atomic_fetch_add_explicit(volatile __global atomic_uintptr_t *object, ptrdiff_t operand, memory_order order);
13503
+ uintptr_t __ovld atomic_fetch_add_explicit(volatile __local atomic_uintptr_t *object, ptrdiff_t operand, memory_order order);
13504
+ long __ovld atomic_fetch_sub_explicit(volatile __global atomic_long *object, long operand, memory_order order);
13505
+ long __ovld atomic_fetch_sub_explicit(volatile __local atomic_long *object, long operand, memory_order order);
13506
+ ulong __ovld atomic_fetch_sub_explicit(volatile __global atomic_ulong *object, ulong operand, memory_order order);
13507
+ ulong __ovld atomic_fetch_sub_explicit(volatile __local atomic_ulong *object, ulong operand, memory_order order);
13508
+ uintptr_t __ovld atomic_fetch_sub_explicit(volatile __global atomic_uintptr_t *object, ptrdiff_t operand, memory_order order);
13509
+ uintptr_t __ovld atomic_fetch_sub_explicit(volatile __local atomic_uintptr_t *object, ptrdiff_t operand, memory_order order);
13510
+ long __ovld atomic_fetch_or_explicit(volatile __global atomic_long *object, long operand, memory_order order);
13511
+ long __ovld atomic_fetch_or_explicit(volatile __local atomic_long *object, long operand, memory_order order);
13512
+ ulong __ovld atomic_fetch_or_explicit(volatile __global atomic_ulong *object, ulong operand, memory_order order);
13513
+ ulong __ovld atomic_fetch_or_explicit(volatile __local atomic_ulong *object, ulong operand, memory_order order);
13514
+ uintptr_t __ovld atomic_fetch_or_explicit(volatile __global atomic_uintptr_t *object, intptr_t operand, memory_order order);
13515
+ uintptr_t __ovld atomic_fetch_or_explicit(volatile __local atomic_uintptr_t *object, intptr_t operand, memory_order order);
13516
+ intptr_t __ovld atomic_fetch_or_explicit(volatile __global atomic_intptr_t *object, uintptr_t operand, memory_order order);
13517
+ intptr_t __ovld atomic_fetch_or_explicit(volatile __local atomic_intptr_t *object, uintptr_t operand, memory_order order);
13518
+ long __ovld atomic_fetch_xor_explicit(volatile __global atomic_long *object, long operand, memory_order order);
13519
+ long __ovld atomic_fetch_xor_explicit(volatile __local atomic_long *object, long operand, memory_order order);
13520
+ ulong __ovld atomic_fetch_xor_explicit(volatile __global atomic_ulong *object, ulong operand, memory_order order);
13521
+ ulong __ovld atomic_fetch_xor_explicit(volatile __local atomic_ulong *object, ulong operand, memory_order order);
13522
+ uintptr_t __ovld atomic_fetch_xor_explicit(volatile __global atomic_uintptr_t *object, intptr_t operand, memory_order order);
13523
+ uintptr_t __ovld atomic_fetch_xor_explicit(volatile __local atomic_uintptr_t *object, intptr_t operand, memory_order order);
13524
+ intptr_t __ovld atomic_fetch_xor_explicit(volatile __global atomic_intptr_t *object, uintptr_t operand, memory_order order);
13525
+ intptr_t __ovld atomic_fetch_xor_explicit(volatile __local atomic_intptr_t *object, uintptr_t operand, memory_order order);
13526
+ long __ovld atomic_fetch_and_explicit(volatile __global atomic_long *object, long operand, memory_order order);
13527
+ long __ovld atomic_fetch_and_explicit(volatile __local atomic_long *object, long operand, memory_order order);
13528
+ ulong __ovld atomic_fetch_and_explicit(volatile __global atomic_ulong *object, ulong operand, memory_order order);
13529
+ ulong __ovld atomic_fetch_and_explicit(volatile __local atomic_ulong *object, ulong operand, memory_order order);
13530
+ uintptr_t __ovld atomic_fetch_and_explicit(volatile __global atomic_uintptr_t *object, intptr_t operand, memory_order order);
13531
+ uintptr_t __ovld atomic_fetch_and_explicit(volatile __local atomic_uintptr_t *object, intptr_t operand, memory_order order);
13532
+ intptr_t __ovld atomic_fetch_and_explicit(volatile __global atomic_intptr_t *object, uintptr_t operand, memory_order order);
13533
+ intptr_t __ovld atomic_fetch_and_explicit(volatile __local atomic_intptr_t *object, uintptr_t operand, memory_order order);
13534
+ long __ovld atomic_fetch_min_explicit(volatile __global atomic_long *object, long operand, memory_order order);
13535
+ long __ovld atomic_fetch_min_explicit(volatile __local atomic_long *object, long operand, memory_order order);
13536
+ ulong __ovld atomic_fetch_min_explicit(volatile __global atomic_ulong *object, ulong operand, memory_order order);
13537
+ ulong __ovld atomic_fetch_min_explicit(volatile __local atomic_ulong *object, ulong operand, memory_order order);
13538
+ uintptr_t __ovld atomic_fetch_min_explicit(volatile __global atomic_uintptr_t *object, intptr_t operand, memory_order order);
13539
+ uintptr_t __ovld atomic_fetch_min_explicit(volatile __local atomic_uintptr_t *object, intptr_t operand, memory_order order);
13540
+ intptr_t __ovld atomic_fetch_min_explicit(volatile __global atomic_intptr_t *object, uintptr_t operand, memory_order order);
13541
+ intptr_t __ovld atomic_fetch_min_explicit(volatile __local atomic_intptr_t *object, uintptr_t operand, memory_order order);
13542
+ long __ovld atomic_fetch_max_explicit(volatile __global atomic_long *object, long operand, memory_order order);
13543
+ long __ovld atomic_fetch_max_explicit(volatile __local atomic_long *object, long operand, memory_order order);
13544
+ ulong __ovld atomic_fetch_max_explicit(volatile __global atomic_ulong *object, ulong operand, memory_order order);
13545
+ ulong __ovld atomic_fetch_max_explicit(volatile __local atomic_ulong *object, ulong operand, memory_order order);
13546
+ uintptr_t __ovld atomic_fetch_add_explicit(volatile __global atomic_uintptr_t *object, ptrdiff_t operand, memory_order order);
13547
+ uintptr_t __ovld atomic_fetch_sub_explicit(volatile __local atomic_uintptr_t *object, ptrdiff_t operand, memory_order order);
13548
+ #endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13549
+ #endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
13550
+ #endif
13500
13551
 
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);
13552
+ #if defined(__opencl_c_generic_address_space)
13553
+ int __ovld atomic_fetch_add_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
13554
+ uint __ovld atomic_fetch_add_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13555
+ int __ovld atomic_fetch_sub_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
13556
+ uint __ovld atomic_fetch_sub_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13557
+ int __ovld atomic_fetch_or_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
13558
+ uint __ovld atomic_fetch_or_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13559
+ int __ovld atomic_fetch_xor_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
13560
+ uint __ovld atomic_fetch_xor_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13561
+ int __ovld atomic_fetch_and_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
13562
+ uint __ovld atomic_fetch_and_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13563
+ int __ovld atomic_fetch_min_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
13564
+ uint __ovld atomic_fetch_min_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13565
+ int __ovld atomic_fetch_max_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
13566
+ uint __ovld atomic_fetch_max_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13567
+ #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13568
+ long __ovld atomic_fetch_add_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
13569
+ ulong __ovld atomic_fetch_add_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13570
+ long __ovld atomic_fetch_sub_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
13571
+ ulong __ovld atomic_fetch_sub_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13572
+ long __ovld atomic_fetch_or_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
13573
+ ulong __ovld atomic_fetch_or_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13574
+ long __ovld atomic_fetch_xor_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
13575
+ ulong __ovld atomic_fetch_xor_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13576
+ long __ovld atomic_fetch_and_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
13577
+ ulong __ovld atomic_fetch_and_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13578
+ long __ovld atomic_fetch_min_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
13579
+ ulong __ovld atomic_fetch_min_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13580
+ long __ovld atomic_fetch_max_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
13581
+ ulong __ovld atomic_fetch_max_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13582
+ uintptr_t __ovld atomic_fetch_add_explicit(volatile atomic_uintptr_t *object, ptrdiff_t operand, memory_order order, memory_scope scope);
13583
+ uintptr_t __ovld atomic_fetch_sub_explicit(volatile atomic_uintptr_t *object, ptrdiff_t operand, memory_order order, memory_scope scope);
13532
13584
  #endif
13585
+ #endif //defined(__opencl_c_generic_address_space)
13586
+ #if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
13587
+ int __ovld atomic_fetch_add_explicit(volatile __global atomic_int *object, int operand, memory_order order, memory_scope scope);
13588
+ int __ovld atomic_fetch_add_explicit(volatile __local atomic_int *object, int operand, memory_order order, memory_scope scope);
13589
+ uint __ovld atomic_fetch_add_explicit(volatile __global atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13590
+ uint __ovld atomic_fetch_add_explicit(volatile __local atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13591
+ int __ovld atomic_fetch_sub_explicit(volatile __global atomic_int *object, int operand, memory_order order, memory_scope scope);
13592
+ int __ovld atomic_fetch_sub_explicit(volatile __local atomic_int *object, int operand, memory_order order, memory_scope scope);
13593
+ uint __ovld atomic_fetch_sub_explicit(volatile __global atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13594
+ uint __ovld atomic_fetch_sub_explicit(volatile __local atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13595
+ int __ovld atomic_fetch_or_explicit(volatile __global atomic_int *object, int operand, memory_order order, memory_scope scope);
13596
+ int __ovld atomic_fetch_or_explicit(volatile __local atomic_int *object, int operand, memory_order order, memory_scope scope);
13597
+ uint __ovld atomic_fetch_or_explicit(volatile __global atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13598
+ uint __ovld atomic_fetch_or_explicit(volatile __local atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13599
+ int __ovld atomic_fetch_xor_explicit(volatile __global atomic_int *object, int operand, memory_order order, memory_scope scope);
13600
+ int __ovld atomic_fetch_xor_explicit(volatile __local atomic_int *object, int operand, memory_order order, memory_scope scope);
13601
+ uint __ovld atomic_fetch_xor_explicit(volatile __global atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13602
+ uint __ovld atomic_fetch_xor_explicit(volatile __local atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13603
+ int __ovld atomic_fetch_and_explicit(volatile __global atomic_int *object, int operand, memory_order order, memory_scope scope);
13604
+ int __ovld atomic_fetch_and_explicit(volatile __local atomic_int *object, int operand, memory_order order, memory_scope scope);
13605
+ uint __ovld atomic_fetch_and_explicit(volatile __global atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13606
+ uint __ovld atomic_fetch_and_explicit(volatile __local atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13607
+ int __ovld atomic_fetch_min_explicit(volatile __global atomic_int *object, int operand, memory_order order, memory_scope scope);
13608
+ int __ovld atomic_fetch_min_explicit(volatile __local atomic_int *object, int operand, memory_order order, memory_scope scope);
13609
+ uint __ovld atomic_fetch_min_explicit(volatile __global atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13610
+ uint __ovld atomic_fetch_min_explicit(volatile __local atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13611
+ int __ovld atomic_fetch_max_explicit(volatile __global atomic_int *object, int operand, memory_order order, memory_scope scope);
13612
+ int __ovld atomic_fetch_max_explicit(volatile __local atomic_int *object, int operand, memory_order order, memory_scope scope);
13613
+ uint __ovld atomic_fetch_max_explicit(volatile __global atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13614
+ uint __ovld atomic_fetch_max_explicit(volatile __local atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13615
+ #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13616
+ long __ovld atomic_fetch_add_explicit(volatile __global atomic_long *object, long operand, memory_order order, memory_scope scope);
13617
+ long __ovld atomic_fetch_add_explicit(volatile __local atomic_long *object, long operand, memory_order order, memory_scope scope);
13618
+ uintptr_t __ovld atomic_fetch_add_explicit(volatile __global atomic_uintptr_t *object, ptrdiff_t operand, memory_order order, memory_scope scope);
13619
+ uintptr_t __ovld atomic_fetch_add_explicit(volatile __local atomic_uintptr_t *object, ptrdiff_t operand, memory_order order, memory_scope scope);
13620
+ ulong __ovld atomic_fetch_add_explicit(volatile __global atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13621
+ ulong __ovld atomic_fetch_add_explicit(volatile __local atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13622
+ long __ovld atomic_fetch_sub_explicit(volatile __global atomic_long *object, long operand, memory_order order, memory_scope scope);
13623
+ long __ovld atomic_fetch_sub_explicit(volatile __local atomic_long *object, long operand, memory_order order, memory_scope scope);
13624
+ ulong __ovld atomic_fetch_sub_explicit(volatile __global atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13625
+ ulong __ovld atomic_fetch_sub_explicit(volatile __local atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13626
+ uintptr_t __ovld atomic_fetch_sub_explicit(volatile __global atomic_uintptr_t *object, ptrdiff_t operand, memory_order order, memory_scope scope);
13627
+ uintptr_t __ovld atomic_fetch_sub_explicit(volatile __local atomic_uintptr_t *object, ptrdiff_t operand, memory_order order, memory_scope scope);
13628
+ long __ovld atomic_fetch_or_explicit(volatile __global atomic_long *object, long operand, memory_order order, memory_scope scope);
13629
+ long __ovld atomic_fetch_or_explicit(volatile __local atomic_long *object, long operand, memory_order order, memory_scope scope);
13630
+ ulong __ovld atomic_fetch_or_explicit(volatile __global atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13631
+ ulong __ovld atomic_fetch_or_explicit(volatile __local atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13632
+ uintptr_t __ovld atomic_fetch_or_explicit(volatile __global atomic_uintptr_t *object, intptr_t operand, memory_order order, memory_scope scope);
13633
+ uintptr_t __ovld atomic_fetch_or_explicit(volatile __local atomic_uintptr_t *object, intptr_t operand, memory_order order, memory_scope scope);
13634
+ intptr_t __ovld atomic_fetch_or_explicit(volatile __global atomic_intptr_t *object, uintptr_t operand, memory_order order, memory_scope scope);
13635
+ intptr_t __ovld atomic_fetch_or_explicit(volatile __local atomic_intptr_t *object, uintptr_t operand, memory_order order, memory_scope scope);
13636
+ long __ovld atomic_fetch_xor_explicit(volatile __global atomic_long *object, long operand, memory_order order, memory_scope scope);
13637
+ long __ovld atomic_fetch_xor_explicit(volatile __local atomic_long *object, long operand, memory_order order, memory_scope scope);
13638
+ ulong __ovld atomic_fetch_xor_explicit(volatile __global atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13639
+ ulong __ovld atomic_fetch_xor_explicit(volatile __local atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13640
+ uintptr_t __ovld atomic_fetch_xor_explicit(volatile __global atomic_uintptr_t *object, intptr_t operand, memory_order order, memory_scope scope);
13641
+ uintptr_t __ovld atomic_fetch_xor_explicit(volatile __local atomic_uintptr_t *object, intptr_t operand, memory_order order, memory_scope scope);
13642
+ intptr_t __ovld atomic_fetch_xor_explicit(volatile __global atomic_intptr_t *object, uintptr_t operand, memory_order order, memory_scope scope);
13643
+ intptr_t __ovld atomic_fetch_xor_explicit(volatile __local atomic_intptr_t *object, uintptr_t operand, memory_order order, memory_scope scope);
13644
+ long __ovld atomic_fetch_and_explicit(volatile __global atomic_long *object, long operand, memory_order order, memory_scope scope);
13645
+ long __ovld atomic_fetch_and_explicit(volatile __local atomic_long *object, long operand, memory_order order, memory_scope scope);
13646
+ ulong __ovld atomic_fetch_and_explicit(volatile __global atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13647
+ ulong __ovld atomic_fetch_and_explicit(volatile __local atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13648
+ uintptr_t __ovld atomic_fetch_and_explicit(volatile __global atomic_uintptr_t *object, intptr_t operand, memory_order order, memory_scope scope);
13649
+ uintptr_t __ovld atomic_fetch_and_explicit(volatile __local atomic_uintptr_t *object, intptr_t operand, memory_order order, memory_scope scope);
13650
+ intptr_t __ovld atomic_fetch_and_explicit(volatile __global atomic_intptr_t *object, uintptr_t operand, memory_order order, memory_scope scope);
13651
+ intptr_t __ovld atomic_fetch_and_explicit(volatile __local atomic_intptr_t *object, uintptr_t operand, memory_order order, memory_scope scope);
13652
+ long __ovld atomic_fetch_min_explicit(volatile __global atomic_long *object, long operand, memory_order order, memory_scope scope);
13653
+ long __ovld atomic_fetch_min_explicit(volatile __local atomic_long *object, long operand, memory_order order, memory_scope scope);
13654
+ ulong __ovld atomic_fetch_min_explicit(volatile __global atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13655
+ ulong __ovld atomic_fetch_min_explicit(volatile __local atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13656
+ uintptr_t __ovld atomic_fetch_min_explicit(volatile __global atomic_uintptr_t *object, intptr_t operand, memory_order order, memory_scope scope);
13657
+ uintptr_t __ovld atomic_fetch_min_explicit(volatile __local atomic_uintptr_t *object, intptr_t operand, memory_order order, memory_scope scope);
13658
+ intptr_t __ovld atomic_fetch_min_explicit(volatile __global atomic_intptr_t *object, uintptr_t operand, memory_order order, memory_scope scope);
13659
+ intptr_t __ovld atomic_fetch_min_explicit(volatile __local atomic_intptr_t *object, uintptr_t operand, memory_order order, memory_scope scope);
13660
+ long __ovld atomic_fetch_max_explicit(volatile __global atomic_long *object, long operand, memory_order order, memory_scope scope);
13661
+ long __ovld atomic_fetch_max_explicit(volatile __local atomic_long *object, long operand, memory_order order, memory_scope scope);
13662
+ ulong __ovld atomic_fetch_max_explicit(volatile __global atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13663
+ ulong __ovld atomic_fetch_max_explicit(volatile __local atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13664
+ uintptr_t __ovld atomic_fetch_add_explicit(volatile __global atomic_uintptr_t *object, ptrdiff_t operand, memory_order order, memory_scope scope);
13665
+ uintptr_t __ovld atomic_fetch_sub_explicit(volatile __local atomic_uintptr_t *object, ptrdiff_t operand, memory_order order, memory_scope scope);
13666
+ #endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13667
+ #endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
13668
+
13669
+ // The functionality added by cl_ext_float_atomics extension
13670
+ #if defined(cl_ext_float_atomics)
13671
+
13672
+ #if defined(__opencl_c_ext_fp16_global_atomic_load_store)
13673
+ void __ovld atomic_store(volatile __global atomic_half *object, half operand);
13674
+ void __ovld atomic_store_explicit(volatile __global atomic_half *object,
13675
+ half operand, memory_order order);
13676
+ void __ovld atomic_store_explicit(volatile __global atomic_half *object,
13677
+ half operand, memory_order order,
13678
+ memory_scope scope);
13679
+ half __ovld atomic_load(volatile __global atomic_half *object);
13680
+ half __ovld atomic_load_explicit(volatile __global atomic_half *object,
13681
+ memory_order order);
13682
+ half __ovld atomic_load_explicit(volatile __global atomic_half *object,
13683
+ memory_order order, memory_scope scope);
13684
+ half __ovld atomic_exchange(volatile __global atomic_half *object,
13685
+ half operand);
13686
+ half __ovld atomic_exchange_explicit(volatile __global atomic_half *object,
13687
+ half operand, memory_order order);
13688
+ half __ovld atomic_exchange_explicit(volatile __global atomic_half *object,
13689
+ half operand, memory_order order,
13690
+ memory_scope scope);
13691
+ #endif // defined(__opencl_c_ext_fp16_global_atomic_load_store)
13692
+
13693
+ #if defined(__opencl_c_ext_fp16_local_atomic_load_store)
13694
+ void __ovld atomic_store(volatile __local atomic_half *object, half operand);
13695
+ void __ovld atomic_store_explicit(volatile __local atomic_half *object,
13696
+ half operand, memory_order order);
13697
+ void __ovld atomic_store_explicit(volatile __local atomic_half *object,
13698
+ half operand, memory_order order,
13699
+ memory_scope scope);
13700
+ half __ovld atomic_load(volatile __local atomic_half *object);
13701
+ half __ovld atomic_load_explicit(volatile __local atomic_half *object,
13702
+ memory_order order);
13703
+ half __ovld atomic_load_explicit(volatile __local atomic_half *object,
13704
+ memory_order order, memory_scope scope);
13705
+ half __ovld atomic_exchange(volatile __local atomic_half *object, half operand);
13706
+ half __ovld atomic_exchange_explicit(volatile __local atomic_half *object,
13707
+ half operand, memory_order order);
13708
+ half __ovld atomic_exchange_explicit(volatile __local atomic_half *object,
13709
+ half operand, memory_order order,
13710
+ memory_scope scope);
13711
+ #endif // defined(__opencl_c_ext_fp16_local_atomic_load_store)
13712
+
13713
+ #if defined(__opencl_c_ext_fp16_global_atomic_load_store) && \
13714
+ defined(__opencl_c_ext_fp16_local_atomic_load_store)
13715
+ void __ovld atomic_store(volatile atomic_half *object, half operand);
13716
+ void __ovld atomic_store_explicit(volatile atomic_half *object, half operand,
13717
+ memory_order order);
13718
+ void __ovld atomic_store_explicit(volatile atomic_half *object, half operand,
13719
+ memory_order order, memory_scope scope);
13720
+ half __ovld atomic_load(volatile atomic_half *object);
13721
+ half __ovld atomic_load_explicit(volatile atomic_half *object,
13722
+ memory_order order);
13723
+ half __ovld atomic_load_explicit(volatile atomic_half *object,
13724
+ memory_order order, memory_scope scope);
13725
+ half __ovld atomic_exchange(volatile atomic_half *object, half operand);
13726
+ half __ovld atomic_exchange_explicit(volatile atomic_half *object, half operand,
13727
+ memory_order order);
13728
+ half __ovld atomic_exchange_explicit(volatile atomic_half *object, half operand,
13729
+ memory_order order, memory_scope scope);
13730
+ #endif // defined(__opencl_c_ext_fp16_global_atomic_load_store) &&
13731
+ // defined(__opencl_c_ext_fp16_local_atomic_load_store)
13732
+
13733
+ #if defined(__opencl_c_ext_fp16_global_atomic_min_max)
13734
+ half __ovld atomic_fetch_min(volatile __global atomic_half *object,
13735
+ half operand);
13736
+ half __ovld atomic_fetch_max(volatile __global atomic_half *object,
13737
+ half operand);
13738
+ half __ovld atomic_fetch_min_explicit(volatile __global atomic_half *object,
13739
+ half operand, memory_order order);
13740
+ half __ovld atomic_fetch_max_explicit(volatile __global atomic_half *object,
13741
+ half operand, memory_order order);
13742
+ half __ovld atomic_fetch_min_explicit(volatile __global atomic_half *object,
13743
+ half operand, memory_order order,
13744
+ memory_scope scope);
13745
+ half __ovld atomic_fetch_max_explicit(volatile __global atomic_half *object,
13746
+ half operand, memory_order order,
13747
+ memory_scope scope);
13748
+ #endif // defined(__opencl_c_ext_fp16_global_atomic_min_max)
13749
+
13750
+ #if defined(__opencl_c_ext_fp16_local_atomic_min_max)
13751
+ half __ovld atomic_fetch_min(volatile __local atomic_half *object,
13752
+ half operand);
13753
+ half __ovld atomic_fetch_max(volatile __local atomic_half *object,
13754
+ half operand);
13755
+ half __ovld atomic_fetch_min_explicit(volatile __local atomic_half *object,
13756
+ half operand, memory_order order);
13757
+ half __ovld atomic_fetch_max_explicit(volatile __local atomic_half *object,
13758
+ half operand, memory_order order);
13759
+ half __ovld atomic_fetch_min_explicit(volatile __local atomic_half *object,
13760
+ half operand, memory_order order,
13761
+ memory_scope scope);
13762
+ half __ovld atomic_fetch_max_explicit(volatile __local atomic_half *object,
13763
+ half operand, memory_order order,
13764
+ memory_scope scope);
13765
+ #endif // defined(__opencl_c_ext_fp16_local_atomic_min_max)
13766
+
13767
+ #if defined(__opencl_c_ext_fp16_global_atomic_min_max) && \
13768
+ defined(__opencl_c_ext_fp16_local_atomic_min_max)
13769
+ half __ovld atomic_fetch_min(volatile atomic_half *object, half operand);
13770
+ half __ovld atomic_fetch_max(volatile atomic_half *object, half operand);
13771
+ half __ovld atomic_fetch_min_explicit(volatile atomic_half *object,
13772
+ half operand, memory_order order);
13773
+ half __ovld atomic_fetch_max_explicit(volatile atomic_half *object,
13774
+ half operand, memory_order order);
13775
+ half __ovld atomic_fetch_min_explicit(volatile atomic_half *object,
13776
+ half operand, memory_order order,
13777
+ memory_scope scope);
13778
+ half __ovld atomic_fetch_max_explicit(volatile atomic_half *object,
13779
+ half operand, memory_order order,
13780
+ memory_scope scope);
13781
+ #endif // defined(__opencl_c_ext_fp16_global_atomic_min_max) && \
13782
+ defined(__opencl_c_ext_fp16_local_atomic_min_max)
13783
+
13784
+ #if defined(__opencl_c_ext_fp32_global_atomic_min_max)
13785
+ float __ovld atomic_fetch_min(volatile __global atomic_float *object,
13786
+ float operand);
13787
+ float __ovld atomic_fetch_max(volatile __global atomic_float *object,
13788
+ float operand);
13789
+ float __ovld atomic_fetch_min_explicit(volatile __global atomic_float *object,
13790
+ float operand, memory_order order);
13791
+ float __ovld atomic_fetch_max_explicit(volatile __global atomic_float *object,
13792
+ float operand, memory_order order);
13793
+ float __ovld atomic_fetch_min_explicit(volatile __global atomic_float *object,
13794
+ float operand, memory_order order,
13795
+ memory_scope scope);
13796
+ float __ovld atomic_fetch_max_explicit(volatile __global atomic_float *object,
13797
+ float operand, memory_order order,
13798
+ memory_scope scope);
13799
+ #endif // defined(__opencl_c_ext_fp32_global_atomic_min_max)
13800
+
13801
+ #if defined(__opencl_c_ext_fp32_local_atomic_min_max)
13802
+ float __ovld atomic_fetch_min(volatile __local atomic_float *object,
13803
+ float operand);
13804
+ float __ovld atomic_fetch_max(volatile __local atomic_float *object,
13805
+ float operand);
13806
+ float __ovld atomic_fetch_min_explicit(volatile __local atomic_float *object,
13807
+ float operand, memory_order order);
13808
+ float __ovld atomic_fetch_max_explicit(volatile __local atomic_float *object,
13809
+ float operand, memory_order order);
13810
+ float __ovld atomic_fetch_min_explicit(volatile __local atomic_float *object,
13811
+ float operand, memory_order order,
13812
+ memory_scope scope);
13813
+ float __ovld atomic_fetch_max_explicit(volatile __local atomic_float *object,
13814
+ float operand, memory_order order,
13815
+ memory_scope scope);
13816
+ #endif // defined(__opencl_c_ext_fp32_local_atomic_min_max)
13817
+
13818
+ #if defined(__opencl_c_ext_fp32_global_atomic_min_max) && \
13819
+ defined(__opencl_c_ext_fp32_local_atomic_min_max)
13820
+ float __ovld atomic_fetch_min(volatile atomic_float *object, float operand);
13821
+ float __ovld atomic_fetch_max(volatile atomic_float *object, float operand);
13822
+ float __ovld atomic_fetch_min_explicit(volatile atomic_float *object,
13823
+ float operand, memory_order order);
13824
+ float __ovld atomic_fetch_max_explicit(volatile atomic_float *object,
13825
+ float operand, memory_order order);
13826
+ float __ovld atomic_fetch_min_explicit(volatile atomic_float *object,
13827
+ float operand, memory_order order,
13828
+ memory_scope scope);
13829
+ float __ovld atomic_fetch_max_explicit(volatile atomic_float *object,
13830
+ float operand, memory_order order,
13831
+ memory_scope scope);
13832
+ #endif // defined(__opencl_c_ext_fp32_global_atomic_min_max) && \
13833
+ defined(__opencl_c_ext_fp32_local_atomic_min_max)
13834
+
13835
+ #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13836
+ #if defined(__opencl_c_ext_fp64_global_atomic_min_max)
13837
+ double __ovld atomic_fetch_min(volatile __global atomic_double *object,
13838
+ double operand);
13839
+ double __ovld atomic_fetch_max(volatile __global atomic_double *object,
13840
+ double operand);
13841
+ double __ovld atomic_fetch_min_explicit(volatile __global atomic_double *object,
13842
+ double operand, memory_order order);
13843
+ double __ovld atomic_fetch_max_explicit(volatile __global atomic_double *object,
13844
+ double operand, memory_order order);
13845
+ double __ovld atomic_fetch_min_explicit(volatile __global atomic_double *object,
13846
+ double operand, memory_order order,
13847
+ memory_scope scope);
13848
+ double __ovld atomic_fetch_max_explicit(volatile __global atomic_double *object,
13849
+ double operand, memory_order order,
13850
+ memory_scope scope);
13851
+ #endif // defined(__opencl_c_ext_fp64_global_atomic_min_max)
13852
+
13853
+ #if defined(__opencl_c_ext_fp64_local_atomic_min_max)
13854
+ double __ovld atomic_fetch_min(volatile __local atomic_double *object,
13855
+ double operand);
13856
+ double __ovld atomic_fetch_max(volatile __local atomic_double *object,
13857
+ double operand);
13858
+ double __ovld atomic_fetch_min_explicit(volatile __local atomic_double *object,
13859
+ double operand, memory_order order);
13860
+ double __ovld atomic_fetch_max_explicit(volatile __local atomic_double *object,
13861
+ double operand, memory_order order);
13862
+ double __ovld atomic_fetch_min_explicit(volatile __local atomic_double *object,
13863
+ double operand, memory_order order,
13864
+ memory_scope scope);
13865
+ double __ovld atomic_fetch_max_explicit(volatile __local atomic_double *object,
13866
+ double operand, memory_order order,
13867
+ memory_scope scope);
13868
+ #endif // defined(__opencl_c_ext_fp64_local_atomic_min_max)
13869
+
13870
+ #if defined(__opencl_c_ext_fp64_global_atomic_min_max) && \
13871
+ defined(__opencl_c_ext_fp64_local_atomic_min_max)
13872
+ double __ovld atomic_fetch_min(volatile atomic_double *object, double operand);
13873
+ double __ovld atomic_fetch_max(volatile atomic_double *object, double operand);
13874
+ double __ovld atomic_fetch_min_explicit(volatile atomic_double *object,
13875
+ double operand, memory_order order);
13876
+ double __ovld atomic_fetch_max_explicit(volatile atomic_double *object,
13877
+ double operand, memory_order order);
13878
+ double __ovld atomic_fetch_min_explicit(volatile atomic_double *object,
13879
+ double operand, memory_order order,
13880
+ memory_scope scope);
13881
+ double __ovld atomic_fetch_max_explicit(volatile atomic_double *object,
13882
+ double operand, memory_order order,
13883
+ memory_scope scope);
13884
+ #endif // defined(__opencl_c_ext_fp64_global_atomic_min_max) && \
13885
+ defined(__opencl_c_ext_fp64_local_atomic_min_max)
13886
+ #endif // defined(cl_khr_int64_base_atomics) && \
13887
+ defined(cl_khr_int64_extended_atomics)
13888
+
13889
+ #if defined(__opencl_c_ext_fp16_global_atomic_add)
13890
+ half __ovld atomic_fetch_add(volatile __global atomic_half *object,
13891
+ half operand);
13892
+ half __ovld atomic_fetch_sub(volatile __global atomic_half *object,
13893
+ half operand);
13894
+ half __ovld atomic_fetch_add_explicit(volatile __global atomic_half *object,
13895
+ half operand, memory_order order);
13896
+ half __ovld atomic_fetch_sub_explicit(volatile __global atomic_half *object,
13897
+ half operand, memory_order order);
13898
+ half __ovld atomic_fetch_add_explicit(volatile __global atomic_half *object,
13899
+ half operand, memory_order order,
13900
+ memory_scope scope);
13901
+ half __ovld atomic_fetch_sub_explicit(volatile __global atomic_half *object,
13902
+ half operand, memory_order order,
13903
+ memory_scope scope);
13904
+ #endif // defined(__opencl_c_ext_fp16_global_atomic_add)
13905
+
13906
+ #if defined(__opencl_c_ext_fp16_local_atomic_add)
13907
+ half __ovld atomic_fetch_add(volatile __local atomic_half *object,
13908
+ half operand);
13909
+ half __ovld atomic_fetch_sub(volatile __local atomic_half *object,
13910
+ half operand);
13911
+ half __ovld atomic_fetch_add_explicit(volatile __local atomic_half *object,
13912
+ half operand, memory_order order);
13913
+ half __ovld atomic_fetch_sub_explicit(volatile __local atomic_half *object,
13914
+ half operand, memory_order order);
13915
+ half __ovld atomic_fetch_add_explicit(volatile __local atomic_half *object,
13916
+ half operand, memory_order order,
13917
+ memory_scope scope);
13918
+ half __ovld atomic_fetch_sub_explicit(volatile __local atomic_half *object,
13919
+ half operand, memory_order order,
13920
+ memory_scope scope);
13921
+ #endif // defined(__opencl_c_ext_fp16_local_atomic_add)
13922
+
13923
+ #if defined(__opencl_c_ext_fp16_global_atomic_add) && \
13924
+ defined(__opencl_c_ext_fp16_local_atomic_add)
13925
+ half __ovld atomic_fetch_add(volatile atomic_half *object, half operand);
13926
+ half __ovld atomic_fetch_sub(volatile atomic_half *object, half operand);
13927
+ half __ovld atomic_fetch_add_explicit(volatile atomic_half *object,
13928
+ half operand, memory_order order);
13929
+ half __ovld atomic_fetch_sub_explicit(volatile atomic_half *object,
13930
+ half operand, memory_order order);
13931
+ half __ovld atomic_fetch_add_explicit(volatile atomic_half *object,
13932
+ half operand, memory_order order,
13933
+ memory_scope scope);
13934
+ half __ovld atomic_fetch_sub_explicit(volatile atomic_half *object,
13935
+ half operand, memory_order order,
13936
+ memory_scope scope);
13937
+ #endif // defined(__opencl_c_ext_fp16_global_atomic_add) && \
13938
+ defined(__opencl_c_ext_fp16_local_atomic_add)
13939
+
13940
+ #if defined(__opencl_c_ext_fp32_global_atomic_add)
13941
+ float __ovld atomic_fetch_add(volatile __global atomic_float *object,
13942
+ float operand);
13943
+ float __ovld atomic_fetch_sub(volatile __global atomic_float *object,
13944
+ float operand);
13945
+ float __ovld atomic_fetch_add_explicit(volatile __global atomic_float *object,
13946
+ float operand, memory_order order);
13947
+ float __ovld atomic_fetch_sub_explicit(volatile __global atomic_float *object,
13948
+ float operand, memory_order order);
13949
+ float __ovld atomic_fetch_add_explicit(volatile __global atomic_float *object,
13950
+ float operand, memory_order order,
13951
+ memory_scope scope);
13952
+ float __ovld atomic_fetch_sub_explicit(volatile __global atomic_float *object,
13953
+ float operand, memory_order order,
13954
+ memory_scope scope);
13955
+ #endif // defined(__opencl_c_ext_fp32_global_atomic_add)
13956
+
13957
+ #if defined(__opencl_c_ext_fp32_local_atomic_add)
13958
+ float __ovld atomic_fetch_add(volatile __local atomic_float *object,
13959
+ float operand);
13960
+ float __ovld atomic_fetch_sub(volatile __local atomic_float *object,
13961
+ float operand);
13962
+ float __ovld atomic_fetch_add_explicit(volatile __local atomic_float *object,
13963
+ float operand, memory_order order);
13964
+ float __ovld atomic_fetch_sub_explicit(volatile __local atomic_float *object,
13965
+ float operand, memory_order order);
13966
+ float __ovld atomic_fetch_add_explicit(volatile __local atomic_float *object,
13967
+ float operand, memory_order order,
13968
+ memory_scope scope);
13969
+ float __ovld atomic_fetch_sub_explicit(volatile __local atomic_float *object,
13970
+ float operand, memory_order order,
13971
+ memory_scope scope);
13972
+ #endif // defined(__opencl_c_ext_fp32_local_atomic_add)
13973
+
13974
+ #if defined(__opencl_c_ext_fp32_global_atomic_add) && \
13975
+ defined(__opencl_c_ext_fp32_local_atomic_add)
13976
+ float __ovld atomic_fetch_add(volatile atomic_float *object, float operand);
13977
+ float __ovld atomic_fetch_sub(volatile atomic_float *object, float operand);
13978
+ float __ovld atomic_fetch_add_explicit(volatile atomic_float *object,
13979
+ float operand, memory_order order);
13980
+ float __ovld atomic_fetch_sub_explicit(volatile atomic_float *object,
13981
+ float operand, memory_order order);
13982
+ float __ovld atomic_fetch_add_explicit(volatile atomic_float *object,
13983
+ float operand, memory_order order,
13984
+ memory_scope scope);
13985
+ float __ovld atomic_fetch_sub_explicit(volatile atomic_float *object,
13986
+ float operand, memory_order order,
13987
+ memory_scope scope);
13988
+ #endif // defined(__opencl_c_ext_fp32_global_atomic_add) && \
13989
+ defined(__opencl_c_ext_fp32_local_atomic_add)
13990
+
13991
+ #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13992
+ #if defined(__opencl_c_ext_fp64_global_atomic_add)
13993
+ double __ovld atomic_fetch_add(volatile __global atomic_double *object,
13994
+ double operand);
13995
+ double __ovld atomic_fetch_sub(volatile __global atomic_double *object,
13996
+ double operand);
13997
+ double __ovld atomic_fetch_add_explicit(volatile __global atomic_double *object,
13998
+ double operand, memory_order order);
13999
+ double __ovld atomic_fetch_sub_explicit(volatile __global atomic_double *object,
14000
+ double operand, memory_order order);
14001
+ double __ovld atomic_fetch_add_explicit(volatile __global atomic_double *object,
14002
+ double operand, memory_order order,
14003
+ memory_scope scope);
14004
+ double __ovld atomic_fetch_sub_explicit(volatile __global atomic_double *object,
14005
+ double operand, memory_order order,
14006
+ memory_scope scope);
14007
+ #endif // defined(__opencl_c_ext_fp64_global_atomic_add)
14008
+
14009
+ #if defined(__opencl_c_ext_fp64_local_atomic_add)
14010
+ double __ovld atomic_fetch_add(volatile __local atomic_double *object,
14011
+ double operand);
14012
+ double __ovld atomic_fetch_sub(volatile __local atomic_double *object,
14013
+ double operand);
14014
+ double __ovld atomic_fetch_add_explicit(volatile __local atomic_double *object,
14015
+ double operand, memory_order order);
14016
+ double __ovld atomic_fetch_sub_explicit(volatile __local atomic_double *object,
14017
+ double operand, memory_order order);
14018
+ double __ovld atomic_fetch_add_explicit(volatile __local atomic_double *object,
14019
+ double operand, memory_order order,
14020
+ memory_scope scope);
14021
+ double __ovld atomic_fetch_sub_explicit(volatile __local atomic_double *object,
14022
+ double operand, memory_order order,
14023
+ memory_scope scope);
14024
+ #endif // defined(__opencl_c_ext_fp64_local_atomic_add)
14025
+
14026
+ #if defined(__opencl_c_ext_fp64_global_atomic_add) && \
14027
+ defined(__opencl_c_ext_fp64_local_atomic_add)
14028
+ double __ovld atomic_fetch_add(volatile atomic_double *object, double operand);
14029
+ double __ovld atomic_fetch_sub(volatile atomic_double *object, double operand);
14030
+ double __ovld atomic_fetch_add_explicit(volatile atomic_double *object,
14031
+ double operand, memory_order order);
14032
+ double __ovld atomic_fetch_sub_explicit(volatile atomic_double *object,
14033
+ double operand, memory_order order);
14034
+ double __ovld atomic_fetch_add_explicit(volatile atomic_double *object,
14035
+ double operand, memory_order order,
14036
+ memory_scope scope);
14037
+ double __ovld atomic_fetch_sub_explicit(volatile atomic_double *object,
14038
+ double operand, memory_order order,
14039
+ memory_scope scope);
14040
+ #endif // defined(__opencl_c_ext_fp64_global_atomic_add) && \
14041
+ defined(__opencl_c_ext_fp64_local_atomic_add)
14042
+ #endif // defined(cl_khr_int64_base_atomics) && \
14043
+ defined(cl_khr_int64_extended_atomics)
14044
+
14045
+ #endif // cl_ext_float_atomics
13533
14046
 
13534
14047
  // atomic_store()
13535
14048
 
14049
+ #if defined(__opencl_c_atomic_order_seq_cst) && defined(__opencl_c_atomic_scope_device)
14050
+ #if defined(__opencl_c_generic_address_space)
13536
14051
  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
14052
  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
14053
  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);
14054
+
13545
14055
  #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13546
14056
  #ifdef cl_khr_fp64
13547
14057
  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
14058
  #endif //cl_khr_fp64
13551
14059
  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
14060
  void __ovld atomic_store(volatile atomic_ulong *object, ulong desired);
14061
+ #endif
14062
+ #endif //defined(__opencl_c_generic_address_space)
14063
+ #if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
14064
+ void __ovld atomic_store(volatile __global atomic_int *object, int desired);
14065
+ void __ovld atomic_store(volatile __local atomic_int *object, int desired);
14066
+ void __ovld atomic_store(volatile __global atomic_uint *object, uint desired);
14067
+ void __ovld atomic_store(volatile __local atomic_uint *object, uint desired);
14068
+ void __ovld atomic_store(volatile __global atomic_float *object, float desired);
14069
+ void __ovld atomic_store(volatile __local atomic_float *object, float desired);
14070
+ #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14071
+ #ifdef cl_khr_fp64
14072
+ void __ovld atomic_store(volatile __global atomic_double *object, double desired);
14073
+ void __ovld atomic_store(volatile __local atomic_double *object, double desired);
14074
+ #endif //cl_khr_fp64
14075
+ void __ovld atomic_store(volatile __global atomic_long *object, long desired);
14076
+ void __ovld atomic_store(volatile __local atomic_long *object, long desired);
14077
+ void __ovld atomic_store(volatile __global atomic_ulong *object, ulong desired);
14078
+ void __ovld atomic_store(volatile __local atomic_ulong *object, ulong desired);
14079
+ #endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14080
+ #endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
14081
+ #endif
14082
+
14083
+ #if defined(__opencl_c_atomic_scope_device)
14084
+ #if defined(__opencl_c_generic_address_space)
14085
+ void __ovld atomic_store_explicit(volatile atomic_int *object, int desired, memory_order order);
14086
+ void __ovld atomic_store_explicit(volatile atomic_uint *object, uint desired, memory_order order);
14087
+ void __ovld atomic_store_explicit(volatile atomic_float *object, float desired, memory_order order);
14088
+ #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14089
+ #ifdef cl_khr_fp64
14090
+ void __ovld atomic_store_explicit(volatile atomic_double *object, double desired, memory_order order);
14091
+ #endif //cl_khr_fp64
14092
+ void __ovld atomic_store_explicit(volatile atomic_long *object, long desired, memory_order order);
13555
14093
  void __ovld atomic_store_explicit(volatile atomic_ulong *object, ulong desired, memory_order order);
14094
+ #endif
14095
+ #endif //defined(__opencl_c_generic_address_space)
14096
+ #if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
14097
+ void __ovld atomic_store_explicit(volatile __global atomic_int *object, int desired, memory_order order);
14098
+ void __ovld atomic_store_explicit(volatile __local atomic_int *object, int desired, memory_order order);
14099
+ void __ovld atomic_store_explicit(volatile __global atomic_uint *object, uint desired, memory_order order);
14100
+ void __ovld atomic_store_explicit(volatile __local atomic_uint *object, uint desired, memory_order order);
14101
+ void __ovld atomic_store_explicit(volatile __global atomic_float *object, float desired, memory_order order);
14102
+ void __ovld atomic_store_explicit(volatile __local atomic_float *object, float desired, memory_order order);
14103
+ #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14104
+ #ifdef cl_khr_fp64
14105
+ void __ovld atomic_store_explicit(volatile __global atomic_double *object, double desired, memory_order order);
14106
+ void __ovld atomic_store_explicit(volatile __local atomic_double *object, double desired, memory_order order);
14107
+ #endif
14108
+ void __ovld atomic_store_explicit(volatile __global atomic_long *object, long desired, memory_order order);
14109
+ void __ovld atomic_store_explicit(volatile __local atomic_long *object, long desired, memory_order order);
14110
+ void __ovld atomic_store_explicit(volatile __global atomic_ulong *object, ulong desired, memory_order order);
14111
+ void __ovld atomic_store_explicit(volatile __local atomic_ulong *object, ulong desired, memory_order order);
14112
+ #endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14113
+ #endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
14114
+ #endif
14115
+
14116
+ #if defined(__opencl_c_generic_address_space)
14117
+ void __ovld atomic_store_explicit(volatile atomic_int *object, int desired, memory_order order, memory_scope scope);
14118
+ void __ovld atomic_store_explicit(volatile atomic_uint *object, uint desired, memory_order order, memory_scope scope);
14119
+ void __ovld atomic_store_explicit(volatile atomic_float *object, float desired, memory_order order, memory_scope scope);
14120
+ #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14121
+ #ifdef cl_khr_fp64
14122
+ void __ovld atomic_store_explicit(volatile atomic_double *object, double desired, memory_order order, memory_scope scope);
14123
+ #endif //cl_khr_fp64
14124
+ void __ovld atomic_store_explicit(volatile atomic_long *object, long desired, memory_order order, memory_scope scope);
13556
14125
  void __ovld atomic_store_explicit(volatile atomic_ulong *object, ulong desired, memory_order order, memory_scope scope);
13557
14126
  #endif
14127
+ #endif //defined(__opencl_c_generic_address_space)
14128
+ #if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
14129
+ void __ovld atomic_store_explicit(volatile __global atomic_int *object, int desired, memory_order order, memory_scope scope);
14130
+ void __ovld atomic_store_explicit(volatile __local atomic_int *object, int desired, memory_order order, memory_scope scope);
14131
+ void __ovld atomic_store_explicit(volatile __global atomic_uint *object, uint desired, memory_order order, memory_scope scope);
14132
+ void __ovld atomic_store_explicit(volatile __local atomic_uint *object, uint desired, memory_order order, memory_scope scope);
14133
+ void __ovld atomic_store_explicit(volatile __global atomic_float *object, float desired, memory_order order, memory_scope scope);
14134
+ void __ovld atomic_store_explicit(volatile __local atomic_float *object, float desired, memory_order order, memory_scope scope);
14135
+ #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14136
+ #ifdef cl_khr_fp64
14137
+ void __ovld atomic_store_explicit(volatile __global atomic_double *object, double desired, memory_order order, memory_scope scope);
14138
+ void __ovld atomic_store_explicit(volatile __local atomic_double *object, double desired, memory_order order, memory_scope scope);
14139
+ #endif //cl_khr_fp64
14140
+ void __ovld atomic_store_explicit(volatile __global atomic_long *object, long desired, memory_order order, memory_scope scope);
14141
+ void __ovld atomic_store_explicit(volatile __local atomic_long *object, long desired, memory_order order, memory_scope scope);
14142
+ void __ovld atomic_store_explicit(volatile __global atomic_ulong *object, ulong desired, memory_order order, memory_scope scope);
14143
+ void __ovld atomic_store_explicit(volatile __local atomic_ulong *object, ulong desired, memory_order order, memory_scope scope);
14144
+ #endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14145
+ #endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
13558
14146
 
13559
14147
  // atomic_load()
13560
-
14148
+ #if defined(__opencl_c_atomic_order_seq_cst) && defined(__opencl_c_atomic_scope_device)
14149
+ #if defined(__opencl_c_generic_address_space)
13561
14150
  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
14151
  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
14152
  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
14153
  #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13571
14154
  #ifdef cl_khr_fp64
13572
14155
  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
14156
  #endif //cl_khr_fp64
13576
14157
  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
14158
  ulong __ovld atomic_load(volatile atomic_ulong *object);
14159
+ #endif
14160
+ #endif //defined(__opencl_c_generic_address_space)
14161
+ #if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
14162
+ int __ovld atomic_load(volatile __global atomic_int *object);
14163
+ int __ovld atomic_load(volatile __local atomic_int *object);
14164
+ uint __ovld atomic_load(volatile __global atomic_uint *object);
14165
+ uint __ovld atomic_load(volatile __local atomic_uint *object);
14166
+ float __ovld atomic_load(volatile __global atomic_float *object);
14167
+ float __ovld atomic_load(volatile __local atomic_float *object);
14168
+ #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14169
+ #ifdef cl_khr_fp64
14170
+ double __ovld atomic_load(volatile __global atomic_double *object);
14171
+ double __ovld atomic_load(volatile __local atomic_double *object);
14172
+ #endif //cl_khr_fp64
14173
+ long __ovld atomic_load(volatile __global atomic_long *object);
14174
+ long __ovld atomic_load(volatile __local atomic_long *object);
14175
+ ulong __ovld atomic_load(volatile __global atomic_ulong *object);
14176
+ ulong __ovld atomic_load(volatile __local atomic_ulong *object);
14177
+ #endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14178
+ #endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
14179
+ #endif
14180
+
14181
+ #if defined(__opencl_c_atomic_scope_device)
14182
+ #if defined(__opencl_c_generic_address_space)
14183
+ int __ovld atomic_load_explicit(volatile atomic_int *object, memory_order order);
14184
+ uint __ovld atomic_load_explicit(volatile atomic_uint *object, memory_order order);
14185
+ float __ovld atomic_load_explicit(volatile atomic_float *object, memory_order order);
14186
+ #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14187
+ #ifdef cl_khr_fp64
14188
+ double __ovld atomic_load_explicit(volatile atomic_double *object, memory_order order);
14189
+ #endif //cl_khr_fp64
14190
+ long __ovld atomic_load_explicit(volatile atomic_long *object, memory_order order);
13580
14191
  ulong __ovld atomic_load_explicit(volatile atomic_ulong *object, memory_order order);
14192
+ #endif
14193
+ #endif //defined(__opencl_c_generic_address_space)
14194
+ #if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
14195
+ int __ovld atomic_load_explicit(volatile __global atomic_int *object, memory_order order);
14196
+ int __ovld atomic_load_explicit(volatile __local atomic_int *object, memory_order order);
14197
+ uint __ovld atomic_load_explicit(volatile __global atomic_uint *object, memory_order order);
14198
+ uint __ovld atomic_load_explicit(volatile __local atomic_uint *object, memory_order order);
14199
+ float __ovld atomic_load_explicit(volatile __global atomic_float *object, memory_order order);
14200
+ float __ovld atomic_load_explicit(volatile __local atomic_float *object, memory_order order);
14201
+ #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14202
+ #ifdef cl_khr_fp64
14203
+ double __ovld atomic_load_explicit(volatile __global atomic_double *object, memory_order order);
14204
+ double __ovld atomic_load_explicit(volatile __local atomic_double *object, memory_order order);
14205
+ #endif //cl_khr_fp64
14206
+ long __ovld atomic_load_explicit(volatile __global atomic_long *object, memory_order order);
14207
+ long __ovld atomic_load_explicit(volatile __local atomic_long *object, memory_order order);
14208
+ ulong __ovld atomic_load_explicit(volatile __global atomic_ulong *object, memory_order order);
14209
+ ulong __ovld atomic_load_explicit(volatile __local atomic_ulong *object, memory_order order);
14210
+ #endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14211
+ #endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
14212
+ #endif
14213
+
14214
+ #if defined(__opencl_c_generic_address_space)
14215
+ int __ovld atomic_load_explicit(volatile atomic_int *object, memory_order order, memory_scope scope);
14216
+ uint __ovld atomic_load_explicit(volatile atomic_uint *object, memory_order order, memory_scope scope);
14217
+ float __ovld atomic_load_explicit(volatile atomic_float *object, memory_order order, memory_scope scope);
14218
+ #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14219
+ #ifdef cl_khr_fp64
14220
+ double __ovld atomic_load_explicit(volatile atomic_double *object, memory_order order, memory_scope scope);
14221
+ #endif //cl_khr_fp64
14222
+ long __ovld atomic_load_explicit(volatile atomic_long *object, memory_order order, memory_scope scope);
13581
14223
  ulong __ovld atomic_load_explicit(volatile atomic_ulong *object, memory_order order, memory_scope scope);
13582
14224
  #endif
14225
+ #endif //defined(__opencl_c_generic_address_space)
14226
+ #if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
14227
+ int __ovld atomic_load_explicit(volatile __global atomic_int *object, memory_order order, memory_scope scope);
14228
+ int __ovld atomic_load_explicit(volatile __local atomic_int *object, memory_order order, memory_scope scope);
14229
+ uint __ovld atomic_load_explicit(volatile __global atomic_uint *object, memory_order order, memory_scope scope);
14230
+ uint __ovld atomic_load_explicit(volatile __local atomic_uint *object, memory_order order, memory_scope scope);
14231
+ float __ovld atomic_load_explicit(volatile __global atomic_float *object, memory_order order, memory_scope scope);
14232
+ float __ovld atomic_load_explicit(volatile __local atomic_float *object, memory_order order, memory_scope scope);
14233
+ #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14234
+ #ifdef cl_khr_fp64
14235
+ double __ovld atomic_load_explicit(volatile __global atomic_double *object, memory_order order, memory_scope scope);
14236
+ double __ovld atomic_load_explicit(volatile __local atomic_double *object, memory_order order, memory_scope scope);
14237
+ #endif
14238
+ long __ovld atomic_load_explicit(volatile __global atomic_long *object, memory_order order, memory_scope scope);
14239
+ long __ovld atomic_load_explicit(volatile __local atomic_long *object, memory_order order, memory_scope scope);
14240
+ ulong __ovld atomic_load_explicit(volatile __global atomic_ulong *object, memory_order order, memory_scope scope);
14241
+ ulong __ovld atomic_load_explicit(volatile __local atomic_ulong *object, memory_order order, memory_scope scope);
14242
+ #endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14243
+ #endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
13583
14244
 
13584
14245
  // atomic_exchange()
13585
14246
 
14247
+ #if defined(__opencl_c_atomic_order_seq_cst) && defined(__opencl_c_atomic_scope_device)
14248
+ #if defined(__opencl_c_generic_address_space)
13586
14249
  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
14250
  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
14251
  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
14252
  #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13596
14253
  #ifdef cl_khr_fp64
13597
14254
  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
14255
  #endif //cl_khr_fp64
13601
14256
  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
14257
  ulong __ovld atomic_exchange(volatile atomic_ulong *object, ulong desired);
14258
+ #endif
14259
+ #endif //defined(__opencl_c_generic_address_space)
14260
+ #if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
14261
+ int __ovld atomic_exchange(volatile __global atomic_int *object, int desired);
14262
+ int __ovld atomic_exchange(volatile __local atomic_int *object, int desired);
14263
+ uint __ovld atomic_exchange(volatile __global atomic_uint *object, uint desired);
14264
+ uint __ovld atomic_exchange(volatile __local atomic_uint *object, uint desired);
14265
+ float __ovld atomic_exchange(volatile __global atomic_float *object, float desired);
14266
+ float __ovld atomic_exchange(volatile __local atomic_float *object, float desired);
14267
+ #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14268
+ #ifdef cl_khr_fp64
14269
+ double __ovld atomic_exchange(volatile __global atomic_double *object, double desired);
14270
+ double __ovld atomic_exchange(volatile __local atomic_double *object, double desired);
14271
+ #endif //cl_khr_fp64
14272
+ long __ovld atomic_exchange(volatile __global atomic_long *object, long desired);
14273
+ long __ovld atomic_exchange(volatile __local atomic_long *object, long desired);
14274
+ ulong __ovld atomic_exchange(volatile __global atomic_ulong *object, ulong desired);
14275
+ ulong __ovld atomic_exchange(volatile __local atomic_ulong *object, ulong desired);
14276
+ #endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14277
+ #endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
14278
+ #endif
14279
+
14280
+ #if defined(__opencl_c_atomic_scope_device)
14281
+ #if defined(__opencl_c_generic_address_space)
14282
+ int __ovld atomic_exchange_explicit(volatile atomic_int *object, int desired, memory_order order);
14283
+ uint __ovld atomic_exchange_explicit(volatile atomic_uint *object, uint desired, memory_order order);
14284
+ float __ovld atomic_exchange_explicit(volatile atomic_float *object, float desired, memory_order order);
14285
+ #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14286
+ #ifdef cl_khr_fp64
14287
+ double __ovld atomic_exchange_explicit(volatile atomic_double *object, double desired, memory_order order);
14288
+ #endif //cl_khr_fp64
14289
+ long __ovld atomic_exchange_explicit(volatile atomic_long *object, long desired, memory_order order);
13605
14290
  ulong __ovld atomic_exchange_explicit(volatile atomic_ulong *object, ulong desired, memory_order order);
14291
+ #endif
14292
+ #endif //defined(__opencl_c_generic_address_space)
14293
+ #if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
14294
+ int __ovld atomic_exchange_explicit(volatile __global atomic_int *object, int desired, memory_order order);
14295
+ int __ovld atomic_exchange_explicit(volatile __local atomic_int *object, int desired, memory_order order);
14296
+ uint __ovld atomic_exchange_explicit(volatile __global atomic_uint *object, uint desired, memory_order order);
14297
+ uint __ovld atomic_exchange_explicit(volatile __local atomic_uint *object, uint desired, memory_order order);
14298
+ float __ovld atomic_exchange_explicit(volatile __global atomic_float *object, float desired, memory_order order);
14299
+ float __ovld atomic_exchange_explicit(volatile __local atomic_float *object, float desired, memory_order order);
14300
+ #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14301
+ #ifdef cl_khr_fp64
14302
+ double __ovld atomic_exchange_explicit(volatile __global atomic_double *object, double desired, memory_order order);
14303
+ double __ovld atomic_exchange_explicit(volatile __local atomic_double *object, double desired, memory_order order);
14304
+ #endif //cl_khr_fp64
14305
+ long __ovld atomic_exchange_explicit(volatile __global atomic_long *object, long desired, memory_order order);
14306
+ long __ovld atomic_exchange_explicit(volatile __local atomic_long *object, long desired, memory_order order);
14307
+ ulong __ovld atomic_exchange_explicit(volatile __global atomic_ulong *object, ulong desired, memory_order order);
14308
+ ulong __ovld atomic_exchange_explicit(volatile __local atomic_ulong *object, ulong desired, memory_order order);
14309
+ #endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)wi
14310
+ #endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
14311
+ #endif
14312
+
14313
+ #if defined(__opencl_c_generic_address_space)
14314
+ int __ovld atomic_exchange_explicit(volatile atomic_int *object, int desired, memory_order order, memory_scope scope);
14315
+ uint __ovld atomic_exchange_explicit(volatile atomic_uint *object, uint desired, memory_order order, memory_scope scope);
14316
+ float __ovld atomic_exchange_explicit(volatile atomic_float *object, float desired, memory_order order, memory_scope scope);
14317
+ #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14318
+ #ifdef cl_khr_fp64
14319
+ double __ovld atomic_exchange_explicit(volatile atomic_double *object, double desired, memory_order order, memory_scope scope);
14320
+ #endif //cl_khr_fp64
14321
+ long __ovld atomic_exchange_explicit(volatile atomic_long *object, long desired, memory_order order, memory_scope scope);
13606
14322
  ulong __ovld atomic_exchange_explicit(volatile atomic_ulong *object, ulong desired, memory_order order, memory_scope scope);
13607
14323
  #endif
14324
+ #endif //defined(__opencl_c_generic_address_space)
14325
+ #if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
14326
+ int __ovld atomic_exchange_explicit(volatile __global atomic_int *object, int desired, memory_order order, memory_scope scope);
14327
+ int __ovld atomic_exchange_explicit(volatile __local atomic_int *object, int desired, memory_order order, memory_scope scope);
14328
+ uint __ovld atomic_exchange_explicit(volatile __global atomic_uint *object, uint desired, memory_order order, memory_scope scope);
14329
+ uint __ovld atomic_exchange_explicit(volatile __local atomic_uint *object, uint desired, memory_order order, memory_scope scope);
14330
+ float __ovld atomic_exchange_explicit(volatile __global atomic_float *object, float desired, memory_order order, memory_scope scope);
14331
+ float __ovld atomic_exchange_explicit(volatile __local atomic_float *object, float desired, memory_order order, memory_scope scope);
14332
+ #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14333
+ #ifdef cl_khr_fp64
14334
+ double __ovld atomic_exchange_explicit(volatile __global atomic_double *object, double desired, memory_order order, memory_scope scope);
14335
+ double __ovld atomic_exchange_explicit(volatile __local atomic_double *object, double desired, memory_order order, memory_scope scope);
14336
+ #endif //cl_khr_fp64
14337
+ long __ovld atomic_exchange_explicit(volatile __global atomic_long *object, long desired, memory_order order, memory_scope scope);
14338
+ long __ovld atomic_exchange_explicit(volatile __local atomic_long *object, long desired, memory_order order, memory_scope scope);
14339
+ ulong __ovld atomic_exchange_explicit(volatile __global atomic_ulong *object, ulong desired, memory_order order, memory_scope scope);
14340
+ ulong __ovld atomic_exchange_explicit(volatile __local atomic_ulong *object, ulong desired, memory_order order, memory_scope scope);
14341
+ #endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14342
+ #endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
13608
14343
 
13609
14344
  // atomic_compare_exchange_strong() and atomic_compare_exchange_weak()
13610
-
14345
+ #if defined(__opencl_c_atomic_order_seq_cst) && defined(__opencl_c_atomic_scope_device)
14346
+ #if defined(__opencl_c_generic_address_space)
13611
14347
  bool __ovld atomic_compare_exchange_strong(volatile atomic_int *object, int *expected, int desired);
14348
+ bool __ovld atomic_compare_exchange_strong(volatile atomic_uint *object, uint *expected, uint desired);
14349
+ bool __ovld atomic_compare_exchange_weak(volatile atomic_int *object, int *expected, int desired);
14350
+ bool __ovld atomic_compare_exchange_weak(volatile atomic_uint *object, uint *expected, uint desired);
14351
+ bool __ovld atomic_compare_exchange_strong(volatile atomic_float *object, float *expected, float desired);
14352
+ bool __ovld atomic_compare_exchange_weak(volatile atomic_float *object, float *expected, float desired);
14353
+ #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14354
+ #ifdef cl_khr_fp64
14355
+ bool __ovld atomic_compare_exchange_strong(volatile atomic_double *object, double *expected, double desired);
14356
+ bool __ovld atomic_compare_exchange_weak(volatile atomic_double *object, double *expected, double desired);
14357
+ #endif //cl_khr_fp64
14358
+ bool __ovld atomic_compare_exchange_strong(volatile atomic_long *object, long *expected, long desired);
14359
+ bool __ovld atomic_compare_exchange_weak(volatile atomic_long *object, long *expected, long desired);
14360
+ bool __ovld atomic_compare_exchange_strong(volatile atomic_ulong *object, ulong *expected, ulong desired);
14361
+ bool __ovld atomic_compare_exchange_weak(volatile atomic_ulong *object, ulong *expected, ulong desired);
14362
+ #endif
14363
+ #endif //defined(__opencl_c_generic_address_space)
14364
+ #if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
14365
+ bool __ovld atomic_compare_exchange_strong(volatile __global atomic_int *object, __global int *expected, int desired);
14366
+ bool __ovld atomic_compare_exchange_strong(volatile __global atomic_int *object, __local int *expected, int desired);
14367
+ bool __ovld atomic_compare_exchange_strong(volatile __global atomic_int *object, __private int *expected, int desired);
14368
+ bool __ovld atomic_compare_exchange_strong(volatile __local atomic_int *object, __global int *expected, int desired);
14369
+ bool __ovld atomic_compare_exchange_strong(volatile __local atomic_int *object, __local int *expected, int desired);
14370
+ bool __ovld atomic_compare_exchange_strong(volatile __local atomic_int *object, __private int *expected, int desired);
14371
+ bool __ovld atomic_compare_exchange_strong(volatile __global atomic_uint *object, __global uint *expected, uint desired);
14372
+ bool __ovld atomic_compare_exchange_strong(volatile __global atomic_uint *object, __local uint *expected, uint desired);
14373
+ bool __ovld atomic_compare_exchange_strong(volatile __global atomic_uint *object, __private uint *expected, uint desired);
14374
+ bool __ovld atomic_compare_exchange_strong(volatile __local atomic_uint *object, __global uint *expected, uint desired);
14375
+ bool __ovld atomic_compare_exchange_strong(volatile __local atomic_uint *object, __local uint *expected, uint desired);
14376
+ bool __ovld atomic_compare_exchange_strong(volatile __local atomic_uint *object, __private uint *expected, uint desired);
14377
+ bool __ovld atomic_compare_exchange_strong(volatile __global atomic_float *object, __global float *expected, float desired);
14378
+ bool __ovld atomic_compare_exchange_strong(volatile __global atomic_float *object, __local float *expected, float desired);
14379
+ bool __ovld atomic_compare_exchange_strong(volatile __global atomic_float *object, __private float *expected, float desired);
14380
+ bool __ovld atomic_compare_exchange_strong(volatile __local atomic_float *object, __global float *expected, float desired);
14381
+ bool __ovld atomic_compare_exchange_strong(volatile __local atomic_float *object, __local float *expected, float desired);
14382
+ bool __ovld atomic_compare_exchange_strong(volatile __local atomic_float *object, __private float *expected, float desired);
14383
+ bool __ovld atomic_compare_exchange_weak(volatile __global atomic_int *object, __global int *expected, int desired);
14384
+ bool __ovld atomic_compare_exchange_weak(volatile __global atomic_int *object, __local int *expected, int desired);
14385
+ bool __ovld atomic_compare_exchange_weak(volatile __global atomic_int *object, __private int *expected, int desired);
14386
+ bool __ovld atomic_compare_exchange_weak(volatile __local atomic_int *object, __global int *expected, int desired);
14387
+ bool __ovld atomic_compare_exchange_weak(volatile __local atomic_int *object, __local int *expected, int desired);
14388
+ bool __ovld atomic_compare_exchange_weak(volatile __local atomic_int *object, __private int *expected, int desired);
14389
+ bool __ovld atomic_compare_exchange_weak(volatile __global atomic_uint *object, __global uint *expected, uint desired);
14390
+ bool __ovld atomic_compare_exchange_weak(volatile __global atomic_uint *object, __local uint *expected, uint desired);
14391
+ bool __ovld atomic_compare_exchange_weak(volatile __global atomic_uint *object, __private uint *expected, uint desired);
14392
+ bool __ovld atomic_compare_exchange_weak(volatile __local atomic_uint *object, __global uint *expected, uint desired);
14393
+ bool __ovld atomic_compare_exchange_weak(volatile __local atomic_uint *object, __local uint *expected, uint desired);
14394
+ bool __ovld atomic_compare_exchange_weak(volatile __local atomic_uint *object, __private uint *expected, uint desired);
14395
+ bool __ovld atomic_compare_exchange_weak(volatile __global atomic_float *object, __global float *expected, float desired);
14396
+ bool __ovld atomic_compare_exchange_weak(volatile __global atomic_float *object, __local float *expected, float desired);
14397
+ bool __ovld atomic_compare_exchange_weak(volatile __global atomic_float *object, __private float *expected, float desired);
14398
+ bool __ovld atomic_compare_exchange_weak(volatile __local atomic_float *object, __global float *expected, float desired);
14399
+ bool __ovld atomic_compare_exchange_weak(volatile __local atomic_float *object, __local float *expected, float desired);
14400
+ bool __ovld atomic_compare_exchange_weak(volatile __local atomic_float *object, __private float *expected, float desired);
14401
+ #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14402
+ #ifdef cl_khr_fp64
14403
+ bool __ovld atomic_compare_exchange_strong(volatile __global atomic_double *object, __global double *expected, double desired);
14404
+ bool __ovld atomic_compare_exchange_strong(volatile __global atomic_double *object, __local double *expected, double desired);
14405
+ bool __ovld atomic_compare_exchange_strong(volatile __global atomic_double *object, __private double *expected, double desired);
14406
+ bool __ovld atomic_compare_exchange_strong(volatile __local atomic_double *object, __global double *expected, double desired);
14407
+ bool __ovld atomic_compare_exchange_strong(volatile __local atomic_double *object, __local double *expected, double desired);
14408
+ bool __ovld atomic_compare_exchange_strong(volatile __local atomic_double *object, __private double *expected, double desired);
14409
+ bool __ovld atomic_compare_exchange_weak(volatile __global atomic_double *object, __global double *expected, double desired);
14410
+ bool __ovld atomic_compare_exchange_weak(volatile __global atomic_double *object, __local double *expected, double desired);
14411
+ bool __ovld atomic_compare_exchange_weak(volatile __global atomic_double *object, __private double *expected, double desired);
14412
+ bool __ovld atomic_compare_exchange_weak(volatile __local atomic_double *object, __global double *expected, double desired);
14413
+ bool __ovld atomic_compare_exchange_weak(volatile __local atomic_double *object, __local double *expected, double desired);
14414
+ bool __ovld atomic_compare_exchange_weak(volatile __local atomic_double *object, __private double *expected, double desired);
14415
+ #endif //cl_khr_fp64
14416
+ bool __ovld atomic_compare_exchange_strong(volatile __global atomic_long *object, __global long *expected, long desired);
14417
+ bool __ovld atomic_compare_exchange_strong(volatile __global atomic_long *object, __local long *expected, long desired);
14418
+ bool __ovld atomic_compare_exchange_strong(volatile __global atomic_long *object, __private long *expected, long desired);
14419
+ bool __ovld atomic_compare_exchange_strong(volatile __local atomic_long *object, __global long *expected, long desired);
14420
+ bool __ovld atomic_compare_exchange_strong(volatile __local atomic_long *object, __local long *expected, long desired);
14421
+ bool __ovld atomic_compare_exchange_strong(volatile __local atomic_long *object, __private long *expected, long desired);
14422
+ bool __ovld atomic_compare_exchange_strong(volatile __global atomic_ulong *object, __global ulong *expected, ulong desired);
14423
+ bool __ovld atomic_compare_exchange_strong(volatile __global atomic_ulong *object, __local ulong *expected, ulong desired);
14424
+ bool __ovld atomic_compare_exchange_strong(volatile __global atomic_ulong *object, __private ulong *expected, ulong desired);
14425
+ bool __ovld atomic_compare_exchange_strong(volatile __local atomic_ulong *object, __global ulong *expected, ulong desired);
14426
+ bool __ovld atomic_compare_exchange_strong(volatile __local atomic_ulong *object, __local ulong *expected, ulong desired);
14427
+ bool __ovld atomic_compare_exchange_strong(volatile __local atomic_ulong *object, __private ulong *expected, ulong desired);
14428
+ bool __ovld atomic_compare_exchange_weak(volatile __global atomic_long *object, __global long *expected, long desired);
14429
+ bool __ovld atomic_compare_exchange_weak(volatile __global atomic_long *object, __local long *expected, long desired);
14430
+ bool __ovld atomic_compare_exchange_weak(volatile __global atomic_long *object, __private long *expected, long desired);
14431
+ bool __ovld atomic_compare_exchange_weak(volatile __local atomic_long *object, __global long *expected, long desired);
14432
+ bool __ovld atomic_compare_exchange_weak(volatile __local atomic_long *object, __local long *expected, long desired);
14433
+ bool __ovld atomic_compare_exchange_weak(volatile __local atomic_long *object, __private long *expected, long desired);
14434
+ bool __ovld atomic_compare_exchange_weak(volatile __global atomic_ulong *object, __global ulong *expected, ulong desired);
14435
+ bool __ovld atomic_compare_exchange_weak(volatile __global atomic_ulong *object, __local ulong *expected, ulong desired);
14436
+ bool __ovld atomic_compare_exchange_weak(volatile __global atomic_ulong *object, __private ulong *expected, ulong desired);
14437
+ bool __ovld atomic_compare_exchange_weak(volatile __local atomic_ulong *object, __global ulong *expected, ulong desired);
14438
+ bool __ovld atomic_compare_exchange_weak(volatile __local atomic_ulong *object, __local ulong *expected, ulong desired);
14439
+ bool __ovld atomic_compare_exchange_weak(volatile __local atomic_ulong *object, __private ulong *expected, ulong desired);
14440
+ #endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14441
+ #endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
14442
+ #endif
14443
+
14444
+ #if defined(__opencl_c_generic_address_space)
13612
14445
  bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_int *object, int *expected,
13613
14446
  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
14447
  bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_uint *object, uint *expected,
13618
14448
  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
14449
  bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_int *object, int *expected,
13623
14450
  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
14451
  bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_uint *object, uint *expected,
13628
14452
  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
14453
  bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_float *object, float *expected,
13633
14454
  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
14455
  bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_float *object, float *expected,
13638
14456
  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
14457
  #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13642
14458
  #ifdef cl_khr_fp64
13643
- bool __ovld atomic_compare_exchange_strong(volatile atomic_double *object, double *expected, double desired);
13644
14459
  bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_double *object, double *expected,
13645
14460
  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
14461
  bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_double *object, double *expected,
13650
14462
  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
14463
  #endif //cl_khr_fp64
13654
- bool __ovld atomic_compare_exchange_strong(volatile atomic_long *object, long *expected, long desired);
13655
14464
  bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_long *object, long *expected,
13656
14465
  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
14466
  bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_long *object, long *expected,
13661
14467
  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
14468
  bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_ulong *object, ulong *expected,
13666
14469
  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
14470
  bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_ulong *object, ulong *expected,
13671
14471
  ulong desired, memory_order success, memory_order failure);
14472
+ #endif
14473
+ #endif //defined(__opencl_c_generic_address_space)
14474
+ #if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
14475
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_int *object, __global int *expected,
14476
+ int desired, memory_order success, memory_order failure);
14477
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_int *object, __local int *expected,
14478
+ int desired, memory_order success, memory_order failure);
14479
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_int *object, __private int *expected,
14480
+ int desired, memory_order success, memory_order failure);
14481
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_int *object, __global int *expected,
14482
+ int desired, memory_order success, memory_order failure);
14483
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_int *object, __local int *expected,
14484
+ int desired, memory_order success, memory_order failure);
14485
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_int *object, __private int *expected,
14486
+ int desired, memory_order success, memory_order failure);
14487
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_uint *object, __global uint *expected,
14488
+ uint desired, memory_order success, memory_order failure);
14489
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_uint *object, __local uint *expected,
14490
+ uint desired, memory_order success, memory_order failure);
14491
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_uint *object, __private uint *expected,
14492
+ uint desired, memory_order success, memory_order failure);
14493
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_uint *object, __global uint *expected,
14494
+ uint desired, memory_order success, memory_order failure);
14495
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_uint *object, __local uint *expected,
14496
+ uint desired, memory_order success, memory_order failure);
14497
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_uint *object, __private uint *expected,
14498
+ uint desired, memory_order success, memory_order failure);
14499
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_float *object, __global float *expected,
14500
+ float desired, memory_order success, memory_order failure);
14501
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_float *object, __local float *expected,
14502
+ float desired, memory_order success, memory_order failure);
14503
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_float *object, __private float *expected,
14504
+ float desired, memory_order success, memory_order failure);
14505
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_float *object, __global float *expected,
14506
+ float desired, memory_order success, memory_order failure);
14507
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_float *object, __local float *expected,
14508
+ float desired, memory_order success, memory_order failure);
14509
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_float *object, __private float *expected,
14510
+ float desired, memory_order success, memory_order failure);
14511
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_int *object, __global int *expected,
14512
+ int desired, memory_order success, memory_order failure);
14513
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_int *object, __local int *expected,
14514
+ int desired, memory_order success, memory_order failure);
14515
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_int *object, __private int *expected,
14516
+ int desired, memory_order success, memory_order failure);
14517
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_int *object, __global int *expected,
14518
+ int desired, memory_order success, memory_order failure);
14519
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_int *object, __local int *expected,
14520
+ int desired, memory_order success, memory_order failure);
14521
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_int *object, __private int *expected,
14522
+ int desired, memory_order success, memory_order failure);
14523
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_uint *object, __global uint *expected,
14524
+ uint desired, memory_order success, memory_order failure);
14525
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_uint *object, __local uint *expected,
14526
+ uint desired, memory_order success, memory_order failure);
14527
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_uint *object, __private uint *expected,
14528
+ uint desired, memory_order success, memory_order failure);
14529
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_uint *object, __global uint *expected,
14530
+ uint desired, memory_order success, memory_order failure);
14531
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_uint *object, __local uint *expected,
14532
+ uint desired, memory_order success, memory_order failure);
14533
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_uint *object, __private uint *expected,
14534
+ uint desired, memory_order success, memory_order failure);
14535
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_float *object, __global float *expected,
14536
+ float desired, memory_order success, memory_order failure);
14537
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_float *object, __local float *expected,
14538
+ float desired, memory_order success, memory_order failure);
14539
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_float *object, __private float *expected,
14540
+ float desired, memory_order success, memory_order failure);
14541
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_float *object, __global float *expected,
14542
+ float desired, memory_order success, memory_order failure);
14543
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_float *object, __local float *expected,
14544
+ float desired, memory_order success, memory_order failure);
14545
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_float *object, __private float *expected,
14546
+ float desired, memory_order success, memory_order failure);
14547
+ #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14548
+ #ifdef cl_khr_fp64
14549
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_double *object, __global double *expected,
14550
+ double desired, memory_order success, memory_order failure);
14551
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_double *object, __local double *expected,
14552
+ double desired, memory_order success, memory_order failure);
14553
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_double *object, __private double *expected,
14554
+ double desired, memory_order success, memory_order failure);
14555
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_double *object, __global double *expected,
14556
+ double desired, memory_order success, memory_order failure);
14557
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_double *object, __local double *expected,
14558
+ double desired, memory_order success, memory_order failure);
14559
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_double *object, __private double *expected,
14560
+ double desired, memory_order success, memory_order failure);
14561
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_double *object, __global double *expected,
14562
+ double desired, memory_order success, memory_order failure);
14563
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_double *object, __local double *expected,
14564
+ double desired, memory_order success, memory_order failure);
14565
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_double *object, __private double *expected,
14566
+ double desired, memory_order success, memory_order failure);
14567
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_double *object, __global double *expected,
14568
+ double desired, memory_order success, memory_order failure);
14569
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_double *object, __local double *expected,
14570
+ double desired, memory_order success, memory_order failure);
14571
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_double *object, __private double *expected,
14572
+ double desired, memory_order success, memory_order failure);
14573
+ #endif //cl_khr_fp64
14574
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_long *object, __global long *expected,
14575
+ long desired, memory_order success, memory_order failure);
14576
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_long *object, __local long *expected,
14577
+ long desired, memory_order success, memory_order failure);
14578
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_long *object, __private long *expected,
14579
+ long desired, memory_order success, memory_order failure);
14580
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_long *object, __global long *expected,
14581
+ long desired, memory_order success, memory_order failure);
14582
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_long *object, __local long *expected,
14583
+ long desired, memory_order success, memory_order failure);
14584
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_long *object, __private long *expected,
14585
+ long desired, memory_order success, memory_order failure);
14586
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_ulong *object, __global ulong *expected,
14587
+ ulong desired, memory_order success, memory_order failure);
14588
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_ulong *object, __local ulong *expected,
14589
+ ulong desired, memory_order success, memory_order failure);
14590
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_ulong *object, __private ulong *expected,
14591
+ ulong desired, memory_order success, memory_order failure);
14592
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_ulong *object, __global ulong *expected,
14593
+ ulong desired, memory_order success, memory_order failure);
14594
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_ulong *object, __local ulong *expected,
14595
+ ulong desired, memory_order success, memory_order failure);
14596
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_ulong *object, __private ulong *expected,
14597
+ ulong desired, memory_order success, memory_order failure);
14598
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_long *object, __global long *expected,
14599
+ long desired, memory_order success, memory_order failure);
14600
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_long *object, __local long *expected,
14601
+ long desired, memory_order success, memory_order failure);
14602
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_long *object, __private long *expected,
14603
+ long desired, memory_order success, memory_order failure);
14604
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_long *object, __global long *expected,
14605
+ long desired, memory_order success, memory_order failure);
14606
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_long *object, __local long *expected,
14607
+ long desired, memory_order success, memory_order failure);
14608
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_long *object, __private long *expected,
14609
+ long desired, memory_order success, memory_order failure);
14610
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_ulong *object, __global ulong *expected,
14611
+ ulong desired, memory_order success, memory_order failure);
14612
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_ulong *object, __local ulong *expected,
14613
+ ulong desired, memory_order success, memory_order failure);
14614
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_ulong *object, __private ulong *expected,
14615
+ ulong desired, memory_order success, memory_order failure);
14616
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_ulong *object, __global ulong *expected,
14617
+ ulong desired, memory_order success, memory_order failure);
14618
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_ulong *object, __local ulong *expected,
14619
+ ulong desired, memory_order success, memory_order failure);
14620
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_ulong *object, __private ulong *expected,
14621
+ ulong desired, memory_order success, memory_order failure);
14622
+ #endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14623
+ #endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
14624
+
14625
+ #if defined(__opencl_c_generic_address_space)
14626
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_int *object, int *expected,
14627
+ int desired, memory_order success, memory_order failure, memory_scope scope);
14628
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_uint *object, uint *expected,
14629
+ uint desired, memory_order success, memory_order failure, memory_scope scope);
14630
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_int *object, int *expected,
14631
+ int desired, memory_order success, memory_order failure, memory_scope scope);
14632
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_uint *object, uint *expected,
14633
+ uint desired, memory_order success, memory_order failure, memory_scope scope);
14634
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_float *object, float *expected,
14635
+ float desired, memory_order success, memory_order failure, memory_scope scope);
14636
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_float *object, float *expected,
14637
+ float desired, memory_order success, memory_order failure, memory_scope scope);
14638
+ #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14639
+ #ifdef cl_khr_fp64
14640
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_double *object, double *expected,
14641
+ double desired, memory_order success, memory_order failure, memory_scope scope);
14642
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_double *object, double *expected,
14643
+ double desired, memory_order success, memory_order failure, memory_scope scope);
14644
+ #endif //cl_khr_fp64
14645
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_long *object, long *expected,
14646
+ long desired, memory_order success, memory_order failure, memory_scope scope);
14647
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_long *object, long *expected,
14648
+ long desired, memory_order success, memory_order failure, memory_scope scope);
14649
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_ulong *object, ulong *expected,
14650
+ ulong desired, memory_order success, memory_order failure, memory_scope scope);
13672
14651
  bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_ulong *object, ulong *expected,
13673
14652
  ulong desired, memory_order success, memory_order failure, memory_scope scope);
13674
14653
  #endif
14654
+ #endif //defined(__opencl_c_generic_address_space)
14655
+ #if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
14656
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_int *object, __global int *expected,
14657
+ int desired, memory_order success, memory_order failure, memory_scope scope);
14658
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_int *object, __local int *expected,
14659
+ int desired, memory_order success, memory_order failure, memory_scope scope);
14660
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_int *object, __private int *expected,
14661
+ int desired, memory_order success, memory_order failure, memory_scope scope);
14662
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_int *object, __global int *expected,
14663
+ int desired, memory_order success, memory_order failure, memory_scope scope);
14664
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_int *object, __local int *expected,
14665
+ int desired, memory_order success, memory_order failure, memory_scope scope);
14666
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_int *object, __private int *expected,
14667
+ int desired, memory_order success, memory_order failure, memory_scope scope);
14668
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_uint *object, __global uint *expected,
14669
+ uint desired, memory_order success, memory_order failure, memory_scope scope);
14670
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_uint *object, __local uint *expected,
14671
+ uint desired, memory_order success, memory_order failure, memory_scope scope);
14672
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_uint *object, __private uint *expected,
14673
+ uint desired, memory_order success, memory_order failure, memory_scope scope);
14674
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_uint *object, __global uint *expected,
14675
+ uint desired, memory_order success, memory_order failure, memory_scope scope);
14676
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_uint *object, __local uint *expected,
14677
+ uint desired, memory_order success, memory_order failure, memory_scope scope);
14678
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_uint *object, __private uint *expected,
14679
+ uint desired, memory_order success, memory_order failure, memory_scope scope);
14680
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_float *object, __global float *expected,
14681
+ float desired, memory_order success, memory_order failure, memory_scope scope);
14682
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_float *object, __local float *expected,
14683
+ float desired, memory_order success, memory_order failure, memory_scope scope);
14684
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_float *object, __private float *expected,
14685
+ float desired, memory_order success, memory_order failure, memory_scope scope);
14686
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_float *object, __global float *expected,
14687
+ float desired, memory_order success, memory_order failure, memory_scope scope);
14688
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_float *object, __local float *expected,
14689
+ float desired, memory_order success, memory_order failure, memory_scope scope);
14690
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_float *object, __private float *expected,
14691
+ float desired, memory_order success, memory_order failure, memory_scope scope);
14692
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_int *object, __global int *expected,
14693
+ int desired, memory_order success, memory_order failure, memory_scope scope);
14694
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_int *object, __local int *expected,
14695
+ int desired, memory_order success, memory_order failure, memory_scope scope);
14696
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_int *object, __private int *expected,
14697
+ int desired, memory_order success, memory_order failure, memory_scope scope);
14698
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_int *object, __global int *expected,
14699
+ int desired, memory_order success, memory_order failure, memory_scope scope);
14700
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_int *object, __local int *expected,
14701
+ int desired, memory_order success, memory_order failure, memory_scope scope);
14702
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_int *object, __private int *expected,
14703
+ int desired, memory_order success, memory_order failure, memory_scope scope);
14704
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_uint *object, __global uint *expected,
14705
+ uint desired, memory_order success, memory_order failure, memory_scope scope);
14706
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_uint *object, __local uint *expected,
14707
+ uint desired, memory_order success, memory_order failure, memory_scope scope);
14708
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_uint *object, __private uint *expected,
14709
+ uint desired, memory_order success, memory_order failure, memory_scope scope);
14710
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_uint *object, __global uint *expected,
14711
+ uint desired, memory_order success, memory_order failure, memory_scope scope);
14712
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_uint *object, __local uint *expected,
14713
+ uint desired, memory_order success, memory_order failure, memory_scope scope);
14714
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_uint *object, __private uint *expected,
14715
+ uint desired, memory_order success, memory_order failure, memory_scope scope);
14716
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_float *object, __global float *expected,
14717
+ float desired, memory_order success, memory_order failure, memory_scope scope);
14718
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_float *object, __local float *expected,
14719
+ float desired, memory_order success, memory_order failure, memory_scope scope);
14720
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_float *object, __private float *expected,
14721
+ float desired, memory_order success, memory_order failure, memory_scope scope);
14722
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_float *object, __global float *expected,
14723
+ float desired, memory_order success, memory_order failure, memory_scope scope);
14724
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_float *object, __local float *expected,
14725
+ float desired, memory_order success, memory_order failure, memory_scope scope);
14726
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_float *object, __private float *expected,
14727
+ float desired, memory_order success, memory_order failure, memory_scope scope);
14728
+ #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14729
+ #ifdef cl_khr_fp64
14730
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_double *object, __global double *expected,
14731
+ double desired, memory_order success, memory_order failure, memory_scope scope);
14732
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_double *object, __local double *expected,
14733
+ double desired, memory_order success, memory_order failure, memory_scope scope);
14734
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_double *object, __private double *expected,
14735
+ double desired, memory_order success, memory_order failure, memory_scope scope);
14736
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_double *object, __global double *expected,
14737
+ double desired, memory_order success, memory_order failure, memory_scope scope);
14738
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_double *object, __local double *expected,
14739
+ double desired, memory_order success, memory_order failure, memory_scope scope);
14740
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_double *object, __private double *expected,
14741
+ double desired, memory_order success, memory_order failure, memory_scope scope);
14742
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_double *object, __global double *expected,
14743
+ double desired, memory_order success, memory_order failure, memory_scope scope);
14744
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_double *object, __local double *expected,
14745
+ double desired, memory_order success, memory_order failure, memory_scope scope);
14746
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_double *object, __private double *expected,
14747
+ double desired, memory_order success, memory_order failure, memory_scope scope);
14748
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_double *object, __global double *expected,
14749
+ double desired, memory_order success, memory_order failure, memory_scope scope);
14750
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_double *object, __local double *expected,
14751
+ double desired, memory_order success, memory_order failure, memory_scope scope);
14752
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_double *object, __private double *expected,
14753
+ double desired, memory_order success, memory_order failure, memory_scope scope);
14754
+ #endif //cl_khr_fp64
14755
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_long *object, __global long *expected,
14756
+ long desired, memory_order success, memory_order failure, memory_scope scope);
14757
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_long *object, __local long *expected,
14758
+ long desired, memory_order success, memory_order failure, memory_scope scope);
14759
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_long *object, __private long *expected,
14760
+ long desired, memory_order success, memory_order failure, memory_scope scope);
14761
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_long *object, __global long *expected,
14762
+ long desired, memory_order success, memory_order failure, memory_scope scope);
14763
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_long *object, __local long *expected,
14764
+ long desired, memory_order success, memory_order failure, memory_scope scope);
14765
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_long *object, __private long *expected,
14766
+ long desired, memory_order success, memory_order failure, memory_scope scope);
14767
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_ulong *object, __global ulong *expected,
14768
+ ulong desired, memory_order success, memory_order failure, memory_scope scope);
14769
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_ulong *object, __local ulong *expected,
14770
+ ulong desired, memory_order success, memory_order failure, memory_scope scope);
14771
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_ulong *object, __private ulong *expected,
14772
+ ulong desired, memory_order success, memory_order failure, memory_scope scope);
14773
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_ulong *object, __global ulong *expected,
14774
+ ulong desired, memory_order success, memory_order failure, memory_scope scope);
14775
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_ulong *object, __local ulong *expected,
14776
+ ulong desired, memory_order success, memory_order failure, memory_scope scope);
14777
+ bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_ulong *object, __private ulong *expected,
14778
+ ulong desired, memory_order success, memory_order failure, memory_scope scope);
14779
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_long *object, __global long *expected,
14780
+ long desired, memory_order success, memory_order failure, memory_scope scope);
14781
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_long *object, __local long *expected,
14782
+ long desired, memory_order success, memory_order failure, memory_scope scope);
14783
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_long *object, __private long *expected,
14784
+ long desired, memory_order success, memory_order failure, memory_scope scope);
14785
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_long *object, __global long *expected,
14786
+ long desired, memory_order success, memory_order failure, memory_scope scope);
14787
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_long *object, __local long *expected,
14788
+ long desired, memory_order success, memory_order failure, memory_scope scope);
14789
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_long *object, __private long *expected,
14790
+ long desired, memory_order success, memory_order failure, memory_scope scope);
14791
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_ulong *object, __global ulong *expected,
14792
+ ulong desired, memory_order success, memory_order failure, memory_scope scope);
14793
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_ulong *object, __local ulong *expected,
14794
+ ulong desired, memory_order success, memory_order failure, memory_scope scope);
14795
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_ulong *object, __private ulong *expected,
14796
+ ulong desired, memory_order success, memory_order failure, memory_scope scope);
14797
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_ulong *object, __global ulong *expected,
14798
+ ulong desired, memory_order success, memory_order failure, memory_scope scope);
14799
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_ulong *object, __local ulong *expected,
14800
+ ulong desired, memory_order success, memory_order failure, memory_scope scope);
14801
+ bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_ulong *object, __private ulong *expected,
14802
+ ulong desired, memory_order success, memory_order failure, memory_scope scope);
14803
+ #endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14804
+ #endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
13675
14805
 
13676
14806
  // atomic_flag_test_and_set() and atomic_flag_clear()
13677
-
14807
+ #if defined(__opencl_c_atomic_order_seq_cst) && defined(__opencl_c_atomic_scope_device)
14808
+ #if defined(__opencl_c_generic_address_space)
13678
14809
  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
14810
  void __ovld atomic_flag_clear(volatile atomic_flag *object);
14811
+ #endif //defined(__opencl_c_generic_address_space)
14812
+ #if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
14813
+ bool __ovld atomic_flag_test_and_set(volatile __global atomic_flag *object);
14814
+ bool __ovld atomic_flag_test_and_set(volatile __local atomic_flag *object);
14815
+ void __ovld atomic_flag_clear(volatile __global atomic_flag *object);
14816
+ void __ovld atomic_flag_clear(volatile __local atomic_flag *object);
14817
+ #endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
14818
+ #endif
14819
+
14820
+ #if defined(__opencl_c_atomic_scope_device)
14821
+ #if defined(__opencl_c_generic_address_space)
14822
+ bool __ovld atomic_flag_test_and_set_explicit(volatile atomic_flag *object, memory_order order);
13682
14823
  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);
14824
+ #endif //defined(__opencl_c_generic_address_space)
14825
+ #if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
14826
+ bool __ovld atomic_flag_test_and_set_explicit(volatile __global atomic_flag *object, memory_order order);
14827
+ bool __ovld atomic_flag_test_and_set_explicit(volatile __local atomic_flag *object, memory_order order);
14828
+ void __ovld atomic_flag_clear_explicit(volatile __global atomic_flag *object, memory_order order);
14829
+ void __ovld atomic_flag_clear_explicit(volatile __local atomic_flag *object, memory_order order);
14830
+ #endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
14831
+ #endif
13684
14832
 
14833
+ #if defined(__opencl_c_generic_address_space)
14834
+ bool __ovld atomic_flag_test_and_set_explicit(volatile atomic_flag *object, memory_order order, memory_scope scope);
14835
+ void __ovld atomic_flag_clear_explicit(volatile atomic_flag *object, memory_order order, memory_scope scope);
14836
+ #endif //defined(__opencl_c_generic_address_space)
14837
+ #if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
14838
+ bool __ovld atomic_flag_test_and_set_explicit(volatile __global atomic_flag *object, memory_order order, memory_scope scope);
14839
+ bool __ovld atomic_flag_test_and_set_explicit(volatile __local atomic_flag *object, memory_order order, memory_scope scope);
14840
+ void __ovld atomic_flag_clear_explicit(volatile __global atomic_flag *object, memory_order order, memory_scope scope);
14841
+ void __ovld atomic_flag_clear_explicit(volatile __local atomic_flag *object, memory_order order, memory_scope scope);
14842
+ #endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
13685
14843
  #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
13686
14844
 
13687
14845
  // OpenCL v1.1 s6.11.12, v1.2 s6.12.12, v2.0 s6.13.12 - Miscellaneous Vector Functions
@@ -14176,12 +15334,6 @@ half16 __ovld __cnfn shuffle2(half8 x, half8 y, ushort16 mask);
14176
15334
  half16 __ovld __cnfn shuffle2(half16 x, half16 y, ushort16 mask);
14177
15335
  #endif //cl_khr_fp16
14178
15336
 
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
15337
  // OpenCL v1.1 s6.11.3, v1.2 s6.12.14, v2.0 s6.13.14 - Image Read and Write Functions
14186
15338
 
14187
15339
  #ifdef cl_khr_gl_msaa_sharing
@@ -14465,7 +15617,7 @@ half4 __purefn __ovld read_imageh(read_only image1d_buffer_t image, int coord);
14465
15617
  #endif //cl_khr_fp16
14466
15618
 
14467
15619
  // Image read functions for read_write images
14468
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
15620
+ #if defined(__opencl_c_read_write_images)
14469
15621
  float4 __purefn __ovld read_imagef(read_write image1d_t image, int coord);
14470
15622
  int4 __purefn __ovld read_imagei(read_write image1d_t image, int coord);
14471
15623
  uint4 __purefn __ovld read_imageui(read_write image1d_t image, int coord);
@@ -14508,7 +15660,6 @@ float __purefn __ovld read_imagef(read_write image2d_msaa_depth_t image, int2 co
14508
15660
  float __purefn __ovld read_imagef(read_write image2d_array_msaa_depth_t image, int4 coord, int sample);
14509
15661
  #endif //cl_khr_gl_msaa_sharing
14510
15662
 
14511
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
14512
15663
  #ifdef cl_khr_mipmap_image
14513
15664
  float4 __purefn __ovld read_imagef(read_write image1d_t image, sampler_t sampler, float coord, float lod);
14514
15665
  int4 __purefn __ovld read_imagei(read_write image1d_t image, sampler_t sampler, float coord, float lod);
@@ -14559,7 +15710,6 @@ int4 __purefn __ovld read_imagei(read_write image3d_t image, sampler_t sampler,
14559
15710
  uint4 __purefn __ovld read_imageui(read_write image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY);
14560
15711
 
14561
15712
  #endif //cl_khr_mipmap_image
14562
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
14563
15713
 
14564
15714
  // Image read functions returning half4 type
14565
15715
  #ifdef cl_khr_fp16
@@ -14570,7 +15720,7 @@ half4 __purefn __ovld read_imageh(read_write image1d_array_t image, int2 coord);
14570
15720
  half4 __purefn __ovld read_imageh(read_write image2d_array_t image, int4 coord);
14571
15721
  half4 __purefn __ovld read_imageh(read_write image1d_buffer_t image, int coord);
14572
15722
  #endif //cl_khr_fp16
14573
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
15723
+ #endif //defined(__opencl_c_read_write_images)
14574
15724
 
14575
15725
  /**
14576
15726
  * Write color value to location specified by coordinate
@@ -14714,7 +15864,7 @@ void __ovld write_imageh(write_only image1d_buffer_t image, int coord, half4 col
14714
15864
  #endif //cl_khr_fp16
14715
15865
 
14716
15866
  // Image write functions for read_write images
14717
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
15867
+ #if defined(__opencl_c_read_write_images)
14718
15868
  void __ovld write_imagef(read_write image2d_t image, int2 coord, float4 color);
14719
15869
  void __ovld write_imagei(read_write image2d_t image, int2 coord, int4 color);
14720
15870
  void __ovld write_imageui(read_write image2d_t image, int2 coord, uint4 color);
@@ -14746,7 +15896,6 @@ void __ovld write_imagef(read_write image2d_depth_t image, int2 coord, float col
14746
15896
  void __ovld write_imagef(read_write image2d_array_depth_t image, int4 coord, float color);
14747
15897
  #endif //cl_khr_depth_images
14748
15898
 
14749
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
14750
15899
  #if defined(cl_khr_mipmap_image_writes)
14751
15900
  void __ovld write_imagef(read_write image1d_t image, int coord, int lod, float4 color);
14752
15901
  void __ovld write_imagei(read_write image1d_t image, int coord, int lod, int4 color);
@@ -14774,7 +15923,6 @@ void __ovld write_imageui(read_write image3d_t image, int4 coord, int lod, uint4
14774
15923
  #endif //cl_khr_3d_image_writes
14775
15924
 
14776
15925
  #endif //cl_khr_mipmap_image_writes
14777
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
14778
15926
 
14779
15927
  // Image write functions for half4 type
14780
15928
  #ifdef cl_khr_fp16
@@ -14787,7 +15935,7 @@ void __ovld write_imageh(read_write image1d_array_t image, int2 coord, half4 col
14787
15935
  void __ovld write_imageh(read_write image2d_array_t image, int4 coord, half4 color);
14788
15936
  void __ovld write_imageh(read_write image1d_buffer_t image, int coord, half4 color);
14789
15937
  #endif //cl_khr_fp16
14790
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
15938
+ #endif //defined(__opencl_c_read_write_images)
14791
15939
 
14792
15940
  // Note: In OpenCL v1.0/1.1/1.2, image argument of image query builtin functions does not have
14793
15941
  // access qualifier, which by default assume read_only access qualifier. Image query builtin
@@ -14835,7 +15983,7 @@ int __ovld __cnfn get_image_width(write_only image2d_array_msaa_t image);
14835
15983
  int __ovld __cnfn get_image_width(write_only image2d_array_msaa_depth_t image);
14836
15984
  #endif //cl_khr_gl_msaa_sharing
14837
15985
 
14838
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
15986
+ #if defined(__opencl_c_read_write_images)
14839
15987
  int __ovld __cnfn get_image_width(read_write image1d_t image);
14840
15988
  int __ovld __cnfn get_image_width(read_write image1d_buffer_t image);
14841
15989
  int __ovld __cnfn get_image_width(read_write image2d_t image);
@@ -14852,7 +16000,7 @@ int __ovld __cnfn get_image_width(read_write image2d_msaa_depth_t image);
14852
16000
  int __ovld __cnfn get_image_width(read_write image2d_array_msaa_t image);
14853
16001
  int __ovld __cnfn get_image_width(read_write image2d_array_msaa_depth_t image);
14854
16002
  #endif //cl_khr_gl_msaa_sharing
14855
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16003
+ #endif //defined(__opencl_c_read_write_images)
14856
16004
 
14857
16005
  /**
14858
16006
  * Return the image height in pixels.
@@ -14887,7 +16035,7 @@ int __ovld __cnfn get_image_height(write_only image2d_array_msaa_t image);
14887
16035
  int __ovld __cnfn get_image_height(write_only image2d_array_msaa_depth_t image);
14888
16036
  #endif //cl_khr_gl_msaa_sharing
14889
16037
 
14890
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16038
+ #if defined(__opencl_c_read_write_images)
14891
16039
  int __ovld __cnfn get_image_height(read_write image2d_t image);
14892
16040
  int __ovld __cnfn get_image_height(read_write image3d_t image);
14893
16041
  int __ovld __cnfn get_image_height(read_write image2d_array_t image);
@@ -14901,7 +16049,7 @@ int __ovld __cnfn get_image_height(read_write image2d_msaa_depth_t image);
14901
16049
  int __ovld __cnfn get_image_height(read_write image2d_array_msaa_t image);
14902
16050
  int __ovld __cnfn get_image_height(read_write image2d_array_msaa_depth_t image);
14903
16051
  #endif //cl_khr_gl_msaa_sharing
14904
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16052
+ #endif //defined(__opencl_c_read_write_images)
14905
16053
 
14906
16054
  /**
14907
16055
  * Return the image depth in pixels.
@@ -14912,9 +16060,9 @@ int __ovld __cnfn get_image_depth(read_only image3d_t image);
14912
16060
  int __ovld __cnfn get_image_depth(write_only image3d_t image);
14913
16061
  #endif
14914
16062
 
14915
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16063
+ #if defined(__opencl_c_read_write_images)
14916
16064
  int __ovld __cnfn get_image_depth(read_write image3d_t image);
14917
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16065
+ #endif //defined(__opencl_c_read_write_images)
14918
16066
 
14919
16067
  // OpenCL Extension v2.0 s9.18 - Mipmaps
14920
16068
  #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
@@ -14933,9 +16081,11 @@ int __ovld get_image_num_mip_levels(write_only image2d_t image);
14933
16081
  int __ovld get_image_num_mip_levels(write_only image3d_t image);
14934
16082
  #endif
14935
16083
 
16084
+ #if defined(__opencl_c_read_write_images)
14936
16085
  int __ovld get_image_num_mip_levels(read_write image1d_t image);
14937
16086
  int __ovld get_image_num_mip_levels(read_write image2d_t image);
14938
16087
  int __ovld get_image_num_mip_levels(read_write image3d_t image);
16088
+ #endif //defined(__opencl_c_read_write_images)
14939
16089
 
14940
16090
  int __ovld get_image_num_mip_levels(read_only image1d_array_t image);
14941
16091
  int __ovld get_image_num_mip_levels(read_only image2d_array_t image);
@@ -14947,10 +16097,12 @@ int __ovld get_image_num_mip_levels(write_only image2d_array_t image);
14947
16097
  int __ovld get_image_num_mip_levels(write_only image2d_array_depth_t image);
14948
16098
  int __ovld get_image_num_mip_levels(write_only image2d_depth_t image);
14949
16099
 
16100
+ #if defined(__opencl_c_read_write_images)
14950
16101
  int __ovld get_image_num_mip_levels(read_write image1d_array_t image);
14951
16102
  int __ovld get_image_num_mip_levels(read_write image2d_array_t image);
14952
16103
  int __ovld get_image_num_mip_levels(read_write image2d_array_depth_t image);
14953
16104
  int __ovld get_image_num_mip_levels(read_write image2d_depth_t image);
16105
+ #endif //defined(__opencl_c_read_write_images)
14954
16106
 
14955
16107
  #endif //cl_khr_mipmap_image
14956
16108
  #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
@@ -15010,7 +16162,7 @@ int __ovld __cnfn get_image_channel_data_type(write_only image2d_array_msaa_t im
15010
16162
  int __ovld __cnfn get_image_channel_data_type(write_only image2d_array_msaa_depth_t image);
15011
16163
  #endif //cl_khr_gl_msaa_sharing
15012
16164
 
15013
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16165
+ #if defined(__opencl_c_read_write_images)
15014
16166
  int __ovld __cnfn get_image_channel_data_type(read_write image1d_t image);
15015
16167
  int __ovld __cnfn get_image_channel_data_type(read_write image1d_buffer_t image);
15016
16168
  int __ovld __cnfn get_image_channel_data_type(read_write image2d_t image);
@@ -15027,7 +16179,7 @@ int __ovld __cnfn get_image_channel_data_type(read_write image2d_msaa_depth_t im
15027
16179
  int __ovld __cnfn get_image_channel_data_type(read_write image2d_array_msaa_t image);
15028
16180
  int __ovld __cnfn get_image_channel_data_type(read_write image2d_array_msaa_depth_t image);
15029
16181
  #endif //cl_khr_gl_msaa_sharing
15030
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16182
+ #endif //defined(__opencl_c_read_write_images)
15031
16183
 
15032
16184
  /**
15033
16185
  * Return the image channel order. Valid values are:
@@ -15082,7 +16234,7 @@ int __ovld __cnfn get_image_channel_order(write_only image2d_array_msaa_t image)
15082
16234
  int __ovld __cnfn get_image_channel_order(write_only image2d_array_msaa_depth_t image);
15083
16235
  #endif //cl_khr_gl_msaa_sharing
15084
16236
 
15085
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16237
+ #if defined(__opencl_c_read_write_images)
15086
16238
  int __ovld __cnfn get_image_channel_order(read_write image1d_t image);
15087
16239
  int __ovld __cnfn get_image_channel_order(read_write image1d_buffer_t image);
15088
16240
  int __ovld __cnfn get_image_channel_order(read_write image2d_t image);
@@ -15099,7 +16251,7 @@ int __ovld __cnfn get_image_channel_order(read_write image2d_msaa_depth_t image)
15099
16251
  int __ovld __cnfn get_image_channel_order(read_write image2d_array_msaa_t image);
15100
16252
  int __ovld __cnfn get_image_channel_order(read_write image2d_array_msaa_depth_t image);
15101
16253
  #endif //cl_khr_gl_msaa_sharing
15102
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16254
+ #endif //defined(__opencl_c_read_write_images)
15103
16255
 
15104
16256
  /**
15105
16257
  * Return the 2D image width and height as an int2
@@ -15132,7 +16284,7 @@ int2 __ovld __cnfn get_image_dim(write_only image2d_array_msaa_t image);
15132
16284
  int2 __ovld __cnfn get_image_dim(write_only image2d_array_msaa_depth_t image);
15133
16285
  #endif //cl_khr_gl_msaa_sharing
15134
16286
 
15135
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16287
+ #if defined(__opencl_c_read_write_images)
15136
16288
  int2 __ovld __cnfn get_image_dim(read_write image2d_t image);
15137
16289
  int2 __ovld __cnfn get_image_dim(read_write image2d_array_t image);
15138
16290
  #ifdef cl_khr_depth_images
@@ -15145,7 +16297,7 @@ int2 __ovld __cnfn get_image_dim(read_write image2d_msaa_depth_t image);
15145
16297
  int2 __ovld __cnfn get_image_dim(read_write image2d_array_msaa_t image);
15146
16298
  int2 __ovld __cnfn get_image_dim(read_write image2d_array_msaa_depth_t image);
15147
16299
  #endif //cl_khr_gl_msaa_sharing
15148
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16300
+ #endif //defined(__opencl_c_read_write_images)
15149
16301
 
15150
16302
  /**
15151
16303
  * Return the 3D image width, height, and depth as an
@@ -15157,9 +16309,9 @@ int4 __ovld __cnfn get_image_dim(read_only image3d_t image);
15157
16309
  #ifdef cl_khr_3d_image_writes
15158
16310
  int4 __ovld __cnfn get_image_dim(write_only image3d_t image);
15159
16311
  #endif
15160
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16312
+ #if defined(__opencl_c_read_write_images)
15161
16313
  int4 __ovld __cnfn get_image_dim(read_write image3d_t image);
15162
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16314
+ #endif //defined(__opencl_c_read_write_images)
15163
16315
 
15164
16316
  /**
15165
16317
  * Return the image array size.
@@ -15185,7 +16337,7 @@ size_t __ovld __cnfn get_image_array_size(write_only image2d_array_msaa_t image_
15185
16337
  size_t __ovld __cnfn get_image_array_size(write_only image2d_array_msaa_depth_t image_array);
15186
16338
  #endif //cl_khr_gl_msaa_sharing
15187
16339
 
15188
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16340
+ #if defined(__opencl_c_read_write_images)
15189
16341
  size_t __ovld __cnfn get_image_array_size(read_write image1d_array_t image_array);
15190
16342
  size_t __ovld __cnfn get_image_array_size(read_write image2d_array_t image_array);
15191
16343
  #ifdef cl_khr_depth_images
@@ -15195,7 +16347,7 @@ size_t __ovld __cnfn get_image_array_size(read_write image2d_array_depth_t image
15195
16347
  size_t __ovld __cnfn get_image_array_size(read_write image2d_array_msaa_t image_array);
15196
16348
  size_t __ovld __cnfn get_image_array_size(read_write image2d_array_msaa_depth_t image_array);
15197
16349
  #endif //cl_khr_gl_msaa_sharing
15198
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16350
+ #endif //defined(__opencl_c_read_write_images)
15199
16351
 
15200
16352
  /**
15201
16353
  * Return the number of samples associated with image
@@ -15211,17 +16363,17 @@ int __ovld get_image_num_samples(write_only image2d_msaa_depth_t image);
15211
16363
  int __ovld get_image_num_samples(write_only image2d_array_msaa_t image);
15212
16364
  int __ovld get_image_num_samples(write_only image2d_array_msaa_depth_t image);
15213
16365
 
15214
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16366
+ #if defined(__opencl_c_read_write_images)
15215
16367
  int __ovld get_image_num_samples(read_write image2d_msaa_t image);
15216
16368
  int __ovld get_image_num_samples(read_write image2d_msaa_depth_t image);
15217
16369
  int __ovld get_image_num_samples(read_write image2d_array_msaa_t image);
15218
16370
  int __ovld get_image_num_samples(read_write image2d_array_msaa_depth_t image);
15219
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16371
+ #endif //defined(__opencl_c_read_write_images)
15220
16372
  #endif
15221
16373
 
15222
16374
  // OpenCL v2.0 s6.13.15 - Work-group Functions
15223
16375
 
15224
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16376
+ #if defined(__opencl_c_work_group_collective_functions)
15225
16377
  int __ovld __conv work_group_all(int predicate);
15226
16378
  int __ovld __conv work_group_any(int predicate);
15227
16379
 
@@ -15319,17 +16471,18 @@ double __ovld __conv work_group_scan_inclusive_min(double x);
15319
16471
  double __ovld __conv work_group_scan_inclusive_max(double x);
15320
16472
  #endif //cl_khr_fp64
15321
16473
 
15322
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16474
+ #endif //defined(__opencl_c_work_group_collective_functions)
15323
16475
 
15324
16476
  // OpenCL v2.0 s6.13.16 - Pipe Functions
15325
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16477
+ #if defined(__opencl_c_pipes)
15326
16478
  bool __ovld is_valid_reserve_id(reserve_id_t reserve_id);
15327
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16479
+ #endif //defined(__opencl_c_pipes)
15328
16480
 
15329
16481
 
15330
16482
  // OpenCL v2.0 s6.13.17 - Enqueue Kernels
15331
16483
  #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
15332
16484
 
16485
+ #ifdef __opencl_c_device_enqueue
15333
16486
  ndrange_t __ovld ndrange_1D(size_t);
15334
16487
  ndrange_t __ovld ndrange_1D(size_t, size_t);
15335
16488
  ndrange_t __ovld ndrange_1D(size_t, size_t, size_t);
@@ -15357,11 +16510,12 @@ bool __ovld is_valid_event (clk_event_t event);
15357
16510
  void __ovld capture_event_profiling_info(clk_event_t, clk_profiling_info, __global void* value);
15358
16511
 
15359
16512
  queue_t __ovld get_default_queue(void);
16513
+ #endif //__opencl_c_device_enqueue
15360
16514
  #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
15361
16515
 
15362
16516
  // OpenCL Extension v2.0 s9.17 - Sub-groups
15363
16517
 
15364
- #if defined(cl_intel_subgroups) || defined(cl_khr_subgroups)
16518
+ #if defined(cl_intel_subgroups) || defined(cl_khr_subgroups) || defined(__opencl_c_subgroups)
15365
16519
  // Shared Sub Group Functions
15366
16520
  uint __ovld get_sub_group_size(void);
15367
16521
  uint __ovld get_max_sub_group_size(void);
@@ -15460,7 +16614,7 @@ double __ovld __conv sub_group_scan_inclusive_min(double x);
15460
16614
  double __ovld __conv sub_group_scan_inclusive_max(double x);
15461
16615
  #endif //cl_khr_fp64
15462
16616
 
15463
- #endif //cl_khr_subgroups cl_intel_subgroups
16617
+ #endif //cl_khr_subgroups cl_intel_subgroups __opencl_c_subgroups
15464
16618
 
15465
16619
  #if defined(cl_khr_subgroup_extended_types)
15466
16620
  char __ovld __conv sub_group_broadcast( char value, uint index );
@@ -16130,6 +17284,230 @@ double __ovld sub_group_clustered_reduce_max( double value, uint clustersize );
16130
17284
 
16131
17285
  #endif // cl_khr_subgroup_clustered_reduce
16132
17286
 
17287
+ #if defined(cl_khr_extended_bit_ops)
17288
+ char __ovld __cnfn bitfield_insert(char, char, uint, uint);
17289
+ uchar __ovld __cnfn bitfield_insert(uchar, uchar, uint, uint);
17290
+ short __ovld __cnfn bitfield_insert(short, short, uint, uint);
17291
+ ushort __ovld __cnfn bitfield_insert(ushort, ushort, uint, uint);
17292
+ int __ovld __cnfn bitfield_insert(int, int, uint, uint);
17293
+ uint __ovld __cnfn bitfield_insert(uint, uint, uint, uint);
17294
+ long __ovld __cnfn bitfield_insert(long, long, uint, uint);
17295
+ ulong __ovld __cnfn bitfield_insert(ulong, ulong, uint, uint);
17296
+ char2 __ovld __cnfn bitfield_insert(char2, char2, uint, uint);
17297
+ uchar2 __ovld __cnfn bitfield_insert(uchar2, uchar2, uint, uint);
17298
+ short2 __ovld __cnfn bitfield_insert(short2, short2, uint, uint);
17299
+ ushort2 __ovld __cnfn bitfield_insert(ushort2, ushort2, uint, uint);
17300
+ int2 __ovld __cnfn bitfield_insert(int2, int2, uint, uint);
17301
+ uint2 __ovld __cnfn bitfield_insert(uint2, uint2, uint, uint);
17302
+ long2 __ovld __cnfn bitfield_insert(long2, long2, uint, uint);
17303
+ ulong2 __ovld __cnfn bitfield_insert(ulong2, ulong2, uint, uint);
17304
+ char3 __ovld __cnfn bitfield_insert(char3, char3, uint, uint);
17305
+ uchar3 __ovld __cnfn bitfield_insert(uchar3, uchar3, uint, uint);
17306
+ short3 __ovld __cnfn bitfield_insert(short3, short3, uint, uint);
17307
+ ushort3 __ovld __cnfn bitfield_insert(ushort3, ushort3, uint, uint);
17308
+ int3 __ovld __cnfn bitfield_insert(int3, int3, uint, uint);
17309
+ uint3 __ovld __cnfn bitfield_insert(uint3, uint3, uint, uint);
17310
+ long3 __ovld __cnfn bitfield_insert(long3, long3, uint, uint);
17311
+ ulong3 __ovld __cnfn bitfield_insert(ulong3, ulong3, uint, uint);
17312
+ char4 __ovld __cnfn bitfield_insert(char4, char4, uint, uint);
17313
+ uchar4 __ovld __cnfn bitfield_insert(uchar4, uchar4, uint, uint);
17314
+ short4 __ovld __cnfn bitfield_insert(short4, short4, uint, uint);
17315
+ ushort4 __ovld __cnfn bitfield_insert(ushort4, ushort4, uint, uint);
17316
+ int4 __ovld __cnfn bitfield_insert(int4, int4, uint, uint);
17317
+ uint4 __ovld __cnfn bitfield_insert(uint4, uint4, uint, uint);
17318
+ long4 __ovld __cnfn bitfield_insert(long4, long4, uint, uint);
17319
+ ulong4 __ovld __cnfn bitfield_insert(ulong4, ulong4, uint, uint);
17320
+ char8 __ovld __cnfn bitfield_insert(char8, char8, uint, uint);
17321
+ uchar8 __ovld __cnfn bitfield_insert(uchar8, uchar8, uint, uint);
17322
+ short8 __ovld __cnfn bitfield_insert(short8, short8, uint, uint);
17323
+ ushort8 __ovld __cnfn bitfield_insert(ushort8, ushort8, uint, uint);
17324
+ int8 __ovld __cnfn bitfield_insert(int8, int8, uint, uint);
17325
+ uint8 __ovld __cnfn bitfield_insert(uint8, uint8, uint, uint);
17326
+ long8 __ovld __cnfn bitfield_insert(long8, long8, uint, uint);
17327
+ ulong8 __ovld __cnfn bitfield_insert(ulong8, ulong8, uint, uint);
17328
+ char16 __ovld __cnfn bitfield_insert(char16, char16, uint, uint);
17329
+ uchar16 __ovld __cnfn bitfield_insert(uchar16, uchar16, uint, uint);
17330
+ short16 __ovld __cnfn bitfield_insert(short16, short16, uint, uint);
17331
+ ushort16 __ovld __cnfn bitfield_insert(ushort16, ushort16, uint, uint);
17332
+ int16 __ovld __cnfn bitfield_insert(int16, int16, uint, uint);
17333
+ uint16 __ovld __cnfn bitfield_insert(uint16, uint16, uint, uint);
17334
+ long16 __ovld __cnfn bitfield_insert(long16, long16, uint, uint);
17335
+ ulong16 __ovld __cnfn bitfield_insert(ulong16, ulong16, uint, uint);
17336
+
17337
+ char __ovld __cnfn bitfield_extract_signed(char, uint, uint);
17338
+ short __ovld __cnfn bitfield_extract_signed(short, uint, uint);
17339
+ int __ovld __cnfn bitfield_extract_signed(int, uint, uint);
17340
+ long __ovld __cnfn bitfield_extract_signed(long, uint, uint);
17341
+ char2 __ovld __cnfn bitfield_extract_signed(char2, uint, uint);
17342
+ short2 __ovld __cnfn bitfield_extract_signed(short2, uint, uint);
17343
+ int2 __ovld __cnfn bitfield_extract_signed(int2, uint, uint);
17344
+ long2 __ovld __cnfn bitfield_extract_signed(long2, uint, uint);
17345
+ char3 __ovld __cnfn bitfield_extract_signed(char3, uint, uint);
17346
+ short3 __ovld __cnfn bitfield_extract_signed(short3, uint, uint);
17347
+ int3 __ovld __cnfn bitfield_extract_signed(int3, uint, uint);
17348
+ long3 __ovld __cnfn bitfield_extract_signed(long3, uint, uint);
17349
+ char4 __ovld __cnfn bitfield_extract_signed(char4, uint, uint);
17350
+ short4 __ovld __cnfn bitfield_extract_signed(short4, uint, uint);
17351
+ int4 __ovld __cnfn bitfield_extract_signed(int4, uint, uint);
17352
+ long4 __ovld __cnfn bitfield_extract_signed(long4, uint, uint);
17353
+ char8 __ovld __cnfn bitfield_extract_signed(char8, uint, uint);
17354
+ short8 __ovld __cnfn bitfield_extract_signed(short8, uint, uint);
17355
+ int8 __ovld __cnfn bitfield_extract_signed(int8, uint, uint);
17356
+ long8 __ovld __cnfn bitfield_extract_signed(long8, uint, uint);
17357
+ char16 __ovld __cnfn bitfield_extract_signed(char16, uint, uint);
17358
+ short16 __ovld __cnfn bitfield_extract_signed(short16, uint, uint);
17359
+ int16 __ovld __cnfn bitfield_extract_signed(int16, uint, uint);
17360
+ long16 __ovld __cnfn bitfield_extract_signed(long16, uint, uint);
17361
+
17362
+ char __ovld __cnfn bitfield_extract_signed(uchar, uint, uint);
17363
+ short __ovld __cnfn bitfield_extract_signed(ushort, uint, uint);
17364
+ int __ovld __cnfn bitfield_extract_signed(uint, uint, uint);
17365
+ long __ovld __cnfn bitfield_extract_signed(ulong, uint, uint);
17366
+ char2 __ovld __cnfn bitfield_extract_signed(uchar2, uint, uint);
17367
+ short2 __ovld __cnfn bitfield_extract_signed(ushort2, uint, uint);
17368
+ int2 __ovld __cnfn bitfield_extract_signed(uint2, uint, uint);
17369
+ long2 __ovld __cnfn bitfield_extract_signed(ulong2, uint, uint);
17370
+ char3 __ovld __cnfn bitfield_extract_signed(uchar3, uint, uint);
17371
+ short3 __ovld __cnfn bitfield_extract_signed(ushort3, uint, uint);
17372
+ int3 __ovld __cnfn bitfield_extract_signed(uint3, uint, uint);
17373
+ long3 __ovld __cnfn bitfield_extract_signed(ulong3, uint, uint);
17374
+ char4 __ovld __cnfn bitfield_extract_signed(uchar4, uint, uint);
17375
+ short4 __ovld __cnfn bitfield_extract_signed(ushort4, uint, uint);
17376
+ int4 __ovld __cnfn bitfield_extract_signed(uint4, uint, uint);
17377
+ long4 __ovld __cnfn bitfield_extract_signed(ulong4, uint, uint);
17378
+ char8 __ovld __cnfn bitfield_extract_signed(uchar8, uint, uint);
17379
+ short8 __ovld __cnfn bitfield_extract_signed(ushort8, uint, uint);
17380
+ int8 __ovld __cnfn bitfield_extract_signed(uint8, uint, uint);
17381
+ long8 __ovld __cnfn bitfield_extract_signed(ulong8, uint, uint);
17382
+ char16 __ovld __cnfn bitfield_extract_signed(uchar16, uint, uint);
17383
+ short16 __ovld __cnfn bitfield_extract_signed(ushort16, uint, uint);
17384
+ int16 __ovld __cnfn bitfield_extract_signed(uint16, uint, uint);
17385
+ long16 __ovld __cnfn bitfield_extract_signed(ulong16, uint, uint);
17386
+
17387
+ uchar __ovld __cnfn bitfield_extract_unsigned(char, uint, uint);
17388
+ ushort __ovld __cnfn bitfield_extract_unsigned(short, uint, uint);
17389
+ uint __ovld __cnfn bitfield_extract_unsigned(int, uint, uint);
17390
+ ulong __ovld __cnfn bitfield_extract_unsigned(long, uint, uint);
17391
+ uchar2 __ovld __cnfn bitfield_extract_unsigned(char2, uint, uint);
17392
+ ushort2 __ovld __cnfn bitfield_extract_unsigned(short2, uint, uint);
17393
+ uint2 __ovld __cnfn bitfield_extract_unsigned(int2, uint, uint);
17394
+ ulong2 __ovld __cnfn bitfield_extract_unsigned(long2, uint, uint);
17395
+ uchar3 __ovld __cnfn bitfield_extract_unsigned(char3, uint, uint);
17396
+ ushort3 __ovld __cnfn bitfield_extract_unsigned(short3, uint, uint);
17397
+ uint3 __ovld __cnfn bitfield_extract_unsigned(int3, uint, uint);
17398
+ ulong3 __ovld __cnfn bitfield_extract_unsigned(long3, uint, uint);
17399
+ uchar4 __ovld __cnfn bitfield_extract_unsigned(char4, uint, uint);
17400
+ ushort4 __ovld __cnfn bitfield_extract_unsigned(short4, uint, uint);
17401
+ uint4 __ovld __cnfn bitfield_extract_unsigned(int4, uint, uint);
17402
+ ulong4 __ovld __cnfn bitfield_extract_unsigned(long4, uint, uint);
17403
+ uchar8 __ovld __cnfn bitfield_extract_unsigned(char8, uint, uint);
17404
+ ushort8 __ovld __cnfn bitfield_extract_unsigned(short8, uint, uint);
17405
+ uint8 __ovld __cnfn bitfield_extract_unsigned(int8, uint, uint);
17406
+ ulong8 __ovld __cnfn bitfield_extract_unsigned(long8, uint, uint);
17407
+ uchar16 __ovld __cnfn bitfield_extract_unsigned(char16, uint, uint);
17408
+ ushort16 __ovld __cnfn bitfield_extract_unsigned(short16, uint, uint);
17409
+ uint16 __ovld __cnfn bitfield_extract_unsigned(int16, uint, uint);
17410
+ ulong16 __ovld __cnfn bitfield_extract_unsigned(long16, uint, uint);
17411
+
17412
+ uchar __ovld __cnfn bitfield_extract_unsigned(uchar, uint, uint);
17413
+ ushort __ovld __cnfn bitfield_extract_unsigned(ushort, uint, uint);
17414
+ uint __ovld __cnfn bitfield_extract_unsigned(uint, uint, uint);
17415
+ ulong __ovld __cnfn bitfield_extract_unsigned(ulong, uint, uint);
17416
+ uchar2 __ovld __cnfn bitfield_extract_unsigned(uchar2, uint, uint);
17417
+ ushort2 __ovld __cnfn bitfield_extract_unsigned(ushort2, uint, uint);
17418
+ uint2 __ovld __cnfn bitfield_extract_unsigned(uint2, uint, uint);
17419
+ ulong2 __ovld __cnfn bitfield_extract_unsigned(ulong2, uint, uint);
17420
+ uchar3 __ovld __cnfn bitfield_extract_unsigned(uchar3, uint, uint);
17421
+ ushort3 __ovld __cnfn bitfield_extract_unsigned(ushort3, uint, uint);
17422
+ uint3 __ovld __cnfn bitfield_extract_unsigned(uint3, uint, uint);
17423
+ ulong3 __ovld __cnfn bitfield_extract_unsigned(ulong3, uint, uint);
17424
+ uchar4 __ovld __cnfn bitfield_extract_unsigned(uchar4, uint, uint);
17425
+ ushort4 __ovld __cnfn bitfield_extract_unsigned(ushort4, uint, uint);
17426
+ uint4 __ovld __cnfn bitfield_extract_unsigned(uint4, uint, uint);
17427
+ ulong4 __ovld __cnfn bitfield_extract_unsigned(ulong4, uint, uint);
17428
+ uchar8 __ovld __cnfn bitfield_extract_unsigned(uchar8, uint, uint);
17429
+ ushort8 __ovld __cnfn bitfield_extract_unsigned(ushort8, uint, uint);
17430
+ uint8 __ovld __cnfn bitfield_extract_unsigned(uint8, uint, uint);
17431
+ ulong8 __ovld __cnfn bitfield_extract_unsigned(ulong8, uint, uint);
17432
+ uchar16 __ovld __cnfn bitfield_extract_unsigned(uchar16, uint, uint);
17433
+ ushort16 __ovld __cnfn bitfield_extract_unsigned(ushort16, uint, uint);
17434
+ uint16 __ovld __cnfn bitfield_extract_unsigned(uint16, uint, uint);
17435
+ ulong16 __ovld __cnfn bitfield_extract_unsigned(ulong16, uint, uint);
17436
+
17437
+ char __ovld __cnfn bit_reverse(char);
17438
+ uchar __ovld __cnfn bit_reverse(uchar);
17439
+ short __ovld __cnfn bit_reverse(short);
17440
+ ushort __ovld __cnfn bit_reverse(ushort);
17441
+ int __ovld __cnfn bit_reverse(int);
17442
+ uint __ovld __cnfn bit_reverse(uint);
17443
+ long __ovld __cnfn bit_reverse(long);
17444
+ ulong __ovld __cnfn bit_reverse(ulong);
17445
+ char2 __ovld __cnfn bit_reverse(char2);
17446
+ uchar2 __ovld __cnfn bit_reverse(uchar2);
17447
+ short2 __ovld __cnfn bit_reverse(short2);
17448
+ ushort2 __ovld __cnfn bit_reverse(ushort2);
17449
+ int2 __ovld __cnfn bit_reverse(int2);
17450
+ uint2 __ovld __cnfn bit_reverse(uint2);
17451
+ long2 __ovld __cnfn bit_reverse(long2);
17452
+ ulong2 __ovld __cnfn bit_reverse(ulong2);
17453
+ char3 __ovld __cnfn bit_reverse(char3);
17454
+ uchar3 __ovld __cnfn bit_reverse(uchar3);
17455
+ short3 __ovld __cnfn bit_reverse(short3);
17456
+ ushort3 __ovld __cnfn bit_reverse(ushort3);
17457
+ int3 __ovld __cnfn bit_reverse(int3);
17458
+ uint3 __ovld __cnfn bit_reverse(uint3);
17459
+ long3 __ovld __cnfn bit_reverse(long3);
17460
+ ulong3 __ovld __cnfn bit_reverse(ulong3);
17461
+ char4 __ovld __cnfn bit_reverse(char4);
17462
+ uchar4 __ovld __cnfn bit_reverse(uchar4);
17463
+ short4 __ovld __cnfn bit_reverse(short4);
17464
+ ushort4 __ovld __cnfn bit_reverse(ushort4);
17465
+ int4 __ovld __cnfn bit_reverse(int4);
17466
+ uint4 __ovld __cnfn bit_reverse(uint4);
17467
+ long4 __ovld __cnfn bit_reverse(long4);
17468
+ ulong4 __ovld __cnfn bit_reverse(ulong4);
17469
+ char8 __ovld __cnfn bit_reverse(char8);
17470
+ uchar8 __ovld __cnfn bit_reverse(uchar8);
17471
+ short8 __ovld __cnfn bit_reverse(short8);
17472
+ ushort8 __ovld __cnfn bit_reverse(ushort8);
17473
+ int8 __ovld __cnfn bit_reverse(int8);
17474
+ uint8 __ovld __cnfn bit_reverse(uint8);
17475
+ long8 __ovld __cnfn bit_reverse(long8);
17476
+ ulong8 __ovld __cnfn bit_reverse(ulong8);
17477
+ char16 __ovld __cnfn bit_reverse(char16);
17478
+ uchar16 __ovld __cnfn bit_reverse(uchar16);
17479
+ short16 __ovld __cnfn bit_reverse(short16);
17480
+ ushort16 __ovld __cnfn bit_reverse(ushort16);
17481
+ int16 __ovld __cnfn bit_reverse(int16);
17482
+ uint16 __ovld __cnfn bit_reverse(uint16);
17483
+ long16 __ovld __cnfn bit_reverse(long16);
17484
+ ulong16 __ovld __cnfn bit_reverse(ulong16);
17485
+ #endif // cl_khr_extended_bit_ops
17486
+
17487
+ #if defined(__opencl_c_integer_dot_product_input_4x8bit)
17488
+ uint __ovld __cnfn dot(uchar4, uchar4);
17489
+ int __ovld __cnfn dot(char4, char4);
17490
+ int __ovld __cnfn dot(uchar4, char4);
17491
+ int __ovld __cnfn dot(char4, uchar4);
17492
+
17493
+ uint __ovld __cnfn dot_acc_sat(uchar4, uchar4, uint);
17494
+ int __ovld __cnfn dot_acc_sat(char4, char4, int);
17495
+ int __ovld __cnfn dot_acc_sat(uchar4, char4, int);
17496
+ int __ovld __cnfn dot_acc_sat(char4, uchar4, int);
17497
+ #endif // __opencl_c_integer_dot_product_input_4x8bit
17498
+
17499
+ #if defined(__opencl_c_integer_dot_product_input_4x8bit_packed)
17500
+ uint __ovld __cnfn dot_4x8packed_uu_uint(uint, uint);
17501
+ int __ovld __cnfn dot_4x8packed_ss_int(uint, uint);
17502
+ int __ovld __cnfn dot_4x8packed_us_int(uint, uint);
17503
+ int __ovld __cnfn dot_4x8packed_su_int(uint, uint);
17504
+
17505
+ uint __ovld __cnfn dot_acc_sat_4x8packed_uu_uint(uint, uint, uint);
17506
+ int __ovld __cnfn dot_acc_sat_4x8packed_ss_int(uint, uint, int);
17507
+ int __ovld __cnfn dot_acc_sat_4x8packed_us_int(uint, uint, int);
17508
+ int __ovld __cnfn dot_acc_sat_4x8packed_su_int(uint, uint, int);
17509
+ #endif // __opencl_c_integer_dot_product_input_4x8bit_packed
17510
+
16133
17511
  #if defined(cl_intel_subgroups)
16134
17512
  // Intel-Specific Sub Group Functions
16135
17513
  float __ovld __conv intel_sub_group_shuffle( float x, uint c );
@@ -16228,34 +17606,38 @@ uint16 __ovld __conv intel_sub_group_shuffle_xor( uint16 x, uint c );
16228
17606
  long __ovld __conv intel_sub_group_shuffle_xor( long x, uint c );
16229
17607
  ulong __ovld __conv intel_sub_group_shuffle_xor( ulong x, uint c );
16230
17608
 
17609
+ #if defined(__opencl_c_images)
16231
17610
  uint __ovld __conv intel_sub_group_block_read( read_only image2d_t image, int2 coord );
16232
17611
  uint2 __ovld __conv intel_sub_group_block_read2( read_only image2d_t image, int2 coord );
16233
17612
  uint4 __ovld __conv intel_sub_group_block_read4( read_only image2d_t image, int2 coord );
16234
17613
  uint8 __ovld __conv intel_sub_group_block_read8( read_only image2d_t image, int2 coord );
17614
+ #endif
16235
17615
 
16236
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
17616
+ #if defined(__opencl_c_read_write_images)
16237
17617
  uint __ovld __conv intel_sub_group_block_read(read_write image2d_t image, int2 coord);
16238
17618
  uint2 __ovld __conv intel_sub_group_block_read2(read_write image2d_t image, int2 coord);
16239
17619
  uint4 __ovld __conv intel_sub_group_block_read4(read_write image2d_t image, int2 coord);
16240
17620
  uint8 __ovld __conv intel_sub_group_block_read8(read_write image2d_t image, int2 coord);
16241
- #endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
17621
+ #endif // defined(__opencl_c_read_write_images)
16242
17622
 
16243
17623
  uint __ovld __conv intel_sub_group_block_read( const __global uint* p );
16244
17624
  uint2 __ovld __conv intel_sub_group_block_read2( const __global uint* p );
16245
17625
  uint4 __ovld __conv intel_sub_group_block_read4( const __global uint* p );
16246
17626
  uint8 __ovld __conv intel_sub_group_block_read8( const __global uint* p );
16247
17627
 
17628
+ #if defined(__opencl_c_images)
16248
17629
  void __ovld __conv intel_sub_group_block_write(write_only image2d_t image, int2 coord, uint data);
16249
17630
  void __ovld __conv intel_sub_group_block_write2(write_only image2d_t image, int2 coord, uint2 data);
16250
17631
  void __ovld __conv intel_sub_group_block_write4(write_only image2d_t image, int2 coord, uint4 data);
16251
17632
  void __ovld __conv intel_sub_group_block_write8(write_only image2d_t image, int2 coord, uint8 data);
17633
+ #endif // defined(__opencl_c_images)
16252
17634
 
16253
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
17635
+ #if defined(__opencl_c_read_write_images)
16254
17636
  void __ovld __conv intel_sub_group_block_write(read_write image2d_t image, int2 coord, uint data);
16255
17637
  void __ovld __conv intel_sub_group_block_write2(read_write image2d_t image, int2 coord, uint2 data);
16256
17638
  void __ovld __conv intel_sub_group_block_write4(read_write image2d_t image, int2 coord, uint4 data);
16257
17639
  void __ovld __conv intel_sub_group_block_write8(read_write image2d_t image, int2 coord, uint8 data);
16258
- #endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
17640
+ #endif // defined(__opencl_c_read_write_images)
16259
17641
 
16260
17642
  void __ovld __conv intel_sub_group_block_write( __global uint* p, uint data );
16261
17643
  void __ovld __conv intel_sub_group_block_write2( __global uint* p, uint2 data );
@@ -16368,68 +17750,76 @@ ushort __ovld __conv intel_sub_group_scan_inclusive_min( ushort x );
16368
17750
  short __ovld __conv intel_sub_group_scan_inclusive_max( short x );
16369
17751
  ushort __ovld __conv intel_sub_group_scan_inclusive_max( ushort x );
16370
17752
 
17753
+ #if defined(__opencl_c_images)
16371
17754
  uint __ovld __conv intel_sub_group_block_read_ui( read_only image2d_t image, int2 byte_coord );
16372
17755
  uint2 __ovld __conv intel_sub_group_block_read_ui2( read_only image2d_t image, int2 byte_coord );
16373
17756
  uint4 __ovld __conv intel_sub_group_block_read_ui4( read_only image2d_t image, int2 byte_coord );
16374
17757
  uint8 __ovld __conv intel_sub_group_block_read_ui8( read_only image2d_t image, int2 byte_coord );
17758
+ #endif // defined(__opencl_c_images)
16375
17759
 
16376
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
17760
+ #if defined(__opencl_c_read_write_images)
16377
17761
  uint __ovld __conv intel_sub_group_block_read_ui( read_write image2d_t image, int2 byte_coord );
16378
17762
  uint2 __ovld __conv intel_sub_group_block_read_ui2( read_write image2d_t image, int2 byte_coord );
16379
17763
  uint4 __ovld __conv intel_sub_group_block_read_ui4( read_write image2d_t image, int2 byte_coord );
16380
17764
  uint8 __ovld __conv intel_sub_group_block_read_ui8( read_write image2d_t image, int2 byte_coord );
16381
- #endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
17765
+ #endif // defined(__opencl_c_read_write_images)
16382
17766
 
16383
17767
  uint __ovld __conv intel_sub_group_block_read_ui( const __global uint* p );
16384
17768
  uint2 __ovld __conv intel_sub_group_block_read_ui2( const __global uint* p );
16385
17769
  uint4 __ovld __conv intel_sub_group_block_read_ui4( const __global uint* p );
16386
17770
  uint8 __ovld __conv intel_sub_group_block_read_ui8( const __global uint* p );
16387
17771
 
17772
+ #if defined(__opencl_c_images)
16388
17773
  void __ovld __conv intel_sub_group_block_write_ui( read_only image2d_t image, int2 byte_coord, uint data );
16389
17774
  void __ovld __conv intel_sub_group_block_write_ui2( read_only image2d_t image, int2 byte_coord, uint2 data );
16390
17775
  void __ovld __conv intel_sub_group_block_write_ui4( read_only image2d_t image, int2 byte_coord, uint4 data );
16391
17776
  void __ovld __conv intel_sub_group_block_write_ui8( read_only image2d_t image, int2 byte_coord, uint8 data );
17777
+ #endif //defined(__opencl_c_images)
16392
17778
 
16393
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
17779
+ #if defined(__opencl_c_read_write_images)
16394
17780
  void __ovld __conv intel_sub_group_block_write_ui( read_write image2d_t image, int2 byte_coord, uint data );
16395
17781
  void __ovld __conv intel_sub_group_block_write_ui2( read_write image2d_t image, int2 byte_coord, uint2 data );
16396
17782
  void __ovld __conv intel_sub_group_block_write_ui4( read_write image2d_t image, int2 byte_coord, uint4 data );
16397
17783
  void __ovld __conv intel_sub_group_block_write_ui8( read_write image2d_t image, int2 byte_coord, uint8 data );
16398
- #endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
17784
+ #endif // defined(__opencl_c_read_write_images)
16399
17785
 
16400
17786
  void __ovld __conv intel_sub_group_block_write_ui( __global uint* p, uint data );
16401
17787
  void __ovld __conv intel_sub_group_block_write_ui2( __global uint* p, uint2 data );
16402
17788
  void __ovld __conv intel_sub_group_block_write_ui4( __global uint* p, uint4 data );
16403
17789
  void __ovld __conv intel_sub_group_block_write_ui8( __global uint* p, uint8 data );
16404
17790
 
17791
+ #if defined(__opencl_c_images)
16405
17792
  ushort __ovld __conv intel_sub_group_block_read_us( read_only image2d_t image, int2 coord );
16406
17793
  ushort2 __ovld __conv intel_sub_group_block_read_us2( read_only image2d_t image, int2 coord );
16407
17794
  ushort4 __ovld __conv intel_sub_group_block_read_us4( read_only image2d_t image, int2 coord );
16408
17795
  ushort8 __ovld __conv intel_sub_group_block_read_us8( read_only image2d_t image, int2 coord );
17796
+ #endif // defined(__opencl_c_images)
16409
17797
 
16410
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
17798
+ #if defined(__opencl_c_read_write_images)
16411
17799
  ushort __ovld __conv intel_sub_group_block_read_us(read_write image2d_t image, int2 coord);
16412
17800
  ushort2 __ovld __conv intel_sub_group_block_read_us2(read_write image2d_t image, int2 coord);
16413
17801
  ushort4 __ovld __conv intel_sub_group_block_read_us4(read_write image2d_t image, int2 coord);
16414
17802
  ushort8 __ovld __conv intel_sub_group_block_read_us8(read_write image2d_t image, int2 coord);
16415
- #endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
17803
+ #endif // defined(__opencl_c_read_write_images)
16416
17804
 
16417
17805
  ushort __ovld __conv intel_sub_group_block_read_us( const __global ushort* p );
16418
17806
  ushort2 __ovld __conv intel_sub_group_block_read_us2( const __global ushort* p );
16419
17807
  ushort4 __ovld __conv intel_sub_group_block_read_us4( const __global ushort* p );
16420
17808
  ushort8 __ovld __conv intel_sub_group_block_read_us8( const __global ushort* p );
16421
17809
 
17810
+ #if defined(__opencl_c_images)
16422
17811
  void __ovld __conv intel_sub_group_block_write_us(write_only image2d_t image, int2 coord, ushort data);
16423
17812
  void __ovld __conv intel_sub_group_block_write_us2(write_only image2d_t image, int2 coord, ushort2 data);
16424
17813
  void __ovld __conv intel_sub_group_block_write_us4(write_only image2d_t image, int2 coord, ushort4 data);
16425
17814
  void __ovld __conv intel_sub_group_block_write_us8(write_only image2d_t image, int2 coord, ushort8 data);
17815
+ #endif // defined(__opencl_c_images)
16426
17816
 
16427
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
17817
+ #if defined(__opencl_c_read_write_images)
16428
17818
  void __ovld __conv intel_sub_group_block_write_us(read_write image2d_t image, int2 coord, ushort data);
16429
17819
  void __ovld __conv intel_sub_group_block_write_us2(read_write image2d_t image, int2 coord, ushort2 data);
16430
17820
  void __ovld __conv intel_sub_group_block_write_us4(read_write image2d_t image, int2 coord, ushort4 data);
16431
17821
  void __ovld __conv intel_sub_group_block_write_us8(read_write image2d_t image, int2 coord, ushort8 data);
16432
- #endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
17822
+ #endif // defined(__opencl_c_read_write_images)
16433
17823
 
16434
17824
  void __ovld __conv intel_sub_group_block_write_us( __global ushort* p, ushort data );
16435
17825
  void __ovld __conv intel_sub_group_block_write_us2( __global ushort* p, ushort2 data );
@@ -16547,6 +17937,7 @@ short2 __ovld intel_sub_group_avc_ime_adjust_ref_offset(
16547
17937
  short2 ref_offset, ushort2 src_coord, ushort2 ref_window_size,
16548
17938
  ushort2 image_size);
16549
17939
 
17940
+ #if defined(__opencl_c_images)
16550
17941
  intel_sub_group_avc_ime_result_t __ovld
16551
17942
  intel_sub_group_avc_ime_evaluate_with_single_reference(
16552
17943
  read_only image2d_t src_image, read_only image2d_t ref_image,
@@ -16587,6 +17978,7 @@ intel_sub_group_avc_ime_evaluate_with_dual_reference_streaminout(
16587
17978
  read_only image2d_t bwd_ref_image, sampler_t vme_media_sampler,
16588
17979
  intel_sub_group_avc_ime_payload_t payload,
16589
17980
  intel_sub_group_avc_ime_dual_reference_streamin_t streamin_components);
17981
+ #endif
16590
17982
 
16591
17983
  intel_sub_group_avc_ime_single_reference_streamin_t __ovld
16592
17984
  intel_sub_group_avc_ime_get_single_reference_streamin(
@@ -16651,6 +18043,7 @@ intel_sub_group_avc_ref_payload_t __ovld
16651
18043
  intel_sub_group_avc_ref_set_bilinear_filter_enable(
16652
18044
  intel_sub_group_avc_ref_payload_t payload);
16653
18045
 
18046
+ #if defined(__opencl_c_images)
16654
18047
  intel_sub_group_avc_ref_result_t __ovld
16655
18048
  intel_sub_group_avc_ref_evaluate_with_single_reference(
16656
18049
  read_only image2d_t src_image, read_only image2d_t ref_image,
@@ -16669,6 +18062,7 @@ intel_sub_group_avc_ref_evaluate_with_multi_reference(
16669
18062
  read_only image2d_t src_image, uint packed_reference_ids,
16670
18063
  uchar packed_reference_field_polarities, sampler_t vme_media_sampler,
16671
18064
  intel_sub_group_avc_ref_payload_t payload);
18065
+ #endif //defined(__opencl_c_images)
16672
18066
 
16673
18067
  // SIC built-in functions
16674
18068
  intel_sub_group_avc_sic_payload_t __ovld
@@ -16719,6 +18113,7 @@ intel_sub_group_avc_sic_set_block_based_raw_skip_sad(
16719
18113
  uchar block_based_skip_type,
16720
18114
  intel_sub_group_avc_sic_payload_t payload);
16721
18115
 
18116
+ #if defined(__opencl_c_images)
16722
18117
  intel_sub_group_avc_sic_result_t __ovld
16723
18118
  intel_sub_group_avc_sic_evaluate_ipe(
16724
18119
  read_only image2d_t src_image, sampler_t vme_media_sampler,
@@ -16741,6 +18136,7 @@ intel_sub_group_avc_sic_evaluate_with_multi_reference(
16741
18136
  read_only image2d_t src_image, uint packed_reference_ids,
16742
18137
  uchar packed_reference_field_polarities, sampler_t vme_media_sampler,
16743
18138
  intel_sub_group_avc_sic_payload_t payload);
18139
+ #endif //defined(__opencl_c_images)
16744
18140
 
16745
18141
  uchar __ovld intel_sub_group_avc_sic_get_ipe_luma_shape(
16746
18142
  intel_sub_group_avc_sic_result_t result);
@@ -17127,36 +18523,30 @@ uint16 __ovld amd_sadw(uint16 src0, uint16 src1, uint16 src2);
17127
18523
  #endif // cl_amd_media_ops2
17128
18524
 
17129
18525
  #if defined(cl_arm_integer_dot_product_int8)
17130
- #pragma OPENCL EXTENSION cl_arm_integer_dot_product_int8 : begin
17131
18526
  uint __ovld arm_dot(uchar4 a, uchar4 b);
17132
18527
  int __ovld arm_dot(char4 a, char4 b);
17133
- #pragma OPENCL EXTENSION cl_arm_integer_dot_product_int8 : end
17134
18528
  #endif // defined(cl_arm_integer_dot_product_int8)
17135
18529
 
17136
18530
  #if defined(cl_arm_integer_dot_product_accumulate_int8)
17137
- #pragma OPENCL EXTENSION cl_arm_integer_dot_product_accumulate_int8 : begin
17138
18531
  uint __ovld arm_dot_acc(uchar4 a, uchar4 b, uint c);
17139
18532
  int __ovld arm_dot_acc(char4 a, char4 b, int c);
17140
- #pragma OPENCL EXTENSION cl_arm_integer_dot_product_accumulate_int8 : end
17141
18533
  #endif // defined(cl_arm_integer_dot_product_accumulate_int8)
17142
18534
 
17143
18535
  #if defined(cl_arm_integer_dot_product_accumulate_int16)
17144
- #pragma OPENCL EXTENSION cl_arm_integer_dot_product_accumulate_int16 : begin
17145
18536
  uint __ovld arm_dot_acc(ushort2 a, ushort2 b, uint c);
17146
18537
  int __ovld arm_dot_acc(short2 a, short2 b, int c);
17147
- #pragma OPENCL EXTENSION cl_arm_integer_dot_product_accumulate_int16 : end
17148
18538
  #endif // defined(cl_arm_integer_dot_product_accumulate_int16)
17149
18539
 
17150
18540
  #if defined(cl_arm_integer_dot_product_accumulate_saturate_int8)
17151
- #pragma OPENCL EXTENSION cl_arm_integer_dot_product_accumulate_saturate_int8 : begin
17152
18541
  uint __ovld arm_dot_acc_sat(uchar4 a, uchar4 b, uint c);
17153
18542
  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
18543
  #endif // defined(cl_arm_integer_dot_product_accumulate_saturate_int8)
17156
18544
 
17157
18545
  // Disable any extensions we may have enabled previously.
17158
18546
  #pragma OPENCL EXTENSION all : disable
17159
18547
 
18548
+ #undef __opencl_c_named_address_space_builtins
18549
+
17160
18550
  #undef __cnfn
17161
18551
  #undef __ovld
17162
18552
  #endif //_OPENCL_H_