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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (320) hide show
  1. package/README.md +2 -2
  2. package/bin/clang-tidy.exe +2 -2
  3. package/lib/clang/23/include/__clang_cuda_complex_builtins.h +236 -0
  4. package/lib/clang/{19 → 23}/include/__clang_cuda_device_functions.h +15 -1
  5. package/lib/clang/{19 → 23}/include/__clang_cuda_intrinsics.h +288 -20
  6. package/lib/clang/{19 → 23}/include/__clang_cuda_math.h +5 -0
  7. package/lib/clang/{19 → 23}/include/__clang_cuda_math_forward_declares.h +5 -0
  8. package/lib/clang/{19 → 23}/include/__clang_cuda_runtime_wrapper.h +28 -5
  9. package/lib/clang/{19 → 23}/include/__clang_cuda_texture_intrinsics.h +437 -2
  10. package/lib/clang/23/include/__clang_gpu_builtin_vars.h +71 -0
  11. package/lib/clang/23/include/__clang_gpu_device_functions.h +411 -0
  12. package/lib/clang/23/include/__clang_gpu_intrinsics.h +242 -0
  13. package/lib/clang/{19 → 23}/include/__clang_hip_cmath.h +15 -9
  14. package/lib/clang/{19 → 23}/include/__clang_hip_libdevice_declares.h +24 -139
  15. package/lib/clang/{19 → 23}/include/__clang_hip_math.h +115 -34
  16. package/lib/clang/{19 → 23}/include/__clang_hip_runtime_wrapper.h +12 -1
  17. package/lib/clang/23/include/__clang_spirv_builtins.h +217 -0
  18. package/lib/clang/23/include/__clang_spirv_libdevice_declares.h +170 -0
  19. package/lib/clang/23/include/__clang_spirv_math.h +719 -0
  20. package/lib/clang/{19/include/float.h → 23/include/__float_float.h} +14 -34
  21. package/lib/clang/23/include/__float_header_macro.h +12 -0
  22. package/lib/clang/23/include/__float_infinity_nan.h +20 -0
  23. package/lib/clang/{19 → 23}/include/__stdarg_va_arg.h +2 -2
  24. package/lib/clang/{19 → 23}/include/adcintrin.h +5 -0
  25. package/lib/clang/{19 → 23}/include/adxintrin.h +5 -0
  26. package/lib/clang/{19 → 23}/include/altivec.h +169 -96
  27. package/lib/clang/23/include/amdgpuintrin.h +164 -0
  28. package/lib/clang/23/include/amdhsa_abi.h +83 -0
  29. package/lib/clang/23/include/amo.h +220 -0
  30. package/lib/clang/23/include/amxavx512intrin.h +596 -0
  31. package/lib/clang/{19 → 23}/include/amxcomplexintrin.h +4 -6
  32. package/lib/clang/{19 → 23}/include/amxfp16intrin.h +35 -0
  33. package/lib/clang/23/include/amxfp8intrin.h +230 -0
  34. package/lib/clang/{19 → 23}/include/amxintrin.h +3 -35
  35. package/lib/clang/23/include/amxmovrsintrin.h +48 -0
  36. package/lib/clang/23/include/andes_vector.h +21 -0
  37. package/lib/clang/23/include/arm64_neon.h +21 -0
  38. package/lib/clang/{19 → 23}/include/arm64intr.h +10 -0
  39. package/lib/clang/{19 → 23}/include/arm_acle.h +67 -89
  40. package/lib/clang/{19 → 23}/include/arm_fp16.h +89 -89
  41. package/lib/clang/{19 → 23}/include/arm_neon.h +43614 -38901
  42. package/lib/clang/{19 → 23}/include/arm_sme.h +1028 -94
  43. package/lib/clang/{19 → 23}/include/arm_sve.h +7331 -5170
  44. package/lib/clang/{19 → 23}/include/arm_vector_types.h +87 -0
  45. package/lib/clang/23/include/avx10_2_512bf16intrin.h +568 -0
  46. package/lib/clang/23/include/avx10_2_512convertintrin.h +322 -0
  47. package/lib/clang/23/include/avx10_2_512minmaxintrin.h +127 -0
  48. package/lib/clang/23/include/avx10_2_512niintrin.h +314 -0
  49. package/lib/clang/23/include/avx10_2_512satcvtdsintrin.h +307 -0
  50. package/lib/clang/23/include/avx10_2_512satcvtintrin.h +301 -0
  51. package/lib/clang/23/include/avx10_2bf16intrin.h +1094 -0
  52. package/lib/clang/23/include/avx10_2convertintrin.h +3257 -0
  53. package/lib/clang/23/include/avx10_2copyintrin.h +66 -0
  54. package/lib/clang/23/include/avx10_2minmaxintrin.h +232 -0
  55. package/lib/clang/23/include/avx10_2niintrin.h +409 -0
  56. package/lib/clang/23/include/avx10_2satcvtdsintrin.h +376 -0
  57. package/lib/clang/23/include/avx10_2satcvtintrin.h +312 -0
  58. package/lib/clang/{19 → 23}/include/avx2intrin.h +284 -378
  59. package/lib/clang/{19 → 23}/include/avx512bf16intrin.h +25 -16
  60. package/lib/clang/{19 → 23}/include/avx512bitalgintrin.h +21 -32
  61. package/lib/clang/23/include/avx512bmmintrin.h +174 -0
  62. package/lib/clang/23/include/avx512bmmvlintrin.h +245 -0
  63. package/lib/clang/{19 → 23}/include/avx512bwintrin.h +405 -534
  64. package/lib/clang/23/include/avx512cdintrin.h +112 -0
  65. package/lib/clang/{19 → 23}/include/avx512dqintrin.h +132 -161
  66. package/lib/clang/{19 → 23}/include/avx512fintrin.h +1068 -1496
  67. package/lib/clang/{19 → 23}/include/avx512fp16intrin.h +126 -129
  68. package/lib/clang/23/include/avx512ifmaintrin.h +68 -0
  69. package/lib/clang/23/include/avx512ifmavlintrin.h +138 -0
  70. package/lib/clang/{19 → 23}/include/avx512vbmi2intrin.h +55 -48
  71. package/lib/clang/{19 → 23}/include/avx512vbmiintrin.h +19 -27
  72. package/lib/clang/{19 → 23}/include/avx512vbmivlintrin.h +35 -49
  73. package/lib/clang/{19 → 23}/include/avx512vlbf16intrin.h +32 -22
  74. package/lib/clang/{19 → 23}/include/avx512vlbitalgintrin.h +41 -57
  75. package/lib/clang/{19 → 23}/include/avx512vlbwintrin.h +494 -609
  76. package/lib/clang/23/include/avx512vlcdintrin.h +202 -0
  77. package/lib/clang/{19 → 23}/include/avx512vldqintrin.h +110 -127
  78. package/lib/clang/{19 → 23}/include/avx512vlfp16intrin.h +130 -111
  79. package/lib/clang/{19 → 23}/include/avx512vlintrin.h +1025 -1395
  80. package/lib/clang/{19 → 23}/include/avx512vlvbmi2intrin.h +102 -95
  81. package/lib/clang/{19 → 23}/include/avx512vlvnniintrin.h +50 -52
  82. package/lib/clang/{19 → 23}/include/avx512vlvp2intersectintrin.h +2 -2
  83. package/lib/clang/{19 → 23}/include/avx512vnniintrin.h +42 -45
  84. package/lib/clang/{19 → 23}/include/avx512vp2intersectintrin.h +2 -3
  85. package/lib/clang/{19 → 23}/include/avx512vpopcntdqintrin.h +10 -4
  86. package/lib/clang/{19 → 23}/include/avx512vpopcntdqvlintrin.h +20 -10
  87. package/lib/clang/{19 → 23}/include/avxifmaintrin.h +16 -0
  88. package/lib/clang/{19 → 23}/include/avxintrin.h +186 -248
  89. package/lib/clang/{19 → 23}/include/avxvnniint16intrin.h +130 -152
  90. package/lib/clang/{19 → 23}/include/avxvnniint8intrin.h +68 -85
  91. package/lib/clang/{19 → 23}/include/avxvnniintrin.h +39 -26
  92. package/lib/clang/{19 → 23}/include/bmi2intrin.h +15 -17
  93. package/lib/clang/{19 → 23}/include/bmiintrin.h +31 -41
  94. package/lib/clang/{19 → 23}/include/cmpccxaddintrin.h +1 -1
  95. package/lib/clang/{19 → 23}/include/cpuid.h +137 -37
  96. package/lib/clang/{19 → 23}/include/crc32intrin.h +10 -8
  97. package/lib/clang/23/include/cuda_wrappers/__utility/declval.h +28 -0
  98. package/lib/clang/23/include/cuda_wrappers/bits/c++config.h +61 -0
  99. package/lib/clang/23/include/cuda_wrappers/cmath +44 -0
  100. package/lib/clang/{19 → 23}/include/cuda_wrappers/new +2 -0
  101. package/lib/clang/{19 → 23}/include/emmintrin.h +306 -272
  102. package/lib/clang/23/include/endian.h +91 -0
  103. package/lib/clang/{19 → 23}/include/f16cintrin.h +23 -9
  104. package/lib/clang/23/include/float.h +48 -0
  105. package/lib/clang/23/include/fma4intrin.h +220 -0
  106. package/lib/clang/{19 → 23}/include/fmaintrin.h +96 -66
  107. package/lib/clang/{19 → 23}/include/gfniintrin.h +39 -12
  108. package/lib/clang/23/include/gpuintrin.h +348 -0
  109. package/lib/clang/{19 → 23}/include/hexagon_types.h +31 -24
  110. package/lib/clang/23/include/hlsl/hlsl_alias_intrinsics.h +222 -0
  111. package/lib/clang/23/include/hlsl/hlsl_alias_intrinsics_gen.inc +3869 -0
  112. package/lib/clang/23/include/hlsl/hlsl_basic_types.h +370 -0
  113. package/lib/clang/23/include/hlsl/hlsl_compat_overloads.h +559 -0
  114. package/lib/clang/23/include/hlsl/hlsl_detail.h +56 -0
  115. package/lib/clang/23/include/hlsl/hlsl_inline_intrinsics_gen.inc +546 -0
  116. package/lib/clang/23/include/hlsl/hlsl_intrinsic_helpers.h +170 -0
  117. package/lib/clang/23/include/hlsl/hlsl_intrinsics.h +331 -0
  118. package/lib/clang/23/include/hlsl/hlsl_spirv.h +28 -0
  119. package/lib/clang/23/include/hlsl.h +38 -0
  120. package/lib/clang/{19 → 23}/include/hvx_hexagon_protos.h +1041 -803
  121. package/lib/clang/{19 → 23}/include/immintrin.h +35 -185
  122. package/lib/clang/{19 → 23}/include/intrin.h +62 -21
  123. package/lib/clang/{19 → 23}/include/intrin0.h +10 -1
  124. package/lib/clang/{19 → 23}/include/keylockerintrin.h +0 -9
  125. package/lib/clang/{19 → 23}/include/larchintrin.h +24 -8
  126. package/lib/clang/{19 → 23}/include/lasxintrin.h +140 -25
  127. package/lib/clang/{19 → 23}/include/limits.h +7 -4
  128. package/lib/clang/{19 → 23}/include/llvm_libc_wrappers/assert.h +3 -5
  129. package/lib/clang/23/include/llvm_libc_wrappers/ctype.h +29 -0
  130. package/lib/clang/{19 → 23}/include/llvm_libc_wrappers/inttypes.h +3 -5
  131. package/lib/clang/23/include/llvm_libc_wrappers/stdio.h +52 -0
  132. package/lib/clang/{19 → 23}/include/llvm_libc_wrappers/stdlib.h +3 -16
  133. package/lib/clang/23/include/llvm_libc_wrappers/string.h +29 -0
  134. package/lib/clang/{19 → 23}/include/llvm_libc_wrappers/time.h +4 -10
  135. package/lib/clang/23/include/llvm_offload_wrappers/__llvm_offload.h +31 -0
  136. package/lib/clang/23/include/llvm_offload_wrappers/__llvm_offload_device.h +10 -0
  137. package/lib/clang/23/include/llvm_offload_wrappers/__llvm_offload_host.h +15 -0
  138. package/lib/clang/{19 → 23}/include/lsxintrin.h +27 -25
  139. package/lib/clang/{19 → 23}/include/lzcntintrin.h +13 -8
  140. package/lib/clang/{19 → 23}/include/mmintrin.h +241 -256
  141. package/lib/clang/{19 → 23}/include/module.modulemap +54 -9
  142. package/lib/clang/23/include/movrs_avx10_2_512intrin.h +98 -0
  143. package/lib/clang/23/include/movrs_avx10_2intrin.h +174 -0
  144. package/lib/clang/23/include/movrsintrin.h +59 -0
  145. package/lib/clang/23/include/nvptxintrin.h +208 -0
  146. package/lib/clang/{19 → 23}/include/opencl-c-base.h +28 -92
  147. package/lib/clang/{19 → 23}/include/opencl-c.h +506 -140
  148. package/lib/clang/{19 → 23}/include/openmp_wrappers/__clang_openmp_device_functions.h +18 -5
  149. package/lib/clang/{19 → 23}/include/openmp_wrappers/complex +7 -1
  150. package/lib/clang/{19 → 23}/include/openmp_wrappers/complex.h +6 -0
  151. package/lib/clang/{19 → 23}/include/openmp_wrappers/complex_cmath.h +7 -2
  152. package/lib/clang/{19 → 23}/include/openmp_wrappers/math.h +10 -0
  153. package/lib/clang/{19 → 23}/include/pmmintrin.h +24 -23
  154. package/lib/clang/{19 → 23}/include/popcntintrin.h +7 -7
  155. package/lib/clang/{19 → 23}/include/prfchwintrin.h +10 -13
  156. package/lib/clang/{19 → 23}/include/ptrauth.h +169 -14
  157. package/lib/clang/{19 → 23}/include/riscv_bitmanip.h +7 -0
  158. package/lib/clang/23/include/riscv_corev_alu.h +130 -0
  159. package/lib/clang/{19 → 23}/include/riscv_crypto.h +8 -0
  160. package/lib/clang/23/include/riscv_mips.h +36 -0
  161. package/lib/clang/23/include/riscv_nds.h +92 -0
  162. package/lib/clang/{19 → 23}/include/riscv_ntlh.h +2 -0
  163. package/lib/clang/23/include/riscv_packed_simd.h +644 -0
  164. package/lib/clang/{19 → 23}/include/riscv_vector.h +43 -5
  165. package/lib/clang/{19 → 23}/include/shaintrin.h +3 -2
  166. package/lib/clang/{19 → 23}/include/sifive_vector.h +76 -2
  167. package/lib/clang/23/include/sm4evexintrin.h +32 -0
  168. package/lib/clang/{19 → 23}/include/smmintrin.h +80 -56
  169. package/lib/clang/23/include/spirvintrin.h +167 -0
  170. package/lib/clang/{19 → 23}/include/stdalign.h +0 -5
  171. package/lib/clang/23/include/stdcountof.h +15 -0
  172. package/lib/clang/23/include/stddefer.h +19 -0
  173. package/lib/clang/{19 → 23}/include/stdint.h +23 -143
  174. package/lib/clang/{19 → 23}/include/tbmintrin.h +25 -37
  175. package/lib/clang/{19 → 23}/include/tmmintrin.h +125 -130
  176. package/lib/clang/{19 → 23}/include/vaesintrin.h +1 -2
  177. package/lib/clang/{19 → 23}/include/vecintrin.h +1783 -60
  178. package/lib/clang/{19 → 23}/include/wasm_simd128.h +184 -21
  179. package/lib/clang/{19 → 23}/include/x86gprintrin.h +0 -14
  180. package/lib/clang/{19 → 23}/include/x86intrin.h +0 -18
  181. package/lib/clang/{19 → 23}/include/xmmintrin.h +190 -221
  182. package/lib/clang/{19 → 23}/include/xopintrin.h +20 -10
  183. package/lib/clang/23/include/zos_wrappers/grp.h +19 -0
  184. package/lib/clang/23/include/zos_wrappers/locale.h +19 -0
  185. package/lib/clang/23/include/zos_wrappers/math.h +31 -0
  186. package/lib/clang/23/include/zos_wrappers/poll.h +19 -0
  187. package/lib/clang/23/include/zos_wrappers/stdlib.h +20 -0
  188. package/lib/clang/23/include/zos_wrappers/string.h +19 -0
  189. package/lib/clang/23/include/zos_wrappers/time.h +19 -0
  190. package/lib/clang/23/include/zos_wrappers/variant.h +19 -0
  191. package/package.json +6 -6
  192. package/lib/clang/19/include/__clang_cuda_complex_builtins.h +0 -285
  193. package/lib/clang/19/include/avx512cdintrin.h +0 -125
  194. package/lib/clang/19/include/avx512ifmaintrin.h +0 -70
  195. package/lib/clang/19/include/avx512ifmavlintrin.h +0 -111
  196. package/lib/clang/19/include/avx512vlcdintrin.h +0 -230
  197. package/lib/clang/19/include/cuda_wrappers/cmath +0 -90
  198. package/lib/clang/19/include/fma4intrin.h +0 -218
  199. package/lib/clang/19/include/hlsl/hlsl_basic_types.h +0 -74
  200. package/lib/clang/19/include/hlsl/hlsl_intrinsics.h +0 -1697
  201. package/lib/clang/19/include/hlsl.h +0 -15
  202. package/lib/clang/19/include/llvm_libc_wrappers/ctype.h +0 -102
  203. package/lib/clang/19/include/llvm_libc_wrappers/stdio.h +0 -80
  204. package/lib/clang/19/include/llvm_libc_wrappers/string.h +0 -96
  205. /package/lib/clang/{19 → 23}/include/__clang_cuda_builtin_vars.h +0 -0
  206. /package/lib/clang/{19 → 23}/include/__clang_cuda_cmath.h +0 -0
  207. /package/lib/clang/{19 → 23}/include/__clang_cuda_libdevice_declares.h +0 -0
  208. /package/lib/clang/{19 → 23}/include/__clang_hip_stdlib.h +0 -0
  209. /package/lib/clang/{19 → 23}/include/__stdarg___gnuc_va_list.h +0 -0
  210. /package/lib/clang/{19 → 23}/include/__stdarg___va_copy.h +0 -0
  211. /package/lib/clang/{19 → 23}/include/__stdarg_header_macro.h +0 -0
  212. /package/lib/clang/{19 → 23}/include/__stdarg_va_copy.h +0 -0
  213. /package/lib/clang/{19 → 23}/include/__stdarg_va_list.h +0 -0
  214. /package/lib/clang/{19 → 23}/include/__stddef_header_macro.h +0 -0
  215. /package/lib/clang/{19 → 23}/include/__stddef_max_align_t.h +0 -0
  216. /package/lib/clang/{19 → 23}/include/__stddef_null.h +0 -0
  217. /package/lib/clang/{19 → 23}/include/__stddef_nullptr_t.h +0 -0
  218. /package/lib/clang/{19 → 23}/include/__stddef_offsetof.h +0 -0
  219. /package/lib/clang/{19 → 23}/include/__stddef_ptrdiff_t.h +0 -0
  220. /package/lib/clang/{19 → 23}/include/__stddef_rsize_t.h +0 -0
  221. /package/lib/clang/{19 → 23}/include/__stddef_size_t.h +0 -0
  222. /package/lib/clang/{19 → 23}/include/__stddef_unreachable.h +0 -0
  223. /package/lib/clang/{19 → 23}/include/__stddef_wchar_t.h +0 -0
  224. /package/lib/clang/{19 → 23}/include/__stddef_wint_t.h +0 -0
  225. /package/lib/clang/{19 → 23}/include/__wmmintrin_aes.h +0 -0
  226. /package/lib/clang/{19 → 23}/include/__wmmintrin_pclmul.h +0 -0
  227. /package/lib/clang/{19 → 23}/include/ammintrin.h +0 -0
  228. /package/lib/clang/{19 → 23}/include/arm_bf16.h +0 -0
  229. /package/lib/clang/{19 → 23}/include/arm_cde.h +0 -0
  230. /package/lib/clang/{19 → 23}/include/arm_cmse.h +0 -0
  231. /package/lib/clang/{19 → 23}/include/arm_mve.h +0 -0
  232. /package/lib/clang/{19 → 23}/include/arm_neon_sve_bridge.h +0 -0
  233. /package/lib/clang/{19 → 23}/include/armintr.h +0 -0
  234. /package/lib/clang/{19 → 23}/include/avxneconvertintrin.h +0 -0
  235. /package/lib/clang/{19 → 23}/include/builtins.h +0 -0
  236. /package/lib/clang/{19 → 23}/include/cet.h +0 -0
  237. /package/lib/clang/{19 → 23}/include/cetintrin.h +0 -0
  238. /package/lib/clang/{19 → 23}/include/cldemoteintrin.h +0 -0
  239. /package/lib/clang/{19 → 23}/include/clflushoptintrin.h +0 -0
  240. /package/lib/clang/{19 → 23}/include/clwbintrin.h +0 -0
  241. /package/lib/clang/{19 → 23}/include/clzerointrin.h +0 -0
  242. /package/lib/clang/{19 → 23}/include/cuda_wrappers/algorithm +0 -0
  243. /package/lib/clang/{19 → 23}/include/cuda_wrappers/bits/basic_string.h +0 -0
  244. /package/lib/clang/{19 → 23}/include/cuda_wrappers/bits/basic_string.tcc +0 -0
  245. /package/lib/clang/{19 → 23}/include/cuda_wrappers/bits/shared_ptr_base.h +0 -0
  246. /package/lib/clang/{19 → 23}/include/cuda_wrappers/complex +0 -0
  247. /package/lib/clang/{19 → 23}/include/enqcmdintrin.h +0 -0
  248. /package/lib/clang/{19 → 23}/include/fxsrintrin.h +0 -0
  249. /package/lib/clang/{19 → 23}/include/hexagon_circ_brev_intrinsics.h +0 -0
  250. /package/lib/clang/{19 → 23}/include/hexagon_protos.h +0 -0
  251. /package/lib/clang/{19 → 23}/include/hresetintrin.h +0 -0
  252. /package/lib/clang/{19 → 23}/include/htmintrin.h +0 -0
  253. /package/lib/clang/{19 → 23}/include/htmxlintrin.h +0 -0
  254. /package/lib/clang/{19 → 23}/include/ia32intrin.h +0 -0
  255. /package/lib/clang/{19 → 23}/include/inttypes.h +0 -0
  256. /package/lib/clang/{19 → 23}/include/invpcidintrin.h +0 -0
  257. /package/lib/clang/{19 → 23}/include/iso646.h +0 -0
  258. /package/lib/clang/{19 → 23}/include/lwpintrin.h +0 -0
  259. /package/lib/clang/{19 → 23}/include/mm3dnow.h +0 -0
  260. /package/lib/clang/{19 → 23}/include/mm_malloc.h +0 -0
  261. /package/lib/clang/{19 → 23}/include/movdirintrin.h +0 -0
  262. /package/lib/clang/{19 → 23}/include/msa.h +0 -0
  263. /package/lib/clang/{19 → 23}/include/mwaitxintrin.h +0 -0
  264. /package/lib/clang/{19 → 23}/include/nmmintrin.h +0 -0
  265. /package/lib/clang/{19 → 23}/include/openmp_wrappers/cmath +0 -0
  266. /package/lib/clang/{19 → 23}/include/openmp_wrappers/new +0 -0
  267. /package/lib/clang/{19 → 23}/include/pconfigintrin.h +0 -0
  268. /package/lib/clang/{19 → 23}/include/pkuintrin.h +0 -0
  269. /package/lib/clang/{19 → 23}/include/ppc_wrappers/bmi2intrin.h +0 -0
  270. /package/lib/clang/{19 → 23}/include/ppc_wrappers/bmiintrin.h +0 -0
  271. /package/lib/clang/{19 → 23}/include/ppc_wrappers/emmintrin.h +0 -0
  272. /package/lib/clang/{19 → 23}/include/ppc_wrappers/immintrin.h +0 -0
  273. /package/lib/clang/{19 → 23}/include/ppc_wrappers/mm_malloc.h +0 -0
  274. /package/lib/clang/{19 → 23}/include/ppc_wrappers/mmintrin.h +0 -0
  275. /package/lib/clang/{19 → 23}/include/ppc_wrappers/nmmintrin.h +0 -0
  276. /package/lib/clang/{19 → 23}/include/ppc_wrappers/pmmintrin.h +0 -0
  277. /package/lib/clang/{19 → 23}/include/ppc_wrappers/smmintrin.h +0 -0
  278. /package/lib/clang/{19 → 23}/include/ppc_wrappers/tmmintrin.h +0 -0
  279. /package/lib/clang/{19 → 23}/include/ppc_wrappers/x86gprintrin.h +0 -0
  280. /package/lib/clang/{19 → 23}/include/ppc_wrappers/x86intrin.h +0 -0
  281. /package/lib/clang/{19 → 23}/include/ppc_wrappers/xmmintrin.h +0 -0
  282. /package/lib/clang/{19 → 23}/include/prfchiintrin.h +0 -0
  283. /package/lib/clang/{19 → 23}/include/ptwriteintrin.h +0 -0
  284. /package/lib/clang/{19 → 23}/include/raointintrin.h +0 -0
  285. /package/lib/clang/{19 → 23}/include/rdpruintrin.h +0 -0
  286. /package/lib/clang/{19 → 23}/include/rdseedintrin.h +0 -0
  287. /package/lib/clang/{19 → 23}/include/rtmintrin.h +0 -0
  288. /package/lib/clang/{19 → 23}/include/s390intrin.h +0 -0
  289. /package/lib/clang/{19 → 23}/include/serializeintrin.h +0 -0
  290. /package/lib/clang/{19 → 23}/include/sgxintrin.h +0 -0
  291. /package/lib/clang/{19 → 23}/include/sha512intrin.h +0 -0
  292. /package/lib/clang/{19 → 23}/include/sm3intrin.h +0 -0
  293. /package/lib/clang/{19 → 23}/include/sm4intrin.h +0 -0
  294. /package/lib/clang/{19 → 23}/include/stdarg.h +0 -0
  295. /package/lib/clang/{19 → 23}/include/stdatomic.h +0 -0
  296. /package/lib/clang/{19 → 23}/include/stdbool.h +0 -0
  297. /package/lib/clang/{19 → 23}/include/stdckdint.h +0 -0
  298. /package/lib/clang/{19 → 23}/include/stddef.h +0 -0
  299. /package/lib/clang/{19 → 23}/include/stdnoreturn.h +0 -0
  300. /package/lib/clang/{19 → 23}/include/tgmath.h +0 -0
  301. /package/lib/clang/{19 → 23}/include/tsxldtrkintrin.h +0 -0
  302. /package/lib/clang/{19 → 23}/include/uintrintrin.h +0 -0
  303. /package/lib/clang/{19 → 23}/include/unwind.h +0 -0
  304. /package/lib/clang/{19 → 23}/include/usermsrintrin.h +0 -0
  305. /package/lib/clang/{19 → 23}/include/vadefs.h +0 -0
  306. /package/lib/clang/{19 → 23}/include/varargs.h +0 -0
  307. /package/lib/clang/{19 → 23}/include/velintrin.h +0 -0
  308. /package/lib/clang/{19 → 23}/include/velintrin_approx.h +0 -0
  309. /package/lib/clang/{19 → 23}/include/velintrin_gen.h +0 -0
  310. /package/lib/clang/{19 → 23}/include/vpclmulqdqintrin.h +0 -0
  311. /package/lib/clang/{19 → 23}/include/waitpkgintrin.h +0 -0
  312. /package/lib/clang/{19 → 23}/include/wbnoinvdintrin.h +0 -0
  313. /package/lib/clang/{19 → 23}/include/wmmintrin.h +0 -0
  314. /package/lib/clang/{19 → 23}/include/xsavecintrin.h +0 -0
  315. /package/lib/clang/{19 → 23}/include/xsaveintrin.h +0 -0
  316. /package/lib/clang/{19 → 23}/include/xsaveoptintrin.h +0 -0
  317. /package/lib/clang/{19 → 23}/include/xsavesintrin.h +0 -0
  318. /package/lib/clang/{19 → 23}/include/xtestintrin.h +0 -0
  319. /package/lib/clang/{19 → 23}/include/yvals_core.h +0 -0
  320. /package/lib/clang/{19 → 23}/include/zos_wrappers/builtins.h +0 -0
@@ -0,0 +1,170 @@
1
+ //===----- hlsl_intrinsic_helpers.h - HLSL helpers 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_INTRINSIC_HELPERS_H_
10
+ #define _HLSL_HLSL_INTRINSIC_HELPERS_H_
11
+
12
+ namespace hlsl {
13
+ namespace __detail {
14
+
15
+ template <typename T>
16
+ constexpr enable_if_t<is_same<float, T>::value || is_same<half, T>::value, T>
17
+ length_impl(T X) {
18
+ return abs(X);
19
+ }
20
+
21
+ template <typename T, int N>
22
+ constexpr enable_if_t<is_same<float, T>::value || is_same<half, T>::value, T>
23
+ length_impl(vector<T, N> X) {
24
+ #if (__has_builtin(__builtin_spirv_length))
25
+ return __builtin_spirv_length(X);
26
+ #else
27
+ return sqrt(dot(X, X));
28
+ #endif
29
+ }
30
+
31
+ constexpr float dot2add_impl(half2 a, half2 b, float c) {
32
+ #if (__has_builtin(__builtin_dx_dot2add))
33
+ return __builtin_dx_dot2add(a, b, c);
34
+ #else
35
+ return dot(a, b) + c;
36
+ #endif
37
+ }
38
+
39
+ template <typename T, int N>
40
+ constexpr enable_if_t<!is_same<double, T>::value, T>
41
+ mul_vec_impl(vector<T, N> x, vector<T, N> y) {
42
+ return dot(x, y);
43
+ }
44
+
45
+ // Double vectors do not have a dot intrinsic, so expand manually.
46
+ template <typename T, int N>
47
+ enable_if_t<is_same<double, T>::value, T> mul_vec_impl(vector<T, N> x,
48
+ vector<T, N> y) {
49
+ T sum = x[0] * y[0];
50
+ [unroll] for (int i = 1; i < N; ++i) sum = mad(x[i], y[i], sum);
51
+ return sum;
52
+ }
53
+
54
+ template <typename T>
55
+ constexpr enable_if_t<is_same<float, T>::value || is_same<half, T>::value, T>
56
+ reflect_impl(T I, T N) {
57
+ return I - 2 * N * I * N;
58
+ }
59
+
60
+ template <typename T, int L>
61
+ constexpr vector<T, L> reflect_impl(vector<T, L> I, vector<T, L> N) {
62
+ #if (__has_builtin(__builtin_spirv_reflect))
63
+ return __builtin_spirv_reflect(I, N);
64
+ #else
65
+ return I - 2 * N * dot(I, N);
66
+ #endif
67
+ }
68
+
69
+ template <typename T, typename U> constexpr T refract_impl(T I, T N, U Eta) {
70
+ #if (__has_builtin(__builtin_spirv_refract))
71
+ return __builtin_spirv_refract(I, N, Eta);
72
+ #endif
73
+ T Mul = dot(N, I);
74
+ T K = 1 - Eta * Eta * (1 - Mul * Mul);
75
+ T Result = (Eta * I - (Eta * Mul + sqrt(K)) * N);
76
+ return select<T>(K < 0, static_cast<T>(0), Result);
77
+ }
78
+
79
+ template <typename T> constexpr T fmod_impl(T X, T Y) {
80
+ #if !defined(__DIRECTX__)
81
+ return __builtin_elementwise_fmod(X, Y);
82
+ #else
83
+ T div = X / Y;
84
+ bool ge = div >= 0;
85
+ T frc = frac(abs(div));
86
+ return select<T>(ge, frc, -frc) * Y;
87
+ #endif
88
+ }
89
+
90
+ template <typename T, int N>
91
+ constexpr vector<T, N> fmod_vec_impl(vector<T, N> X, vector<T, N> Y) {
92
+ #if !defined(__DIRECTX__)
93
+ return __builtin_elementwise_fmod(X, Y);
94
+ #else
95
+ vector<T, N> div = X / Y;
96
+ vector<bool, N> ge = div >= 0;
97
+ vector<T, N> frc = frac(abs(div));
98
+ return select<T>(ge, frc, -frc) * Y;
99
+ #endif
100
+ }
101
+
102
+ template <typename T> constexpr T smoothstep_impl(T Min, T Max, T X) {
103
+ #if (__has_builtin(__builtin_spirv_smoothstep))
104
+ return __builtin_spirv_smoothstep(Min, Max, X);
105
+ #else
106
+ T S = saturate((X - Min) / (Max - Min));
107
+ return (3 - 2 * S) * S * S;
108
+ #endif
109
+ }
110
+
111
+ template <typename T> constexpr vector<T, 4> lit_impl(T NDotL, T NDotH, T M) {
112
+ bool DiffuseCond = NDotL < 0;
113
+ T Diffuse = select<T>(DiffuseCond, 0, NDotL);
114
+ vector<T, 4> Result = {1, Diffuse, 0, 1};
115
+ // clang-format off
116
+ bool SpecularCond = or(DiffuseCond, (NDotH < 0));
117
+ // clang-format on
118
+ T SpecularExp = exp(log(NDotH) * M);
119
+ Result[2] = select<T>(SpecularCond, 0, SpecularExp);
120
+ return Result;
121
+ }
122
+
123
+ template <typename T> constexpr T faceforward_impl(T N, T I, T Ng) {
124
+ return select<T>(dot(I, Ng) < 0, N, -N);
125
+ }
126
+
127
+ template <typename K, typename T, int BitWidth>
128
+ constexpr K firstbithigh_impl(T X) {
129
+ K FBH = __builtin_hlsl_elementwise_firstbithigh(X);
130
+ #if defined(__DIRECTX__)
131
+ // The firstbithigh DXIL ops count bits from the wrong side, so we need to
132
+ // invert it for DirectX.
133
+ K Inversion = (BitWidth - 1) - FBH;
134
+ FBH = select(FBH == -1, FBH, Inversion);
135
+ #endif
136
+ return FBH;
137
+ }
138
+
139
+ template <typename T> constexpr T ddx_impl(T input) {
140
+ #if (__has_builtin(__builtin_spirv_ddx))
141
+ return __builtin_spirv_ddx(input);
142
+ #else
143
+ return __builtin_hlsl_elementwise_ddx_coarse(input);
144
+ #endif
145
+ }
146
+
147
+ template <typename T> constexpr T ddy_impl(T input) {
148
+ #if (__has_builtin(__builtin_spirv_ddy))
149
+ return __builtin_spirv_ddy(input);
150
+ #else
151
+ return __builtin_hlsl_elementwise_ddy_coarse(input);
152
+ #endif
153
+ }
154
+
155
+ template <typename T> constexpr T fwidth_impl(T input) {
156
+ #if (__has_builtin(__builtin_spirv_fwidth))
157
+ return __builtin_spirv_fwidth(input);
158
+ #else
159
+ T derivCoarseX = ddx_coarse(input);
160
+ derivCoarseX = abs(derivCoarseX);
161
+ T derivCoarseY = ddy_coarse(input);
162
+ derivCoarseY = abs(derivCoarseY);
163
+ return derivCoarseX + derivCoarseY;
164
+ #endif
165
+ }
166
+
167
+ } // namespace __detail
168
+ } // namespace hlsl
169
+
170
+ #endif // _HLSL_HLSL_INTRINSIC_HELPERS_H_
@@ -0,0 +1,331 @@
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
+ // Generated by clang-tblgen from HLSLIntrinsics.td (detail/inline intrinsics).
17
+ #include "hlsl_inline_intrinsics_gen.inc"
18
+
19
+ //===----------------------------------------------------------------------===//
20
+ // asfloat builtins
21
+ //===----------------------------------------------------------------------===//
22
+
23
+ /// \fn float asfloat(T Val)
24
+ /// \brief Interprets the bit pattern of x as float point number.
25
+ /// \param Val The input value.
26
+
27
+ template <typename T, int R, int C>
28
+ constexpr matrix<float, R, C> asfloat(matrix<T, R, C> V) {
29
+ return __detail::bit_cast<float, T, R, C>(V);
30
+ }
31
+
32
+ template <typename T, int N>
33
+ constexpr vector<float, N> asfloat(vector<T, N> V) {
34
+ return __detail::bit_cast<float, T, N>(V);
35
+ }
36
+
37
+ template <typename T> constexpr float asfloat(T F) {
38
+ return __detail::bit_cast<float, T>(F);
39
+ }
40
+
41
+ //===----------------------------------------------------------------------===//
42
+ // asint builtins
43
+ //===----------------------------------------------------------------------===//
44
+
45
+ /// \fn int asint(T Val)
46
+ /// \brief Interprets the bit pattern of x as an integer.
47
+ /// \param Val The input value.
48
+
49
+ template <typename T, int R, int C>
50
+ constexpr matrix<int, R, C> asint(matrix<T, R, C> V) {
51
+ return __detail::bit_cast<int, T, R, C>(V);
52
+ }
53
+
54
+ template <typename T, int N> constexpr vector<int, N> asint(vector<T, N> V) {
55
+ return __detail::bit_cast<int, T, N>(V);
56
+ }
57
+
58
+ template <typename T> constexpr int asint(T F) {
59
+ return __detail::bit_cast<int, T>(F);
60
+ }
61
+
62
+ //===----------------------------------------------------------------------===//
63
+ // asint16 builtins
64
+ //===----------------------------------------------------------------------===//
65
+
66
+ /// \fn int16_t asint16(T X)
67
+ /// \brief Interprets the bit pattern of \a X as an 16-bit integer.
68
+ /// \param X The input value.
69
+
70
+ #ifdef __HLSL_ENABLE_16_BIT
71
+
72
+ template <typename T, int N>
73
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
74
+ constexpr __detail::enable_if_t<__detail::is_same<int16_t, T>::value ||
75
+ __detail::is_same<uint16_t, T>::value ||
76
+ __detail::is_same<half, T>::value,
77
+ vector<int16_t, N>> asint16(vector<T, N> V) {
78
+ return __detail::bit_cast<int16_t, T, N>(V);
79
+ }
80
+
81
+ template <typename T>
82
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
83
+ constexpr __detail::enable_if_t<__detail::is_same<int16_t, T>::value ||
84
+ __detail::is_same<uint16_t, T>::value ||
85
+ __detail::is_same<half, T>::value,
86
+ int16_t> asint16(T F) {
87
+ return __detail::bit_cast<int16_t, T>(F);
88
+ }
89
+ #endif
90
+
91
+ //===----------------------------------------------------------------------===//
92
+ // asuint builtins
93
+ //===----------------------------------------------------------------------===//
94
+
95
+ /// \fn uint asuint(T Val)
96
+ /// \brief Interprets the bit pattern of x as an unsigned integer.
97
+ /// \param Val The input value.
98
+
99
+ template <typename T, int R, int C>
100
+ constexpr matrix<uint, R, C> asuint(matrix<T, R, C> V) {
101
+ return __detail::bit_cast<uint, T, R, C>(V);
102
+ }
103
+
104
+ template <typename T, int N> constexpr vector<uint, N> asuint(vector<T, N> V) {
105
+ return __detail::bit_cast<uint, T, N>(V);
106
+ }
107
+
108
+ template <typename T> constexpr uint asuint(T F) {
109
+ return __detail::bit_cast<uint, T>(F);
110
+ }
111
+
112
+ //===----------------------------------------------------------------------===//
113
+ // asuint splitdouble builtins
114
+ //===----------------------------------------------------------------------===//
115
+
116
+ /// \fn void asuint(double D, out uint lowbits, out int highbits)
117
+ /// \brief Split and interprets the lowbits and highbits of double D into uints.
118
+ /// \param D The input double.
119
+ /// \param lowbits The output lowbits of D.
120
+ /// \param highbits The output highbits of D.
121
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_splitdouble)
122
+ void asuint(double, out uint, out uint);
123
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_splitdouble)
124
+ void asuint(double2, out uint2, out uint2);
125
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_splitdouble)
126
+ void asuint(double3, out uint3, out uint3);
127
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_splitdouble)
128
+ void asuint(double4, out uint4, out uint4);
129
+ template <int R, int C>
130
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_splitdouble)
131
+ void asuint(matrix<double, R, C>, out matrix<uint, R, C>,
132
+ out matrix<uint, R, C>);
133
+ //===----------------------------------------------------------------------===//
134
+ // asuint16 builtins
135
+ //===----------------------------------------------------------------------===//
136
+
137
+ /// \fn uint16_t asuint16(T X)
138
+ /// \brief Interprets the bit pattern of \a X as an 16-bit unsigned integer.
139
+ /// \param X The input value.
140
+
141
+ #ifdef __HLSL_ENABLE_16_BIT
142
+
143
+ template <typename T, int N>
144
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
145
+ constexpr __detail::enable_if_t<__detail::is_same<int16_t, T>::value ||
146
+ __detail::is_same<uint16_t, T>::value ||
147
+ __detail::is_same<half, T>::value,
148
+ vector<uint16_t, N>> asuint16(vector<T, N> V) {
149
+ return __detail::bit_cast<uint16_t, T, N>(V);
150
+ }
151
+
152
+ template <typename T>
153
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
154
+ constexpr __detail::enable_if_t<__detail::is_same<int16_t, T>::value ||
155
+ __detail::is_same<uint16_t, T>::value ||
156
+ __detail::is_same<half, T>::value,
157
+ uint16_t> asuint16(T F) {
158
+ return __detail::bit_cast<uint16_t, T>(F);
159
+ }
160
+ #endif
161
+
162
+ //===----------------------------------------------------------------------===//
163
+ // firstbithigh builtins
164
+ //===----------------------------------------------------------------------===//
165
+
166
+ /// \fn T firstbithigh(T Val)
167
+ /// \brief Returns the location of the first set bit starting from the lowest
168
+ /// order bit and working upward, per component.
169
+ /// \param Val the input value.
170
+
171
+ #ifdef __HLSL_ENABLE_16_BIT
172
+
173
+ template <typename T>
174
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
175
+ const inline __detail::enable_if_t<__detail::is_same<int16_t, T>::value ||
176
+ __detail::is_same<uint16_t, T>::value,
177
+ uint> firstbithigh(T X) {
178
+ return __detail::firstbithigh_impl<uint, T, 16>(X);
179
+ }
180
+
181
+ template <typename T, int N>
182
+ _HLSL_AVAILABILITY(shadermodel, 6.2)
183
+ const
184
+ inline __detail::enable_if_t<__detail::is_same<int16_t, T>::value ||
185
+ __detail::is_same<uint16_t, T>::value,
186
+ vector<uint, N>> firstbithigh(vector<T, N> X) {
187
+ return __detail::firstbithigh_impl<vector<uint, N>, vector<T, N>, 16>(X);
188
+ }
189
+
190
+ #endif
191
+
192
+ template <typename T>
193
+ const inline __detail::enable_if_t<
194
+ __detail::is_same<int, T>::value || __detail::is_same<uint, T>::value, uint>
195
+ firstbithigh(T X) {
196
+ return __detail::firstbithigh_impl<uint, T, 32>(X);
197
+ }
198
+
199
+ template <typename T, int N>
200
+ const inline __detail::enable_if_t<__detail::is_same<int, T>::value ||
201
+ __detail::is_same<uint, T>::value,
202
+ vector<uint, N>>
203
+ firstbithigh(vector<T, N> X) {
204
+ return __detail::firstbithigh_impl<vector<uint, N>, vector<T, N>, 32>(X);
205
+ }
206
+
207
+ template <typename T>
208
+ const inline __detail::enable_if_t<__detail::is_same<int64_t, T>::value ||
209
+ __detail::is_same<uint64_t, T>::value,
210
+ uint>
211
+ firstbithigh(T X) {
212
+ return __detail::firstbithigh_impl<uint, T, 64>(X);
213
+ }
214
+
215
+ template <typename T, int N>
216
+ const inline __detail::enable_if_t<__detail::is_same<int64_t, T>::value ||
217
+ __detail::is_same<uint64_t, T>::value,
218
+ vector<uint, N>>
219
+ firstbithigh(vector<T, N> X) {
220
+ return __detail::firstbithigh_impl<vector<uint, N>, vector<T, N>, 64>(X);
221
+ }
222
+
223
+ //===----------------------------------------------------------------------===//
224
+ // mul builtins
225
+ //===----------------------------------------------------------------------===//
226
+
227
+ /// \fn R mul(X x, Y y)
228
+ /// \brief Multiplies x and y using matrix math.
229
+ /// \param x [in] The first input value. If x is a vector, it is treated as a
230
+ /// row vector.
231
+ /// \param y [in] The second input value. If y is a vector, it is treated as a
232
+ /// column vector.
233
+ ///
234
+ /// The inner dimension x-columns and y-rows must be equal. The result has the
235
+ /// dimension x-rows x y-columns. When both x and y are vectors, the result is
236
+ /// a dot product (scalar). Scalar operands are multiplied element-wise.
237
+ ///
238
+ /// This function supports 9 overloaded forms:
239
+ /// 1. scalar * scalar -> scalar
240
+ /// 2. scalar * vector -> vector
241
+ /// 3. scalar * matrix -> matrix
242
+ /// 4. vector * scalar -> vector
243
+ /// 5. vector * vector -> scalar (dot product)
244
+ /// 6. vector * matrix -> vector
245
+ /// 7. matrix * scalar -> matrix
246
+ /// 8. matrix * vector -> vector
247
+ /// 9. matrix * matrix -> matrix
248
+
249
+ // Cases 1, 2, 3, 4, 5, and 7 of mul are defined below as
250
+ // header-only implementations because they are elementwise operations and dot
251
+ // products easily expressed in HLSL.
252
+
253
+ // Cases 6, 8, and 9 are defined in hlsl_alias_intrinsics.h to alias the mul
254
+ // builtin so that they can be lowered to the llvm.matrix.multiply intrinsic
255
+ // which is not exposed directly to HLSL.
256
+
257
+ // Case 1: scalar * scalar -> scalar
258
+ template <typename T>
259
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
260
+ constexpr __detail::enable_if_t<__detail::is_arithmetic<T>::Value &&
261
+ __detail::is_same<half, T>::value,
262
+ T> mul(T x, T y) {
263
+ return x * y;
264
+ }
265
+
266
+ template <typename T>
267
+ constexpr __detail::enable_if_t<
268
+ __detail::is_arithmetic<T>::Value && !__detail::is_same<half, T>::value, T>
269
+ mul(T x, T y) {
270
+ return x * y;
271
+ }
272
+
273
+ // Case 2: scalar * vector -> vector
274
+ template <int N>
275
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
276
+ constexpr vector<half, N> mul(half x, vector<half, N> y) {
277
+ return x * y;
278
+ }
279
+
280
+ template <typename T, int N> constexpr vector<T, N> mul(T x, vector<T, N> y) {
281
+ return x * y;
282
+ }
283
+
284
+ // Case 3: scalar * matrix -> matrix
285
+ template <int R, int C>
286
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
287
+ constexpr matrix<half, R, C> mul(half x, matrix<half, R, C> y) {
288
+ return x * y;
289
+ }
290
+
291
+ template <typename T, int R, int C>
292
+ constexpr matrix<T, R, C> mul(T x, matrix<T, R, C> y) {
293
+ return x * y;
294
+ }
295
+
296
+ // Case 4: vector * scalar -> vector
297
+ template <int N>
298
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
299
+ constexpr vector<half, N> mul(vector<half, N> x, half y) {
300
+ return x * y;
301
+ }
302
+
303
+ template <typename T, int N> constexpr vector<T, N> mul(vector<T, N> x, T y) {
304
+ return x * y;
305
+ }
306
+
307
+ // Case 5: vector * vector -> scalar (dot product)
308
+ template <int N>
309
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
310
+ half mul(vector<half, N> x, vector<half, N> y) {
311
+ return __detail::mul_vec_impl(x, y);
312
+ }
313
+
314
+ template <typename T, int N> T mul(vector<T, N> x, vector<T, N> y) {
315
+ return __detail::mul_vec_impl(x, y);
316
+ }
317
+
318
+ // Case 7: matrix * scalar -> matrix
319
+ template <int R, int C>
320
+ _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
321
+ constexpr matrix<half, R, C> mul(matrix<half, R, C> x, half y) {
322
+ return x * y;
323
+ }
324
+
325
+ template <typename T, int R, int C>
326
+ constexpr matrix<T, R, C> mul(matrix<T, R, C> x, T y) {
327
+ return x * y;
328
+ }
329
+
330
+ } // namespace hlsl
331
+ #endif //_HLSL_HLSL_INTRINSICS_H_
@@ -0,0 +1,28 @@
1
+ //===----- hlsl_spirv.h - HLSL definitions for SPIR-V target --------------===//
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_SPIRV_H_
10
+ #define _HLSL_HLSL_SPIRV_H_
11
+
12
+ namespace hlsl {
13
+ namespace vk {
14
+ template <typename T, T v> struct integral_constant {
15
+ static constexpr T value = v;
16
+ };
17
+
18
+ template <typename T> struct Literal {};
19
+
20
+ template <uint Opcode, uint Size, uint Alignment, typename... Operands>
21
+ using SpirvType = __hlsl_spirv_type<Opcode, Size, Alignment, Operands...>;
22
+
23
+ template <uint Opcode, typename... Operands>
24
+ using SpirvOpaqueType = __hlsl_spirv_type<Opcode, 0, 0, Operands...>;
25
+ } // namespace vk
26
+ } // namespace hlsl
27
+
28
+ #endif // _HLSL_HLSL_SPIRV_H_
@@ -0,0 +1,38 @@
1
+ //===----- hlsl.h - HLSL definitions --------------------------------------===//
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_H_
10
+ #define _HLSL_H_
11
+
12
+ #if defined(__clang__)
13
+ // Don't warn about any of the DXC compatibility warnings in the clang-only
14
+ // headers since these will never be used with DXC anyways.
15
+ #pragma clang diagnostic push
16
+ #pragma clang diagnostic ignored "-Whlsl-dxc-compatability"
17
+ #endif
18
+
19
+ // Basic types, type traits and type-independent templates.
20
+ #include "hlsl/hlsl_basic_types.h"
21
+ #include "hlsl/hlsl_detail.h"
22
+
23
+ // HLSL standard library function declarations/definitions.
24
+ #include "hlsl/hlsl_alias_intrinsics.h"
25
+ #if __HLSL_VERSION <= __HLSL_202x
26
+ #include "hlsl/hlsl_compat_overloads.h"
27
+ #endif
28
+ #include "hlsl/hlsl_intrinsics.h"
29
+
30
+ #ifdef __spirv__
31
+ #include "hlsl/hlsl_spirv.h"
32
+ #endif // __spirv__
33
+
34
+ #if defined(__clang__)
35
+ #pragma clang diagnostic pop
36
+ #endif
37
+
38
+ #endif //_HLSL_H_