150
|
1 /*===---- module.modulemap - intrinsics module map -------------------------===
|
|
2 *
|
|
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
|
|
6 *
|
|
7 *===-----------------------------------------------------------------------===
|
|
8 */
|
|
9
|
|
10 module _Builtin_intrinsics [system] [extern_c] {
|
|
11 explicit module altivec {
|
|
12 requires altivec
|
|
13 header "altivec.h"
|
|
14 }
|
|
15
|
|
16 explicit module arm {
|
|
17 requires arm
|
|
18
|
|
19 explicit module acle {
|
|
20 header "arm_acle.h"
|
|
21 export *
|
|
22 }
|
|
23
|
|
24 explicit module neon {
|
|
25 requires neon
|
|
26 header "arm_neon.h"
|
|
27 header "arm_fp16.h"
|
|
28 export *
|
|
29 }
|
173
|
30
|
|
31 explicit module sve {
|
|
32 requires sve
|
|
33 header "arm_sve.h"
|
|
34 export *
|
|
35 }
|
150
|
36 }
|
|
37
|
|
38 explicit module intel {
|
|
39 requires x86
|
|
40 export *
|
|
41
|
|
42 header "immintrin.h"
|
|
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"
|
|
49
|
|
50 header "x86intrin.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"
|
|
66
|
|
67 textual header "__wmmintrin_aes.h"
|
|
68 textual header "__wmmintrin_pclmul.h"
|
|
69
|
|
70 explicit module mm_malloc {
|
|
71 requires !freestanding
|
|
72 header "mm_malloc.h"
|
|
73 export * // note: for <stdlib.h> dependency
|
|
74 }
|
|
75
|
|
76 explicit module cpuid {
|
|
77 requires gnuinlineasm
|
|
78 header "cpuid.h"
|
|
79 }
|
|
80
|
|
81 explicit module mmx {
|
|
82 header "mmintrin.h"
|
|
83 }
|
|
84
|
|
85 explicit module sse {
|
|
86 export mm_malloc
|
|
87 export mmx
|
|
88 export sse2 // note: for hackish <emmintrin.h> dependency
|
|
89 header "xmmintrin.h"
|
|
90 }
|
|
91
|
|
92 explicit module sse2 {
|
|
93 export sse
|
|
94 header "emmintrin.h"
|
|
95 }
|
|
96
|
|
97 explicit module sse3 {
|
|
98 export sse2
|
|
99 header "pmmintrin.h"
|
|
100 }
|
|
101
|
|
102 explicit module ssse3 {
|
|
103 export sse3
|
|
104 header "tmmintrin.h"
|
|
105 }
|
|
106
|
|
107 explicit module sse4_1 {
|
|
108 export ssse3
|
|
109 header "smmintrin.h"
|
|
110 }
|
|
111
|
|
112 explicit module sse4_2 {
|
|
113 export sse4_1
|
|
114 header "nmmintrin.h"
|
|
115 }
|
|
116
|
|
117 explicit module sse4a {
|
|
118 export sse3
|
|
119 header "ammintrin.h"
|
|
120 }
|
|
121
|
|
122 explicit module popcnt {
|
|
123 header "popcntintrin.h"
|
|
124 }
|
|
125
|
|
126 explicit module mm3dnow {
|
|
127 header "mm3dnow.h"
|
|
128 }
|
|
129
|
|
130 explicit module aes_pclmul {
|
|
131 header "wmmintrin.h"
|
|
132 export aes
|
|
133 export pclmul
|
|
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
|
|
156 module _Builtin_stddef_max_align_t [system] [extern_c] {
|
|
157 header "__stddef_max_align_t.h"
|
|
158 }
|
|
159
|
|
160 module opencl_c {
|
|
161 requires opencl
|
|
162 header "opencl-c.h"
|
|
163 header "opencl-c-base.h"
|
|
164 }
|