@cpp-linter/clang-tidy-win32-x64 20.1.0 → 22.1.8

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 (309) hide show
  1. package/README.md +2 -2
  2. package/bin/clang-tidy.exe +2 -2
  3. package/lib/clang/22/include/__clang_cuda_complex_builtins.h +229 -0
  4. package/lib/clang/{20 → 22}/include/__clang_cuda_device_functions.h +1 -1
  5. package/lib/clang/{20 → 22}/include/__clang_cuda_intrinsics.h +295 -8
  6. package/lib/clang/{20 → 22}/include/__clang_cuda_runtime_wrapper.h +19 -0
  7. package/lib/clang/{20 → 22}/include/__clang_cuda_texture_intrinsics.h +437 -2
  8. package/lib/clang/{20 → 22}/include/__clang_hip_cmath.h +9 -8
  9. package/lib/clang/{20 → 22}/include/__clang_hip_libdevice_declares.h +29 -42
  10. package/lib/clang/{20 → 22}/include/__clang_hip_math.h +107 -31
  11. package/lib/clang/{20 → 22}/include/__clang_hip_runtime_wrapper.h +6 -0
  12. package/lib/clang/22/include/__clang_spirv_builtins.h +217 -0
  13. package/lib/clang/{20/include/float.h → 22/include/__float_float.h} +14 -34
  14. package/lib/clang/22/include/__float_header_macro.h +12 -0
  15. package/lib/clang/22/include/__float_infinity_nan.h +20 -0
  16. package/lib/clang/{20 → 22}/include/__stdarg_va_arg.h +2 -2
  17. package/lib/clang/{20 → 22}/include/altivec.h +82 -79
  18. package/lib/clang/{20 → 22}/include/amdgpuintrin.h +23 -26
  19. package/lib/clang/22/include/amo.h +131 -0
  20. package/lib/clang/{20 → 22}/include/amxavx512intrin.h +216 -2
  21. package/lib/clang/{20 → 22}/include/amxcomplexintrin.h +4 -6
  22. package/lib/clang/{20 → 22}/include/amxintrin.h +0 -2
  23. package/lib/clang/22/include/andes_vector.h +16 -0
  24. package/lib/clang/{20 → 22}/include/arm_acle.h +48 -68
  25. package/lib/clang/{20 → 22}/include/arm_fp16.h +89 -89
  26. package/lib/clang/{20 → 22}/include/arm_neon.h +22413 -19759
  27. package/lib/clang/{20 → 22}/include/arm_sme.h +702 -8
  28. package/lib/clang/{20 → 22}/include/arm_sve.h +6346 -5626
  29. package/lib/clang/{20 → 22}/include/avx10_2_512bf16intrin.h +19 -12
  30. package/lib/clang/{20 → 22}/include/avx10_2_512convertintrin.h +25 -23
  31. package/lib/clang/{20 → 22}/include/avx10_2_512niintrin.h +31 -31
  32. package/lib/clang/{20 → 22}/include/avx10_2_512satcvtdsintrin.h +29 -25
  33. package/lib/clang/{20 → 22}/include/avx10_2_512satcvtintrin.h +84 -84
  34. package/lib/clang/{20 → 22}/include/avx10_2bf16intrin.h +54 -45
  35. package/lib/clang/22/include/avx10_2convertintrin.h +3257 -0
  36. package/lib/clang/{20 → 22}/include/avx10_2copyintrin.h +1 -1
  37. package/lib/clang/{20 → 22}/include/avx10_2minmaxintrin.h +18 -63
  38. package/lib/clang/22/include/avx10_2niintrin.h +409 -0
  39. package/lib/clang/22/include/avx10_2satcvtdsintrin.h +376 -0
  40. package/lib/clang/22/include/avx10_2satcvtintrin.h +312 -0
  41. package/lib/clang/{20 → 22}/include/avx2intrin.h +275 -377
  42. package/lib/clang/{20 → 22}/include/avx512bf16intrin.h +25 -16
  43. package/lib/clang/{20 → 22}/include/avx512bitalgintrin.h +19 -30
  44. package/lib/clang/{20 → 22}/include/avx512bwintrin.h +386 -505
  45. package/lib/clang/22/include/avx512cdintrin.h +112 -0
  46. package/lib/clang/{20 → 22}/include/avx512dqintrin.h +132 -161
  47. package/lib/clang/{20 → 22}/include/avx512fintrin.h +1015 -1424
  48. package/lib/clang/{20 → 22}/include/avx512fp16intrin.h +114 -111
  49. package/lib/clang/22/include/avx512ifmaintrin.h +68 -0
  50. package/lib/clang/22/include/avx512ifmavlintrin.h +138 -0
  51. package/lib/clang/{20 → 22}/include/avx512vbmi2intrin.h +43 -32
  52. package/lib/clang/{20 → 22}/include/avx512vbmiintrin.h +19 -27
  53. package/lib/clang/{20 → 22}/include/avx512vbmivlintrin.h +35 -49
  54. package/lib/clang/{20 → 22}/include/avx512vlbf16intrin.h +32 -22
  55. package/lib/clang/{20 → 22}/include/avx512vlbitalgintrin.h +37 -53
  56. package/lib/clang/{20 → 22}/include/avx512vlbwintrin.h +470 -573
  57. package/lib/clang/22/include/avx512vlcdintrin.h +202 -0
  58. package/lib/clang/{20 → 22}/include/avx512vldqintrin.h +110 -127
  59. package/lib/clang/{20 → 22}/include/avx512vlfp16intrin.h +130 -111
  60. package/lib/clang/{20 → 22}/include/avx512vlintrin.h +945 -1299
  61. package/lib/clang/{20 → 22}/include/avx512vlvbmi2intrin.h +78 -63
  62. package/lib/clang/{20 → 22}/include/avx512vlvnniintrin.h +21 -18
  63. package/lib/clang/{20 → 22}/include/avx512vlvp2intersectintrin.h +2 -2
  64. package/lib/clang/{20 → 22}/include/avx512vnniintrin.h +10 -10
  65. package/lib/clang/{20 → 22}/include/avx512vp2intersectintrin.h +1 -2
  66. package/lib/clang/{20 → 22}/include/avx512vpopcntdqintrin.h +8 -10
  67. package/lib/clang/{20 → 22}/include/avx512vpopcntdqvlintrin.h +17 -15
  68. package/lib/clang/{20 → 22}/include/avxifmaintrin.h +16 -0
  69. package/lib/clang/{20 → 22}/include/avxintrin.h +165 -241
  70. package/lib/clang/{20 → 22}/include/avxvnniint16intrin.h +118 -99
  71. package/lib/clang/{20 → 22}/include/avxvnniint8intrin.h +56 -32
  72. package/lib/clang/{20 → 22}/include/avxvnniintrin.h +16 -8
  73. package/lib/clang/{20 → 22}/include/bmiintrin.h +0 -4
  74. package/lib/clang/{20 → 22}/include/cpuid.h +125 -26
  75. package/lib/clang/22/include/cuda_wrappers/__utility/declval.h +28 -0
  76. package/lib/clang/22/include/cuda_wrappers/bits/c++config.h +61 -0
  77. package/lib/clang/{20 → 22}/include/cuda_wrappers/cmath +0 -50
  78. package/lib/clang/{20 → 22}/include/emmintrin.h +168 -168
  79. package/lib/clang/{20 → 22}/include/f16cintrin.h +23 -9
  80. package/lib/clang/22/include/float.h +48 -0
  81. package/lib/clang/22/include/fma4intrin.h +220 -0
  82. package/lib/clang/{20 → 22}/include/fmaintrin.h +96 -66
  83. package/lib/clang/{20 → 22}/include/gfniintrin.h +21 -16
  84. package/lib/clang/{20 → 22}/include/gpuintrin.h +117 -11
  85. package/lib/clang/{20 → 22}/include/hexagon_types.h +23 -20
  86. package/lib/clang/{20/include/hlsl/hlsl_intrinsics.h → 22/include/hlsl/hlsl_alias_intrinsics.h} +643 -296
  87. package/lib/clang/22/include/hlsl/hlsl_basic_types.h +370 -0
  88. package/lib/clang/22/include/hlsl/hlsl_compat_overloads.h +520 -0
  89. package/lib/clang/22/include/hlsl/hlsl_detail.h +54 -0
  90. package/lib/clang/22/include/hlsl/hlsl_intrinsic_helpers.h +190 -0
  91. package/lib/clang/22/include/hlsl/hlsl_intrinsics.h +794 -0
  92. package/lib/clang/22/include/hlsl/hlsl_spirv.h +28 -0
  93. package/lib/clang/{20 → 22}/include/hlsl.h +12 -0
  94. package/lib/clang/{20 → 22}/include/hvx_hexagon_protos.h +649 -860
  95. package/lib/clang/{20 → 22}/include/immintrin.h +0 -236
  96. package/lib/clang/{20 → 22}/include/intrin.h +25 -4
  97. package/lib/clang/{20 → 22}/include/keylockerintrin.h +0 -9
  98. package/lib/clang/{20 → 22}/include/lasxintrin.h +113 -0
  99. package/lib/clang/{20 → 22}/include/llvm_libc_wrappers/assert.h +3 -5
  100. package/lib/clang/22/include/llvm_libc_wrappers/ctype.h +28 -0
  101. package/lib/clang/{20 → 22}/include/llvm_libc_wrappers/inttypes.h +3 -5
  102. package/lib/clang/22/include/llvm_libc_wrappers/stdio.h +52 -0
  103. package/lib/clang/22/include/llvm_libc_wrappers/stdlib.h +32 -0
  104. package/lib/clang/22/include/llvm_libc_wrappers/string.h +28 -0
  105. package/lib/clang/{20 → 22}/include/llvm_libc_wrappers/time.h +4 -10
  106. package/lib/clang/{20 → 22}/include/lzcntintrin.h +6 -4
  107. package/lib/clang/{20 → 22}/include/mmintrin.h +188 -257
  108. package/lib/clang/{20 → 22}/include/module.modulemap +36 -4
  109. package/lib/clang/{20 → 22}/include/movrs_avx10_2_512intrin.h +2 -2
  110. package/lib/clang/{20 → 22}/include/movrs_avx10_2intrin.h +4 -4
  111. package/lib/clang/{20 → 22}/include/movrsintrin.h +1 -1
  112. package/lib/clang/{20 → 22}/include/nvptxintrin.h +48 -31
  113. package/lib/clang/{20 → 22}/include/opencl-c-base.h +18 -93
  114. package/lib/clang/{20 → 22}/include/opencl-c.h +360 -55
  115. package/lib/clang/{20 → 22}/include/pmmintrin.h +12 -24
  116. package/lib/clang/{20 → 22}/include/prfchwintrin.h +10 -13
  117. package/lib/clang/{20 → 22}/include/ptrauth.h +73 -2
  118. package/lib/clang/{20 → 22}/include/riscv_corev_alu.h +4 -4
  119. package/lib/clang/22/include/riscv_mips.h +34 -0
  120. package/lib/clang/22/include/riscv_nds.h +89 -0
  121. package/lib/clang/{20 → 22}/include/riscv_vector.h +0 -4
  122. package/lib/clang/{20 → 22}/include/shaintrin.h +3 -2
  123. package/lib/clang/{20 → 22}/include/sifive_vector.h +58 -2
  124. package/lib/clang/{20 → 22}/include/sm4evexintrin.h +2 -2
  125. package/lib/clang/{20 → 22}/include/smmintrin.h +77 -59
  126. package/lib/clang/22/include/spirvintrin.h +194 -0
  127. package/lib/clang/22/include/stdcountof.h +15 -0
  128. package/lib/clang/22/include/stddefer.h +19 -0
  129. package/lib/clang/{20 → 22}/include/stdint.h +18 -129
  130. package/lib/clang/{20 → 22}/include/tmmintrin.h +116 -147
  131. package/lib/clang/{20 → 22}/include/vaesintrin.h +1 -2
  132. package/lib/clang/{20 → 22}/include/vecintrin.h +5 -0
  133. package/lib/clang/{20 → 22}/include/x86gprintrin.h +0 -14
  134. package/lib/clang/{20 → 22}/include/x86intrin.h +0 -18
  135. package/lib/clang/{20 → 22}/include/xmmintrin.h +47 -72
  136. package/lib/clang/{20 → 22}/include/xopintrin.h +20 -10
  137. package/package.json +6 -6
  138. package/lib/clang/20/include/__clang_cuda_complex_builtins.h +0 -285
  139. package/lib/clang/20/include/amxbf16transposeintrin.h +0 -94
  140. package/lib/clang/20/include/amxcomplextransposeintrin.h +0 -303
  141. package/lib/clang/20/include/amxfp16transposeintrin.h +0 -94
  142. package/lib/clang/20/include/amxmovrstransposeintrin.h +0 -200
  143. package/lib/clang/20/include/amxtf32transposeintrin.h +0 -105
  144. package/lib/clang/20/include/amxtransposeintrin.h +0 -248
  145. package/lib/clang/20/include/avx10_2convertintrin.h +0 -589
  146. package/lib/clang/20/include/avx10_2niintrin.h +0 -2075
  147. package/lib/clang/20/include/avx10_2satcvtdsintrin.h +0 -496
  148. package/lib/clang/20/include/avx10_2satcvtintrin.h +0 -444
  149. package/lib/clang/20/include/avx512cdintrin.h +0 -125
  150. package/lib/clang/20/include/avx512ifmaintrin.h +0 -70
  151. package/lib/clang/20/include/avx512ifmavlintrin.h +0 -111
  152. package/lib/clang/20/include/avx512vlcdintrin.h +0 -230
  153. package/lib/clang/20/include/fma4intrin.h +0 -218
  154. package/lib/clang/20/include/hlsl/hlsl_basic_types.h +0 -120
  155. package/lib/clang/20/include/hlsl/hlsl_detail.h +0 -84
  156. package/lib/clang/20/include/llvm_libc_wrappers/ctype.h +0 -140
  157. package/lib/clang/20/include/llvm_libc_wrappers/stdio.h +0 -80
  158. package/lib/clang/20/include/llvm_libc_wrappers/stdlib.h +0 -53
  159. package/lib/clang/20/include/llvm_libc_wrappers/string.h +0 -96
  160. /package/lib/clang/{20 → 22}/include/__clang_cuda_builtin_vars.h +0 -0
  161. /package/lib/clang/{20 → 22}/include/__clang_cuda_cmath.h +0 -0
  162. /package/lib/clang/{20 → 22}/include/__clang_cuda_libdevice_declares.h +0 -0
  163. /package/lib/clang/{20 → 22}/include/__clang_cuda_math.h +0 -0
  164. /package/lib/clang/{20 → 22}/include/__clang_cuda_math_forward_declares.h +0 -0
  165. /package/lib/clang/{20 → 22}/include/__clang_hip_stdlib.h +0 -0
  166. /package/lib/clang/{20 → 22}/include/__stdarg___gnuc_va_list.h +0 -0
  167. /package/lib/clang/{20 → 22}/include/__stdarg___va_copy.h +0 -0
  168. /package/lib/clang/{20 → 22}/include/__stdarg_header_macro.h +0 -0
  169. /package/lib/clang/{20 → 22}/include/__stdarg_va_copy.h +0 -0
  170. /package/lib/clang/{20 → 22}/include/__stdarg_va_list.h +0 -0
  171. /package/lib/clang/{20 → 22}/include/__stddef_header_macro.h +0 -0
  172. /package/lib/clang/{20 → 22}/include/__stddef_max_align_t.h +0 -0
  173. /package/lib/clang/{20 → 22}/include/__stddef_null.h +0 -0
  174. /package/lib/clang/{20 → 22}/include/__stddef_nullptr_t.h +0 -0
  175. /package/lib/clang/{20 → 22}/include/__stddef_offsetof.h +0 -0
  176. /package/lib/clang/{20 → 22}/include/__stddef_ptrdiff_t.h +0 -0
  177. /package/lib/clang/{20 → 22}/include/__stddef_rsize_t.h +0 -0
  178. /package/lib/clang/{20 → 22}/include/__stddef_size_t.h +0 -0
  179. /package/lib/clang/{20 → 22}/include/__stddef_unreachable.h +0 -0
  180. /package/lib/clang/{20 → 22}/include/__stddef_wchar_t.h +0 -0
  181. /package/lib/clang/{20 → 22}/include/__stddef_wint_t.h +0 -0
  182. /package/lib/clang/{20 → 22}/include/__wmmintrin_aes.h +0 -0
  183. /package/lib/clang/{20 → 22}/include/__wmmintrin_pclmul.h +0 -0
  184. /package/lib/clang/{20 → 22}/include/adcintrin.h +0 -0
  185. /package/lib/clang/{20 → 22}/include/adxintrin.h +0 -0
  186. /package/lib/clang/{20 → 22}/include/ammintrin.h +0 -0
  187. /package/lib/clang/{20 → 22}/include/amxfp16intrin.h +0 -0
  188. /package/lib/clang/{20 → 22}/include/amxfp8intrin.h +0 -0
  189. /package/lib/clang/{20 → 22}/include/amxmovrsintrin.h +0 -0
  190. /package/lib/clang/{20 → 22}/include/amxtf32intrin.h +0 -0
  191. /package/lib/clang/{20 → 22}/include/arm64intr.h +0 -0
  192. /package/lib/clang/{20 → 22}/include/arm_bf16.h +0 -0
  193. /package/lib/clang/{20 → 22}/include/arm_cde.h +0 -0
  194. /package/lib/clang/{20 → 22}/include/arm_cmse.h +0 -0
  195. /package/lib/clang/{20 → 22}/include/arm_mve.h +0 -0
  196. /package/lib/clang/{20 → 22}/include/arm_neon_sve_bridge.h +0 -0
  197. /package/lib/clang/{20 → 22}/include/arm_vector_types.h +0 -0
  198. /package/lib/clang/{20 → 22}/include/armintr.h +0 -0
  199. /package/lib/clang/{20 → 22}/include/avx10_2_512minmaxintrin.h +0 -0
  200. /package/lib/clang/{20 → 22}/include/avxneconvertintrin.h +0 -0
  201. /package/lib/clang/{20 → 22}/include/bmi2intrin.h +0 -0
  202. /package/lib/clang/{20 → 22}/include/builtins.h +0 -0
  203. /package/lib/clang/{20 → 22}/include/cet.h +0 -0
  204. /package/lib/clang/{20 → 22}/include/cetintrin.h +0 -0
  205. /package/lib/clang/{20 → 22}/include/cldemoteintrin.h +0 -0
  206. /package/lib/clang/{20 → 22}/include/clflushoptintrin.h +0 -0
  207. /package/lib/clang/{20 → 22}/include/clwbintrin.h +0 -0
  208. /package/lib/clang/{20 → 22}/include/clzerointrin.h +0 -0
  209. /package/lib/clang/{20 → 22}/include/cmpccxaddintrin.h +0 -0
  210. /package/lib/clang/{20 → 22}/include/crc32intrin.h +0 -0
  211. /package/lib/clang/{20 → 22}/include/cuda_wrappers/algorithm +0 -0
  212. /package/lib/clang/{20 → 22}/include/cuda_wrappers/bits/basic_string.h +0 -0
  213. /package/lib/clang/{20 → 22}/include/cuda_wrappers/bits/basic_string.tcc +0 -0
  214. /package/lib/clang/{20 → 22}/include/cuda_wrappers/bits/shared_ptr_base.h +0 -0
  215. /package/lib/clang/{20 → 22}/include/cuda_wrappers/complex +0 -0
  216. /package/lib/clang/{20 → 22}/include/cuda_wrappers/new +0 -0
  217. /package/lib/clang/{20 → 22}/include/enqcmdintrin.h +0 -0
  218. /package/lib/clang/{20 → 22}/include/fxsrintrin.h +0 -0
  219. /package/lib/clang/{20 → 22}/include/hexagon_circ_brev_intrinsics.h +0 -0
  220. /package/lib/clang/{20 → 22}/include/hexagon_protos.h +0 -0
  221. /package/lib/clang/{20 → 22}/include/hresetintrin.h +0 -0
  222. /package/lib/clang/{20 → 22}/include/htmintrin.h +0 -0
  223. /package/lib/clang/{20 → 22}/include/htmxlintrin.h +0 -0
  224. /package/lib/clang/{20 → 22}/include/ia32intrin.h +0 -0
  225. /package/lib/clang/{20 → 22}/include/intrin0.h +0 -0
  226. /package/lib/clang/{20 → 22}/include/inttypes.h +0 -0
  227. /package/lib/clang/{20 → 22}/include/invpcidintrin.h +0 -0
  228. /package/lib/clang/{20 → 22}/include/iso646.h +0 -0
  229. /package/lib/clang/{20 → 22}/include/larchintrin.h +0 -0
  230. /package/lib/clang/{20 → 22}/include/limits.h +0 -0
  231. /package/lib/clang/{20 → 22}/include/llvm_offload_wrappers/__llvm_offload.h +0 -0
  232. /package/lib/clang/{20 → 22}/include/llvm_offload_wrappers/__llvm_offload_device.h +0 -0
  233. /package/lib/clang/{20 → 22}/include/llvm_offload_wrappers/__llvm_offload_host.h +0 -0
  234. /package/lib/clang/{20 → 22}/include/lsxintrin.h +0 -0
  235. /package/lib/clang/{20 → 22}/include/lwpintrin.h +0 -0
  236. /package/lib/clang/{20 → 22}/include/mm3dnow.h +0 -0
  237. /package/lib/clang/{20 → 22}/include/mm_malloc.h +0 -0
  238. /package/lib/clang/{20 → 22}/include/movdirintrin.h +0 -0
  239. /package/lib/clang/{20 → 22}/include/msa.h +0 -0
  240. /package/lib/clang/{20 → 22}/include/mwaitxintrin.h +0 -0
  241. /package/lib/clang/{20 → 22}/include/nmmintrin.h +0 -0
  242. /package/lib/clang/{20 → 22}/include/openmp_wrappers/__clang_openmp_device_functions.h +0 -0
  243. /package/lib/clang/{20 → 22}/include/openmp_wrappers/cmath +0 -0
  244. /package/lib/clang/{20 → 22}/include/openmp_wrappers/complex +0 -0
  245. /package/lib/clang/{20 → 22}/include/openmp_wrappers/complex.h +0 -0
  246. /package/lib/clang/{20 → 22}/include/openmp_wrappers/complex_cmath.h +0 -0
  247. /package/lib/clang/{20 → 22}/include/openmp_wrappers/math.h +0 -0
  248. /package/lib/clang/{20 → 22}/include/openmp_wrappers/new +0 -0
  249. /package/lib/clang/{20 → 22}/include/pconfigintrin.h +0 -0
  250. /package/lib/clang/{20 → 22}/include/pkuintrin.h +0 -0
  251. /package/lib/clang/{20 → 22}/include/popcntintrin.h +0 -0
  252. /package/lib/clang/{20 → 22}/include/ppc_wrappers/bmi2intrin.h +0 -0
  253. /package/lib/clang/{20 → 22}/include/ppc_wrappers/bmiintrin.h +0 -0
  254. /package/lib/clang/{20 → 22}/include/ppc_wrappers/emmintrin.h +0 -0
  255. /package/lib/clang/{20 → 22}/include/ppc_wrappers/immintrin.h +0 -0
  256. /package/lib/clang/{20 → 22}/include/ppc_wrappers/mm_malloc.h +0 -0
  257. /package/lib/clang/{20 → 22}/include/ppc_wrappers/mmintrin.h +0 -0
  258. /package/lib/clang/{20 → 22}/include/ppc_wrappers/nmmintrin.h +0 -0
  259. /package/lib/clang/{20 → 22}/include/ppc_wrappers/pmmintrin.h +0 -0
  260. /package/lib/clang/{20 → 22}/include/ppc_wrappers/smmintrin.h +0 -0
  261. /package/lib/clang/{20 → 22}/include/ppc_wrappers/tmmintrin.h +0 -0
  262. /package/lib/clang/{20 → 22}/include/ppc_wrappers/x86gprintrin.h +0 -0
  263. /package/lib/clang/{20 → 22}/include/ppc_wrappers/x86intrin.h +0 -0
  264. /package/lib/clang/{20 → 22}/include/ppc_wrappers/xmmintrin.h +0 -0
  265. /package/lib/clang/{20 → 22}/include/prfchiintrin.h +0 -0
  266. /package/lib/clang/{20 → 22}/include/ptwriteintrin.h +0 -0
  267. /package/lib/clang/{20 → 22}/include/raointintrin.h +0 -0
  268. /package/lib/clang/{20 → 22}/include/rdpruintrin.h +0 -0
  269. /package/lib/clang/{20 → 22}/include/rdseedintrin.h +0 -0
  270. /package/lib/clang/{20 → 22}/include/riscv_bitmanip.h +0 -0
  271. /package/lib/clang/{20 → 22}/include/riscv_crypto.h +0 -0
  272. /package/lib/clang/{20 → 22}/include/riscv_ntlh.h +0 -0
  273. /package/lib/clang/{20 → 22}/include/rtmintrin.h +0 -0
  274. /package/lib/clang/{20 → 22}/include/s390intrin.h +0 -0
  275. /package/lib/clang/{20 → 22}/include/serializeintrin.h +0 -0
  276. /package/lib/clang/{20 → 22}/include/sgxintrin.h +0 -0
  277. /package/lib/clang/{20 → 22}/include/sha512intrin.h +0 -0
  278. /package/lib/clang/{20 → 22}/include/sm3intrin.h +0 -0
  279. /package/lib/clang/{20 → 22}/include/sm4intrin.h +0 -0
  280. /package/lib/clang/{20 → 22}/include/stdalign.h +0 -0
  281. /package/lib/clang/{20 → 22}/include/stdarg.h +0 -0
  282. /package/lib/clang/{20 → 22}/include/stdatomic.h +0 -0
  283. /package/lib/clang/{20 → 22}/include/stdbool.h +0 -0
  284. /package/lib/clang/{20 → 22}/include/stdckdint.h +0 -0
  285. /package/lib/clang/{20 → 22}/include/stddef.h +0 -0
  286. /package/lib/clang/{20 → 22}/include/stdnoreturn.h +0 -0
  287. /package/lib/clang/{20 → 22}/include/tbmintrin.h +0 -0
  288. /package/lib/clang/{20 → 22}/include/tgmath.h +0 -0
  289. /package/lib/clang/{20 → 22}/include/tsxldtrkintrin.h +0 -0
  290. /package/lib/clang/{20 → 22}/include/uintrintrin.h +0 -0
  291. /package/lib/clang/{20 → 22}/include/unwind.h +0 -0
  292. /package/lib/clang/{20 → 22}/include/usermsrintrin.h +0 -0
  293. /package/lib/clang/{20 → 22}/include/vadefs.h +0 -0
  294. /package/lib/clang/{20 → 22}/include/varargs.h +0 -0
  295. /package/lib/clang/{20 → 22}/include/velintrin.h +0 -0
  296. /package/lib/clang/{20 → 22}/include/velintrin_approx.h +0 -0
  297. /package/lib/clang/{20 → 22}/include/velintrin_gen.h +0 -0
  298. /package/lib/clang/{20 → 22}/include/vpclmulqdqintrin.h +0 -0
  299. /package/lib/clang/{20 → 22}/include/waitpkgintrin.h +0 -0
  300. /package/lib/clang/{20 → 22}/include/wasm_simd128.h +0 -0
  301. /package/lib/clang/{20 → 22}/include/wbnoinvdintrin.h +0 -0
  302. /package/lib/clang/{20 → 22}/include/wmmintrin.h +0 -0
  303. /package/lib/clang/{20 → 22}/include/xsavecintrin.h +0 -0
  304. /package/lib/clang/{20 → 22}/include/xsaveintrin.h +0 -0
  305. /package/lib/clang/{20 → 22}/include/xsaveoptintrin.h +0 -0
  306. /package/lib/clang/{20 → 22}/include/xsavesintrin.h +0 -0
  307. /package/lib/clang/{20 → 22}/include/xtestintrin.h +0 -0
  308. /package/lib/clang/{20 → 22}/include/yvals_core.h +0 -0
  309. /package/lib/clang/{20 → 22}/include/zos_wrappers/builtins.h +0 -0
@@ -1,4 +1,4 @@
1
- //===----- hlsl_intrinsics.h - HLSL definitions for intrinsics ----------===//
1
+ //===--- hlsl_alias_intrinsics.h - HLSL alias definitions for intrinsics --===//
2
2
  //
3
3
  // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
4
  // See https://llvm.org/LICENSE.txt for license information.
@@ -6,10 +6,8 @@
6
6
  //
7
7
  //===----------------------------------------------------------------------===//
8
8
 
9
- #ifndef _HLSL_HLSL_INTRINSICS_H_
10
- #define _HLSL_HLSL_INTRINSICS_H_
11
-
12
- #include "hlsl_detail.h"
9
+ #ifndef _HLSL_HLSL_ALIAS_INTRINSICS_H_
10
+ #define _HLSL_HLSL_ALIAS_INTRINSICS_H_
13
11
 
14
12
  namespace hlsl {
15
13
 
@@ -58,6 +56,15 @@ int16_t3 abs(int16_t3);
58
56
  _HLSL_AVAILABILITY(shadermodel, 6.2)
59
57
  _HLSL_BUILTIN_ALIAS(__builtin_elementwise_abs)
60
58
  int16_t4 abs(int16_t4);
59
+
60
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
61
+ constexpr uint16_t abs(uint16_t V) { return V; }
62
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
63
+ constexpr uint16_t2 abs(uint16_t2 V) { return V; }
64
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
65
+ constexpr uint16_t3 abs(uint16_t3 V) { return V; }
66
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
67
+ constexpr uint16_t4 abs(uint16_t4 V) { return V; }
61
68
  #endif
62
69
 
63
70
  _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
@@ -82,6 +89,11 @@ int3 abs(int3);
82
89
  _HLSL_BUILTIN_ALIAS(__builtin_elementwise_abs)
83
90
  int4 abs(int4);
84
91
 
92
+ constexpr uint abs(uint V) { return V; }
93
+ constexpr uint2 abs(uint2 V) { return V; }
94
+ constexpr uint3 abs(uint3 V) { return V; }
95
+ constexpr uint4 abs(uint4 V) { return V; }
96
+
85
97
  _HLSL_BUILTIN_ALIAS(__builtin_elementwise_abs)
86
98
  float abs(float);
87
99
  _HLSL_BUILTIN_ALIAS(__builtin_elementwise_abs)
@@ -100,6 +112,11 @@ int64_t3 abs(int64_t3);
100
112
  _HLSL_BUILTIN_ALIAS(__builtin_elementwise_abs)
101
113
  int64_t4 abs(int64_t4);
102
114
 
115
+ constexpr uint64_t abs(uint64_t V) { return V; }
116
+ constexpr uint64_t2 abs(uint64_t2 V) { return V; }
117
+ constexpr uint64_t3 abs(uint64_t3 V) { return V; }
118
+ constexpr uint64_t4 abs(uint64_t4 V) { return V; }
119
+
103
120
  _HLSL_BUILTIN_ALIAS(__builtin_elementwise_abs)
104
121
  double abs(double);
105
122
  _HLSL_BUILTIN_ALIAS(__builtin_elementwise_abs)
@@ -117,16 +134,18 @@ double4 abs(double4);
117
134
  /// \brief Returns the arccosine of the input value, \a Val.
118
135
  /// \param Val The input value.
119
136
 
120
- #ifdef __HLSL_ENABLE_16_BIT
137
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
121
138
  _HLSL_BUILTIN_ALIAS(__builtin_elementwise_acos)
122
139
  half acos(half);
140
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
123
141
  _HLSL_BUILTIN_ALIAS(__builtin_elementwise_acos)
124
142
  half2 acos(half2);
143
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
125
144
  _HLSL_BUILTIN_ALIAS(__builtin_elementwise_acos)
126
145
  half3 acos(half3);
146
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
127
147
  _HLSL_BUILTIN_ALIAS(__builtin_elementwise_acos)
128
148
  half4 acos(half4);
129
- #endif
130
149
 
131
150
  _HLSL_BUILTIN_ALIAS(__builtin_elementwise_acos)
132
151
  float acos(float);
@@ -137,6 +156,27 @@ float3 acos(float3);
137
156
  _HLSL_BUILTIN_ALIAS(__builtin_elementwise_acos)
138
157
  float4 acos(float4);
139
158
 
159
+ //===----------------------------------------------------------------------===//
160
+ // AddUint64 builtins
161
+ //===----------------------------------------------------------------------===//
162
+
163
+ /// \fn T AddUint64(T a, T b)
164
+ /// \brief Implements unsigned 64-bit integer addition using pairs of unsigned
165
+ /// 32-bit integers.
166
+ /// \param x [in] The first unsigned 32-bit integer pair(s)
167
+ /// \param y [in] The second unsigned 32-bit integer pair(s)
168
+ ///
169
+ /// This function takes one or two pairs (low, high) of unsigned 32-bit integer
170
+ /// values and returns pairs (low, high) of unsigned 32-bit integer
171
+ /// values representing the result of unsigned 64-bit integer addition.
172
+
173
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
174
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_adduint64)
175
+ uint32_t2 AddUint64(uint32_t2, uint32_t2);
176
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
177
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_adduint64)
178
+ uint32_t4 AddUint64(uint32_t4, uint32_t4);
179
+
140
180
  //===----------------------------------------------------------------------===//
141
181
  // all builtins
142
182
  //===----------------------------------------------------------------------===//
@@ -249,6 +289,60 @@ bool all(double3);
249
289
  _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
250
290
  bool all(double4);
251
291
 
292
+ //===----------------------------------------------------------------------===//
293
+ // and builtins
294
+ //===----------------------------------------------------------------------===//
295
+
296
+ /// \fn bool and(bool x, bool y)
297
+ /// \brief Logically ands two boolean vectors or matrices elementwise and
298
+ /// produces a bool vector or matrix output.
299
+
300
+ // TODO: Clean up clang-format marker once we've resolved
301
+ // https://github.com/llvm/llvm-project/issues/127851
302
+ //
303
+ // clang-format off
304
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_and)
305
+ bool and(bool x, bool y);
306
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_and)
307
+ bool2 and(bool2 x, bool2 y);
308
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_and)
309
+ bool3 and(bool3 x, bool3 y);
310
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_and)
311
+ bool4 and(bool4 x, bool4 y);
312
+
313
+
314
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_and)
315
+ bool1x2 and(bool1x2 x, bool1x2 y);
316
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_and)
317
+ bool1x3 and(bool1x3 x, bool1x3 y);
318
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_and)
319
+ bool1x4 and(bool1x4 x, bool1x4 y);
320
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_and)
321
+ bool2x1 and(bool2x1 x, bool2x1 y);
322
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_and)
323
+ bool2x2 and(bool2x2 x, bool2x2 y);
324
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_and)
325
+ bool2x3 and(bool2x3 x, bool2x3 y);
326
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_and)
327
+ bool2x4 and(bool2x4 x, bool2x4 y);
328
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_and)
329
+ bool3x1 and(bool3x1 x, bool3x1 y);
330
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_and)
331
+ bool3x2 and(bool3x2 x, bool3x2 y);
332
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_and)
333
+ bool3x3 and(bool3x3 x, bool3x3 y);
334
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_and)
335
+ bool3x4 and(bool3x4 x, bool3x4 y);
336
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_and)
337
+ bool4x1 and(bool4x1 x, bool4x1 y);
338
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_and)
339
+ bool4x2 and(bool4x2 x, bool4x2 y);
340
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_and)
341
+ bool4x3 and(bool4x3 x, bool4x3 y);
342
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_and)
343
+ bool4x4 and(bool4x4 x, bool4x4 y);
344
+ // clang-format on
345
+
252
346
  //===----------------------------------------------------------------------===//
253
347
  // any builtins
254
348
  //===----------------------------------------------------------------------===//
@@ -379,39 +473,6 @@ double3 asdouble(uint3, uint3);
379
473
  _HLSL_BUILTIN_ALIAS(__builtin_hlsl_asdouble)
380
474
  double4 asdouble(uint4, uint4);
381
475
 
382
- //===----------------------------------------------------------------------===//
383
- // asfloat builtins
384
- //===----------------------------------------------------------------------===//
385
-
386
- /// \fn float asfloat(T Val)
387
- /// \brief Interprets the bit pattern of x as float point number.
388
- /// \param Val The input value.
389
-
390
- template <typename T, int N>
391
- constexpr vector<float, N> asfloat(vector<T, N> V) {
392
- return __detail::bit_cast<float, T, N>(V);
393
- }
394
-
395
- template <typename T> constexpr float asfloat(T F) {
396
- return __detail::bit_cast<float, T>(F);
397
- }
398
-
399
- //===----------------------------------------------------------------------===//
400
- // asint builtins
401
- //===----------------------------------------------------------------------===//
402
-
403
- /// \fn int asint(T Val)
404
- /// \brief Interprets the bit pattern of x as an integer.
405
- /// \param Val The input value.
406
-
407
- template <typename T, int N> constexpr vector<int, N> asint(vector<T, N> V) {
408
- return __detail::bit_cast<int, T, N>(V);
409
- }
410
-
411
- template <typename T> constexpr int asint(T F) {
412
- return __detail::bit_cast<int, T>(F);
413
- }
414
-
415
476
  //===----------------------------------------------------------------------===//
416
477
  // asin builtins
417
478
  //===----------------------------------------------------------------------===//
@@ -420,16 +481,18 @@ template <typename T> constexpr int asint(T F) {
420
481
  /// \brief Returns the arcsine of the input value, \a Val.
421
482
  /// \param Val The input value.
422
483
 
423
- #ifdef __HLSL_ENABLE_16_BIT
484
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
424
485
  _HLSL_BUILTIN_ALIAS(__builtin_elementwise_asin)
425
486
  half asin(half);
487
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
426
488
  _HLSL_BUILTIN_ALIAS(__builtin_elementwise_asin)
427
489
  half2 asin(half2);
490
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
428
491
  _HLSL_BUILTIN_ALIAS(__builtin_elementwise_asin)
429
492
  half3 asin(half3);
493
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
430
494
  _HLSL_BUILTIN_ALIAS(__builtin_elementwise_asin)
431
495
  half4 asin(half4);
432
- #endif
433
496
 
434
497
  _HLSL_BUILTIN_ALIAS(__builtin_elementwise_asin)
435
498
  float asin(float);
@@ -440,40 +503,6 @@ float3 asin(float3);
440
503
  _HLSL_BUILTIN_ALIAS(__builtin_elementwise_asin)
441
504
  float4 asin(float4);
442
505
 
443
- //===----------------------------------------------------------------------===//
444
- // asuint builtins
445
- //===----------------------------------------------------------------------===//
446
-
447
- /// \fn uint asuint(T Val)
448
- /// \brief Interprets the bit pattern of x as an unsigned integer.
449
- /// \param Val The input value.
450
-
451
- template <typename T, int N> constexpr vector<uint, N> asuint(vector<T, N> V) {
452
- return __detail::bit_cast<uint, T, N>(V);
453
- }
454
-
455
- template <typename T> constexpr uint asuint(T F) {
456
- return __detail::bit_cast<uint, T>(F);
457
- }
458
-
459
- //===----------------------------------------------------------------------===//
460
- // asuint splitdouble builtins
461
- //===----------------------------------------------------------------------===//
462
-
463
- /// \fn void asuint(double D, out uint lowbits, out int highbits)
464
- /// \brief Split and interprets the lowbits and highbits of double D into uints.
465
- /// \param D The input double.
466
- /// \param lowbits The output lowbits of D.
467
- /// \param highbits The output highbits of D.
468
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_splitdouble)
469
- void asuint(double, out uint, out uint);
470
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_splitdouble)
471
- void asuint(double2, out uint2, out uint2);
472
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_splitdouble)
473
- void asuint(double3, out uint3, out uint3);
474
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_splitdouble)
475
- void asuint(double4, out uint4, out uint4);
476
-
477
506
  //===----------------------------------------------------------------------===//
478
507
  // atan builtins
479
508
  //===----------------------------------------------------------------------===//
@@ -482,16 +511,18 @@ void asuint(double4, out uint4, out uint4);
482
511
  /// \brief Returns the arctangent of the input value, \a Val.
483
512
  /// \param Val The input value.
484
513
 
485
- #ifdef __HLSL_ENABLE_16_BIT
514
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
486
515
  _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan)
487
516
  half atan(half);
517
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
488
518
  _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan)
489
519
  half2 atan(half2);
520
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
490
521
  _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan)
491
522
  half3 atan(half3);
523
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
492
524
  _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan)
493
525
  half4 atan(half4);
494
- #endif
495
526
 
496
527
  _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan)
497
528
  float atan(float);
@@ -512,16 +543,18 @@ float4 atan(float4);
512
543
  /// \param y The y-coordinate.
513
544
  /// \param x The x-coordinate.
514
545
 
515
- #ifdef __HLSL_ENABLE_16_BIT
546
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
516
547
  _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan2)
517
548
  half atan2(half y, half x);
549
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
518
550
  _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan2)
519
551
  half2 atan2(half2 y, half2 x);
552
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
520
553
  _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan2)
521
554
  half3 atan2(half3 y, half3 x);
555
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
522
556
  _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan2)
523
557
  half4 atan2(half4 y, half4 x);
524
- #endif
525
558
 
526
559
  _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan2)
527
560
  float atan2(float y, float x);
@@ -728,16 +761,18 @@ float4 cos(float4);
728
761
  /// \brief Returns the hyperbolic cosine of the input value, \a Val.
729
762
  /// \param Val The input value.
730
763
 
731
- #ifdef __HLSL_ENABLE_16_BIT
764
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
732
765
  _HLSL_BUILTIN_ALIAS(__builtin_elementwise_cosh)
733
766
  half cosh(half);
767
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
734
768
  _HLSL_BUILTIN_ALIAS(__builtin_elementwise_cosh)
735
769
  half2 cosh(half2);
770
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
736
771
  _HLSL_BUILTIN_ALIAS(__builtin_elementwise_cosh)
737
772
  half3 cosh(half3);
773
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
738
774
  _HLSL_BUILTIN_ALIAS(__builtin_elementwise_cosh)
739
775
  half4 cosh(half4);
740
- #endif
741
776
 
742
777
  _HLSL_BUILTIN_ALIAS(__builtin_elementwise_cosh)
743
778
  float cosh(float);
@@ -871,35 +906,6 @@ float3 degrees(float3);
871
906
  _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_degrees)
872
907
  float4 degrees(float4);
873
908
 
874
- //===----------------------------------------------------------------------===//
875
- // distance builtins
876
- //===----------------------------------------------------------------------===//
877
-
878
- /// \fn K distance(T X, T Y)
879
- /// \brief Returns a distance scalar between \a X and \a Y.
880
- /// \param X The X input value.
881
- /// \param Y The Y input value.
882
-
883
- _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
884
- const inline half distance(half X, half Y) {
885
- return __detail::distance_impl(X, Y);
886
- }
887
-
888
- const inline float distance(float X, float Y) {
889
- return __detail::distance_impl(X, Y);
890
- }
891
-
892
- template <int N>
893
- _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
894
- const inline half distance(vector<half, N> X, vector<half, N> Y) {
895
- return __detail::distance_vec_impl(X, Y);
896
- }
897
-
898
- template <int N>
899
- const inline float distance(vector<float, N> X, vector<float, N> Y) {
900
- return __detail::distance_vec_impl(X, Y);
901
- }
902
-
903
909
  //===----------------------------------------------------------------------===//
904
910
  // dot product builtins
905
911
  //===----------------------------------------------------------------------===//
@@ -1079,76 +1085,25 @@ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_exp2)
1079
1085
  float4 exp2(float4);
1080
1086
 
1081
1087
  //===----------------------------------------------------------------------===//
1082
- // firstbithigh builtins
1088
+ // f16tof32 builtins
1083
1089
  //===----------------------------------------------------------------------===//
1084
1090
 
1085
- /// \fn T firstbithigh(T Val)
1086
- /// \brief Returns the location of the first set bit starting from the highest
1087
- /// order bit and working downward, per component.
1088
- /// \param Val the input value.
1089
-
1090
- #ifdef __HLSL_ENABLE_16_BIT
1091
- _HLSL_AVAILABILITY(shadermodel, 6.2)
1092
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbithigh)
1093
- uint firstbithigh(int16_t);
1094
- _HLSL_AVAILABILITY(shadermodel, 6.2)
1095
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbithigh)
1096
- uint2 firstbithigh(int16_t2);
1097
- _HLSL_AVAILABILITY(shadermodel, 6.2)
1098
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbithigh)
1099
- uint3 firstbithigh(int16_t3);
1100
- _HLSL_AVAILABILITY(shadermodel, 6.2)
1101
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbithigh)
1102
- uint4 firstbithigh(int16_t4);
1103
- _HLSL_AVAILABILITY(shadermodel, 6.2)
1104
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbithigh)
1105
- uint firstbithigh(uint16_t);
1106
- _HLSL_AVAILABILITY(shadermodel, 6.2)
1107
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbithigh)
1108
- uint2 firstbithigh(uint16_t2);
1109
- _HLSL_AVAILABILITY(shadermodel, 6.2)
1110
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbithigh)
1111
- uint3 firstbithigh(uint16_t3);
1112
- _HLSL_AVAILABILITY(shadermodel, 6.2)
1113
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbithigh)
1114
- uint4 firstbithigh(uint16_t4);
1115
- #endif
1091
+ /// \fn float f16tof32(uint x)
1092
+ /// \brief Returns the half value stored in the low 16 bits of the uint arg
1093
+ /// converted to a float.
1094
+ /// \param x The uint containing two half values.
1095
+ ///
1096
+ /// The float value of the half value found in the low 16 bits of the \a xi
1097
+ /// parameter.
1116
1098
 
1117
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbithigh)
1118
- uint firstbithigh(int);
1119
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbithigh)
1120
- uint2 firstbithigh(int2);
1121
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbithigh)
1122
- uint3 firstbithigh(int3);
1123
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbithigh)
1124
- uint4 firstbithigh(int4);
1125
-
1126
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbithigh)
1127
- uint firstbithigh(uint);
1128
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbithigh)
1129
- uint2 firstbithigh(uint2);
1130
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbithigh)
1131
- uint3 firstbithigh(uint3);
1132
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbithigh)
1133
- uint4 firstbithigh(uint4);
1134
-
1135
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbithigh)
1136
- uint firstbithigh(int64_t);
1137
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbithigh)
1138
- uint2 firstbithigh(int64_t2);
1139
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbithigh)
1140
- uint3 firstbithigh(int64_t3);
1141
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbithigh)
1142
- uint4 firstbithigh(int64_t4);
1143
-
1144
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbithigh)
1145
- uint firstbithigh(uint64_t);
1146
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbithigh)
1147
- uint2 firstbithigh(uint64_t2);
1148
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbithigh)
1149
- uint3 firstbithigh(uint64_t3);
1150
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbithigh)
1151
- uint4 firstbithigh(uint64_t4);
1099
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_f16tof32)
1100
+ float f16tof32(uint);
1101
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_f16tof32)
1102
+ float2 f16tof32(uint2);
1103
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_f16tof32)
1104
+ float3 f16tof32(uint3);
1105
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_f16tof32)
1106
+ float4 f16tof32(uint4);
1152
1107
 
1153
1108
  //===----------------------------------------------------------------------===//
1154
1109
  // firstbitlow builtins
@@ -1253,40 +1208,6 @@ float3 floor(float3);
1253
1208
  _HLSL_BUILTIN_ALIAS(__builtin_elementwise_floor)
1254
1209
  float4 floor(float4);
1255
1210
 
1256
- //===----------------------------------------------------------------------===//
1257
- // fmod builtins
1258
- //===----------------------------------------------------------------------===//
1259
-
1260
- /// \fn T fmod(T x, T y)
1261
- /// \brief Returns the linear interpolation of x to y.
1262
- /// \param x [in] The dividend.
1263
- /// \param y [in] The divisor.
1264
- ///
1265
- /// Return the floating-point remainder of the x parameter divided by the y
1266
- /// parameter.
1267
-
1268
- _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1269
- _HLSL_BUILTIN_ALIAS(__builtin_elementwise_fmod)
1270
- half fmod(half, half);
1271
- _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1272
- _HLSL_BUILTIN_ALIAS(__builtin_elementwise_fmod)
1273
- half2 fmod(half2, half2);
1274
- _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1275
- _HLSL_BUILTIN_ALIAS(__builtin_elementwise_fmod)
1276
- half3 fmod(half3, half3);
1277
- _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1278
- _HLSL_BUILTIN_ALIAS(__builtin_elementwise_fmod)
1279
- half4 fmod(half4, half4);
1280
-
1281
- _HLSL_BUILTIN_ALIAS(__builtin_elementwise_fmod)
1282
- float fmod(float, float);
1283
- _HLSL_BUILTIN_ALIAS(__builtin_elementwise_fmod)
1284
- float2 fmod(float2, float2);
1285
- _HLSL_BUILTIN_ALIAS(__builtin_elementwise_fmod)
1286
- float3 fmod(float3, float3);
1287
- _HLSL_BUILTIN_ALIAS(__builtin_elementwise_fmod)
1288
- float4 fmod(float4, float4);
1289
-
1290
1211
  //===----------------------------------------------------------------------===//
1291
1212
  // frac builtins
1292
1213
  //===----------------------------------------------------------------------===//
@@ -1352,6 +1273,39 @@ bool3 isinf(float3);
1352
1273
  _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_isinf)
1353
1274
  bool4 isinf(float4);
1354
1275
 
1276
+ //===----------------------------------------------------------------------===//
1277
+ // isnan builtins
1278
+ //===----------------------------------------------------------------------===//
1279
+
1280
+ /// \fn T isnan(T x)
1281
+ /// \brief Determines if the specified value \a x is Not a Number.
1282
+ /// \param x The specified input value.
1283
+ ///
1284
+ /// Returns a value of the same size as the input, with a value set
1285
+ /// to True if the x parameter is NaN or QNaN. Otherwise, False.
1286
+
1287
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1288
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_isnan)
1289
+ bool isnan(half);
1290
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1291
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_isnan)
1292
+ bool2 isnan(half2);
1293
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1294
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_isnan)
1295
+ bool3 isnan(half3);
1296
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1297
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_isnan)
1298
+ bool4 isnan(half4);
1299
+
1300
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_isnan)
1301
+ bool isnan(float);
1302
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_isnan)
1303
+ bool2 isnan(float2);
1304
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_isnan)
1305
+ bool3 isnan(float3);
1306
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_isnan)
1307
+ bool4 isnan(float4);
1308
+
1355
1309
  //===----------------------------------------------------------------------===//
1356
1310
  // lerp builtins
1357
1311
  //===----------------------------------------------------------------------===//
@@ -1388,30 +1342,6 @@ float3 lerp(float3, float3, float3);
1388
1342
  _HLSL_BUILTIN_ALIAS(__builtin_hlsl_lerp)
1389
1343
  float4 lerp(float4, float4, float4);
1390
1344
 
1391
- //===----------------------------------------------------------------------===//
1392
- // length builtins
1393
- //===----------------------------------------------------------------------===//
1394
-
1395
- /// \fn T length(T x)
1396
- /// \brief Returns the length of the specified floating-point vector.
1397
- /// \param x [in] The vector of floats, or a scalar float.
1398
- ///
1399
- /// Length is based on the following formula: sqrt(x[0]^2 + x[1]^2 + ...).
1400
-
1401
- _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1402
- const inline half length(half X) { return __detail::length_impl(X); }
1403
- const inline float length(float X) { return __detail::length_impl(X); }
1404
-
1405
- template <int N>
1406
- _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1407
- const inline half length(vector<half, N> X) {
1408
- return __detail::length_vec_impl(X);
1409
- }
1410
-
1411
- template <int N> const inline float length(vector<float, N> X) {
1412
- return __detail::length_vec_impl(X);
1413
- }
1414
-
1415
1345
  //===----------------------------------------------------------------------===//
1416
1346
  // log builtins
1417
1347
  //===----------------------------------------------------------------------===//
@@ -1856,6 +1786,59 @@ float3 normalize(float3);
1856
1786
  _HLSL_BUILTIN_ALIAS(__builtin_hlsl_normalize)
1857
1787
  float4 normalize(float4);
1858
1788
 
1789
+ //===----------------------------------------------------------------------===//
1790
+ // or builtins
1791
+ //===----------------------------------------------------------------------===//
1792
+
1793
+ /// \fn bool or(bool x, bool y)
1794
+ /// \brief Logically ors two boolean vectors or matrices elementwise and
1795
+ /// produces a bool vector or matrix output.
1796
+
1797
+ // TODO: Clean up clang-format marker once we've resolved
1798
+ // https://github.com/llvm/llvm-project/issues/127851
1799
+ //
1800
+ // clang-format off
1801
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_or)
1802
+ bool or(bool, bool);
1803
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_or)
1804
+ bool2 or(bool2, bool2);
1805
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_or)
1806
+ bool3 or(bool3, bool3);
1807
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_or)
1808
+ bool4 or(bool4, bool4);
1809
+
1810
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_or)
1811
+ bool1x2 or(bool1x2 x, bool1x2 y);
1812
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_or)
1813
+ bool1x3 or(bool1x3 x, bool1x3 y);
1814
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_or)
1815
+ bool1x4 or(bool1x4 x, bool1x4 y);
1816
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_or)
1817
+ bool2x1 or(bool2x1 x, bool2x1 y);
1818
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_or)
1819
+ bool2x2 or(bool2x2 x, bool2x2 y);
1820
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_or)
1821
+ bool2x3 or(bool2x3 x, bool2x3 y);
1822
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_or)
1823
+ bool2x4 or(bool2x4 x, bool2x4 y);
1824
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_or)
1825
+ bool3x1 or(bool3x1 x, bool3x1 y);
1826
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_or)
1827
+ bool3x2 or(bool3x2 x, bool3x2 y);
1828
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_or)
1829
+ bool3x3 or(bool3x3 x, bool3x3 y);
1830
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_or)
1831
+ bool3x4 or(bool3x4 x, bool3x4 y);
1832
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_or)
1833
+ bool4x1 or(bool4x1 x, bool4x1 y);
1834
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_or)
1835
+ bool4x2 or(bool4x2 x, bool4x2 y);
1836
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_or)
1837
+ bool4x3 or(bool4x3 x, bool4x3 y);
1838
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_or)
1839
+ bool4x4 or(bool4x4 x, bool4x4 y);
1840
+ // clang-format on
1841
+
1859
1842
  //===----------------------------------------------------------------------===//
1860
1843
  // pow builtins
1861
1844
  //===----------------------------------------------------------------------===//
@@ -1944,29 +1927,12 @@ uint64_t4 reversebits(uint64_t4);
1944
1927
  /// x[0] * y[1] - y[0] * x[1]
1945
1928
 
1946
1929
  _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1947
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_cross)
1930
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_crossf16)
1948
1931
  half3 cross(half3, half3);
1949
1932
 
1950
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_cross)
1933
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_crossf32)
1951
1934
  float3 cross(float3, float3);
1952
1935
 
1953
- //===----------------------------------------------------------------------===//
1954
- // D3DCOLORtoUBYTE4 builtin
1955
- //===----------------------------------------------------------------------===//
1956
-
1957
- /// \fn T D3DCOLORtoUBYTE4(T x)
1958
- /// \brief Converts a floating-point, 4D vector set by a D3DCOLOR to a UBYTE4.
1959
- /// \param x [in] The floating-point vector4 to convert.
1960
- ///
1961
- /// The return value is the UBYTE4 representation of the \a x parameter.
1962
- ///
1963
- /// This function swizzles and scales components of the \a x parameter. Use this
1964
- /// function to compensate for the lack of UBYTE4 support in some hardware.
1965
-
1966
- constexpr vector<uint, 4> D3DCOLORtoUBYTE4(vector<float, 4> V) {
1967
- return __detail::d3d_color_to_ubyte4_impl(V);
1968
- }
1969
-
1970
1936
  //===----------------------------------------------------------------------===//
1971
1937
  // rcp builtins
1972
1938
  //===----------------------------------------------------------------------===//
@@ -2136,9 +2102,78 @@ T select(bool, T, T);
2136
2102
  /// \param FalseVals The vector values are chosen from when conditions are
2137
2103
  /// false.
2138
2104
 
2139
- template <typename T, int Sz>
2105
+ template <typename T>
2106
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_select)
2107
+ vector<T, 2> select(vector<bool, 2>, vector<T, 2>, vector<T, 2>);
2108
+
2109
+ template <typename T>
2110
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_select)
2111
+ vector<T, 3> select(vector<bool, 3>, vector<T, 3>, vector<T, 3>);
2112
+
2113
+ template <typename T>
2114
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_select)
2115
+ vector<T, 4> select(vector<bool, 4>, vector<T, 4>, vector<T, 4>);
2116
+
2117
+ /// \fn vector<T,Sz> select(vector<bool,Sz> Conds, T TrueVal,
2118
+ /// vector<T,Sz> FalseVals)
2119
+ /// \brief ternary operator for vectors. All vectors must be the same size.
2120
+ /// \param Conds The Condition input values.
2121
+ /// \param TrueVal The scalar value to splat from when conditions are true.
2122
+ /// \param FalseVals The vector values are chosen from when conditions are
2123
+ /// false.
2124
+
2125
+ template <typename T>
2126
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_select)
2127
+ vector<T, 2> select(vector<bool, 2>, T, vector<T, 2>);
2128
+
2129
+ template <typename T>
2130
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_select)
2131
+ vector<T, 3> select(vector<bool, 3>, T, vector<T, 3>);
2132
+
2133
+ template <typename T>
2134
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_select)
2135
+ vector<T, 4> select(vector<bool, 4>, T, vector<T, 4>);
2136
+
2137
+ /// \fn vector<T,Sz> select(vector<bool,Sz> Conds, vector<T,Sz> TrueVals,
2138
+ /// T FalseVal)
2139
+ /// \brief ternary operator for vectors. All vectors must be the same size.
2140
+ /// \param Conds The Condition input values.
2141
+ /// \param TrueVals The vector values are chosen from when conditions are true.
2142
+ /// \param FalseVal The scalar value to splat from when conditions are false.
2143
+
2144
+ template <typename T>
2145
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_select)
2146
+ vector<T, 2> select(vector<bool, 2>, vector<T, 2>, T);
2147
+
2148
+ template <typename T>
2149
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_select)
2150
+ vector<T, 3> select(vector<bool, 3>, vector<T, 3>, T);
2151
+
2152
+ template <typename T>
2153
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_select)
2154
+ vector<T, 4> select(vector<bool, 4>, vector<T, 4>, T);
2155
+
2156
+ /// \fn vector<T,Sz> select(vector<bool,Sz> Conds, vector<T,Sz> TrueVals,
2157
+ /// T FalseVal)
2158
+ /// \brief ternary operator for vectors. All vectors must be the same size.
2159
+ /// \param Conds The Condition input values.
2160
+ /// \param TrueVal The scalar value to splat from when conditions are true.
2161
+ /// \param FalseVal The scalar value to splat from when conditions are false.
2162
+
2163
+ template <typename T>
2164
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_select)
2165
+ __detail::enable_if_t<__detail::is_arithmetic<T>::Value, vector<T, 2>> select(
2166
+ vector<bool, 2>, T, T);
2167
+
2168
+ template <typename T>
2169
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_select)
2170
+ __detail::enable_if_t<__detail::is_arithmetic<T>::Value, vector<T, 3>> select(
2171
+ vector<bool, 3>, T, T);
2172
+
2173
+ template <typename T>
2140
2174
  _HLSL_BUILTIN_ALIAS(__builtin_hlsl_select)
2141
- vector<T, Sz> select(vector<bool, Sz>, vector<T, Sz>, vector<T, Sz>);
2175
+ __detail::enable_if_t<__detail::is_arithmetic<T>::Value, vector<T, 4>> select(
2176
+ vector<bool, 4>, T, T);
2142
2177
 
2143
2178
  //===----------------------------------------------------------------------===//
2144
2179
  // sin builtins
@@ -2178,16 +2213,18 @@ float4 sin(float4);
2178
2213
  /// \brief Returns the hyperbolic sine of the input value, \a Val.
2179
2214
  /// \param Val The input value.
2180
2215
 
2181
- #ifdef __HLSL_ENABLE_16_BIT
2216
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2182
2217
  _HLSL_BUILTIN_ALIAS(__builtin_elementwise_sinh)
2183
2218
  half sinh(half);
2219
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2184
2220
  _HLSL_BUILTIN_ALIAS(__builtin_elementwise_sinh)
2185
2221
  half2 sinh(half2);
2222
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2186
2223
  _HLSL_BUILTIN_ALIAS(__builtin_elementwise_sinh)
2187
2224
  half3 sinh(half3);
2225
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2188
2226
  _HLSL_BUILTIN_ALIAS(__builtin_elementwise_sinh)
2189
2227
  half4 sinh(half4);
2190
- #endif
2191
2228
 
2192
2229
  _HLSL_BUILTIN_ALIAS(__builtin_elementwise_sinh)
2193
2230
  float sinh(float);
@@ -2232,10 +2269,10 @@ float4 sqrt(float4);
2232
2269
  // step builtins
2233
2270
  //===----------------------------------------------------------------------===//
2234
2271
 
2235
- /// \fn T step(T x, T y)
2272
+ /// \fn T step(T y, T x)
2236
2273
  /// \brief Returns 1 if the x parameter is greater than or equal to the y
2237
- /// parameter; otherwise, 0. vector. \param x [in] The first floating-point
2238
- /// value to compare. \param y [in] The first floating-point value to compare.
2274
+ /// parameter; otherwise, 0. vector. \param y [in] The first floating-point
2275
+ /// value to compare. \param x [in] The second floating-point value to compare.
2239
2276
  ///
2240
2277
  /// Step is based on the following formula: (x >= y) ? 1 : 0
2241
2278
 
@@ -2269,16 +2306,18 @@ float4 step(float4, float4);
2269
2306
  /// \brief Returns the tangent of the input value, \a Val.
2270
2307
  /// \param Val The input value.
2271
2308
 
2272
- #ifdef __HLSL_ENABLE_16_BIT
2309
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2273
2310
  _HLSL_BUILTIN_ALIAS(__builtin_elementwise_tan)
2274
2311
  half tan(half);
2312
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2275
2313
  _HLSL_BUILTIN_ALIAS(__builtin_elementwise_tan)
2276
2314
  half2 tan(half2);
2315
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2277
2316
  _HLSL_BUILTIN_ALIAS(__builtin_elementwise_tan)
2278
2317
  half3 tan(half3);
2318
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2279
2319
  _HLSL_BUILTIN_ALIAS(__builtin_elementwise_tan)
2280
2320
  half4 tan(half4);
2281
- #endif
2282
2321
 
2283
2322
  _HLSL_BUILTIN_ALIAS(__builtin_elementwise_tan)
2284
2323
  float tan(float);
@@ -2297,16 +2336,18 @@ float4 tan(float4);
2297
2336
  /// \brief Returns the hyperbolic tangent of the input value, \a Val.
2298
2337
  /// \param Val The input value.
2299
2338
 
2300
- #ifdef __HLSL_ENABLE_16_BIT
2339
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2301
2340
  _HLSL_BUILTIN_ALIAS(__builtin_elementwise_tanh)
2302
2341
  half tanh(half);
2342
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2303
2343
  _HLSL_BUILTIN_ALIAS(__builtin_elementwise_tanh)
2304
2344
  half2 tanh(half2);
2345
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2305
2346
  _HLSL_BUILTIN_ALIAS(__builtin_elementwise_tanh)
2306
2347
  half3 tanh(half3);
2348
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2307
2349
  _HLSL_BUILTIN_ALIAS(__builtin_elementwise_tanh)
2308
2350
  half4 tanh(half4);
2309
- #endif
2310
2351
 
2311
2352
  _HLSL_BUILTIN_ALIAS(__builtin_elementwise_tanh)
2312
2353
  float tanh(float);
@@ -2369,6 +2410,18 @@ _HLSL_AVAILABILITY(shadermodel, 6.0)
2369
2410
  _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_any_true)
2370
2411
  __attribute__((convergent)) bool WaveActiveAnyTrue(bool Val);
2371
2412
 
2413
+ /// \brief Returns a uint4 containing a bitmask of the evaluation of the
2414
+ /// boolean expression for all active lanes in the current wave.
2415
+ /// The least-significant bit corresponds to the lane with index zero.
2416
+ /// The bits corresponding to inactive lanes will be zero. The bits that
2417
+ /// are greater than or equal to WaveGetLaneCount will be zero.
2418
+ ///
2419
+ /// \param Val The boolean expression to evaluate.
2420
+ /// \return uint4 bitmask
2421
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2422
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_ballot)
2423
+ __attribute__((convergent)) uint4 WaveActiveBallot(bool Val);
2424
+
2372
2425
  /// \brief Counts the number of boolean variables which evaluate to true across
2373
2426
  /// all active lanes in the current wave.
2374
2427
  ///
@@ -2388,6 +2441,10 @@ _HLSL_AVAILABILITY(shadermodel, 6.0)
2388
2441
  _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_is_first_lane)
2389
2442
  __attribute__((convergent)) bool WaveIsFirstLane();
2390
2443
 
2444
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2445
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_get_lane_count)
2446
+ __attribute__((convergent)) uint WaveGetLaneCount();
2447
+
2391
2448
  //===----------------------------------------------------------------------===//
2392
2449
  // WaveReadLaneAt builtins
2393
2450
  //===----------------------------------------------------------------------===//
@@ -2396,77 +2453,108 @@ __attribute__((convergent)) bool WaveIsFirstLane();
2396
2453
  // the specified wave.
2397
2454
 
2398
2455
  _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2399
- __attribute__((convergent)) bool WaveReadLaneAt(bool, int32_t);
2456
+ __attribute__((convergent)) bool WaveReadLaneAt(bool, uint32_t);
2400
2457
  _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2401
- __attribute__((convergent)) bool2 WaveReadLaneAt(bool2, int32_t);
2458
+ __attribute__((convergent)) bool2 WaveReadLaneAt(bool2, uint32_t);
2402
2459
  _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2403
- __attribute__((convergent)) bool3 WaveReadLaneAt(bool3, int32_t);
2460
+ __attribute__((convergent)) bool3 WaveReadLaneAt(bool3, uint32_t);
2404
2461
  _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2405
- __attribute__((convergent)) bool4 WaveReadLaneAt(bool4, int32_t);
2462
+ __attribute__((convergent)) bool4 WaveReadLaneAt(bool4, uint32_t);
2406
2463
 
2407
2464
  #ifdef __HLSL_ENABLE_16_BIT
2408
2465
  _HLSL_AVAILABILITY(shadermodel, 6.0)
2409
2466
  _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2410
- __attribute__((convergent)) int16_t WaveReadLaneAt(int16_t, int32_t);
2467
+ __attribute__((convergent)) int16_t WaveReadLaneAt(int16_t, uint32_t);
2468
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2469
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2470
+ __attribute__((convergent)) int16_t2 WaveReadLaneAt(int16_t2, uint32_t);
2471
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2472
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2473
+ __attribute__((convergent)) int16_t3 WaveReadLaneAt(int16_t3, uint32_t);
2411
2474
  _HLSL_AVAILABILITY(shadermodel, 6.0)
2412
2475
  _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2413
- __attribute__((convergent)) int16_t2 WaveReadLaneAt(int16_t2, int32_t);
2476
+ __attribute__((convergent)) int16_t4 WaveReadLaneAt(int16_t4, uint32_t);
2477
+
2478
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2479
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2480
+ __attribute__((convergent)) uint16_t WaveReadLaneAt(uint16_t, uint32_t);
2414
2481
  _HLSL_AVAILABILITY(shadermodel, 6.0)
2415
2482
  _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2416
- __attribute__((convergent)) int16_t3 WaveReadLaneAt(int16_t3, int32_t);
2483
+ __attribute__((convergent)) uint16_t2 WaveReadLaneAt(uint16_t2, uint32_t);
2417
2484
  _HLSL_AVAILABILITY(shadermodel, 6.0)
2418
2485
  _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2419
- __attribute__((convergent)) int16_t4 WaveReadLaneAt(int16_t4, int32_t);
2486
+ __attribute__((convergent)) uint16_t3 WaveReadLaneAt(uint16_t3, uint32_t);
2487
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2488
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2489
+ __attribute__((convergent)) uint16_t4 WaveReadLaneAt(uint16_t4, uint32_t);
2420
2490
  #endif
2421
2491
 
2422
2492
  _HLSL_16BIT_AVAILABILITY(shadermodel, 6.0)
2423
2493
  _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2424
- __attribute__((convergent)) half WaveReadLaneAt(half, int32_t);
2494
+ __attribute__((convergent)) half WaveReadLaneAt(half, uint32_t);
2425
2495
  _HLSL_16BIT_AVAILABILITY(shadermodel, 6.0)
2426
2496
  _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2427
- __attribute__((convergent)) half2 WaveReadLaneAt(half2, int32_t);
2497
+ __attribute__((convergent)) half2 WaveReadLaneAt(half2, uint32_t);
2428
2498
  _HLSL_16BIT_AVAILABILITY(shadermodel, 6.0)
2429
2499
  _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2430
- __attribute__((convergent)) half3 WaveReadLaneAt(half3, int32_t);
2500
+ __attribute__((convergent)) half3 WaveReadLaneAt(half3, uint32_t);
2431
2501
  _HLSL_16BIT_AVAILABILITY(shadermodel, 6.0)
2432
2502
  _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2433
- __attribute__((convergent)) half4 WaveReadLaneAt(half4, int32_t);
2503
+ __attribute__((convergent)) half4 WaveReadLaneAt(half4, uint32_t);
2504
+
2505
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2506
+ __attribute__((convergent)) int WaveReadLaneAt(int, uint32_t);
2507
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2508
+ __attribute__((convergent)) int2 WaveReadLaneAt(int2, uint32_t);
2509
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2510
+ __attribute__((convergent)) int3 WaveReadLaneAt(int3, uint32_t);
2511
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2512
+ __attribute__((convergent)) int4 WaveReadLaneAt(int4, uint32_t);
2513
+
2514
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2515
+ __attribute__((convergent)) uint WaveReadLaneAt(uint, uint32_t);
2516
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2517
+ __attribute__((convergent)) uint2 WaveReadLaneAt(uint2, uint32_t);
2518
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2519
+ __attribute__((convergent)) uint3 WaveReadLaneAt(uint3, uint32_t);
2520
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2521
+ __attribute__((convergent)) uint4 WaveReadLaneAt(uint4, uint32_t);
2434
2522
 
2435
2523
  _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2436
- __attribute__((convergent)) int WaveReadLaneAt(int, int32_t);
2524
+ __attribute__((convergent)) float WaveReadLaneAt(float, uint32_t);
2437
2525
  _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2438
- __attribute__((convergent)) int2 WaveReadLaneAt(int2, int32_t);
2526
+ __attribute__((convergent)) float2 WaveReadLaneAt(float2, uint32_t);
2439
2527
  _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2440
- __attribute__((convergent)) int3 WaveReadLaneAt(int3, int32_t);
2528
+ __attribute__((convergent)) float3 WaveReadLaneAt(float3, uint32_t);
2441
2529
  _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2442
- __attribute__((convergent)) int4 WaveReadLaneAt(int4, int32_t);
2530
+ __attribute__((convergent)) float4 WaveReadLaneAt(float4, uint32_t);
2443
2531
 
2444
2532
  _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2445
- __attribute__((convergent)) float WaveReadLaneAt(float, int32_t);
2533
+ __attribute__((convergent)) int64_t WaveReadLaneAt(int64_t, uint32_t);
2446
2534
  _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2447
- __attribute__((convergent)) float2 WaveReadLaneAt(float2, int32_t);
2535
+ __attribute__((convergent)) int64_t2 WaveReadLaneAt(int64_t2, uint32_t);
2448
2536
  _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2449
- __attribute__((convergent)) float3 WaveReadLaneAt(float3, int32_t);
2537
+ __attribute__((convergent)) int64_t3 WaveReadLaneAt(int64_t3, uint32_t);
2450
2538
  _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2451
- __attribute__((convergent)) float4 WaveReadLaneAt(float4, int32_t);
2539
+ __attribute__((convergent)) int64_t4 WaveReadLaneAt(int64_t4, uint32_t);
2452
2540
 
2453
2541
  _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2454
- __attribute__((convergent)) int64_t WaveReadLaneAt(int64_t, int32_t);
2542
+ __attribute__((convergent)) uint64_t WaveReadLaneAt(uint64_t, uint32_t);
2455
2543
  _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2456
- __attribute__((convergent)) int64_t2 WaveReadLaneAt(int64_t2, int32_t);
2544
+ __attribute__((convergent)) uint64_t2 WaveReadLaneAt(uint64_t2, uint32_t);
2457
2545
  _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2458
- __attribute__((convergent)) int64_t3 WaveReadLaneAt(int64_t3, int32_t);
2546
+ __attribute__((convergent)) uint64_t3 WaveReadLaneAt(uint64_t3, uint32_t);
2459
2547
  _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2460
- __attribute__((convergent)) int64_t4 WaveReadLaneAt(int64_t4, int32_t);
2548
+ __attribute__((convergent)) uint64_t4 WaveReadLaneAt(uint64_t4, uint32_t);
2461
2549
 
2462
2550
  _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2463
- __attribute__((convergent)) double WaveReadLaneAt(double, int32_t);
2551
+ __attribute__((convergent)) double WaveReadLaneAt(double, uint32_t);
2464
2552
  _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2465
- __attribute__((convergent)) double2 WaveReadLaneAt(double2, int32_t);
2553
+ __attribute__((convergent)) double2 WaveReadLaneAt(double2, uint32_t);
2466
2554
  _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2467
- __attribute__((convergent)) double3 WaveReadLaneAt(double3, int32_t);
2555
+ __attribute__((convergent)) double3 WaveReadLaneAt(double3, uint32_t);
2468
2556
  _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2469
- __attribute__((convergent)) double4 WaveReadLaneAt(double4, int32_t);
2557
+ __attribute__((convergent)) double4 WaveReadLaneAt(double4, uint32_t);
2470
2558
 
2471
2559
  //===----------------------------------------------------------------------===//
2472
2560
  // WaveActiveMax builtins
@@ -2567,6 +2655,129 @@ __attribute__((convergent)) double3 WaveActiveMax(double3);
2567
2655
  _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
2568
2656
  __attribute__((convergent)) double4 WaveActiveMax(double4);
2569
2657
 
2658
+ //===----------------------------------------------------------------------===//
2659
+ // WaveActiveMin builtins
2660
+ //===----------------------------------------------------------------------===//
2661
+
2662
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.0)
2663
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
2664
+ __attribute__((convergent)) half WaveActiveMin(half);
2665
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.0)
2666
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
2667
+ __attribute__((convergent)) half2 WaveActiveMin(half2);
2668
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.0)
2669
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
2670
+ __attribute__((convergent)) half3 WaveActiveMin(half3);
2671
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.0)
2672
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
2673
+ __attribute__((convergent)) half4 WaveActiveMin(half4);
2674
+
2675
+ #ifdef __HLSL_ENABLE_16_BIT
2676
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2677
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
2678
+ __attribute__((convergent)) int16_t WaveActiveMin(int16_t);
2679
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2680
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
2681
+ __attribute__((convergent)) int16_t2 WaveActiveMin(int16_t2);
2682
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2683
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
2684
+ __attribute__((convergent)) int16_t3 WaveActiveMin(int16_t3);
2685
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2686
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
2687
+ __attribute__((convergent)) int16_t4 WaveActiveMin(int16_t4);
2688
+
2689
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2690
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
2691
+ __attribute__((convergent)) uint16_t WaveActiveMin(uint16_t);
2692
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2693
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
2694
+ __attribute__((convergent)) uint16_t2 WaveActiveMin(uint16_t2);
2695
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2696
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
2697
+ __attribute__((convergent)) uint16_t3 WaveActiveMin(uint16_t3);
2698
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2699
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
2700
+ __attribute__((convergent)) uint16_t4 WaveActiveMin(uint16_t4);
2701
+ #endif
2702
+
2703
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2704
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
2705
+ __attribute__((convergent)) int WaveActiveMin(int);
2706
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2707
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
2708
+ __attribute__((convergent)) int2 WaveActiveMin(int2);
2709
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2710
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
2711
+ __attribute__((convergent)) int3 WaveActiveMin(int3);
2712
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2713
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
2714
+ __attribute__((convergent)) int4 WaveActiveMin(int4);
2715
+
2716
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2717
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
2718
+ __attribute__((convergent)) uint WaveActiveMin(uint);
2719
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2720
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
2721
+ __attribute__((convergent)) uint2 WaveActiveMin(uint2);
2722
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2723
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
2724
+ __attribute__((convergent)) uint3 WaveActiveMin(uint3);
2725
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2726
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
2727
+ __attribute__((convergent)) uint4 WaveActiveMin(uint4);
2728
+
2729
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2730
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
2731
+ __attribute__((convergent)) int64_t WaveActiveMin(int64_t);
2732
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2733
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
2734
+ __attribute__((convergent)) int64_t2 WaveActiveMin(int64_t2);
2735
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2736
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
2737
+ __attribute__((convergent)) int64_t3 WaveActiveMin(int64_t3);
2738
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2739
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
2740
+ __attribute__((convergent)) int64_t4 WaveActiveMin(int64_t4);
2741
+
2742
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2743
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
2744
+ __attribute__((convergent)) uint64_t WaveActiveMin(uint64_t);
2745
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2746
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
2747
+ __attribute__((convergent)) uint64_t2 WaveActiveMin(uint64_t2);
2748
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2749
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
2750
+ __attribute__((convergent)) uint64_t3 WaveActiveMin(uint64_t3);
2751
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2752
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
2753
+ __attribute__((convergent)) uint64_t4 WaveActiveMin(uint64_t4);
2754
+
2755
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2756
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
2757
+ __attribute__((convergent)) float WaveActiveMin(float);
2758
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2759
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
2760
+ __attribute__((convergent)) float2 WaveActiveMin(float2);
2761
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2762
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
2763
+ __attribute__((convergent)) float3 WaveActiveMin(float3);
2764
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2765
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
2766
+ __attribute__((convergent)) float4 WaveActiveMin(float4);
2767
+
2768
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2769
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
2770
+ __attribute__((convergent)) double WaveActiveMin(double);
2771
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2772
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
2773
+ __attribute__((convergent)) double2 WaveActiveMin(double2);
2774
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2775
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
2776
+ __attribute__((convergent)) double3 WaveActiveMin(double3);
2777
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2778
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_min)
2779
+ __attribute__((convergent)) double4 WaveActiveMin(double4);
2780
+
2570
2781
  //===----------------------------------------------------------------------===//
2571
2782
  // WaveActiveSum builtins
2572
2783
  //===----------------------------------------------------------------------===//
@@ -2808,7 +3019,143 @@ float4 radians(float4);
2808
3019
  /// call.
2809
3020
 
2810
3021
  _HLSL_BUILTIN_ALIAS(__builtin_hlsl_group_memory_barrier_with_group_sync)
2811
- void GroupMemoryBarrierWithGroupSync(void);
3022
+ __attribute__((convergent)) void GroupMemoryBarrierWithGroupSync(void);
3023
+
3024
+ //===----------------------------------------------------------------------===//
3025
+ // ddx_coarse builtin
3026
+ //===----------------------------------------------------------------------===//
3027
+
3028
+ /// \fn T ddx_coarse(T value)
3029
+ /// \brief Computes a low precision partial derivative with respect to the
3030
+ /// screen-space x-coordinate.
3031
+ /// \param value The input value.
3032
+ ///
3033
+ /// The return value is a floating point scalar or vector containing the low
3034
+ /// prevision partial derivative of the input value.
3035
+
3036
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
3037
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddx_coarse)
3038
+ half ddx_coarse(half);
3039
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
3040
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddx_coarse)
3041
+ half2 ddx_coarse(half2);
3042
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
3043
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddx_coarse)
3044
+ half3 ddx_coarse(half3);
3045
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
3046
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddx_coarse)
3047
+ half4 ddx_coarse(half4);
3048
+
3049
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddx_coarse)
3050
+ float ddx_coarse(float);
3051
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddx_coarse)
3052
+ float2 ddx_coarse(float2);
3053
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddx_coarse)
3054
+ float3 ddx_coarse(float3);
3055
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddx_coarse)
3056
+ float4 ddx_coarse(float4);
3057
+
3058
+ //===----------------------------------------------------------------------===//
3059
+ // ddy_coarse builtin
3060
+ //===----------------------------------------------------------------------===//
3061
+
3062
+ /// \fn T ddy_coarse(T value)
3063
+ /// \brief Computes a low precision partial derivative with respect to the
3064
+ /// screen-space y-coordinate.
3065
+ /// \param value The input value.
3066
+ ///
3067
+ /// The return value is a floating point scalar or vector containing the low
3068
+ /// prevision partial derivative of the input value.
3069
+
3070
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
3071
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddy_coarse)
3072
+ half ddy_coarse(half);
3073
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
3074
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddy_coarse)
3075
+ half2 ddy_coarse(half2);
3076
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
3077
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddy_coarse)
3078
+ half3 ddy_coarse(half3);
3079
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
3080
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddy_coarse)
3081
+ half4 ddy_coarse(half4);
3082
+
3083
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddy_coarse)
3084
+ float ddy_coarse(float);
3085
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddy_coarse)
3086
+ float2 ddy_coarse(float2);
3087
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddy_coarse)
3088
+ float3 ddy_coarse(float3);
3089
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddy_coarse)
3090
+ float4 ddy_coarse(float4);
3091
+
3092
+ //===----------------------------------------------------------------------===//
3093
+ // ddx_fine builtin
3094
+ //===----------------------------------------------------------------------===//
3095
+
3096
+ /// \fn T ddx_fine(T value)
3097
+ /// \brief Computes a high precision partial derivative with respect to the
3098
+ /// screen-space x-coordinate.
3099
+ /// \param value The input value.
3100
+ ///
3101
+ /// The return value is a floating point scalar or vector containing the high
3102
+ /// prevision partial derivative of the input value.
3103
+
3104
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
3105
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddx_fine)
3106
+ half ddx_fine(half);
3107
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
3108
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddx_fine)
3109
+ half2 ddx_fine(half2);
3110
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
3111
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddx_fine)
3112
+ half3 ddx_fine(half3);
3113
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
3114
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddx_fine)
3115
+ half4 ddx_fine(half4);
3116
+
3117
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddx_fine)
3118
+ float ddx_fine(float);
3119
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddx_fine)
3120
+ float2 ddx_fine(float2);
3121
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddx_fine)
3122
+ float3 ddx_fine(float3);
3123
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddx_fine)
3124
+ float4 ddx_fine(float4);
3125
+
3126
+ //===----------------------------------------------------------------------===//
3127
+ // ddy_fine builtin
3128
+ //===----------------------------------------------------------------------===//
3129
+
3130
+ /// \fn T ddy_fine(T value)
3131
+ /// \brief Computes a high precision partial derivative with respect to the
3132
+ /// screen-space y-coordinate.
3133
+ /// \param value The input value.
3134
+ ///
3135
+ /// The return value is a floating point scalar or vector containing the high
3136
+ /// prevision partial derivative of the input value.
3137
+
3138
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
3139
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddy_fine)
3140
+ half ddy_fine(half);
3141
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
3142
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddy_fine)
3143
+ half2 ddy_fine(half2);
3144
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
3145
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddy_fine)
3146
+ half3 ddy_fine(half3);
3147
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
3148
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddy_fine)
3149
+ half4 ddy_fine(half4);
3150
+
3151
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddy_fine)
3152
+ float ddy_fine(float);
3153
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddy_fine)
3154
+ float2 ddy_fine(float2);
3155
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddy_fine)
3156
+ float3 ddy_fine(float3);
3157
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_ddy_fine)
3158
+ float4 ddy_fine(float4);
2812
3159
 
2813
3160
  } // namespace hlsl
2814
- #endif //_HLSL_HLSL_INTRINSICS_H_
3161
+ #endif //_HLSL_HLSL_ALIAS_INTRINSICS_H_