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 "avx512erintrin.h"
48 textual header "fmaintrin.h"
51 textual header "bmiintrin.h"
52 textual header "bmi2intrin.h"
53 textual header "lzcntintrin.h"
54 textual header "xopintrin.h"
55 textual header "fma4intrin.h"
56 textual header "mwaitxintrin.h"
57 textual header "clzerointrin.h"
58 textual header "wbnoinvdintrin.h"
59 textual header "cldemoteintrin.h"
60 textual header "waitpkgintrin.h"
61 textual header "movdirintrin.h"
62 textual header "pconfigintrin.h"
63 textual header "sgxintrin.h"
64 textual header "ptwriteintrin.h"
65 textual header "invpcidintrin.h"
67 textual header "__wmmintrin_aes.h"
68 textual header "__wmmintrin_pclmul.h"
70 explicit module mm_malloc {
71 requires !freestanding
73 export * // note: for <stdlib.h> dependency
76 explicit module cpuid {
88 export sse2 // note: for hackish <emmintrin.h> dependency
92 explicit module sse2 {
97 explicit module sse3 {
102 explicit module ssse3 {
107 explicit module sse4_1 {
112 explicit module sse4_2 {
117 explicit module sse4a {
122 explicit module popcnt {
123 header "popcntintrin.h"
126 explicit module mm3dnow {
130 explicit module aes_pclmul {
137 explicit module systemz {
141 header "s390intrin.h"
143 explicit module htm {
146 header "htmxlintrin.h"
149 explicit module zvector {
156 // Start -fbuiltin-headers-in-system-modules affected modules
158 // The following modules all ignore their top level headers
159 // when -fbuiltin-headers-in-system-modules is passed, and
160 // most of those headers join system modules when present.
162 // e.g. if -fbuiltin-headers-in-system-modules is passed, then
163 // float.h will not be in the _Builtin_float module (that module
164 // will be empty). If there is a system module that declares
165 // `header "float.h"`, then the builtin float.h will join
166 // that module. The system float.h (if present) will be treated
167 // as a textual header in the sytem module.
168 module _Builtin_float [system] {
173 module _Builtin_inttypes [system] {
178 module _Builtin_iso646 [system] {
183 module _Builtin_limits [system] {
188 module _Builtin_stdalign [system] {
193 // When -fbuiltin-headers-in-system-modules is passed, only
194 // the top level headers are removed, the implementation headers
195 // will always be in their submodules. That means when stdarg.h
196 // is included, it will still import this module and make the
197 // appropriate submodules visible.
198 module _Builtin_stdarg [system] {
199 textual header "stdarg.h"
201 explicit module __gnuc_va_list {
202 header "__stdarg___gnuc_va_list.h"
206 explicit module __va_copy {
207 header "__stdarg___va_copy.h"
211 explicit module va_arg {
212 header "__stdarg_va_arg.h"
216 explicit module va_copy {
217 header "__stdarg_va_copy.h"
221 explicit module va_list {
222 header "__stdarg_va_list.h"
227 module _Builtin_stdatomic [system] {
232 module _Builtin_stdbool [system] {
237 module _Builtin_stddef [system] {
238 textual header "stddef.h"
240 explicit module max_align_t {
241 header "__stddef_max_align_t.h"
245 explicit module null {
246 header "__stddef_null.h"
250 explicit module nullptr_t {
251 header "__stddef_nullptr_t.h"
255 explicit module offsetof {
256 header "__stddef_offsetof.h"
260 explicit module ptrdiff_t {
261 header "__stddef_ptrdiff_t.h"
265 explicit module rsize_t {
266 header "__stddef_rsize_t.h"
270 explicit module size_t {
271 header "__stddef_size_t.h"
275 explicit module unreachable {
276 header "__stddef_unreachable.h"
280 explicit module wchar_t {
281 header "__stddef_wchar_t.h"
286 /* wint_t is provided by <wchar.h> and not <stddef.h>. It's here
287 * for compatibility, but must be explicitly requested. Therefore
288 * __stddef_wint_t.h is not part of _Builtin_stddef. */
289 module _Builtin_stddef_wint_t [system] {
290 header "__stddef_wint_t.h"
294 module _Builtin_stdint [system] {
299 module _Builtin_stdnoreturn [system] {
300 header "stdnoreturn.h"
304 module _Builtin_tgmath [system] {
309 module _Builtin_unwind [system] {
313 // End -fbuiltin-headers-in-system-modules affected modules
318 header "opencl-c-base.h"