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.
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.
11 // DO NOT EDIT: autogenerated by etc/platform-intrinsics/generator.py
12 // ignore-tidy-linelength
14 #![allow(unused_imports)]
16 use {Intrinsic, Type};
17 use IntrinsicDef::Named;
18 use rustc::middle::ty::TyCtxt;
20 // The default inlining settings trigger a pathological behaviour in
21 // LLVM, which causes makes compilation very slow. See #28273.
23 pub fn find<'tcx>(_tcx: &TyCtxt<'tcx>, name: &str) -> Option<Intrinsic> {
24 if !name.starts_with("arm_v") { return None }
25 Some(match &name["arm_v".len()..] {
26 "hadd_s8" => Intrinsic {
27 inputs: { static INPUTS: [&'static Type; 2] = [&::I8x8, &::I8x8]; &INPUTS },
29 definition: Named("llvm.neon.vhadds.v8i8")
31 "hadd_u8" => Intrinsic {
32 inputs: { static INPUTS: [&'static Type; 2] = [&::U8x8, &::U8x8]; &INPUTS },
34 definition: Named("llvm.neon.vhaddu.v8i8")
36 "hadd_s16" => Intrinsic {
37 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x4, &::I16x4]; &INPUTS },
39 definition: Named("llvm.neon.vhadds.v4i16")
41 "hadd_u16" => Intrinsic {
42 inputs: { static INPUTS: [&'static Type; 2] = [&::U16x4, &::U16x4]; &INPUTS },
44 definition: Named("llvm.neon.vhaddu.v4i16")
46 "hadd_s32" => Intrinsic {
47 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x2, &::I32x2]; &INPUTS },
49 definition: Named("llvm.neon.vhadds.v2i32")
51 "hadd_u32" => Intrinsic {
52 inputs: { static INPUTS: [&'static Type; 2] = [&::U32x2, &::U32x2]; &INPUTS },
54 definition: Named("llvm.neon.vhaddu.v2i32")
56 "haddq_s8" => Intrinsic {
57 inputs: { static INPUTS: [&'static Type; 2] = [&::I8x16, &::I8x16]; &INPUTS },
59 definition: Named("llvm.neon.vhadds.v16i8")
61 "haddq_u8" => Intrinsic {
62 inputs: { static INPUTS: [&'static Type; 2] = [&::U8x16, &::U8x16]; &INPUTS },
64 definition: Named("llvm.neon.vhaddu.v16i8")
66 "haddq_s16" => Intrinsic {
67 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x8, &::I16x8]; &INPUTS },
69 definition: Named("llvm.neon.vhadds.v8i16")
71 "haddq_u16" => Intrinsic {
72 inputs: { static INPUTS: [&'static Type; 2] = [&::U16x8, &::U16x8]; &INPUTS },
74 definition: Named("llvm.neon.vhaddu.v8i16")
76 "haddq_s32" => Intrinsic {
77 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x4, &::I32x4]; &INPUTS },
79 definition: Named("llvm.neon.vhadds.v4i32")
81 "haddq_u32" => Intrinsic {
82 inputs: { static INPUTS: [&'static Type; 2] = [&::U32x4, &::U32x4]; &INPUTS },
84 definition: Named("llvm.neon.vhaddu.v4i32")
86 "rhadd_s8" => Intrinsic {
87 inputs: { static INPUTS: [&'static Type; 2] = [&::I8x8, &::I8x8]; &INPUTS },
89 definition: Named("llvm.neon.vrhadds.v8i8")
91 "rhadd_u8" => Intrinsic {
92 inputs: { static INPUTS: [&'static Type; 2] = [&::U8x8, &::U8x8]; &INPUTS },
94 definition: Named("llvm.neon.vrhaddu.v8i8")
96 "rhadd_s16" => Intrinsic {
97 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x4, &::I16x4]; &INPUTS },
99 definition: Named("llvm.neon.vrhadds.v4i16")
101 "rhadd_u16" => Intrinsic {
102 inputs: { static INPUTS: [&'static Type; 2] = [&::U16x4, &::U16x4]; &INPUTS },
104 definition: Named("llvm.neon.vrhaddu.v4i16")
106 "rhadd_s32" => Intrinsic {
107 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x2, &::I32x2]; &INPUTS },
109 definition: Named("llvm.neon.vrhadds.v2i32")
111 "rhadd_u32" => Intrinsic {
112 inputs: { static INPUTS: [&'static Type; 2] = [&::U32x2, &::U32x2]; &INPUTS },
114 definition: Named("llvm.neon.vrhaddu.v2i32")
116 "rhaddq_s8" => Intrinsic {
117 inputs: { static INPUTS: [&'static Type; 2] = [&::I8x16, &::I8x16]; &INPUTS },
119 definition: Named("llvm.neon.vrhadds.v16i8")
121 "rhaddq_u8" => Intrinsic {
122 inputs: { static INPUTS: [&'static Type; 2] = [&::U8x16, &::U8x16]; &INPUTS },
124 definition: Named("llvm.neon.vrhaddu.v16i8")
126 "rhaddq_s16" => Intrinsic {
127 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x8, &::I16x8]; &INPUTS },
129 definition: Named("llvm.neon.vrhadds.v8i16")
131 "rhaddq_u16" => Intrinsic {
132 inputs: { static INPUTS: [&'static Type; 2] = [&::U16x8, &::U16x8]; &INPUTS },
134 definition: Named("llvm.neon.vrhaddu.v8i16")
136 "rhaddq_s32" => Intrinsic {
137 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x4, &::I32x4]; &INPUTS },
139 definition: Named("llvm.neon.vrhadds.v4i32")
141 "rhaddq_u32" => Intrinsic {
142 inputs: { static INPUTS: [&'static Type; 2] = [&::U32x4, &::U32x4]; &INPUTS },
144 definition: Named("llvm.neon.vrhaddu.v4i32")
146 "qadd_s8" => Intrinsic {
147 inputs: { static INPUTS: [&'static Type; 2] = [&::I8x8, &::I8x8]; &INPUTS },
149 definition: Named("llvm.neon.vqadds.v8i8")
151 "qadd_u8" => Intrinsic {
152 inputs: { static INPUTS: [&'static Type; 2] = [&::U8x8, &::U8x8]; &INPUTS },
154 definition: Named("llvm.neon.vqaddu.v8i8")
156 "qadd_s16" => Intrinsic {
157 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x4, &::I16x4]; &INPUTS },
159 definition: Named("llvm.neon.vqadds.v4i16")
161 "qadd_u16" => Intrinsic {
162 inputs: { static INPUTS: [&'static Type; 2] = [&::U16x4, &::U16x4]; &INPUTS },
164 definition: Named("llvm.neon.vqaddu.v4i16")
166 "qadd_s32" => Intrinsic {
167 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x2, &::I32x2]; &INPUTS },
169 definition: Named("llvm.neon.vqadds.v2i32")
171 "qadd_u32" => Intrinsic {
172 inputs: { static INPUTS: [&'static Type; 2] = [&::U32x2, &::U32x2]; &INPUTS },
174 definition: Named("llvm.neon.vqaddu.v2i32")
176 "qadd_s64" => Intrinsic {
177 inputs: { static INPUTS: [&'static Type; 2] = [&::I64x1, &::I64x1]; &INPUTS },
179 definition: Named("llvm.neon.vqadds.v1i64")
181 "qadd_u64" => Intrinsic {
182 inputs: { static INPUTS: [&'static Type; 2] = [&::U64x1, &::U64x1]; &INPUTS },
184 definition: Named("llvm.neon.vqaddu.v1i64")
186 "qaddq_s8" => Intrinsic {
187 inputs: { static INPUTS: [&'static Type; 2] = [&::I8x16, &::I8x16]; &INPUTS },
189 definition: Named("llvm.neon.vqadds.v16i8")
191 "qaddq_u8" => Intrinsic {
192 inputs: { static INPUTS: [&'static Type; 2] = [&::U8x16, &::U8x16]; &INPUTS },
194 definition: Named("llvm.neon.vqaddu.v16i8")
196 "qaddq_s16" => Intrinsic {
197 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x8, &::I16x8]; &INPUTS },
199 definition: Named("llvm.neon.vqadds.v8i16")
201 "qaddq_u16" => Intrinsic {
202 inputs: { static INPUTS: [&'static Type; 2] = [&::U16x8, &::U16x8]; &INPUTS },
204 definition: Named("llvm.neon.vqaddu.v8i16")
206 "qaddq_s32" => Intrinsic {
207 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x4, &::I32x4]; &INPUTS },
209 definition: Named("llvm.neon.vqadds.v4i32")
211 "qaddq_u32" => Intrinsic {
212 inputs: { static INPUTS: [&'static Type; 2] = [&::U32x4, &::U32x4]; &INPUTS },
214 definition: Named("llvm.neon.vqaddu.v4i32")
216 "qaddq_s64" => Intrinsic {
217 inputs: { static INPUTS: [&'static Type; 2] = [&::I64x2, &::I64x2]; &INPUTS },
219 definition: Named("llvm.neon.vqadds.v2i64")
221 "qaddq_u64" => Intrinsic {
222 inputs: { static INPUTS: [&'static Type; 2] = [&::U64x2, &::U64x2]; &INPUTS },
224 definition: Named("llvm.neon.vqaddu.v2i64")
226 "raddhn_s16" => Intrinsic {
227 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x8, &::I16x8]; &INPUTS },
229 definition: Named("llvm.neon.vraddhn.v8i8")
231 "raddhn_u16" => Intrinsic {
232 inputs: { static INPUTS: [&'static Type; 2] = [&::U16x8, &::U16x8]; &INPUTS },
234 definition: Named("llvm.neon.vraddhn.v8i8")
236 "raddhn_s32" => Intrinsic {
237 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x4, &::I32x4]; &INPUTS },
239 definition: Named("llvm.neon.vraddhn.v4i16")
241 "raddhn_u32" => Intrinsic {
242 inputs: { static INPUTS: [&'static Type; 2] = [&::U32x4, &::U32x4]; &INPUTS },
244 definition: Named("llvm.neon.vraddhn.v4i16")
246 "raddhn_s64" => Intrinsic {
247 inputs: { static INPUTS: [&'static Type; 2] = [&::I64x2, &::I64x2]; &INPUTS },
249 definition: Named("llvm.neon.vraddhn.v2i32")
251 "raddhn_u64" => Intrinsic {
252 inputs: { static INPUTS: [&'static Type; 2] = [&::U64x2, &::U64x2]; &INPUTS },
254 definition: Named("llvm.neon.vraddhn.v2i32")
256 "fma_f32" => Intrinsic {
257 inputs: { static INPUTS: [&'static Type; 2] = [&::F32x2, &::F32x2]; &INPUTS },
259 definition: Named("llvm.fma.v2f32")
261 "fmaq_f32" => Intrinsic {
262 inputs: { static INPUTS: [&'static Type; 2] = [&::F32x4, &::F32x4]; &INPUTS },
264 definition: Named("llvm.fma.v4f32")
266 "qdmulh_s16" => Intrinsic {
267 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x4, &::I16x4]; &INPUTS },
269 definition: Named("llvm.neon.vsqdmulh.v4i16")
271 "qdmulh_s32" => Intrinsic {
272 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x2, &::I32x2]; &INPUTS },
274 definition: Named("llvm.neon.vsqdmulh.v2i32")
276 "qdmulhq_s16" => Intrinsic {
277 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x8, &::I16x8]; &INPUTS },
279 definition: Named("llvm.neon.vsqdmulh.v8i16")
281 "qdmulhq_s32" => Intrinsic {
282 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x4, &::I32x4]; &INPUTS },
284 definition: Named("llvm.neon.vsqdmulh.v4i32")
286 "qrdmulh_s16" => Intrinsic {
287 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x4, &::I16x4]; &INPUTS },
289 definition: Named("llvm.neon.vsqrdmulh.v4i16")
291 "qrdmulh_s32" => Intrinsic {
292 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x2, &::I32x2]; &INPUTS },
294 definition: Named("llvm.neon.vsqrdmulh.v2i32")
296 "qrdmulhq_s16" => Intrinsic {
297 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x8, &::I16x8]; &INPUTS },
299 definition: Named("llvm.neon.vsqrdmulh.v8i16")
301 "qrdmulhq_s32" => Intrinsic {
302 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x4, &::I32x4]; &INPUTS },
304 definition: Named("llvm.neon.vsqrdmulh.v4i32")
306 "mull_s8" => Intrinsic {
307 inputs: { static INPUTS: [&'static Type; 2] = [&::I8x8, &::I8x8]; &INPUTS },
309 definition: Named("llvm.neon.vmulls.v8i16")
311 "mull_u8" => Intrinsic {
312 inputs: { static INPUTS: [&'static Type; 2] = [&::U8x8, &::U8x8]; &INPUTS },
314 definition: Named("llvm.neon.vmullu.v8i16")
316 "mull_s16" => Intrinsic {
317 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x4, &::I16x4]; &INPUTS },
319 definition: Named("llvm.neon.vmulls.v4i32")
321 "mull_u16" => Intrinsic {
322 inputs: { static INPUTS: [&'static Type; 2] = [&::U16x4, &::U16x4]; &INPUTS },
324 definition: Named("llvm.neon.vmullu.v4i32")
326 "mull_s32" => Intrinsic {
327 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x2, &::I32x2]; &INPUTS },
329 definition: Named("llvm.neon.vmulls.v2i64")
331 "mull_u32" => Intrinsic {
332 inputs: { static INPUTS: [&'static Type; 2] = [&::U32x2, &::U32x2]; &INPUTS },
334 definition: Named("llvm.neon.vmullu.v2i64")
336 "qdmullq_s8" => Intrinsic {
337 inputs: { static INPUTS: [&'static Type; 2] = [&::I8x8, &::I8x8]; &INPUTS },
339 definition: Named("llvm.neon.vsqdmull.v8i16")
341 "qdmullq_s16" => Intrinsic {
342 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x4, &::I16x4]; &INPUTS },
344 definition: Named("llvm.neon.vsqdmull.v4i32")
346 "hsub_s8" => Intrinsic {
347 inputs: { static INPUTS: [&'static Type; 2] = [&::I8x8, &::I8x8]; &INPUTS },
349 definition: Named("llvm.neon.vhsubs.v8i8")
351 "hsub_u8" => Intrinsic {
352 inputs: { static INPUTS: [&'static Type; 2] = [&::U8x8, &::U8x8]; &INPUTS },
354 definition: Named("llvm.neon.vhsubu.v8i8")
356 "hsub_s16" => Intrinsic {
357 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x4, &::I16x4]; &INPUTS },
359 definition: Named("llvm.neon.vhsubs.v4i16")
361 "hsub_u16" => Intrinsic {
362 inputs: { static INPUTS: [&'static Type; 2] = [&::U16x4, &::U16x4]; &INPUTS },
364 definition: Named("llvm.neon.vhsubu.v4i16")
366 "hsub_s32" => Intrinsic {
367 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x2, &::I32x2]; &INPUTS },
369 definition: Named("llvm.neon.vhsubs.v2i32")
371 "hsub_u32" => Intrinsic {
372 inputs: { static INPUTS: [&'static Type; 2] = [&::U32x2, &::U32x2]; &INPUTS },
374 definition: Named("llvm.neon.vhsubu.v2i32")
376 "hsubq_s8" => Intrinsic {
377 inputs: { static INPUTS: [&'static Type; 2] = [&::I8x16, &::I8x16]; &INPUTS },
379 definition: Named("llvm.neon.vhsubs.v16i8")
381 "hsubq_u8" => Intrinsic {
382 inputs: { static INPUTS: [&'static Type; 2] = [&::U8x16, &::U8x16]; &INPUTS },
384 definition: Named("llvm.neon.vhsubu.v16i8")
386 "hsubq_s16" => Intrinsic {
387 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x8, &::I16x8]; &INPUTS },
389 definition: Named("llvm.neon.vhsubs.v8i16")
391 "hsubq_u16" => Intrinsic {
392 inputs: { static INPUTS: [&'static Type; 2] = [&::U16x8, &::U16x8]; &INPUTS },
394 definition: Named("llvm.neon.vhsubu.v8i16")
396 "hsubq_s32" => Intrinsic {
397 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x4, &::I32x4]; &INPUTS },
399 definition: Named("llvm.neon.vhsubs.v4i32")
401 "hsubq_u32" => Intrinsic {
402 inputs: { static INPUTS: [&'static Type; 2] = [&::U32x4, &::U32x4]; &INPUTS },
404 definition: Named("llvm.neon.vhsubu.v4i32")
406 "qsub_s8" => Intrinsic {
407 inputs: { static INPUTS: [&'static Type; 2] = [&::I8x8, &::I8x8]; &INPUTS },
409 definition: Named("llvm.neon.vqsubs.v8i8")
411 "qsub_u8" => Intrinsic {
412 inputs: { static INPUTS: [&'static Type; 2] = [&::U8x8, &::U8x8]; &INPUTS },
414 definition: Named("llvm.neon.vqsubu.v8i8")
416 "qsub_s16" => Intrinsic {
417 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x4, &::I16x4]; &INPUTS },
419 definition: Named("llvm.neon.vqsubs.v4i16")
421 "qsub_u16" => Intrinsic {
422 inputs: { static INPUTS: [&'static Type; 2] = [&::U16x4, &::U16x4]; &INPUTS },
424 definition: Named("llvm.neon.vqsubu.v4i16")
426 "qsub_s32" => Intrinsic {
427 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x2, &::I32x2]; &INPUTS },
429 definition: Named("llvm.neon.vqsubs.v2i32")
431 "qsub_u32" => Intrinsic {
432 inputs: { static INPUTS: [&'static Type; 2] = [&::U32x2, &::U32x2]; &INPUTS },
434 definition: Named("llvm.neon.vqsubu.v2i32")
436 "qsub_s64" => Intrinsic {
437 inputs: { static INPUTS: [&'static Type; 2] = [&::I64x1, &::I64x1]; &INPUTS },
439 definition: Named("llvm.neon.vqsubs.v1i64")
441 "qsub_u64" => Intrinsic {
442 inputs: { static INPUTS: [&'static Type; 2] = [&::U64x1, &::U64x1]; &INPUTS },
444 definition: Named("llvm.neon.vqsubu.v1i64")
446 "qsubq_s8" => Intrinsic {
447 inputs: { static INPUTS: [&'static Type; 2] = [&::I8x16, &::I8x16]; &INPUTS },
449 definition: Named("llvm.neon.vqsubs.v16i8")
451 "qsubq_u8" => Intrinsic {
452 inputs: { static INPUTS: [&'static Type; 2] = [&::U8x16, &::U8x16]; &INPUTS },
454 definition: Named("llvm.neon.vqsubu.v16i8")
456 "qsubq_s16" => Intrinsic {
457 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x8, &::I16x8]; &INPUTS },
459 definition: Named("llvm.neon.vqsubs.v8i16")
461 "qsubq_u16" => Intrinsic {
462 inputs: { static INPUTS: [&'static Type; 2] = [&::U16x8, &::U16x8]; &INPUTS },
464 definition: Named("llvm.neon.vqsubu.v8i16")
466 "qsubq_s32" => Intrinsic {
467 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x4, &::I32x4]; &INPUTS },
469 definition: Named("llvm.neon.vqsubs.v4i32")
471 "qsubq_u32" => Intrinsic {
472 inputs: { static INPUTS: [&'static Type; 2] = [&::U32x4, &::U32x4]; &INPUTS },
474 definition: Named("llvm.neon.vqsubu.v4i32")
476 "qsubq_s64" => Intrinsic {
477 inputs: { static INPUTS: [&'static Type; 2] = [&::I64x2, &::I64x2]; &INPUTS },
479 definition: Named("llvm.neon.vqsubs.v2i64")
481 "qsubq_u64" => Intrinsic {
482 inputs: { static INPUTS: [&'static Type; 2] = [&::U64x2, &::U64x2]; &INPUTS },
484 definition: Named("llvm.neon.vqsubu.v2i64")
486 "rsubhn_s16" => Intrinsic {
487 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x8, &::I16x8]; &INPUTS },
489 definition: Named("llvm.neon.vrsubhn.v8i8")
491 "rsubhn_u16" => Intrinsic {
492 inputs: { static INPUTS: [&'static Type; 2] = [&::U16x8, &::U16x8]; &INPUTS },
494 definition: Named("llvm.neon.vrsubhn.v8i8")
496 "rsubhn_s32" => Intrinsic {
497 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x4, &::I32x4]; &INPUTS },
499 definition: Named("llvm.neon.vrsubhn.v4i16")
501 "rsubhn_u32" => Intrinsic {
502 inputs: { static INPUTS: [&'static Type; 2] = [&::U32x4, &::U32x4]; &INPUTS },
504 definition: Named("llvm.neon.vrsubhn.v4i16")
506 "rsubhn_s64" => Intrinsic {
507 inputs: { static INPUTS: [&'static Type; 2] = [&::I64x2, &::I64x2]; &INPUTS },
509 definition: Named("llvm.neon.vrsubhn.v2i32")
511 "rsubhn_u64" => Intrinsic {
512 inputs: { static INPUTS: [&'static Type; 2] = [&::U64x2, &::U64x2]; &INPUTS },
514 definition: Named("llvm.neon.vrsubhn.v2i32")
516 "abd_s8" => Intrinsic {
517 inputs: { static INPUTS: [&'static Type; 2] = [&::I8x8, &::I8x8]; &INPUTS },
519 definition: Named("llvm.neon.vabds.v8i8")
521 "abd_u8" => Intrinsic {
522 inputs: { static INPUTS: [&'static Type; 2] = [&::U8x8, &::U8x8]; &INPUTS },
524 definition: Named("llvm.neon.vabdu.v8i8")
526 "abd_s16" => Intrinsic {
527 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x4, &::I16x4]; &INPUTS },
529 definition: Named("llvm.neon.vabds.v4i16")
531 "abd_u16" => Intrinsic {
532 inputs: { static INPUTS: [&'static Type; 2] = [&::U16x4, &::U16x4]; &INPUTS },
534 definition: Named("llvm.neon.vabdu.v4i16")
536 "abd_s32" => Intrinsic {
537 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x2, &::I32x2]; &INPUTS },
539 definition: Named("llvm.neon.vabds.v2i32")
541 "abd_u32" => Intrinsic {
542 inputs: { static INPUTS: [&'static Type; 2] = [&::U32x2, &::U32x2]; &INPUTS },
544 definition: Named("llvm.neon.vabdu.v2i32")
546 "abd_f32" => Intrinsic {
547 inputs: { static INPUTS: [&'static Type; 2] = [&::F32x2, &::F32x2]; &INPUTS },
549 definition: Named("llvm.neon.vabdf.v2f32")
551 "abdq_s8" => Intrinsic {
552 inputs: { static INPUTS: [&'static Type; 2] = [&::I8x16, &::I8x16]; &INPUTS },
554 definition: Named("llvm.neon.vabds.v16i8")
556 "abdq_u8" => Intrinsic {
557 inputs: { static INPUTS: [&'static Type; 2] = [&::U8x16, &::U8x16]; &INPUTS },
559 definition: Named("llvm.neon.vabdu.v16i8")
561 "abdq_s16" => Intrinsic {
562 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x8, &::I16x8]; &INPUTS },
564 definition: Named("llvm.neon.vabds.v8i16")
566 "abdq_u16" => Intrinsic {
567 inputs: { static INPUTS: [&'static Type; 2] = [&::U16x8, &::U16x8]; &INPUTS },
569 definition: Named("llvm.neon.vabdu.v8i16")
571 "abdq_s32" => Intrinsic {
572 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x4, &::I32x4]; &INPUTS },
574 definition: Named("llvm.neon.vabds.v4i32")
576 "abdq_u32" => Intrinsic {
577 inputs: { static INPUTS: [&'static Type; 2] = [&::U32x4, &::U32x4]; &INPUTS },
579 definition: Named("llvm.neon.vabdu.v4i32")
581 "abdq_f32" => Intrinsic {
582 inputs: { static INPUTS: [&'static Type; 2] = [&::F32x4, &::F32x4]; &INPUTS },
584 definition: Named("llvm.neon.vabdf.v4f32")
586 "max_s8" => Intrinsic {
587 inputs: { static INPUTS: [&'static Type; 2] = [&::I8x8, &::I8x8]; &INPUTS },
589 definition: Named("llvm.neon.vmaxs.v8i8")
591 "max_u8" => Intrinsic {
592 inputs: { static INPUTS: [&'static Type; 2] = [&::U8x8, &::U8x8]; &INPUTS },
594 definition: Named("llvm.neon.vmaxu.v8i8")
596 "max_s16" => Intrinsic {
597 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x4, &::I16x4]; &INPUTS },
599 definition: Named("llvm.neon.vmaxs.v4i16")
601 "max_u16" => Intrinsic {
602 inputs: { static INPUTS: [&'static Type; 2] = [&::U16x4, &::U16x4]; &INPUTS },
604 definition: Named("llvm.neon.vmaxu.v4i16")
606 "max_s32" => Intrinsic {
607 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x2, &::I32x2]; &INPUTS },
609 definition: Named("llvm.neon.vmaxs.v2i32")
611 "max_u32" => Intrinsic {
612 inputs: { static INPUTS: [&'static Type; 2] = [&::U32x2, &::U32x2]; &INPUTS },
614 definition: Named("llvm.neon.vmaxu.v2i32")
616 "max_f32" => Intrinsic {
617 inputs: { static INPUTS: [&'static Type; 2] = [&::F32x2, &::F32x2]; &INPUTS },
619 definition: Named("llvm.neon.vmaxf.v2f32")
621 "maxq_s8" => Intrinsic {
622 inputs: { static INPUTS: [&'static Type; 2] = [&::I8x16, &::I8x16]; &INPUTS },
624 definition: Named("llvm.neon.vmaxs.v16i8")
626 "maxq_u8" => Intrinsic {
627 inputs: { static INPUTS: [&'static Type; 2] = [&::U8x16, &::U8x16]; &INPUTS },
629 definition: Named("llvm.neon.vmaxu.v16i8")
631 "maxq_s16" => Intrinsic {
632 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x8, &::I16x8]; &INPUTS },
634 definition: Named("llvm.neon.vmaxs.v8i16")
636 "maxq_u16" => Intrinsic {
637 inputs: { static INPUTS: [&'static Type; 2] = [&::U16x8, &::U16x8]; &INPUTS },
639 definition: Named("llvm.neon.vmaxu.v8i16")
641 "maxq_s32" => Intrinsic {
642 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x4, &::I32x4]; &INPUTS },
644 definition: Named("llvm.neon.vmaxs.v4i32")
646 "maxq_u32" => Intrinsic {
647 inputs: { static INPUTS: [&'static Type; 2] = [&::U32x4, &::U32x4]; &INPUTS },
649 definition: Named("llvm.neon.vmaxu.v4i32")
651 "maxq_f32" => Intrinsic {
652 inputs: { static INPUTS: [&'static Type; 2] = [&::F32x4, &::F32x4]; &INPUTS },
654 definition: Named("llvm.neon.vmaxf.v4f32")
656 "min_s8" => Intrinsic {
657 inputs: { static INPUTS: [&'static Type; 2] = [&::I8x8, &::I8x8]; &INPUTS },
659 definition: Named("llvm.neon.vmins.v8i8")
661 "min_u8" => Intrinsic {
662 inputs: { static INPUTS: [&'static Type; 2] = [&::U8x8, &::U8x8]; &INPUTS },
664 definition: Named("llvm.neon.vminu.v8i8")
666 "min_s16" => Intrinsic {
667 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x4, &::I16x4]; &INPUTS },
669 definition: Named("llvm.neon.vmins.v4i16")
671 "min_u16" => Intrinsic {
672 inputs: { static INPUTS: [&'static Type; 2] = [&::U16x4, &::U16x4]; &INPUTS },
674 definition: Named("llvm.neon.vminu.v4i16")
676 "min_s32" => Intrinsic {
677 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x2, &::I32x2]; &INPUTS },
679 definition: Named("llvm.neon.vmins.v2i32")
681 "min_u32" => Intrinsic {
682 inputs: { static INPUTS: [&'static Type; 2] = [&::U32x2, &::U32x2]; &INPUTS },
684 definition: Named("llvm.neon.vminu.v2i32")
686 "min_f32" => Intrinsic {
687 inputs: { static INPUTS: [&'static Type; 2] = [&::F32x2, &::F32x2]; &INPUTS },
689 definition: Named("llvm.neon.vminf.v2f32")
691 "minq_s8" => Intrinsic {
692 inputs: { static INPUTS: [&'static Type; 2] = [&::I8x16, &::I8x16]; &INPUTS },
694 definition: Named("llvm.neon.vmins.v16i8")
696 "minq_u8" => Intrinsic {
697 inputs: { static INPUTS: [&'static Type; 2] = [&::U8x16, &::U8x16]; &INPUTS },
699 definition: Named("llvm.neon.vminu.v16i8")
701 "minq_s16" => Intrinsic {
702 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x8, &::I16x8]; &INPUTS },
704 definition: Named("llvm.neon.vmins.v8i16")
706 "minq_u16" => Intrinsic {
707 inputs: { static INPUTS: [&'static Type; 2] = [&::U16x8, &::U16x8]; &INPUTS },
709 definition: Named("llvm.neon.vminu.v8i16")
711 "minq_s32" => Intrinsic {
712 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x4, &::I32x4]; &INPUTS },
714 definition: Named("llvm.neon.vmins.v4i32")
716 "minq_u32" => Intrinsic {
717 inputs: { static INPUTS: [&'static Type; 2] = [&::U32x4, &::U32x4]; &INPUTS },
719 definition: Named("llvm.neon.vminu.v4i32")
721 "minq_f32" => Intrinsic {
722 inputs: { static INPUTS: [&'static Type; 2] = [&::F32x4, &::F32x4]; &INPUTS },
724 definition: Named("llvm.neon.vminf.v4f32")
726 "shl_s8" => Intrinsic {
727 inputs: { static INPUTS: [&'static Type; 2] = [&::I8x8, &::I8x8]; &INPUTS },
729 definition: Named("llvm.neon.vshls.v8i8")
731 "shl_u8" => Intrinsic {
732 inputs: { static INPUTS: [&'static Type; 2] = [&::U8x8, &::I8x8]; &INPUTS },
734 definition: Named("llvm.neon.vshlu.v8i8")
736 "shl_s16" => Intrinsic {
737 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x4, &::I16x4]; &INPUTS },
739 definition: Named("llvm.neon.vshls.v4i16")
741 "shl_u16" => Intrinsic {
742 inputs: { static INPUTS: [&'static Type; 2] = [&::U16x4, &::I16x4]; &INPUTS },
744 definition: Named("llvm.neon.vshlu.v4i16")
746 "shl_s32" => Intrinsic {
747 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x2, &::I32x2]; &INPUTS },
749 definition: Named("llvm.neon.vshls.v2i32")
751 "shl_u32" => Intrinsic {
752 inputs: { static INPUTS: [&'static Type; 2] = [&::U32x2, &::I32x2]; &INPUTS },
754 definition: Named("llvm.neon.vshlu.v2i32")
756 "shl_s64" => Intrinsic {
757 inputs: { static INPUTS: [&'static Type; 2] = [&::I64x1, &::I64x1]; &INPUTS },
759 definition: Named("llvm.neon.vshls.v1i64")
761 "shl_u64" => Intrinsic {
762 inputs: { static INPUTS: [&'static Type; 2] = [&::U64x1, &::I64x1]; &INPUTS },
764 definition: Named("llvm.neon.vshlu.v1i64")
766 "shlq_s8" => Intrinsic {
767 inputs: { static INPUTS: [&'static Type; 2] = [&::I8x16, &::I8x16]; &INPUTS },
769 definition: Named("llvm.neon.vshls.v16i8")
771 "shlq_u8" => Intrinsic {
772 inputs: { static INPUTS: [&'static Type; 2] = [&::U8x16, &::I8x16]; &INPUTS },
774 definition: Named("llvm.neon.vshlu.v16i8")
776 "shlq_s16" => Intrinsic {
777 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x8, &::I16x8]; &INPUTS },
779 definition: Named("llvm.neon.vshls.v8i16")
781 "shlq_u16" => Intrinsic {
782 inputs: { static INPUTS: [&'static Type; 2] = [&::U16x8, &::I16x8]; &INPUTS },
784 definition: Named("llvm.neon.vshlu.v8i16")
786 "shlq_s32" => Intrinsic {
787 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x4, &::I32x4]; &INPUTS },
789 definition: Named("llvm.neon.vshls.v4i32")
791 "shlq_u32" => Intrinsic {
792 inputs: { static INPUTS: [&'static Type; 2] = [&::U32x4, &::I32x4]; &INPUTS },
794 definition: Named("llvm.neon.vshlu.v4i32")
796 "shlq_s64" => Intrinsic {
797 inputs: { static INPUTS: [&'static Type; 2] = [&::I64x2, &::I64x2]; &INPUTS },
799 definition: Named("llvm.neon.vshls.v2i64")
801 "shlq_u64" => Intrinsic {
802 inputs: { static INPUTS: [&'static Type; 2] = [&::U64x2, &::I64x2]; &INPUTS },
804 definition: Named("llvm.neon.vshlu.v2i64")
806 "qshl_s8" => Intrinsic {
807 inputs: { static INPUTS: [&'static Type; 2] = [&::I8x8, &::I8x8]; &INPUTS },
809 definition: Named("llvm.neon.vqshls.v8i8")
811 "qshl_u8" => Intrinsic {
812 inputs: { static INPUTS: [&'static Type; 2] = [&::U8x8, &::I8x8]; &INPUTS },
814 definition: Named("llvm.neon.vqshlu.v8i8")
816 "qshl_s16" => Intrinsic {
817 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x4, &::I16x4]; &INPUTS },
819 definition: Named("llvm.neon.vqshls.v4i16")
821 "qshl_u16" => Intrinsic {
822 inputs: { static INPUTS: [&'static Type; 2] = [&::U16x4, &::I16x4]; &INPUTS },
824 definition: Named("llvm.neon.vqshlu.v4i16")
826 "qshl_s32" => Intrinsic {
827 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x2, &::I32x2]; &INPUTS },
829 definition: Named("llvm.neon.vqshls.v2i32")
831 "qshl_u32" => Intrinsic {
832 inputs: { static INPUTS: [&'static Type; 2] = [&::U32x2, &::I32x2]; &INPUTS },
834 definition: Named("llvm.neon.vqshlu.v2i32")
836 "qshl_s64" => Intrinsic {
837 inputs: { static INPUTS: [&'static Type; 2] = [&::I64x1, &::I64x1]; &INPUTS },
839 definition: Named("llvm.neon.vqshls.v1i64")
841 "qshl_u64" => Intrinsic {
842 inputs: { static INPUTS: [&'static Type; 2] = [&::U64x1, &::I64x1]; &INPUTS },
844 definition: Named("llvm.neon.vqshlu.v1i64")
846 "qshlq_s8" => Intrinsic {
847 inputs: { static INPUTS: [&'static Type; 2] = [&::I8x16, &::I8x16]; &INPUTS },
849 definition: Named("llvm.neon.vqshls.v16i8")
851 "qshlq_u8" => Intrinsic {
852 inputs: { static INPUTS: [&'static Type; 2] = [&::U8x16, &::I8x16]; &INPUTS },
854 definition: Named("llvm.neon.vqshlu.v16i8")
856 "qshlq_s16" => Intrinsic {
857 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x8, &::I16x8]; &INPUTS },
859 definition: Named("llvm.neon.vqshls.v8i16")
861 "qshlq_u16" => Intrinsic {
862 inputs: { static INPUTS: [&'static Type; 2] = [&::U16x8, &::I16x8]; &INPUTS },
864 definition: Named("llvm.neon.vqshlu.v8i16")
866 "qshlq_s32" => Intrinsic {
867 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x4, &::I32x4]; &INPUTS },
869 definition: Named("llvm.neon.vqshls.v4i32")
871 "qshlq_u32" => Intrinsic {
872 inputs: { static INPUTS: [&'static Type; 2] = [&::U32x4, &::I32x4]; &INPUTS },
874 definition: Named("llvm.neon.vqshlu.v4i32")
876 "qshlq_s64" => Intrinsic {
877 inputs: { static INPUTS: [&'static Type; 2] = [&::I64x2, &::I64x2]; &INPUTS },
879 definition: Named("llvm.neon.vqshls.v2i64")
881 "qshlq_u64" => Intrinsic {
882 inputs: { static INPUTS: [&'static Type; 2] = [&::U64x2, &::I64x2]; &INPUTS },
884 definition: Named("llvm.neon.vqshlu.v2i64")
886 "rshl_s8" => Intrinsic {
887 inputs: { static INPUTS: [&'static Type; 2] = [&::I8x8, &::I8x8]; &INPUTS },
889 definition: Named("llvm.neon.vrshls.v8i8")
891 "rshl_u8" => Intrinsic {
892 inputs: { static INPUTS: [&'static Type; 2] = [&::U8x8, &::I8x8]; &INPUTS },
894 definition: Named("llvm.neon.vrshlu.v8i8")
896 "rshl_s16" => Intrinsic {
897 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x4, &::I16x4]; &INPUTS },
899 definition: Named("llvm.neon.vrshls.v4i16")
901 "rshl_u16" => Intrinsic {
902 inputs: { static INPUTS: [&'static Type; 2] = [&::U16x4, &::I16x4]; &INPUTS },
904 definition: Named("llvm.neon.vrshlu.v4i16")
906 "rshl_s32" => Intrinsic {
907 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x2, &::I32x2]; &INPUTS },
909 definition: Named("llvm.neon.vrshls.v2i32")
911 "rshl_u32" => Intrinsic {
912 inputs: { static INPUTS: [&'static Type; 2] = [&::U32x2, &::I32x2]; &INPUTS },
914 definition: Named("llvm.neon.vrshlu.v2i32")
916 "rshl_s64" => Intrinsic {
917 inputs: { static INPUTS: [&'static Type; 2] = [&::I64x1, &::I64x1]; &INPUTS },
919 definition: Named("llvm.neon.vrshls.v1i64")
921 "rshl_u64" => Intrinsic {
922 inputs: { static INPUTS: [&'static Type; 2] = [&::U64x1, &::I64x1]; &INPUTS },
924 definition: Named("llvm.neon.vrshlu.v1i64")
926 "rshlq_s8" => Intrinsic {
927 inputs: { static INPUTS: [&'static Type; 2] = [&::I8x16, &::I8x16]; &INPUTS },
929 definition: Named("llvm.neon.vrshls.v16i8")
931 "rshlq_u8" => Intrinsic {
932 inputs: { static INPUTS: [&'static Type; 2] = [&::U8x16, &::I8x16]; &INPUTS },
934 definition: Named("llvm.neon.vrshlu.v16i8")
936 "rshlq_s16" => Intrinsic {
937 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x8, &::I16x8]; &INPUTS },
939 definition: Named("llvm.neon.vrshls.v8i16")
941 "rshlq_u16" => Intrinsic {
942 inputs: { static INPUTS: [&'static Type; 2] = [&::U16x8, &::I16x8]; &INPUTS },
944 definition: Named("llvm.neon.vrshlu.v8i16")
946 "rshlq_s32" => Intrinsic {
947 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x4, &::I32x4]; &INPUTS },
949 definition: Named("llvm.neon.vrshls.v4i32")
951 "rshlq_u32" => Intrinsic {
952 inputs: { static INPUTS: [&'static Type; 2] = [&::U32x4, &::I32x4]; &INPUTS },
954 definition: Named("llvm.neon.vrshlu.v4i32")
956 "rshlq_s64" => Intrinsic {
957 inputs: { static INPUTS: [&'static Type; 2] = [&::I64x2, &::I64x2]; &INPUTS },
959 definition: Named("llvm.neon.vrshls.v2i64")
961 "rshlq_u64" => Intrinsic {
962 inputs: { static INPUTS: [&'static Type; 2] = [&::U64x2, &::I64x2]; &INPUTS },
964 definition: Named("llvm.neon.vrshlu.v2i64")
966 "qrshl_s8" => Intrinsic {
967 inputs: { static INPUTS: [&'static Type; 2] = [&::I8x8, &::I8x8]; &INPUTS },
969 definition: Named("llvm.neon.vqrshls.v8i8")
971 "qrshl_u8" => Intrinsic {
972 inputs: { static INPUTS: [&'static Type; 2] = [&::U8x8, &::I8x8]; &INPUTS },
974 definition: Named("llvm.neon.vqrshlu.v8i8")
976 "qrshl_s16" => Intrinsic {
977 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x4, &::I16x4]; &INPUTS },
979 definition: Named("llvm.neon.vqrshls.v4i16")
981 "qrshl_u16" => Intrinsic {
982 inputs: { static INPUTS: [&'static Type; 2] = [&::U16x4, &::I16x4]; &INPUTS },
984 definition: Named("llvm.neon.vqrshlu.v4i16")
986 "qrshl_s32" => Intrinsic {
987 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x2, &::I32x2]; &INPUTS },
989 definition: Named("llvm.neon.vqrshls.v2i32")
991 "qrshl_u32" => Intrinsic {
992 inputs: { static INPUTS: [&'static Type; 2] = [&::U32x2, &::I32x2]; &INPUTS },
994 definition: Named("llvm.neon.vqrshlu.v2i32")
996 "qrshl_s64" => Intrinsic {
997 inputs: { static INPUTS: [&'static Type; 2] = [&::I64x1, &::I64x1]; &INPUTS },
999 definition: Named("llvm.neon.vqrshls.v1i64")
1001 "qrshl_u64" => Intrinsic {
1002 inputs: { static INPUTS: [&'static Type; 2] = [&::U64x1, &::I64x1]; &INPUTS },
1004 definition: Named("llvm.neon.vqrshlu.v1i64")
1006 "qrshlq_s8" => Intrinsic {
1007 inputs: { static INPUTS: [&'static Type; 2] = [&::I8x16, &::I8x16]; &INPUTS },
1009 definition: Named("llvm.neon.vqrshls.v16i8")
1011 "qrshlq_u8" => Intrinsic {
1012 inputs: { static INPUTS: [&'static Type; 2] = [&::U8x16, &::I8x16]; &INPUTS },
1014 definition: Named("llvm.neon.vqrshlu.v16i8")
1016 "qrshlq_s16" => Intrinsic {
1017 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x8, &::I16x8]; &INPUTS },
1019 definition: Named("llvm.neon.vqrshls.v8i16")
1021 "qrshlq_u16" => Intrinsic {
1022 inputs: { static INPUTS: [&'static Type; 2] = [&::U16x8, &::I16x8]; &INPUTS },
1024 definition: Named("llvm.neon.vqrshlu.v8i16")
1026 "qrshlq_s32" => Intrinsic {
1027 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x4, &::I32x4]; &INPUTS },
1029 definition: Named("llvm.neon.vqrshls.v4i32")
1031 "qrshlq_u32" => Intrinsic {
1032 inputs: { static INPUTS: [&'static Type; 2] = [&::U32x4, &::I32x4]; &INPUTS },
1034 definition: Named("llvm.neon.vqrshlu.v4i32")
1036 "qrshlq_s64" => Intrinsic {
1037 inputs: { static INPUTS: [&'static Type; 2] = [&::I64x2, &::I64x2]; &INPUTS },
1039 definition: Named("llvm.neon.vqrshls.v2i64")
1041 "qrshlq_u64" => Intrinsic {
1042 inputs: { static INPUTS: [&'static Type; 2] = [&::U64x2, &::I64x2]; &INPUTS },
1044 definition: Named("llvm.neon.vqrshlu.v2i64")
1046 "qshrun_n_s16" => Intrinsic {
1047 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x8, &::U32]; &INPUTS },
1049 definition: Named("llvm.neon.vsqshrun.v8i8")
1051 "qshrun_n_s32" => Intrinsic {
1052 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x4, &::U32]; &INPUTS },
1054 definition: Named("llvm.neon.vsqshrun.v4i16")
1056 "qshrun_n_s64" => Intrinsic {
1057 inputs: { static INPUTS: [&'static Type; 2] = [&::I64x2, &::U32]; &INPUTS },
1059 definition: Named("llvm.neon.vsqshrun.v2i32")
1061 "qrshrun_n_s16" => Intrinsic {
1062 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x8, &::U32]; &INPUTS },
1064 definition: Named("llvm.neon.vsqrshrun.v8i8")
1066 "qrshrun_n_s32" => Intrinsic {
1067 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x4, &::U32]; &INPUTS },
1069 definition: Named("llvm.neon.vsqrshrun.v4i16")
1071 "qrshrun_n_s64" => Intrinsic {
1072 inputs: { static INPUTS: [&'static Type; 2] = [&::I64x2, &::U32]; &INPUTS },
1074 definition: Named("llvm.neon.vsqrshrun.v2i32")
1076 "qshrn_n_s16" => Intrinsic {
1077 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x8, &::U32]; &INPUTS },
1079 definition: Named("llvm.neon.vqshrns.v8i8")
1081 "qshrn_n_u16" => Intrinsic {
1082 inputs: { static INPUTS: [&'static Type; 2] = [&::U16x8, &::U32]; &INPUTS },
1084 definition: Named("llvm.neon.vqshrnu.v8i8")
1086 "qshrn_n_s32" => Intrinsic {
1087 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x4, &::U32]; &INPUTS },
1089 definition: Named("llvm.neon.vqshrns.v4i16")
1091 "qshrn_n_u32" => Intrinsic {
1092 inputs: { static INPUTS: [&'static Type; 2] = [&::U32x4, &::U32]; &INPUTS },
1094 definition: Named("llvm.neon.vqshrnu.v4i16")
1096 "qshrn_n_s64" => Intrinsic {
1097 inputs: { static INPUTS: [&'static Type; 2] = [&::I64x2, &::U32]; &INPUTS },
1099 definition: Named("llvm.neon.vqshrns.v2i32")
1101 "qshrn_n_u64" => Intrinsic {
1102 inputs: { static INPUTS: [&'static Type; 2] = [&::U64x2, &::U32]; &INPUTS },
1104 definition: Named("llvm.neon.vqshrnu.v2i32")
1106 "rshrn_n_s16" => Intrinsic {
1107 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x8, &::U32]; &INPUTS },
1109 definition: Named("llvm.neon.vrshrn.v8i8")
1111 "rshrn_n_u16" => Intrinsic {
1112 inputs: { static INPUTS: [&'static Type; 2] = [&::U16x8, &::U32]; &INPUTS },
1114 definition: Named("llvm.neon.vrshrn.v8i8")
1116 "rshrn_n_s32" => Intrinsic {
1117 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x4, &::U32]; &INPUTS },
1119 definition: Named("llvm.neon.vrshrn.v4i16")
1121 "rshrn_n_u32" => Intrinsic {
1122 inputs: { static INPUTS: [&'static Type; 2] = [&::U32x4, &::U32]; &INPUTS },
1124 definition: Named("llvm.neon.vrshrn.v4i16")
1126 "rshrn_n_s64" => Intrinsic {
1127 inputs: { static INPUTS: [&'static Type; 2] = [&::I64x2, &::U32]; &INPUTS },
1129 definition: Named("llvm.neon.vrshrn.v2i32")
1131 "rshrn_n_u64" => Intrinsic {
1132 inputs: { static INPUTS: [&'static Type; 2] = [&::U64x2, &::U32]; &INPUTS },
1134 definition: Named("llvm.neon.vrshrn.v2i32")
1136 "qrshrn_n_s16" => Intrinsic {
1137 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x8, &::U32]; &INPUTS },
1139 definition: Named("llvm.neon.vqrshrns.v8i8")
1141 "qrshrn_n_u16" => Intrinsic {
1142 inputs: { static INPUTS: [&'static Type; 2] = [&::U16x8, &::U32]; &INPUTS },
1144 definition: Named("llvm.neon.vqrshrnu.v8i8")
1146 "qrshrn_n_s32" => Intrinsic {
1147 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x4, &::U32]; &INPUTS },
1149 definition: Named("llvm.neon.vqrshrns.v4i16")
1151 "qrshrn_n_u32" => Intrinsic {
1152 inputs: { static INPUTS: [&'static Type; 2] = [&::U32x4, &::U32]; &INPUTS },
1154 definition: Named("llvm.neon.vqrshrnu.v4i16")
1156 "qrshrn_n_s64" => Intrinsic {
1157 inputs: { static INPUTS: [&'static Type; 2] = [&::I64x2, &::U32]; &INPUTS },
1159 definition: Named("llvm.neon.vqrshrns.v2i32")
1161 "qrshrn_n_u64" => Intrinsic {
1162 inputs: { static INPUTS: [&'static Type; 2] = [&::U64x2, &::U32]; &INPUTS },
1164 definition: Named("llvm.neon.vqrshrnu.v2i32")
1166 "sri_s8" => Intrinsic {
1167 inputs: { static INPUTS: [&'static Type; 2] = [&::I8x8, &::I8x8]; &INPUTS },
1169 definition: Named("llvm.neon.vvsri.v8i8")
1171 "sri_u8" => Intrinsic {
1172 inputs: { static INPUTS: [&'static Type; 2] = [&::U8x8, &::U8x8]; &INPUTS },
1174 definition: Named("llvm.neon.vvsri.v8i8")
1176 "sri_s16" => Intrinsic {
1177 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x4, &::I16x4]; &INPUTS },
1179 definition: Named("llvm.neon.vvsri.v4i16")
1181 "sri_u16" => Intrinsic {
1182 inputs: { static INPUTS: [&'static Type; 2] = [&::U16x4, &::U16x4]; &INPUTS },
1184 definition: Named("llvm.neon.vvsri.v4i16")
1186 "sri_s32" => Intrinsic {
1187 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x2, &::I32x2]; &INPUTS },
1189 definition: Named("llvm.neon.vvsri.v2i32")
1191 "sri_u32" => Intrinsic {
1192 inputs: { static INPUTS: [&'static Type; 2] = [&::U32x2, &::U32x2]; &INPUTS },
1194 definition: Named("llvm.neon.vvsri.v2i32")
1196 "sri_s64" => Intrinsic {
1197 inputs: { static INPUTS: [&'static Type; 2] = [&::I64x1, &::I64x1]; &INPUTS },
1199 definition: Named("llvm.neon.vvsri.v1i64")
1201 "sri_u64" => Intrinsic {
1202 inputs: { static INPUTS: [&'static Type; 2] = [&::U64x1, &::U64x1]; &INPUTS },
1204 definition: Named("llvm.neon.vvsri.v1i64")
1206 "sriq_s8" => Intrinsic {
1207 inputs: { static INPUTS: [&'static Type; 2] = [&::I8x16, &::I8x16]; &INPUTS },
1209 definition: Named("llvm.neon.vvsri.v16i8")
1211 "sriq_u8" => Intrinsic {
1212 inputs: { static INPUTS: [&'static Type; 2] = [&::U8x16, &::U8x16]; &INPUTS },
1214 definition: Named("llvm.neon.vvsri.v16i8")
1216 "sriq_s16" => Intrinsic {
1217 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x8, &::I16x8]; &INPUTS },
1219 definition: Named("llvm.neon.vvsri.v8i16")
1221 "sriq_u16" => Intrinsic {
1222 inputs: { static INPUTS: [&'static Type; 2] = [&::U16x8, &::U16x8]; &INPUTS },
1224 definition: Named("llvm.neon.vvsri.v8i16")
1226 "sriq_s32" => Intrinsic {
1227 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x4, &::I32x4]; &INPUTS },
1229 definition: Named("llvm.neon.vvsri.v4i32")
1231 "sriq_u32" => Intrinsic {
1232 inputs: { static INPUTS: [&'static Type; 2] = [&::U32x4, &::U32x4]; &INPUTS },
1234 definition: Named("llvm.neon.vvsri.v4i32")
1236 "sriq_s64" => Intrinsic {
1237 inputs: { static INPUTS: [&'static Type; 2] = [&::I64x2, &::I64x2]; &INPUTS },
1239 definition: Named("llvm.neon.vvsri.v2i64")
1241 "sriq_u64" => Intrinsic {
1242 inputs: { static INPUTS: [&'static Type; 2] = [&::U64x2, &::U64x2]; &INPUTS },
1244 definition: Named("llvm.neon.vvsri.v2i64")
1246 "sli_s8" => Intrinsic {
1247 inputs: { static INPUTS: [&'static Type; 2] = [&::I8x8, &::I8x8]; &INPUTS },
1249 definition: Named("llvm.neon.vvsli.v8i8")
1251 "sli_u8" => Intrinsic {
1252 inputs: { static INPUTS: [&'static Type; 2] = [&::U8x8, &::U8x8]; &INPUTS },
1254 definition: Named("llvm.neon.vvsli.v8i8")
1256 "sli_s16" => Intrinsic {
1257 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x4, &::I16x4]; &INPUTS },
1259 definition: Named("llvm.neon.vvsli.v4i16")
1261 "sli_u16" => Intrinsic {
1262 inputs: { static INPUTS: [&'static Type; 2] = [&::U16x4, &::U16x4]; &INPUTS },
1264 definition: Named("llvm.neon.vvsli.v4i16")
1266 "sli_s32" => Intrinsic {
1267 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x2, &::I32x2]; &INPUTS },
1269 definition: Named("llvm.neon.vvsli.v2i32")
1271 "sli_u32" => Intrinsic {
1272 inputs: { static INPUTS: [&'static Type; 2] = [&::U32x2, &::U32x2]; &INPUTS },
1274 definition: Named("llvm.neon.vvsli.v2i32")
1276 "sli_s64" => Intrinsic {
1277 inputs: { static INPUTS: [&'static Type; 2] = [&::I64x1, &::I64x1]; &INPUTS },
1279 definition: Named("llvm.neon.vvsli.v1i64")
1281 "sli_u64" => Intrinsic {
1282 inputs: { static INPUTS: [&'static Type; 2] = [&::U64x1, &::U64x1]; &INPUTS },
1284 definition: Named("llvm.neon.vvsli.v1i64")
1286 "sliq_s8" => Intrinsic {
1287 inputs: { static INPUTS: [&'static Type; 2] = [&::I8x16, &::I8x16]; &INPUTS },
1289 definition: Named("llvm.neon.vvsli.v16i8")
1291 "sliq_u8" => Intrinsic {
1292 inputs: { static INPUTS: [&'static Type; 2] = [&::U8x16, &::U8x16]; &INPUTS },
1294 definition: Named("llvm.neon.vvsli.v16i8")
1296 "sliq_s16" => Intrinsic {
1297 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x8, &::I16x8]; &INPUTS },
1299 definition: Named("llvm.neon.vvsli.v8i16")
1301 "sliq_u16" => Intrinsic {
1302 inputs: { static INPUTS: [&'static Type; 2] = [&::U16x8, &::U16x8]; &INPUTS },
1304 definition: Named("llvm.neon.vvsli.v8i16")
1306 "sliq_s32" => Intrinsic {
1307 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x4, &::I32x4]; &INPUTS },
1309 definition: Named("llvm.neon.vvsli.v4i32")
1311 "sliq_u32" => Intrinsic {
1312 inputs: { static INPUTS: [&'static Type; 2] = [&::U32x4, &::U32x4]; &INPUTS },
1314 definition: Named("llvm.neon.vvsli.v4i32")
1316 "sliq_s64" => Intrinsic {
1317 inputs: { static INPUTS: [&'static Type; 2] = [&::I64x2, &::I64x2]; &INPUTS },
1319 definition: Named("llvm.neon.vvsli.v2i64")
1321 "sliq_u64" => Intrinsic {
1322 inputs: { static INPUTS: [&'static Type; 2] = [&::U64x2, &::U64x2]; &INPUTS },
1324 definition: Named("llvm.neon.vvsli.v2i64")
1326 "vqmovn_s16" => Intrinsic {
1327 inputs: { static INPUTS: [&'static Type; 1] = [&::I16x8]; &INPUTS },
1329 definition: Named("llvm.neon.vqxtns.v8i8")
1331 "vqmovn_u16" => Intrinsic {
1332 inputs: { static INPUTS: [&'static Type; 1] = [&::U16x8]; &INPUTS },
1334 definition: Named("llvm.neon.vqxtnu.v8i8")
1336 "vqmovn_s32" => Intrinsic {
1337 inputs: { static INPUTS: [&'static Type; 1] = [&::I32x4]; &INPUTS },
1339 definition: Named("llvm.neon.vqxtns.v4i16")
1341 "vqmovn_u32" => Intrinsic {
1342 inputs: { static INPUTS: [&'static Type; 1] = [&::U32x4]; &INPUTS },
1344 definition: Named("llvm.neon.vqxtnu.v4i16")
1346 "vqmovn_s64" => Intrinsic {
1347 inputs: { static INPUTS: [&'static Type; 1] = [&::I64x2]; &INPUTS },
1349 definition: Named("llvm.neon.vqxtns.v2i32")
1351 "vqmovn_u64" => Intrinsic {
1352 inputs: { static INPUTS: [&'static Type; 1] = [&::U64x2]; &INPUTS },
1354 definition: Named("llvm.neon.vqxtnu.v2i32")
1356 "abs_s8" => Intrinsic {
1357 inputs: { static INPUTS: [&'static Type; 1] = [&::I8x8]; &INPUTS },
1359 definition: Named("llvm.neon.vabs.v8i8")
1361 "abs_s16" => Intrinsic {
1362 inputs: { static INPUTS: [&'static Type; 1] = [&::I16x4]; &INPUTS },
1364 definition: Named("llvm.neon.vabs.v4i16")
1366 "abs_s32" => Intrinsic {
1367 inputs: { static INPUTS: [&'static Type; 1] = [&::I32x2]; &INPUTS },
1369 definition: Named("llvm.neon.vabs.v2i32")
1371 "absq_s8" => Intrinsic {
1372 inputs: { static INPUTS: [&'static Type; 1] = [&::I8x16]; &INPUTS },
1374 definition: Named("llvm.neon.vabs.v16i8")
1376 "absq_s16" => Intrinsic {
1377 inputs: { static INPUTS: [&'static Type; 1] = [&::I16x8]; &INPUTS },
1379 definition: Named("llvm.neon.vabs.v8i16")
1381 "absq_s32" => Intrinsic {
1382 inputs: { static INPUTS: [&'static Type; 1] = [&::I32x4]; &INPUTS },
1384 definition: Named("llvm.neon.vabs.v4i32")
1386 "abs_f32" => Intrinsic {
1387 inputs: { static INPUTS: [&'static Type; 1] = [&::F32x2]; &INPUTS },
1389 definition: Named("llvm.fabs.v2f32")
1391 "absq_f32" => Intrinsic {
1392 inputs: { static INPUTS: [&'static Type; 1] = [&::F32x4]; &INPUTS },
1394 definition: Named("llvm.fabs.v4f32")
1396 "qabs_s8" => Intrinsic {
1397 inputs: { static INPUTS: [&'static Type; 1] = [&::I8x8]; &INPUTS },
1399 definition: Named("llvm.neon.vsqabs.v8i8")
1401 "qabs_s16" => Intrinsic {
1402 inputs: { static INPUTS: [&'static Type; 1] = [&::I16x4]; &INPUTS },
1404 definition: Named("llvm.neon.vsqabs.v4i16")
1406 "qabs_s32" => Intrinsic {
1407 inputs: { static INPUTS: [&'static Type; 1] = [&::I32x2]; &INPUTS },
1409 definition: Named("llvm.neon.vsqabs.v2i32")
1411 "qabsq_s8" => Intrinsic {
1412 inputs: { static INPUTS: [&'static Type; 1] = [&::I8x16]; &INPUTS },
1414 definition: Named("llvm.neon.vsqabs.v16i8")
1416 "qabsq_s16" => Intrinsic {
1417 inputs: { static INPUTS: [&'static Type; 1] = [&::I16x8]; &INPUTS },
1419 definition: Named("llvm.neon.vsqabs.v8i16")
1421 "qabsq_s32" => Intrinsic {
1422 inputs: { static INPUTS: [&'static Type; 1] = [&::I32x4]; &INPUTS },
1424 definition: Named("llvm.neon.vsqabs.v4i32")
1426 "qneg_s8" => Intrinsic {
1427 inputs: { static INPUTS: [&'static Type; 1] = [&::I8x8]; &INPUTS },
1429 definition: Named("llvm.neon.vsqneg.v8i8")
1431 "qneg_s16" => Intrinsic {
1432 inputs: { static INPUTS: [&'static Type; 1] = [&::I16x4]; &INPUTS },
1434 definition: Named("llvm.neon.vsqneg.v4i16")
1436 "qneg_s32" => Intrinsic {
1437 inputs: { static INPUTS: [&'static Type; 1] = [&::I32x2]; &INPUTS },
1439 definition: Named("llvm.neon.vsqneg.v2i32")
1441 "qnegq_s8" => Intrinsic {
1442 inputs: { static INPUTS: [&'static Type; 1] = [&::I8x16]; &INPUTS },
1444 definition: Named("llvm.neon.vsqneg.v16i8")
1446 "qnegq_s16" => Intrinsic {
1447 inputs: { static INPUTS: [&'static Type; 1] = [&::I16x8]; &INPUTS },
1449 definition: Named("llvm.neon.vsqneg.v8i16")
1451 "qnegq_s32" => Intrinsic {
1452 inputs: { static INPUTS: [&'static Type; 1] = [&::I32x4]; &INPUTS },
1454 definition: Named("llvm.neon.vsqneg.v4i32")
1456 "clz_s8" => Intrinsic {
1457 inputs: { static INPUTS: [&'static Type; 1] = [&::I8x8]; &INPUTS },
1459 definition: Named("llvm.ctlz.v8i8")
1461 "clz_u8" => Intrinsic {
1462 inputs: { static INPUTS: [&'static Type; 1] = [&::U8x8]; &INPUTS },
1464 definition: Named("llvm.ctlz.v8i8")
1466 "clz_s16" => Intrinsic {
1467 inputs: { static INPUTS: [&'static Type; 1] = [&::I16x4]; &INPUTS },
1469 definition: Named("llvm.ctlz.v4i16")
1471 "clz_u16" => Intrinsic {
1472 inputs: { static INPUTS: [&'static Type; 1] = [&::U16x4]; &INPUTS },
1474 definition: Named("llvm.ctlz.v4i16")
1476 "clz_s32" => Intrinsic {
1477 inputs: { static INPUTS: [&'static Type; 1] = [&::I32x2]; &INPUTS },
1479 definition: Named("llvm.ctlz.v2i32")
1481 "clz_u32" => Intrinsic {
1482 inputs: { static INPUTS: [&'static Type; 1] = [&::U32x2]; &INPUTS },
1484 definition: Named("llvm.ctlz.v2i32")
1486 "clzq_s8" => Intrinsic {
1487 inputs: { static INPUTS: [&'static Type; 1] = [&::I8x16]; &INPUTS },
1489 definition: Named("llvm.ctlz.v16i8")
1491 "clzq_u8" => Intrinsic {
1492 inputs: { static INPUTS: [&'static Type; 1] = [&::U8x16]; &INPUTS },
1494 definition: Named("llvm.ctlz.v16i8")
1496 "clzq_s16" => Intrinsic {
1497 inputs: { static INPUTS: [&'static Type; 1] = [&::I16x8]; &INPUTS },
1499 definition: Named("llvm.ctlz.v8i16")
1501 "clzq_u16" => Intrinsic {
1502 inputs: { static INPUTS: [&'static Type; 1] = [&::U16x8]; &INPUTS },
1504 definition: Named("llvm.ctlz.v8i16")
1506 "clzq_s32" => Intrinsic {
1507 inputs: { static INPUTS: [&'static Type; 1] = [&::I32x4]; &INPUTS },
1509 definition: Named("llvm.ctlz.v4i32")
1511 "clzq_u32" => Intrinsic {
1512 inputs: { static INPUTS: [&'static Type; 1] = [&::U32x4]; &INPUTS },
1514 definition: Named("llvm.ctlz.v4i32")
1516 "cls_s8" => Intrinsic {
1517 inputs: { static INPUTS: [&'static Type; 1] = [&::I8x8]; &INPUTS },
1519 definition: Named("llvm.neon.vcls.v8i8")
1521 "cls_u8" => Intrinsic {
1522 inputs: { static INPUTS: [&'static Type; 1] = [&::U8x8]; &INPUTS },
1524 definition: Named("llvm.neon.vcls.v8i8")
1526 "cls_s16" => Intrinsic {
1527 inputs: { static INPUTS: [&'static Type; 1] = [&::I16x4]; &INPUTS },
1529 definition: Named("llvm.neon.vcls.v4i16")
1531 "cls_u16" => Intrinsic {
1532 inputs: { static INPUTS: [&'static Type; 1] = [&::U16x4]; &INPUTS },
1534 definition: Named("llvm.neon.vcls.v4i16")
1536 "cls_s32" => Intrinsic {
1537 inputs: { static INPUTS: [&'static Type; 1] = [&::I32x2]; &INPUTS },
1539 definition: Named("llvm.neon.vcls.v2i32")
1541 "cls_u32" => Intrinsic {
1542 inputs: { static INPUTS: [&'static Type; 1] = [&::U32x2]; &INPUTS },
1544 definition: Named("llvm.neon.vcls.v2i32")
1546 "clsq_s8" => Intrinsic {
1547 inputs: { static INPUTS: [&'static Type; 1] = [&::I8x16]; &INPUTS },
1549 definition: Named("llvm.neon.vcls.v16i8")
1551 "clsq_u8" => Intrinsic {
1552 inputs: { static INPUTS: [&'static Type; 1] = [&::U8x16]; &INPUTS },
1554 definition: Named("llvm.neon.vcls.v16i8")
1556 "clsq_s16" => Intrinsic {
1557 inputs: { static INPUTS: [&'static Type; 1] = [&::I16x8]; &INPUTS },
1559 definition: Named("llvm.neon.vcls.v8i16")
1561 "clsq_u16" => Intrinsic {
1562 inputs: { static INPUTS: [&'static Type; 1] = [&::U16x8]; &INPUTS },
1564 definition: Named("llvm.neon.vcls.v8i16")
1566 "clsq_s32" => Intrinsic {
1567 inputs: { static INPUTS: [&'static Type; 1] = [&::I32x4]; &INPUTS },
1569 definition: Named("llvm.neon.vcls.v4i32")
1571 "clsq_u32" => Intrinsic {
1572 inputs: { static INPUTS: [&'static Type; 1] = [&::U32x4]; &INPUTS },
1574 definition: Named("llvm.neon.vcls.v4i32")
1576 "cnt_s8" => Intrinsic {
1577 inputs: { static INPUTS: [&'static Type; 1] = [&::I8x8]; &INPUTS },
1579 definition: Named("llvm.ctpop.v8i8")
1581 "cnt_u8" => Intrinsic {
1582 inputs: { static INPUTS: [&'static Type; 1] = [&::U8x8]; &INPUTS },
1584 definition: Named("llvm.ctpop.v8i8")
1586 "cntq_s8" => Intrinsic {
1587 inputs: { static INPUTS: [&'static Type; 1] = [&::I8x16]; &INPUTS },
1589 definition: Named("llvm.ctpop.v16i8")
1591 "cntq_u8" => Intrinsic {
1592 inputs: { static INPUTS: [&'static Type; 1] = [&::U8x16]; &INPUTS },
1594 definition: Named("llvm.ctpop.v16i8")
1596 "recpe_u32" => Intrinsic {
1597 inputs: { static INPUTS: [&'static Type; 1] = [&::U32x2]; &INPUTS },
1599 definition: Named("llvm.neon.vrecpe.v2i32")
1601 "recpe_f32" => Intrinsic {
1602 inputs: { static INPUTS: [&'static Type; 1] = [&::F32x2]; &INPUTS },
1604 definition: Named("llvm.neon.vrecpe.v2f32")
1606 "recpeq_u32" => Intrinsic {
1607 inputs: { static INPUTS: [&'static Type; 1] = [&::U32x4]; &INPUTS },
1609 definition: Named("llvm.neon.vrecpe.v4i32")
1611 "recpeq_f32" => Intrinsic {
1612 inputs: { static INPUTS: [&'static Type; 1] = [&::F32x4]; &INPUTS },
1614 definition: Named("llvm.neon.vrecpe.v4f32")
1616 "recps_f32" => Intrinsic {
1617 inputs: { static INPUTS: [&'static Type; 2] = [&::F32x2, &::F32x2]; &INPUTS },
1619 definition: Named("llvm.neon.vfrecps.v2f32")
1621 "recpsq_f32" => Intrinsic {
1622 inputs: { static INPUTS: [&'static Type; 2] = [&::F32x4, &::F32x4]; &INPUTS },
1624 definition: Named("llvm.neon.vfrecps.v4f32")
1626 "sqrt_f32" => Intrinsic {
1627 inputs: { static INPUTS: [&'static Type; 1] = [&::F32x2]; &INPUTS },
1629 definition: Named("llvm.sqrt.v2f32")
1631 "sqrtq_f32" => Intrinsic {
1632 inputs: { static INPUTS: [&'static Type; 1] = [&::F32x4]; &INPUTS },
1634 definition: Named("llvm.sqrt.v4f32")
1636 "rsqrte_u32" => Intrinsic {
1637 inputs: { static INPUTS: [&'static Type; 1] = [&::U32x2]; &INPUTS },
1639 definition: Named("llvm.neon.vrsqrte.v2i32")
1641 "rsqrte_f32" => Intrinsic {
1642 inputs: { static INPUTS: [&'static Type; 1] = [&::F32x2]; &INPUTS },
1644 definition: Named("llvm.neon.vrsqrte.v2f32")
1646 "rsqrteq_u32" => Intrinsic {
1647 inputs: { static INPUTS: [&'static Type; 1] = [&::U32x4]; &INPUTS },
1649 definition: Named("llvm.neon.vrsqrte.v4i32")
1651 "rsqrteq_f32" => Intrinsic {
1652 inputs: { static INPUTS: [&'static Type; 1] = [&::F32x4]; &INPUTS },
1654 definition: Named("llvm.neon.vrsqrte.v4f32")
1656 "rsqrts_f32" => Intrinsic {
1657 inputs: { static INPUTS: [&'static Type; 2] = [&::F32x2, &::F32x2]; &INPUTS },
1659 definition: Named("llvm.neon.vrsqrts.v2f32")
1661 "rsqrtsq_f32" => Intrinsic {
1662 inputs: { static INPUTS: [&'static Type; 2] = [&::F32x4, &::F32x4]; &INPUTS },
1664 definition: Named("llvm.neon.vrsqrts.v4f32")
1666 "bsl_s8" => Intrinsic {
1667 inputs: { static INPUTS: [&'static Type; 2] = [&::U8x8, &::I8x8]; &INPUTS },
1669 definition: Named("llvm.neon.vbsl.v8i8")
1671 "bsl_u8" => Intrinsic {
1672 inputs: { static INPUTS: [&'static Type; 2] = [&::U8x8, &::U8x8]; &INPUTS },
1674 definition: Named("llvm.neon.vbsl.v8i8")
1676 "bsl_s16" => Intrinsic {
1677 inputs: { static INPUTS: [&'static Type; 2] = [&::U16x4, &::I16x4]; &INPUTS },
1679 definition: Named("llvm.neon.vbsl.v4i16")
1681 "bsl_u16" => Intrinsic {
1682 inputs: { static INPUTS: [&'static Type; 2] = [&::U16x4, &::U16x4]; &INPUTS },
1684 definition: Named("llvm.neon.vbsl.v4i16")
1686 "bsl_s32" => Intrinsic {
1687 inputs: { static INPUTS: [&'static Type; 2] = [&::U32x2, &::I32x2]; &INPUTS },
1689 definition: Named("llvm.neon.vbsl.v2i32")
1691 "bsl_u32" => Intrinsic {
1692 inputs: { static INPUTS: [&'static Type; 2] = [&::U32x2, &::U32x2]; &INPUTS },
1694 definition: Named("llvm.neon.vbsl.v2i32")
1696 "bsl_s64" => Intrinsic {
1697 inputs: { static INPUTS: [&'static Type; 2] = [&::U64x1, &::I64x1]; &INPUTS },
1699 definition: Named("llvm.neon.vbsl.v1i64")
1701 "bsl_u64" => Intrinsic {
1702 inputs: { static INPUTS: [&'static Type; 2] = [&::U64x1, &::U64x1]; &INPUTS },
1704 definition: Named("llvm.neon.vbsl.v1i64")
1706 "bslq_s8" => Intrinsic {
1707 inputs: { static INPUTS: [&'static Type; 2] = [&::U8x16, &::I8x16]; &INPUTS },
1709 definition: Named("llvm.neon.vbsl.v16i8")
1711 "bslq_u8" => Intrinsic {
1712 inputs: { static INPUTS: [&'static Type; 2] = [&::U8x16, &::U8x16]; &INPUTS },
1714 definition: Named("llvm.neon.vbsl.v16i8")
1716 "bslq_s16" => Intrinsic {
1717 inputs: { static INPUTS: [&'static Type; 2] = [&::U16x8, &::I16x8]; &INPUTS },
1719 definition: Named("llvm.neon.vbsl.v8i16")
1721 "bslq_u16" => Intrinsic {
1722 inputs: { static INPUTS: [&'static Type; 2] = [&::U16x8, &::U16x8]; &INPUTS },
1724 definition: Named("llvm.neon.vbsl.v8i16")
1726 "bslq_s32" => Intrinsic {
1727 inputs: { static INPUTS: [&'static Type; 2] = [&::U32x4, &::I32x4]; &INPUTS },
1729 definition: Named("llvm.neon.vbsl.v4i32")
1731 "bslq_u32" => Intrinsic {
1732 inputs: { static INPUTS: [&'static Type; 2] = [&::U32x4, &::U32x4]; &INPUTS },
1734 definition: Named("llvm.neon.vbsl.v4i32")
1736 "bslq_s64" => Intrinsic {
1737 inputs: { static INPUTS: [&'static Type; 2] = [&::U64x2, &::I64x2]; &INPUTS },
1739 definition: Named("llvm.neon.vbsl.v2i64")
1741 "bslq_u64" => Intrinsic {
1742 inputs: { static INPUTS: [&'static Type; 2] = [&::U64x2, &::U64x2]; &INPUTS },
1744 definition: Named("llvm.neon.vbsl.v2i64")
1746 "padd_s8" => Intrinsic {
1747 inputs: { static INPUTS: [&'static Type; 2] = [&::I8x8, &::I8x8]; &INPUTS },
1749 definition: Named("llvm.neon.vpadd.v8i8")
1751 "padd_u8" => Intrinsic {
1752 inputs: { static INPUTS: [&'static Type; 2] = [&::U8x8, &::U8x8]; &INPUTS },
1754 definition: Named("llvm.neon.vpadd.v8i8")
1756 "padd_s16" => Intrinsic {
1757 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x4, &::I16x4]; &INPUTS },
1759 definition: Named("llvm.neon.vpadd.v4i16")
1761 "padd_u16" => Intrinsic {
1762 inputs: { static INPUTS: [&'static Type; 2] = [&::U16x4, &::U16x4]; &INPUTS },
1764 definition: Named("llvm.neon.vpadd.v4i16")
1766 "padd_s32" => Intrinsic {
1767 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x2, &::I32x2]; &INPUTS },
1769 definition: Named("llvm.neon.vpadd.v2i32")
1771 "padd_u32" => Intrinsic {
1772 inputs: { static INPUTS: [&'static Type; 2] = [&::U32x2, &::U32x2]; &INPUTS },
1774 definition: Named("llvm.neon.vpadd.v2i32")
1776 "padd_f32" => Intrinsic {
1777 inputs: { static INPUTS: [&'static Type; 2] = [&::F32x2, &::F32x2]; &INPUTS },
1779 definition: Named("llvm.neon.vpadd.v2f32")
1781 "paddl_s16" => Intrinsic {
1782 inputs: { static INPUTS: [&'static Type; 1] = [&::I8x8]; &INPUTS },
1784 definition: Named("llvm.neon.vpaddls.v4i16.v8i8")
1786 "paddl_u16" => Intrinsic {
1787 inputs: { static INPUTS: [&'static Type; 1] = [&::U8x8]; &INPUTS },
1789 definition: Named("llvm.neon.vpaddlu.v4i16.v8i8")
1791 "paddl_s32" => Intrinsic {
1792 inputs: { static INPUTS: [&'static Type; 1] = [&::I16x4]; &INPUTS },
1794 definition: Named("llvm.neon.vpaddls.v2i32.v4i16")
1796 "paddl_u32" => Intrinsic {
1797 inputs: { static INPUTS: [&'static Type; 1] = [&::U16x4]; &INPUTS },
1799 definition: Named("llvm.neon.vpaddlu.v2i32.v4i16")
1801 "paddl_s64" => Intrinsic {
1802 inputs: { static INPUTS: [&'static Type; 1] = [&::I32x2]; &INPUTS },
1804 definition: Named("llvm.neon.vpaddls.v1i64.v2i32")
1806 "paddl_u64" => Intrinsic {
1807 inputs: { static INPUTS: [&'static Type; 1] = [&::U32x2]; &INPUTS },
1809 definition: Named("llvm.neon.vpaddlu.v1i64.v2i32")
1811 "paddlq_s16" => Intrinsic {
1812 inputs: { static INPUTS: [&'static Type; 1] = [&::I8x16]; &INPUTS },
1814 definition: Named("llvm.neon.vpaddls.v8i16.v16i8")
1816 "paddlq_u16" => Intrinsic {
1817 inputs: { static INPUTS: [&'static Type; 1] = [&::U8x16]; &INPUTS },
1819 definition: Named("llvm.neon.vpaddlu.v8i16.v16i8")
1821 "paddlq_s32" => Intrinsic {
1822 inputs: { static INPUTS: [&'static Type; 1] = [&::I16x8]; &INPUTS },
1824 definition: Named("llvm.neon.vpaddls.v4i32.v8i16")
1826 "paddlq_u32" => Intrinsic {
1827 inputs: { static INPUTS: [&'static Type; 1] = [&::U16x8]; &INPUTS },
1829 definition: Named("llvm.neon.vpaddlu.v4i32.v8i16")
1831 "paddlq_s64" => Intrinsic {
1832 inputs: { static INPUTS: [&'static Type; 1] = [&::I32x4]; &INPUTS },
1834 definition: Named("llvm.neon.vpaddls.v2i64.v4i32")
1836 "paddlq_u64" => Intrinsic {
1837 inputs: { static INPUTS: [&'static Type; 1] = [&::U32x4]; &INPUTS },
1839 definition: Named("llvm.neon.vpaddlu.v2i64.v4i32")
1841 "padal_s16" => Intrinsic {
1842 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x4, &::I8x8]; &INPUTS },
1844 definition: Named("llvm.neon.vpadals.v4i16.v4i16")
1846 "padal_u16" => Intrinsic {
1847 inputs: { static INPUTS: [&'static Type; 2] = [&::U16x4, &::U8x8]; &INPUTS },
1849 definition: Named("llvm.neon.vpadalu.v4i16.v4i16")
1851 "padal_s32" => Intrinsic {
1852 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x2, &::I16x4]; &INPUTS },
1854 definition: Named("llvm.neon.vpadals.v2i32.v2i32")
1856 "padal_u32" => Intrinsic {
1857 inputs: { static INPUTS: [&'static Type; 2] = [&::U32x2, &::U16x4]; &INPUTS },
1859 definition: Named("llvm.neon.vpadalu.v2i32.v2i32")
1861 "padal_s64" => Intrinsic {
1862 inputs: { static INPUTS: [&'static Type; 2] = [&::I64x1, &::I32x2]; &INPUTS },
1864 definition: Named("llvm.neon.vpadals.v1i64.v1i64")
1866 "padal_u64" => Intrinsic {
1867 inputs: { static INPUTS: [&'static Type; 2] = [&::U64x1, &::U32x2]; &INPUTS },
1869 definition: Named("llvm.neon.vpadalu.v1i64.v1i64")
1871 "padalq_s16" => Intrinsic {
1872 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x8, &::I8x16]; &INPUTS },
1874 definition: Named("llvm.neon.vpadals.v8i16.v8i16")
1876 "padalq_u16" => Intrinsic {
1877 inputs: { static INPUTS: [&'static Type; 2] = [&::U16x8, &::U8x16]; &INPUTS },
1879 definition: Named("llvm.neon.vpadalu.v8i16.v8i16")
1881 "padalq_s32" => Intrinsic {
1882 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x4, &::I16x8]; &INPUTS },
1884 definition: Named("llvm.neon.vpadals.v4i32.v4i32")
1886 "padalq_u32" => Intrinsic {
1887 inputs: { static INPUTS: [&'static Type; 2] = [&::U32x4, &::U16x8]; &INPUTS },
1889 definition: Named("llvm.neon.vpadalu.v4i32.v4i32")
1891 "padalq_s64" => Intrinsic {
1892 inputs: { static INPUTS: [&'static Type; 2] = [&::I64x2, &::I32x4]; &INPUTS },
1894 definition: Named("llvm.neon.vpadals.v2i64.v2i64")
1896 "padalq_u64" => Intrinsic {
1897 inputs: { static INPUTS: [&'static Type; 2] = [&::U64x2, &::U32x4]; &INPUTS },
1899 definition: Named("llvm.neon.vpadalu.v2i64.v2i64")
1901 "pmax_s8" => Intrinsic {
1902 inputs: { static INPUTS: [&'static Type; 2] = [&::I8x8, &::I8x8]; &INPUTS },
1904 definition: Named("llvm.neon.vpmaxs.v8i8")
1906 "pmax_u8" => Intrinsic {
1907 inputs: { static INPUTS: [&'static Type; 2] = [&::U8x8, &::U8x8]; &INPUTS },
1909 definition: Named("llvm.neon.vpmaxu.v8i8")
1911 "pmax_s16" => Intrinsic {
1912 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x4, &::I16x4]; &INPUTS },
1914 definition: Named("llvm.neon.vpmaxs.v4i16")
1916 "pmax_u16" => Intrinsic {
1917 inputs: { static INPUTS: [&'static Type; 2] = [&::U16x4, &::U16x4]; &INPUTS },
1919 definition: Named("llvm.neon.vpmaxu.v4i16")
1921 "pmax_s32" => Intrinsic {
1922 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x2, &::I32x2]; &INPUTS },
1924 definition: Named("llvm.neon.vpmaxs.v2i32")
1926 "pmax_u32" => Intrinsic {
1927 inputs: { static INPUTS: [&'static Type; 2] = [&::U32x2, &::U32x2]; &INPUTS },
1929 definition: Named("llvm.neon.vpmaxu.v2i32")
1931 "pmax_f32" => Intrinsic {
1932 inputs: { static INPUTS: [&'static Type; 2] = [&::F32x2, &::F32x2]; &INPUTS },
1934 definition: Named("llvm.neon.vpmaxf.v2f32")
1936 "pmin_s8" => Intrinsic {
1937 inputs: { static INPUTS: [&'static Type; 2] = [&::I8x8, &::I8x8]; &INPUTS },
1939 definition: Named("llvm.neon.vpmins.v8i8")
1941 "pmin_u8" => Intrinsic {
1942 inputs: { static INPUTS: [&'static Type; 2] = [&::U8x8, &::U8x8]; &INPUTS },
1944 definition: Named("llvm.neon.vpminu.v8i8")
1946 "pmin_s16" => Intrinsic {
1947 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x4, &::I16x4]; &INPUTS },
1949 definition: Named("llvm.neon.vpmins.v4i16")
1951 "pmin_u16" => Intrinsic {
1952 inputs: { static INPUTS: [&'static Type; 2] = [&::U16x4, &::U16x4]; &INPUTS },
1954 definition: Named("llvm.neon.vpminu.v4i16")
1956 "pmin_s32" => Intrinsic {
1957 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x2, &::I32x2]; &INPUTS },
1959 definition: Named("llvm.neon.vpmins.v2i32")
1961 "pmin_u32" => Intrinsic {
1962 inputs: { static INPUTS: [&'static Type; 2] = [&::U32x2, &::U32x2]; &INPUTS },
1964 definition: Named("llvm.neon.vpminu.v2i32")
1966 "pmin_f32" => Intrinsic {
1967 inputs: { static INPUTS: [&'static Type; 2] = [&::F32x2, &::F32x2]; &INPUTS },
1969 definition: Named("llvm.neon.vpminf.v2f32")
1971 "pminq_s8" => Intrinsic {
1972 inputs: { static INPUTS: [&'static Type; 2] = [&::I8x16, &::I8x16]; &INPUTS },
1974 definition: Named("llvm.neon.vpmins.v16i8")
1976 "pminq_u8" => Intrinsic {
1977 inputs: { static INPUTS: [&'static Type; 2] = [&::U8x16, &::U8x16]; &INPUTS },
1979 definition: Named("llvm.neon.vpminu.v16i8")
1981 "pminq_s16" => Intrinsic {
1982 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x8, &::I16x8]; &INPUTS },
1984 definition: Named("llvm.neon.vpmins.v8i16")
1986 "pminq_u16" => Intrinsic {
1987 inputs: { static INPUTS: [&'static Type; 2] = [&::U16x8, &::U16x8]; &INPUTS },
1989 definition: Named("llvm.neon.vpminu.v8i16")
1991 "pminq_s32" => Intrinsic {
1992 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x4, &::I32x4]; &INPUTS },
1994 definition: Named("llvm.neon.vpmins.v4i32")
1996 "pminq_u32" => Intrinsic {
1997 inputs: { static INPUTS: [&'static Type; 2] = [&::U32x4, &::U32x4]; &INPUTS },
1999 definition: Named("llvm.neon.vpminu.v4i32")
2001 "pminq_f32" => Intrinsic {
2002 inputs: { static INPUTS: [&'static Type; 2] = [&::F32x4, &::F32x4]; &INPUTS },
2004 definition: Named("llvm.neon.vpminf.v4f32")
2006 "tbl1_s8" => Intrinsic {
2007 inputs: { static INPUTS: [&'static Type; 2] = [&::I8x8, &::U8x8]; &INPUTS },
2009 definition: Named("llvm.neon.vtbl1")
2011 "tbl1_u8" => Intrinsic {
2012 inputs: { static INPUTS: [&'static Type; 2] = [&::U8x8, &::U8x8]; &INPUTS },
2014 definition: Named("llvm.neon.vtbl1")
2016 "tbx1_s8" => Intrinsic {
2017 inputs: { static INPUTS: [&'static Type; 3] = [&::I8x8, &::I8x8, &::U8x8]; &INPUTS },
2019 definition: Named("llvm.neon.vtbx1")
2021 "tbx1_u8" => Intrinsic {
2022 inputs: { static INPUTS: [&'static Type; 3] = [&::U8x8, &::U8x8, &::U8x8]; &INPUTS },
2024 definition: Named("llvm.neon.vtbx1")
2026 "tbl2_s8" => Intrinsic {
2027 inputs: { static INPUTS: [&'static Type; 2] = [{ static AGG: Type = Type::Aggregate(true, { static PARTS: [&'static Type; 2] = [&::I8x8, &::I8x8]; &PARTS }); &AGG }, &::U8x8]; &INPUTS },
2029 definition: Named("llvm.neon.vtbl2")
2031 "tbl2_u8" => Intrinsic {
2032 inputs: { static INPUTS: [&'static Type; 2] = [{ static AGG: Type = Type::Aggregate(true, { static PARTS: [&'static Type; 2] = [&::U8x8, &::U8x8]; &PARTS }); &AGG }, &::U8x8]; &INPUTS },
2034 definition: Named("llvm.neon.vtbl2")
2036 "tbx2_s8" => Intrinsic {
2037 inputs: { static INPUTS: [&'static Type; 2] = [{ static AGG: Type = Type::Aggregate(true, { static PARTS: [&'static Type; 2] = [&::I8x8, &::I8x8]; &PARTS }); &AGG }, &::U8x8]; &INPUTS },
2039 definition: Named("llvm.neon.vtbx2")
2041 "tbx2_u8" => Intrinsic {
2042 inputs: { static INPUTS: [&'static Type; 2] = [{ static AGG: Type = Type::Aggregate(true, { static PARTS: [&'static Type; 2] = [&::U8x8, &::U8x8]; &PARTS }); &AGG }, &::U8x8]; &INPUTS },
2044 definition: Named("llvm.neon.vtbx2")
2046 "tbl3_s8" => Intrinsic {
2047 inputs: { static INPUTS: [&'static Type; 2] = [{ static AGG: Type = Type::Aggregate(true, { static PARTS: [&'static Type; 3] = [&::I8x8, &::I8x8, &::I8x8]; &PARTS }); &AGG }, &::U8x8]; &INPUTS },
2049 definition: Named("llvm.neon.vtbl3")
2051 "tbl3_u8" => Intrinsic {
2052 inputs: { static INPUTS: [&'static Type; 2] = [{ static AGG: Type = Type::Aggregate(true, { static PARTS: [&'static Type; 3] = [&::U8x8, &::U8x8, &::U8x8]; &PARTS }); &AGG }, &::U8x8]; &INPUTS },
2054 definition: Named("llvm.neon.vtbl3")
2056 "tbx3_s8" => Intrinsic {
2057 inputs: { static INPUTS: [&'static Type; 3] = [&::I8x8, { static AGG: Type = Type::Aggregate(true, { static PARTS: [&'static Type; 3] = [&::I8x8, &::I8x8, &::I8x8]; &PARTS }); &AGG }, &::U8x8]; &INPUTS },
2059 definition: Named("llvm.neon.vtbx3")
2061 "tbx3_u8" => Intrinsic {
2062 inputs: { static INPUTS: [&'static Type; 3] = [&::U8x8, { static AGG: Type = Type::Aggregate(true, { static PARTS: [&'static Type; 3] = [&::U8x8, &::U8x8, &::U8x8]; &PARTS }); &AGG }, &::U8x8]; &INPUTS },
2064 definition: Named("llvm.neon.vtbx3")
2066 "tbl4_s8" => Intrinsic {
2067 inputs: { static INPUTS: [&'static Type; 2] = [{ static AGG: Type = Type::Aggregate(true, { static PARTS: [&'static Type; 4] = [&::I8x8, &::I8x8, &::I8x8, &::I8x8]; &PARTS }); &AGG }, &::U8x8]; &INPUTS },
2069 definition: Named("llvm.neon.vtbl4")
2071 "tbl4_u8" => Intrinsic {
2072 inputs: { static INPUTS: [&'static Type; 2] = [{ static AGG: Type = Type::Aggregate(true, { static PARTS: [&'static Type; 4] = [&::U8x8, &::U8x8, &::U8x8, &::U8x8]; &PARTS }); &AGG }, &::U8x8]; &INPUTS },
2074 definition: Named("llvm.neon.vtbl4")
2076 "tbx4_s8" => Intrinsic {
2077 inputs: { static INPUTS: [&'static Type; 3] = [&::I8x8, { static AGG: Type = Type::Aggregate(true, { static PARTS: [&'static Type; 4] = [&::I8x8, &::I8x8, &::I8x8, &::I8x8]; &PARTS }); &AGG }, &::U8x8]; &INPUTS },
2079 definition: Named("llvm.neon.vtbx4")
2081 "tbx4_u8" => Intrinsic {
2082 inputs: { static INPUTS: [&'static Type; 3] = [&::U8x8, { static AGG: Type = Type::Aggregate(true, { static PARTS: [&'static Type; 4] = [&::U8x8, &::U8x8, &::U8x8, &::U8x8]; &PARTS }); &AGG }, &::U8x8]; &INPUTS },
2084 definition: Named("llvm.neon.vtbx4")