@cpp-linter/clang-tidy-darwin-x64 19.1.7 → 20.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 (276) hide show
  1. package/README.md +2 -2
  2. package/bin/clang-tidy +2 -2
  3. package/lib/clang/{19 → 20}/include/__clang_cuda_device_functions.h +14 -0
  4. package/lib/clang/{19 → 20}/include/__clang_cuda_intrinsics.h +8 -8
  5. package/lib/clang/{19 → 20}/include/__clang_cuda_math.h +5 -0
  6. package/lib/clang/{19 → 20}/include/__clang_hip_cmath.h +6 -1
  7. package/lib/clang/{19 → 20}/include/__clang_hip_math.h +5 -0
  8. package/lib/clang/{19 → 20}/include/adcintrin.h +5 -0
  9. package/lib/clang/{19 → 20}/include/adxintrin.h +5 -0
  10. package/lib/clang/{19 → 20}/include/altivec.h +8 -8
  11. package/lib/clang/20/include/amdgpuintrin.h +194 -0
  12. package/lib/clang/20/include/amxavx512intrin.h +382 -0
  13. package/lib/clang/20/include/amxbf16transposeintrin.h +94 -0
  14. package/lib/clang/20/include/amxcomplextransposeintrin.h +303 -0
  15. package/lib/clang/{19 → 20}/include/amxfp16intrin.h +35 -0
  16. package/lib/clang/20/include/amxfp16transposeintrin.h +94 -0
  17. package/lib/clang/20/include/amxfp8intrin.h +230 -0
  18. package/lib/clang/{19 → 20}/include/amxintrin.h +5 -35
  19. package/lib/clang/20/include/amxmovrsintrin.h +48 -0
  20. package/lib/clang/20/include/amxmovrstransposeintrin.h +200 -0
  21. package/lib/clang/20/include/amxtf32intrin.h +108 -0
  22. package/lib/clang/20/include/amxtf32transposeintrin.h +105 -0
  23. package/lib/clang/20/include/amxtransposeintrin.h +248 -0
  24. package/lib/clang/{19 → 20}/include/arm_acle.h +18 -21
  25. package/lib/clang/{19 → 20}/include/arm_neon.h +3587 -1696
  26. package/lib/clang/{19 → 20}/include/arm_sme.h +322 -94
  27. package/lib/clang/{19 → 20}/include/arm_sve.h +1105 -84
  28. package/lib/clang/{19 → 20}/include/arm_vector_types.h +87 -0
  29. package/lib/clang/20/include/avx10_2_512bf16intrin.h +561 -0
  30. package/lib/clang/20/include/avx10_2_512convertintrin.h +322 -0
  31. package/lib/clang/20/include/avx10_2_512minmaxintrin.h +127 -0
  32. package/lib/clang/20/include/avx10_2_512niintrin.h +314 -0
  33. package/lib/clang/20/include/avx10_2_512satcvtdsintrin.h +307 -0
  34. package/lib/clang/20/include/avx10_2_512satcvtintrin.h +301 -0
  35. package/lib/clang/20/include/avx10_2bf16intrin.h +1085 -0
  36. package/lib/clang/20/include/avx10_2convertintrin.h +577 -0
  37. package/lib/clang/20/include/avx10_2copyintrin.h +66 -0
  38. package/lib/clang/20/include/avx10_2minmaxintrin.h +232 -0
  39. package/lib/clang/20/include/avx10_2niintrin.h +409 -0
  40. package/lib/clang/20/include/avx10_2satcvtdsintrin.h +390 -0
  41. package/lib/clang/20/include/avx10_2satcvtintrin.h +332 -0
  42. package/lib/clang/{19 → 20}/include/avx2intrin.h +9 -0
  43. package/lib/clang/{19 → 20}/include/avx512bitalgintrin.h +2 -2
  44. package/lib/clang/{19 → 20}/include/avx512fintrin.h +22 -14
  45. package/lib/clang/{19 → 20}/include/avx512vlbitalgintrin.h +4 -4
  46. package/lib/clang/{19 → 20}/include/avx512vpopcntdqintrin.h +12 -4
  47. package/lib/clang/{19 → 20}/include/avx512vpopcntdqvlintrin.h +16 -8
  48. package/lib/clang/{19 → 20}/include/avxintrin.h +30 -16
  49. package/lib/clang/{19 → 20}/include/avxvnniint16intrin.h +36 -77
  50. package/lib/clang/{19 → 20}/include/avxvnniint8intrin.h +36 -77
  51. package/lib/clang/{19 → 20}/include/bmi2intrin.h +15 -17
  52. package/lib/clang/{19 → 20}/include/bmiintrin.h +31 -37
  53. package/lib/clang/{19 → 20}/include/cmpccxaddintrin.h +1 -1
  54. package/lib/clang/{19 → 20}/include/cpuid.h +12 -11
  55. package/lib/clang/{19 → 20}/include/cuda_wrappers/cmath +4 -0
  56. package/lib/clang/{19 → 20}/include/cuda_wrappers/new +2 -0
  57. package/lib/clang/{19 → 20}/include/emmintrin.h +141 -107
  58. package/lib/clang/{19 → 20}/include/gfniintrin.h +32 -10
  59. package/lib/clang/20/include/gpuintrin.h +224 -0
  60. package/lib/clang/{19 → 20}/include/hexagon_types.h +8 -4
  61. package/lib/clang/{19 → 20}/include/hlsl/hlsl_basic_types.h +47 -1
  62. package/lib/clang/20/include/hlsl/hlsl_detail.h +84 -0
  63. package/lib/clang/{19 → 20}/include/hlsl/hlsl_intrinsics.h +1199 -82
  64. package/lib/clang/{19 → 20}/include/hlsl.h +11 -0
  65. package/lib/clang/{19 → 20}/include/hvx_hexagon_protos.h +427 -0
  66. package/lib/clang/{19 → 20}/include/immintrin.h +87 -3
  67. package/lib/clang/{19 → 20}/include/intrin.h +20 -10
  68. package/lib/clang/{19 → 20}/include/intrin0.h +9 -0
  69. package/lib/clang/{19 → 20}/include/larchintrin.h +22 -8
  70. package/lib/clang/{19 → 20}/include/lasxintrin.h +27 -25
  71. package/lib/clang/{19 → 20}/include/limits.h +7 -4
  72. package/lib/clang/{19 → 20}/include/llvm_libc_wrappers/ctype.h +38 -0
  73. package/lib/clang/{19 → 20}/include/llvm_libc_wrappers/stdlib.h +8 -0
  74. package/lib/clang/20/include/llvm_offload_wrappers/__llvm_offload.h +31 -0
  75. package/lib/clang/20/include/llvm_offload_wrappers/__llvm_offload_device.h +10 -0
  76. package/lib/clang/20/include/llvm_offload_wrappers/__llvm_offload_host.h +15 -0
  77. package/lib/clang/{19 → 20}/include/lsxintrin.h +27 -25
  78. package/lib/clang/{19 → 20}/include/lzcntintrin.h +10 -7
  79. package/lib/clang/{19 → 20}/include/mmintrin.h +209 -155
  80. package/lib/clang/{19 → 20}/include/module.modulemap +2 -4
  81. package/lib/clang/20/include/movrs_avx10_2_512intrin.h +98 -0
  82. package/lib/clang/20/include/movrs_avx10_2intrin.h +174 -0
  83. package/lib/clang/20/include/movrsintrin.h +59 -0
  84. package/lib/clang/20/include/nvptxintrin.h +203 -0
  85. package/lib/clang/{19 → 20}/include/opencl-c-base.h +4 -0
  86. package/lib/clang/{19 → 20}/include/openmp_wrappers/__clang_openmp_device_functions.h +4 -5
  87. package/lib/clang/{19 → 20}/include/openmp_wrappers/complex_cmath.h +7 -2
  88. package/lib/clang/{19 → 20}/include/pmmintrin.h +16 -3
  89. package/lib/clang/{19 → 20}/include/popcntintrin.h +7 -7
  90. package/lib/clang/{19 → 20}/include/ptrauth.h +6 -0
  91. package/lib/clang/20/include/riscv_corev_alu.h +128 -0
  92. package/lib/clang/{19 → 20}/include/riscv_vector.h +0 -1
  93. package/lib/clang/20/include/sm4evexintrin.h +32 -0
  94. package/lib/clang/{19 → 20}/include/smmintrin.h +6 -0
  95. package/lib/clang/{19 → 20}/include/stdalign.h +0 -5
  96. package/lib/clang/{19 → 20}/include/tbmintrin.h +25 -37
  97. package/lib/clang/{19 → 20}/include/tmmintrin.h +64 -38
  98. package/lib/clang/{19 → 20}/include/vecintrin.h +1779 -74
  99. package/lib/clang/{19 → 20}/include/wasm_simd128.h +167 -21
  100. package/lib/clang/{19 → 20}/include/xmmintrin.h +170 -177
  101. package/package.json +6 -6
  102. /package/lib/clang/{19 → 20}/include/__clang_cuda_builtin_vars.h +0 -0
  103. /package/lib/clang/{19 → 20}/include/__clang_cuda_cmath.h +0 -0
  104. /package/lib/clang/{19 → 20}/include/__clang_cuda_complex_builtins.h +0 -0
  105. /package/lib/clang/{19 → 20}/include/__clang_cuda_libdevice_declares.h +0 -0
  106. /package/lib/clang/{19 → 20}/include/__clang_cuda_math_forward_declares.h +0 -0
  107. /package/lib/clang/{19 → 20}/include/__clang_cuda_runtime_wrapper.h +0 -0
  108. /package/lib/clang/{19 → 20}/include/__clang_cuda_texture_intrinsics.h +0 -0
  109. /package/lib/clang/{19 → 20}/include/__clang_hip_libdevice_declares.h +0 -0
  110. /package/lib/clang/{19 → 20}/include/__clang_hip_runtime_wrapper.h +0 -0
  111. /package/lib/clang/{19 → 20}/include/__clang_hip_stdlib.h +0 -0
  112. /package/lib/clang/{19 → 20}/include/__stdarg___gnuc_va_list.h +0 -0
  113. /package/lib/clang/{19 → 20}/include/__stdarg___va_copy.h +0 -0
  114. /package/lib/clang/{19 → 20}/include/__stdarg_header_macro.h +0 -0
  115. /package/lib/clang/{19 → 20}/include/__stdarg_va_arg.h +0 -0
  116. /package/lib/clang/{19 → 20}/include/__stdarg_va_copy.h +0 -0
  117. /package/lib/clang/{19 → 20}/include/__stdarg_va_list.h +0 -0
  118. /package/lib/clang/{19 → 20}/include/__stddef_header_macro.h +0 -0
  119. /package/lib/clang/{19 → 20}/include/__stddef_max_align_t.h +0 -0
  120. /package/lib/clang/{19 → 20}/include/__stddef_null.h +0 -0
  121. /package/lib/clang/{19 → 20}/include/__stddef_nullptr_t.h +0 -0
  122. /package/lib/clang/{19 → 20}/include/__stddef_offsetof.h +0 -0
  123. /package/lib/clang/{19 → 20}/include/__stddef_ptrdiff_t.h +0 -0
  124. /package/lib/clang/{19 → 20}/include/__stddef_rsize_t.h +0 -0
  125. /package/lib/clang/{19 → 20}/include/__stddef_size_t.h +0 -0
  126. /package/lib/clang/{19 → 20}/include/__stddef_unreachable.h +0 -0
  127. /package/lib/clang/{19 → 20}/include/__stddef_wchar_t.h +0 -0
  128. /package/lib/clang/{19 → 20}/include/__stddef_wint_t.h +0 -0
  129. /package/lib/clang/{19 → 20}/include/__wmmintrin_aes.h +0 -0
  130. /package/lib/clang/{19 → 20}/include/__wmmintrin_pclmul.h +0 -0
  131. /package/lib/clang/{19 → 20}/include/ammintrin.h +0 -0
  132. /package/lib/clang/{19 → 20}/include/amxcomplexintrin.h +0 -0
  133. /package/lib/clang/{19 → 20}/include/arm64intr.h +0 -0
  134. /package/lib/clang/{19 → 20}/include/arm_bf16.h +0 -0
  135. /package/lib/clang/{19 → 20}/include/arm_cde.h +0 -0
  136. /package/lib/clang/{19 → 20}/include/arm_cmse.h +0 -0
  137. /package/lib/clang/{19 → 20}/include/arm_fp16.h +0 -0
  138. /package/lib/clang/{19 → 20}/include/arm_mve.h +0 -0
  139. /package/lib/clang/{19 → 20}/include/arm_neon_sve_bridge.h +0 -0
  140. /package/lib/clang/{19 → 20}/include/armintr.h +0 -0
  141. /package/lib/clang/{19 → 20}/include/avx512bf16intrin.h +0 -0
  142. /package/lib/clang/{19 → 20}/include/avx512bwintrin.h +0 -0
  143. /package/lib/clang/{19 → 20}/include/avx512cdintrin.h +0 -0
  144. /package/lib/clang/{19 → 20}/include/avx512dqintrin.h +0 -0
  145. /package/lib/clang/{19 → 20}/include/avx512fp16intrin.h +0 -0
  146. /package/lib/clang/{19 → 20}/include/avx512ifmaintrin.h +0 -0
  147. /package/lib/clang/{19 → 20}/include/avx512ifmavlintrin.h +0 -0
  148. /package/lib/clang/{19 → 20}/include/avx512vbmi2intrin.h +0 -0
  149. /package/lib/clang/{19 → 20}/include/avx512vbmiintrin.h +0 -0
  150. /package/lib/clang/{19 → 20}/include/avx512vbmivlintrin.h +0 -0
  151. /package/lib/clang/{19 → 20}/include/avx512vlbf16intrin.h +0 -0
  152. /package/lib/clang/{19 → 20}/include/avx512vlbwintrin.h +0 -0
  153. /package/lib/clang/{19 → 20}/include/avx512vlcdintrin.h +0 -0
  154. /package/lib/clang/{19 → 20}/include/avx512vldqintrin.h +0 -0
  155. /package/lib/clang/{19 → 20}/include/avx512vlfp16intrin.h +0 -0
  156. /package/lib/clang/{19 → 20}/include/avx512vlintrin.h +0 -0
  157. /package/lib/clang/{19 → 20}/include/avx512vlvbmi2intrin.h +0 -0
  158. /package/lib/clang/{19 → 20}/include/avx512vlvnniintrin.h +0 -0
  159. /package/lib/clang/{19 → 20}/include/avx512vlvp2intersectintrin.h +0 -0
  160. /package/lib/clang/{19 → 20}/include/avx512vnniintrin.h +0 -0
  161. /package/lib/clang/{19 → 20}/include/avx512vp2intersectintrin.h +0 -0
  162. /package/lib/clang/{19 → 20}/include/avxifmaintrin.h +0 -0
  163. /package/lib/clang/{19 → 20}/include/avxneconvertintrin.h +0 -0
  164. /package/lib/clang/{19 → 20}/include/avxvnniintrin.h +0 -0
  165. /package/lib/clang/{19 → 20}/include/builtins.h +0 -0
  166. /package/lib/clang/{19 → 20}/include/cet.h +0 -0
  167. /package/lib/clang/{19 → 20}/include/cetintrin.h +0 -0
  168. /package/lib/clang/{19 → 20}/include/cldemoteintrin.h +0 -0
  169. /package/lib/clang/{19 → 20}/include/clflushoptintrin.h +0 -0
  170. /package/lib/clang/{19 → 20}/include/clwbintrin.h +0 -0
  171. /package/lib/clang/{19 → 20}/include/clzerointrin.h +0 -0
  172. /package/lib/clang/{19 → 20}/include/crc32intrin.h +0 -0
  173. /package/lib/clang/{19 → 20}/include/cuda_wrappers/algorithm +0 -0
  174. /package/lib/clang/{19 → 20}/include/cuda_wrappers/bits/basic_string.h +0 -0
  175. /package/lib/clang/{19 → 20}/include/cuda_wrappers/bits/basic_string.tcc +0 -0
  176. /package/lib/clang/{19 → 20}/include/cuda_wrappers/bits/shared_ptr_base.h +0 -0
  177. /package/lib/clang/{19 → 20}/include/cuda_wrappers/complex +0 -0
  178. /package/lib/clang/{19 → 20}/include/enqcmdintrin.h +0 -0
  179. /package/lib/clang/{19 → 20}/include/f16cintrin.h +0 -0
  180. /package/lib/clang/{19 → 20}/include/float.h +0 -0
  181. /package/lib/clang/{19 → 20}/include/fma4intrin.h +0 -0
  182. /package/lib/clang/{19 → 20}/include/fmaintrin.h +0 -0
  183. /package/lib/clang/{19 → 20}/include/fxsrintrin.h +0 -0
  184. /package/lib/clang/{19 → 20}/include/hexagon_circ_brev_intrinsics.h +0 -0
  185. /package/lib/clang/{19 → 20}/include/hexagon_protos.h +0 -0
  186. /package/lib/clang/{19 → 20}/include/hresetintrin.h +0 -0
  187. /package/lib/clang/{19 → 20}/include/htmintrin.h +0 -0
  188. /package/lib/clang/{19 → 20}/include/htmxlintrin.h +0 -0
  189. /package/lib/clang/{19 → 20}/include/ia32intrin.h +0 -0
  190. /package/lib/clang/{19 → 20}/include/inttypes.h +0 -0
  191. /package/lib/clang/{19 → 20}/include/invpcidintrin.h +0 -0
  192. /package/lib/clang/{19 → 20}/include/iso646.h +0 -0
  193. /package/lib/clang/{19 → 20}/include/keylockerintrin.h +0 -0
  194. /package/lib/clang/{19 → 20}/include/llvm_libc_wrappers/assert.h +0 -0
  195. /package/lib/clang/{19 → 20}/include/llvm_libc_wrappers/inttypes.h +0 -0
  196. /package/lib/clang/{19 → 20}/include/llvm_libc_wrappers/stdio.h +0 -0
  197. /package/lib/clang/{19 → 20}/include/llvm_libc_wrappers/string.h +0 -0
  198. /package/lib/clang/{19 → 20}/include/llvm_libc_wrappers/time.h +0 -0
  199. /package/lib/clang/{19 → 20}/include/lwpintrin.h +0 -0
  200. /package/lib/clang/{19 → 20}/include/mm3dnow.h +0 -0
  201. /package/lib/clang/{19 → 20}/include/mm_malloc.h +0 -0
  202. /package/lib/clang/{19 → 20}/include/movdirintrin.h +0 -0
  203. /package/lib/clang/{19 → 20}/include/msa.h +0 -0
  204. /package/lib/clang/{19 → 20}/include/mwaitxintrin.h +0 -0
  205. /package/lib/clang/{19 → 20}/include/nmmintrin.h +0 -0
  206. /package/lib/clang/{19 → 20}/include/opencl-c.h +0 -0
  207. /package/lib/clang/{19 → 20}/include/openmp_wrappers/cmath +0 -0
  208. /package/lib/clang/{19 → 20}/include/openmp_wrappers/complex +0 -0
  209. /package/lib/clang/{19 → 20}/include/openmp_wrappers/complex.h +0 -0
  210. /package/lib/clang/{19 → 20}/include/openmp_wrappers/math.h +0 -0
  211. /package/lib/clang/{19 → 20}/include/openmp_wrappers/new +0 -0
  212. /package/lib/clang/{19 → 20}/include/pconfigintrin.h +0 -0
  213. /package/lib/clang/{19 → 20}/include/pkuintrin.h +0 -0
  214. /package/lib/clang/{19 → 20}/include/ppc_wrappers/bmi2intrin.h +0 -0
  215. /package/lib/clang/{19 → 20}/include/ppc_wrappers/bmiintrin.h +0 -0
  216. /package/lib/clang/{19 → 20}/include/ppc_wrappers/emmintrin.h +0 -0
  217. /package/lib/clang/{19 → 20}/include/ppc_wrappers/immintrin.h +0 -0
  218. /package/lib/clang/{19 → 20}/include/ppc_wrappers/mm_malloc.h +0 -0
  219. /package/lib/clang/{19 → 20}/include/ppc_wrappers/mmintrin.h +0 -0
  220. /package/lib/clang/{19 → 20}/include/ppc_wrappers/nmmintrin.h +0 -0
  221. /package/lib/clang/{19 → 20}/include/ppc_wrappers/pmmintrin.h +0 -0
  222. /package/lib/clang/{19 → 20}/include/ppc_wrappers/smmintrin.h +0 -0
  223. /package/lib/clang/{19 → 20}/include/ppc_wrappers/tmmintrin.h +0 -0
  224. /package/lib/clang/{19 → 20}/include/ppc_wrappers/x86gprintrin.h +0 -0
  225. /package/lib/clang/{19 → 20}/include/ppc_wrappers/x86intrin.h +0 -0
  226. /package/lib/clang/{19 → 20}/include/ppc_wrappers/xmmintrin.h +0 -0
  227. /package/lib/clang/{19 → 20}/include/prfchiintrin.h +0 -0
  228. /package/lib/clang/{19 → 20}/include/prfchwintrin.h +0 -0
  229. /package/lib/clang/{19 → 20}/include/ptwriteintrin.h +0 -0
  230. /package/lib/clang/{19 → 20}/include/raointintrin.h +0 -0
  231. /package/lib/clang/{19 → 20}/include/rdpruintrin.h +0 -0
  232. /package/lib/clang/{19 → 20}/include/rdseedintrin.h +0 -0
  233. /package/lib/clang/{19 → 20}/include/riscv_bitmanip.h +0 -0
  234. /package/lib/clang/{19 → 20}/include/riscv_crypto.h +0 -0
  235. /package/lib/clang/{19 → 20}/include/riscv_ntlh.h +0 -0
  236. /package/lib/clang/{19 → 20}/include/rtmintrin.h +0 -0
  237. /package/lib/clang/{19 → 20}/include/s390intrin.h +0 -0
  238. /package/lib/clang/{19 → 20}/include/serializeintrin.h +0 -0
  239. /package/lib/clang/{19 → 20}/include/sgxintrin.h +0 -0
  240. /package/lib/clang/{19 → 20}/include/sha512intrin.h +0 -0
  241. /package/lib/clang/{19 → 20}/include/shaintrin.h +0 -0
  242. /package/lib/clang/{19 → 20}/include/sifive_vector.h +0 -0
  243. /package/lib/clang/{19 → 20}/include/sm3intrin.h +0 -0
  244. /package/lib/clang/{19 → 20}/include/sm4intrin.h +0 -0
  245. /package/lib/clang/{19 → 20}/include/stdarg.h +0 -0
  246. /package/lib/clang/{19 → 20}/include/stdatomic.h +0 -0
  247. /package/lib/clang/{19 → 20}/include/stdbool.h +0 -0
  248. /package/lib/clang/{19 → 20}/include/stdckdint.h +0 -0
  249. /package/lib/clang/{19 → 20}/include/stddef.h +0 -0
  250. /package/lib/clang/{19 → 20}/include/stdint.h +0 -0
  251. /package/lib/clang/{19 → 20}/include/stdnoreturn.h +0 -0
  252. /package/lib/clang/{19 → 20}/include/tgmath.h +0 -0
  253. /package/lib/clang/{19 → 20}/include/tsxldtrkintrin.h +0 -0
  254. /package/lib/clang/{19 → 20}/include/uintrintrin.h +0 -0
  255. /package/lib/clang/{19 → 20}/include/unwind.h +0 -0
  256. /package/lib/clang/{19 → 20}/include/usermsrintrin.h +0 -0
  257. /package/lib/clang/{19 → 20}/include/vadefs.h +0 -0
  258. /package/lib/clang/{19 → 20}/include/vaesintrin.h +0 -0
  259. /package/lib/clang/{19 → 20}/include/varargs.h +0 -0
  260. /package/lib/clang/{19 → 20}/include/velintrin.h +0 -0
  261. /package/lib/clang/{19 → 20}/include/velintrin_approx.h +0 -0
  262. /package/lib/clang/{19 → 20}/include/velintrin_gen.h +0 -0
  263. /package/lib/clang/{19 → 20}/include/vpclmulqdqintrin.h +0 -0
  264. /package/lib/clang/{19 → 20}/include/waitpkgintrin.h +0 -0
  265. /package/lib/clang/{19 → 20}/include/wbnoinvdintrin.h +0 -0
  266. /package/lib/clang/{19 → 20}/include/wmmintrin.h +0 -0
  267. /package/lib/clang/{19 → 20}/include/x86gprintrin.h +0 -0
  268. /package/lib/clang/{19 → 20}/include/x86intrin.h +0 -0
  269. /package/lib/clang/{19 → 20}/include/xopintrin.h +0 -0
  270. /package/lib/clang/{19 → 20}/include/xsavecintrin.h +0 -0
  271. /package/lib/clang/{19 → 20}/include/xsaveintrin.h +0 -0
  272. /package/lib/clang/{19 → 20}/include/xsaveoptintrin.h +0 -0
  273. /package/lib/clang/{19 → 20}/include/xsavesintrin.h +0 -0
  274. /package/lib/clang/{19 → 20}/include/xtestintrin.h +0 -0
  275. /package/lib/clang/{19 → 20}/include/yvals_core.h +0 -0
  276. /package/lib/clang/{19 → 20}/include/zos_wrappers/builtins.h +0 -0
@@ -9,6 +9,8 @@
9
9
  #ifndef _HLSL_HLSL_INTRINSICS_H_
10
10
  #define _HLSL_HLSL_INTRINSICS_H_
11
11
 
12
+ #include "hlsl_detail.h"
13
+
12
14
  namespace hlsl {
13
15
 
14
16
  // Note: Functions in this file are sorted alphabetically, then grouped by base
@@ -145,106 +147,106 @@ float4 acos(float4);
145
147
 
146
148
  #ifdef __HLSL_ENABLE_16_BIT
147
149
  _HLSL_AVAILABILITY(shadermodel, 6.2)
148
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all)
150
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
149
151
  bool all(int16_t);
150
152
  _HLSL_AVAILABILITY(shadermodel, 6.2)
151
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all)
153
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
152
154
  bool all(int16_t2);
153
155
  _HLSL_AVAILABILITY(shadermodel, 6.2)
154
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all)
156
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
155
157
  bool all(int16_t3);
156
158
  _HLSL_AVAILABILITY(shadermodel, 6.2)
157
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all)
159
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
158
160
  bool all(int16_t4);
159
161
  _HLSL_AVAILABILITY(shadermodel, 6.2)
160
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all)
162
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
161
163
  bool all(uint16_t);
162
164
  _HLSL_AVAILABILITY(shadermodel, 6.2)
163
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all)
165
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
164
166
  bool all(uint16_t2);
165
167
  _HLSL_AVAILABILITY(shadermodel, 6.2)
166
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all)
168
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
167
169
  bool all(uint16_t3);
168
170
  _HLSL_AVAILABILITY(shadermodel, 6.2)
169
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all)
171
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
170
172
  bool all(uint16_t4);
171
173
  #endif
172
174
 
173
175
  _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
174
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all)
176
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
175
177
  bool all(half);
176
178
  _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
177
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all)
179
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
178
180
  bool all(half2);
179
181
  _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
180
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all)
182
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
181
183
  bool all(half3);
182
184
  _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
183
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all)
185
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
184
186
  bool all(half4);
185
187
 
186
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all)
188
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
187
189
  bool all(bool);
188
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all)
190
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
189
191
  bool all(bool2);
190
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all)
192
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
191
193
  bool all(bool3);
192
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all)
194
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
193
195
  bool all(bool4);
194
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all)
196
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
195
197
 
196
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all)
198
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
197
199
  bool all(int);
198
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all)
200
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
199
201
  bool all(int2);
200
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all)
202
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
201
203
  bool all(int3);
202
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all)
204
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
203
205
  bool all(int4);
204
206
 
205
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all)
207
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
206
208
  bool all(uint);
207
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all)
209
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
208
210
  bool all(uint2);
209
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all)
211
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
210
212
  bool all(uint3);
211
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all)
213
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
212
214
  bool all(uint4);
213
215
 
214
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all)
216
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
215
217
  bool all(float);
216
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all)
218
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
217
219
  bool all(float2);
218
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all)
220
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
219
221
  bool all(float3);
220
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all)
222
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
221
223
  bool all(float4);
222
224
 
223
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all)
225
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
224
226
  bool all(int64_t);
225
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all)
227
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
226
228
  bool all(int64_t2);
227
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all)
229
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
228
230
  bool all(int64_t3);
229
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all)
231
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
230
232
  bool all(int64_t4);
231
233
 
232
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all)
234
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
233
235
  bool all(uint64_t);
234
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all)
236
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
235
237
  bool all(uint64_t2);
236
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all)
238
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
237
239
  bool all(uint64_t3);
238
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all)
240
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
239
241
  bool all(uint64_t4);
240
242
 
241
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all)
243
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
242
244
  bool all(double);
243
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all)
245
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
244
246
  bool all(double2);
245
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all)
247
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
246
248
  bool all(double3);
247
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all)
249
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_all)
248
250
  bool all(double4);
249
251
 
250
252
  //===----------------------------------------------------------------------===//
@@ -257,108 +259,159 @@ bool all(double4);
257
259
 
258
260
  #ifdef __HLSL_ENABLE_16_BIT
259
261
  _HLSL_AVAILABILITY(shadermodel, 6.2)
260
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any)
262
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
261
263
  bool any(int16_t);
262
264
  _HLSL_AVAILABILITY(shadermodel, 6.2)
263
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any)
265
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
264
266
  bool any(int16_t2);
265
267
  _HLSL_AVAILABILITY(shadermodel, 6.2)
266
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any)
268
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
267
269
  bool any(int16_t3);
268
270
  _HLSL_AVAILABILITY(shadermodel, 6.2)
269
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any)
271
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
270
272
  bool any(int16_t4);
271
273
  _HLSL_AVAILABILITY(shadermodel, 6.2)
272
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any)
274
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
273
275
  bool any(uint16_t);
274
276
  _HLSL_AVAILABILITY(shadermodel, 6.2)
275
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any)
277
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
276
278
  bool any(uint16_t2);
277
279
  _HLSL_AVAILABILITY(shadermodel, 6.2)
278
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any)
280
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
279
281
  bool any(uint16_t3);
280
282
  _HLSL_AVAILABILITY(shadermodel, 6.2)
281
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any)
283
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
282
284
  bool any(uint16_t4);
283
285
  #endif
284
286
 
285
287
  _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
286
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any)
288
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
287
289
  bool any(half);
288
290
  _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
289
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any)
291
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
290
292
  bool any(half2);
291
293
  _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
292
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any)
294
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
293
295
  bool any(half3);
294
296
  _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
295
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any)
297
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
296
298
  bool any(half4);
297
299
 
298
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any)
300
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
299
301
  bool any(bool);
300
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any)
302
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
301
303
  bool any(bool2);
302
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any)
304
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
303
305
  bool any(bool3);
304
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any)
306
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
305
307
  bool any(bool4);
306
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any)
308
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
307
309
 
308
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any)
310
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
309
311
  bool any(int);
310
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any)
312
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
311
313
  bool any(int2);
312
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any)
314
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
313
315
  bool any(int3);
314
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any)
316
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
315
317
  bool any(int4);
316
318
 
317
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any)
319
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
318
320
  bool any(uint);
319
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any)
321
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
320
322
  bool any(uint2);
321
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any)
323
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
322
324
  bool any(uint3);
323
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any)
325
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
324
326
  bool any(uint4);
325
327
 
326
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any)
328
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
327
329
  bool any(float);
328
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any)
330
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
329
331
  bool any(float2);
330
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any)
332
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
331
333
  bool any(float3);
332
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any)
334
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
333
335
  bool any(float4);
334
336
 
335
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any)
337
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
336
338
  bool any(int64_t);
337
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any)
339
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
338
340
  bool any(int64_t2);
339
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any)
341
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
340
342
  bool any(int64_t3);
341
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any)
343
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
342
344
  bool any(int64_t4);
343
345
 
344
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any)
346
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
345
347
  bool any(uint64_t);
346
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any)
348
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
347
349
  bool any(uint64_t2);
348
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any)
350
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
349
351
  bool any(uint64_t3);
350
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any)
352
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
351
353
  bool any(uint64_t4);
352
354
 
353
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any)
355
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
354
356
  bool any(double);
355
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any)
357
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
356
358
  bool any(double2);
357
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any)
359
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
358
360
  bool any(double3);
359
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any)
361
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any)
360
362
  bool any(double4);
361
363
 
364
+ //===----------------------------------------------------------------------===//
365
+ // asdouble builtins
366
+ //===----------------------------------------------------------------------===//
367
+
368
+ /// \fn double asdouble(uint LowBits, uint HighBits)
369
+ /// \brief Reinterprets a cast value (two 32-bit values) into a double.
370
+ /// \param LowBits The low 32-bit pattern of the input value.
371
+ /// \param HighBits The high 32-bit pattern of the input value.
372
+
373
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_asdouble)
374
+ double asdouble(uint, uint);
375
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_asdouble)
376
+ double2 asdouble(uint2, uint2);
377
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_asdouble)
378
+ double3 asdouble(uint3, uint3);
379
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_asdouble)
380
+ double4 asdouble(uint4, uint4);
381
+
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
+
362
415
  //===----------------------------------------------------------------------===//
363
416
  // asin builtins
364
417
  //===----------------------------------------------------------------------===//
@@ -387,6 +440,40 @@ float3 asin(float3);
387
440
  _HLSL_BUILTIN_ALIAS(__builtin_elementwise_asin)
388
441
  float4 asin(float4);
389
442
 
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
+
390
477
  //===----------------------------------------------------------------------===//
391
478
  // atan builtins
392
479
  //===----------------------------------------------------------------------===//
@@ -415,6 +502,36 @@ float3 atan(float3);
415
502
  _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan)
416
503
  float4 atan(float4);
417
504
 
505
+ //===----------------------------------------------------------------------===//
506
+ // atan2 builtins
507
+ //===----------------------------------------------------------------------===//
508
+
509
+ /// \fn T atan2(T y, T x)
510
+ /// \brief Returns the arctangent of y/x, using the signs of the arguments to
511
+ /// determine the correct quadrant.
512
+ /// \param y The y-coordinate.
513
+ /// \param x The x-coordinate.
514
+
515
+ #ifdef __HLSL_ENABLE_16_BIT
516
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan2)
517
+ half atan2(half y, half x);
518
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan2)
519
+ half2 atan2(half2 y, half2 x);
520
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan2)
521
+ half3 atan2(half3 y, half3 x);
522
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan2)
523
+ half4 atan2(half4 y, half4 x);
524
+ #endif
525
+
526
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan2)
527
+ float atan2(float y, float x);
528
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan2)
529
+ float2 atan2(float2 y, float2 x);
530
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan2)
531
+ float3 atan2(float3 y, float3 x);
532
+ _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan2)
533
+ float4 atan2(float4 y, float4 x);
534
+
418
535
  //===----------------------------------------------------------------------===//
419
536
  // ceil builtins
420
537
  //===----------------------------------------------------------------------===//
@@ -556,6 +673,23 @@ double3 clamp(double3, double3, double3);
556
673
  _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_clamp)
557
674
  double4 clamp(double4, double4, double4);
558
675
 
676
+ //===----------------------------------------------------------------------===//
677
+ // clip builtins
678
+ //===----------------------------------------------------------------------===//
679
+
680
+ /// \fn void clip(T Val)
681
+ /// \brief Discards the current pixel if the specified value is less than zero.
682
+ /// \param Val The input value.
683
+
684
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_clip)
685
+ void clip(float);
686
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_clip)
687
+ void clip(float2);
688
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_clip)
689
+ void clip(float3);
690
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_clip)
691
+ void clip(float4);
692
+
559
693
  //===----------------------------------------------------------------------===//
560
694
  // cos builtins
561
695
  //===----------------------------------------------------------------------===//
@@ -614,6 +748,158 @@ float3 cosh(float3);
614
748
  _HLSL_BUILTIN_ALIAS(__builtin_elementwise_cosh)
615
749
  float4 cosh(float4);
616
750
 
751
+ //===----------------------------------------------------------------------===//
752
+ // count bits builtins
753
+ //===----------------------------------------------------------------------===//
754
+
755
+ /// \fn T countbits(T Val)
756
+ /// \brief Return the number of bits (per component) set in the input integer.
757
+ /// \param Val The input value.
758
+
759
+ #ifdef __HLSL_ENABLE_16_BIT
760
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
761
+ const inline uint countbits(int16_t x) {
762
+ return __builtin_elementwise_popcount(x);
763
+ }
764
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
765
+ const inline uint2 countbits(int16_t2 x) {
766
+ return __builtin_elementwise_popcount(x);
767
+ }
768
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
769
+ const inline uint3 countbits(int16_t3 x) {
770
+ return __builtin_elementwise_popcount(x);
771
+ }
772
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
773
+ const inline uint4 countbits(int16_t4 x) {
774
+ return __builtin_elementwise_popcount(x);
775
+ }
776
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
777
+ const inline uint countbits(uint16_t x) {
778
+ return __builtin_elementwise_popcount(x);
779
+ }
780
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
781
+ const inline uint2 countbits(uint16_t2 x) {
782
+ return __builtin_elementwise_popcount(x);
783
+ }
784
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
785
+ const inline uint3 countbits(uint16_t3 x) {
786
+ return __builtin_elementwise_popcount(x);
787
+ }
788
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
789
+ const inline uint4 countbits(uint16_t4 x) {
790
+ return __builtin_elementwise_popcount(x);
791
+ }
792
+ #endif
793
+
794
+ const inline uint countbits(int x) { return __builtin_elementwise_popcount(x); }
795
+ const inline uint2 countbits(int2 x) {
796
+ return __builtin_elementwise_popcount(x);
797
+ }
798
+ const inline uint3 countbits(int3 x) {
799
+ return __builtin_elementwise_popcount(x);
800
+ }
801
+ const inline uint4 countbits(int4 x) {
802
+ return __builtin_elementwise_popcount(x);
803
+ }
804
+
805
+ const inline uint countbits(uint x) {
806
+ return __builtin_elementwise_popcount(x);
807
+ }
808
+ const inline uint2 countbits(uint2 x) {
809
+ return __builtin_elementwise_popcount(x);
810
+ }
811
+ const inline uint3 countbits(uint3 x) {
812
+ return __builtin_elementwise_popcount(x);
813
+ }
814
+ const inline uint4 countbits(uint4 x) {
815
+ return __builtin_elementwise_popcount(x);
816
+ }
817
+
818
+ const inline uint countbits(int64_t x) {
819
+ return __builtin_elementwise_popcount(x);
820
+ }
821
+ const inline uint2 countbits(int64_t2 x) {
822
+ return __builtin_elementwise_popcount(x);
823
+ }
824
+ const inline uint3 countbits(int64_t3 x) {
825
+ return __builtin_elementwise_popcount(x);
826
+ }
827
+ const inline uint4 countbits(int64_t4 x) {
828
+ return __builtin_elementwise_popcount(x);
829
+ }
830
+
831
+ const inline uint countbits(uint64_t x) {
832
+ return __builtin_elementwise_popcount(x);
833
+ }
834
+ const inline uint2 countbits(uint64_t2 x) {
835
+ return __builtin_elementwise_popcount(x);
836
+ }
837
+ const inline uint3 countbits(uint64_t3 x) {
838
+ return __builtin_elementwise_popcount(x);
839
+ }
840
+ const inline uint4 countbits(uint64_t4 x) {
841
+ return __builtin_elementwise_popcount(x);
842
+ }
843
+
844
+ //===----------------------------------------------------------------------===//
845
+ // degrees builtins
846
+ //===----------------------------------------------------------------------===//
847
+
848
+ /// \fn T degrees(T x)
849
+ /// \brief Converts the specified value from radians to degrees.
850
+ /// \param x The specified input value.
851
+
852
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
853
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_degrees)
854
+ half degrees(half);
855
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
856
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_degrees)
857
+ half2 degrees(half2);
858
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
859
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_degrees)
860
+ half3 degrees(half3);
861
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
862
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_degrees)
863
+ half4 degrees(half4);
864
+
865
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_degrees)
866
+ float degrees(float);
867
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_degrees)
868
+ float2 degrees(float2);
869
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_degrees)
870
+ float3 degrees(float3);
871
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_degrees)
872
+ float4 degrees(float4);
873
+
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
+
617
903
  //===----------------------------------------------------------------------===//
618
904
  // dot product builtins
619
905
  //===----------------------------------------------------------------------===//
@@ -712,6 +998,22 @@ uint64_t dot(uint64_t3, uint64_t3);
712
998
  _HLSL_BUILTIN_ALIAS(__builtin_hlsl_dot)
713
999
  uint64_t dot(uint64_t4, uint64_t4);
714
1000
 
1001
+ //===----------------------------------------------------------------------===//
1002
+ // dot4add builtins
1003
+ //===----------------------------------------------------------------------===//
1004
+
1005
+ /// \fn int dot4add_i8packed(uint A, uint B, int C)
1006
+
1007
+ _HLSL_AVAILABILITY(shadermodel, 6.4)
1008
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_dot4add_i8packed)
1009
+ int dot4add_i8packed(uint, uint, int);
1010
+
1011
+ /// \fn uint dot4add_u8packed(uint A, uint B, uint C)
1012
+
1013
+ _HLSL_AVAILABILITY(shadermodel, 6.4)
1014
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_dot4add_u8packed)
1015
+ uint dot4add_u8packed(uint, uint, uint);
1016
+
715
1017
  //===----------------------------------------------------------------------===//
716
1018
  // exp builtins
717
1019
  //===----------------------------------------------------------------------===//
@@ -776,6 +1078,150 @@ float3 exp2(float3);
776
1078
  _HLSL_BUILTIN_ALIAS(__builtin_elementwise_exp2)
777
1079
  float4 exp2(float4);
778
1080
 
1081
+ //===----------------------------------------------------------------------===//
1082
+ // firstbithigh builtins
1083
+ //===----------------------------------------------------------------------===//
1084
+
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
1116
+
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);
1152
+
1153
+ //===----------------------------------------------------------------------===//
1154
+ // firstbitlow builtins
1155
+ //===----------------------------------------------------------------------===//
1156
+
1157
+ /// \fn T firstbitlow(T Val)
1158
+ /// \brief Returns the location of the first set bit starting from the lowest
1159
+ /// order bit and working upward, per component.
1160
+ /// \param Val the input value.
1161
+
1162
+ #ifdef __HLSL_ENABLE_16_BIT
1163
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
1164
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbitlow)
1165
+ uint firstbitlow(int16_t);
1166
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
1167
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbitlow)
1168
+ uint2 firstbitlow(int16_t2);
1169
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
1170
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbitlow)
1171
+ uint3 firstbitlow(int16_t3);
1172
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
1173
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbitlow)
1174
+ uint4 firstbitlow(int16_t4);
1175
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
1176
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbitlow)
1177
+ uint firstbitlow(uint16_t);
1178
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
1179
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbitlow)
1180
+ uint2 firstbitlow(uint16_t2);
1181
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
1182
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbitlow)
1183
+ uint3 firstbitlow(uint16_t3);
1184
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
1185
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbitlow)
1186
+ uint4 firstbitlow(uint16_t4);
1187
+ #endif
1188
+
1189
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbitlow)
1190
+ uint firstbitlow(int);
1191
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbitlow)
1192
+ uint2 firstbitlow(int2);
1193
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbitlow)
1194
+ uint3 firstbitlow(int3);
1195
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbitlow)
1196
+ uint4 firstbitlow(int4);
1197
+
1198
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbitlow)
1199
+ uint firstbitlow(uint);
1200
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbitlow)
1201
+ uint2 firstbitlow(uint2);
1202
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbitlow)
1203
+ uint3 firstbitlow(uint3);
1204
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbitlow)
1205
+ uint4 firstbitlow(uint4);
1206
+
1207
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbitlow)
1208
+ uint firstbitlow(int64_t);
1209
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbitlow)
1210
+ uint2 firstbitlow(int64_t2);
1211
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbitlow)
1212
+ uint3 firstbitlow(int64_t3);
1213
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbitlow)
1214
+ uint4 firstbitlow(int64_t4);
1215
+
1216
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbitlow)
1217
+ uint firstbitlow(uint64_t);
1218
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbitlow)
1219
+ uint2 firstbitlow(uint64_t2);
1220
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbitlow)
1221
+ uint3 firstbitlow(uint64_t3);
1222
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbitlow)
1223
+ uint4 firstbitlow(uint64_t4);
1224
+
779
1225
  //===----------------------------------------------------------------------===//
780
1226
  // floor builtins
781
1227
  //===----------------------------------------------------------------------===//
@@ -807,6 +1253,40 @@ float3 floor(float3);
807
1253
  _HLSL_BUILTIN_ALIAS(__builtin_elementwise_floor)
808
1254
  float4 floor(float4);
809
1255
 
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
+
810
1290
  //===----------------------------------------------------------------------===//
811
1291
  // frac builtins
812
1292
  //===----------------------------------------------------------------------===//
@@ -908,6 +1388,30 @@ float3 lerp(float3, float3, float3);
908
1388
  _HLSL_BUILTIN_ALIAS(__builtin_hlsl_lerp)
909
1389
  float4 lerp(float4, float4, float4);
910
1390
 
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
+
911
1415
  //===----------------------------------------------------------------------===//
912
1416
  // log builtins
913
1417
  //===----------------------------------------------------------------------===//
@@ -1320,6 +1824,38 @@ double3 min(double3, double3);
1320
1824
  _HLSL_BUILTIN_ALIAS(__builtin_elementwise_min)
1321
1825
  double4 min(double4, double4);
1322
1826
 
1827
+ //===----------------------------------------------------------------------===//
1828
+ // normalize builtins
1829
+ //===----------------------------------------------------------------------===//
1830
+
1831
+ /// \fn T normalize(T x)
1832
+ /// \brief Returns the normalized unit vector of the specified floating-point
1833
+ /// vector. \param x [in] The vector of floats.
1834
+ ///
1835
+ /// Normalize is based on the following formula: x / length(x).
1836
+
1837
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1838
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_normalize)
1839
+ half normalize(half);
1840
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1841
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_normalize)
1842
+ half2 normalize(half2);
1843
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1844
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_normalize)
1845
+ half3 normalize(half3);
1846
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1847
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_normalize)
1848
+ half4 normalize(half4);
1849
+
1850
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_normalize)
1851
+ float normalize(float);
1852
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_normalize)
1853
+ float2 normalize(float2);
1854
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_normalize)
1855
+ float3 normalize(float3);
1856
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_normalize)
1857
+ float4 normalize(float4);
1858
+
1323
1859
  //===----------------------------------------------------------------------===//
1324
1860
  // pow builtins
1325
1861
  //===----------------------------------------------------------------------===//
@@ -1392,6 +1928,45 @@ uint64_t3 reversebits(uint64_t3);
1392
1928
  _HLSL_BUILTIN_ALIAS(__builtin_elementwise_bitreverse)
1393
1929
  uint64_t4 reversebits(uint64_t4);
1394
1930
 
1931
+ //===----------------------------------------------------------------------===//
1932
+ // cross builtins
1933
+ //===----------------------------------------------------------------------===//
1934
+
1935
+ /// \fn T cross(T x, T y)
1936
+ /// \brief Returns the cross product of two floating-point, 3D vectors.
1937
+ /// \param x [in] The first floating-point, 3D vector.
1938
+ /// \param y [in] The second floating-point, 3D vector.
1939
+ ///
1940
+ /// Result is the cross product of x and y, i.e., the resulting
1941
+ /// components are, in order :
1942
+ /// x[1] * y[2] - y[1] * x[2]
1943
+ /// x[2] * y[0] - y[2] * x[0]
1944
+ /// x[0] * y[1] - y[0] * x[1]
1945
+
1946
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
1947
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_cross)
1948
+ half3 cross(half3, half3);
1949
+
1950
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_cross)
1951
+ float3 cross(float3, float3);
1952
+
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
+
1395
1970
  //===----------------------------------------------------------------------===//
1396
1971
  // rcp builtins
1397
1972
  //===----------------------------------------------------------------------===//
@@ -1500,6 +2075,71 @@ float3 round(float3);
1500
2075
  _HLSL_BUILTIN_ALIAS(__builtin_elementwise_roundeven)
1501
2076
  float4 round(float4);
1502
2077
 
2078
+ //===----------------------------------------------------------------------===//
2079
+ // saturate builtins
2080
+ //===----------------------------------------------------------------------===//
2081
+
2082
+ /// \fn T saturate(T Val)
2083
+ /// \brief Returns input value, \a Val, clamped within the range of 0.0f
2084
+ /// to 1.0f. \param Val The input value.
2085
+
2086
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2087
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_saturate)
2088
+ half saturate(half);
2089
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2090
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_saturate)
2091
+ half2 saturate(half2);
2092
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2093
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_saturate)
2094
+ half3 saturate(half3);
2095
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2096
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_saturate)
2097
+ half4 saturate(half4);
2098
+
2099
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_saturate)
2100
+ float saturate(float);
2101
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_saturate)
2102
+ float2 saturate(float2);
2103
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_saturate)
2104
+ float3 saturate(float3);
2105
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_saturate)
2106
+ float4 saturate(float4);
2107
+
2108
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_saturate)
2109
+ double saturate(double);
2110
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_saturate)
2111
+ double2 saturate(double2);
2112
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_saturate)
2113
+ double3 saturate(double3);
2114
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_saturate)
2115
+ double4 saturate(double4);
2116
+
2117
+ //===----------------------------------------------------------------------===//
2118
+ // select builtins
2119
+ //===----------------------------------------------------------------------===//
2120
+
2121
+ /// \fn T select(bool Cond, T TrueVal, T FalseVal)
2122
+ /// \brief ternary operator.
2123
+ /// \param Cond The Condition input value.
2124
+ /// \param TrueVal The Value returned if Cond is true.
2125
+ /// \param FalseVal The Value returned if Cond is false.
2126
+
2127
+ template <typename T>
2128
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_select)
2129
+ T select(bool, T, T);
2130
+
2131
+ /// \fn vector<T,Sz> select(vector<bool,Sz> Conds, vector<T,Sz> TrueVals,
2132
+ /// vector<T,Sz> FalseVals)
2133
+ /// \brief ternary operator for vectors. All vectors must be the same size.
2134
+ /// \param Conds The Condition input values.
2135
+ /// \param TrueVals The vector values are chosen from when conditions are true.
2136
+ /// \param FalseVals The vector values are chosen from when conditions are
2137
+ /// false.
2138
+
2139
+ template <typename T, int Sz>
2140
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_select)
2141
+ vector<T, Sz> select(vector<bool, Sz>, vector<T, Sz>, vector<T, Sz>);
2142
+
1503
2143
  //===----------------------------------------------------------------------===//
1504
2144
  // sin builtins
1505
2145
  //===----------------------------------------------------------------------===//
@@ -1588,6 +2228,39 @@ float3 sqrt(float3);
1588
2228
  _HLSL_BUILTIN_ALIAS(__builtin_elementwise_sqrt)
1589
2229
  float4 sqrt(float4);
1590
2230
 
2231
+ //===----------------------------------------------------------------------===//
2232
+ // step builtins
2233
+ //===----------------------------------------------------------------------===//
2234
+
2235
+ /// \fn T step(T x, T y)
2236
+ /// \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.
2239
+ ///
2240
+ /// Step is based on the following formula: (x >= y) ? 1 : 0
2241
+
2242
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2243
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_step)
2244
+ half step(half, half);
2245
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2246
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_step)
2247
+ half2 step(half2, half2);
2248
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2249
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_step)
2250
+ half3 step(half3, half3);
2251
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2252
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_step)
2253
+ half4 step(half4, half4);
2254
+
2255
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_step)
2256
+ float step(float, float);
2257
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_step)
2258
+ float2 step(float2, float2);
2259
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_step)
2260
+ float3 step(float3, float3);
2261
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_step)
2262
+ float4 step(float4, float4);
2263
+
1591
2264
  //===----------------------------------------------------------------------===//
1592
2265
  // tan builtins
1593
2266
  //===----------------------------------------------------------------------===//
@@ -1678,6 +2351,24 @@ float4 trunc(float4);
1678
2351
  // Wave* builtins
1679
2352
  //===----------------------------------------------------------------------===//
1680
2353
 
2354
+ /// \brief Returns true if the expression is true in all active lanes in the
2355
+ /// current wave.
2356
+ ///
2357
+ /// \param Val The boolean expression to evaluate.
2358
+ /// \return True if the expression is true in all lanes.
2359
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2360
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_true)
2361
+ __attribute__((convergent)) bool WaveActiveAllTrue(bool Val);
2362
+
2363
+ /// \brief Returns true if the expression is true in any active lane in the
2364
+ /// current wave.
2365
+ ///
2366
+ /// \param Val The boolean expression to evaluate.
2367
+ /// \return True if the expression is true in any lane.
2368
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2369
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_any_true)
2370
+ __attribute__((convergent)) bool WaveActiveAnyTrue(bool Val);
2371
+
1681
2372
  /// \brief Counts the number of boolean variables which evaluate to true across
1682
2373
  /// all active lanes in the current wave.
1683
2374
  ///
@@ -1693,5 +2384,431 @@ _HLSL_AVAILABILITY(shadermodel, 6.0)
1693
2384
  _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_get_lane_index)
1694
2385
  __attribute__((convergent)) uint WaveGetLaneIndex();
1695
2386
 
2387
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2388
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_is_first_lane)
2389
+ __attribute__((convergent)) bool WaveIsFirstLane();
2390
+
2391
+ //===----------------------------------------------------------------------===//
2392
+ // WaveReadLaneAt builtins
2393
+ //===----------------------------------------------------------------------===//
2394
+
2395
+ // \brief Returns the value of the expression for the given lane index within
2396
+ // the specified wave.
2397
+
2398
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2399
+ __attribute__((convergent)) bool WaveReadLaneAt(bool, int32_t);
2400
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2401
+ __attribute__((convergent)) bool2 WaveReadLaneAt(bool2, int32_t);
2402
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2403
+ __attribute__((convergent)) bool3 WaveReadLaneAt(bool3, int32_t);
2404
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2405
+ __attribute__((convergent)) bool4 WaveReadLaneAt(bool4, int32_t);
2406
+
2407
+ #ifdef __HLSL_ENABLE_16_BIT
2408
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2409
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2410
+ __attribute__((convergent)) int16_t WaveReadLaneAt(int16_t, int32_t);
2411
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2412
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2413
+ __attribute__((convergent)) int16_t2 WaveReadLaneAt(int16_t2, int32_t);
2414
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2415
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2416
+ __attribute__((convergent)) int16_t3 WaveReadLaneAt(int16_t3, int32_t);
2417
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2418
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2419
+ __attribute__((convergent)) int16_t4 WaveReadLaneAt(int16_t4, int32_t);
2420
+ #endif
2421
+
2422
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.0)
2423
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2424
+ __attribute__((convergent)) half WaveReadLaneAt(half, int32_t);
2425
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.0)
2426
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2427
+ __attribute__((convergent)) half2 WaveReadLaneAt(half2, int32_t);
2428
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.0)
2429
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2430
+ __attribute__((convergent)) half3 WaveReadLaneAt(half3, int32_t);
2431
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.0)
2432
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2433
+ __attribute__((convergent)) half4 WaveReadLaneAt(half4, int32_t);
2434
+
2435
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2436
+ __attribute__((convergent)) int WaveReadLaneAt(int, int32_t);
2437
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2438
+ __attribute__((convergent)) int2 WaveReadLaneAt(int2, int32_t);
2439
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2440
+ __attribute__((convergent)) int3 WaveReadLaneAt(int3, int32_t);
2441
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2442
+ __attribute__((convergent)) int4 WaveReadLaneAt(int4, int32_t);
2443
+
2444
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2445
+ __attribute__((convergent)) float WaveReadLaneAt(float, int32_t);
2446
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2447
+ __attribute__((convergent)) float2 WaveReadLaneAt(float2, int32_t);
2448
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2449
+ __attribute__((convergent)) float3 WaveReadLaneAt(float3, int32_t);
2450
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2451
+ __attribute__((convergent)) float4 WaveReadLaneAt(float4, int32_t);
2452
+
2453
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2454
+ __attribute__((convergent)) int64_t WaveReadLaneAt(int64_t, int32_t);
2455
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2456
+ __attribute__((convergent)) int64_t2 WaveReadLaneAt(int64_t2, int32_t);
2457
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2458
+ __attribute__((convergent)) int64_t3 WaveReadLaneAt(int64_t3, int32_t);
2459
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2460
+ __attribute__((convergent)) int64_t4 WaveReadLaneAt(int64_t4, int32_t);
2461
+
2462
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2463
+ __attribute__((convergent)) double WaveReadLaneAt(double, int32_t);
2464
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2465
+ __attribute__((convergent)) double2 WaveReadLaneAt(double2, int32_t);
2466
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2467
+ __attribute__((convergent)) double3 WaveReadLaneAt(double3, int32_t);
2468
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2469
+ __attribute__((convergent)) double4 WaveReadLaneAt(double4, int32_t);
2470
+
2471
+ //===----------------------------------------------------------------------===//
2472
+ // WaveActiveMax builtins
2473
+ //===----------------------------------------------------------------------===//
2474
+
2475
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.0)
2476
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
2477
+ __attribute__((convergent)) half WaveActiveMax(half);
2478
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.0)
2479
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
2480
+ __attribute__((convergent)) half2 WaveActiveMax(half2);
2481
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.0)
2482
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
2483
+ __attribute__((convergent)) half3 WaveActiveMax(half3);
2484
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.0)
2485
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
2486
+ __attribute__((convergent)) half4 WaveActiveMax(half4);
2487
+
2488
+ #ifdef __HLSL_ENABLE_16_BIT
2489
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2490
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
2491
+ __attribute__((convergent)) int16_t WaveActiveMax(int16_t);
2492
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2493
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
2494
+ __attribute__((convergent)) int16_t2 WaveActiveMax(int16_t2);
2495
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2496
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
2497
+ __attribute__((convergent)) int16_t3 WaveActiveMax(int16_t3);
2498
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2499
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
2500
+ __attribute__((convergent)) int16_t4 WaveActiveMax(int16_t4);
2501
+
2502
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2503
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
2504
+ __attribute__((convergent)) uint16_t WaveActiveMax(uint16_t);
2505
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2506
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
2507
+ __attribute__((convergent)) uint16_t2 WaveActiveMax(uint16_t2);
2508
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2509
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
2510
+ __attribute__((convergent)) uint16_t3 WaveActiveMax(uint16_t3);
2511
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2512
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
2513
+ __attribute__((convergent)) uint16_t4 WaveActiveMax(uint16_t4);
2514
+ #endif
2515
+
2516
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
2517
+ __attribute__((convergent)) int WaveActiveMax(int);
2518
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
2519
+ __attribute__((convergent)) int2 WaveActiveMax(int2);
2520
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
2521
+ __attribute__((convergent)) int3 WaveActiveMax(int3);
2522
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
2523
+ __attribute__((convergent)) int4 WaveActiveMax(int4);
2524
+
2525
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
2526
+ __attribute__((convergent)) uint WaveActiveMax(uint);
2527
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
2528
+ __attribute__((convergent)) uint2 WaveActiveMax(uint2);
2529
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
2530
+ __attribute__((convergent)) uint3 WaveActiveMax(uint3);
2531
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
2532
+ __attribute__((convergent)) uint4 WaveActiveMax(uint4);
2533
+
2534
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
2535
+ __attribute__((convergent)) int64_t WaveActiveMax(int64_t);
2536
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
2537
+ __attribute__((convergent)) int64_t2 WaveActiveMax(int64_t2);
2538
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
2539
+ __attribute__((convergent)) int64_t3 WaveActiveMax(int64_t3);
2540
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
2541
+ __attribute__((convergent)) int64_t4 WaveActiveMax(int64_t4);
2542
+
2543
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
2544
+ __attribute__((convergent)) uint64_t WaveActiveMax(uint64_t);
2545
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
2546
+ __attribute__((convergent)) uint64_t2 WaveActiveMax(uint64_t2);
2547
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
2548
+ __attribute__((convergent)) uint64_t3 WaveActiveMax(uint64_t3);
2549
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
2550
+ __attribute__((convergent)) uint64_t4 WaveActiveMax(uint64_t4);
2551
+
2552
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
2553
+ __attribute__((convergent)) float WaveActiveMax(float);
2554
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
2555
+ __attribute__((convergent)) float2 WaveActiveMax(float2);
2556
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
2557
+ __attribute__((convergent)) float3 WaveActiveMax(float3);
2558
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
2559
+ __attribute__((convergent)) float4 WaveActiveMax(float4);
2560
+
2561
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
2562
+ __attribute__((convergent)) double WaveActiveMax(double);
2563
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
2564
+ __attribute__((convergent)) double2 WaveActiveMax(double2);
2565
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
2566
+ __attribute__((convergent)) double3 WaveActiveMax(double3);
2567
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_max)
2568
+ __attribute__((convergent)) double4 WaveActiveMax(double4);
2569
+
2570
+ //===----------------------------------------------------------------------===//
2571
+ // WaveActiveSum builtins
2572
+ //===----------------------------------------------------------------------===//
2573
+
2574
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.0)
2575
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
2576
+ __attribute__((convergent)) half WaveActiveSum(half);
2577
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.0)
2578
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
2579
+ __attribute__((convergent)) half2 WaveActiveSum(half2);
2580
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.0)
2581
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
2582
+ __attribute__((convergent)) half3 WaveActiveSum(half3);
2583
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.0)
2584
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
2585
+ __attribute__((convergent)) half4 WaveActiveSum(half4);
2586
+
2587
+ #ifdef __HLSL_ENABLE_16_BIT
2588
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2589
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
2590
+ __attribute__((convergent)) int16_t WaveActiveSum(int16_t);
2591
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2592
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
2593
+ __attribute__((convergent)) int16_t2 WaveActiveSum(int16_t2);
2594
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2595
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
2596
+ __attribute__((convergent)) int16_t3 WaveActiveSum(int16_t3);
2597
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2598
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
2599
+ __attribute__((convergent)) int16_t4 WaveActiveSum(int16_t4);
2600
+
2601
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2602
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
2603
+ __attribute__((convergent)) uint16_t WaveActiveSum(uint16_t);
2604
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2605
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
2606
+ __attribute__((convergent)) uint16_t2 WaveActiveSum(uint16_t2);
2607
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2608
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
2609
+ __attribute__((convergent)) uint16_t3 WaveActiveSum(uint16_t3);
2610
+ _HLSL_AVAILABILITY(shadermodel, 6.0)
2611
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
2612
+ __attribute__((convergent)) uint16_t4 WaveActiveSum(uint16_t4);
2613
+ #endif
2614
+
2615
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
2616
+ __attribute__((convergent)) int WaveActiveSum(int);
2617
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
2618
+ __attribute__((convergent)) int2 WaveActiveSum(int2);
2619
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
2620
+ __attribute__((convergent)) int3 WaveActiveSum(int3);
2621
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
2622
+ __attribute__((convergent)) int4 WaveActiveSum(int4);
2623
+
2624
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
2625
+ __attribute__((convergent)) uint WaveActiveSum(uint);
2626
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
2627
+ __attribute__((convergent)) uint2 WaveActiveSum(uint2);
2628
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
2629
+ __attribute__((convergent)) uint3 WaveActiveSum(uint3);
2630
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
2631
+ __attribute__((convergent)) uint4 WaveActiveSum(uint4);
2632
+
2633
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
2634
+ __attribute__((convergent)) int64_t WaveActiveSum(int64_t);
2635
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
2636
+ __attribute__((convergent)) int64_t2 WaveActiveSum(int64_t2);
2637
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
2638
+ __attribute__((convergent)) int64_t3 WaveActiveSum(int64_t3);
2639
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
2640
+ __attribute__((convergent)) int64_t4 WaveActiveSum(int64_t4);
2641
+
2642
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
2643
+ __attribute__((convergent)) uint64_t WaveActiveSum(uint64_t);
2644
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
2645
+ __attribute__((convergent)) uint64_t2 WaveActiveSum(uint64_t2);
2646
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
2647
+ __attribute__((convergent)) uint64_t3 WaveActiveSum(uint64_t3);
2648
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
2649
+ __attribute__((convergent)) uint64_t4 WaveActiveSum(uint64_t4);
2650
+
2651
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
2652
+ __attribute__((convergent)) float WaveActiveSum(float);
2653
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
2654
+ __attribute__((convergent)) float2 WaveActiveSum(float2);
2655
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
2656
+ __attribute__((convergent)) float3 WaveActiveSum(float3);
2657
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
2658
+ __attribute__((convergent)) float4 WaveActiveSum(float4);
2659
+
2660
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
2661
+ __attribute__((convergent)) double WaveActiveSum(double);
2662
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
2663
+ __attribute__((convergent)) double2 WaveActiveSum(double2);
2664
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
2665
+ __attribute__((convergent)) double3 WaveActiveSum(double3);
2666
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_sum)
2667
+ __attribute__((convergent)) double4 WaveActiveSum(double4);
2668
+
2669
+ //===----------------------------------------------------------------------===//
2670
+ // sign builtins
2671
+ //===----------------------------------------------------------------------===//
2672
+
2673
+ /// \fn T sign(T Val)
2674
+ /// \brief Returns -1 if \a Val is less than zero; 0 if \a Val equals zero; and
2675
+ /// 1 if \a Val is greater than zero. \param Val The input value.
2676
+
2677
+ #ifdef __HLSL_ENABLE_16_BIT
2678
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
2679
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2680
+ int sign(int16_t);
2681
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
2682
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2683
+ int2 sign(int16_t2);
2684
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
2685
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2686
+ int3 sign(int16_t3);
2687
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
2688
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2689
+ int4 sign(int16_t4);
2690
+
2691
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
2692
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2693
+ int sign(uint16_t);
2694
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
2695
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2696
+ int2 sign(uint16_t2);
2697
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
2698
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2699
+ int3 sign(uint16_t3);
2700
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
2701
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2702
+ int4 sign(uint16_t4);
2703
+ #endif
2704
+
2705
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2706
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2707
+ int sign(half);
2708
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2709
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2710
+ int2 sign(half2);
2711
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2712
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2713
+ int3 sign(half3);
2714
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2715
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2716
+ int4 sign(half4);
2717
+
2718
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2719
+ int sign(int);
2720
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2721
+ int2 sign(int2);
2722
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2723
+ int3 sign(int3);
2724
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2725
+ int4 sign(int4);
2726
+
2727
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2728
+ int sign(uint);
2729
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2730
+ int2 sign(uint2);
2731
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2732
+ int3 sign(uint3);
2733
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2734
+ int4 sign(uint4);
2735
+
2736
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2737
+ int sign(float);
2738
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2739
+ int2 sign(float2);
2740
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2741
+ int3 sign(float3);
2742
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2743
+ int4 sign(float4);
2744
+
2745
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2746
+ int sign(int64_t);
2747
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2748
+ int2 sign(int64_t2);
2749
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2750
+ int3 sign(int64_t3);
2751
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2752
+ int4 sign(int64_t4);
2753
+
2754
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2755
+ int sign(uint64_t);
2756
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2757
+ int2 sign(uint64_t2);
2758
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2759
+ int3 sign(uint64_t3);
2760
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2761
+ int4 sign(uint64_t4);
2762
+
2763
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2764
+ int sign(double);
2765
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2766
+ int2 sign(double2);
2767
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2768
+ int3 sign(double3);
2769
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_sign)
2770
+ int4 sign(double4);
2771
+
2772
+ //===----------------------------------------------------------------------===//
2773
+ // radians builtins
2774
+ //===----------------------------------------------------------------------===//
2775
+
2776
+ /// \fn T radians(T Val)
2777
+ /// \brief Converts the specified value from degrees to radians.
2778
+
2779
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2780
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_radians)
2781
+ half radians(half);
2782
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2783
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_radians)
2784
+ half2 radians(half2);
2785
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2786
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_radians)
2787
+ half3 radians(half3);
2788
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
2789
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_radians)
2790
+ half4 radians(half4);
2791
+
2792
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_radians)
2793
+ float radians(float);
2794
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_radians)
2795
+ float2 radians(float2);
2796
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_radians)
2797
+ float3 radians(float3);
2798
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_radians)
2799
+ float4 radians(float4);
2800
+
2801
+ //===----------------------------------------------------------------------===//
2802
+ // GroupMemoryBarrierWithGroupSync builtins
2803
+ //===----------------------------------------------------------------------===//
2804
+
2805
+ /// \fn void GroupMemoryBarrierWithGroupSync(void)
2806
+ /// \brief Blocks execution of all threads in a group until all group shared
2807
+ /// accesses have been completed and all threads in the group have reached this
2808
+ /// call.
2809
+
2810
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_group_memory_barrier_with_group_sync)
2811
+ void GroupMemoryBarrierWithGroupSync(void);
2812
+
1696
2813
  } // namespace hlsl
1697
2814
  #endif //_HLSL_HLSL_INTRINSICS_H_