Details | Last modification | View Log | RSS feed
| Rev | Author | Line No. | Line | 
|---|---|---|---|
| 14 | pmbaty | 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 | }  | 
        ||
| 30 | |||
| 31 |     explicit module sve { | 
        ||
| 32 | requires sve  | 
        ||
| 33 | header "arm_sve.h"  | 
        ||
| 34 | export *  | 
        ||
| 35 | }  | 
        ||
| 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 | }  |