brintos

brintos / llvm-project-archived public Read only

0
0
Text · 7.0 KiB · c13dd3f Raw
361 lines · plain
1/*===---- module.modulemap - intrinsics module map -------------------------===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-exception6 *7 *===-----------------------------------------------------------------------===8 */9 10module _Builtin_intrinsics [system] [extern_c] {11  explicit module altivec {12    requires altivec13    header "altivec.h"14  }15 16  explicit module arm {17    requires arm18 19    explicit module acle {20      header "arm_acle.h"21      export *22    }23 24    explicit module neon {25      requires neon26      header "arm_neon.h"27      header "arm_fp16.h"28      export *29    }30 31    explicit module sve {32      requires sve33      header "arm_sve.h"34      export *35    }36  }37 38  explicit module arm64 {39    requires arm6440    requires windows41 42    header "arm64intr.h"43    export *44  }45 46  explicit module intel {47    requires x8648    export *49 50    header "immintrin.h"51    textual header "f16cintrin.h"52    textual header "avxintrin.h"53    textual header "avx2intrin.h"54    textual header "avx512fintrin.h"55    textual header "fmaintrin.h"56 57    header "x86intrin.h"58    textual header "bmiintrin.h"59    textual header "bmi2intrin.h"60    textual header "lzcntintrin.h"61    textual header "xopintrin.h"62    textual header "fma4intrin.h"63    textual header "mwaitxintrin.h"64    textual header "clzerointrin.h"65    textual header "wbnoinvdintrin.h"66    textual header "cldemoteintrin.h"67    textual header "waitpkgintrin.h"68    textual header "movdirintrin.h"69    textual header "pconfigintrin.h"70    textual header "sgxintrin.h"71    textual header "ptwriteintrin.h"72    textual header "invpcidintrin.h"73 74    textual header "__wmmintrin_aes.h"75    textual header "__wmmintrin_pclmul.h"76 77    textual header "mm3dnow.h"78 79    explicit module mm_malloc {80      requires !freestanding81      header "mm_malloc.h"82      export * // note: for <stdlib.h> dependency83    }84 85    explicit module cpuid {86      requires gnuinlineasm87      header "cpuid.h"88    }89 90    explicit module mmx {91      header "mmintrin.h"92    }93 94    explicit module sse {95      export mm_malloc96      export mmx97      export sse2 // note: for hackish <emmintrin.h> dependency98      header "xmmintrin.h"99    }100 101    explicit module sse2 {102      export sse103      header "emmintrin.h"104    }105 106    explicit module sse3 {107      export sse2108      header "pmmintrin.h"109    }110 111    explicit module ssse3 {112      export sse3113      header "tmmintrin.h"114    }115 116    explicit module sse4_1 {117      export ssse3118      header "smmintrin.h"119    }120 121    explicit module sse4_2 {122      export sse4_1123      header "nmmintrin.h"124    }125 126    explicit module sse4a {127      export sse3128      header "ammintrin.h"129    }130 131    explicit module popcnt {132      header "popcntintrin.h"133    }134 135    explicit module aes_pclmul {136      header "wmmintrin.h"137      export aes138      export pclmul139    }140  }141 142  explicit module systemz {143    requires systemz144    export *145 146    header "s390intrin.h"147 148    explicit module htm {149      requires htm150      header "htmintrin.h"151      header "htmxlintrin.h"152    }153 154    explicit module zvector {155      requires zvector, vx156      header "vecintrin.h"157    }158  }159}160 161// Start -fbuiltin-headers-in-system-modules affected modules162 163// The following modules all ignore their headers when164// -fbuiltin-headers-in-system-modules is passed, and many of165// those headers join system modules when present.166 167// e.g. if -fbuiltin-headers-in-system-modules is passed, then168// float.h will not be in the _Builtin_float module (that module169// will be empty). If there is a system module that declares170// `header "float.h"`, then the builtin float.h will join171// that module. The system float.h (if present) will be treated172// as a textual header in the sytem module.173module _Builtin_float [system] {174  textual header "float.h"175 176  explicit module float {177    header "__float_float.h"178    export *179  }180 181  explicit module header_macro {182    header "__float_header_macro.h"183    export *184  }185 186  explicit module infinity_nan {187    header "__float_infinity_nan.h"188    export *189  }190}191 192module _Builtin_inttypes [system] {193  header "inttypes.h"194  export *195}196 197module _Builtin_iso646 [system] {198  header "iso646.h"199  export *200}201 202module _Builtin_limits [system] {203  header "limits.h"204  export *205}206 207module _Builtin_stdalign [system] {208  header "stdalign.h"209  export *210}211 212module _Builtin_stdarg [system] {213  textual header "stdarg.h"214 215  explicit module __gnuc_va_list {216    header "__stdarg___gnuc_va_list.h"217    export *218  }219 220  explicit module __va_copy {221    header "__stdarg___va_copy.h"222    export *223  }224 225  explicit module header_macro {226    header "__stdarg_header_macro.h"227    export *228  }229 230  explicit module va_arg {231    header "__stdarg_va_arg.h"232    export *233  }234 235  explicit module va_copy {236    header "__stdarg_va_copy.h"237    export *238  }239 240  explicit module va_list {241    header "__stdarg_va_list.h"242    export *243  }244}245 246module _Builtin_stdatomic [system] {247  header "stdatomic.h"248  export *249}250 251module _Builtin_stdbool [system] {252  header "stdbool.h"253  export *254}255 256module _Builtin_stdckdint [system] {257  header "stdckdint.h"258  export *259}260 261module _Builtin_stdcountof [system] {262  header "stdcountof.h"263  export *264}265 266module _Builtin_stddef [system] {267  textual header "stddef.h"268 269  explicit module header_macro {270    header "__stddef_header_macro.h"271    export *272  }273  // __stddef_max_align_t.h is always in this module, even if274  // -fbuiltin-headers-in-system-modules is passed.275  explicit module max_align_t {276    header "__stddef_max_align_t.h"277    export *278  }279 280  explicit module null {281    header "__stddef_null.h"282    export *283  }284 285  explicit module nullptr_t {286    header "__stddef_nullptr_t.h"287    export *288  }289 290  explicit module offsetof {291    header "__stddef_offsetof.h"292    export *293  }294 295  explicit module ptrdiff_t {296    header "__stddef_ptrdiff_t.h"297    export *298  }299 300  explicit module rsize_t {301    header "__stddef_rsize_t.h"302    export *303  }304 305  explicit module size_t {306    header "__stddef_size_t.h"307    export *308  }309 310  explicit module unreachable {311    header "__stddef_unreachable.h"312    export *313  }314 315  explicit module wchar_t {316    header "__stddef_wchar_t.h"317    export *318  }319}320 321// wint_t is provided by <wchar.h> and not <stddef.h>. It's here322// for compatibility, but must be explicitly requested. Therefore323// __stddef_wint_t.h is not part of _Builtin_stddef. It is always in324// this module even if -fbuiltin-headers-in-system-modules is passed.325module _Builtin_stddef_wint_t [system] {326  header "__stddef_wint_t.h"327  export *328}329 330module _Builtin_stdint [system] {331  header "stdint.h"332  export *333}334 335module _Builtin_stdnoreturn [system] {336  header "stdnoreturn.h"337  export *338}339 340module _Builtin_tgmath [system] {341  header "tgmath.h"342  export *343}344 345module _Builtin_unwind [system] {346  header "unwind.h"347  export *348}349// End -fbuiltin-headers-in-system-modules affected modules350 351module opencl_c [system] {352  requires opencl353  header "opencl-c.h"354  header "opencl-c-base.h"355}356 357module ptrauth [system] {358  header "ptrauth.h"359  export *360}361