xref: /aosp_15_r20/prebuilts/clang-tools/linux-x86/clang-headers/module.modulemap (revision bed243d3d9cd544cfb038bfa7be843dedc6e6bf7)
1*bed243d3SAndroid Build Coastguard Worker/*===---- module.modulemap - intrinsics module map -------------------------===
2*bed243d3SAndroid Build Coastguard Worker *
3*bed243d3SAndroid Build Coastguard Worker * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*bed243d3SAndroid Build Coastguard Worker * See https://llvm.org/LICENSE.txt for license information.
5*bed243d3SAndroid Build Coastguard Worker * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*bed243d3SAndroid Build Coastguard Worker *
7*bed243d3SAndroid Build Coastguard Worker *===-----------------------------------------------------------------------===
8*bed243d3SAndroid Build Coastguard Worker */
9*bed243d3SAndroid Build Coastguard Worker
10*bed243d3SAndroid Build Coastguard Workermodule _Builtin_intrinsics [system] [extern_c] {
11*bed243d3SAndroid Build Coastguard Worker  explicit module altivec {
12*bed243d3SAndroid Build Coastguard Worker    requires altivec
13*bed243d3SAndroid Build Coastguard Worker    header "altivec.h"
14*bed243d3SAndroid Build Coastguard Worker  }
15*bed243d3SAndroid Build Coastguard Worker
16*bed243d3SAndroid Build Coastguard Worker  explicit module arm {
17*bed243d3SAndroid Build Coastguard Worker    requires arm
18*bed243d3SAndroid Build Coastguard Worker
19*bed243d3SAndroid Build Coastguard Worker    explicit module acle {
20*bed243d3SAndroid Build Coastguard Worker      header "arm_acle.h"
21*bed243d3SAndroid Build Coastguard Worker      export *
22*bed243d3SAndroid Build Coastguard Worker    }
23*bed243d3SAndroid Build Coastguard Worker
24*bed243d3SAndroid Build Coastguard Worker    explicit module neon {
25*bed243d3SAndroid Build Coastguard Worker      requires neon
26*bed243d3SAndroid Build Coastguard Worker      header "arm_neon.h"
27*bed243d3SAndroid Build Coastguard Worker      header "arm_fp16.h"
28*bed243d3SAndroid Build Coastguard Worker      export *
29*bed243d3SAndroid Build Coastguard Worker    }
30*bed243d3SAndroid Build Coastguard Worker
31*bed243d3SAndroid Build Coastguard Worker    explicit module sve {
32*bed243d3SAndroid Build Coastguard Worker      requires sve
33*bed243d3SAndroid Build Coastguard Worker      header "arm_sve.h"
34*bed243d3SAndroid Build Coastguard Worker      export *
35*bed243d3SAndroid Build Coastguard Worker    }
36*bed243d3SAndroid Build Coastguard Worker  }
37*bed243d3SAndroid Build Coastguard Worker
38*bed243d3SAndroid Build Coastguard Worker  explicit module intel {
39*bed243d3SAndroid Build Coastguard Worker    requires x86
40*bed243d3SAndroid Build Coastguard Worker    export *
41*bed243d3SAndroid Build Coastguard Worker
42*bed243d3SAndroid Build Coastguard Worker    header "immintrin.h"
43*bed243d3SAndroid Build Coastguard Worker    textual header "f16cintrin.h"
44*bed243d3SAndroid Build Coastguard Worker    textual header "avxintrin.h"
45*bed243d3SAndroid Build Coastguard Worker    textual header "avx2intrin.h"
46*bed243d3SAndroid Build Coastguard Worker    textual header "avx512fintrin.h"
47*bed243d3SAndroid Build Coastguard Worker    textual header "avx512erintrin.h"
48*bed243d3SAndroid Build Coastguard Worker    textual header "fmaintrin.h"
49*bed243d3SAndroid Build Coastguard Worker
50*bed243d3SAndroid Build Coastguard Worker    header "x86intrin.h"
51*bed243d3SAndroid Build Coastguard Worker    textual header "bmiintrin.h"
52*bed243d3SAndroid Build Coastguard Worker    textual header "bmi2intrin.h"
53*bed243d3SAndroid Build Coastguard Worker    textual header "lzcntintrin.h"
54*bed243d3SAndroid Build Coastguard Worker    textual header "xopintrin.h"
55*bed243d3SAndroid Build Coastguard Worker    textual header "fma4intrin.h"
56*bed243d3SAndroid Build Coastguard Worker    textual header "mwaitxintrin.h"
57*bed243d3SAndroid Build Coastguard Worker    textual header "clzerointrin.h"
58*bed243d3SAndroid Build Coastguard Worker    textual header "wbnoinvdintrin.h"
59*bed243d3SAndroid Build Coastguard Worker    textual header "cldemoteintrin.h"
60*bed243d3SAndroid Build Coastguard Worker    textual header "waitpkgintrin.h"
61*bed243d3SAndroid Build Coastguard Worker    textual header "movdirintrin.h"
62*bed243d3SAndroid Build Coastguard Worker    textual header "pconfigintrin.h"
63*bed243d3SAndroid Build Coastguard Worker    textual header "sgxintrin.h"
64*bed243d3SAndroid Build Coastguard Worker    textual header "ptwriteintrin.h"
65*bed243d3SAndroid Build Coastguard Worker    textual header "invpcidintrin.h"
66*bed243d3SAndroid Build Coastguard Worker
67*bed243d3SAndroid Build Coastguard Worker    textual header "__wmmintrin_aes.h"
68*bed243d3SAndroid Build Coastguard Worker    textual header "__wmmintrin_pclmul.h"
69*bed243d3SAndroid Build Coastguard Worker
70*bed243d3SAndroid Build Coastguard Worker    explicit module mm_malloc {
71*bed243d3SAndroid Build Coastguard Worker      requires !freestanding
72*bed243d3SAndroid Build Coastguard Worker      header "mm_malloc.h"
73*bed243d3SAndroid Build Coastguard Worker      export * // note: for <stdlib.h> dependency
74*bed243d3SAndroid Build Coastguard Worker    }
75*bed243d3SAndroid Build Coastguard Worker
76*bed243d3SAndroid Build Coastguard Worker    explicit module cpuid {
77*bed243d3SAndroid Build Coastguard Worker      requires gnuinlineasm
78*bed243d3SAndroid Build Coastguard Worker      header "cpuid.h"
79*bed243d3SAndroid Build Coastguard Worker    }
80*bed243d3SAndroid Build Coastguard Worker
81*bed243d3SAndroid Build Coastguard Worker    explicit module mmx {
82*bed243d3SAndroid Build Coastguard Worker      header "mmintrin.h"
83*bed243d3SAndroid Build Coastguard Worker    }
84*bed243d3SAndroid Build Coastguard Worker
85*bed243d3SAndroid Build Coastguard Worker    explicit module sse {
86*bed243d3SAndroid Build Coastguard Worker      export mm_malloc
87*bed243d3SAndroid Build Coastguard Worker      export mmx
88*bed243d3SAndroid Build Coastguard Worker      export sse2 // note: for hackish <emmintrin.h> dependency
89*bed243d3SAndroid Build Coastguard Worker      header "xmmintrin.h"
90*bed243d3SAndroid Build Coastguard Worker    }
91*bed243d3SAndroid Build Coastguard Worker
92*bed243d3SAndroid Build Coastguard Worker    explicit module sse2 {
93*bed243d3SAndroid Build Coastguard Worker      export sse
94*bed243d3SAndroid Build Coastguard Worker      header "emmintrin.h"
95*bed243d3SAndroid Build Coastguard Worker    }
96*bed243d3SAndroid Build Coastguard Worker
97*bed243d3SAndroid Build Coastguard Worker    explicit module sse3 {
98*bed243d3SAndroid Build Coastguard Worker      export sse2
99*bed243d3SAndroid Build Coastguard Worker      header "pmmintrin.h"
100*bed243d3SAndroid Build Coastguard Worker    }
101*bed243d3SAndroid Build Coastguard Worker
102*bed243d3SAndroid Build Coastguard Worker    explicit module ssse3 {
103*bed243d3SAndroid Build Coastguard Worker      export sse3
104*bed243d3SAndroid Build Coastguard Worker      header "tmmintrin.h"
105*bed243d3SAndroid Build Coastguard Worker    }
106*bed243d3SAndroid Build Coastguard Worker
107*bed243d3SAndroid Build Coastguard Worker    explicit module sse4_1 {
108*bed243d3SAndroid Build Coastguard Worker      export ssse3
109*bed243d3SAndroid Build Coastguard Worker      header "smmintrin.h"
110*bed243d3SAndroid Build Coastguard Worker    }
111*bed243d3SAndroid Build Coastguard Worker
112*bed243d3SAndroid Build Coastguard Worker    explicit module sse4_2 {
113*bed243d3SAndroid Build Coastguard Worker      export sse4_1
114*bed243d3SAndroid Build Coastguard Worker      header "nmmintrin.h"
115*bed243d3SAndroid Build Coastguard Worker    }
116*bed243d3SAndroid Build Coastguard Worker
117*bed243d3SAndroid Build Coastguard Worker    explicit module sse4a {
118*bed243d3SAndroid Build Coastguard Worker      export sse3
119*bed243d3SAndroid Build Coastguard Worker      header "ammintrin.h"
120*bed243d3SAndroid Build Coastguard Worker    }
121*bed243d3SAndroid Build Coastguard Worker
122*bed243d3SAndroid Build Coastguard Worker    explicit module popcnt {
123*bed243d3SAndroid Build Coastguard Worker      header "popcntintrin.h"
124*bed243d3SAndroid Build Coastguard Worker    }
125*bed243d3SAndroid Build Coastguard Worker
126*bed243d3SAndroid Build Coastguard Worker    explicit module mm3dnow {
127*bed243d3SAndroid Build Coastguard Worker      header "mm3dnow.h"
128*bed243d3SAndroid Build Coastguard Worker    }
129*bed243d3SAndroid Build Coastguard Worker
130*bed243d3SAndroid Build Coastguard Worker    explicit module aes_pclmul {
131*bed243d3SAndroid Build Coastguard Worker      header "wmmintrin.h"
132*bed243d3SAndroid Build Coastguard Worker      export aes
133*bed243d3SAndroid Build Coastguard Worker      export pclmul
134*bed243d3SAndroid Build Coastguard Worker    }
135*bed243d3SAndroid Build Coastguard Worker  }
136*bed243d3SAndroid Build Coastguard Worker
137*bed243d3SAndroid Build Coastguard Worker  explicit module systemz {
138*bed243d3SAndroid Build Coastguard Worker    requires systemz
139*bed243d3SAndroid Build Coastguard Worker    export *
140*bed243d3SAndroid Build Coastguard Worker
141*bed243d3SAndroid Build Coastguard Worker    header "s390intrin.h"
142*bed243d3SAndroid Build Coastguard Worker
143*bed243d3SAndroid Build Coastguard Worker    explicit module htm {
144*bed243d3SAndroid Build Coastguard Worker      requires htm
145*bed243d3SAndroid Build Coastguard Worker      header "htmintrin.h"
146*bed243d3SAndroid Build Coastguard Worker      header "htmxlintrin.h"
147*bed243d3SAndroid Build Coastguard Worker    }
148*bed243d3SAndroid Build Coastguard Worker
149*bed243d3SAndroid Build Coastguard Worker    explicit module zvector {
150*bed243d3SAndroid Build Coastguard Worker      requires zvector, vx
151*bed243d3SAndroid Build Coastguard Worker      header "vecintrin.h"
152*bed243d3SAndroid Build Coastguard Worker    }
153*bed243d3SAndroid Build Coastguard Worker  }
154*bed243d3SAndroid Build Coastguard Worker}
155*bed243d3SAndroid Build Coastguard Worker
156*bed243d3SAndroid Build Coastguard Worker// Start -fbuiltin-headers-in-system-modules affected modules
157*bed243d3SAndroid Build Coastguard Worker
158*bed243d3SAndroid Build Coastguard Worker// The following modules all ignore their headers when
159*bed243d3SAndroid Build Coastguard Worker// -fbuiltin-headers-in-system-modules is passed, and many of
160*bed243d3SAndroid Build Coastguard Worker// those headers join system modules when present.
161*bed243d3SAndroid Build Coastguard Worker
162*bed243d3SAndroid Build Coastguard Worker// e.g. if -fbuiltin-headers-in-system-modules is passed, then
163*bed243d3SAndroid Build Coastguard Worker// float.h will not be in the _Builtin_float module (that module
164*bed243d3SAndroid Build Coastguard Worker// will be empty). If there is a system module that declares
165*bed243d3SAndroid Build Coastguard Worker// `header "float.h"`, then the builtin float.h will join
166*bed243d3SAndroid Build Coastguard Worker// that module. The system float.h (if present) will be treated
167*bed243d3SAndroid Build Coastguard Worker// as a textual header in the sytem module.
168*bed243d3SAndroid Build Coastguard Workermodule _Builtin_float [system] {
169*bed243d3SAndroid Build Coastguard Worker  header "float.h"
170*bed243d3SAndroid Build Coastguard Worker  export *
171*bed243d3SAndroid Build Coastguard Worker}
172*bed243d3SAndroid Build Coastguard Worker
173*bed243d3SAndroid Build Coastguard Workermodule _Builtin_inttypes [system] {
174*bed243d3SAndroid Build Coastguard Worker  header "inttypes.h"
175*bed243d3SAndroid Build Coastguard Worker  export *
176*bed243d3SAndroid Build Coastguard Worker}
177*bed243d3SAndroid Build Coastguard Worker
178*bed243d3SAndroid Build Coastguard Workermodule _Builtin_iso646 [system] {
179*bed243d3SAndroid Build Coastguard Worker  header "iso646.h"
180*bed243d3SAndroid Build Coastguard Worker  export *
181*bed243d3SAndroid Build Coastguard Worker}
182*bed243d3SAndroid Build Coastguard Worker
183*bed243d3SAndroid Build Coastguard Workermodule _Builtin_limits [system] {
184*bed243d3SAndroid Build Coastguard Worker  header "limits.h"
185*bed243d3SAndroid Build Coastguard Worker  export *
186*bed243d3SAndroid Build Coastguard Worker}
187*bed243d3SAndroid Build Coastguard Worker
188*bed243d3SAndroid Build Coastguard Workermodule _Builtin_stdalign [system] {
189*bed243d3SAndroid Build Coastguard Worker  header "stdalign.h"
190*bed243d3SAndroid Build Coastguard Worker  export *
191*bed243d3SAndroid Build Coastguard Worker}
192*bed243d3SAndroid Build Coastguard Worker
193*bed243d3SAndroid Build Coastguard Workermodule _Builtin_stdarg [system] {
194*bed243d3SAndroid Build Coastguard Worker  textual header "stdarg.h"
195*bed243d3SAndroid Build Coastguard Worker
196*bed243d3SAndroid Build Coastguard Worker  explicit module __gnuc_va_list {
197*bed243d3SAndroid Build Coastguard Worker    header "__stdarg___gnuc_va_list.h"
198*bed243d3SAndroid Build Coastguard Worker    export *
199*bed243d3SAndroid Build Coastguard Worker  }
200*bed243d3SAndroid Build Coastguard Worker
201*bed243d3SAndroid Build Coastguard Worker  explicit module __va_copy {
202*bed243d3SAndroid Build Coastguard Worker    header "__stdarg___va_copy.h"
203*bed243d3SAndroid Build Coastguard Worker    export *
204*bed243d3SAndroid Build Coastguard Worker  }
205*bed243d3SAndroid Build Coastguard Worker
206*bed243d3SAndroid Build Coastguard Worker  explicit module va_arg {
207*bed243d3SAndroid Build Coastguard Worker    header "__stdarg_va_arg.h"
208*bed243d3SAndroid Build Coastguard Worker    export *
209*bed243d3SAndroid Build Coastguard Worker  }
210*bed243d3SAndroid Build Coastguard Worker
211*bed243d3SAndroid Build Coastguard Worker  explicit module va_copy {
212*bed243d3SAndroid Build Coastguard Worker    header "__stdarg_va_copy.h"
213*bed243d3SAndroid Build Coastguard Worker    export *
214*bed243d3SAndroid Build Coastguard Worker  }
215*bed243d3SAndroid Build Coastguard Worker
216*bed243d3SAndroid Build Coastguard Worker  explicit module va_list {
217*bed243d3SAndroid Build Coastguard Worker    header "__stdarg_va_list.h"
218*bed243d3SAndroid Build Coastguard Worker    export *
219*bed243d3SAndroid Build Coastguard Worker  }
220*bed243d3SAndroid Build Coastguard Worker}
221*bed243d3SAndroid Build Coastguard Worker
222*bed243d3SAndroid Build Coastguard Workermodule _Builtin_stdatomic [system] {
223*bed243d3SAndroid Build Coastguard Worker  header "stdatomic.h"
224*bed243d3SAndroid Build Coastguard Worker  export *
225*bed243d3SAndroid Build Coastguard Worker}
226*bed243d3SAndroid Build Coastguard Worker
227*bed243d3SAndroid Build Coastguard Workermodule _Builtin_stdbool [system] {
228*bed243d3SAndroid Build Coastguard Worker  header "stdbool.h"
229*bed243d3SAndroid Build Coastguard Worker  export *
230*bed243d3SAndroid Build Coastguard Worker}
231*bed243d3SAndroid Build Coastguard Worker
232*bed243d3SAndroid Build Coastguard Workermodule _Builtin_stddef [system] {
233*bed243d3SAndroid Build Coastguard Worker  textual header "stddef.h"
234*bed243d3SAndroid Build Coastguard Worker
235*bed243d3SAndroid Build Coastguard Worker  // __stddef_max_align_t.h is always in this module, even if
236*bed243d3SAndroid Build Coastguard Worker  // -fbuiltin-headers-in-system-modules is passed.
237*bed243d3SAndroid Build Coastguard Worker  explicit module max_align_t {
238*bed243d3SAndroid Build Coastguard Worker    header "__stddef_max_align_t.h"
239*bed243d3SAndroid Build Coastguard Worker    export *
240*bed243d3SAndroid Build Coastguard Worker  }
241*bed243d3SAndroid Build Coastguard Worker
242*bed243d3SAndroid Build Coastguard Worker  explicit module null {
243*bed243d3SAndroid Build Coastguard Worker    header "__stddef_null.h"
244*bed243d3SAndroid Build Coastguard Worker    export *
245*bed243d3SAndroid Build Coastguard Worker  }
246*bed243d3SAndroid Build Coastguard Worker
247*bed243d3SAndroid Build Coastguard Worker  explicit module nullptr_t {
248*bed243d3SAndroid Build Coastguard Worker    header "__stddef_nullptr_t.h"
249*bed243d3SAndroid Build Coastguard Worker    export *
250*bed243d3SAndroid Build Coastguard Worker  }
251*bed243d3SAndroid Build Coastguard Worker
252*bed243d3SAndroid Build Coastguard Worker  explicit module offsetof {
253*bed243d3SAndroid Build Coastguard Worker    header "__stddef_offsetof.h"
254*bed243d3SAndroid Build Coastguard Worker    export *
255*bed243d3SAndroid Build Coastguard Worker  }
256*bed243d3SAndroid Build Coastguard Worker
257*bed243d3SAndroid Build Coastguard Worker  explicit module ptrdiff_t {
258*bed243d3SAndroid Build Coastguard Worker    header "__stddef_ptrdiff_t.h"
259*bed243d3SAndroid Build Coastguard Worker    export *
260*bed243d3SAndroid Build Coastguard Worker  }
261*bed243d3SAndroid Build Coastguard Worker
262*bed243d3SAndroid Build Coastguard Worker  explicit module rsize_t {
263*bed243d3SAndroid Build Coastguard Worker    header "__stddef_rsize_t.h"
264*bed243d3SAndroid Build Coastguard Worker    export *
265*bed243d3SAndroid Build Coastguard Worker  }
266*bed243d3SAndroid Build Coastguard Worker
267*bed243d3SAndroid Build Coastguard Worker  explicit module size_t {
268*bed243d3SAndroid Build Coastguard Worker    header "__stddef_size_t.h"
269*bed243d3SAndroid Build Coastguard Worker    export *
270*bed243d3SAndroid Build Coastguard Worker  }
271*bed243d3SAndroid Build Coastguard Worker
272*bed243d3SAndroid Build Coastguard Worker  explicit module unreachable {
273*bed243d3SAndroid Build Coastguard Worker    header "__stddef_unreachable.h"
274*bed243d3SAndroid Build Coastguard Worker    export *
275*bed243d3SAndroid Build Coastguard Worker  }
276*bed243d3SAndroid Build Coastguard Worker
277*bed243d3SAndroid Build Coastguard Worker  explicit module wchar_t {
278*bed243d3SAndroid Build Coastguard Worker    header "__stddef_wchar_t.h"
279*bed243d3SAndroid Build Coastguard Worker    export *
280*bed243d3SAndroid Build Coastguard Worker  }
281*bed243d3SAndroid Build Coastguard Worker}
282*bed243d3SAndroid Build Coastguard Worker
283*bed243d3SAndroid Build Coastguard Worker// wint_t is provided by <wchar.h> and not <stddef.h>. It's here
284*bed243d3SAndroid Build Coastguard Worker// for compatibility, but must be explicitly requested. Therefore
285*bed243d3SAndroid Build Coastguard Worker// __stddef_wint_t.h is not part of _Builtin_stddef. It is always in
286*bed243d3SAndroid Build Coastguard Worker// this module even if -fbuiltin-headers-in-system-modules is passed.
287*bed243d3SAndroid Build Coastguard Workermodule _Builtin_stddef_wint_t [system] {
288*bed243d3SAndroid Build Coastguard Worker  header "__stddef_wint_t.h"
289*bed243d3SAndroid Build Coastguard Worker  export *
290*bed243d3SAndroid Build Coastguard Worker}
291*bed243d3SAndroid Build Coastguard Worker
292*bed243d3SAndroid Build Coastguard Workermodule _Builtin_stdint [system] {
293*bed243d3SAndroid Build Coastguard Worker  header "stdint.h"
294*bed243d3SAndroid Build Coastguard Worker  export *
295*bed243d3SAndroid Build Coastguard Worker}
296*bed243d3SAndroid Build Coastguard Worker
297*bed243d3SAndroid Build Coastguard Workermodule _Builtin_stdnoreturn [system] {
298*bed243d3SAndroid Build Coastguard Worker  header "stdnoreturn.h"
299*bed243d3SAndroid Build Coastguard Worker  export *
300*bed243d3SAndroid Build Coastguard Worker}
301*bed243d3SAndroid Build Coastguard Worker
302*bed243d3SAndroid Build Coastguard Workermodule _Builtin_tgmath [system] {
303*bed243d3SAndroid Build Coastguard Worker  header "tgmath.h"
304*bed243d3SAndroid Build Coastguard Worker  export *
305*bed243d3SAndroid Build Coastguard Worker}
306*bed243d3SAndroid Build Coastguard Worker
307*bed243d3SAndroid Build Coastguard Workermodule _Builtin_unwind [system] {
308*bed243d3SAndroid Build Coastguard Worker  header "unwind.h"
309*bed243d3SAndroid Build Coastguard Worker  export *
310*bed243d3SAndroid Build Coastguard Worker}
311*bed243d3SAndroid Build Coastguard Worker// End -fbuiltin-headers-in-system-modules affected modules
312*bed243d3SAndroid Build Coastguard Worker
313*bed243d3SAndroid Build Coastguard Workermodule opencl_c {
314*bed243d3SAndroid Build Coastguard Worker  requires opencl
315*bed243d3SAndroid Build Coastguard Worker  header "opencl-c.h"
316*bed243d3SAndroid Build Coastguard Worker  header "opencl-c-base.h"
317*bed243d3SAndroid Build Coastguard Worker}
318