module.modulemap revision 309124
1251877Speter/*===---- module.modulemap - intrinsics module map -------------------------=== 2251877Speter * 3251877Speter * Permission is hereby granted, free of charge, to any person obtaining a copy 4251877Speter * of this software and associated documentation files (the "Software"), to deal 5251877Speter * in the Software without restriction, including without limitation the rights 6251877Speter * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7251877Speter * copies of the Software, and to permit persons to whom the Software is 8251877Speter * furnished to do so, subject to the following conditions: 9251877Speter * 10251877Speter * The above copyright notice and this permission notice shall be included in 11251877Speter * all copies or substantial portions of the Software. 12251877Speter * 13251877Speter * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14251877Speter * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15251877Speter * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16251877Speter * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17251877Speter * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18251877Speter * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19251877Speter * THE SOFTWARE. 20251877Speter * 21251877Speter *===-----------------------------------------------------------------------=== 22251877Speter */ 23251877Speter 24251877Spetermodule _Builtin_intrinsics [system] [extern_c] { 25251877Speter explicit module altivec { 26251877Speter requires altivec 27251877Speter header "altivec.h" 28251877Speter } 29251877Speter 30251877Speter explicit module arm { 31251877Speter requires arm 32251877Speter 33251877Speter explicit module acle { 34251877Speter header "arm_acle.h" 35251877Speter export * 36251877Speter } 37251877Speter 38251877Speter explicit module neon { 39251877Speter requires neon 40251877Speter header "arm_neon.h" 41251877Speter export * 42251877Speter } 43251877Speter } 44251877Speter 45251877Speter explicit module intel { 46251877Speter requires x86 47251877Speter export * 48251877Speter 49251877Speter header "immintrin.h" 50251877Speter textual header "f16cintrin.h" 51251877Speter textual header "avxintrin.h" 52251877Speter textual header "avx2intrin.h" 53251877Speter textual header "avx512fintrin.h" 54251877Speter textual header "avx512erintrin.h" 55251877Speter textual header "fmaintrin.h" 56251877Speter 57251877Speter header "x86intrin.h" 58251877Speter textual header "bmiintrin.h" 59251877Speter textual header "bmi2intrin.h" 60251877Speter textual header "lzcntintrin.h" 61251877Speter textual header "xopintrin.h" 62251877Speter textual header "fma4intrin.h" 63251877Speter textual header "mwaitxintrin.h" 64251877Speter 65251877Speter explicit module mm_malloc { 66251877Speter header "mm_malloc.h" 67251877Speter export * // note: for <stdlib.h> dependency 68251877Speter } 69251877Speter 70251877Speter explicit module cpuid { 71251877Speter header "cpuid.h" 72251877Speter } 73251877Speter 74251877Speter explicit module mmx { 75251877Speter header "mmintrin.h" 76251877Speter } 77251877Speter 78251877Speter explicit module sse { 79251877Speter export mm_malloc 80251877Speter export mmx 81251877Speter export sse2 // note: for hackish <emmintrin.h> dependency 82251877Speter header "xmmintrin.h" 83251877Speter } 84251877Speter 85251877Speter explicit module sse2 { 86251877Speter export sse 87251877Speter header "emmintrin.h" 88251877Speter } 89251877Speter 90251877Speter explicit module sse3 { 91251877Speter export sse2 92251877Speter header "pmmintrin.h" 93251877Speter } 94251877Speter 95251877Speter explicit module ssse3 { 96251877Speter export sse3 97251877Speter header "tmmintrin.h" 98251877Speter } 99251877Speter 100251877Speter explicit module sse4_1 { 101251877Speter export ssse3 102251877Speter header "smmintrin.h" 103251877Speter } 104251877Speter 105251877Speter explicit module sse4_2 { 106251877Speter export sse4_1 107251877Speter header "nmmintrin.h" 108251877Speter } 109251877Speter 110251877Speter explicit module sse4a { 111251877Speter export sse3 112251877Speter header "ammintrin.h" 113251877Speter } 114251877Speter 115251877Speter explicit module popcnt { 116251877Speter header "popcntintrin.h" 117251877Speter } 118251877Speter 119251877Speter explicit module mm3dnow { 120251877Speter header "mm3dnow.h" 121251877Speter } 122251877Speter 123251877Speter explicit module aes_pclmul { 124251877Speter header "wmmintrin.h" 125251877Speter export aes 126251877Speter export pclmul 127251877Speter } 128251877Speter 129251877Speter explicit module aes { 130251877Speter header "__wmmintrin_aes.h" 131251877Speter } 132251877Speter 133251877Speter explicit module pclmul { 134251877Speter header "__wmmintrin_pclmul.h" 135251877Speter } 136251877Speter } 137251877Speter 138251877Speter explicit module systemz { 139251877Speter requires systemz 140251877Speter export * 141251877Speter 142251877Speter header "s390intrin.h" 143251877Speter 144251877Speter explicit module htm { 145251877Speter requires htm 146251877Speter header "htmintrin.h" 147251877Speter header "htmxlintrin.h" 148251877Speter } 149251877Speter 150251877Speter explicit module zvector { 151251877Speter requires zvector, vx 152251877Speter header "vecintrin.h" 153251877Speter } 154251877Speter } 155251877Speter} 156251877Speter 157251877Spetermodule _Builtin_stddef_max_align_t [system] [extern_c] { 158251877Speter header "__stddef_max_align_t.h" 159251877Speter} 160251877Speter 161251877Spetermodule opencl_c { 162251877Speter requires opencl 163251877Speter header "opencl-c.h" 164251877Speter} 165251877Speter