llvm-runtime-resources-darwin 22.1.8 → 23.1.0

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 (136) hide show
  1. package/include/__clang_cuda_complex_builtins.h +10 -3
  2. package/include/__clang_cuda_intrinsics.h +207 -226
  3. package/include/__clang_cuda_math_forward_declares.h +5 -0
  4. package/include/__clang_cuda_runtime_wrapper.h +9 -5
  5. package/include/__clang_gpu_builtin_vars.h +71 -0
  6. package/include/__clang_gpu_device_functions.h +411 -0
  7. package/include/__clang_gpu_intrinsics.h +242 -0
  8. package/include/__clang_hip_libdevice_declares.h +0 -102
  9. package/include/__clang_hip_math.h +3 -3
  10. package/include/__clang_hip_runtime_wrapper.h +6 -1
  11. package/include/__clang_spirv_libdevice_declares.h +170 -0
  12. package/include/__clang_spirv_math.h +719 -0
  13. package/include/altivec.h +79 -9
  14. package/include/amdgpuintrin.h +2 -29
  15. package/include/amdhsa_abi.h +83 -0
  16. package/include/amo.h +89 -0
  17. package/include/andes_vector.h +5 -0
  18. package/include/arm64_neon.h +21 -0
  19. package/include/arm64intr.h +10 -0
  20. package/include/arm_acle.h +1 -0
  21. package/include/arm_neon.h +3922 -3754
  22. package/include/arm_sme.h +12 -0
  23. package/include/arm_sve.h +420 -0
  24. package/include/avx2intrin.h +4 -5
  25. package/include/avx512bmmintrin.h +174 -0
  26. package/include/avx512bmmvlintrin.h +245 -0
  27. package/include/avx512bwintrin.h +19 -29
  28. package/include/avx512fintrin.h +62 -89
  29. package/include/avx512fp16intrin.h +12 -18
  30. package/include/avx512vbmi2intrin.h +12 -16
  31. package/include/avx512vlbwintrin.h +24 -36
  32. package/include/avx512vlintrin.h +80 -96
  33. package/include/avx512vlvbmi2intrin.h +24 -32
  34. package/include/avx512vlvnniintrin.h +29 -34
  35. package/include/avx512vnniintrin.h +32 -35
  36. package/include/avx512vp2intersectintrin.h +1 -1
  37. package/include/avxvnniintrin.h +23 -18
  38. package/include/crc32intrin.h +10 -8
  39. package/include/emmintrin.h +8 -8
  40. package/include/endian.h +91 -0
  41. package/include/fuzzer/FuzzedDataProvider.h +3 -3
  42. package/include/gpuintrin.h +123 -105
  43. package/include/hlsl_alias_intrinsics_gen.inc +3869 -0
  44. package/include/hlsl_inline_intrinsics_gen.inc +546 -0
  45. package/include/hvx_hexagon_protos.h +102 -80
  46. package/include/immintrin.h +4 -2
  47. package/include/intrin.h +20 -10
  48. package/include/larchintrin.h +2 -0
  49. package/include/llvm_libc_wrappers/ctype.h +3 -2
  50. package/include/llvm_libc_wrappers/string.h +3 -2
  51. package/include/module.modulemap +16 -1
  52. package/include/nvptxintrin.h +15 -26
  53. package/include/opencl-c-base.h +7 -0
  54. package/include/opencl-c.h +163 -102
  55. package/include/openmp_wrappers/__clang_openmp_device_functions.h +14 -0
  56. package/include/openmp_wrappers/complex +7 -1
  57. package/include/openmp_wrappers/complex.h +6 -0
  58. package/include/openmp_wrappers/math.h +10 -0
  59. package/include/profile/InstrProfData.inc +65 -3
  60. package/include/ptrauth.h +90 -12
  61. package/include/riscv_bitmanip.h +7 -0
  62. package/include/riscv_corev_alu.h +2 -0
  63. package/include/riscv_crypto.h +8 -0
  64. package/include/riscv_mips.h +2 -0
  65. package/include/riscv_nds.h +3 -0
  66. package/include/riscv_ntlh.h +2 -0
  67. package/include/riscv_packed_simd.h +644 -0
  68. package/include/riscv_vector.h +43 -0
  69. package/include/sanitizer/asan_interface.h +51 -1
  70. package/include/sanitizer/common_interface_defs.h +12 -49
  71. package/include/sanitizer/safestack_interface.h +50 -0
  72. package/include/sanitizer/tysan_interface.h +36 -0
  73. package/include/sanitizer/ubsan_interface.h +30 -0
  74. package/include/sifive_vector.h +18 -0
  75. package/include/spirvintrin.h +2 -29
  76. package/include/stdint.h +5 -14
  77. package/include/vecintrin.h +1 -1
  78. package/include/wasm_simd128.h +17 -0
  79. package/include/xmmintrin.h +8 -7
  80. package/include/zos_wrappers/grp.h +19 -0
  81. package/include/zos_wrappers/locale.h +19 -0
  82. package/include/zos_wrappers/math.h +31 -0
  83. package/include/zos_wrappers/poll.h +19 -0
  84. package/include/zos_wrappers/stdlib.h +20 -0
  85. package/include/zos_wrappers/string.h +19 -0
  86. package/include/zos_wrappers/time.h +19 -0
  87. package/include/zos_wrappers/variant.h +19 -0
  88. package/lib/darwin/libclang_rt.asan_abi_ios.a +0 -0
  89. package/lib/darwin/libclang_rt.asan_abi_iossim.a +0 -0
  90. package/lib/darwin/libclang_rt.asan_abi_osx.a +0 -0
  91. package/lib/darwin/libclang_rt.asan_ios_dynamic.dylib +0 -0
  92. package/lib/darwin/libclang_rt.asan_iossim_dynamic.dylib +0 -0
  93. package/lib/darwin/libclang_rt.asan_osx_dynamic.dylib +0 -0
  94. package/lib/darwin/libclang_rt.cc_kext.a +0 -0
  95. package/lib/darwin/libclang_rt.cc_kext_ios.a +0 -0
  96. package/lib/darwin/libclang_rt.fuzzer_ios.a +0 -0
  97. package/lib/darwin/libclang_rt.fuzzer_iossim.a +0 -0
  98. package/lib/darwin/libclang_rt.fuzzer_no_main_ios.a +0 -0
  99. package/lib/darwin/libclang_rt.fuzzer_no_main_iossim.a +0 -0
  100. package/lib/darwin/libclang_rt.fuzzer_no_main_osx.a +0 -0
  101. package/lib/darwin/libclang_rt.fuzzer_osx.a +0 -0
  102. package/lib/darwin/libclang_rt.ios.a +0 -0
  103. package/lib/darwin/libclang_rt.iossim.a +0 -0
  104. package/lib/darwin/libclang_rt.lsan_ios_dynamic.dylib +0 -0
  105. package/lib/darwin/libclang_rt.lsan_iossim_dynamic.dylib +0 -0
  106. package/lib/darwin/libclang_rt.lsan_osx_dynamic.dylib +0 -0
  107. package/lib/darwin/libclang_rt.osx.a +0 -0
  108. package/lib/darwin/libclang_rt.profile_ios.a +0 -0
  109. package/lib/darwin/libclang_rt.profile_iossim.a +0 -0
  110. package/lib/darwin/libclang_rt.profile_osx.a +0 -0
  111. package/lib/darwin/libclang_rt.rtsan_ios_dynamic.dylib +0 -0
  112. package/lib/darwin/libclang_rt.rtsan_iossim_dynamic.dylib +0 -0
  113. package/lib/darwin/libclang_rt.rtsan_osx_dynamic.dylib +0 -0
  114. package/lib/darwin/libclang_rt.stats_client_ios.a +0 -0
  115. package/lib/darwin/libclang_rt.stats_client_iossim.a +0 -0
  116. package/lib/darwin/libclang_rt.stats_client_osx.a +0 -0
  117. package/lib/darwin/libclang_rt.stats_ios_dynamic.dylib +0 -0
  118. package/lib/darwin/libclang_rt.stats_iossim_dynamic.dylib +0 -0
  119. package/lib/darwin/libclang_rt.stats_osx_dynamic.dylib +0 -0
  120. package/lib/darwin/libclang_rt.tsan_ios_dynamic.dylib +0 -0
  121. package/lib/darwin/libclang_rt.tsan_iossim_dynamic.dylib +0 -0
  122. package/lib/darwin/libclang_rt.tsan_osx_dynamic.dylib +0 -0
  123. package/lib/darwin/libclang_rt.tysan_ios_dynamic.dylib +0 -0
  124. package/lib/darwin/libclang_rt.tysan_iossim_dynamic.dylib +0 -0
  125. package/lib/darwin/libclang_rt.tysan_osx_dynamic.dylib +0 -0
  126. package/lib/darwin/libclang_rt.ubsan_ios_dynamic.dylib +0 -0
  127. package/lib/darwin/libclang_rt.ubsan_iossim_dynamic.dylib +0 -0
  128. package/lib/darwin/libclang_rt.ubsan_minimal_ios.a +0 -0
  129. package/lib/darwin/libclang_rt.ubsan_minimal_ios_dynamic.dylib +0 -0
  130. package/lib/darwin/libclang_rt.ubsan_minimal_iossim.a +0 -0
  131. package/lib/darwin/libclang_rt.ubsan_minimal_iossim_dynamic.dylib +0 -0
  132. package/lib/darwin/libclang_rt.ubsan_minimal_osx.a +0 -0
  133. package/lib/darwin/libclang_rt.ubsan_minimal_osx_dynamic.dylib +0 -0
  134. package/lib/darwin/libclang_rt.ubsan_osx_dynamic.dylib +0 -0
  135. package/package.json +1 -1
  136. package/include/amxtf32intrin.h +0 -108
@@ -4577,8 +4577,9 @@
4577
4577
  #if __HVX_ARCH__ >= 73 && defined __HVX_IEEE_FP__
4578
4578
  /* ==========================================================================
4579
4579
  Assembly Syntax: Vdd32.sf=vadd(Vu32.bf,Vv32.bf)
4580
- C Intrinsic Prototype: HVX_VectorPair Q6_Wsf_vadd_VbfVbf(HVX_Vector Vu,
4581
- HVX_Vector Vv) Instruction Type: CVI_VX_DV Execution Slots: SLOT23
4580
+ C Intrinsic Prototype: HVX_VectorPair Q6_Wsf_vadd_VbfVbf(HVX_Vector Vu, HVX_Vector Vv)
4581
+ Instruction Type: CVI_VX_DV
4582
+ Execution Slots: SLOT23
4582
4583
  ========================================================================== */
4583
4584
 
4584
4585
  #define Q6_Wsf_vadd_VbfVbf(Vu, Vv) \
@@ -4636,8 +4637,9 @@
4636
4637
  #if __HVX_ARCH__ >= 73 && defined __HVX_IEEE_FP__
4637
4638
  /* ==========================================================================
4638
4639
  Assembly Syntax: Vd32.bf=vcvt(Vu32.sf,Vv32.sf)
4639
- C Intrinsic Prototype: HVX_Vector Q6_Vbf_vcvt_VsfVsf(HVX_Vector Vu,
4640
- HVX_Vector Vv) Instruction Type: CVI_VX Execution Slots: SLOT23
4640
+ C Intrinsic Prototype: HVX_Vector Q6_Vbf_vcvt_VsfVsf(HVX_Vector Vu, HVX_Vector Vv)
4641
+ Instruction Type: CVI_VX
4642
+ Execution Slots: SLOT23
4641
4643
  ========================================================================== */
4642
4644
 
4643
4645
  #define Q6_Vbf_vcvt_VsfVsf(Vu, Vv) \
@@ -4647,8 +4649,9 @@
4647
4649
  #if __HVX_ARCH__ >= 73
4648
4650
  /* ==========================================================================
4649
4651
  Assembly Syntax: Qd4=vcmp.gt(Vu32.bf,Vv32.bf)
4650
- C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gt_VbfVbf(HVX_Vector Vu,
4651
- HVX_Vector Vv) Instruction Type: CVI_VA Execution Slots: SLOT0123
4652
+ C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gt_VbfVbf(HVX_Vector Vu, HVX_Vector Vv)
4653
+ Instruction Type: CVI_VA
4654
+ Execution Slots: SLOT0123
4652
4655
  ========================================================================== */
4653
4656
 
4654
4657
  #define Q6_Q_vcmp_gt_VbfVbf(Vu, Vv) \
@@ -4659,9 +4662,9 @@
4659
4662
  #if __HVX_ARCH__ >= 73
4660
4663
  /* ==========================================================================
4661
4664
  Assembly Syntax: Qx4&=vcmp.gt(Vu32.bf,Vv32.bf)
4662
- C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtand_QVbfVbf(HVX_VectorPred
4663
- Qx, HVX_Vector Vu, HVX_Vector Vv) Instruction Type: CVI_VA Execution
4664
- Slots: SLOT0123
4665
+ C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtand_QVbfVbf(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
4666
+ Instruction Type: CVI_VA
4667
+ Execution Slots: SLOT0123
4665
4668
  ========================================================================== */
4666
4669
 
4667
4670
  #define Q6_Q_vcmp_gtand_QVbfVbf(Qx, Vu, Vv) \
@@ -4675,9 +4678,9 @@
4675
4678
  #if __HVX_ARCH__ >= 73
4676
4679
  /* ==========================================================================
4677
4680
  Assembly Syntax: Qx4|=vcmp.gt(Vu32.bf,Vv32.bf)
4678
- C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtor_QVbfVbf(HVX_VectorPred
4679
- Qx, HVX_Vector Vu, HVX_Vector Vv) Instruction Type: CVI_VA Execution
4680
- Slots: SLOT0123
4681
+ C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtor_QVbfVbf(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
4682
+ Instruction Type: CVI_VA
4683
+ Execution Slots: SLOT0123
4681
4684
  ========================================================================== */
4682
4685
 
4683
4686
  #define Q6_Q_vcmp_gtor_QVbfVbf(Qx, Vu, Vv) \
@@ -4691,9 +4694,9 @@
4691
4694
  #if __HVX_ARCH__ >= 73
4692
4695
  /* ==========================================================================
4693
4696
  Assembly Syntax: Qx4^=vcmp.gt(Vu32.bf,Vv32.bf)
4694
- C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtxacc_QVbfVbf(HVX_VectorPred
4695
- Qx, HVX_Vector Vu, HVX_Vector Vv) Instruction Type: CVI_VA Execution
4696
- Slots: SLOT0123
4697
+ C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtxacc_QVbfVbf(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
4698
+ Instruction Type: CVI_VA
4699
+ Execution Slots: SLOT0123
4697
4700
  ========================================================================== */
4698
4701
 
4699
4702
  #define Q6_Q_vcmp_gtxacc_QVbfVbf(Qx, Vu, Vv) \
@@ -4707,8 +4710,9 @@
4707
4710
  #if __HVX_ARCH__ >= 73 && defined __HVX_IEEE_FP__
4708
4711
  /* ==========================================================================
4709
4712
  Assembly Syntax: Vd32.bf=vmax(Vu32.bf,Vv32.bf)
4710
- C Intrinsic Prototype: HVX_Vector Q6_Vbf_vmax_VbfVbf(HVX_Vector Vu,
4711
- HVX_Vector Vv) Instruction Type: CVI_VX_LATE Execution Slots: SLOT23
4713
+ C Intrinsic Prototype: HVX_Vector Q6_Vbf_vmax_VbfVbf(HVX_Vector Vu, HVX_Vector Vv)
4714
+ Instruction Type: CVI_VX_LATE
4715
+ Execution Slots: SLOT23
4712
4716
  ========================================================================== */
4713
4717
 
4714
4718
  #define Q6_Vbf_vmax_VbfVbf(Vu, Vv) \
@@ -4718,8 +4722,9 @@
4718
4722
  #if __HVX_ARCH__ >= 73 && defined __HVX_IEEE_FP__
4719
4723
  /* ==========================================================================
4720
4724
  Assembly Syntax: Vd32.bf=vmin(Vu32.bf,Vv32.bf)
4721
- C Intrinsic Prototype: HVX_Vector Q6_Vbf_vmin_VbfVbf(HVX_Vector Vu,
4722
- HVX_Vector Vv) Instruction Type: CVI_VX_LATE Execution Slots: SLOT23
4725
+ C Intrinsic Prototype: HVX_Vector Q6_Vbf_vmin_VbfVbf(HVX_Vector Vu, HVX_Vector Vv)
4726
+ Instruction Type: CVI_VX_LATE
4727
+ Execution Slots: SLOT23
4723
4728
  ========================================================================== */
4724
4729
 
4725
4730
  #define Q6_Vbf_vmin_VbfVbf(Vu, Vv) \
@@ -4729,8 +4734,9 @@
4729
4734
  #if __HVX_ARCH__ >= 73 && defined __HVX_IEEE_FP__
4730
4735
  /* ==========================================================================
4731
4736
  Assembly Syntax: Vdd32.sf=vmpy(Vu32.bf,Vv32.bf)
4732
- C Intrinsic Prototype: HVX_VectorPair Q6_Wsf_vmpy_VbfVbf(HVX_Vector Vu,
4733
- HVX_Vector Vv) Instruction Type: CVI_VX_DV Execution Slots: SLOT23
4737
+ C Intrinsic Prototype: HVX_VectorPair Q6_Wsf_vmpy_VbfVbf(HVX_Vector Vu, HVX_Vector Vv)
4738
+ Instruction Type: CVI_VX_DV
4739
+ Execution Slots: SLOT23
4734
4740
  ========================================================================== */
4735
4741
 
4736
4742
  #define Q6_Wsf_vmpy_VbfVbf(Vu, Vv) \
@@ -4740,9 +4746,9 @@
4740
4746
  #if __HVX_ARCH__ >= 73 && defined __HVX_IEEE_FP__
4741
4747
  /* ==========================================================================
4742
4748
  Assembly Syntax: Vxx32.sf+=vmpy(Vu32.bf,Vv32.bf)
4743
- C Intrinsic Prototype: HVX_VectorPair Q6_Wsf_vmpyacc_WsfVbfVbf(HVX_VectorPair
4744
- Vxx, HVX_Vector Vu, HVX_Vector Vv) Instruction Type: CVI_VX_DV Execution
4745
- Slots: SLOT23
4749
+ C Intrinsic Prototype: HVX_VectorPair Q6_Wsf_vmpyacc_WsfVbfVbf(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
4750
+ Instruction Type: CVI_VX_DV
4751
+ Execution Slots: SLOT23
4746
4752
  ========================================================================== */
4747
4753
 
4748
4754
  #define Q6_Wsf_vmpyacc_WsfVbfVbf(Vxx, Vu, Vv) \
@@ -4752,8 +4758,9 @@
4752
4758
  #if __HVX_ARCH__ >= 73 && defined __HVX_IEEE_FP__
4753
4759
  /* ==========================================================================
4754
4760
  Assembly Syntax: Vdd32.sf=vsub(Vu32.bf,Vv32.bf)
4755
- C Intrinsic Prototype: HVX_VectorPair Q6_Wsf_vsub_VbfVbf(HVX_Vector Vu,
4756
- HVX_Vector Vv) Instruction Type: CVI_VX_DV Execution Slots: SLOT23
4761
+ C Intrinsic Prototype: HVX_VectorPair Q6_Wsf_vsub_VbfVbf(HVX_Vector Vu, HVX_Vector Vv)
4762
+ Instruction Type: CVI_VX_DV
4763
+ Execution Slots: SLOT23
4757
4764
  ========================================================================== */
4758
4765
 
4759
4766
  #define Q6_Wsf_vsub_VbfVbf(Vu, Vv) \
@@ -4775,9 +4782,9 @@
4775
4782
  #if __HVX_ARCH__ >= 79
4776
4783
  /* ==========================================================================
4777
4784
  Assembly Syntax: Vx32|=vgetqfext(Vu32.x,Rt32)
4778
- C Intrinsic Prototype: HVX_Vector Q6_V_vgetqfextor_VVR(HVX_Vector Vx,
4779
- HVX_Vector Vu, Word32 Rt) Instruction Type: CVI_VX Execution Slots:
4780
- SLOT23
4785
+ C Intrinsic Prototype: HVX_Vector Q6_V_vgetqfextor_VVR(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
4786
+ Instruction Type: CVI_VX
4787
+ Execution Slots: SLOT23
4781
4788
  ========================================================================== */
4782
4789
 
4783
4790
  #define Q6_V_vgetqfextor_VVR(Vx, Vu, Rt) \
@@ -4810,8 +4817,9 @@
4810
4817
  #if __HVX_ARCH__ >= 79 && defined __HVX_IEEE_FP__
4811
4818
  /* ==========================================================================
4812
4819
  Assembly Syntax: Vdd32.hf=vadd(Vu32.f8,Vv32.f8)
4813
- C Intrinsic Prototype: HVX_VectorPair Q6_Whf_vadd_VV(HVX_Vector Vu,
4814
- HVX_Vector Vv) Instruction Type: CVI_VX_DV Execution Slots: SLOT23
4820
+ C Intrinsic Prototype: HVX_VectorPair Q6_Whf_vadd_VV(HVX_Vector Vu, HVX_Vector Vv)
4821
+ Instruction Type: CVI_VX_DV
4822
+ Execution Slots: SLOT23
4815
4823
  ========================================================================== */
4816
4824
 
4817
4825
  #define Q6_Whf_vadd_VV(Vu, Vv) \
@@ -4821,8 +4829,9 @@
4821
4829
  #if __HVX_ARCH__ >= 79 && defined __HVX_IEEE_FP__
4822
4830
  /* ==========================================================================
4823
4831
  Assembly Syntax: Vd32.b=vcvt2(Vu32.hf,Vv32.hf)
4824
- C Intrinsic Prototype: HVX_Vector Q6_Vb_vcvt2_VhfVhf(HVX_Vector Vu,
4825
- HVX_Vector Vv) Instruction Type: CVI_VX Execution Slots: SLOT23
4832
+ C Intrinsic Prototype: HVX_Vector Q6_Vb_vcvt2_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4833
+ Instruction Type: CVI_VX
4834
+ Execution Slots: SLOT23
4826
4835
  ========================================================================== */
4827
4836
 
4828
4837
  #define Q6_Vb_vcvt2_VhfVhf(Vu, Vv) \
@@ -4856,8 +4865,9 @@
4856
4865
  #if __HVX_ARCH__ >= 79 && defined __HVX_IEEE_FP__
4857
4866
  /* ==========================================================================
4858
4867
  Assembly Syntax: Vd32.ub=vcvt2(Vu32.hf,Vv32.hf)
4859
- C Intrinsic Prototype: HVX_Vector Q6_Vub_vcvt2_VhfVhf(HVX_Vector Vu,
4860
- HVX_Vector Vv) Instruction Type: CVI_VX Execution Slots: SLOT23
4868
+ C Intrinsic Prototype: HVX_Vector Q6_Vub_vcvt2_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4869
+ Instruction Type: CVI_VX
4870
+ Execution Slots: SLOT23
4861
4871
  ========================================================================== */
4862
4872
 
4863
4873
  #define Q6_Vub_vcvt2_VhfVhf(Vu, Vv) \
@@ -4867,8 +4877,9 @@
4867
4877
  #if __HVX_ARCH__ >= 79 && defined __HVX_IEEE_FP__
4868
4878
  /* ==========================================================================
4869
4879
  Assembly Syntax: Vd32.f8=vcvt(Vu32.hf,Vv32.hf)
4870
- C Intrinsic Prototype: HVX_Vector Q6_V_vcvt_VhfVhf(HVX_Vector Vu, HVX_Vector
4871
- Vv) Instruction Type: CVI_VX Execution Slots: SLOT23
4880
+ C Intrinsic Prototype: HVX_Vector Q6_V_vcvt_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4881
+ Instruction Type: CVI_VX
4882
+ Execution Slots: SLOT23
4872
4883
  ========================================================================== */
4873
4884
 
4874
4885
  #define Q6_V_vcvt_VhfVhf(Vu, Vv) \
@@ -4926,8 +4937,9 @@
4926
4937
  #if __HVX_ARCH__ >= 79
4927
4938
  /* ==========================================================================
4928
4939
  Assembly Syntax: Vd32=vmerge(Vu32.x,Vv32.w)
4929
- C Intrinsic Prototype: HVX_Vector Q6_V_vmerge_VVw(HVX_Vector Vu, HVX_Vector
4930
- Vv) Instruction Type: CVI_VS Execution Slots: SLOT0123
4940
+ C Intrinsic Prototype: HVX_Vector Q6_V_vmerge_VVw(HVX_Vector Vu, HVX_Vector Vv)
4941
+ Instruction Type: CVI_VS
4942
+ Execution Slots: SLOT0123
4931
4943
  ========================================================================== */
4932
4944
 
4933
4945
  #define Q6_V_vmerge_VVw(Vu, Vv) \
@@ -4937,8 +4949,9 @@
4937
4949
  #if __HVX_ARCH__ >= 79 && defined __HVX_IEEE_FP__
4938
4950
  /* ==========================================================================
4939
4951
  Assembly Syntax: Vdd32.hf=vmpy(Vu32.f8,Vv32.f8)
4940
- C Intrinsic Prototype: HVX_VectorPair Q6_Whf_vmpy_VV(HVX_Vector Vu,
4941
- HVX_Vector Vv) Instruction Type: CVI_VX_DV Execution Slots: SLOT23
4952
+ C Intrinsic Prototype: HVX_VectorPair Q6_Whf_vmpy_VV(HVX_Vector Vu, HVX_Vector Vv)
4953
+ Instruction Type: CVI_VX_DV
4954
+ Execution Slots: SLOT23
4942
4955
  ========================================================================== */
4943
4956
 
4944
4957
  #define Q6_Whf_vmpy_VV(Vu, Vv) \
@@ -4948,9 +4961,9 @@
4948
4961
  #if __HVX_ARCH__ >= 79 && defined __HVX_IEEE_FP__
4949
4962
  /* ==========================================================================
4950
4963
  Assembly Syntax: Vxx32.hf+=vmpy(Vu32.f8,Vv32.f8)
4951
- C Intrinsic Prototype: HVX_VectorPair Q6_Whf_vmpyacc_WhfVV(HVX_VectorPair
4952
- Vxx, HVX_Vector Vu, HVX_Vector Vv) Instruction Type: CVI_VX_DV Execution
4953
- Slots: SLOT23
4964
+ C Intrinsic Prototype: HVX_VectorPair Q6_Whf_vmpyacc_WhfVV(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
4965
+ Instruction Type: CVI_VX_DV
4966
+ Execution Slots: SLOT23
4954
4967
  ========================================================================== */
4955
4968
 
4956
4969
  #define Q6_Whf_vmpyacc_WhfVV(Vxx, Vu, Vv) \
@@ -4960,8 +4973,9 @@
4960
4973
  #if __HVX_ARCH__ >= 79
4961
4974
  /* ==========================================================================
4962
4975
  Assembly Syntax: Vd32.qf16=vmpy(Vu32.hf,Rt32.hf)
4963
- C Intrinsic Prototype: HVX_Vector Q6_Vqf16_vmpy_VhfRhf(HVX_Vector Vu, Word32
4964
- Rt) Instruction Type: CVI_VX_DV Execution Slots: SLOT23
4976
+ C Intrinsic Prototype: HVX_Vector Q6_Vqf16_vmpy_VhfRhf(HVX_Vector Vu, Word32 Rt)
4977
+ Instruction Type: CVI_VX_DV
4978
+ Execution Slots: SLOT23
4965
4979
  ========================================================================== */
4966
4980
 
4967
4981
  #define Q6_Vqf16_vmpy_VhfRhf(Vu, Rt) \
@@ -4971,8 +4985,9 @@
4971
4985
  #if __HVX_ARCH__ >= 79
4972
4986
  /* ==========================================================================
4973
4987
  Assembly Syntax: Vd32.qf16=vmpy(Vu32.qf16,Rt32.hf)
4974
- C Intrinsic Prototype: HVX_Vector Q6_Vqf16_vmpy_Vqf16Rhf(HVX_Vector Vu,
4975
- Word32 Rt) Instruction Type: CVI_VX_DV Execution Slots: SLOT23
4988
+ C Intrinsic Prototype: HVX_Vector Q6_Vqf16_vmpy_Vqf16Rhf(HVX_Vector Vu, Word32 Rt)
4989
+ Instruction Type: CVI_VX_DV
4990
+ Execution Slots: SLOT23
4976
4991
  ========================================================================== */
4977
4992
 
4978
4993
  #define Q6_Vqf16_vmpy_Vqf16Rhf(Vu, Rt) \
@@ -4982,8 +4997,9 @@
4982
4997
  #if __HVX_ARCH__ >= 79
4983
4998
  /* ==========================================================================
4984
4999
  Assembly Syntax: Vd32.qf32=vmpy(Vu32.sf,Rt32.sf)
4985
- C Intrinsic Prototype: HVX_Vector Q6_Vqf32_vmpy_VsfRsf(HVX_Vector Vu, Word32
4986
- Rt) Instruction Type: CVI_VX_DV Execution Slots: SLOT23
5000
+ C Intrinsic Prototype: HVX_Vector Q6_Vqf32_vmpy_VsfRsf(HVX_Vector Vu, Word32 Rt)
5001
+ Instruction Type: CVI_VX_DV
5002
+ Execution Slots: SLOT23
4987
5003
  ========================================================================== */
4988
5004
 
4989
5005
  #define Q6_Vqf32_vmpy_VsfRsf(Vu, Rt) \
@@ -4993,8 +5009,9 @@
4993
5009
  #if __HVX_ARCH__ >= 79 && defined __HVX_IEEE_FP__
4994
5010
  /* ==========================================================================
4995
5011
  Assembly Syntax: Vdd32.hf=vsub(Vu32.f8,Vv32.f8)
4996
- C Intrinsic Prototype: HVX_VectorPair Q6_Whf_vsub_VV(HVX_Vector Vu,
4997
- HVX_Vector Vv) Instruction Type: CVI_VX_DV Execution Slots: SLOT23
5012
+ C Intrinsic Prototype: HVX_VectorPair Q6_Whf_vsub_VV(HVX_Vector Vu, HVX_Vector Vv)
5013
+ Instruction Type: CVI_VX_DV
5014
+ Execution Slots: SLOT23
4998
5015
  ========================================================================== */
4999
5016
 
5000
5017
  #define Q6_Whf_vsub_VV(Vu, Vv) \
@@ -5052,8 +5069,9 @@
5052
5069
  #if __HVX_ARCH__ >= 81
5053
5070
  /* ==========================================================================
5054
5071
  Assembly Syntax: Vd32=valign4(Vu32,Vv32,Rt8)
5055
- C Intrinsic Prototype: HVX_Vector Q6_V_valign4_VVR(HVX_Vector Vu, HVX_Vector
5056
- Vv, Word32 Rt) Instruction Type: CVI_VA Execution Slots: SLOT0123
5072
+ C Intrinsic Prototype: HVX_Vector Q6_V_valign4_VVR(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
5073
+ Instruction Type: CVI_VA
5074
+ Execution Slots: SLOT0123
5057
5075
  ========================================================================== */
5058
5076
 
5059
5077
  #define Q6_V_valign4_VVR(Vu, Vv, Rt) \
@@ -5159,8 +5177,9 @@
5159
5177
  #if __HVX_ARCH__ >= 81
5160
5178
  /* ==========================================================================
5161
5179
  Assembly Syntax: Qd4=vcmp.eq(Vu32.hf,Vv32.hf)
5162
- C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eq_VhfVhf(HVX_Vector Vu,
5163
- HVX_Vector Vv) Instruction Type: CVI_VA Execution Slots: SLOT0123
5180
+ C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eq_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
5181
+ Instruction Type: CVI_VA
5182
+ Execution Slots: SLOT0123
5164
5183
  ========================================================================== */
5165
5184
 
5166
5185
  #define Q6_Q_vcmp_eq_VhfVhf(Vu, Vv) \
@@ -5171,9 +5190,9 @@
5171
5190
  #if __HVX_ARCH__ >= 81
5172
5191
  /* ==========================================================================
5173
5192
  Assembly Syntax: Qx4&=vcmp.eq(Vu32.hf,Vv32.hf)
5174
- C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eqand_QVhfVhf(HVX_VectorPred
5175
- Qx, HVX_Vector Vu, HVX_Vector Vv) Instruction Type: CVI_VA Execution
5176
- Slots: SLOT0123
5193
+ C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eqand_QVhfVhf(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
5194
+ Instruction Type: CVI_VA
5195
+ Execution Slots: SLOT0123
5177
5196
  ========================================================================== */
5178
5197
 
5179
5198
  #define Q6_Q_vcmp_eqand_QVhfVhf(Qx, Vu, Vv) \
@@ -5187,9 +5206,9 @@
5187
5206
  #if __HVX_ARCH__ >= 81
5188
5207
  /* ==========================================================================
5189
5208
  Assembly Syntax: Qx4|=vcmp.eq(Vu32.hf,Vv32.hf)
5190
- C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eqor_QVhfVhf(HVX_VectorPred
5191
- Qx, HVX_Vector Vu, HVX_Vector Vv) Instruction Type: CVI_VA Execution
5192
- Slots: SLOT0123
5209
+ C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eqor_QVhfVhf(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
5210
+ Instruction Type: CVI_VA
5211
+ Execution Slots: SLOT0123
5193
5212
  ========================================================================== */
5194
5213
 
5195
5214
  #define Q6_Q_vcmp_eqor_QVhfVhf(Qx, Vu, Vv) \
@@ -5203,9 +5222,9 @@
5203
5222
  #if __HVX_ARCH__ >= 81
5204
5223
  /* ==========================================================================
5205
5224
  Assembly Syntax: Qx4^=vcmp.eq(Vu32.hf,Vv32.hf)
5206
- C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eqxacc_QVhfVhf(HVX_VectorPred
5207
- Qx, HVX_Vector Vu, HVX_Vector Vv) Instruction Type: CVI_VA Execution
5208
- Slots: SLOT0123
5225
+ C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eqxacc_QVhfVhf(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
5226
+ Instruction Type: CVI_VA
5227
+ Execution Slots: SLOT0123
5209
5228
  ========================================================================== */
5210
5229
 
5211
5230
  #define Q6_Q_vcmp_eqxacc_QVhfVhf(Qx, Vu, Vv) \
@@ -5219,8 +5238,9 @@
5219
5238
  #if __HVX_ARCH__ >= 81
5220
5239
  /* ==========================================================================
5221
5240
  Assembly Syntax: Qd4=vcmp.eq(Vu32.sf,Vv32.sf)
5222
- C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eq_VsfVsf(HVX_Vector Vu,
5223
- HVX_Vector Vv) Instruction Type: CVI_VA Execution Slots: SLOT0123
5241
+ C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eq_VsfVsf(HVX_Vector Vu, HVX_Vector Vv)
5242
+ Instruction Type: CVI_VA
5243
+ Execution Slots: SLOT0123
5224
5244
  ========================================================================== */
5225
5245
 
5226
5246
  #define Q6_Q_vcmp_eq_VsfVsf(Vu, Vv) \
@@ -5231,9 +5251,9 @@
5231
5251
  #if __HVX_ARCH__ >= 81
5232
5252
  /* ==========================================================================
5233
5253
  Assembly Syntax: Qx4&=vcmp.eq(Vu32.sf,Vv32.sf)
5234
- C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eqand_QVsfVsf(HVX_VectorPred
5235
- Qx, HVX_Vector Vu, HVX_Vector Vv) Instruction Type: CVI_VA Execution
5236
- Slots: SLOT0123
5254
+ C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eqand_QVsfVsf(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
5255
+ Instruction Type: CVI_VA
5256
+ Execution Slots: SLOT0123
5237
5257
  ========================================================================== */
5238
5258
 
5239
5259
  #define Q6_Q_vcmp_eqand_QVsfVsf(Qx, Vu, Vv) \
@@ -5247,9 +5267,9 @@
5247
5267
  #if __HVX_ARCH__ >= 81
5248
5268
  /* ==========================================================================
5249
5269
  Assembly Syntax: Qx4|=vcmp.eq(Vu32.sf,Vv32.sf)
5250
- C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eqor_QVsfVsf(HVX_VectorPred
5251
- Qx, HVX_Vector Vu, HVX_Vector Vv) Instruction Type: CVI_VA Execution
5252
- Slots: SLOT0123
5270
+ C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eqor_QVsfVsf(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
5271
+ Instruction Type: CVI_VA
5272
+ Execution Slots: SLOT0123
5253
5273
  ========================================================================== */
5254
5274
 
5255
5275
  #define Q6_Q_vcmp_eqor_QVsfVsf(Qx, Vu, Vv) \
@@ -5263,9 +5283,9 @@
5263
5283
  #if __HVX_ARCH__ >= 81
5264
5284
  /* ==========================================================================
5265
5285
  Assembly Syntax: Qx4^=vcmp.eq(Vu32.sf,Vv32.sf)
5266
- C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eqxacc_QVsfVsf(HVX_VectorPred
5267
- Qx, HVX_Vector Vu, HVX_Vector Vv) Instruction Type: CVI_VA Execution
5268
- Slots: SLOT0123
5286
+ C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eqxacc_QVsfVsf(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
5287
+ Instruction Type: CVI_VA
5288
+ Execution Slots: SLOT0123
5269
5289
  ========================================================================== */
5270
5290
 
5271
5291
  #define Q6_Q_vcmp_eqxacc_QVsfVsf(Qx, Vu, Vv) \
@@ -5375,8 +5395,9 @@
5375
5395
  #if __HVX_ARCH__ >= 81
5376
5396
  /* ==========================================================================
5377
5397
  Assembly Syntax: Vd32.qf16=vsub(Vu32.hf,Vv32.qf16)
5378
- C Intrinsic Prototype: HVX_Vector Q6_Vqf16_vsub_VhfVqf16(HVX_Vector Vu,
5379
- HVX_Vector Vv) Instruction Type: CVI_VS Execution Slots: SLOT0123
5398
+ C Intrinsic Prototype: HVX_Vector Q6_Vqf16_vsub_VhfVqf16(HVX_Vector Vu, HVX_Vector Vv)
5399
+ Instruction Type: CVI_VS
5400
+ Execution Slots: SLOT0123
5380
5401
  ========================================================================== */
5381
5402
 
5382
5403
  #define Q6_Vqf16_vsub_VhfVqf16(Vu, Vv) \
@@ -5386,8 +5407,9 @@
5386
5407
  #if __HVX_ARCH__ >= 81
5387
5408
  /* ==========================================================================
5388
5409
  Assembly Syntax: Vd32.qf32=vsub(Vu32.sf,Vv32.qf32)
5389
- C Intrinsic Prototype: HVX_Vector Q6_Vqf32_vsub_VsfVqf32(HVX_Vector Vu,
5390
- HVX_Vector Vv) Instruction Type: CVI_VS Execution Slots: SLOT0123
5410
+ C Intrinsic Prototype: HVX_Vector Q6_Vqf32_vsub_VsfVqf32(HVX_Vector Vu, HVX_Vector Vv)
5411
+ Instruction Type: CVI_VS
5412
+ Execution Slots: SLOT0123
5391
5413
  ========================================================================== */
5392
5414
 
5393
5415
  #define Q6_Vqf32_vsub_VsfVqf32(Vu, Vv) \
@@ -58,6 +58,10 @@
58
58
 
59
59
  #include <avx512bitalgintrin.h>
60
60
 
61
+ #include <avx512bmmintrin.h>
62
+
63
+ #include <avx512bmmvlintrin.h>
64
+
61
65
  #include <avx512cdintrin.h>
62
66
 
63
67
  #include <avx512vpopcntdqintrin.h>
@@ -479,8 +483,6 @@ _storebe_i64(void * __P, long long __D) {
479
483
 
480
484
  #include <amxavx512intrin.h>
481
485
 
482
- #include <amxtf32intrin.h>
483
-
484
486
  #include <avx512vp2intersectintrin.h>
485
487
 
486
488
  #include <avx512vlvp2intersectintrin.h>
package/include/intrin.h CHANGED
@@ -44,8 +44,10 @@
44
44
 
45
45
  #if __x86_64__
46
46
  #define __LPTRINT_TYPE__ __int64
47
+ #define __IPTRINT_TYPE__ __int64
47
48
  #else
48
49
  #define __LPTRINT_TYPE__ long
50
+ #define __IPTRINT_TYPE__ int
49
51
  #endif
50
52
 
51
53
  #ifdef __cplusplus
@@ -95,12 +97,12 @@ void __outdword(unsigned short, unsigned long);
95
97
  void __outdwordstring(unsigned short, unsigned long *, unsigned long);
96
98
  void __outword(unsigned short, unsigned short);
97
99
  void __outwordstring(unsigned short, unsigned short *, unsigned long);
98
- unsigned long __readcr0(void);
99
- unsigned long __readcr2(void);
100
+ unsigned __LPTRINT_TYPE__ __readcr0(void);
101
+ unsigned __LPTRINT_TYPE__ __readcr2(void);
100
102
  unsigned __LPTRINT_TYPE__ __readcr3(void);
101
103
  unsigned __LPTRINT_TYPE__ __readcr4(void);
102
- unsigned __int64 __readcr8(void);
103
- unsigned int __readdr(unsigned int);
104
+ unsigned __LPTRINT_TYPE__ __readcr8(void);
105
+ unsigned __IPTRINT_TYPE__ __readdr(unsigned int);
104
106
  #ifdef __i386__
105
107
  unsigned char __readfsbyte(unsigned long);
106
108
  unsigned short __readfsword(unsigned long);
@@ -126,11 +128,12 @@ unsigned __int64 __ull_rshift(unsigned __int64, int);
126
128
  void __vmx_off(void);
127
129
  void __vmx_vmptrst(unsigned __int64 *);
128
130
  void __wbinvd(void);
129
- void __writecr0(unsigned int);
130
- void __writecr3(unsigned __INTPTR_TYPE__);
131
- void __writecr4(unsigned __INTPTR_TYPE__);
132
- void __writecr8(unsigned __int64);
133
- void __writedr(unsigned int, unsigned int);
131
+ void __writecr0(unsigned __IPTRINT_TYPE__);
132
+ void __writecr2(unsigned __IPTRINT_TYPE__);
133
+ void __writecr3(unsigned __IPTRINT_TYPE__);
134
+ void __writecr4(unsigned __IPTRINT_TYPE__);
135
+ void __writecr8(unsigned __IPTRINT_TYPE__);
136
+ void __writedr(unsigned int, unsigned __IPTRINT_TYPE__);
134
137
  void __writefsbyte(unsigned long, unsigned char);
135
138
  void __writefsdword(unsigned long, unsigned long);
136
139
  void __writefsqword(unsigned long, unsigned __int64);
@@ -374,6 +377,9 @@ static __inline__ void __DEFAULT_FN_ATTRS __nop(void) {
374
377
  \*----------------------------------------------------------------------------*/
375
378
  #if defined(__aarch64__) || defined(__arm64ec__)
376
379
  unsigned __int64 __getReg(int);
380
+ double __getRegFp(int _Reg);
381
+ void __setReg(int, unsigned __int64);
382
+ void __setRegFp(int, double);
377
383
  unsigned char _interlockedbittestandreset_acq(long volatile *, long);
378
384
  unsigned char _interlockedbittestandreset_nf(long volatile *, long);
379
385
  unsigned char _interlockedbittestandreset_rel(long volatile *, long);
@@ -438,10 +444,13 @@ unsigned int _CountLeadingSigns(long);
438
444
  unsigned int _CountLeadingSigns64(__int64);
439
445
  unsigned int _CountOneBits(unsigned long);
440
446
  unsigned int _CountOneBits64(unsigned __int64);
447
+ unsigned int _CountTrailingZeros(unsigned long);
448
+ unsigned int _CountTrailingZeros64(unsigned __int64);
441
449
 
442
450
  unsigned int __hlt(unsigned int, ...);
443
451
 
444
452
  void __cdecl __prefetch(const void *);
453
+ void __cdecl __prefetch2(const void *, unsigned char);
445
454
 
446
455
  #endif
447
456
 
@@ -474,7 +483,7 @@ static __inline__ unsigned __LPTRINT_TYPE__ __DEFAULT_FN_ATTRS __readcr3(void) {
474
483
  }
475
484
 
476
485
  static __inline__ void __DEFAULT_FN_ATTRS
477
- __writecr3(unsigned __INTPTR_TYPE__ __cr3_val) {
486
+ __writecr3(unsigned __IPTRINT_TYPE__ __cr3_val) {
478
487
  __asm__ ("mov {%0, %%cr3|cr3, %0}" : : "r"(__cr3_val) : "memory");
479
488
  }
480
489
  #endif
@@ -484,6 +493,7 @@ __writecr3(unsigned __INTPTR_TYPE__ __cr3_val) {
484
493
  #endif
485
494
 
486
495
  #undef __LPTRINT_TYPE__
496
+ #undef __IPTRINT_TYPE__
487
497
 
488
498
  #undef __DEFAULT_FN_ATTRS
489
499
 
@@ -120,10 +120,12 @@ extern __inline int
120
120
 
121
121
  #define __ibar(/*ui15*/ _1) __builtin_loongarch_ibar((_1))
122
122
 
123
+ #ifdef __loongarch_hard_float
123
124
  #define __movfcsr2gr(/*ui5*/ _1) __builtin_loongarch_movfcsr2gr((_1));
124
125
 
125
126
  #define __movgr2fcsr(/*ui5*/ _1, _2) \
126
127
  __builtin_loongarch_movgr2fcsr((_1), (unsigned int)_2);
128
+ #endif
127
129
 
128
130
  #define __syscall(/*ui15*/ _1) __builtin_loongarch_syscall((_1))
129
131
 
@@ -9,13 +9,14 @@
9
9
  #ifndef __CLANG_LLVM_LIBC_WRAPPERS_CTYPE_H__
10
10
  #define __CLANG_LLVM_LIBC_WRAPPERS_CTYPE_H__
11
11
 
12
- #if !defined(_OPENMP) && !defined(__HIP__) && !defined(__CUDA__)
12
+ #if !defined(_OPENMP) && !defined(__HIP__) && !defined(__CUDA__) && \
13
+ !defined(__SPIRV__)
13
14
  #error "This file is for GPU offloading compilation only"
14
15
  #endif
15
16
 
16
17
  #include_next <ctype.h>
17
18
 
18
- #if defined(__HIP__) || defined(__CUDA__)
19
+ #if defined(__HIP__) || defined(__CUDA__) || defined(__SPIRV__)
19
20
  #define __LIBC_ATTRS __attribute__((device))
20
21
  #else
21
22
  #define __LIBC_ATTRS
@@ -9,13 +9,14 @@
9
9
  #ifndef __CLANG_LLVM_LIBC_WRAPPERS_STRING_H__
10
10
  #define __CLANG_LLVM_LIBC_WRAPPERS_STRING_H__
11
11
 
12
- #if !defined(_OPENMP) && !defined(__HIP__) && !defined(__CUDA__)
12
+ #if !defined(_OPENMP) && !defined(__HIP__) && !defined(__CUDA__) && \
13
+ !defined(__SPIRV__)
13
14
  #error "This file is for GPU offloading compilation only"
14
15
  #endif
15
16
 
16
17
  #include_next <string.h>
17
18
 
18
- #if defined(__HIP__) || defined(__CUDA__)
19
+ #if defined(__HIP__) || defined(__CUDA__) || defined(__SPIRV__)
19
20
  #define __LIBC_ATTRS __attribute__((device))
20
21
  #else
21
22
  #define __LIBC_ATTRS
@@ -21,10 +21,19 @@ module _Builtin_intrinsics [system] [extern_c] {
21
21
  export *
22
22
  }
23
23
 
24
+ explicit module bf16 {
25
+ header "arm_bf16.h"
26
+ export *
27
+ }
28
+
29
+ explicit module fp16 {
30
+ header "arm_fp16.h"
31
+ export *
32
+ }
33
+
24
34
  explicit module neon {
25
35
  requires neon
26
36
  header "arm_neon.h"
27
- header "arm_fp16.h"
28
37
  export *
29
38
  }
30
39
 
@@ -41,6 +50,12 @@ module _Builtin_intrinsics [system] [extern_c] {
41
50
 
42
51
  header "arm64intr.h"
43
52
  export *
53
+
54
+ explicit module neon {
55
+ requires neon
56
+ header "arm64_neon.h"
57
+ export *
58
+ }
44
59
  }
45
60
 
46
61
  explicit module intel {