@cpp-linter/clang-tidy-win32-x64 13.0.0 → 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 (175) hide show
  1. package/README.md +2 -2
  2. package/bin/clang-tidy.exe +2 -2
  3. package/lib/clang/{13.0.0 → 14.0.0}/include/__clang_cuda_complex_builtins.h +3 -3
  4. package/lib/clang/{13.0.0 → 14.0.0}/include/__clang_cuda_intrinsics.h +32 -0
  5. package/lib/clang/{13.0.0 → 14.0.0}/include/__clang_cuda_libdevice_declares.h +6 -0
  6. package/lib/clang/{13.0.0 → 14.0.0}/include/__clang_cuda_math.h +1 -1
  7. package/lib/clang/{13.0.0 → 14.0.0}/include/__clang_cuda_runtime_wrapper.h +62 -7
  8. package/lib/clang/14.0.0/include/__clang_cuda_texture_intrinsics.h +740 -0
  9. package/lib/clang/{13.0.0 → 14.0.0}/include/__clang_hip_runtime_wrapper.h +17 -4
  10. package/lib/clang/{13.0.0 → 14.0.0}/include/__wmmintrin_aes.h +1 -1
  11. package/lib/clang/{13.0.0 → 14.0.0}/include/altivec.h +202 -92
  12. package/lib/clang/{13.0.0 → 14.0.0}/include/ammintrin.h +4 -0
  13. package/lib/clang/{13.0.0 → 14.0.0}/include/amxintrin.h +17 -16
  14. package/lib/clang/{13.0.0 → 14.0.0}/include/arm_acle.h +6 -0
  15. package/lib/clang/{13.0.0 → 14.0.0}/include/arm_neon.h +4467 -4469
  16. package/lib/clang/14.0.0/include/arm_neon_sve_bridge.h +184 -0
  17. package/lib/clang/{13.0.0 → 14.0.0}/include/avx2intrin.h +181 -181
  18. package/lib/clang/{13.0.0 → 14.0.0}/include/avx512bf16intrin.h +3 -3
  19. package/lib/clang/{13.0.0 → 14.0.0}/include/avx512bwintrin.h +71 -71
  20. package/lib/clang/{13.0.0 → 14.0.0}/include/avx512dqintrin.h +365 -365
  21. package/lib/clang/{13.0.0 → 14.0.0}/include/avx512erintrin.h +102 -102
  22. package/lib/clang/{13.0.0 → 14.0.0}/include/avx512fintrin.h +1573 -1569
  23. package/lib/clang/14.0.0/include/avx512fp16intrin.h +3349 -0
  24. package/lib/clang/{13.0.0 → 14.0.0}/include/avx512vbmi2intrin.h +48 -48
  25. package/lib/clang/{13.0.0 → 14.0.0}/include/avx512vlbf16intrin.h +51 -3
  26. package/lib/clang/{13.0.0 → 14.0.0}/include/avx512vlbwintrin.h +94 -94
  27. package/lib/clang/{13.0.0 → 14.0.0}/include/avx512vldqintrin.h +134 -134
  28. package/lib/clang/14.0.0/include/avx512vlfp16intrin.h +2068 -0
  29. package/lib/clang/{13.0.0 → 14.0.0}/include/avx512vlintrin.h +563 -563
  30. package/lib/clang/{13.0.0 → 14.0.0}/include/avx512vlvbmi2intrin.h +96 -96
  31. package/lib/clang/{13.0.0 → 14.0.0}/include/avx512vlvnniintrin.h +8 -8
  32. package/lib/clang/{13.0.0 → 14.0.0}/include/avxintrin.h +189 -192
  33. package/lib/clang/{13.0.0 → 14.0.0}/include/cetintrin.h +10 -0
  34. package/lib/clang/{13.0.0 → 14.0.0}/include/cpuid.h +2 -1
  35. package/lib/clang/14.0.0/include/crc32intrin.h +100 -0
  36. package/lib/clang/{13.0.0 → 14.0.0}/include/emmintrin.h +21 -17
  37. package/lib/clang/{13.0.0 → 14.0.0}/include/f16cintrin.h +4 -4
  38. package/lib/clang/{13.0.0 → 14.0.0}/include/float.h +15 -6
  39. package/lib/clang/{13.0.0 → 14.0.0}/include/gfniintrin.h +47 -48
  40. package/lib/clang/{13.0.0 → 14.0.0}/include/hexagon_protos.h +0 -11
  41. package/lib/clang/{13.0.0 → 14.0.0}/include/hexagon_types.h +0 -32
  42. package/lib/clang/{13.0.0 → 14.0.0}/include/hvx_hexagon_protos.h +1200 -409
  43. package/lib/clang/{13.0.0 → 14.0.0}/include/ia32intrin.h +6 -6
  44. package/lib/clang/{13.0.0 → 14.0.0}/include/immintrin.h +26 -8
  45. package/lib/clang/{13.0.0 → 14.0.0}/include/intrin.h +24 -16
  46. package/lib/clang/{13.0.0 → 14.0.0}/include/keylockerintrin.h +2 -8
  47. package/lib/clang/{13.0.0 → 14.0.0}/include/limits.h +20 -0
  48. package/lib/clang/{13.0.0 → 14.0.0}/include/mmintrin.h +4 -0
  49. package/lib/clang/{13.0.0 → 14.0.0}/include/nmmintrin.h +4 -0
  50. package/lib/clang/{13.0.0 → 14.0.0}/include/opencl-c-base.h +69 -11
  51. package/lib/clang/{13.0.0 → 14.0.0}/include/opencl-c.h +1699 -459
  52. package/lib/clang/{13.0.0 → 14.0.0}/include/openmp_wrappers/complex +10 -1
  53. package/lib/clang/{13.0.0 → 14.0.0}/include/openmp_wrappers/complex.h +9 -0
  54. package/lib/clang/{13.0.0 → 14.0.0}/include/pmmintrin.h +4 -0
  55. package/lib/clang/{13.0.0 → 14.0.0}/include/ppc_wrappers/emmintrin.h +3 -2
  56. package/lib/clang/{13.0.0 → 14.0.0}/include/ppc_wrappers/mm_malloc.h +2 -2
  57. package/lib/clang/{13.0.0 → 14.0.0}/include/ppc_wrappers/mmintrin.h +3 -2
  58. package/lib/clang/{13.0.0 → 14.0.0}/include/ppc_wrappers/pmmintrin.h +3 -2
  59. package/lib/clang/{13.0.0 → 14.0.0}/include/ppc_wrappers/smmintrin.h +4 -3
  60. package/lib/clang/{13.0.0 → 14.0.0}/include/ppc_wrappers/tmmintrin.h +3 -2
  61. package/lib/clang/{13.0.0 → 14.0.0}/include/ppc_wrappers/xmmintrin.h +3 -2
  62. package/lib/clang/{13.0.0 → 14.0.0}/include/prfchwintrin.h +5 -2
  63. package/lib/clang/14.0.0/include/riscv_vector.h +95423 -0
  64. package/lib/clang/{13.0.0 → 14.0.0}/include/smmintrin.h +80 -159
  65. package/lib/clang/{13.0.0 → 14.0.0}/include/stdatomic.h +14 -1
  66. package/lib/clang/{13.0.0 → 14.0.0}/include/stdint.h +168 -0
  67. package/lib/clang/{13.0.0 → 14.0.0}/include/tmmintrin.h +10 -6
  68. package/lib/clang/{13.0.0 → 14.0.0}/include/unwind.h +2 -1
  69. package/lib/clang/{13.0.0 → 14.0.0}/include/vaesintrin.h +1 -1
  70. package/lib/clang/{13.0.0 → 14.0.0}/include/vpclmulqdqintrin.h +6 -6
  71. package/lib/clang/{13.0.0 → 14.0.0}/include/wasm_simd128.h +167 -24
  72. package/lib/clang/{13.0.0 → 14.0.0}/include/wmmintrin.h +4 -0
  73. package/lib/clang/{13.0.0 → 14.0.0}/include/x86gprintrin.h +12 -0
  74. package/lib/clang/{13.0.0 → 14.0.0}/include/xmmintrin.h +9 -5
  75. package/lib/clang/{13.0.0 → 14.0.0}/include/xopintrin.h +31 -31
  76. package/package.json +6 -6
  77. package/lib/clang/13.0.0/include/riscv_vector.h +0 -123865
  78. /package/lib/clang/{13.0.0 → 14.0.0}/include/__clang_cuda_builtin_vars.h +0 -0
  79. /package/lib/clang/{13.0.0 → 14.0.0}/include/__clang_cuda_cmath.h +0 -0
  80. /package/lib/clang/{13.0.0 → 14.0.0}/include/__clang_cuda_device_functions.h +0 -0
  81. /package/lib/clang/{13.0.0 → 14.0.0}/include/__clang_cuda_math_forward_declares.h +0 -0
  82. /package/lib/clang/{13.0.0 → 14.0.0}/include/__clang_hip_cmath.h +0 -0
  83. /package/lib/clang/{13.0.0 → 14.0.0}/include/__clang_hip_libdevice_declares.h +0 -0
  84. /package/lib/clang/{13.0.0 → 14.0.0}/include/__clang_hip_math.h +0 -0
  85. /package/lib/clang/{13.0.0 → 14.0.0}/include/__stddef_max_align_t.h +0 -0
  86. /package/lib/clang/{13.0.0 → 14.0.0}/include/__wmmintrin_pclmul.h +0 -0
  87. /package/lib/clang/{13.0.0 → 14.0.0}/include/adxintrin.h +0 -0
  88. /package/lib/clang/{13.0.0 → 14.0.0}/include/arm64intr.h +0 -0
  89. /package/lib/clang/{13.0.0 → 14.0.0}/include/arm_bf16.h +0 -0
  90. /package/lib/clang/{13.0.0 → 14.0.0}/include/arm_cde.h +0 -0
  91. /package/lib/clang/{13.0.0 → 14.0.0}/include/arm_cmse.h +0 -0
  92. /package/lib/clang/{13.0.0 → 14.0.0}/include/arm_fp16.h +0 -0
  93. /package/lib/clang/{13.0.0 → 14.0.0}/include/arm_mve.h +0 -0
  94. /package/lib/clang/{13.0.0 → 14.0.0}/include/arm_sve.h +0 -0
  95. /package/lib/clang/{13.0.0 → 14.0.0}/include/armintr.h +0 -0
  96. /package/lib/clang/{13.0.0 → 14.0.0}/include/avx512bitalgintrin.h +0 -0
  97. /package/lib/clang/{13.0.0 → 14.0.0}/include/avx512cdintrin.h +0 -0
  98. /package/lib/clang/{13.0.0 → 14.0.0}/include/avx512ifmaintrin.h +0 -0
  99. /package/lib/clang/{13.0.0 → 14.0.0}/include/avx512ifmavlintrin.h +0 -0
  100. /package/lib/clang/{13.0.0 → 14.0.0}/include/avx512pfintrin.h +0 -0
  101. /package/lib/clang/{13.0.0 → 14.0.0}/include/avx512vbmiintrin.h +0 -0
  102. /package/lib/clang/{13.0.0 → 14.0.0}/include/avx512vbmivlintrin.h +0 -0
  103. /package/lib/clang/{13.0.0 → 14.0.0}/include/avx512vlbitalgintrin.h +0 -0
  104. /package/lib/clang/{13.0.0 → 14.0.0}/include/avx512vlcdintrin.h +0 -0
  105. /package/lib/clang/{13.0.0 → 14.0.0}/include/avx512vlvp2intersectintrin.h +0 -0
  106. /package/lib/clang/{13.0.0 → 14.0.0}/include/avx512vnniintrin.h +0 -0
  107. /package/lib/clang/{13.0.0 → 14.0.0}/include/avx512vp2intersectintrin.h +0 -0
  108. /package/lib/clang/{13.0.0 → 14.0.0}/include/avx512vpopcntdqintrin.h +0 -0
  109. /package/lib/clang/{13.0.0 → 14.0.0}/include/avx512vpopcntdqvlintrin.h +0 -0
  110. /package/lib/clang/{13.0.0 → 14.0.0}/include/avxvnniintrin.h +0 -0
  111. /package/lib/clang/{13.0.0 → 14.0.0}/include/bmi2intrin.h +0 -0
  112. /package/lib/clang/{13.0.0 → 14.0.0}/include/bmiintrin.h +0 -0
  113. /package/lib/clang/{13.0.0 → 14.0.0}/include/builtins.h +0 -0
  114. /package/lib/clang/{13.0.0 → 14.0.0}/include/cet.h +0 -0
  115. /package/lib/clang/{13.0.0 → 14.0.0}/include/cldemoteintrin.h +0 -0
  116. /package/lib/clang/{13.0.0 → 14.0.0}/include/clflushoptintrin.h +0 -0
  117. /package/lib/clang/{13.0.0 → 14.0.0}/include/clwbintrin.h +0 -0
  118. /package/lib/clang/{13.0.0 → 14.0.0}/include/clzerointrin.h +0 -0
  119. /package/lib/clang/{13.0.0 → 14.0.0}/include/cuda_wrappers/algorithm +0 -0
  120. /package/lib/clang/{13.0.0 → 14.0.0}/include/cuda_wrappers/complex +0 -0
  121. /package/lib/clang/{13.0.0 → 14.0.0}/include/cuda_wrappers/new +0 -0
  122. /package/lib/clang/{13.0.0 → 14.0.0}/include/enqcmdintrin.h +0 -0
  123. /package/lib/clang/{13.0.0 → 14.0.0}/include/fma4intrin.h +0 -0
  124. /package/lib/clang/{13.0.0 → 14.0.0}/include/fmaintrin.h +0 -0
  125. /package/lib/clang/{13.0.0 → 14.0.0}/include/fxsrintrin.h +0 -0
  126. /package/lib/clang/{13.0.0 → 14.0.0}/include/hexagon_circ_brev_intrinsics.h +0 -0
  127. /package/lib/clang/{13.0.0 → 14.0.0}/include/hresetintrin.h +0 -0
  128. /package/lib/clang/{13.0.0 → 14.0.0}/include/htmintrin.h +0 -0
  129. /package/lib/clang/{13.0.0 → 14.0.0}/include/htmxlintrin.h +0 -0
  130. /package/lib/clang/{13.0.0 → 14.0.0}/include/inttypes.h +0 -0
  131. /package/lib/clang/{13.0.0 → 14.0.0}/include/invpcidintrin.h +0 -0
  132. /package/lib/clang/{13.0.0 → 14.0.0}/include/iso646.h +0 -0
  133. /package/lib/clang/{13.0.0 → 14.0.0}/include/lwpintrin.h +0 -0
  134. /package/lib/clang/{13.0.0 → 14.0.0}/include/lzcntintrin.h +0 -0
  135. /package/lib/clang/{13.0.0 → 14.0.0}/include/mm3dnow.h +0 -0
  136. /package/lib/clang/{13.0.0 → 14.0.0}/include/mm_malloc.h +0 -0
  137. /package/lib/clang/{13.0.0 → 14.0.0}/include/module.modulemap +0 -0
  138. /package/lib/clang/{13.0.0 → 14.0.0}/include/movdirintrin.h +0 -0
  139. /package/lib/clang/{13.0.0 → 14.0.0}/include/msa.h +0 -0
  140. /package/lib/clang/{13.0.0 → 14.0.0}/include/mwaitxintrin.h +0 -0
  141. /package/lib/clang/{13.0.0 → 14.0.0}/include/openmp_wrappers/__clang_openmp_device_functions.h +0 -0
  142. /package/lib/clang/{13.0.0 → 14.0.0}/include/openmp_wrappers/cmath +0 -0
  143. /package/lib/clang/{13.0.0 → 14.0.0}/include/openmp_wrappers/complex_cmath.h +0 -0
  144. /package/lib/clang/{13.0.0 → 14.0.0}/include/openmp_wrappers/math.h +0 -0
  145. /package/lib/clang/{13.0.0 → 14.0.0}/include/openmp_wrappers/new +0 -0
  146. /package/lib/clang/{13.0.0 → 14.0.0}/include/pconfigintrin.h +0 -0
  147. /package/lib/clang/{13.0.0 → 14.0.0}/include/pkuintrin.h +0 -0
  148. /package/lib/clang/{13.0.0 → 14.0.0}/include/popcntintrin.h +0 -0
  149. /package/lib/clang/{13.0.0 → 14.0.0}/include/ptwriteintrin.h +0 -0
  150. /package/lib/clang/{13.0.0 → 14.0.0}/include/rdseedintrin.h +0 -0
  151. /package/lib/clang/{13.0.0 → 14.0.0}/include/rtmintrin.h +0 -0
  152. /package/lib/clang/{13.0.0 → 14.0.0}/include/s390intrin.h +0 -0
  153. /package/lib/clang/{13.0.0 → 14.0.0}/include/serializeintrin.h +0 -0
  154. /package/lib/clang/{13.0.0 → 14.0.0}/include/sgxintrin.h +0 -0
  155. /package/lib/clang/{13.0.0 → 14.0.0}/include/shaintrin.h +0 -0
  156. /package/lib/clang/{13.0.0 → 14.0.0}/include/stdalign.h +0 -0
  157. /package/lib/clang/{13.0.0 → 14.0.0}/include/stdarg.h +0 -0
  158. /package/lib/clang/{13.0.0 → 14.0.0}/include/stdbool.h +0 -0
  159. /package/lib/clang/{13.0.0 → 14.0.0}/include/stddef.h +0 -0
  160. /package/lib/clang/{13.0.0 → 14.0.0}/include/stdnoreturn.h +0 -0
  161. /package/lib/clang/{13.0.0 → 14.0.0}/include/tbmintrin.h +0 -0
  162. /package/lib/clang/{13.0.0 → 14.0.0}/include/tgmath.h +0 -0
  163. /package/lib/clang/{13.0.0 → 14.0.0}/include/tsxldtrkintrin.h +0 -0
  164. /package/lib/clang/{13.0.0 → 14.0.0}/include/uintrintrin.h +0 -0
  165. /package/lib/clang/{13.0.0 → 14.0.0}/include/vadefs.h +0 -0
  166. /package/lib/clang/{13.0.0 → 14.0.0}/include/varargs.h +0 -0
  167. /package/lib/clang/{13.0.0 → 14.0.0}/include/vecintrin.h +0 -0
  168. /package/lib/clang/{13.0.0 → 14.0.0}/include/waitpkgintrin.h +0 -0
  169. /package/lib/clang/{13.0.0 → 14.0.0}/include/wbnoinvdintrin.h +0 -0
  170. /package/lib/clang/{13.0.0 → 14.0.0}/include/x86intrin.h +0 -0
  171. /package/lib/clang/{13.0.0 → 14.0.0}/include/xsavecintrin.h +0 -0
  172. /package/lib/clang/{13.0.0 → 14.0.0}/include/xsaveintrin.h +0 -0
  173. /package/lib/clang/{13.0.0 → 14.0.0}/include/xsaveoptintrin.h +0 -0
  174. /package/lib/clang/{13.0.0 → 14.0.0}/include/xsavesintrin.h +0 -0
  175. /package/lib/clang/{13.0.0 → 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,11 +23,14 @@
23
23
  #endif //cl_khr_3d_image_writes
24
24
  #endif //__OPENCL_C_VERSION__ < CL_VERSION_2_0
25
25
 
26
-
27
- #if (defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)) && defined(__SPIR__)
26
+ #if (defined(__OPENCL_CPP_VERSION__) || \
27
+ (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)) && \
28
+ (defined(__SPIR__) || defined(__SPIRV__))
28
29
  #pragma OPENCL EXTENSION cl_intel_planar_yuv : begin
29
30
  #pragma OPENCL EXTENSION cl_intel_planar_yuv : end
30
- #endif // (defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)) && defined(__SPIR__)
31
+ #endif // (defined(__OPENCL_CPP_VERSION__) ||
32
+ // (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)) &&
33
+ // (defined(__SPIR__) || defined(__SPIRV__))
31
34
 
32
35
  #define __ovld __attribute__((overloadable))
33
36
  #define __conv __attribute__((convergent))
@@ -7282,7 +7285,9 @@ half4 __ovld fract(half4 x, half4 *iptr);
7282
7285
  half8 __ovld fract(half8 x, half8 *iptr);
7283
7286
  half16 __ovld fract(half16 x, half16 *iptr);
7284
7287
  #endif //cl_khr_fp16
7285
- #else
7288
+ #endif //defined(__opencl_c_generic_address_space)
7289
+
7290
+ #if defined(__opencl_c_named_address_space_builtins)
7286
7291
  float __ovld fract(float x, __global float *iptr);
7287
7292
  float2 __ovld fract(float2 x, __global float2 *iptr);
7288
7293
  float3 __ovld fract(float3 x, __global float3 *iptr);
@@ -7341,7 +7346,7 @@ half4 __ovld fract(half4 x, __private half4 *iptr);
7341
7346
  half8 __ovld fract(half8 x, __private half8 *iptr);
7342
7347
  half16 __ovld fract(half16 x, __private half16 *iptr);
7343
7348
  #endif //cl_khr_fp16
7344
- #endif //defined(__opencl_c_generic_address_space)
7349
+ #endif //defined(__opencl_c_named_address_space_builtins)
7345
7350
 
7346
7351
  /**
7347
7352
  * Extract mantissa and exponent from x. For each
@@ -7372,7 +7377,9 @@ half4 __ovld frexp(half4 x, int4 *exp);
7372
7377
  half8 __ovld frexp(half8 x, int8 *exp);
7373
7378
  half16 __ovld frexp(half16 x, int16 *exp);
7374
7379
  #endif //cl_khr_fp16
7375
- #else
7380
+ #endif //defined(__opencl_c_generic_address_space)
7381
+
7382
+ #if defined(__opencl_c_named_address_space_builtins)
7376
7383
  float __ovld frexp(float x, __global int *exp);
7377
7384
  float2 __ovld frexp(float2 x, __global int2 *exp);
7378
7385
  float3 __ovld frexp(float3 x, __global int3 *exp);
@@ -7431,7 +7438,7 @@ half4 __ovld frexp(half4 x, __private int4 *exp);
7431
7438
  half8 __ovld frexp(half8 x, __private int8 *exp);
7432
7439
  half16 __ovld frexp(half16 x, __private int16 *exp);
7433
7440
  #endif //cl_khr_fp16
7434
- #endif //defined(__opencl_c_generic_address_space)
7441
+ #endif //defined(__opencl_c_named_address_space_builtins)
7435
7442
 
7436
7443
  /**
7437
7444
  * Compute the value of the square root of x^2 + y^2
@@ -7579,7 +7586,9 @@ half4 __ovld lgamma_r(half4 x, int4 *signp);
7579
7586
  half8 __ovld lgamma_r(half8 x, int8 *signp);
7580
7587
  half16 __ovld lgamma_r(half16 x, int16 *signp);
7581
7588
  #endif //cl_khr_fp16
7582
- #else
7589
+ #endif //defined(__opencl_c_generic_address_space)
7590
+
7591
+ #if defined(__opencl_c_named_address_space_builtins)
7583
7592
  float __ovld lgamma_r(float x, __global int *signp);
7584
7593
  float2 __ovld lgamma_r(float2 x, __global int2 *signp);
7585
7594
  float3 __ovld lgamma_r(float3 x, __global int3 *signp);
@@ -7638,7 +7647,7 @@ half4 __ovld lgamma_r(half4 x, __private int4 *signp);
7638
7647
  half8 __ovld lgamma_r(half8 x, __private int8 *signp);
7639
7648
  half16 __ovld lgamma_r(half16 x, __private int16 *signp);
7640
7649
  #endif //cl_khr_fp16
7641
- #endif //defined(__opencl_c_generic_address_space)
7650
+ #endif //defined(__opencl_c_named_address_space_builtins)
7642
7651
 
7643
7652
  /**
7644
7653
  * Compute natural logarithm.
@@ -7885,7 +7894,9 @@ half4 __ovld modf(half4 x, half4 *iptr);
7885
7894
  half8 __ovld modf(half8 x, half8 *iptr);
7886
7895
  half16 __ovld modf(half16 x, half16 *iptr);
7887
7896
  #endif //cl_khr_fp16
7888
- #else
7897
+ #endif //defined(__opencl_c_generic_address_space)
7898
+
7899
+ #if defined(__opencl_c_named_address_space_builtins)
7889
7900
  float __ovld modf(float x, __global float *iptr);
7890
7901
  float2 __ovld modf(float2 x, __global float2 *iptr);
7891
7902
  float3 __ovld modf(float3 x, __global float3 *iptr);
@@ -7944,7 +7955,7 @@ half4 __ovld modf(half4 x, __private half4 *iptr);
7944
7955
  half8 __ovld modf(half8 x, __private half8 *iptr);
7945
7956
  half16 __ovld modf(half16 x, __private half16 *iptr);
7946
7957
  #endif //cl_khr_fp16
7947
- #endif //defined(__opencl_c_generic_address_space)
7958
+ #endif //defined(__opencl_c_named_address_space_builtins)
7948
7959
 
7949
7960
  /**
7950
7961
  * Returns a quiet NaN. The nancode may be placed
@@ -8144,9 +8155,10 @@ half3 __ovld remquo(half3 x, half3 y, int3 *quo);
8144
8155
  half4 __ovld remquo(half4 x, half4 y, int4 *quo);
8145
8156
  half8 __ovld remquo(half8 x, half8 y, int8 *quo);
8146
8157
  half16 __ovld remquo(half16 x, half16 y, int16 *quo);
8147
-
8148
8158
  #endif //cl_khr_fp16
8149
- #else
8159
+ #endif //defined(__opencl_c_generic_address_space)
8160
+
8161
+ #if defined(__opencl_c_named_address_space_builtins)
8150
8162
  float __ovld remquo(float x, float y, __global int *quo);
8151
8163
  float2 __ovld remquo(float2 x, float2 y, __global int2 *quo);
8152
8164
  float3 __ovld remquo(float3 x, float3 y, __global int3 *quo);
@@ -8205,7 +8217,7 @@ half4 __ovld remquo(half4 x, half4 y, __private int4 *quo);
8205
8217
  half8 __ovld remquo(half8 x, half8 y, __private int8 *quo);
8206
8218
  half16 __ovld remquo(half16 x, half16 y, __private int16 *quo);
8207
8219
  #endif //cl_khr_fp16
8208
- #endif //defined(__opencl_c_generic_address_space)
8220
+ #endif //defined(__opencl_c_named_address_space_builtins)
8209
8221
  /**
8210
8222
  * Round to integral value (using round to nearest
8211
8223
  * even rounding mode) in floating-point format.
@@ -8369,7 +8381,9 @@ half4 __ovld sincos(half4 x, half4 *cosval);
8369
8381
  half8 __ovld sincos(half8 x, half8 *cosval);
8370
8382
  half16 __ovld sincos(half16 x, half16 *cosval);
8371
8383
  #endif //cl_khr_fp16
8372
- #else
8384
+ #endif //defined(__opencl_c_generic_address_space)
8385
+
8386
+ #if defined(__opencl_c_named_address_space_builtins)
8373
8387
  float __ovld sincos(float x, __global float *cosval);
8374
8388
  float2 __ovld sincos(float2 x, __global float2 *cosval);
8375
8389
  float3 __ovld sincos(float3 x, __global float3 *cosval);
@@ -8428,7 +8442,7 @@ half4 __ovld sincos(half4 x, __private half4 *cosval);
8428
8442
  half8 __ovld sincos(half8 x, __private half8 *cosval);
8429
8443
  half16 __ovld sincos(half16 x, __private half16 *cosval);
8430
8444
  #endif //cl_khr_fp16
8431
- #endif //defined(__opencl_c_generic_address_space)
8445
+ #endif //defined(__opencl_c_named_address_space_builtins)
8432
8446
 
8433
8447
  /**
8434
8448
  * Compute hyperbolic sine.
@@ -11187,307 +11201,309 @@ half16 __ovld __cnfn select(half16 a, half16 b, ushort16 c);
11187
11201
  * 64-bit aligned if gentype is long, ulong, double.
11188
11202
  */
11189
11203
 
11190
- char2 __ovld vload2(size_t offset, const __constant char *p);
11191
- uchar2 __ovld vload2(size_t offset, const __constant uchar *p);
11192
- short2 __ovld vload2(size_t offset, const __constant short *p);
11193
- ushort2 __ovld vload2(size_t offset, const __constant ushort *p);
11194
- int2 __ovld vload2(size_t offset, const __constant int *p);
11195
- uint2 __ovld vload2(size_t offset, const __constant uint *p);
11196
- long2 __ovld vload2(size_t offset, const __constant long *p);
11197
- ulong2 __ovld vload2(size_t offset, const __constant ulong *p);
11198
- float2 __ovld vload2(size_t offset, const __constant float *p);
11199
- char3 __ovld vload3(size_t offset, const __constant char *p);
11200
- uchar3 __ovld vload3(size_t offset, const __constant uchar *p);
11201
- short3 __ovld vload3(size_t offset, const __constant short *p);
11202
- ushort3 __ovld vload3(size_t offset, const __constant ushort *p);
11203
- int3 __ovld vload3(size_t offset, const __constant int *p);
11204
- uint3 __ovld vload3(size_t offset, const __constant uint *p);
11205
- long3 __ovld vload3(size_t offset, const __constant long *p);
11206
- ulong3 __ovld vload3(size_t offset, const __constant ulong *p);
11207
- float3 __ovld vload3(size_t offset, const __constant float *p);
11208
- char4 __ovld vload4(size_t offset, const __constant char *p);
11209
- uchar4 __ovld vload4(size_t offset, const __constant uchar *p);
11210
- short4 __ovld vload4(size_t offset, const __constant short *p);
11211
- ushort4 __ovld vload4(size_t offset, const __constant ushort *p);
11212
- int4 __ovld vload4(size_t offset, const __constant int *p);
11213
- uint4 __ovld vload4(size_t offset, const __constant uint *p);
11214
- long4 __ovld vload4(size_t offset, const __constant long *p);
11215
- ulong4 __ovld vload4(size_t offset, const __constant ulong *p);
11216
- float4 __ovld vload4(size_t offset, const __constant float *p);
11217
- char8 __ovld vload8(size_t offset, const __constant char *p);
11218
- uchar8 __ovld vload8(size_t offset, const __constant uchar *p);
11219
- short8 __ovld vload8(size_t offset, const __constant short *p);
11220
- ushort8 __ovld vload8(size_t offset, const __constant ushort *p);
11221
- int8 __ovld vload8(size_t offset, const __constant int *p);
11222
- uint8 __ovld vload8(size_t offset, const __constant uint *p);
11223
- long8 __ovld vload8(size_t offset, const __constant long *p);
11224
- ulong8 __ovld vload8(size_t offset, const __constant ulong *p);
11225
- float8 __ovld vload8(size_t offset, const __constant float *p);
11226
- char16 __ovld vload16(size_t offset, const __constant char *p);
11227
- uchar16 __ovld vload16(size_t offset, const __constant uchar *p);
11228
- short16 __ovld vload16(size_t offset, const __constant short *p);
11229
- ushort16 __ovld vload16(size_t offset, const __constant ushort *p);
11230
- int16 __ovld vload16(size_t offset, const __constant int *p);
11231
- uint16 __ovld vload16(size_t offset, const __constant uint *p);
11232
- long16 __ovld vload16(size_t offset, const __constant long *p);
11233
- ulong16 __ovld vload16(size_t offset, const __constant ulong *p);
11234
- 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);
11235
11249
  #ifdef cl_khr_fp64
11236
- double2 __ovld vload2(size_t offset, const __constant double *p);
11237
- double3 __ovld vload3(size_t offset, const __constant double *p);
11238
- double4 __ovld vload4(size_t offset, const __constant double *p);
11239
- double8 __ovld vload8(size_t offset, const __constant double *p);
11240
- 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);
11241
11255
  #endif //cl_khr_fp64
11242
11256
 
11243
11257
  #ifdef cl_khr_fp16
11244
- half __ovld vload(size_t offset, const __constant half *p);
11245
- half2 __ovld vload2(size_t offset, const __constant half *p);
11246
- half3 __ovld vload3(size_t offset, const __constant half *p);
11247
- half4 __ovld vload4(size_t offset, const __constant half *p);
11248
- half8 __ovld vload8(size_t offset, const __constant half *p);
11249
- 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);
11250
11264
  #endif //cl_khr_fp16
11251
11265
 
11252
11266
  #if defined(__opencl_c_generic_address_space)
11253
- char2 __ovld vload2(size_t offset, const char *p);
11254
- uchar2 __ovld vload2(size_t offset, const uchar *p);
11255
- short2 __ovld vload2(size_t offset, const short *p);
11256
- ushort2 __ovld vload2(size_t offset, const ushort *p);
11257
- int2 __ovld vload2(size_t offset, const int *p);
11258
- uint2 __ovld vload2(size_t offset, const uint *p);
11259
- long2 __ovld vload2(size_t offset, const long *p);
11260
- ulong2 __ovld vload2(size_t offset, const ulong *p);
11261
- float2 __ovld vload2(size_t offset, const float *p);
11262
- char3 __ovld vload3(size_t offset, const char *p);
11263
- uchar3 __ovld vload3(size_t offset, const uchar *p);
11264
- short3 __ovld vload3(size_t offset, const short *p);
11265
- ushort3 __ovld vload3(size_t offset, const ushort *p);
11266
- int3 __ovld vload3(size_t offset, const int *p);
11267
- uint3 __ovld vload3(size_t offset, const uint *p);
11268
- long3 __ovld vload3(size_t offset, const long *p);
11269
- ulong3 __ovld vload3(size_t offset, const ulong *p);
11270
- float3 __ovld vload3(size_t offset, const float *p);
11271
- char4 __ovld vload4(size_t offset, const char *p);
11272
- uchar4 __ovld vload4(size_t offset, const uchar *p);
11273
- short4 __ovld vload4(size_t offset, const short *p);
11274
- ushort4 __ovld vload4(size_t offset, const ushort *p);
11275
- int4 __ovld vload4(size_t offset, const int *p);
11276
- uint4 __ovld vload4(size_t offset, const uint *p);
11277
- long4 __ovld vload4(size_t offset, const long *p);
11278
- ulong4 __ovld vload4(size_t offset, const ulong *p);
11279
- float4 __ovld vload4(size_t offset, const float *p);
11280
- char8 __ovld vload8(size_t offset, const char *p);
11281
- uchar8 __ovld vload8(size_t offset, const uchar *p);
11282
- short8 __ovld vload8(size_t offset, const short *p);
11283
- ushort8 __ovld vload8(size_t offset, const ushort *p);
11284
- int8 __ovld vload8(size_t offset, const int *p);
11285
- uint8 __ovld vload8(size_t offset, const uint *p);
11286
- long8 __ovld vload8(size_t offset, const long *p);
11287
- ulong8 __ovld vload8(size_t offset, const ulong *p);
11288
- float8 __ovld vload8(size_t offset, const float *p);
11289
- char16 __ovld vload16(size_t offset, const char *p);
11290
- uchar16 __ovld vload16(size_t offset, const uchar *p);
11291
- short16 __ovld vload16(size_t offset, const short *p);
11292
- ushort16 __ovld vload16(size_t offset, const ushort *p);
11293
- int16 __ovld vload16(size_t offset, const int *p);
11294
- uint16 __ovld vload16(size_t offset, const uint *p);
11295
- long16 __ovld vload16(size_t offset, const long *p);
11296
- ulong16 __ovld vload16(size_t offset, const ulong *p);
11297
- float16 __ovld vload16(size_t offset, const float *p);
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);
11298
11312
 
11299
11313
  #ifdef cl_khr_fp64
11300
- double2 __ovld vload2(size_t offset, const double *p);
11301
- double3 __ovld vload3(size_t offset, const double *p);
11302
- double4 __ovld vload4(size_t offset, const double *p);
11303
- double8 __ovld vload8(size_t offset, const double *p);
11304
- 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);
11305
11319
  #endif //cl_khr_fp64
11306
11320
 
11307
11321
  #ifdef cl_khr_fp16
11308
- half __ovld vload(size_t offset, const half *p);
11309
- half2 __ovld vload2(size_t offset, const half *p);
11310
- half3 __ovld vload3(size_t offset, const half *p);
11311
- half4 __ovld vload4(size_t offset, const half *p);
11312
- half8 __ovld vload8(size_t offset, const half *p);
11313
- 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);
11314
11328
  #endif //cl_khr_fp16
11315
- #else
11316
- char2 __ovld vload2(size_t offset, const __global char *p);
11317
- uchar2 __ovld vload2(size_t offset, const __global uchar *p);
11318
- short2 __ovld vload2(size_t offset, const __global short *p);
11319
- ushort2 __ovld vload2(size_t offset, const __global ushort *p);
11320
- int2 __ovld vload2(size_t offset, const __global int *p);
11321
- uint2 __ovld vload2(size_t offset, const __global uint *p);
11322
- long2 __ovld vload2(size_t offset, const __global long *p);
11323
- ulong2 __ovld vload2(size_t offset, const __global ulong *p);
11324
- float2 __ovld vload2(size_t offset, const __global float *p);
11325
- char3 __ovld vload3(size_t offset, const __global char *p);
11326
- uchar3 __ovld vload3(size_t offset, const __global uchar *p);
11327
- short3 __ovld vload3(size_t offset, const __global short *p);
11328
- ushort3 __ovld vload3(size_t offset, const __global ushort *p);
11329
- int3 __ovld vload3(size_t offset, const __global int *p);
11330
- uint3 __ovld vload3(size_t offset, const __global uint *p);
11331
- long3 __ovld vload3(size_t offset, const __global long *p);
11332
- ulong3 __ovld vload3(size_t offset, const __global ulong *p);
11333
- float3 __ovld vload3(size_t offset, const __global float *p);
11334
- char4 __ovld vload4(size_t offset, const __global char *p);
11335
- uchar4 __ovld vload4(size_t offset, const __global uchar *p);
11336
- short4 __ovld vload4(size_t offset, const __global short *p);
11337
- ushort4 __ovld vload4(size_t offset, const __global ushort *p);
11338
- int4 __ovld vload4(size_t offset, const __global int *p);
11339
- uint4 __ovld vload4(size_t offset, const __global uint *p);
11340
- long4 __ovld vload4(size_t offset, const __global long *p);
11341
- ulong4 __ovld vload4(size_t offset, const __global ulong *p);
11342
- float4 __ovld vload4(size_t offset, const __global float *p);
11343
- char8 __ovld vload8(size_t offset, const __global char *p);
11344
- uchar8 __ovld vload8(size_t offset, const __global uchar *p);
11345
- short8 __ovld vload8(size_t offset, const __global short *p);
11346
- ushort8 __ovld vload8(size_t offset, const __global ushort *p);
11347
- int8 __ovld vload8(size_t offset, const __global int *p);
11348
- uint8 __ovld vload8(size_t offset, const __global uint *p);
11349
- long8 __ovld vload8(size_t offset, const __global long *p);
11350
- ulong8 __ovld vload8(size_t offset, const __global ulong *p);
11351
- float8 __ovld vload8(size_t offset, const __global float *p);
11352
- char16 __ovld vload16(size_t offset, const __global char *p);
11353
- uchar16 __ovld vload16(size_t offset, const __global uchar *p);
11354
- short16 __ovld vload16(size_t offset, const __global short *p);
11355
- ushort16 __ovld vload16(size_t offset, const __global ushort *p);
11356
- int16 __ovld vload16(size_t offset, const __global int *p);
11357
- uint16 __ovld vload16(size_t offset, const __global uint *p);
11358
- long16 __ovld vload16(size_t offset, const __global long *p);
11359
- ulong16 __ovld vload16(size_t offset, const __global ulong *p);
11360
- float16 __ovld vload16(size_t offset, const __global float *p);
11361
- char2 __ovld vload2(size_t offset, const __local char *p);
11362
- uchar2 __ovld vload2(size_t offset, const __local uchar *p);
11363
- short2 __ovld vload2(size_t offset, const __local short *p);
11364
- ushort2 __ovld vload2(size_t offset, const __local ushort *p);
11365
- int2 __ovld vload2(size_t offset, const __local int *p);
11366
- uint2 __ovld vload2(size_t offset, const __local uint *p);
11367
- long2 __ovld vload2(size_t offset, const __local long *p);
11368
- ulong2 __ovld vload2(size_t offset, const __local ulong *p);
11369
- float2 __ovld vload2(size_t offset, const __local float *p);
11370
- char3 __ovld vload3(size_t offset, const __local char *p);
11371
- uchar3 __ovld vload3(size_t offset, const __local uchar *p);
11372
- short3 __ovld vload3(size_t offset, const __local short *p);
11373
- ushort3 __ovld vload3(size_t offset, const __local ushort *p);
11374
- int3 __ovld vload3(size_t offset, const __local int *p);
11375
- uint3 __ovld vload3(size_t offset, const __local uint *p);
11376
- long3 __ovld vload3(size_t offset, const __local long *p);
11377
- ulong3 __ovld vload3(size_t offset, const __local ulong *p);
11378
- float3 __ovld vload3(size_t offset, const __local float *p);
11379
- char4 __ovld vload4(size_t offset, const __local char *p);
11380
- uchar4 __ovld vload4(size_t offset, const __local uchar *p);
11381
- short4 __ovld vload4(size_t offset, const __local short *p);
11382
- ushort4 __ovld vload4(size_t offset, const __local ushort *p);
11383
- int4 __ovld vload4(size_t offset, const __local int *p);
11384
- uint4 __ovld vload4(size_t offset, const __local uint *p);
11385
- long4 __ovld vload4(size_t offset, const __local long *p);
11386
- ulong4 __ovld vload4(size_t offset, const __local ulong *p);
11387
- float4 __ovld vload4(size_t offset, const __local float *p);
11388
- char8 __ovld vload8(size_t offset, const __local char *p);
11389
- uchar8 __ovld vload8(size_t offset, const __local uchar *p);
11390
- short8 __ovld vload8(size_t offset, const __local short *p);
11391
- ushort8 __ovld vload8(size_t offset, const __local ushort *p);
11392
- int8 __ovld vload8(size_t offset, const __local int *p);
11393
- uint8 __ovld vload8(size_t offset, const __local uint *p);
11394
- long8 __ovld vload8(size_t offset, const __local long *p);
11395
- ulong8 __ovld vload8(size_t offset, const __local ulong *p);
11396
- float8 __ovld vload8(size_t offset, const __local float *p);
11397
- char16 __ovld vload16(size_t offset, const __local char *p);
11398
- uchar16 __ovld vload16(size_t offset, const __local uchar *p);
11399
- short16 __ovld vload16(size_t offset, const __local short *p);
11400
- ushort16 __ovld vload16(size_t offset, const __local ushort *p);
11401
- int16 __ovld vload16(size_t offset, const __local int *p);
11402
- uint16 __ovld vload16(size_t offset, const __local uint *p);
11403
- long16 __ovld vload16(size_t offset, const __local long *p);
11404
- ulong16 __ovld vload16(size_t offset, const __local ulong *p);
11405
- float16 __ovld vload16(size_t offset, const __local float *p);
11406
- char2 __ovld vload2(size_t offset, const __private char *p);
11407
- uchar2 __ovld vload2(size_t offset, const __private uchar *p);
11408
- short2 __ovld vload2(size_t offset, const __private short *p);
11409
- ushort2 __ovld vload2(size_t offset, const __private ushort *p);
11410
- int2 __ovld vload2(size_t offset, const __private int *p);
11411
- uint2 __ovld vload2(size_t offset, const __private uint *p);
11412
- long2 __ovld vload2(size_t offset, const __private long *p);
11413
- ulong2 __ovld vload2(size_t offset, const __private ulong *p);
11414
- float2 __ovld vload2(size_t offset, const __private float *p);
11415
- char3 __ovld vload3(size_t offset, const __private char *p);
11416
- uchar3 __ovld vload3(size_t offset, const __private uchar *p);
11417
- short3 __ovld vload3(size_t offset, const __private short *p);
11418
- ushort3 __ovld vload3(size_t offset, const __private ushort *p);
11419
- int3 __ovld vload3(size_t offset, const __private int *p);
11420
- uint3 __ovld vload3(size_t offset, const __private uint *p);
11421
- long3 __ovld vload3(size_t offset, const __private long *p);
11422
- ulong3 __ovld vload3(size_t offset, const __private ulong *p);
11423
- float3 __ovld vload3(size_t offset, const __private float *p);
11424
- char4 __ovld vload4(size_t offset, const __private char *p);
11425
- uchar4 __ovld vload4(size_t offset, const __private uchar *p);
11426
- short4 __ovld vload4(size_t offset, const __private short *p);
11427
- ushort4 __ovld vload4(size_t offset, const __private ushort *p);
11428
- int4 __ovld vload4(size_t offset, const __private int *p);
11429
- uint4 __ovld vload4(size_t offset, const __private uint *p);
11430
- long4 __ovld vload4(size_t offset, const __private long *p);
11431
- ulong4 __ovld vload4(size_t offset, const __private ulong *p);
11432
- float4 __ovld vload4(size_t offset, const __private float *p);
11433
- char8 __ovld vload8(size_t offset, const __private char *p);
11434
- uchar8 __ovld vload8(size_t offset, const __private uchar *p);
11435
- short8 __ovld vload8(size_t offset, const __private short *p);
11436
- ushort8 __ovld vload8(size_t offset, const __private ushort *p);
11437
- int8 __ovld vload8(size_t offset, const __private int *p);
11438
- uint8 __ovld vload8(size_t offset, const __private uint *p);
11439
- long8 __ovld vload8(size_t offset, const __private long *p);
11440
- ulong8 __ovld vload8(size_t offset, const __private ulong *p);
11441
- float8 __ovld vload8(size_t offset, const __private float *p);
11442
- char16 __ovld vload16(size_t offset, const __private char *p);
11443
- uchar16 __ovld vload16(size_t offset, const __private uchar *p);
11444
- short16 __ovld vload16(size_t offset, const __private short *p);
11445
- ushort16 __ovld vload16(size_t offset, const __private ushort *p);
11446
- int16 __ovld vload16(size_t offset, const __private int *p);
11447
- uint16 __ovld vload16(size_t offset, const __private uint *p);
11448
- long16 __ovld vload16(size_t offset, const __private long *p);
11449
- ulong16 __ovld vload16(size_t offset, const __private ulong *p);
11450
- 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);
11451
11467
 
11452
11468
  #ifdef cl_khr_fp64
11453
- double2 __ovld vload2(size_t offset, const __global double *p);
11454
- double3 __ovld vload3(size_t offset, const __global double *p);
11455
- double4 __ovld vload4(size_t offset, const __global double *p);
11456
- double8 __ovld vload8(size_t offset, const __global double *p);
11457
- double16 __ovld vload16(size_t offset, const __global double *p);
11458
- double2 __ovld vload2(size_t offset, const __local double *p);
11459
- double3 __ovld vload3(size_t offset, const __local double *p);
11460
- double4 __ovld vload4(size_t offset, const __local double *p);
11461
- double8 __ovld vload8(size_t offset, const __local double *p);
11462
- double16 __ovld vload16(size_t offset, const __local double *p);
11463
- double2 __ovld vload2(size_t offset, const __private double *p);
11464
- double3 __ovld vload3(size_t offset, const __private double *p);
11465
- double4 __ovld vload4(size_t offset, const __private double *p);
11466
- double8 __ovld vload8(size_t offset, const __private double *p);
11467
- 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);
11468
11484
  #endif //cl_khr_fp64
11469
11485
 
11470
11486
  #ifdef cl_khr_fp16
11471
- half __ovld vload(size_t offset, const __global half *p);
11472
- half2 __ovld vload2(size_t offset, const __global half *p);
11473
- half3 __ovld vload3(size_t offset, const __global half *p);
11474
- half4 __ovld vload4(size_t offset, const __global half *p);
11475
- half8 __ovld vload8(size_t offset, const __global half *p);
11476
- half16 __ovld vload16(size_t offset, const __global half *p);
11477
- half __ovld vload(size_t offset, const __local half *p);
11478
- half2 __ovld vload2(size_t offset, const __local half *p);
11479
- half3 __ovld vload3(size_t offset, const __local half *p);
11480
- half4 __ovld vload4(size_t offset, const __local half *p);
11481
- half8 __ovld vload8(size_t offset, const __local half *p);
11482
- half16 __ovld vload16(size_t offset, const __local half *p);
11483
- half __ovld vload(size_t offset, const __private half *p);
11484
- half2 __ovld vload2(size_t offset, const __private half *p);
11485
- half3 __ovld vload3(size_t offset, const __private half *p);
11486
- half4 __ovld vload4(size_t offset, const __private half *p);
11487
- half8 __ovld vload8(size_t offset, const __private half *p);
11488
- 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);
11489
11505
  #endif //cl_khr_fp16
11490
- #endif //defined(__opencl_c_generic_address_space)
11506
+ #endif //defined(__opencl_c_named_address_space_builtins)
11491
11507
 
11492
11508
  #if defined(__opencl_c_generic_address_space)
11493
11509
  void __ovld vstore2(char2 data, size_t offset, char *p);
@@ -11550,7 +11566,9 @@ void __ovld vstore4(half4 data, size_t offset, half *p);
11550
11566
  void __ovld vstore8(half8 data, size_t offset, half *p);
11551
11567
  void __ovld vstore16(half16 data, size_t offset, half *p);
11552
11568
  #endif //cl_khr_fp16
11553
- #else
11569
+ #endif //defined(__opencl_c_generic_address_space)
11570
+
11571
+ #if defined(__opencl_c_named_address_space_builtins)
11554
11572
  void __ovld vstore2(char2 data, size_t offset, __global char *p);
11555
11573
  void __ovld vstore2(uchar2 data, size_t offset, __global uchar *p);
11556
11574
  void __ovld vstore2(short2 data, size_t offset, __global short *p);
@@ -11723,7 +11741,7 @@ void __ovld vstore4(half4 data, size_t offset, __private half *p);
11723
11741
  void __ovld vstore8(half8 data, size_t offset, __private half *p);
11724
11742
  void __ovld vstore16(half16 data, size_t offset, __private half *p);
11725
11743
  #endif //cl_khr_fp16
11726
- #endif //defined(__opencl_c_generic_address_space)
11744
+ #endif //defined(__opencl_c_named_address_space_builtins)
11727
11745
 
11728
11746
  /**
11729
11747
  * Read sizeof (half) bytes of data from address
@@ -11733,15 +11751,17 @@ void __ovld vstore16(half16 data, size_t offset, __private half *p);
11733
11751
  * The read address computed as (p + offset)
11734
11752
  * must be 16-bit aligned.
11735
11753
  */
11736
- float __ovld vload_half(size_t offset, const __constant half *p);
11754
+ float __ovld __purefn vload_half(size_t offset, const __constant half *p);
11737
11755
  #if defined(__opencl_c_generic_address_space)
11738
- float __ovld vload_half(size_t offset, const half *p);
11739
- #else
11740
- float __ovld vload_half(size_t offset, const __global half *p);
11741
- float __ovld vload_half(size_t offset, const __local half *p);
11742
- float __ovld vload_half(size_t offset, const __private half *p);
11756
+ float __ovld __purefn vload_half(size_t offset, const half *p);
11743
11757
  #endif //defined(__opencl_c_generic_address_space)
11744
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)
11764
+
11745
11765
  /**
11746
11766
  * Read sizeof (halfn) bytes of data from address
11747
11767
  * (p + (offset * n)). The data read is interpreted
@@ -11750,35 +11770,37 @@ float __ovld vload_half(size_t offset, const __private half *p);
11750
11770
  * value is returned. The read address computed
11751
11771
  * as (p + (offset * n)) must be 16-bit aligned.
11752
11772
  */
11753
- float2 __ovld vload_half2(size_t offset, const __constant half *p);
11754
- float3 __ovld vload_half3(size_t offset, const __constant half *p);
11755
- float4 __ovld vload_half4(size_t offset, const __constant half *p);
11756
- float8 __ovld vload_half8(size_t offset, const __constant half *p);
11757
- float16 __ovld vload_half16(size_t offset, const __constant half *p);
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);
11758
11778
  #if defined(__opencl_c_generic_address_space)
11759
- float2 __ovld vload_half2(size_t offset, const half *p);
11760
- float3 __ovld vload_half3(size_t offset, const half *p);
11761
- float4 __ovld vload_half4(size_t offset, const half *p);
11762
- float8 __ovld vload_half8(size_t offset, const half *p);
11763
- float16 __ovld vload_half16(size_t offset, const half *p);
11764
- #else
11765
- float2 __ovld vload_half2(size_t offset, const __global half *p);
11766
- float3 __ovld vload_half3(size_t offset, const __global half *p);
11767
- float4 __ovld vload_half4(size_t offset, const __global half *p);
11768
- float8 __ovld vload_half8(size_t offset, const __global half *p);
11769
- float16 __ovld vload_half16(size_t offset, const __global half *p);
11770
- float2 __ovld vload_half2(size_t offset, const __local half *p);
11771
- float3 __ovld vload_half3(size_t offset, const __local half *p);
11772
- float4 __ovld vload_half4(size_t offset, const __local half *p);
11773
- float8 __ovld vload_half8(size_t offset, const __local half *p);
11774
- float16 __ovld vload_half16(size_t offset, const __local half *p);
11775
- float2 __ovld vload_half2(size_t offset, const __private half *p);
11776
- float3 __ovld vload_half3(size_t offset, const __private half *p);
11777
- float4 __ovld vload_half4(size_t offset, const __private half *p);
11778
- float8 __ovld vload_half8(size_t offset, const __private half *p);
11779
- float16 __ovld vload_half16(size_t offset, const __private half *p);
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);
11780
11784
  #endif //defined(__opencl_c_generic_address_space)
11781
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)
11803
+
11782
11804
  /**
11783
11805
  * The float value given by data is first
11784
11806
  * converted to a half value using the appropriate
@@ -11803,7 +11825,9 @@ void __ovld vstore_half_rtz(double data, size_t offset, half *p);
11803
11825
  void __ovld vstore_half_rtp(double data, size_t offset, half *p);
11804
11826
  void __ovld vstore_half_rtn(double data, size_t offset, half *p);
11805
11827
  #endif //cl_khr_fp64
11806
- #else
11828
+ #endif //defined(__opencl_c_generic_address_space)
11829
+
11830
+ #if defined(__opencl_c_named_address_space_builtins)
11807
11831
  void __ovld vstore_half(float data, size_t offset, __global half *p);
11808
11832
  void __ovld vstore_half_rte(float data, size_t offset, __global half *p);
11809
11833
  void __ovld vstore_half_rtz(float data, size_t offset, __global half *p);
@@ -11836,7 +11860,7 @@ void __ovld vstore_half_rtz(double data, size_t offset, __private half *p);
11836
11860
  void __ovld vstore_half_rtp(double data, size_t offset, __private half *p);
11837
11861
  void __ovld vstore_half_rtn(double data, size_t offset, __private half *p);
11838
11862
  #endif //cl_khr_fp64
11839
- #endif //defined(__opencl_c_generic_address_space)
11863
+ #endif //defined(__opencl_c_named_address_space_builtins)
11840
11864
 
11841
11865
  /**
11842
11866
  * The floatn value given by data is converted to
@@ -11902,7 +11926,9 @@ void __ovld vstore_half4_rtn(double4 data, size_t offset, half *p);
11902
11926
  void __ovld vstore_half8_rtn(double8 data, size_t offset, half *p);
11903
11927
  void __ovld vstore_half16_rtn(double16 data, size_t offset, half *p);
11904
11928
  #endif //cl_khr_fp64
11905
- #else
11929
+ #endif //defined(__opencl_c_generic_address_space)
11930
+
11931
+ #if defined(__opencl_c_named_address_space_builtins)
11906
11932
  void __ovld vstore_half2(float2 data, size_t offset, __global half *p);
11907
11933
  void __ovld vstore_half3(float3 data, size_t offset, __global half *p);
11908
11934
  void __ovld vstore_half4(float4 data, size_t offset, __global half *p);
@@ -12055,7 +12081,7 @@ void __ovld vstore_half4_rtn(double4 data, size_t offset, __private half *p);
12055
12081
  void __ovld vstore_half8_rtn(double8 data, size_t offset, __private half *p);
12056
12082
  void __ovld vstore_half16_rtn(double16 data, size_t offset, __private half *p);
12057
12083
  #endif //cl_khr_fp64
12058
- #endif //defined(__opencl_c_generic_address_space)
12084
+ #endif //defined(__opencl_c_named_address_space_builtins)
12059
12085
 
12060
12086
  /**
12061
12087
  * For n = 1, 2, 4, 8 and 16 read sizeof (halfn)
@@ -12070,40 +12096,37 @@ void __ovld vstore_half16_rtn(double16 data, size_t offset, __private half *p);
12070
12096
  * The address computed as (p + (offset * 4))
12071
12097
  * must be aligned to sizeof (half) * 4 bytes.
12072
12098
  */
12073
- float __ovld vloada_half(size_t offset, const __constant half *p);
12074
- float2 __ovld vloada_half2(size_t offset, const __constant half *p);
12075
- float3 __ovld vloada_half3(size_t offset, const __constant half *p);
12076
- float4 __ovld vloada_half4(size_t offset, const __constant half *p);
12077
- float8 __ovld vloada_half8(size_t offset, const __constant half *p);
12078
- float16 __ovld vloada_half16(size_t offset, const __constant half *p);
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);
12079
12104
  #if defined(__opencl_c_generic_address_space)
12080
- float __ovld vloada_half(size_t offset, const half *p);
12081
- float2 __ovld vloada_half2(size_t offset, const half *p);
12082
- float3 __ovld vloada_half3(size_t offset, const half *p);
12083
- float4 __ovld vloada_half4(size_t offset, const half *p);
12084
- float8 __ovld vloada_half8(size_t offset, const half *p);
12085
- float16 __ovld vloada_half16(size_t offset, const half *p);
12086
- #else
12087
- float __ovld vloada_half(size_t offset, const __global half *p);
12088
- float2 __ovld vloada_half2(size_t offset, const __global half *p);
12089
- float3 __ovld vloada_half3(size_t offset, const __global half *p);
12090
- float4 __ovld vloada_half4(size_t offset, const __global half *p);
12091
- float8 __ovld vloada_half8(size_t offset, const __global half *p);
12092
- float16 __ovld vloada_half16(size_t offset, const __global half *p);
12093
- float __ovld vloada_half(size_t offset, const __local half *p);
12094
- float2 __ovld vloada_half2(size_t offset, const __local half *p);
12095
- float3 __ovld vloada_half3(size_t offset, const __local half *p);
12096
- float4 __ovld vloada_half4(size_t offset, const __local half *p);
12097
- float8 __ovld vloada_half8(size_t offset, const __local half *p);
12098
- float16 __ovld vloada_half16(size_t offset, const __local half *p);
12099
- float __ovld vloada_half(size_t offset, const __private half *p);
12100
- float2 __ovld vloada_half2(size_t offset, const __private half *p);
12101
- float3 __ovld vloada_half3(size_t offset, const __private half *p);
12102
- float4 __ovld vloada_half4(size_t offset, const __private half *p);
12103
- float8 __ovld vloada_half8(size_t offset, const __private half *p);
12104
- float16 __ovld vloada_half16(size_t offset, const __private half *p);
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);
12105
12110
  #endif //defined(__opencl_c_generic_address_space)
12106
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)
12129
+
12107
12130
  /**
12108
12131
  * The floatn value given by data is converted to
12109
12132
  * a halfn value using the appropriate rounding
@@ -12121,35 +12144,30 @@ float16 __ovld vloada_half16(size_t offset, const __private half *p);
12121
12144
  * round to nearest even.
12122
12145
  */
12123
12146
  #if defined(__opencl_c_generic_address_space)
12124
- void __ovld vstorea_half(float data, size_t offset, half *p);
12125
12147
  void __ovld vstorea_half2(float2 data, size_t offset, half *p);
12126
12148
  void __ovld vstorea_half3(float3 data, size_t offset, half *p);
12127
12149
  void __ovld vstorea_half4(float4 data, size_t offset, half *p);
12128
12150
  void __ovld vstorea_half8(float8 data, size_t offset, half *p);
12129
12151
  void __ovld vstorea_half16(float16 data, size_t offset, half *p);
12130
12152
 
12131
- void __ovld vstorea_half_rte(float data, size_t offset, half *p);
12132
12153
  void __ovld vstorea_half2_rte(float2 data, size_t offset, half *p);
12133
12154
  void __ovld vstorea_half3_rte(float3 data, size_t offset, half *p);
12134
12155
  void __ovld vstorea_half4_rte(float4 data, size_t offset, half *p);
12135
12156
  void __ovld vstorea_half8_rte(float8 data, size_t offset, half *p);
12136
12157
  void __ovld vstorea_half16_rte(float16 data, size_t offset, half *p);
12137
12158
 
12138
- void __ovld vstorea_half_rtz(float data, size_t offset, half *p);
12139
12159
  void __ovld vstorea_half2_rtz(float2 data, size_t offset, half *p);
12140
12160
  void __ovld vstorea_half3_rtz(float3 data, size_t offset, half *p);
12141
12161
  void __ovld vstorea_half4_rtz(float4 data, size_t offset, half *p);
12142
12162
  void __ovld vstorea_half8_rtz(float8 data, size_t offset, half *p);
12143
12163
  void __ovld vstorea_half16_rtz(float16 data, size_t offset, half *p);
12144
12164
 
12145
- void __ovld vstorea_half_rtp(float data, size_t offset, half *p);
12146
12165
  void __ovld vstorea_half2_rtp(float2 data, size_t offset, half *p);
12147
12166
  void __ovld vstorea_half3_rtp(float3 data, size_t offset, half *p);
12148
12167
  void __ovld vstorea_half4_rtp(float4 data, size_t offset, half *p);
12149
12168
  void __ovld vstorea_half8_rtp(float8 data, size_t offset, half *p);
12150
12169
  void __ovld vstorea_half16_rtp(float16 data, size_t offset, half *p);
12151
12170
 
12152
- void __ovld vstorea_half_rtn(float data, size_t offset, half *p);
12153
12171
  void __ovld vstorea_half2_rtn(float2 data, size_t offset, half *p);
12154
12172
  void __ovld vstorea_half3_rtn(float3 data, size_t offset, half *p);
12155
12173
  void __ovld vstorea_half4_rtn(float4 data, size_t offset, half *p);
@@ -12157,142 +12175,123 @@ void __ovld vstorea_half8_rtn(float8 data, size_t offset, half *p);
12157
12175
  void __ovld vstorea_half16_rtn(float16 data, size_t offset, half *p);
12158
12176
 
12159
12177
  #ifdef cl_khr_fp64
12160
- void __ovld vstorea_half(double data, size_t offset, half *p);
12161
12178
  void __ovld vstorea_half2(double2 data, size_t offset, half *p);
12162
12179
  void __ovld vstorea_half3(double3 data, size_t offset, half *p);
12163
12180
  void __ovld vstorea_half4(double4 data, size_t offset, half *p);
12164
12181
  void __ovld vstorea_half8(double8 data, size_t offset, half *p);
12165
12182
  void __ovld vstorea_half16(double16 data, size_t offset, half *p);
12166
12183
 
12167
- void __ovld vstorea_half_rte(double data, size_t offset, half *p);
12168
12184
  void __ovld vstorea_half2_rte(double2 data, size_t offset, half *p);
12169
12185
  void __ovld vstorea_half3_rte(double3 data, size_t offset, half *p);
12170
12186
  void __ovld vstorea_half4_rte(double4 data, size_t offset, half *p);
12171
12187
  void __ovld vstorea_half8_rte(double8 data, size_t offset, half *p);
12172
12188
  void __ovld vstorea_half16_rte(double16 data, size_t offset, half *p);
12173
12189
 
12174
- void __ovld vstorea_half_rtz(double data, size_t offset, half *p);
12175
12190
  void __ovld vstorea_half2_rtz(double2 data, size_t offset, half *p);
12176
12191
  void __ovld vstorea_half3_rtz(double3 data, size_t offset, half *p);
12177
12192
  void __ovld vstorea_half4_rtz(double4 data, size_t offset, half *p);
12178
12193
  void __ovld vstorea_half8_rtz(double8 data, size_t offset, half *p);
12179
12194
  void __ovld vstorea_half16_rtz(double16 data, size_t offset, half *p);
12180
12195
 
12181
- void __ovld vstorea_half_rtp(double data, size_t offset, half *p);
12182
12196
  void __ovld vstorea_half2_rtp(double2 data, size_t offset, half *p);
12183
12197
  void __ovld vstorea_half3_rtp(double3 data, size_t offset, half *p);
12184
12198
  void __ovld vstorea_half4_rtp(double4 data, size_t offset, half *p);
12185
12199
  void __ovld vstorea_half8_rtp(double8 data, size_t offset, half *p);
12186
12200
  void __ovld vstorea_half16_rtp(double16 data, size_t offset, half *p);
12187
12201
 
12188
- void __ovld vstorea_half_rtn(double data, size_t offset, half *p);
12189
12202
  void __ovld vstorea_half2_rtn(double2 data, size_t offset, half *p);
12190
12203
  void __ovld vstorea_half3_rtn(double3 data, size_t offset, half *p);
12191
12204
  void __ovld vstorea_half4_rtn(double4 data, size_t offset, half *p);
12192
12205
  void __ovld vstorea_half8_rtn(double8 data, size_t offset, half *p);
12193
12206
  void __ovld vstorea_half16_rtn(double16 data, size_t offset, half *p);
12194
12207
  #endif //cl_khr_fp64
12208
+ #endif //defined(__opencl_c_generic_address_space)
12195
12209
 
12196
- #else
12197
- void __ovld vstorea_half(float data, size_t offset, __global half *p);
12210
+ #if defined(__opencl_c_named_address_space_builtins)
12198
12211
  void __ovld vstorea_half2(float2 data, size_t offset, __global half *p);
12199
12212
  void __ovld vstorea_half3(float3 data, size_t offset, __global half *p);
12200
12213
  void __ovld vstorea_half4(float4 data, size_t offset, __global half *p);
12201
12214
  void __ovld vstorea_half8(float8 data, size_t offset, __global half *p);
12202
12215
  void __ovld vstorea_half16(float16 data, size_t offset, __global half *p);
12203
12216
 
12204
- void __ovld vstorea_half_rte(float data, size_t offset, __global half *p);
12205
12217
  void __ovld vstorea_half2_rte(float2 data, size_t offset, __global half *p);
12206
12218
  void __ovld vstorea_half3_rte(float3 data, size_t offset, __global half *p);
12207
12219
  void __ovld vstorea_half4_rte(float4 data, size_t offset, __global half *p);
12208
12220
  void __ovld vstorea_half8_rte(float8 data, size_t offset, __global half *p);
12209
12221
  void __ovld vstorea_half16_rte(float16 data, size_t offset, __global half *p);
12210
12222
 
12211
- void __ovld vstorea_half_rtz(float data, size_t offset, __global half *p);
12212
12223
  void __ovld vstorea_half2_rtz(float2 data, size_t offset, __global half *p);
12213
12224
  void __ovld vstorea_half3_rtz(float3 data, size_t offset, __global half *p);
12214
12225
  void __ovld vstorea_half4_rtz(float4 data, size_t offset, __global half *p);
12215
12226
  void __ovld vstorea_half8_rtz(float8 data, size_t offset, __global half *p);
12216
12227
  void __ovld vstorea_half16_rtz(float16 data, size_t offset, __global half *p);
12217
12228
 
12218
- void __ovld vstorea_half_rtp(float data, size_t offset, __global half *p);
12219
12229
  void __ovld vstorea_half2_rtp(float2 data, size_t offset, __global half *p);
12220
12230
  void __ovld vstorea_half3_rtp(float3 data, size_t offset, __global half *p);
12221
12231
  void __ovld vstorea_half4_rtp(float4 data, size_t offset, __global half *p);
12222
12232
  void __ovld vstorea_half8_rtp(float8 data, size_t offset, __global half *p);
12223
12233
  void __ovld vstorea_half16_rtp(float16 data, size_t offset, __global half *p);
12224
12234
 
12225
- void __ovld vstorea_half_rtn(float data, size_t offset, __global half *p);
12226
12235
  void __ovld vstorea_half2_rtn(float2 data, size_t offset, __global half *p);
12227
12236
  void __ovld vstorea_half3_rtn(float3 data, size_t offset, __global half *p);
12228
12237
  void __ovld vstorea_half4_rtn(float4 data, size_t offset, __global half *p);
12229
12238
  void __ovld vstorea_half8_rtn(float8 data, size_t offset, __global half *p);
12230
12239
  void __ovld vstorea_half16_rtn(float16 data, size_t offset, __global half *p);
12231
12240
 
12232
- void __ovld vstorea_half(float data, size_t offset, __local half *p);
12233
12241
  void __ovld vstorea_half2(float2 data, size_t offset, __local half *p);
12234
12242
  void __ovld vstorea_half3(float3 data, size_t offset, __local half *p);
12235
12243
  void __ovld vstorea_half4(float4 data, size_t offset, __local half *p);
12236
12244
  void __ovld vstorea_half8(float8 data, size_t offset, __local half *p);
12237
12245
  void __ovld vstorea_half16(float16 data, size_t offset, __local half *p);
12238
12246
 
12239
- void __ovld vstorea_half_rte(float data, size_t offset, __local half *p);
12240
12247
  void __ovld vstorea_half2_rte(float2 data, size_t offset, __local half *p);
12241
12248
  void __ovld vstorea_half3_rte(float3 data, size_t offset, __local half *p);
12242
12249
  void __ovld vstorea_half4_rte(float4 data, size_t offset, __local half *p);
12243
12250
  void __ovld vstorea_half8_rte(float8 data, size_t offset, __local half *p);
12244
12251
  void __ovld vstorea_half16_rte(float16 data, size_t offset, __local half *p);
12245
12252
 
12246
- void __ovld vstorea_half_rtz(float data, size_t offset, __local half *p);
12247
12253
  void __ovld vstorea_half2_rtz(float2 data, size_t offset, __local half *p);
12248
12254
  void __ovld vstorea_half3_rtz(float3 data, size_t offset, __local half *p);
12249
12255
  void __ovld vstorea_half4_rtz(float4 data, size_t offset, __local half *p);
12250
12256
  void __ovld vstorea_half8_rtz(float8 data, size_t offset, __local half *p);
12251
12257
  void __ovld vstorea_half16_rtz(float16 data, size_t offset, __local half *p);
12252
12258
 
12253
- void __ovld vstorea_half_rtp(float data, size_t offset, __local half *p);
12254
12259
  void __ovld vstorea_half2_rtp(float2 data, size_t offset, __local half *p);
12255
12260
  void __ovld vstorea_half3_rtp(float3 data, size_t offset, __local half *p);
12256
12261
  void __ovld vstorea_half4_rtp(float4 data, size_t offset, __local half *p);
12257
12262
  void __ovld vstorea_half8_rtp(float8 data, size_t offset, __local half *p);
12258
12263
  void __ovld vstorea_half16_rtp(float16 data, size_t offset, __local half *p);
12259
12264
 
12260
- void __ovld vstorea_half_rtn(float data, size_t offset, __local half *p);
12261
12265
  void __ovld vstorea_half2_rtn(float2 data, size_t offset, __local half *p);
12262
12266
  void __ovld vstorea_half3_rtn(float3 data, size_t offset, __local half *p);
12263
12267
  void __ovld vstorea_half4_rtn(float4 data, size_t offset, __local half *p);
12264
12268
  void __ovld vstorea_half8_rtn(float8 data, size_t offset, __local half *p);
12265
12269
  void __ovld vstorea_half16_rtn(float16 data, size_t offset, __local half *p);
12266
12270
 
12267
- void __ovld vstorea_half(float data, size_t offset, __private half *p);
12268
12271
  void __ovld vstorea_half2(float2 data, size_t offset, __private half *p);
12269
12272
  void __ovld vstorea_half3(float3 data, size_t offset, __private half *p);
12270
12273
  void __ovld vstorea_half4(float4 data, size_t offset, __private half *p);
12271
12274
  void __ovld vstorea_half8(float8 data, size_t offset, __private half *p);
12272
12275
  void __ovld vstorea_half16(float16 data, size_t offset, __private half *p);
12273
12276
 
12274
- void __ovld vstorea_half_rte(float data, size_t offset, __private half *p);
12275
12277
  void __ovld vstorea_half2_rte(float2 data, size_t offset, __private half *p);
12276
12278
  void __ovld vstorea_half3_rte(float3 data, size_t offset, __private half *p);
12277
12279
  void __ovld vstorea_half4_rte(float4 data, size_t offset, __private half *p);
12278
12280
  void __ovld vstorea_half8_rte(float8 data, size_t offset, __private half *p);
12279
12281
  void __ovld vstorea_half16_rte(float16 data, size_t offset, __private half *p);
12280
12282
 
12281
- void __ovld vstorea_half_rtz(float data, size_t offset, __private half *p);
12282
12283
  void __ovld vstorea_half2_rtz(float2 data, size_t offset, __private half *p);
12283
12284
  void __ovld vstorea_half3_rtz(float3 data, size_t offset, __private half *p);
12284
12285
  void __ovld vstorea_half4_rtz(float4 data, size_t offset, __private half *p);
12285
12286
  void __ovld vstorea_half8_rtz(float8 data, size_t offset, __private half *p);
12286
12287
  void __ovld vstorea_half16_rtz(float16 data, size_t offset, __private half *p);
12287
12288
 
12288
- void __ovld vstorea_half_rtp(float data, size_t offset, __private half *p);
12289
12289
  void __ovld vstorea_half2_rtp(float2 data, size_t offset, __private half *p);
12290
12290
  void __ovld vstorea_half3_rtp(float3 data, size_t offset, __private half *p);
12291
12291
  void __ovld vstorea_half4_rtp(float4 data, size_t offset, __private half *p);
12292
12292
  void __ovld vstorea_half8_rtp(float8 data, size_t offset, __private half *p);
12293
12293
  void __ovld vstorea_half16_rtp(float16 data, size_t offset, __private half *p);
12294
12294
 
12295
- void __ovld vstorea_half_rtn(float data, size_t offset, __private half *p);
12296
12295
  void __ovld vstorea_half2_rtn(float2 data, size_t offset, __private half *p);
12297
12296
  void __ovld vstorea_half3_rtn(float3 data, size_t offset, __private half *p);
12298
12297
  void __ovld vstorea_half4_rtn(float4 data, size_t offset, __private half *p);
@@ -12300,112 +12299,97 @@ void __ovld vstorea_half8_rtn(float8 data, size_t offset, __private half *p);
12300
12299
  void __ovld vstorea_half16_rtn(float16 data, size_t offset, __private half *p);
12301
12300
 
12302
12301
  #ifdef cl_khr_fp64
12303
- void __ovld vstorea_half(double data, size_t offset, __global half *p);
12304
12302
  void __ovld vstorea_half2(double2 data, size_t offset, __global half *p);
12305
12303
  void __ovld vstorea_half3(double3 data, size_t offset, __global half *p);
12306
12304
  void __ovld vstorea_half4(double4 data, size_t offset, __global half *p);
12307
12305
  void __ovld vstorea_half8(double8 data, size_t offset, __global half *p);
12308
12306
  void __ovld vstorea_half16(double16 data, size_t offset, __global half *p);
12309
12307
 
12310
- void __ovld vstorea_half_rte(double data, size_t offset, __global half *p);
12311
12308
  void __ovld vstorea_half2_rte(double2 data, size_t offset, __global half *p);
12312
12309
  void __ovld vstorea_half3_rte(double3 data, size_t offset, __global half *p);
12313
12310
  void __ovld vstorea_half4_rte(double4 data, size_t offset, __global half *p);
12314
12311
  void __ovld vstorea_half8_rte(double8 data, size_t offset, __global half *p);
12315
12312
  void __ovld vstorea_half16_rte(double16 data, size_t offset, __global half *p);
12316
12313
 
12317
- void __ovld vstorea_half_rtz(double data, size_t offset, __global half *p);
12318
12314
  void __ovld vstorea_half2_rtz(double2 data, size_t offset, __global half *p);
12319
12315
  void __ovld vstorea_half3_rtz(double3 data, size_t offset, __global half *p);
12320
12316
  void __ovld vstorea_half4_rtz(double4 data, size_t offset, __global half *p);
12321
12317
  void __ovld vstorea_half8_rtz(double8 data, size_t offset, __global half *p);
12322
12318
  void __ovld vstorea_half16_rtz(double16 data, size_t offset, __global half *p);
12323
12319
 
12324
- void __ovld vstorea_half_rtp(double data, size_t offset, __global half *p);
12325
12320
  void __ovld vstorea_half2_rtp(double2 data, size_t offset, __global half *p);
12326
12321
  void __ovld vstorea_half3_rtp(double3 data, size_t offset, __global half *p);
12327
12322
  void __ovld vstorea_half4_rtp(double4 data, size_t offset, __global half *p);
12328
12323
  void __ovld vstorea_half8_rtp(double8 data, size_t offset, __global half *p);
12329
12324
  void __ovld vstorea_half16_rtp(double16 data, size_t offset, __global half *p);
12330
12325
 
12331
- void __ovld vstorea_half_rtn(double data, size_t offset, __global half *p);
12332
12326
  void __ovld vstorea_half2_rtn(double2 data, size_t offset, __global half *p);
12333
12327
  void __ovld vstorea_half3_rtn(double3 data, size_t offset, __global half *p);
12334
12328
  void __ovld vstorea_half4_rtn(double4 data, size_t offset, __global half *p);
12335
12329
  void __ovld vstorea_half8_rtn(double8 data, size_t offset, __global half *p);
12336
12330
  void __ovld vstorea_half16_rtn(double16 data, size_t offset, __global half *p);
12337
12331
 
12338
- void __ovld vstorea_half(double data, size_t offset, __local half *p);
12339
12332
  void __ovld vstorea_half2(double2 data, size_t offset, __local half *p);
12340
12333
  void __ovld vstorea_half3(double3 data, size_t offset, __local half *p);
12341
12334
  void __ovld vstorea_half4(double4 data, size_t offset, __local half *p);
12342
12335
  void __ovld vstorea_half8(double8 data, size_t offset, __local half *p);
12343
12336
  void __ovld vstorea_half16(double16 data, size_t offset, __local half *p);
12344
12337
 
12345
- void __ovld vstorea_half_rte(double data, size_t offset, __local half *p);
12346
12338
  void __ovld vstorea_half2_rte(double2 data, size_t offset, __local half *p);
12347
12339
  void __ovld vstorea_half3_rte(double3 data, size_t offset, __local half *p);
12348
12340
  void __ovld vstorea_half4_rte(double4 data, size_t offset, __local half *p);
12349
12341
  void __ovld vstorea_half8_rte(double8 data, size_t offset, __local half *p);
12350
12342
  void __ovld vstorea_half16_rte(double16 data, size_t offset, __local half *p);
12351
12343
 
12352
- void __ovld vstorea_half_rtz(double data, size_t offset, __local half *p);
12353
12344
  void __ovld vstorea_half2_rtz(double2 data, size_t offset, __local half *p);
12354
12345
  void __ovld vstorea_half3_rtz(double3 data, size_t offset, __local half *p);
12355
12346
  void __ovld vstorea_half4_rtz(double4 data, size_t offset, __local half *p);
12356
12347
  void __ovld vstorea_half8_rtz(double8 data, size_t offset, __local half *p);
12357
12348
  void __ovld vstorea_half16_rtz(double16 data, size_t offset, __local half *p);
12358
12349
 
12359
- void __ovld vstorea_half_rtp(double data, size_t offset, __local half *p);
12360
12350
  void __ovld vstorea_half2_rtp(double2 data, size_t offset, __local half *p);
12361
12351
  void __ovld vstorea_half3_rtp(double3 data, size_t offset, __local half *p);
12362
12352
  void __ovld vstorea_half4_rtp(double4 data, size_t offset, __local half *p);
12363
12353
  void __ovld vstorea_half8_rtp(double8 data, size_t offset, __local half *p);
12364
12354
  void __ovld vstorea_half16_rtp(double16 data, size_t offset, __local half *p);
12365
12355
 
12366
- void __ovld vstorea_half_rtn(double data, size_t offset, __local half *p);
12367
12356
  void __ovld vstorea_half2_rtn(double2 data, size_t offset, __local half *p);
12368
12357
  void __ovld vstorea_half3_rtn(double3 data, size_t offset, __local half *p);
12369
12358
  void __ovld vstorea_half4_rtn(double4 data, size_t offset, __local half *p);
12370
12359
  void __ovld vstorea_half8_rtn(double8 data, size_t offset, __local half *p);
12371
12360
  void __ovld vstorea_half16_rtn(double16 data, size_t offset, __local half *p);
12372
12361
 
12373
- void __ovld vstorea_half(double data, size_t offset, __private half *p);
12374
12362
  void __ovld vstorea_half2(double2 data, size_t offset, __private half *p);
12375
12363
  void __ovld vstorea_half3(double3 data, size_t offset, __private half *p);
12376
12364
  void __ovld vstorea_half4(double4 data, size_t offset, __private half *p);
12377
12365
  void __ovld vstorea_half8(double8 data, size_t offset, __private half *p);
12378
12366
  void __ovld vstorea_half16(double16 data, size_t offset, __private half *p);
12379
12367
 
12380
- void __ovld vstorea_half_rte(double data, size_t offset, __private half *p);
12381
12368
  void __ovld vstorea_half2_rte(double2 data, size_t offset, __private half *p);
12382
12369
  void __ovld vstorea_half3_rte(double3 data, size_t offset, __private half *p);
12383
12370
  void __ovld vstorea_half4_rte(double4 data, size_t offset, __private half *p);
12384
12371
  void __ovld vstorea_half8_rte(double8 data, size_t offset, __private half *p);
12385
12372
  void __ovld vstorea_half16_rte(double16 data, size_t offset, __private half *p);
12386
12373
 
12387
- void __ovld vstorea_half_rtz(double data, size_t offset, __private half *p);
12388
12374
  void __ovld vstorea_half2_rtz(double2 data, size_t offset, __private half *p);
12389
12375
  void __ovld vstorea_half3_rtz(double3 data, size_t offset, __private half *p);
12390
12376
  void __ovld vstorea_half4_rtz(double4 data, size_t offset, __private half *p);
12391
12377
  void __ovld vstorea_half8_rtz(double8 data, size_t offset, __private half *p);
12392
12378
  void __ovld vstorea_half16_rtz(double16 data, size_t offset, __private half *p);
12393
12379
 
12394
- void __ovld vstorea_half_rtp(double data, size_t offset, __private half *p);
12395
12380
  void __ovld vstorea_half2_rtp(double2 data, size_t offset, __private half *p);
12396
12381
  void __ovld vstorea_half3_rtp(double3 data, size_t offset, __private half *p);
12397
12382
  void __ovld vstorea_half4_rtp(double4 data, size_t offset, __private half *p);
12398
12383
  void __ovld vstorea_half8_rtp(double8 data, size_t offset, __private half *p);
12399
12384
  void __ovld vstorea_half16_rtp(double16 data, size_t offset, __private half *p);
12400
12385
 
12401
- void __ovld vstorea_half_rtn(double data, size_t offset, __private half *p);
12402
12386
  void __ovld vstorea_half2_rtn(double2 data,size_t offset, __private half *p);
12403
12387
  void __ovld vstorea_half3_rtn(double3 data,size_t offset, __private half *p);
12404
12388
  void __ovld vstorea_half4_rtn(double4 data,size_t offset, __private half *p);
12405
12389
  void __ovld vstorea_half8_rtn(double8 data,size_t offset, __private half *p);
12406
12390
  void __ovld vstorea_half16_rtn(double16 data,size_t offset, __private half *p);
12407
12391
  #endif //cl_khr_fp64
12408
- #endif //defined(__opencl_c_generic_address_space)
12392
+ #endif //defined(__opencl_c_named_address_space_builtins)
12409
12393
 
12410
12394
  // OpenCL v1.1 s6.11.8, v1.2 s6.12.8, v2.0 s6.13.8 - Synchronization Functions
12411
12395
 
@@ -13289,6 +13273,7 @@ unsigned long __ovld atom_xor(volatile __local unsigned long *p, unsigned long v
13289
13273
  #endif
13290
13274
 
13291
13275
  // atomic_init()
13276
+ #if defined(__opencl_c_generic_address_space)
13292
13277
  void __ovld atomic_init(volatile atomic_int *object, int value);
13293
13278
  void __ovld atomic_init(volatile atomic_uint *object, uint value);
13294
13279
  void __ovld atomic_init(volatile atomic_float *object, float value);
@@ -13299,6 +13284,25 @@ void __ovld atomic_init(volatile atomic_ulong *object, ulong value);
13299
13284
  void __ovld atomic_init(volatile atomic_double *object, double value);
13300
13285
  #endif //cl_khr_fp64
13301
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)
13302
13306
 
13303
13307
  // atomic_work_item_fence()
13304
13308
  void __ovld atomic_work_item_fence(cl_mem_fence_flags flags, memory_order order, memory_scope scope);
@@ -13308,6 +13312,7 @@ void __ovld atomic_work_item_fence(cl_mem_fence_flags flags, memory_order order,
13308
13312
  // add/sub: atomic type argument can be uintptr_t/intptr_t, value type argument can be ptrdiff_t.
13309
13313
 
13310
13314
  #if defined(__opencl_c_atomic_order_seq_cst) && defined(__opencl_c_atomic_scope_device)
13315
+ #if defined(__opencl_c_generic_address_space)
13311
13316
  int __ovld atomic_fetch_add(volatile atomic_int *object, int operand);
13312
13317
  uint __ovld atomic_fetch_add(volatile atomic_uint *object, uint operand);
13313
13318
  int __ovld atomic_fetch_sub(volatile atomic_int *object, int operand);
@@ -13322,7 +13327,6 @@ int __ovld atomic_fetch_min(volatile atomic_int *object, int operand);
13322
13327
  uint __ovld atomic_fetch_min(volatile atomic_uint *object, uint operand);
13323
13328
  int __ovld atomic_fetch_max(volatile atomic_int *object, int operand);
13324
13329
  uint __ovld atomic_fetch_max(volatile atomic_uint *object, uint operand);
13325
-
13326
13330
  #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13327
13331
  long __ovld atomic_fetch_add(volatile atomic_long *object, long operand);
13328
13332
  ulong __ovld atomic_fetch_add(volatile atomic_ulong *object, ulong operand);
@@ -13341,9 +13345,93 @@ ulong __ovld atomic_fetch_max(volatile atomic_ulong *object, ulong operand);
13341
13345
  uintptr_t __ovld atomic_fetch_add(volatile atomic_uintptr_t *object, ptrdiff_t operand);
13342
13346
  uintptr_t __ovld atomic_fetch_sub(volatile atomic_uintptr_t *object, ptrdiff_t operand);
13343
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)
13344
13431
  #endif
13345
13432
 
13346
13433
  #if defined(__opencl_c_atomic_scope_device)
13434
+ #if defined(__opencl_c_generic_address_space)
13347
13435
  int __ovld atomic_fetch_add_explicit(volatile atomic_int *object, int operand, memory_order order);
13348
13436
  uint __ovld atomic_fetch_add_explicit(volatile atomic_uint *object, uint operand, memory_order order);
13349
13437
  int __ovld atomic_fetch_sub_explicit(volatile atomic_int *object, int operand, memory_order order);
@@ -13376,8 +13464,92 @@ ulong __ovld atomic_fetch_max_explicit(volatile atomic_ulong *object, ulong oper
13376
13464
  uintptr_t __ovld atomic_fetch_add_explicit(volatile atomic_uintptr_t *object, ptrdiff_t operand, memory_order order);
13377
13465
  uintptr_t __ovld atomic_fetch_sub_explicit(volatile atomic_uintptr_t *object, ptrdiff_t operand, memory_order order);
13378
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)
13379
13550
  #endif
13380
13551
 
13552
+ #if defined(__opencl_c_generic_address_space)
13381
13553
  int __ovld atomic_fetch_add_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
13382
13554
  uint __ovld atomic_fetch_add_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13383
13555
  int __ovld atomic_fetch_sub_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
@@ -13407,15 +13579,475 @@ long __ovld atomic_fetch_min_explicit(volatile atomic_long *object, long operand
13407
13579
  ulong __ovld atomic_fetch_min_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13408
13580
  long __ovld atomic_fetch_max_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
13409
13581
  ulong __ovld atomic_fetch_max_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13410
- #endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13411
- #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13412
13582
  uintptr_t __ovld atomic_fetch_add_explicit(volatile atomic_uintptr_t *object, ptrdiff_t operand, memory_order order, memory_scope scope);
13413
13583
  uintptr_t __ovld atomic_fetch_sub_explicit(volatile atomic_uintptr_t *object, ptrdiff_t operand, memory_order order, memory_scope scope);
13414
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
13415
14046
 
13416
14047
  // atomic_store()
13417
14048
 
13418
14049
  #if defined(__opencl_c_atomic_order_seq_cst) && defined(__opencl_c_atomic_scope_device)
14050
+ #if defined(__opencl_c_generic_address_space)
13419
14051
  void __ovld atomic_store(volatile atomic_int *object, int desired);
13420
14052
  void __ovld atomic_store(volatile atomic_uint *object, uint desired);
13421
14053
  void __ovld atomic_store(volatile atomic_float *object, float desired);
@@ -13427,9 +14059,29 @@ void __ovld atomic_store(volatile atomic_double *object, double desired);
13427
14059
  void __ovld atomic_store(volatile atomic_long *object, long desired);
13428
14060
  void __ovld atomic_store(volatile atomic_ulong *object, ulong desired);
13429
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)
13430
14081
  #endif
13431
14082
 
13432
14083
  #if defined(__opencl_c_atomic_scope_device)
14084
+ #if defined(__opencl_c_generic_address_space)
13433
14085
  void __ovld atomic_store_explicit(volatile atomic_int *object, int desired, memory_order order);
13434
14086
  void __ovld atomic_store_explicit(volatile atomic_uint *object, uint desired, memory_order order);
13435
14087
  void __ovld atomic_store_explicit(volatile atomic_float *object, float desired, memory_order order);
@@ -13440,8 +14092,28 @@ void __ovld atomic_store_explicit(volatile atomic_double *object, double desired
13440
14092
  void __ovld atomic_store_explicit(volatile atomic_long *object, long desired, memory_order order);
13441
14093
  void __ovld atomic_store_explicit(volatile atomic_ulong *object, ulong desired, memory_order order);
13442
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)
13443
14114
  #endif
13444
14115
 
14116
+ #if defined(__opencl_c_generic_address_space)
13445
14117
  void __ovld atomic_store_explicit(volatile atomic_int *object, int desired, memory_order order, memory_scope scope);
13446
14118
  void __ovld atomic_store_explicit(volatile atomic_uint *object, uint desired, memory_order order, memory_scope scope);
13447
14119
  void __ovld atomic_store_explicit(volatile atomic_float *object, float desired, memory_order order, memory_scope scope);
@@ -13452,9 +14124,29 @@ void __ovld atomic_store_explicit(volatile atomic_double *object, double desired
13452
14124
  void __ovld atomic_store_explicit(volatile atomic_long *object, long desired, memory_order order, memory_scope scope);
13453
14125
  void __ovld atomic_store_explicit(volatile atomic_ulong *object, ulong desired, memory_order order, memory_scope scope);
13454
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)
13455
14146
 
13456
14147
  // atomic_load()
13457
14148
  #if defined(__opencl_c_atomic_order_seq_cst) && defined(__opencl_c_atomic_scope_device)
14149
+ #if defined(__opencl_c_generic_address_space)
13458
14150
  int __ovld atomic_load(volatile atomic_int *object);
13459
14151
  uint __ovld atomic_load(volatile atomic_uint *object);
13460
14152
  float __ovld atomic_load(volatile atomic_float *object);
@@ -13465,9 +14157,29 @@ double __ovld atomic_load(volatile atomic_double *object);
13465
14157
  long __ovld atomic_load(volatile atomic_long *object);
13466
14158
  ulong __ovld atomic_load(volatile atomic_ulong *object);
13467
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)
13468
14179
  #endif
13469
14180
 
13470
14181
  #if defined(__opencl_c_atomic_scope_device)
14182
+ #if defined(__opencl_c_generic_address_space)
13471
14183
  int __ovld atomic_load_explicit(volatile atomic_int *object, memory_order order);
13472
14184
  uint __ovld atomic_load_explicit(volatile atomic_uint *object, memory_order order);
13473
14185
  float __ovld atomic_load_explicit(volatile atomic_float *object, memory_order order);
@@ -13478,8 +14190,28 @@ double __ovld atomic_load_explicit(volatile atomic_double *object, memory_order
13478
14190
  long __ovld atomic_load_explicit(volatile atomic_long *object, memory_order order);
13479
14191
  ulong __ovld atomic_load_explicit(volatile atomic_ulong *object, memory_order order);
13480
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)
13481
14212
  #endif
13482
14213
 
14214
+ #if defined(__opencl_c_generic_address_space)
13483
14215
  int __ovld atomic_load_explicit(volatile atomic_int *object, memory_order order, memory_scope scope);
13484
14216
  uint __ovld atomic_load_explicit(volatile atomic_uint *object, memory_order order, memory_scope scope);
13485
14217
  float __ovld atomic_load_explicit(volatile atomic_float *object, memory_order order, memory_scope scope);
@@ -13490,10 +14222,30 @@ double __ovld atomic_load_explicit(volatile atomic_double *object, memory_order
13490
14222
  long __ovld atomic_load_explicit(volatile atomic_long *object, memory_order order, memory_scope scope);
13491
14223
  ulong __ovld atomic_load_explicit(volatile atomic_ulong *object, memory_order order, memory_scope scope);
13492
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)
13493
14244
 
13494
14245
  // atomic_exchange()
13495
14246
 
13496
14247
  #if defined(__opencl_c_atomic_order_seq_cst) && defined(__opencl_c_atomic_scope_device)
14248
+ #if defined(__opencl_c_generic_address_space)
13497
14249
  int __ovld atomic_exchange(volatile atomic_int *object, int desired);
13498
14250
  uint __ovld atomic_exchange(volatile atomic_uint *object, uint desired);
13499
14251
  float __ovld atomic_exchange(volatile atomic_float *object, float desired);
@@ -13504,9 +14256,29 @@ double __ovld atomic_exchange(volatile atomic_double *object, double desired);
13504
14256
  long __ovld atomic_exchange(volatile atomic_long *object, long desired);
13505
14257
  ulong __ovld atomic_exchange(volatile atomic_ulong *object, ulong desired);
13506
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)
13507
14278
  #endif
13508
14279
 
13509
14280
  #if defined(__opencl_c_atomic_scope_device)
14281
+ #if defined(__opencl_c_generic_address_space)
13510
14282
  int __ovld atomic_exchange_explicit(volatile atomic_int *object, int desired, memory_order order);
13511
14283
  uint __ovld atomic_exchange_explicit(volatile atomic_uint *object, uint desired, memory_order order);
13512
14284
  float __ovld atomic_exchange_explicit(volatile atomic_float *object, float desired, memory_order order);
@@ -13517,8 +14289,28 @@ double __ovld atomic_exchange_explicit(volatile atomic_double *object, double de
13517
14289
  long __ovld atomic_exchange_explicit(volatile atomic_long *object, long desired, memory_order order);
13518
14290
  ulong __ovld atomic_exchange_explicit(volatile atomic_ulong *object, ulong desired, memory_order order);
13519
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)
13520
14311
  #endif
13521
14312
 
14313
+ #if defined(__opencl_c_generic_address_space)
13522
14314
  int __ovld atomic_exchange_explicit(volatile atomic_int *object, int desired, memory_order order, memory_scope scope);
13523
14315
  uint __ovld atomic_exchange_explicit(volatile atomic_uint *object, uint desired, memory_order order, memory_scope scope);
13524
14316
  float __ovld atomic_exchange_explicit(volatile atomic_float *object, float desired, memory_order order, memory_scope scope);
@@ -13529,16 +14321,35 @@ double __ovld atomic_exchange_explicit(volatile atomic_double *object, double de
13529
14321
  long __ovld atomic_exchange_explicit(volatile atomic_long *object, long desired, memory_order order, memory_scope scope);
13530
14322
  ulong __ovld atomic_exchange_explicit(volatile atomic_ulong *object, ulong desired, memory_order order, memory_scope scope);
13531
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)
13532
14343
 
13533
14344
  // atomic_compare_exchange_strong() and atomic_compare_exchange_weak()
13534
14345
  #if defined(__opencl_c_atomic_order_seq_cst) && defined(__opencl_c_atomic_scope_device)
14346
+ #if defined(__opencl_c_generic_address_space)
13535
14347
  bool __ovld atomic_compare_exchange_strong(volatile atomic_int *object, int *expected, int desired);
13536
14348
  bool __ovld atomic_compare_exchange_strong(volatile atomic_uint *object, uint *expected, uint desired);
13537
14349
  bool __ovld atomic_compare_exchange_weak(volatile atomic_int *object, int *expected, int desired);
13538
14350
  bool __ovld atomic_compare_exchange_weak(volatile atomic_uint *object, uint *expected, uint desired);
13539
14351
  bool __ovld atomic_compare_exchange_strong(volatile atomic_float *object, float *expected, float desired);
13540
14352
  bool __ovld atomic_compare_exchange_weak(volatile atomic_float *object, float *expected, float desired);
13541
-
13542
14353
  #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13543
14354
  #ifdef cl_khr_fp64
13544
14355
  bool __ovld atomic_compare_exchange_strong(volatile atomic_double *object, double *expected, double desired);
@@ -13549,8 +14360,88 @@ bool __ovld atomic_compare_exchange_weak(volatile atomic_long *object, long *exp
13549
14360
  bool __ovld atomic_compare_exchange_strong(volatile atomic_ulong *object, ulong *expected, ulong desired);
13550
14361
  bool __ovld atomic_compare_exchange_weak(volatile atomic_ulong *object, ulong *expected, ulong desired);
13551
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)
13552
14442
  #endif
13553
14443
 
14444
+ #if defined(__opencl_c_generic_address_space)
13554
14445
  bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_int *object, int *expected,
13555
14446
  int desired, memory_order success, memory_order failure);
13556
14447
  bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_uint *object, uint *expected,
@@ -13579,7 +14470,159 @@ bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_ulong *objec
13579
14470
  bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_ulong *object, ulong *expected,
13580
14471
  ulong desired, memory_order success, memory_order failure);
13581
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)
13582
14624
 
14625
+ #if defined(__opencl_c_generic_address_space)
13583
14626
  bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_int *object, int *expected,
13584
14627
  int desired, memory_order success, memory_order failure, memory_scope scope);
13585
14628
  bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_uint *object, uint *expected,
@@ -13608,20 +14651,195 @@ bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_ulong *objec
13608
14651
  bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_ulong *object, ulong *expected,
13609
14652
  ulong desired, memory_order success, memory_order failure, memory_scope scope);
13610
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)
13611
14805
 
13612
14806
  // atomic_flag_test_and_set() and atomic_flag_clear()
13613
14807
  #if defined(__opencl_c_atomic_order_seq_cst) && defined(__opencl_c_atomic_scope_device)
14808
+ #if defined(__opencl_c_generic_address_space)
13614
14809
  bool __ovld atomic_flag_test_and_set(volatile atomic_flag *object);
13615
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)
13616
14818
  #endif
13617
14819
 
13618
14820
  #if defined(__opencl_c_atomic_scope_device)
14821
+ #if defined(__opencl_c_generic_address_space)
13619
14822
  bool __ovld atomic_flag_test_and_set_explicit(volatile atomic_flag *object, memory_order order);
13620
14823
  void __ovld atomic_flag_clear_explicit(volatile atomic_flag *object, memory_order order);
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)
13621
14831
  #endif
13622
14832
 
14833
+ #if defined(__opencl_c_generic_address_space)
13623
14834
  bool __ovld atomic_flag_test_and_set_explicit(volatile atomic_flag *object, memory_order order, memory_scope scope);
13624
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)
13625
14843
  #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
13626
14844
 
13627
14845
  // OpenCL v1.1 s6.11.12, v1.2 s6.12.12, v2.0 s6.13.12 - Miscellaneous Vector Functions
@@ -14399,7 +15617,7 @@ half4 __purefn __ovld read_imageh(read_only image1d_buffer_t image, int coord);
14399
15617
  #endif //cl_khr_fp16
14400
15618
 
14401
15619
  // Image read functions for read_write images
14402
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
15620
+ #if defined(__opencl_c_read_write_images)
14403
15621
  float4 __purefn __ovld read_imagef(read_write image1d_t image, int coord);
14404
15622
  int4 __purefn __ovld read_imagei(read_write image1d_t image, int coord);
14405
15623
  uint4 __purefn __ovld read_imageui(read_write image1d_t image, int coord);
@@ -14442,7 +15660,6 @@ float __purefn __ovld read_imagef(read_write image2d_msaa_depth_t image, int2 co
14442
15660
  float __purefn __ovld read_imagef(read_write image2d_array_msaa_depth_t image, int4 coord, int sample);
14443
15661
  #endif //cl_khr_gl_msaa_sharing
14444
15662
 
14445
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
14446
15663
  #ifdef cl_khr_mipmap_image
14447
15664
  float4 __purefn __ovld read_imagef(read_write image1d_t image, sampler_t sampler, float coord, float lod);
14448
15665
  int4 __purefn __ovld read_imagei(read_write image1d_t image, sampler_t sampler, float coord, float lod);
@@ -14493,7 +15710,6 @@ int4 __purefn __ovld read_imagei(read_write image3d_t image, sampler_t sampler,
14493
15710
  uint4 __purefn __ovld read_imageui(read_write image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY);
14494
15711
 
14495
15712
  #endif //cl_khr_mipmap_image
14496
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
14497
15713
 
14498
15714
  // Image read functions returning half4 type
14499
15715
  #ifdef cl_khr_fp16
@@ -14504,7 +15720,7 @@ half4 __purefn __ovld read_imageh(read_write image1d_array_t image, int2 coord);
14504
15720
  half4 __purefn __ovld read_imageh(read_write image2d_array_t image, int4 coord);
14505
15721
  half4 __purefn __ovld read_imageh(read_write image1d_buffer_t image, int coord);
14506
15722
  #endif //cl_khr_fp16
14507
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
15723
+ #endif //defined(__opencl_c_read_write_images)
14508
15724
 
14509
15725
  /**
14510
15726
  * Write color value to location specified by coordinate
@@ -14648,7 +15864,7 @@ void __ovld write_imageh(write_only image1d_buffer_t image, int coord, half4 col
14648
15864
  #endif //cl_khr_fp16
14649
15865
 
14650
15866
  // Image write functions for read_write images
14651
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
15867
+ #if defined(__opencl_c_read_write_images)
14652
15868
  void __ovld write_imagef(read_write image2d_t image, int2 coord, float4 color);
14653
15869
  void __ovld write_imagei(read_write image2d_t image, int2 coord, int4 color);
14654
15870
  void __ovld write_imageui(read_write image2d_t image, int2 coord, uint4 color);
@@ -14680,7 +15896,6 @@ void __ovld write_imagef(read_write image2d_depth_t image, int2 coord, float col
14680
15896
  void __ovld write_imagef(read_write image2d_array_depth_t image, int4 coord, float color);
14681
15897
  #endif //cl_khr_depth_images
14682
15898
 
14683
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
14684
15899
  #if defined(cl_khr_mipmap_image_writes)
14685
15900
  void __ovld write_imagef(read_write image1d_t image, int coord, int lod, float4 color);
14686
15901
  void __ovld write_imagei(read_write image1d_t image, int coord, int lod, int4 color);
@@ -14708,7 +15923,6 @@ void __ovld write_imageui(read_write image3d_t image, int4 coord, int lod, uint4
14708
15923
  #endif //cl_khr_3d_image_writes
14709
15924
 
14710
15925
  #endif //cl_khr_mipmap_image_writes
14711
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
14712
15926
 
14713
15927
  // Image write functions for half4 type
14714
15928
  #ifdef cl_khr_fp16
@@ -14721,7 +15935,7 @@ void __ovld write_imageh(read_write image1d_array_t image, int2 coord, half4 col
14721
15935
  void __ovld write_imageh(read_write image2d_array_t image, int4 coord, half4 color);
14722
15936
  void __ovld write_imageh(read_write image1d_buffer_t image, int coord, half4 color);
14723
15937
  #endif //cl_khr_fp16
14724
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
15938
+ #endif //defined(__opencl_c_read_write_images)
14725
15939
 
14726
15940
  // Note: In OpenCL v1.0/1.1/1.2, image argument of image query builtin functions does not have
14727
15941
  // access qualifier, which by default assume read_only access qualifier. Image query builtin
@@ -14769,7 +15983,7 @@ int __ovld __cnfn get_image_width(write_only image2d_array_msaa_t image);
14769
15983
  int __ovld __cnfn get_image_width(write_only image2d_array_msaa_depth_t image);
14770
15984
  #endif //cl_khr_gl_msaa_sharing
14771
15985
 
14772
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
15986
+ #if defined(__opencl_c_read_write_images)
14773
15987
  int __ovld __cnfn get_image_width(read_write image1d_t image);
14774
15988
  int __ovld __cnfn get_image_width(read_write image1d_buffer_t image);
14775
15989
  int __ovld __cnfn get_image_width(read_write image2d_t image);
@@ -14786,7 +16000,7 @@ int __ovld __cnfn get_image_width(read_write image2d_msaa_depth_t image);
14786
16000
  int __ovld __cnfn get_image_width(read_write image2d_array_msaa_t image);
14787
16001
  int __ovld __cnfn get_image_width(read_write image2d_array_msaa_depth_t image);
14788
16002
  #endif //cl_khr_gl_msaa_sharing
14789
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16003
+ #endif //defined(__opencl_c_read_write_images)
14790
16004
 
14791
16005
  /**
14792
16006
  * Return the image height in pixels.
@@ -14821,7 +16035,7 @@ int __ovld __cnfn get_image_height(write_only image2d_array_msaa_t image);
14821
16035
  int __ovld __cnfn get_image_height(write_only image2d_array_msaa_depth_t image);
14822
16036
  #endif //cl_khr_gl_msaa_sharing
14823
16037
 
14824
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16038
+ #if defined(__opencl_c_read_write_images)
14825
16039
  int __ovld __cnfn get_image_height(read_write image2d_t image);
14826
16040
  int __ovld __cnfn get_image_height(read_write image3d_t image);
14827
16041
  int __ovld __cnfn get_image_height(read_write image2d_array_t image);
@@ -14835,7 +16049,7 @@ int __ovld __cnfn get_image_height(read_write image2d_msaa_depth_t image);
14835
16049
  int __ovld __cnfn get_image_height(read_write image2d_array_msaa_t image);
14836
16050
  int __ovld __cnfn get_image_height(read_write image2d_array_msaa_depth_t image);
14837
16051
  #endif //cl_khr_gl_msaa_sharing
14838
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16052
+ #endif //defined(__opencl_c_read_write_images)
14839
16053
 
14840
16054
  /**
14841
16055
  * Return the image depth in pixels.
@@ -14846,9 +16060,9 @@ int __ovld __cnfn get_image_depth(read_only image3d_t image);
14846
16060
  int __ovld __cnfn get_image_depth(write_only image3d_t image);
14847
16061
  #endif
14848
16062
 
14849
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16063
+ #if defined(__opencl_c_read_write_images)
14850
16064
  int __ovld __cnfn get_image_depth(read_write image3d_t image);
14851
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16065
+ #endif //defined(__opencl_c_read_write_images)
14852
16066
 
14853
16067
  // OpenCL Extension v2.0 s9.18 - Mipmaps
14854
16068
  #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
@@ -14867,9 +16081,11 @@ int __ovld get_image_num_mip_levels(write_only image2d_t image);
14867
16081
  int __ovld get_image_num_mip_levels(write_only image3d_t image);
14868
16082
  #endif
14869
16083
 
16084
+ #if defined(__opencl_c_read_write_images)
14870
16085
  int __ovld get_image_num_mip_levels(read_write image1d_t image);
14871
16086
  int __ovld get_image_num_mip_levels(read_write image2d_t image);
14872
16087
  int __ovld get_image_num_mip_levels(read_write image3d_t image);
16088
+ #endif //defined(__opencl_c_read_write_images)
14873
16089
 
14874
16090
  int __ovld get_image_num_mip_levels(read_only image1d_array_t image);
14875
16091
  int __ovld get_image_num_mip_levels(read_only image2d_array_t image);
@@ -14881,10 +16097,12 @@ int __ovld get_image_num_mip_levels(write_only image2d_array_t image);
14881
16097
  int __ovld get_image_num_mip_levels(write_only image2d_array_depth_t image);
14882
16098
  int __ovld get_image_num_mip_levels(write_only image2d_depth_t image);
14883
16099
 
16100
+ #if defined(__opencl_c_read_write_images)
14884
16101
  int __ovld get_image_num_mip_levels(read_write image1d_array_t image);
14885
16102
  int __ovld get_image_num_mip_levels(read_write image2d_array_t image);
14886
16103
  int __ovld get_image_num_mip_levels(read_write image2d_array_depth_t image);
14887
16104
  int __ovld get_image_num_mip_levels(read_write image2d_depth_t image);
16105
+ #endif //defined(__opencl_c_read_write_images)
14888
16106
 
14889
16107
  #endif //cl_khr_mipmap_image
14890
16108
  #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
@@ -14944,7 +16162,7 @@ int __ovld __cnfn get_image_channel_data_type(write_only image2d_array_msaa_t im
14944
16162
  int __ovld __cnfn get_image_channel_data_type(write_only image2d_array_msaa_depth_t image);
14945
16163
  #endif //cl_khr_gl_msaa_sharing
14946
16164
 
14947
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16165
+ #if defined(__opencl_c_read_write_images)
14948
16166
  int __ovld __cnfn get_image_channel_data_type(read_write image1d_t image);
14949
16167
  int __ovld __cnfn get_image_channel_data_type(read_write image1d_buffer_t image);
14950
16168
  int __ovld __cnfn get_image_channel_data_type(read_write image2d_t image);
@@ -14961,7 +16179,7 @@ int __ovld __cnfn get_image_channel_data_type(read_write image2d_msaa_depth_t im
14961
16179
  int __ovld __cnfn get_image_channel_data_type(read_write image2d_array_msaa_t image);
14962
16180
  int __ovld __cnfn get_image_channel_data_type(read_write image2d_array_msaa_depth_t image);
14963
16181
  #endif //cl_khr_gl_msaa_sharing
14964
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16182
+ #endif //defined(__opencl_c_read_write_images)
14965
16183
 
14966
16184
  /**
14967
16185
  * Return the image channel order. Valid values are:
@@ -15016,7 +16234,7 @@ int __ovld __cnfn get_image_channel_order(write_only image2d_array_msaa_t image)
15016
16234
  int __ovld __cnfn get_image_channel_order(write_only image2d_array_msaa_depth_t image);
15017
16235
  #endif //cl_khr_gl_msaa_sharing
15018
16236
 
15019
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16237
+ #if defined(__opencl_c_read_write_images)
15020
16238
  int __ovld __cnfn get_image_channel_order(read_write image1d_t image);
15021
16239
  int __ovld __cnfn get_image_channel_order(read_write image1d_buffer_t image);
15022
16240
  int __ovld __cnfn get_image_channel_order(read_write image2d_t image);
@@ -15033,7 +16251,7 @@ int __ovld __cnfn get_image_channel_order(read_write image2d_msaa_depth_t image)
15033
16251
  int __ovld __cnfn get_image_channel_order(read_write image2d_array_msaa_t image);
15034
16252
  int __ovld __cnfn get_image_channel_order(read_write image2d_array_msaa_depth_t image);
15035
16253
  #endif //cl_khr_gl_msaa_sharing
15036
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16254
+ #endif //defined(__opencl_c_read_write_images)
15037
16255
 
15038
16256
  /**
15039
16257
  * Return the 2D image width and height as an int2
@@ -15066,7 +16284,7 @@ int2 __ovld __cnfn get_image_dim(write_only image2d_array_msaa_t image);
15066
16284
  int2 __ovld __cnfn get_image_dim(write_only image2d_array_msaa_depth_t image);
15067
16285
  #endif //cl_khr_gl_msaa_sharing
15068
16286
 
15069
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16287
+ #if defined(__opencl_c_read_write_images)
15070
16288
  int2 __ovld __cnfn get_image_dim(read_write image2d_t image);
15071
16289
  int2 __ovld __cnfn get_image_dim(read_write image2d_array_t image);
15072
16290
  #ifdef cl_khr_depth_images
@@ -15079,7 +16297,7 @@ int2 __ovld __cnfn get_image_dim(read_write image2d_msaa_depth_t image);
15079
16297
  int2 __ovld __cnfn get_image_dim(read_write image2d_array_msaa_t image);
15080
16298
  int2 __ovld __cnfn get_image_dim(read_write image2d_array_msaa_depth_t image);
15081
16299
  #endif //cl_khr_gl_msaa_sharing
15082
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16300
+ #endif //defined(__opencl_c_read_write_images)
15083
16301
 
15084
16302
  /**
15085
16303
  * Return the 3D image width, height, and depth as an
@@ -15091,9 +16309,9 @@ int4 __ovld __cnfn get_image_dim(read_only image3d_t image);
15091
16309
  #ifdef cl_khr_3d_image_writes
15092
16310
  int4 __ovld __cnfn get_image_dim(write_only image3d_t image);
15093
16311
  #endif
15094
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16312
+ #if defined(__opencl_c_read_write_images)
15095
16313
  int4 __ovld __cnfn get_image_dim(read_write image3d_t image);
15096
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16314
+ #endif //defined(__opencl_c_read_write_images)
15097
16315
 
15098
16316
  /**
15099
16317
  * Return the image array size.
@@ -15119,7 +16337,7 @@ size_t __ovld __cnfn get_image_array_size(write_only image2d_array_msaa_t image_
15119
16337
  size_t __ovld __cnfn get_image_array_size(write_only image2d_array_msaa_depth_t image_array);
15120
16338
  #endif //cl_khr_gl_msaa_sharing
15121
16339
 
15122
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16340
+ #if defined(__opencl_c_read_write_images)
15123
16341
  size_t __ovld __cnfn get_image_array_size(read_write image1d_array_t image_array);
15124
16342
  size_t __ovld __cnfn get_image_array_size(read_write image2d_array_t image_array);
15125
16343
  #ifdef cl_khr_depth_images
@@ -15129,7 +16347,7 @@ size_t __ovld __cnfn get_image_array_size(read_write image2d_array_depth_t image
15129
16347
  size_t __ovld __cnfn get_image_array_size(read_write image2d_array_msaa_t image_array);
15130
16348
  size_t __ovld __cnfn get_image_array_size(read_write image2d_array_msaa_depth_t image_array);
15131
16349
  #endif //cl_khr_gl_msaa_sharing
15132
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16350
+ #endif //defined(__opencl_c_read_write_images)
15133
16351
 
15134
16352
  /**
15135
16353
  * Return the number of samples associated with image
@@ -15145,17 +16363,17 @@ int __ovld get_image_num_samples(write_only image2d_msaa_depth_t image);
15145
16363
  int __ovld get_image_num_samples(write_only image2d_array_msaa_t image);
15146
16364
  int __ovld get_image_num_samples(write_only image2d_array_msaa_depth_t image);
15147
16365
 
15148
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16366
+ #if defined(__opencl_c_read_write_images)
15149
16367
  int __ovld get_image_num_samples(read_write image2d_msaa_t image);
15150
16368
  int __ovld get_image_num_samples(read_write image2d_msaa_depth_t image);
15151
16369
  int __ovld get_image_num_samples(read_write image2d_array_msaa_t image);
15152
16370
  int __ovld get_image_num_samples(read_write image2d_array_msaa_depth_t image);
15153
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16371
+ #endif //defined(__opencl_c_read_write_images)
15154
16372
  #endif
15155
16373
 
15156
16374
  // OpenCL v2.0 s6.13.15 - Work-group Functions
15157
16375
 
15158
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16376
+ #if defined(__opencl_c_work_group_collective_functions)
15159
16377
  int __ovld __conv work_group_all(int predicate);
15160
16378
  int __ovld __conv work_group_any(int predicate);
15161
16379
 
@@ -15253,17 +16471,18 @@ double __ovld __conv work_group_scan_inclusive_min(double x);
15253
16471
  double __ovld __conv work_group_scan_inclusive_max(double x);
15254
16472
  #endif //cl_khr_fp64
15255
16473
 
15256
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16474
+ #endif //defined(__opencl_c_work_group_collective_functions)
15257
16475
 
15258
16476
  // OpenCL v2.0 s6.13.16 - Pipe Functions
15259
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16477
+ #if defined(__opencl_c_pipes)
15260
16478
  bool __ovld is_valid_reserve_id(reserve_id_t reserve_id);
15261
- #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16479
+ #endif //defined(__opencl_c_pipes)
15262
16480
 
15263
16481
 
15264
16482
  // OpenCL v2.0 s6.13.17 - Enqueue Kernels
15265
16483
  #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
15266
16484
 
16485
+ #ifdef __opencl_c_device_enqueue
15267
16486
  ndrange_t __ovld ndrange_1D(size_t);
15268
16487
  ndrange_t __ovld ndrange_1D(size_t, size_t);
15269
16488
  ndrange_t __ovld ndrange_1D(size_t, size_t, size_t);
@@ -15291,11 +16510,12 @@ bool __ovld is_valid_event (clk_event_t event);
15291
16510
  void __ovld capture_event_profiling_info(clk_event_t, clk_profiling_info, __global void* value);
15292
16511
 
15293
16512
  queue_t __ovld get_default_queue(void);
16513
+ #endif //__opencl_c_device_enqueue
15294
16514
  #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
15295
16515
 
15296
16516
  // OpenCL Extension v2.0 s9.17 - Sub-groups
15297
16517
 
15298
- #if defined(cl_intel_subgroups) || defined(cl_khr_subgroups)
16518
+ #if defined(cl_intel_subgroups) || defined(cl_khr_subgroups) || defined(__opencl_c_subgroups)
15299
16519
  // Shared Sub Group Functions
15300
16520
  uint __ovld get_sub_group_size(void);
15301
16521
  uint __ovld get_max_sub_group_size(void);
@@ -15394,7 +16614,7 @@ double __ovld __conv sub_group_scan_inclusive_min(double x);
15394
16614
  double __ovld __conv sub_group_scan_inclusive_max(double x);
15395
16615
  #endif //cl_khr_fp64
15396
16616
 
15397
- #endif //cl_khr_subgroups cl_intel_subgroups
16617
+ #endif //cl_khr_subgroups cl_intel_subgroups __opencl_c_subgroups
15398
16618
 
15399
16619
  #if defined(cl_khr_subgroup_extended_types)
15400
16620
  char __ovld __conv sub_group_broadcast( char value, uint index );
@@ -16386,34 +17606,38 @@ uint16 __ovld __conv intel_sub_group_shuffle_xor( uint16 x, uint c );
16386
17606
  long __ovld __conv intel_sub_group_shuffle_xor( long x, uint c );
16387
17607
  ulong __ovld __conv intel_sub_group_shuffle_xor( ulong x, uint c );
16388
17608
 
17609
+ #if defined(__opencl_c_images)
16389
17610
  uint __ovld __conv intel_sub_group_block_read( read_only image2d_t image, int2 coord );
16390
17611
  uint2 __ovld __conv intel_sub_group_block_read2( read_only image2d_t image, int2 coord );
16391
17612
  uint4 __ovld __conv intel_sub_group_block_read4( read_only image2d_t image, int2 coord );
16392
17613
  uint8 __ovld __conv intel_sub_group_block_read8( read_only image2d_t image, int2 coord );
17614
+ #endif
16393
17615
 
16394
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
17616
+ #if defined(__opencl_c_read_write_images)
16395
17617
  uint __ovld __conv intel_sub_group_block_read(read_write image2d_t image, int2 coord);
16396
17618
  uint2 __ovld __conv intel_sub_group_block_read2(read_write image2d_t image, int2 coord);
16397
17619
  uint4 __ovld __conv intel_sub_group_block_read4(read_write image2d_t image, int2 coord);
16398
17620
  uint8 __ovld __conv intel_sub_group_block_read8(read_write image2d_t image, int2 coord);
16399
- #endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
17621
+ #endif // defined(__opencl_c_read_write_images)
16400
17622
 
16401
17623
  uint __ovld __conv intel_sub_group_block_read( const __global uint* p );
16402
17624
  uint2 __ovld __conv intel_sub_group_block_read2( const __global uint* p );
16403
17625
  uint4 __ovld __conv intel_sub_group_block_read4( const __global uint* p );
16404
17626
  uint8 __ovld __conv intel_sub_group_block_read8( const __global uint* p );
16405
17627
 
17628
+ #if defined(__opencl_c_images)
16406
17629
  void __ovld __conv intel_sub_group_block_write(write_only image2d_t image, int2 coord, uint data);
16407
17630
  void __ovld __conv intel_sub_group_block_write2(write_only image2d_t image, int2 coord, uint2 data);
16408
17631
  void __ovld __conv intel_sub_group_block_write4(write_only image2d_t image, int2 coord, uint4 data);
16409
17632
  void __ovld __conv intel_sub_group_block_write8(write_only image2d_t image, int2 coord, uint8 data);
17633
+ #endif // defined(__opencl_c_images)
16410
17634
 
16411
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
17635
+ #if defined(__opencl_c_read_write_images)
16412
17636
  void __ovld __conv intel_sub_group_block_write(read_write image2d_t image, int2 coord, uint data);
16413
17637
  void __ovld __conv intel_sub_group_block_write2(read_write image2d_t image, int2 coord, uint2 data);
16414
17638
  void __ovld __conv intel_sub_group_block_write4(read_write image2d_t image, int2 coord, uint4 data);
16415
17639
  void __ovld __conv intel_sub_group_block_write8(read_write image2d_t image, int2 coord, uint8 data);
16416
- #endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
17640
+ #endif // defined(__opencl_c_read_write_images)
16417
17641
 
16418
17642
  void __ovld __conv intel_sub_group_block_write( __global uint* p, uint data );
16419
17643
  void __ovld __conv intel_sub_group_block_write2( __global uint* p, uint2 data );
@@ -16526,68 +17750,76 @@ ushort __ovld __conv intel_sub_group_scan_inclusive_min( ushort x );
16526
17750
  short __ovld __conv intel_sub_group_scan_inclusive_max( short x );
16527
17751
  ushort __ovld __conv intel_sub_group_scan_inclusive_max( ushort x );
16528
17752
 
17753
+ #if defined(__opencl_c_images)
16529
17754
  uint __ovld __conv intel_sub_group_block_read_ui( read_only image2d_t image, int2 byte_coord );
16530
17755
  uint2 __ovld __conv intel_sub_group_block_read_ui2( read_only image2d_t image, int2 byte_coord );
16531
17756
  uint4 __ovld __conv intel_sub_group_block_read_ui4( read_only image2d_t image, int2 byte_coord );
16532
17757
  uint8 __ovld __conv intel_sub_group_block_read_ui8( read_only image2d_t image, int2 byte_coord );
17758
+ #endif // defined(__opencl_c_images)
16533
17759
 
16534
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
17760
+ #if defined(__opencl_c_read_write_images)
16535
17761
  uint __ovld __conv intel_sub_group_block_read_ui( read_write image2d_t image, int2 byte_coord );
16536
17762
  uint2 __ovld __conv intel_sub_group_block_read_ui2( read_write image2d_t image, int2 byte_coord );
16537
17763
  uint4 __ovld __conv intel_sub_group_block_read_ui4( read_write image2d_t image, int2 byte_coord );
16538
17764
  uint8 __ovld __conv intel_sub_group_block_read_ui8( read_write image2d_t image, int2 byte_coord );
16539
- #endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
17765
+ #endif // defined(__opencl_c_read_write_images)
16540
17766
 
16541
17767
  uint __ovld __conv intel_sub_group_block_read_ui( const __global uint* p );
16542
17768
  uint2 __ovld __conv intel_sub_group_block_read_ui2( const __global uint* p );
16543
17769
  uint4 __ovld __conv intel_sub_group_block_read_ui4( const __global uint* p );
16544
17770
  uint8 __ovld __conv intel_sub_group_block_read_ui8( const __global uint* p );
16545
17771
 
17772
+ #if defined(__opencl_c_images)
16546
17773
  void __ovld __conv intel_sub_group_block_write_ui( read_only image2d_t image, int2 byte_coord, uint data );
16547
17774
  void __ovld __conv intel_sub_group_block_write_ui2( read_only image2d_t image, int2 byte_coord, uint2 data );
16548
17775
  void __ovld __conv intel_sub_group_block_write_ui4( read_only image2d_t image, int2 byte_coord, uint4 data );
16549
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)
16550
17778
 
16551
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
17779
+ #if defined(__opencl_c_read_write_images)
16552
17780
  void __ovld __conv intel_sub_group_block_write_ui( read_write image2d_t image, int2 byte_coord, uint data );
16553
17781
  void __ovld __conv intel_sub_group_block_write_ui2( read_write image2d_t image, int2 byte_coord, uint2 data );
16554
17782
  void __ovld __conv intel_sub_group_block_write_ui4( read_write image2d_t image, int2 byte_coord, uint4 data );
16555
17783
  void __ovld __conv intel_sub_group_block_write_ui8( read_write image2d_t image, int2 byte_coord, uint8 data );
16556
- #endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
17784
+ #endif // defined(__opencl_c_read_write_images)
16557
17785
 
16558
17786
  void __ovld __conv intel_sub_group_block_write_ui( __global uint* p, uint data );
16559
17787
  void __ovld __conv intel_sub_group_block_write_ui2( __global uint* p, uint2 data );
16560
17788
  void __ovld __conv intel_sub_group_block_write_ui4( __global uint* p, uint4 data );
16561
17789
  void __ovld __conv intel_sub_group_block_write_ui8( __global uint* p, uint8 data );
16562
17790
 
17791
+ #if defined(__opencl_c_images)
16563
17792
  ushort __ovld __conv intel_sub_group_block_read_us( read_only image2d_t image, int2 coord );
16564
17793
  ushort2 __ovld __conv intel_sub_group_block_read_us2( read_only image2d_t image, int2 coord );
16565
17794
  ushort4 __ovld __conv intel_sub_group_block_read_us4( read_only image2d_t image, int2 coord );
16566
17795
  ushort8 __ovld __conv intel_sub_group_block_read_us8( read_only image2d_t image, int2 coord );
17796
+ #endif // defined(__opencl_c_images)
16567
17797
 
16568
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
17798
+ #if defined(__opencl_c_read_write_images)
16569
17799
  ushort __ovld __conv intel_sub_group_block_read_us(read_write image2d_t image, int2 coord);
16570
17800
  ushort2 __ovld __conv intel_sub_group_block_read_us2(read_write image2d_t image, int2 coord);
16571
17801
  ushort4 __ovld __conv intel_sub_group_block_read_us4(read_write image2d_t image, int2 coord);
16572
17802
  ushort8 __ovld __conv intel_sub_group_block_read_us8(read_write image2d_t image, int2 coord);
16573
- #endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
17803
+ #endif // defined(__opencl_c_read_write_images)
16574
17804
 
16575
17805
  ushort __ovld __conv intel_sub_group_block_read_us( const __global ushort* p );
16576
17806
  ushort2 __ovld __conv intel_sub_group_block_read_us2( const __global ushort* p );
16577
17807
  ushort4 __ovld __conv intel_sub_group_block_read_us4( const __global ushort* p );
16578
17808
  ushort8 __ovld __conv intel_sub_group_block_read_us8( const __global ushort* p );
16579
17809
 
17810
+ #if defined(__opencl_c_images)
16580
17811
  void __ovld __conv intel_sub_group_block_write_us(write_only image2d_t image, int2 coord, ushort data);
16581
17812
  void __ovld __conv intel_sub_group_block_write_us2(write_only image2d_t image, int2 coord, ushort2 data);
16582
17813
  void __ovld __conv intel_sub_group_block_write_us4(write_only image2d_t image, int2 coord, ushort4 data);
16583
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)
16584
17816
 
16585
- #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
17817
+ #if defined(__opencl_c_read_write_images)
16586
17818
  void __ovld __conv intel_sub_group_block_write_us(read_write image2d_t image, int2 coord, ushort data);
16587
17819
  void __ovld __conv intel_sub_group_block_write_us2(read_write image2d_t image, int2 coord, ushort2 data);
16588
17820
  void __ovld __conv intel_sub_group_block_write_us4(read_write image2d_t image, int2 coord, ushort4 data);
16589
17821
  void __ovld __conv intel_sub_group_block_write_us8(read_write image2d_t image, int2 coord, ushort8 data);
16590
- #endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
17822
+ #endif // defined(__opencl_c_read_write_images)
16591
17823
 
16592
17824
  void __ovld __conv intel_sub_group_block_write_us( __global ushort* p, ushort data );
16593
17825
  void __ovld __conv intel_sub_group_block_write_us2( __global ushort* p, ushort2 data );
@@ -16705,6 +17937,7 @@ short2 __ovld intel_sub_group_avc_ime_adjust_ref_offset(
16705
17937
  short2 ref_offset, ushort2 src_coord, ushort2 ref_window_size,
16706
17938
  ushort2 image_size);
16707
17939
 
17940
+ #if defined(__opencl_c_images)
16708
17941
  intel_sub_group_avc_ime_result_t __ovld
16709
17942
  intel_sub_group_avc_ime_evaluate_with_single_reference(
16710
17943
  read_only image2d_t src_image, read_only image2d_t ref_image,
@@ -16745,6 +17978,7 @@ intel_sub_group_avc_ime_evaluate_with_dual_reference_streaminout(
16745
17978
  read_only image2d_t bwd_ref_image, sampler_t vme_media_sampler,
16746
17979
  intel_sub_group_avc_ime_payload_t payload,
16747
17980
  intel_sub_group_avc_ime_dual_reference_streamin_t streamin_components);
17981
+ #endif
16748
17982
 
16749
17983
  intel_sub_group_avc_ime_single_reference_streamin_t __ovld
16750
17984
  intel_sub_group_avc_ime_get_single_reference_streamin(
@@ -16809,6 +18043,7 @@ intel_sub_group_avc_ref_payload_t __ovld
16809
18043
  intel_sub_group_avc_ref_set_bilinear_filter_enable(
16810
18044
  intel_sub_group_avc_ref_payload_t payload);
16811
18045
 
18046
+ #if defined(__opencl_c_images)
16812
18047
  intel_sub_group_avc_ref_result_t __ovld
16813
18048
  intel_sub_group_avc_ref_evaluate_with_single_reference(
16814
18049
  read_only image2d_t src_image, read_only image2d_t ref_image,
@@ -16827,6 +18062,7 @@ intel_sub_group_avc_ref_evaluate_with_multi_reference(
16827
18062
  read_only image2d_t src_image, uint packed_reference_ids,
16828
18063
  uchar packed_reference_field_polarities, sampler_t vme_media_sampler,
16829
18064
  intel_sub_group_avc_ref_payload_t payload);
18065
+ #endif //defined(__opencl_c_images)
16830
18066
 
16831
18067
  // SIC built-in functions
16832
18068
  intel_sub_group_avc_sic_payload_t __ovld
@@ -16877,6 +18113,7 @@ intel_sub_group_avc_sic_set_block_based_raw_skip_sad(
16877
18113
  uchar block_based_skip_type,
16878
18114
  intel_sub_group_avc_sic_payload_t payload);
16879
18115
 
18116
+ #if defined(__opencl_c_images)
16880
18117
  intel_sub_group_avc_sic_result_t __ovld
16881
18118
  intel_sub_group_avc_sic_evaluate_ipe(
16882
18119
  read_only image2d_t src_image, sampler_t vme_media_sampler,
@@ -16899,6 +18136,7 @@ intel_sub_group_avc_sic_evaluate_with_multi_reference(
16899
18136
  read_only image2d_t src_image, uint packed_reference_ids,
16900
18137
  uchar packed_reference_field_polarities, sampler_t vme_media_sampler,
16901
18138
  intel_sub_group_avc_sic_payload_t payload);
18139
+ #endif //defined(__opencl_c_images)
16902
18140
 
16903
18141
  uchar __ovld intel_sub_group_avc_sic_get_ipe_luma_shape(
16904
18142
  intel_sub_group_avc_sic_result_t result);
@@ -17307,6 +18545,8 @@ int __ovld arm_dot_acc_sat(char4 a, char4 b, int c);
17307
18545
  // Disable any extensions we may have enabled previously.
17308
18546
  #pragma OPENCL EXTENSION all : disable
17309
18547
 
18548
+ #undef __opencl_c_named_address_space_builtins
18549
+
17310
18550
  #undef __cnfn
17311
18551
  #undef __ovld
17312
18552
  #endif //_OPENCL_H_