blob: 4b2cb857a699fc04fd3917a6b9e63ac73fff3dcd [file] [log] [blame]
Ben Murdoch61f157c2016-09-16 13:49:30 +01001/*===---- module.modulemap - intrinsics module map -------------------------===
2 *
3 * Permission is hereby granted, free of charge, to any person obtaining a copy
4 * of this software and associated documentation files (the "Software"), to deal
5 * in the Software without restriction, including without limitation the rights
6 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 * copies of the Software, and to permit persons to whom the Software is
8 * furnished to do so, subject to the following conditions:
9 *
10 * The above copyright notice and this permission notice shall be included in
11 * all copies or substantial portions of the Software.
12 *
13 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19 * THE SOFTWARE.
20 *
21 *===-----------------------------------------------------------------------===
22 */
23
Ben Murdoch097c5b22016-05-18 11:27:45 +010024module _Builtin_intrinsics [system] [extern_c] {
25 explicit module altivec {
26 requires altivec
27 header "altivec.h"
28 }
29
30 explicit module arm {
31 requires arm
32
33 explicit module acle {
34 header "arm_acle.h"
35 export *
36 }
37
38 explicit module neon {
39 requires neon
40 header "arm_neon.h"
41 export *
42 }
43 }
44
45 explicit module intel {
46 requires x86
47 export *
48
49 header "immintrin.h"
Ben Murdoch61f157c2016-09-16 13:49:30 +010050 textual header "f16cintrin.h"
51 textual header "avxintrin.h"
52 textual header "avx2intrin.h"
53 textual header "avx512fintrin.h"
54 textual header "avx512erintrin.h"
55 textual header "fmaintrin.h"
56
Ben Murdoch097c5b22016-05-18 11:27:45 +010057 header "x86intrin.h"
Ben Murdoch61f157c2016-09-16 13:49:30 +010058 textual header "bmiintrin.h"
59 textual header "bmi2intrin.h"
60 textual header "lzcntintrin.h"
61 textual header "xopintrin.h"
62 textual header "fma4intrin.h"
Ben Murdoch097c5b22016-05-18 11:27:45 +010063
64 explicit module mm_malloc {
65 header "mm_malloc.h"
66 export * // note: for <stdlib.h> dependency
67 }
68
69 explicit module cpuid {
70 header "cpuid.h"
71 }
72
73 explicit module mmx {
74 header "mmintrin.h"
75 }
76
77 explicit module sse {
78 export mm_malloc
79 export mmx
80 export sse2 // note: for hackish <emmintrin.h> dependency
81 header "xmmintrin.h"
82 }
83
84 explicit module sse2 {
85 export sse
86 header "emmintrin.h"
87 }
88
89 explicit module sse3 {
90 export sse2
91 header "pmmintrin.h"
92 }
93
94 explicit module ssse3 {
95 export sse3
96 header "tmmintrin.h"
97 }
98
99 explicit module sse4_1 {
100 export ssse3
101 header "smmintrin.h"
102 }
103
104 explicit module sse4_2 {
105 export sse4_1
106 header "nmmintrin.h"
107 }
108
109 explicit module sse4a {
110 export sse3
111 header "ammintrin.h"
112 }
113
114 explicit module popcnt {
115 header "popcntintrin.h"
116 }
117
118 explicit module mm3dnow {
119 header "mm3dnow.h"
120 }
121
Ben Murdoch097c5b22016-05-18 11:27:45 +0100122 explicit module aes_pclmul {
123 header "wmmintrin.h"
124 export aes
125 export pclmul
126 }
127
128 explicit module aes {
129 header "__wmmintrin_aes.h"
130 }
131
132 explicit module pclmul {
133 header "__wmmintrin_pclmul.h"
134 }
135 }
136
137 explicit module systemz {
138 requires systemz
139 export *
140
141 header "s390intrin.h"
142
143 explicit module htm {
144 requires htm
145 header "htmintrin.h"
146 header "htmxlintrin.h"
147 }
148
149 explicit module zvector {
150 requires zvector, vx
151 header "vecintrin.h"
152 }
153 }
154}
155
156module _Builtin_stddef_max_align_t [system] [extern_c] {
157 header "__stddef_max_align_t.h"
158}