blob: aa219cb407c9f8d9bcf651a61d32642dc4ad7633 [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 Gregore727d212012-01-30 06:38:25 +00007 explicit module intel {
8 requires x86
Douglas Gregor2f04f182012-02-02 18:42:48 +00009 export *
Douglas Gregore727d212012-01-30 06:38:25 +000010
11 header "immintrin.h"
12 header "x86intrin.h"
13
Douglas Gregor2f04f182012-02-02 18:42:48 +000014 explicit module mm_malloc {
15 header "mm_malloc.h"
16 export * // note: for <stdlib.h> dependency
17 }
18
Douglas Gregore727d212012-01-30 06:38:25 +000019 explicit module cpuid {
Richard Smith4a3c6c62013-04-04 02:55:24 +000020 requires x86
Douglas Gregore727d212012-01-30 06:38:25 +000021 header "cpuid.h"
22 }
23
24 explicit module mmx {
25 requires mmx
26 header "mmintrin.h"
27 }
28
Douglas Gregora65c5a32012-11-05 20:11:10 +000029 explicit module f16c {
30 requires f16c
31 header "f16cintrin.h"
32 }
33
Douglas Gregore727d212012-01-30 06:38:25 +000034 explicit module sse {
35 requires sse
36 export mmx
37 header "xmmintrin.h"
38 }
39
40 explicit module sse2 {
41 requires sse2
42 export sse
43 header "emmintrin.h"
44 }
45
46 explicit module sse3 {
47 requires sse3
48 export sse2
49 header "pmmintrin.h"
50 }
51
52 explicit module ssse3 {
53 requires ssse3
54 export sse3
55 header "tmmintrin.h"
56 }
57
58 explicit module sse4_1 {
59 requires sse41
60 export ssse3
61 header "smmintrin.h"
62 }
63
64 explicit module sse4_2 {
65 requires sse42
66 export sse4_1
67 header "nmmintrin.h"
68 }
69
Douglas Gregora65c5a32012-11-05 20:11:10 +000070 explicit module sse4a {
71 requires sse4a
72 export sse3
Douglas Gregor6db024c2012-11-05 20:41:30 +000073 header "ammintrin.h"
Douglas Gregora65c5a32012-11-05 20:11:10 +000074 }
75
Douglas Gregore727d212012-01-30 06:38:25 +000076 explicit module avx {
77 requires avx
78 export sse4_2
79 header "avxintrin.h"
80 }
81
82 explicit module avx2 {
83 requires avx2
Douglas Gregorba0e3182012-01-30 18:49:05 +000084 export avx
Douglas Gregore727d212012-01-30 06:38:25 +000085 header "avx2intrin.h"
86 }
87
88 explicit module bmi {
89 requires bmi
90 header "bmiintrin.h"
91 }
92
93 explicit module bmi2 {
94 requires bmi2
95 header "bmi2intrin.h"
96 }
97
Douglas Gregora65c5a32012-11-05 20:11:10 +000098 explicit module fma {
99 requires fma
100 header "fmaintrin.h"
101 }
102
Douglas Gregore727d212012-01-30 06:38:25 +0000103 explicit module fma4 {
104 requires fma4
105 export sse3
106 header "fma4intrin.h"
107 }
108
109 explicit module lzcnt {
110 requires lzcnt
111 header "lzcntintrin.h"
112 }
113
114 explicit module popcnt {
115 requires popcnt
116 header "popcntintrin.h"
117 }
118
119 explicit module mm3dnow {
120 requires mm3dnow
121 header "mm3dnow.h"
122 }
Douglas Gregora65c5a32012-11-05 20:11:10 +0000123
124 explicit module xop {
125 requires xop
126 export fma4
127 header "xopintrin.h"
128 }
Douglas Gregor30431752012-11-05 23:30:26 +0000129
130 explicit module aes_pclmul {
131 requires aes, pclmul
132 header "wmmintrin.h"
133 }
134
135 explicit module aes {
136 requires aes
137 header "__wmmintrin_aes.h"
138 }
139
140 explicit module pclmul {
141 requires pclmul
142 header "__wmmintrin_pclmul.h"
143 }
Douglas Gregore727d212012-01-30 06:38:25 +0000144 }
Douglas Gregor3e80d8a2012-01-29 20:52:14 +0000145}