xref: /openbsd-src/gnu/llvm/clang/lib/Headers/module.modulemap (revision ec727ea710c91afd8ce4f788c5aaa8482b7b69b2)
1e5dd7070Spatrick/*===---- module.modulemap - intrinsics module map -------------------------===
2e5dd7070Spatrick *
3e5dd7070Spatrick * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4e5dd7070Spatrick * See https://llvm.org/LICENSE.txt for license information.
5e5dd7070Spatrick * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6e5dd7070Spatrick *
7e5dd7070Spatrick *===-----------------------------------------------------------------------===
8e5dd7070Spatrick */
9e5dd7070Spatrick
10e5dd7070Spatrickmodule _Builtin_intrinsics [system] [extern_c] {
11e5dd7070Spatrick  explicit module altivec {
12e5dd7070Spatrick    requires altivec
13e5dd7070Spatrick    header "altivec.h"
14e5dd7070Spatrick  }
15e5dd7070Spatrick
16e5dd7070Spatrick  explicit module arm {
17e5dd7070Spatrick    requires arm
18e5dd7070Spatrick
19e5dd7070Spatrick    explicit module acle {
20e5dd7070Spatrick      header "arm_acle.h"
21e5dd7070Spatrick      export *
22e5dd7070Spatrick    }
23e5dd7070Spatrick
24e5dd7070Spatrick    explicit module neon {
25e5dd7070Spatrick      requires neon
26e5dd7070Spatrick      header "arm_neon.h"
27e5dd7070Spatrick      header "arm_fp16.h"
28e5dd7070Spatrick      export *
29e5dd7070Spatrick    }
30*ec727ea7Spatrick
31*ec727ea7Spatrick    explicit module sve {
32*ec727ea7Spatrick      requires sve
33*ec727ea7Spatrick      header "arm_sve.h"
34*ec727ea7Spatrick      export *
35*ec727ea7Spatrick    }
36e5dd7070Spatrick  }
37e5dd7070Spatrick
38e5dd7070Spatrick  explicit module intel {
39e5dd7070Spatrick    requires x86
40e5dd7070Spatrick    export *
41e5dd7070Spatrick
42e5dd7070Spatrick    header "immintrin.h"
43e5dd7070Spatrick    textual header "f16cintrin.h"
44e5dd7070Spatrick    textual header "avxintrin.h"
45e5dd7070Spatrick    textual header "avx2intrin.h"
46e5dd7070Spatrick    textual header "avx512fintrin.h"
47e5dd7070Spatrick    textual header "avx512erintrin.h"
48e5dd7070Spatrick    textual header "fmaintrin.h"
49e5dd7070Spatrick
50e5dd7070Spatrick    header "x86intrin.h"
51e5dd7070Spatrick    textual header "bmiintrin.h"
52e5dd7070Spatrick    textual header "bmi2intrin.h"
53e5dd7070Spatrick    textual header "lzcntintrin.h"
54e5dd7070Spatrick    textual header "xopintrin.h"
55e5dd7070Spatrick    textual header "fma4intrin.h"
56e5dd7070Spatrick    textual header "mwaitxintrin.h"
57e5dd7070Spatrick    textual header "clzerointrin.h"
58e5dd7070Spatrick    textual header "wbnoinvdintrin.h"
59e5dd7070Spatrick    textual header "cldemoteintrin.h"
60e5dd7070Spatrick    textual header "waitpkgintrin.h"
61e5dd7070Spatrick    textual header "movdirintrin.h"
62e5dd7070Spatrick    textual header "pconfigintrin.h"
63e5dd7070Spatrick    textual header "sgxintrin.h"
64e5dd7070Spatrick    textual header "ptwriteintrin.h"
65e5dd7070Spatrick    textual header "invpcidintrin.h"
66e5dd7070Spatrick
67e5dd7070Spatrick    textual header "__wmmintrin_aes.h"
68e5dd7070Spatrick    textual header "__wmmintrin_pclmul.h"
69e5dd7070Spatrick
70e5dd7070Spatrick    explicit module mm_malloc {
71e5dd7070Spatrick      requires !freestanding
72e5dd7070Spatrick      header "mm_malloc.h"
73e5dd7070Spatrick      export * // note: for <stdlib.h> dependency
74e5dd7070Spatrick    }
75e5dd7070Spatrick
76e5dd7070Spatrick    explicit module cpuid {
77e5dd7070Spatrick      requires gnuinlineasm
78e5dd7070Spatrick      header "cpuid.h"
79e5dd7070Spatrick    }
80e5dd7070Spatrick
81e5dd7070Spatrick    explicit module mmx {
82e5dd7070Spatrick      header "mmintrin.h"
83e5dd7070Spatrick    }
84e5dd7070Spatrick
85e5dd7070Spatrick    explicit module sse {
86e5dd7070Spatrick      export mm_malloc
87e5dd7070Spatrick      export mmx
88e5dd7070Spatrick      export sse2 // note: for hackish <emmintrin.h> dependency
89e5dd7070Spatrick      header "xmmintrin.h"
90e5dd7070Spatrick    }
91e5dd7070Spatrick
92e5dd7070Spatrick    explicit module sse2 {
93e5dd7070Spatrick      export sse
94e5dd7070Spatrick      header "emmintrin.h"
95e5dd7070Spatrick    }
96e5dd7070Spatrick
97e5dd7070Spatrick    explicit module sse3 {
98e5dd7070Spatrick      export sse2
99e5dd7070Spatrick      header "pmmintrin.h"
100e5dd7070Spatrick    }
101e5dd7070Spatrick
102e5dd7070Spatrick    explicit module ssse3 {
103e5dd7070Spatrick      export sse3
104e5dd7070Spatrick      header "tmmintrin.h"
105e5dd7070Spatrick    }
106e5dd7070Spatrick
107e5dd7070Spatrick    explicit module sse4_1 {
108e5dd7070Spatrick      export ssse3
109e5dd7070Spatrick      header "smmintrin.h"
110e5dd7070Spatrick    }
111e5dd7070Spatrick
112e5dd7070Spatrick    explicit module sse4_2 {
113e5dd7070Spatrick      export sse4_1
114e5dd7070Spatrick      header "nmmintrin.h"
115e5dd7070Spatrick    }
116e5dd7070Spatrick
117e5dd7070Spatrick    explicit module sse4a {
118e5dd7070Spatrick      export sse3
119e5dd7070Spatrick      header "ammintrin.h"
120e5dd7070Spatrick    }
121e5dd7070Spatrick
122e5dd7070Spatrick    explicit module popcnt {
123e5dd7070Spatrick      header "popcntintrin.h"
124e5dd7070Spatrick    }
125e5dd7070Spatrick
126e5dd7070Spatrick    explicit module mm3dnow {
127e5dd7070Spatrick      header "mm3dnow.h"
128e5dd7070Spatrick    }
129e5dd7070Spatrick
130e5dd7070Spatrick    explicit module aes_pclmul {
131e5dd7070Spatrick      header "wmmintrin.h"
132e5dd7070Spatrick      export aes
133e5dd7070Spatrick      export pclmul
134e5dd7070Spatrick    }
135e5dd7070Spatrick  }
136e5dd7070Spatrick
137e5dd7070Spatrick  explicit module systemz {
138e5dd7070Spatrick    requires systemz
139e5dd7070Spatrick    export *
140e5dd7070Spatrick
141e5dd7070Spatrick    header "s390intrin.h"
142e5dd7070Spatrick
143e5dd7070Spatrick    explicit module htm {
144e5dd7070Spatrick      requires htm
145e5dd7070Spatrick      header "htmintrin.h"
146e5dd7070Spatrick      header "htmxlintrin.h"
147e5dd7070Spatrick    }
148e5dd7070Spatrick
149e5dd7070Spatrick    explicit module zvector {
150e5dd7070Spatrick      requires zvector, vx
151e5dd7070Spatrick      header "vecintrin.h"
152e5dd7070Spatrick    }
153e5dd7070Spatrick  }
154e5dd7070Spatrick}
155e5dd7070Spatrick
156e5dd7070Spatrickmodule _Builtin_stddef_max_align_t [system] [extern_c] {
157e5dd7070Spatrick  header "__stddef_max_align_t.h"
158e5dd7070Spatrick}
159e5dd7070Spatrick
160e5dd7070Spatrickmodule opencl_c {
161e5dd7070Spatrick  requires opencl
162e5dd7070Spatrick  header "opencl-c.h"
163e5dd7070Spatrick  header "opencl-c-base.h"
164e5dd7070Spatrick}
165