@cpp-linter/clang-tidy-win32-x64 19.1.0 → 23.1.3

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 (320) hide show
  1. package/README.md +2 -2
  2. package/bin/clang-tidy.exe +2 -2
  3. package/lib/clang/23/include/__clang_cuda_complex_builtins.h +236 -0
  4. package/lib/clang/{19 → 23}/include/__clang_cuda_device_functions.h +15 -1
  5. package/lib/clang/{19 → 23}/include/__clang_cuda_intrinsics.h +288 -20
  6. package/lib/clang/{19 → 23}/include/__clang_cuda_math.h +5 -0
  7. package/lib/clang/{19 → 23}/include/__clang_cuda_math_forward_declares.h +5 -0
  8. package/lib/clang/{19 → 23}/include/__clang_cuda_runtime_wrapper.h +28 -5
  9. package/lib/clang/{19 → 23}/include/__clang_cuda_texture_intrinsics.h +437 -2
  10. package/lib/clang/23/include/__clang_gpu_builtin_vars.h +71 -0
  11. package/lib/clang/23/include/__clang_gpu_device_functions.h +411 -0
  12. package/lib/clang/23/include/__clang_gpu_intrinsics.h +242 -0
  13. package/lib/clang/{19 → 23}/include/__clang_hip_cmath.h +15 -9
  14. package/lib/clang/{19 → 23}/include/__clang_hip_libdevice_declares.h +24 -139
  15. package/lib/clang/{19 → 23}/include/__clang_hip_math.h +115 -34
  16. package/lib/clang/{19 → 23}/include/__clang_hip_runtime_wrapper.h +12 -1
  17. package/lib/clang/23/include/__clang_spirv_builtins.h +217 -0
  18. package/lib/clang/23/include/__clang_spirv_libdevice_declares.h +170 -0
  19. package/lib/clang/23/include/__clang_spirv_math.h +719 -0
  20. package/lib/clang/{19/include/float.h → 23/include/__float_float.h} +14 -34
  21. package/lib/clang/23/include/__float_header_macro.h +12 -0
  22. package/lib/clang/23/include/__float_infinity_nan.h +20 -0
  23. package/lib/clang/{19 → 23}/include/__stdarg_va_arg.h +2 -2
  24. package/lib/clang/{19 → 23}/include/adcintrin.h +5 -0
  25. package/lib/clang/{19 → 23}/include/adxintrin.h +5 -0
  26. package/lib/clang/{19 → 23}/include/altivec.h +169 -96
  27. package/lib/clang/23/include/amdgpuintrin.h +164 -0
  28. package/lib/clang/23/include/amdhsa_abi.h +83 -0
  29. package/lib/clang/23/include/amo.h +220 -0
  30. package/lib/clang/23/include/amxavx512intrin.h +596 -0
  31. package/lib/clang/{19 → 23}/include/amxcomplexintrin.h +4 -6
  32. package/lib/clang/{19 → 23}/include/amxfp16intrin.h +35 -0
  33. package/lib/clang/23/include/amxfp8intrin.h +230 -0
  34. package/lib/clang/{19 → 23}/include/amxintrin.h +3 -35
  35. package/lib/clang/23/include/amxmovrsintrin.h +48 -0
  36. package/lib/clang/23/include/andes_vector.h +21 -0
  37. package/lib/clang/23/include/arm64_neon.h +21 -0
  38. package/lib/clang/{19 → 23}/include/arm64intr.h +10 -0
  39. package/lib/clang/{19 → 23}/include/arm_acle.h +67 -89
  40. package/lib/clang/{19 → 23}/include/arm_fp16.h +89 -89
  41. package/lib/clang/{19 → 23}/include/arm_neon.h +43614 -38901
  42. package/lib/clang/{19 → 23}/include/arm_sme.h +1028 -94
  43. package/lib/clang/{19 → 23}/include/arm_sve.h +7331 -5170
  44. package/lib/clang/{19 → 23}/include/arm_vector_types.h +87 -0
  45. package/lib/clang/23/include/avx10_2_512bf16intrin.h +568 -0
  46. package/lib/clang/23/include/avx10_2_512convertintrin.h +322 -0
  47. package/lib/clang/23/include/avx10_2_512minmaxintrin.h +127 -0
  48. package/lib/clang/23/include/avx10_2_512niintrin.h +314 -0
  49. package/lib/clang/23/include/avx10_2_512satcvtdsintrin.h +307 -0
  50. package/lib/clang/23/include/avx10_2_512satcvtintrin.h +301 -0
  51. package/lib/clang/23/include/avx10_2bf16intrin.h +1094 -0
  52. package/lib/clang/23/include/avx10_2convertintrin.h +3257 -0
  53. package/lib/clang/23/include/avx10_2copyintrin.h +66 -0
  54. package/lib/clang/23/include/avx10_2minmaxintrin.h +232 -0
  55. package/lib/clang/23/include/avx10_2niintrin.h +409 -0
  56. package/lib/clang/23/include/avx10_2satcvtdsintrin.h +376 -0
  57. package/lib/clang/23/include/avx10_2satcvtintrin.h +312 -0
  58. package/lib/clang/{19 → 23}/include/avx2intrin.h +284 -378
  59. package/lib/clang/{19 → 23}/include/avx512bf16intrin.h +25 -16
  60. package/lib/clang/{19 → 23}/include/avx512bitalgintrin.h +21 -32
  61. package/lib/clang/23/include/avx512bmmintrin.h +174 -0
  62. package/lib/clang/23/include/avx512bmmvlintrin.h +245 -0
  63. package/lib/clang/{19 → 23}/include/avx512bwintrin.h +405 -534
  64. package/lib/clang/23/include/avx512cdintrin.h +112 -0
  65. package/lib/clang/{19 → 23}/include/avx512dqintrin.h +132 -161
  66. package/lib/clang/{19 → 23}/include/avx512fintrin.h +1068 -1496
  67. package/lib/clang/{19 → 23}/include/avx512fp16intrin.h +126 -129
  68. package/lib/clang/23/include/avx512ifmaintrin.h +68 -0
  69. package/lib/clang/23/include/avx512ifmavlintrin.h +138 -0
  70. package/lib/clang/{19 → 23}/include/avx512vbmi2intrin.h +55 -48
  71. package/lib/clang/{19 → 23}/include/avx512vbmiintrin.h +19 -27
  72. package/lib/clang/{19 → 23}/include/avx512vbmivlintrin.h +35 -49
  73. package/lib/clang/{19 → 23}/include/avx512vlbf16intrin.h +32 -22
  74. package/lib/clang/{19 → 23}/include/avx512vlbitalgintrin.h +41 -57
  75. package/lib/clang/{19 → 23}/include/avx512vlbwintrin.h +494 -609
  76. package/lib/clang/23/include/avx512vlcdintrin.h +202 -0
  77. package/lib/clang/{19 → 23}/include/avx512vldqintrin.h +110 -127
  78. package/lib/clang/{19 → 23}/include/avx512vlfp16intrin.h +130 -111
  79. package/lib/clang/{19 → 23}/include/avx512vlintrin.h +1025 -1395
  80. package/lib/clang/{19 → 23}/include/avx512vlvbmi2intrin.h +102 -95
  81. package/lib/clang/{19 → 23}/include/avx512vlvnniintrin.h +50 -52
  82. package/lib/clang/{19 → 23}/include/avx512vlvp2intersectintrin.h +2 -2
  83. package/lib/clang/{19 → 23}/include/avx512vnniintrin.h +42 -45
  84. package/lib/clang/{19 → 23}/include/avx512vp2intersectintrin.h +2 -3
  85. package/lib/clang/{19 → 23}/include/avx512vpopcntdqintrin.h +10 -4
  86. package/lib/clang/{19 → 23}/include/avx512vpopcntdqvlintrin.h +20 -10
  87. package/lib/clang/{19 → 23}/include/avxifmaintrin.h +16 -0
  88. package/lib/clang/{19 → 23}/include/avxintrin.h +186 -248
  89. package/lib/clang/{19 → 23}/include/avxvnniint16intrin.h +130 -152
  90. package/lib/clang/{19 → 23}/include/avxvnniint8intrin.h +68 -85
  91. package/lib/clang/{19 → 23}/include/avxvnniintrin.h +39 -26
  92. package/lib/clang/{19 → 23}/include/bmi2intrin.h +15 -17
  93. package/lib/clang/{19 → 23}/include/bmiintrin.h +31 -41
  94. package/lib/clang/{19 → 23}/include/cmpccxaddintrin.h +1 -1
  95. package/lib/clang/{19 → 23}/include/cpuid.h +137 -37
  96. package/lib/clang/{19 → 23}/include/crc32intrin.h +10 -8
  97. package/lib/clang/23/include/cuda_wrappers/__utility/declval.h +28 -0
  98. package/lib/clang/23/include/cuda_wrappers/bits/c++config.h +61 -0
  99. package/lib/clang/23/include/cuda_wrappers/cmath +44 -0
  100. package/lib/clang/{19 → 23}/include/cuda_wrappers/new +2 -0
  101. package/lib/clang/{19 → 23}/include/emmintrin.h +306 -272
  102. package/lib/clang/23/include/endian.h +91 -0
  103. package/lib/clang/{19 → 23}/include/f16cintrin.h +23 -9
  104. package/lib/clang/23/include/float.h +48 -0
  105. package/lib/clang/23/include/fma4intrin.h +220 -0
  106. package/lib/clang/{19 → 23}/include/fmaintrin.h +96 -66
  107. package/lib/clang/{19 → 23}/include/gfniintrin.h +39 -12
  108. package/lib/clang/23/include/gpuintrin.h +348 -0
  109. package/lib/clang/{19 → 23}/include/hexagon_types.h +31 -24
  110. package/lib/clang/23/include/hlsl/hlsl_alias_intrinsics.h +222 -0
  111. package/lib/clang/23/include/hlsl/hlsl_alias_intrinsics_gen.inc +3869 -0
  112. package/lib/clang/23/include/hlsl/hlsl_basic_types.h +370 -0
  113. package/lib/clang/23/include/hlsl/hlsl_compat_overloads.h +559 -0
  114. package/lib/clang/23/include/hlsl/hlsl_detail.h +56 -0
  115. package/lib/clang/23/include/hlsl/hlsl_inline_intrinsics_gen.inc +546 -0
  116. package/lib/clang/23/include/hlsl/hlsl_intrinsic_helpers.h +170 -0
  117. package/lib/clang/23/include/hlsl/hlsl_intrinsics.h +331 -0
  118. package/lib/clang/23/include/hlsl/hlsl_spirv.h +28 -0
  119. package/lib/clang/23/include/hlsl.h +38 -0
  120. package/lib/clang/{19 → 23}/include/hvx_hexagon_protos.h +1041 -803
  121. package/lib/clang/{19 → 23}/include/immintrin.h +35 -185
  122. package/lib/clang/{19 → 23}/include/intrin.h +62 -21
  123. package/lib/clang/{19 → 23}/include/intrin0.h +10 -1
  124. package/lib/clang/{19 → 23}/include/keylockerintrin.h +0 -9
  125. package/lib/clang/{19 → 23}/include/larchintrin.h +24 -8
  126. package/lib/clang/{19 → 23}/include/lasxintrin.h +140 -25
  127. package/lib/clang/{19 → 23}/include/limits.h +7 -4
  128. package/lib/clang/{19 → 23}/include/llvm_libc_wrappers/assert.h +3 -5
  129. package/lib/clang/23/include/llvm_libc_wrappers/ctype.h +29 -0
  130. package/lib/clang/{19 → 23}/include/llvm_libc_wrappers/inttypes.h +3 -5
  131. package/lib/clang/23/include/llvm_libc_wrappers/stdio.h +52 -0
  132. package/lib/clang/{19 → 23}/include/llvm_libc_wrappers/stdlib.h +3 -16
  133. package/lib/clang/23/include/llvm_libc_wrappers/string.h +29 -0
  134. package/lib/clang/{19 → 23}/include/llvm_libc_wrappers/time.h +4 -10
  135. package/lib/clang/23/include/llvm_offload_wrappers/__llvm_offload.h +31 -0
  136. package/lib/clang/23/include/llvm_offload_wrappers/__llvm_offload_device.h +10 -0
  137. package/lib/clang/23/include/llvm_offload_wrappers/__llvm_offload_host.h +15 -0
  138. package/lib/clang/{19 → 23}/include/lsxintrin.h +27 -25
  139. package/lib/clang/{19 → 23}/include/lzcntintrin.h +13 -8
  140. package/lib/clang/{19 → 23}/include/mmintrin.h +241 -256
  141. package/lib/clang/{19 → 23}/include/module.modulemap +54 -9
  142. package/lib/clang/23/include/movrs_avx10_2_512intrin.h +98 -0
  143. package/lib/clang/23/include/movrs_avx10_2intrin.h +174 -0
  144. package/lib/clang/23/include/movrsintrin.h +59 -0
  145. package/lib/clang/23/include/nvptxintrin.h +208 -0
  146. package/lib/clang/{19 → 23}/include/opencl-c-base.h +28 -92
  147. package/lib/clang/{19 → 23}/include/opencl-c.h +506 -140
  148. package/lib/clang/{19 → 23}/include/openmp_wrappers/__clang_openmp_device_functions.h +18 -5
  149. package/lib/clang/{19 → 23}/include/openmp_wrappers/complex +7 -1
  150. package/lib/clang/{19 → 23}/include/openmp_wrappers/complex.h +6 -0
  151. package/lib/clang/{19 → 23}/include/openmp_wrappers/complex_cmath.h +7 -2
  152. package/lib/clang/{19 → 23}/include/openmp_wrappers/math.h +10 -0
  153. package/lib/clang/{19 → 23}/include/pmmintrin.h +24 -23
  154. package/lib/clang/{19 → 23}/include/popcntintrin.h +7 -7
  155. package/lib/clang/{19 → 23}/include/prfchwintrin.h +10 -13
  156. package/lib/clang/{19 → 23}/include/ptrauth.h +169 -14
  157. package/lib/clang/{19 → 23}/include/riscv_bitmanip.h +7 -0
  158. package/lib/clang/23/include/riscv_corev_alu.h +130 -0
  159. package/lib/clang/{19 → 23}/include/riscv_crypto.h +8 -0
  160. package/lib/clang/23/include/riscv_mips.h +36 -0
  161. package/lib/clang/23/include/riscv_nds.h +92 -0
  162. package/lib/clang/{19 → 23}/include/riscv_ntlh.h +2 -0
  163. package/lib/clang/23/include/riscv_packed_simd.h +644 -0
  164. package/lib/clang/{19 → 23}/include/riscv_vector.h +43 -5
  165. package/lib/clang/{19 → 23}/include/shaintrin.h +3 -2
  166. package/lib/clang/{19 → 23}/include/sifive_vector.h +76 -2
  167. package/lib/clang/23/include/sm4evexintrin.h +32 -0
  168. package/lib/clang/{19 → 23}/include/smmintrin.h +80 -56
  169. package/lib/clang/23/include/spirvintrin.h +167 -0
  170. package/lib/clang/{19 → 23}/include/stdalign.h +0 -5
  171. package/lib/clang/23/include/stdcountof.h +15 -0
  172. package/lib/clang/23/include/stddefer.h +19 -0
  173. package/lib/clang/{19 → 23}/include/stdint.h +23 -143
  174. package/lib/clang/{19 → 23}/include/tbmintrin.h +25 -37
  175. package/lib/clang/{19 → 23}/include/tmmintrin.h +125 -130
  176. package/lib/clang/{19 → 23}/include/vaesintrin.h +1 -2
  177. package/lib/clang/{19 → 23}/include/vecintrin.h +1783 -60
  178. package/lib/clang/{19 → 23}/include/wasm_simd128.h +184 -21
  179. package/lib/clang/{19 → 23}/include/x86gprintrin.h +0 -14
  180. package/lib/clang/{19 → 23}/include/x86intrin.h +0 -18
  181. package/lib/clang/{19 → 23}/include/xmmintrin.h +190 -221
  182. package/lib/clang/{19 → 23}/include/xopintrin.h +20 -10
  183. package/lib/clang/23/include/zos_wrappers/grp.h +19 -0
  184. package/lib/clang/23/include/zos_wrappers/locale.h +19 -0
  185. package/lib/clang/23/include/zos_wrappers/math.h +31 -0
  186. package/lib/clang/23/include/zos_wrappers/poll.h +19 -0
  187. package/lib/clang/23/include/zos_wrappers/stdlib.h +20 -0
  188. package/lib/clang/23/include/zos_wrappers/string.h +19 -0
  189. package/lib/clang/23/include/zos_wrappers/time.h +19 -0
  190. package/lib/clang/23/include/zos_wrappers/variant.h +19 -0
  191. package/package.json +6 -6
  192. package/lib/clang/19/include/__clang_cuda_complex_builtins.h +0 -285
  193. package/lib/clang/19/include/avx512cdintrin.h +0 -125
  194. package/lib/clang/19/include/avx512ifmaintrin.h +0 -70
  195. package/lib/clang/19/include/avx512ifmavlintrin.h +0 -111
  196. package/lib/clang/19/include/avx512vlcdintrin.h +0 -230
  197. package/lib/clang/19/include/cuda_wrappers/cmath +0 -90
  198. package/lib/clang/19/include/fma4intrin.h +0 -218
  199. package/lib/clang/19/include/hlsl/hlsl_basic_types.h +0 -74
  200. package/lib/clang/19/include/hlsl/hlsl_intrinsics.h +0 -1697
  201. package/lib/clang/19/include/hlsl.h +0 -15
  202. package/lib/clang/19/include/llvm_libc_wrappers/ctype.h +0 -102
  203. package/lib/clang/19/include/llvm_libc_wrappers/stdio.h +0 -80
  204. package/lib/clang/19/include/llvm_libc_wrappers/string.h +0 -96
  205. /package/lib/clang/{19 → 23}/include/__clang_cuda_builtin_vars.h +0 -0
  206. /package/lib/clang/{19 → 23}/include/__clang_cuda_cmath.h +0 -0
  207. /package/lib/clang/{19 → 23}/include/__clang_cuda_libdevice_declares.h +0 -0
  208. /package/lib/clang/{19 → 23}/include/__clang_hip_stdlib.h +0 -0
  209. /package/lib/clang/{19 → 23}/include/__stdarg___gnuc_va_list.h +0 -0
  210. /package/lib/clang/{19 → 23}/include/__stdarg___va_copy.h +0 -0
  211. /package/lib/clang/{19 → 23}/include/__stdarg_header_macro.h +0 -0
  212. /package/lib/clang/{19 → 23}/include/__stdarg_va_copy.h +0 -0
  213. /package/lib/clang/{19 → 23}/include/__stdarg_va_list.h +0 -0
  214. /package/lib/clang/{19 → 23}/include/__stddef_header_macro.h +0 -0
  215. /package/lib/clang/{19 → 23}/include/__stddef_max_align_t.h +0 -0
  216. /package/lib/clang/{19 → 23}/include/__stddef_null.h +0 -0
  217. /package/lib/clang/{19 → 23}/include/__stddef_nullptr_t.h +0 -0
  218. /package/lib/clang/{19 → 23}/include/__stddef_offsetof.h +0 -0
  219. /package/lib/clang/{19 → 23}/include/__stddef_ptrdiff_t.h +0 -0
  220. /package/lib/clang/{19 → 23}/include/__stddef_rsize_t.h +0 -0
  221. /package/lib/clang/{19 → 23}/include/__stddef_size_t.h +0 -0
  222. /package/lib/clang/{19 → 23}/include/__stddef_unreachable.h +0 -0
  223. /package/lib/clang/{19 → 23}/include/__stddef_wchar_t.h +0 -0
  224. /package/lib/clang/{19 → 23}/include/__stddef_wint_t.h +0 -0
  225. /package/lib/clang/{19 → 23}/include/__wmmintrin_aes.h +0 -0
  226. /package/lib/clang/{19 → 23}/include/__wmmintrin_pclmul.h +0 -0
  227. /package/lib/clang/{19 → 23}/include/ammintrin.h +0 -0
  228. /package/lib/clang/{19 → 23}/include/arm_bf16.h +0 -0
  229. /package/lib/clang/{19 → 23}/include/arm_cde.h +0 -0
  230. /package/lib/clang/{19 → 23}/include/arm_cmse.h +0 -0
  231. /package/lib/clang/{19 → 23}/include/arm_mve.h +0 -0
  232. /package/lib/clang/{19 → 23}/include/arm_neon_sve_bridge.h +0 -0
  233. /package/lib/clang/{19 → 23}/include/armintr.h +0 -0
  234. /package/lib/clang/{19 → 23}/include/avxneconvertintrin.h +0 -0
  235. /package/lib/clang/{19 → 23}/include/builtins.h +0 -0
  236. /package/lib/clang/{19 → 23}/include/cet.h +0 -0
  237. /package/lib/clang/{19 → 23}/include/cetintrin.h +0 -0
  238. /package/lib/clang/{19 → 23}/include/cldemoteintrin.h +0 -0
  239. /package/lib/clang/{19 → 23}/include/clflushoptintrin.h +0 -0
  240. /package/lib/clang/{19 → 23}/include/clwbintrin.h +0 -0
  241. /package/lib/clang/{19 → 23}/include/clzerointrin.h +0 -0
  242. /package/lib/clang/{19 → 23}/include/cuda_wrappers/algorithm +0 -0
  243. /package/lib/clang/{19 → 23}/include/cuda_wrappers/bits/basic_string.h +0 -0
  244. /package/lib/clang/{19 → 23}/include/cuda_wrappers/bits/basic_string.tcc +0 -0
  245. /package/lib/clang/{19 → 23}/include/cuda_wrappers/bits/shared_ptr_base.h +0 -0
  246. /package/lib/clang/{19 → 23}/include/cuda_wrappers/complex +0 -0
  247. /package/lib/clang/{19 → 23}/include/enqcmdintrin.h +0 -0
  248. /package/lib/clang/{19 → 23}/include/fxsrintrin.h +0 -0
  249. /package/lib/clang/{19 → 23}/include/hexagon_circ_brev_intrinsics.h +0 -0
  250. /package/lib/clang/{19 → 23}/include/hexagon_protos.h +0 -0
  251. /package/lib/clang/{19 → 23}/include/hresetintrin.h +0 -0
  252. /package/lib/clang/{19 → 23}/include/htmintrin.h +0 -0
  253. /package/lib/clang/{19 → 23}/include/htmxlintrin.h +0 -0
  254. /package/lib/clang/{19 → 23}/include/ia32intrin.h +0 -0
  255. /package/lib/clang/{19 → 23}/include/inttypes.h +0 -0
  256. /package/lib/clang/{19 → 23}/include/invpcidintrin.h +0 -0
  257. /package/lib/clang/{19 → 23}/include/iso646.h +0 -0
  258. /package/lib/clang/{19 → 23}/include/lwpintrin.h +0 -0
  259. /package/lib/clang/{19 → 23}/include/mm3dnow.h +0 -0
  260. /package/lib/clang/{19 → 23}/include/mm_malloc.h +0 -0
  261. /package/lib/clang/{19 → 23}/include/movdirintrin.h +0 -0
  262. /package/lib/clang/{19 → 23}/include/msa.h +0 -0
  263. /package/lib/clang/{19 → 23}/include/mwaitxintrin.h +0 -0
  264. /package/lib/clang/{19 → 23}/include/nmmintrin.h +0 -0
  265. /package/lib/clang/{19 → 23}/include/openmp_wrappers/cmath +0 -0
  266. /package/lib/clang/{19 → 23}/include/openmp_wrappers/new +0 -0
  267. /package/lib/clang/{19 → 23}/include/pconfigintrin.h +0 -0
  268. /package/lib/clang/{19 → 23}/include/pkuintrin.h +0 -0
  269. /package/lib/clang/{19 → 23}/include/ppc_wrappers/bmi2intrin.h +0 -0
  270. /package/lib/clang/{19 → 23}/include/ppc_wrappers/bmiintrin.h +0 -0
  271. /package/lib/clang/{19 → 23}/include/ppc_wrappers/emmintrin.h +0 -0
  272. /package/lib/clang/{19 → 23}/include/ppc_wrappers/immintrin.h +0 -0
  273. /package/lib/clang/{19 → 23}/include/ppc_wrappers/mm_malloc.h +0 -0
  274. /package/lib/clang/{19 → 23}/include/ppc_wrappers/mmintrin.h +0 -0
  275. /package/lib/clang/{19 → 23}/include/ppc_wrappers/nmmintrin.h +0 -0
  276. /package/lib/clang/{19 → 23}/include/ppc_wrappers/pmmintrin.h +0 -0
  277. /package/lib/clang/{19 → 23}/include/ppc_wrappers/smmintrin.h +0 -0
  278. /package/lib/clang/{19 → 23}/include/ppc_wrappers/tmmintrin.h +0 -0
  279. /package/lib/clang/{19 → 23}/include/ppc_wrappers/x86gprintrin.h +0 -0
  280. /package/lib/clang/{19 → 23}/include/ppc_wrappers/x86intrin.h +0 -0
  281. /package/lib/clang/{19 → 23}/include/ppc_wrappers/xmmintrin.h +0 -0
  282. /package/lib/clang/{19 → 23}/include/prfchiintrin.h +0 -0
  283. /package/lib/clang/{19 → 23}/include/ptwriteintrin.h +0 -0
  284. /package/lib/clang/{19 → 23}/include/raointintrin.h +0 -0
  285. /package/lib/clang/{19 → 23}/include/rdpruintrin.h +0 -0
  286. /package/lib/clang/{19 → 23}/include/rdseedintrin.h +0 -0
  287. /package/lib/clang/{19 → 23}/include/rtmintrin.h +0 -0
  288. /package/lib/clang/{19 → 23}/include/s390intrin.h +0 -0
  289. /package/lib/clang/{19 → 23}/include/serializeintrin.h +0 -0
  290. /package/lib/clang/{19 → 23}/include/sgxintrin.h +0 -0
  291. /package/lib/clang/{19 → 23}/include/sha512intrin.h +0 -0
  292. /package/lib/clang/{19 → 23}/include/sm3intrin.h +0 -0
  293. /package/lib/clang/{19 → 23}/include/sm4intrin.h +0 -0
  294. /package/lib/clang/{19 → 23}/include/stdarg.h +0 -0
  295. /package/lib/clang/{19 → 23}/include/stdatomic.h +0 -0
  296. /package/lib/clang/{19 → 23}/include/stdbool.h +0 -0
  297. /package/lib/clang/{19 → 23}/include/stdckdint.h +0 -0
  298. /package/lib/clang/{19 → 23}/include/stddef.h +0 -0
  299. /package/lib/clang/{19 → 23}/include/stdnoreturn.h +0 -0
  300. /package/lib/clang/{19 → 23}/include/tgmath.h +0 -0
  301. /package/lib/clang/{19 → 23}/include/tsxldtrkintrin.h +0 -0
  302. /package/lib/clang/{19 → 23}/include/uintrintrin.h +0 -0
  303. /package/lib/clang/{19 → 23}/include/unwind.h +0 -0
  304. /package/lib/clang/{19 → 23}/include/usermsrintrin.h +0 -0
  305. /package/lib/clang/{19 → 23}/include/vadefs.h +0 -0
  306. /package/lib/clang/{19 → 23}/include/varargs.h +0 -0
  307. /package/lib/clang/{19 → 23}/include/velintrin.h +0 -0
  308. /package/lib/clang/{19 → 23}/include/velintrin_approx.h +0 -0
  309. /package/lib/clang/{19 → 23}/include/velintrin_gen.h +0 -0
  310. /package/lib/clang/{19 → 23}/include/vpclmulqdqintrin.h +0 -0
  311. /package/lib/clang/{19 → 23}/include/waitpkgintrin.h +0 -0
  312. /package/lib/clang/{19 → 23}/include/wbnoinvdintrin.h +0 -0
  313. /package/lib/clang/{19 → 23}/include/wmmintrin.h +0 -0
  314. /package/lib/clang/{19 → 23}/include/xsavecintrin.h +0 -0
  315. /package/lib/clang/{19 → 23}/include/xsaveintrin.h +0 -0
  316. /package/lib/clang/{19 → 23}/include/xsaveoptintrin.h +0 -0
  317. /package/lib/clang/{19 → 23}/include/xsavesintrin.h +0 -0
  318. /package/lib/clang/{19 → 23}/include/xtestintrin.h +0 -0
  319. /package/lib/clang/{19 → 23}/include/yvals_core.h +0 -0
  320. /package/lib/clang/{19 → 23}/include/zos_wrappers/builtins.h +0 -0
@@ -0,0 +1,3869 @@
1
+ // This file is auto-generated by clang-tblgen from HLSLIntrinsics.td.
2
+ // Do not edit this file directly.
3
+
4
+ /// \fn T abs(T Val)
5
+ /// \brief Returns the absolute value of the input value, \a Val.
6
+ /// \param Val The input value.
7
+ // abs overloads
8
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
9
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_abs)
10
+ half abs(half);
11
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
12
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_abs)
13
+ half2 abs(half2);
14
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
15
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_abs)
16
+ half3 abs(half3);
17
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
18
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_abs)
19
+ half4 abs(half4);
20
+
21
+ #ifdef __HLSL_ENABLE_16_BIT
22
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
23
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_abs)
24
+ int16_t abs(int16_t);
25
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
26
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_abs)
27
+ int16_t2 abs(int16_t2);
28
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
29
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_abs)
30
+ int16_t3 abs(int16_t3);
31
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
32
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_abs)
33
+ int16_t4 abs(int16_t4);
34
+ #endif
35
+
36
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_abs)
37
+ int abs(int);
38
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_abs)
39
+ int2 abs(int2);
40
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_abs)
41
+ int3 abs(int3);
42
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_abs)
43
+ int4 abs(int4);
44
+
45
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_abs)
46
+ int64_t abs(int64_t);
47
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_abs)
48
+ int64_t2 abs(int64_t2);
49
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_abs)
50
+ int64_t3 abs(int64_t3);
51
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_abs)
52
+ int64_t4 abs(int64_t4);
53
+
54
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_abs)
55
+ float abs(float);
56
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_abs)
57
+ float2 abs(float2);
58
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_abs)
59
+ float3 abs(float3);
60
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_abs)
61
+ float4 abs(float4);
62
+
63
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_abs)
64
+ double abs(double);
65
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_abs)
66
+ double2 abs(double2);
67
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_abs)
68
+ double3 abs(double3);
69
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_abs)
70
+ double4 abs(double4);
71
+
72
+ /// \fn T acos(T Val)
73
+ /// \brief Returns the arccosine of the input value, \a Val.
74
+ /// \param Val The input value.
75
+ // acos overloads
76
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
77
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_acos)
78
+ half acos(half);
79
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
80
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_acos)
81
+ half2 acos(half2);
82
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
83
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_acos)
84
+ half3 acos(half3);
85
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
86
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_acos)
87
+ half4 acos(half4);
88
+
89
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_acos)
90
+ float acos(float);
91
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_acos)
92
+ float2 acos(float2);
93
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_acos)
94
+ float3 acos(float3);
95
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_acos)
96
+ float4 acos(float4);
97
+
98
+ /// \fn T AddUint64(T a, T b)
99
+ /// \brief Implements unsigned 64-bit integer addition using pairs of unsigned
100
+ /// 32-bit integers.
101
+ /// \param x [in] The first unsigned 32-bit integer pair(s)
102
+ /// \param y [in] The second unsigned 32-bit integer pair(s)
103
+ ///
104
+ /// This function takes one or two pairs (low, high) of unsigned 32-bit integer
105
+ /// values and returns pairs (low, high) of unsigned 32-bit integer
106
+ /// values representing the result of unsigned 64-bit integer addition.
107
+ // AddUint64 overloads
108
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
109
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_adduint64)
110
+ uint2 AddUint64(uint2, uint2);
111
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
112
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_adduint64)
113
+ uint4 AddUint64(uint4, uint4);
114
+
115
+ /// \fn bool all(T x)
116
+ /// \brief Returns True if all components of the \a x parameter are non-zero;
117
+ /// otherwise, false.
118
+ /// \param x The input value.
119
+ // all overloads
120
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
121
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
122
+ bool all(half);
123
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
124
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
125
+ bool all(half2);
126
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
127
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
128
+ bool all(half3);
129
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
130
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
131
+ bool all(half4);
132
+
133
+ #ifdef __HLSL_ENABLE_16_BIT
134
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
135
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
136
+ bool all(int16_t);
137
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
138
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
139
+ bool all(int16_t2);
140
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
141
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
142
+ bool all(int16_t3);
143
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
144
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
145
+ bool all(int16_t4);
146
+
147
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
148
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
149
+ bool all(uint16_t);
150
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
151
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
152
+ bool all(uint16_t2);
153
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
154
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
155
+ bool all(uint16_t3);
156
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
157
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
158
+ bool all(uint16_t4);
159
+ #endif
160
+
161
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
162
+ bool all(bool);
163
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
164
+ bool all(bool2);
165
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
166
+ bool all(bool3);
167
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
168
+ bool all(bool4);
169
+
170
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
171
+ bool all(int);
172
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
173
+ bool all(int2);
174
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
175
+ bool all(int3);
176
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
177
+ bool all(int4);
178
+
179
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
180
+ bool all(uint);
181
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
182
+ bool all(uint2);
183
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
184
+ bool all(uint3);
185
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
186
+ bool all(uint4);
187
+
188
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
189
+ bool all(int64_t);
190
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
191
+ bool all(int64_t2);
192
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
193
+ bool all(int64_t3);
194
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
195
+ bool all(int64_t4);
196
+
197
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
198
+ bool all(uint64_t);
199
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
200
+ bool all(uint64_t2);
201
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
202
+ bool all(uint64_t3);
203
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
204
+ bool all(uint64_t4);
205
+
206
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
207
+ bool all(float);
208
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
209
+ bool all(float2);
210
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
211
+ bool all(float3);
212
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
213
+ bool all(float4);
214
+
215
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
216
+ bool all(double);
217
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
218
+ bool all(double2);
219
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
220
+ bool all(double3);
221
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
222
+ bool all(double4);
223
+
224
+ /// \fn void AllMemoryBarrier(void)
225
+ /// \brief Blocks execution of all threads in a group until all memory
226
+ /// accesses have been completed.
227
+ // AllMemoryBarrier overloads
228
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all_memory_barrier)
229
+ __attribute__((convergent)) void AllMemoryBarrier();
230
+
231
+ /// \fn void AllMemoryBarrierWithGroupSync(void)
232
+ /// \brief Blocks execution of all threads in a group until all memory
233
+ /// accesses have been completed and all threads in the group have reached this call.
234
+ // AllMemoryBarrierWithGroupSync overloads
235
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all_memory_barrier_with_group_sync)
236
+ __attribute__((convergent)) void AllMemoryBarrierWithGroupSync();
237
+
238
+ /// \fn bool and(bool x, bool y)
239
+ /// \brief Logically ands two boolean vectors or matrices elementwise and
240
+ /// produces a bool vector or matrix output.
241
+ // and overloads
242
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_and)
243
+ bool and(bool, bool);
244
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_and)
245
+ bool2 and(bool2, bool2);
246
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_and)
247
+ bool3 and(bool3, bool3);
248
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_and)
249
+ bool4 and(bool4, bool4);
250
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_and)
251
+ bool1x2 and(bool1x2, bool1x2);
252
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_and)
253
+ bool1x3 and(bool1x3, bool1x3);
254
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_and)
255
+ bool1x4 and(bool1x4, bool1x4);
256
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_and)
257
+ bool2x1 and(bool2x1, bool2x1);
258
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_and)
259
+ bool2x2 and(bool2x2, bool2x2);
260
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_and)
261
+ bool2x3 and(bool2x3, bool2x3);
262
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_and)
263
+ bool2x4 and(bool2x4, bool2x4);
264
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_and)
265
+ bool3x1 and(bool3x1, bool3x1);
266
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_and)
267
+ bool3x2 and(bool3x2, bool3x2);
268
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_and)
269
+ bool3x3 and(bool3x3, bool3x3);
270
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_and)
271
+ bool3x4 and(bool3x4, bool3x4);
272
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_and)
273
+ bool4x1 and(bool4x1, bool4x1);
274
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_and)
275
+ bool4x2 and(bool4x2, bool4x2);
276
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_and)
277
+ bool4x3 and(bool4x3, bool4x3);
278
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_and)
279
+ bool4x4 and(bool4x4, bool4x4);
280
+
281
+ /// \fn bool any(T x)
282
+ /// \brief Returns True if any components of the \a x parameter are non-zero;
283
+ /// otherwise, false.
284
+ /// \param x The input value.
285
+ // any overloads
286
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
287
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
288
+ bool any(half);
289
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
290
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
291
+ bool any(half2);
292
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
293
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
294
+ bool any(half3);
295
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
296
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
297
+ bool any(half4);
298
+
299
+ #ifdef __HLSL_ENABLE_16_BIT
300
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
301
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
302
+ bool any(int16_t);
303
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
304
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
305
+ bool any(int16_t2);
306
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
307
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
308
+ bool any(int16_t3);
309
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
310
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
311
+ bool any(int16_t4);
312
+
313
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
314
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
315
+ bool any(uint16_t);
316
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
317
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
318
+ bool any(uint16_t2);
319
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
320
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
321
+ bool any(uint16_t3);
322
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
323
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
324
+ bool any(uint16_t4);
325
+ #endif
326
+
327
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
328
+ bool any(bool);
329
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
330
+ bool any(bool2);
331
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
332
+ bool any(bool3);
333
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
334
+ bool any(bool4);
335
+
336
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
337
+ bool any(int);
338
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
339
+ bool any(int2);
340
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
341
+ bool any(int3);
342
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
343
+ bool any(int4);
344
+
345
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
346
+ bool any(uint);
347
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
348
+ bool any(uint2);
349
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
350
+ bool any(uint3);
351
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
352
+ bool any(uint4);
353
+
354
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
355
+ bool any(int64_t);
356
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
357
+ bool any(int64_t2);
358
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
359
+ bool any(int64_t3);
360
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
361
+ bool any(int64_t4);
362
+
363
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
364
+ bool any(uint64_t);
365
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
366
+ bool any(uint64_t2);
367
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
368
+ bool any(uint64_t3);
369
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
370
+ bool any(uint64_t4);
371
+
372
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
373
+ bool any(float);
374
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
375
+ bool any(float2);
376
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
377
+ bool any(float3);
378
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
379
+ bool any(float4);
380
+
381
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
382
+ bool any(double);
383
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
384
+ bool any(double2);
385
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
386
+ bool any(double3);
387
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
388
+ bool any(double4);
389
+
390
+ /// \fn double asdouble(uint LowBits, uint HighBits)
391
+ /// \brief Reinterprets a cast value (two 32-bit values) into a double.
392
+ /// \param LowBits The low 32-bit pattern of the input value.
393
+ /// \param HighBits The high 32-bit pattern of the input value.
394
+ // asdouble overloads
395
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_asdouble)
396
+ double asdouble(uint, uint);
397
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_asdouble)
398
+ double2 asdouble(uint2, uint2);
399
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_asdouble)
400
+ double3 asdouble(uint3, uint3);
401
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_asdouble)
402
+ double4 asdouble(uint4, uint4);
403
+
404
+ /// \fn T asin(T Val)
405
+ /// \brief Returns the arcsine of the input value, \a Val.
406
+ /// \param Val The input value.
407
+ // asin overloads
408
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
409
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_asin)
410
+ half asin(half);
411
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
412
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_asin)
413
+ half2 asin(half2);
414
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
415
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_asin)
416
+ half3 asin(half3);
417
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
418
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_asin)
419
+ half4 asin(half4);
420
+
421
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_asin)
422
+ float asin(float);
423
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_asin)
424
+ float2 asin(float2);
425
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_asin)
426
+ float3 asin(float3);
427
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_asin)
428
+ float4 asin(float4);
429
+
430
+ /// \fn T atan(T Val)
431
+ /// \brief Returns the arctangent of the input value, \a Val.
432
+ /// \param Val The input value.
433
+ // atan overloads
434
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
435
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan)
436
+ half atan(half);
437
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
438
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan)
439
+ half2 atan(half2);
440
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
441
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan)
442
+ half3 atan(half3);
443
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
444
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan)
445
+ half4 atan(half4);
446
+
447
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan)
448
+ float atan(float);
449
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan)
450
+ float2 atan(float2);
451
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan)
452
+ float3 atan(float3);
453
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan)
454
+ float4 atan(float4);
455
+
456
+ /// \fn T atan2(T y, T x)
457
+ /// \brief Returns the arctangent of y/x, using the signs of the arguments to
458
+ /// determine the correct quadrant.
459
+ /// \param y The y-coordinate.
460
+ /// \param x The x-coordinate.
461
+ // atan2 overloads
462
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
463
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan2)
464
+ half atan2(half, half);
465
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
466
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan2)
467
+ half2 atan2(half2, half2);
468
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
469
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan2)
470
+ half3 atan2(half3, half3);
471
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
472
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan2)
473
+ half4 atan2(half4, half4);
474
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
475
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan2)
476
+ half1x2 atan2(half1x2, half1x2);
477
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
478
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan2)
479
+ half1x3 atan2(half1x3, half1x3);
480
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
481
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan2)
482
+ half1x4 atan2(half1x4, half1x4);
483
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
484
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan2)
485
+ half2x1 atan2(half2x1, half2x1);
486
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
487
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan2)
488
+ half2x2 atan2(half2x2, half2x2);
489
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
490
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan2)
491
+ half2x3 atan2(half2x3, half2x3);
492
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
493
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan2)
494
+ half2x4 atan2(half2x4, half2x4);
495
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
496
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan2)
497
+ half3x1 atan2(half3x1, half3x1);
498
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
499
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan2)
500
+ half3x2 atan2(half3x2, half3x2);
501
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
502
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan2)
503
+ half3x3 atan2(half3x3, half3x3);
504
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
505
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan2)
506
+ half3x4 atan2(half3x4, half3x4);
507
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
508
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan2)
509
+ half4x1 atan2(half4x1, half4x1);
510
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
511
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan2)
512
+ half4x2 atan2(half4x2, half4x2);
513
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
514
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan2)
515
+ half4x3 atan2(half4x3, half4x3);
516
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
517
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan2)
518
+ half4x4 atan2(half4x4, half4x4);
519
+
520
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan2)
521
+ float atan2(float, float);
522
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan2)
523
+ float2 atan2(float2, float2);
524
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan2)
525
+ float3 atan2(float3, float3);
526
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan2)
527
+ float4 atan2(float4, float4);
528
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan2)
529
+ float1x2 atan2(float1x2, float1x2);
530
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan2)
531
+ float1x3 atan2(float1x3, float1x3);
532
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan2)
533
+ float1x4 atan2(float1x4, float1x4);
534
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan2)
535
+ float2x1 atan2(float2x1, float2x1);
536
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan2)
537
+ float2x2 atan2(float2x2, float2x2);
538
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan2)
539
+ float2x3 atan2(float2x3, float2x3);
540
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan2)
541
+ float2x4 atan2(float2x4, float2x4);
542
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan2)
543
+ float3x1 atan2(float3x1, float3x1);
544
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan2)
545
+ float3x2 atan2(float3x2, float3x2);
546
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan2)
547
+ float3x3 atan2(float3x3, float3x3);
548
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan2)
549
+ float3x4 atan2(float3x4, float3x4);
550
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan2)
551
+ float4x1 atan2(float4x1, float4x1);
552
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan2)
553
+ float4x2 atan2(float4x2, float4x2);
554
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan2)
555
+ float4x3 atan2(float4x3, float4x3);
556
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan2)
557
+ float4x4 atan2(float4x4, float4x4);
558
+
559
+ /// \fn T ceil(T Val)
560
+ /// \brief Returns the smallest integer value that is greater than or equal to
561
+ /// the input value, \a Val.
562
+ /// \param Val The input value.
563
+ // ceil overloads
564
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
565
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_ceil)
566
+ half ceil(half);
567
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
568
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_ceil)
569
+ half2 ceil(half2);
570
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
571
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_ceil)
572
+ half3 ceil(half3);
573
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
574
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_ceil)
575
+ half4 ceil(half4);
576
+
577
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_ceil)
578
+ float ceil(float);
579
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_ceil)
580
+ float2 ceil(float2);
581
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_ceil)
582
+ float3 ceil(float3);
583
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_ceil)
584
+ float4 ceil(float4);
585
+
586
+ /// \fn T clamp(T X, T Min, T Max)
587
+ /// \brief Clamps the specified value \a X to the specified
588
+ /// minimum ( \a Min) and maximum ( \a Max) range.
589
+ /// \param X A value to clamp.
590
+ /// \param Min The specified minimum range.
591
+ /// \param Max The specified maximum range.
592
+ ///
593
+ /// Returns The clamped value for the \a X parameter.
594
+ /// For values of -INF or INF, clamp will behave as expected.
595
+ /// However for values of NaN, the results are undefined.
596
+ // clamp overloads
597
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
598
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_clamp)
599
+ half clamp(half, half, half);
600
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
601
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_clamp)
602
+ half2 clamp(half2, half2, half2);
603
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
604
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_clamp)
605
+ half3 clamp(half3, half3, half3);
606
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
607
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_clamp)
608
+ half4 clamp(half4, half4, half4);
609
+
610
+ #ifdef __HLSL_ENABLE_16_BIT
611
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
612
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_clamp)
613
+ int16_t clamp(int16_t, int16_t, int16_t);
614
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
615
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_clamp)
616
+ int16_t2 clamp(int16_t2, int16_t2, int16_t2);
617
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
618
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_clamp)
619
+ int16_t3 clamp(int16_t3, int16_t3, int16_t3);
620
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
621
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_clamp)
622
+ int16_t4 clamp(int16_t4, int16_t4, int16_t4);
623
+
624
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
625
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_clamp)
626
+ uint16_t clamp(uint16_t, uint16_t, uint16_t);
627
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
628
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_clamp)
629
+ uint16_t2 clamp(uint16_t2, uint16_t2, uint16_t2);
630
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
631
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_clamp)
632
+ uint16_t3 clamp(uint16_t3, uint16_t3, uint16_t3);
633
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
634
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_clamp)
635
+ uint16_t4 clamp(uint16_t4, uint16_t4, uint16_t4);
636
+ #endif
637
+
638
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_clamp)
639
+ int clamp(int, int, int);
640
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_clamp)
641
+ int2 clamp(int2, int2, int2);
642
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_clamp)
643
+ int3 clamp(int3, int3, int3);
644
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_clamp)
645
+ int4 clamp(int4, int4, int4);
646
+
647
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_clamp)
648
+ uint clamp(uint, uint, uint);
649
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_clamp)
650
+ uint2 clamp(uint2, uint2, uint2);
651
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_clamp)
652
+ uint3 clamp(uint3, uint3, uint3);
653
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_clamp)
654
+ uint4 clamp(uint4, uint4, uint4);
655
+
656
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_clamp)
657
+ int64_t clamp(int64_t, int64_t, int64_t);
658
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_clamp)
659
+ int64_t2 clamp(int64_t2, int64_t2, int64_t2);
660
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_clamp)
661
+ int64_t3 clamp(int64_t3, int64_t3, int64_t3);
662
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_clamp)
663
+ int64_t4 clamp(int64_t4, int64_t4, int64_t4);
664
+
665
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_clamp)
666
+ uint64_t clamp(uint64_t, uint64_t, uint64_t);
667
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_clamp)
668
+ uint64_t2 clamp(uint64_t2, uint64_t2, uint64_t2);
669
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_clamp)
670
+ uint64_t3 clamp(uint64_t3, uint64_t3, uint64_t3);
671
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_clamp)
672
+ uint64_t4 clamp(uint64_t4, uint64_t4, uint64_t4);
673
+
674
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_clamp)
675
+ float clamp(float, float, float);
676
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_clamp)
677
+ float2 clamp(float2, float2, float2);
678
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_clamp)
679
+ float3 clamp(float3, float3, float3);
680
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_clamp)
681
+ float4 clamp(float4, float4, float4);
682
+
683
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_clamp)
684
+ double clamp(double, double, double);
685
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_clamp)
686
+ double2 clamp(double2, double2, double2);
687
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_clamp)
688
+ double3 clamp(double3, double3, double3);
689
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_clamp)
690
+ double4 clamp(double4, double4, double4);
691
+
692
+ /// \fn void clip(T Val)
693
+ /// \brief Discards the current pixel if the specified value is less than zero.
694
+ /// \param Val The input value.
695
+ // clip overloads
696
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
697
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_clip)
698
+ void clip(half);
699
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
700
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_clip)
701
+ void clip(half2);
702
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
703
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_clip)
704
+ void clip(half3);
705
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
706
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_clip)
707
+ void clip(half4);
708
+
709
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_clip)
710
+ void clip(float);
711
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_clip)
712
+ void clip(float2);
713
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_clip)
714
+ void clip(float3);
715
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_clip)
716
+ void clip(float4);
717
+
718
+ /// \fn T cos(T Val)
719
+ /// \brief Returns the cosine of the input value, \a Val.
720
+ /// \param Val The input value.
721
+ // cos overloads
722
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
723
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_cos)
724
+ half cos(half);
725
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
726
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_cos)
727
+ half2 cos(half2);
728
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
729
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_cos)
730
+ half3 cos(half3);
731
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
732
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_cos)
733
+ half4 cos(half4);
734
+
735
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_cos)
736
+ float cos(float);
737
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_cos)
738
+ float2 cos(float2);
739
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_cos)
740
+ float3 cos(float3);
741
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_cos)
742
+ float4 cos(float4);
743
+
744
+ /// \fn T cosh(T Val)
745
+ /// \brief Returns the hyperbolic cosine of the input value, \a Val.
746
+ /// \param Val The input value.
747
+ // cosh overloads
748
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
749
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_cosh)
750
+ half cosh(half);
751
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
752
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_cosh)
753
+ half2 cosh(half2);
754
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
755
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_cosh)
756
+ half3 cosh(half3);
757
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
758
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_cosh)
759
+ half4 cosh(half4);
760
+
761
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_cosh)
762
+ float cosh(float);
763
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_cosh)
764
+ float2 cosh(float2);
765
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_cosh)
766
+ float3 cosh(float3);
767
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_cosh)
768
+ float4 cosh(float4);
769
+
770
+ // cross overloads
771
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_crossf32)
772
+ float3 cross(float3, float3);
773
+
774
+ /// \fn T cross(T x, T y)
775
+ /// \brief Returns the cross product of two floating-point, 3D vectors.
776
+ /// \param x [in] The first floating-point, 3D vector.
777
+ /// \param y [in] The second floating-point, 3D vector.
778
+ ///
779
+ /// Result is the cross product of x and y, i.e., the resulting
780
+ /// components are, in order :
781
+ /// x[1] * y[2] - y[1] * x[2]
782
+ /// x[2] * y[0] - y[2] * x[0]
783
+ /// x[0] * y[1] - y[0] * x[1]
784
+ // cross overloads
785
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
786
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_crossf16)
787
+ half3 cross(half3, half3);
788
+
789
+ /// \fn T ddx_coarse(T value)
790
+ /// \brief Computes a low precision partial derivative with respect to the
791
+ /// screen-space x-coordinate.
792
+ /// \param value The input value.
793
+ ///
794
+ /// The return value is a floating point scalar or vector containing the low
795
+ /// prevision partial derivative of the input value.
796
+ // ddx_coarse overloads
797
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
798
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddx_coarse)
799
+ half ddx_coarse(half);
800
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
801
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddx_coarse)
802
+ half2 ddx_coarse(half2);
803
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
804
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddx_coarse)
805
+ half3 ddx_coarse(half3);
806
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
807
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddx_coarse)
808
+ half4 ddx_coarse(half4);
809
+
810
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddx_coarse)
811
+ float ddx_coarse(float);
812
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddx_coarse)
813
+ float2 ddx_coarse(float2);
814
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddx_coarse)
815
+ float3 ddx_coarse(float3);
816
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddx_coarse)
817
+ float4 ddx_coarse(float4);
818
+
819
+ /// \fn T ddx_fine(T value)
820
+ /// \brief Computes a high precision partial derivative with respect to the
821
+ /// screen-space x-coordinate.
822
+ /// \param value The input value.
823
+ ///
824
+ /// The return value is a floating point scalar or vector containing the high
825
+ /// prevision partial derivative of the input value.
826
+ // ddx_fine overloads
827
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
828
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddx_fine)
829
+ half ddx_fine(half);
830
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
831
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddx_fine)
832
+ half2 ddx_fine(half2);
833
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
834
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddx_fine)
835
+ half3 ddx_fine(half3);
836
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
837
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddx_fine)
838
+ half4 ddx_fine(half4);
839
+
840
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddx_fine)
841
+ float ddx_fine(float);
842
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddx_fine)
843
+ float2 ddx_fine(float2);
844
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddx_fine)
845
+ float3 ddx_fine(float3);
846
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddx_fine)
847
+ float4 ddx_fine(float4);
848
+
849
+ /// \fn T ddy_coarse(T value)
850
+ /// \brief Computes a low precision partial derivative with respect to the
851
+ /// screen-space y-coordinate.
852
+ /// \param value The input value.
853
+ ///
854
+ /// The return value is a floating point scalar or vector containing the low
855
+ /// prevision partial derivative of the input value.
856
+ // ddy_coarse overloads
857
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
858
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddy_coarse)
859
+ half ddy_coarse(half);
860
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
861
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddy_coarse)
862
+ half2 ddy_coarse(half2);
863
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
864
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddy_coarse)
865
+ half3 ddy_coarse(half3);
866
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
867
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddy_coarse)
868
+ half4 ddy_coarse(half4);
869
+
870
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddy_coarse)
871
+ float ddy_coarse(float);
872
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddy_coarse)
873
+ float2 ddy_coarse(float2);
874
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddy_coarse)
875
+ float3 ddy_coarse(float3);
876
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddy_coarse)
877
+ float4 ddy_coarse(float4);
878
+
879
+ /// \fn T ddy_fine(T value)
880
+ /// \brief Computes a high precision partial derivative with respect to the
881
+ /// screen-space y-coordinate.
882
+ /// \param value The input value.
883
+ ///
884
+ /// The return value is a floating point scalar or vector containing the high
885
+ /// prevision partial derivative of the input value.
886
+ // ddy_fine overloads
887
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
888
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddy_fine)
889
+ half ddy_fine(half);
890
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
891
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddy_fine)
892
+ half2 ddy_fine(half2);
893
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
894
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddy_fine)
895
+ half3 ddy_fine(half3);
896
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
897
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddy_fine)
898
+ half4 ddy_fine(half4);
899
+
900
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddy_fine)
901
+ float ddy_fine(float);
902
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddy_fine)
903
+ float2 ddy_fine(float2);
904
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddy_fine)
905
+ float3 ddy_fine(float3);
906
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddy_fine)
907
+ float4 ddy_fine(float4);
908
+
909
+ /// \fn T degrees(T x)
910
+ /// \brief Converts the specified value from radians to degrees.
911
+ /// \param x The specified input value.
912
+ // degrees overloads
913
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
914
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_degrees)
915
+ half degrees(half);
916
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
917
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_degrees)
918
+ half2 degrees(half2);
919
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
920
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_degrees)
921
+ half3 degrees(half3);
922
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
923
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_degrees)
924
+ half4 degrees(half4);
925
+
926
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_degrees)
927
+ float degrees(float);
928
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_degrees)
929
+ float2 degrees(float2);
930
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_degrees)
931
+ float3 degrees(float3);
932
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_degrees)
933
+ float4 degrees(float4);
934
+
935
+ /// \fn void DeviceMemoryBarrier(void)
936
+ /// \brief Blocks execution of all threads in a group until all device memory
937
+ /// accesses have been completed.
938
+ // DeviceMemoryBarrier overloads
939
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_device_memory_barrier)
940
+ __attribute__((convergent)) void DeviceMemoryBarrier();
941
+
942
+ /// \fn void DeviceMemoryBarrierWithGroupSync(void)
943
+ /// \brief Blocks execution of all threads in a group until all device memory
944
+ /// accesses have been completed and all threads in the group have reached this call.
945
+ // DeviceMemoryBarrierWithGroupSync overloads
946
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_device_memory_barrier_with_group_sync)
947
+ __attribute__((convergent)) void DeviceMemoryBarrierWithGroupSync();
948
+
949
+ /// \fn K dot(T X, T Y)
950
+ /// \brief Return the dot product (a scalar value) of \a X and \a Y.
951
+ /// \param X The X input value.
952
+ /// \param Y The Y input value.
953
+ // dot overloads
954
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
955
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_dot)
956
+ half dot(half, half);
957
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
958
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_dot)
959
+ half dot(half2, half2);
960
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
961
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_dot)
962
+ half dot(half3, half3);
963
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
964
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_dot)
965
+ half dot(half4, half4);
966
+
967
+ #ifdef __HLSL_ENABLE_16_BIT
968
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
969
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_dot)
970
+ int16_t dot(int16_t, int16_t);
971
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
972
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_dot)
973
+ int16_t dot(int16_t2, int16_t2);
974
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
975
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_dot)
976
+ int16_t dot(int16_t3, int16_t3);
977
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
978
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_dot)
979
+ int16_t dot(int16_t4, int16_t4);
980
+
981
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
982
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_dot)
983
+ uint16_t dot(uint16_t, uint16_t);
984
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
985
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_dot)
986
+ uint16_t dot(uint16_t2, uint16_t2);
987
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
988
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_dot)
989
+ uint16_t dot(uint16_t3, uint16_t3);
990
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
991
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_dot)
992
+ uint16_t dot(uint16_t4, uint16_t4);
993
+ #endif
994
+
995
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_dot)
996
+ int dot(int, int);
997
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_dot)
998
+ int dot(int2, int2);
999
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_dot)
1000
+ int dot(int3, int3);
1001
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_dot)
1002
+ int dot(int4, int4);
1003
+
1004
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_dot)
1005
+ uint dot(uint, uint);
1006
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_dot)
1007
+ uint dot(uint2, uint2);
1008
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_dot)
1009
+ uint dot(uint3, uint3);
1010
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_dot)
1011
+ uint dot(uint4, uint4);
1012
+
1013
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_dot)
1014
+ int64_t dot(int64_t, int64_t);
1015
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_dot)
1016
+ int64_t dot(int64_t2, int64_t2);
1017
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_dot)
1018
+ int64_t dot(int64_t3, int64_t3);
1019
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_dot)
1020
+ int64_t dot(int64_t4, int64_t4);
1021
+
1022
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_dot)
1023
+ uint64_t dot(uint64_t, uint64_t);
1024
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_dot)
1025
+ uint64_t dot(uint64_t2, uint64_t2);
1026
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_dot)
1027
+ uint64_t dot(uint64_t3, uint64_t3);
1028
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_dot)
1029
+ uint64_t dot(uint64_t4, uint64_t4);
1030
+
1031
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_dot)
1032
+ float dot(float, float);
1033
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_dot)
1034
+ float dot(float2, float2);
1035
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_dot)
1036
+ float dot(float3, float3);
1037
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_dot)
1038
+ float dot(float4, float4);
1039
+
1040
+ /// \fn int dot4add_i8packed(uint A, uint B, int C)
1041
+ /// \brief Dot product of two packed 8-bit signed integer vectors, accumulated
1042
+ /// with a 32-bit signed integer.
1043
+ // dot4add_i8packed overloads
1044
+ _HLSL_AVAILABILITY(shadermodel, 6.4)
1045
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_dot4add_i8packed)
1046
+ int dot4add_i8packed(uint, uint, int);
1047
+
1048
+ /// \fn uint dot4add_u8packed(uint A, uint B, uint C)
1049
+ /// \brief Dot product of two packed 8-bit unsigned integer vectors, accumulated
1050
+ /// with a 32-bit unsigned integer.
1051
+ // dot4add_u8packed overloads
1052
+ _HLSL_AVAILABILITY(shadermodel, 6.4)
1053
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_dot4add_u8packed)
1054
+ uint dot4add_u8packed(uint, uint, uint);
1055
+
1056
+ // dot overloads
1057
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_dot)
1058
+ double dot(double, double);
1059
+
1060
+ /// \fn T exp(T x)
1061
+ /// \brief Returns the base-e exponential, or \a e**x, of the specified value.
1062
+ /// \param x The specified input value.
1063
+ ///
1064
+ /// The return value is the base-e exponential of the \a x parameter.
1065
+ // exp overloads
1066
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1067
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_exp)
1068
+ half exp(half);
1069
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1070
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_exp)
1071
+ half2 exp(half2);
1072
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1073
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_exp)
1074
+ half3 exp(half3);
1075
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1076
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_exp)
1077
+ half4 exp(half4);
1078
+
1079
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_exp)
1080
+ float exp(float);
1081
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_exp)
1082
+ float2 exp(float2);
1083
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_exp)
1084
+ float3 exp(float3);
1085
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_exp)
1086
+ float4 exp(float4);
1087
+
1088
+ /// \fn T exp2(T x)
1089
+ /// \brief Returns the base 2 exponential, or \a 2**x, of the specified value.
1090
+ /// \param x The specified input value.
1091
+ ///
1092
+ /// The base 2 exponential of the \a x parameter.
1093
+ // exp2 overloads
1094
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1095
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_exp2)
1096
+ half exp2(half);
1097
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1098
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_exp2)
1099
+ half2 exp2(half2);
1100
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1101
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_exp2)
1102
+ half3 exp2(half3);
1103
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1104
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_exp2)
1105
+ half4 exp2(half4);
1106
+
1107
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_exp2)
1108
+ float exp2(float);
1109
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_exp2)
1110
+ float2 exp2(float2);
1111
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_exp2)
1112
+ float3 exp2(float3);
1113
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_exp2)
1114
+ float4 exp2(float4);
1115
+
1116
+ /// \fn float f16tof32(uint x)
1117
+ /// \brief Returns the half value stored in the low 16 bits of the uint arg
1118
+ /// converted to a float.
1119
+ /// \param x The uint containing two half values.
1120
+ ///
1121
+ /// The float value of the half value found in the low 16 bits of the \a x
1122
+ /// parameter.
1123
+ // f16tof32 overloads
1124
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_f16tof32)
1125
+ float f16tof32(uint);
1126
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_f16tof32)
1127
+ float2 f16tof32(uint2);
1128
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_f16tof32)
1129
+ float3 f16tof32(uint3);
1130
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_f16tof32)
1131
+ float4 f16tof32(uint4);
1132
+
1133
+ /// \fn uint f32tof16(float x)
1134
+ /// \brief Returns the float arg value converted to half in the low 16 bits of
1135
+ /// the uint return value.
1136
+ /// \param x The float to be converted to half.
1137
+ ///
1138
+ /// The return value is a uint containing the converted half value in the low
1139
+ /// 16 bits.
1140
+ // f32tof16 overloads
1141
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_f32tof16)
1142
+ uint f32tof16(float);
1143
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_f32tof16)
1144
+ uint2 f32tof16(float2);
1145
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_f32tof16)
1146
+ uint3 f32tof16(float3);
1147
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_f32tof16)
1148
+ uint4 f32tof16(float4);
1149
+
1150
+ /// \fn T firstbitlow(T Val)
1151
+ /// \brief Returns the location of the first set bit starting from the lowest
1152
+ /// order bit and working upward, per component.
1153
+ /// \param Val the input value.
1154
+ // firstbitlow overloads
1155
+ #ifdef __HLSL_ENABLE_16_BIT
1156
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
1157
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbitlow)
1158
+ uint firstbitlow(int16_t);
1159
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
1160
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbitlow)
1161
+ uint2 firstbitlow(int16_t2);
1162
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
1163
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbitlow)
1164
+ uint3 firstbitlow(int16_t3);
1165
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
1166
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbitlow)
1167
+ uint4 firstbitlow(int16_t4);
1168
+
1169
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
1170
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbitlow)
1171
+ uint firstbitlow(uint16_t);
1172
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
1173
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbitlow)
1174
+ uint2 firstbitlow(uint16_t2);
1175
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
1176
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbitlow)
1177
+ uint3 firstbitlow(uint16_t3);
1178
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
1179
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbitlow)
1180
+ uint4 firstbitlow(uint16_t4);
1181
+ #endif
1182
+
1183
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbitlow)
1184
+ uint firstbitlow(int);
1185
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbitlow)
1186
+ uint2 firstbitlow(int2);
1187
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbitlow)
1188
+ uint3 firstbitlow(int3);
1189
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbitlow)
1190
+ uint4 firstbitlow(int4);
1191
+
1192
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbitlow)
1193
+ uint firstbitlow(uint);
1194
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbitlow)
1195
+ uint2 firstbitlow(uint2);
1196
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbitlow)
1197
+ uint3 firstbitlow(uint3);
1198
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbitlow)
1199
+ uint4 firstbitlow(uint4);
1200
+
1201
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbitlow)
1202
+ uint firstbitlow(int64_t);
1203
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbitlow)
1204
+ uint2 firstbitlow(int64_t2);
1205
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbitlow)
1206
+ uint3 firstbitlow(int64_t3);
1207
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbitlow)
1208
+ uint4 firstbitlow(int64_t4);
1209
+
1210
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbitlow)
1211
+ uint firstbitlow(uint64_t);
1212
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbitlow)
1213
+ uint2 firstbitlow(uint64_t2);
1214
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbitlow)
1215
+ uint3 firstbitlow(uint64_t3);
1216
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbitlow)
1217
+ uint4 firstbitlow(uint64_t4);
1218
+
1219
+ /// \fn T floor(T Val)
1220
+ /// \brief Returns the largest integer that is less than or equal to the input
1221
+ /// value, \a Val.
1222
+ /// \param Val The input value.
1223
+ // floor overloads
1224
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1225
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_floor)
1226
+ half floor(half);
1227
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1228
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_floor)
1229
+ half2 floor(half2);
1230
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1231
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_floor)
1232
+ half3 floor(half3);
1233
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1234
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_floor)
1235
+ half4 floor(half4);
1236
+
1237
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_floor)
1238
+ float floor(float);
1239
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_floor)
1240
+ float2 floor(float2);
1241
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_floor)
1242
+ float3 floor(float3);
1243
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_floor)
1244
+ float4 floor(float4);
1245
+
1246
+ /// \fn double fma(double a, double b, double c)
1247
+ /// \brief Returns the double-precision fused multiply-addition of a * b + c.
1248
+ /// \param a The first value in the fused multiply-addition.
1249
+ /// \param b The second value in the fused multiply-addition.
1250
+ /// \param c The third value in the fused multiply-addition.
1251
+ // fma overloads
1252
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_fma)
1253
+ double fma(double, double, double);
1254
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_fma)
1255
+ double2 fma(double2, double2, double2);
1256
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_fma)
1257
+ double3 fma(double3, double3, double3);
1258
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_fma)
1259
+ double4 fma(double4, double4, double4);
1260
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_fma)
1261
+ double1x2 fma(double1x2, double1x2, double1x2);
1262
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_fma)
1263
+ double1x3 fma(double1x3, double1x3, double1x3);
1264
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_fma)
1265
+ double1x4 fma(double1x4, double1x4, double1x4);
1266
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_fma)
1267
+ double2x1 fma(double2x1, double2x1, double2x1);
1268
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_fma)
1269
+ double2x2 fma(double2x2, double2x2, double2x2);
1270
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_fma)
1271
+ double2x3 fma(double2x3, double2x3, double2x3);
1272
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_fma)
1273
+ double2x4 fma(double2x4, double2x4, double2x4);
1274
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_fma)
1275
+ double3x1 fma(double3x1, double3x1, double3x1);
1276
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_fma)
1277
+ double3x2 fma(double3x2, double3x2, double3x2);
1278
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_fma)
1279
+ double3x3 fma(double3x3, double3x3, double3x3);
1280
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_fma)
1281
+ double3x4 fma(double3x4, double3x4, double3x4);
1282
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_fma)
1283
+ double4x1 fma(double4x1, double4x1, double4x1);
1284
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_fma)
1285
+ double4x2 fma(double4x2, double4x2, double4x2);
1286
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_fma)
1287
+ double4x3 fma(double4x3, double4x3, double4x3);
1288
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_fma)
1289
+ double4x4 fma(double4x4, double4x4, double4x4);
1290
+
1291
+ /// \fn T frac(T x)
1292
+ /// \brief Returns the fractional (or decimal) part of x. \a x parameter.
1293
+ /// \param x The specified input value.
1294
+ ///
1295
+ /// If \a the return value is greater than or equal to 0 and less than 1.
1296
+ // frac overloads
1297
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1298
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_frac)
1299
+ half frac(half);
1300
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1301
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_frac)
1302
+ half2 frac(half2);
1303
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1304
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_frac)
1305
+ half3 frac(half3);
1306
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1307
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_frac)
1308
+ half4 frac(half4);
1309
+
1310
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_frac)
1311
+ float frac(float);
1312
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_frac)
1313
+ float2 frac(float2);
1314
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_frac)
1315
+ float3 frac(float3);
1316
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_frac)
1317
+ float4 frac(float4);
1318
+
1319
+ /// \fn void GroupMemoryBarrier(void)
1320
+ /// \brief Blocks execution of all threads in a group until all group shared
1321
+ /// accesses have been completed.
1322
+ // GroupMemoryBarrier overloads
1323
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_group_memory_barrier)
1324
+ __attribute__((convergent)) void GroupMemoryBarrier();
1325
+
1326
+ /// \fn void GroupMemoryBarrierWithGroupSync(void)
1327
+ /// \brief Blocks execution of all threads in a group until all group shared
1328
+ /// accesses have been completed and all threads in the group have reached this
1329
+ /// call.
1330
+ // GroupMemoryBarrierWithGroupSync overloads
1331
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_group_memory_barrier_with_group_sync)
1332
+ __attribute__((convergent)) void GroupMemoryBarrierWithGroupSync();
1333
+
1334
+ /// \fn T isinf(T x)
1335
+ /// \brief Determines if the specified value \a x is infinite.
1336
+ /// \param x The specified input value.
1337
+ ///
1338
+ /// Returns a value of the same size as the input, with a value set
1339
+ /// to True if the x parameter is +INF or -INF. Otherwise, False.
1340
+ // isinf overloads
1341
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1342
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_isinf)
1343
+ bool isinf(half);
1344
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1345
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_isinf)
1346
+ bool2 isinf(half2);
1347
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1348
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_isinf)
1349
+ bool3 isinf(half3);
1350
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1351
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_isinf)
1352
+ bool4 isinf(half4);
1353
+
1354
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_isinf)
1355
+ bool isinf(float);
1356
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_isinf)
1357
+ bool2 isinf(float2);
1358
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_isinf)
1359
+ bool3 isinf(float3);
1360
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_isinf)
1361
+ bool4 isinf(float4);
1362
+
1363
+ /// \fn T isnan(T x)
1364
+ /// \brief Determines if the specified value \a x is Not a Number.
1365
+ /// \param x The specified input value.
1366
+ ///
1367
+ /// Returns a value of the same size as the input, with a value set
1368
+ /// to True if the x parameter is NaN or QNaN. Otherwise, False.
1369
+ // isnan overloads
1370
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1371
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_isnan)
1372
+ bool isnan(half);
1373
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1374
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_isnan)
1375
+ bool2 isnan(half2);
1376
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1377
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_isnan)
1378
+ bool3 isnan(half3);
1379
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1380
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_isnan)
1381
+ bool4 isnan(half4);
1382
+
1383
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_isnan)
1384
+ bool isnan(float);
1385
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_isnan)
1386
+ bool2 isnan(float2);
1387
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_isnan)
1388
+ bool3 isnan(float3);
1389
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_isnan)
1390
+ bool4 isnan(float4);
1391
+
1392
+ /// \fn T lerp(T x, T y, T s)
1393
+ /// \brief Returns the linear interpolation of x to y by s.
1394
+ /// \param x [in] The first-floating point value.
1395
+ /// \param y [in] The second-floating point value.
1396
+ /// \param s [in] A value that linearly interpolates between the x parameter and
1397
+ /// the y parameter.
1398
+ ///
1399
+ /// Linear interpolation is based on the following formula: x*(1-s) + y*s which
1400
+ /// can equivalently be written as x + s(y-x).
1401
+ // lerp overloads
1402
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1403
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_lerp)
1404
+ half lerp(half, half, half);
1405
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1406
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_lerp)
1407
+ half2 lerp(half2, half2, half2);
1408
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1409
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_lerp)
1410
+ half3 lerp(half3, half3, half3);
1411
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1412
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_lerp)
1413
+ half4 lerp(half4, half4, half4);
1414
+
1415
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_lerp)
1416
+ float lerp(float, float, float);
1417
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_lerp)
1418
+ float2 lerp(float2, float2, float2);
1419
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_lerp)
1420
+ float3 lerp(float3, float3, float3);
1421
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_lerp)
1422
+ float4 lerp(float4, float4, float4);
1423
+
1424
+ /// \fn T log(T Val)
1425
+ /// \brief The base-e logarithm of the input value, \a Val parameter.
1426
+ /// \param Val The input value.
1427
+ ///
1428
+ /// If \a Val is negative, this result is undefined. If \a Val is 0, this
1429
+ /// function returns negative infinity.
1430
+ // log overloads
1431
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1432
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_log)
1433
+ half log(half);
1434
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1435
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_log)
1436
+ half2 log(half2);
1437
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1438
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_log)
1439
+ half3 log(half3);
1440
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1441
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_log)
1442
+ half4 log(half4);
1443
+
1444
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_log)
1445
+ float log(float);
1446
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_log)
1447
+ float2 log(float2);
1448
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_log)
1449
+ float3 log(float3);
1450
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_log)
1451
+ float4 log(float4);
1452
+
1453
+ /// \fn T log2(T Val)
1454
+ /// \brief The base-2 logarithm of the input value, \a Val parameter.
1455
+ /// \param Val The input value.
1456
+ ///
1457
+ /// If \a Val is negative, this result is undefined. If \a Val is 0, this
1458
+ /// function returns negative infinity.
1459
+ // log2 overloads
1460
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1461
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_log2)
1462
+ half log2(half);
1463
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1464
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_log2)
1465
+ half2 log2(half2);
1466
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1467
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_log2)
1468
+ half3 log2(half3);
1469
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1470
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_log2)
1471
+ half4 log2(half4);
1472
+
1473
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_log2)
1474
+ float log2(float);
1475
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_log2)
1476
+ float2 log2(float2);
1477
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_log2)
1478
+ float3 log2(float3);
1479
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_log2)
1480
+ float4 log2(float4);
1481
+
1482
+ /// \fn T log10(T Val)
1483
+ /// \brief The base-10 logarithm of the input value, \a Val parameter.
1484
+ /// \param Val The input value.
1485
+ ///
1486
+ /// If \a Val is negative, this result is undefined. If \a Val is 0, this
1487
+ /// function returns negative infinity.
1488
+ // log10 overloads
1489
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1490
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_log10)
1491
+ half log10(half);
1492
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1493
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_log10)
1494
+ half2 log10(half2);
1495
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1496
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_log10)
1497
+ half3 log10(half3);
1498
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1499
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_log10)
1500
+ half4 log10(half4);
1501
+
1502
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_log10)
1503
+ float log10(float);
1504
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_log10)
1505
+ float2 log10(float2);
1506
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_log10)
1507
+ float3 log10(float3);
1508
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_log10)
1509
+ float4 log10(float4);
1510
+
1511
+ /// \fn T mad(T M, T A, T B)
1512
+ /// \brief The result of \a M * \a A + \a B.
1513
+ /// \param M The multiplication value.
1514
+ /// \param A The first addition value.
1515
+ /// \param B The second addition value.
1516
+ // mad overloads
1517
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1518
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_mad)
1519
+ half mad(half, half, half);
1520
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1521
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_mad)
1522
+ half2 mad(half2, half2, half2);
1523
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1524
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_mad)
1525
+ half3 mad(half3, half3, half3);
1526
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1527
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_mad)
1528
+ half4 mad(half4, half4, half4);
1529
+
1530
+ #ifdef __HLSL_ENABLE_16_BIT
1531
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
1532
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_mad)
1533
+ int16_t mad(int16_t, int16_t, int16_t);
1534
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
1535
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_mad)
1536
+ int16_t2 mad(int16_t2, int16_t2, int16_t2);
1537
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
1538
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_mad)
1539
+ int16_t3 mad(int16_t3, int16_t3, int16_t3);
1540
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
1541
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_mad)
1542
+ int16_t4 mad(int16_t4, int16_t4, int16_t4);
1543
+
1544
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
1545
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_mad)
1546
+ uint16_t mad(uint16_t, uint16_t, uint16_t);
1547
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
1548
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_mad)
1549
+ uint16_t2 mad(uint16_t2, uint16_t2, uint16_t2);
1550
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
1551
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_mad)
1552
+ uint16_t3 mad(uint16_t3, uint16_t3, uint16_t3);
1553
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
1554
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_mad)
1555
+ uint16_t4 mad(uint16_t4, uint16_t4, uint16_t4);
1556
+ #endif
1557
+
1558
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_mad)
1559
+ int mad(int, int, int);
1560
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_mad)
1561
+ int2 mad(int2, int2, int2);
1562
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_mad)
1563
+ int3 mad(int3, int3, int3);
1564
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_mad)
1565
+ int4 mad(int4, int4, int4);
1566
+
1567
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_mad)
1568
+ uint mad(uint, uint, uint);
1569
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_mad)
1570
+ uint2 mad(uint2, uint2, uint2);
1571
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_mad)
1572
+ uint3 mad(uint3, uint3, uint3);
1573
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_mad)
1574
+ uint4 mad(uint4, uint4, uint4);
1575
+
1576
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_mad)
1577
+ int64_t mad(int64_t, int64_t, int64_t);
1578
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_mad)
1579
+ int64_t2 mad(int64_t2, int64_t2, int64_t2);
1580
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_mad)
1581
+ int64_t3 mad(int64_t3, int64_t3, int64_t3);
1582
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_mad)
1583
+ int64_t4 mad(int64_t4, int64_t4, int64_t4);
1584
+
1585
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_mad)
1586
+ uint64_t mad(uint64_t, uint64_t, uint64_t);
1587
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_mad)
1588
+ uint64_t2 mad(uint64_t2, uint64_t2, uint64_t2);
1589
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_mad)
1590
+ uint64_t3 mad(uint64_t3, uint64_t3, uint64_t3);
1591
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_mad)
1592
+ uint64_t4 mad(uint64_t4, uint64_t4, uint64_t4);
1593
+
1594
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_mad)
1595
+ float mad(float, float, float);
1596
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_mad)
1597
+ float2 mad(float2, float2, float2);
1598
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_mad)
1599
+ float3 mad(float3, float3, float3);
1600
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_mad)
1601
+ float4 mad(float4, float4, float4);
1602
+
1603
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_mad)
1604
+ double mad(double, double, double);
1605
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_mad)
1606
+ double2 mad(double2, double2, double2);
1607
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_mad)
1608
+ double3 mad(double3, double3, double3);
1609
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_mad)
1610
+ double4 mad(double4, double4, double4);
1611
+
1612
+ /// \fn T max(T X, T Y)
1613
+ /// \brief Return the greater of \a X and \a Y.
1614
+ /// \param X The X input value.
1615
+ /// \param Y The Y input value.
1616
+ // max overloads
1617
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1618
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_max)
1619
+ half max(half, half);
1620
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1621
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_max)
1622
+ half2 max(half2, half2);
1623
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1624
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_max)
1625
+ half3 max(half3, half3);
1626
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1627
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_max)
1628
+ half4 max(half4, half4);
1629
+
1630
+ #ifdef __HLSL_ENABLE_16_BIT
1631
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
1632
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_max)
1633
+ int16_t max(int16_t, int16_t);
1634
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
1635
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_max)
1636
+ int16_t2 max(int16_t2, int16_t2);
1637
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
1638
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_max)
1639
+ int16_t3 max(int16_t3, int16_t3);
1640
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
1641
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_max)
1642
+ int16_t4 max(int16_t4, int16_t4);
1643
+
1644
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
1645
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_max)
1646
+ uint16_t max(uint16_t, uint16_t);
1647
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
1648
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_max)
1649
+ uint16_t2 max(uint16_t2, uint16_t2);
1650
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
1651
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_max)
1652
+ uint16_t3 max(uint16_t3, uint16_t3);
1653
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
1654
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_max)
1655
+ uint16_t4 max(uint16_t4, uint16_t4);
1656
+ #endif
1657
+
1658
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_max)
1659
+ int max(int, int);
1660
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_max)
1661
+ int2 max(int2, int2);
1662
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_max)
1663
+ int3 max(int3, int3);
1664
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_max)
1665
+ int4 max(int4, int4);
1666
+
1667
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_max)
1668
+ uint max(uint, uint);
1669
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_max)
1670
+ uint2 max(uint2, uint2);
1671
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_max)
1672
+ uint3 max(uint3, uint3);
1673
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_max)
1674
+ uint4 max(uint4, uint4);
1675
+
1676
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_max)
1677
+ int64_t max(int64_t, int64_t);
1678
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_max)
1679
+ int64_t2 max(int64_t2, int64_t2);
1680
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_max)
1681
+ int64_t3 max(int64_t3, int64_t3);
1682
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_max)
1683
+ int64_t4 max(int64_t4, int64_t4);
1684
+
1685
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_max)
1686
+ uint64_t max(uint64_t, uint64_t);
1687
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_max)
1688
+ uint64_t2 max(uint64_t2, uint64_t2);
1689
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_max)
1690
+ uint64_t3 max(uint64_t3, uint64_t3);
1691
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_max)
1692
+ uint64_t4 max(uint64_t4, uint64_t4);
1693
+
1694
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_max)
1695
+ float max(float, float);
1696
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_max)
1697
+ float2 max(float2, float2);
1698
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_max)
1699
+ float3 max(float3, float3);
1700
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_max)
1701
+ float4 max(float4, float4);
1702
+
1703
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_max)
1704
+ double max(double, double);
1705
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_max)
1706
+ double2 max(double2, double2);
1707
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_max)
1708
+ double3 max(double3, double3);
1709
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_max)
1710
+ double4 max(double4, double4);
1711
+
1712
+ /// \fn T min(T X, T Y)
1713
+ /// \brief Return the lesser of \a X and \a Y.
1714
+ /// \param X The X input value.
1715
+ /// \param Y The Y input value.
1716
+ // min overloads
1717
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1718
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_min)
1719
+ half min(half, half);
1720
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1721
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_min)
1722
+ half2 min(half2, half2);
1723
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1724
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_min)
1725
+ half3 min(half3, half3);
1726
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1727
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_min)
1728
+ half4 min(half4, half4);
1729
+
1730
+ #ifdef __HLSL_ENABLE_16_BIT
1731
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
1732
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_min)
1733
+ int16_t min(int16_t, int16_t);
1734
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
1735
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_min)
1736
+ int16_t2 min(int16_t2, int16_t2);
1737
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
1738
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_min)
1739
+ int16_t3 min(int16_t3, int16_t3);
1740
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
1741
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_min)
1742
+ int16_t4 min(int16_t4, int16_t4);
1743
+
1744
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
1745
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_min)
1746
+ uint16_t min(uint16_t, uint16_t);
1747
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
1748
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_min)
1749
+ uint16_t2 min(uint16_t2, uint16_t2);
1750
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
1751
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_min)
1752
+ uint16_t3 min(uint16_t3, uint16_t3);
1753
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
1754
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_min)
1755
+ uint16_t4 min(uint16_t4, uint16_t4);
1756
+ #endif
1757
+
1758
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_min)
1759
+ int min(int, int);
1760
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_min)
1761
+ int2 min(int2, int2);
1762
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_min)
1763
+ int3 min(int3, int3);
1764
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_min)
1765
+ int4 min(int4, int4);
1766
+
1767
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_min)
1768
+ uint min(uint, uint);
1769
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_min)
1770
+ uint2 min(uint2, uint2);
1771
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_min)
1772
+ uint3 min(uint3, uint3);
1773
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_min)
1774
+ uint4 min(uint4, uint4);
1775
+
1776
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_min)
1777
+ int64_t min(int64_t, int64_t);
1778
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_min)
1779
+ int64_t2 min(int64_t2, int64_t2);
1780
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_min)
1781
+ int64_t3 min(int64_t3, int64_t3);
1782
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_min)
1783
+ int64_t4 min(int64_t4, int64_t4);
1784
+
1785
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_min)
1786
+ uint64_t min(uint64_t, uint64_t);
1787
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_min)
1788
+ uint64_t2 min(uint64_t2, uint64_t2);
1789
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_min)
1790
+ uint64_t3 min(uint64_t3, uint64_t3);
1791
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_min)
1792
+ uint64_t4 min(uint64_t4, uint64_t4);
1793
+
1794
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_min)
1795
+ float min(float, float);
1796
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_min)
1797
+ float2 min(float2, float2);
1798
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_min)
1799
+ float3 min(float3, float3);
1800
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_min)
1801
+ float4 min(float4, float4);
1802
+
1803
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_min)
1804
+ double min(double, double);
1805
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_min)
1806
+ double2 min(double2, double2);
1807
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_min)
1808
+ double3 min(double3, double3);
1809
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_min)
1810
+ double4 min(double4, double4);
1811
+
1812
+ /// \fn uint NonUniformResourceIndex(uint I)
1813
+ /// \brief A compiler hint to indicate that a resource index varies across
1814
+ /// threads within a wave (i.e., it is non-uniform).
1815
+ /// \param I [in] Resource array index
1816
+ ///
1817
+ /// The return value is the \a I parameter.
1818
+ // NonUniformResourceIndex overloads
1819
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_resource_nonuniformindex)
1820
+ uint NonUniformResourceIndex(uint);
1821
+
1822
+ /// \fn T normalize(T x)
1823
+ /// \brief Returns the normalized unit vector of the specified floating-point
1824
+ /// vector.
1825
+ /// \param x [in] The vector of floats.
1826
+ ///
1827
+ /// Normalize is based on the following formula: x / length(x).
1828
+ // normalize overloads
1829
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1830
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_normalize)
1831
+ half normalize(half);
1832
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1833
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_normalize)
1834
+ half2 normalize(half2);
1835
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1836
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_normalize)
1837
+ half3 normalize(half3);
1838
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1839
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_normalize)
1840
+ half4 normalize(half4);
1841
+
1842
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_normalize)
1843
+ float normalize(float);
1844
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_normalize)
1845
+ float2 normalize(float2);
1846
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_normalize)
1847
+ float3 normalize(float3);
1848
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_normalize)
1849
+ float4 normalize(float4);
1850
+
1851
+ /// \fn bool or(bool x, bool y)
1852
+ /// \brief Logically ors two boolean vectors or matrices elementwise and
1853
+ /// produces a bool vector or matrix output.
1854
+ // or overloads
1855
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_or)
1856
+ bool or(bool, bool);
1857
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_or)
1858
+ bool2 or(bool2, bool2);
1859
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_or)
1860
+ bool3 or(bool3, bool3);
1861
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_or)
1862
+ bool4 or(bool4, bool4);
1863
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_or)
1864
+ bool1x2 or(bool1x2, bool1x2);
1865
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_or)
1866
+ bool1x3 or(bool1x3, bool1x3);
1867
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_or)
1868
+ bool1x4 or(bool1x4, bool1x4);
1869
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_or)
1870
+ bool2x1 or(bool2x1, bool2x1);
1871
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_or)
1872
+ bool2x2 or(bool2x2, bool2x2);
1873
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_or)
1874
+ bool2x3 or(bool2x3, bool2x3);
1875
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_or)
1876
+ bool2x4 or(bool2x4, bool2x4);
1877
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_or)
1878
+ bool3x1 or(bool3x1, bool3x1);
1879
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_or)
1880
+ bool3x2 or(bool3x2, bool3x2);
1881
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_or)
1882
+ bool3x3 or(bool3x3, bool3x3);
1883
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_or)
1884
+ bool3x4 or(bool3x4, bool3x4);
1885
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_or)
1886
+ bool4x1 or(bool4x1, bool4x1);
1887
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_or)
1888
+ bool4x2 or(bool4x2, bool4x2);
1889
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_or)
1890
+ bool4x3 or(bool4x3, bool4x3);
1891
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_or)
1892
+ bool4x4 or(bool4x4, bool4x4);
1893
+
1894
+ /// \fn T pow(T Val, T Pow)
1895
+ /// \brief Return the value \a Val, raised to the power \a Pow.
1896
+ /// \param Val The input value.
1897
+ /// \param Pow The specified power.
1898
+ // pow overloads
1899
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1900
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_pow)
1901
+ half pow(half, half);
1902
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1903
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_pow)
1904
+ half2 pow(half2, half2);
1905
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1906
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_pow)
1907
+ half3 pow(half3, half3);
1908
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1909
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_pow)
1910
+ half4 pow(half4, half4);
1911
+
1912
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_pow)
1913
+ float pow(float, float);
1914
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_pow)
1915
+ float2 pow(float2, float2);
1916
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_pow)
1917
+ float3 pow(float3, float3);
1918
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_pow)
1919
+ float4 pow(float4, float4);
1920
+
1921
+ /// \brief Returns the value from the lane diagonally opposite from the current lane in the quad.
1922
+ /// \param Val The input value.
1923
+ // QuadReadAcrossDiagonal overloads
1924
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1925
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_diagonal)
1926
+ __attribute__((convergent)) half QuadReadAcrossDiagonal(half);
1927
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1928
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_diagonal)
1929
+ __attribute__((convergent)) half2 QuadReadAcrossDiagonal(half2);
1930
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1931
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_diagonal)
1932
+ __attribute__((convergent)) half3 QuadReadAcrossDiagonal(half3);
1933
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1934
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_diagonal)
1935
+ __attribute__((convergent)) half4 QuadReadAcrossDiagonal(half4);
1936
+
1937
+ #ifdef __HLSL_ENABLE_16_BIT
1938
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
1939
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_diagonal)
1940
+ __attribute__((convergent)) int16_t QuadReadAcrossDiagonal(int16_t);
1941
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
1942
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_diagonal)
1943
+ __attribute__((convergent)) int16_t2 QuadReadAcrossDiagonal(int16_t2);
1944
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
1945
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_diagonal)
1946
+ __attribute__((convergent)) int16_t3 QuadReadAcrossDiagonal(int16_t3);
1947
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
1948
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_diagonal)
1949
+ __attribute__((convergent)) int16_t4 QuadReadAcrossDiagonal(int16_t4);
1950
+
1951
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
1952
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_diagonal)
1953
+ __attribute__((convergent)) uint16_t QuadReadAcrossDiagonal(uint16_t);
1954
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
1955
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_diagonal)
1956
+ __attribute__((convergent)) uint16_t2 QuadReadAcrossDiagonal(uint16_t2);
1957
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
1958
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_diagonal)
1959
+ __attribute__((convergent)) uint16_t3 QuadReadAcrossDiagonal(uint16_t3);
1960
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
1961
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_diagonal)
1962
+ __attribute__((convergent)) uint16_t4 QuadReadAcrossDiagonal(uint16_t4);
1963
+ #endif
1964
+
1965
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_diagonal)
1966
+ __attribute__((convergent)) int QuadReadAcrossDiagonal(int);
1967
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_diagonal)
1968
+ __attribute__((convergent)) int2 QuadReadAcrossDiagonal(int2);
1969
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_diagonal)
1970
+ __attribute__((convergent)) int3 QuadReadAcrossDiagonal(int3);
1971
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_diagonal)
1972
+ __attribute__((convergent)) int4 QuadReadAcrossDiagonal(int4);
1973
+
1974
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_diagonal)
1975
+ __attribute__((convergent)) uint QuadReadAcrossDiagonal(uint);
1976
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_diagonal)
1977
+ __attribute__((convergent)) uint2 QuadReadAcrossDiagonal(uint2);
1978
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_diagonal)
1979
+ __attribute__((convergent)) uint3 QuadReadAcrossDiagonal(uint3);
1980
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_diagonal)
1981
+ __attribute__((convergent)) uint4 QuadReadAcrossDiagonal(uint4);
1982
+
1983
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_diagonal)
1984
+ __attribute__((convergent)) int64_t QuadReadAcrossDiagonal(int64_t);
1985
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_diagonal)
1986
+ __attribute__((convergent)) int64_t2 QuadReadAcrossDiagonal(int64_t2);
1987
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_diagonal)
1988
+ __attribute__((convergent)) int64_t3 QuadReadAcrossDiagonal(int64_t3);
1989
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_diagonal)
1990
+ __attribute__((convergent)) int64_t4 QuadReadAcrossDiagonal(int64_t4);
1991
+
1992
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_diagonal)
1993
+ __attribute__((convergent)) uint64_t QuadReadAcrossDiagonal(uint64_t);
1994
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_diagonal)
1995
+ __attribute__((convergent)) uint64_t2 QuadReadAcrossDiagonal(uint64_t2);
1996
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_diagonal)
1997
+ __attribute__((convergent)) uint64_t3 QuadReadAcrossDiagonal(uint64_t3);
1998
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_diagonal)
1999
+ __attribute__((convergent)) uint64_t4 QuadReadAcrossDiagonal(uint64_t4);
2000
+
2001
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_diagonal)
2002
+ __attribute__((convergent)) float QuadReadAcrossDiagonal(float);
2003
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_diagonal)
2004
+ __attribute__((convergent)) float2 QuadReadAcrossDiagonal(float2);
2005
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_diagonal)
2006
+ __attribute__((convergent)) float3 QuadReadAcrossDiagonal(float3);
2007
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_diagonal)
2008
+ __attribute__((convergent)) float4 QuadReadAcrossDiagonal(float4);
2009
+
2010
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_diagonal)
2011
+ __attribute__((convergent)) double QuadReadAcrossDiagonal(double);
2012
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_diagonal)
2013
+ __attribute__((convergent)) double2 QuadReadAcrossDiagonal(double2);
2014
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_diagonal)
2015
+ __attribute__((convergent)) double3 QuadReadAcrossDiagonal(double3);
2016
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_diagonal)
2017
+ __attribute__((convergent)) double4 QuadReadAcrossDiagonal(double4);
2018
+
2019
+ /// \brief Reads the value from the lane across the X axis of the quad.
2020
+ /// \param Val The input value.
2021
+ // QuadReadAcrossX overloads
2022
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2023
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_x)
2024
+ __attribute__((convergent)) half QuadReadAcrossX(half);
2025
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2026
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_x)
2027
+ __attribute__((convergent)) half2 QuadReadAcrossX(half2);
2028
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2029
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_x)
2030
+ __attribute__((convergent)) half3 QuadReadAcrossX(half3);
2031
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2032
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_x)
2033
+ __attribute__((convergent)) half4 QuadReadAcrossX(half4);
2034
+
2035
+ #ifdef __HLSL_ENABLE_16_BIT
2036
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
2037
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_x)
2038
+ __attribute__((convergent)) int16_t QuadReadAcrossX(int16_t);
2039
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
2040
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_x)
2041
+ __attribute__((convergent)) int16_t2 QuadReadAcrossX(int16_t2);
2042
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
2043
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_x)
2044
+ __attribute__((convergent)) int16_t3 QuadReadAcrossX(int16_t3);
2045
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
2046
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_x)
2047
+ __attribute__((convergent)) int16_t4 QuadReadAcrossX(int16_t4);
2048
+
2049
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
2050
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_x)
2051
+ __attribute__((convergent)) uint16_t QuadReadAcrossX(uint16_t);
2052
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
2053
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_x)
2054
+ __attribute__((convergent)) uint16_t2 QuadReadAcrossX(uint16_t2);
2055
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
2056
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_x)
2057
+ __attribute__((convergent)) uint16_t3 QuadReadAcrossX(uint16_t3);
2058
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
2059
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_x)
2060
+ __attribute__((convergent)) uint16_t4 QuadReadAcrossX(uint16_t4);
2061
+ #endif
2062
+
2063
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_x)
2064
+ __attribute__((convergent)) int QuadReadAcrossX(int);
2065
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_x)
2066
+ __attribute__((convergent)) int2 QuadReadAcrossX(int2);
2067
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_x)
2068
+ __attribute__((convergent)) int3 QuadReadAcrossX(int3);
2069
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_x)
2070
+ __attribute__((convergent)) int4 QuadReadAcrossX(int4);
2071
+
2072
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_x)
2073
+ __attribute__((convergent)) uint QuadReadAcrossX(uint);
2074
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_x)
2075
+ __attribute__((convergent)) uint2 QuadReadAcrossX(uint2);
2076
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_x)
2077
+ __attribute__((convergent)) uint3 QuadReadAcrossX(uint3);
2078
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_x)
2079
+ __attribute__((convergent)) uint4 QuadReadAcrossX(uint4);
2080
+
2081
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_x)
2082
+ __attribute__((convergent)) int64_t QuadReadAcrossX(int64_t);
2083
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_x)
2084
+ __attribute__((convergent)) int64_t2 QuadReadAcrossX(int64_t2);
2085
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_x)
2086
+ __attribute__((convergent)) int64_t3 QuadReadAcrossX(int64_t3);
2087
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_x)
2088
+ __attribute__((convergent)) int64_t4 QuadReadAcrossX(int64_t4);
2089
+
2090
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_x)
2091
+ __attribute__((convergent)) uint64_t QuadReadAcrossX(uint64_t);
2092
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_x)
2093
+ __attribute__((convergent)) uint64_t2 QuadReadAcrossX(uint64_t2);
2094
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_x)
2095
+ __attribute__((convergent)) uint64_t3 QuadReadAcrossX(uint64_t3);
2096
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_x)
2097
+ __attribute__((convergent)) uint64_t4 QuadReadAcrossX(uint64_t4);
2098
+
2099
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_x)
2100
+ __attribute__((convergent)) float QuadReadAcrossX(float);
2101
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_x)
2102
+ __attribute__((convergent)) float2 QuadReadAcrossX(float2);
2103
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_x)
2104
+ __attribute__((convergent)) float3 QuadReadAcrossX(float3);
2105
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_x)
2106
+ __attribute__((convergent)) float4 QuadReadAcrossX(float4);
2107
+
2108
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_x)
2109
+ __attribute__((convergent)) double QuadReadAcrossX(double);
2110
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_x)
2111
+ __attribute__((convergent)) double2 QuadReadAcrossX(double2);
2112
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_x)
2113
+ __attribute__((convergent)) double3 QuadReadAcrossX(double3);
2114
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_x)
2115
+ __attribute__((convergent)) double4 QuadReadAcrossX(double4);
2116
+
2117
+ /// \brief Reads the value from the lane across the Y axis of the quad.
2118
+ /// \param Val The input value.
2119
+ // QuadReadAcrossY overloads
2120
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2121
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_y)
2122
+ __attribute__((convergent)) half QuadReadAcrossY(half);
2123
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2124
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_y)
2125
+ __attribute__((convergent)) half2 QuadReadAcrossY(half2);
2126
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2127
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_y)
2128
+ __attribute__((convergent)) half3 QuadReadAcrossY(half3);
2129
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2130
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_y)
2131
+ __attribute__((convergent)) half4 QuadReadAcrossY(half4);
2132
+
2133
+ #ifdef __HLSL_ENABLE_16_BIT
2134
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
2135
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_y)
2136
+ __attribute__((convergent)) int16_t QuadReadAcrossY(int16_t);
2137
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
2138
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_y)
2139
+ __attribute__((convergent)) int16_t2 QuadReadAcrossY(int16_t2);
2140
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
2141
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_y)
2142
+ __attribute__((convergent)) int16_t3 QuadReadAcrossY(int16_t3);
2143
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
2144
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_y)
2145
+ __attribute__((convergent)) int16_t4 QuadReadAcrossY(int16_t4);
2146
+
2147
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
2148
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_y)
2149
+ __attribute__((convergent)) uint16_t QuadReadAcrossY(uint16_t);
2150
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
2151
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_y)
2152
+ __attribute__((convergent)) uint16_t2 QuadReadAcrossY(uint16_t2);
2153
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
2154
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_y)
2155
+ __attribute__((convergent)) uint16_t3 QuadReadAcrossY(uint16_t3);
2156
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
2157
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_y)
2158
+ __attribute__((convergent)) uint16_t4 QuadReadAcrossY(uint16_t4);
2159
+ #endif
2160
+
2161
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_y)
2162
+ __attribute__((convergent)) int QuadReadAcrossY(int);
2163
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_y)
2164
+ __attribute__((convergent)) int2 QuadReadAcrossY(int2);
2165
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_y)
2166
+ __attribute__((convergent)) int3 QuadReadAcrossY(int3);
2167
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_y)
2168
+ __attribute__((convergent)) int4 QuadReadAcrossY(int4);
2169
+
2170
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_y)
2171
+ __attribute__((convergent)) uint QuadReadAcrossY(uint);
2172
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_y)
2173
+ __attribute__((convergent)) uint2 QuadReadAcrossY(uint2);
2174
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_y)
2175
+ __attribute__((convergent)) uint3 QuadReadAcrossY(uint3);
2176
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_y)
2177
+ __attribute__((convergent)) uint4 QuadReadAcrossY(uint4);
2178
+
2179
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_y)
2180
+ __attribute__((convergent)) int64_t QuadReadAcrossY(int64_t);
2181
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_y)
2182
+ __attribute__((convergent)) int64_t2 QuadReadAcrossY(int64_t2);
2183
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_y)
2184
+ __attribute__((convergent)) int64_t3 QuadReadAcrossY(int64_t3);
2185
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_y)
2186
+ __attribute__((convergent)) int64_t4 QuadReadAcrossY(int64_t4);
2187
+
2188
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_y)
2189
+ __attribute__((convergent)) uint64_t QuadReadAcrossY(uint64_t);
2190
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_y)
2191
+ __attribute__((convergent)) uint64_t2 QuadReadAcrossY(uint64_t2);
2192
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_y)
2193
+ __attribute__((convergent)) uint64_t3 QuadReadAcrossY(uint64_t3);
2194
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_y)
2195
+ __attribute__((convergent)) uint64_t4 QuadReadAcrossY(uint64_t4);
2196
+
2197
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_y)
2198
+ __attribute__((convergent)) float QuadReadAcrossY(float);
2199
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_y)
2200
+ __attribute__((convergent)) float2 QuadReadAcrossY(float2);
2201
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_y)
2202
+ __attribute__((convergent)) float3 QuadReadAcrossY(float3);
2203
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_y)
2204
+ __attribute__((convergent)) float4 QuadReadAcrossY(float4);
2205
+
2206
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_y)
2207
+ __attribute__((convergent)) double QuadReadAcrossY(double);
2208
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_y)
2209
+ __attribute__((convergent)) double2 QuadReadAcrossY(double2);
2210
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_y)
2211
+ __attribute__((convergent)) double3 QuadReadAcrossY(double3);
2212
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_across_y)
2213
+ __attribute__((convergent)) double4 QuadReadAcrossY(double4);
2214
+
2215
+ /// \fn T radians(T Val)
2216
+ /// \brief Converts the specified value from degrees to radians.
2217
+ // radians overloads
2218
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2219
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_radians)
2220
+ half radians(half);
2221
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2222
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_radians)
2223
+ half2 radians(half2);
2224
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2225
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_radians)
2226
+ half3 radians(half3);
2227
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2228
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_radians)
2229
+ half4 radians(half4);
2230
+
2231
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_radians)
2232
+ float radians(float);
2233
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_radians)
2234
+ float2 radians(float2);
2235
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_radians)
2236
+ float3 radians(float3);
2237
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_radians)
2238
+ float4 radians(float4);
2239
+
2240
+ /// \fn T rcp(T x)
2241
+ /// \brief Calculates a fast, approximate, per-component reciprocal ie 1 / \a x.
2242
+ /// \param x The specified input value.
2243
+ ///
2244
+ /// The return value is the reciprocal of the \a x parameter.
2245
+ // rcp overloads
2246
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2247
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_rcp)
2248
+ half rcp(half);
2249
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2250
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_rcp)
2251
+ half2 rcp(half2);
2252
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2253
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_rcp)
2254
+ half3 rcp(half3);
2255
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2256
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_rcp)
2257
+ half4 rcp(half4);
2258
+
2259
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_rcp)
2260
+ float rcp(float);
2261
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_rcp)
2262
+ float2 rcp(float2);
2263
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_rcp)
2264
+ float3 rcp(float3);
2265
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_rcp)
2266
+ float4 rcp(float4);
2267
+
2268
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_rcp)
2269
+ double rcp(double);
2270
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_rcp)
2271
+ double2 rcp(double2);
2272
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_rcp)
2273
+ double3 rcp(double3);
2274
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_rcp)
2275
+ double4 rcp(double4);
2276
+
2277
+ /// \fn T reversebits(T Val)
2278
+ /// \brief Return the value \a Val with the bit order reversed.
2279
+ /// \param Val The input value.
2280
+ // reversebits overloads
2281
+ #ifdef __HLSL_ENABLE_16_BIT
2282
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
2283
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_bitreverse)
2284
+ int16_t reversebits(int16_t);
2285
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
2286
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_bitreverse)
2287
+ int16_t2 reversebits(int16_t2);
2288
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
2289
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_bitreverse)
2290
+ int16_t3 reversebits(int16_t3);
2291
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
2292
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_bitreverse)
2293
+ int16_t4 reversebits(int16_t4);
2294
+
2295
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
2296
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_bitreverse)
2297
+ uint16_t reversebits(uint16_t);
2298
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
2299
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_bitreverse)
2300
+ uint16_t2 reversebits(uint16_t2);
2301
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
2302
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_bitreverse)
2303
+ uint16_t3 reversebits(uint16_t3);
2304
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
2305
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_bitreverse)
2306
+ uint16_t4 reversebits(uint16_t4);
2307
+ #endif
2308
+
2309
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_bitreverse)
2310
+ int reversebits(int);
2311
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_bitreverse)
2312
+ int2 reversebits(int2);
2313
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_bitreverse)
2314
+ int3 reversebits(int3);
2315
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_bitreverse)
2316
+ int4 reversebits(int4);
2317
+
2318
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_bitreverse)
2319
+ uint reversebits(uint);
2320
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_bitreverse)
2321
+ uint2 reversebits(uint2);
2322
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_bitreverse)
2323
+ uint3 reversebits(uint3);
2324
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_bitreverse)
2325
+ uint4 reversebits(uint4);
2326
+
2327
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_bitreverse)
2328
+ int64_t reversebits(int64_t);
2329
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_bitreverse)
2330
+ int64_t2 reversebits(int64_t2);
2331
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_bitreverse)
2332
+ int64_t3 reversebits(int64_t3);
2333
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_bitreverse)
2334
+ int64_t4 reversebits(int64_t4);
2335
+
2336
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_bitreverse)
2337
+ uint64_t reversebits(uint64_t);
2338
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_bitreverse)
2339
+ uint64_t2 reversebits(uint64_t2);
2340
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_bitreverse)
2341
+ uint64_t3 reversebits(uint64_t3);
2342
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_bitreverse)
2343
+ uint64_t4 reversebits(uint64_t4);
2344
+
2345
+ /// \fn T round(T x)
2346
+ /// \brief Rounds the specified value \a x to the nearest integer.
2347
+ /// \param x The specified input value.
2348
+ ///
2349
+ /// The return value is the \a x parameter, rounded to the nearest integer
2350
+ /// within a floating-point type. Halfway cases are
2351
+ /// rounded to the nearest even value.
2352
+ // round overloads
2353
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2354
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_roundeven)
2355
+ half round(half);
2356
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2357
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_roundeven)
2358
+ half2 round(half2);
2359
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2360
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_roundeven)
2361
+ half3 round(half3);
2362
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2363
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_roundeven)
2364
+ half4 round(half4);
2365
+
2366
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_roundeven)
2367
+ float round(float);
2368
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_roundeven)
2369
+ float2 round(float2);
2370
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_roundeven)
2371
+ float3 round(float3);
2372
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_roundeven)
2373
+ float4 round(float4);
2374
+
2375
+ /// \fn T rsqrt(T x)
2376
+ /// \brief Returns the reciprocal of the square root of the specified value.
2377
+ /// ie 1 / sqrt( \a x).
2378
+ /// \param x The specified input value.
2379
+ ///
2380
+ /// This function uses the following formula: 1 / sqrt(x).
2381
+ // rsqrt overloads
2382
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2383
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_rsqrt)
2384
+ half rsqrt(half);
2385
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2386
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_rsqrt)
2387
+ half2 rsqrt(half2);
2388
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2389
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_rsqrt)
2390
+ half3 rsqrt(half3);
2391
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2392
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_rsqrt)
2393
+ half4 rsqrt(half4);
2394
+
2395
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_rsqrt)
2396
+ float rsqrt(float);
2397
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_rsqrt)
2398
+ float2 rsqrt(float2);
2399
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_rsqrt)
2400
+ float3 rsqrt(float3);
2401
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_rsqrt)
2402
+ float4 rsqrt(float4);
2403
+
2404
+ /// \fn T saturate(T Val)
2405
+ /// \brief Returns input value, \a Val, clamped within the range of 0.0f
2406
+ /// to 1.0f.
2407
+ /// \param Val The input value.
2408
+ // saturate overloads
2409
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2410
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_saturate)
2411
+ half saturate(half);
2412
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2413
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_saturate)
2414
+ half2 saturate(half2);
2415
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2416
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_saturate)
2417
+ half3 saturate(half3);
2418
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2419
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_saturate)
2420
+ half4 saturate(half4);
2421
+
2422
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_saturate)
2423
+ float saturate(float);
2424
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_saturate)
2425
+ float2 saturate(float2);
2426
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_saturate)
2427
+ float3 saturate(float3);
2428
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_saturate)
2429
+ float4 saturate(float4);
2430
+
2431
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_saturate)
2432
+ double saturate(double);
2433
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_saturate)
2434
+ double2 saturate(double2);
2435
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_saturate)
2436
+ double3 saturate(double3);
2437
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_saturate)
2438
+ double4 saturate(double4);
2439
+
2440
+ /// \fn T sign(T Val)
2441
+ /// \brief Returns -1 if \a Val is less than zero; 0 if \a Val equals zero; and
2442
+ /// 1 if \a Val is greater than zero.
2443
+ /// \param Val The input value.
2444
+ // sign overloads
2445
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2446
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2447
+ int sign(half);
2448
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2449
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2450
+ int2 sign(half2);
2451
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2452
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2453
+ int3 sign(half3);
2454
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2455
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2456
+ int4 sign(half4);
2457
+
2458
+ #ifdef __HLSL_ENABLE_16_BIT
2459
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
2460
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2461
+ int sign(int16_t);
2462
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
2463
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2464
+ int2 sign(int16_t2);
2465
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
2466
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2467
+ int3 sign(int16_t3);
2468
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
2469
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2470
+ int4 sign(int16_t4);
2471
+
2472
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
2473
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2474
+ int sign(uint16_t);
2475
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
2476
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2477
+ int2 sign(uint16_t2);
2478
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
2479
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2480
+ int3 sign(uint16_t3);
2481
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
2482
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2483
+ int4 sign(uint16_t4);
2484
+ #endif
2485
+
2486
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2487
+ int sign(int);
2488
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2489
+ int2 sign(int2);
2490
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2491
+ int3 sign(int3);
2492
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2493
+ int4 sign(int4);
2494
+
2495
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2496
+ int sign(uint);
2497
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2498
+ int2 sign(uint2);
2499
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2500
+ int3 sign(uint3);
2501
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2502
+ int4 sign(uint4);
2503
+
2504
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2505
+ int sign(int64_t);
2506
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2507
+ int2 sign(int64_t2);
2508
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2509
+ int3 sign(int64_t3);
2510
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2511
+ int4 sign(int64_t4);
2512
+
2513
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2514
+ int sign(uint64_t);
2515
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2516
+ int2 sign(uint64_t2);
2517
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2518
+ int3 sign(uint64_t3);
2519
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2520
+ int4 sign(uint64_t4);
2521
+
2522
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2523
+ int sign(float);
2524
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2525
+ int2 sign(float2);
2526
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2527
+ int3 sign(float3);
2528
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2529
+ int4 sign(float4);
2530
+
2531
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2532
+ int sign(double);
2533
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2534
+ int2 sign(double2);
2535
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2536
+ int3 sign(double3);
2537
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2538
+ int4 sign(double4);
2539
+
2540
+ /// \fn T sin(T Val)
2541
+ /// \brief Returns the sine of the input value, \a Val.
2542
+ /// \param Val The input value.
2543
+ // sin overloads
2544
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2545
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_sin)
2546
+ half sin(half);
2547
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2548
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_sin)
2549
+ half2 sin(half2);
2550
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2551
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_sin)
2552
+ half3 sin(half3);
2553
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2554
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_sin)
2555
+ half4 sin(half4);
2556
+
2557
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_sin)
2558
+ float sin(float);
2559
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_sin)
2560
+ float2 sin(float2);
2561
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_sin)
2562
+ float3 sin(float3);
2563
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_sin)
2564
+ float4 sin(float4);
2565
+
2566
+ /// \fn T sinh(T Val)
2567
+ /// \brief Returns the hyperbolic sine of the input value, \a Val.
2568
+ /// \param Val The input value.
2569
+ // sinh overloads
2570
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2571
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_sinh)
2572
+ half sinh(half);
2573
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2574
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_sinh)
2575
+ half2 sinh(half2);
2576
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2577
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_sinh)
2578
+ half3 sinh(half3);
2579
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2580
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_sinh)
2581
+ half4 sinh(half4);
2582
+
2583
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_sinh)
2584
+ float sinh(float);
2585
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_sinh)
2586
+ float2 sinh(float2);
2587
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_sinh)
2588
+ float3 sinh(float3);
2589
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_sinh)
2590
+ float4 sinh(float4);
2591
+
2592
+ /// \fn T sqrt(T Val)
2593
+ /// \brief Returns the square root of the input value, \a Val.
2594
+ /// \param Val The input value.
2595
+ // sqrt overloads
2596
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2597
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_sqrt)
2598
+ half sqrt(half);
2599
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2600
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_sqrt)
2601
+ half2 sqrt(half2);
2602
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2603
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_sqrt)
2604
+ half3 sqrt(half3);
2605
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2606
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_sqrt)
2607
+ half4 sqrt(half4);
2608
+
2609
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_sqrt)
2610
+ float sqrt(float);
2611
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_sqrt)
2612
+ float2 sqrt(float2);
2613
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_sqrt)
2614
+ float3 sqrt(float3);
2615
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_sqrt)
2616
+ float4 sqrt(float4);
2617
+
2618
+ /// \fn T step(T y, T x)
2619
+ /// \brief Returns 1 if the x parameter is greater than or equal to the y
2620
+ /// parameter; otherwise, 0.
2621
+ /// \param y [in] The first floating-point value to compare.
2622
+ /// \param x [in] The second floating-point value to compare.
2623
+ ///
2624
+ /// Step is based on the following formula: (x >= y) ? 1 : 0
2625
+ // step overloads
2626
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2627
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_step)
2628
+ half step(half, half);
2629
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2630
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_step)
2631
+ half2 step(half2, half2);
2632
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2633
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_step)
2634
+ half3 step(half3, half3);
2635
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2636
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_step)
2637
+ half4 step(half4, half4);
2638
+
2639
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_step)
2640
+ float step(float, float);
2641
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_step)
2642
+ float2 step(float2, float2);
2643
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_step)
2644
+ float3 step(float3, float3);
2645
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_step)
2646
+ float4 step(float4, float4);
2647
+
2648
+ /// \fn T tan(T Val)
2649
+ /// \brief Returns the tangent of the input value, \a Val.
2650
+ /// \param Val The input value.
2651
+ // tan overloads
2652
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2653
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_tan)
2654
+ half tan(half);
2655
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2656
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_tan)
2657
+ half2 tan(half2);
2658
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2659
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_tan)
2660
+ half3 tan(half3);
2661
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2662
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_tan)
2663
+ half4 tan(half4);
2664
+
2665
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_tan)
2666
+ float tan(float);
2667
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_tan)
2668
+ float2 tan(float2);
2669
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_tan)
2670
+ float3 tan(float3);
2671
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_tan)
2672
+ float4 tan(float4);
2673
+
2674
+ /// \fn T tanh(T Val)
2675
+ /// \brief Returns the hyperbolic tangent of the input value, \a Val.
2676
+ /// \param Val The input value.
2677
+ // tanh overloads
2678
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2679
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_tanh)
2680
+ half tanh(half);
2681
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2682
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_tanh)
2683
+ half2 tanh(half2);
2684
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2685
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_tanh)
2686
+ half3 tanh(half3);
2687
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2688
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_tanh)
2689
+ half4 tanh(half4);
2690
+
2691
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_tanh)
2692
+ float tanh(float);
2693
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_tanh)
2694
+ float2 tanh(float2);
2695
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_tanh)
2696
+ float3 tanh(float3);
2697
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_tanh)
2698
+ float4 tanh(float4);
2699
+
2700
+ /// \fn T trunc(T Val)
2701
+ /// \brief Returns the truncated integer value of the input value, \a Val.
2702
+ /// \param Val The input value.
2703
+ // trunc overloads
2704
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2705
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_trunc)
2706
+ half trunc(half);
2707
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2708
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_trunc)
2709
+ half2 trunc(half2);
2710
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2711
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_trunc)
2712
+ half3 trunc(half3);
2713
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2714
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_trunc)
2715
+ half4 trunc(half4);
2716
+
2717
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_trunc)
2718
+ float trunc(float);
2719
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_trunc)
2720
+ float2 trunc(float2);
2721
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_trunc)
2722
+ float3 trunc(float3);
2723
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_trunc)
2724
+ float4 trunc(float4);
2725
+
2726
+ /// \brief Evaluates a value for all active invocations in the group. The
2727
+ /// result is true if Value is equal for all active invocations in the
2728
+ /// group. Otherwise, the result is false.
2729
+ /// \param Value The value to compare with
2730
+ /// \return True if all values across all lanes are equal, false otherwise
2731
+ // WaveActiveAllEqual overloads
2732
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2, 6.0)
2733
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal)
2734
+ __attribute__((convergent)) bool WaveActiveAllEqual(half);
2735
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2, 6.0)
2736
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal)
2737
+ __attribute__((convergent)) bool2 WaveActiveAllEqual(half2);
2738
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2, 6.0)
2739
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal)
2740
+ __attribute__((convergent)) bool3 WaveActiveAllEqual(half3);
2741
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2, 6.0)
2742
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal)
2743
+ __attribute__((convergent)) bool4 WaveActiveAllEqual(half4);
2744
+
2745
+ #ifdef __HLSL_ENABLE_16_BIT
2746
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
2747
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal)
2748
+ __attribute__((convergent)) bool WaveActiveAllEqual(int16_t);
2749
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
2750
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal)
2751
+ __attribute__((convergent)) bool2 WaveActiveAllEqual(int16_t2);
2752
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
2753
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal)
2754
+ __attribute__((convergent)) bool3 WaveActiveAllEqual(int16_t3);
2755
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
2756
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal)
2757
+ __attribute__((convergent)) bool4 WaveActiveAllEqual(int16_t4);
2758
+
2759
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
2760
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal)
2761
+ __attribute__((convergent)) bool WaveActiveAllEqual(uint16_t);
2762
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
2763
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal)
2764
+ __attribute__((convergent)) bool2 WaveActiveAllEqual(uint16_t2);
2765
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
2766
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal)
2767
+ __attribute__((convergent)) bool3 WaveActiveAllEqual(uint16_t3);
2768
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
2769
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal)
2770
+ __attribute__((convergent)) bool4 WaveActiveAllEqual(uint16_t4);
2771
+ #endif
2772
+
2773
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2774
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal)
2775
+ __attribute__((convergent)) bool WaveActiveAllEqual(int);
2776
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2777
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal)
2778
+ __attribute__((convergent)) bool2 WaveActiveAllEqual(int2);
2779
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2780
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal)
2781
+ __attribute__((convergent)) bool3 WaveActiveAllEqual(int3);
2782
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2783
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal)
2784
+ __attribute__((convergent)) bool4 WaveActiveAllEqual(int4);
2785
+
2786
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2787
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal)
2788
+ __attribute__((convergent)) bool WaveActiveAllEqual(uint);
2789
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2790
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal)
2791
+ __attribute__((convergent)) bool2 WaveActiveAllEqual(uint2);
2792
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2793
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal)
2794
+ __attribute__((convergent)) bool3 WaveActiveAllEqual(uint3);
2795
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2796
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal)
2797
+ __attribute__((convergent)) bool4 WaveActiveAllEqual(uint4);
2798
+
2799
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2800
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal)
2801
+ __attribute__((convergent)) bool WaveActiveAllEqual(int64_t);
2802
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2803
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal)
2804
+ __attribute__((convergent)) bool2 WaveActiveAllEqual(int64_t2);
2805
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2806
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal)
2807
+ __attribute__((convergent)) bool3 WaveActiveAllEqual(int64_t3);
2808
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2809
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal)
2810
+ __attribute__((convergent)) bool4 WaveActiveAllEqual(int64_t4);
2811
+
2812
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2813
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal)
2814
+ __attribute__((convergent)) bool WaveActiveAllEqual(uint64_t);
2815
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2816
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal)
2817
+ __attribute__((convergent)) bool2 WaveActiveAllEqual(uint64_t2);
2818
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2819
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal)
2820
+ __attribute__((convergent)) bool3 WaveActiveAllEqual(uint64_t3);
2821
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2822
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal)
2823
+ __attribute__((convergent)) bool4 WaveActiveAllEqual(uint64_t4);
2824
+
2825
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2826
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal)
2827
+ __attribute__((convergent)) bool WaveActiveAllEqual(float);
2828
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2829
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal)
2830
+ __attribute__((convergent)) bool2 WaveActiveAllEqual(float2);
2831
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2832
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal)
2833
+ __attribute__((convergent)) bool3 WaveActiveAllEqual(float3);
2834
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2835
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal)
2836
+ __attribute__((convergent)) bool4 WaveActiveAllEqual(float4);
2837
+
2838
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2839
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal)
2840
+ __attribute__((convergent)) bool WaveActiveAllEqual(double);
2841
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2842
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal)
2843
+ __attribute__((convergent)) bool2 WaveActiveAllEqual(double2);
2844
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2845
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal)
2846
+ __attribute__((convergent)) bool3 WaveActiveAllEqual(double3);
2847
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2848
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal)
2849
+ __attribute__((convergent)) bool4 WaveActiveAllEqual(double4);
2850
+
2851
+ /// \brief Returns true if the expression is true in all active lanes in the
2852
+ /// current wave.
2853
+ /// \param Val The boolean expression to evaluate.
2854
+ /// \return True if the expression is true in all lanes.
2855
+ // WaveActiveAllTrue overloads
2856
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2857
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_true)
2858
+ __attribute__((convergent)) bool WaveActiveAllTrue(bool);
2859
+
2860
+ /// \brief Returns true if the expression is true in any active lane in the
2861
+ /// current wave.
2862
+ /// \param Val The boolean expression to evaluate.
2863
+ /// \return True if the expression is true in any lane.
2864
+ // WaveActiveAnyTrue overloads
2865
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2866
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_any_true)
2867
+ __attribute__((convergent)) bool WaveActiveAnyTrue(bool);
2868
+
2869
+ /// \brief Returns a uint4 containing a bitmask of the evaluation of the
2870
+ /// boolean expression for all active lanes in the current wave.
2871
+ /// The least-significant bit corresponds to the lane with index zero.
2872
+ /// The bits corresponding to inactive lanes will be zero. The bits that
2873
+ /// are greater than or equal to WaveGetLaneCount will be zero.
2874
+ /// \param Val The boolean expression to evaluate.
2875
+ /// \return uint4 bitmask
2876
+ // WaveActiveBallot overloads
2877
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2878
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_ballot)
2879
+ __attribute__((convergent)) uint4 WaveActiveBallot(bool);
2880
+
2881
+ // WaveActiveBitAnd overloads
2882
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2883
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_bit_and)
2884
+ __attribute__((convergent)) uint WaveActiveBitAnd(uint);
2885
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2886
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_bit_and)
2887
+ __attribute__((convergent)) uint2 WaveActiveBitAnd(uint2);
2888
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2889
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_bit_and)
2890
+ __attribute__((convergent)) uint3 WaveActiveBitAnd(uint3);
2891
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2892
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_bit_and)
2893
+ __attribute__((convergent)) uint4 WaveActiveBitAnd(uint4);
2894
+
2895
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2896
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_bit_and)
2897
+ __attribute__((convergent)) uint64_t WaveActiveBitAnd(uint64_t);
2898
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2899
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_bit_and)
2900
+ __attribute__((convergent)) uint64_t2 WaveActiveBitAnd(uint64_t2);
2901
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2902
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_bit_and)
2903
+ __attribute__((convergent)) uint64_t3 WaveActiveBitAnd(uint64_t3);
2904
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2905
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_bit_and)
2906
+ __attribute__((convergent)) uint64_t4 WaveActiveBitAnd(uint64_t4);
2907
+
2908
+ /// \brief Returns the bitwise OR of all the values of <expr> across all active
2909
+ /// non-helper lanes in the current wave, and replicates it back to
2910
+ /// all active non-helper lanes.
2911
+ // WaveActiveBitOr overloads
2912
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2913
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_bit_or)
2914
+ __attribute__((convergent)) uint WaveActiveBitOr(uint);
2915
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2916
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_bit_or)
2917
+ __attribute__((convergent)) uint2 WaveActiveBitOr(uint2);
2918
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2919
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_bit_or)
2920
+ __attribute__((convergent)) uint3 WaveActiveBitOr(uint3);
2921
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2922
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_bit_or)
2923
+ __attribute__((convergent)) uint4 WaveActiveBitOr(uint4);
2924
+
2925
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2926
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_bit_or)
2927
+ __attribute__((convergent)) uint64_t WaveActiveBitOr(uint64_t);
2928
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2929
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_bit_or)
2930
+ __attribute__((convergent)) uint64_t2 WaveActiveBitOr(uint64_t2);
2931
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2932
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_bit_or)
2933
+ __attribute__((convergent)) uint64_t3 WaveActiveBitOr(uint64_t3);
2934
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2935
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_bit_or)
2936
+ __attribute__((convergent)) uint64_t4 WaveActiveBitOr(uint64_t4);
2937
+
2938
+ // WaveActiveBitXor overloads
2939
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2940
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_bit_xor)
2941
+ __attribute__((convergent)) uint WaveActiveBitXor(uint);
2942
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2943
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_bit_xor)
2944
+ __attribute__((convergent)) uint2 WaveActiveBitXor(uint2);
2945
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2946
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_bit_xor)
2947
+ __attribute__((convergent)) uint3 WaveActiveBitXor(uint3);
2948
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2949
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_bit_xor)
2950
+ __attribute__((convergent)) uint4 WaveActiveBitXor(uint4);
2951
+
2952
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2953
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_bit_xor)
2954
+ __attribute__((convergent)) uint64_t WaveActiveBitXor(uint64_t);
2955
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2956
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_bit_xor)
2957
+ __attribute__((convergent)) uint64_t2 WaveActiveBitXor(uint64_t2);
2958
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2959
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_bit_xor)
2960
+ __attribute__((convergent)) uint64_t3 WaveActiveBitXor(uint64_t3);
2961
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2962
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_bit_xor)
2963
+ __attribute__((convergent)) uint64_t4 WaveActiveBitXor(uint64_t4);
2964
+
2965
+ /// \brief Counts the number of boolean variables which evaluate to true across
2966
+ /// all active lanes in the current wave.
2967
+ /// \param Val The input boolean value.
2968
+ /// \return The number of lanes for which the boolean variable evaluates to
2969
+ /// true, across all active lanes in the current wave.
2970
+ // WaveActiveCountBits overloads
2971
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2972
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_count_bits)
2973
+ __attribute__((convergent)) uint WaveActiveCountBits(bool);
2974
+
2975
+ /// \brief Returns the maximum value across all active lanes in the wave.
2976
+ /// \param Val The input value.
2977
+ // WaveActiveMax overloads
2978
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2, 6.0)
2979
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
2980
+ __attribute__((convergent)) half WaveActiveMax(half);
2981
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2, 6.0)
2982
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
2983
+ __attribute__((convergent)) half2 WaveActiveMax(half2);
2984
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2, 6.0)
2985
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
2986
+ __attribute__((convergent)) half3 WaveActiveMax(half3);
2987
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2, 6.0)
2988
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
2989
+ __attribute__((convergent)) half4 WaveActiveMax(half4);
2990
+
2991
+ #ifdef __HLSL_ENABLE_16_BIT
2992
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
2993
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
2994
+ __attribute__((convergent)) int16_t WaveActiveMax(int16_t);
2995
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
2996
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
2997
+ __attribute__((convergent)) int16_t2 WaveActiveMax(int16_t2);
2998
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
2999
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
3000
+ __attribute__((convergent)) int16_t3 WaveActiveMax(int16_t3);
3001
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
3002
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
3003
+ __attribute__((convergent)) int16_t4 WaveActiveMax(int16_t4);
3004
+
3005
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
3006
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
3007
+ __attribute__((convergent)) uint16_t WaveActiveMax(uint16_t);
3008
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
3009
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
3010
+ __attribute__((convergent)) uint16_t2 WaveActiveMax(uint16_t2);
3011
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
3012
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
3013
+ __attribute__((convergent)) uint16_t3 WaveActiveMax(uint16_t3);
3014
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
3015
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
3016
+ __attribute__((convergent)) uint16_t4 WaveActiveMax(uint16_t4);
3017
+ #endif
3018
+
3019
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3020
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
3021
+ __attribute__((convergent)) int WaveActiveMax(int);
3022
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3023
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
3024
+ __attribute__((convergent)) int2 WaveActiveMax(int2);
3025
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3026
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
3027
+ __attribute__((convergent)) int3 WaveActiveMax(int3);
3028
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3029
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
3030
+ __attribute__((convergent)) int4 WaveActiveMax(int4);
3031
+
3032
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3033
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
3034
+ __attribute__((convergent)) uint WaveActiveMax(uint);
3035
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3036
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
3037
+ __attribute__((convergent)) uint2 WaveActiveMax(uint2);
3038
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3039
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
3040
+ __attribute__((convergent)) uint3 WaveActiveMax(uint3);
3041
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3042
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
3043
+ __attribute__((convergent)) uint4 WaveActiveMax(uint4);
3044
+
3045
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3046
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
3047
+ __attribute__((convergent)) int64_t WaveActiveMax(int64_t);
3048
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3049
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
3050
+ __attribute__((convergent)) int64_t2 WaveActiveMax(int64_t2);
3051
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3052
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
3053
+ __attribute__((convergent)) int64_t3 WaveActiveMax(int64_t3);
3054
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3055
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
3056
+ __attribute__((convergent)) int64_t4 WaveActiveMax(int64_t4);
3057
+
3058
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3059
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
3060
+ __attribute__((convergent)) uint64_t WaveActiveMax(uint64_t);
3061
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3062
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
3063
+ __attribute__((convergent)) uint64_t2 WaveActiveMax(uint64_t2);
3064
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3065
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
3066
+ __attribute__((convergent)) uint64_t3 WaveActiveMax(uint64_t3);
3067
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3068
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
3069
+ __attribute__((convergent)) uint64_t4 WaveActiveMax(uint64_t4);
3070
+
3071
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3072
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
3073
+ __attribute__((convergent)) float WaveActiveMax(float);
3074
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3075
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
3076
+ __attribute__((convergent)) float2 WaveActiveMax(float2);
3077
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3078
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
3079
+ __attribute__((convergent)) float3 WaveActiveMax(float3);
3080
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3081
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
3082
+ __attribute__((convergent)) float4 WaveActiveMax(float4);
3083
+
3084
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3085
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
3086
+ __attribute__((convergent)) double WaveActiveMax(double);
3087
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3088
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
3089
+ __attribute__((convergent)) double2 WaveActiveMax(double2);
3090
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3091
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
3092
+ __attribute__((convergent)) double3 WaveActiveMax(double3);
3093
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3094
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
3095
+ __attribute__((convergent)) double4 WaveActiveMax(double4);
3096
+
3097
+ /// \brief Returns the minimum value across all active lanes in the wave.
3098
+ /// \param Val The input value.
3099
+ // WaveActiveMin overloads
3100
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2, 6.0)
3101
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
3102
+ __attribute__((convergent)) half WaveActiveMin(half);
3103
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2, 6.0)
3104
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
3105
+ __attribute__((convergent)) half2 WaveActiveMin(half2);
3106
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2, 6.0)
3107
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
3108
+ __attribute__((convergent)) half3 WaveActiveMin(half3);
3109
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2, 6.0)
3110
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
3111
+ __attribute__((convergent)) half4 WaveActiveMin(half4);
3112
+
3113
+ #ifdef __HLSL_ENABLE_16_BIT
3114
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
3115
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
3116
+ __attribute__((convergent)) int16_t WaveActiveMin(int16_t);
3117
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
3118
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
3119
+ __attribute__((convergent)) int16_t2 WaveActiveMin(int16_t2);
3120
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
3121
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
3122
+ __attribute__((convergent)) int16_t3 WaveActiveMin(int16_t3);
3123
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
3124
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
3125
+ __attribute__((convergent)) int16_t4 WaveActiveMin(int16_t4);
3126
+
3127
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
3128
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
3129
+ __attribute__((convergent)) uint16_t WaveActiveMin(uint16_t);
3130
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
3131
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
3132
+ __attribute__((convergent)) uint16_t2 WaveActiveMin(uint16_t2);
3133
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
3134
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
3135
+ __attribute__((convergent)) uint16_t3 WaveActiveMin(uint16_t3);
3136
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
3137
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
3138
+ __attribute__((convergent)) uint16_t4 WaveActiveMin(uint16_t4);
3139
+ #endif
3140
+
3141
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3142
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
3143
+ __attribute__((convergent)) int WaveActiveMin(int);
3144
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3145
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
3146
+ __attribute__((convergent)) int2 WaveActiveMin(int2);
3147
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3148
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
3149
+ __attribute__((convergent)) int3 WaveActiveMin(int3);
3150
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3151
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
3152
+ __attribute__((convergent)) int4 WaveActiveMin(int4);
3153
+
3154
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3155
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
3156
+ __attribute__((convergent)) uint WaveActiveMin(uint);
3157
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3158
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
3159
+ __attribute__((convergent)) uint2 WaveActiveMin(uint2);
3160
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3161
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
3162
+ __attribute__((convergent)) uint3 WaveActiveMin(uint3);
3163
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3164
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
3165
+ __attribute__((convergent)) uint4 WaveActiveMin(uint4);
3166
+
3167
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3168
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
3169
+ __attribute__((convergent)) int64_t WaveActiveMin(int64_t);
3170
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3171
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
3172
+ __attribute__((convergent)) int64_t2 WaveActiveMin(int64_t2);
3173
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3174
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
3175
+ __attribute__((convergent)) int64_t3 WaveActiveMin(int64_t3);
3176
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3177
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
3178
+ __attribute__((convergent)) int64_t4 WaveActiveMin(int64_t4);
3179
+
3180
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3181
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
3182
+ __attribute__((convergent)) uint64_t WaveActiveMin(uint64_t);
3183
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3184
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
3185
+ __attribute__((convergent)) uint64_t2 WaveActiveMin(uint64_t2);
3186
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3187
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
3188
+ __attribute__((convergent)) uint64_t3 WaveActiveMin(uint64_t3);
3189
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3190
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
3191
+ __attribute__((convergent)) uint64_t4 WaveActiveMin(uint64_t4);
3192
+
3193
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3194
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
3195
+ __attribute__((convergent)) float WaveActiveMin(float);
3196
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3197
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
3198
+ __attribute__((convergent)) float2 WaveActiveMin(float2);
3199
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3200
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
3201
+ __attribute__((convergent)) float3 WaveActiveMin(float3);
3202
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3203
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
3204
+ __attribute__((convergent)) float4 WaveActiveMin(float4);
3205
+
3206
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3207
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
3208
+ __attribute__((convergent)) double WaveActiveMin(double);
3209
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3210
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
3211
+ __attribute__((convergent)) double2 WaveActiveMin(double2);
3212
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3213
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
3214
+ __attribute__((convergent)) double3 WaveActiveMin(double3);
3215
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3216
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
3217
+ __attribute__((convergent)) double4 WaveActiveMin(double4);
3218
+
3219
+ /// \brief Returns the product of values across all active lanes in the wave.
3220
+ /// \param Val The input value.
3221
+ // WaveActiveProduct overloads
3222
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2, 6.0)
3223
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_product)
3224
+ __attribute__((convergent)) half WaveActiveProduct(half);
3225
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2, 6.0)
3226
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_product)
3227
+ __attribute__((convergent)) half2 WaveActiveProduct(half2);
3228
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2, 6.0)
3229
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_product)
3230
+ __attribute__((convergent)) half3 WaveActiveProduct(half3);
3231
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2, 6.0)
3232
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_product)
3233
+ __attribute__((convergent)) half4 WaveActiveProduct(half4);
3234
+
3235
+ #ifdef __HLSL_ENABLE_16_BIT
3236
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
3237
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_product)
3238
+ __attribute__((convergent)) int16_t WaveActiveProduct(int16_t);
3239
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
3240
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_product)
3241
+ __attribute__((convergent)) int16_t2 WaveActiveProduct(int16_t2);
3242
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
3243
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_product)
3244
+ __attribute__((convergent)) int16_t3 WaveActiveProduct(int16_t3);
3245
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
3246
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_product)
3247
+ __attribute__((convergent)) int16_t4 WaveActiveProduct(int16_t4);
3248
+
3249
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
3250
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_product)
3251
+ __attribute__((convergent)) uint16_t WaveActiveProduct(uint16_t);
3252
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
3253
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_product)
3254
+ __attribute__((convergent)) uint16_t2 WaveActiveProduct(uint16_t2);
3255
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
3256
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_product)
3257
+ __attribute__((convergent)) uint16_t3 WaveActiveProduct(uint16_t3);
3258
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
3259
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_product)
3260
+ __attribute__((convergent)) uint16_t4 WaveActiveProduct(uint16_t4);
3261
+ #endif
3262
+
3263
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3264
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_product)
3265
+ __attribute__((convergent)) int WaveActiveProduct(int);
3266
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3267
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_product)
3268
+ __attribute__((convergent)) int2 WaveActiveProduct(int2);
3269
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3270
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_product)
3271
+ __attribute__((convergent)) int3 WaveActiveProduct(int3);
3272
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3273
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_product)
3274
+ __attribute__((convergent)) int4 WaveActiveProduct(int4);
3275
+
3276
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3277
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_product)
3278
+ __attribute__((convergent)) uint WaveActiveProduct(uint);
3279
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3280
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_product)
3281
+ __attribute__((convergent)) uint2 WaveActiveProduct(uint2);
3282
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3283
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_product)
3284
+ __attribute__((convergent)) uint3 WaveActiveProduct(uint3);
3285
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3286
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_product)
3287
+ __attribute__((convergent)) uint4 WaveActiveProduct(uint4);
3288
+
3289
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3290
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_product)
3291
+ __attribute__((convergent)) int64_t WaveActiveProduct(int64_t);
3292
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3293
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_product)
3294
+ __attribute__((convergent)) int64_t2 WaveActiveProduct(int64_t2);
3295
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3296
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_product)
3297
+ __attribute__((convergent)) int64_t3 WaveActiveProduct(int64_t3);
3298
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3299
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_product)
3300
+ __attribute__((convergent)) int64_t4 WaveActiveProduct(int64_t4);
3301
+
3302
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3303
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_product)
3304
+ __attribute__((convergent)) uint64_t WaveActiveProduct(uint64_t);
3305
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3306
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_product)
3307
+ __attribute__((convergent)) uint64_t2 WaveActiveProduct(uint64_t2);
3308
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3309
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_product)
3310
+ __attribute__((convergent)) uint64_t3 WaveActiveProduct(uint64_t3);
3311
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3312
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_product)
3313
+ __attribute__((convergent)) uint64_t4 WaveActiveProduct(uint64_t4);
3314
+
3315
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3316
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_product)
3317
+ __attribute__((convergent)) float WaveActiveProduct(float);
3318
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3319
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_product)
3320
+ __attribute__((convergent)) float2 WaveActiveProduct(float2);
3321
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3322
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_product)
3323
+ __attribute__((convergent)) float3 WaveActiveProduct(float3);
3324
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3325
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_product)
3326
+ __attribute__((convergent)) float4 WaveActiveProduct(float4);
3327
+
3328
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3329
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_product)
3330
+ __attribute__((convergent)) double WaveActiveProduct(double);
3331
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3332
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_product)
3333
+ __attribute__((convergent)) double2 WaveActiveProduct(double2);
3334
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3335
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_product)
3336
+ __attribute__((convergent)) double3 WaveActiveProduct(double3);
3337
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3338
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_product)
3339
+ __attribute__((convergent)) double4 WaveActiveProduct(double4);
3340
+
3341
+ /// \brief Returns the sum of values across all active lanes in the wave.
3342
+ /// \param Val The input value.
3343
+ // WaveActiveSum overloads
3344
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2, 6.0)
3345
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
3346
+ __attribute__((convergent)) half WaveActiveSum(half);
3347
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2, 6.0)
3348
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
3349
+ __attribute__((convergent)) half2 WaveActiveSum(half2);
3350
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2, 6.0)
3351
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
3352
+ __attribute__((convergent)) half3 WaveActiveSum(half3);
3353
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2, 6.0)
3354
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
3355
+ __attribute__((convergent)) half4 WaveActiveSum(half4);
3356
+
3357
+ #ifdef __HLSL_ENABLE_16_BIT
3358
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
3359
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
3360
+ __attribute__((convergent)) int16_t WaveActiveSum(int16_t);
3361
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
3362
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
3363
+ __attribute__((convergent)) int16_t2 WaveActiveSum(int16_t2);
3364
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
3365
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
3366
+ __attribute__((convergent)) int16_t3 WaveActiveSum(int16_t3);
3367
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
3368
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
3369
+ __attribute__((convergent)) int16_t4 WaveActiveSum(int16_t4);
3370
+
3371
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
3372
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
3373
+ __attribute__((convergent)) uint16_t WaveActiveSum(uint16_t);
3374
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
3375
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
3376
+ __attribute__((convergent)) uint16_t2 WaveActiveSum(uint16_t2);
3377
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
3378
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
3379
+ __attribute__((convergent)) uint16_t3 WaveActiveSum(uint16_t3);
3380
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
3381
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
3382
+ __attribute__((convergent)) uint16_t4 WaveActiveSum(uint16_t4);
3383
+ #endif
3384
+
3385
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3386
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
3387
+ __attribute__((convergent)) int WaveActiveSum(int);
3388
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3389
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
3390
+ __attribute__((convergent)) int2 WaveActiveSum(int2);
3391
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3392
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
3393
+ __attribute__((convergent)) int3 WaveActiveSum(int3);
3394
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3395
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
3396
+ __attribute__((convergent)) int4 WaveActiveSum(int4);
3397
+
3398
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3399
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
3400
+ __attribute__((convergent)) uint WaveActiveSum(uint);
3401
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3402
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
3403
+ __attribute__((convergent)) uint2 WaveActiveSum(uint2);
3404
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3405
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
3406
+ __attribute__((convergent)) uint3 WaveActiveSum(uint3);
3407
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3408
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
3409
+ __attribute__((convergent)) uint4 WaveActiveSum(uint4);
3410
+
3411
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3412
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
3413
+ __attribute__((convergent)) int64_t WaveActiveSum(int64_t);
3414
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3415
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
3416
+ __attribute__((convergent)) int64_t2 WaveActiveSum(int64_t2);
3417
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3418
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
3419
+ __attribute__((convergent)) int64_t3 WaveActiveSum(int64_t3);
3420
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3421
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
3422
+ __attribute__((convergent)) int64_t4 WaveActiveSum(int64_t4);
3423
+
3424
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3425
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
3426
+ __attribute__((convergent)) uint64_t WaveActiveSum(uint64_t);
3427
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3428
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
3429
+ __attribute__((convergent)) uint64_t2 WaveActiveSum(uint64_t2);
3430
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3431
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
3432
+ __attribute__((convergent)) uint64_t3 WaveActiveSum(uint64_t3);
3433
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3434
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
3435
+ __attribute__((convergent)) uint64_t4 WaveActiveSum(uint64_t4);
3436
+
3437
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3438
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
3439
+ __attribute__((convergent)) float WaveActiveSum(float);
3440
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3441
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
3442
+ __attribute__((convergent)) float2 WaveActiveSum(float2);
3443
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3444
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
3445
+ __attribute__((convergent)) float3 WaveActiveSum(float3);
3446
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3447
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
3448
+ __attribute__((convergent)) float4 WaveActiveSum(float4);
3449
+
3450
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3451
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
3452
+ __attribute__((convergent)) double WaveActiveSum(double);
3453
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3454
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
3455
+ __attribute__((convergent)) double2 WaveActiveSum(double2);
3456
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3457
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
3458
+ __attribute__((convergent)) double3 WaveActiveSum(double3);
3459
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3460
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
3461
+ __attribute__((convergent)) double4 WaveActiveSum(double4);
3462
+
3463
+ /// \brief Returns the number of lanes in the current wave.
3464
+ // WaveGetLaneCount overloads
3465
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3466
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_get_lane_count)
3467
+ __attribute__((convergent)) uint WaveGetLaneCount();
3468
+
3469
+ /// \brief Returns the index of the current lane within the current wave.
3470
+ // WaveGetLaneIndex overloads
3471
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3472
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_get_lane_index)
3473
+ __attribute__((convergent)) uint WaveGetLaneIndex();
3474
+
3475
+ /// \brief Returns true if the current lane is the first active lane in the wave.
3476
+ // WaveIsFirstLane overloads
3477
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3478
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_is_first_lane)
3479
+ __attribute__((convergent)) bool WaveIsFirstLane();
3480
+
3481
+ /// \brief Returns the count of bits of Expr set to 1 on prior lanes.
3482
+ /// \param Expr The boolean expression to evaluate.
3483
+ /// \return the count of bits set to 1 on prior lanes.
3484
+ // WavePrefixCountBits overloads
3485
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3486
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_count_bits)
3487
+ __attribute__((convergent)) uint WavePrefixCountBits(bool);
3488
+
3489
+ /// \brief Returns the product of values across lanes with smaller indices in the wave.
3490
+ /// \param Val The input value.
3491
+ // WavePrefixProduct overloads
3492
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2, 6.0)
3493
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_product)
3494
+ __attribute__((convergent)) half WavePrefixProduct(half);
3495
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2, 6.0)
3496
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_product)
3497
+ __attribute__((convergent)) half2 WavePrefixProduct(half2);
3498
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2, 6.0)
3499
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_product)
3500
+ __attribute__((convergent)) half3 WavePrefixProduct(half3);
3501
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2, 6.0)
3502
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_product)
3503
+ __attribute__((convergent)) half4 WavePrefixProduct(half4);
3504
+
3505
+ #ifdef __HLSL_ENABLE_16_BIT
3506
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
3507
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_product)
3508
+ __attribute__((convergent)) int16_t WavePrefixProduct(int16_t);
3509
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
3510
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_product)
3511
+ __attribute__((convergent)) int16_t2 WavePrefixProduct(int16_t2);
3512
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
3513
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_product)
3514
+ __attribute__((convergent)) int16_t3 WavePrefixProduct(int16_t3);
3515
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
3516
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_product)
3517
+ __attribute__((convergent)) int16_t4 WavePrefixProduct(int16_t4);
3518
+
3519
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
3520
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_product)
3521
+ __attribute__((convergent)) uint16_t WavePrefixProduct(uint16_t);
3522
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
3523
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_product)
3524
+ __attribute__((convergent)) uint16_t2 WavePrefixProduct(uint16_t2);
3525
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
3526
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_product)
3527
+ __attribute__((convergent)) uint16_t3 WavePrefixProduct(uint16_t3);
3528
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
3529
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_product)
3530
+ __attribute__((convergent)) uint16_t4 WavePrefixProduct(uint16_t4);
3531
+ #endif
3532
+
3533
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3534
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_product)
3535
+ __attribute__((convergent)) int WavePrefixProduct(int);
3536
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3537
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_product)
3538
+ __attribute__((convergent)) int2 WavePrefixProduct(int2);
3539
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3540
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_product)
3541
+ __attribute__((convergent)) int3 WavePrefixProduct(int3);
3542
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3543
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_product)
3544
+ __attribute__((convergent)) int4 WavePrefixProduct(int4);
3545
+
3546
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3547
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_product)
3548
+ __attribute__((convergent)) uint WavePrefixProduct(uint);
3549
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3550
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_product)
3551
+ __attribute__((convergent)) uint2 WavePrefixProduct(uint2);
3552
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3553
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_product)
3554
+ __attribute__((convergent)) uint3 WavePrefixProduct(uint3);
3555
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3556
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_product)
3557
+ __attribute__((convergent)) uint4 WavePrefixProduct(uint4);
3558
+
3559
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3560
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_product)
3561
+ __attribute__((convergent)) int64_t WavePrefixProduct(int64_t);
3562
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3563
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_product)
3564
+ __attribute__((convergent)) int64_t2 WavePrefixProduct(int64_t2);
3565
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3566
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_product)
3567
+ __attribute__((convergent)) int64_t3 WavePrefixProduct(int64_t3);
3568
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3569
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_product)
3570
+ __attribute__((convergent)) int64_t4 WavePrefixProduct(int64_t4);
3571
+
3572
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3573
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_product)
3574
+ __attribute__((convergent)) uint64_t WavePrefixProduct(uint64_t);
3575
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3576
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_product)
3577
+ __attribute__((convergent)) uint64_t2 WavePrefixProduct(uint64_t2);
3578
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3579
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_product)
3580
+ __attribute__((convergent)) uint64_t3 WavePrefixProduct(uint64_t3);
3581
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3582
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_product)
3583
+ __attribute__((convergent)) uint64_t4 WavePrefixProduct(uint64_t4);
3584
+
3585
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3586
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_product)
3587
+ __attribute__((convergent)) float WavePrefixProduct(float);
3588
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3589
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_product)
3590
+ __attribute__((convergent)) float2 WavePrefixProduct(float2);
3591
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3592
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_product)
3593
+ __attribute__((convergent)) float3 WavePrefixProduct(float3);
3594
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3595
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_product)
3596
+ __attribute__((convergent)) float4 WavePrefixProduct(float4);
3597
+
3598
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3599
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_product)
3600
+ __attribute__((convergent)) double WavePrefixProduct(double);
3601
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3602
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_product)
3603
+ __attribute__((convergent)) double2 WavePrefixProduct(double2);
3604
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3605
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_product)
3606
+ __attribute__((convergent)) double3 WavePrefixProduct(double3);
3607
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3608
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_product)
3609
+ __attribute__((convergent)) double4 WavePrefixProduct(double4);
3610
+
3611
+ /// \brief Returns the sum of values across lanes with smaller indices in the wave.
3612
+ /// \param Val The input value.
3613
+ // WavePrefixSum overloads
3614
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2, 6.0)
3615
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_sum)
3616
+ __attribute__((convergent)) half WavePrefixSum(half);
3617
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2, 6.0)
3618
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_sum)
3619
+ __attribute__((convergent)) half2 WavePrefixSum(half2);
3620
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2, 6.0)
3621
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_sum)
3622
+ __attribute__((convergent)) half3 WavePrefixSum(half3);
3623
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2, 6.0)
3624
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_sum)
3625
+ __attribute__((convergent)) half4 WavePrefixSum(half4);
3626
+
3627
+ #ifdef __HLSL_ENABLE_16_BIT
3628
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
3629
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_sum)
3630
+ __attribute__((convergent)) int16_t WavePrefixSum(int16_t);
3631
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
3632
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_sum)
3633
+ __attribute__((convergent)) int16_t2 WavePrefixSum(int16_t2);
3634
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
3635
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_sum)
3636
+ __attribute__((convergent)) int16_t3 WavePrefixSum(int16_t3);
3637
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
3638
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_sum)
3639
+ __attribute__((convergent)) int16_t4 WavePrefixSum(int16_t4);
3640
+
3641
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
3642
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_sum)
3643
+ __attribute__((convergent)) uint16_t WavePrefixSum(uint16_t);
3644
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
3645
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_sum)
3646
+ __attribute__((convergent)) uint16_t2 WavePrefixSum(uint16_t2);
3647
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
3648
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_sum)
3649
+ __attribute__((convergent)) uint16_t3 WavePrefixSum(uint16_t3);
3650
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
3651
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_sum)
3652
+ __attribute__((convergent)) uint16_t4 WavePrefixSum(uint16_t4);
3653
+ #endif
3654
+
3655
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3656
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_sum)
3657
+ __attribute__((convergent)) int WavePrefixSum(int);
3658
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3659
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_sum)
3660
+ __attribute__((convergent)) int2 WavePrefixSum(int2);
3661
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3662
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_sum)
3663
+ __attribute__((convergent)) int3 WavePrefixSum(int3);
3664
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3665
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_sum)
3666
+ __attribute__((convergent)) int4 WavePrefixSum(int4);
3667
+
3668
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3669
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_sum)
3670
+ __attribute__((convergent)) uint WavePrefixSum(uint);
3671
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3672
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_sum)
3673
+ __attribute__((convergent)) uint2 WavePrefixSum(uint2);
3674
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3675
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_sum)
3676
+ __attribute__((convergent)) uint3 WavePrefixSum(uint3);
3677
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3678
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_sum)
3679
+ __attribute__((convergent)) uint4 WavePrefixSum(uint4);
3680
+
3681
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3682
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_sum)
3683
+ __attribute__((convergent)) int64_t WavePrefixSum(int64_t);
3684
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3685
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_sum)
3686
+ __attribute__((convergent)) int64_t2 WavePrefixSum(int64_t2);
3687
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3688
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_sum)
3689
+ __attribute__((convergent)) int64_t3 WavePrefixSum(int64_t3);
3690
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3691
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_sum)
3692
+ __attribute__((convergent)) int64_t4 WavePrefixSum(int64_t4);
3693
+
3694
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3695
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_sum)
3696
+ __attribute__((convergent)) uint64_t WavePrefixSum(uint64_t);
3697
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3698
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_sum)
3699
+ __attribute__((convergent)) uint64_t2 WavePrefixSum(uint64_t2);
3700
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3701
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_sum)
3702
+ __attribute__((convergent)) uint64_t3 WavePrefixSum(uint64_t3);
3703
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3704
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_sum)
3705
+ __attribute__((convergent)) uint64_t4 WavePrefixSum(uint64_t4);
3706
+
3707
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3708
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_sum)
3709
+ __attribute__((convergent)) float WavePrefixSum(float);
3710
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3711
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_sum)
3712
+ __attribute__((convergent)) float2 WavePrefixSum(float2);
3713
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3714
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_sum)
3715
+ __attribute__((convergent)) float3 WavePrefixSum(float3);
3716
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3717
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_sum)
3718
+ __attribute__((convergent)) float4 WavePrefixSum(float4);
3719
+
3720
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3721
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_sum)
3722
+ __attribute__((convergent)) double WavePrefixSum(double);
3723
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3724
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_sum)
3725
+ __attribute__((convergent)) double2 WavePrefixSum(double2);
3726
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3727
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_sum)
3728
+ __attribute__((convergent)) double3 WavePrefixSum(double3);
3729
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3730
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_prefix_sum)
3731
+ __attribute__((convergent)) double4 WavePrefixSum(double4);
3732
+
3733
+ /// \brief Returns the value of the expression for the given lane index within
3734
+ /// the specified wave.
3735
+ /// \param Val The value to read.
3736
+ /// \param Index The lane index.
3737
+ // WaveReadLaneAt overloads
3738
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2, 6.0)
3739
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
3740
+ __attribute__((convergent)) half WaveReadLaneAt(half, uint);
3741
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2, 6.0)
3742
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
3743
+ __attribute__((convergent)) half2 WaveReadLaneAt(half2, uint);
3744
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2, 6.0)
3745
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
3746
+ __attribute__((convergent)) half3 WaveReadLaneAt(half3, uint);
3747
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2, 6.0)
3748
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
3749
+ __attribute__((convergent)) half4 WaveReadLaneAt(half4, uint);
3750
+
3751
+ #ifdef __HLSL_ENABLE_16_BIT
3752
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
3753
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
3754
+ __attribute__((convergent)) int16_t WaveReadLaneAt(int16_t, uint);
3755
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
3756
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
3757
+ __attribute__((convergent)) int16_t2 WaveReadLaneAt(int16_t2, uint);
3758
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
3759
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
3760
+ __attribute__((convergent)) int16_t3 WaveReadLaneAt(int16_t3, uint);
3761
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
3762
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
3763
+ __attribute__((convergent)) int16_t4 WaveReadLaneAt(int16_t4, uint);
3764
+
3765
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
3766
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
3767
+ __attribute__((convergent)) uint16_t WaveReadLaneAt(uint16_t, uint);
3768
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
3769
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
3770
+ __attribute__((convergent)) uint16_t2 WaveReadLaneAt(uint16_t2, uint);
3771
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
3772
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
3773
+ __attribute__((convergent)) uint16_t3 WaveReadLaneAt(uint16_t3, uint);
3774
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
3775
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
3776
+ __attribute__((convergent)) uint16_t4 WaveReadLaneAt(uint16_t4, uint);
3777
+ #endif
3778
+
3779
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3780
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
3781
+ __attribute__((convergent)) bool WaveReadLaneAt(bool, uint);
3782
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3783
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
3784
+ __attribute__((convergent)) bool2 WaveReadLaneAt(bool2, uint);
3785
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3786
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
3787
+ __attribute__((convergent)) bool3 WaveReadLaneAt(bool3, uint);
3788
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3789
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
3790
+ __attribute__((convergent)) bool4 WaveReadLaneAt(bool4, uint);
3791
+
3792
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3793
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
3794
+ __attribute__((convergent)) int WaveReadLaneAt(int, uint);
3795
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3796
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
3797
+ __attribute__((convergent)) int2 WaveReadLaneAt(int2, uint);
3798
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3799
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
3800
+ __attribute__((convergent)) int3 WaveReadLaneAt(int3, uint);
3801
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3802
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
3803
+ __attribute__((convergent)) int4 WaveReadLaneAt(int4, uint);
3804
+
3805
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3806
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
3807
+ __attribute__((convergent)) uint WaveReadLaneAt(uint, uint);
3808
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3809
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
3810
+ __attribute__((convergent)) uint2 WaveReadLaneAt(uint2, uint);
3811
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3812
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
3813
+ __attribute__((convergent)) uint3 WaveReadLaneAt(uint3, uint);
3814
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3815
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
3816
+ __attribute__((convergent)) uint4 WaveReadLaneAt(uint4, uint);
3817
+
3818
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3819
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
3820
+ __attribute__((convergent)) int64_t WaveReadLaneAt(int64_t, uint);
3821
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3822
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
3823
+ __attribute__((convergent)) int64_t2 WaveReadLaneAt(int64_t2, uint);
3824
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3825
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
3826
+ __attribute__((convergent)) int64_t3 WaveReadLaneAt(int64_t3, uint);
3827
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3828
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
3829
+ __attribute__((convergent)) int64_t4 WaveReadLaneAt(int64_t4, uint);
3830
+
3831
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3832
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
3833
+ __attribute__((convergent)) uint64_t WaveReadLaneAt(uint64_t, uint);
3834
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3835
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
3836
+ __attribute__((convergent)) uint64_t2 WaveReadLaneAt(uint64_t2, uint);
3837
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3838
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
3839
+ __attribute__((convergent)) uint64_t3 WaveReadLaneAt(uint64_t3, uint);
3840
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3841
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
3842
+ __attribute__((convergent)) uint64_t4 WaveReadLaneAt(uint64_t4, uint);
3843
+
3844
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3845
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
3846
+ __attribute__((convergent)) float WaveReadLaneAt(float, uint);
3847
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3848
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
3849
+ __attribute__((convergent)) float2 WaveReadLaneAt(float2, uint);
3850
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3851
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
3852
+ __attribute__((convergent)) float3 WaveReadLaneAt(float3, uint);
3853
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3854
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
3855
+ __attribute__((convergent)) float4 WaveReadLaneAt(float4, uint);
3856
+
3857
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3858
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
3859
+ __attribute__((convergent)) double WaveReadLaneAt(double, uint);
3860
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3861
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
3862
+ __attribute__((convergent)) double2 WaveReadLaneAt(double2, uint);
3863
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3864
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
3865
+ __attribute__((convergent)) double3 WaveReadLaneAt(double3, uint);
3866
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
3867
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
3868
+ __attribute__((convergent)) double4 WaveReadLaneAt(double4, uint);
3869
+