]>
Commit | Line | Data |
---|---|---|
e9174d1e SL |
1 | // Copyright 2015 The Rust Project Developers. See the COPYRIGHT |
2 | // file at the top-level directory of this distribution and at | |
3 | // http://rust-lang.org/COPYRIGHT. | |
4 | // | |
5 | // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or | |
6 | // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license | |
7 | // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your | |
8 | // option. This file may not be copied, modified, or distributed | |
9 | // except according to those terms. | |
10 | ||
11 | // DO NOT EDIT: autogenerated by etc/platform-intrinsics/generator.py | |
12 | // ignore-tidy-linelength | |
13 | ||
14 | #![allow(unused_imports)] | |
15 | ||
54a0048b | 16 | use {Intrinsic, Type}; |
e9174d1e | 17 | use IntrinsicDef::Named; |
e9174d1e SL |
18 | |
19 | // The default inlining settings trigger a pathological behaviour in | |
20 | // LLVM, which causes makes compilation very slow. See #28273. | |
21 | #[inline(never)] | |
54a0048b | 22 | pub fn find(name: &str) -> Option<Intrinsic> { |
e9174d1e SL |
23 | if !name.starts_with("x86_mm") { return None } |
24 | Some(match &name["x86_mm".len()..] { | |
25 | "_movemask_ps" => Intrinsic { | |
54a0048b SL |
26 | inputs: { static INPUTS: [&'static Type; 1] = [&::F32x4]; &INPUTS }, |
27 | output: &::I32, | |
e9174d1e SL |
28 | definition: Named("llvm.x86.sse.movmsk.ps") |
29 | }, | |
30 | "_max_ps" => Intrinsic { | |
54a0048b SL |
31 | inputs: { static INPUTS: [&'static Type; 2] = [&::F32x4, &::F32x4]; &INPUTS }, |
32 | output: &::F32x4, | |
e9174d1e SL |
33 | definition: Named("llvm.x86.sse.max.ps") |
34 | }, | |
35 | "_min_ps" => Intrinsic { | |
54a0048b SL |
36 | inputs: { static INPUTS: [&'static Type; 2] = [&::F32x4, &::F32x4]; &INPUTS }, |
37 | output: &::F32x4, | |
e9174d1e SL |
38 | definition: Named("llvm.x86.sse.min.ps") |
39 | }, | |
40 | "_rsqrt_ps" => Intrinsic { | |
54a0048b SL |
41 | inputs: { static INPUTS: [&'static Type; 1] = [&::F32x4]; &INPUTS }, |
42 | output: &::F32x4, | |
e9174d1e SL |
43 | definition: Named("llvm.x86.sse.rsqrt.ps") |
44 | }, | |
45 | "_rcp_ps" => Intrinsic { | |
54a0048b SL |
46 | inputs: { static INPUTS: [&'static Type; 1] = [&::F32x4]; &INPUTS }, |
47 | output: &::F32x4, | |
e9174d1e SL |
48 | definition: Named("llvm.x86.sse.rcp.ps") |
49 | }, | |
50 | "_sqrt_ps" => Intrinsic { | |
54a0048b SL |
51 | inputs: { static INPUTS: [&'static Type; 1] = [&::F32x4]; &INPUTS }, |
52 | output: &::F32x4, | |
e9174d1e SL |
53 | definition: Named("llvm.sqrt.v4f32") |
54 | }, | |
55 | "_storeu_ps" => Intrinsic { | |
54a0048b SL |
56 | inputs: { static INPUTS: [&'static Type; 2] = [{ static PTR: Type = Type::Pointer(&::F32, Some(&::I8), false); &PTR }, &::F32x4]; &INPUTS }, |
57 | output: &::VOID, | |
e9174d1e SL |
58 | definition: Named("llvm.x86.sse.storeu.ps") |
59 | }, | |
60 | "_adds_epi8" => Intrinsic { | |
54a0048b SL |
61 | inputs: { static INPUTS: [&'static Type; 2] = [&::I8x16, &::I8x16]; &INPUTS }, |
62 | output: &::I8x16, | |
e9174d1e SL |
63 | definition: Named("llvm.x86.sse2.padds.b") |
64 | }, | |
65 | "_adds_epu8" => Intrinsic { | |
54a0048b SL |
66 | inputs: { static INPUTS: [&'static Type; 2] = [&::U8x16, &::U8x16]; &INPUTS }, |
67 | output: &::U8x16, | |
e9174d1e SL |
68 | definition: Named("llvm.x86.sse2.paddus.b") |
69 | }, | |
70 | "_adds_epi16" => Intrinsic { | |
54a0048b SL |
71 | inputs: { static INPUTS: [&'static Type; 2] = [&::I16x8, &::I16x8]; &INPUTS }, |
72 | output: &::I16x8, | |
e9174d1e SL |
73 | definition: Named("llvm.x86.sse2.padds.w") |
74 | }, | |
75 | "_adds_epu16" => Intrinsic { | |
54a0048b SL |
76 | inputs: { static INPUTS: [&'static Type; 2] = [&::U16x8, &::U16x8]; &INPUTS }, |
77 | output: &::U16x8, | |
e9174d1e SL |
78 | definition: Named("llvm.x86.sse2.paddus.w") |
79 | }, | |
80 | "_avg_epu8" => Intrinsic { | |
54a0048b SL |
81 | inputs: { static INPUTS: [&'static Type; 2] = [&::U8x16, &::U8x16]; &INPUTS }, |
82 | output: &::U8x16, | |
e9174d1e SL |
83 | definition: Named("llvm.x86.sse2.pavg.b") |
84 | }, | |
85 | "_avg_epu16" => Intrinsic { | |
54a0048b SL |
86 | inputs: { static INPUTS: [&'static Type; 2] = [&::U16x8, &::U16x8]; &INPUTS }, |
87 | output: &::U16x8, | |
e9174d1e SL |
88 | definition: Named("llvm.x86.sse2.pavg.w") |
89 | }, | |
90 | "_lfence" => Intrinsic { | |
54a0048b SL |
91 | inputs: { static INPUTS: [&'static Type; 0] = []; &INPUTS }, |
92 | output: &::VOID, | |
e9174d1e SL |
93 | definition: Named("llvm.x86.sse2.lfence") |
94 | }, | |
95 | "_madd_epi16" => Intrinsic { | |
54a0048b SL |
96 | inputs: { static INPUTS: [&'static Type; 2] = [&::I16x8, &::I16x8]; &INPUTS }, |
97 | output: &::I32x4, | |
e9174d1e SL |
98 | definition: Named("llvm.x86.sse2.pmadd.wd") |
99 | }, | |
100 | "_maskmoveu_si128" => Intrinsic { | |
54a0048b SL |
101 | inputs: { static INPUTS: [&'static Type; 3] = [&::U8x16, &::U8x16, { static PTR: Type = Type::Pointer(&::U8, None, false); &PTR }]; &INPUTS }, |
102 | output: &::VOID, | |
e9174d1e SL |
103 | definition: Named("llvm.x86.sse2.maskmov.dqu") |
104 | }, | |
105 | "_max_epi16" => Intrinsic { | |
54a0048b SL |
106 | inputs: { static INPUTS: [&'static Type; 2] = [&::I16x8, &::I16x8]; &INPUTS }, |
107 | output: &::I16x8, | |
e9174d1e SL |
108 | definition: Named("llvm.x86.sse2.pmaxs.w") |
109 | }, | |
110 | "_max_epu8" => Intrinsic { | |
54a0048b SL |
111 | inputs: { static INPUTS: [&'static Type; 2] = [&::U8x16, &::U8x16]; &INPUTS }, |
112 | output: &::U8x16, | |
e9174d1e SL |
113 | definition: Named("llvm.x86.sse2.pmaxu.b") |
114 | }, | |
115 | "_max_pd" => Intrinsic { | |
54a0048b SL |
116 | inputs: { static INPUTS: [&'static Type; 2] = [&::F64x2, &::F64x2]; &INPUTS }, |
117 | output: &::F64x2, | |
e9174d1e SL |
118 | definition: Named("llvm.x86.sse2.max.pd") |
119 | }, | |
120 | "_mfence" => Intrinsic { | |
54a0048b SL |
121 | inputs: { static INPUTS: [&'static Type; 0] = []; &INPUTS }, |
122 | output: &::VOID, | |
e9174d1e SL |
123 | definition: Named("llvm.x86.sse2.fence") |
124 | }, | |
125 | "_min_epi16" => Intrinsic { | |
54a0048b SL |
126 | inputs: { static INPUTS: [&'static Type; 2] = [&::I16x8, &::I16x8]; &INPUTS }, |
127 | output: &::I16x8, | |
e9174d1e SL |
128 | definition: Named("llvm.x86.sse2.pmins.w") |
129 | }, | |
130 | "_min_epu8" => Intrinsic { | |
54a0048b SL |
131 | inputs: { static INPUTS: [&'static Type; 2] = [&::U8x16, &::U8x16]; &INPUTS }, |
132 | output: &::U8x16, | |
e9174d1e SL |
133 | definition: Named("llvm.x86.sse2.pminu.b") |
134 | }, | |
135 | "_min_pd" => Intrinsic { | |
54a0048b SL |
136 | inputs: { static INPUTS: [&'static Type; 2] = [&::F64x2, &::F64x2]; &INPUTS }, |
137 | output: &::F64x2, | |
e9174d1e SL |
138 | definition: Named("llvm.x86.sse2.min.pd") |
139 | }, | |
140 | "_movemask_pd" => Intrinsic { | |
54a0048b SL |
141 | inputs: { static INPUTS: [&'static Type; 1] = [&::F64x2]; &INPUTS }, |
142 | output: &::I32, | |
e9174d1e SL |
143 | definition: Named("llvm.x86.sse2.movmsk.pd") |
144 | }, | |
145 | "_movemask_epi8" => Intrinsic { | |
54a0048b SL |
146 | inputs: { static INPUTS: [&'static Type; 1] = [&::I8x16]; &INPUTS }, |
147 | output: &::I32, | |
e9174d1e SL |
148 | definition: Named("llvm.x86.sse2.pmovmskb.128") |
149 | }, | |
150 | "_mul_epu32" => Intrinsic { | |
54a0048b SL |
151 | inputs: { static INPUTS: [&'static Type; 2] = [&::U32x4, &::U32x4]; &INPUTS }, |
152 | output: &::U64x2, | |
e9174d1e SL |
153 | definition: Named("llvm.x86.sse2.pmulu.dq") |
154 | }, | |
155 | "_mulhi_epi16" => Intrinsic { | |
54a0048b SL |
156 | inputs: { static INPUTS: [&'static Type; 2] = [&::I16x8, &::I16x8]; &INPUTS }, |
157 | output: &::I16x8, | |
e9174d1e SL |
158 | definition: Named("llvm.x86.sse2.pmulh.w") |
159 | }, | |
160 | "_mulhi_epu16" => Intrinsic { | |
54a0048b SL |
161 | inputs: { static INPUTS: [&'static Type; 2] = [&::U16x8, &::U16x8]; &INPUTS }, |
162 | output: &::U16x8, | |
e9174d1e SL |
163 | definition: Named("llvm.x86.sse2.pmulhu.w") |
164 | }, | |
165 | "_packs_epi16" => Intrinsic { | |
54a0048b SL |
166 | inputs: { static INPUTS: [&'static Type; 2] = [&::I16x8, &::I16x8]; &INPUTS }, |
167 | output: &::I8x16, | |
e9174d1e SL |
168 | definition: Named("llvm.x86.sse2.packsswb.128") |
169 | }, | |
170 | "_packs_epi32" => Intrinsic { | |
54a0048b SL |
171 | inputs: { static INPUTS: [&'static Type; 2] = [&::I32x4, &::I32x4]; &INPUTS }, |
172 | output: &::I16x8, | |
e9174d1e SL |
173 | definition: Named("llvm.x86.sse2.packssdw.128") |
174 | }, | |
175 | "_packus_epi16" => Intrinsic { | |
54a0048b SL |
176 | inputs: { static INPUTS: [&'static Type; 2] = [&::I16x8, &::I16x8]; &INPUTS }, |
177 | output: &::U8x16, | |
e9174d1e SL |
178 | definition: Named("llvm.x86.sse2.packuswb.128") |
179 | }, | |
180 | "_sad_epu8" => Intrinsic { | |
54a0048b SL |
181 | inputs: { static INPUTS: [&'static Type; 2] = [&::U8x16, &::U8x16]; &INPUTS }, |
182 | output: &::U64x2, | |
e9174d1e SL |
183 | definition: Named("llvm.x86.sse2.psad.bw") |
184 | }, | |
185 | "_sfence" => Intrinsic { | |
54a0048b SL |
186 | inputs: { static INPUTS: [&'static Type; 0] = []; &INPUTS }, |
187 | output: &::VOID, | |
e9174d1e SL |
188 | definition: Named("llvm.x86.sse2.sfence") |
189 | }, | |
190 | "_sqrt_pd" => Intrinsic { | |
54a0048b SL |
191 | inputs: { static INPUTS: [&'static Type; 1] = [&::F64x2]; &INPUTS }, |
192 | output: &::F64x2, | |
e9174d1e SL |
193 | definition: Named("llvm.sqrt.v2f64") |
194 | }, | |
195 | "_storeu_pd" => Intrinsic { | |
54a0048b SL |
196 | inputs: { static INPUTS: [&'static Type; 2] = [{ static PTR: Type = Type::Pointer(&::F64, Some(&::U8), false); &PTR }, &::F64x2]; &INPUTS }, |
197 | output: &::VOID, | |
e9174d1e SL |
198 | definition: Named("llvm.x86.sse2.storeu.pd") |
199 | }, | |
200 | "_storeu_si128" => Intrinsic { | |
54a0048b SL |
201 | inputs: { static INPUTS: [&'static Type; 2] = [{ static PTR: Type = Type::Pointer(&::U8x16, Some(&::U8), false); &PTR }, &::U8x16]; &INPUTS }, |
202 | output: &::VOID, | |
e9174d1e SL |
203 | definition: Named("llvm.x86.sse2.storeu.dq") |
204 | }, | |
205 | "_subs_epi8" => Intrinsic { | |
54a0048b SL |
206 | inputs: { static INPUTS: [&'static Type; 2] = [&::I8x16, &::I8x16]; &INPUTS }, |
207 | output: &::I8x16, | |
e9174d1e SL |
208 | definition: Named("llvm.x86.sse2.psubs.b") |
209 | }, | |
210 | "_subs_epu8" => Intrinsic { | |
54a0048b SL |
211 | inputs: { static INPUTS: [&'static Type; 2] = [&::U8x16, &::U8x16]; &INPUTS }, |
212 | output: &::U8x16, | |
e9174d1e SL |
213 | definition: Named("llvm.x86.sse2.psubus.b") |
214 | }, | |
215 | "_subs_epi16" => Intrinsic { | |
54a0048b SL |
216 | inputs: { static INPUTS: [&'static Type; 2] = [&::I16x8, &::I16x8]; &INPUTS }, |
217 | output: &::I16x8, | |
e9174d1e SL |
218 | definition: Named("llvm.x86.sse2.psubs.w") |
219 | }, | |
220 | "_subs_epu16" => Intrinsic { | |
54a0048b SL |
221 | inputs: { static INPUTS: [&'static Type; 2] = [&::U16x8, &::U16x8]; &INPUTS }, |
222 | output: &::U16x8, | |
e9174d1e SL |
223 | definition: Named("llvm.x86.sse2.psubus.w") |
224 | }, | |
225 | "_addsub_ps" => Intrinsic { | |
54a0048b SL |
226 | inputs: { static INPUTS: [&'static Type; 2] = [&::F32x4, &::F32x4]; &INPUTS }, |
227 | output: &::F32x4, | |
e9174d1e SL |
228 | definition: Named("llvm.x86.sse3.addsub.ps") |
229 | }, | |
230 | "_addsub_pd" => Intrinsic { | |
54a0048b SL |
231 | inputs: { static INPUTS: [&'static Type; 2] = [&::F64x2, &::F64x2]; &INPUTS }, |
232 | output: &::F64x2, | |
e9174d1e SL |
233 | definition: Named("llvm.x86.sse3.addsub.pd") |
234 | }, | |
235 | "_hadd_ps" => Intrinsic { | |
54a0048b SL |
236 | inputs: { static INPUTS: [&'static Type; 2] = [&::F32x4, &::F32x4]; &INPUTS }, |
237 | output: &::F32x4, | |
e9174d1e SL |
238 | definition: Named("llvm.x86.sse3.hadd.ps") |
239 | }, | |
240 | "_hadd_pd" => Intrinsic { | |
54a0048b SL |
241 | inputs: { static INPUTS: [&'static Type; 2] = [&::F64x2, &::F64x2]; &INPUTS }, |
242 | output: &::F64x2, | |
e9174d1e SL |
243 | definition: Named("llvm.x86.sse3.hadd.pd") |
244 | }, | |
245 | "_hsub_ps" => Intrinsic { | |
54a0048b SL |
246 | inputs: { static INPUTS: [&'static Type; 2] = [&::F32x4, &::F32x4]; &INPUTS }, |
247 | output: &::F32x4, | |
e9174d1e SL |
248 | definition: Named("llvm.x86.sse3.hsub.ps") |
249 | }, | |
250 | "_hsub_pd" => Intrinsic { | |
54a0048b SL |
251 | inputs: { static INPUTS: [&'static Type; 2] = [&::F64x2, &::F64x2]; &INPUTS }, |
252 | output: &::F64x2, | |
e9174d1e SL |
253 | definition: Named("llvm.x86.sse3.hsub.pd") |
254 | }, | |
255 | "_lddqu_si128" => Intrinsic { | |
54a0048b SL |
256 | inputs: { static INPUTS: [&'static Type; 1] = [{ static PTR: Type = Type::Pointer(&::U8x16, Some(&::I8), true); &PTR }]; &INPUTS }, |
257 | output: &::U8x16, | |
e9174d1e SL |
258 | definition: Named("llvm.x86.sse3.ldu.dq") |
259 | }, | |
260 | "_abs_epi8" => Intrinsic { | |
54a0048b SL |
261 | inputs: { static INPUTS: [&'static Type; 1] = [&::I8x16]; &INPUTS }, |
262 | output: &::I8x16, | |
e9174d1e SL |
263 | definition: Named("llvm.x86.ssse3.pabs.b.128") |
264 | }, | |
265 | "_abs_epi16" => Intrinsic { | |
54a0048b SL |
266 | inputs: { static INPUTS: [&'static Type; 1] = [&::I16x8]; &INPUTS }, |
267 | output: &::I16x8, | |
e9174d1e SL |
268 | definition: Named("llvm.x86.ssse3.pabs.w.128") |
269 | }, | |
270 | "_abs_epi32" => Intrinsic { | |
54a0048b SL |
271 | inputs: { static INPUTS: [&'static Type; 1] = [&::I32x4]; &INPUTS }, |
272 | output: &::I32x4, | |
e9174d1e SL |
273 | definition: Named("llvm.x86.ssse3.pabs.d.128") |
274 | }, | |
275 | "_hadd_epi16" => Intrinsic { | |
54a0048b SL |
276 | inputs: { static INPUTS: [&'static Type; 2] = [&::I16x8, &::I16x8]; &INPUTS }, |
277 | output: &::I16x8, | |
e9174d1e SL |
278 | definition: Named("llvm.x86.ssse3.phadd.w.128") |
279 | }, | |
280 | "_hadd_epi32" => Intrinsic { | |
54a0048b SL |
281 | inputs: { static INPUTS: [&'static Type; 2] = [&::I32x4, &::I32x4]; &INPUTS }, |
282 | output: &::I32x4, | |
e9174d1e SL |
283 | definition: Named("llvm.x86.ssse3.phadd.d.128") |
284 | }, | |
285 | "_hadds_epi16" => Intrinsic { | |
54a0048b SL |
286 | inputs: { static INPUTS: [&'static Type; 2] = [&::I16x8, &::I16x8]; &INPUTS }, |
287 | output: &::I16x8, | |
e9174d1e SL |
288 | definition: Named("llvm.x86.ssse3.phadd.sw.128") |
289 | }, | |
290 | "_hsub_epi16" => Intrinsic { | |
54a0048b SL |
291 | inputs: { static INPUTS: [&'static Type; 2] = [&::I16x8, &::I16x8]; &INPUTS }, |
292 | output: &::I16x8, | |
e9174d1e SL |
293 | definition: Named("llvm.x86.ssse3.phsub.w.128") |
294 | }, | |
295 | "_hsub_epi32" => Intrinsic { | |
54a0048b SL |
296 | inputs: { static INPUTS: [&'static Type; 2] = [&::I32x4, &::I32x4]; &INPUTS }, |
297 | output: &::I32x4, | |
e9174d1e SL |
298 | definition: Named("llvm.x86.ssse3.phsub.d.128") |
299 | }, | |
300 | "_hsubs_epi16" => Intrinsic { | |
54a0048b SL |
301 | inputs: { static INPUTS: [&'static Type; 2] = [&::I16x8, &::I16x8]; &INPUTS }, |
302 | output: &::I16x8, | |
e9174d1e SL |
303 | definition: Named("llvm.x86.ssse3.phsub.sw.128") |
304 | }, | |
305 | "_maddubs_epi16" => Intrinsic { | |
54a0048b SL |
306 | inputs: { static INPUTS: [&'static Type; 2] = [&::U8x16, &::I8x16]; &INPUTS }, |
307 | output: &::I16x8, | |
e9174d1e SL |
308 | definition: Named("llvm.x86.ssse3.pmadd.ub.sw.128") |
309 | }, | |
310 | "_mulhrs_epi16" => Intrinsic { | |
54a0048b SL |
311 | inputs: { static INPUTS: [&'static Type; 2] = [&::I16x8, &::I16x8]; &INPUTS }, |
312 | output: &::I16x8, | |
e9174d1e SL |
313 | definition: Named("llvm.x86.ssse3.pmul.hr.sw.128") |
314 | }, | |
315 | "_shuffle_epi8" => Intrinsic { | |
54a0048b SL |
316 | inputs: { static INPUTS: [&'static Type; 2] = [&::I8x16, &::I8x16]; &INPUTS }, |
317 | output: &::I8x16, | |
e9174d1e SL |
318 | definition: Named("llvm.x86.ssse3.pshuf.b.128") |
319 | }, | |
320 | "_sign_epi8" => Intrinsic { | |
54a0048b SL |
321 | inputs: { static INPUTS: [&'static Type; 2] = [&::I8x16, &::I8x16]; &INPUTS }, |
322 | output: &::I8x16, | |
e9174d1e SL |
323 | definition: Named("llvm.x86.ssse3.psign.b.128") |
324 | }, | |
325 | "_sign_epi16" => Intrinsic { | |
54a0048b SL |
326 | inputs: { static INPUTS: [&'static Type; 2] = [&::I16x8, &::I16x8]; &INPUTS }, |
327 | output: &::I16x8, | |
e9174d1e SL |
328 | definition: Named("llvm.x86.ssse3.psign.w.128") |
329 | }, | |
330 | "_sign_epi32" => Intrinsic { | |
54a0048b SL |
331 | inputs: { static INPUTS: [&'static Type; 2] = [&::I32x4, &::I32x4]; &INPUTS }, |
332 | output: &::I32x4, | |
e9174d1e SL |
333 | definition: Named("llvm.x86.ssse3.psign.d.128") |
334 | }, | |
335 | "_dp_ps" => Intrinsic { | |
54a0048b SL |
336 | inputs: { static INPUTS: [&'static Type; 3] = [&::F32x4, &::F32x4, &::I32_8]; &INPUTS }, |
337 | output: &::F32x4, | |
e9174d1e SL |
338 | definition: Named("llvm.x86.sse41.dpps") |
339 | }, | |
340 | "_dp_pd" => Intrinsic { | |
54a0048b SL |
341 | inputs: { static INPUTS: [&'static Type; 3] = [&::F64x2, &::F64x2, &::I32_8]; &INPUTS }, |
342 | output: &::F64x2, | |
e9174d1e SL |
343 | definition: Named("llvm.x86.sse41.dppd") |
344 | }, | |
345 | "_max_epi8" => Intrinsic { | |
54a0048b SL |
346 | inputs: { static INPUTS: [&'static Type; 2] = [&::I8x16, &::I8x16]; &INPUTS }, |
347 | output: &::I8x16, | |
e9174d1e SL |
348 | definition: Named("llvm.x86.sse41.pmaxsb") |
349 | }, | |
350 | "_max_epu16" => Intrinsic { | |
54a0048b SL |
351 | inputs: { static INPUTS: [&'static Type; 2] = [&::U16x8, &::U16x8]; &INPUTS }, |
352 | output: &::U16x8, | |
e9174d1e SL |
353 | definition: Named("llvm.x86.sse41.pmaxuw") |
354 | }, | |
355 | "_max_epi32" => Intrinsic { | |
54a0048b SL |
356 | inputs: { static INPUTS: [&'static Type; 2] = [&::I32x4, &::I32x4]; &INPUTS }, |
357 | output: &::I32x4, | |
e9174d1e SL |
358 | definition: Named("llvm.x86.sse41.pmaxsd") |
359 | }, | |
360 | "_max_epu32" => Intrinsic { | |
54a0048b SL |
361 | inputs: { static INPUTS: [&'static Type; 2] = [&::U32x4, &::U32x4]; &INPUTS }, |
362 | output: &::U32x4, | |
e9174d1e SL |
363 | definition: Named("llvm.x86.sse41.pmaxud") |
364 | }, | |
365 | "_min_epi8" => Intrinsic { | |
54a0048b SL |
366 | inputs: { static INPUTS: [&'static Type; 2] = [&::I8x16, &::I8x16]; &INPUTS }, |
367 | output: &::I8x16, | |
e9174d1e SL |
368 | definition: Named("llvm.x86.sse41.pminsb") |
369 | }, | |
370 | "_min_epu16" => Intrinsic { | |
54a0048b SL |
371 | inputs: { static INPUTS: [&'static Type; 2] = [&::U16x8, &::U16x8]; &INPUTS }, |
372 | output: &::U16x8, | |
e9174d1e SL |
373 | definition: Named("llvm.x86.sse41.pminuw") |
374 | }, | |
375 | "_min_epi32" => Intrinsic { | |
54a0048b SL |
376 | inputs: { static INPUTS: [&'static Type; 2] = [&::I32x4, &::I32x4]; &INPUTS }, |
377 | output: &::I32x4, | |
e9174d1e SL |
378 | definition: Named("llvm.x86.sse41.pminsd") |
379 | }, | |
380 | "_min_epu32" => Intrinsic { | |
54a0048b SL |
381 | inputs: { static INPUTS: [&'static Type; 2] = [&::U32x4, &::U32x4]; &INPUTS }, |
382 | output: &::U32x4, | |
e9174d1e SL |
383 | definition: Named("llvm.x86.sse41.pminud") |
384 | }, | |
385 | "_minpos_epu16" => Intrinsic { | |
54a0048b SL |
386 | inputs: { static INPUTS: [&'static Type; 1] = [&::U16x8]; &INPUTS }, |
387 | output: &::U16x8, | |
e9174d1e SL |
388 | definition: Named("llvm.x86.sse41.phminposuw") |
389 | }, | |
390 | "_mpsadbw_epu8" => Intrinsic { | |
54a0048b SL |
391 | inputs: { static INPUTS: [&'static Type; 3] = [&::U8x16, &::U8x16, &::I32_8]; &INPUTS }, |
392 | output: &::U16x8, | |
e9174d1e SL |
393 | definition: Named("llvm.x86.sse41.mpsadbw") |
394 | }, | |
395 | "_mul_epi32" => Intrinsic { | |
54a0048b SL |
396 | inputs: { static INPUTS: [&'static Type; 2] = [&::I32x4, &::I32x4]; &INPUTS }, |
397 | output: &::I64x2, | |
e9174d1e SL |
398 | definition: Named("llvm.x86.sse41.pmuldq") |
399 | }, | |
400 | "_packus_epi32" => Intrinsic { | |
54a0048b SL |
401 | inputs: { static INPUTS: [&'static Type; 2] = [&::I32x4, &::I32x4]; &INPUTS }, |
402 | output: &::U16x8, | |
e9174d1e SL |
403 | definition: Named("llvm.x86.sse41.packusdw") |
404 | }, | |
405 | "_testc_si128" => Intrinsic { | |
54a0048b SL |
406 | inputs: { static INPUTS: [&'static Type; 2] = [&::U64x2, &::U64x2]; &INPUTS }, |
407 | output: &::I32, | |
e9174d1e SL |
408 | definition: Named("llvm.x86.sse41.ptestc") |
409 | }, | |
410 | "_testnzc_si128" => Intrinsic { | |
54a0048b SL |
411 | inputs: { static INPUTS: [&'static Type; 2] = [&::U64x2, &::U64x2]; &INPUTS }, |
412 | output: &::I32, | |
e9174d1e SL |
413 | definition: Named("llvm.x86.sse41.ptestnzc") |
414 | }, | |
415 | "_testz_si128" => Intrinsic { | |
54a0048b SL |
416 | inputs: { static INPUTS: [&'static Type; 2] = [&::U64x2, &::U64x2]; &INPUTS }, |
417 | output: &::I32, | |
e9174d1e SL |
418 | definition: Named("llvm.x86.sse41.ptestz") |
419 | }, | |
420 | "_cmpestra" => Intrinsic { | |
54a0048b SL |
421 | inputs: { static INPUTS: [&'static Type; 5] = [&::I8x16, &::I32, &::I8x16, &::I32, &::I32_8]; &INPUTS }, |
422 | output: &::I32, | |
e9174d1e SL |
423 | definition: Named("llvm.x86.sse42.pcmpestria128") |
424 | }, | |
425 | "_cmpestrc" => Intrinsic { | |
54a0048b SL |
426 | inputs: { static INPUTS: [&'static Type; 5] = [&::I8x16, &::I32, &::I8x16, &::I32, &::I32_8]; &INPUTS }, |
427 | output: &::I32, | |
e9174d1e SL |
428 | definition: Named("llvm.x86.sse42.pcmpestric128") |
429 | }, | |
430 | "_cmpestri" => Intrinsic { | |
54a0048b SL |
431 | inputs: { static INPUTS: [&'static Type; 5] = [&::I8x16, &::I32, &::I8x16, &::I32, &::I32_8]; &INPUTS }, |
432 | output: &::I32, | |
e9174d1e SL |
433 | definition: Named("llvm.x86.sse42.pcmpestri128") |
434 | }, | |
435 | "_cmpestrm" => Intrinsic { | |
54a0048b SL |
436 | inputs: { static INPUTS: [&'static Type; 5] = [&::I8x16, &::I32, &::I8x16, &::I32, &::I32_8]; &INPUTS }, |
437 | output: &::I8x16, | |
e9174d1e SL |
438 | definition: Named("llvm.x86.sse42.pcmpestrm128") |
439 | }, | |
440 | "_cmpestro" => Intrinsic { | |
54a0048b SL |
441 | inputs: { static INPUTS: [&'static Type; 5] = [&::I8x16, &::I32, &::I8x16, &::I32, &::I32_8]; &INPUTS }, |
442 | output: &::I32, | |
e9174d1e SL |
443 | definition: Named("llvm.x86.sse42.pcmpestrio128") |
444 | }, | |
445 | "_cmpestrs" => Intrinsic { | |
54a0048b SL |
446 | inputs: { static INPUTS: [&'static Type; 5] = [&::I8x16, &::I32, &::I8x16, &::I32, &::I32_8]; &INPUTS }, |
447 | output: &::I32, | |
e9174d1e SL |
448 | definition: Named("llvm.x86.sse42.pcmpestris128") |
449 | }, | |
450 | "_cmpestrz" => Intrinsic { | |
54a0048b SL |
451 | inputs: { static INPUTS: [&'static Type; 5] = [&::I8x16, &::I32, &::I8x16, &::I32, &::I32_8]; &INPUTS }, |
452 | output: &::I32, | |
e9174d1e SL |
453 | definition: Named("llvm.x86.sse42.pcmpestriz128") |
454 | }, | |
455 | "_cmpistra" => Intrinsic { | |
54a0048b SL |
456 | inputs: { static INPUTS: [&'static Type; 3] = [&::I8x16, &::I8x16, &::I32_8]; &INPUTS }, |
457 | output: &::I32, | |
e9174d1e SL |
458 | definition: Named("llvm.x86.sse42.pcmpistria128") |
459 | }, | |
460 | "_cmpistrc" => Intrinsic { | |
54a0048b SL |
461 | inputs: { static INPUTS: [&'static Type; 3] = [&::I8x16, &::I8x16, &::I32_8]; &INPUTS }, |
462 | output: &::I32, | |
e9174d1e SL |
463 | definition: Named("llvm.x86.sse42.pcmpistric128") |
464 | }, | |
465 | "_cmpistri" => Intrinsic { | |
54a0048b SL |
466 | inputs: { static INPUTS: [&'static Type; 3] = [&::I8x16, &::I8x16, &::I32_8]; &INPUTS }, |
467 | output: &::I32, | |
e9174d1e SL |
468 | definition: Named("llvm.x86.sse42.pcmpistri128") |
469 | }, | |
470 | "_cmpistrm" => Intrinsic { | |
54a0048b SL |
471 | inputs: { static INPUTS: [&'static Type; 3] = [&::I8x16, &::I8x16, &::I32_8]; &INPUTS }, |
472 | output: &::I8x16, | |
e9174d1e SL |
473 | definition: Named("llvm.x86.sse42.pcmpistrm128") |
474 | }, | |
475 | "_cmpistro" => Intrinsic { | |
54a0048b SL |
476 | inputs: { static INPUTS: [&'static Type; 3] = [&::I8x16, &::I8x16, &::I32_8]; &INPUTS }, |
477 | output: &::I32, | |
e9174d1e SL |
478 | definition: Named("llvm.x86.sse42.pcmpistrio128") |
479 | }, | |
480 | "_cmpistrs" => Intrinsic { | |
54a0048b SL |
481 | inputs: { static INPUTS: [&'static Type; 3] = [&::I8x16, &::I8x16, &::I32_8]; &INPUTS }, |
482 | output: &::I32, | |
e9174d1e SL |
483 | definition: Named("llvm.x86.sse42.pcmpistris128") |
484 | }, | |
485 | "_cmpistrz" => Intrinsic { | |
54a0048b SL |
486 | inputs: { static INPUTS: [&'static Type; 3] = [&::I8x16, &::I8x16, &::I32_8]; &INPUTS }, |
487 | output: &::I32, | |
e9174d1e SL |
488 | definition: Named("llvm.x86.sse42.pcmpistriz128") |
489 | }, | |
490 | "256_addsub_ps" => Intrinsic { | |
54a0048b SL |
491 | inputs: { static INPUTS: [&'static Type; 2] = [&::F32x8, &::F32x8]; &INPUTS }, |
492 | output: &::F32x8, | |
e9174d1e SL |
493 | definition: Named("llvm.x86.avx.addsub.ps.256") |
494 | }, | |
495 | "256_addsub_pd" => Intrinsic { | |
54a0048b SL |
496 | inputs: { static INPUTS: [&'static Type; 2] = [&::F64x4, &::F64x4]; &INPUTS }, |
497 | output: &::F64x4, | |
e9174d1e SL |
498 | definition: Named("llvm.x86.avx.addsub.pd.256") |
499 | }, | |
54a0048b SL |
500 | "256_blendv_ps" => Intrinsic { |
501 | inputs: { static INPUTS: [&'static Type; 3] = [&::F32x8, &::F32x8, &::F32x8]; &INPUTS }, | |
502 | output: &::F32x8, | |
503 | definition: Named("llvm.x86.avx.blendv.ps.256") | |
504 | }, | |
505 | "256_blendv_pd" => Intrinsic { | |
506 | inputs: { static INPUTS: [&'static Type; 3] = [&::F64x4, &::F64x4, &::F64x4]; &INPUTS }, | |
507 | output: &::F64x4, | |
508 | definition: Named("llvm.x86.avx.blendv.pd.256") | |
509 | }, | |
510 | "256_broadcast_ps" => Intrinsic { | |
511 | inputs: { static INPUTS: [&'static Type; 1] = [{ static PTR: Type = Type::Pointer(&::I8, None, true); &PTR }]; &INPUTS }, | |
512 | output: &::F32x8, | |
513 | definition: Named("llvm.x86.avx.vbroadcastf128.ps.256") | |
514 | }, | |
515 | "256_broadcast_pd" => Intrinsic { | |
516 | inputs: { static INPUTS: [&'static Type; 1] = [{ static PTR: Type = Type::Pointer(&::I8, None, true); &PTR }]; &INPUTS }, | |
517 | output: &::F64x4, | |
518 | definition: Named("llvm.x86.avx.vbroadcastf128.pd.256") | |
519 | }, | |
520 | "256_cmp_ps" => Intrinsic { | |
521 | inputs: { static INPUTS: [&'static Type; 3] = [&::F32x8, &::F32x8, &::I8]; &INPUTS }, | |
522 | output: &::F32x8, | |
523 | definition: Named("llvm.x86.avx.cmp.ps.256") | |
524 | }, | |
525 | "256_cmp_pd" => Intrinsic { | |
526 | inputs: { static INPUTS: [&'static Type; 3] = [&::F64x4, &::F64x4, &::I8]; &INPUTS }, | |
527 | output: &::F64x4, | |
528 | definition: Named("llvm.x86.avx.cmp.pd.256") | |
529 | }, | |
530 | "256_cvtepi32_pd" => Intrinsic { | |
531 | inputs: { static INPUTS: [&'static Type; 1] = [&::I32x4]; &INPUTS }, | |
532 | output: &::F64x4, | |
533 | definition: Named("llvm.x86.avx.cvtdq2.pd.256") | |
534 | }, | |
535 | "256_cvtepi32_ps" => Intrinsic { | |
536 | inputs: { static INPUTS: [&'static Type; 1] = [&::I32x8]; &INPUTS }, | |
537 | output: &::F32x8, | |
538 | definition: Named("llvm.x86.avx.cvtdq2.ps.256") | |
539 | }, | |
540 | "256_cvtpd_epi32" => Intrinsic { | |
541 | inputs: { static INPUTS: [&'static Type; 1] = [&::F64x4]; &INPUTS }, | |
542 | output: &::I32x4, | |
543 | definition: Named("llvm.x86.avx.cvt.pd2dq.256") | |
544 | }, | |
545 | "256_cvtpd_ps" => Intrinsic { | |
546 | inputs: { static INPUTS: [&'static Type; 1] = [&::F64x4]; &INPUTS }, | |
547 | output: &::F32x4, | |
548 | definition: Named("llvm.x86.avx.cvt.pd2.ps.256") | |
549 | }, | |
550 | "256_cvtps_epi32" => Intrinsic { | |
551 | inputs: { static INPUTS: [&'static Type; 1] = [&::F32x8]; &INPUTS }, | |
552 | output: &::I32x8, | |
553 | definition: Named("llvm.x86.avx.cvt.ps2dq.256") | |
554 | }, | |
555 | "256_cvtps_pd" => Intrinsic { | |
556 | inputs: { static INPUTS: [&'static Type; 1] = [&::F32x4]; &INPUTS }, | |
557 | output: &::F64x4, | |
558 | definition: Named("llvm.x86.avx.cvt.ps2.pd.256") | |
559 | }, | |
560 | "256_cvttpd_epi32" => Intrinsic { | |
561 | inputs: { static INPUTS: [&'static Type; 1] = [&::F64x4]; &INPUTS }, | |
562 | output: &::I32x4, | |
563 | definition: Named("llvm.x86.avx.cvtt.pd2dq.256") | |
564 | }, | |
565 | "256_cvttps_epi32" => Intrinsic { | |
566 | inputs: { static INPUTS: [&'static Type; 1] = [&::F32x8]; &INPUTS }, | |
567 | output: &::I32x8, | |
568 | definition: Named("llvm.x86.avx.cvtt.ps2dq.256") | |
569 | }, | |
e9174d1e | 570 | "256_dp_ps" => Intrinsic { |
54a0048b SL |
571 | inputs: { static INPUTS: [&'static Type; 3] = [&::F32x8, &::F32x8, &::I32_8]; &INPUTS }, |
572 | output: &::F32x8, | |
e9174d1e SL |
573 | definition: Named("llvm.x86.avx.dp.ps.256") |
574 | }, | |
575 | "256_hadd_ps" => Intrinsic { | |
54a0048b SL |
576 | inputs: { static INPUTS: [&'static Type; 2] = [&::F32x8, &::F32x8]; &INPUTS }, |
577 | output: &::F32x8, | |
e9174d1e SL |
578 | definition: Named("llvm.x86.avx.hadd.ps.256") |
579 | }, | |
580 | "256_hadd_pd" => Intrinsic { | |
54a0048b SL |
581 | inputs: { static INPUTS: [&'static Type; 2] = [&::F64x4, &::F64x4]; &INPUTS }, |
582 | output: &::F64x4, | |
e9174d1e SL |
583 | definition: Named("llvm.x86.avx.hadd.pd.256") |
584 | }, | |
585 | "256_hsub_ps" => Intrinsic { | |
54a0048b SL |
586 | inputs: { static INPUTS: [&'static Type; 2] = [&::F32x8, &::F32x8]; &INPUTS }, |
587 | output: &::F32x8, | |
e9174d1e SL |
588 | definition: Named("llvm.x86.avx.hsub.ps.256") |
589 | }, | |
590 | "256_hsub_pd" => Intrinsic { | |
54a0048b SL |
591 | inputs: { static INPUTS: [&'static Type; 2] = [&::F64x4, &::F64x4]; &INPUTS }, |
592 | output: &::F64x4, | |
e9174d1e SL |
593 | definition: Named("llvm.x86.avx.hsub.pd.256") |
594 | }, | |
595 | "256_max_ps" => Intrinsic { | |
54a0048b SL |
596 | inputs: { static INPUTS: [&'static Type; 2] = [&::F32x8, &::F32x8]; &INPUTS }, |
597 | output: &::F32x8, | |
e9174d1e SL |
598 | definition: Named("llvm.x86.avx.max.ps.256") |
599 | }, | |
600 | "256_max_pd" => Intrinsic { | |
54a0048b SL |
601 | inputs: { static INPUTS: [&'static Type; 2] = [&::F64x4, &::F64x4]; &INPUTS }, |
602 | output: &::F64x4, | |
e9174d1e SL |
603 | definition: Named("llvm.x86.avx.max.pd.256") |
604 | }, | |
605 | "_maskload_ps" => Intrinsic { | |
54a0048b SL |
606 | inputs: { static INPUTS: [&'static Type; 2] = [{ static PTR: Type = Type::Pointer(&::F32, Some(&::I8), true); &PTR }, &::I32x4_F32]; &INPUTS }, |
607 | output: &::F32x4, | |
e9174d1e SL |
608 | definition: Named("llvm.x86.avx.maskload.ps") |
609 | }, | |
610 | "_maskload_pd" => Intrinsic { | |
54a0048b SL |
611 | inputs: { static INPUTS: [&'static Type; 2] = [{ static PTR: Type = Type::Pointer(&::F64, Some(&::I8), true); &PTR }, &::I64x2_F64]; &INPUTS }, |
612 | output: &::F64x2, | |
e9174d1e SL |
613 | definition: Named("llvm.x86.avx.maskload.pd") |
614 | }, | |
615 | "256_maskload_ps" => Intrinsic { | |
54a0048b SL |
616 | inputs: { static INPUTS: [&'static Type; 2] = [{ static PTR: Type = Type::Pointer(&::F32, Some(&::I8), true); &PTR }, &::I32x8_F32]; &INPUTS }, |
617 | output: &::F32x8, | |
e9174d1e SL |
618 | definition: Named("llvm.x86.avx.maskload.ps.256") |
619 | }, | |
620 | "256_maskload_pd" => Intrinsic { | |
54a0048b SL |
621 | inputs: { static INPUTS: [&'static Type; 2] = [{ static PTR: Type = Type::Pointer(&::F64, Some(&::I8), true); &PTR }, &::I64x4_F64]; &INPUTS }, |
622 | output: &::F64x4, | |
e9174d1e SL |
623 | definition: Named("llvm.x86.avx.maskload.pd.256") |
624 | }, | |
625 | "_maskstore_ps" => Intrinsic { | |
54a0048b SL |
626 | inputs: { static INPUTS: [&'static Type; 3] = [{ static PTR: Type = Type::Pointer(&::F32, Some(&::I8), false); &PTR }, &::I32x4_F32, &::F32x4]; &INPUTS }, |
627 | output: &::VOID, | |
e9174d1e SL |
628 | definition: Named("llvm.x86.avx.maskstore.ps") |
629 | }, | |
630 | "_maskstore_pd" => Intrinsic { | |
54a0048b SL |
631 | inputs: { static INPUTS: [&'static Type; 3] = [{ static PTR: Type = Type::Pointer(&::F64, Some(&::I8), false); &PTR }, &::I64x2_F64, &::F64x2]; &INPUTS }, |
632 | output: &::VOID, | |
e9174d1e SL |
633 | definition: Named("llvm.x86.avx.maskstore.pd") |
634 | }, | |
635 | "256_maskstore_ps" => Intrinsic { | |
54a0048b SL |
636 | inputs: { static INPUTS: [&'static Type; 3] = [{ static PTR: Type = Type::Pointer(&::F32, Some(&::I8), false); &PTR }, &::I32x8_F32, &::F32x8]; &INPUTS }, |
637 | output: &::VOID, | |
e9174d1e SL |
638 | definition: Named("llvm.x86.avx.maskstore.ps.256") |
639 | }, | |
640 | "256_maskstore_pd" => Intrinsic { | |
54a0048b SL |
641 | inputs: { static INPUTS: [&'static Type; 3] = [{ static PTR: Type = Type::Pointer(&::F64, Some(&::I8), false); &PTR }, &::I64x4_F64, &::F64x4]; &INPUTS }, |
642 | output: &::VOID, | |
e9174d1e SL |
643 | definition: Named("llvm.x86.avx.maskstore.pd.256") |
644 | }, | |
645 | "256_min_ps" => Intrinsic { | |
54a0048b SL |
646 | inputs: { static INPUTS: [&'static Type; 2] = [&::F32x8, &::F32x8]; &INPUTS }, |
647 | output: &::F32x8, | |
e9174d1e SL |
648 | definition: Named("llvm.x86.avx.min.ps.256") |
649 | }, | |
650 | "256_min_pd" => Intrinsic { | |
54a0048b SL |
651 | inputs: { static INPUTS: [&'static Type; 2] = [&::F64x4, &::F64x4]; &INPUTS }, |
652 | output: &::F64x4, | |
e9174d1e SL |
653 | definition: Named("llvm.x86.avx.min.pd.256") |
654 | }, | |
655 | "256_movemask_ps" => Intrinsic { | |
54a0048b SL |
656 | inputs: { static INPUTS: [&'static Type; 1] = [&::F32x8]; &INPUTS }, |
657 | output: &::I32, | |
e9174d1e SL |
658 | definition: Named("llvm.x86.avx.movmsk.ps.256") |
659 | }, | |
660 | "256_movemask_pd" => Intrinsic { | |
54a0048b SL |
661 | inputs: { static INPUTS: [&'static Type; 1] = [&::F64x4]; &INPUTS }, |
662 | output: &::I32, | |
e9174d1e SL |
663 | definition: Named("llvm.x86.avx.movmsk.pd.256") |
664 | }, | |
665 | "_permutevar_ps" => Intrinsic { | |
54a0048b SL |
666 | inputs: { static INPUTS: [&'static Type; 2] = [&::F32x4, &::I32x4]; &INPUTS }, |
667 | output: &::F32x4, | |
e9174d1e SL |
668 | definition: Named("llvm.x86.avx.vpermilvar.ps") |
669 | }, | |
670 | "_permutevar_pd" => Intrinsic { | |
54a0048b SL |
671 | inputs: { static INPUTS: [&'static Type; 2] = [&::F64x2, &::I64x2]; &INPUTS }, |
672 | output: &::F64x2, | |
e9174d1e SL |
673 | definition: Named("llvm.x86.avx.vpermilvar.pd") |
674 | }, | |
675 | "256_permutevar_ps" => Intrinsic { | |
54a0048b SL |
676 | inputs: { static INPUTS: [&'static Type; 2] = [&::F32x8, &::I32x8]; &INPUTS }, |
677 | output: &::F32x8, | |
e9174d1e SL |
678 | definition: Named("llvm.x86.avx.vpermilvar.ps.256") |
679 | }, | |
680 | "256_permutevar_pd" => Intrinsic { | |
54a0048b SL |
681 | inputs: { static INPUTS: [&'static Type; 2] = [&::F64x4, &::I64x4]; &INPUTS }, |
682 | output: &::F64x4, | |
e9174d1e SL |
683 | definition: Named("llvm.x86.avx.vpermilvar.pd.256") |
684 | }, | |
685 | "256_rcp_ps" => Intrinsic { | |
54a0048b SL |
686 | inputs: { static INPUTS: [&'static Type; 1] = [&::F32x8]; &INPUTS }, |
687 | output: &::F32x8, | |
e9174d1e SL |
688 | definition: Named("llvm.x86.avx.rcp.ps.256") |
689 | }, | |
690 | "256_rsqrt_ps" => Intrinsic { | |
54a0048b SL |
691 | inputs: { static INPUTS: [&'static Type; 1] = [&::F32x8]; &INPUTS }, |
692 | output: &::F32x8, | |
e9174d1e SL |
693 | definition: Named("llvm.x86.avx.rsqrt.ps.256") |
694 | }, | |
695 | "256_storeu_ps" => Intrinsic { | |
54a0048b SL |
696 | inputs: { static INPUTS: [&'static Type; 2] = [{ static PTR: Type = Type::Pointer(&::F32x8, Some(&::U8), false); &PTR }, &::F32x8]; &INPUTS }, |
697 | output: &::VOID, | |
e9174d1e SL |
698 | definition: Named("llvm.x86.avx.storeu.ps.256") |
699 | }, | |
700 | "256_storeu_pd" => Intrinsic { | |
54a0048b SL |
701 | inputs: { static INPUTS: [&'static Type; 2] = [{ static PTR: Type = Type::Pointer(&::F64x4, Some(&::U8), false); &PTR }, &::F64x4]; &INPUTS }, |
702 | output: &::VOID, | |
e9174d1e SL |
703 | definition: Named("llvm.x86.avx.storeu.ps.256") |
704 | }, | |
705 | "256_storeu_si256" => Intrinsic { | |
54a0048b SL |
706 | inputs: { static INPUTS: [&'static Type; 2] = [{ static PTR: Type = Type::Pointer(&::U8x32, Some(&::U8), false); &PTR }, &::U8x32]; &INPUTS }, |
707 | output: &::VOID, | |
e9174d1e SL |
708 | definition: Named("llvm.x86.avx.storeu.dq.256") |
709 | }, | |
710 | "256_sqrt_ps" => Intrinsic { | |
54a0048b SL |
711 | inputs: { static INPUTS: [&'static Type; 1] = [&::F32x8]; &INPUTS }, |
712 | output: &::F32x8, | |
e9174d1e SL |
713 | definition: Named("llvm.sqrt.v8f32") |
714 | }, | |
715 | "256_sqrt_pd" => Intrinsic { | |
54a0048b SL |
716 | inputs: { static INPUTS: [&'static Type; 1] = [&::F64x4]; &INPUTS }, |
717 | output: &::F64x4, | |
e9174d1e SL |
718 | definition: Named("llvm.sqrt.v4f64") |
719 | }, | |
720 | "_testc_ps" => Intrinsic { | |
54a0048b SL |
721 | inputs: { static INPUTS: [&'static Type; 2] = [&::F32x4, &::F32x4]; &INPUTS }, |
722 | output: &::I32, | |
e9174d1e SL |
723 | definition: Named("llvm.x86.avx.vtestc.ps") |
724 | }, | |
725 | "256_testc_ps" => Intrinsic { | |
54a0048b SL |
726 | inputs: { static INPUTS: [&'static Type; 2] = [&::F32x8, &::F32x8]; &INPUTS }, |
727 | output: &::I32, | |
e9174d1e SL |
728 | definition: Named("llvm.x86.avx.vtestc.ps.256") |
729 | }, | |
730 | "_testc_pd" => Intrinsic { | |
54a0048b SL |
731 | inputs: { static INPUTS: [&'static Type; 2] = [&::F64x2, &::F64x2]; &INPUTS }, |
732 | output: &::I32, | |
e9174d1e SL |
733 | definition: Named("llvm.x86.avx.vtestc.pd") |
734 | }, | |
735 | "256_testc_pd" => Intrinsic { | |
54a0048b SL |
736 | inputs: { static INPUTS: [&'static Type; 2] = [&::F64x4, &::F64x4]; &INPUTS }, |
737 | output: &::I32, | |
e9174d1e SL |
738 | definition: Named("llvm.x86.avx.vtestc.pd.256") |
739 | }, | |
740 | "256_testc_si256" => Intrinsic { | |
54a0048b SL |
741 | inputs: { static INPUTS: [&'static Type; 2] = [&::U64x4, &::U64x4]; &INPUTS }, |
742 | output: &::I32, | |
e9174d1e SL |
743 | definition: Named("llvm.x86.avx.ptestc.256") |
744 | }, | |
745 | "_testnzc_ps" => Intrinsic { | |
54a0048b SL |
746 | inputs: { static INPUTS: [&'static Type; 2] = [&::F32x4, &::F32x4]; &INPUTS }, |
747 | output: &::I32, | |
e9174d1e SL |
748 | definition: Named("llvm.x86.avx.vtestnzc.ps") |
749 | }, | |
750 | "256_testnzc_ps" => Intrinsic { | |
54a0048b SL |
751 | inputs: { static INPUTS: [&'static Type; 2] = [&::F32x8, &::F32x8]; &INPUTS }, |
752 | output: &::I32, | |
e9174d1e SL |
753 | definition: Named("llvm.x86.avx.vtestnzc.ps.256") |
754 | }, | |
755 | "_testnzc_pd" => Intrinsic { | |
54a0048b SL |
756 | inputs: { static INPUTS: [&'static Type; 2] = [&::F64x2, &::F64x2]; &INPUTS }, |
757 | output: &::I32, | |
e9174d1e SL |
758 | definition: Named("llvm.x86.avx.vtestnzc.pd") |
759 | }, | |
760 | "256_testnzc_pd" => Intrinsic { | |
54a0048b SL |
761 | inputs: { static INPUTS: [&'static Type; 2] = [&::F64x4, &::F64x4]; &INPUTS }, |
762 | output: &::I32, | |
e9174d1e SL |
763 | definition: Named("llvm.x86.avx.vtestnzc.pd.256") |
764 | }, | |
765 | "256_testnzc_si256" => Intrinsic { | |
54a0048b SL |
766 | inputs: { static INPUTS: [&'static Type; 2] = [&::U64x4, &::U64x4]; &INPUTS }, |
767 | output: &::I32, | |
e9174d1e SL |
768 | definition: Named("llvm.x86.avx.ptestnzc.256") |
769 | }, | |
770 | "_testz_ps" => Intrinsic { | |
54a0048b SL |
771 | inputs: { static INPUTS: [&'static Type; 2] = [&::F32x4, &::F32x4]; &INPUTS }, |
772 | output: &::I32, | |
e9174d1e SL |
773 | definition: Named("llvm.x86.avx.vtestz.ps") |
774 | }, | |
775 | "256_testz_ps" => Intrinsic { | |
54a0048b SL |
776 | inputs: { static INPUTS: [&'static Type; 2] = [&::F32x8, &::F32x8]; &INPUTS }, |
777 | output: &::I32, | |
e9174d1e SL |
778 | definition: Named("llvm.x86.avx.vtestz.ps.256") |
779 | }, | |
780 | "_testz_pd" => Intrinsic { | |
54a0048b SL |
781 | inputs: { static INPUTS: [&'static Type; 2] = [&::F64x2, &::F64x2]; &INPUTS }, |
782 | output: &::I32, | |
e9174d1e SL |
783 | definition: Named("llvm.x86.avx.vtestz.pd") |
784 | }, | |
785 | "256_testz_pd" => Intrinsic { | |
54a0048b SL |
786 | inputs: { static INPUTS: [&'static Type; 2] = [&::F64x4, &::F64x4]; &INPUTS }, |
787 | output: &::I32, | |
e9174d1e SL |
788 | definition: Named("llvm.x86.avx.vtestz.pd.256") |
789 | }, | |
790 | "256_testz_si256" => Intrinsic { | |
54a0048b SL |
791 | inputs: { static INPUTS: [&'static Type; 2] = [&::U64x4, &::U64x4]; &INPUTS }, |
792 | output: &::I32, | |
e9174d1e SL |
793 | definition: Named("llvm.x86.avx.ptestz.256") |
794 | }, | |
795 | "256_zeroall" => Intrinsic { | |
54a0048b SL |
796 | inputs: { static INPUTS: [&'static Type; 0] = []; &INPUTS }, |
797 | output: &::VOID, | |
e9174d1e SL |
798 | definition: Named("llvm.x86.avx.vzeroall") |
799 | }, | |
800 | "256_zeroupper" => Intrinsic { | |
54a0048b SL |
801 | inputs: { static INPUTS: [&'static Type; 0] = []; &INPUTS }, |
802 | output: &::VOID, | |
e9174d1e SL |
803 | definition: Named("llvm.x86.avx.vzeroupper") |
804 | }, | |
805 | "256_abs_epi8" => Intrinsic { | |
54a0048b SL |
806 | inputs: { static INPUTS: [&'static Type; 1] = [&::I8x32]; &INPUTS }, |
807 | output: &::I8x32, | |
e9174d1e SL |
808 | definition: Named("llvm.x86.avx2.pabs.b") |
809 | }, | |
810 | "256_abs_epi16" => Intrinsic { | |
54a0048b SL |
811 | inputs: { static INPUTS: [&'static Type; 1] = [&::I16x16]; &INPUTS }, |
812 | output: &::I16x16, | |
e9174d1e SL |
813 | definition: Named("llvm.x86.avx2.pabs.w") |
814 | }, | |
815 | "256_abs_epi32" => Intrinsic { | |
54a0048b SL |
816 | inputs: { static INPUTS: [&'static Type; 1] = [&::I32x8]; &INPUTS }, |
817 | output: &::I32x8, | |
e9174d1e SL |
818 | definition: Named("llvm.x86.avx2.pabs.d") |
819 | }, | |
820 | "256_adds_epi8" => Intrinsic { | |
54a0048b SL |
821 | inputs: { static INPUTS: [&'static Type; 2] = [&::I8x32, &::I8x32]; &INPUTS }, |
822 | output: &::I8x32, | |
e9174d1e SL |
823 | definition: Named("llvm.x86.avx2.padds.b") |
824 | }, | |
825 | "256_adds_epu8" => Intrinsic { | |
54a0048b SL |
826 | inputs: { static INPUTS: [&'static Type; 2] = [&::U8x32, &::U8x32]; &INPUTS }, |
827 | output: &::U8x32, | |
e9174d1e SL |
828 | definition: Named("llvm.x86.avx2.paddus.b") |
829 | }, | |
830 | "256_adds_epi16" => Intrinsic { | |
54a0048b SL |
831 | inputs: { static INPUTS: [&'static Type; 2] = [&::I16x16, &::I16x16]; &INPUTS }, |
832 | output: &::I16x16, | |
e9174d1e SL |
833 | definition: Named("llvm.x86.avx2.padds.w") |
834 | }, | |
835 | "256_adds_epu16" => Intrinsic { | |
54a0048b SL |
836 | inputs: { static INPUTS: [&'static Type; 2] = [&::U16x16, &::U16x16]; &INPUTS }, |
837 | output: &::U16x16, | |
e9174d1e SL |
838 | definition: Named("llvm.x86.avx2.paddus.w") |
839 | }, | |
840 | "256_avg_epu8" => Intrinsic { | |
54a0048b SL |
841 | inputs: { static INPUTS: [&'static Type; 2] = [&::U8x32, &::U8x32]; &INPUTS }, |
842 | output: &::U8x32, | |
e9174d1e SL |
843 | definition: Named("llvm.x86.avx2.pavg.b") |
844 | }, | |
845 | "256_avg_epu16" => Intrinsic { | |
54a0048b SL |
846 | inputs: { static INPUTS: [&'static Type; 2] = [&::U16x16, &::U16x16]; &INPUTS }, |
847 | output: &::U16x16, | |
e9174d1e SL |
848 | definition: Named("llvm.x86.avx2.pavg.w") |
849 | }, | |
850 | "256_hadd_epi16" => Intrinsic { | |
54a0048b SL |
851 | inputs: { static INPUTS: [&'static Type; 2] = [&::I16x16, &::I16x16]; &INPUTS }, |
852 | output: &::I16x16, | |
e9174d1e SL |
853 | definition: Named("llvm.x86.avx2.phadd.w") |
854 | }, | |
855 | "256_hadd_epi32" => Intrinsic { | |
54a0048b SL |
856 | inputs: { static INPUTS: [&'static Type; 2] = [&::I32x8, &::I32x8]; &INPUTS }, |
857 | output: &::I32x8, | |
e9174d1e SL |
858 | definition: Named("llvm.x86.avx2.phadd.d") |
859 | }, | |
860 | "256_hadds_epi16" => Intrinsic { | |
54a0048b SL |
861 | inputs: { static INPUTS: [&'static Type; 2] = [&::I16x16, &::I16x16]; &INPUTS }, |
862 | output: &::I16x16, | |
e9174d1e SL |
863 | definition: Named("llvm.x86.avx2.phadd.sw") |
864 | }, | |
865 | "256_hsub_epi16" => Intrinsic { | |
54a0048b SL |
866 | inputs: { static INPUTS: [&'static Type; 2] = [&::I16x16, &::I16x16]; &INPUTS }, |
867 | output: &::I16x16, | |
e9174d1e SL |
868 | definition: Named("llvm.x86.avx2.phsub.w") |
869 | }, | |
870 | "256_hsub_epi32" => Intrinsic { | |
54a0048b SL |
871 | inputs: { static INPUTS: [&'static Type; 2] = [&::I32x8, &::I32x8]; &INPUTS }, |
872 | output: &::I32x8, | |
e9174d1e SL |
873 | definition: Named("llvm.x86.avx2.phsub.d") |
874 | }, | |
875 | "256_hsubs_epi16" => Intrinsic { | |
54a0048b SL |
876 | inputs: { static INPUTS: [&'static Type; 2] = [&::I16x16, &::I16x16]; &INPUTS }, |
877 | output: &::I16x16, | |
e9174d1e SL |
878 | definition: Named("llvm.x86.avx2.phsub.sw") |
879 | }, | |
880 | "256_madd_epi16" => Intrinsic { | |
54a0048b SL |
881 | inputs: { static INPUTS: [&'static Type; 2] = [&::I16x16, &::I16x16]; &INPUTS }, |
882 | output: &::I32x8, | |
e9174d1e SL |
883 | definition: Named("llvm.x86.avx2.pmadd.wd") |
884 | }, | |
885 | "256_maddubs_epi16" => Intrinsic { | |
54a0048b SL |
886 | inputs: { static INPUTS: [&'static Type; 2] = [&::I8x32, &::I8x32]; &INPUTS }, |
887 | output: &::I16x16, | |
e9174d1e SL |
888 | definition: Named("llvm.x86.avx2.pmadd.ub.sw") |
889 | }, | |
890 | "_mask_i32gather_epi32" => Intrinsic { | |
54a0048b SL |
891 | inputs: { static INPUTS: [&'static Type; 5] = [&::I32x4, { static PTR: Type = Type::Pointer(&::I32, Some(&::I8), true); &PTR }, &::I32x4, &::I32x4, &::I32_8]; &INPUTS }, |
892 | output: &::I32x4, | |
e9174d1e SL |
893 | definition: Named("llvm.x86.avx2.gather.d.d") |
894 | }, | |
895 | "_mask_i32gather_ps" => Intrinsic { | |
54a0048b SL |
896 | inputs: { static INPUTS: [&'static Type; 5] = [&::F32x4, { static PTR: Type = Type::Pointer(&::F32, Some(&::I8), true); &PTR }, &::I32x4, &::I32x4_F32, &::I32_8]; &INPUTS }, |
897 | output: &::F32x4, | |
e9174d1e SL |
898 | definition: Named("llvm.x86.avx2.gather.d.ps") |
899 | }, | |
900 | "256_mask_i32gather_epi32" => Intrinsic { | |
54a0048b SL |
901 | inputs: { static INPUTS: [&'static Type; 5] = [&::I32x8, { static PTR: Type = Type::Pointer(&::I32, Some(&::I8), true); &PTR }, &::I32x8, &::I32x8, &::I32_8]; &INPUTS }, |
902 | output: &::I32x8, | |
e9174d1e SL |
903 | definition: Named("llvm.x86.avx2.gather.d.d.256") |
904 | }, | |
905 | "256_mask_i32gather_ps" => Intrinsic { | |
54a0048b SL |
906 | inputs: { static INPUTS: [&'static Type; 5] = [&::F32x8, { static PTR: Type = Type::Pointer(&::F32, Some(&::I8), true); &PTR }, &::I32x8, &::I32x8_F32, &::I32_8]; &INPUTS }, |
907 | output: &::F32x8, | |
e9174d1e SL |
908 | definition: Named("llvm.x86.avx2.gather.d.ps.256") |
909 | }, | |
910 | "_mask_i32gather_epi64" => Intrinsic { | |
54a0048b SL |
911 | inputs: { static INPUTS: [&'static Type; 5] = [&::I64x2, { static PTR: Type = Type::Pointer(&::I64, Some(&::I8), true); &PTR }, &::I32x4, &::I64x2, &::I32_8]; &INPUTS }, |
912 | output: &::I64x2, | |
e9174d1e SL |
913 | definition: Named("llvm.x86.avx2.gather.d.q") |
914 | }, | |
915 | "_mask_i32gather_pd" => Intrinsic { | |
54a0048b SL |
916 | inputs: { static INPUTS: [&'static Type; 5] = [&::F64x2, { static PTR: Type = Type::Pointer(&::F64, Some(&::I8), true); &PTR }, &::I32x4, &::I64x2_F64, &::I32_8]; &INPUTS }, |
917 | output: &::F64x2, | |
e9174d1e SL |
918 | definition: Named("llvm.x86.avx2.gather.d.pd") |
919 | }, | |
920 | "256_mask_i32gather_epi64" => Intrinsic { | |
54a0048b SL |
921 | inputs: { static INPUTS: [&'static Type; 5] = [&::I64x4, { static PTR: Type = Type::Pointer(&::I64, Some(&::I8), true); &PTR }, &::I32x4, &::I64x4, &::I32_8]; &INPUTS }, |
922 | output: &::I64x4, | |
e9174d1e SL |
923 | definition: Named("llvm.x86.avx2.gather.d.q.256") |
924 | }, | |
925 | "256_mask_i32gather_pd" => Intrinsic { | |
54a0048b SL |
926 | inputs: { static INPUTS: [&'static Type; 5] = [&::F64x4, { static PTR: Type = Type::Pointer(&::F64, Some(&::I8), true); &PTR }, &::I32x4, &::I64x4_F64, &::I32_8]; &INPUTS }, |
927 | output: &::F64x4, | |
e9174d1e SL |
928 | definition: Named("llvm.x86.avx2.gather.d.pd.256") |
929 | }, | |
930 | "_mask_i64gather_epi32" => Intrinsic { | |
54a0048b SL |
931 | inputs: { static INPUTS: [&'static Type; 5] = [&::I32x4, { static PTR: Type = Type::Pointer(&::I32, Some(&::I8), true); &PTR }, &::I64x2, &::I32x4, &::I32_8]; &INPUTS }, |
932 | output: &::I32x4, | |
e9174d1e SL |
933 | definition: Named("llvm.x86.avx2.gather.q.d") |
934 | }, | |
935 | "_mask_i64gather_ps" => Intrinsic { | |
54a0048b SL |
936 | inputs: { static INPUTS: [&'static Type; 5] = [&::F32x4, { static PTR: Type = Type::Pointer(&::F32, Some(&::I8), true); &PTR }, &::I64x2, &::I32x4_F32, &::I32_8]; &INPUTS }, |
937 | output: &::F32x4, | |
e9174d1e SL |
938 | definition: Named("llvm.x86.avx2.gather.q.ps") |
939 | }, | |
940 | "256_mask_i64gather_epi32" => Intrinsic { | |
54a0048b SL |
941 | inputs: { static INPUTS: [&'static Type; 5] = [&::I32x4, { static PTR: Type = Type::Pointer(&::I32, Some(&::I8), true); &PTR }, &::I64x4, &::I32x4, &::I32_8]; &INPUTS }, |
942 | output: &::I32x4, | |
e9174d1e SL |
943 | definition: Named("llvm.x86.avx2.gather.q.d") |
944 | }, | |
945 | "256_mask_i64gather_ps" => Intrinsic { | |
54a0048b SL |
946 | inputs: { static INPUTS: [&'static Type; 5] = [&::F32x4, { static PTR: Type = Type::Pointer(&::F32, Some(&::I8), true); &PTR }, &::I64x4, &::I32x4_F32, &::I32_8]; &INPUTS }, |
947 | output: &::F32x4, | |
e9174d1e SL |
948 | definition: Named("llvm.x86.avx2.gather.q.ps") |
949 | }, | |
950 | "_mask_i64gather_epi64" => Intrinsic { | |
54a0048b SL |
951 | inputs: { static INPUTS: [&'static Type; 5] = [&::I64x2, { static PTR: Type = Type::Pointer(&::I64, Some(&::I8), true); &PTR }, &::I64x2, &::I64x2, &::I32_8]; &INPUTS }, |
952 | output: &::I64x2, | |
e9174d1e SL |
953 | definition: Named("llvm.x86.avx2.gather.q.q") |
954 | }, | |
955 | "_mask_i64gather_pd" => Intrinsic { | |
54a0048b SL |
956 | inputs: { static INPUTS: [&'static Type; 5] = [&::F64x2, { static PTR: Type = Type::Pointer(&::F64, Some(&::I8), true); &PTR }, &::I64x2, &::I64x2_F64, &::I32_8]; &INPUTS }, |
957 | output: &::F64x2, | |
e9174d1e SL |
958 | definition: Named("llvm.x86.avx2.gather.q.pd") |
959 | }, | |
960 | "256_mask_i64gather_epi64" => Intrinsic { | |
54a0048b SL |
961 | inputs: { static INPUTS: [&'static Type; 5] = [&::I64x4, { static PTR: Type = Type::Pointer(&::I64, Some(&::I8), true); &PTR }, &::I64x4, &::I64x4, &::I32_8]; &INPUTS }, |
962 | output: &::I64x4, | |
e9174d1e SL |
963 | definition: Named("llvm.x86.avx2.gather.q.q.256") |
964 | }, | |
965 | "256_mask_i64gather_pd" => Intrinsic { | |
54a0048b SL |
966 | inputs: { static INPUTS: [&'static Type; 5] = [&::F64x4, { static PTR: Type = Type::Pointer(&::F64, Some(&::I8), true); &PTR }, &::I64x4, &::I64x4_F64, &::I32_8]; &INPUTS }, |
967 | output: &::F64x4, | |
e9174d1e SL |
968 | definition: Named("llvm.x86.avx2.gather.q.pd.256") |
969 | }, | |
970 | "_maskload_epi32" => Intrinsic { | |
54a0048b SL |
971 | inputs: { static INPUTS: [&'static Type; 2] = [{ static PTR: Type = Type::Pointer(&::I32x4, Some(&::I8), true); &PTR }, &::I32x4]; &INPUTS }, |
972 | output: &::I32x4, | |
e9174d1e SL |
973 | definition: Named("llvm.x86.avx2.maskload.d") |
974 | }, | |
975 | "_maskload_epi64" => Intrinsic { | |
54a0048b SL |
976 | inputs: { static INPUTS: [&'static Type; 2] = [{ static PTR: Type = Type::Pointer(&::I64x2, Some(&::I8), true); &PTR }, &::I64x2]; &INPUTS }, |
977 | output: &::I64x2, | |
e9174d1e SL |
978 | definition: Named("llvm.x86.avx2.maskload.q") |
979 | }, | |
980 | "256_maskload_epi32" => Intrinsic { | |
54a0048b SL |
981 | inputs: { static INPUTS: [&'static Type; 2] = [{ static PTR: Type = Type::Pointer(&::I32x8, Some(&::I8), true); &PTR }, &::I32x8]; &INPUTS }, |
982 | output: &::I32x8, | |
e9174d1e SL |
983 | definition: Named("llvm.x86.avx2.maskload.d.256") |
984 | }, | |
985 | "256_maskload_epi64" => Intrinsic { | |
54a0048b SL |
986 | inputs: { static INPUTS: [&'static Type; 2] = [{ static PTR: Type = Type::Pointer(&::I64x4, Some(&::I8), true); &PTR }, &::I64x4]; &INPUTS }, |
987 | output: &::I64x4, | |
e9174d1e SL |
988 | definition: Named("llvm.x86.avx2.maskload.q.256") |
989 | }, | |
990 | "_maskstore_epi32" => Intrinsic { | |
54a0048b SL |
991 | inputs: { static INPUTS: [&'static Type; 3] = [{ static PTR: Type = Type::Pointer(&::I32, Some(&::I8), false); &PTR }, &::I32x4, &::I32x4]; &INPUTS }, |
992 | output: &::VOID, | |
e9174d1e SL |
993 | definition: Named("llvm.x86.avx2.maskstore.d") |
994 | }, | |
995 | "_maskstore_epi64" => Intrinsic { | |
54a0048b SL |
996 | inputs: { static INPUTS: [&'static Type; 3] = [{ static PTR: Type = Type::Pointer(&::I64, Some(&::I8), false); &PTR }, &::I64x2, &::I64x2]; &INPUTS }, |
997 | output: &::VOID, | |
e9174d1e SL |
998 | definition: Named("llvm.x86.avx2.maskstore.q") |
999 | }, | |
1000 | "256_maskstore_epi32" => Intrinsic { | |
54a0048b SL |
1001 | inputs: { static INPUTS: [&'static Type; 3] = [{ static PTR: Type = Type::Pointer(&::I32, Some(&::I8), false); &PTR }, &::I32x8, &::I32x8]; &INPUTS }, |
1002 | output: &::VOID, | |
e9174d1e SL |
1003 | definition: Named("llvm.x86.avx2.maskstore.d.256") |
1004 | }, | |
1005 | "256_maskstore_epi64" => Intrinsic { | |
54a0048b SL |
1006 | inputs: { static INPUTS: [&'static Type; 3] = [{ static PTR: Type = Type::Pointer(&::I64, Some(&::I8), false); &PTR }, &::I64x4, &::I64x4]; &INPUTS }, |
1007 | output: &::VOID, | |
e9174d1e SL |
1008 | definition: Named("llvm.x86.avx2.maskstore.q.256") |
1009 | }, | |
1010 | "256_max_epi8" => Intrinsic { | |
54a0048b SL |
1011 | inputs: { static INPUTS: [&'static Type; 2] = [&::I8x32, &::I8x32]; &INPUTS }, |
1012 | output: &::I8x32, | |
e9174d1e SL |
1013 | definition: Named("llvm.x86.avx2.pmaxs.b") |
1014 | }, | |
1015 | "256_max_epu8" => Intrinsic { | |
54a0048b SL |
1016 | inputs: { static INPUTS: [&'static Type; 2] = [&::U8x32, &::U8x32]; &INPUTS }, |
1017 | output: &::U8x32, | |
e9174d1e SL |
1018 | definition: Named("llvm.x86.avx2.pmaxu.b") |
1019 | }, | |
1020 | "256_max_epi16" => Intrinsic { | |
54a0048b SL |
1021 | inputs: { static INPUTS: [&'static Type; 2] = [&::I16x16, &::I16x16]; &INPUTS }, |
1022 | output: &::I16x16, | |
e9174d1e SL |
1023 | definition: Named("llvm.x86.avx2.pmaxs.w") |
1024 | }, | |
1025 | "256_max_epu16" => Intrinsic { | |
54a0048b SL |
1026 | inputs: { static INPUTS: [&'static Type; 2] = [&::U16x16, &::U16x16]; &INPUTS }, |
1027 | output: &::U16x16, | |
e9174d1e SL |
1028 | definition: Named("llvm.x86.avx2.pmaxu.w") |
1029 | }, | |
1030 | "256_max_epi32" => Intrinsic { | |
54a0048b SL |
1031 | inputs: { static INPUTS: [&'static Type; 2] = [&::I32x8, &::I32x8]; &INPUTS }, |
1032 | output: &::I32x8, | |
e9174d1e SL |
1033 | definition: Named("llvm.x86.avx2.pmaxs.d") |
1034 | }, | |
1035 | "256_max_epu32" => Intrinsic { | |
54a0048b SL |
1036 | inputs: { static INPUTS: [&'static Type; 2] = [&::U32x8, &::U32x8]; &INPUTS }, |
1037 | output: &::U32x8, | |
e9174d1e SL |
1038 | definition: Named("llvm.x86.avx2.pmaxu.d") |
1039 | }, | |
1040 | "256_min_epi8" => Intrinsic { | |
54a0048b SL |
1041 | inputs: { static INPUTS: [&'static Type; 2] = [&::I8x32, &::I8x32]; &INPUTS }, |
1042 | output: &::I8x32, | |
e9174d1e SL |
1043 | definition: Named("llvm.x86.avx2.pmins.b") |
1044 | }, | |
1045 | "256_min_epu8" => Intrinsic { | |
54a0048b SL |
1046 | inputs: { static INPUTS: [&'static Type; 2] = [&::U8x32, &::U8x32]; &INPUTS }, |
1047 | output: &::U8x32, | |
e9174d1e SL |
1048 | definition: Named("llvm.x86.avx2.pminu.b") |
1049 | }, | |
1050 | "256_min_epi16" => Intrinsic { | |
54a0048b SL |
1051 | inputs: { static INPUTS: [&'static Type; 2] = [&::I16x16, &::I16x16]; &INPUTS }, |
1052 | output: &::I16x16, | |
e9174d1e SL |
1053 | definition: Named("llvm.x86.avx2.pmins.w") |
1054 | }, | |
1055 | "256_min_epu16" => Intrinsic { | |
54a0048b SL |
1056 | inputs: { static INPUTS: [&'static Type; 2] = [&::U16x16, &::U16x16]; &INPUTS }, |
1057 | output: &::U16x16, | |
e9174d1e SL |
1058 | definition: Named("llvm.x86.avx2.pminu.w") |
1059 | }, | |
1060 | "256_min_epi32" => Intrinsic { | |
54a0048b SL |
1061 | inputs: { static INPUTS: [&'static Type; 2] = [&::I32x8, &::I32x8]; &INPUTS }, |
1062 | output: &::I32x8, | |
e9174d1e SL |
1063 | definition: Named("llvm.x86.avx2.pmins.d") |
1064 | }, | |
1065 | "256_min_epu32" => Intrinsic { | |
54a0048b SL |
1066 | inputs: { static INPUTS: [&'static Type; 2] = [&::U32x8, &::U32x8]; &INPUTS }, |
1067 | output: &::U32x8, | |
e9174d1e SL |
1068 | definition: Named("llvm.x86.avx2.pminu.d") |
1069 | }, | |
1070 | "256_movemask_epi8" => Intrinsic { | |
54a0048b SL |
1071 | inputs: { static INPUTS: [&'static Type; 1] = [&::I8x32]; &INPUTS }, |
1072 | output: &::I32, | |
e9174d1e SL |
1073 | definition: Named("llvm.x86.avx2.pmovmskb") |
1074 | }, | |
1075 | "256_mpsadbw_epu8" => Intrinsic { | |
54a0048b SL |
1076 | inputs: { static INPUTS: [&'static Type; 3] = [&::U8x32, &::U8x32, &::I32_8]; &INPUTS }, |
1077 | output: &::U16x16, | |
e9174d1e SL |
1078 | definition: Named("llvm.x86.avx2.mpsadbw") |
1079 | }, | |
1080 | "256_mul_epi64" => Intrinsic { | |
54a0048b SL |
1081 | inputs: { static INPUTS: [&'static Type; 2] = [&::I32x8, &::I32x8]; &INPUTS }, |
1082 | output: &::I64x4, | |
e9174d1e SL |
1083 | definition: Named("llvm.x86.avx2.pmulq.dq") |
1084 | }, | |
1085 | "256_mul_epu64" => Intrinsic { | |
54a0048b SL |
1086 | inputs: { static INPUTS: [&'static Type; 2] = [&::U32x8, &::U32x8]; &INPUTS }, |
1087 | output: &::U64x4, | |
e9174d1e SL |
1088 | definition: Named("llvm.x86.avx2.pmulq.dq") |
1089 | }, | |
1090 | "256_mulhi_epi16" => Intrinsic { | |
54a0048b SL |
1091 | inputs: { static INPUTS: [&'static Type; 2] = [&::I16x16, &::I16x16]; &INPUTS }, |
1092 | output: &::I16x16, | |
e9174d1e SL |
1093 | definition: Named("llvm.x86.avx2.pmulhw.w") |
1094 | }, | |
1095 | "256_mulhi_epu16" => Intrinsic { | |
54a0048b SL |
1096 | inputs: { static INPUTS: [&'static Type; 2] = [&::U16x16, &::U16x16]; &INPUTS }, |
1097 | output: &::U16x16, | |
e9174d1e SL |
1098 | definition: Named("llvm.x86.avx2.pmulhw.w") |
1099 | }, | |
1100 | "256_mulhrs_epi16" => Intrinsic { | |
54a0048b SL |
1101 | inputs: { static INPUTS: [&'static Type; 2] = [&::I16x16, &::I16x16]; &INPUTS }, |
1102 | output: &::I16x16, | |
e9174d1e SL |
1103 | definition: Named("llvm.x86.avx2.pmul.hr.sw") |
1104 | }, | |
1105 | "256_packs_epi16" => Intrinsic { | |
54a0048b SL |
1106 | inputs: { static INPUTS: [&'static Type; 2] = [&::I16x16, &::I16x16]; &INPUTS }, |
1107 | output: &::I8x32, | |
e9174d1e SL |
1108 | definition: Named("llvm.x86.avx2.packsswb") |
1109 | }, | |
1110 | "256_packus_epi16" => Intrinsic { | |
54a0048b SL |
1111 | inputs: { static INPUTS: [&'static Type; 2] = [&::I16x16, &::I16x16]; &INPUTS }, |
1112 | output: &::U8x32, | |
e9174d1e SL |
1113 | definition: Named("llvm.x86.avx2.packuswb") |
1114 | }, | |
1115 | "256_packs_epi32" => Intrinsic { | |
54a0048b SL |
1116 | inputs: { static INPUTS: [&'static Type; 2] = [&::I32x8, &::I32x8]; &INPUTS }, |
1117 | output: &::I16x16, | |
e9174d1e SL |
1118 | definition: Named("llvm.x86.avx2.packssdw") |
1119 | }, | |
1120 | "256_packus_epi32" => Intrinsic { | |
54a0048b SL |
1121 | inputs: { static INPUTS: [&'static Type; 2] = [&::I32x8, &::I32x8]; &INPUTS }, |
1122 | output: &::U16x16, | |
e9174d1e SL |
1123 | definition: Named("llvm.x86.avx2.packusdw") |
1124 | }, | |
1125 | "256_permutevar8x32_epi32" => Intrinsic { | |
54a0048b SL |
1126 | inputs: { static INPUTS: [&'static Type; 2] = [&::I32x8, &::I32x8]; &INPUTS }, |
1127 | output: &::I32x8, | |
e9174d1e SL |
1128 | definition: Named("llvm.x86.avx2.permd") |
1129 | }, | |
1130 | "256_permutevar8x32_ps" => Intrinsic { | |
54a0048b SL |
1131 | inputs: { static INPUTS: [&'static Type; 2] = [&::F32x8, &::I32x8]; &INPUTS }, |
1132 | output: &::F32x8, | |
e9174d1e SL |
1133 | definition: Named("llvm.x86.avx2.permps") |
1134 | }, | |
1135 | "256_sad_epu8" => Intrinsic { | |
54a0048b SL |
1136 | inputs: { static INPUTS: [&'static Type; 2] = [&::U8x32, &::U8x32]; &INPUTS }, |
1137 | output: &::U8x32, | |
e9174d1e SL |
1138 | definition: Named("llvm.x86.avx2.psad.bw") |
1139 | }, | |
1140 | "256_shuffle_epi8" => Intrinsic { | |
54a0048b SL |
1141 | inputs: { static INPUTS: [&'static Type; 2] = [&::I8x32, &::I8x32]; &INPUTS }, |
1142 | output: &::I8x32, | |
e9174d1e SL |
1143 | definition: Named("llvm.x86.avx2.pshuf.b") |
1144 | }, | |
1145 | "256_sign_epi8" => Intrinsic { | |
54a0048b SL |
1146 | inputs: { static INPUTS: [&'static Type; 2] = [&::I8x32, &::I8x32]; &INPUTS }, |
1147 | output: &::I8x32, | |
e9174d1e SL |
1148 | definition: Named("llvm.x86.avx2.psign.b") |
1149 | }, | |
1150 | "256_sign_epi16" => Intrinsic { | |
54a0048b SL |
1151 | inputs: { static INPUTS: [&'static Type; 2] = [&::I16x16, &::I16x16]; &INPUTS }, |
1152 | output: &::I16x16, | |
e9174d1e SL |
1153 | definition: Named("llvm.x86.avx2.psign.w") |
1154 | }, | |
1155 | "256_sign_epi32" => Intrinsic { | |
54a0048b SL |
1156 | inputs: { static INPUTS: [&'static Type; 2] = [&::I32x8, &::I32x8]; &INPUTS }, |
1157 | output: &::I32x8, | |
e9174d1e SL |
1158 | definition: Named("llvm.x86.avx2.psign.d") |
1159 | }, | |
1160 | "256_subs_epi8" => Intrinsic { | |
54a0048b SL |
1161 | inputs: { static INPUTS: [&'static Type; 2] = [&::I8x32, &::I8x32]; &INPUTS }, |
1162 | output: &::I8x32, | |
e9174d1e SL |
1163 | definition: Named("llvm.x86.avx2.psubs.b") |
1164 | }, | |
1165 | "256_subs_epu8" => Intrinsic { | |
54a0048b SL |
1166 | inputs: { static INPUTS: [&'static Type; 2] = [&::U8x32, &::U8x32]; &INPUTS }, |
1167 | output: &::U8x32, | |
e9174d1e SL |
1168 | definition: Named("llvm.x86.avx2.psubus.b") |
1169 | }, | |
1170 | "256_subs_epi16" => Intrinsic { | |
54a0048b SL |
1171 | inputs: { static INPUTS: [&'static Type; 2] = [&::I16x16, &::I16x16]; &INPUTS }, |
1172 | output: &::I16x16, | |
e9174d1e SL |
1173 | definition: Named("llvm.x86.avx2.psubs.w") |
1174 | }, | |
1175 | "256_subs_epu16" => Intrinsic { | |
54a0048b SL |
1176 | inputs: { static INPUTS: [&'static Type; 2] = [&::U16x16, &::U16x16]; &INPUTS }, |
1177 | output: &::U16x16, | |
e9174d1e SL |
1178 | definition: Named("llvm.x86.avx2.psubus.w") |
1179 | }, | |
54a0048b SL |
1180 | "_fmadd_ps" => Intrinsic { |
1181 | inputs: { static INPUTS: [&'static Type; 3] = [&::F32x4, &::F32x4, &::F32x4]; &INPUTS }, | |
1182 | output: &::F32x4, | |
1183 | definition: Named("llvm.x86.fma.vfmadd.ps") | |
1184 | }, | |
1185 | "_fmadd_pd" => Intrinsic { | |
1186 | inputs: { static INPUTS: [&'static Type; 3] = [&::F64x2, &::F64x2, &::F64x2]; &INPUTS }, | |
1187 | output: &::F64x2, | |
1188 | definition: Named("llvm.x86.fma.vfmadd.pd") | |
1189 | }, | |
1190 | "256_fmadd_ps" => Intrinsic { | |
1191 | inputs: { static INPUTS: [&'static Type; 3] = [&::F32x8, &::F32x8, &::F32x8]; &INPUTS }, | |
1192 | output: &::F32x8, | |
1193 | definition: Named("llvm.x86.fma.vfmadd.ps.256") | |
1194 | }, | |
1195 | "256_fmadd_pd" => Intrinsic { | |
1196 | inputs: { static INPUTS: [&'static Type; 3] = [&::F64x4, &::F64x4, &::F64x4]; &INPUTS }, | |
1197 | output: &::F64x4, | |
1198 | definition: Named("llvm.x86.fma.vfmadd.pd.256") | |
1199 | }, | |
1200 | "_fmaddsub_ps" => Intrinsic { | |
1201 | inputs: { static INPUTS: [&'static Type; 3] = [&::F32x4, &::F32x4, &::F32x4]; &INPUTS }, | |
1202 | output: &::F32x4, | |
1203 | definition: Named("llvm.x86.fma.vfmaddsub.ps") | |
1204 | }, | |
1205 | "_fmaddsub_pd" => Intrinsic { | |
1206 | inputs: { static INPUTS: [&'static Type; 3] = [&::F64x2, &::F64x2, &::F64x2]; &INPUTS }, | |
1207 | output: &::F64x2, | |
1208 | definition: Named("llvm.x86.fma.vfmaddsub.pd") | |
1209 | }, | |
1210 | "256_fmaddsub_ps" => Intrinsic { | |
1211 | inputs: { static INPUTS: [&'static Type; 3] = [&::F32x8, &::F32x8, &::F32x8]; &INPUTS }, | |
1212 | output: &::F32x8, | |
1213 | definition: Named("llvm.x86.fma.vfmaddsub.ps.256") | |
1214 | }, | |
1215 | "256_fmaddsub_pd" => Intrinsic { | |
1216 | inputs: { static INPUTS: [&'static Type; 3] = [&::F64x4, &::F64x4, &::F64x4]; &INPUTS }, | |
1217 | output: &::F64x4, | |
1218 | definition: Named("llvm.x86.fma.vfmaddsub.pd.256") | |
1219 | }, | |
1220 | "_fmsub_ps" => Intrinsic { | |
1221 | inputs: { static INPUTS: [&'static Type; 3] = [&::F32x4, &::F32x4, &::F32x4]; &INPUTS }, | |
1222 | output: &::F32x4, | |
1223 | definition: Named("llvm.x86.fma.vfmsub.ps") | |
1224 | }, | |
1225 | "_fmsub_pd" => Intrinsic { | |
1226 | inputs: { static INPUTS: [&'static Type; 3] = [&::F64x2, &::F64x2, &::F64x2]; &INPUTS }, | |
1227 | output: &::F64x2, | |
1228 | definition: Named("llvm.x86.fma.vfmsub.pd") | |
1229 | }, | |
1230 | "256_fmsub_ps" => Intrinsic { | |
1231 | inputs: { static INPUTS: [&'static Type; 3] = [&::F32x8, &::F32x8, &::F32x8]; &INPUTS }, | |
1232 | output: &::F32x8, | |
1233 | definition: Named("llvm.x86.fma.vfmsub.ps.256") | |
1234 | }, | |
1235 | "256_fmsub_pd" => Intrinsic { | |
1236 | inputs: { static INPUTS: [&'static Type; 3] = [&::F64x4, &::F64x4, &::F64x4]; &INPUTS }, | |
1237 | output: &::F64x4, | |
1238 | definition: Named("llvm.x86.fma.vfmsub.pd.256") | |
1239 | }, | |
1240 | "_fmsubadd_ps" => Intrinsic { | |
1241 | inputs: { static INPUTS: [&'static Type; 3] = [&::F32x4, &::F32x4, &::F32x4]; &INPUTS }, | |
1242 | output: &::F32x4, | |
1243 | definition: Named("llvm.x86.fma.vfmsubadd.ps") | |
1244 | }, | |
1245 | "_fmsubadd_pd" => Intrinsic { | |
1246 | inputs: { static INPUTS: [&'static Type; 3] = [&::F64x2, &::F64x2, &::F64x2]; &INPUTS }, | |
1247 | output: &::F64x2, | |
1248 | definition: Named("llvm.x86.fma.vfmsubadd.pd") | |
1249 | }, | |
1250 | "256_fmsubadd_ps" => Intrinsic { | |
1251 | inputs: { static INPUTS: [&'static Type; 3] = [&::F32x8, &::F32x8, &::F32x8]; &INPUTS }, | |
1252 | output: &::F32x8, | |
1253 | definition: Named("llvm.x86.fma.vfmsubadd.ps.256") | |
1254 | }, | |
1255 | "256_fmsubadd_pd" => Intrinsic { | |
1256 | inputs: { static INPUTS: [&'static Type; 3] = [&::F64x4, &::F64x4, &::F64x4]; &INPUTS }, | |
1257 | output: &::F64x4, | |
1258 | definition: Named("llvm.x86.fma.vfmsubadd.pd.256") | |
1259 | }, | |
1260 | "_fnmadd_ps" => Intrinsic { | |
1261 | inputs: { static INPUTS: [&'static Type; 3] = [&::F32x4, &::F32x4, &::F32x4]; &INPUTS }, | |
1262 | output: &::F32x4, | |
1263 | definition: Named("llvm.x86.fma.vfnmadd.ps") | |
1264 | }, | |
1265 | "_fnmadd_pd" => Intrinsic { | |
1266 | inputs: { static INPUTS: [&'static Type; 3] = [&::F64x2, &::F64x2, &::F64x2]; &INPUTS }, | |
1267 | output: &::F64x2, | |
1268 | definition: Named("llvm.x86.fma.vfnmadd.pd") | |
1269 | }, | |
1270 | "256_fnmadd_ps" => Intrinsic { | |
1271 | inputs: { static INPUTS: [&'static Type; 3] = [&::F32x8, &::F32x8, &::F32x8]; &INPUTS }, | |
1272 | output: &::F32x8, | |
1273 | definition: Named("llvm.x86.fma.vfnmadd.ps.256") | |
1274 | }, | |
1275 | "256_fnmadd_pd" => Intrinsic { | |
1276 | inputs: { static INPUTS: [&'static Type; 3] = [&::F64x4, &::F64x4, &::F64x4]; &INPUTS }, | |
1277 | output: &::F64x4, | |
1278 | definition: Named("llvm.x86.fma.vfnmadd.pd.256") | |
1279 | }, | |
1280 | "_fnmsub_ps" => Intrinsic { | |
1281 | inputs: { static INPUTS: [&'static Type; 3] = [&::F32x4, &::F32x4, &::F32x4]; &INPUTS }, | |
1282 | output: &::F32x4, | |
1283 | definition: Named("llvm.x86.fma.vfnmsub.ps") | |
1284 | }, | |
1285 | "_fnmsub_pd" => Intrinsic { | |
1286 | inputs: { static INPUTS: [&'static Type; 3] = [&::F64x2, &::F64x2, &::F64x2]; &INPUTS }, | |
1287 | output: &::F64x2, | |
1288 | definition: Named("llvm.x86.fma.vfnmsub.pd") | |
1289 | }, | |
1290 | "256_fnmsub_ps" => Intrinsic { | |
1291 | inputs: { static INPUTS: [&'static Type; 3] = [&::F32x8, &::F32x8, &::F32x8]; &INPUTS }, | |
1292 | output: &::F32x8, | |
1293 | definition: Named("llvm.x86.fma.vfnmsub.ps.256") | |
1294 | }, | |
1295 | "256_fnmsub_pd" => Intrinsic { | |
1296 | inputs: { static INPUTS: [&'static Type; 3] = [&::F64x4, &::F64x4, &::F64x4]; &INPUTS }, | |
1297 | output: &::F64x4, | |
1298 | definition: Named("llvm.x86.fma.vfnmsub.pd.256") | |
1299 | }, | |
e9174d1e SL |
1300 | _ => return None, |
1301 | }) | |
1302 | } |