1 /*===---- module.modulemap - intrinsics module map -------------------------===
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
7 *===-----------------------------------------------------------------------===
10 module _Builtin_intrinsics [system] [extern_c] {
11 explicit module altivec {
19 explicit module acle {
24 explicit module neon {
38 explicit module intel {
43 textual header "f16cintrin.h"
44 textual header "avxintrin.h"
45 textual header "avx2intrin.h"
46 textual header "avx512fintrin.h"
47 textual header "fmaintrin.h"
50 textual header "bmiintrin.h"
51 textual header "bmi2intrin.h"
52 textual header "lzcntintrin.h"
53 textual header "xopintrin.h"
54 textual header "fma4intrin.h"
55 textual header "mwaitxintrin.h"
56 textual header "clzerointrin.h"
57 textual header "wbnoinvdintrin.h"
58 textual header "cldemoteintrin.h"
59 textual header "waitpkgintrin.h"
60 textual header "movdirintrin.h"
61 textual header "pconfigintrin.h"
62 textual header "sgxintrin.h"
63 textual header "ptwriteintrin.h"
64 textual header "invpcidintrin.h"
66 textual header "__wmmintrin_aes.h"
67 textual header "__wmmintrin_pclmul.h"
69 textual header "mm3dnow.h"
71 explicit module mm_malloc {
72 requires !freestanding
74 export * // note: for <stdlib.h> dependency
77 explicit module cpuid {
89 export sse2 // note: for hackish <emmintrin.h> dependency
93 explicit module sse2 {
98 explicit module sse3 {
103 explicit module ssse3 {
108 explicit module sse4_1 {
113 explicit module sse4_2 {
118 explicit module sse4a {
123 explicit module popcnt {
124 header "popcntintrin.h"
127 explicit module aes_pclmul {
134 explicit module systemz {
138 header "s390intrin.h"
140 explicit module htm {
143 header "htmxlintrin.h"
146 explicit module zvector {
153 // Start -fbuiltin-headers-in-system-modules affected modules
155 // The following modules all ignore their headers when
156 // -fbuiltin-headers-in-system-modules is passed, and many of
157 // those headers join system modules when present.
159 // e.g. if -fbuiltin-headers-in-system-modules is passed, then
160 // float.h will not be in the _Builtin_float module (that module
161 // will be empty). If there is a system module that declares
162 // `header "float.h"`, then the builtin float.h will join
163 // that module. The system float.h (if present) will be treated
164 // as a textual header in the sytem module.
165 module _Builtin_float [system] {
170 module _Builtin_inttypes [system] {
175 module _Builtin_iso646 [system] {
180 module _Builtin_limits [system] {
185 module _Builtin_stdalign [system] {
190 module _Builtin_stdarg [system] {
191 textual header "stdarg.h"
193 explicit module __gnuc_va_list {
194 header "__stdarg___gnuc_va_list.h"
198 explicit module __va_copy {
199 header "__stdarg___va_copy.h"
203 explicit module header_macro {
204 header "__stdarg_header_macro.h"
208 explicit module va_arg {
209 header "__stdarg_va_arg.h"
213 explicit module va_copy {
214 header "__stdarg_va_copy.h"
218 explicit module va_list {
219 header "__stdarg_va_list.h"
224 module _Builtin_stdatomic [system] {
229 module _Builtin_stdbool [system] {
234 module _Builtin_stddef [system] {
235 textual header "stddef.h"
237 explicit module header_macro {
238 header "__stddef_header_macro.h"
241 // __stddef_max_align_t.h is always in this module, even if
242 // -fbuiltin-headers-in-system-modules is passed.
243 explicit module max_align_t {
244 header "__stddef_max_align_t.h"
248 explicit module null {
249 header "__stddef_null.h"
253 explicit module nullptr_t {
254 header "__stddef_nullptr_t.h"
258 explicit module offsetof {
259 header "__stddef_offsetof.h"
263 explicit module ptrdiff_t {
264 header "__stddef_ptrdiff_t.h"
268 explicit module rsize_t {
269 header "__stddef_rsize_t.h"
273 explicit module size_t {
274 header "__stddef_size_t.h"
278 explicit module unreachable {
279 header "__stddef_unreachable.h"
283 explicit module wchar_t {
284 header "__stddef_wchar_t.h"
289 // wint_t is provided by <wchar.h> and not <stddef.h>. It's here
290 // for compatibility, but must be explicitly requested. Therefore
291 // __stddef_wint_t.h is not part of _Builtin_stddef. It is always in
292 // this module even if -fbuiltin-headers-in-system-modules is passed.
293 module _Builtin_stddef_wint_t [system] {
294 header "__stddef_wint_t.h"
298 module _Builtin_stdint [system] {
303 module _Builtin_stdnoreturn [system] {
304 header "stdnoreturn.h"
308 module _Builtin_tgmath [system] {
313 module _Builtin_unwind [system] {
317 // End -fbuiltin-headers-in-system-modules affected modules
322 header "opencl-c-base.h"