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("aarch64_v") { return None }
25 Some(match &name["aarch64_v".len()..] {
26 "hadd_s8" => Intrinsic {
27 inputs: vec![v(i(8), 8), v(i(8), 8)],
29 definition: Named("llvm.aarch64.neon.shadd.v8i8")
31 "hadd_u8" => Intrinsic {
32 inputs: vec![v(u(8), 8), v(u(8), 8)],
34 definition: Named("llvm.aarch64.neon.uhadd.v8i8")
36 "hadd_s16" => Intrinsic {
37 inputs: vec![v(i(16), 4), v(i(16), 4)],
39 definition: Named("llvm.aarch64.neon.shadd.v4i16")
41 "hadd_u16" => Intrinsic {
42 inputs: vec![v(u(16), 4), v(u(16), 4)],
44 definition: Named("llvm.aarch64.neon.uhadd.v4i16")
46 "hadd_s32" => Intrinsic {
47 inputs: vec![v(i(32), 2), v(i(32), 2)],
49 definition: Named("llvm.aarch64.neon.shadd.v2i32")
51 "hadd_u32" => Intrinsic {
52 inputs: vec![v(u(32), 2), v(u(32), 2)],
54 definition: Named("llvm.aarch64.neon.uhadd.v2i32")
56 "haddq_s8" => Intrinsic {
57 inputs: vec![v(i(8), 16), v(i(8), 16)],
59 definition: Named("llvm.aarch64.neon.shadd.v16i8")
61 "haddq_u8" => Intrinsic {
62 inputs: vec![v(u(8), 16), v(u(8), 16)],
64 definition: Named("llvm.aarch64.neon.uhadd.v16i8")
66 "haddq_s16" => Intrinsic {
67 inputs: vec![v(i(16), 8), v(i(16), 8)],
69 definition: Named("llvm.aarch64.neon.shadd.v8i16")
71 "haddq_u16" => Intrinsic {
72 inputs: vec![v(u(16), 8), v(u(16), 8)],
74 definition: Named("llvm.aarch64.neon.uhadd.v8i16")
76 "haddq_s32" => Intrinsic {
77 inputs: vec![v(i(32), 4), v(i(32), 4)],
79 definition: Named("llvm.aarch64.neon.shadd.v4i32")
81 "haddq_u32" => Intrinsic {
82 inputs: vec![v(u(32), 4), v(u(32), 4)],
84 definition: Named("llvm.aarch64.neon.uhadd.v4i32")
86 "rhadd_s8" => Intrinsic {
87 inputs: vec![v(i(8), 8), v(i(8), 8)],
89 definition: Named("llvm.aarch64.neon.srhadd.v8i8")
91 "rhadd_u8" => Intrinsic {
92 inputs: vec![v(u(8), 8), v(u(8), 8)],
94 definition: Named("llvm.aarch64.neon.urhadd.v8i8")
96 "rhadd_s16" => Intrinsic {
97 inputs: vec![v(i(16), 4), v(i(16), 4)],
99 definition: Named("llvm.aarch64.neon.srhadd.v4i16")
101 "rhadd_u16" => Intrinsic {
102 inputs: vec![v(u(16), 4), v(u(16), 4)],
104 definition: Named("llvm.aarch64.neon.urhadd.v4i16")
106 "rhadd_s32" => Intrinsic {
107 inputs: vec![v(i(32), 2), v(i(32), 2)],
109 definition: Named("llvm.aarch64.neon.srhadd.v2i32")
111 "rhadd_u32" => Intrinsic {
112 inputs: vec![v(u(32), 2), v(u(32), 2)],
114 definition: Named("llvm.aarch64.neon.urhadd.v2i32")
116 "rhaddq_s8" => Intrinsic {
117 inputs: vec![v(i(8), 16), v(i(8), 16)],
119 definition: Named("llvm.aarch64.neon.srhadd.v16i8")
121 "rhaddq_u8" => Intrinsic {
122 inputs: vec![v(u(8), 16), v(u(8), 16)],
124 definition: Named("llvm.aarch64.neon.urhadd.v16i8")
126 "rhaddq_s16" => Intrinsic {
127 inputs: vec![v(i(16), 8), v(i(16), 8)],
129 definition: Named("llvm.aarch64.neon.srhadd.v8i16")
131 "rhaddq_u16" => Intrinsic {
132 inputs: vec![v(u(16), 8), v(u(16), 8)],
134 definition: Named("llvm.aarch64.neon.urhadd.v8i16")
136 "rhaddq_s32" => Intrinsic {
137 inputs: vec![v(i(32), 4), v(i(32), 4)],
139 definition: Named("llvm.aarch64.neon.srhadd.v4i32")
141 "rhaddq_u32" => Intrinsic {
142 inputs: vec![v(u(32), 4), v(u(32), 4)],
144 definition: Named("llvm.aarch64.neon.urhadd.v4i32")
146 "qadd_s8" => Intrinsic {
147 inputs: vec![v(i(8), 8), v(i(8), 8)],
149 definition: Named("llvm.aarch64.neon.sqadd.v8i8")
151 "qadd_u8" => Intrinsic {
152 inputs: vec![v(u(8), 8), v(u(8), 8)],
154 definition: Named("llvm.aarch64.neon.uqadd.v8i8")
156 "qadd_s16" => Intrinsic {
157 inputs: vec![v(i(16), 4), v(i(16), 4)],
159 definition: Named("llvm.aarch64.neon.sqadd.v4i16")
161 "qadd_u16" => Intrinsic {
162 inputs: vec![v(u(16), 4), v(u(16), 4)],
164 definition: Named("llvm.aarch64.neon.uqadd.v4i16")
166 "qadd_s32" => Intrinsic {
167 inputs: vec![v(i(32), 2), v(i(32), 2)],
169 definition: Named("llvm.aarch64.neon.sqadd.v2i32")
171 "qadd_u32" => Intrinsic {
172 inputs: vec![v(u(32), 2), v(u(32), 2)],
174 definition: Named("llvm.aarch64.neon.uqadd.v2i32")
176 "qadd_s64" => Intrinsic {
177 inputs: vec![v(i(64), 1), v(i(64), 1)],
179 definition: Named("llvm.aarch64.neon.sqadd.v1i64")
181 "qadd_u64" => Intrinsic {
182 inputs: vec![v(u(64), 1), v(u(64), 1)],
184 definition: Named("llvm.aarch64.neon.uqadd.v1i64")
186 "qaddq_s8" => Intrinsic {
187 inputs: vec![v(i(8), 16), v(i(8), 16)],
189 definition: Named("llvm.aarch64.neon.sqadd.v16i8")
191 "qaddq_u8" => Intrinsic {
192 inputs: vec![v(u(8), 16), v(u(8), 16)],
194 definition: Named("llvm.aarch64.neon.uqadd.v16i8")
196 "qaddq_s16" => Intrinsic {
197 inputs: vec![v(i(16), 8), v(i(16), 8)],
199 definition: Named("llvm.aarch64.neon.sqadd.v8i16")
201 "qaddq_u16" => Intrinsic {
202 inputs: vec![v(u(16), 8), v(u(16), 8)],
204 definition: Named("llvm.aarch64.neon.uqadd.v8i16")
206 "qaddq_s32" => Intrinsic {
207 inputs: vec![v(i(32), 4), v(i(32), 4)],
209 definition: Named("llvm.aarch64.neon.sqadd.v4i32")
211 "qaddq_u32" => Intrinsic {
212 inputs: vec![v(u(32), 4), v(u(32), 4)],
214 definition: Named("llvm.aarch64.neon.uqadd.v4i32")
216 "qaddq_s64" => Intrinsic {
217 inputs: vec![v(i(64), 2), v(i(64), 2)],
219 definition: Named("llvm.aarch64.neon.sqadd.v2i64")
221 "qaddq_u64" => Intrinsic {
222 inputs: vec![v(u(64), 2), v(u(64), 2)],
224 definition: Named("llvm.aarch64.neon.uqadd.v2i64")
226 "uqadd_s8" => Intrinsic {
227 inputs: vec![v(i(8), 16), v(u(8), 16)],
229 definition: Named("llvm.aarch64.neon.suqadd.v16i8")
231 "uqadd_s16" => Intrinsic {
232 inputs: vec![v(i(16), 8), v(u(16), 8)],
234 definition: Named("llvm.aarch64.neon.suqadd.v8i16")
236 "uqadd_s32" => Intrinsic {
237 inputs: vec![v(i(32), 4), v(u(32), 4)],
239 definition: Named("llvm.aarch64.neon.suqadd.v4i32")
241 "uqadd_s64" => Intrinsic {
242 inputs: vec![v(i(64), 2), v(u(64), 2)],
244 definition: Named("llvm.aarch64.neon.suqadd.v2i64")
246 "sqadd_u8" => Intrinsic {
247 inputs: vec![v(u(8), 16), v(i(8), 16)],
249 definition: Named("llvm.aarch64.neon.usqadd.v16i8")
251 "sqadd_u16" => Intrinsic {
252 inputs: vec![v(u(16), 8), v(i(16), 8)],
254 definition: Named("llvm.aarch64.neon.usqadd.v8i16")
256 "sqadd_u32" => Intrinsic {
257 inputs: vec![v(u(32), 4), v(i(32), 4)],
259 definition: Named("llvm.aarch64.neon.usqadd.v4i32")
261 "sqadd_u64" => Intrinsic {
262 inputs: vec![v(u(64), 2), v(i(64), 2)],
264 definition: Named("llvm.aarch64.neon.usqadd.v2i64")
266 "raddhn_s16" => Intrinsic {
267 inputs: vec![v(i(16), 8), v(i(16), 8)],
269 definition: Named("llvm.aarch64.neon.raddhn.v8i8")
271 "raddhn_u16" => Intrinsic {
272 inputs: vec![v(u(16), 8), v(u(16), 8)],
274 definition: Named("llvm.aarch64.neon.raddhn.v8i8")
276 "raddhn_s32" => Intrinsic {
277 inputs: vec![v(i(32), 4), v(i(32), 4)],
279 definition: Named("llvm.aarch64.neon.raddhn.v4i16")
281 "raddhn_u32" => Intrinsic {
282 inputs: vec![v(u(32), 4), v(u(32), 4)],
284 definition: Named("llvm.aarch64.neon.raddhn.v4i16")
286 "raddhn_s64" => Intrinsic {
287 inputs: vec![v(i(64), 2), v(i(64), 2)],
289 definition: Named("llvm.aarch64.neon.raddhn.v2i32")
291 "raddhn_u64" => Intrinsic {
292 inputs: vec![v(u(64), 2), v(u(64), 2)],
294 definition: Named("llvm.aarch64.neon.raddhn.v2i32")
296 "fmulx_f32" => Intrinsic {
297 inputs: vec![v(f(32), 2), v(f(32), 2)],
299 definition: Named("llvm.aarch64.neon.fmulx.v2f32")
301 "fmulx_f64" => Intrinsic {
302 inputs: vec![v(f(64), 1), v(f(64), 1)],
304 definition: Named("llvm.aarch64.neon.fmulx.v1f64")
306 "fmulxq_f32" => Intrinsic {
307 inputs: vec![v(f(32), 4), v(f(32), 4)],
309 definition: Named("llvm.aarch64.neon.fmulx.v4f32")
311 "fmulxq_f64" => Intrinsic {
312 inputs: vec![v(f(64), 2), v(f(64), 2)],
314 definition: Named("llvm.aarch64.neon.fmulx.v2f64")
316 "fma_f32" => Intrinsic {
317 inputs: vec![v(f(32), 2), v(f(32), 2)],
319 definition: Named("llvm.fma.v2f32")
321 "fma_f64" => Intrinsic {
322 inputs: vec![v(f(64), 1), v(f(64), 1)],
324 definition: Named("llvm.fma.v1f64")
326 "fmaq_f32" => Intrinsic {
327 inputs: vec![v(f(32), 4), v(f(32), 4)],
329 definition: Named("llvm.fma.v4f32")
331 "fmaq_f64" => Intrinsic {
332 inputs: vec![v(f(64), 2), v(f(64), 2)],
334 definition: Named("llvm.fma.v2f64")
336 "qdmulh_s16" => Intrinsic {
337 inputs: vec![v(i(16), 4), v(i(16), 4)],
339 definition: Named("llvm.aarch64.neon.sqdmulh.v4i16")
341 "qdmulh_s32" => Intrinsic {
342 inputs: vec![v(i(32), 2), v(i(32), 2)],
344 definition: Named("llvm.aarch64.neon.sqdmulh.v2i32")
346 "qdmulhq_s16" => Intrinsic {
347 inputs: vec![v(i(16), 8), v(i(16), 8)],
349 definition: Named("llvm.aarch64.neon.sqdmulh.v8i16")
351 "qdmulhq_s32" => Intrinsic {
352 inputs: vec![v(i(32), 4), v(i(32), 4)],
354 definition: Named("llvm.aarch64.neon.sqdmulh.v4i32")
356 "qrdmulh_s16" => Intrinsic {
357 inputs: vec![v(i(16), 4), v(i(16), 4)],
359 definition: Named("llvm.aarch64.neon.sqrdmulh.v4i16")
361 "qrdmulh_s32" => Intrinsic {
362 inputs: vec![v(i(32), 2), v(i(32), 2)],
364 definition: Named("llvm.aarch64.neon.sqrdmulh.v2i32")
366 "qrdmulhq_s16" => Intrinsic {
367 inputs: vec![v(i(16), 8), v(i(16), 8)],
369 definition: Named("llvm.aarch64.neon.sqrdmulh.v8i16")
371 "qrdmulhq_s32" => Intrinsic {
372 inputs: vec![v(i(32), 4), v(i(32), 4)],
374 definition: Named("llvm.aarch64.neon.sqrdmulh.v4i32")
376 "mull_s8" => Intrinsic {
377 inputs: vec![v(i(8), 8), v(i(8), 8)],
379 definition: Named("llvm.aarch64.neon.smull.v8i16")
381 "mull_u8" => Intrinsic {
382 inputs: vec![v(u(8), 8), v(u(8), 8)],
384 definition: Named("llvm.aarch64.neon.umull.v8i16")
386 "mull_s16" => Intrinsic {
387 inputs: vec![v(i(16), 4), v(i(16), 4)],
389 definition: Named("llvm.aarch64.neon.smull.v4i32")
391 "mull_u16" => Intrinsic {
392 inputs: vec![v(u(16), 4), v(u(16), 4)],
394 definition: Named("llvm.aarch64.neon.umull.v4i32")
396 "mull_s32" => Intrinsic {
397 inputs: vec![v(i(32), 2), v(i(32), 2)],
399 definition: Named("llvm.aarch64.neon.smull.v2i64")
401 "mull_u32" => Intrinsic {
402 inputs: vec![v(u(32), 2), v(u(32), 2)],
404 definition: Named("llvm.aarch64.neon.umull.v2i64")
406 "qdmullq_s8" => Intrinsic {
407 inputs: vec![v(i(8), 8), v(i(8), 8)],
409 definition: Named("llvm.aarch64.neon.sqdmull.v8i16")
411 "qdmullq_s16" => Intrinsic {
412 inputs: vec![v(i(16), 4), v(i(16), 4)],
414 definition: Named("llvm.aarch64.neon.sqdmull.v4i32")
416 "hsub_s8" => Intrinsic {
417 inputs: vec![v(i(8), 8), v(i(8), 8)],
419 definition: Named("llvm.aarch64.neon.shsub.v8i8")
421 "hsub_u8" => Intrinsic {
422 inputs: vec![v(u(8), 8), v(u(8), 8)],
424 definition: Named("llvm.aarch64.neon.uhsub.v8i8")
426 "hsub_s16" => Intrinsic {
427 inputs: vec![v(i(16), 4), v(i(16), 4)],
429 definition: Named("llvm.aarch64.neon.shsub.v4i16")
431 "hsub_u16" => Intrinsic {
432 inputs: vec![v(u(16), 4), v(u(16), 4)],
434 definition: Named("llvm.aarch64.neon.uhsub.v4i16")
436 "hsub_s32" => Intrinsic {
437 inputs: vec![v(i(32), 2), v(i(32), 2)],
439 definition: Named("llvm.aarch64.neon.shsub.v2i32")
441 "hsub_u32" => Intrinsic {
442 inputs: vec![v(u(32), 2), v(u(32), 2)],
444 definition: Named("llvm.aarch64.neon.uhsub.v2i32")
446 "hsubq_s8" => Intrinsic {
447 inputs: vec![v(i(8), 16), v(i(8), 16)],
449 definition: Named("llvm.aarch64.neon.shsub.v16i8")
451 "hsubq_u8" => Intrinsic {
452 inputs: vec![v(u(8), 16), v(u(8), 16)],
454 definition: Named("llvm.aarch64.neon.uhsub.v16i8")
456 "hsubq_s16" => Intrinsic {
457 inputs: vec![v(i(16), 8), v(i(16), 8)],
459 definition: Named("llvm.aarch64.neon.shsub.v8i16")
461 "hsubq_u16" => Intrinsic {
462 inputs: vec![v(u(16), 8), v(u(16), 8)],
464 definition: Named("llvm.aarch64.neon.uhsub.v8i16")
466 "hsubq_s32" => Intrinsic {
467 inputs: vec![v(i(32), 4), v(i(32), 4)],
469 definition: Named("llvm.aarch64.neon.shsub.v4i32")
471 "hsubq_u32" => Intrinsic {
472 inputs: vec![v(u(32), 4), v(u(32), 4)],
474 definition: Named("llvm.aarch64.neon.uhsub.v4i32")
476 "qsub_s8" => Intrinsic {
477 inputs: vec![v(i(8), 8), v(i(8), 8)],
479 definition: Named("llvm.aarch64.neon.sqsub.v8i8")
481 "qsub_u8" => Intrinsic {
482 inputs: vec![v(u(8), 8), v(u(8), 8)],
484 definition: Named("llvm.aarch64.neon.uqsub.v8i8")
486 "qsub_s16" => Intrinsic {
487 inputs: vec![v(i(16), 4), v(i(16), 4)],
489 definition: Named("llvm.aarch64.neon.sqsub.v4i16")
491 "qsub_u16" => Intrinsic {
492 inputs: vec![v(u(16), 4), v(u(16), 4)],
494 definition: Named("llvm.aarch64.neon.uqsub.v4i16")
496 "qsub_s32" => Intrinsic {
497 inputs: vec![v(i(32), 2), v(i(32), 2)],
499 definition: Named("llvm.aarch64.neon.sqsub.v2i32")
501 "qsub_u32" => Intrinsic {
502 inputs: vec![v(u(32), 2), v(u(32), 2)],
504 definition: Named("llvm.aarch64.neon.uqsub.v2i32")
506 "qsub_s64" => Intrinsic {
507 inputs: vec![v(i(64), 1), v(i(64), 1)],
509 definition: Named("llvm.aarch64.neon.sqsub.v1i64")
511 "qsub_u64" => Intrinsic {
512 inputs: vec![v(u(64), 1), v(u(64), 1)],
514 definition: Named("llvm.aarch64.neon.uqsub.v1i64")
516 "qsubq_s8" => Intrinsic {
517 inputs: vec![v(i(8), 16), v(i(8), 16)],
519 definition: Named("llvm.aarch64.neon.sqsub.v16i8")
521 "qsubq_u8" => Intrinsic {
522 inputs: vec![v(u(8), 16), v(u(8), 16)],
524 definition: Named("llvm.aarch64.neon.uqsub.v16i8")
526 "qsubq_s16" => Intrinsic {
527 inputs: vec![v(i(16), 8), v(i(16), 8)],
529 definition: Named("llvm.aarch64.neon.sqsub.v8i16")
531 "qsubq_u16" => Intrinsic {
532 inputs: vec![v(u(16), 8), v(u(16), 8)],
534 definition: Named("llvm.aarch64.neon.uqsub.v8i16")
536 "qsubq_s32" => Intrinsic {
537 inputs: vec![v(i(32), 4), v(i(32), 4)],
539 definition: Named("llvm.aarch64.neon.sqsub.v4i32")
541 "qsubq_u32" => Intrinsic {
542 inputs: vec![v(u(32), 4), v(u(32), 4)],
544 definition: Named("llvm.aarch64.neon.uqsub.v4i32")
546 "qsubq_s64" => Intrinsic {
547 inputs: vec![v(i(64), 2), v(i(64), 2)],
549 definition: Named("llvm.aarch64.neon.sqsub.v2i64")
551 "qsubq_u64" => Intrinsic {
552 inputs: vec![v(u(64), 2), v(u(64), 2)],
554 definition: Named("llvm.aarch64.neon.uqsub.v2i64")
556 "rsubhn_s16" => Intrinsic {
557 inputs: vec![v(i(16), 8), v(i(16), 8)],
559 definition: Named("llvm.aarch64.neon.rsubhn.v8i8")
561 "rsubhn_u16" => Intrinsic {
562 inputs: vec![v(u(16), 8), v(u(16), 8)],
564 definition: Named("llvm.aarch64.neon.rsubhn.v8i8")
566 "rsubhn_s32" => Intrinsic {
567 inputs: vec![v(i(32), 4), v(i(32), 4)],
569 definition: Named("llvm.aarch64.neon.rsubhn.v4i16")
571 "rsubhn_u32" => Intrinsic {
572 inputs: vec![v(u(32), 4), v(u(32), 4)],
574 definition: Named("llvm.aarch64.neon.rsubhn.v4i16")
576 "rsubhn_s64" => Intrinsic {
577 inputs: vec![v(i(64), 2), v(i(64), 2)],
579 definition: Named("llvm.aarch64.neon.rsubhn.v2i32")
581 "rsubhn_u64" => Intrinsic {
582 inputs: vec![v(u(64), 2), v(u(64), 2)],
584 definition: Named("llvm.aarch64.neon.rsubhn.v2i32")
586 "abd_s8" => Intrinsic {
587 inputs: vec![v(i(8), 8), v(i(8), 8)],
589 definition: Named("llvm.aarch64.neon.sabd.v8i8")
591 "abd_u8" => Intrinsic {
592 inputs: vec![v(u(8), 8), v(u(8), 8)],
594 definition: Named("llvm.aarch64.neon.uabd.v8i8")
596 "abd_s16" => Intrinsic {
597 inputs: vec![v(i(16), 4), v(i(16), 4)],
599 definition: Named("llvm.aarch64.neon.sabd.v4i16")
601 "abd_u16" => Intrinsic {
602 inputs: vec![v(u(16), 4), v(u(16), 4)],
604 definition: Named("llvm.aarch64.neon.uabd.v4i16")
606 "abd_s32" => Intrinsic {
607 inputs: vec![v(i(32), 2), v(i(32), 2)],
609 definition: Named("llvm.aarch64.neon.sabd.v2i32")
611 "abd_u32" => Intrinsic {
612 inputs: vec![v(u(32), 2), v(u(32), 2)],
614 definition: Named("llvm.aarch64.neon.uabd.v2i32")
616 "abd_f32" => Intrinsic {
617 inputs: vec![v(f(32), 2), v(f(32), 2)],
619 definition: Named("llvm.aarch64.neon.fabd.v2f32")
621 "abd_f64" => Intrinsic {
622 inputs: vec![v(f(64), 1), v(f(64), 1)],
624 definition: Named("llvm.aarch64.neon.fabd.v1f64")
626 "abdq_s8" => Intrinsic {
627 inputs: vec![v(i(8), 16), v(i(8), 16)],
629 definition: Named("llvm.aarch64.neon.sabd.v16i8")
631 "abdq_u8" => Intrinsic {
632 inputs: vec![v(u(8), 16), v(u(8), 16)],
634 definition: Named("llvm.aarch64.neon.uabd.v16i8")
636 "abdq_s16" => Intrinsic {
637 inputs: vec![v(i(16), 8), v(i(16), 8)],
639 definition: Named("llvm.aarch64.neon.sabd.v8i16")
641 "abdq_u16" => Intrinsic {
642 inputs: vec![v(u(16), 8), v(u(16), 8)],
644 definition: Named("llvm.aarch64.neon.uabd.v8i16")
646 "abdq_s32" => Intrinsic {
647 inputs: vec![v(i(32), 4), v(i(32), 4)],
649 definition: Named("llvm.aarch64.neon.sabd.v4i32")
651 "abdq_u32" => Intrinsic {
652 inputs: vec![v(u(32), 4), v(u(32), 4)],
654 definition: Named("llvm.aarch64.neon.uabd.v4i32")
656 "abdq_f32" => Intrinsic {
657 inputs: vec![v(f(32), 4), v(f(32), 4)],
659 definition: Named("llvm.aarch64.neon.fabd.v4f32")
661 "abdq_f64" => Intrinsic {
662 inputs: vec![v(f(64), 2), v(f(64), 2)],
664 definition: Named("llvm.aarch64.neon.fabd.v2f64")
666 "max_s8" => Intrinsic {
667 inputs: vec![v(i(8), 8), v(i(8), 8)],
669 definition: Named("llvm.aarch64.neon.smax.v8i8")
671 "max_u8" => Intrinsic {
672 inputs: vec![v(u(8), 8), v(u(8), 8)],
674 definition: Named("llvm.aarch64.neon.umax.v8i8")
676 "max_s16" => Intrinsic {
677 inputs: vec![v(i(16), 4), v(i(16), 4)],
679 definition: Named("llvm.aarch64.neon.smax.v4i16")
681 "max_u16" => Intrinsic {
682 inputs: vec![v(u(16), 4), v(u(16), 4)],
684 definition: Named("llvm.aarch64.neon.umax.v4i16")
686 "max_s32" => Intrinsic {
687 inputs: vec![v(i(32), 2), v(i(32), 2)],
689 definition: Named("llvm.aarch64.neon.smax.v2i32")
691 "max_u32" => Intrinsic {
692 inputs: vec![v(u(32), 2), v(u(32), 2)],
694 definition: Named("llvm.aarch64.neon.umax.v2i32")
696 "max_f32" => Intrinsic {
697 inputs: vec![v(f(32), 2), v(f(32), 2)],
699 definition: Named("llvm.aarch64.neon.fmax.v2f32")
701 "max_f64" => Intrinsic {
702 inputs: vec![v(f(64), 1), v(f(64), 1)],
704 definition: Named("llvm.aarch64.neon.fmax.v1f64")
706 "maxq_s8" => Intrinsic {
707 inputs: vec![v(i(8), 16), v(i(8), 16)],
709 definition: Named("llvm.aarch64.neon.smax.v16i8")
711 "maxq_u8" => Intrinsic {
712 inputs: vec![v(u(8), 16), v(u(8), 16)],
714 definition: Named("llvm.aarch64.neon.umax.v16i8")
716 "maxq_s16" => Intrinsic {
717 inputs: vec![v(i(16), 8), v(i(16), 8)],
719 definition: Named("llvm.aarch64.neon.smax.v8i16")
721 "maxq_u16" => Intrinsic {
722 inputs: vec![v(u(16), 8), v(u(16), 8)],
724 definition: Named("llvm.aarch64.neon.umax.v8i16")
726 "maxq_s32" => Intrinsic {
727 inputs: vec![v(i(32), 4), v(i(32), 4)],
729 definition: Named("llvm.aarch64.neon.smax.v4i32")
731 "maxq_u32" => Intrinsic {
732 inputs: vec![v(u(32), 4), v(u(32), 4)],
734 definition: Named("llvm.aarch64.neon.umax.v4i32")
736 "maxq_f32" => Intrinsic {
737 inputs: vec![v(f(32), 4), v(f(32), 4)],
739 definition: Named("llvm.aarch64.neon.fmax.v4f32")
741 "maxq_f64" => Intrinsic {
742 inputs: vec![v(f(64), 2), v(f(64), 2)],
744 definition: Named("llvm.aarch64.neon.fmax.v2f64")
746 "min_s8" => Intrinsic {
747 inputs: vec![v(i(8), 8), v(i(8), 8)],
749 definition: Named("llvm.aarch64.neon.smin.v8i8")
751 "min_u8" => Intrinsic {
752 inputs: vec![v(u(8), 8), v(u(8), 8)],
754 definition: Named("llvm.aarch64.neon.umin.v8i8")
756 "min_s16" => Intrinsic {
757 inputs: vec![v(i(16), 4), v(i(16), 4)],
759 definition: Named("llvm.aarch64.neon.smin.v4i16")
761 "min_u16" => Intrinsic {
762 inputs: vec![v(u(16), 4), v(u(16), 4)],
764 definition: Named("llvm.aarch64.neon.umin.v4i16")
766 "min_s32" => Intrinsic {
767 inputs: vec![v(i(32), 2), v(i(32), 2)],
769 definition: Named("llvm.aarch64.neon.smin.v2i32")
771 "min_u32" => Intrinsic {
772 inputs: vec![v(u(32), 2), v(u(32), 2)],
774 definition: Named("llvm.aarch64.neon.umin.v2i32")
776 "min_f32" => Intrinsic {
777 inputs: vec![v(f(32), 2), v(f(32), 2)],
779 definition: Named("llvm.aarch64.neon.fmin.v2f32")
781 "min_f64" => Intrinsic {
782 inputs: vec![v(f(64), 1), v(f(64), 1)],
784 definition: Named("llvm.aarch64.neon.fmin.v1f64")
786 "minq_s8" => Intrinsic {
787 inputs: vec![v(i(8), 16), v(i(8), 16)],
789 definition: Named("llvm.aarch64.neon.smin.v16i8")
791 "minq_u8" => Intrinsic {
792 inputs: vec![v(u(8), 16), v(u(8), 16)],
794 definition: Named("llvm.aarch64.neon.umin.v16i8")
796 "minq_s16" => Intrinsic {
797 inputs: vec![v(i(16), 8), v(i(16), 8)],
799 definition: Named("llvm.aarch64.neon.smin.v8i16")
801 "minq_u16" => Intrinsic {
802 inputs: vec![v(u(16), 8), v(u(16), 8)],
804 definition: Named("llvm.aarch64.neon.umin.v8i16")
806 "minq_s32" => Intrinsic {
807 inputs: vec![v(i(32), 4), v(i(32), 4)],
809 definition: Named("llvm.aarch64.neon.smin.v4i32")
811 "minq_u32" => Intrinsic {
812 inputs: vec![v(u(32), 4), v(u(32), 4)],
814 definition: Named("llvm.aarch64.neon.umin.v4i32")
816 "minq_f32" => Intrinsic {
817 inputs: vec![v(f(32), 4), v(f(32), 4)],
819 definition: Named("llvm.aarch64.neon.fmin.v4f32")
821 "minq_f64" => Intrinsic {
822 inputs: vec![v(f(64), 2), v(f(64), 2)],
824 definition: Named("llvm.aarch64.neon.fmin.v2f64")
826 "maxnm_f32" => Intrinsic {
827 inputs: vec![v(f(32), 2), v(f(32), 2)],
829 definition: Named("llvm.aarch64.neon.fmaxnm.v2f32")
831 "maxnm_f64" => Intrinsic {
832 inputs: vec![v(f(64), 1), v(f(64), 1)],
834 definition: Named("llvm.aarch64.neon.fmaxnm.v1f64")
836 "maxnmq_f32" => Intrinsic {
837 inputs: vec![v(f(32), 4), v(f(32), 4)],
839 definition: Named("llvm.aarch64.neon.fmaxnm.v4f32")
841 "maxnmq_f64" => Intrinsic {
842 inputs: vec![v(f(64), 2), v(f(64), 2)],
844 definition: Named("llvm.aarch64.neon.fmaxnm.v2f64")
846 "minnm_f32" => Intrinsic {
847 inputs: vec![v(f(32), 2), v(f(32), 2)],
849 definition: Named("llvm.aarch64.neon.fminnm.v2f32")
851 "minnm_f64" => Intrinsic {
852 inputs: vec![v(f(64), 1), v(f(64), 1)],
854 definition: Named("llvm.aarch64.neon.fminnm.v1f64")
856 "minnmq_f32" => Intrinsic {
857 inputs: vec![v(f(32), 4), v(f(32), 4)],
859 definition: Named("llvm.aarch64.neon.fminnm.v4f32")
861 "minnmq_f64" => Intrinsic {
862 inputs: vec![v(f(64), 2), v(f(64), 2)],
864 definition: Named("llvm.aarch64.neon.fminnm.v2f64")
866 "shl_s8" => Intrinsic {
867 inputs: vec![v(i(8), 8), v(i(8), 8)],
869 definition: Named("llvm.aarch64.neon.sshl.v8i8")
871 "shl_u8" => Intrinsic {
872 inputs: vec![v(u(8), 8), v(i(8), 8)],
874 definition: Named("llvm.aarch64.neon.ushl.v8i8")
876 "shl_s16" => Intrinsic {
877 inputs: vec![v(i(16), 4), v(i(16), 4)],
879 definition: Named("llvm.aarch64.neon.sshl.v4i16")
881 "shl_u16" => Intrinsic {
882 inputs: vec![v(u(16), 4), v(i(16), 4)],
884 definition: Named("llvm.aarch64.neon.ushl.v4i16")
886 "shl_s32" => Intrinsic {
887 inputs: vec![v(i(32), 2), v(i(32), 2)],
889 definition: Named("llvm.aarch64.neon.sshl.v2i32")
891 "shl_u32" => Intrinsic {
892 inputs: vec![v(u(32), 2), v(i(32), 2)],
894 definition: Named("llvm.aarch64.neon.ushl.v2i32")
896 "shl_s64" => Intrinsic {
897 inputs: vec![v(i(64), 1), v(i(64), 1)],
899 definition: Named("llvm.aarch64.neon.sshl.v1i64")
901 "shl_u64" => Intrinsic {
902 inputs: vec![v(u(64), 1), v(i(64), 1)],
904 definition: Named("llvm.aarch64.neon.ushl.v1i64")
906 "shlq_s8" => Intrinsic {
907 inputs: vec![v(i(8), 16), v(i(8), 16)],
909 definition: Named("llvm.aarch64.neon.sshl.v16i8")
911 "shlq_u8" => Intrinsic {
912 inputs: vec![v(u(8), 16), v(i(8), 16)],
914 definition: Named("llvm.aarch64.neon.ushl.v16i8")
916 "shlq_s16" => Intrinsic {
917 inputs: vec![v(i(16), 8), v(i(16), 8)],
919 definition: Named("llvm.aarch64.neon.sshl.v8i16")
921 "shlq_u16" => Intrinsic {
922 inputs: vec![v(u(16), 8), v(i(16), 8)],
924 definition: Named("llvm.aarch64.neon.ushl.v8i16")
926 "shlq_s32" => Intrinsic {
927 inputs: vec![v(i(32), 4), v(i(32), 4)],
929 definition: Named("llvm.aarch64.neon.sshl.v4i32")
931 "shlq_u32" => Intrinsic {
932 inputs: vec![v(u(32), 4), v(i(32), 4)],
934 definition: Named("llvm.aarch64.neon.ushl.v4i32")
936 "shlq_s64" => Intrinsic {
937 inputs: vec![v(i(64), 2), v(i(64), 2)],
939 definition: Named("llvm.aarch64.neon.sshl.v2i64")
941 "shlq_u64" => Intrinsic {
942 inputs: vec![v(u(64), 2), v(i(64), 2)],
944 definition: Named("llvm.aarch64.neon.ushl.v2i64")
946 "qshl_s8" => Intrinsic {
947 inputs: vec![v(i(8), 8), v(i(8), 8)],
949 definition: Named("llvm.aarch64.neon.sqshl.v8i8")
951 "qshl_u8" => Intrinsic {
952 inputs: vec![v(u(8), 8), v(i(8), 8)],
954 definition: Named("llvm.aarch64.neon.uqshl.v8i8")
956 "qshl_s16" => Intrinsic {
957 inputs: vec![v(i(16), 4), v(i(16), 4)],
959 definition: Named("llvm.aarch64.neon.sqshl.v4i16")
961 "qshl_u16" => Intrinsic {
962 inputs: vec![v(u(16), 4), v(i(16), 4)],
964 definition: Named("llvm.aarch64.neon.uqshl.v4i16")
966 "qshl_s32" => Intrinsic {
967 inputs: vec![v(i(32), 2), v(i(32), 2)],
969 definition: Named("llvm.aarch64.neon.sqshl.v2i32")
971 "qshl_u32" => Intrinsic {
972 inputs: vec![v(u(32), 2), v(i(32), 2)],
974 definition: Named("llvm.aarch64.neon.uqshl.v2i32")
976 "qshl_s64" => Intrinsic {
977 inputs: vec![v(i(64), 1), v(i(64), 1)],
979 definition: Named("llvm.aarch64.neon.sqshl.v1i64")
981 "qshl_u64" => Intrinsic {
982 inputs: vec![v(u(64), 1), v(i(64), 1)],
984 definition: Named("llvm.aarch64.neon.uqshl.v1i64")
986 "qshlq_s8" => Intrinsic {
987 inputs: vec![v(i(8), 16), v(i(8), 16)],
989 definition: Named("llvm.aarch64.neon.sqshl.v16i8")
991 "qshlq_u8" => Intrinsic {
992 inputs: vec![v(u(8), 16), v(i(8), 16)],
994 definition: Named("llvm.aarch64.neon.uqshl.v16i8")
996 "qshlq_s16" => Intrinsic {
997 inputs: vec![v(i(16), 8), v(i(16), 8)],
999 definition: Named("llvm.aarch64.neon.sqshl.v8i16")
1001 "qshlq_u16" => Intrinsic {
1002 inputs: vec![v(u(16), 8), v(i(16), 8)],
1003 output: v(u(16), 8),
1004 definition: Named("llvm.aarch64.neon.uqshl.v8i16")
1006 "qshlq_s32" => Intrinsic {
1007 inputs: vec![v(i(32), 4), v(i(32), 4)],
1008 output: v(i(32), 4),
1009 definition: Named("llvm.aarch64.neon.sqshl.v4i32")
1011 "qshlq_u32" => Intrinsic {
1012 inputs: vec![v(u(32), 4), v(i(32), 4)],
1013 output: v(u(32), 4),
1014 definition: Named("llvm.aarch64.neon.uqshl.v4i32")
1016 "qshlq_s64" => Intrinsic {
1017 inputs: vec![v(i(64), 2), v(i(64), 2)],
1018 output: v(i(64), 2),
1019 definition: Named("llvm.aarch64.neon.sqshl.v2i64")
1021 "qshlq_u64" => Intrinsic {
1022 inputs: vec![v(u(64), 2), v(i(64), 2)],
1023 output: v(u(64), 2),
1024 definition: Named("llvm.aarch64.neon.uqshl.v2i64")
1026 "rshl_s8" => Intrinsic {
1027 inputs: vec![v(i(8), 8), v(i(8), 8)],
1029 definition: Named("llvm.aarch64.neon.srshl.v8i8")
1031 "rshl_u8" => Intrinsic {
1032 inputs: vec![v(u(8), 8), v(i(8), 8)],
1034 definition: Named("llvm.aarch64.neon.urshl.v8i8")
1036 "rshl_s16" => Intrinsic {
1037 inputs: vec![v(i(16), 4), v(i(16), 4)],
1038 output: v(i(16), 4),
1039 definition: Named("llvm.aarch64.neon.srshl.v4i16")
1041 "rshl_u16" => Intrinsic {
1042 inputs: vec![v(u(16), 4), v(i(16), 4)],
1043 output: v(u(16), 4),
1044 definition: Named("llvm.aarch64.neon.urshl.v4i16")
1046 "rshl_s32" => Intrinsic {
1047 inputs: vec![v(i(32), 2), v(i(32), 2)],
1048 output: v(i(32), 2),
1049 definition: Named("llvm.aarch64.neon.srshl.v2i32")
1051 "rshl_u32" => Intrinsic {
1052 inputs: vec![v(u(32), 2), v(i(32), 2)],
1053 output: v(u(32), 2),
1054 definition: Named("llvm.aarch64.neon.urshl.v2i32")
1056 "rshl_s64" => Intrinsic {
1057 inputs: vec![v(i(64), 1), v(i(64), 1)],
1058 output: v(i(64), 1),
1059 definition: Named("llvm.aarch64.neon.srshl.v1i64")
1061 "rshl_u64" => Intrinsic {
1062 inputs: vec![v(u(64), 1), v(i(64), 1)],
1063 output: v(u(64), 1),
1064 definition: Named("llvm.aarch64.neon.urshl.v1i64")
1066 "rshlq_s8" => Intrinsic {
1067 inputs: vec![v(i(8), 16), v(i(8), 16)],
1068 output: v(i(8), 16),
1069 definition: Named("llvm.aarch64.neon.srshl.v16i8")
1071 "rshlq_u8" => Intrinsic {
1072 inputs: vec![v(u(8), 16), v(i(8), 16)],
1073 output: v(u(8), 16),
1074 definition: Named("llvm.aarch64.neon.urshl.v16i8")
1076 "rshlq_s16" => Intrinsic {
1077 inputs: vec![v(i(16), 8), v(i(16), 8)],
1078 output: v(i(16), 8),
1079 definition: Named("llvm.aarch64.neon.srshl.v8i16")
1081 "rshlq_u16" => Intrinsic {
1082 inputs: vec![v(u(16), 8), v(i(16), 8)],
1083 output: v(u(16), 8),
1084 definition: Named("llvm.aarch64.neon.urshl.v8i16")
1086 "rshlq_s32" => Intrinsic {
1087 inputs: vec![v(i(32), 4), v(i(32), 4)],
1088 output: v(i(32), 4),
1089 definition: Named("llvm.aarch64.neon.srshl.v4i32")
1091 "rshlq_u32" => Intrinsic {
1092 inputs: vec![v(u(32), 4), v(i(32), 4)],
1093 output: v(u(32), 4),
1094 definition: Named("llvm.aarch64.neon.urshl.v4i32")
1096 "rshlq_s64" => Intrinsic {
1097 inputs: vec![v(i(64), 2), v(i(64), 2)],
1098 output: v(i(64), 2),
1099 definition: Named("llvm.aarch64.neon.srshl.v2i64")
1101 "rshlq_u64" => Intrinsic {
1102 inputs: vec![v(u(64), 2), v(i(64), 2)],
1103 output: v(u(64), 2),
1104 definition: Named("llvm.aarch64.neon.urshl.v2i64")
1106 "qrshl_s8" => Intrinsic {
1107 inputs: vec![v(i(8), 8), v(i(8), 8)],
1109 definition: Named("llvm.aarch64.neon.sqrshl.v8i8")
1111 "qrshl_u8" => Intrinsic {
1112 inputs: vec![v(u(8), 8), v(i(8), 8)],
1114 definition: Named("llvm.aarch64.neon.uqrshl.v8i8")
1116 "qrshl_s16" => Intrinsic {
1117 inputs: vec![v(i(16), 4), v(i(16), 4)],
1118 output: v(i(16), 4),
1119 definition: Named("llvm.aarch64.neon.sqrshl.v4i16")
1121 "qrshl_u16" => Intrinsic {
1122 inputs: vec![v(u(16), 4), v(i(16), 4)],
1123 output: v(u(16), 4),
1124 definition: Named("llvm.aarch64.neon.uqrshl.v4i16")
1126 "qrshl_s32" => Intrinsic {
1127 inputs: vec![v(i(32), 2), v(i(32), 2)],
1128 output: v(i(32), 2),
1129 definition: Named("llvm.aarch64.neon.sqrshl.v2i32")
1131 "qrshl_u32" => Intrinsic {
1132 inputs: vec![v(u(32), 2), v(i(32), 2)],
1133 output: v(u(32), 2),
1134 definition: Named("llvm.aarch64.neon.uqrshl.v2i32")
1136 "qrshl_s64" => Intrinsic {
1137 inputs: vec![v(i(64), 1), v(i(64), 1)],
1138 output: v(i(64), 1),
1139 definition: Named("llvm.aarch64.neon.sqrshl.v1i64")
1141 "qrshl_u64" => Intrinsic {
1142 inputs: vec![v(u(64), 1), v(i(64), 1)],
1143 output: v(u(64), 1),
1144 definition: Named("llvm.aarch64.neon.uqrshl.v1i64")
1146 "qrshlq_s8" => Intrinsic {
1147 inputs: vec![v(i(8), 16), v(i(8), 16)],
1148 output: v(i(8), 16),
1149 definition: Named("llvm.aarch64.neon.sqrshl.v16i8")
1151 "qrshlq_u8" => Intrinsic {
1152 inputs: vec![v(u(8), 16), v(i(8), 16)],
1153 output: v(u(8), 16),
1154 definition: Named("llvm.aarch64.neon.uqrshl.v16i8")
1156 "qrshlq_s16" => Intrinsic {
1157 inputs: vec![v(i(16), 8), v(i(16), 8)],
1158 output: v(i(16), 8),
1159 definition: Named("llvm.aarch64.neon.sqrshl.v8i16")
1161 "qrshlq_u16" => Intrinsic {
1162 inputs: vec![v(u(16), 8), v(i(16), 8)],
1163 output: v(u(16), 8),
1164 definition: Named("llvm.aarch64.neon.uqrshl.v8i16")
1166 "qrshlq_s32" => Intrinsic {
1167 inputs: vec![v(i(32), 4), v(i(32), 4)],
1168 output: v(i(32), 4),
1169 definition: Named("llvm.aarch64.neon.sqrshl.v4i32")
1171 "qrshlq_u32" => Intrinsic {
1172 inputs: vec![v(u(32), 4), v(i(32), 4)],
1173 output: v(u(32), 4),
1174 definition: Named("llvm.aarch64.neon.uqrshl.v4i32")
1176 "qrshlq_s64" => Intrinsic {
1177 inputs: vec![v(i(64), 2), v(i(64), 2)],
1178 output: v(i(64), 2),
1179 definition: Named("llvm.aarch64.neon.sqrshl.v2i64")
1181 "qrshlq_u64" => Intrinsic {
1182 inputs: vec![v(u(64), 2), v(i(64), 2)],
1183 output: v(u(64), 2),
1184 definition: Named("llvm.aarch64.neon.uqrshl.v2i64")
1186 "qshrun_n_s16" => Intrinsic {
1187 inputs: vec![v(i(16), 8), u(32)],
1189 definition: Named("llvm.aarch64.neon.sqshrun.v8i8")
1191 "qshrun_n_s32" => Intrinsic {
1192 inputs: vec![v(i(32), 4), u(32)],
1193 output: v(i(16), 4),
1194 definition: Named("llvm.aarch64.neon.sqshrun.v4i16")
1196 "qshrun_n_s64" => Intrinsic {
1197 inputs: vec![v(i(64), 2), u(32)],
1198 output: v(i(32), 2),
1199 definition: Named("llvm.aarch64.neon.sqshrun.v2i32")
1201 "qrshrun_n_s16" => Intrinsic {
1202 inputs: vec![v(i(16), 8), u(32)],
1204 definition: Named("llvm.aarch64.neon.sqrshrun.v8i8")
1206 "qrshrun_n_s32" => Intrinsic {
1207 inputs: vec![v(i(32), 4), u(32)],
1208 output: v(i(16), 4),
1209 definition: Named("llvm.aarch64.neon.sqrshrun.v4i16")
1211 "qrshrun_n_s64" => Intrinsic {
1212 inputs: vec![v(i(64), 2), u(32)],
1213 output: v(i(32), 2),
1214 definition: Named("llvm.aarch64.neon.sqrshrun.v2i32")
1216 "qshrn_n_s16" => Intrinsic {
1217 inputs: vec![v(i(16), 8), u(32)],
1219 definition: Named("llvm.aarch64.neon.sqshrn.v8i8")
1221 "qshrn_n_u16" => Intrinsic {
1222 inputs: vec![v(u(16), 8), u(32)],
1224 definition: Named("llvm.aarch64.neon.uqshrn.v8i8")
1226 "qshrn_n_s32" => Intrinsic {
1227 inputs: vec![v(i(32), 4), u(32)],
1228 output: v(i(16), 4),
1229 definition: Named("llvm.aarch64.neon.sqshrn.v4i16")
1231 "qshrn_n_u32" => Intrinsic {
1232 inputs: vec![v(u(32), 4), u(32)],
1233 output: v(u(16), 4),
1234 definition: Named("llvm.aarch64.neon.uqshrn.v4i16")
1236 "qshrn_n_s64" => Intrinsic {
1237 inputs: vec![v(i(64), 2), u(32)],
1238 output: v(i(32), 2),
1239 definition: Named("llvm.aarch64.neon.sqshrn.v2i32")
1241 "qshrn_n_u64" => Intrinsic {
1242 inputs: vec![v(u(64), 2), u(32)],
1243 output: v(u(32), 2),
1244 definition: Named("llvm.aarch64.neon.uqshrn.v2i32")
1246 "rshrn_n_s16" => Intrinsic {
1247 inputs: vec![v(i(16), 8), u(32)],
1249 definition: Named("llvm.aarch64.neon.rshrn.v8i8")
1251 "rshrn_n_u16" => Intrinsic {
1252 inputs: vec![v(u(16), 8), u(32)],
1254 definition: Named("llvm.aarch64.neon.rshrn.v8i8")
1256 "rshrn_n_s32" => Intrinsic {
1257 inputs: vec![v(i(32), 4), u(32)],
1258 output: v(i(16), 4),
1259 definition: Named("llvm.aarch64.neon.rshrn.v4i16")
1261 "rshrn_n_u32" => Intrinsic {
1262 inputs: vec![v(u(32), 4), u(32)],
1263 output: v(u(16), 4),
1264 definition: Named("llvm.aarch64.neon.rshrn.v4i16")
1266 "rshrn_n_s64" => Intrinsic {
1267 inputs: vec![v(i(64), 2), u(32)],
1268 output: v(i(32), 2),
1269 definition: Named("llvm.aarch64.neon.rshrn.v2i32")
1271 "rshrn_n_u64" => Intrinsic {
1272 inputs: vec![v(u(64), 2), u(32)],
1273 output: v(u(32), 2),
1274 definition: Named("llvm.aarch64.neon.rshrn.v2i32")
1276 "qrshrn_n_s16" => Intrinsic {
1277 inputs: vec![v(i(16), 8), u(32)],
1279 definition: Named("llvm.aarch64.neon.sqrshrn.v8i8")
1281 "qrshrn_n_u16" => Intrinsic {
1282 inputs: vec![v(u(16), 8), u(32)],
1284 definition: Named("llvm.aarch64.neon.uqrshrn.v8i8")
1286 "qrshrn_n_s32" => Intrinsic {
1287 inputs: vec![v(i(32), 4), u(32)],
1288 output: v(i(16), 4),
1289 definition: Named("llvm.aarch64.neon.sqrshrn.v4i16")
1291 "qrshrn_n_u32" => Intrinsic {
1292 inputs: vec![v(u(32), 4), u(32)],
1293 output: v(u(16), 4),
1294 definition: Named("llvm.aarch64.neon.uqrshrn.v4i16")
1296 "qrshrn_n_s64" => Intrinsic {
1297 inputs: vec![v(i(64), 2), u(32)],
1298 output: v(i(32), 2),
1299 definition: Named("llvm.aarch64.neon.sqrshrn.v2i32")
1301 "qrshrn_n_u64" => Intrinsic {
1302 inputs: vec![v(u(64), 2), u(32)],
1303 output: v(u(32), 2),
1304 definition: Named("llvm.aarch64.neon.uqrshrn.v2i32")
1306 "sri_s8" => Intrinsic {
1307 inputs: vec![v(i(8), 8), v(i(8), 8)],
1309 definition: Named("llvm.aarch64.neon.vsri.v8i8")
1311 "sri_u8" => Intrinsic {
1312 inputs: vec![v(u(8), 8), v(u(8), 8)],
1314 definition: Named("llvm.aarch64.neon.vsri.v8i8")
1316 "sri_s16" => Intrinsic {
1317 inputs: vec![v(i(16), 4), v(i(16), 4)],
1318 output: v(i(16), 4),
1319 definition: Named("llvm.aarch64.neon.vsri.v4i16")
1321 "sri_u16" => Intrinsic {
1322 inputs: vec![v(u(16), 4), v(u(16), 4)],
1323 output: v(u(16), 4),
1324 definition: Named("llvm.aarch64.neon.vsri.v4i16")
1326 "sri_s32" => Intrinsic {
1327 inputs: vec![v(i(32), 2), v(i(32), 2)],
1328 output: v(i(32), 2),
1329 definition: Named("llvm.aarch64.neon.vsri.v2i32")
1331 "sri_u32" => Intrinsic {
1332 inputs: vec![v(u(32), 2), v(u(32), 2)],
1333 output: v(u(32), 2),
1334 definition: Named("llvm.aarch64.neon.vsri.v2i32")
1336 "sri_s64" => Intrinsic {
1337 inputs: vec![v(i(64), 1), v(i(64), 1)],
1338 output: v(i(64), 1),
1339 definition: Named("llvm.aarch64.neon.vsri.v1i64")
1341 "sri_u64" => Intrinsic {
1342 inputs: vec![v(u(64), 1), v(u(64), 1)],
1343 output: v(u(64), 1),
1344 definition: Named("llvm.aarch64.neon.vsri.v1i64")
1346 "sriq_s8" => Intrinsic {
1347 inputs: vec![v(i(8), 16), v(i(8), 16)],
1348 output: v(i(8), 16),
1349 definition: Named("llvm.aarch64.neon.vsri.v16i8")
1351 "sriq_u8" => Intrinsic {
1352 inputs: vec![v(u(8), 16), v(u(8), 16)],
1353 output: v(u(8), 16),
1354 definition: Named("llvm.aarch64.neon.vsri.v16i8")
1356 "sriq_s16" => Intrinsic {
1357 inputs: vec![v(i(16), 8), v(i(16), 8)],
1358 output: v(i(16), 8),
1359 definition: Named("llvm.aarch64.neon.vsri.v8i16")
1361 "sriq_u16" => Intrinsic {
1362 inputs: vec![v(u(16), 8), v(u(16), 8)],
1363 output: v(u(16), 8),
1364 definition: Named("llvm.aarch64.neon.vsri.v8i16")
1366 "sriq_s32" => Intrinsic {
1367 inputs: vec![v(i(32), 4), v(i(32), 4)],
1368 output: v(i(32), 4),
1369 definition: Named("llvm.aarch64.neon.vsri.v4i32")
1371 "sriq_u32" => Intrinsic {
1372 inputs: vec![v(u(32), 4), v(u(32), 4)],
1373 output: v(u(32), 4),
1374 definition: Named("llvm.aarch64.neon.vsri.v4i32")
1376 "sriq_s64" => Intrinsic {
1377 inputs: vec![v(i(64), 2), v(i(64), 2)],
1378 output: v(i(64), 2),
1379 definition: Named("llvm.aarch64.neon.vsri.v2i64")
1381 "sriq_u64" => Intrinsic {
1382 inputs: vec![v(u(64), 2), v(u(64), 2)],
1383 output: v(u(64), 2),
1384 definition: Named("llvm.aarch64.neon.vsri.v2i64")
1386 "sli_s8" => Intrinsic {
1387 inputs: vec![v(i(8), 8), v(i(8), 8)],
1389 definition: Named("llvm.aarch64.neon.vsli.v8i8")
1391 "sli_u8" => Intrinsic {
1392 inputs: vec![v(u(8), 8), v(u(8), 8)],
1394 definition: Named("llvm.aarch64.neon.vsli.v8i8")
1396 "sli_s16" => Intrinsic {
1397 inputs: vec![v(i(16), 4), v(i(16), 4)],
1398 output: v(i(16), 4),
1399 definition: Named("llvm.aarch64.neon.vsli.v4i16")
1401 "sli_u16" => Intrinsic {
1402 inputs: vec![v(u(16), 4), v(u(16), 4)],
1403 output: v(u(16), 4),
1404 definition: Named("llvm.aarch64.neon.vsli.v4i16")
1406 "sli_s32" => Intrinsic {
1407 inputs: vec![v(i(32), 2), v(i(32), 2)],
1408 output: v(i(32), 2),
1409 definition: Named("llvm.aarch64.neon.vsli.v2i32")
1411 "sli_u32" => Intrinsic {
1412 inputs: vec![v(u(32), 2), v(u(32), 2)],
1413 output: v(u(32), 2),
1414 definition: Named("llvm.aarch64.neon.vsli.v2i32")
1416 "sli_s64" => Intrinsic {
1417 inputs: vec![v(i(64), 1), v(i(64), 1)],
1418 output: v(i(64), 1),
1419 definition: Named("llvm.aarch64.neon.vsli.v1i64")
1421 "sli_u64" => Intrinsic {
1422 inputs: vec![v(u(64), 1), v(u(64), 1)],
1423 output: v(u(64), 1),
1424 definition: Named("llvm.aarch64.neon.vsli.v1i64")
1426 "sliq_s8" => Intrinsic {
1427 inputs: vec![v(i(8), 16), v(i(8), 16)],
1428 output: v(i(8), 16),
1429 definition: Named("llvm.aarch64.neon.vsli.v16i8")
1431 "sliq_u8" => Intrinsic {
1432 inputs: vec![v(u(8), 16), v(u(8), 16)],
1433 output: v(u(8), 16),
1434 definition: Named("llvm.aarch64.neon.vsli.v16i8")
1436 "sliq_s16" => Intrinsic {
1437 inputs: vec![v(i(16), 8), v(i(16), 8)],
1438 output: v(i(16), 8),
1439 definition: Named("llvm.aarch64.neon.vsli.v8i16")
1441 "sliq_u16" => Intrinsic {
1442 inputs: vec![v(u(16), 8), v(u(16), 8)],
1443 output: v(u(16), 8),
1444 definition: Named("llvm.aarch64.neon.vsli.v8i16")
1446 "sliq_s32" => Intrinsic {
1447 inputs: vec![v(i(32), 4), v(i(32), 4)],
1448 output: v(i(32), 4),
1449 definition: Named("llvm.aarch64.neon.vsli.v4i32")
1451 "sliq_u32" => Intrinsic {
1452 inputs: vec![v(u(32), 4), v(u(32), 4)],
1453 output: v(u(32), 4),
1454 definition: Named("llvm.aarch64.neon.vsli.v4i32")
1456 "sliq_s64" => Intrinsic {
1457 inputs: vec![v(i(64), 2), v(i(64), 2)],
1458 output: v(i(64), 2),
1459 definition: Named("llvm.aarch64.neon.vsli.v2i64")
1461 "sliq_u64" => Intrinsic {
1462 inputs: vec![v(u(64), 2), v(u(64), 2)],
1463 output: v(u(64), 2),
1464 definition: Named("llvm.aarch64.neon.vsli.v2i64")
1466 "vqmovn_s16" => Intrinsic {
1467 inputs: vec![v(i(16), 8)],
1469 definition: Named("llvm.aarch64.neon.sqxtn.v8i8")
1471 "vqmovn_u16" => Intrinsic {
1472 inputs: vec![v(u(16), 8)],
1474 definition: Named("llvm.aarch64.neon.uqxtn.v8i8")
1476 "vqmovn_s32" => Intrinsic {
1477 inputs: vec![v(i(32), 4)],
1478 output: v(i(16), 4),
1479 definition: Named("llvm.aarch64.neon.sqxtn.v4i16")
1481 "vqmovn_u32" => Intrinsic {
1482 inputs: vec![v(u(32), 4)],
1483 output: v(u(16), 4),
1484 definition: Named("llvm.aarch64.neon.uqxtn.v4i16")
1486 "vqmovn_s64" => Intrinsic {
1487 inputs: vec![v(i(64), 2)],
1488 output: v(i(32), 2),
1489 definition: Named("llvm.aarch64.neon.sqxtn.v2i32")
1491 "vqmovn_u64" => Intrinsic {
1492 inputs: vec![v(u(64), 2)],
1493 output: v(u(32), 2),
1494 definition: Named("llvm.aarch64.neon.uqxtn.v2i32")
1496 "abs_s8" => Intrinsic {
1497 inputs: vec![v(i(8), 8)],
1499 definition: Named("llvm.aarch64.neon.abs.v8i8")
1501 "abs_s16" => Intrinsic {
1502 inputs: vec![v(i(16), 4)],
1503 output: v(i(16), 4),
1504 definition: Named("llvm.aarch64.neon.abs.v4i16")
1506 "abs_s32" => Intrinsic {
1507 inputs: vec![v(i(32), 2)],
1508 output: v(i(32), 2),
1509 definition: Named("llvm.aarch64.neon.abs.v2i32")
1511 "abs_s64" => Intrinsic {
1512 inputs: vec![v(i(64), 1)],
1513 output: v(i(64), 1),
1514 definition: Named("llvm.aarch64.neon.abs.v1i64")
1516 "absq_s8" => Intrinsic {
1517 inputs: vec![v(i(8), 16)],
1518 output: v(i(8), 16),
1519 definition: Named("llvm.aarch64.neon.abs.v16i8")
1521 "absq_s16" => Intrinsic {
1522 inputs: vec![v(i(16), 8)],
1523 output: v(i(16), 8),
1524 definition: Named("llvm.aarch64.neon.abs.v8i16")
1526 "absq_s32" => Intrinsic {
1527 inputs: vec![v(i(32), 4)],
1528 output: v(i(32), 4),
1529 definition: Named("llvm.aarch64.neon.abs.v4i32")
1531 "absq_s64" => Intrinsic {
1532 inputs: vec![v(i(64), 2)],
1533 output: v(i(64), 2),
1534 definition: Named("llvm.aarch64.neon.abs.v2i64")
1536 "abs_f32" => Intrinsic {
1537 inputs: vec![v(f(32), 2)],
1538 output: v(f(32), 2),
1539 definition: Named("llvm.fabs.v2f32")
1541 "abs_f64" => Intrinsic {
1542 inputs: vec![v(f(64), 1)],
1543 output: v(f(64), 1),
1544 definition: Named("llvm.fabs.v1f64")
1546 "absq_f32" => Intrinsic {
1547 inputs: vec![v(f(32), 4)],
1548 output: v(f(32), 4),
1549 definition: Named("llvm.fabs.v4f32")
1551 "absq_f64" => Intrinsic {
1552 inputs: vec![v(f(64), 2)],
1553 output: v(f(64), 2),
1554 definition: Named("llvm.fabs.v2f64")
1556 "qabs_s8" => Intrinsic {
1557 inputs: vec![v(i(8), 8)],
1559 definition: Named("llvm.aarch64.neon.sqabs.v8i8")
1561 "qabs_s16" => Intrinsic {
1562 inputs: vec![v(i(16), 4)],
1563 output: v(i(16), 4),
1564 definition: Named("llvm.aarch64.neon.sqabs.v4i16")
1566 "qabs_s32" => Intrinsic {
1567 inputs: vec![v(i(32), 2)],
1568 output: v(i(32), 2),
1569 definition: Named("llvm.aarch64.neon.sqabs.v2i32")
1571 "qabs_s64" => Intrinsic {
1572 inputs: vec![v(i(64), 1)],
1573 output: v(i(64), 1),
1574 definition: Named("llvm.aarch64.neon.sqabs.v1i64")
1576 "qabsq_s8" => Intrinsic {
1577 inputs: vec![v(i(8), 16)],
1578 output: v(i(8), 16),
1579 definition: Named("llvm.aarch64.neon.sqabs.v16i8")
1581 "qabsq_s16" => Intrinsic {
1582 inputs: vec![v(i(16), 8)],
1583 output: v(i(16), 8),
1584 definition: Named("llvm.aarch64.neon.sqabs.v8i16")
1586 "qabsq_s32" => Intrinsic {
1587 inputs: vec![v(i(32), 4)],
1588 output: v(i(32), 4),
1589 definition: Named("llvm.aarch64.neon.sqabs.v4i32")
1591 "qabsq_s64" => Intrinsic {
1592 inputs: vec![v(i(64), 2)],
1593 output: v(i(64), 2),
1594 definition: Named("llvm.aarch64.neon.sqabs.v2i64")
1596 "qneg_s8" => Intrinsic {
1597 inputs: vec![v(i(8), 8)],
1599 definition: Named("llvm.aarch64.neon.sqneg.v8i8")
1601 "qneg_s16" => Intrinsic {
1602 inputs: vec![v(i(16), 4)],
1603 output: v(i(16), 4),
1604 definition: Named("llvm.aarch64.neon.sqneg.v4i16")
1606 "qneg_s32" => Intrinsic {
1607 inputs: vec![v(i(32), 2)],
1608 output: v(i(32), 2),
1609 definition: Named("llvm.aarch64.neon.sqneg.v2i32")
1611 "qneg_s64" => Intrinsic {
1612 inputs: vec![v(i(64), 1)],
1613 output: v(i(64), 1),
1614 definition: Named("llvm.aarch64.neon.sqneg.v1i64")
1616 "qnegq_s8" => Intrinsic {
1617 inputs: vec![v(i(8), 16)],
1618 output: v(i(8), 16),
1619 definition: Named("llvm.aarch64.neon.sqneg.v16i8")
1621 "qnegq_s16" => Intrinsic {
1622 inputs: vec![v(i(16), 8)],
1623 output: v(i(16), 8),
1624 definition: Named("llvm.aarch64.neon.sqneg.v8i16")
1626 "qnegq_s32" => Intrinsic {
1627 inputs: vec![v(i(32), 4)],
1628 output: v(i(32), 4),
1629 definition: Named("llvm.aarch64.neon.sqneg.v4i32")
1631 "qnegq_s64" => Intrinsic {
1632 inputs: vec![v(i(64), 2)],
1633 output: v(i(64), 2),
1634 definition: Named("llvm.aarch64.neon.sqneg.v2i64")
1636 "clz_s8" => Intrinsic {
1637 inputs: vec![v(i(8), 8)],
1639 definition: Named("llvm.ctlz.v8i8")
1641 "clz_u8" => Intrinsic {
1642 inputs: vec![v(u(8), 8)],
1644 definition: Named("llvm.ctlz.v8i8")
1646 "clz_s16" => Intrinsic {
1647 inputs: vec![v(i(16), 4)],
1648 output: v(i(16), 4),
1649 definition: Named("llvm.ctlz.v4i16")
1651 "clz_u16" => Intrinsic {
1652 inputs: vec![v(u(16), 4)],
1653 output: v(u(16), 4),
1654 definition: Named("llvm.ctlz.v4i16")
1656 "clz_s32" => Intrinsic {
1657 inputs: vec![v(i(32), 2)],
1658 output: v(i(32), 2),
1659 definition: Named("llvm.ctlz.v2i32")
1661 "clz_u32" => Intrinsic {
1662 inputs: vec![v(u(32), 2)],
1663 output: v(u(32), 2),
1664 definition: Named("llvm.ctlz.v2i32")
1666 "clzq_s8" => Intrinsic {
1667 inputs: vec![v(i(8), 16)],
1668 output: v(i(8), 16),
1669 definition: Named("llvm.ctlz.v16i8")
1671 "clzq_u8" => Intrinsic {
1672 inputs: vec![v(u(8), 16)],
1673 output: v(u(8), 16),
1674 definition: Named("llvm.ctlz.v16i8")
1676 "clzq_s16" => Intrinsic {
1677 inputs: vec![v(i(16), 8)],
1678 output: v(i(16), 8),
1679 definition: Named("llvm.ctlz.v8i16")
1681 "clzq_u16" => Intrinsic {
1682 inputs: vec![v(u(16), 8)],
1683 output: v(u(16), 8),
1684 definition: Named("llvm.ctlz.v8i16")
1686 "clzq_s32" => Intrinsic {
1687 inputs: vec![v(i(32), 4)],
1688 output: v(i(32), 4),
1689 definition: Named("llvm.ctlz.v4i32")
1691 "clzq_u32" => Intrinsic {
1692 inputs: vec![v(u(32), 4)],
1693 output: v(u(32), 4),
1694 definition: Named("llvm.ctlz.v4i32")
1696 "cls_s8" => Intrinsic {
1697 inputs: vec![v(i(8), 8)],
1699 definition: Named("llvm.aarch64.neon.cls.v8i8")
1701 "cls_u8" => Intrinsic {
1702 inputs: vec![v(u(8), 8)],
1704 definition: Named("llvm.aarch64.neon.cls.v8i8")
1706 "cls_s16" => Intrinsic {
1707 inputs: vec![v(i(16), 4)],
1708 output: v(i(16), 4),
1709 definition: Named("llvm.aarch64.neon.cls.v4i16")
1711 "cls_u16" => Intrinsic {
1712 inputs: vec![v(u(16), 4)],
1713 output: v(u(16), 4),
1714 definition: Named("llvm.aarch64.neon.cls.v4i16")
1716 "cls_s32" => Intrinsic {
1717 inputs: vec![v(i(32), 2)],
1718 output: v(i(32), 2),
1719 definition: Named("llvm.aarch64.neon.cls.v2i32")
1721 "cls_u32" => Intrinsic {
1722 inputs: vec![v(u(32), 2)],
1723 output: v(u(32), 2),
1724 definition: Named("llvm.aarch64.neon.cls.v2i32")
1726 "clsq_s8" => Intrinsic {
1727 inputs: vec![v(i(8), 16)],
1728 output: v(i(8), 16),
1729 definition: Named("llvm.aarch64.neon.cls.v16i8")
1731 "clsq_u8" => Intrinsic {
1732 inputs: vec![v(u(8), 16)],
1733 output: v(u(8), 16),
1734 definition: Named("llvm.aarch64.neon.cls.v16i8")
1736 "clsq_s16" => Intrinsic {
1737 inputs: vec![v(i(16), 8)],
1738 output: v(i(16), 8),
1739 definition: Named("llvm.aarch64.neon.cls.v8i16")
1741 "clsq_u16" => Intrinsic {
1742 inputs: vec![v(u(16), 8)],
1743 output: v(u(16), 8),
1744 definition: Named("llvm.aarch64.neon.cls.v8i16")
1746 "clsq_s32" => Intrinsic {
1747 inputs: vec![v(i(32), 4)],
1748 output: v(i(32), 4),
1749 definition: Named("llvm.aarch64.neon.cls.v4i32")
1751 "clsq_u32" => Intrinsic {
1752 inputs: vec![v(u(32), 4)],
1753 output: v(u(32), 4),
1754 definition: Named("llvm.aarch64.neon.cls.v4i32")
1756 "cnt_s8" => Intrinsic {
1757 inputs: vec![v(i(8), 8)],
1759 definition: Named("llvm.ctpop.v8i8")
1761 "cnt_u8" => Intrinsic {
1762 inputs: vec![v(u(8), 8)],
1764 definition: Named("llvm.ctpop.v8i8")
1766 "cntq_s8" => Intrinsic {
1767 inputs: vec![v(i(8), 16)],
1768 output: v(i(8), 16),
1769 definition: Named("llvm.ctpop.v16i8")
1771 "cntq_u8" => Intrinsic {
1772 inputs: vec![v(u(8), 16)],
1773 output: v(u(8), 16),
1774 definition: Named("llvm.ctpop.v16i8")
1776 "recpe_u32" => Intrinsic {
1777 inputs: vec![v(u(32), 2)],
1778 output: v(u(32), 2),
1779 definition: Named("llvm.aarch64.neon.urecpe.v2i32")
1781 "recpe_f32" => Intrinsic {
1782 inputs: vec![v(f(32), 2)],
1783 output: v(f(32), 2),
1784 definition: Named("llvm.aarch64.neon.frecpe.v2f32")
1786 "recpe_f64" => Intrinsic {
1787 inputs: vec![v(f(64), 1)],
1788 output: v(f(64), 1),
1789 definition: Named("llvm.aarch64.neon.frecpe.v1f64")
1791 "recpeq_u32" => Intrinsic {
1792 inputs: vec![v(u(32), 4)],
1793 output: v(u(32), 4),
1794 definition: Named("llvm.aarch64.neon.urecpe.v4i32")
1796 "recpeq_f32" => Intrinsic {
1797 inputs: vec![v(f(32), 4)],
1798 output: v(f(32), 4),
1799 definition: Named("llvm.aarch64.neon.frecpe.v4f32")
1801 "recpeq_f64" => Intrinsic {
1802 inputs: vec![v(f(64), 2)],
1803 output: v(f(64), 2),
1804 definition: Named("llvm.aarch64.neon.frecpe.v2f64")
1806 "recps_f32" => Intrinsic {
1807 inputs: vec![v(f(32), 2), v(f(32), 2)],
1808 output: v(f(32), 2),
1809 definition: Named("llvm.aarch64.neon.frecps.v2f32")
1811 "recps_f64" => Intrinsic {
1812 inputs: vec![v(f(64), 1), v(f(64), 1)],
1813 output: v(f(64), 1),
1814 definition: Named("llvm.aarch64.neon.frecps.v1f64")
1816 "recpsq_f32" => Intrinsic {
1817 inputs: vec![v(f(32), 4), v(f(32), 4)],
1818 output: v(f(32), 4),
1819 definition: Named("llvm.aarch64.neon.frecps.v4f32")
1821 "recpsq_f64" => Intrinsic {
1822 inputs: vec![v(f(64), 2), v(f(64), 2)],
1823 output: v(f(64), 2),
1824 definition: Named("llvm.aarch64.neon.frecps.v2f64")
1826 "sqrt_f32" => Intrinsic {
1827 inputs: vec![v(f(32), 2)],
1828 output: v(f(32), 2),
1829 definition: Named("llvm.sqrt.v2f32")
1831 "sqrt_f64" => Intrinsic {
1832 inputs: vec![v(f(64), 1)],
1833 output: v(f(64), 1),
1834 definition: Named("llvm.sqrt.v1f64")
1836 "sqrtq_f32" => Intrinsic {
1837 inputs: vec![v(f(32), 4)],
1838 output: v(f(32), 4),
1839 definition: Named("llvm.sqrt.v4f32")
1841 "sqrtq_f64" => Intrinsic {
1842 inputs: vec![v(f(64), 2)],
1843 output: v(f(64), 2),
1844 definition: Named("llvm.sqrt.v2f64")
1846 "rsqrte_u32" => Intrinsic {
1847 inputs: vec![v(u(32), 2)],
1848 output: v(u(32), 2),
1849 definition: Named("llvm.aarch64.neon.ursqrte.v2i32")
1851 "rsqrte_f32" => Intrinsic {
1852 inputs: vec![v(f(32), 2)],
1853 output: v(f(32), 2),
1854 definition: Named("llvm.aarch64.neon.frsqrte.v2f32")
1856 "rsqrte_f64" => Intrinsic {
1857 inputs: vec![v(f(64), 1)],
1858 output: v(f(64), 1),
1859 definition: Named("llvm.aarch64.neon.frsqrte.v1f64")
1861 "rsqrteq_u32" => Intrinsic {
1862 inputs: vec![v(u(32), 4)],
1863 output: v(u(32), 4),
1864 definition: Named("llvm.aarch64.neon.ursqrte.v4i32")
1866 "rsqrteq_f32" => Intrinsic {
1867 inputs: vec![v(f(32), 4)],
1868 output: v(f(32), 4),
1869 definition: Named("llvm.aarch64.neon.frsqrte.v4f32")
1871 "rsqrteq_f64" => Intrinsic {
1872 inputs: vec![v(f(64), 2)],
1873 output: v(f(64), 2),
1874 definition: Named("llvm.aarch64.neon.frsqrte.v2f64")
1876 "rsqrts_f32" => Intrinsic {
1877 inputs: vec![v(f(32), 2), v(f(32), 2)],
1878 output: v(f(32), 2),
1879 definition: Named("llvm.aarch64.neon.frsqrts.v2f32")
1881 "rsqrts_f64" => Intrinsic {
1882 inputs: vec![v(f(64), 1), v(f(64), 1)],
1883 output: v(f(64), 1),
1884 definition: Named("llvm.aarch64.neon.frsqrts.v1f64")
1886 "rsqrtsq_f32" => Intrinsic {
1887 inputs: vec![v(f(32), 4), v(f(32), 4)],
1888 output: v(f(32), 4),
1889 definition: Named("llvm.aarch64.neon.frsqrts.v4f32")
1891 "rsqrtsq_f64" => Intrinsic {
1892 inputs: vec![v(f(64), 2), v(f(64), 2)],
1893 output: v(f(64), 2),
1894 definition: Named("llvm.aarch64.neon.frsqrts.v2f64")
1896 "rbit_s8" => Intrinsic {
1897 inputs: vec![v(i(8), 8)],
1899 definition: Named("llvm.aarch64.neon.rbit.v8i8")
1901 "rbit_u8" => Intrinsic {
1902 inputs: vec![v(u(8), 8)],
1904 definition: Named("llvm.aarch64.neon.rbit.v8i8")
1906 "rbitq_s8" => Intrinsic {
1907 inputs: vec![v(i(8), 16)],
1908 output: v(i(8), 16),
1909 definition: Named("llvm.aarch64.neon.rbit.v16i8")
1911 "rbitq_u8" => Intrinsic {
1912 inputs: vec![v(u(8), 16)],
1913 output: v(u(8), 16),
1914 definition: Named("llvm.aarch64.neon.rbit.v16i8")
1916 "ld2_s8" => Intrinsic {
1917 inputs: vec![p(true, i(8), Some(v(i(8), 8)))],
1918 output: agg(false, vec![v(i(8), 8), v(i(8), 8)]),
1919 definition: Named("llvm.aarch64.neon.ld2.v8i8.p0v8i8")
1921 "ld2_u8" => Intrinsic {
1922 inputs: vec![p(true, u(8), Some(v(u(8), 8)))],
1923 output: agg(false, vec![v(u(8), 8), v(u(8), 8)]),
1924 definition: Named("llvm.aarch64.neon.ld2.v8i8.p0v8i8")
1926 "ld2_s16" => Intrinsic {
1927 inputs: vec![p(true, i(16), Some(v(i(16), 4)))],
1928 output: agg(false, vec![v(i(16), 4), v(i(16), 4)]),
1929 definition: Named("llvm.aarch64.neon.ld2.v4i16.p0v4i16")
1931 "ld2_u16" => Intrinsic {
1932 inputs: vec![p(true, u(16), Some(v(u(16), 4)))],
1933 output: agg(false, vec![v(u(16), 4), v(u(16), 4)]),
1934 definition: Named("llvm.aarch64.neon.ld2.v4i16.p0v4i16")
1936 "ld2_s32" => Intrinsic {
1937 inputs: vec![p(true, i(32), Some(v(i(32), 2)))],
1938 output: agg(false, vec![v(i(32), 2), v(i(32), 2)]),
1939 definition: Named("llvm.aarch64.neon.ld2.v2i32.p0v2i32")
1941 "ld2_u32" => Intrinsic {
1942 inputs: vec![p(true, u(32), Some(v(u(32), 2)))],
1943 output: agg(false, vec![v(u(32), 2), v(u(32), 2)]),
1944 definition: Named("llvm.aarch64.neon.ld2.v2i32.p0v2i32")
1946 "ld2_s64" => Intrinsic {
1947 inputs: vec![p(true, i(64), Some(v(i(64), 1)))],
1948 output: agg(false, vec![v(i(64), 1), v(i(64), 1)]),
1949 definition: Named("llvm.aarch64.neon.ld2.v1i64.p0v1i64")
1951 "ld2_u64" => Intrinsic {
1952 inputs: vec![p(true, u(64), Some(v(u(64), 1)))],
1953 output: agg(false, vec![v(u(64), 1), v(u(64), 1)]),
1954 definition: Named("llvm.aarch64.neon.ld2.v1i64.p0v1i64")
1956 "ld2_f32" => Intrinsic {
1957 inputs: vec![p(true, f(32), Some(v(f(32), 2)))],
1958 output: agg(false, vec![v(f(32), 2), v(f(32), 2)]),
1959 definition: Named("llvm.aarch64.neon.ld2.v2f32.p0v2f32")
1961 "ld2_f64" => Intrinsic {
1962 inputs: vec![p(true, f(64), Some(v(f(64), 1)))],
1963 output: agg(false, vec![v(f(64), 1), v(f(64), 1)]),
1964 definition: Named("llvm.aarch64.neon.ld2.v1f64.p0v1f64")
1966 "ld2q_s8" => Intrinsic {
1967 inputs: vec![p(true, i(8), Some(v(i(8), 16)))],
1968 output: agg(false, vec![v(i(8), 16), v(i(8), 16)]),
1969 definition: Named("llvm.aarch64.neon.ld2.v16i8.p0v16i8")
1971 "ld2q_u8" => Intrinsic {
1972 inputs: vec![p(true, u(8), Some(v(u(8), 16)))],
1973 output: agg(false, vec![v(u(8), 16), v(u(8), 16)]),
1974 definition: Named("llvm.aarch64.neon.ld2.v16i8.p0v16i8")
1976 "ld2q_s16" => Intrinsic {
1977 inputs: vec![p(true, i(16), Some(v(i(16), 8)))],
1978 output: agg(false, vec![v(i(16), 8), v(i(16), 8)]),
1979 definition: Named("llvm.aarch64.neon.ld2.v8i16.p0v8i16")
1981 "ld2q_u16" => Intrinsic {
1982 inputs: vec![p(true, u(16), Some(v(u(16), 8)))],
1983 output: agg(false, vec![v(u(16), 8), v(u(16), 8)]),
1984 definition: Named("llvm.aarch64.neon.ld2.v8i16.p0v8i16")
1986 "ld2q_s32" => Intrinsic {
1987 inputs: vec![p(true, i(32), Some(v(i(32), 4)))],
1988 output: agg(false, vec![v(i(32), 4), v(i(32), 4)]),
1989 definition: Named("llvm.aarch64.neon.ld2.v4i32.p0v4i32")
1991 "ld2q_u32" => Intrinsic {
1992 inputs: vec![p(true, u(32), Some(v(u(32), 4)))],
1993 output: agg(false, vec![v(u(32), 4), v(u(32), 4)]),
1994 definition: Named("llvm.aarch64.neon.ld2.v4i32.p0v4i32")
1996 "ld2q_s64" => Intrinsic {
1997 inputs: vec![p(true, i(64), Some(v(i(64), 2)))],
1998 output: agg(false, vec![v(i(64), 2), v(i(64), 2)]),
1999 definition: Named("llvm.aarch64.neon.ld2.v2i64.p0v2i64")
2001 "ld2q_u64" => Intrinsic {
2002 inputs: vec![p(true, u(64), Some(v(u(64), 2)))],
2003 output: agg(false, vec![v(u(64), 2), v(u(64), 2)]),
2004 definition: Named("llvm.aarch64.neon.ld2.v2i64.p0v2i64")
2006 "ld2q_f32" => Intrinsic {
2007 inputs: vec![p(true, f(32), Some(v(f(32), 4)))],
2008 output: agg(false, vec![v(f(32), 4), v(f(32), 4)]),
2009 definition: Named("llvm.aarch64.neon.ld2.v4f32.p0v4f32")
2011 "ld2q_f64" => Intrinsic {
2012 inputs: vec![p(true, f(64), Some(v(f(64), 2)))],
2013 output: agg(false, vec![v(f(64), 2), v(f(64), 2)]),
2014 definition: Named("llvm.aarch64.neon.ld2.v2f64.p0v2f64")
2016 "ld3_s8" => Intrinsic {
2017 inputs: vec![p(true, i(8), Some(v(i(8), 8)))],
2018 output: agg(false, vec![v(i(8), 8), v(i(8), 8), v(i(8), 8)]),
2019 definition: Named("llvm.aarch64.neon.ld3.v8i8.p0v8i8")
2021 "ld3_u8" => Intrinsic {
2022 inputs: vec![p(true, u(8), Some(v(u(8), 8)))],
2023 output: agg(false, vec![v(u(8), 8), v(u(8), 8), v(u(8), 8)]),
2024 definition: Named("llvm.aarch64.neon.ld3.v8i8.p0v8i8")
2026 "ld3_s16" => Intrinsic {
2027 inputs: vec![p(true, i(16), Some(v(i(16), 4)))],
2028 output: agg(false, vec![v(i(16), 4), v(i(16), 4), v(i(16), 4)]),
2029 definition: Named("llvm.aarch64.neon.ld3.v4i16.p0v4i16")
2031 "ld3_u16" => Intrinsic {
2032 inputs: vec![p(true, u(16), Some(v(u(16), 4)))],
2033 output: agg(false, vec![v(u(16), 4), v(u(16), 4), v(u(16), 4)]),
2034 definition: Named("llvm.aarch64.neon.ld3.v4i16.p0v4i16")
2036 "ld3_s32" => Intrinsic {
2037 inputs: vec![p(true, i(32), Some(v(i(32), 2)))],
2038 output: agg(false, vec![v(i(32), 2), v(i(32), 2), v(i(32), 2)]),
2039 definition: Named("llvm.aarch64.neon.ld3.v2i32.p0v2i32")
2041 "ld3_u32" => Intrinsic {
2042 inputs: vec![p(true, u(32), Some(v(u(32), 2)))],
2043 output: agg(false, vec![v(u(32), 2), v(u(32), 2), v(u(32), 2)]),
2044 definition: Named("llvm.aarch64.neon.ld3.v2i32.p0v2i32")
2046 "ld3_s64" => Intrinsic {
2047 inputs: vec![p(true, i(64), Some(v(i(64), 1)))],
2048 output: agg(false, vec![v(i(64), 1), v(i(64), 1), v(i(64), 1)]),
2049 definition: Named("llvm.aarch64.neon.ld3.v1i64.p0v1i64")
2051 "ld3_u64" => Intrinsic {
2052 inputs: vec![p(true, u(64), Some(v(u(64), 1)))],
2053 output: agg(false, vec![v(u(64), 1), v(u(64), 1), v(u(64), 1)]),
2054 definition: Named("llvm.aarch64.neon.ld3.v1i64.p0v1i64")
2056 "ld3_f32" => Intrinsic {
2057 inputs: vec![p(true, f(32), Some(v(f(32), 2)))],
2058 output: agg(false, vec![v(f(32), 2), v(f(32), 2), v(f(32), 2)]),
2059 definition: Named("llvm.aarch64.neon.ld3.v2f32.p0v2f32")
2061 "ld3_f64" => Intrinsic {
2062 inputs: vec![p(true, f(64), Some(v(f(64), 1)))],
2063 output: agg(false, vec![v(f(64), 1), v(f(64), 1), v(f(64), 1)]),
2064 definition: Named("llvm.aarch64.neon.ld3.v1f64.p0v1f64")
2066 "ld3q_s8" => Intrinsic {
2067 inputs: vec![p(true, i(8), Some(v(i(8), 16)))],
2068 output: agg(false, vec![v(i(8), 16), v(i(8), 16), v(i(8), 16)]),
2069 definition: Named("llvm.aarch64.neon.ld3.v16i8.p0v16i8")
2071 "ld3q_u8" => Intrinsic {
2072 inputs: vec![p(true, u(8), Some(v(u(8), 16)))],
2073 output: agg(false, vec![v(u(8), 16), v(u(8), 16), v(u(8), 16)]),
2074 definition: Named("llvm.aarch64.neon.ld3.v16i8.p0v16i8")
2076 "ld3q_s16" => Intrinsic {
2077 inputs: vec![p(true, i(16), Some(v(i(16), 8)))],
2078 output: agg(false, vec![v(i(16), 8), v(i(16), 8), v(i(16), 8)]),
2079 definition: Named("llvm.aarch64.neon.ld3.v8i16.p0v8i16")
2081 "ld3q_u16" => Intrinsic {
2082 inputs: vec![p(true, u(16), Some(v(u(16), 8)))],
2083 output: agg(false, vec![v(u(16), 8), v(u(16), 8), v(u(16), 8)]),
2084 definition: Named("llvm.aarch64.neon.ld3.v8i16.p0v8i16")
2086 "ld3q_s32" => Intrinsic {
2087 inputs: vec![p(true, i(32), Some(v(i(32), 4)))],
2088 output: agg(false, vec![v(i(32), 4), v(i(32), 4), v(i(32), 4)]),
2089 definition: Named("llvm.aarch64.neon.ld3.v4i32.p0v4i32")
2091 "ld3q_u32" => Intrinsic {
2092 inputs: vec![p(true, u(32), Some(v(u(32), 4)))],
2093 output: agg(false, vec![v(u(32), 4), v(u(32), 4), v(u(32), 4)]),
2094 definition: Named("llvm.aarch64.neon.ld3.v4i32.p0v4i32")
2096 "ld3q_s64" => Intrinsic {
2097 inputs: vec![p(true, i(64), Some(v(i(64), 2)))],
2098 output: agg(false, vec![v(i(64), 2), v(i(64), 2), v(i(64), 2)]),
2099 definition: Named("llvm.aarch64.neon.ld3.v2i64.p0v2i64")
2101 "ld3q_u64" => Intrinsic {
2102 inputs: vec![p(true, u(64), Some(v(u(64), 2)))],
2103 output: agg(false, vec![v(u(64), 2), v(u(64), 2), v(u(64), 2)]),
2104 definition: Named("llvm.aarch64.neon.ld3.v2i64.p0v2i64")
2106 "ld3q_f32" => Intrinsic {
2107 inputs: vec![p(true, f(32), Some(v(f(32), 4)))],
2108 output: agg(false, vec![v(f(32), 4), v(f(32), 4), v(f(32), 4)]),
2109 definition: Named("llvm.aarch64.neon.ld3.v4f32.p0v4f32")
2111 "ld3q_f64" => Intrinsic {
2112 inputs: vec![p(true, f(64), Some(v(f(64), 2)))],
2113 output: agg(false, vec![v(f(64), 2), v(f(64), 2), v(f(64), 2)]),
2114 definition: Named("llvm.aarch64.neon.ld3.v2f64.p0v2f64")
2116 "ld4_s8" => Intrinsic {
2117 inputs: vec![p(true, i(8), Some(v(i(8), 8)))],
2118 output: agg(false, vec![v(i(8), 8), v(i(8), 8), v(i(8), 8), v(i(8), 8)]),
2119 definition: Named("llvm.aarch64.neon.ld4.v8i8.p0v8i8")
2121 "ld4_u8" => Intrinsic {
2122 inputs: vec![p(true, u(8), Some(v(u(8), 8)))],
2123 output: agg(false, vec![v(u(8), 8), v(u(8), 8), v(u(8), 8), v(u(8), 8)]),
2124 definition: Named("llvm.aarch64.neon.ld4.v8i8.p0v8i8")
2126 "ld4_s16" => Intrinsic {
2127 inputs: vec![p(true, i(16), Some(v(i(16), 4)))],
2128 output: agg(false, vec![v(i(16), 4), v(i(16), 4), v(i(16), 4), v(i(16), 4)]),
2129 definition: Named("llvm.aarch64.neon.ld4.v4i16.p0v4i16")
2131 "ld4_u16" => Intrinsic {
2132 inputs: vec![p(true, u(16), Some(v(u(16), 4)))],
2133 output: agg(false, vec![v(u(16), 4), v(u(16), 4), v(u(16), 4), v(u(16), 4)]),
2134 definition: Named("llvm.aarch64.neon.ld4.v4i16.p0v4i16")
2136 "ld4_s32" => Intrinsic {
2137 inputs: vec![p(true, i(32), Some(v(i(32), 2)))],
2138 output: agg(false, vec![v(i(32), 2), v(i(32), 2), v(i(32), 2), v(i(32), 2)]),
2139 definition: Named("llvm.aarch64.neon.ld4.v2i32.p0v2i32")
2141 "ld4_u32" => Intrinsic {
2142 inputs: vec![p(true, u(32), Some(v(u(32), 2)))],
2143 output: agg(false, vec![v(u(32), 2), v(u(32), 2), v(u(32), 2), v(u(32), 2)]),
2144 definition: Named("llvm.aarch64.neon.ld4.v2i32.p0v2i32")
2146 "ld4_s64" => Intrinsic {
2147 inputs: vec![p(true, i(64), Some(v(i(64), 1)))],
2148 output: agg(false, vec![v(i(64), 1), v(i(64), 1), v(i(64), 1), v(i(64), 1)]),
2149 definition: Named("llvm.aarch64.neon.ld4.v1i64.p0v1i64")
2151 "ld4_u64" => Intrinsic {
2152 inputs: vec![p(true, u(64), Some(v(u(64), 1)))],
2153 output: agg(false, vec![v(u(64), 1), v(u(64), 1), v(u(64), 1), v(u(64), 1)]),
2154 definition: Named("llvm.aarch64.neon.ld4.v1i64.p0v1i64")
2156 "ld4_f32" => Intrinsic {
2157 inputs: vec![p(true, f(32), Some(v(f(32), 2)))],
2158 output: agg(false, vec![v(f(32), 2), v(f(32), 2), v(f(32), 2), v(f(32), 2)]),
2159 definition: Named("llvm.aarch64.neon.ld4.v2f32.p0v2f32")
2161 "ld4_f64" => Intrinsic {
2162 inputs: vec![p(true, f(64), Some(v(f(64), 1)))],
2163 output: agg(false, vec![v(f(64), 1), v(f(64), 1), v(f(64), 1), v(f(64), 1)]),
2164 definition: Named("llvm.aarch64.neon.ld4.v1f64.p0v1f64")
2166 "ld4q_s8" => Intrinsic {
2167 inputs: vec![p(true, i(8), Some(v(i(8), 16)))],
2168 output: agg(false, vec![v(i(8), 16), v(i(8), 16), v(i(8), 16), v(i(8), 16)]),
2169 definition: Named("llvm.aarch64.neon.ld4.v16i8.p0v16i8")
2171 "ld4q_u8" => Intrinsic {
2172 inputs: vec![p(true, u(8), Some(v(u(8), 16)))],
2173 output: agg(false, vec![v(u(8), 16), v(u(8), 16), v(u(8), 16), v(u(8), 16)]),
2174 definition: Named("llvm.aarch64.neon.ld4.v16i8.p0v16i8")
2176 "ld4q_s16" => Intrinsic {
2177 inputs: vec![p(true, i(16), Some(v(i(16), 8)))],
2178 output: agg(false, vec![v(i(16), 8), v(i(16), 8), v(i(16), 8), v(i(16), 8)]),
2179 definition: Named("llvm.aarch64.neon.ld4.v8i16.p0v8i16")
2181 "ld4q_u16" => Intrinsic {
2182 inputs: vec![p(true, u(16), Some(v(u(16), 8)))],
2183 output: agg(false, vec![v(u(16), 8), v(u(16), 8), v(u(16), 8), v(u(16), 8)]),
2184 definition: Named("llvm.aarch64.neon.ld4.v8i16.p0v8i16")
2186 "ld4q_s32" => Intrinsic {
2187 inputs: vec![p(true, i(32), Some(v(i(32), 4)))],
2188 output: agg(false, vec![v(i(32), 4), v(i(32), 4), v(i(32), 4), v(i(32), 4)]),
2189 definition: Named("llvm.aarch64.neon.ld4.v4i32.p0v4i32")
2191 "ld4q_u32" => Intrinsic {
2192 inputs: vec![p(true, u(32), Some(v(u(32), 4)))],
2193 output: agg(false, vec![v(u(32), 4), v(u(32), 4), v(u(32), 4), v(u(32), 4)]),
2194 definition: Named("llvm.aarch64.neon.ld4.v4i32.p0v4i32")
2196 "ld4q_s64" => Intrinsic {
2197 inputs: vec![p(true, i(64), Some(v(i(64), 2)))],
2198 output: agg(false, vec![v(i(64), 2), v(i(64), 2), v(i(64), 2), v(i(64), 2)]),
2199 definition: Named("llvm.aarch64.neon.ld4.v2i64.p0v2i64")
2201 "ld4q_u64" => Intrinsic {
2202 inputs: vec![p(true, u(64), Some(v(u(64), 2)))],
2203 output: agg(false, vec![v(u(64), 2), v(u(64), 2), v(u(64), 2), v(u(64), 2)]),
2204 definition: Named("llvm.aarch64.neon.ld4.v2i64.p0v2i64")
2206 "ld4q_f32" => Intrinsic {
2207 inputs: vec![p(true, f(32), Some(v(f(32), 4)))],
2208 output: agg(false, vec![v(f(32), 4), v(f(32), 4), v(f(32), 4), v(f(32), 4)]),
2209 definition: Named("llvm.aarch64.neon.ld4.v4f32.p0v4f32")
2211 "ld4q_f64" => Intrinsic {
2212 inputs: vec![p(true, f(64), Some(v(f(64), 2)))],
2213 output: agg(false, vec![v(f(64), 2), v(f(64), 2), v(f(64), 2), v(f(64), 2)]),
2214 definition: Named("llvm.aarch64.neon.ld4.v2f64.p0v2f64")
2216 "ld2_dup_s8" => Intrinsic {
2217 inputs: vec![p(true, i(8), None)],
2218 output: agg(false, vec![v(i(8), 8), v(i(8), 8)]),
2219 definition: Named("llvm.aarch64.neon.ld2.v8i8.p0i8")
2221 "ld2_dup_u8" => Intrinsic {
2222 inputs: vec![p(true, u(8), None)],
2223 output: agg(false, vec![v(u(8), 8), v(u(8), 8)]),
2224 definition: Named("llvm.aarch64.neon.ld2.v8i8.p0i8")
2226 "ld2_dup_s16" => Intrinsic {
2227 inputs: vec![p(true, i(16), None)],
2228 output: agg(false, vec![v(i(16), 4), v(i(16), 4)]),
2229 definition: Named("llvm.aarch64.neon.ld2.v4i16.p0i16")
2231 "ld2_dup_u16" => Intrinsic {
2232 inputs: vec![p(true, u(16), None)],
2233 output: agg(false, vec![v(u(16), 4), v(u(16), 4)]),
2234 definition: Named("llvm.aarch64.neon.ld2.v4i16.p0i16")
2236 "ld2_dup_s32" => Intrinsic {
2237 inputs: vec![p(true, i(32), None)],
2238 output: agg(false, vec![v(i(32), 2), v(i(32), 2)]),
2239 definition: Named("llvm.aarch64.neon.ld2.v2i32.p0i32")
2241 "ld2_dup_u32" => Intrinsic {
2242 inputs: vec![p(true, u(32), None)],
2243 output: agg(false, vec![v(u(32), 2), v(u(32), 2)]),
2244 definition: Named("llvm.aarch64.neon.ld2.v2i32.p0i32")
2246 "ld2_dup_s64" => Intrinsic {
2247 inputs: vec![p(true, i(64), None)],
2248 output: agg(false, vec![v(i(64), 1), v(i(64), 1)]),
2249 definition: Named("llvm.aarch64.neon.ld2.v1i64.p0i64")
2251 "ld2_dup_u64" => Intrinsic {
2252 inputs: vec![p(true, u(64), None)],
2253 output: agg(false, vec![v(u(64), 1), v(u(64), 1)]),
2254 definition: Named("llvm.aarch64.neon.ld2.v1i64.p0i64")
2256 "ld2_dup_f32" => Intrinsic {
2257 inputs: vec![p(true, f(32), None)],
2258 output: agg(false, vec![v(f(32), 2), v(f(32), 2)]),
2259 definition: Named("llvm.aarch64.neon.ld2.v2f32.p0f32")
2261 "ld2_dup_f64" => Intrinsic {
2262 inputs: vec![p(true, f(64), None)],
2263 output: agg(false, vec![v(f(64), 1), v(f(64), 1)]),
2264 definition: Named("llvm.aarch64.neon.ld2.v1f64.p0f64")
2266 "ld2q_dup_s8" => Intrinsic {
2267 inputs: vec![p(true, i(8), None)],
2268 output: agg(false, vec![v(i(8), 16), v(i(8), 16)]),
2269 definition: Named("llvm.aarch64.neon.ld2.v16i8.p0i8")
2271 "ld2q_dup_u8" => Intrinsic {
2272 inputs: vec![p(true, u(8), None)],
2273 output: agg(false, vec![v(u(8), 16), v(u(8), 16)]),
2274 definition: Named("llvm.aarch64.neon.ld2.v16i8.p0i8")
2276 "ld2q_dup_s16" => Intrinsic {
2277 inputs: vec![p(true, i(16), None)],
2278 output: agg(false, vec![v(i(16), 8), v(i(16), 8)]),
2279 definition: Named("llvm.aarch64.neon.ld2.v8i16.p0i16")
2281 "ld2q_dup_u16" => Intrinsic {
2282 inputs: vec![p(true, u(16), None)],
2283 output: agg(false, vec![v(u(16), 8), v(u(16), 8)]),
2284 definition: Named("llvm.aarch64.neon.ld2.v8i16.p0i16")
2286 "ld2q_dup_s32" => Intrinsic {
2287 inputs: vec![p(true, i(32), None)],
2288 output: agg(false, vec![v(i(32), 4), v(i(32), 4)]),
2289 definition: Named("llvm.aarch64.neon.ld2.v4i32.p0i32")
2291 "ld2q_dup_u32" => Intrinsic {
2292 inputs: vec![p(true, u(32), None)],
2293 output: agg(false, vec![v(u(32), 4), v(u(32), 4)]),
2294 definition: Named("llvm.aarch64.neon.ld2.v4i32.p0i32")
2296 "ld2q_dup_s64" => Intrinsic {
2297 inputs: vec![p(true, i(64), None)],
2298 output: agg(false, vec![v(i(64), 2), v(i(64), 2)]),
2299 definition: Named("llvm.aarch64.neon.ld2.v2i64.p0i64")
2301 "ld2q_dup_u64" => Intrinsic {
2302 inputs: vec![p(true, u(64), None)],
2303 output: agg(false, vec![v(u(64), 2), v(u(64), 2)]),
2304 definition: Named("llvm.aarch64.neon.ld2.v2i64.p0i64")
2306 "ld2q_dup_f32" => Intrinsic {
2307 inputs: vec![p(true, f(32), None)],
2308 output: agg(false, vec![v(f(32), 4), v(f(32), 4)]),
2309 definition: Named("llvm.aarch64.neon.ld2.v4f32.p0f32")
2311 "ld2q_dup_f64" => Intrinsic {
2312 inputs: vec![p(true, f(64), None)],
2313 output: agg(false, vec![v(f(64), 2), v(f(64), 2)]),
2314 definition: Named("llvm.aarch64.neon.ld2.v2f64.p0f64")
2316 "ld3_dup_s8" => Intrinsic {
2317 inputs: vec![p(true, i(8), None)],
2318 output: agg(false, vec![v(i(8), 8), v(i(8), 8), v(i(8), 8)]),
2319 definition: Named("llvm.aarch64.neon.ld3.v8i8.p0i8")
2321 "ld3_dup_u8" => Intrinsic {
2322 inputs: vec![p(true, u(8), None)],
2323 output: agg(false, vec![v(u(8), 8), v(u(8), 8), v(u(8), 8)]),
2324 definition: Named("llvm.aarch64.neon.ld3.v8i8.p0i8")
2326 "ld3_dup_s16" => Intrinsic {
2327 inputs: vec![p(true, i(16), None)],
2328 output: agg(false, vec![v(i(16), 4), v(i(16), 4), v(i(16), 4)]),
2329 definition: Named("llvm.aarch64.neon.ld3.v4i16.p0i16")
2331 "ld3_dup_u16" => Intrinsic {
2332 inputs: vec![p(true, u(16), None)],
2333 output: agg(false, vec![v(u(16), 4), v(u(16), 4), v(u(16), 4)]),
2334 definition: Named("llvm.aarch64.neon.ld3.v4i16.p0i16")
2336 "ld3_dup_s32" => Intrinsic {
2337 inputs: vec![p(true, i(32), None)],
2338 output: agg(false, vec![v(i(32), 2), v(i(32), 2), v(i(32), 2)]),
2339 definition: Named("llvm.aarch64.neon.ld3.v2i32.p0i32")
2341 "ld3_dup_u32" => Intrinsic {
2342 inputs: vec![p(true, u(32), None)],
2343 output: agg(false, vec![v(u(32), 2), v(u(32), 2), v(u(32), 2)]),
2344 definition: Named("llvm.aarch64.neon.ld3.v2i32.p0i32")
2346 "ld3_dup_s64" => Intrinsic {
2347 inputs: vec![p(true, i(64), None)],
2348 output: agg(false, vec![v(i(64), 1), v(i(64), 1), v(i(64), 1)]),
2349 definition: Named("llvm.aarch64.neon.ld3.v1i64.p0i64")
2351 "ld3_dup_u64" => Intrinsic {
2352 inputs: vec![p(true, u(64), None)],
2353 output: agg(false, vec![v(u(64), 1), v(u(64), 1), v(u(64), 1)]),
2354 definition: Named("llvm.aarch64.neon.ld3.v1i64.p0i64")
2356 "ld3_dup_f32" => Intrinsic {
2357 inputs: vec![p(true, f(32), None)],
2358 output: agg(false, vec![v(f(32), 2), v(f(32), 2), v(f(32), 2)]),
2359 definition: Named("llvm.aarch64.neon.ld3.v2f32.p0f32")
2361 "ld3_dup_f64" => Intrinsic {
2362 inputs: vec![p(true, f(64), None)],
2363 output: agg(false, vec![v(f(64), 1), v(f(64), 1), v(f(64), 1)]),
2364 definition: Named("llvm.aarch64.neon.ld3.v1f64.p0f64")
2366 "ld3q_dup_s8" => Intrinsic {
2367 inputs: vec![p(true, i(8), None)],
2368 output: agg(false, vec![v(i(8), 16), v(i(8), 16), v(i(8), 16)]),
2369 definition: Named("llvm.aarch64.neon.ld3.v16i8.p0i8")
2371 "ld3q_dup_u8" => Intrinsic {
2372 inputs: vec![p(true, u(8), None)],
2373 output: agg(false, vec![v(u(8), 16), v(u(8), 16), v(u(8), 16)]),
2374 definition: Named("llvm.aarch64.neon.ld3.v16i8.p0i8")
2376 "ld3q_dup_s16" => Intrinsic {
2377 inputs: vec![p(true, i(16), None)],
2378 output: agg(false, vec![v(i(16), 8), v(i(16), 8), v(i(16), 8)]),
2379 definition: Named("llvm.aarch64.neon.ld3.v8i16.p0i16")
2381 "ld3q_dup_u16" => Intrinsic {
2382 inputs: vec![p(true, u(16), None)],
2383 output: agg(false, vec![v(u(16), 8), v(u(16), 8), v(u(16), 8)]),
2384 definition: Named("llvm.aarch64.neon.ld3.v8i16.p0i16")
2386 "ld3q_dup_s32" => Intrinsic {
2387 inputs: vec![p(true, i(32), None)],
2388 output: agg(false, vec![v(i(32), 4), v(i(32), 4), v(i(32), 4)]),
2389 definition: Named("llvm.aarch64.neon.ld3.v4i32.p0i32")
2391 "ld3q_dup_u32" => Intrinsic {
2392 inputs: vec![p(true, u(32), None)],
2393 output: agg(false, vec![v(u(32), 4), v(u(32), 4), v(u(32), 4)]),
2394 definition: Named("llvm.aarch64.neon.ld3.v4i32.p0i32")
2396 "ld3q_dup_s64" => Intrinsic {
2397 inputs: vec![p(true, i(64), None)],
2398 output: agg(false, vec![v(i(64), 2), v(i(64), 2), v(i(64), 2)]),
2399 definition: Named("llvm.aarch64.neon.ld3.v2i64.p0i64")
2401 "ld3q_dup_u64" => Intrinsic {
2402 inputs: vec![p(true, u(64), None)],
2403 output: agg(false, vec![v(u(64), 2), v(u(64), 2), v(u(64), 2)]),
2404 definition: Named("llvm.aarch64.neon.ld3.v2i64.p0i64")
2406 "ld3q_dup_f32" => Intrinsic {
2407 inputs: vec![p(true, f(32), None)],
2408 output: agg(false, vec![v(f(32), 4), v(f(32), 4), v(f(32), 4)]),
2409 definition: Named("llvm.aarch64.neon.ld3.v4f32.p0f32")
2411 "ld3q_dup_f64" => Intrinsic {
2412 inputs: vec![p(true, f(64), None)],
2413 output: agg(false, vec![v(f(64), 2), v(f(64), 2), v(f(64), 2)]),
2414 definition: Named("llvm.aarch64.neon.ld3.v2f64.p0f64")
2416 "ld4_dup_s8" => Intrinsic {
2417 inputs: vec![p(true, i(8), None)],
2418 output: agg(false, vec![v(i(8), 8), v(i(8), 8), v(i(8), 8), v(i(8), 8)]),
2419 definition: Named("llvm.aarch64.neon.ld4.v8i8.p0i8")
2421 "ld4_dup_u8" => Intrinsic {
2422 inputs: vec![p(true, u(8), None)],
2423 output: agg(false, vec![v(u(8), 8), v(u(8), 8), v(u(8), 8), v(u(8), 8)]),
2424 definition: Named("llvm.aarch64.neon.ld4.v8i8.p0i8")
2426 "ld4_dup_s16" => Intrinsic {
2427 inputs: vec![p(true, i(16), None)],
2428 output: agg(false, vec![v(i(16), 4), v(i(16), 4), v(i(16), 4), v(i(16), 4)]),
2429 definition: Named("llvm.aarch64.neon.ld4.v4i16.p0i16")
2431 "ld4_dup_u16" => Intrinsic {
2432 inputs: vec![p(true, u(16), None)],
2433 output: agg(false, vec![v(u(16), 4), v(u(16), 4), v(u(16), 4), v(u(16), 4)]),
2434 definition: Named("llvm.aarch64.neon.ld4.v4i16.p0i16")
2436 "ld4_dup_s32" => Intrinsic {
2437 inputs: vec![p(true, i(32), None)],
2438 output: agg(false, vec![v(i(32), 2), v(i(32), 2), v(i(32), 2), v(i(32), 2)]),
2439 definition: Named("llvm.aarch64.neon.ld4.v2i32.p0i32")
2441 "ld4_dup_u32" => Intrinsic {
2442 inputs: vec![p(true, u(32), None)],
2443 output: agg(false, vec![v(u(32), 2), v(u(32), 2), v(u(32), 2), v(u(32), 2)]),
2444 definition: Named("llvm.aarch64.neon.ld4.v2i32.p0i32")
2446 "ld4_dup_s64" => Intrinsic {
2447 inputs: vec![p(true, i(64), None)],
2448 output: agg(false, vec![v(i(64), 1), v(i(64), 1), v(i(64), 1), v(i(64), 1)]),
2449 definition: Named("llvm.aarch64.neon.ld4.v1i64.p0i64")
2451 "ld4_dup_u64" => Intrinsic {
2452 inputs: vec![p(true, u(64), None)],
2453 output: agg(false, vec![v(u(64), 1), v(u(64), 1), v(u(64), 1), v(u(64), 1)]),
2454 definition: Named("llvm.aarch64.neon.ld4.v1i64.p0i64")
2456 "ld4_dup_f32" => Intrinsic {
2457 inputs: vec![p(true, f(32), None)],
2458 output: agg(false, vec![v(f(32), 2), v(f(32), 2), v(f(32), 2), v(f(32), 2)]),
2459 definition: Named("llvm.aarch64.neon.ld4.v2f32.p0f32")
2461 "ld4_dup_f64" => Intrinsic {
2462 inputs: vec![p(true, f(64), None)],
2463 output: agg(false, vec![v(f(64), 1), v(f(64), 1), v(f(64), 1), v(f(64), 1)]),
2464 definition: Named("llvm.aarch64.neon.ld4.v1f64.p0f64")
2466 "ld4q_dup_s8" => Intrinsic {
2467 inputs: vec![p(true, i(8), None)],
2468 output: agg(false, vec![v(i(8), 16), v(i(8), 16), v(i(8), 16), v(i(8), 16)]),
2469 definition: Named("llvm.aarch64.neon.ld4.v16i8.p0i8")
2471 "ld4q_dup_u8" => Intrinsic {
2472 inputs: vec![p(true, u(8), None)],
2473 output: agg(false, vec![v(u(8), 16), v(u(8), 16), v(u(8), 16), v(u(8), 16)]),
2474 definition: Named("llvm.aarch64.neon.ld4.v16i8.p0i8")
2476 "ld4q_dup_s16" => Intrinsic {
2477 inputs: vec![p(true, i(16), None)],
2478 output: agg(false, vec![v(i(16), 8), v(i(16), 8), v(i(16), 8), v(i(16), 8)]),
2479 definition: Named("llvm.aarch64.neon.ld4.v8i16.p0i16")
2481 "ld4q_dup_u16" => Intrinsic {
2482 inputs: vec![p(true, u(16), None)],
2483 output: agg(false, vec![v(u(16), 8), v(u(16), 8), v(u(16), 8), v(u(16), 8)]),
2484 definition: Named("llvm.aarch64.neon.ld4.v8i16.p0i16")
2486 "ld4q_dup_s32" => Intrinsic {
2487 inputs: vec![p(true, i(32), None)],
2488 output: agg(false, vec![v(i(32), 4), v(i(32), 4), v(i(32), 4), v(i(32), 4)]),
2489 definition: Named("llvm.aarch64.neon.ld4.v4i32.p0i32")
2491 "ld4q_dup_u32" => Intrinsic {
2492 inputs: vec![p(true, u(32), None)],
2493 output: agg(false, vec![v(u(32), 4), v(u(32), 4), v(u(32), 4), v(u(32), 4)]),
2494 definition: Named("llvm.aarch64.neon.ld4.v4i32.p0i32")
2496 "ld4q_dup_s64" => Intrinsic {
2497 inputs: vec![p(true, i(64), None)],
2498 output: agg(false, vec![v(i(64), 2), v(i(64), 2), v(i(64), 2), v(i(64), 2)]),
2499 definition: Named("llvm.aarch64.neon.ld4.v2i64.p0i64")
2501 "ld4q_dup_u64" => Intrinsic {
2502 inputs: vec![p(true, u(64), None)],
2503 output: agg(false, vec![v(u(64), 2), v(u(64), 2), v(u(64), 2), v(u(64), 2)]),
2504 definition: Named("llvm.aarch64.neon.ld4.v2i64.p0i64")
2506 "ld4q_dup_f32" => Intrinsic {
2507 inputs: vec![p(true, f(32), None)],
2508 output: agg(false, vec![v(f(32), 4), v(f(32), 4), v(f(32), 4), v(f(32), 4)]),
2509 definition: Named("llvm.aarch64.neon.ld4.v4f32.p0f32")
2511 "ld4q_dup_f64" => Intrinsic {
2512 inputs: vec![p(true, f(64), None)],
2513 output: agg(false, vec![v(f(64), 2), v(f(64), 2), v(f(64), 2), v(f(64), 2)]),
2514 definition: Named("llvm.aarch64.neon.ld4.v2f64.p0f64")
2516 "padd_s8" => Intrinsic {
2517 inputs: vec![v(i(8), 8), v(i(8), 8)],
2519 definition: Named("llvm.aarch64.neon.addp.v8i8")
2521 "padd_u8" => Intrinsic {
2522 inputs: vec![v(u(8), 8), v(u(8), 8)],
2524 definition: Named("llvm.aarch64.neon.addp.v8i8")
2526 "padd_s16" => Intrinsic {
2527 inputs: vec![v(i(16), 4), v(i(16), 4)],
2528 output: v(i(16), 4),
2529 definition: Named("llvm.aarch64.neon.addp.v4i16")
2531 "padd_u16" => Intrinsic {
2532 inputs: vec![v(u(16), 4), v(u(16), 4)],
2533 output: v(u(16), 4),
2534 definition: Named("llvm.aarch64.neon.addp.v4i16")
2536 "padd_s32" => Intrinsic {
2537 inputs: vec![v(i(32), 2), v(i(32), 2)],
2538 output: v(i(32), 2),
2539 definition: Named("llvm.aarch64.neon.addp.v2i32")
2541 "padd_u32" => Intrinsic {
2542 inputs: vec![v(u(32), 2), v(u(32), 2)],
2543 output: v(u(32), 2),
2544 definition: Named("llvm.aarch64.neon.addp.v2i32")
2546 "padd_f32" => Intrinsic {
2547 inputs: vec![v(f(32), 2), v(f(32), 2)],
2548 output: v(f(32), 2),
2549 definition: Named("llvm.aarch64.neon.addp.v2f32")
2551 "paddq_s8" => Intrinsic {
2552 inputs: vec![v(i(8), 16), v(i(8), 16)],
2553 output: v(i(8), 16),
2554 definition: Named("llvm.aarch64.neon.addp.v16i8")
2556 "paddq_u8" => Intrinsic {
2557 inputs: vec![v(u(8), 16), v(u(8), 16)],
2558 output: v(u(8), 16),
2559 definition: Named("llvm.aarch64.neon.addp.v16i8")
2561 "paddq_s16" => Intrinsic {
2562 inputs: vec![v(i(16), 8), v(i(16), 8)],
2563 output: v(i(16), 8),
2564 definition: Named("llvm.aarch64.neon.addp.v8i16")
2566 "paddq_u16" => Intrinsic {
2567 inputs: vec![v(u(16), 8), v(u(16), 8)],
2568 output: v(u(16), 8),
2569 definition: Named("llvm.aarch64.neon.addp.v8i16")
2571 "paddq_s32" => Intrinsic {
2572 inputs: vec![v(i(32), 4), v(i(32), 4)],
2573 output: v(i(32), 4),
2574 definition: Named("llvm.aarch64.neon.addp.v4i32")
2576 "paddq_u32" => Intrinsic {
2577 inputs: vec![v(u(32), 4), v(u(32), 4)],
2578 output: v(u(32), 4),
2579 definition: Named("llvm.aarch64.neon.addp.v4i32")
2581 "paddq_f32" => Intrinsic {
2582 inputs: vec![v(f(32), 4), v(f(32), 4)],
2583 output: v(f(32), 4),
2584 definition: Named("llvm.aarch64.neon.addp.v4f32")
2586 "paddq_s64" => Intrinsic {
2587 inputs: vec![v(i(64), 2), v(i(64), 2)],
2588 output: v(i(64), 2),
2589 definition: Named("llvm.aarch64.neon.addp.v2i64")
2591 "paddq_u64" => Intrinsic {
2592 inputs: vec![v(u(64), 2), v(u(64), 2)],
2593 output: v(u(64), 2),
2594 definition: Named("llvm.aarch64.neon.addp.v2i64")
2596 "paddq_f64" => Intrinsic {
2597 inputs: vec![v(f(64), 2), v(f(64), 2)],
2598 output: v(f(64), 2),
2599 definition: Named("llvm.aarch64.neon.addp.v2f64")
2601 "paddl_s16" => Intrinsic {
2602 inputs: vec![v(i(8), 8)],
2603 output: v(i(16), 4),
2604 definition: Named("llvm.aarch64.neon.saddlp.v4i16.v8i8")
2606 "paddl_u16" => Intrinsic {
2607 inputs: vec![v(u(8), 8)],
2608 output: v(u(16), 4),
2609 definition: Named("llvm.aarch64.neon.uaddlp.v4i16.v8i8")
2611 "paddl_s32" => Intrinsic {
2612 inputs: vec![v(i(16), 4)],
2613 output: v(i(32), 2),
2614 definition: Named("llvm.aarch64.neon.saddlp.v2i32.v4i16")
2616 "paddl_u32" => Intrinsic {
2617 inputs: vec![v(u(16), 4)],
2618 output: v(u(32), 2),
2619 definition: Named("llvm.aarch64.neon.uaddlp.v2i32.v4i16")
2621 "paddl_s64" => Intrinsic {
2622 inputs: vec![v(i(32), 2)],
2623 output: v(i(64), 1),
2624 definition: Named("llvm.aarch64.neon.saddlp.v1i64.v2i32")
2626 "paddl_u64" => Intrinsic {
2627 inputs: vec![v(u(32), 2)],
2628 output: v(u(64), 1),
2629 definition: Named("llvm.aarch64.neon.uaddlp.v1i64.v2i32")
2631 "paddlq_s16" => Intrinsic {
2632 inputs: vec![v(i(8), 16)],
2633 output: v(i(16), 8),
2634 definition: Named("llvm.aarch64.neon.saddlp.v8i16.v16i8")
2636 "paddlq_u16" => Intrinsic {
2637 inputs: vec![v(u(8), 16)],
2638 output: v(u(16), 8),
2639 definition: Named("llvm.aarch64.neon.uaddlp.v8i16.v16i8")
2641 "paddlq_s32" => Intrinsic {
2642 inputs: vec![v(i(16), 8)],
2643 output: v(i(32), 4),
2644 definition: Named("llvm.aarch64.neon.saddlp.v4i32.v8i16")
2646 "paddlq_u32" => Intrinsic {
2647 inputs: vec![v(u(16), 8)],
2648 output: v(u(32), 4),
2649 definition: Named("llvm.aarch64.neon.uaddlp.v4i32.v8i16")
2651 "paddlq_s64" => Intrinsic {
2652 inputs: vec![v(i(32), 4)],
2653 output: v(i(64), 2),
2654 definition: Named("llvm.aarch64.neon.saddlp.v2i64.v4i32")
2656 "paddlq_u64" => Intrinsic {
2657 inputs: vec![v(u(32), 4)],
2658 output: v(u(64), 2),
2659 definition: Named("llvm.aarch64.neon.uaddlp.v2i64.v4i32")
2661 "pmax_s8" => Intrinsic {
2662 inputs: vec![v(i(8), 8), v(i(8), 8)],
2664 definition: Named("llvm.aarch64.neon.smaxp.v8i8")
2666 "pmax_u8" => Intrinsic {
2667 inputs: vec![v(u(8), 8), v(u(8), 8)],
2669 definition: Named("llvm.aarch64.neon.umaxp.v8i8")
2671 "pmax_s16" => Intrinsic {
2672 inputs: vec![v(i(16), 4), v(i(16), 4)],
2673 output: v(i(16), 4),
2674 definition: Named("llvm.aarch64.neon.smaxp.v4i16")
2676 "pmax_u16" => Intrinsic {
2677 inputs: vec![v(u(16), 4), v(u(16), 4)],
2678 output: v(u(16), 4),
2679 definition: Named("llvm.aarch64.neon.umaxp.v4i16")
2681 "pmax_s32" => Intrinsic {
2682 inputs: vec![v(i(32), 2), v(i(32), 2)],
2683 output: v(i(32), 2),
2684 definition: Named("llvm.aarch64.neon.smaxp.v2i32")
2686 "pmax_u32" => Intrinsic {
2687 inputs: vec![v(u(32), 2), v(u(32), 2)],
2688 output: v(u(32), 2),
2689 definition: Named("llvm.aarch64.neon.umaxp.v2i32")
2691 "pmax_f32" => Intrinsic {
2692 inputs: vec![v(f(32), 2), v(f(32), 2)],
2693 output: v(f(32), 2),
2694 definition: Named("llvm.aarch64.neon.fmaxp.v2f32")
2696 "pmaxq_s8" => Intrinsic {
2697 inputs: vec![v(i(8), 16), v(i(8), 16)],
2698 output: v(i(8), 16),
2699 definition: Named("llvm.aarch64.neon.smaxp.v16i8")
2701 "pmaxq_u8" => Intrinsic {
2702 inputs: vec![v(u(8), 16), v(u(8), 16)],
2703 output: v(u(8), 16),
2704 definition: Named("llvm.aarch64.neon.umaxp.v16i8")
2706 "pmaxq_s16" => Intrinsic {
2707 inputs: vec![v(i(16), 8), v(i(16), 8)],
2708 output: v(i(16), 8),
2709 definition: Named("llvm.aarch64.neon.smaxp.v8i16")
2711 "pmaxq_u16" => Intrinsic {
2712 inputs: vec![v(u(16), 8), v(u(16), 8)],
2713 output: v(u(16), 8),
2714 definition: Named("llvm.aarch64.neon.umaxp.v8i16")
2716 "pmaxq_s32" => Intrinsic {
2717 inputs: vec![v(i(32), 4), v(i(32), 4)],
2718 output: v(i(32), 4),
2719 definition: Named("llvm.aarch64.neon.smaxp.v4i32")
2721 "pmaxq_u32" => Intrinsic {
2722 inputs: vec![v(u(32), 4), v(u(32), 4)],
2723 output: v(u(32), 4),
2724 definition: Named("llvm.aarch64.neon.umaxp.v4i32")
2726 "pmaxq_f32" => Intrinsic {
2727 inputs: vec![v(f(32), 4), v(f(32), 4)],
2728 output: v(f(32), 4),
2729 definition: Named("llvm.aarch64.neon.fmaxp.v4f32")
2731 "pmaxq_s64" => Intrinsic {
2732 inputs: vec![v(i(64), 2), v(i(64), 2)],
2733 output: v(i(64), 2),
2734 definition: Named("llvm.aarch64.neon.smaxp.v2i64")
2736 "pmaxq_u64" => Intrinsic {
2737 inputs: vec![v(u(64), 2), v(u(64), 2)],
2738 output: v(u(64), 2),
2739 definition: Named("llvm.aarch64.neon.umaxp.v2i64")
2741 "pmaxq_f64" => Intrinsic {
2742 inputs: vec![v(f(64), 2), v(f(64), 2)],
2743 output: v(f(64), 2),
2744 definition: Named("llvm.aarch64.neon.fmaxp.v2f64")
2746 "pmin_s8" => Intrinsic {
2747 inputs: vec![v(i(8), 8), v(i(8), 8)],
2749 definition: Named("llvm.aarch64.neon.sminp.v8i8")
2751 "pmin_u8" => Intrinsic {
2752 inputs: vec![v(u(8), 8), v(u(8), 8)],
2754 definition: Named("llvm.aarch64.neon.uminp.v8i8")
2756 "pmin_s16" => Intrinsic {
2757 inputs: vec![v(i(16), 4), v(i(16), 4)],
2758 output: v(i(16), 4),
2759 definition: Named("llvm.aarch64.neon.sminp.v4i16")
2761 "pmin_u16" => Intrinsic {
2762 inputs: vec![v(u(16), 4), v(u(16), 4)],
2763 output: v(u(16), 4),
2764 definition: Named("llvm.aarch64.neon.uminp.v4i16")
2766 "pmin_s32" => Intrinsic {
2767 inputs: vec![v(i(32), 2), v(i(32), 2)],
2768 output: v(i(32), 2),
2769 definition: Named("llvm.aarch64.neon.sminp.v2i32")
2771 "pmin_u32" => Intrinsic {
2772 inputs: vec![v(u(32), 2), v(u(32), 2)],
2773 output: v(u(32), 2),
2774 definition: Named("llvm.aarch64.neon.uminp.v2i32")
2776 "pmin_f32" => Intrinsic {
2777 inputs: vec![v(f(32), 2), v(f(32), 2)],
2778 output: v(f(32), 2),
2779 definition: Named("llvm.aarch64.neon.fminp.v2f32")
2781 "pminq_s8" => Intrinsic {
2782 inputs: vec![v(i(8), 16), v(i(8), 16)],
2783 output: v(i(8), 16),
2784 definition: Named("llvm.aarch64.neon.sminp.v16i8")
2786 "pminq_u8" => Intrinsic {
2787 inputs: vec![v(u(8), 16), v(u(8), 16)],
2788 output: v(u(8), 16),
2789 definition: Named("llvm.aarch64.neon.uminp.v16i8")
2791 "pminq_s16" => Intrinsic {
2792 inputs: vec![v(i(16), 8), v(i(16), 8)],
2793 output: v(i(16), 8),
2794 definition: Named("llvm.aarch64.neon.sminp.v8i16")
2796 "pminq_u16" => Intrinsic {
2797 inputs: vec![v(u(16), 8), v(u(16), 8)],
2798 output: v(u(16), 8),
2799 definition: Named("llvm.aarch64.neon.uminp.v8i16")
2801 "pminq_s32" => Intrinsic {
2802 inputs: vec![v(i(32), 4), v(i(32), 4)],
2803 output: v(i(32), 4),
2804 definition: Named("llvm.aarch64.neon.sminp.v4i32")
2806 "pminq_u32" => Intrinsic {
2807 inputs: vec![v(u(32), 4), v(u(32), 4)],
2808 output: v(u(32), 4),
2809 definition: Named("llvm.aarch64.neon.uminp.v4i32")
2811 "pminq_f32" => Intrinsic {
2812 inputs: vec![v(f(32), 4), v(f(32), 4)],
2813 output: v(f(32), 4),
2814 definition: Named("llvm.aarch64.neon.fminp.v4f32")
2816 "pminq_s64" => Intrinsic {
2817 inputs: vec![v(i(64), 2), v(i(64), 2)],
2818 output: v(i(64), 2),
2819 definition: Named("llvm.aarch64.neon.sminp.v2i64")
2821 "pminq_u64" => Intrinsic {
2822 inputs: vec![v(u(64), 2), v(u(64), 2)],
2823 output: v(u(64), 2),
2824 definition: Named("llvm.aarch64.neon.uminp.v2i64")
2826 "pminq_f64" => Intrinsic {
2827 inputs: vec![v(f(64), 2), v(f(64), 2)],
2828 output: v(f(64), 2),
2829 definition: Named("llvm.aarch64.neon.fminp.v2f64")
2831 "pmaxnm_s8" => Intrinsic {
2832 inputs: vec![v(i(8), 8), v(i(8), 8)],
2834 definition: Named("llvm.aarch64.neon.smaxnmp.v8i8")
2836 "pmaxnm_u8" => Intrinsic {
2837 inputs: vec![v(u(8), 8), v(u(8), 8)],
2839 definition: Named("llvm.aarch64.neon.umaxnmp.v8i8")
2841 "pmaxnm_s16" => Intrinsic {
2842 inputs: vec![v(i(16), 4), v(i(16), 4)],
2843 output: v(i(16), 4),
2844 definition: Named("llvm.aarch64.neon.smaxnmp.v4i16")
2846 "pmaxnm_u16" => Intrinsic {
2847 inputs: vec![v(u(16), 4), v(u(16), 4)],
2848 output: v(u(16), 4),
2849 definition: Named("llvm.aarch64.neon.umaxnmp.v4i16")
2851 "pmaxnm_s32" => Intrinsic {
2852 inputs: vec![v(i(32), 2), v(i(32), 2)],
2853 output: v(i(32), 2),
2854 definition: Named("llvm.aarch64.neon.smaxnmp.v2i32")
2856 "pmaxnm_u32" => Intrinsic {
2857 inputs: vec![v(u(32), 2), v(u(32), 2)],
2858 output: v(u(32), 2),
2859 definition: Named("llvm.aarch64.neon.umaxnmp.v2i32")
2861 "pmaxnm_f32" => Intrinsic {
2862 inputs: vec![v(f(32), 2), v(f(32), 2)],
2863 output: v(f(32), 2),
2864 definition: Named("llvm.aarch64.neon.fmaxnmp.v2f32")
2866 "pmaxnmq_s8" => Intrinsic {
2867 inputs: vec![v(i(8), 16), v(i(8), 16)],
2868 output: v(i(8), 16),
2869 definition: Named("llvm.aarch64.neon.smaxnmp.v16i8")
2871 "pmaxnmq_u8" => Intrinsic {
2872 inputs: vec![v(u(8), 16), v(u(8), 16)],
2873 output: v(u(8), 16),
2874 definition: Named("llvm.aarch64.neon.umaxnmp.v16i8")
2876 "pmaxnmq_s16" => Intrinsic {
2877 inputs: vec![v(i(16), 8), v(i(16), 8)],
2878 output: v(i(16), 8),
2879 definition: Named("llvm.aarch64.neon.smaxnmp.v8i16")
2881 "pmaxnmq_u16" => Intrinsic {
2882 inputs: vec![v(u(16), 8), v(u(16), 8)],
2883 output: v(u(16), 8),
2884 definition: Named("llvm.aarch64.neon.umaxnmp.v8i16")
2886 "pmaxnmq_s32" => Intrinsic {
2887 inputs: vec![v(i(32), 4), v(i(32), 4)],
2888 output: v(i(32), 4),
2889 definition: Named("llvm.aarch64.neon.smaxnmp.v4i32")
2891 "pmaxnmq_u32" => Intrinsic {
2892 inputs: vec![v(u(32), 4), v(u(32), 4)],
2893 output: v(u(32), 4),
2894 definition: Named("llvm.aarch64.neon.umaxnmp.v4i32")
2896 "pmaxnmq_f32" => Intrinsic {
2897 inputs: vec![v(f(32), 4), v(f(32), 4)],
2898 output: v(f(32), 4),
2899 definition: Named("llvm.aarch64.neon.fmaxnmp.v4f32")
2901 "pmaxnmq_s64" => Intrinsic {
2902 inputs: vec![v(i(64), 2), v(i(64), 2)],
2903 output: v(i(64), 2),
2904 definition: Named("llvm.aarch64.neon.smaxnmp.v2i64")
2906 "pmaxnmq_u64" => Intrinsic {
2907 inputs: vec![v(u(64), 2), v(u(64), 2)],
2908 output: v(u(64), 2),
2909 definition: Named("llvm.aarch64.neon.umaxnmp.v2i64")
2911 "pmaxnmq_f64" => Intrinsic {
2912 inputs: vec![v(f(64), 2), v(f(64), 2)],
2913 output: v(f(64), 2),
2914 definition: Named("llvm.aarch64.neon.fmaxnmp.v2f64")
2916 "pminnm_f32" => Intrinsic {
2917 inputs: vec![v(f(32), 2), v(f(32), 2)],
2918 output: v(f(32), 2),
2919 definition: Named("llvm.aarch64.neon.fminnmp.v2f32")
2921 "pminnmq_f32" => Intrinsic {
2922 inputs: vec![v(f(32), 4), v(f(32), 4)],
2923 output: v(f(32), 4),
2924 definition: Named("llvm.aarch64.neon.fminnmp.v4f32")
2926 "pminnmq_f64" => Intrinsic {
2927 inputs: vec![v(f(64), 2), v(f(64), 2)],
2928 output: v(f(64), 2),
2929 definition: Named("llvm.aarch64.neon.fminnmp.v2f64")
2931 "addv_s8" => Intrinsic {
2932 inputs: vec![v(i(8), 8)],
2934 definition: Named("llvm.aarch64.neon.saddv.i8.v8i8")
2936 "addv_u8" => Intrinsic {
2937 inputs: vec![v(u(8), 8)],
2939 definition: Named("llvm.aarch64.neon.uaddv.i8.v8i8")
2941 "addv_s16" => Intrinsic {
2942 inputs: vec![v(i(16), 4)],
2944 definition: Named("llvm.aarch64.neon.saddv.i16.v4i16")
2946 "addv_u16" => Intrinsic {
2947 inputs: vec![v(u(16), 4)],
2949 definition: Named("llvm.aarch64.neon.uaddv.i16.v4i16")
2951 "addv_s32" => Intrinsic {
2952 inputs: vec![v(i(32), 2)],
2954 definition: Named("llvm.aarch64.neon.saddv.i32.v2i32")
2956 "addv_u32" => Intrinsic {
2957 inputs: vec![v(u(32), 2)],
2959 definition: Named("llvm.aarch64.neon.uaddv.i32.v2i32")
2961 "addv_f32" => Intrinsic {
2962 inputs: vec![v(f(32), 2)],
2964 definition: Named("llvm.aarch64.neon.faddv.f32.v2f32")
2966 "addvq_s8" => Intrinsic {
2967 inputs: vec![v(i(8), 16)],
2969 definition: Named("llvm.aarch64.neon.saddv.i8.v16i8")
2971 "addvq_u8" => Intrinsic {
2972 inputs: vec![v(u(8), 16)],
2974 definition: Named("llvm.aarch64.neon.uaddv.i8.v16i8")
2976 "addvq_s16" => Intrinsic {
2977 inputs: vec![v(i(16), 8)],
2979 definition: Named("llvm.aarch64.neon.saddv.i16.v8i16")
2981 "addvq_u16" => Intrinsic {
2982 inputs: vec![v(u(16), 8)],
2984 definition: Named("llvm.aarch64.neon.uaddv.i16.v8i16")
2986 "addvq_s32" => Intrinsic {
2987 inputs: vec![v(i(32), 4)],
2989 definition: Named("llvm.aarch64.neon.saddv.i32.v4i32")
2991 "addvq_u32" => Intrinsic {
2992 inputs: vec![v(u(32), 4)],
2994 definition: Named("llvm.aarch64.neon.uaddv.i32.v4i32")
2996 "addvq_f32" => Intrinsic {
2997 inputs: vec![v(f(32), 4)],
2999 definition: Named("llvm.aarch64.neon.faddv.f32.v4f32")
3001 "addvq_s64" => Intrinsic {
3002 inputs: vec![v(i(64), 2)],
3004 definition: Named("llvm.aarch64.neon.saddv.i64.v2i64")
3006 "addvq_u64" => Intrinsic {
3007 inputs: vec![v(u(64), 2)],
3009 definition: Named("llvm.aarch64.neon.uaddv.i64.v2i64")
3011 "addvq_f64" => Intrinsic {
3012 inputs: vec![v(f(64), 2)],
3014 definition: Named("llvm.aarch64.neon.faddv.f64.v2f64")
3016 "addlv_s8" => Intrinsic {
3017 inputs: vec![v(i(8), 8)],
3019 definition: Named("llvm.aarch64.neon.saddlv.i16.v8i8")
3021 "addlv_u8" => Intrinsic {
3022 inputs: vec![v(u(8), 8)],
3024 definition: Named("llvm.aarch64.neon.uaddlv.i16.v8i8")
3026 "addlv_s16" => Intrinsic {
3027 inputs: vec![v(i(16), 4)],
3029 definition: Named("llvm.aarch64.neon.saddlv.i32.v4i16")
3031 "addlv_u16" => Intrinsic {
3032 inputs: vec![v(u(16), 4)],
3034 definition: Named("llvm.aarch64.neon.uaddlv.i32.v4i16")
3036 "addlv_s32" => Intrinsic {
3037 inputs: vec![v(i(32), 2)],
3039 definition: Named("llvm.aarch64.neon.saddlv.i64.v2i32")
3041 "addlv_u32" => Intrinsic {
3042 inputs: vec![v(u(32), 2)],
3044 definition: Named("llvm.aarch64.neon.uaddlv.i64.v2i32")
3046 "addlvq_s8" => Intrinsic {
3047 inputs: vec![v(i(8), 16)],
3049 definition: Named("llvm.aarch64.neon.saddlv.i16.v16i8")
3051 "addlvq_u8" => Intrinsic {
3052 inputs: vec![v(u(8), 16)],
3054 definition: Named("llvm.aarch64.neon.uaddlv.i16.v16i8")
3056 "addlvq_s16" => Intrinsic {
3057 inputs: vec![v(i(16), 8)],
3059 definition: Named("llvm.aarch64.neon.saddlv.i32.v8i16")
3061 "addlvq_u16" => Intrinsic {
3062 inputs: vec![v(u(16), 8)],
3064 definition: Named("llvm.aarch64.neon.uaddlv.i32.v8i16")
3066 "addlvq_s32" => Intrinsic {
3067 inputs: vec![v(i(32), 4)],
3069 definition: Named("llvm.aarch64.neon.saddlv.i64.v4i32")
3071 "addlvq_u32" => Intrinsic {
3072 inputs: vec![v(u(32), 4)],
3074 definition: Named("llvm.aarch64.neon.uaddlv.i64.v4i32")
3076 "maxv_s8" => Intrinsic {
3077 inputs: vec![v(i(8), 8)],
3079 definition: Named("llvm.aarch64.neon.smaxv.i8.v8i8")
3081 "maxv_u8" => Intrinsic {
3082 inputs: vec![v(u(8), 8)],
3084 definition: Named("llvm.aarch64.neon.umaxv.i8.v8i8")
3086 "maxv_s16" => Intrinsic {
3087 inputs: vec![v(i(16), 4)],
3089 definition: Named("llvm.aarch64.neon.smaxv.i16.v4i16")
3091 "maxv_u16" => Intrinsic {
3092 inputs: vec![v(u(16), 4)],
3094 definition: Named("llvm.aarch64.neon.umaxv.i16.v4i16")
3096 "maxv_s32" => Intrinsic {
3097 inputs: vec![v(i(32), 2)],
3099 definition: Named("llvm.aarch64.neon.smaxv.i32.v2i32")
3101 "maxv_u32" => Intrinsic {
3102 inputs: vec![v(u(32), 2)],
3104 definition: Named("llvm.aarch64.neon.umaxv.i32.v2i32")
3106 "maxv_f32" => Intrinsic {
3107 inputs: vec![v(f(32), 2)],
3109 definition: Named("llvm.aarch64.neon.fmaxv.f32.v2f32")
3111 "maxvq_s8" => Intrinsic {
3112 inputs: vec![v(i(8), 16)],
3114 definition: Named("llvm.aarch64.neon.smaxv.i8.v16i8")
3116 "maxvq_u8" => Intrinsic {
3117 inputs: vec![v(u(8), 16)],
3119 definition: Named("llvm.aarch64.neon.umaxv.i8.v16i8")
3121 "maxvq_s16" => Intrinsic {
3122 inputs: vec![v(i(16), 8)],
3124 definition: Named("llvm.aarch64.neon.smaxv.i16.v8i16")
3126 "maxvq_u16" => Intrinsic {
3127 inputs: vec![v(u(16), 8)],
3129 definition: Named("llvm.aarch64.neon.umaxv.i16.v8i16")
3131 "maxvq_s32" => Intrinsic {
3132 inputs: vec![v(i(32), 4)],
3134 definition: Named("llvm.aarch64.neon.smaxv.i32.v4i32")
3136 "maxvq_u32" => Intrinsic {
3137 inputs: vec![v(u(32), 4)],
3139 definition: Named("llvm.aarch64.neon.umaxv.i32.v4i32")
3141 "maxvq_f32" => Intrinsic {
3142 inputs: vec![v(f(32), 4)],
3144 definition: Named("llvm.aarch64.neon.fmaxv.f32.v4f32")
3146 "maxvq_f64" => Intrinsic {
3147 inputs: vec![v(f(64), 2)],
3149 definition: Named("llvm.aarch64.neon.fmaxv.f64.v2f64")
3151 "minv_s8" => Intrinsic {
3152 inputs: vec![v(i(8), 8)],
3154 definition: Named("llvm.aarch64.neon.sminv.i8.v8i8")
3156 "minv_u8" => Intrinsic {
3157 inputs: vec![v(u(8), 8)],
3159 definition: Named("llvm.aarch64.neon.uminv.i8.v8i8")
3161 "minv_s16" => Intrinsic {
3162 inputs: vec![v(i(16), 4)],
3164 definition: Named("llvm.aarch64.neon.sminv.i16.v4i16")
3166 "minv_u16" => Intrinsic {
3167 inputs: vec![v(u(16), 4)],
3169 definition: Named("llvm.aarch64.neon.uminv.i16.v4i16")
3171 "minv_s32" => Intrinsic {
3172 inputs: vec![v(i(32), 2)],
3174 definition: Named("llvm.aarch64.neon.sminv.i32.v2i32")
3176 "minv_u32" => Intrinsic {
3177 inputs: vec![v(u(32), 2)],
3179 definition: Named("llvm.aarch64.neon.uminv.i32.v2i32")
3181 "minv_f32" => Intrinsic {
3182 inputs: vec![v(f(32), 2)],
3184 definition: Named("llvm.aarch64.neon.fminv.f32.v2f32")
3186 "minvq_s8" => Intrinsic {
3187 inputs: vec![v(i(8), 16)],
3189 definition: Named("llvm.aarch64.neon.sminv.i8.v16i8")
3191 "minvq_u8" => Intrinsic {
3192 inputs: vec![v(u(8), 16)],
3194 definition: Named("llvm.aarch64.neon.uminv.i8.v16i8")
3196 "minvq_s16" => Intrinsic {
3197 inputs: vec![v(i(16), 8)],
3199 definition: Named("llvm.aarch64.neon.sminv.i16.v8i16")
3201 "minvq_u16" => Intrinsic {
3202 inputs: vec![v(u(16), 8)],
3204 definition: Named("llvm.aarch64.neon.uminv.i16.v8i16")
3206 "minvq_s32" => Intrinsic {
3207 inputs: vec![v(i(32), 4)],
3209 definition: Named("llvm.aarch64.neon.sminv.i32.v4i32")
3211 "minvq_u32" => Intrinsic {
3212 inputs: vec![v(u(32), 4)],
3214 definition: Named("llvm.aarch64.neon.uminv.i32.v4i32")
3216 "minvq_f32" => Intrinsic {
3217 inputs: vec![v(f(32), 4)],
3219 definition: Named("llvm.aarch64.neon.fminv.f32.v4f32")
3221 "minvq_f64" => Intrinsic {
3222 inputs: vec![v(f(64), 2)],
3224 definition: Named("llvm.aarch64.neon.fminv.f64.v2f64")
3226 "maxnmv_f32" => Intrinsic {
3227 inputs: vec![v(f(32), 2)],
3229 definition: Named("llvm.aarch64.neon.fmaxnmv.f32.v2f32")
3231 "maxnmvq_f32" => Intrinsic {
3232 inputs: vec![v(f(32), 4)],
3234 definition: Named("llvm.aarch64.neon.fmaxnmv.f32.v4f32")
3236 "maxnmvq_f64" => Intrinsic {
3237 inputs: vec![v(f(64), 2)],
3239 definition: Named("llvm.aarch64.neon.fmaxnmv.f64.v2f64")
3241 "minnmv_f32" => Intrinsic {
3242 inputs: vec![v(f(32), 2)],
3244 definition: Named("llvm.aarch64.neon.fminnmv.f32.v2f32")
3246 "minnmvq_f32" => Intrinsic {
3247 inputs: vec![v(f(32), 4)],
3249 definition: Named("llvm.aarch64.neon.fminnmv.f32.v4f32")
3251 "minnmvq_f64" => Intrinsic {
3252 inputs: vec![v(f(64), 2)],
3254 definition: Named("llvm.aarch64.neon.fminnmv.f64.v2f64")
3256 "qtbl1_s8" => Intrinsic {
3257 inputs: vec![v(i(8), 16), v(u(8), 8)],
3259 definition: Named("llvm.aarch64.neon.tbl1.v8i8")
3261 "qtbl1_u8" => Intrinsic {
3262 inputs: vec![v(u(8), 16), v(u(8), 8)],
3264 definition: Named("llvm.aarch64.neon.tbl1.v8i8")
3266 "qtbl1q_s8" => Intrinsic {
3267 inputs: vec![v(i(8), 16), v(u(8), 16)],
3268 output: v(i(8), 16),
3269 definition: Named("llvm.aarch64.neon.tbl1.v16i8")
3271 "qtbl1q_u8" => Intrinsic {
3272 inputs: vec![v(u(8), 16), v(u(8), 16)],
3273 output: v(u(8), 16),
3274 definition: Named("llvm.aarch64.neon.tbl1.v16i8")
3276 "qtbx1_s8" => Intrinsic {
3277 inputs: vec![v(i(8), 8), v(i(8), 16), v(u(8), 8)],
3279 definition: Named("llvm.aarch64.neon.tbx1.v8i8")
3281 "qtbx1_u8" => Intrinsic {
3282 inputs: vec![v(u(8), 8), v(u(8), 16), v(u(8), 8)],
3284 definition: Named("llvm.aarch64.neon.tbx1.v8i8")
3286 "qtbx1q_s8" => Intrinsic {
3287 inputs: vec![v(i(8), 16), v(i(8), 16), v(u(8), 16)],
3288 output: v(i(8), 16),
3289 definition: Named("llvm.aarch64.neon.tbx1.v16i8")
3291 "qtbx1q_u8" => Intrinsic {
3292 inputs: vec![v(u(8), 16), v(u(8), 16), v(u(8), 16)],
3293 output: v(u(8), 16),
3294 definition: Named("llvm.aarch64.neon.tbx1.v16i8")
3296 "qtbl2_s8" => Intrinsic {
3297 inputs: vec![agg(true, vec![v(i(8), 16), v(i(8), 16)]), v(u(8), 8)],
3299 definition: Named("llvm.aarch64.neon.tbl2.v8i8")
3301 "qtbl2_u8" => Intrinsic {
3302 inputs: vec![agg(true, vec![v(u(8), 16), v(u(8), 16)]), v(u(8), 8)],
3304 definition: Named("llvm.aarch64.neon.tbl2.v8i8")
3306 "qtbl2q_s8" => Intrinsic {
3307 inputs: vec![agg(true, vec![v(i(8), 16), v(i(8), 16)]), v(u(8), 16)],
3308 output: v(i(8), 16),
3309 definition: Named("llvm.aarch64.neon.tbl2.v16i8")
3311 "qtbl2q_u8" => Intrinsic {
3312 inputs: vec![agg(true, vec![v(u(8), 16), v(u(8), 16)]), v(u(8), 16)],
3313 output: v(u(8), 16),
3314 definition: Named("llvm.aarch64.neon.tbl2.v16i8")
3316 "qtbx2_s8" => Intrinsic {
3317 inputs: vec![agg(true, vec![v(i(8), 16), v(i(8), 16)]), v(u(8), 8)],
3319 definition: Named("llvm.aarch64.neon.tbx2.v8i8")
3321 "qtbx2_u8" => Intrinsic {
3322 inputs: vec![agg(true, vec![v(u(8), 16), v(u(8), 16)]), v(u(8), 8)],
3324 definition: Named("llvm.aarch64.neon.tbx2.v8i8")
3326 "qtbx2q_s8" => Intrinsic {
3327 inputs: vec![agg(true, vec![v(i(8), 16), v(i(8), 16)]), v(u(8), 16)],
3328 output: v(i(8), 16),
3329 definition: Named("llvm.aarch64.neon.tbx2.v16i8")
3331 "qtbx2q_u8" => Intrinsic {
3332 inputs: vec![agg(true, vec![v(u(8), 16), v(u(8), 16)]), v(u(8), 16)],
3333 output: v(u(8), 16),
3334 definition: Named("llvm.aarch64.neon.tbx2.v16i8")
3336 "qtbl3_s8" => Intrinsic {
3337 inputs: vec![agg(true, vec![v(i(8), 16), v(i(8), 16), v(i(8), 16)]), v(u(8), 8)],
3339 definition: Named("llvm.aarch64.neon.tbl3.v8i8")
3341 "qtbl3_u8" => Intrinsic {
3342 inputs: vec![agg(true, vec![v(u(8), 16), v(u(8), 16), v(u(8), 16)]), v(u(8), 8)],
3344 definition: Named("llvm.aarch64.neon.tbl3.v8i8")
3346 "qtbl3q_s8" => Intrinsic {
3347 inputs: vec![agg(true, vec![v(i(8), 16), v(i(8), 16), v(i(8), 16)]), v(u(8), 16)],
3348 output: v(i(8), 16),
3349 definition: Named("llvm.aarch64.neon.tbl3.v16i8")
3351 "qtbl3q_u8" => Intrinsic {
3352 inputs: vec![agg(true, vec![v(u(8), 16), v(u(8), 16), v(u(8), 16)]), v(u(8), 16)],
3353 output: v(u(8), 16),
3354 definition: Named("llvm.aarch64.neon.tbl3.v16i8")
3356 "qtbx3_s8" => Intrinsic {
3357 inputs: vec![v(i(8), 8), agg(true, vec![v(i(8), 16), v(i(8), 16), v(i(8), 16)]), v(u(8), 8)],
3359 definition: Named("llvm.aarch64.neon.tbx3.v8i8")
3361 "qtbx3_u8" => Intrinsic {
3362 inputs: vec![v(u(8), 8), agg(true, vec![v(u(8), 16), v(u(8), 16), v(u(8), 16)]), v(u(8), 8)],
3364 definition: Named("llvm.aarch64.neon.tbx3.v8i8")
3366 "qtbx3q_s8" => Intrinsic {
3367 inputs: vec![v(i(8), 16), agg(true, vec![v(i(8), 16), v(i(8), 16), v(i(8), 16)]), v(u(8), 16)],
3368 output: v(i(8), 16),
3369 definition: Named("llvm.aarch64.neon.tbx3.v16i8")
3371 "qtbx3q_u8" => Intrinsic {
3372 inputs: vec![v(u(8), 16), agg(true, vec![v(u(8), 16), v(u(8), 16), v(u(8), 16)]), v(u(8), 16)],
3373 output: v(u(8), 16),
3374 definition: Named("llvm.aarch64.neon.tbx3.v16i8")
3376 "qtbl4_s8" => Intrinsic {
3377 inputs: vec![agg(true, vec![v(i(8), 16), v(i(8), 16), v(i(8), 16), v(i(8), 16)]), v(u(8), 8)],
3379 definition: Named("llvm.aarch64.neon.tbl4.v8i8")
3381 "qtbl4_u8" => Intrinsic {
3382 inputs: vec![agg(true, vec![v(u(8), 16), v(u(8), 16), v(u(8), 16), v(u(8), 16)]), v(u(8), 8)],
3384 definition: Named("llvm.aarch64.neon.tbl4.v8i8")
3386 "qtbl4q_s8" => Intrinsic {
3387 inputs: vec![agg(true, vec![v(i(8), 16), v(i(8), 16), v(i(8), 16), v(i(8), 16)]), v(u(8), 16)],
3388 output: v(i(8), 16),
3389 definition: Named("llvm.aarch64.neon.tbl4.v16i8")
3391 "qtbl4q_u8" => Intrinsic {
3392 inputs: vec![agg(true, vec![v(u(8), 16), v(u(8), 16), v(u(8), 16), v(u(8), 16)]), v(u(8), 16)],
3393 output: v(u(8), 16),
3394 definition: Named("llvm.aarch64.neon.tbl4.v16i8")
3396 "qtbx4_s8" => Intrinsic {
3397 inputs: vec![v(i(8), 8), agg(true, vec![v(i(8), 16), v(i(8), 16), v(i(8), 16), v(i(8), 16)]), v(u(8), 8)],
3399 definition: Named("llvm.aarch64.neon.tbx4.v8i8")
3401 "qtbx4_u8" => Intrinsic {
3402 inputs: vec![v(u(8), 8), agg(true, vec![v(u(8), 16), v(u(8), 16), v(u(8), 16), v(u(8), 16)]), v(u(8), 8)],
3404 definition: Named("llvm.aarch64.neon.tbx4.v8i8")
3406 "qtbx4q_s8" => Intrinsic {
3407 inputs: vec![v(i(8), 16), agg(true, vec![v(i(8), 16), v(i(8), 16), v(i(8), 16), v(i(8), 16)]), v(u(8), 16)],
3408 output: v(i(8), 16),
3409 definition: Named("llvm.aarch64.neon.tbx4.v16i8")
3411 "qtbx4q_u8" => Intrinsic {
3412 inputs: vec![v(u(8), 16), agg(true, vec![v(u(8), 16), v(u(8), 16), v(u(8), 16), v(u(8), 16)]), v(u(8), 16)],
3413 output: v(u(8), 16),
3414 definition: Named("llvm.aarch64.neon.tbx4.v16i8")