module.modulemap revision 309124
1251877Speter/*===---- module.modulemap - intrinsics module map -------------------------===
2251877Speter *
3251877Speter * Permission is hereby granted, free of charge, to any person obtaining a copy
4251877Speter * of this software and associated documentation files (the "Software"), to deal
5251877Speter * in the Software without restriction, including without limitation the rights
6251877Speter * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7251877Speter * copies of the Software, and to permit persons to whom the Software is
8251877Speter * furnished to do so, subject to the following conditions:
9251877Speter *
10251877Speter * The above copyright notice and this permission notice shall be included in
11251877Speter * all copies or substantial portions of the Software.
12251877Speter *
13251877Speter * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14251877Speter * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15251877Speter * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16251877Speter * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17251877Speter * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18251877Speter * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19251877Speter * THE SOFTWARE.
20251877Speter *
21251877Speter *===-----------------------------------------------------------------------===
22251877Speter */
23251877Speter
24251877Spetermodule _Builtin_intrinsics [system] [extern_c] {
25251877Speter  explicit module altivec {
26251877Speter    requires altivec
27251877Speter    header "altivec.h"
28251877Speter  }
29251877Speter
30251877Speter  explicit module arm {
31251877Speter    requires arm
32251877Speter
33251877Speter    explicit module acle {
34251877Speter      header "arm_acle.h"
35251877Speter      export *
36251877Speter    }
37251877Speter
38251877Speter    explicit module neon {
39251877Speter      requires neon
40251877Speter      header "arm_neon.h"
41251877Speter      export *
42251877Speter    }
43251877Speter  }
44251877Speter
45251877Speter  explicit module intel {
46251877Speter    requires x86
47251877Speter    export *
48251877Speter
49251877Speter    header "immintrin.h"
50251877Speter    textual header "f16cintrin.h"
51251877Speter    textual header "avxintrin.h"
52251877Speter    textual header "avx2intrin.h"
53251877Speter    textual header "avx512fintrin.h"
54251877Speter    textual header "avx512erintrin.h"
55251877Speter    textual header "fmaintrin.h"
56251877Speter
57251877Speter    header "x86intrin.h"
58251877Speter    textual header "bmiintrin.h"
59251877Speter    textual header "bmi2intrin.h"
60251877Speter    textual header "lzcntintrin.h"
61251877Speter    textual header "xopintrin.h"
62251877Speter    textual header "fma4intrin.h"
63251877Speter    textual header "mwaitxintrin.h"
64251877Speter
65251877Speter    explicit module mm_malloc {
66251877Speter      header "mm_malloc.h"
67251877Speter      export * // note: for <stdlib.h> dependency
68251877Speter    }
69251877Speter
70251877Speter    explicit module cpuid {
71251877Speter      header "cpuid.h"
72251877Speter    }
73251877Speter
74251877Speter    explicit module mmx {
75251877Speter      header "mmintrin.h"
76251877Speter    }
77251877Speter
78251877Speter    explicit module sse {
79251877Speter      export mm_malloc
80251877Speter      export mmx
81251877Speter      export sse2 // note: for hackish <emmintrin.h> dependency
82251877Speter      header "xmmintrin.h"
83251877Speter    }
84251877Speter
85251877Speter    explicit module sse2 {
86251877Speter      export sse
87251877Speter      header "emmintrin.h"
88251877Speter    }
89251877Speter
90251877Speter    explicit module sse3 {
91251877Speter      export sse2
92251877Speter      header "pmmintrin.h"
93251877Speter    }
94251877Speter
95251877Speter    explicit module ssse3 {
96251877Speter      export sse3
97251877Speter      header "tmmintrin.h"
98251877Speter    }
99251877Speter
100251877Speter    explicit module sse4_1 {
101251877Speter      export ssse3
102251877Speter      header "smmintrin.h"
103251877Speter    }
104251877Speter
105251877Speter    explicit module sse4_2 {
106251877Speter      export sse4_1
107251877Speter      header "nmmintrin.h"
108251877Speter    }
109251877Speter
110251877Speter    explicit module sse4a {
111251877Speter      export sse3
112251877Speter      header "ammintrin.h"
113251877Speter    }
114251877Speter
115251877Speter    explicit module popcnt {
116251877Speter      header "popcntintrin.h"
117251877Speter    }
118251877Speter
119251877Speter    explicit module mm3dnow {
120251877Speter      header "mm3dnow.h"
121251877Speter    }
122251877Speter
123251877Speter    explicit module aes_pclmul {
124251877Speter      header "wmmintrin.h"
125251877Speter      export aes
126251877Speter      export pclmul
127251877Speter    }
128251877Speter
129251877Speter    explicit module aes {
130251877Speter      header "__wmmintrin_aes.h"
131251877Speter    }
132251877Speter
133251877Speter    explicit module pclmul {
134251877Speter      header "__wmmintrin_pclmul.h"
135251877Speter    }
136251877Speter  }
137251877Speter
138251877Speter  explicit module systemz {
139251877Speter    requires systemz
140251877Speter    export *
141251877Speter
142251877Speter    header "s390intrin.h"
143251877Speter
144251877Speter    explicit module htm {
145251877Speter      requires htm
146251877Speter      header "htmintrin.h"
147251877Speter      header "htmxlintrin.h"
148251877Speter    }
149251877Speter
150251877Speter    explicit module zvector {
151251877Speter      requires zvector, vx
152251877Speter      header "vecintrin.h"
153251877Speter    }
154251877Speter  }
155251877Speter}
156251877Speter
157251877Spetermodule _Builtin_stddef_max_align_t [system] [extern_c] {
158251877Speter  header "__stddef_max_align_t.h"
159251877Speter}
160251877Speter
161251877Spetermodule opencl_c {
162251877Speter  requires opencl
163251877Speter  header "opencl-c.h"
164251877Speter}
165251877Speter