106f32e7eSjoerg/*===---- module.modulemap - intrinsics module map -------------------------=== 206f32e7eSjoerg * 306f32e7eSjoerg * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 406f32e7eSjoerg * See https://llvm.org/LICENSE.txt for license information. 506f32e7eSjoerg * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 606f32e7eSjoerg * 706f32e7eSjoerg *===-----------------------------------------------------------------------=== 806f32e7eSjoerg */ 906f32e7eSjoerg 1006f32e7eSjoergmodule _Builtin_intrinsics [system] [extern_c] { 1106f32e7eSjoerg explicit module altivec { 1206f32e7eSjoerg requires altivec 1306f32e7eSjoerg header "altivec.h" 1406f32e7eSjoerg } 1506f32e7eSjoerg 1606f32e7eSjoerg explicit module arm { 1706f32e7eSjoerg requires arm 1806f32e7eSjoerg 1906f32e7eSjoerg explicit module acle { 2006f32e7eSjoerg header "arm_acle.h" 2106f32e7eSjoerg export * 2206f32e7eSjoerg } 2306f32e7eSjoerg 2406f32e7eSjoerg explicit module neon { 2506f32e7eSjoerg requires neon 2606f32e7eSjoerg header "arm_neon.h" 2706f32e7eSjoerg header "arm_fp16.h" 2806f32e7eSjoerg export * 2906f32e7eSjoerg } 30*13fbcb42Sjoerg 31*13fbcb42Sjoerg explicit module sve { 32*13fbcb42Sjoerg requires sve 33*13fbcb42Sjoerg header "arm_sve.h" 34*13fbcb42Sjoerg export * 35*13fbcb42Sjoerg } 3606f32e7eSjoerg } 3706f32e7eSjoerg 3806f32e7eSjoerg explicit module intel { 3906f32e7eSjoerg requires x86 4006f32e7eSjoerg export * 4106f32e7eSjoerg 4206f32e7eSjoerg header "immintrin.h" 4306f32e7eSjoerg textual header "f16cintrin.h" 4406f32e7eSjoerg textual header "avxintrin.h" 4506f32e7eSjoerg textual header "avx2intrin.h" 4606f32e7eSjoerg textual header "avx512fintrin.h" 4706f32e7eSjoerg textual header "avx512erintrin.h" 4806f32e7eSjoerg textual header "fmaintrin.h" 4906f32e7eSjoerg 5006f32e7eSjoerg header "x86intrin.h" 5106f32e7eSjoerg textual header "bmiintrin.h" 5206f32e7eSjoerg textual header "bmi2intrin.h" 5306f32e7eSjoerg textual header "lzcntintrin.h" 5406f32e7eSjoerg textual header "xopintrin.h" 5506f32e7eSjoerg textual header "fma4intrin.h" 5606f32e7eSjoerg textual header "mwaitxintrin.h" 5706f32e7eSjoerg textual header "clzerointrin.h" 5806f32e7eSjoerg textual header "wbnoinvdintrin.h" 5906f32e7eSjoerg textual header "cldemoteintrin.h" 6006f32e7eSjoerg textual header "waitpkgintrin.h" 6106f32e7eSjoerg textual header "movdirintrin.h" 6206f32e7eSjoerg textual header "pconfigintrin.h" 6306f32e7eSjoerg textual header "sgxintrin.h" 6406f32e7eSjoerg textual header "ptwriteintrin.h" 6506f32e7eSjoerg textual header "invpcidintrin.h" 6606f32e7eSjoerg 6706f32e7eSjoerg textual header "__wmmintrin_aes.h" 6806f32e7eSjoerg textual header "__wmmintrin_pclmul.h" 6906f32e7eSjoerg 7006f32e7eSjoerg explicit module mm_malloc { 7106f32e7eSjoerg requires !freestanding 7206f32e7eSjoerg header "mm_malloc.h" 7306f32e7eSjoerg export * // note: for <stdlib.h> dependency 7406f32e7eSjoerg } 7506f32e7eSjoerg 7606f32e7eSjoerg explicit module cpuid { 7706f32e7eSjoerg requires gnuinlineasm 7806f32e7eSjoerg header "cpuid.h" 7906f32e7eSjoerg } 8006f32e7eSjoerg 8106f32e7eSjoerg explicit module mmx { 8206f32e7eSjoerg header "mmintrin.h" 8306f32e7eSjoerg } 8406f32e7eSjoerg 8506f32e7eSjoerg explicit module sse { 8606f32e7eSjoerg export mm_malloc 8706f32e7eSjoerg export mmx 8806f32e7eSjoerg export sse2 // note: for hackish <emmintrin.h> dependency 8906f32e7eSjoerg header "xmmintrin.h" 9006f32e7eSjoerg } 9106f32e7eSjoerg 9206f32e7eSjoerg explicit module sse2 { 9306f32e7eSjoerg export sse 9406f32e7eSjoerg header "emmintrin.h" 9506f32e7eSjoerg } 9606f32e7eSjoerg 9706f32e7eSjoerg explicit module sse3 { 9806f32e7eSjoerg export sse2 9906f32e7eSjoerg header "pmmintrin.h" 10006f32e7eSjoerg } 10106f32e7eSjoerg 10206f32e7eSjoerg explicit module ssse3 { 10306f32e7eSjoerg export sse3 10406f32e7eSjoerg header "tmmintrin.h" 10506f32e7eSjoerg } 10606f32e7eSjoerg 10706f32e7eSjoerg explicit module sse4_1 { 10806f32e7eSjoerg export ssse3 10906f32e7eSjoerg header "smmintrin.h" 11006f32e7eSjoerg } 11106f32e7eSjoerg 11206f32e7eSjoerg explicit module sse4_2 { 11306f32e7eSjoerg export sse4_1 11406f32e7eSjoerg header "nmmintrin.h" 11506f32e7eSjoerg } 11606f32e7eSjoerg 11706f32e7eSjoerg explicit module sse4a { 11806f32e7eSjoerg export sse3 11906f32e7eSjoerg header "ammintrin.h" 12006f32e7eSjoerg } 12106f32e7eSjoerg 12206f32e7eSjoerg explicit module popcnt { 12306f32e7eSjoerg header "popcntintrin.h" 12406f32e7eSjoerg } 12506f32e7eSjoerg 12606f32e7eSjoerg explicit module mm3dnow { 12706f32e7eSjoerg header "mm3dnow.h" 12806f32e7eSjoerg } 12906f32e7eSjoerg 13006f32e7eSjoerg explicit module aes_pclmul { 13106f32e7eSjoerg header "wmmintrin.h" 13206f32e7eSjoerg export aes 13306f32e7eSjoerg export pclmul 13406f32e7eSjoerg } 13506f32e7eSjoerg } 13606f32e7eSjoerg 13706f32e7eSjoerg explicit module systemz { 13806f32e7eSjoerg requires systemz 13906f32e7eSjoerg export * 14006f32e7eSjoerg 14106f32e7eSjoerg header "s390intrin.h" 14206f32e7eSjoerg 14306f32e7eSjoerg explicit module htm { 14406f32e7eSjoerg requires htm 14506f32e7eSjoerg header "htmintrin.h" 14606f32e7eSjoerg header "htmxlintrin.h" 14706f32e7eSjoerg } 14806f32e7eSjoerg 14906f32e7eSjoerg explicit module zvector { 15006f32e7eSjoerg requires zvector, vx 15106f32e7eSjoerg header "vecintrin.h" 15206f32e7eSjoerg } 15306f32e7eSjoerg } 15406f32e7eSjoerg} 15506f32e7eSjoerg 15606f32e7eSjoergmodule _Builtin_stddef_max_align_t [system] [extern_c] { 15706f32e7eSjoerg header "__stddef_max_align_t.h" 15806f32e7eSjoerg} 15906f32e7eSjoerg 16006f32e7eSjoergmodule opencl_c { 16106f32e7eSjoerg requires opencl 16206f32e7eSjoerg header "opencl-c.h" 16306f32e7eSjoerg header "opencl-c-base.h" 16406f32e7eSjoerg} 165