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