@cpp-linter/clang-tidy-linux-arm64 22.1.8 → 23.1.4

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 +2 -2
  3. package/lib/clang/{22 → 23}/include/__clang_cuda_complex_builtins.h +10 -3
  4. package/lib/clang/{22 → 23}/include/__clang_cuda_intrinsics.h +207 -226
  5. package/lib/clang/{22 → 23}/include/__clang_cuda_math_forward_declares.h +5 -0
  6. package/lib/clang/{22 → 23}/include/__clang_cuda_runtime_wrapper.h +9 -5
  7. package/lib/clang/23/include/__clang_gpu_builtin_vars.h +71 -0
  8. package/lib/clang/23/include/__clang_gpu_device_functions.h +411 -0
  9. package/lib/clang/23/include/__clang_gpu_intrinsics.h +242 -0
  10. package/lib/clang/{22 → 23}/include/__clang_hip_libdevice_declares.h +0 -102
  11. package/lib/clang/{22 → 23}/include/__clang_hip_math.h +3 -3
  12. package/lib/clang/{22 → 23}/include/__clang_hip_runtime_wrapper.h +6 -1
  13. package/lib/clang/23/include/__clang_spirv_libdevice_declares.h +170 -0
  14. package/lib/clang/23/include/__clang_spirv_math.h +719 -0
  15. package/lib/clang/{22 → 23}/include/altivec.h +79 -9
  16. package/lib/clang/{22 → 23}/include/amdgpuintrin.h +2 -29
  17. package/lib/clang/23/include/amdhsa_abi.h +83 -0
  18. package/lib/clang/{22 → 23}/include/amo.h +89 -0
  19. package/lib/clang/{22 → 23}/include/andes_vector.h +5 -0
  20. package/lib/clang/23/include/arm64_neon.h +21 -0
  21. package/lib/clang/{22 → 23}/include/arm64intr.h +10 -0
  22. package/lib/clang/{22 → 23}/include/arm_acle.h +1 -0
  23. package/lib/clang/{22 → 23}/include/arm_neon.h +3922 -3754
  24. package/lib/clang/{22 → 23}/include/arm_sme.h +12 -0
  25. package/lib/clang/{22 → 23}/include/arm_sve.h +420 -0
  26. package/lib/clang/{22 → 23}/include/avx2intrin.h +4 -5
  27. package/lib/clang/23/include/avx512bmmintrin.h +174 -0
  28. package/lib/clang/23/include/avx512bmmvlintrin.h +245 -0
  29. package/lib/clang/{22 → 23}/include/avx512bwintrin.h +19 -29
  30. package/lib/clang/{22 → 23}/include/avx512fintrin.h +62 -89
  31. package/lib/clang/{22 → 23}/include/avx512fp16intrin.h +12 -18
  32. package/lib/clang/{22 → 23}/include/avx512vbmi2intrin.h +12 -16
  33. package/lib/clang/{22 → 23}/include/avx512vlbwintrin.h +24 -36
  34. package/lib/clang/{22 → 23}/include/avx512vlintrin.h +80 -96
  35. package/lib/clang/{22 → 23}/include/avx512vlvbmi2intrin.h +24 -32
  36. package/lib/clang/{22 → 23}/include/avx512vlvnniintrin.h +29 -34
  37. package/lib/clang/{22 → 23}/include/avx512vnniintrin.h +32 -35
  38. package/lib/clang/{22 → 23}/include/avx512vp2intersectintrin.h +1 -1
  39. package/lib/clang/{22 → 23}/include/avxvnniintrin.h +23 -18
  40. package/lib/clang/{22 → 23}/include/crc32intrin.h +10 -8
  41. package/lib/clang/{22 → 23}/include/emmintrin.h +8 -8
  42. package/lib/clang/23/include/endian.h +91 -0
  43. package/lib/clang/{22 → 23}/include/gpuintrin.h +123 -105
  44. package/lib/clang/23/include/hlsl/hlsl_alias_intrinsics.h +222 -0
  45. package/lib/clang/{22/include/hlsl/hlsl_alias_intrinsics.h → 23/include/hlsl/hlsl_alias_intrinsics_gen.inc} +1865 -1157
  46. package/lib/clang/{22 → 23}/include/hlsl/hlsl_compat_overloads.h +39 -0
  47. package/lib/clang/{22 → 23}/include/hlsl/hlsl_detail.h +6 -4
  48. package/lib/clang/23/include/hlsl/hlsl_inline_intrinsics_gen.inc +546 -0
  49. package/lib/clang/{22 → 23}/include/hlsl/hlsl_intrinsic_helpers.h +25 -45
  50. package/lib/clang/23/include/hlsl/hlsl_intrinsics.h +331 -0
  51. package/lib/clang/{22 → 23}/include/hvx_hexagon_protos.h +102 -80
  52. package/lib/clang/{22 → 23}/include/immintrin.h +4 -2
  53. package/lib/clang/{22 → 23}/include/intrin.h +20 -10
  54. package/lib/clang/{22 → 23}/include/larchintrin.h +2 -0
  55. package/lib/clang/{22 → 23}/include/llvm_libc_wrappers/ctype.h +3 -2
  56. package/lib/clang/{22 → 23}/include/llvm_libc_wrappers/string.h +3 -2
  57. package/lib/clang/{22 → 23}/include/module.modulemap +16 -1
  58. package/lib/clang/{22 → 23}/include/nvptxintrin.h +15 -26
  59. package/lib/clang/{22 → 23}/include/opencl-c-base.h +7 -0
  60. package/lib/clang/{22 → 23}/include/opencl-c.h +163 -102
  61. package/lib/clang/{22 → 23}/include/openmp_wrappers/__clang_openmp_device_functions.h +14 -0
  62. package/lib/clang/{22 → 23}/include/openmp_wrappers/complex +7 -1
  63. package/lib/clang/{22 → 23}/include/openmp_wrappers/complex.h +6 -0
  64. package/lib/clang/{22 → 23}/include/openmp_wrappers/math.h +10 -0
  65. package/lib/clang/{22 → 23}/include/ptrauth.h +90 -12
  66. package/lib/clang/{22 → 23}/include/riscv_bitmanip.h +7 -0
  67. package/lib/clang/{22 → 23}/include/riscv_corev_alu.h +2 -0
  68. package/lib/clang/{22 → 23}/include/riscv_crypto.h +8 -0
  69. package/lib/clang/{22 → 23}/include/riscv_mips.h +2 -0
  70. package/lib/clang/{22 → 23}/include/riscv_nds.h +3 -0
  71. package/lib/clang/{22 → 23}/include/riscv_ntlh.h +2 -0
  72. package/lib/clang/23/include/riscv_packed_simd.h +644 -0
  73. package/lib/clang/{22 → 23}/include/riscv_vector.h +43 -0
  74. package/lib/clang/{22 → 23}/include/sifive_vector.h +18 -0
  75. package/lib/clang/{22 → 23}/include/spirvintrin.h +2 -29
  76. package/lib/clang/{22 → 23}/include/stdint.h +5 -14
  77. package/lib/clang/{22 → 23}/include/vecintrin.h +1 -1
  78. package/lib/clang/{22 → 23}/include/wasm_simd128.h +17 -0
  79. package/lib/clang/{22 → 23}/include/xmmintrin.h +8 -7
  80. package/lib/clang/23/include/zos_wrappers/grp.h +19 -0
  81. package/lib/clang/23/include/zos_wrappers/locale.h +19 -0
  82. package/lib/clang/23/include/zos_wrappers/math.h +31 -0
  83. package/lib/clang/23/include/zos_wrappers/poll.h +19 -0
  84. package/lib/clang/23/include/zos_wrappers/stdlib.h +20 -0
  85. package/lib/clang/23/include/zos_wrappers/string.h +19 -0
  86. package/lib/clang/23/include/zos_wrappers/time.h +19 -0
  87. package/lib/clang/23/include/zos_wrappers/variant.h +19 -0
  88. package/package.json +6 -6
  89. package/lib/clang/22/include/amxtf32intrin.h +0 -108
  90. package/lib/clang/22/include/hlsl/hlsl_intrinsics.h +0 -794
  91. /package/lib/clang/{22 → 23}/include/__clang_cuda_builtin_vars.h +0 -0
  92. /package/lib/clang/{22 → 23}/include/__clang_cuda_cmath.h +0 -0
  93. /package/lib/clang/{22 → 23}/include/__clang_cuda_device_functions.h +0 -0
  94. /package/lib/clang/{22 → 23}/include/__clang_cuda_libdevice_declares.h +0 -0
  95. /package/lib/clang/{22 → 23}/include/__clang_cuda_math.h +0 -0
  96. /package/lib/clang/{22 → 23}/include/__clang_cuda_texture_intrinsics.h +0 -0
  97. /package/lib/clang/{22 → 23}/include/__clang_hip_cmath.h +0 -0
  98. /package/lib/clang/{22 → 23}/include/__clang_hip_stdlib.h +0 -0
  99. /package/lib/clang/{22 → 23}/include/__clang_spirv_builtins.h +0 -0
  100. /package/lib/clang/{22 → 23}/include/__float_float.h +0 -0
  101. /package/lib/clang/{22 → 23}/include/__float_header_macro.h +0 -0
  102. /package/lib/clang/{22 → 23}/include/__float_infinity_nan.h +0 -0
  103. /package/lib/clang/{22 → 23}/include/__stdarg___gnuc_va_list.h +0 -0
  104. /package/lib/clang/{22 → 23}/include/__stdarg___va_copy.h +0 -0
  105. /package/lib/clang/{22 → 23}/include/__stdarg_header_macro.h +0 -0
  106. /package/lib/clang/{22 → 23}/include/__stdarg_va_arg.h +0 -0
  107. /package/lib/clang/{22 → 23}/include/__stdarg_va_copy.h +0 -0
  108. /package/lib/clang/{22 → 23}/include/__stdarg_va_list.h +0 -0
  109. /package/lib/clang/{22 → 23}/include/__stddef_header_macro.h +0 -0
  110. /package/lib/clang/{22 → 23}/include/__stddef_max_align_t.h +0 -0
  111. /package/lib/clang/{22 → 23}/include/__stddef_null.h +0 -0
  112. /package/lib/clang/{22 → 23}/include/__stddef_nullptr_t.h +0 -0
  113. /package/lib/clang/{22 → 23}/include/__stddef_offsetof.h +0 -0
  114. /package/lib/clang/{22 → 23}/include/__stddef_ptrdiff_t.h +0 -0
  115. /package/lib/clang/{22 → 23}/include/__stddef_rsize_t.h +0 -0
  116. /package/lib/clang/{22 → 23}/include/__stddef_size_t.h +0 -0
  117. /package/lib/clang/{22 → 23}/include/__stddef_unreachable.h +0 -0
  118. /package/lib/clang/{22 → 23}/include/__stddef_wchar_t.h +0 -0
  119. /package/lib/clang/{22 → 23}/include/__stddef_wint_t.h +0 -0
  120. /package/lib/clang/{22 → 23}/include/__wmmintrin_aes.h +0 -0
  121. /package/lib/clang/{22 → 23}/include/__wmmintrin_pclmul.h +0 -0
  122. /package/lib/clang/{22 → 23}/include/adcintrin.h +0 -0
  123. /package/lib/clang/{22 → 23}/include/adxintrin.h +0 -0
  124. /package/lib/clang/{22 → 23}/include/ammintrin.h +0 -0
  125. /package/lib/clang/{22 → 23}/include/amxavx512intrin.h +0 -0
  126. /package/lib/clang/{22 → 23}/include/amxcomplexintrin.h +0 -0
  127. /package/lib/clang/{22 → 23}/include/amxfp16intrin.h +0 -0
  128. /package/lib/clang/{22 → 23}/include/amxfp8intrin.h +0 -0
  129. /package/lib/clang/{22 → 23}/include/amxintrin.h +0 -0
  130. /package/lib/clang/{22 → 23}/include/amxmovrsintrin.h +0 -0
  131. /package/lib/clang/{22 → 23}/include/arm_bf16.h +0 -0
  132. /package/lib/clang/{22 → 23}/include/arm_cde.h +0 -0
  133. /package/lib/clang/{22 → 23}/include/arm_cmse.h +0 -0
  134. /package/lib/clang/{22 → 23}/include/arm_fp16.h +0 -0
  135. /package/lib/clang/{22 → 23}/include/arm_mve.h +0 -0
  136. /package/lib/clang/{22 → 23}/include/arm_neon_sve_bridge.h +0 -0
  137. /package/lib/clang/{22 → 23}/include/arm_vector_types.h +0 -0
  138. /package/lib/clang/{22 → 23}/include/armintr.h +0 -0
  139. /package/lib/clang/{22 → 23}/include/avx10_2_512bf16intrin.h +0 -0
  140. /package/lib/clang/{22 → 23}/include/avx10_2_512convertintrin.h +0 -0
  141. /package/lib/clang/{22 → 23}/include/avx10_2_512minmaxintrin.h +0 -0
  142. /package/lib/clang/{22 → 23}/include/avx10_2_512niintrin.h +0 -0
  143. /package/lib/clang/{22 → 23}/include/avx10_2_512satcvtdsintrin.h +0 -0
  144. /package/lib/clang/{22 → 23}/include/avx10_2_512satcvtintrin.h +0 -0
  145. /package/lib/clang/{22 → 23}/include/avx10_2bf16intrin.h +0 -0
  146. /package/lib/clang/{22 → 23}/include/avx10_2convertintrin.h +0 -0
  147. /package/lib/clang/{22 → 23}/include/avx10_2copyintrin.h +0 -0
  148. /package/lib/clang/{22 → 23}/include/avx10_2minmaxintrin.h +0 -0
  149. /package/lib/clang/{22 → 23}/include/avx10_2niintrin.h +0 -0
  150. /package/lib/clang/{22 → 23}/include/avx10_2satcvtdsintrin.h +0 -0
  151. /package/lib/clang/{22 → 23}/include/avx10_2satcvtintrin.h +0 -0
  152. /package/lib/clang/{22 → 23}/include/avx512bf16intrin.h +0 -0
  153. /package/lib/clang/{22 → 23}/include/avx512bitalgintrin.h +0 -0
  154. /package/lib/clang/{22 → 23}/include/avx512cdintrin.h +0 -0
  155. /package/lib/clang/{22 → 23}/include/avx512dqintrin.h +0 -0
  156. /package/lib/clang/{22 → 23}/include/avx512ifmaintrin.h +0 -0
  157. /package/lib/clang/{22 → 23}/include/avx512ifmavlintrin.h +0 -0
  158. /package/lib/clang/{22 → 23}/include/avx512vbmiintrin.h +0 -0
  159. /package/lib/clang/{22 → 23}/include/avx512vbmivlintrin.h +0 -0
  160. /package/lib/clang/{22 → 23}/include/avx512vlbf16intrin.h +0 -0
  161. /package/lib/clang/{22 → 23}/include/avx512vlbitalgintrin.h +0 -0
  162. /package/lib/clang/{22 → 23}/include/avx512vlcdintrin.h +0 -0
  163. /package/lib/clang/{22 → 23}/include/avx512vldqintrin.h +0 -0
  164. /package/lib/clang/{22 → 23}/include/avx512vlfp16intrin.h +0 -0
  165. /package/lib/clang/{22 → 23}/include/avx512vlvp2intersectintrin.h +0 -0
  166. /package/lib/clang/{22 → 23}/include/avx512vpopcntdqintrin.h +0 -0
  167. /package/lib/clang/{22 → 23}/include/avx512vpopcntdqvlintrin.h +0 -0
  168. /package/lib/clang/{22 → 23}/include/avxifmaintrin.h +0 -0
  169. /package/lib/clang/{22 → 23}/include/avxintrin.h +0 -0
  170. /package/lib/clang/{22 → 23}/include/avxneconvertintrin.h +0 -0
  171. /package/lib/clang/{22 → 23}/include/avxvnniint16intrin.h +0 -0
  172. /package/lib/clang/{22 → 23}/include/avxvnniint8intrin.h +0 -0
  173. /package/lib/clang/{22 → 23}/include/bmi2intrin.h +0 -0
  174. /package/lib/clang/{22 → 23}/include/bmiintrin.h +0 -0
  175. /package/lib/clang/{22 → 23}/include/builtins.h +0 -0
  176. /package/lib/clang/{22 → 23}/include/cet.h +0 -0
  177. /package/lib/clang/{22 → 23}/include/cetintrin.h +0 -0
  178. /package/lib/clang/{22 → 23}/include/cldemoteintrin.h +0 -0
  179. /package/lib/clang/{22 → 23}/include/clflushoptintrin.h +0 -0
  180. /package/lib/clang/{22 → 23}/include/clwbintrin.h +0 -0
  181. /package/lib/clang/{22 → 23}/include/clzerointrin.h +0 -0
  182. /package/lib/clang/{22 → 23}/include/cmpccxaddintrin.h +0 -0
  183. /package/lib/clang/{22 → 23}/include/cpuid.h +0 -0
  184. /package/lib/clang/{22 → 23}/include/cuda_wrappers/__utility/declval.h +0 -0
  185. /package/lib/clang/{22 → 23}/include/cuda_wrappers/algorithm +0 -0
  186. /package/lib/clang/{22 → 23}/include/cuda_wrappers/bits/basic_string.h +0 -0
  187. /package/lib/clang/{22 → 23}/include/cuda_wrappers/bits/basic_string.tcc +0 -0
  188. /package/lib/clang/{22 → 23}/include/cuda_wrappers/bits/c++config.h +0 -0
  189. /package/lib/clang/{22 → 23}/include/cuda_wrappers/bits/shared_ptr_base.h +0 -0
  190. /package/lib/clang/{22 → 23}/include/cuda_wrappers/cmath +0 -0
  191. /package/lib/clang/{22 → 23}/include/cuda_wrappers/complex +0 -0
  192. /package/lib/clang/{22 → 23}/include/cuda_wrappers/new +0 -0
  193. /package/lib/clang/{22 → 23}/include/enqcmdintrin.h +0 -0
  194. /package/lib/clang/{22 → 23}/include/f16cintrin.h +0 -0
  195. /package/lib/clang/{22 → 23}/include/float.h +0 -0
  196. /package/lib/clang/{22 → 23}/include/fma4intrin.h +0 -0
  197. /package/lib/clang/{22 → 23}/include/fmaintrin.h +0 -0
  198. /package/lib/clang/{22 → 23}/include/fxsrintrin.h +0 -0
  199. /package/lib/clang/{22 → 23}/include/gfniintrin.h +0 -0
  200. /package/lib/clang/{22 → 23}/include/hexagon_circ_brev_intrinsics.h +0 -0
  201. /package/lib/clang/{22 → 23}/include/hexagon_protos.h +0 -0
  202. /package/lib/clang/{22 → 23}/include/hexagon_types.h +0 -0
  203. /package/lib/clang/{22 → 23}/include/hlsl/hlsl_basic_types.h +0 -0
  204. /package/lib/clang/{22 → 23}/include/hlsl/hlsl_spirv.h +0 -0
  205. /package/lib/clang/{22 → 23}/include/hlsl.h +0 -0
  206. /package/lib/clang/{22 → 23}/include/hresetintrin.h +0 -0
  207. /package/lib/clang/{22 → 23}/include/htmintrin.h +0 -0
  208. /package/lib/clang/{22 → 23}/include/htmxlintrin.h +0 -0
  209. /package/lib/clang/{22 → 23}/include/ia32intrin.h +0 -0
  210. /package/lib/clang/{22 → 23}/include/intrin0.h +0 -0
  211. /package/lib/clang/{22 → 23}/include/inttypes.h +0 -0
  212. /package/lib/clang/{22 → 23}/include/invpcidintrin.h +0 -0
  213. /package/lib/clang/{22 → 23}/include/iso646.h +0 -0
  214. /package/lib/clang/{22 → 23}/include/keylockerintrin.h +0 -0
  215. /package/lib/clang/{22 → 23}/include/lasxintrin.h +0 -0
  216. /package/lib/clang/{22 → 23}/include/limits.h +0 -0
  217. /package/lib/clang/{22 → 23}/include/llvm_libc_wrappers/assert.h +0 -0
  218. /package/lib/clang/{22 → 23}/include/llvm_libc_wrappers/inttypes.h +0 -0
  219. /package/lib/clang/{22 → 23}/include/llvm_libc_wrappers/stdio.h +0 -0
  220. /package/lib/clang/{22 → 23}/include/llvm_libc_wrappers/stdlib.h +0 -0
  221. /package/lib/clang/{22 → 23}/include/llvm_libc_wrappers/time.h +0 -0
  222. /package/lib/clang/{22 → 23}/include/llvm_offload_wrappers/__llvm_offload.h +0 -0
  223. /package/lib/clang/{22 → 23}/include/llvm_offload_wrappers/__llvm_offload_device.h +0 -0
  224. /package/lib/clang/{22 → 23}/include/llvm_offload_wrappers/__llvm_offload_host.h +0 -0
  225. /package/lib/clang/{22 → 23}/include/lsxintrin.h +0 -0
  226. /package/lib/clang/{22 → 23}/include/lwpintrin.h +0 -0
  227. /package/lib/clang/{22 → 23}/include/lzcntintrin.h +0 -0
  228. /package/lib/clang/{22 → 23}/include/mm3dnow.h +0 -0
  229. /package/lib/clang/{22 → 23}/include/mm_malloc.h +0 -0
  230. /package/lib/clang/{22 → 23}/include/mmintrin.h +0 -0
  231. /package/lib/clang/{22 → 23}/include/movdirintrin.h +0 -0
  232. /package/lib/clang/{22 → 23}/include/movrs_avx10_2_512intrin.h +0 -0
  233. /package/lib/clang/{22 → 23}/include/movrs_avx10_2intrin.h +0 -0
  234. /package/lib/clang/{22 → 23}/include/movrsintrin.h +0 -0
  235. /package/lib/clang/{22 → 23}/include/msa.h +0 -0
  236. /package/lib/clang/{22 → 23}/include/mwaitxintrin.h +0 -0
  237. /package/lib/clang/{22 → 23}/include/nmmintrin.h +0 -0
  238. /package/lib/clang/{22 → 23}/include/openmp_wrappers/cmath +0 -0
  239. /package/lib/clang/{22 → 23}/include/openmp_wrappers/complex_cmath.h +0 -0
  240. /package/lib/clang/{22 → 23}/include/openmp_wrappers/new +0 -0
  241. /package/lib/clang/{22 → 23}/include/pconfigintrin.h +0 -0
  242. /package/lib/clang/{22 → 23}/include/pkuintrin.h +0 -0
  243. /package/lib/clang/{22 → 23}/include/pmmintrin.h +0 -0
  244. /package/lib/clang/{22 → 23}/include/popcntintrin.h +0 -0
  245. /package/lib/clang/{22 → 23}/include/ppc_wrappers/bmi2intrin.h +0 -0
  246. /package/lib/clang/{22 → 23}/include/ppc_wrappers/bmiintrin.h +0 -0
  247. /package/lib/clang/{22 → 23}/include/ppc_wrappers/emmintrin.h +0 -0
  248. /package/lib/clang/{22 → 23}/include/ppc_wrappers/immintrin.h +0 -0
  249. /package/lib/clang/{22 → 23}/include/ppc_wrappers/mm_malloc.h +0 -0
  250. /package/lib/clang/{22 → 23}/include/ppc_wrappers/mmintrin.h +0 -0
  251. /package/lib/clang/{22 → 23}/include/ppc_wrappers/nmmintrin.h +0 -0
  252. /package/lib/clang/{22 → 23}/include/ppc_wrappers/pmmintrin.h +0 -0
  253. /package/lib/clang/{22 → 23}/include/ppc_wrappers/smmintrin.h +0 -0
  254. /package/lib/clang/{22 → 23}/include/ppc_wrappers/tmmintrin.h +0 -0
  255. /package/lib/clang/{22 → 23}/include/ppc_wrappers/x86gprintrin.h +0 -0
  256. /package/lib/clang/{22 → 23}/include/ppc_wrappers/x86intrin.h +0 -0
  257. /package/lib/clang/{22 → 23}/include/ppc_wrappers/xmmintrin.h +0 -0
  258. /package/lib/clang/{22 → 23}/include/prfchiintrin.h +0 -0
  259. /package/lib/clang/{22 → 23}/include/prfchwintrin.h +0 -0
  260. /package/lib/clang/{22 → 23}/include/ptwriteintrin.h +0 -0
  261. /package/lib/clang/{22 → 23}/include/raointintrin.h +0 -0
  262. /package/lib/clang/{22 → 23}/include/rdpruintrin.h +0 -0
  263. /package/lib/clang/{22 → 23}/include/rdseedintrin.h +0 -0
  264. /package/lib/clang/{22 → 23}/include/rtmintrin.h +0 -0
  265. /package/lib/clang/{22 → 23}/include/s390intrin.h +0 -0
  266. /package/lib/clang/{22 → 23}/include/serializeintrin.h +0 -0
  267. /package/lib/clang/{22 → 23}/include/sgxintrin.h +0 -0
  268. /package/lib/clang/{22 → 23}/include/sha512intrin.h +0 -0
  269. /package/lib/clang/{22 → 23}/include/shaintrin.h +0 -0
  270. /package/lib/clang/{22 → 23}/include/sm3intrin.h +0 -0
  271. /package/lib/clang/{22 → 23}/include/sm4evexintrin.h +0 -0
  272. /package/lib/clang/{22 → 23}/include/sm4intrin.h +0 -0
  273. /package/lib/clang/{22 → 23}/include/smmintrin.h +0 -0
  274. /package/lib/clang/{22 → 23}/include/stdalign.h +0 -0
  275. /package/lib/clang/{22 → 23}/include/stdarg.h +0 -0
  276. /package/lib/clang/{22 → 23}/include/stdatomic.h +0 -0
  277. /package/lib/clang/{22 → 23}/include/stdbool.h +0 -0
  278. /package/lib/clang/{22 → 23}/include/stdckdint.h +0 -0
  279. /package/lib/clang/{22 → 23}/include/stdcountof.h +0 -0
  280. /package/lib/clang/{22 → 23}/include/stddef.h +0 -0
  281. /package/lib/clang/{22 → 23}/include/stddefer.h +0 -0
  282. /package/lib/clang/{22 → 23}/include/stdnoreturn.h +0 -0
  283. /package/lib/clang/{22 → 23}/include/tbmintrin.h +0 -0
  284. /package/lib/clang/{22 → 23}/include/tgmath.h +0 -0
  285. /package/lib/clang/{22 → 23}/include/tmmintrin.h +0 -0
  286. /package/lib/clang/{22 → 23}/include/tsxldtrkintrin.h +0 -0
  287. /package/lib/clang/{22 → 23}/include/uintrintrin.h +0 -0
  288. /package/lib/clang/{22 → 23}/include/unwind.h +0 -0
  289. /package/lib/clang/{22 → 23}/include/usermsrintrin.h +0 -0
  290. /package/lib/clang/{22 → 23}/include/vadefs.h +0 -0
  291. /package/lib/clang/{22 → 23}/include/vaesintrin.h +0 -0
  292. /package/lib/clang/{22 → 23}/include/varargs.h +0 -0
  293. /package/lib/clang/{22 → 23}/include/velintrin.h +0 -0
  294. /package/lib/clang/{22 → 23}/include/velintrin_approx.h +0 -0
  295. /package/lib/clang/{22 → 23}/include/velintrin_gen.h +0 -0
  296. /package/lib/clang/{22 → 23}/include/vpclmulqdqintrin.h +0 -0
  297. /package/lib/clang/{22 → 23}/include/waitpkgintrin.h +0 -0
  298. /package/lib/clang/{22 → 23}/include/wbnoinvdintrin.h +0 -0
  299. /package/lib/clang/{22 → 23}/include/wmmintrin.h +0 -0
  300. /package/lib/clang/{22 → 23}/include/x86gprintrin.h +0 -0
  301. /package/lib/clang/{22 → 23}/include/x86intrin.h +0 -0
  302. /package/lib/clang/{22 → 23}/include/xopintrin.h +0 -0
  303. /package/lib/clang/{22 → 23}/include/xsavecintrin.h +0 -0
  304. /package/lib/clang/{22 → 23}/include/xsaveintrin.h +0 -0
  305. /package/lib/clang/{22 → 23}/include/xsaveoptintrin.h +0 -0
  306. /package/lib/clang/{22 → 23}/include/xsavesintrin.h +0 -0
  307. /package/lib/clang/{22 → 23}/include/xtestintrin.h +0 -0
  308. /package/lib/clang/{22 → 23}/include/yvals_core.h +0 -0
  309. /package/lib/clang/{22 → 23}/include/zos_wrappers/builtins.h +0 -0
@@ -1,794 +0,0 @@
1
- //===----- hlsl_intrinsics.h - HLSL definitions for intrinsics ----------===//
2
- //
3
- // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
- // See https://llvm.org/LICENSE.txt for license information.
5
- // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
- //
7
- //===----------------------------------------------------------------------===//
8
-
9
- #ifndef _HLSL_HLSL_INTRINSICS_H_
10
- #define _HLSL_HLSL_INTRINSICS_H_
11
-
12
- #include "hlsl/hlsl_intrinsic_helpers.h"
13
-
14
- namespace hlsl {
15
-
16
- //===----------------------------------------------------------------------===//
17
- // asfloat builtins
18
- //===----------------------------------------------------------------------===//
19
-
20
- /// \fn float asfloat(T Val)
21
- /// \brief Interprets the bit pattern of x as float point number.
22
- /// \param Val The input value.
23
-
24
- template <typename T, int N>
25
- constexpr vector<float, N> asfloat(vector<T, N> V) {
26
- return __detail::bit_cast<float, T, N>(V);
27
- }
28
-
29
- template <typename T> constexpr float asfloat(T F) {
30
- return __detail::bit_cast<float, T>(F);
31
- }
32
-
33
- //===----------------------------------------------------------------------===//
34
- // asint builtins
35
- //===----------------------------------------------------------------------===//
36
-
37
- /// \fn int asint(T Val)
38
- /// \brief Interprets the bit pattern of x as an integer.
39
- /// \param Val The input value.
40
-
41
- template <typename T, int N> constexpr vector<int, N> asint(vector<T, N> V) {
42
- return __detail::bit_cast<int, T, N>(V);
43
- }
44
-
45
- template <typename T> constexpr int asint(T F) {
46
- return __detail::bit_cast<int, T>(F);
47
- }
48
-
49
- //===----------------------------------------------------------------------===//
50
- // asint16 builtins
51
- //===----------------------------------------------------------------------===//
52
-
53
- /// \fn int16_t asint16(T X)
54
- /// \brief Interprets the bit pattern of \a X as an 16-bit integer.
55
- /// \param X The input value.
56
-
57
- #ifdef __HLSL_ENABLE_16_BIT
58
-
59
- template <typename T, int N>
60
- _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
61
- constexpr __detail::enable_if_t<__detail::is_same<int16_t, T>::value ||
62
- __detail::is_same<uint16_t, T>::value ||
63
- __detail::is_same<half, T>::value,
64
- vector<int16_t, N>> asint16(vector<T, N> V) {
65
- return __detail::bit_cast<int16_t, T, N>(V);
66
- }
67
-
68
- template <typename T>
69
- _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
70
- constexpr __detail::enable_if_t<__detail::is_same<int16_t, T>::value ||
71
- __detail::is_same<uint16_t, T>::value ||
72
- __detail::is_same<half, T>::value,
73
- int16_t> asint16(T F) {
74
- return __detail::bit_cast<int16_t, T>(F);
75
- }
76
- #endif
77
-
78
- //===----------------------------------------------------------------------===//
79
- // asuint builtins
80
- //===----------------------------------------------------------------------===//
81
-
82
- /// \fn uint asuint(T Val)
83
- /// \brief Interprets the bit pattern of x as an unsigned integer.
84
- /// \param Val The input value.
85
-
86
- template <typename T, int N> constexpr vector<uint, N> asuint(vector<T, N> V) {
87
- return __detail::bit_cast<uint, T, N>(V);
88
- }
89
-
90
- template <typename T> constexpr uint asuint(T F) {
91
- return __detail::bit_cast<uint, T>(F);
92
- }
93
-
94
- //===----------------------------------------------------------------------===//
95
- // asuint splitdouble builtins
96
- //===----------------------------------------------------------------------===//
97
-
98
- /// \fn void asuint(double D, out uint lowbits, out int highbits)
99
- /// \brief Split and interprets the lowbits and highbits of double D into uints.
100
- /// \param D The input double.
101
- /// \param lowbits The output lowbits of D.
102
- /// \param highbits The output highbits of D.
103
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_splitdouble)
104
- void asuint(double, out uint, out uint);
105
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_splitdouble)
106
- void asuint(double2, out uint2, out uint2);
107
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_splitdouble)
108
- void asuint(double3, out uint3, out uint3);
109
- _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_splitdouble)
110
- void asuint(double4, out uint4, out uint4);
111
-
112
- //===----------------------------------------------------------------------===//
113
- // asuint16 builtins
114
- //===----------------------------------------------------------------------===//
115
-
116
- /// \fn uint16_t asuint16(T X)
117
- /// \brief Interprets the bit pattern of \a X as an 16-bit unsigned integer.
118
- /// \param X The input value.
119
-
120
- #ifdef __HLSL_ENABLE_16_BIT
121
-
122
- template <typename T, int N>
123
- _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
124
- constexpr __detail::enable_if_t<__detail::is_same<int16_t, T>::value ||
125
- __detail::is_same<uint16_t, T>::value ||
126
- __detail::is_same<half, T>::value,
127
- vector<uint16_t, N>> asuint16(vector<T, N> V) {
128
- return __detail::bit_cast<uint16_t, T, N>(V);
129
- }
130
-
131
- template <typename T>
132
- _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
133
- constexpr __detail::enable_if_t<__detail::is_same<int16_t, T>::value ||
134
- __detail::is_same<uint16_t, T>::value ||
135
- __detail::is_same<half, T>::value,
136
- uint16_t> asuint16(T F) {
137
- return __detail::bit_cast<uint16_t, T>(F);
138
- }
139
- #endif
140
-
141
- //===----------------------------------------------------------------------===//
142
- // distance builtins
143
- //===----------------------------------------------------------------------===//
144
-
145
- /// \fn K distance(T X, T Y)
146
- /// \brief Returns a distance scalar between \a X and \a Y.
147
- /// \param X The X input value.
148
- /// \param Y The Y input value.
149
-
150
- template <typename T>
151
- _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
152
- const inline __detail::enable_if_t<__detail::is_arithmetic<T>::Value &&
153
- __detail::is_same<half, T>::value,
154
- T> distance(T X, T Y) {
155
- return __detail::distance_impl(X, Y);
156
- }
157
-
158
- template <typename T>
159
- const inline __detail::enable_if_t<
160
- __detail::is_arithmetic<T>::Value && __detail::is_same<float, T>::value, T>
161
- distance(T X, T Y) {
162
- return __detail::distance_impl(X, Y);
163
- }
164
-
165
- template <int N>
166
- _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
167
- const inline half distance(__detail::HLSL_FIXED_VECTOR<half, N> X,
168
- __detail::HLSL_FIXED_VECTOR<half, N> Y) {
169
- return __detail::distance_vec_impl(X, Y);
170
- }
171
-
172
- template <int N>
173
- const inline float distance(__detail::HLSL_FIXED_VECTOR<float, N> X,
174
- __detail::HLSL_FIXED_VECTOR<float, N> Y) {
175
- return __detail::distance_vec_impl(X, Y);
176
- }
177
-
178
- //===----------------------------------------------------------------------===//
179
- // dot2add builtins
180
- //===----------------------------------------------------------------------===//
181
-
182
- /// \fn float dot2add(half2 A, half2 B, float C)
183
- /// \brief Dot product of 2 vector of type half and add a float scalar value.
184
- /// \param A The first input value to dot product.
185
- /// \param B The second input value to dot product.
186
- /// \param C The input value added to the dot product.
187
-
188
- _HLSL_AVAILABILITY(shadermodel, 6.4)
189
- const inline float dot2add(half2 A, half2 B, float C) {
190
- return __detail::dot2add_impl(A, B, C);
191
- }
192
-
193
- //===----------------------------------------------------------------------===//
194
- // dst builtins
195
- //===----------------------------------------------------------------------===//
196
-
197
- /// \fn vector<T, 4> dst(vector<T, 4>, vector<T, 4>)
198
- /// \brief Calculates a distance vector.
199
- /// \param Src0 [in] Contains the squared distance
200
- /// \param Src1 [in] Contains the reciprocal distance
201
- ///
202
- /// Return the computed distance vector
203
-
204
- _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
205
- const inline half4 dst(half4 Src0, half4 Src1) {
206
- return __detail::dst_impl(Src0, Src1);
207
- }
208
-
209
- const inline float4 dst(float4 Src0, float4 Src1) {
210
- return __detail::dst_impl(Src0, Src1);
211
- }
212
-
213
- const inline double4 dst(double4 Src0, double4 Src1) {
214
- return __detail::dst_impl(Src0, Src1);
215
- }
216
-
217
- //===----------------------------------------------------------------------===//
218
- // faceforward builtin
219
- //===----------------------------------------------------------------------===//
220
-
221
- /// \fn T faceforward(T N, T I, T Ng)
222
- /// \brief Flips the surface-normal (if needed) to face in a direction opposite
223
- /// to \a I. Returns the result in terms of \a N.
224
- /// \param N The resulting floating-point surface-normal vector.
225
- /// \param I A floating-point, incident vector that points from the view
226
- /// position to the shading position.
227
- /// \param Ng A floating-point surface-normal vector.
228
- ///
229
- /// Return a floating-point, surface normal vector that is facing the view
230
- /// direction.
231
-
232
- template <typename T>
233
- _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
234
- const inline __detail::enable_if_t<__detail::is_arithmetic<T>::Value &&
235
- __detail::is_same<half, T>::value,
236
- T> faceforward(T N, T I, T Ng) {
237
- return __detail::faceforward_impl(N, I, Ng);
238
- }
239
-
240
- template <typename T>
241
- const inline __detail::enable_if_t<
242
- __detail::is_arithmetic<T>::Value && __detail::is_same<float, T>::value, T>
243
- faceforward(T N, T I, T Ng) {
244
- return __detail::faceforward_impl(N, I, Ng);
245
- }
246
-
247
- template <int L>
248
- _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
249
- const inline __detail::HLSL_FIXED_VECTOR<half, L> faceforward(
250
- __detail::HLSL_FIXED_VECTOR<half, L> N,
251
- __detail::HLSL_FIXED_VECTOR<half, L> I,
252
- __detail::HLSL_FIXED_VECTOR<half, L> Ng) {
253
- return __detail::faceforward_impl(N, I, Ng);
254
- }
255
-
256
- template <int L>
257
- const inline __detail::HLSL_FIXED_VECTOR<float, L>
258
- faceforward(__detail::HLSL_FIXED_VECTOR<float, L> N,
259
- __detail::HLSL_FIXED_VECTOR<float, L> I,
260
- __detail::HLSL_FIXED_VECTOR<float, L> Ng) {
261
- return __detail::faceforward_impl(N, I, Ng);
262
- }
263
-
264
- //===----------------------------------------------------------------------===//
265
- // firstbithigh builtins
266
- //===----------------------------------------------------------------------===//
267
-
268
- /// \fn T firstbithigh(T Val)
269
- /// \brief Returns the location of the first set bit starting from the lowest
270
- /// order bit and working upward, per component.
271
- /// \param Val the input value.
272
-
273
- #ifdef __HLSL_ENABLE_16_BIT
274
-
275
- template <typename T>
276
- _HLSL_AVAILABILITY(shadermodel, 6.2)
277
- const inline __detail::enable_if_t<__detail::is_same<int16_t, T>::value ||
278
- __detail::is_same<uint16_t, T>::value,
279
- uint> firstbithigh(T X) {
280
- return __detail::firstbithigh_impl<uint, T, 16>(X);
281
- }
282
-
283
- template <typename T, int N>
284
- _HLSL_AVAILABILITY(shadermodel, 6.2)
285
- const
286
- inline __detail::enable_if_t<__detail::is_same<int16_t, T>::value ||
287
- __detail::is_same<uint16_t, T>::value,
288
- vector<uint, N>> firstbithigh(vector<T, N> X) {
289
- return __detail::firstbithigh_impl<vector<uint, N>, vector<T, N>, 16>(X);
290
- }
291
-
292
- #endif
293
-
294
- template <typename T>
295
- const inline __detail::enable_if_t<
296
- __detail::is_same<int, T>::value || __detail::is_same<uint, T>::value, uint>
297
- firstbithigh(T X) {
298
- return __detail::firstbithigh_impl<uint, T, 32>(X);
299
- }
300
-
301
- template <typename T, int N>
302
- const inline __detail::enable_if_t<__detail::is_same<int, T>::value ||
303
- __detail::is_same<uint, T>::value,
304
- vector<uint, N>>
305
- firstbithigh(vector<T, N> X) {
306
- return __detail::firstbithigh_impl<vector<uint, N>, vector<T, N>, 32>(X);
307
- }
308
-
309
- template <typename T>
310
- const inline __detail::enable_if_t<__detail::is_same<int64_t, T>::value ||
311
- __detail::is_same<uint64_t, T>::value,
312
- uint>
313
- firstbithigh(T X) {
314
- return __detail::firstbithigh_impl<uint, T, 64>(X);
315
- }
316
-
317
- template <typename T, int N>
318
- const inline __detail::enable_if_t<__detail::is_same<int64_t, T>::value ||
319
- __detail::is_same<uint64_t, T>::value,
320
- vector<uint, N>>
321
- firstbithigh(vector<T, N> X) {
322
- return __detail::firstbithigh_impl<vector<uint, N>, vector<T, N>, 64>(X);
323
- }
324
-
325
- //===----------------------------------------------------------------------===//
326
- // fmod builtins
327
- //===----------------------------------------------------------------------===//
328
-
329
- /// \fn T fmod(T x, T y)
330
- /// \brief Returns the linear interpolation of x to y.
331
- /// \param x [in] The dividend.
332
- /// \param y [in] The divisor.
333
- ///
334
- /// Return the floating-point remainder of the x parameter divided by the y
335
- /// parameter.
336
-
337
- template <typename T>
338
- _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
339
- const inline __detail::enable_if_t<__detail::is_arithmetic<T>::Value &&
340
- __detail::is_same<half, T>::value,
341
- T> fmod(T X, T Y) {
342
- return __detail::fmod_impl(X, Y);
343
- }
344
-
345
- template <typename T>
346
- const inline __detail::enable_if_t<
347
- __detail::is_arithmetic<T>::Value && __detail::is_same<float, T>::value, T>
348
- fmod(T X, T Y) {
349
- return __detail::fmod_impl(X, Y);
350
- }
351
-
352
- template <int N>
353
- _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
354
- const inline __detail::HLSL_FIXED_VECTOR<half, N> fmod(
355
- __detail::HLSL_FIXED_VECTOR<half, N> X,
356
- __detail::HLSL_FIXED_VECTOR<half, N> Y) {
357
- return __detail::fmod_vec_impl(X, Y);
358
- }
359
-
360
- template <int N>
361
- const inline __detail::HLSL_FIXED_VECTOR<float, N>
362
- fmod(__detail::HLSL_FIXED_VECTOR<float, N> X,
363
- __detail::HLSL_FIXED_VECTOR<float, N> Y) {
364
- return __detail::fmod_vec_impl(X, Y);
365
- }
366
-
367
- //===----------------------------------------------------------------------===//
368
- // ldexp builtins
369
- //===----------------------------------------------------------------------===//
370
-
371
- /// \fn T ldexp(T X, T Exp)
372
- /// \brief Returns the result of multiplying the specified value by two raised
373
- /// to the power of the specified exponent.
374
- /// \param X [in] The specified value.
375
- /// \param Exp [in] The specified exponent.
376
- ///
377
- /// This function uses the following formula: X * 2^Exp
378
-
379
- template <typename T>
380
- _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
381
- const inline __detail::enable_if_t<__detail::is_arithmetic<T>::Value &&
382
- __detail::is_same<half, T>::value,
383
- T> ldexp(T X, T Exp) {
384
- return __detail::ldexp_impl(X, Exp);
385
- }
386
-
387
- template <typename T>
388
- const inline __detail::enable_if_t<
389
- __detail::is_arithmetic<T>::Value && __detail::is_same<float, T>::value, T>
390
- ldexp(T X, T Exp) {
391
- return __detail::ldexp_impl(X, Exp);
392
- }
393
-
394
- template <int N>
395
- _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
396
- const inline __detail::HLSL_FIXED_VECTOR<half, N> ldexp(
397
- __detail::HLSL_FIXED_VECTOR<half, N> X,
398
- __detail::HLSL_FIXED_VECTOR<half, N> Exp) {
399
- return __detail::ldexp_impl(X, Exp);
400
- }
401
-
402
- template <int N>
403
- const inline __detail::HLSL_FIXED_VECTOR<float, N>
404
- ldexp(__detail::HLSL_FIXED_VECTOR<float, N> X,
405
- __detail::HLSL_FIXED_VECTOR<float, N> Exp) {
406
- return __detail::ldexp_impl(X, Exp);
407
- }
408
-
409
- //===----------------------------------------------------------------------===//
410
- // length builtins
411
- //===----------------------------------------------------------------------===//
412
-
413
- /// \fn T length(T x)
414
- /// \brief Returns the length of the specified floating-point vector.
415
- /// \param x [in] The vector of floats, or a scalar float.
416
- ///
417
- /// Length is based on the following formula: sqrt(x[0]^2 + x[1]^2 + ...).
418
-
419
- template <typename T>
420
- _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
421
- const inline __detail::enable_if_t<__detail::is_arithmetic<T>::Value &&
422
- __detail::is_same<half, T>::value,
423
- T> length(T X) {
424
- return __detail::length_impl(X);
425
- }
426
-
427
- template <typename T>
428
- const inline __detail::enable_if_t<
429
- __detail::is_arithmetic<T>::Value && __detail::is_same<float, T>::value, T>
430
- length(T X) {
431
- return __detail::length_impl(X);
432
- }
433
-
434
- template <int N>
435
- _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
436
- const inline half length(__detail::HLSL_FIXED_VECTOR<half, N> X) {
437
- return __detail::length_vec_impl(X);
438
- }
439
-
440
- template <int N>
441
- const inline float length(__detail::HLSL_FIXED_VECTOR<float, N> X) {
442
- return __detail::length_vec_impl(X);
443
- }
444
-
445
- //===----------------------------------------------------------------------===//
446
- // lit builtins
447
- //===----------------------------------------------------------------------===//
448
-
449
- /// \fn vector<T, 4> lit(T NDotL, T NDotH, T M)
450
- /// \brief Returns a lighting coefficient vector.
451
- /// \param NDotL The dot product of the normalized surface normal and the
452
- /// light vector.
453
- /// \param NDotH The dot product of the half-angle vector and the surface
454
- /// normal.
455
- /// \param M A specular exponent.
456
- ///
457
- /// This function returns a lighting coefficient vector (ambient, diffuse,
458
- /// specular, 1).
459
-
460
- _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
461
- const inline half4 lit(half NDotL, half NDotH, half M) {
462
- return __detail::lit_impl(NDotL, NDotH, M);
463
- }
464
-
465
- const inline float4 lit(float NDotL, float NDotH, float M) {
466
- return __detail::lit_impl(NDotL, NDotH, M);
467
- }
468
-
469
- //===----------------------------------------------------------------------===//
470
- // D3DCOLORtoUBYTE4 builtin
471
- //===----------------------------------------------------------------------===//
472
-
473
- /// \fn T D3DCOLORtoUBYTE4(T x)
474
- /// \brief Converts a floating-point, 4D vector set by a D3DCOLOR to a UBYTE4.
475
- /// \param x [in] The floating-point vector4 to convert.
476
- ///
477
- /// The return value is the UBYTE4 representation of the \a x parameter.
478
- ///
479
- /// This function swizzles and scales components of the \a x parameter. Use this
480
- /// function to compensate for the lack of UBYTE4 support in some hardware.
481
-
482
- constexpr int4 D3DCOLORtoUBYTE4(float4 V) {
483
- return __detail::d3d_color_to_ubyte4_impl(V);
484
- }
485
-
486
- //===----------------------------------------------------------------------===//
487
- // NonUniformResourceIndex builtin
488
- //===----------------------------------------------------------------------===//
489
-
490
- /// \fn uint NonUniformResourceIndex(uint I)
491
- /// \brief A compiler hint to indicate that a resource index varies across
492
- /// threads within a wave (i.e., it is non-uniform).
493
- /// \param I [in] Resource array index
494
- ///
495
- /// The return value is the \Index parameter.
496
- ///
497
- /// When indexing into an array of shader resources (e.g., textures, buffers),
498
- /// some GPU hardware and drivers require the compiler to know whether the index
499
- /// is uniform (same for all threads) or non-uniform (varies per thread).
500
- ///
501
- /// Using NonUniformResourceIndex explicitly marks an index as non-uniform,
502
- /// disabling certain assumptions or optimizations that could lead to incorrect
503
- /// behavior when dynamically accessing resource arrays with non-uniform
504
- /// indices.
505
-
506
- constexpr uint32_t NonUniformResourceIndex(uint32_t Index) {
507
- return __builtin_hlsl_resource_nonuniformindex(Index);
508
- }
509
-
510
- //===----------------------------------------------------------------------===//
511
- // reflect builtin
512
- //===----------------------------------------------------------------------===//
513
-
514
- /// \fn T reflect(T I, T N)
515
- /// \brief Returns a reflection using an incident ray, \a I, and a surface
516
- /// normal, \a N.
517
- /// \param I The incident ray.
518
- /// \param N The surface normal.
519
- ///
520
- /// The return value is a floating-point vector that represents the reflection
521
- /// of the incident ray, \a I, off a surface with the normal \a N.
522
- ///
523
- /// This function calculates the reflection vector using the following formula:
524
- /// V = I - 2 * N * dot(I N) .
525
- ///
526
- /// N must already be normalized in order to achieve the desired result.
527
- ///
528
- /// The operands must all be a scalar or vector whose component type is
529
- /// floating-point.
530
- ///
531
- /// Result type and the type of all operands must be the same type.
532
-
533
- template <typename T>
534
- _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
535
- const inline __detail::enable_if_t<__detail::is_arithmetic<T>::Value &&
536
- __detail::is_same<half, T>::value,
537
- T> reflect(T I, T N) {
538
- return __detail::reflect_impl(I, N);
539
- }
540
-
541
- template <typename T>
542
- const inline __detail::enable_if_t<
543
- __detail::is_arithmetic<T>::Value && __detail::is_same<float, T>::value, T>
544
- reflect(T I, T N) {
545
- return __detail::reflect_impl(I, N);
546
- }
547
-
548
- template <int L>
549
- _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
550
- const inline __detail::HLSL_FIXED_VECTOR<half, L> reflect(
551
- __detail::HLSL_FIXED_VECTOR<half, L> I,
552
- __detail::HLSL_FIXED_VECTOR<half, L> N) {
553
- return __detail::reflect_vec_impl(I, N);
554
- }
555
-
556
- template <int L>
557
- const inline __detail::HLSL_FIXED_VECTOR<float, L>
558
- reflect(__detail::HLSL_FIXED_VECTOR<float, L> I,
559
- __detail::HLSL_FIXED_VECTOR<float, L> N) {
560
- return __detail::reflect_vec_impl(I, N);
561
- }
562
-
563
- //===----------------------------------------------------------------------===//
564
- // refract builtin
565
- //===----------------------------------------------------------------------===//
566
-
567
- /// \fn T refract(T I, T N, T eta)
568
- /// \brief Returns a refraction using an entering ray, \a I, a surface
569
- /// normal, \a N and refraction index \a eta
570
- /// \param I The entering ray.
571
- /// \param N The surface normal.
572
- /// \param eta The refraction index.
573
- ///
574
- /// The return value is a floating-point vector that represents the refraction
575
- /// using the refraction index, \a eta, for the direction of the entering ray,
576
- /// \a I, off a surface with the normal \a N.
577
- ///
578
- /// This function calculates the refraction vector using the following formulas:
579
- /// k = 1.0 - eta * eta * (1.0 - dot(N, I) * dot(N, I))
580
- /// if k < 0.0 the result is 0.0
581
- /// otherwise, the result is eta * I - (eta * dot(N, I) + sqrt(k)) * N
582
- ///
583
- /// I and N must already be normalized in order to achieve the desired result.
584
- ///
585
- /// I and N must be a scalar or vector whose component type is
586
- /// floating-point.
587
- ///
588
- /// eta must be a 16-bit or 32-bit floating-point scalar.
589
- ///
590
- /// Result type, the type of I, and the type of N must all be the same type.
591
-
592
- template <typename T>
593
- _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
594
- const inline __detail::enable_if_t<__detail::is_arithmetic<T>::Value &&
595
- __detail::is_same<half, T>::value,
596
- T> refract(T I, T N, T eta) {
597
- return __detail::refract_impl(I, N, eta);
598
- }
599
-
600
- template <typename T>
601
- const inline __detail::enable_if_t<
602
- __detail::is_arithmetic<T>::Value && __detail::is_same<float, T>::value, T>
603
- refract(T I, T N, T eta) {
604
- return __detail::refract_impl(I, N, eta);
605
- }
606
-
607
- template <int L>
608
- _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
609
- const inline __detail::HLSL_FIXED_VECTOR<half, L> refract(
610
- __detail::HLSL_FIXED_VECTOR<half, L> I,
611
- __detail::HLSL_FIXED_VECTOR<half, L> N, half eta) {
612
- return __detail::refract_impl(I, N, eta);
613
- }
614
-
615
- template <int L>
616
- const inline __detail::HLSL_FIXED_VECTOR<float, L>
617
- refract(__detail::HLSL_FIXED_VECTOR<float, L> I,
618
- __detail::HLSL_FIXED_VECTOR<float, L> N, float eta) {
619
- return __detail::refract_impl(I, N, eta);
620
- }
621
-
622
- //===----------------------------------------------------------------------===//
623
- // smoothstep builtin
624
- //===----------------------------------------------------------------------===//
625
-
626
- /// \fn T smoothstep(T Min, T Max, T X)
627
- /// \brief Returns a smooth Hermite interpolation between 0 and 1, if \a X is in
628
- /// the range [\a Min, \a Max].
629
- /// \param Min The minimum range of the x parameter.
630
- /// \param Max The maximum range of the x parameter.
631
- /// \param X The specified value to be interpolated.
632
- ///
633
- /// The return value is 0.0 if \a X ≤ \a Min and 1.0 if \a X ≥ \a Max. When \a
634
- /// Min < \a X < \a Max, the function performs smooth Hermite interpolation
635
- /// between 0 and 1.
636
-
637
- template <typename T>
638
- _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
639
- const inline __detail::enable_if_t<__detail::is_arithmetic<T>::Value &&
640
- __detail::is_same<half, T>::value,
641
- T> smoothstep(T Min, T Max, T X) {
642
- return __detail::smoothstep_impl(Min, Max, X);
643
- }
644
-
645
- template <typename T>
646
- const inline __detail::enable_if_t<
647
- __detail::is_arithmetic<T>::Value && __detail::is_same<float, T>::value, T>
648
- smoothstep(T Min, T Max, T X) {
649
- return __detail::smoothstep_impl(Min, Max, X);
650
- }
651
-
652
- template <int N>
653
- _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
654
- const inline __detail::HLSL_FIXED_VECTOR<half, N> smoothstep(
655
- __detail::HLSL_FIXED_VECTOR<half, N> Min,
656
- __detail::HLSL_FIXED_VECTOR<half, N> Max,
657
- __detail::HLSL_FIXED_VECTOR<half, N> X) {
658
- return __detail::smoothstep_vec_impl(Min, Max, X);
659
- }
660
-
661
- template <int N>
662
- const inline __detail::HLSL_FIXED_VECTOR<float, N>
663
- smoothstep(__detail::HLSL_FIXED_VECTOR<float, N> Min,
664
- __detail::HLSL_FIXED_VECTOR<float, N> Max,
665
- __detail::HLSL_FIXED_VECTOR<float, N> X) {
666
- return __detail::smoothstep_vec_impl(Min, Max, X);
667
- }
668
-
669
- inline bool CheckAccessFullyMapped(uint Status) {
670
- return static_cast<bool>(Status);
671
- }
672
-
673
- //===----------------------------------------------------------------------===//
674
- // ddx builtin
675
- //===----------------------------------------------------------------------===//
676
-
677
- /// \fn T ddx(T x)
678
- /// \brief Computes the sum of the absolute values of the partial derivatives
679
- /// with regard to the x screen space coordinate.
680
- /// \param x [in] The floating-point scalar or vector to process.
681
- ///
682
- /// The return value is a floating-point scalar or vector where each element
683
- /// holds the computation of the matching element in the input.
684
-
685
- template <typename T>
686
- _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
687
- const inline __detail::enable_if_t<__detail::is_arithmetic<T>::Value &&
688
- __detail::is_same<half, T>::value,
689
- T> ddx(T input) {
690
- return __detail::ddx_impl(input);
691
- }
692
-
693
- template <typename T>
694
- const inline __detail::enable_if_t<
695
- __detail::is_arithmetic<T>::Value && __detail::is_same<float, T>::value, T>
696
- ddx(T input) {
697
- return __detail::ddx_impl(input);
698
- }
699
-
700
- template <int N>
701
- _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
702
- const inline __detail::HLSL_FIXED_VECTOR<half, N> ddx(
703
- __detail::HLSL_FIXED_VECTOR<half, N> input) {
704
- return __detail::ddx_impl(input);
705
- }
706
-
707
- template <int N>
708
- const inline __detail::HLSL_FIXED_VECTOR<float, N>
709
- ddx(__detail::HLSL_FIXED_VECTOR<float, N> input) {
710
- return __detail::ddx_impl(input);
711
- }
712
-
713
- //===----------------------------------------------------------------------===//
714
- // ddy builtin
715
- //===----------------------------------------------------------------------===//
716
-
717
- /// \fn T ddy(T x)
718
- /// \brief Computes the sum of the absolute values of the partial derivatives
719
- /// with regard to the y screen space coordinate.
720
- /// \param x [in] The floating-point scalar or vector to process.
721
- ///
722
- /// The return value is a floating-point scalar or vector where each element
723
- /// holds the computation of the matching element in the input.
724
-
725
- template <typename T>
726
- _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
727
- const inline __detail::enable_if_t<__detail::is_arithmetic<T>::Value &&
728
- __detail::is_same<half, T>::value,
729
- T> ddy(T input) {
730
- return __detail::ddy_impl(input);
731
- }
732
-
733
- template <typename T>
734
- const inline __detail::enable_if_t<
735
- __detail::is_arithmetic<T>::Value && __detail::is_same<float, T>::value, T>
736
- ddy(T input) {
737
- return __detail::ddy_impl(input);
738
- }
739
-
740
- template <int N>
741
- _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
742
- const inline __detail::HLSL_FIXED_VECTOR<half, N> ddy(
743
- __detail::HLSL_FIXED_VECTOR<half, N> input) {
744
- return __detail::ddy_impl(input);
745
- }
746
-
747
- template <int N>
748
- const inline __detail::HLSL_FIXED_VECTOR<float, N>
749
- ddy(__detail::HLSL_FIXED_VECTOR<float, N> input) {
750
- return __detail::ddy_impl(input);
751
- }
752
-
753
- //===----------------------------------------------------------------------===//
754
- // fwidth builtin
755
- //===----------------------------------------------------------------------===//
756
-
757
- /// \fn T fwidth(T x)
758
- /// \brief Computes the sum of the absolute values of the partial derivatives
759
- /// with regard to the x and y screen space coordinates.
760
- /// \param x [in] The floating-point scalar or vector to process.
761
- ///
762
- /// The return value is a floating-point scalar or vector where each element
763
- /// holds the computation of the matching element in the input.
764
-
765
- template <typename T>
766
- _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
767
- const inline __detail::enable_if_t<__detail::is_arithmetic<T>::Value &&
768
- __detail::is_same<half, T>::value,
769
- T> fwidth(T input) {
770
- return __detail::fwidth_impl(input);
771
- }
772
-
773
- template <typename T>
774
- const inline __detail::enable_if_t<
775
- __detail::is_arithmetic<T>::Value && __detail::is_same<float, T>::value, T>
776
- fwidth(T input) {
777
- return __detail::fwidth_impl(input);
778
- }
779
-
780
- template <int N>
781
- _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
782
- const inline __detail::HLSL_FIXED_VECTOR<half, N> fwidth(
783
- __detail::HLSL_FIXED_VECTOR<half, N> input) {
784
- return __detail::fwidth_impl(input);
785
- }
786
-
787
- template <int N>
788
- const inline __detail::HLSL_FIXED_VECTOR<float, N>
789
- fwidth(__detail::HLSL_FIXED_VECTOR<float, N> input) {
790
- return __detail::fwidth_impl(input);
791
- }
792
-
793
- } // namespace hlsl
794
- #endif //_HLSL_HLSL_INTRINSICS_H_