1c293a268SYunzhong Gao/*===---- module.modulemap - intrinsics module map -------------------------=== 2c293a268SYunzhong Gao * 34cf5743bSChandler Carruth * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 44cf5743bSChandler Carruth * See https://llvm.org/LICENSE.txt for license information. 54cf5743bSChandler Carruth * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6c293a268SYunzhong Gao * 7c293a268SYunzhong Gao *===-----------------------------------------------------------------------=== 8c293a268SYunzhong Gao */ 9c293a268SYunzhong Gao 10c67a774eSBen Langmuirmodule _Builtin_intrinsics [system] [extern_c] { 1147d1ca48SBen Langmuir explicit module altivec { 1247d1ca48SBen Langmuir requires altivec 1347d1ca48SBen Langmuir header "altivec.h" 1447d1ca48SBen Langmuir } 1547d1ca48SBen Langmuir 1647d1ca48SBen Langmuir explicit module arm { 1747d1ca48SBen Langmuir requires arm 1847d1ca48SBen Langmuir 19cd081398SYi Kong explicit module acle { 20cd081398SYi Kong header "arm_acle.h" 21cd081398SYi Kong export * 22cd081398SYi Kong } 23cd081398SYi Kong 2447d1ca48SBen Langmuir explicit module neon { 2547d1ca48SBen Langmuir requires neon 2647d1ca48SBen Langmuir header "arm_neon.h" 27ce8746d1SAbderrazek Zaafrani header "arm_fp16.h" 2847d1ca48SBen Langmuir export * 2947d1ca48SBen Langmuir } 30*5087ace6SSander de Smalen 31*5087ace6SSander de Smalen explicit module sve { 32*5087ace6SSander de Smalen requires sve 33*5087ace6SSander de Smalen header "arm_sve.h" 34*5087ace6SSander de Smalen export * 35*5087ace6SSander de Smalen } 3647d1ca48SBen Langmuir } 3747d1ca48SBen Langmuir 3847d1ca48SBen Langmuir explicit module intel { 3947d1ca48SBen Langmuir requires x86 4047d1ca48SBen Langmuir export * 4147d1ca48SBen Langmuir 4247d1ca48SBen Langmuir header "immintrin.h" 4320d4701bSRichard Smith textual header "f16cintrin.h" 4420d4701bSRichard Smith textual header "avxintrin.h" 4520d4701bSRichard Smith textual header "avx2intrin.h" 4620d4701bSRichard Smith textual header "avx512fintrin.h" 4720d4701bSRichard Smith textual header "avx512erintrin.h" 4820d4701bSRichard Smith textual header "fmaintrin.h" 4920d4701bSRichard Smith 5047d1ca48SBen Langmuir header "x86intrin.h" 5120d4701bSRichard Smith textual header "bmiintrin.h" 5220d4701bSRichard Smith textual header "bmi2intrin.h" 5320d4701bSRichard Smith textual header "lzcntintrin.h" 5420d4701bSRichard Smith textual header "xopintrin.h" 5520d4701bSRichard Smith textual header "fma4intrin.h" 56f5c3a63cSRichard Smith textual header "mwaitxintrin.h" 574574226cSCraig Topper textual header "clzerointrin.h" 585f1d10e2SCraig Topper textual header "wbnoinvdintrin.h" 595f1d10e2SCraig Topper textual header "cldemoteintrin.h" 605f1d10e2SCraig Topper textual header "waitpkgintrin.h" 61a51e0c22SGabor Buella textual header "movdirintrin.h" 62b0f310d5SGabor Buella textual header "pconfigintrin.h" 635e52fa90SGabor Buella textual header "sgxintrin.h" 643a757125SGabor Buella textual header "ptwriteintrin.h" 65078bb99aSGabor Buella textual header "invpcidintrin.h" 6647d1ca48SBen Langmuir 6783bdfe5eSRaphael Isemann textual header "__wmmintrin_aes.h" 6883bdfe5eSRaphael Isemann textual header "__wmmintrin_pclmul.h" 6983bdfe5eSRaphael Isemann 7047d1ca48SBen Langmuir explicit module mm_malloc { 71fb6358d2SElad Cohen requires !freestanding 7247d1ca48SBen Langmuir header "mm_malloc.h" 7347d1ca48SBen Langmuir export * // note: for <stdlib.h> dependency 7447d1ca48SBen Langmuir } 7547d1ca48SBen Langmuir 7647d1ca48SBen Langmuir explicit module cpuid { 776736e199SBruno Cardoso Lopes requires gnuinlineasm 7847d1ca48SBen Langmuir header "cpuid.h" 7947d1ca48SBen Langmuir } 8047d1ca48SBen Langmuir 8147d1ca48SBen Langmuir explicit module mmx { 8247d1ca48SBen Langmuir header "mmintrin.h" 8347d1ca48SBen Langmuir } 8447d1ca48SBen Langmuir 8547d1ca48SBen Langmuir explicit module sse { 86debce24cSJohn Thompson export mm_malloc 8747d1ca48SBen Langmuir export mmx 8823d8d033SRichard Smith export sse2 // note: for hackish <emmintrin.h> dependency 8947d1ca48SBen Langmuir header "xmmintrin.h" 9047d1ca48SBen Langmuir } 9147d1ca48SBen Langmuir 9247d1ca48SBen Langmuir explicit module sse2 { 9347d1ca48SBen Langmuir export sse 9447d1ca48SBen Langmuir header "emmintrin.h" 9547d1ca48SBen Langmuir } 9647d1ca48SBen Langmuir 9747d1ca48SBen Langmuir explicit module sse3 { 9847d1ca48SBen Langmuir export sse2 9947d1ca48SBen Langmuir header "pmmintrin.h" 10047d1ca48SBen Langmuir } 10147d1ca48SBen Langmuir 10247d1ca48SBen Langmuir explicit module ssse3 { 10347d1ca48SBen Langmuir export sse3 10447d1ca48SBen Langmuir header "tmmintrin.h" 10547d1ca48SBen Langmuir } 10647d1ca48SBen Langmuir 10747d1ca48SBen Langmuir explicit module sse4_1 { 10847d1ca48SBen Langmuir export ssse3 10947d1ca48SBen Langmuir header "smmintrin.h" 11047d1ca48SBen Langmuir } 11147d1ca48SBen Langmuir 11247d1ca48SBen Langmuir explicit module sse4_2 { 11347d1ca48SBen Langmuir export sse4_1 11447d1ca48SBen Langmuir header "nmmintrin.h" 11547d1ca48SBen Langmuir } 11647d1ca48SBen Langmuir 11747d1ca48SBen Langmuir explicit module sse4a { 11847d1ca48SBen Langmuir export sse3 11947d1ca48SBen Langmuir header "ammintrin.h" 12047d1ca48SBen Langmuir } 12147d1ca48SBen Langmuir 12247d1ca48SBen Langmuir explicit module popcnt { 12347d1ca48SBen Langmuir header "popcntintrin.h" 12447d1ca48SBen Langmuir } 12547d1ca48SBen Langmuir 12647d1ca48SBen Langmuir explicit module mm3dnow { 12747d1ca48SBen Langmuir header "mm3dnow.h" 12847d1ca48SBen Langmuir } 12947d1ca48SBen Langmuir 13047d1ca48SBen Langmuir explicit module aes_pclmul { 13147d1ca48SBen Langmuir header "wmmintrin.h" 132b7892ffcSJohn Thompson export aes 133b7892ffcSJohn Thompson export pclmul 13447d1ca48SBen Langmuir } 13547d1ca48SBen Langmuir } 136cc67344aSUlrich Weigand 137cc67344aSUlrich Weigand explicit module systemz { 138cc67344aSUlrich Weigand requires systemz 139cc67344aSUlrich Weigand export * 140cc67344aSUlrich Weigand 141cc67344aSUlrich Weigand header "s390intrin.h" 142cc67344aSUlrich Weigand 143cc67344aSUlrich Weigand explicit module htm { 144cc67344aSUlrich Weigand requires htm 145cc67344aSUlrich Weigand header "htmintrin.h" 146cc67344aSUlrich Weigand header "htmxlintrin.h" 147cc67344aSUlrich Weigand } 148ca25643aSUlrich Weigand 149ca25643aSUlrich Weigand explicit module zvector { 150ca25643aSUlrich Weigand requires zvector, vx 151ca25643aSUlrich Weigand header "vecintrin.h" 152ca25643aSUlrich Weigand } 153cc67344aSUlrich Weigand } 15447d1ca48SBen Langmuir} 155ef99e4d8SRichard Smith 156ef99e4d8SRichard Smithmodule _Builtin_stddef_max_align_t [system] [extern_c] { 157ef99e4d8SRichard Smith header "__stddef_max_align_t.h" 158ef99e4d8SRichard Smith} 159143f083eSYaxun Liu 160143f083eSYaxun Liumodule opencl_c { 161143f083eSYaxun Liu requires opencl 162143f083eSYaxun Liu header "opencl-c.h" 163af1c230eSSven van Haastregt header "opencl-c-base.h" 164143f083eSYaxun Liu} 165