blob: d1d3aefd1910d67f44b9676cb79435a70404b8ac [file] [log] [blame]
Douglas Gregor232e3432012-01-31 21:57:50 +00001module _Builtin_intrinsics [system] {
2 explicit module altivec {
3 requires altivec
4 header "altivec.h"
5 }
6
Douglas Gregor5cad45b2013-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 Gregor0070c0b2012-01-30 06:38:25 +000017 explicit module intel {
18 requires x86
Douglas Gregor3ec66632012-02-02 18:42:48 +000019 export *
Douglas Gregor0070c0b2012-01-30 06:38:25 +000020
21 header "immintrin.h"
22 header "x86intrin.h"
23
Douglas Gregor3ec66632012-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 Gregor0070c0b2012-01-30 06:38:25 +000029 explicit module cpuid {
Richard Smith584f7dc2013-04-04 02:55:24 +000030 requires x86
Douglas Gregor0070c0b2012-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 Gregor4c698592012-11-05 20:11:10 +000039 explicit module f16c {
40 requires f16c
41 header "f16cintrin.h"
42 }
43
Douglas Gregor0070c0b2012-01-30 06:38:25 +000044 explicit module sse {
45 requires sse
46 export mmx
47 header "xmmintrin.h"
48 }
49
50 explicit module sse2 {
51 requires sse2
52 export sse
53 header "emmintrin.h"
54 }
55
56 explicit module sse3 {
57 requires sse3
58 export sse2
59 header "pmmintrin.h"
60 }
61
62 explicit module ssse3 {
63 requires ssse3
64 export sse3
65 header "tmmintrin.h"
66 }
67
68 explicit module sse4_1 {
69 requires sse41
70 export ssse3
71 header "smmintrin.h"
72 }
73
74 explicit module sse4_2 {
75 requires sse42
76 export sse4_1
77 header "nmmintrin.h"
78 }
79
Douglas Gregor4c698592012-11-05 20:11:10 +000080 explicit module sse4a {
81 requires sse4a
82 export sse3
Douglas Gregor10b4f2a2012-11-05 20:41:30 +000083 header "ammintrin.h"
Douglas Gregor4c698592012-11-05 20:11:10 +000084 }
85
Douglas Gregor0070c0b2012-01-30 06:38:25 +000086 explicit module avx {
87 requires avx
88 export sse4_2
89 header "avxintrin.h"
90 }
91
92 explicit module avx2 {
93 requires avx2
Douglas Gregor71022ca2012-01-30 18:49:05 +000094 export avx
Douglas Gregor0070c0b2012-01-30 06:38:25 +000095 header "avx2intrin.h"
96 }
97
98 explicit module bmi {
99 requires bmi
100 header "bmiintrin.h"
101 }
102
103 explicit module bmi2 {
104 requires bmi2
105 header "bmi2intrin.h"
106 }
107
Douglas Gregor4c698592012-11-05 20:11:10 +0000108 explicit module fma {
109 requires fma
110 header "fmaintrin.h"
111 }
112
Douglas Gregor0070c0b2012-01-30 06:38:25 +0000113 explicit module fma4 {
114 requires fma4
115 export sse3
116 header "fma4intrin.h"
117 }
118
119 explicit module lzcnt {
120 requires lzcnt
121 header "lzcntintrin.h"
122 }
123
124 explicit module popcnt {
125 requires popcnt
126 header "popcntintrin.h"
127 }
128
129 explicit module mm3dnow {
130 requires mm3dnow
131 header "mm3dnow.h"
132 }
Douglas Gregor4c698592012-11-05 20:11:10 +0000133
134 explicit module xop {
135 requires xop
136 export fma4
137 header "xopintrin.h"
138 }
Douglas Gregordc779ab2012-11-05 23:30:26 +0000139
140 explicit module aes_pclmul {
141 requires aes, pclmul
142 header "wmmintrin.h"
143 }
144
145 explicit module aes {
146 requires aes
147 header "__wmmintrin_aes.h"
148 }
149
150 explicit module pclmul {
151 requires pclmul
152 header "__wmmintrin_pclmul.h"
153 }
Douglas Gregor0070c0b2012-01-30 06:38:25 +0000154 }
Douglas Gregor3f09de62012-01-29 20:52:14 +0000155}