blob: 9f7944dedbb03dc05995ebaf6bebf890ca90b52e [file] [log] [blame]
Douglas Gregoreb7b9eb2012-01-31 21:57:50 +00001module _Builtin_intrinsics [system] {
2 explicit module altivec {
3 requires altivec
4 header "altivec.h"
5 }
6
Douglas Gregor44b6fa32013-05-20 14:07:18 +00007 explicit module arm {
8 requires arm
9
10 explicit module neon {
11 requires neon
12 header "arm_neon.h"
13 export *
14 }
15 }
16
Douglas Gregore727d212012-01-30 06:38:25 +000017 explicit module intel {
18 requires x86
Douglas Gregor2f04f182012-02-02 18:42:48 +000019 export *
Douglas Gregore727d212012-01-30 06:38:25 +000020
21 header "immintrin.h"
22 header "x86intrin.h"
23
Douglas Gregor2f04f182012-02-02 18:42:48 +000024 explicit module mm_malloc {
25 header "mm_malloc.h"
26 export * // note: for <stdlib.h> dependency
27 }
28
Douglas Gregore727d212012-01-30 06:38:25 +000029 explicit module cpuid {
Richard Smith4a3c6c62013-04-04 02:55:24 +000030 requires x86
Douglas Gregore727d212012-01-30 06:38:25 +000031 header "cpuid.h"
32 }
33
34 explicit module mmx {
35 requires mmx
36 header "mmintrin.h"
37 }
38
Douglas Gregora65c5a32012-11-05 20:11:10 +000039 explicit module f16c {
40 requires f16c
41 header "f16cintrin.h"
42 }
43
Douglas Gregore727d212012-01-30 06:38:25 +000044 explicit module sse {
45 requires sse
46 export mmx
Douglas Gregordf983572013-06-07 22:49:44 +000047 export * // note: for hackish <emmintrin.h> dependency
Douglas Gregore727d212012-01-30 06:38:25 +000048 header "xmmintrin.h"
49 }
50
51 explicit module sse2 {
52 requires sse2
53 export sse
54 header "emmintrin.h"
55 }
56
57 explicit module sse3 {
58 requires sse3
59 export sse2
60 header "pmmintrin.h"
61 }
62
63 explicit module ssse3 {
64 requires ssse3
65 export sse3
66 header "tmmintrin.h"
67 }
68
69 explicit module sse4_1 {
70 requires sse41
71 export ssse3
72 header "smmintrin.h"
73 }
74
75 explicit module sse4_2 {
76 requires sse42
77 export sse4_1
78 header "nmmintrin.h"
79 }
80
Douglas Gregora65c5a32012-11-05 20:11:10 +000081 explicit module sse4a {
82 requires sse4a
83 export sse3
Douglas Gregor6db024c2012-11-05 20:41:30 +000084 header "ammintrin.h"
Douglas Gregora65c5a32012-11-05 20:11:10 +000085 }
86
Douglas Gregore727d212012-01-30 06:38:25 +000087 explicit module avx {
88 requires avx
89 export sse4_2
90 header "avxintrin.h"
91 }
92
93 explicit module avx2 {
94 requires avx2
Douglas Gregorba0e3182012-01-30 18:49:05 +000095 export avx
Douglas Gregore727d212012-01-30 06:38:25 +000096 header "avx2intrin.h"
97 }
98
99 explicit module bmi {
100 requires bmi
101 header "bmiintrin.h"
102 }
103
104 explicit module bmi2 {
105 requires bmi2
106 header "bmi2intrin.h"
107 }
108
Douglas Gregora65c5a32012-11-05 20:11:10 +0000109 explicit module fma {
110 requires fma
111 header "fmaintrin.h"
112 }
113
Douglas Gregore727d212012-01-30 06:38:25 +0000114 explicit module fma4 {
115 requires fma4
116 export sse3
117 header "fma4intrin.h"
118 }
119
120 explicit module lzcnt {
121 requires lzcnt
122 header "lzcntintrin.h"
123 }
124
125 explicit module popcnt {
126 requires popcnt
127 header "popcntintrin.h"
128 }
129
130 explicit module mm3dnow {
131 requires mm3dnow
132 header "mm3dnow.h"
133 }
Douglas Gregora65c5a32012-11-05 20:11:10 +0000134
135 explicit module xop {
136 requires xop
137 export fma4
138 header "xopintrin.h"
139 }
Douglas Gregor30431752012-11-05 23:30:26 +0000140
141 explicit module aes_pclmul {
142 requires aes, pclmul
143 header "wmmintrin.h"
144 }
145
146 explicit module aes {
147 requires aes
148 header "__wmmintrin_aes.h"
149 }
150
151 explicit module pclmul {
152 requires pclmul
153 header "__wmmintrin_pclmul.h"
154 }
Douglas Gregore727d212012-01-30 06:38:25 +0000155 }
Douglas Gregor3e80d8a2012-01-29 20:52:14 +0000156}