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