core/stdarch/crates/core_arch/src/arm_shared/neon/
generated.rs

1// This code is automatically generated. DO NOT MODIFY.
2//
3// Instead, modify `crates/stdarch-gen-arm/spec/` and run the following command to re-generate this file:
4//
5// ```
6// cargo run --bin=stdarch-gen-arm -- crates/stdarch-gen-arm/spec
7// ```
8#![allow(improper_ctypes)]
9
10#[cfg(test)]
11use stdarch_test::assert_instr;
12
13use super::*;
14
15#[doc = "CRC32 single round checksum for bytes (8 bits)."]
16#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/__crc32b)"]
17#[inline]
18#[target_feature(enable = "crc")]
19#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
20#[cfg_attr(test, assert_instr(crc32b))]
21#[cfg_attr(
22    target_arch = "arm",
23    unstable(feature = "stdarch_aarch32_crc32", issue = "125085")
24)]
25#[cfg_attr(
26    not(target_arch = "arm"),
27    stable(feature = "stdarch_aarch64_crc32", since = "1.80.0")
28)]
29pub fn __crc32b(crc: u32, data: u8) -> u32 {
30    unsafe extern "unadjusted" {
31        #[cfg_attr(
32            any(target_arch = "aarch64", target_arch = "arm64ec"),
33            link_name = "llvm.aarch64.crc32b"
34        )]
35        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.crc32b")]
36        fn ___crc32b(crc: u32, data: u32) -> u32;
37    }
38    unsafe { ___crc32b(crc, data as u32) }
39}
40#[doc = "CRC32-C single round checksum for bytes (8 bits)."]
41#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/__crc32cb)"]
42#[inline]
43#[target_feature(enable = "crc")]
44#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
45#[cfg_attr(test, assert_instr(crc32cb))]
46#[cfg_attr(
47    target_arch = "arm",
48    unstable(feature = "stdarch_aarch32_crc32", issue = "125085")
49)]
50#[cfg_attr(
51    not(target_arch = "arm"),
52    stable(feature = "stdarch_aarch64_crc32", since = "1.80.0")
53)]
54pub fn __crc32cb(crc: u32, data: u8) -> u32 {
55    unsafe extern "unadjusted" {
56        #[cfg_attr(
57            any(target_arch = "aarch64", target_arch = "arm64ec"),
58            link_name = "llvm.aarch64.crc32cb"
59        )]
60        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.crc32cb")]
61        fn ___crc32cb(crc: u32, data: u32) -> u32;
62    }
63    unsafe { ___crc32cb(crc, data as u32) }
64}
65#[doc = "CRC32-C single round checksum for quad words (64 bits)."]
66#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/__crc32cd)"]
67#[inline]
68#[target_feature(enable = "crc")]
69#[cfg(target_arch = "arm")]
70#[cfg_attr(test, assert_instr(crc32cw))]
71#[cfg_attr(
72    target_arch = "arm",
73    unstable(feature = "stdarch_aarch32_crc32", issue = "125085")
74)]
75pub fn __crc32cd(crc: u32, data: u64) -> u32 {
76    let b: u32 = (data & 0xFFFFFFFF) as u32;
77    let c: u32 = (data >> 32) as u32;
78    unsafe extern "unadjusted" {
79        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.crc32cw")]
80        fn ___crc32cw(crc: u32, data: u32) -> u32;
81    }
82    unsafe { ___crc32cw(___crc32cw(crc, b), c) }
83}
84#[doc = "CRC32-C single round checksum for bytes (16 bits)."]
85#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/__crc32ch)"]
86#[inline]
87#[target_feature(enable = "crc")]
88#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
89#[cfg_attr(test, assert_instr(crc32ch))]
90#[cfg_attr(
91    target_arch = "arm",
92    unstable(feature = "stdarch_aarch32_crc32", issue = "125085")
93)]
94#[cfg_attr(
95    not(target_arch = "arm"),
96    stable(feature = "stdarch_aarch64_crc32", since = "1.80.0")
97)]
98pub fn __crc32ch(crc: u32, data: u16) -> u32 {
99    unsafe extern "unadjusted" {
100        #[cfg_attr(
101            any(target_arch = "aarch64", target_arch = "arm64ec"),
102            link_name = "llvm.aarch64.crc32ch"
103        )]
104        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.crc32ch")]
105        fn ___crc32ch(crc: u32, data: u32) -> u32;
106    }
107    unsafe { ___crc32ch(crc, data as u32) }
108}
109#[doc = "CRC32-C single round checksum for bytes (32 bits)."]
110#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/__crc32cw)"]
111#[inline]
112#[target_feature(enable = "crc")]
113#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
114#[cfg_attr(test, assert_instr(crc32cw))]
115#[cfg_attr(
116    target_arch = "arm",
117    unstable(feature = "stdarch_aarch32_crc32", issue = "125085")
118)]
119#[cfg_attr(
120    not(target_arch = "arm"),
121    stable(feature = "stdarch_aarch64_crc32", since = "1.80.0")
122)]
123pub fn __crc32cw(crc: u32, data: u32) -> u32 {
124    unsafe extern "unadjusted" {
125        #[cfg_attr(
126            any(target_arch = "aarch64", target_arch = "arm64ec"),
127            link_name = "llvm.aarch64.crc32cw"
128        )]
129        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.crc32cw")]
130        fn ___crc32cw(crc: u32, data: u32) -> u32;
131    }
132    unsafe { ___crc32cw(crc, data) }
133}
134#[doc = "CRC32 single round checksum for quad words (64 bits)."]
135#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/__crc32d)"]
136#[inline]
137#[target_feature(enable = "crc")]
138#[cfg(target_arch = "arm")]
139#[cfg_attr(test, assert_instr(crc32w))]
140#[cfg_attr(
141    target_arch = "arm",
142    unstable(feature = "stdarch_aarch32_crc32", issue = "125085")
143)]
144pub fn __crc32d(crc: u32, data: u64) -> u32 {
145    let b: u32 = (data & 0xFFFFFFFF) as u32;
146    let c: u32 = (data >> 32) as u32;
147    unsafe extern "unadjusted" {
148        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.crc32w")]
149        fn ___crc32w(crc: u32, data: u32) -> u32;
150    }
151    unsafe { ___crc32w(___crc32w(crc, b), c) }
152}
153#[doc = "CRC32 single round checksum for bytes (16 bits)."]
154#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/__crc32h)"]
155#[inline]
156#[target_feature(enable = "crc")]
157#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
158#[cfg_attr(test, assert_instr(crc32h))]
159#[cfg_attr(
160    target_arch = "arm",
161    unstable(feature = "stdarch_aarch32_crc32", issue = "125085")
162)]
163#[cfg_attr(
164    not(target_arch = "arm"),
165    stable(feature = "stdarch_aarch64_crc32", since = "1.80.0")
166)]
167pub fn __crc32h(crc: u32, data: u16) -> u32 {
168    unsafe extern "unadjusted" {
169        #[cfg_attr(
170            any(target_arch = "aarch64", target_arch = "arm64ec"),
171            link_name = "llvm.aarch64.crc32h"
172        )]
173        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.crc32h")]
174        fn ___crc32h(crc: u32, data: u32) -> u32;
175    }
176    unsafe { ___crc32h(crc, data as u32) }
177}
178#[doc = "CRC32 single round checksum for bytes (32 bits)."]
179#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/__crc32w)"]
180#[inline]
181#[target_feature(enable = "crc")]
182#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
183#[cfg_attr(test, assert_instr(crc32w))]
184#[cfg_attr(
185    target_arch = "arm",
186    unstable(feature = "stdarch_aarch32_crc32", issue = "125085")
187)]
188#[cfg_attr(
189    not(target_arch = "arm"),
190    stable(feature = "stdarch_aarch64_crc32", since = "1.80.0")
191)]
192pub fn __crc32w(crc: u32, data: u32) -> u32 {
193    unsafe extern "unadjusted" {
194        #[cfg_attr(
195            any(target_arch = "aarch64", target_arch = "arm64ec"),
196            link_name = "llvm.aarch64.crc32w"
197        )]
198        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.crc32w")]
199        fn ___crc32w(crc: u32, data: u32) -> u32;
200    }
201    unsafe { ___crc32w(crc, data) }
202}
203#[doc = "Signed Add and Accumulate Long Pairwise."]
204#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/priv_vpadal_s8)"]
205#[inline]
206#[target_feature(enable = "neon")]
207#[cfg(target_arch = "arm")]
208#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
209#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpadal.s8"))]
210#[cfg_attr(
211    target_arch = "arm",
212    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
213)]
214fn priv_vpadal_s8(a: int16x4_t, b: int8x8_t) -> int16x4_t {
215    unsafe extern "unadjusted" {
216        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpadals.v4i16.v8i8")]
217        fn _priv_vpadal_s8(a: int16x4_t, b: int8x8_t) -> int16x4_t;
218    }
219    unsafe { _priv_vpadal_s8(a, b) }
220}
221#[doc = "Signed Add and Accumulate Long Pairwise."]
222#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/priv_vpadalq_s8)"]
223#[inline]
224#[target_feature(enable = "neon")]
225#[cfg(target_arch = "arm")]
226#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
227#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpadal.s8"))]
228#[cfg_attr(
229    target_arch = "arm",
230    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
231)]
232fn priv_vpadalq_s8(a: int16x8_t, b: int8x16_t) -> int16x8_t {
233    unsafe extern "unadjusted" {
234        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpadals.v8i16.v16i8")]
235        fn _priv_vpadalq_s8(a: int16x8_t, b: int8x16_t) -> int16x8_t;
236    }
237    unsafe { _priv_vpadalq_s8(a, b) }
238}
239#[doc = "Signed Add and Accumulate Long Pairwise."]
240#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/priv_vpadal_s16)"]
241#[inline]
242#[target_feature(enable = "neon")]
243#[cfg(target_arch = "arm")]
244#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
245#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpadal.s16"))]
246#[cfg_attr(
247    target_arch = "arm",
248    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
249)]
250fn priv_vpadal_s16(a: int32x2_t, b: int16x4_t) -> int32x2_t {
251    unsafe extern "unadjusted" {
252        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpadals.v2i32.v4i16")]
253        fn _priv_vpadal_s16(a: int32x2_t, b: int16x4_t) -> int32x2_t;
254    }
255    unsafe { _priv_vpadal_s16(a, b) }
256}
257#[doc = "Signed Add and Accumulate Long Pairwise."]
258#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/priv_vpadalq_s16)"]
259#[inline]
260#[target_feature(enable = "neon")]
261#[cfg(target_arch = "arm")]
262#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
263#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpadal.s16"))]
264#[cfg_attr(
265    target_arch = "arm",
266    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
267)]
268fn priv_vpadalq_s16(a: int32x4_t, b: int16x8_t) -> int32x4_t {
269    unsafe extern "unadjusted" {
270        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpadals.v4i32.v8i16")]
271        fn _priv_vpadalq_s16(a: int32x4_t, b: int16x8_t) -> int32x4_t;
272    }
273    unsafe { _priv_vpadalq_s16(a, b) }
274}
275#[doc = "Signed Add and Accumulate Long Pairwise."]
276#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/priv_vpadal_s32)"]
277#[inline]
278#[target_feature(enable = "neon")]
279#[cfg(target_arch = "arm")]
280#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
281#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpadal.s32"))]
282#[cfg_attr(
283    target_arch = "arm",
284    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
285)]
286fn priv_vpadal_s32(a: int64x1_t, b: int32x2_t) -> int64x1_t {
287    unsafe extern "unadjusted" {
288        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpadals.v1i64.v2i32")]
289        fn _priv_vpadal_s32(a: int64x1_t, b: int32x2_t) -> int64x1_t;
290    }
291    unsafe { _priv_vpadal_s32(a, b) }
292}
293#[doc = "Signed Add and Accumulate Long Pairwise."]
294#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/priv_vpadalq_s32)"]
295#[inline]
296#[target_feature(enable = "neon")]
297#[cfg(target_arch = "arm")]
298#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
299#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpadal.s32"))]
300#[cfg_attr(
301    target_arch = "arm",
302    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
303)]
304fn priv_vpadalq_s32(a: int64x2_t, b: int32x4_t) -> int64x2_t {
305    unsafe extern "unadjusted" {
306        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpadals.v2i64.v4i32")]
307        fn _priv_vpadalq_s32(a: int64x2_t, b: int32x4_t) -> int64x2_t;
308    }
309    unsafe { _priv_vpadalq_s32(a, b) }
310}
311#[doc = "Signed Add and Accumulate Long Pairwise."]
312#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/priv_vpadal_u8)"]
313#[inline]
314#[target_feature(enable = "neon")]
315#[cfg(target_arch = "arm")]
316#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
317#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpadal.u8"))]
318#[cfg_attr(
319    target_arch = "arm",
320    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
321)]
322fn priv_vpadal_u8(a: uint16x4_t, b: uint8x8_t) -> uint16x4_t {
323    unsafe extern "unadjusted" {
324        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpadalu.v4i16.v8i8")]
325        fn _priv_vpadal_u8(a: uint16x4_t, b: uint8x8_t) -> uint16x4_t;
326    }
327    unsafe { _priv_vpadal_u8(a, b) }
328}
329#[doc = "Signed Add and Accumulate Long Pairwise."]
330#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/priv_vpadalq_u8)"]
331#[inline]
332#[target_feature(enable = "neon")]
333#[cfg(target_arch = "arm")]
334#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
335#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpadal.u8"))]
336#[cfg_attr(
337    target_arch = "arm",
338    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
339)]
340fn priv_vpadalq_u8(a: uint16x8_t, b: uint8x16_t) -> uint16x8_t {
341    unsafe extern "unadjusted" {
342        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpadalu.v8i16.v16i8")]
343        fn _priv_vpadalq_u8(a: uint16x8_t, b: uint8x16_t) -> uint16x8_t;
344    }
345    unsafe { _priv_vpadalq_u8(a, b) }
346}
347#[doc = "Signed Add and Accumulate Long Pairwise."]
348#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/priv_vpadal_u16)"]
349#[inline]
350#[target_feature(enable = "neon")]
351#[cfg(target_arch = "arm")]
352#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
353#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpadal.u16"))]
354#[cfg_attr(
355    target_arch = "arm",
356    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
357)]
358fn priv_vpadal_u16(a: uint32x2_t, b: uint16x4_t) -> uint32x2_t {
359    unsafe extern "unadjusted" {
360        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpadalu.v2i32.v4i16")]
361        fn _priv_vpadal_u16(a: uint32x2_t, b: uint16x4_t) -> uint32x2_t;
362    }
363    unsafe { _priv_vpadal_u16(a, b) }
364}
365#[doc = "Signed Add and Accumulate Long Pairwise."]
366#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/priv_vpadalq_u16)"]
367#[inline]
368#[target_feature(enable = "neon")]
369#[cfg(target_arch = "arm")]
370#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
371#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpadal.u16"))]
372#[cfg_attr(
373    target_arch = "arm",
374    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
375)]
376fn priv_vpadalq_u16(a: uint32x4_t, b: uint16x8_t) -> uint32x4_t {
377    unsafe extern "unadjusted" {
378        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpadalu.v4i32.v8i16")]
379        fn _priv_vpadalq_u16(a: uint32x4_t, b: uint16x8_t) -> uint32x4_t;
380    }
381    unsafe { _priv_vpadalq_u16(a, b) }
382}
383#[doc = "Signed Add and Accumulate Long Pairwise."]
384#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/priv_vpadal_u32)"]
385#[inline]
386#[target_feature(enable = "neon")]
387#[cfg(target_arch = "arm")]
388#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
389#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpadal.u32"))]
390#[cfg_attr(
391    target_arch = "arm",
392    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
393)]
394fn priv_vpadal_u32(a: uint64x1_t, b: uint32x2_t) -> uint64x1_t {
395    unsafe extern "unadjusted" {
396        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpadalu.v1i64.v2i32")]
397        fn _priv_vpadal_u32(a: uint64x1_t, b: uint32x2_t) -> uint64x1_t;
398    }
399    unsafe { _priv_vpadal_u32(a, b) }
400}
401#[doc = "Signed Add and Accumulate Long Pairwise."]
402#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/priv_vpadalq_u32)"]
403#[inline]
404#[target_feature(enable = "neon")]
405#[cfg(target_arch = "arm")]
406#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
407#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpadal.u32"))]
408#[cfg_attr(
409    target_arch = "arm",
410    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
411)]
412fn priv_vpadalq_u32(a: uint64x2_t, b: uint32x4_t) -> uint64x2_t {
413    unsafe extern "unadjusted" {
414        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpadalu.v2i64.v4i32")]
415        fn _priv_vpadalq_u32(a: uint64x2_t, b: uint32x4_t) -> uint64x2_t;
416    }
417    unsafe { _priv_vpadalq_u32(a, b) }
418}
419#[doc = "Absolute difference and accumulate (64-bit)"]
420#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaba_s16)"]
421#[inline]
422#[target_feature(enable = "neon")]
423#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
424#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vaba.s16"))]
425#[cfg_attr(
426    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
427    assert_instr(saba)
428)]
429#[cfg_attr(
430    not(target_arch = "arm"),
431    stable(feature = "neon_intrinsics", since = "1.59.0")
432)]
433#[cfg_attr(
434    target_arch = "arm",
435    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
436)]
437pub fn vaba_s16(a: int16x4_t, b: int16x4_t, c: int16x4_t) -> int16x4_t {
438    unsafe { simd_add(a, vabd_s16(b, c)) }
439}
440#[doc = "Absolute difference and accumulate (64-bit)"]
441#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaba_s32)"]
442#[inline]
443#[target_feature(enable = "neon")]
444#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
445#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vaba.s32"))]
446#[cfg_attr(
447    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
448    assert_instr(saba)
449)]
450#[cfg_attr(
451    not(target_arch = "arm"),
452    stable(feature = "neon_intrinsics", since = "1.59.0")
453)]
454#[cfg_attr(
455    target_arch = "arm",
456    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
457)]
458pub fn vaba_s32(a: int32x2_t, b: int32x2_t, c: int32x2_t) -> int32x2_t {
459    unsafe { simd_add(a, vabd_s32(b, c)) }
460}
461#[doc = "Absolute difference and accumulate (64-bit)"]
462#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaba_s8)"]
463#[inline]
464#[target_feature(enable = "neon")]
465#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
466#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vaba.s8"))]
467#[cfg_attr(
468    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
469    assert_instr(saba)
470)]
471#[cfg_attr(
472    not(target_arch = "arm"),
473    stable(feature = "neon_intrinsics", since = "1.59.0")
474)]
475#[cfg_attr(
476    target_arch = "arm",
477    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
478)]
479pub fn vaba_s8(a: int8x8_t, b: int8x8_t, c: int8x8_t) -> int8x8_t {
480    unsafe { simd_add(a, vabd_s8(b, c)) }
481}
482#[doc = "Absolute difference and accumulate (64-bit)"]
483#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaba_u16)"]
484#[inline]
485#[target_feature(enable = "neon")]
486#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
487#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vaba.u16"))]
488#[cfg_attr(
489    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
490    assert_instr(uaba)
491)]
492#[cfg_attr(
493    not(target_arch = "arm"),
494    stable(feature = "neon_intrinsics", since = "1.59.0")
495)]
496#[cfg_attr(
497    target_arch = "arm",
498    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
499)]
500pub fn vaba_u16(a: uint16x4_t, b: uint16x4_t, c: uint16x4_t) -> uint16x4_t {
501    unsafe { simd_add(a, vabd_u16(b, c)) }
502}
503#[doc = "Absolute difference and accumulate (64-bit)"]
504#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaba_u32)"]
505#[inline]
506#[target_feature(enable = "neon")]
507#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
508#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vaba.u32"))]
509#[cfg_attr(
510    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
511    assert_instr(uaba)
512)]
513#[cfg_attr(
514    not(target_arch = "arm"),
515    stable(feature = "neon_intrinsics", since = "1.59.0")
516)]
517#[cfg_attr(
518    target_arch = "arm",
519    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
520)]
521pub fn vaba_u32(a: uint32x2_t, b: uint32x2_t, c: uint32x2_t) -> uint32x2_t {
522    unsafe { simd_add(a, vabd_u32(b, c)) }
523}
524#[doc = "Absolute difference and accumulate (64-bit)"]
525#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaba_u8)"]
526#[inline]
527#[target_feature(enable = "neon")]
528#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
529#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vaba.u8"))]
530#[cfg_attr(
531    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
532    assert_instr(uaba)
533)]
534#[cfg_attr(
535    not(target_arch = "arm"),
536    stable(feature = "neon_intrinsics", since = "1.59.0")
537)]
538#[cfg_attr(
539    target_arch = "arm",
540    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
541)]
542pub fn vaba_u8(a: uint8x8_t, b: uint8x8_t, c: uint8x8_t) -> uint8x8_t {
543    unsafe { simd_add(a, vabd_u8(b, c)) }
544}
545#[doc = "Signed Absolute difference and Accumulate Long"]
546#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabal_s8)"]
547#[inline]
548#[target_feature(enable = "neon")]
549#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
550#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabal.s8"))]
551#[cfg_attr(
552    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
553    assert_instr(sabal)
554)]
555#[cfg_attr(
556    not(target_arch = "arm"),
557    stable(feature = "neon_intrinsics", since = "1.59.0")
558)]
559#[cfg_attr(
560    target_arch = "arm",
561    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
562)]
563pub fn vabal_s8(a: int16x8_t, b: int8x8_t, c: int8x8_t) -> int16x8_t {
564    let d: int8x8_t = vabd_s8(b, c);
565    unsafe {
566        let e: uint8x8_t = simd_cast(d);
567        simd_add(a, simd_cast(e))
568    }
569}
570#[doc = "Signed Absolute difference and Accumulate Long"]
571#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabal_s16)"]
572#[inline]
573#[target_feature(enable = "neon")]
574#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
575#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabal.s16"))]
576#[cfg_attr(
577    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
578    assert_instr(sabal)
579)]
580#[cfg_attr(
581    not(target_arch = "arm"),
582    stable(feature = "neon_intrinsics", since = "1.59.0")
583)]
584#[cfg_attr(
585    target_arch = "arm",
586    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
587)]
588pub fn vabal_s16(a: int32x4_t, b: int16x4_t, c: int16x4_t) -> int32x4_t {
589    let d: int16x4_t = vabd_s16(b, c);
590    unsafe {
591        let e: uint16x4_t = simd_cast(d);
592        simd_add(a, simd_cast(e))
593    }
594}
595#[doc = "Signed Absolute difference and Accumulate Long"]
596#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabal_s32)"]
597#[inline]
598#[target_feature(enable = "neon")]
599#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
600#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabal.s32"))]
601#[cfg_attr(
602    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
603    assert_instr(sabal)
604)]
605#[cfg_attr(
606    not(target_arch = "arm"),
607    stable(feature = "neon_intrinsics", since = "1.59.0")
608)]
609#[cfg_attr(
610    target_arch = "arm",
611    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
612)]
613pub fn vabal_s32(a: int64x2_t, b: int32x2_t, c: int32x2_t) -> int64x2_t {
614    let d: int32x2_t = vabd_s32(b, c);
615    unsafe {
616        let e: uint32x2_t = simd_cast(d);
617        simd_add(a, simd_cast(e))
618    }
619}
620#[doc = "Unsigned Absolute difference and Accumulate Long"]
621#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabal_u8)"]
622#[inline]
623#[target_feature(enable = "neon")]
624#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
625#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabal.u8"))]
626#[cfg_attr(
627    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
628    assert_instr(uabal)
629)]
630#[cfg_attr(
631    not(target_arch = "arm"),
632    stable(feature = "neon_intrinsics", since = "1.59.0")
633)]
634#[cfg_attr(
635    target_arch = "arm",
636    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
637)]
638pub fn vabal_u8(a: uint16x8_t, b: uint8x8_t, c: uint8x8_t) -> uint16x8_t {
639    let d: uint8x8_t = vabd_u8(b, c);
640    unsafe { simd_add(a, simd_cast(d)) }
641}
642#[doc = "Unsigned Absolute difference and Accumulate Long"]
643#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabal_u16)"]
644#[inline]
645#[target_feature(enable = "neon")]
646#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
647#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabal.u16"))]
648#[cfg_attr(
649    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
650    assert_instr(uabal)
651)]
652#[cfg_attr(
653    not(target_arch = "arm"),
654    stable(feature = "neon_intrinsics", since = "1.59.0")
655)]
656#[cfg_attr(
657    target_arch = "arm",
658    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
659)]
660pub fn vabal_u16(a: uint32x4_t, b: uint16x4_t, c: uint16x4_t) -> uint32x4_t {
661    let d: uint16x4_t = vabd_u16(b, c);
662    unsafe { simd_add(a, simd_cast(d)) }
663}
664#[doc = "Unsigned Absolute difference and Accumulate Long"]
665#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabal_u32)"]
666#[inline]
667#[target_feature(enable = "neon")]
668#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
669#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabal.u32"))]
670#[cfg_attr(
671    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
672    assert_instr(uabal)
673)]
674#[cfg_attr(
675    not(target_arch = "arm"),
676    stable(feature = "neon_intrinsics", since = "1.59.0")
677)]
678#[cfg_attr(
679    target_arch = "arm",
680    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
681)]
682pub fn vabal_u32(a: uint64x2_t, b: uint32x2_t, c: uint32x2_t) -> uint64x2_t {
683    let d: uint32x2_t = vabd_u32(b, c);
684    unsafe { simd_add(a, simd_cast(d)) }
685}
686#[doc = "Absolute difference and accumulate (128-bit)"]
687#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabaq_s16)"]
688#[inline]
689#[target_feature(enable = "neon")]
690#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
691#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vaba.s16"))]
692#[cfg_attr(
693    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
694    assert_instr(saba)
695)]
696#[cfg_attr(
697    not(target_arch = "arm"),
698    stable(feature = "neon_intrinsics", since = "1.59.0")
699)]
700#[cfg_attr(
701    target_arch = "arm",
702    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
703)]
704pub fn vabaq_s16(a: int16x8_t, b: int16x8_t, c: int16x8_t) -> int16x8_t {
705    unsafe { simd_add(a, vabdq_s16(b, c)) }
706}
707#[doc = "Absolute difference and accumulate (128-bit)"]
708#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabaq_s32)"]
709#[inline]
710#[target_feature(enable = "neon")]
711#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
712#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vaba.s32"))]
713#[cfg_attr(
714    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
715    assert_instr(saba)
716)]
717#[cfg_attr(
718    not(target_arch = "arm"),
719    stable(feature = "neon_intrinsics", since = "1.59.0")
720)]
721#[cfg_attr(
722    target_arch = "arm",
723    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
724)]
725pub fn vabaq_s32(a: int32x4_t, b: int32x4_t, c: int32x4_t) -> int32x4_t {
726    unsafe { simd_add(a, vabdq_s32(b, c)) }
727}
728#[doc = "Absolute difference and accumulate (128-bit)"]
729#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabaq_s8)"]
730#[inline]
731#[target_feature(enable = "neon")]
732#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
733#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vaba.s8"))]
734#[cfg_attr(
735    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
736    assert_instr(saba)
737)]
738#[cfg_attr(
739    not(target_arch = "arm"),
740    stable(feature = "neon_intrinsics", since = "1.59.0")
741)]
742#[cfg_attr(
743    target_arch = "arm",
744    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
745)]
746pub fn vabaq_s8(a: int8x16_t, b: int8x16_t, c: int8x16_t) -> int8x16_t {
747    unsafe { simd_add(a, vabdq_s8(b, c)) }
748}
749#[doc = "Absolute difference and accumulate (128-bit)"]
750#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabaq_u16)"]
751#[inline]
752#[target_feature(enable = "neon")]
753#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
754#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vaba.u16"))]
755#[cfg_attr(
756    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
757    assert_instr(uaba)
758)]
759#[cfg_attr(
760    not(target_arch = "arm"),
761    stable(feature = "neon_intrinsics", since = "1.59.0")
762)]
763#[cfg_attr(
764    target_arch = "arm",
765    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
766)]
767pub fn vabaq_u16(a: uint16x8_t, b: uint16x8_t, c: uint16x8_t) -> uint16x8_t {
768    unsafe { simd_add(a, vabdq_u16(b, c)) }
769}
770#[doc = "Absolute difference and accumulate (128-bit)"]
771#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabaq_u32)"]
772#[inline]
773#[target_feature(enable = "neon")]
774#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
775#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vaba.u32"))]
776#[cfg_attr(
777    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
778    assert_instr(uaba)
779)]
780#[cfg_attr(
781    not(target_arch = "arm"),
782    stable(feature = "neon_intrinsics", since = "1.59.0")
783)]
784#[cfg_attr(
785    target_arch = "arm",
786    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
787)]
788pub fn vabaq_u32(a: uint32x4_t, b: uint32x4_t, c: uint32x4_t) -> uint32x4_t {
789    unsafe { simd_add(a, vabdq_u32(b, c)) }
790}
791#[doc = "Absolute difference and accumulate (128-bit)"]
792#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabaq_u8)"]
793#[inline]
794#[target_feature(enable = "neon")]
795#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
796#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vaba.u8"))]
797#[cfg_attr(
798    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
799    assert_instr(uaba)
800)]
801#[cfg_attr(
802    not(target_arch = "arm"),
803    stable(feature = "neon_intrinsics", since = "1.59.0")
804)]
805#[cfg_attr(
806    target_arch = "arm",
807    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
808)]
809pub fn vabaq_u8(a: uint8x16_t, b: uint8x16_t, c: uint8x16_t) -> uint8x16_t {
810    unsafe { simd_add(a, vabdq_u8(b, c)) }
811}
812#[doc = "Absolute difference between the arguments of Floating"]
813#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabd_f16)"]
814#[inline]
815#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
816#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabd.f16"))]
817#[cfg_attr(
818    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
819    assert_instr(fabd)
820)]
821#[target_feature(enable = "neon,fp16")]
822#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
823#[cfg(not(target_arch = "arm64ec"))]
824pub fn vabd_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t {
825    unsafe extern "unadjusted" {
826        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vabds.v4f16")]
827        #[cfg_attr(
828            any(target_arch = "aarch64", target_arch = "arm64ec"),
829            link_name = "llvm.aarch64.neon.fabd.v4f16"
830        )]
831        fn _vabd_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t;
832    }
833    unsafe { _vabd_f16(a, b) }
834}
835#[doc = "Absolute difference between the arguments of Floating"]
836#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabdq_f16)"]
837#[inline]
838#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
839#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabd.f16"))]
840#[cfg_attr(
841    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
842    assert_instr(fabd)
843)]
844#[target_feature(enable = "neon,fp16")]
845#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
846#[cfg(not(target_arch = "arm64ec"))]
847pub fn vabdq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t {
848    unsafe extern "unadjusted" {
849        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vabds.v8f16")]
850        #[cfg_attr(
851            any(target_arch = "aarch64", target_arch = "arm64ec"),
852            link_name = "llvm.aarch64.neon.fabd.v8f16"
853        )]
854        fn _vabdq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t;
855    }
856    unsafe { _vabdq_f16(a, b) }
857}
858#[doc = "Absolute difference between the arguments of Floating"]
859#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabd_f32)"]
860#[inline]
861#[target_feature(enable = "neon")]
862#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
863#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabd.f32"))]
864#[cfg_attr(
865    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
866    assert_instr(fabd)
867)]
868#[cfg_attr(
869    not(target_arch = "arm"),
870    stable(feature = "neon_intrinsics", since = "1.59.0")
871)]
872#[cfg_attr(
873    target_arch = "arm",
874    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
875)]
876pub fn vabd_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
877    unsafe extern "unadjusted" {
878        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vabds.v2f32")]
879        #[cfg_attr(
880            any(target_arch = "aarch64", target_arch = "arm64ec"),
881            link_name = "llvm.aarch64.neon.fabd.v2f32"
882        )]
883        fn _vabd_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t;
884    }
885    unsafe { _vabd_f32(a, b) }
886}
887#[doc = "Absolute difference between the arguments of Floating"]
888#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabdq_f32)"]
889#[inline]
890#[target_feature(enable = "neon")]
891#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
892#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabd.f32"))]
893#[cfg_attr(
894    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
895    assert_instr(fabd)
896)]
897#[cfg_attr(
898    not(target_arch = "arm"),
899    stable(feature = "neon_intrinsics", since = "1.59.0")
900)]
901#[cfg_attr(
902    target_arch = "arm",
903    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
904)]
905pub fn vabdq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t {
906    unsafe extern "unadjusted" {
907        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vabds.v4f32")]
908        #[cfg_attr(
909            any(target_arch = "aarch64", target_arch = "arm64ec"),
910            link_name = "llvm.aarch64.neon.fabd.v4f32"
911        )]
912        fn _vabdq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t;
913    }
914    unsafe { _vabdq_f32(a, b) }
915}
916#[doc = "Absolute difference between the arguments"]
917#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabd_s8)"]
918#[inline]
919#[target_feature(enable = "neon")]
920#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
921#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabd.s8"))]
922#[cfg_attr(
923    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
924    assert_instr(sabd)
925)]
926#[cfg_attr(
927    not(target_arch = "arm"),
928    stable(feature = "neon_intrinsics", since = "1.59.0")
929)]
930#[cfg_attr(
931    target_arch = "arm",
932    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
933)]
934pub fn vabd_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
935    unsafe extern "unadjusted" {
936        #[cfg_attr(
937            any(target_arch = "aarch64", target_arch = "arm64ec"),
938            link_name = "llvm.aarch64.neon.sabd.v8i8"
939        )]
940        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vabds.v8i8")]
941        fn _vabd_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t;
942    }
943    unsafe { _vabd_s8(a, b) }
944}
945#[doc = "Absolute difference between the arguments"]
946#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabdq_s8)"]
947#[inline]
948#[target_feature(enable = "neon")]
949#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
950#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabd.s8"))]
951#[cfg_attr(
952    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
953    assert_instr(sabd)
954)]
955#[cfg_attr(
956    not(target_arch = "arm"),
957    stable(feature = "neon_intrinsics", since = "1.59.0")
958)]
959#[cfg_attr(
960    target_arch = "arm",
961    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
962)]
963pub fn vabdq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
964    unsafe extern "unadjusted" {
965        #[cfg_attr(
966            any(target_arch = "aarch64", target_arch = "arm64ec"),
967            link_name = "llvm.aarch64.neon.sabd.v16i8"
968        )]
969        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vabds.v16i8")]
970        fn _vabdq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t;
971    }
972    unsafe { _vabdq_s8(a, b) }
973}
974#[doc = "Absolute difference between the arguments"]
975#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabd_s16)"]
976#[inline]
977#[target_feature(enable = "neon")]
978#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
979#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabd.s16"))]
980#[cfg_attr(
981    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
982    assert_instr(sabd)
983)]
984#[cfg_attr(
985    not(target_arch = "arm"),
986    stable(feature = "neon_intrinsics", since = "1.59.0")
987)]
988#[cfg_attr(
989    target_arch = "arm",
990    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
991)]
992pub fn vabd_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
993    unsafe extern "unadjusted" {
994        #[cfg_attr(
995            any(target_arch = "aarch64", target_arch = "arm64ec"),
996            link_name = "llvm.aarch64.neon.sabd.v4i16"
997        )]
998        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vabds.v4i16")]
999        fn _vabd_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t;
1000    }
1001    unsafe { _vabd_s16(a, b) }
1002}
1003#[doc = "Absolute difference between the arguments"]
1004#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabdq_s16)"]
1005#[inline]
1006#[target_feature(enable = "neon")]
1007#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1008#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabd.s16"))]
1009#[cfg_attr(
1010    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1011    assert_instr(sabd)
1012)]
1013#[cfg_attr(
1014    not(target_arch = "arm"),
1015    stable(feature = "neon_intrinsics", since = "1.59.0")
1016)]
1017#[cfg_attr(
1018    target_arch = "arm",
1019    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1020)]
1021pub fn vabdq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
1022    unsafe extern "unadjusted" {
1023        #[cfg_attr(
1024            any(target_arch = "aarch64", target_arch = "arm64ec"),
1025            link_name = "llvm.aarch64.neon.sabd.v8i16"
1026        )]
1027        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vabds.v8i16")]
1028        fn _vabdq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t;
1029    }
1030    unsafe { _vabdq_s16(a, b) }
1031}
1032#[doc = "Absolute difference between the arguments"]
1033#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabd_s32)"]
1034#[inline]
1035#[target_feature(enable = "neon")]
1036#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1037#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabd.s32"))]
1038#[cfg_attr(
1039    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1040    assert_instr(sabd)
1041)]
1042#[cfg_attr(
1043    not(target_arch = "arm"),
1044    stable(feature = "neon_intrinsics", since = "1.59.0")
1045)]
1046#[cfg_attr(
1047    target_arch = "arm",
1048    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1049)]
1050pub fn vabd_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
1051    unsafe extern "unadjusted" {
1052        #[cfg_attr(
1053            any(target_arch = "aarch64", target_arch = "arm64ec"),
1054            link_name = "llvm.aarch64.neon.sabd.v2i32"
1055        )]
1056        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vabds.v2i32")]
1057        fn _vabd_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t;
1058    }
1059    unsafe { _vabd_s32(a, b) }
1060}
1061#[doc = "Absolute difference between the arguments"]
1062#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabdq_s32)"]
1063#[inline]
1064#[target_feature(enable = "neon")]
1065#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1066#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabd.s32"))]
1067#[cfg_attr(
1068    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1069    assert_instr(sabd)
1070)]
1071#[cfg_attr(
1072    not(target_arch = "arm"),
1073    stable(feature = "neon_intrinsics", since = "1.59.0")
1074)]
1075#[cfg_attr(
1076    target_arch = "arm",
1077    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1078)]
1079pub fn vabdq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
1080    unsafe extern "unadjusted" {
1081        #[cfg_attr(
1082            any(target_arch = "aarch64", target_arch = "arm64ec"),
1083            link_name = "llvm.aarch64.neon.sabd.v4i32"
1084        )]
1085        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vabds.v4i32")]
1086        fn _vabdq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t;
1087    }
1088    unsafe { _vabdq_s32(a, b) }
1089}
1090#[doc = "Absolute difference between the arguments"]
1091#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabd_u8)"]
1092#[inline]
1093#[target_feature(enable = "neon")]
1094#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1095#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabd.u8"))]
1096#[cfg_attr(
1097    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1098    assert_instr(uabd)
1099)]
1100#[cfg_attr(
1101    not(target_arch = "arm"),
1102    stable(feature = "neon_intrinsics", since = "1.59.0")
1103)]
1104#[cfg_attr(
1105    target_arch = "arm",
1106    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1107)]
1108pub fn vabd_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
1109    unsafe extern "unadjusted" {
1110        #[cfg_attr(
1111            any(target_arch = "aarch64", target_arch = "arm64ec"),
1112            link_name = "llvm.aarch64.neon.uabd.v8i8"
1113        )]
1114        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vabdu.v8i8")]
1115        fn _vabd_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t;
1116    }
1117    unsafe { _vabd_u8(a, b) }
1118}
1119#[doc = "Absolute difference between the arguments"]
1120#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabdq_u8)"]
1121#[inline]
1122#[target_feature(enable = "neon")]
1123#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1124#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabd.u8"))]
1125#[cfg_attr(
1126    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1127    assert_instr(uabd)
1128)]
1129#[cfg_attr(
1130    not(target_arch = "arm"),
1131    stable(feature = "neon_intrinsics", since = "1.59.0")
1132)]
1133#[cfg_attr(
1134    target_arch = "arm",
1135    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1136)]
1137pub fn vabdq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
1138    unsafe extern "unadjusted" {
1139        #[cfg_attr(
1140            any(target_arch = "aarch64", target_arch = "arm64ec"),
1141            link_name = "llvm.aarch64.neon.uabd.v16i8"
1142        )]
1143        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vabdu.v16i8")]
1144        fn _vabdq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t;
1145    }
1146    unsafe { _vabdq_u8(a, b) }
1147}
1148#[doc = "Absolute difference between the arguments"]
1149#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabd_u16)"]
1150#[inline]
1151#[target_feature(enable = "neon")]
1152#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1153#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabd.u16"))]
1154#[cfg_attr(
1155    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1156    assert_instr(uabd)
1157)]
1158#[cfg_attr(
1159    not(target_arch = "arm"),
1160    stable(feature = "neon_intrinsics", since = "1.59.0")
1161)]
1162#[cfg_attr(
1163    target_arch = "arm",
1164    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1165)]
1166pub fn vabd_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
1167    unsafe extern "unadjusted" {
1168        #[cfg_attr(
1169            any(target_arch = "aarch64", target_arch = "arm64ec"),
1170            link_name = "llvm.aarch64.neon.uabd.v4i16"
1171        )]
1172        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vabdu.v4i16")]
1173        fn _vabd_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t;
1174    }
1175    unsafe { _vabd_u16(a, b) }
1176}
1177#[doc = "Absolute difference between the arguments"]
1178#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabdq_u16)"]
1179#[inline]
1180#[target_feature(enable = "neon")]
1181#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1182#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabd.u16"))]
1183#[cfg_attr(
1184    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1185    assert_instr(uabd)
1186)]
1187#[cfg_attr(
1188    not(target_arch = "arm"),
1189    stable(feature = "neon_intrinsics", since = "1.59.0")
1190)]
1191#[cfg_attr(
1192    target_arch = "arm",
1193    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1194)]
1195pub fn vabdq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
1196    unsafe extern "unadjusted" {
1197        #[cfg_attr(
1198            any(target_arch = "aarch64", target_arch = "arm64ec"),
1199            link_name = "llvm.aarch64.neon.uabd.v8i16"
1200        )]
1201        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vabdu.v8i16")]
1202        fn _vabdq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t;
1203    }
1204    unsafe { _vabdq_u16(a, b) }
1205}
1206#[doc = "Absolute difference between the arguments"]
1207#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabd_u32)"]
1208#[inline]
1209#[target_feature(enable = "neon")]
1210#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1211#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabd.u32"))]
1212#[cfg_attr(
1213    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1214    assert_instr(uabd)
1215)]
1216#[cfg_attr(
1217    not(target_arch = "arm"),
1218    stable(feature = "neon_intrinsics", since = "1.59.0")
1219)]
1220#[cfg_attr(
1221    target_arch = "arm",
1222    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1223)]
1224pub fn vabd_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
1225    unsafe extern "unadjusted" {
1226        #[cfg_attr(
1227            any(target_arch = "aarch64", target_arch = "arm64ec"),
1228            link_name = "llvm.aarch64.neon.uabd.v2i32"
1229        )]
1230        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vabdu.v2i32")]
1231        fn _vabd_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t;
1232    }
1233    unsafe { _vabd_u32(a, b) }
1234}
1235#[doc = "Absolute difference between the arguments"]
1236#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabdq_u32)"]
1237#[inline]
1238#[target_feature(enable = "neon")]
1239#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1240#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabd.u32"))]
1241#[cfg_attr(
1242    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1243    assert_instr(uabd)
1244)]
1245#[cfg_attr(
1246    not(target_arch = "arm"),
1247    stable(feature = "neon_intrinsics", since = "1.59.0")
1248)]
1249#[cfg_attr(
1250    target_arch = "arm",
1251    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1252)]
1253pub fn vabdq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
1254    unsafe extern "unadjusted" {
1255        #[cfg_attr(
1256            any(target_arch = "aarch64", target_arch = "arm64ec"),
1257            link_name = "llvm.aarch64.neon.uabd.v4i32"
1258        )]
1259        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vabdu.v4i32")]
1260        fn _vabdq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t;
1261    }
1262    unsafe { _vabdq_u32(a, b) }
1263}
1264#[doc = "Signed Absolute difference Long"]
1265#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabdl_s8)"]
1266#[inline]
1267#[target_feature(enable = "neon")]
1268#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1269#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabdl.s8"))]
1270#[cfg_attr(
1271    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1272    assert_instr(sabdl)
1273)]
1274#[cfg_attr(
1275    not(target_arch = "arm"),
1276    stable(feature = "neon_intrinsics", since = "1.59.0")
1277)]
1278#[cfg_attr(
1279    target_arch = "arm",
1280    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1281)]
1282pub fn vabdl_s8(a: int8x8_t, b: int8x8_t) -> int16x8_t {
1283    unsafe {
1284        let c: uint8x8_t = simd_cast(vabd_s8(a, b));
1285        simd_cast(c)
1286    }
1287}
1288#[doc = "Signed Absolute difference Long"]
1289#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabdl_s16)"]
1290#[inline]
1291#[target_feature(enable = "neon")]
1292#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1293#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabdl.s16"))]
1294#[cfg_attr(
1295    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1296    assert_instr(sabdl)
1297)]
1298#[cfg_attr(
1299    not(target_arch = "arm"),
1300    stable(feature = "neon_intrinsics", since = "1.59.0")
1301)]
1302#[cfg_attr(
1303    target_arch = "arm",
1304    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1305)]
1306pub fn vabdl_s16(a: int16x4_t, b: int16x4_t) -> int32x4_t {
1307    unsafe {
1308        let c: uint16x4_t = simd_cast(vabd_s16(a, b));
1309        simd_cast(c)
1310    }
1311}
1312#[doc = "Signed Absolute difference Long"]
1313#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabdl_s32)"]
1314#[inline]
1315#[target_feature(enable = "neon")]
1316#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1317#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabdl.s32"))]
1318#[cfg_attr(
1319    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1320    assert_instr(sabdl)
1321)]
1322#[cfg_attr(
1323    not(target_arch = "arm"),
1324    stable(feature = "neon_intrinsics", since = "1.59.0")
1325)]
1326#[cfg_attr(
1327    target_arch = "arm",
1328    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1329)]
1330pub fn vabdl_s32(a: int32x2_t, b: int32x2_t) -> int64x2_t {
1331    unsafe {
1332        let c: uint32x2_t = simd_cast(vabd_s32(a, b));
1333        simd_cast(c)
1334    }
1335}
1336#[doc = "Unsigned Absolute difference Long"]
1337#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabdl_u8)"]
1338#[inline]
1339#[target_feature(enable = "neon")]
1340#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1341#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabdl.u8"))]
1342#[cfg_attr(
1343    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1344    assert_instr(uabdl)
1345)]
1346#[cfg_attr(
1347    not(target_arch = "arm"),
1348    stable(feature = "neon_intrinsics", since = "1.59.0")
1349)]
1350#[cfg_attr(
1351    target_arch = "arm",
1352    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1353)]
1354pub fn vabdl_u8(a: uint8x8_t, b: uint8x8_t) -> uint16x8_t {
1355    unsafe { simd_cast(vabd_u8(a, b)) }
1356}
1357#[doc = "Unsigned Absolute difference Long"]
1358#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabdl_u16)"]
1359#[inline]
1360#[target_feature(enable = "neon")]
1361#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1362#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabdl.u16"))]
1363#[cfg_attr(
1364    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1365    assert_instr(uabdl)
1366)]
1367#[cfg_attr(
1368    not(target_arch = "arm"),
1369    stable(feature = "neon_intrinsics", since = "1.59.0")
1370)]
1371#[cfg_attr(
1372    target_arch = "arm",
1373    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1374)]
1375pub fn vabdl_u16(a: uint16x4_t, b: uint16x4_t) -> uint32x4_t {
1376    unsafe { simd_cast(vabd_u16(a, b)) }
1377}
1378#[doc = "Unsigned Absolute difference Long"]
1379#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabdl_u32)"]
1380#[inline]
1381#[target_feature(enable = "neon")]
1382#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1383#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabdl.u32"))]
1384#[cfg_attr(
1385    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1386    assert_instr(uabdl)
1387)]
1388#[cfg_attr(
1389    not(target_arch = "arm"),
1390    stable(feature = "neon_intrinsics", since = "1.59.0")
1391)]
1392#[cfg_attr(
1393    target_arch = "arm",
1394    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1395)]
1396pub fn vabdl_u32(a: uint32x2_t, b: uint32x2_t) -> uint64x2_t {
1397    unsafe { simd_cast(vabd_u32(a, b)) }
1398}
1399#[doc = "Floating-point absolute value"]
1400#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabs_f16)"]
1401#[inline]
1402#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
1403#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vabs))]
1404#[cfg_attr(
1405    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1406    assert_instr(fabs)
1407)]
1408#[target_feature(enable = "neon,fp16")]
1409#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
1410#[cfg(not(target_arch = "arm64ec"))]
1411pub fn vabs_f16(a: float16x4_t) -> float16x4_t {
1412    unsafe { simd_fabs(a) }
1413}
1414#[doc = "Floating-point absolute value"]
1415#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabsq_f16)"]
1416#[inline]
1417#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
1418#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vabs))]
1419#[cfg_attr(
1420    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1421    assert_instr(fabs)
1422)]
1423#[target_feature(enable = "neon,fp16")]
1424#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
1425#[cfg(not(target_arch = "arm64ec"))]
1426pub fn vabsq_f16(a: float16x8_t) -> float16x8_t {
1427    unsafe { simd_fabs(a) }
1428}
1429#[doc = "Floating-point absolute value"]
1430#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabs_f32)"]
1431#[inline]
1432#[target_feature(enable = "neon")]
1433#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1434#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vabs))]
1435#[cfg_attr(
1436    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1437    assert_instr(fabs)
1438)]
1439#[cfg_attr(
1440    not(target_arch = "arm"),
1441    stable(feature = "neon_intrinsics", since = "1.59.0")
1442)]
1443#[cfg_attr(
1444    target_arch = "arm",
1445    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1446)]
1447pub fn vabs_f32(a: float32x2_t) -> float32x2_t {
1448    unsafe { simd_fabs(a) }
1449}
1450#[doc = "Floating-point absolute value"]
1451#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabsq_f32)"]
1452#[inline]
1453#[target_feature(enable = "neon")]
1454#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1455#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vabs))]
1456#[cfg_attr(
1457    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1458    assert_instr(fabs)
1459)]
1460#[cfg_attr(
1461    not(target_arch = "arm"),
1462    stable(feature = "neon_intrinsics", since = "1.59.0")
1463)]
1464#[cfg_attr(
1465    target_arch = "arm",
1466    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1467)]
1468pub fn vabsq_f32(a: float32x4_t) -> float32x4_t {
1469    unsafe { simd_fabs(a) }
1470}
1471#[doc = "Absolute value (wrapping)."]
1472#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabs_s8)"]
1473#[inline]
1474#[target_feature(enable = "neon")]
1475#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1476#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vabs))]
1477#[cfg_attr(
1478    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1479    assert_instr(abs)
1480)]
1481#[cfg_attr(
1482    not(target_arch = "arm"),
1483    stable(feature = "neon_intrinsics", since = "1.59.0")
1484)]
1485#[cfg_attr(
1486    target_arch = "arm",
1487    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1488)]
1489pub fn vabs_s8(a: int8x8_t) -> int8x8_t {
1490    unsafe {
1491        let neg: int8x8_t = simd_neg(a);
1492        let mask: int8x8_t = simd_ge(a, neg);
1493        simd_select(mask, a, neg)
1494    }
1495}
1496#[doc = "Absolute value (wrapping)."]
1497#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabsq_s8)"]
1498#[inline]
1499#[target_feature(enable = "neon")]
1500#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1501#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vabs))]
1502#[cfg_attr(
1503    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1504    assert_instr(abs)
1505)]
1506#[cfg_attr(
1507    not(target_arch = "arm"),
1508    stable(feature = "neon_intrinsics", since = "1.59.0")
1509)]
1510#[cfg_attr(
1511    target_arch = "arm",
1512    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1513)]
1514pub fn vabsq_s8(a: int8x16_t) -> int8x16_t {
1515    unsafe {
1516        let neg: int8x16_t = simd_neg(a);
1517        let mask: int8x16_t = simd_ge(a, neg);
1518        simd_select(mask, a, neg)
1519    }
1520}
1521#[doc = "Absolute value (wrapping)."]
1522#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabs_s16)"]
1523#[inline]
1524#[target_feature(enable = "neon")]
1525#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1526#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vabs))]
1527#[cfg_attr(
1528    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1529    assert_instr(abs)
1530)]
1531#[cfg_attr(
1532    not(target_arch = "arm"),
1533    stable(feature = "neon_intrinsics", since = "1.59.0")
1534)]
1535#[cfg_attr(
1536    target_arch = "arm",
1537    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1538)]
1539pub fn vabs_s16(a: int16x4_t) -> int16x4_t {
1540    unsafe {
1541        let neg: int16x4_t = simd_neg(a);
1542        let mask: int16x4_t = simd_ge(a, neg);
1543        simd_select(mask, a, neg)
1544    }
1545}
1546#[doc = "Absolute value (wrapping)."]
1547#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabsq_s16)"]
1548#[inline]
1549#[target_feature(enable = "neon")]
1550#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1551#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vabs))]
1552#[cfg_attr(
1553    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1554    assert_instr(abs)
1555)]
1556#[cfg_attr(
1557    not(target_arch = "arm"),
1558    stable(feature = "neon_intrinsics", since = "1.59.0")
1559)]
1560#[cfg_attr(
1561    target_arch = "arm",
1562    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1563)]
1564pub fn vabsq_s16(a: int16x8_t) -> int16x8_t {
1565    unsafe {
1566        let neg: int16x8_t = simd_neg(a);
1567        let mask: int16x8_t = simd_ge(a, neg);
1568        simd_select(mask, a, neg)
1569    }
1570}
1571#[doc = "Absolute value (wrapping)."]
1572#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabs_s32)"]
1573#[inline]
1574#[target_feature(enable = "neon")]
1575#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1576#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vabs))]
1577#[cfg_attr(
1578    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1579    assert_instr(abs)
1580)]
1581#[cfg_attr(
1582    not(target_arch = "arm"),
1583    stable(feature = "neon_intrinsics", since = "1.59.0")
1584)]
1585#[cfg_attr(
1586    target_arch = "arm",
1587    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1588)]
1589pub fn vabs_s32(a: int32x2_t) -> int32x2_t {
1590    unsafe {
1591        let neg: int32x2_t = simd_neg(a);
1592        let mask: int32x2_t = simd_ge(a, neg);
1593        simd_select(mask, a, neg)
1594    }
1595}
1596#[doc = "Absolute value (wrapping)."]
1597#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabsq_s32)"]
1598#[inline]
1599#[target_feature(enable = "neon")]
1600#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1601#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vabs))]
1602#[cfg_attr(
1603    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1604    assert_instr(abs)
1605)]
1606#[cfg_attr(
1607    not(target_arch = "arm"),
1608    stable(feature = "neon_intrinsics", since = "1.59.0")
1609)]
1610#[cfg_attr(
1611    target_arch = "arm",
1612    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1613)]
1614pub fn vabsq_s32(a: int32x4_t) -> int32x4_t {
1615    unsafe {
1616        let neg: int32x4_t = simd_neg(a);
1617        let mask: int32x4_t = simd_ge(a, neg);
1618        simd_select(mask, a, neg)
1619    }
1620}
1621#[doc = "Floating-point absolute value"]
1622#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabsh_f16)"]
1623#[inline]
1624#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
1625#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vabs))]
1626#[cfg_attr(
1627    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1628    assert_instr(fabs)
1629)]
1630#[target_feature(enable = "neon,fp16")]
1631#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
1632#[cfg(not(target_arch = "arm64ec"))]
1633pub fn vabsh_f16(a: f16) -> f16 {
1634    unsafe { simd_extract!(vabs_f16(vdup_n_f16(a)), 0) }
1635}
1636#[doc = "Floating-point Add (vector)."]
1637#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vadd_f16)"]
1638#[inline]
1639#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
1640#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vadd.f16"))]
1641#[cfg_attr(
1642    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1643    assert_instr(fadd)
1644)]
1645#[target_feature(enable = "neon,fp16")]
1646#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
1647#[cfg(not(target_arch = "arm64ec"))]
1648pub fn vadd_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t {
1649    unsafe { simd_add(a, b) }
1650}
1651#[doc = "Floating-point Add (vector)."]
1652#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddq_f16)"]
1653#[inline]
1654#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
1655#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vadd.f16"))]
1656#[cfg_attr(
1657    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1658    assert_instr(fadd)
1659)]
1660#[target_feature(enable = "neon,fp16")]
1661#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
1662#[cfg(not(target_arch = "arm64ec"))]
1663pub fn vaddq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t {
1664    unsafe { simd_add(a, b) }
1665}
1666#[doc = "Vector add."]
1667#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vadd_f32)"]
1668#[inline]
1669#[target_feature(enable = "neon")]
1670#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1671#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vadd))]
1672#[cfg_attr(
1673    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1674    assert_instr(fadd)
1675)]
1676#[cfg_attr(
1677    not(target_arch = "arm"),
1678    stable(feature = "neon_intrinsics", since = "1.59.0")
1679)]
1680#[cfg_attr(
1681    target_arch = "arm",
1682    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1683)]
1684pub fn vadd_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
1685    unsafe { simd_add(a, b) }
1686}
1687#[doc = "Vector add."]
1688#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vadd_s16)"]
1689#[inline]
1690#[target_feature(enable = "neon")]
1691#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1692#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vadd))]
1693#[cfg_attr(
1694    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1695    assert_instr(add)
1696)]
1697#[cfg_attr(
1698    not(target_arch = "arm"),
1699    stable(feature = "neon_intrinsics", since = "1.59.0")
1700)]
1701#[cfg_attr(
1702    target_arch = "arm",
1703    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1704)]
1705pub fn vadd_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
1706    unsafe { simd_add(a, b) }
1707}
1708#[doc = "Vector add."]
1709#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vadd_s32)"]
1710#[inline]
1711#[target_feature(enable = "neon")]
1712#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1713#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vadd))]
1714#[cfg_attr(
1715    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1716    assert_instr(add)
1717)]
1718#[cfg_attr(
1719    not(target_arch = "arm"),
1720    stable(feature = "neon_intrinsics", since = "1.59.0")
1721)]
1722#[cfg_attr(
1723    target_arch = "arm",
1724    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1725)]
1726pub fn vadd_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
1727    unsafe { simd_add(a, b) }
1728}
1729#[doc = "Vector add."]
1730#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vadd_s8)"]
1731#[inline]
1732#[target_feature(enable = "neon")]
1733#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1734#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vadd))]
1735#[cfg_attr(
1736    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1737    assert_instr(add)
1738)]
1739#[cfg_attr(
1740    not(target_arch = "arm"),
1741    stable(feature = "neon_intrinsics", since = "1.59.0")
1742)]
1743#[cfg_attr(
1744    target_arch = "arm",
1745    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1746)]
1747pub fn vadd_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
1748    unsafe { simd_add(a, b) }
1749}
1750#[doc = "Vector add."]
1751#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vadd_u16)"]
1752#[inline]
1753#[target_feature(enable = "neon")]
1754#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1755#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vadd))]
1756#[cfg_attr(
1757    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1758    assert_instr(add)
1759)]
1760#[cfg_attr(
1761    not(target_arch = "arm"),
1762    stable(feature = "neon_intrinsics", since = "1.59.0")
1763)]
1764#[cfg_attr(
1765    target_arch = "arm",
1766    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1767)]
1768pub fn vadd_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
1769    unsafe { simd_add(a, b) }
1770}
1771#[doc = "Vector add."]
1772#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vadd_u32)"]
1773#[inline]
1774#[target_feature(enable = "neon")]
1775#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1776#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vadd))]
1777#[cfg_attr(
1778    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1779    assert_instr(add)
1780)]
1781#[cfg_attr(
1782    not(target_arch = "arm"),
1783    stable(feature = "neon_intrinsics", since = "1.59.0")
1784)]
1785#[cfg_attr(
1786    target_arch = "arm",
1787    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1788)]
1789pub fn vadd_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
1790    unsafe { simd_add(a, b) }
1791}
1792#[doc = "Vector add."]
1793#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vadd_u8)"]
1794#[inline]
1795#[target_feature(enable = "neon")]
1796#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1797#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vadd))]
1798#[cfg_attr(
1799    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1800    assert_instr(add)
1801)]
1802#[cfg_attr(
1803    not(target_arch = "arm"),
1804    stable(feature = "neon_intrinsics", since = "1.59.0")
1805)]
1806#[cfg_attr(
1807    target_arch = "arm",
1808    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1809)]
1810pub fn vadd_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
1811    unsafe { simd_add(a, b) }
1812}
1813#[doc = "Vector add."]
1814#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddq_f32)"]
1815#[inline]
1816#[target_feature(enable = "neon")]
1817#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1818#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vadd))]
1819#[cfg_attr(
1820    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1821    assert_instr(fadd)
1822)]
1823#[cfg_attr(
1824    not(target_arch = "arm"),
1825    stable(feature = "neon_intrinsics", since = "1.59.0")
1826)]
1827#[cfg_attr(
1828    target_arch = "arm",
1829    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1830)]
1831pub fn vaddq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t {
1832    unsafe { simd_add(a, b) }
1833}
1834#[doc = "Vector add."]
1835#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddq_s16)"]
1836#[inline]
1837#[target_feature(enable = "neon")]
1838#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1839#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vadd))]
1840#[cfg_attr(
1841    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1842    assert_instr(add)
1843)]
1844#[cfg_attr(
1845    not(target_arch = "arm"),
1846    stable(feature = "neon_intrinsics", since = "1.59.0")
1847)]
1848#[cfg_attr(
1849    target_arch = "arm",
1850    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1851)]
1852pub fn vaddq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
1853    unsafe { simd_add(a, b) }
1854}
1855#[doc = "Vector add."]
1856#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddq_s32)"]
1857#[inline]
1858#[target_feature(enable = "neon")]
1859#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1860#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vadd))]
1861#[cfg_attr(
1862    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1863    assert_instr(add)
1864)]
1865#[cfg_attr(
1866    not(target_arch = "arm"),
1867    stable(feature = "neon_intrinsics", since = "1.59.0")
1868)]
1869#[cfg_attr(
1870    target_arch = "arm",
1871    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1872)]
1873pub fn vaddq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
1874    unsafe { simd_add(a, b) }
1875}
1876#[doc = "Vector add."]
1877#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddq_s64)"]
1878#[inline]
1879#[target_feature(enable = "neon")]
1880#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1881#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vadd))]
1882#[cfg_attr(
1883    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1884    assert_instr(add)
1885)]
1886#[cfg_attr(
1887    not(target_arch = "arm"),
1888    stable(feature = "neon_intrinsics", since = "1.59.0")
1889)]
1890#[cfg_attr(
1891    target_arch = "arm",
1892    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1893)]
1894pub fn vaddq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t {
1895    unsafe { simd_add(a, b) }
1896}
1897#[doc = "Vector add."]
1898#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddq_s8)"]
1899#[inline]
1900#[target_feature(enable = "neon")]
1901#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1902#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vadd))]
1903#[cfg_attr(
1904    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1905    assert_instr(add)
1906)]
1907#[cfg_attr(
1908    not(target_arch = "arm"),
1909    stable(feature = "neon_intrinsics", since = "1.59.0")
1910)]
1911#[cfg_attr(
1912    target_arch = "arm",
1913    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1914)]
1915pub fn vaddq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
1916    unsafe { simd_add(a, b) }
1917}
1918#[doc = "Vector add."]
1919#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddq_u16)"]
1920#[inline]
1921#[target_feature(enable = "neon")]
1922#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1923#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vadd))]
1924#[cfg_attr(
1925    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1926    assert_instr(add)
1927)]
1928#[cfg_attr(
1929    not(target_arch = "arm"),
1930    stable(feature = "neon_intrinsics", since = "1.59.0")
1931)]
1932#[cfg_attr(
1933    target_arch = "arm",
1934    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1935)]
1936pub fn vaddq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
1937    unsafe { simd_add(a, b) }
1938}
1939#[doc = "Vector add."]
1940#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddq_u32)"]
1941#[inline]
1942#[target_feature(enable = "neon")]
1943#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1944#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vadd))]
1945#[cfg_attr(
1946    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1947    assert_instr(add)
1948)]
1949#[cfg_attr(
1950    not(target_arch = "arm"),
1951    stable(feature = "neon_intrinsics", since = "1.59.0")
1952)]
1953#[cfg_attr(
1954    target_arch = "arm",
1955    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1956)]
1957pub fn vaddq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
1958    unsafe { simd_add(a, b) }
1959}
1960#[doc = "Vector add."]
1961#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddq_u64)"]
1962#[inline]
1963#[target_feature(enable = "neon")]
1964#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1965#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vadd))]
1966#[cfg_attr(
1967    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1968    assert_instr(add)
1969)]
1970#[cfg_attr(
1971    not(target_arch = "arm"),
1972    stable(feature = "neon_intrinsics", since = "1.59.0")
1973)]
1974#[cfg_attr(
1975    target_arch = "arm",
1976    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1977)]
1978pub fn vaddq_u64(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
1979    unsafe { simd_add(a, b) }
1980}
1981#[doc = "Vector add."]
1982#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddq_u8)"]
1983#[inline]
1984#[target_feature(enable = "neon")]
1985#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1986#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vadd))]
1987#[cfg_attr(
1988    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1989    assert_instr(add)
1990)]
1991#[cfg_attr(
1992    not(target_arch = "arm"),
1993    stable(feature = "neon_intrinsics", since = "1.59.0")
1994)]
1995#[cfg_attr(
1996    target_arch = "arm",
1997    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1998)]
1999pub fn vaddq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
2000    unsafe { simd_add(a, b) }
2001}
2002#[doc = "Bitwise exclusive OR"]
2003#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vadd_p8)"]
2004#[inline]
2005#[target_feature(enable = "neon")]
2006#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2007#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
2008#[cfg_attr(
2009    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2010    assert_instr(nop)
2011)]
2012#[cfg_attr(
2013    not(target_arch = "arm"),
2014    stable(feature = "neon_intrinsics", since = "1.59.0")
2015)]
2016#[cfg_attr(
2017    target_arch = "arm",
2018    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2019)]
2020pub fn vadd_p8(a: poly8x8_t, b: poly8x8_t) -> poly8x8_t {
2021    unsafe { simd_xor(a, b) }
2022}
2023#[doc = "Bitwise exclusive OR"]
2024#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddq_p8)"]
2025#[inline]
2026#[target_feature(enable = "neon")]
2027#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2028#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
2029#[cfg_attr(
2030    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2031    assert_instr(nop)
2032)]
2033#[cfg_attr(
2034    not(target_arch = "arm"),
2035    stable(feature = "neon_intrinsics", since = "1.59.0")
2036)]
2037#[cfg_attr(
2038    target_arch = "arm",
2039    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2040)]
2041pub fn vaddq_p8(a: poly8x16_t, b: poly8x16_t) -> poly8x16_t {
2042    unsafe { simd_xor(a, b) }
2043}
2044#[doc = "Bitwise exclusive OR"]
2045#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vadd_p16)"]
2046#[inline]
2047#[target_feature(enable = "neon")]
2048#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2049#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
2050#[cfg_attr(
2051    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2052    assert_instr(nop)
2053)]
2054#[cfg_attr(
2055    not(target_arch = "arm"),
2056    stable(feature = "neon_intrinsics", since = "1.59.0")
2057)]
2058#[cfg_attr(
2059    target_arch = "arm",
2060    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2061)]
2062pub fn vadd_p16(a: poly16x4_t, b: poly16x4_t) -> poly16x4_t {
2063    unsafe { simd_xor(a, b) }
2064}
2065#[doc = "Bitwise exclusive OR"]
2066#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddq_p16)"]
2067#[inline]
2068#[target_feature(enable = "neon")]
2069#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2070#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
2071#[cfg_attr(
2072    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2073    assert_instr(nop)
2074)]
2075#[cfg_attr(
2076    not(target_arch = "arm"),
2077    stable(feature = "neon_intrinsics", since = "1.59.0")
2078)]
2079#[cfg_attr(
2080    target_arch = "arm",
2081    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2082)]
2083pub fn vaddq_p16(a: poly16x8_t, b: poly16x8_t) -> poly16x8_t {
2084    unsafe { simd_xor(a, b) }
2085}
2086#[doc = "Bitwise exclusive OR"]
2087#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vadd_p64)"]
2088#[inline]
2089#[target_feature(enable = "neon")]
2090#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2091#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
2092#[cfg_attr(
2093    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2094    assert_instr(nop)
2095)]
2096#[cfg_attr(
2097    not(target_arch = "arm"),
2098    stable(feature = "neon_intrinsics", since = "1.59.0")
2099)]
2100#[cfg_attr(
2101    target_arch = "arm",
2102    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2103)]
2104pub fn vadd_p64(a: poly64x1_t, b: poly64x1_t) -> poly64x1_t {
2105    unsafe { simd_xor(a, b) }
2106}
2107#[doc = "Bitwise exclusive OR"]
2108#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddq_p64)"]
2109#[inline]
2110#[target_feature(enable = "neon")]
2111#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2112#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
2113#[cfg_attr(
2114    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2115    assert_instr(nop)
2116)]
2117#[cfg_attr(
2118    not(target_arch = "arm"),
2119    stable(feature = "neon_intrinsics", since = "1.59.0")
2120)]
2121#[cfg_attr(
2122    target_arch = "arm",
2123    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2124)]
2125pub fn vaddq_p64(a: poly64x2_t, b: poly64x2_t) -> poly64x2_t {
2126    unsafe { simd_xor(a, b) }
2127}
2128#[doc = "Add"]
2129#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddh_f16)"]
2130#[inline]
2131#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
2132#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vadd.f16"))]
2133#[cfg_attr(
2134    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2135    assert_instr(fadd)
2136)]
2137#[target_feature(enable = "neon,fp16")]
2138#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
2139#[cfg(not(target_arch = "arm64ec"))]
2140pub fn vaddh_f16(a: f16, b: f16) -> f16 {
2141    a + b
2142}
2143#[doc = "Add returning High Narrow (high half)."]
2144#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddhn_high_s16)"]
2145#[inline]
2146#[target_feature(enable = "neon")]
2147#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2148#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddhn))]
2149#[cfg_attr(
2150    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2151    assert_instr(addhn2)
2152)]
2153#[cfg_attr(
2154    not(target_arch = "arm"),
2155    stable(feature = "neon_intrinsics", since = "1.59.0")
2156)]
2157#[cfg_attr(
2158    target_arch = "arm",
2159    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2160)]
2161pub fn vaddhn_high_s16(r: int8x8_t, a: int16x8_t, b: int16x8_t) -> int8x16_t {
2162    unsafe {
2163        let x = simd_cast(simd_shr(simd_add(a, b), int16x8_t::splat(8)));
2164        simd_shuffle!(r, x, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15])
2165    }
2166}
2167#[doc = "Add returning High Narrow (high half)."]
2168#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddhn_high_s32)"]
2169#[inline]
2170#[target_feature(enable = "neon")]
2171#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2172#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddhn))]
2173#[cfg_attr(
2174    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2175    assert_instr(addhn2)
2176)]
2177#[cfg_attr(
2178    not(target_arch = "arm"),
2179    stable(feature = "neon_intrinsics", since = "1.59.0")
2180)]
2181#[cfg_attr(
2182    target_arch = "arm",
2183    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2184)]
2185pub fn vaddhn_high_s32(r: int16x4_t, a: int32x4_t, b: int32x4_t) -> int16x8_t {
2186    unsafe {
2187        let x = simd_cast(simd_shr(simd_add(a, b), int32x4_t::splat(16)));
2188        simd_shuffle!(r, x, [0, 1, 2, 3, 4, 5, 6, 7])
2189    }
2190}
2191#[doc = "Add returning High Narrow (high half)."]
2192#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddhn_high_s64)"]
2193#[inline]
2194#[target_feature(enable = "neon")]
2195#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2196#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddhn))]
2197#[cfg_attr(
2198    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2199    assert_instr(addhn2)
2200)]
2201#[cfg_attr(
2202    not(target_arch = "arm"),
2203    stable(feature = "neon_intrinsics", since = "1.59.0")
2204)]
2205#[cfg_attr(
2206    target_arch = "arm",
2207    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2208)]
2209pub fn vaddhn_high_s64(r: int32x2_t, a: int64x2_t, b: int64x2_t) -> int32x4_t {
2210    unsafe {
2211        let x = simd_cast(simd_shr(simd_add(a, b), int64x2_t::splat(32)));
2212        simd_shuffle!(r, x, [0, 1, 2, 3])
2213    }
2214}
2215#[doc = "Add returning High Narrow (high half)."]
2216#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddhn_high_u16)"]
2217#[inline]
2218#[target_feature(enable = "neon")]
2219#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2220#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddhn))]
2221#[cfg_attr(
2222    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2223    assert_instr(addhn2)
2224)]
2225#[cfg_attr(
2226    not(target_arch = "arm"),
2227    stable(feature = "neon_intrinsics", since = "1.59.0")
2228)]
2229#[cfg_attr(
2230    target_arch = "arm",
2231    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2232)]
2233pub fn vaddhn_high_u16(r: uint8x8_t, a: uint16x8_t, b: uint16x8_t) -> uint8x16_t {
2234    unsafe {
2235        let x = simd_cast(simd_shr(simd_add(a, b), uint16x8_t::splat(8)));
2236        simd_shuffle!(r, x, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15])
2237    }
2238}
2239#[doc = "Add returning High Narrow (high half)."]
2240#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddhn_high_u32)"]
2241#[inline]
2242#[target_feature(enable = "neon")]
2243#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2244#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddhn))]
2245#[cfg_attr(
2246    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2247    assert_instr(addhn2)
2248)]
2249#[cfg_attr(
2250    not(target_arch = "arm"),
2251    stable(feature = "neon_intrinsics", since = "1.59.0")
2252)]
2253#[cfg_attr(
2254    target_arch = "arm",
2255    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2256)]
2257pub fn vaddhn_high_u32(r: uint16x4_t, a: uint32x4_t, b: uint32x4_t) -> uint16x8_t {
2258    unsafe {
2259        let x = simd_cast(simd_shr(simd_add(a, b), uint32x4_t::splat(16)));
2260        simd_shuffle!(r, x, [0, 1, 2, 3, 4, 5, 6, 7])
2261    }
2262}
2263#[doc = "Add returning High Narrow (high half)."]
2264#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddhn_high_u64)"]
2265#[inline]
2266#[target_feature(enable = "neon")]
2267#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2268#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddhn))]
2269#[cfg_attr(
2270    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2271    assert_instr(addhn2)
2272)]
2273#[cfg_attr(
2274    not(target_arch = "arm"),
2275    stable(feature = "neon_intrinsics", since = "1.59.0")
2276)]
2277#[cfg_attr(
2278    target_arch = "arm",
2279    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2280)]
2281pub fn vaddhn_high_u64(r: uint32x2_t, a: uint64x2_t, b: uint64x2_t) -> uint32x4_t {
2282    unsafe {
2283        let x = simd_cast(simd_shr(simd_add(a, b), uint64x2_t::splat(32)));
2284        simd_shuffle!(r, x, [0, 1, 2, 3])
2285    }
2286}
2287#[doc = "Add returning High Narrow."]
2288#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddhn_s16)"]
2289#[inline]
2290#[target_feature(enable = "neon")]
2291#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2292#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddhn))]
2293#[cfg_attr(
2294    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2295    assert_instr(addhn)
2296)]
2297#[cfg_attr(
2298    not(target_arch = "arm"),
2299    stable(feature = "neon_intrinsics", since = "1.59.0")
2300)]
2301#[cfg_attr(
2302    target_arch = "arm",
2303    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2304)]
2305pub fn vaddhn_s16(a: int16x8_t, b: int16x8_t) -> int8x8_t {
2306    unsafe { simd_cast(simd_shr(simd_add(a, b), int16x8_t::splat(8))) }
2307}
2308#[doc = "Add returning High Narrow."]
2309#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddhn_s32)"]
2310#[inline]
2311#[target_feature(enable = "neon")]
2312#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2313#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddhn))]
2314#[cfg_attr(
2315    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2316    assert_instr(addhn)
2317)]
2318#[cfg_attr(
2319    not(target_arch = "arm"),
2320    stable(feature = "neon_intrinsics", since = "1.59.0")
2321)]
2322#[cfg_attr(
2323    target_arch = "arm",
2324    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2325)]
2326pub fn vaddhn_s32(a: int32x4_t, b: int32x4_t) -> int16x4_t {
2327    unsafe { simd_cast(simd_shr(simd_add(a, b), int32x4_t::splat(16))) }
2328}
2329#[doc = "Add returning High Narrow."]
2330#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddhn_s64)"]
2331#[inline]
2332#[target_feature(enable = "neon")]
2333#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2334#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddhn))]
2335#[cfg_attr(
2336    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2337    assert_instr(addhn)
2338)]
2339#[cfg_attr(
2340    not(target_arch = "arm"),
2341    stable(feature = "neon_intrinsics", since = "1.59.0")
2342)]
2343#[cfg_attr(
2344    target_arch = "arm",
2345    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2346)]
2347pub fn vaddhn_s64(a: int64x2_t, b: int64x2_t) -> int32x2_t {
2348    unsafe { simd_cast(simd_shr(simd_add(a, b), int64x2_t::splat(32))) }
2349}
2350#[doc = "Add returning High Narrow."]
2351#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddhn_u16)"]
2352#[inline]
2353#[target_feature(enable = "neon")]
2354#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2355#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddhn))]
2356#[cfg_attr(
2357    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2358    assert_instr(addhn)
2359)]
2360#[cfg_attr(
2361    not(target_arch = "arm"),
2362    stable(feature = "neon_intrinsics", since = "1.59.0")
2363)]
2364#[cfg_attr(
2365    target_arch = "arm",
2366    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2367)]
2368pub fn vaddhn_u16(a: uint16x8_t, b: uint16x8_t) -> uint8x8_t {
2369    unsafe { simd_cast(simd_shr(simd_add(a, b), uint16x8_t::splat(8))) }
2370}
2371#[doc = "Add returning High Narrow."]
2372#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddhn_u32)"]
2373#[inline]
2374#[target_feature(enable = "neon")]
2375#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2376#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddhn))]
2377#[cfg_attr(
2378    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2379    assert_instr(addhn)
2380)]
2381#[cfg_attr(
2382    not(target_arch = "arm"),
2383    stable(feature = "neon_intrinsics", since = "1.59.0")
2384)]
2385#[cfg_attr(
2386    target_arch = "arm",
2387    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2388)]
2389pub fn vaddhn_u32(a: uint32x4_t, b: uint32x4_t) -> uint16x4_t {
2390    unsafe { simd_cast(simd_shr(simd_add(a, b), uint32x4_t::splat(16))) }
2391}
2392#[doc = "Add returning High Narrow."]
2393#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddhn_u64)"]
2394#[inline]
2395#[target_feature(enable = "neon")]
2396#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2397#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddhn))]
2398#[cfg_attr(
2399    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2400    assert_instr(addhn)
2401)]
2402#[cfg_attr(
2403    not(target_arch = "arm"),
2404    stable(feature = "neon_intrinsics", since = "1.59.0")
2405)]
2406#[cfg_attr(
2407    target_arch = "arm",
2408    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2409)]
2410pub fn vaddhn_u64(a: uint64x2_t, b: uint64x2_t) -> uint32x2_t {
2411    unsafe { simd_cast(simd_shr(simd_add(a, b), uint64x2_t::splat(32))) }
2412}
2413#[doc = "Signed Add Long (vector, high half)."]
2414#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddl_high_s16)"]
2415#[inline]
2416#[target_feature(enable = "neon")]
2417#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2418#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddl))]
2419#[cfg_attr(
2420    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2421    assert_instr(saddl2)
2422)]
2423#[cfg_attr(
2424    not(target_arch = "arm"),
2425    stable(feature = "neon_intrinsics", since = "1.59.0")
2426)]
2427#[cfg_attr(
2428    target_arch = "arm",
2429    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2430)]
2431pub fn vaddl_high_s16(a: int16x8_t, b: int16x8_t) -> int32x4_t {
2432    unsafe {
2433        let a: int16x4_t = simd_shuffle!(a, a, [4, 5, 6, 7]);
2434        let b: int16x4_t = simd_shuffle!(b, b, [4, 5, 6, 7]);
2435        let a: int32x4_t = simd_cast(a);
2436        let b: int32x4_t = simd_cast(b);
2437        simd_add(a, b)
2438    }
2439}
2440#[doc = "Signed Add Long (vector, high half)."]
2441#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddl_high_s32)"]
2442#[inline]
2443#[target_feature(enable = "neon")]
2444#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2445#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddl))]
2446#[cfg_attr(
2447    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2448    assert_instr(saddl2)
2449)]
2450#[cfg_attr(
2451    not(target_arch = "arm"),
2452    stable(feature = "neon_intrinsics", since = "1.59.0")
2453)]
2454#[cfg_attr(
2455    target_arch = "arm",
2456    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2457)]
2458pub fn vaddl_high_s32(a: int32x4_t, b: int32x4_t) -> int64x2_t {
2459    unsafe {
2460        let a: int32x2_t = simd_shuffle!(a, a, [2, 3]);
2461        let b: int32x2_t = simd_shuffle!(b, b, [2, 3]);
2462        let a: int64x2_t = simd_cast(a);
2463        let b: int64x2_t = simd_cast(b);
2464        simd_add(a, b)
2465    }
2466}
2467#[doc = "Signed Add Long (vector, high half)."]
2468#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddl_high_s8)"]
2469#[inline]
2470#[target_feature(enable = "neon")]
2471#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2472#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddl))]
2473#[cfg_attr(
2474    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2475    assert_instr(saddl2)
2476)]
2477#[cfg_attr(
2478    not(target_arch = "arm"),
2479    stable(feature = "neon_intrinsics", since = "1.59.0")
2480)]
2481#[cfg_attr(
2482    target_arch = "arm",
2483    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2484)]
2485pub fn vaddl_high_s8(a: int8x16_t, b: int8x16_t) -> int16x8_t {
2486    unsafe {
2487        let a: int8x8_t = simd_shuffle!(a, a, [8, 9, 10, 11, 12, 13, 14, 15]);
2488        let b: int8x8_t = simd_shuffle!(b, b, [8, 9, 10, 11, 12, 13, 14, 15]);
2489        let a: int16x8_t = simd_cast(a);
2490        let b: int16x8_t = simd_cast(b);
2491        simd_add(a, b)
2492    }
2493}
2494#[doc = "Signed Add Long (vector, high half)."]
2495#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddl_high_u16)"]
2496#[inline]
2497#[target_feature(enable = "neon")]
2498#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2499#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddl))]
2500#[cfg_attr(
2501    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2502    assert_instr(uaddl2)
2503)]
2504#[cfg_attr(
2505    not(target_arch = "arm"),
2506    stable(feature = "neon_intrinsics", since = "1.59.0")
2507)]
2508#[cfg_attr(
2509    target_arch = "arm",
2510    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2511)]
2512pub fn vaddl_high_u16(a: uint16x8_t, b: uint16x8_t) -> uint32x4_t {
2513    unsafe {
2514        let a: uint16x4_t = simd_shuffle!(a, a, [4, 5, 6, 7]);
2515        let b: uint16x4_t = simd_shuffle!(b, b, [4, 5, 6, 7]);
2516        let a: uint32x4_t = simd_cast(a);
2517        let b: uint32x4_t = simd_cast(b);
2518        simd_add(a, b)
2519    }
2520}
2521#[doc = "Signed Add Long (vector, high half)."]
2522#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddl_high_u32)"]
2523#[inline]
2524#[target_feature(enable = "neon")]
2525#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2526#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddl))]
2527#[cfg_attr(
2528    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2529    assert_instr(uaddl2)
2530)]
2531#[cfg_attr(
2532    not(target_arch = "arm"),
2533    stable(feature = "neon_intrinsics", since = "1.59.0")
2534)]
2535#[cfg_attr(
2536    target_arch = "arm",
2537    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2538)]
2539pub fn vaddl_high_u32(a: uint32x4_t, b: uint32x4_t) -> uint64x2_t {
2540    unsafe {
2541        let a: uint32x2_t = simd_shuffle!(a, a, [2, 3]);
2542        let b: uint32x2_t = simd_shuffle!(b, b, [2, 3]);
2543        let a: uint64x2_t = simd_cast(a);
2544        let b: uint64x2_t = simd_cast(b);
2545        simd_add(a, b)
2546    }
2547}
2548#[doc = "Signed Add Long (vector, high half)."]
2549#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddl_high_u8)"]
2550#[inline]
2551#[target_feature(enable = "neon")]
2552#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2553#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddl))]
2554#[cfg_attr(
2555    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2556    assert_instr(uaddl2)
2557)]
2558#[cfg_attr(
2559    not(target_arch = "arm"),
2560    stable(feature = "neon_intrinsics", since = "1.59.0")
2561)]
2562#[cfg_attr(
2563    target_arch = "arm",
2564    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2565)]
2566pub fn vaddl_high_u8(a: uint8x16_t, b: uint8x16_t) -> uint16x8_t {
2567    unsafe {
2568        let a: uint8x8_t = simd_shuffle!(a, a, [8, 9, 10, 11, 12, 13, 14, 15]);
2569        let b: uint8x8_t = simd_shuffle!(b, b, [8, 9, 10, 11, 12, 13, 14, 15]);
2570        let a: uint16x8_t = simd_cast(a);
2571        let b: uint16x8_t = simd_cast(b);
2572        simd_add(a, b)
2573    }
2574}
2575#[doc = "Add Long (vector)."]
2576#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddl_s16)"]
2577#[inline]
2578#[target_feature(enable = "neon")]
2579#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2580#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddl))]
2581#[cfg_attr(
2582    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2583    assert_instr(saddl)
2584)]
2585#[cfg_attr(
2586    not(target_arch = "arm"),
2587    stable(feature = "neon_intrinsics", since = "1.59.0")
2588)]
2589#[cfg_attr(
2590    target_arch = "arm",
2591    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2592)]
2593pub fn vaddl_s16(a: int16x4_t, b: int16x4_t) -> int32x4_t {
2594    unsafe {
2595        let a: int32x4_t = simd_cast(a);
2596        let b: int32x4_t = simd_cast(b);
2597        simd_add(a, b)
2598    }
2599}
2600#[doc = "Add Long (vector)."]
2601#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddl_s32)"]
2602#[inline]
2603#[target_feature(enable = "neon")]
2604#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2605#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddl))]
2606#[cfg_attr(
2607    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2608    assert_instr(saddl)
2609)]
2610#[cfg_attr(
2611    not(target_arch = "arm"),
2612    stable(feature = "neon_intrinsics", since = "1.59.0")
2613)]
2614#[cfg_attr(
2615    target_arch = "arm",
2616    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2617)]
2618pub fn vaddl_s32(a: int32x2_t, b: int32x2_t) -> int64x2_t {
2619    unsafe {
2620        let a: int64x2_t = simd_cast(a);
2621        let b: int64x2_t = simd_cast(b);
2622        simd_add(a, b)
2623    }
2624}
2625#[doc = "Add Long (vector)."]
2626#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddl_s8)"]
2627#[inline]
2628#[target_feature(enable = "neon")]
2629#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2630#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddl))]
2631#[cfg_attr(
2632    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2633    assert_instr(saddl)
2634)]
2635#[cfg_attr(
2636    not(target_arch = "arm"),
2637    stable(feature = "neon_intrinsics", since = "1.59.0")
2638)]
2639#[cfg_attr(
2640    target_arch = "arm",
2641    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2642)]
2643pub fn vaddl_s8(a: int8x8_t, b: int8x8_t) -> int16x8_t {
2644    unsafe {
2645        let a: int16x8_t = simd_cast(a);
2646        let b: int16x8_t = simd_cast(b);
2647        simd_add(a, b)
2648    }
2649}
2650#[doc = "Add Long (vector)."]
2651#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddl_u16)"]
2652#[inline]
2653#[target_feature(enable = "neon")]
2654#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2655#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddl))]
2656#[cfg_attr(
2657    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2658    assert_instr(uaddl)
2659)]
2660#[cfg_attr(
2661    not(target_arch = "arm"),
2662    stable(feature = "neon_intrinsics", since = "1.59.0")
2663)]
2664#[cfg_attr(
2665    target_arch = "arm",
2666    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2667)]
2668pub fn vaddl_u16(a: uint16x4_t, b: uint16x4_t) -> uint32x4_t {
2669    unsafe {
2670        let a: uint32x4_t = simd_cast(a);
2671        let b: uint32x4_t = simd_cast(b);
2672        simd_add(a, b)
2673    }
2674}
2675#[doc = "Add Long (vector)."]
2676#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddl_u32)"]
2677#[inline]
2678#[target_feature(enable = "neon")]
2679#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2680#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddl))]
2681#[cfg_attr(
2682    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2683    assert_instr(uaddl)
2684)]
2685#[cfg_attr(
2686    not(target_arch = "arm"),
2687    stable(feature = "neon_intrinsics", since = "1.59.0")
2688)]
2689#[cfg_attr(
2690    target_arch = "arm",
2691    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2692)]
2693pub fn vaddl_u32(a: uint32x2_t, b: uint32x2_t) -> uint64x2_t {
2694    unsafe {
2695        let a: uint64x2_t = simd_cast(a);
2696        let b: uint64x2_t = simd_cast(b);
2697        simd_add(a, b)
2698    }
2699}
2700#[doc = "Add Long (vector)."]
2701#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddl_u8)"]
2702#[inline]
2703#[target_feature(enable = "neon")]
2704#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2705#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddl))]
2706#[cfg_attr(
2707    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2708    assert_instr(uaddl)
2709)]
2710#[cfg_attr(
2711    not(target_arch = "arm"),
2712    stable(feature = "neon_intrinsics", since = "1.59.0")
2713)]
2714#[cfg_attr(
2715    target_arch = "arm",
2716    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2717)]
2718pub fn vaddl_u8(a: uint8x8_t, b: uint8x8_t) -> uint16x8_t {
2719    unsafe {
2720        let a: uint16x8_t = simd_cast(a);
2721        let b: uint16x8_t = simd_cast(b);
2722        simd_add(a, b)
2723    }
2724}
2725#[doc = "Bitwise exclusive OR"]
2726#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddq_p128)"]
2727#[inline]
2728#[target_feature(enable = "neon")]
2729#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2730#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
2731#[cfg_attr(
2732    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2733    assert_instr(nop)
2734)]
2735#[cfg_attr(
2736    not(target_arch = "arm"),
2737    stable(feature = "neon_intrinsics", since = "1.59.0")
2738)]
2739#[cfg_attr(
2740    target_arch = "arm",
2741    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2742)]
2743pub fn vaddq_p128(a: p128, b: p128) -> p128 {
2744    a ^ b
2745}
2746#[doc = "Add Wide (high half)."]
2747#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddw_high_s16)"]
2748#[inline]
2749#[target_feature(enable = "neon")]
2750#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2751#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddw))]
2752#[cfg_attr(
2753    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2754    assert_instr(saddw2)
2755)]
2756#[cfg_attr(
2757    not(target_arch = "arm"),
2758    stable(feature = "neon_intrinsics", since = "1.59.0")
2759)]
2760#[cfg_attr(
2761    target_arch = "arm",
2762    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2763)]
2764pub fn vaddw_high_s16(a: int32x4_t, b: int16x8_t) -> int32x4_t {
2765    unsafe {
2766        let b: int16x4_t = simd_shuffle!(b, b, [4, 5, 6, 7]);
2767        let b: int32x4_t = simd_cast(b);
2768        simd_add(a, b)
2769    }
2770}
2771#[doc = "Add Wide (high half)."]
2772#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddw_high_s32)"]
2773#[inline]
2774#[target_feature(enable = "neon")]
2775#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2776#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddw))]
2777#[cfg_attr(
2778    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2779    assert_instr(saddw2)
2780)]
2781#[cfg_attr(
2782    not(target_arch = "arm"),
2783    stable(feature = "neon_intrinsics", since = "1.59.0")
2784)]
2785#[cfg_attr(
2786    target_arch = "arm",
2787    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2788)]
2789pub fn vaddw_high_s32(a: int64x2_t, b: int32x4_t) -> int64x2_t {
2790    unsafe {
2791        let b: int32x2_t = simd_shuffle!(b, b, [2, 3]);
2792        let b: int64x2_t = simd_cast(b);
2793        simd_add(a, b)
2794    }
2795}
2796#[doc = "Add Wide (high half)."]
2797#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddw_high_s8)"]
2798#[inline]
2799#[target_feature(enable = "neon")]
2800#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2801#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddw))]
2802#[cfg_attr(
2803    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2804    assert_instr(saddw2)
2805)]
2806#[cfg_attr(
2807    not(target_arch = "arm"),
2808    stable(feature = "neon_intrinsics", since = "1.59.0")
2809)]
2810#[cfg_attr(
2811    target_arch = "arm",
2812    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2813)]
2814pub fn vaddw_high_s8(a: int16x8_t, b: int8x16_t) -> int16x8_t {
2815    unsafe {
2816        let b: int8x8_t = simd_shuffle!(b, b, [8, 9, 10, 11, 12, 13, 14, 15]);
2817        let b: int16x8_t = simd_cast(b);
2818        simd_add(a, b)
2819    }
2820}
2821#[doc = "Add Wide (high half)."]
2822#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddw_high_u16)"]
2823#[inline]
2824#[target_feature(enable = "neon")]
2825#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2826#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddw))]
2827#[cfg_attr(
2828    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2829    assert_instr(uaddw2)
2830)]
2831#[cfg_attr(
2832    not(target_arch = "arm"),
2833    stable(feature = "neon_intrinsics", since = "1.59.0")
2834)]
2835#[cfg_attr(
2836    target_arch = "arm",
2837    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2838)]
2839pub fn vaddw_high_u16(a: uint32x4_t, b: uint16x8_t) -> uint32x4_t {
2840    unsafe {
2841        let b: uint16x4_t = simd_shuffle!(b, b, [4, 5, 6, 7]);
2842        let b: uint32x4_t = simd_cast(b);
2843        simd_add(a, b)
2844    }
2845}
2846#[doc = "Add Wide (high half)."]
2847#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddw_high_u32)"]
2848#[inline]
2849#[target_feature(enable = "neon")]
2850#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2851#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddw))]
2852#[cfg_attr(
2853    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2854    assert_instr(uaddw2)
2855)]
2856#[cfg_attr(
2857    not(target_arch = "arm"),
2858    stable(feature = "neon_intrinsics", since = "1.59.0")
2859)]
2860#[cfg_attr(
2861    target_arch = "arm",
2862    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2863)]
2864pub fn vaddw_high_u32(a: uint64x2_t, b: uint32x4_t) -> uint64x2_t {
2865    unsafe {
2866        let b: uint32x2_t = simd_shuffle!(b, b, [2, 3]);
2867        let b: uint64x2_t = simd_cast(b);
2868        simd_add(a, b)
2869    }
2870}
2871#[doc = "Add Wide (high half)."]
2872#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddw_high_u8)"]
2873#[inline]
2874#[target_feature(enable = "neon")]
2875#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2876#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddw))]
2877#[cfg_attr(
2878    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2879    assert_instr(uaddw2)
2880)]
2881#[cfg_attr(
2882    not(target_arch = "arm"),
2883    stable(feature = "neon_intrinsics", since = "1.59.0")
2884)]
2885#[cfg_attr(
2886    target_arch = "arm",
2887    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2888)]
2889pub fn vaddw_high_u8(a: uint16x8_t, b: uint8x16_t) -> uint16x8_t {
2890    unsafe {
2891        let b: uint8x8_t = simd_shuffle!(b, b, [8, 9, 10, 11, 12, 13, 14, 15]);
2892        let b: uint16x8_t = simd_cast(b);
2893        simd_add(a, b)
2894    }
2895}
2896#[doc = "Add Wide"]
2897#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddw_s16)"]
2898#[inline]
2899#[target_feature(enable = "neon")]
2900#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2901#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddw))]
2902#[cfg_attr(
2903    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2904    assert_instr(saddw)
2905)]
2906#[cfg_attr(
2907    not(target_arch = "arm"),
2908    stable(feature = "neon_intrinsics", since = "1.59.0")
2909)]
2910#[cfg_attr(
2911    target_arch = "arm",
2912    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2913)]
2914pub fn vaddw_s16(a: int32x4_t, b: int16x4_t) -> int32x4_t {
2915    unsafe {
2916        let b: int32x4_t = simd_cast(b);
2917        simd_add(a, b)
2918    }
2919}
2920#[doc = "Add Wide"]
2921#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddw_s32)"]
2922#[inline]
2923#[target_feature(enable = "neon")]
2924#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2925#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddw))]
2926#[cfg_attr(
2927    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2928    assert_instr(saddw)
2929)]
2930#[cfg_attr(
2931    not(target_arch = "arm"),
2932    stable(feature = "neon_intrinsics", since = "1.59.0")
2933)]
2934#[cfg_attr(
2935    target_arch = "arm",
2936    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2937)]
2938pub fn vaddw_s32(a: int64x2_t, b: int32x2_t) -> int64x2_t {
2939    unsafe {
2940        let b: int64x2_t = simd_cast(b);
2941        simd_add(a, b)
2942    }
2943}
2944#[doc = "Add Wide"]
2945#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddw_s8)"]
2946#[inline]
2947#[target_feature(enable = "neon")]
2948#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2949#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddw))]
2950#[cfg_attr(
2951    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2952    assert_instr(saddw)
2953)]
2954#[cfg_attr(
2955    not(target_arch = "arm"),
2956    stable(feature = "neon_intrinsics", since = "1.59.0")
2957)]
2958#[cfg_attr(
2959    target_arch = "arm",
2960    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2961)]
2962pub fn vaddw_s8(a: int16x8_t, b: int8x8_t) -> int16x8_t {
2963    unsafe {
2964        let b: int16x8_t = simd_cast(b);
2965        simd_add(a, b)
2966    }
2967}
2968#[doc = "Add Wide"]
2969#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddw_u16)"]
2970#[inline]
2971#[target_feature(enable = "neon")]
2972#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2973#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddw))]
2974#[cfg_attr(
2975    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2976    assert_instr(uaddw)
2977)]
2978#[cfg_attr(
2979    not(target_arch = "arm"),
2980    stable(feature = "neon_intrinsics", since = "1.59.0")
2981)]
2982#[cfg_attr(
2983    target_arch = "arm",
2984    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2985)]
2986pub fn vaddw_u16(a: uint32x4_t, b: uint16x4_t) -> uint32x4_t {
2987    unsafe {
2988        let b: uint32x4_t = simd_cast(b);
2989        simd_add(a, b)
2990    }
2991}
2992#[doc = "Add Wide"]
2993#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddw_u32)"]
2994#[inline]
2995#[target_feature(enable = "neon")]
2996#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2997#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddw))]
2998#[cfg_attr(
2999    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3000    assert_instr(uaddw)
3001)]
3002#[cfg_attr(
3003    not(target_arch = "arm"),
3004    stable(feature = "neon_intrinsics", since = "1.59.0")
3005)]
3006#[cfg_attr(
3007    target_arch = "arm",
3008    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3009)]
3010pub fn vaddw_u32(a: uint64x2_t, b: uint32x2_t) -> uint64x2_t {
3011    unsafe {
3012        let b: uint64x2_t = simd_cast(b);
3013        simd_add(a, b)
3014    }
3015}
3016#[doc = "Add Wide"]
3017#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddw_u8)"]
3018#[inline]
3019#[target_feature(enable = "neon")]
3020#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3021#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddw))]
3022#[cfg_attr(
3023    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3024    assert_instr(uaddw)
3025)]
3026#[cfg_attr(
3027    not(target_arch = "arm"),
3028    stable(feature = "neon_intrinsics", since = "1.59.0")
3029)]
3030#[cfg_attr(
3031    target_arch = "arm",
3032    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3033)]
3034pub fn vaddw_u8(a: uint16x8_t, b: uint8x8_t) -> uint16x8_t {
3035    unsafe {
3036        let b: uint16x8_t = simd_cast(b);
3037        simd_add(a, b)
3038    }
3039}
3040#[doc = "AES single round encryption."]
3041#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaesdq_u8)"]
3042#[inline]
3043#[target_feature(enable = "aes")]
3044#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
3045#[cfg_attr(test, assert_instr(aesd))]
3046#[cfg_attr(
3047    target_arch = "arm",
3048    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3049)]
3050#[cfg_attr(
3051    not(target_arch = "arm"),
3052    stable(feature = "aarch64_neon_crypto_intrinsics", since = "1.72.0")
3053)]
3054pub fn vaesdq_u8(data: uint8x16_t, key: uint8x16_t) -> uint8x16_t {
3055    unsafe extern "unadjusted" {
3056        #[cfg_attr(
3057            any(target_arch = "aarch64", target_arch = "arm64ec"),
3058            link_name = "llvm.aarch64.crypto.aesd"
3059        )]
3060        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.aesd")]
3061        fn _vaesdq_u8(data: uint8x16_t, key: uint8x16_t) -> uint8x16_t;
3062    }
3063    unsafe { _vaesdq_u8(data, key) }
3064}
3065#[doc = "AES single round encryption."]
3066#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaeseq_u8)"]
3067#[inline]
3068#[target_feature(enable = "aes")]
3069#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
3070#[cfg_attr(test, assert_instr(aese))]
3071#[cfg_attr(
3072    target_arch = "arm",
3073    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3074)]
3075#[cfg_attr(
3076    not(target_arch = "arm"),
3077    stable(feature = "aarch64_neon_crypto_intrinsics", since = "1.72.0")
3078)]
3079pub fn vaeseq_u8(data: uint8x16_t, key: uint8x16_t) -> uint8x16_t {
3080    unsafe extern "unadjusted" {
3081        #[cfg_attr(
3082            any(target_arch = "aarch64", target_arch = "arm64ec"),
3083            link_name = "llvm.aarch64.crypto.aese"
3084        )]
3085        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.aese")]
3086        fn _vaeseq_u8(data: uint8x16_t, key: uint8x16_t) -> uint8x16_t;
3087    }
3088    unsafe { _vaeseq_u8(data, key) }
3089}
3090#[doc = "AES inverse mix columns."]
3091#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaesimcq_u8)"]
3092#[inline]
3093#[target_feature(enable = "aes")]
3094#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
3095#[cfg_attr(test, assert_instr(aesimc))]
3096#[cfg_attr(
3097    target_arch = "arm",
3098    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3099)]
3100#[cfg_attr(
3101    not(target_arch = "arm"),
3102    stable(feature = "aarch64_neon_crypto_intrinsics", since = "1.72.0")
3103)]
3104pub fn vaesimcq_u8(data: uint8x16_t) -> uint8x16_t {
3105    unsafe extern "unadjusted" {
3106        #[cfg_attr(
3107            any(target_arch = "aarch64", target_arch = "arm64ec"),
3108            link_name = "llvm.aarch64.crypto.aesimc"
3109        )]
3110        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.aesimc")]
3111        fn _vaesimcq_u8(data: uint8x16_t) -> uint8x16_t;
3112    }
3113    unsafe { _vaesimcq_u8(data) }
3114}
3115#[doc = "AES mix columns."]
3116#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaesmcq_u8)"]
3117#[inline]
3118#[target_feature(enable = "aes")]
3119#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
3120#[cfg_attr(test, assert_instr(aesmc))]
3121#[cfg_attr(
3122    target_arch = "arm",
3123    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3124)]
3125#[cfg_attr(
3126    not(target_arch = "arm"),
3127    stable(feature = "aarch64_neon_crypto_intrinsics", since = "1.72.0")
3128)]
3129pub fn vaesmcq_u8(data: uint8x16_t) -> uint8x16_t {
3130    unsafe extern "unadjusted" {
3131        #[cfg_attr(
3132            any(target_arch = "aarch64", target_arch = "arm64ec"),
3133            link_name = "llvm.aarch64.crypto.aesmc"
3134        )]
3135        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.aesmc")]
3136        fn _vaesmcq_u8(data: uint8x16_t) -> uint8x16_t;
3137    }
3138    unsafe { _vaesmcq_u8(data) }
3139}
3140#[doc = "Vector bitwise and"]
3141#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vand_s8)"]
3142#[inline]
3143#[target_feature(enable = "neon")]
3144#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3145#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vand))]
3146#[cfg_attr(
3147    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3148    assert_instr(and)
3149)]
3150#[cfg_attr(
3151    not(target_arch = "arm"),
3152    stable(feature = "neon_intrinsics", since = "1.59.0")
3153)]
3154#[cfg_attr(
3155    target_arch = "arm",
3156    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3157)]
3158pub fn vand_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
3159    unsafe { simd_and(a, b) }
3160}
3161#[doc = "Vector bitwise and"]
3162#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vandq_s8)"]
3163#[inline]
3164#[target_feature(enable = "neon")]
3165#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3166#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vand))]
3167#[cfg_attr(
3168    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3169    assert_instr(and)
3170)]
3171#[cfg_attr(
3172    not(target_arch = "arm"),
3173    stable(feature = "neon_intrinsics", since = "1.59.0")
3174)]
3175#[cfg_attr(
3176    target_arch = "arm",
3177    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3178)]
3179pub fn vandq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
3180    unsafe { simd_and(a, b) }
3181}
3182#[doc = "Vector bitwise and"]
3183#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vand_s16)"]
3184#[inline]
3185#[target_feature(enable = "neon")]
3186#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3187#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vand))]
3188#[cfg_attr(
3189    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3190    assert_instr(and)
3191)]
3192#[cfg_attr(
3193    not(target_arch = "arm"),
3194    stable(feature = "neon_intrinsics", since = "1.59.0")
3195)]
3196#[cfg_attr(
3197    target_arch = "arm",
3198    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3199)]
3200pub fn vand_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
3201    unsafe { simd_and(a, b) }
3202}
3203#[doc = "Vector bitwise and"]
3204#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vandq_s16)"]
3205#[inline]
3206#[target_feature(enable = "neon")]
3207#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3208#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vand))]
3209#[cfg_attr(
3210    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3211    assert_instr(and)
3212)]
3213#[cfg_attr(
3214    not(target_arch = "arm"),
3215    stable(feature = "neon_intrinsics", since = "1.59.0")
3216)]
3217#[cfg_attr(
3218    target_arch = "arm",
3219    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3220)]
3221pub fn vandq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
3222    unsafe { simd_and(a, b) }
3223}
3224#[doc = "Vector bitwise and"]
3225#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vand_s32)"]
3226#[inline]
3227#[target_feature(enable = "neon")]
3228#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3229#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vand))]
3230#[cfg_attr(
3231    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3232    assert_instr(and)
3233)]
3234#[cfg_attr(
3235    not(target_arch = "arm"),
3236    stable(feature = "neon_intrinsics", since = "1.59.0")
3237)]
3238#[cfg_attr(
3239    target_arch = "arm",
3240    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3241)]
3242pub fn vand_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
3243    unsafe { simd_and(a, b) }
3244}
3245#[doc = "Vector bitwise and"]
3246#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vandq_s32)"]
3247#[inline]
3248#[target_feature(enable = "neon")]
3249#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3250#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vand))]
3251#[cfg_attr(
3252    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3253    assert_instr(and)
3254)]
3255#[cfg_attr(
3256    not(target_arch = "arm"),
3257    stable(feature = "neon_intrinsics", since = "1.59.0")
3258)]
3259#[cfg_attr(
3260    target_arch = "arm",
3261    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3262)]
3263pub fn vandq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
3264    unsafe { simd_and(a, b) }
3265}
3266#[doc = "Vector bitwise and"]
3267#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vand_s64)"]
3268#[inline]
3269#[target_feature(enable = "neon")]
3270#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3271#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vand))]
3272#[cfg_attr(
3273    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3274    assert_instr(and)
3275)]
3276#[cfg_attr(
3277    not(target_arch = "arm"),
3278    stable(feature = "neon_intrinsics", since = "1.59.0")
3279)]
3280#[cfg_attr(
3281    target_arch = "arm",
3282    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3283)]
3284pub fn vand_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t {
3285    unsafe { simd_and(a, b) }
3286}
3287#[doc = "Vector bitwise and"]
3288#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vandq_s64)"]
3289#[inline]
3290#[target_feature(enable = "neon")]
3291#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3292#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vand))]
3293#[cfg_attr(
3294    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3295    assert_instr(and)
3296)]
3297#[cfg_attr(
3298    not(target_arch = "arm"),
3299    stable(feature = "neon_intrinsics", since = "1.59.0")
3300)]
3301#[cfg_attr(
3302    target_arch = "arm",
3303    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3304)]
3305pub fn vandq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t {
3306    unsafe { simd_and(a, b) }
3307}
3308#[doc = "Vector bitwise and"]
3309#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vand_u8)"]
3310#[inline]
3311#[target_feature(enable = "neon")]
3312#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3313#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vand))]
3314#[cfg_attr(
3315    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3316    assert_instr(and)
3317)]
3318#[cfg_attr(
3319    not(target_arch = "arm"),
3320    stable(feature = "neon_intrinsics", since = "1.59.0")
3321)]
3322#[cfg_attr(
3323    target_arch = "arm",
3324    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3325)]
3326pub fn vand_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
3327    unsafe { simd_and(a, b) }
3328}
3329#[doc = "Vector bitwise and"]
3330#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vandq_u8)"]
3331#[inline]
3332#[target_feature(enable = "neon")]
3333#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3334#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vand))]
3335#[cfg_attr(
3336    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3337    assert_instr(and)
3338)]
3339#[cfg_attr(
3340    not(target_arch = "arm"),
3341    stable(feature = "neon_intrinsics", since = "1.59.0")
3342)]
3343#[cfg_attr(
3344    target_arch = "arm",
3345    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3346)]
3347pub fn vandq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
3348    unsafe { simd_and(a, b) }
3349}
3350#[doc = "Vector bitwise and"]
3351#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vand_u16)"]
3352#[inline]
3353#[target_feature(enable = "neon")]
3354#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3355#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vand))]
3356#[cfg_attr(
3357    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3358    assert_instr(and)
3359)]
3360#[cfg_attr(
3361    not(target_arch = "arm"),
3362    stable(feature = "neon_intrinsics", since = "1.59.0")
3363)]
3364#[cfg_attr(
3365    target_arch = "arm",
3366    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3367)]
3368pub fn vand_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
3369    unsafe { simd_and(a, b) }
3370}
3371#[doc = "Vector bitwise and"]
3372#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vandq_u16)"]
3373#[inline]
3374#[target_feature(enable = "neon")]
3375#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3376#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vand))]
3377#[cfg_attr(
3378    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3379    assert_instr(and)
3380)]
3381#[cfg_attr(
3382    not(target_arch = "arm"),
3383    stable(feature = "neon_intrinsics", since = "1.59.0")
3384)]
3385#[cfg_attr(
3386    target_arch = "arm",
3387    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3388)]
3389pub fn vandq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
3390    unsafe { simd_and(a, b) }
3391}
3392#[doc = "Vector bitwise and"]
3393#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vand_u32)"]
3394#[inline]
3395#[target_feature(enable = "neon")]
3396#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3397#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vand))]
3398#[cfg_attr(
3399    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3400    assert_instr(and)
3401)]
3402#[cfg_attr(
3403    not(target_arch = "arm"),
3404    stable(feature = "neon_intrinsics", since = "1.59.0")
3405)]
3406#[cfg_attr(
3407    target_arch = "arm",
3408    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3409)]
3410pub fn vand_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
3411    unsafe { simd_and(a, b) }
3412}
3413#[doc = "Vector bitwise and"]
3414#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vandq_u32)"]
3415#[inline]
3416#[target_feature(enable = "neon")]
3417#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3418#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vand))]
3419#[cfg_attr(
3420    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3421    assert_instr(and)
3422)]
3423#[cfg_attr(
3424    not(target_arch = "arm"),
3425    stable(feature = "neon_intrinsics", since = "1.59.0")
3426)]
3427#[cfg_attr(
3428    target_arch = "arm",
3429    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3430)]
3431pub fn vandq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
3432    unsafe { simd_and(a, b) }
3433}
3434#[doc = "Vector bitwise and"]
3435#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vand_u64)"]
3436#[inline]
3437#[target_feature(enable = "neon")]
3438#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3439#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vand))]
3440#[cfg_attr(
3441    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3442    assert_instr(and)
3443)]
3444#[cfg_attr(
3445    not(target_arch = "arm"),
3446    stable(feature = "neon_intrinsics", since = "1.59.0")
3447)]
3448#[cfg_attr(
3449    target_arch = "arm",
3450    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3451)]
3452pub fn vand_u64(a: uint64x1_t, b: uint64x1_t) -> uint64x1_t {
3453    unsafe { simd_and(a, b) }
3454}
3455#[doc = "Vector bitwise and"]
3456#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vandq_u64)"]
3457#[inline]
3458#[target_feature(enable = "neon")]
3459#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3460#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vand))]
3461#[cfg_attr(
3462    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3463    assert_instr(and)
3464)]
3465#[cfg_attr(
3466    not(target_arch = "arm"),
3467    stable(feature = "neon_intrinsics", since = "1.59.0")
3468)]
3469#[cfg_attr(
3470    target_arch = "arm",
3471    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3472)]
3473pub fn vandq_u64(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
3474    unsafe { simd_and(a, b) }
3475}
3476#[doc = "Vector bitwise bit clear."]
3477#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbic_s16)"]
3478#[inline]
3479#[target_feature(enable = "neon")]
3480#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3481#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbic))]
3482#[cfg_attr(
3483    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3484    assert_instr(bic)
3485)]
3486#[cfg_attr(
3487    not(target_arch = "arm"),
3488    stable(feature = "neon_intrinsics", since = "1.59.0")
3489)]
3490#[cfg_attr(
3491    target_arch = "arm",
3492    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3493)]
3494pub fn vbic_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
3495    let c = int16x4_t::splat(-1);
3496    unsafe { simd_and(simd_xor(b, c), a) }
3497}
3498#[doc = "Vector bitwise bit clear."]
3499#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbic_s32)"]
3500#[inline]
3501#[target_feature(enable = "neon")]
3502#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3503#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbic))]
3504#[cfg_attr(
3505    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3506    assert_instr(bic)
3507)]
3508#[cfg_attr(
3509    not(target_arch = "arm"),
3510    stable(feature = "neon_intrinsics", since = "1.59.0")
3511)]
3512#[cfg_attr(
3513    target_arch = "arm",
3514    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3515)]
3516pub fn vbic_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
3517    let c = int32x2_t::splat(-1);
3518    unsafe { simd_and(simd_xor(b, c), a) }
3519}
3520#[doc = "Vector bitwise bit clear."]
3521#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbic_s64)"]
3522#[inline]
3523#[target_feature(enable = "neon")]
3524#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3525#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbic))]
3526#[cfg_attr(
3527    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3528    assert_instr(bic)
3529)]
3530#[cfg_attr(
3531    not(target_arch = "arm"),
3532    stable(feature = "neon_intrinsics", since = "1.59.0")
3533)]
3534#[cfg_attr(
3535    target_arch = "arm",
3536    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3537)]
3538pub fn vbic_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t {
3539    let c = int64x1_t::splat(-1);
3540    unsafe { simd_and(simd_xor(b, c), a) }
3541}
3542#[doc = "Vector bitwise bit clear."]
3543#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbic_s8)"]
3544#[inline]
3545#[target_feature(enable = "neon")]
3546#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3547#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbic))]
3548#[cfg_attr(
3549    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3550    assert_instr(bic)
3551)]
3552#[cfg_attr(
3553    not(target_arch = "arm"),
3554    stable(feature = "neon_intrinsics", since = "1.59.0")
3555)]
3556#[cfg_attr(
3557    target_arch = "arm",
3558    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3559)]
3560pub fn vbic_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
3561    let c = int8x8_t::splat(-1);
3562    unsafe { simd_and(simd_xor(b, c), a) }
3563}
3564#[doc = "Vector bitwise bit clear."]
3565#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbicq_s16)"]
3566#[inline]
3567#[target_feature(enable = "neon")]
3568#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3569#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbic))]
3570#[cfg_attr(
3571    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3572    assert_instr(bic)
3573)]
3574#[cfg_attr(
3575    not(target_arch = "arm"),
3576    stable(feature = "neon_intrinsics", since = "1.59.0")
3577)]
3578#[cfg_attr(
3579    target_arch = "arm",
3580    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3581)]
3582pub fn vbicq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
3583    let c = int16x8_t::splat(-1);
3584    unsafe { simd_and(simd_xor(b, c), a) }
3585}
3586#[doc = "Vector bitwise bit clear."]
3587#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbicq_s32)"]
3588#[inline]
3589#[target_feature(enable = "neon")]
3590#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3591#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbic))]
3592#[cfg_attr(
3593    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3594    assert_instr(bic)
3595)]
3596#[cfg_attr(
3597    not(target_arch = "arm"),
3598    stable(feature = "neon_intrinsics", since = "1.59.0")
3599)]
3600#[cfg_attr(
3601    target_arch = "arm",
3602    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3603)]
3604pub fn vbicq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
3605    let c = int32x4_t::splat(-1);
3606    unsafe { simd_and(simd_xor(b, c), a) }
3607}
3608#[doc = "Vector bitwise bit clear."]
3609#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbicq_s64)"]
3610#[inline]
3611#[target_feature(enable = "neon")]
3612#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3613#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbic))]
3614#[cfg_attr(
3615    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3616    assert_instr(bic)
3617)]
3618#[cfg_attr(
3619    not(target_arch = "arm"),
3620    stable(feature = "neon_intrinsics", since = "1.59.0")
3621)]
3622#[cfg_attr(
3623    target_arch = "arm",
3624    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3625)]
3626pub fn vbicq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t {
3627    let c = int64x2_t::splat(-1);
3628    unsafe { simd_and(simd_xor(b, c), a) }
3629}
3630#[doc = "Vector bitwise bit clear."]
3631#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbicq_s8)"]
3632#[inline]
3633#[target_feature(enable = "neon")]
3634#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3635#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbic))]
3636#[cfg_attr(
3637    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3638    assert_instr(bic)
3639)]
3640#[cfg_attr(
3641    not(target_arch = "arm"),
3642    stable(feature = "neon_intrinsics", since = "1.59.0")
3643)]
3644#[cfg_attr(
3645    target_arch = "arm",
3646    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3647)]
3648pub fn vbicq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
3649    let c = int8x16_t::splat(-1);
3650    unsafe { simd_and(simd_xor(b, c), a) }
3651}
3652#[doc = "Vector bitwise bit clear."]
3653#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbic_u16)"]
3654#[inline]
3655#[target_feature(enable = "neon")]
3656#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3657#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbic))]
3658#[cfg_attr(
3659    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3660    assert_instr(bic)
3661)]
3662#[cfg_attr(
3663    not(target_arch = "arm"),
3664    stable(feature = "neon_intrinsics", since = "1.59.0")
3665)]
3666#[cfg_attr(
3667    target_arch = "arm",
3668    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3669)]
3670pub fn vbic_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
3671    let c = int16x4_t::splat(-1);
3672    unsafe { simd_and(simd_xor(b, transmute(c)), a) }
3673}
3674#[doc = "Vector bitwise bit clear."]
3675#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbic_u32)"]
3676#[inline]
3677#[target_feature(enable = "neon")]
3678#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3679#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbic))]
3680#[cfg_attr(
3681    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3682    assert_instr(bic)
3683)]
3684#[cfg_attr(
3685    not(target_arch = "arm"),
3686    stable(feature = "neon_intrinsics", since = "1.59.0")
3687)]
3688#[cfg_attr(
3689    target_arch = "arm",
3690    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3691)]
3692pub fn vbic_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
3693    let c = int32x2_t::splat(-1);
3694    unsafe { simd_and(simd_xor(b, transmute(c)), a) }
3695}
3696#[doc = "Vector bitwise bit clear."]
3697#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbic_u64)"]
3698#[inline]
3699#[target_feature(enable = "neon")]
3700#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3701#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbic))]
3702#[cfg_attr(
3703    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3704    assert_instr(bic)
3705)]
3706#[cfg_attr(
3707    not(target_arch = "arm"),
3708    stable(feature = "neon_intrinsics", since = "1.59.0")
3709)]
3710#[cfg_attr(
3711    target_arch = "arm",
3712    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3713)]
3714pub fn vbic_u64(a: uint64x1_t, b: uint64x1_t) -> uint64x1_t {
3715    let c = int64x1_t::splat(-1);
3716    unsafe { simd_and(simd_xor(b, transmute(c)), a) }
3717}
3718#[doc = "Vector bitwise bit clear."]
3719#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbic_u8)"]
3720#[inline]
3721#[target_feature(enable = "neon")]
3722#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3723#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbic))]
3724#[cfg_attr(
3725    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3726    assert_instr(bic)
3727)]
3728#[cfg_attr(
3729    not(target_arch = "arm"),
3730    stable(feature = "neon_intrinsics", since = "1.59.0")
3731)]
3732#[cfg_attr(
3733    target_arch = "arm",
3734    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3735)]
3736pub fn vbic_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
3737    let c = int8x8_t::splat(-1);
3738    unsafe { simd_and(simd_xor(b, transmute(c)), a) }
3739}
3740#[doc = "Vector bitwise bit clear."]
3741#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbicq_u16)"]
3742#[inline]
3743#[target_feature(enable = "neon")]
3744#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3745#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbic))]
3746#[cfg_attr(
3747    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3748    assert_instr(bic)
3749)]
3750#[cfg_attr(
3751    not(target_arch = "arm"),
3752    stable(feature = "neon_intrinsics", since = "1.59.0")
3753)]
3754#[cfg_attr(
3755    target_arch = "arm",
3756    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3757)]
3758pub fn vbicq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
3759    let c = int16x8_t::splat(-1);
3760    unsafe { simd_and(simd_xor(b, transmute(c)), a) }
3761}
3762#[doc = "Vector bitwise bit clear."]
3763#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbicq_u32)"]
3764#[inline]
3765#[target_feature(enable = "neon")]
3766#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3767#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbic))]
3768#[cfg_attr(
3769    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3770    assert_instr(bic)
3771)]
3772#[cfg_attr(
3773    not(target_arch = "arm"),
3774    stable(feature = "neon_intrinsics", since = "1.59.0")
3775)]
3776#[cfg_attr(
3777    target_arch = "arm",
3778    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3779)]
3780pub fn vbicq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
3781    let c = int32x4_t::splat(-1);
3782    unsafe { simd_and(simd_xor(b, transmute(c)), a) }
3783}
3784#[doc = "Vector bitwise bit clear."]
3785#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbicq_u64)"]
3786#[inline]
3787#[target_feature(enable = "neon")]
3788#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3789#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbic))]
3790#[cfg_attr(
3791    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3792    assert_instr(bic)
3793)]
3794#[cfg_attr(
3795    not(target_arch = "arm"),
3796    stable(feature = "neon_intrinsics", since = "1.59.0")
3797)]
3798#[cfg_attr(
3799    target_arch = "arm",
3800    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3801)]
3802pub fn vbicq_u64(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
3803    let c = int64x2_t::splat(-1);
3804    unsafe { simd_and(simd_xor(b, transmute(c)), a) }
3805}
3806#[doc = "Vector bitwise bit clear."]
3807#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbicq_u8)"]
3808#[inline]
3809#[target_feature(enable = "neon")]
3810#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3811#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbic))]
3812#[cfg_attr(
3813    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3814    assert_instr(bic)
3815)]
3816#[cfg_attr(
3817    not(target_arch = "arm"),
3818    stable(feature = "neon_intrinsics", since = "1.59.0")
3819)]
3820#[cfg_attr(
3821    target_arch = "arm",
3822    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3823)]
3824pub fn vbicq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
3825    let c = int8x16_t::splat(-1);
3826    unsafe { simd_and(simd_xor(b, transmute(c)), a) }
3827}
3828#[doc = "Bitwise Select."]
3829#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbsl_f16)"]
3830#[inline]
3831#[target_feature(enable = "neon,fp16")]
3832#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3833#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbsl))]
3834#[cfg_attr(
3835    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3836    assert_instr(bsl)
3837)]
3838#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
3839#[cfg(not(target_arch = "arm64ec"))]
3840pub fn vbsl_f16(a: uint16x4_t, b: float16x4_t, c: float16x4_t) -> float16x4_t {
3841    let not = int16x4_t::splat(-1);
3842    unsafe {
3843        transmute(simd_or(
3844            simd_and(a, transmute(b)),
3845            simd_and(simd_xor(a, transmute(not)), transmute(c)),
3846        ))
3847    }
3848}
3849#[doc = "Bitwise Select."]
3850#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbslq_f16)"]
3851#[inline]
3852#[target_feature(enable = "neon,fp16")]
3853#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3854#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbsl))]
3855#[cfg_attr(
3856    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3857    assert_instr(bsl)
3858)]
3859#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
3860#[cfg(not(target_arch = "arm64ec"))]
3861pub fn vbslq_f16(a: uint16x8_t, b: float16x8_t, c: float16x8_t) -> float16x8_t {
3862    let not = int16x8_t::splat(-1);
3863    unsafe {
3864        transmute(simd_or(
3865            simd_and(a, transmute(b)),
3866            simd_and(simd_xor(a, transmute(not)), transmute(c)),
3867        ))
3868    }
3869}
3870#[doc = "Bitwise Select."]
3871#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbsl_f32)"]
3872#[inline]
3873#[target_feature(enable = "neon")]
3874#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3875#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbsl))]
3876#[cfg_attr(
3877    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3878    assert_instr(bsl)
3879)]
3880#[cfg_attr(
3881    not(target_arch = "arm"),
3882    stable(feature = "neon_intrinsics", since = "1.59.0")
3883)]
3884#[cfg_attr(
3885    target_arch = "arm",
3886    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3887)]
3888pub fn vbsl_f32(a: uint32x2_t, b: float32x2_t, c: float32x2_t) -> float32x2_t {
3889    let not = int32x2_t::splat(-1);
3890    unsafe {
3891        transmute(simd_or(
3892            simd_and(a, transmute(b)),
3893            simd_and(simd_xor(a, transmute(not)), transmute(c)),
3894        ))
3895    }
3896}
3897#[doc = "Bitwise Select."]
3898#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbsl_p16)"]
3899#[inline]
3900#[target_feature(enable = "neon")]
3901#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3902#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbsl))]
3903#[cfg_attr(
3904    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3905    assert_instr(bsl)
3906)]
3907#[cfg_attr(
3908    not(target_arch = "arm"),
3909    stable(feature = "neon_intrinsics", since = "1.59.0")
3910)]
3911#[cfg_attr(
3912    target_arch = "arm",
3913    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3914)]
3915pub fn vbsl_p16(a: uint16x4_t, b: poly16x4_t, c: poly16x4_t) -> poly16x4_t {
3916    let not = int16x4_t::splat(-1);
3917    unsafe {
3918        transmute(simd_or(
3919            simd_and(a, transmute(b)),
3920            simd_and(simd_xor(a, transmute(not)), transmute(c)),
3921        ))
3922    }
3923}
3924#[doc = "Bitwise Select."]
3925#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbsl_p8)"]
3926#[inline]
3927#[target_feature(enable = "neon")]
3928#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3929#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbsl))]
3930#[cfg_attr(
3931    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3932    assert_instr(bsl)
3933)]
3934#[cfg_attr(
3935    not(target_arch = "arm"),
3936    stable(feature = "neon_intrinsics", since = "1.59.0")
3937)]
3938#[cfg_attr(
3939    target_arch = "arm",
3940    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3941)]
3942pub fn vbsl_p8(a: uint8x8_t, b: poly8x8_t, c: poly8x8_t) -> poly8x8_t {
3943    let not = int8x8_t::splat(-1);
3944    unsafe {
3945        transmute(simd_or(
3946            simd_and(a, transmute(b)),
3947            simd_and(simd_xor(a, transmute(not)), transmute(c)),
3948        ))
3949    }
3950}
3951#[doc = "Bitwise Select."]
3952#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbsl_s16)"]
3953#[inline]
3954#[target_feature(enable = "neon")]
3955#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3956#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbsl))]
3957#[cfg_attr(
3958    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3959    assert_instr(bsl)
3960)]
3961#[cfg_attr(
3962    not(target_arch = "arm"),
3963    stable(feature = "neon_intrinsics", since = "1.59.0")
3964)]
3965#[cfg_attr(
3966    target_arch = "arm",
3967    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3968)]
3969pub fn vbsl_s16(a: uint16x4_t, b: int16x4_t, c: int16x4_t) -> int16x4_t {
3970    let not = int16x4_t::splat(-1);
3971    unsafe {
3972        transmute(simd_or(
3973            simd_and(a, transmute(b)),
3974            simd_and(simd_xor(a, transmute(not)), transmute(c)),
3975        ))
3976    }
3977}
3978#[doc = "Bitwise Select."]
3979#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbsl_s32)"]
3980#[inline]
3981#[target_feature(enable = "neon")]
3982#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3983#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbsl))]
3984#[cfg_attr(
3985    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3986    assert_instr(bsl)
3987)]
3988#[cfg_attr(
3989    not(target_arch = "arm"),
3990    stable(feature = "neon_intrinsics", since = "1.59.0")
3991)]
3992#[cfg_attr(
3993    target_arch = "arm",
3994    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3995)]
3996pub fn vbsl_s32(a: uint32x2_t, b: int32x2_t, c: int32x2_t) -> int32x2_t {
3997    let not = int32x2_t::splat(-1);
3998    unsafe {
3999        transmute(simd_or(
4000            simd_and(a, transmute(b)),
4001            simd_and(simd_xor(a, transmute(not)), transmute(c)),
4002        ))
4003    }
4004}
4005#[doc = "Bitwise Select."]
4006#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbsl_s64)"]
4007#[inline]
4008#[target_feature(enable = "neon")]
4009#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4010#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbsl))]
4011#[cfg_attr(
4012    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4013    assert_instr(bsl)
4014)]
4015#[cfg_attr(
4016    not(target_arch = "arm"),
4017    stable(feature = "neon_intrinsics", since = "1.59.0")
4018)]
4019#[cfg_attr(
4020    target_arch = "arm",
4021    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4022)]
4023pub fn vbsl_s64(a: uint64x1_t, b: int64x1_t, c: int64x1_t) -> int64x1_t {
4024    let not = int64x1_t::splat(-1);
4025    unsafe {
4026        transmute(simd_or(
4027            simd_and(a, transmute(b)),
4028            simd_and(simd_xor(a, transmute(not)), transmute(c)),
4029        ))
4030    }
4031}
4032#[doc = "Bitwise Select."]
4033#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbsl_s8)"]
4034#[inline]
4035#[target_feature(enable = "neon")]
4036#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4037#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbsl))]
4038#[cfg_attr(
4039    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4040    assert_instr(bsl)
4041)]
4042#[cfg_attr(
4043    not(target_arch = "arm"),
4044    stable(feature = "neon_intrinsics", since = "1.59.0")
4045)]
4046#[cfg_attr(
4047    target_arch = "arm",
4048    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4049)]
4050pub fn vbsl_s8(a: uint8x8_t, b: int8x8_t, c: int8x8_t) -> int8x8_t {
4051    let not = int8x8_t::splat(-1);
4052    unsafe {
4053        transmute(simd_or(
4054            simd_and(a, transmute(b)),
4055            simd_and(simd_xor(a, transmute(not)), transmute(c)),
4056        ))
4057    }
4058}
4059#[doc = "Bitwise Select."]
4060#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbslq_f32)"]
4061#[inline]
4062#[target_feature(enable = "neon")]
4063#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4064#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbsl))]
4065#[cfg_attr(
4066    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4067    assert_instr(bsl)
4068)]
4069#[cfg_attr(
4070    not(target_arch = "arm"),
4071    stable(feature = "neon_intrinsics", since = "1.59.0")
4072)]
4073#[cfg_attr(
4074    target_arch = "arm",
4075    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4076)]
4077pub fn vbslq_f32(a: uint32x4_t, b: float32x4_t, c: float32x4_t) -> float32x4_t {
4078    let not = int32x4_t::splat(-1);
4079    unsafe {
4080        transmute(simd_or(
4081            simd_and(a, transmute(b)),
4082            simd_and(simd_xor(a, transmute(not)), transmute(c)),
4083        ))
4084    }
4085}
4086#[doc = "Bitwise Select."]
4087#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbslq_p16)"]
4088#[inline]
4089#[target_feature(enable = "neon")]
4090#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4091#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbsl))]
4092#[cfg_attr(
4093    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4094    assert_instr(bsl)
4095)]
4096#[cfg_attr(
4097    not(target_arch = "arm"),
4098    stable(feature = "neon_intrinsics", since = "1.59.0")
4099)]
4100#[cfg_attr(
4101    target_arch = "arm",
4102    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4103)]
4104pub fn vbslq_p16(a: uint16x8_t, b: poly16x8_t, c: poly16x8_t) -> poly16x8_t {
4105    let not = int16x8_t::splat(-1);
4106    unsafe {
4107        transmute(simd_or(
4108            simd_and(a, transmute(b)),
4109            simd_and(simd_xor(a, transmute(not)), transmute(c)),
4110        ))
4111    }
4112}
4113#[doc = "Bitwise Select."]
4114#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbslq_p8)"]
4115#[inline]
4116#[target_feature(enable = "neon")]
4117#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4118#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbsl))]
4119#[cfg_attr(
4120    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4121    assert_instr(bsl)
4122)]
4123#[cfg_attr(
4124    not(target_arch = "arm"),
4125    stable(feature = "neon_intrinsics", since = "1.59.0")
4126)]
4127#[cfg_attr(
4128    target_arch = "arm",
4129    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4130)]
4131pub fn vbslq_p8(a: uint8x16_t, b: poly8x16_t, c: poly8x16_t) -> poly8x16_t {
4132    let not = int8x16_t::splat(-1);
4133    unsafe {
4134        transmute(simd_or(
4135            simd_and(a, transmute(b)),
4136            simd_and(simd_xor(a, transmute(not)), transmute(c)),
4137        ))
4138    }
4139}
4140#[doc = "Bitwise Select."]
4141#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbslq_s16)"]
4142#[inline]
4143#[target_feature(enable = "neon")]
4144#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4145#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbsl))]
4146#[cfg_attr(
4147    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4148    assert_instr(bsl)
4149)]
4150#[cfg_attr(
4151    not(target_arch = "arm"),
4152    stable(feature = "neon_intrinsics", since = "1.59.0")
4153)]
4154#[cfg_attr(
4155    target_arch = "arm",
4156    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4157)]
4158pub fn vbslq_s16(a: uint16x8_t, b: int16x8_t, c: int16x8_t) -> int16x8_t {
4159    let not = int16x8_t::splat(-1);
4160    unsafe {
4161        transmute(simd_or(
4162            simd_and(a, transmute(b)),
4163            simd_and(simd_xor(a, transmute(not)), transmute(c)),
4164        ))
4165    }
4166}
4167#[doc = "Bitwise Select."]
4168#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbslq_s32)"]
4169#[inline]
4170#[target_feature(enable = "neon")]
4171#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4172#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbsl))]
4173#[cfg_attr(
4174    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4175    assert_instr(bsl)
4176)]
4177#[cfg_attr(
4178    not(target_arch = "arm"),
4179    stable(feature = "neon_intrinsics", since = "1.59.0")
4180)]
4181#[cfg_attr(
4182    target_arch = "arm",
4183    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4184)]
4185pub fn vbslq_s32(a: uint32x4_t, b: int32x4_t, c: int32x4_t) -> int32x4_t {
4186    let not = int32x4_t::splat(-1);
4187    unsafe {
4188        transmute(simd_or(
4189            simd_and(a, transmute(b)),
4190            simd_and(simd_xor(a, transmute(not)), transmute(c)),
4191        ))
4192    }
4193}
4194#[doc = "Bitwise Select."]
4195#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbslq_s64)"]
4196#[inline]
4197#[target_feature(enable = "neon")]
4198#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4199#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbsl))]
4200#[cfg_attr(
4201    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4202    assert_instr(bsl)
4203)]
4204#[cfg_attr(
4205    not(target_arch = "arm"),
4206    stable(feature = "neon_intrinsics", since = "1.59.0")
4207)]
4208#[cfg_attr(
4209    target_arch = "arm",
4210    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4211)]
4212pub fn vbslq_s64(a: uint64x2_t, b: int64x2_t, c: int64x2_t) -> int64x2_t {
4213    let not = int64x2_t::splat(-1);
4214    unsafe {
4215        transmute(simd_or(
4216            simd_and(a, transmute(b)),
4217            simd_and(simd_xor(a, transmute(not)), transmute(c)),
4218        ))
4219    }
4220}
4221#[doc = "Bitwise Select."]
4222#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbslq_s8)"]
4223#[inline]
4224#[target_feature(enable = "neon")]
4225#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4226#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbsl))]
4227#[cfg_attr(
4228    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4229    assert_instr(bsl)
4230)]
4231#[cfg_attr(
4232    not(target_arch = "arm"),
4233    stable(feature = "neon_intrinsics", since = "1.59.0")
4234)]
4235#[cfg_attr(
4236    target_arch = "arm",
4237    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4238)]
4239pub fn vbslq_s8(a: uint8x16_t, b: int8x16_t, c: int8x16_t) -> int8x16_t {
4240    let not = int8x16_t::splat(-1);
4241    unsafe {
4242        transmute(simd_or(
4243            simd_and(a, transmute(b)),
4244            simd_and(simd_xor(a, transmute(not)), transmute(c)),
4245        ))
4246    }
4247}
4248#[doc = "Bitwise Select."]
4249#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbsl_u16)"]
4250#[inline]
4251#[target_feature(enable = "neon")]
4252#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4253#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbsl))]
4254#[cfg_attr(
4255    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4256    assert_instr(bsl)
4257)]
4258#[cfg_attr(
4259    not(target_arch = "arm"),
4260    stable(feature = "neon_intrinsics", since = "1.59.0")
4261)]
4262#[cfg_attr(
4263    target_arch = "arm",
4264    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4265)]
4266pub fn vbsl_u16(a: uint16x4_t, b: uint16x4_t, c: uint16x4_t) -> uint16x4_t {
4267    let not = int16x4_t::splat(-1);
4268    unsafe {
4269        transmute(simd_or(
4270            simd_and(a, b),
4271            simd_and(simd_xor(a, transmute(not)), c),
4272        ))
4273    }
4274}
4275#[doc = "Bitwise Select."]
4276#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbsl_u32)"]
4277#[inline]
4278#[target_feature(enable = "neon")]
4279#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4280#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbsl))]
4281#[cfg_attr(
4282    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4283    assert_instr(bsl)
4284)]
4285#[cfg_attr(
4286    not(target_arch = "arm"),
4287    stable(feature = "neon_intrinsics", since = "1.59.0")
4288)]
4289#[cfg_attr(
4290    target_arch = "arm",
4291    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4292)]
4293pub fn vbsl_u32(a: uint32x2_t, b: uint32x2_t, c: uint32x2_t) -> uint32x2_t {
4294    let not = int32x2_t::splat(-1);
4295    unsafe {
4296        transmute(simd_or(
4297            simd_and(a, b),
4298            simd_and(simd_xor(a, transmute(not)), c),
4299        ))
4300    }
4301}
4302#[doc = "Bitwise Select."]
4303#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbsl_u64)"]
4304#[inline]
4305#[target_feature(enable = "neon")]
4306#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4307#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbsl))]
4308#[cfg_attr(
4309    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4310    assert_instr(bsl)
4311)]
4312#[cfg_attr(
4313    not(target_arch = "arm"),
4314    stable(feature = "neon_intrinsics", since = "1.59.0")
4315)]
4316#[cfg_attr(
4317    target_arch = "arm",
4318    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4319)]
4320pub fn vbsl_u64(a: uint64x1_t, b: uint64x1_t, c: uint64x1_t) -> uint64x1_t {
4321    let not = int64x1_t::splat(-1);
4322    unsafe {
4323        transmute(simd_or(
4324            simd_and(a, b),
4325            simd_and(simd_xor(a, transmute(not)), c),
4326        ))
4327    }
4328}
4329#[doc = "Bitwise Select."]
4330#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbsl_u8)"]
4331#[inline]
4332#[target_feature(enable = "neon")]
4333#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4334#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbsl))]
4335#[cfg_attr(
4336    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4337    assert_instr(bsl)
4338)]
4339#[cfg_attr(
4340    not(target_arch = "arm"),
4341    stable(feature = "neon_intrinsics", since = "1.59.0")
4342)]
4343#[cfg_attr(
4344    target_arch = "arm",
4345    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4346)]
4347pub fn vbsl_u8(a: uint8x8_t, b: uint8x8_t, c: uint8x8_t) -> uint8x8_t {
4348    let not = int8x8_t::splat(-1);
4349    unsafe {
4350        transmute(simd_or(
4351            simd_and(a, b),
4352            simd_and(simd_xor(a, transmute(not)), c),
4353        ))
4354    }
4355}
4356#[doc = "Bitwise Select."]
4357#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbslq_u16)"]
4358#[inline]
4359#[target_feature(enable = "neon")]
4360#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4361#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbsl))]
4362#[cfg_attr(
4363    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4364    assert_instr(bsl)
4365)]
4366#[cfg_attr(
4367    not(target_arch = "arm"),
4368    stable(feature = "neon_intrinsics", since = "1.59.0")
4369)]
4370#[cfg_attr(
4371    target_arch = "arm",
4372    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4373)]
4374pub fn vbslq_u16(a: uint16x8_t, b: uint16x8_t, c: uint16x8_t) -> uint16x8_t {
4375    let not = int16x8_t::splat(-1);
4376    unsafe {
4377        transmute(simd_or(
4378            simd_and(a, b),
4379            simd_and(simd_xor(a, transmute(not)), c),
4380        ))
4381    }
4382}
4383#[doc = "Bitwise Select."]
4384#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbslq_u32)"]
4385#[inline]
4386#[target_feature(enable = "neon")]
4387#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4388#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbsl))]
4389#[cfg_attr(
4390    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4391    assert_instr(bsl)
4392)]
4393#[cfg_attr(
4394    not(target_arch = "arm"),
4395    stable(feature = "neon_intrinsics", since = "1.59.0")
4396)]
4397#[cfg_attr(
4398    target_arch = "arm",
4399    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4400)]
4401pub fn vbslq_u32(a: uint32x4_t, b: uint32x4_t, c: uint32x4_t) -> uint32x4_t {
4402    let not = int32x4_t::splat(-1);
4403    unsafe {
4404        transmute(simd_or(
4405            simd_and(a, b),
4406            simd_and(simd_xor(a, transmute(not)), c),
4407        ))
4408    }
4409}
4410#[doc = "Bitwise Select."]
4411#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbslq_u64)"]
4412#[inline]
4413#[target_feature(enable = "neon")]
4414#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4415#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbsl))]
4416#[cfg_attr(
4417    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4418    assert_instr(bsl)
4419)]
4420#[cfg_attr(
4421    not(target_arch = "arm"),
4422    stable(feature = "neon_intrinsics", since = "1.59.0")
4423)]
4424#[cfg_attr(
4425    target_arch = "arm",
4426    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4427)]
4428pub fn vbslq_u64(a: uint64x2_t, b: uint64x2_t, c: uint64x2_t) -> uint64x2_t {
4429    let not = int64x2_t::splat(-1);
4430    unsafe {
4431        transmute(simd_or(
4432            simd_and(a, b),
4433            simd_and(simd_xor(a, transmute(not)), c),
4434        ))
4435    }
4436}
4437#[doc = "Bitwise Select."]
4438#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbslq_u8)"]
4439#[inline]
4440#[target_feature(enable = "neon")]
4441#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4442#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbsl))]
4443#[cfg_attr(
4444    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4445    assert_instr(bsl)
4446)]
4447#[cfg_attr(
4448    not(target_arch = "arm"),
4449    stable(feature = "neon_intrinsics", since = "1.59.0")
4450)]
4451#[cfg_attr(
4452    target_arch = "arm",
4453    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4454)]
4455pub fn vbslq_u8(a: uint8x16_t, b: uint8x16_t, c: uint8x16_t) -> uint8x16_t {
4456    let not = int8x16_t::splat(-1);
4457    unsafe {
4458        transmute(simd_or(
4459            simd_and(a, b),
4460            simd_and(simd_xor(a, transmute(not)), c),
4461        ))
4462    }
4463}
4464#[doc = "Floating-point absolute compare greater than or equal"]
4465#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcage_f16)"]
4466#[inline]
4467#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
4468#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vacge.f16"))]
4469#[cfg_attr(
4470    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4471    assert_instr(facge)
4472)]
4473#[target_feature(enable = "neon,fp16")]
4474#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
4475#[cfg(not(target_arch = "arm64ec"))]
4476pub fn vcage_f16(a: float16x4_t, b: float16x4_t) -> uint16x4_t {
4477    unsafe extern "unadjusted" {
4478        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vacge.v4i16.v4f16")]
4479        #[cfg_attr(
4480            any(target_arch = "aarch64", target_arch = "arm64ec"),
4481            link_name = "llvm.aarch64.neon.facge.v4i16.v4f16"
4482        )]
4483        fn _vcage_f16(a: float16x4_t, b: float16x4_t) -> uint16x4_t;
4484    }
4485    unsafe { _vcage_f16(a, b) }
4486}
4487#[doc = "Floating-point absolute compare greater than or equal"]
4488#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcageq_f16)"]
4489#[inline]
4490#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
4491#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vacge.f16"))]
4492#[cfg_attr(
4493    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4494    assert_instr(facge)
4495)]
4496#[target_feature(enable = "neon,fp16")]
4497#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
4498#[cfg(not(target_arch = "arm64ec"))]
4499pub fn vcageq_f16(a: float16x8_t, b: float16x8_t) -> uint16x8_t {
4500    unsafe extern "unadjusted" {
4501        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vacge.v8i16.v8f16")]
4502        #[cfg_attr(
4503            any(target_arch = "aarch64", target_arch = "arm64ec"),
4504            link_name = "llvm.aarch64.neon.facge.v8i16.v8f16"
4505        )]
4506        fn _vcageq_f16(a: float16x8_t, b: float16x8_t) -> uint16x8_t;
4507    }
4508    unsafe { _vcageq_f16(a, b) }
4509}
4510#[doc = "Floating-point absolute compare greater than or equal"]
4511#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcage_f32)"]
4512#[inline]
4513#[target_feature(enable = "neon")]
4514#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4515#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vacge.f32"))]
4516#[cfg_attr(
4517    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4518    assert_instr(facge)
4519)]
4520#[cfg_attr(
4521    not(target_arch = "arm"),
4522    stable(feature = "neon_intrinsics", since = "1.59.0")
4523)]
4524#[cfg_attr(
4525    target_arch = "arm",
4526    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4527)]
4528pub fn vcage_f32(a: float32x2_t, b: float32x2_t) -> uint32x2_t {
4529    unsafe extern "unadjusted" {
4530        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vacge.v2i32.v2f32")]
4531        #[cfg_attr(
4532            any(target_arch = "aarch64", target_arch = "arm64ec"),
4533            link_name = "llvm.aarch64.neon.facge.v2i32.v2f32"
4534        )]
4535        fn _vcage_f32(a: float32x2_t, b: float32x2_t) -> uint32x2_t;
4536    }
4537    unsafe { _vcage_f32(a, b) }
4538}
4539#[doc = "Floating-point absolute compare greater than or equal"]
4540#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcageq_f32)"]
4541#[inline]
4542#[target_feature(enable = "neon")]
4543#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4544#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vacge.f32"))]
4545#[cfg_attr(
4546    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4547    assert_instr(facge)
4548)]
4549#[cfg_attr(
4550    not(target_arch = "arm"),
4551    stable(feature = "neon_intrinsics", since = "1.59.0")
4552)]
4553#[cfg_attr(
4554    target_arch = "arm",
4555    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4556)]
4557pub fn vcageq_f32(a: float32x4_t, b: float32x4_t) -> uint32x4_t {
4558    unsafe extern "unadjusted" {
4559        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vacge.v4i32.v4f32")]
4560        #[cfg_attr(
4561            any(target_arch = "aarch64", target_arch = "arm64ec"),
4562            link_name = "llvm.aarch64.neon.facge.v4i32.v4f32"
4563        )]
4564        fn _vcageq_f32(a: float32x4_t, b: float32x4_t) -> uint32x4_t;
4565    }
4566    unsafe { _vcageq_f32(a, b) }
4567}
4568#[doc = "Floating-point absolute compare greater than"]
4569#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcagt_f16)"]
4570#[inline]
4571#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
4572#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vacgt.f16"))]
4573#[cfg_attr(
4574    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4575    assert_instr(facgt)
4576)]
4577#[target_feature(enable = "neon,fp16")]
4578#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
4579#[cfg(not(target_arch = "arm64ec"))]
4580pub fn vcagt_f16(a: float16x4_t, b: float16x4_t) -> uint16x4_t {
4581    unsafe extern "unadjusted" {
4582        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vacgt.v4i16.v4f16")]
4583        #[cfg_attr(
4584            any(target_arch = "aarch64", target_arch = "arm64ec"),
4585            link_name = "llvm.aarch64.neon.facgt.v4i16.v4f16"
4586        )]
4587        fn _vcagt_f16(a: float16x4_t, b: float16x4_t) -> uint16x4_t;
4588    }
4589    unsafe { _vcagt_f16(a, b) }
4590}
4591#[doc = "Floating-point absolute compare greater than"]
4592#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcagtq_f16)"]
4593#[inline]
4594#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
4595#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vacgt.f16"))]
4596#[cfg_attr(
4597    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4598    assert_instr(facgt)
4599)]
4600#[target_feature(enable = "neon,fp16")]
4601#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
4602#[cfg(not(target_arch = "arm64ec"))]
4603pub fn vcagtq_f16(a: float16x8_t, b: float16x8_t) -> uint16x8_t {
4604    unsafe extern "unadjusted" {
4605        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vacgt.v8i16.v8f16")]
4606        #[cfg_attr(
4607            any(target_arch = "aarch64", target_arch = "arm64ec"),
4608            link_name = "llvm.aarch64.neon.facgt.v8i16.v8f16"
4609        )]
4610        fn _vcagtq_f16(a: float16x8_t, b: float16x8_t) -> uint16x8_t;
4611    }
4612    unsafe { _vcagtq_f16(a, b) }
4613}
4614#[doc = "Floating-point absolute compare greater than"]
4615#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcagt_f32)"]
4616#[inline]
4617#[target_feature(enable = "neon")]
4618#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4619#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vacgt.f32"))]
4620#[cfg_attr(
4621    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4622    assert_instr(facgt)
4623)]
4624#[cfg_attr(
4625    not(target_arch = "arm"),
4626    stable(feature = "neon_intrinsics", since = "1.59.0")
4627)]
4628#[cfg_attr(
4629    target_arch = "arm",
4630    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4631)]
4632pub fn vcagt_f32(a: float32x2_t, b: float32x2_t) -> uint32x2_t {
4633    unsafe extern "unadjusted" {
4634        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vacgt.v2i32.v2f32")]
4635        #[cfg_attr(
4636            any(target_arch = "aarch64", target_arch = "arm64ec"),
4637            link_name = "llvm.aarch64.neon.facgt.v2i32.v2f32"
4638        )]
4639        fn _vcagt_f32(a: float32x2_t, b: float32x2_t) -> uint32x2_t;
4640    }
4641    unsafe { _vcagt_f32(a, b) }
4642}
4643#[doc = "Floating-point absolute compare greater than"]
4644#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcagtq_f32)"]
4645#[inline]
4646#[target_feature(enable = "neon")]
4647#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4648#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vacgt.f32"))]
4649#[cfg_attr(
4650    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4651    assert_instr(facgt)
4652)]
4653#[cfg_attr(
4654    not(target_arch = "arm"),
4655    stable(feature = "neon_intrinsics", since = "1.59.0")
4656)]
4657#[cfg_attr(
4658    target_arch = "arm",
4659    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4660)]
4661pub fn vcagtq_f32(a: float32x4_t, b: float32x4_t) -> uint32x4_t {
4662    unsafe extern "unadjusted" {
4663        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vacgt.v4i32.v4f32")]
4664        #[cfg_attr(
4665            any(target_arch = "aarch64", target_arch = "arm64ec"),
4666            link_name = "llvm.aarch64.neon.facgt.v4i32.v4f32"
4667        )]
4668        fn _vcagtq_f32(a: float32x4_t, b: float32x4_t) -> uint32x4_t;
4669    }
4670    unsafe { _vcagtq_f32(a, b) }
4671}
4672#[doc = "Floating-point absolute compare less than or equal"]
4673#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcale_f16)"]
4674#[inline]
4675#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
4676#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vacge.f16"))]
4677#[cfg_attr(
4678    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4679    assert_instr(facge)
4680)]
4681#[target_feature(enable = "neon,fp16")]
4682#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
4683#[cfg(not(target_arch = "arm64ec"))]
4684pub fn vcale_f16(a: float16x4_t, b: float16x4_t) -> uint16x4_t {
4685    vcage_f16(b, a)
4686}
4687#[doc = "Floating-point absolute compare less than or equal"]
4688#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcaleq_f16)"]
4689#[inline]
4690#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
4691#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vacge.f16"))]
4692#[cfg_attr(
4693    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4694    assert_instr(facge)
4695)]
4696#[target_feature(enable = "neon,fp16")]
4697#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
4698#[cfg(not(target_arch = "arm64ec"))]
4699pub fn vcaleq_f16(a: float16x8_t, b: float16x8_t) -> uint16x8_t {
4700    vcageq_f16(b, a)
4701}
4702#[doc = "Floating-point absolute compare less than or equal"]
4703#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcale_f32)"]
4704#[inline]
4705#[target_feature(enable = "neon")]
4706#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4707#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vacge.f32"))]
4708#[cfg_attr(
4709    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4710    assert_instr(facge)
4711)]
4712#[cfg_attr(
4713    not(target_arch = "arm"),
4714    stable(feature = "neon_intrinsics", since = "1.59.0")
4715)]
4716#[cfg_attr(
4717    target_arch = "arm",
4718    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4719)]
4720pub fn vcale_f32(a: float32x2_t, b: float32x2_t) -> uint32x2_t {
4721    vcage_f32(b, a)
4722}
4723#[doc = "Floating-point absolute compare less than or equal"]
4724#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcaleq_f32)"]
4725#[inline]
4726#[target_feature(enable = "neon")]
4727#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4728#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vacge.f32"))]
4729#[cfg_attr(
4730    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4731    assert_instr(facge)
4732)]
4733#[cfg_attr(
4734    not(target_arch = "arm"),
4735    stable(feature = "neon_intrinsics", since = "1.59.0")
4736)]
4737#[cfg_attr(
4738    target_arch = "arm",
4739    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4740)]
4741pub fn vcaleq_f32(a: float32x4_t, b: float32x4_t) -> uint32x4_t {
4742    vcageq_f32(b, a)
4743}
4744#[doc = "Floating-point absolute compare less than"]
4745#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcalt_f16)"]
4746#[inline]
4747#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
4748#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vacgt.f16"))]
4749#[cfg_attr(
4750    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4751    assert_instr(facgt)
4752)]
4753#[target_feature(enable = "neon,fp16")]
4754#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
4755#[cfg(not(target_arch = "arm64ec"))]
4756pub fn vcalt_f16(a: float16x4_t, b: float16x4_t) -> uint16x4_t {
4757    vcagt_f16(b, a)
4758}
4759#[doc = "Floating-point absolute compare less than"]
4760#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcaltq_f16)"]
4761#[inline]
4762#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
4763#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vacgt.f16"))]
4764#[cfg_attr(
4765    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4766    assert_instr(facgt)
4767)]
4768#[target_feature(enable = "neon,fp16")]
4769#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
4770#[cfg(not(target_arch = "arm64ec"))]
4771pub fn vcaltq_f16(a: float16x8_t, b: float16x8_t) -> uint16x8_t {
4772    vcagtq_f16(b, a)
4773}
4774#[doc = "Floating-point absolute compare less than"]
4775#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcalt_f32)"]
4776#[inline]
4777#[target_feature(enable = "neon")]
4778#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4779#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vacgt.f32"))]
4780#[cfg_attr(
4781    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4782    assert_instr(facgt)
4783)]
4784#[cfg_attr(
4785    not(target_arch = "arm"),
4786    stable(feature = "neon_intrinsics", since = "1.59.0")
4787)]
4788#[cfg_attr(
4789    target_arch = "arm",
4790    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4791)]
4792pub fn vcalt_f32(a: float32x2_t, b: float32x2_t) -> uint32x2_t {
4793    vcagt_f32(b, a)
4794}
4795#[doc = "Floating-point absolute compare less than"]
4796#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcaltq_f32)"]
4797#[inline]
4798#[target_feature(enable = "neon")]
4799#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4800#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vacgt.f32"))]
4801#[cfg_attr(
4802    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4803    assert_instr(facgt)
4804)]
4805#[cfg_attr(
4806    not(target_arch = "arm"),
4807    stable(feature = "neon_intrinsics", since = "1.59.0")
4808)]
4809#[cfg_attr(
4810    target_arch = "arm",
4811    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4812)]
4813pub fn vcaltq_f32(a: float32x4_t, b: float32x4_t) -> uint32x4_t {
4814    vcagtq_f32(b, a)
4815}
4816#[doc = "Floating-point compare equal"]
4817#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vceq_f16)"]
4818#[inline]
4819#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
4820#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vceq.f16"))]
4821#[cfg_attr(
4822    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4823    assert_instr(fcmeq)
4824)]
4825#[target_feature(enable = "neon,fp16")]
4826#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
4827#[cfg(not(target_arch = "arm64ec"))]
4828pub fn vceq_f16(a: float16x4_t, b: float16x4_t) -> uint16x4_t {
4829    unsafe { simd_eq(a, b) }
4830}
4831#[doc = "Floating-point compare equal"]
4832#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vceqq_f16)"]
4833#[inline]
4834#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
4835#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vceq.f16"))]
4836#[cfg_attr(
4837    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4838    assert_instr(fcmeq)
4839)]
4840#[target_feature(enable = "neon,fp16")]
4841#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
4842#[cfg(not(target_arch = "arm64ec"))]
4843pub fn vceqq_f16(a: float16x8_t, b: float16x8_t) -> uint16x8_t {
4844    unsafe { simd_eq(a, b) }
4845}
4846#[doc = "Floating-point compare equal"]
4847#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vceq_f32)"]
4848#[inline]
4849#[target_feature(enable = "neon")]
4850#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4851#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vceq.f32"))]
4852#[cfg_attr(
4853    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4854    assert_instr(fcmeq)
4855)]
4856#[cfg_attr(
4857    not(target_arch = "arm"),
4858    stable(feature = "neon_intrinsics", since = "1.59.0")
4859)]
4860#[cfg_attr(
4861    target_arch = "arm",
4862    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4863)]
4864pub fn vceq_f32(a: float32x2_t, b: float32x2_t) -> uint32x2_t {
4865    unsafe { simd_eq(a, b) }
4866}
4867#[doc = "Floating-point compare equal"]
4868#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vceqq_f32)"]
4869#[inline]
4870#[target_feature(enable = "neon")]
4871#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4872#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vceq.f32"))]
4873#[cfg_attr(
4874    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4875    assert_instr(fcmeq)
4876)]
4877#[cfg_attr(
4878    not(target_arch = "arm"),
4879    stable(feature = "neon_intrinsics", since = "1.59.0")
4880)]
4881#[cfg_attr(
4882    target_arch = "arm",
4883    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4884)]
4885pub fn vceqq_f32(a: float32x4_t, b: float32x4_t) -> uint32x4_t {
4886    unsafe { simd_eq(a, b) }
4887}
4888#[doc = "Compare bitwise Equal (vector)"]
4889#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vceq_s8)"]
4890#[inline]
4891#[target_feature(enable = "neon")]
4892#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4893#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vceq.i8"))]
4894#[cfg_attr(
4895    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4896    assert_instr(cmeq)
4897)]
4898#[cfg_attr(
4899    not(target_arch = "arm"),
4900    stable(feature = "neon_intrinsics", since = "1.59.0")
4901)]
4902#[cfg_attr(
4903    target_arch = "arm",
4904    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4905)]
4906pub fn vceq_s8(a: int8x8_t, b: int8x8_t) -> uint8x8_t {
4907    unsafe { simd_eq(a, b) }
4908}
4909#[doc = "Compare bitwise Equal (vector)"]
4910#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vceqq_s8)"]
4911#[inline]
4912#[target_feature(enable = "neon")]
4913#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4914#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vceq.i8"))]
4915#[cfg_attr(
4916    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4917    assert_instr(cmeq)
4918)]
4919#[cfg_attr(
4920    not(target_arch = "arm"),
4921    stable(feature = "neon_intrinsics", since = "1.59.0")
4922)]
4923#[cfg_attr(
4924    target_arch = "arm",
4925    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4926)]
4927pub fn vceqq_s8(a: int8x16_t, b: int8x16_t) -> uint8x16_t {
4928    unsafe { simd_eq(a, b) }
4929}
4930#[doc = "Compare bitwise Equal (vector)"]
4931#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vceq_s16)"]
4932#[inline]
4933#[target_feature(enable = "neon")]
4934#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4935#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vceq.i16"))]
4936#[cfg_attr(
4937    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4938    assert_instr(cmeq)
4939)]
4940#[cfg_attr(
4941    not(target_arch = "arm"),
4942    stable(feature = "neon_intrinsics", since = "1.59.0")
4943)]
4944#[cfg_attr(
4945    target_arch = "arm",
4946    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4947)]
4948pub fn vceq_s16(a: int16x4_t, b: int16x4_t) -> uint16x4_t {
4949    unsafe { simd_eq(a, b) }
4950}
4951#[doc = "Compare bitwise Equal (vector)"]
4952#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vceqq_s16)"]
4953#[inline]
4954#[target_feature(enable = "neon")]
4955#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4956#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vceq.i16"))]
4957#[cfg_attr(
4958    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4959    assert_instr(cmeq)
4960)]
4961#[cfg_attr(
4962    not(target_arch = "arm"),
4963    stable(feature = "neon_intrinsics", since = "1.59.0")
4964)]
4965#[cfg_attr(
4966    target_arch = "arm",
4967    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4968)]
4969pub fn vceqq_s16(a: int16x8_t, b: int16x8_t) -> uint16x8_t {
4970    unsafe { simd_eq(a, b) }
4971}
4972#[doc = "Compare bitwise Equal (vector)"]
4973#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vceq_s32)"]
4974#[inline]
4975#[target_feature(enable = "neon")]
4976#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4977#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vceq.i32"))]
4978#[cfg_attr(
4979    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4980    assert_instr(cmeq)
4981)]
4982#[cfg_attr(
4983    not(target_arch = "arm"),
4984    stable(feature = "neon_intrinsics", since = "1.59.0")
4985)]
4986#[cfg_attr(
4987    target_arch = "arm",
4988    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4989)]
4990pub fn vceq_s32(a: int32x2_t, b: int32x2_t) -> uint32x2_t {
4991    unsafe { simd_eq(a, b) }
4992}
4993#[doc = "Compare bitwise Equal (vector)"]
4994#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vceqq_s32)"]
4995#[inline]
4996#[target_feature(enable = "neon")]
4997#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4998#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vceq.i32"))]
4999#[cfg_attr(
5000    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5001    assert_instr(cmeq)
5002)]
5003#[cfg_attr(
5004    not(target_arch = "arm"),
5005    stable(feature = "neon_intrinsics", since = "1.59.0")
5006)]
5007#[cfg_attr(
5008    target_arch = "arm",
5009    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5010)]
5011pub fn vceqq_s32(a: int32x4_t, b: int32x4_t) -> uint32x4_t {
5012    unsafe { simd_eq(a, b) }
5013}
5014#[doc = "Compare bitwise Equal (vector)"]
5015#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vceq_u8)"]
5016#[inline]
5017#[target_feature(enable = "neon")]
5018#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5019#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vceq.i8"))]
5020#[cfg_attr(
5021    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5022    assert_instr(cmeq)
5023)]
5024#[cfg_attr(
5025    not(target_arch = "arm"),
5026    stable(feature = "neon_intrinsics", since = "1.59.0")
5027)]
5028#[cfg_attr(
5029    target_arch = "arm",
5030    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5031)]
5032pub fn vceq_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
5033    unsafe { simd_eq(a, b) }
5034}
5035#[doc = "Compare bitwise Equal (vector)"]
5036#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vceqq_u8)"]
5037#[inline]
5038#[target_feature(enable = "neon")]
5039#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5040#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vceq.i8"))]
5041#[cfg_attr(
5042    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5043    assert_instr(cmeq)
5044)]
5045#[cfg_attr(
5046    not(target_arch = "arm"),
5047    stable(feature = "neon_intrinsics", since = "1.59.0")
5048)]
5049#[cfg_attr(
5050    target_arch = "arm",
5051    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5052)]
5053pub fn vceqq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
5054    unsafe { simd_eq(a, b) }
5055}
5056#[doc = "Compare bitwise Equal (vector)"]
5057#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vceq_u16)"]
5058#[inline]
5059#[target_feature(enable = "neon")]
5060#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5061#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vceq.i16"))]
5062#[cfg_attr(
5063    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5064    assert_instr(cmeq)
5065)]
5066#[cfg_attr(
5067    not(target_arch = "arm"),
5068    stable(feature = "neon_intrinsics", since = "1.59.0")
5069)]
5070#[cfg_attr(
5071    target_arch = "arm",
5072    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5073)]
5074pub fn vceq_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
5075    unsafe { simd_eq(a, b) }
5076}
5077#[doc = "Compare bitwise Equal (vector)"]
5078#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vceqq_u16)"]
5079#[inline]
5080#[target_feature(enable = "neon")]
5081#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5082#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vceq.i16"))]
5083#[cfg_attr(
5084    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5085    assert_instr(cmeq)
5086)]
5087#[cfg_attr(
5088    not(target_arch = "arm"),
5089    stable(feature = "neon_intrinsics", since = "1.59.0")
5090)]
5091#[cfg_attr(
5092    target_arch = "arm",
5093    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5094)]
5095pub fn vceqq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
5096    unsafe { simd_eq(a, b) }
5097}
5098#[doc = "Compare bitwise Equal (vector)"]
5099#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vceq_u32)"]
5100#[inline]
5101#[target_feature(enable = "neon")]
5102#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5103#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vceq.i32"))]
5104#[cfg_attr(
5105    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5106    assert_instr(cmeq)
5107)]
5108#[cfg_attr(
5109    not(target_arch = "arm"),
5110    stable(feature = "neon_intrinsics", since = "1.59.0")
5111)]
5112#[cfg_attr(
5113    target_arch = "arm",
5114    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5115)]
5116pub fn vceq_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
5117    unsafe { simd_eq(a, b) }
5118}
5119#[doc = "Compare bitwise Equal (vector)"]
5120#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vceqq_u32)"]
5121#[inline]
5122#[target_feature(enable = "neon")]
5123#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5124#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vceq.i32"))]
5125#[cfg_attr(
5126    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5127    assert_instr(cmeq)
5128)]
5129#[cfg_attr(
5130    not(target_arch = "arm"),
5131    stable(feature = "neon_intrinsics", since = "1.59.0")
5132)]
5133#[cfg_attr(
5134    target_arch = "arm",
5135    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5136)]
5137pub fn vceqq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
5138    unsafe { simd_eq(a, b) }
5139}
5140#[doc = "Compare bitwise Equal (vector)"]
5141#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vceq_p8)"]
5142#[inline]
5143#[target_feature(enable = "neon")]
5144#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5145#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vceq.i8"))]
5146#[cfg_attr(
5147    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5148    assert_instr(cmeq)
5149)]
5150#[cfg_attr(
5151    not(target_arch = "arm"),
5152    stable(feature = "neon_intrinsics", since = "1.59.0")
5153)]
5154#[cfg_attr(
5155    target_arch = "arm",
5156    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5157)]
5158pub fn vceq_p8(a: poly8x8_t, b: poly8x8_t) -> uint8x8_t {
5159    unsafe { simd_eq(a, b) }
5160}
5161#[doc = "Compare bitwise Equal (vector)"]
5162#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vceqq_p8)"]
5163#[inline]
5164#[target_feature(enable = "neon")]
5165#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5166#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vceq.i8"))]
5167#[cfg_attr(
5168    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5169    assert_instr(cmeq)
5170)]
5171#[cfg_attr(
5172    not(target_arch = "arm"),
5173    stable(feature = "neon_intrinsics", since = "1.59.0")
5174)]
5175#[cfg_attr(
5176    target_arch = "arm",
5177    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5178)]
5179pub fn vceqq_p8(a: poly8x16_t, b: poly8x16_t) -> uint8x16_t {
5180    unsafe { simd_eq(a, b) }
5181}
5182#[doc = "Floating-point compare greater than or equal"]
5183#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcge_f16)"]
5184#[inline]
5185#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
5186#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.f16"))]
5187#[cfg_attr(
5188    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5189    assert_instr(fcmge)
5190)]
5191#[target_feature(enable = "neon,fp16")]
5192#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
5193#[cfg(not(target_arch = "arm64ec"))]
5194pub fn vcge_f16(a: float16x4_t, b: float16x4_t) -> uint16x4_t {
5195    unsafe { simd_ge(a, b) }
5196}
5197#[doc = "Floating-point compare greater than or equal"]
5198#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgeq_f16)"]
5199#[inline]
5200#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
5201#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.f16"))]
5202#[cfg_attr(
5203    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5204    assert_instr(fcmge)
5205)]
5206#[target_feature(enable = "neon,fp16")]
5207#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
5208#[cfg(not(target_arch = "arm64ec"))]
5209pub fn vcgeq_f16(a: float16x8_t, b: float16x8_t) -> uint16x8_t {
5210    unsafe { simd_ge(a, b) }
5211}
5212#[doc = "Floating-point compare greater than or equal"]
5213#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcge_f32)"]
5214#[inline]
5215#[target_feature(enable = "neon")]
5216#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5217#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.f32"))]
5218#[cfg_attr(
5219    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5220    assert_instr(fcmge)
5221)]
5222#[cfg_attr(
5223    not(target_arch = "arm"),
5224    stable(feature = "neon_intrinsics", since = "1.59.0")
5225)]
5226#[cfg_attr(
5227    target_arch = "arm",
5228    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5229)]
5230pub fn vcge_f32(a: float32x2_t, b: float32x2_t) -> uint32x2_t {
5231    unsafe { simd_ge(a, b) }
5232}
5233#[doc = "Floating-point compare greater than or equal"]
5234#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgeq_f32)"]
5235#[inline]
5236#[target_feature(enable = "neon")]
5237#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5238#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.f32"))]
5239#[cfg_attr(
5240    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5241    assert_instr(fcmge)
5242)]
5243#[cfg_attr(
5244    not(target_arch = "arm"),
5245    stable(feature = "neon_intrinsics", since = "1.59.0")
5246)]
5247#[cfg_attr(
5248    target_arch = "arm",
5249    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5250)]
5251pub fn vcgeq_f32(a: float32x4_t, b: float32x4_t) -> uint32x4_t {
5252    unsafe { simd_ge(a, b) }
5253}
5254#[doc = "Compare signed greater than or equal"]
5255#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcge_s8)"]
5256#[inline]
5257#[target_feature(enable = "neon")]
5258#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5259#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.s8"))]
5260#[cfg_attr(
5261    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5262    assert_instr(cmge)
5263)]
5264#[cfg_attr(
5265    not(target_arch = "arm"),
5266    stable(feature = "neon_intrinsics", since = "1.59.0")
5267)]
5268#[cfg_attr(
5269    target_arch = "arm",
5270    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5271)]
5272pub fn vcge_s8(a: int8x8_t, b: int8x8_t) -> uint8x8_t {
5273    unsafe { simd_ge(a, b) }
5274}
5275#[doc = "Compare signed greater than or equal"]
5276#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgeq_s8)"]
5277#[inline]
5278#[target_feature(enable = "neon")]
5279#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5280#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.s8"))]
5281#[cfg_attr(
5282    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5283    assert_instr(cmge)
5284)]
5285#[cfg_attr(
5286    not(target_arch = "arm"),
5287    stable(feature = "neon_intrinsics", since = "1.59.0")
5288)]
5289#[cfg_attr(
5290    target_arch = "arm",
5291    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5292)]
5293pub fn vcgeq_s8(a: int8x16_t, b: int8x16_t) -> uint8x16_t {
5294    unsafe { simd_ge(a, b) }
5295}
5296#[doc = "Compare signed greater than or equal"]
5297#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcge_s16)"]
5298#[inline]
5299#[target_feature(enable = "neon")]
5300#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5301#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.s16"))]
5302#[cfg_attr(
5303    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5304    assert_instr(cmge)
5305)]
5306#[cfg_attr(
5307    not(target_arch = "arm"),
5308    stable(feature = "neon_intrinsics", since = "1.59.0")
5309)]
5310#[cfg_attr(
5311    target_arch = "arm",
5312    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5313)]
5314pub fn vcge_s16(a: int16x4_t, b: int16x4_t) -> uint16x4_t {
5315    unsafe { simd_ge(a, b) }
5316}
5317#[doc = "Compare signed greater than or equal"]
5318#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgeq_s16)"]
5319#[inline]
5320#[target_feature(enable = "neon")]
5321#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5322#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.s16"))]
5323#[cfg_attr(
5324    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5325    assert_instr(cmge)
5326)]
5327#[cfg_attr(
5328    not(target_arch = "arm"),
5329    stable(feature = "neon_intrinsics", since = "1.59.0")
5330)]
5331#[cfg_attr(
5332    target_arch = "arm",
5333    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5334)]
5335pub fn vcgeq_s16(a: int16x8_t, b: int16x8_t) -> uint16x8_t {
5336    unsafe { simd_ge(a, b) }
5337}
5338#[doc = "Compare signed greater than or equal"]
5339#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcge_s32)"]
5340#[inline]
5341#[target_feature(enable = "neon")]
5342#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5343#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.s32"))]
5344#[cfg_attr(
5345    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5346    assert_instr(cmge)
5347)]
5348#[cfg_attr(
5349    not(target_arch = "arm"),
5350    stable(feature = "neon_intrinsics", since = "1.59.0")
5351)]
5352#[cfg_attr(
5353    target_arch = "arm",
5354    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5355)]
5356pub fn vcge_s32(a: int32x2_t, b: int32x2_t) -> uint32x2_t {
5357    unsafe { simd_ge(a, b) }
5358}
5359#[doc = "Compare signed greater than or equal"]
5360#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgeq_s32)"]
5361#[inline]
5362#[target_feature(enable = "neon")]
5363#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5364#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.s32"))]
5365#[cfg_attr(
5366    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5367    assert_instr(cmge)
5368)]
5369#[cfg_attr(
5370    not(target_arch = "arm"),
5371    stable(feature = "neon_intrinsics", since = "1.59.0")
5372)]
5373#[cfg_attr(
5374    target_arch = "arm",
5375    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5376)]
5377pub fn vcgeq_s32(a: int32x4_t, b: int32x4_t) -> uint32x4_t {
5378    unsafe { simd_ge(a, b) }
5379}
5380#[doc = "Compare unsigned greater than or equal"]
5381#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcge_u8)"]
5382#[inline]
5383#[target_feature(enable = "neon")]
5384#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5385#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.u8"))]
5386#[cfg_attr(
5387    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5388    assert_instr(cmhs)
5389)]
5390#[cfg_attr(
5391    not(target_arch = "arm"),
5392    stable(feature = "neon_intrinsics", since = "1.59.0")
5393)]
5394#[cfg_attr(
5395    target_arch = "arm",
5396    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5397)]
5398pub fn vcge_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
5399    unsafe { simd_ge(a, b) }
5400}
5401#[doc = "Compare unsigned greater than or equal"]
5402#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgeq_u8)"]
5403#[inline]
5404#[target_feature(enable = "neon")]
5405#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5406#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.u8"))]
5407#[cfg_attr(
5408    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5409    assert_instr(cmhs)
5410)]
5411#[cfg_attr(
5412    not(target_arch = "arm"),
5413    stable(feature = "neon_intrinsics", since = "1.59.0")
5414)]
5415#[cfg_attr(
5416    target_arch = "arm",
5417    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5418)]
5419pub fn vcgeq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
5420    unsafe { simd_ge(a, b) }
5421}
5422#[doc = "Compare unsigned greater than or equal"]
5423#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcge_u16)"]
5424#[inline]
5425#[target_feature(enable = "neon")]
5426#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5427#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.u16"))]
5428#[cfg_attr(
5429    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5430    assert_instr(cmhs)
5431)]
5432#[cfg_attr(
5433    not(target_arch = "arm"),
5434    stable(feature = "neon_intrinsics", since = "1.59.0")
5435)]
5436#[cfg_attr(
5437    target_arch = "arm",
5438    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5439)]
5440pub fn vcge_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
5441    unsafe { simd_ge(a, b) }
5442}
5443#[doc = "Compare unsigned greater than or equal"]
5444#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgeq_u16)"]
5445#[inline]
5446#[target_feature(enable = "neon")]
5447#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5448#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.u16"))]
5449#[cfg_attr(
5450    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5451    assert_instr(cmhs)
5452)]
5453#[cfg_attr(
5454    not(target_arch = "arm"),
5455    stable(feature = "neon_intrinsics", since = "1.59.0")
5456)]
5457#[cfg_attr(
5458    target_arch = "arm",
5459    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5460)]
5461pub fn vcgeq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
5462    unsafe { simd_ge(a, b) }
5463}
5464#[doc = "Compare unsigned greater than or equal"]
5465#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcge_u32)"]
5466#[inline]
5467#[target_feature(enable = "neon")]
5468#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5469#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.u32"))]
5470#[cfg_attr(
5471    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5472    assert_instr(cmhs)
5473)]
5474#[cfg_attr(
5475    not(target_arch = "arm"),
5476    stable(feature = "neon_intrinsics", since = "1.59.0")
5477)]
5478#[cfg_attr(
5479    target_arch = "arm",
5480    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5481)]
5482pub fn vcge_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
5483    unsafe { simd_ge(a, b) }
5484}
5485#[doc = "Compare unsigned greater than or equal"]
5486#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgeq_u32)"]
5487#[inline]
5488#[target_feature(enable = "neon")]
5489#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5490#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.u32"))]
5491#[cfg_attr(
5492    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5493    assert_instr(cmhs)
5494)]
5495#[cfg_attr(
5496    not(target_arch = "arm"),
5497    stable(feature = "neon_intrinsics", since = "1.59.0")
5498)]
5499#[cfg_attr(
5500    target_arch = "arm",
5501    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5502)]
5503pub fn vcgeq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
5504    unsafe { simd_ge(a, b) }
5505}
5506#[doc = "Floating-point compare greater than or equal to zero"]
5507#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgez_f16)"]
5508#[inline]
5509#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
5510#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.f16"))]
5511#[cfg_attr(
5512    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5513    assert_instr(fcmge)
5514)]
5515#[target_feature(enable = "neon,fp16")]
5516#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
5517#[cfg(not(target_arch = "arm64ec"))]
5518pub fn vcgez_f16(a: float16x4_t) -> uint16x4_t {
5519    let b: f16x4 = f16x4::new(0.0, 0.0, 0.0, 0.0);
5520    unsafe { simd_ge(a, transmute(b)) }
5521}
5522#[doc = "Floating-point compare greater than or equal to zero"]
5523#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgezq_f16)"]
5524#[inline]
5525#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
5526#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.f16"))]
5527#[cfg_attr(
5528    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5529    assert_instr(fcmge)
5530)]
5531#[target_feature(enable = "neon,fp16")]
5532#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
5533#[cfg(not(target_arch = "arm64ec"))]
5534pub fn vcgezq_f16(a: float16x8_t) -> uint16x8_t {
5535    let b: f16x8 = f16x8::new(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
5536    unsafe { simd_ge(a, transmute(b)) }
5537}
5538#[doc = "Floating-point compare greater than"]
5539#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgt_f16)"]
5540#[inline]
5541#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
5542#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.f16"))]
5543#[cfg_attr(
5544    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5545    assert_instr(fcmgt)
5546)]
5547#[target_feature(enable = "neon,fp16")]
5548#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
5549#[cfg(not(target_arch = "arm64ec"))]
5550pub fn vcgt_f16(a: float16x4_t, b: float16x4_t) -> uint16x4_t {
5551    unsafe { simd_gt(a, b) }
5552}
5553#[doc = "Floating-point compare greater than"]
5554#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgtq_f16)"]
5555#[inline]
5556#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
5557#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.f16"))]
5558#[cfg_attr(
5559    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5560    assert_instr(fcmgt)
5561)]
5562#[target_feature(enable = "neon,fp16")]
5563#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
5564#[cfg(not(target_arch = "arm64ec"))]
5565pub fn vcgtq_f16(a: float16x8_t, b: float16x8_t) -> uint16x8_t {
5566    unsafe { simd_gt(a, b) }
5567}
5568#[doc = "Floating-point compare greater than"]
5569#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgt_f32)"]
5570#[inline]
5571#[target_feature(enable = "neon")]
5572#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5573#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.f32"))]
5574#[cfg_attr(
5575    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5576    assert_instr(fcmgt)
5577)]
5578#[cfg_attr(
5579    not(target_arch = "arm"),
5580    stable(feature = "neon_intrinsics", since = "1.59.0")
5581)]
5582#[cfg_attr(
5583    target_arch = "arm",
5584    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5585)]
5586pub fn vcgt_f32(a: float32x2_t, b: float32x2_t) -> uint32x2_t {
5587    unsafe { simd_gt(a, b) }
5588}
5589#[doc = "Floating-point compare greater than"]
5590#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgtq_f32)"]
5591#[inline]
5592#[target_feature(enable = "neon")]
5593#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5594#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.f32"))]
5595#[cfg_attr(
5596    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5597    assert_instr(fcmgt)
5598)]
5599#[cfg_attr(
5600    not(target_arch = "arm"),
5601    stable(feature = "neon_intrinsics", since = "1.59.0")
5602)]
5603#[cfg_attr(
5604    target_arch = "arm",
5605    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5606)]
5607pub fn vcgtq_f32(a: float32x4_t, b: float32x4_t) -> uint32x4_t {
5608    unsafe { simd_gt(a, b) }
5609}
5610#[doc = "Compare signed greater than"]
5611#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgt_s8)"]
5612#[inline]
5613#[target_feature(enable = "neon")]
5614#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5615#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.s8"))]
5616#[cfg_attr(
5617    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5618    assert_instr(cmgt)
5619)]
5620#[cfg_attr(
5621    not(target_arch = "arm"),
5622    stable(feature = "neon_intrinsics", since = "1.59.0")
5623)]
5624#[cfg_attr(
5625    target_arch = "arm",
5626    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5627)]
5628pub fn vcgt_s8(a: int8x8_t, b: int8x8_t) -> uint8x8_t {
5629    unsafe { simd_gt(a, b) }
5630}
5631#[doc = "Compare signed greater than"]
5632#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgtq_s8)"]
5633#[inline]
5634#[target_feature(enable = "neon")]
5635#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5636#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.s8"))]
5637#[cfg_attr(
5638    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5639    assert_instr(cmgt)
5640)]
5641#[cfg_attr(
5642    not(target_arch = "arm"),
5643    stable(feature = "neon_intrinsics", since = "1.59.0")
5644)]
5645#[cfg_attr(
5646    target_arch = "arm",
5647    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5648)]
5649pub fn vcgtq_s8(a: int8x16_t, b: int8x16_t) -> uint8x16_t {
5650    unsafe { simd_gt(a, b) }
5651}
5652#[doc = "Compare signed greater than"]
5653#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgt_s16)"]
5654#[inline]
5655#[target_feature(enable = "neon")]
5656#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5657#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.s16"))]
5658#[cfg_attr(
5659    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5660    assert_instr(cmgt)
5661)]
5662#[cfg_attr(
5663    not(target_arch = "arm"),
5664    stable(feature = "neon_intrinsics", since = "1.59.0")
5665)]
5666#[cfg_attr(
5667    target_arch = "arm",
5668    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5669)]
5670pub fn vcgt_s16(a: int16x4_t, b: int16x4_t) -> uint16x4_t {
5671    unsafe { simd_gt(a, b) }
5672}
5673#[doc = "Compare signed greater than"]
5674#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgtq_s16)"]
5675#[inline]
5676#[target_feature(enable = "neon")]
5677#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5678#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.s16"))]
5679#[cfg_attr(
5680    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5681    assert_instr(cmgt)
5682)]
5683#[cfg_attr(
5684    not(target_arch = "arm"),
5685    stable(feature = "neon_intrinsics", since = "1.59.0")
5686)]
5687#[cfg_attr(
5688    target_arch = "arm",
5689    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5690)]
5691pub fn vcgtq_s16(a: int16x8_t, b: int16x8_t) -> uint16x8_t {
5692    unsafe { simd_gt(a, b) }
5693}
5694#[doc = "Compare signed greater than"]
5695#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgt_s32)"]
5696#[inline]
5697#[target_feature(enable = "neon")]
5698#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5699#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.s32"))]
5700#[cfg_attr(
5701    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5702    assert_instr(cmgt)
5703)]
5704#[cfg_attr(
5705    not(target_arch = "arm"),
5706    stable(feature = "neon_intrinsics", since = "1.59.0")
5707)]
5708#[cfg_attr(
5709    target_arch = "arm",
5710    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5711)]
5712pub fn vcgt_s32(a: int32x2_t, b: int32x2_t) -> uint32x2_t {
5713    unsafe { simd_gt(a, b) }
5714}
5715#[doc = "Compare signed greater than"]
5716#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgtq_s32)"]
5717#[inline]
5718#[target_feature(enable = "neon")]
5719#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5720#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.s32"))]
5721#[cfg_attr(
5722    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5723    assert_instr(cmgt)
5724)]
5725#[cfg_attr(
5726    not(target_arch = "arm"),
5727    stable(feature = "neon_intrinsics", since = "1.59.0")
5728)]
5729#[cfg_attr(
5730    target_arch = "arm",
5731    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5732)]
5733pub fn vcgtq_s32(a: int32x4_t, b: int32x4_t) -> uint32x4_t {
5734    unsafe { simd_gt(a, b) }
5735}
5736#[doc = "Compare unsigned greater than"]
5737#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgt_u8)"]
5738#[inline]
5739#[target_feature(enable = "neon")]
5740#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5741#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.u8"))]
5742#[cfg_attr(
5743    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5744    assert_instr(cmhi)
5745)]
5746#[cfg_attr(
5747    not(target_arch = "arm"),
5748    stable(feature = "neon_intrinsics", since = "1.59.0")
5749)]
5750#[cfg_attr(
5751    target_arch = "arm",
5752    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5753)]
5754pub fn vcgt_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
5755    unsafe { simd_gt(a, b) }
5756}
5757#[doc = "Compare unsigned greater than"]
5758#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgtq_u8)"]
5759#[inline]
5760#[target_feature(enable = "neon")]
5761#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5762#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.u8"))]
5763#[cfg_attr(
5764    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5765    assert_instr(cmhi)
5766)]
5767#[cfg_attr(
5768    not(target_arch = "arm"),
5769    stable(feature = "neon_intrinsics", since = "1.59.0")
5770)]
5771#[cfg_attr(
5772    target_arch = "arm",
5773    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5774)]
5775pub fn vcgtq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
5776    unsafe { simd_gt(a, b) }
5777}
5778#[doc = "Compare unsigned greater than"]
5779#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgt_u16)"]
5780#[inline]
5781#[target_feature(enable = "neon")]
5782#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5783#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.u16"))]
5784#[cfg_attr(
5785    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5786    assert_instr(cmhi)
5787)]
5788#[cfg_attr(
5789    not(target_arch = "arm"),
5790    stable(feature = "neon_intrinsics", since = "1.59.0")
5791)]
5792#[cfg_attr(
5793    target_arch = "arm",
5794    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5795)]
5796pub fn vcgt_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
5797    unsafe { simd_gt(a, b) }
5798}
5799#[doc = "Compare unsigned greater than"]
5800#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgtq_u16)"]
5801#[inline]
5802#[target_feature(enable = "neon")]
5803#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5804#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.u16"))]
5805#[cfg_attr(
5806    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5807    assert_instr(cmhi)
5808)]
5809#[cfg_attr(
5810    not(target_arch = "arm"),
5811    stable(feature = "neon_intrinsics", since = "1.59.0")
5812)]
5813#[cfg_attr(
5814    target_arch = "arm",
5815    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5816)]
5817pub fn vcgtq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
5818    unsafe { simd_gt(a, b) }
5819}
5820#[doc = "Compare unsigned greater than"]
5821#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgt_u32)"]
5822#[inline]
5823#[target_feature(enable = "neon")]
5824#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5825#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.u32"))]
5826#[cfg_attr(
5827    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5828    assert_instr(cmhi)
5829)]
5830#[cfg_attr(
5831    not(target_arch = "arm"),
5832    stable(feature = "neon_intrinsics", since = "1.59.0")
5833)]
5834#[cfg_attr(
5835    target_arch = "arm",
5836    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5837)]
5838pub fn vcgt_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
5839    unsafe { simd_gt(a, b) }
5840}
5841#[doc = "Compare unsigned greater than"]
5842#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgtq_u32)"]
5843#[inline]
5844#[target_feature(enable = "neon")]
5845#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5846#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.u32"))]
5847#[cfg_attr(
5848    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5849    assert_instr(cmhi)
5850)]
5851#[cfg_attr(
5852    not(target_arch = "arm"),
5853    stable(feature = "neon_intrinsics", since = "1.59.0")
5854)]
5855#[cfg_attr(
5856    target_arch = "arm",
5857    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5858)]
5859pub fn vcgtq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
5860    unsafe { simd_gt(a, b) }
5861}
5862#[doc = "Floating-point compare greater than zero"]
5863#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgtz_f16)"]
5864#[inline]
5865#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
5866#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.f16"))]
5867#[cfg_attr(
5868    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5869    assert_instr(fcmgt)
5870)]
5871#[target_feature(enable = "neon,fp16")]
5872#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
5873#[cfg(not(target_arch = "arm64ec"))]
5874pub fn vcgtz_f16(a: float16x4_t) -> uint16x4_t {
5875    let b: f16x4 = f16x4::new(0.0, 0.0, 0.0, 0.0);
5876    unsafe { simd_gt(a, transmute(b)) }
5877}
5878#[doc = "Floating-point compare greater than zero"]
5879#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgtzq_f16)"]
5880#[inline]
5881#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
5882#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.f16"))]
5883#[cfg_attr(
5884    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5885    assert_instr(fcmgt)
5886)]
5887#[target_feature(enable = "neon,fp16")]
5888#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
5889#[cfg(not(target_arch = "arm64ec"))]
5890pub fn vcgtzq_f16(a: float16x8_t) -> uint16x8_t {
5891    let b: f16x8 = f16x8::new(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
5892    unsafe { simd_gt(a, transmute(b)) }
5893}
5894#[doc = "Floating-point compare less than or equal"]
5895#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcle_f16)"]
5896#[inline]
5897#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
5898#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.f16"))]
5899#[cfg_attr(
5900    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5901    assert_instr(fcmge)
5902)]
5903#[target_feature(enable = "neon,fp16")]
5904#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
5905#[cfg(not(target_arch = "arm64ec"))]
5906pub fn vcle_f16(a: float16x4_t, b: float16x4_t) -> uint16x4_t {
5907    unsafe { simd_le(a, b) }
5908}
5909#[doc = "Floating-point compare less than or equal"]
5910#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcleq_f16)"]
5911#[inline]
5912#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
5913#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.f16"))]
5914#[cfg_attr(
5915    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5916    assert_instr(fcmge)
5917)]
5918#[target_feature(enable = "neon,fp16")]
5919#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
5920#[cfg(not(target_arch = "arm64ec"))]
5921pub fn vcleq_f16(a: float16x8_t, b: float16x8_t) -> uint16x8_t {
5922    unsafe { simd_le(a, b) }
5923}
5924#[doc = "Floating-point compare less than or equal"]
5925#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcle_f32)"]
5926#[inline]
5927#[target_feature(enable = "neon")]
5928#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5929#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.f32"))]
5930#[cfg_attr(
5931    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5932    assert_instr(fcmge)
5933)]
5934#[cfg_attr(
5935    not(target_arch = "arm"),
5936    stable(feature = "neon_intrinsics", since = "1.59.0")
5937)]
5938#[cfg_attr(
5939    target_arch = "arm",
5940    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5941)]
5942pub fn vcle_f32(a: float32x2_t, b: float32x2_t) -> uint32x2_t {
5943    unsafe { simd_le(a, b) }
5944}
5945#[doc = "Floating-point compare less than or equal"]
5946#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcleq_f32)"]
5947#[inline]
5948#[target_feature(enable = "neon")]
5949#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5950#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.f32"))]
5951#[cfg_attr(
5952    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5953    assert_instr(fcmge)
5954)]
5955#[cfg_attr(
5956    not(target_arch = "arm"),
5957    stable(feature = "neon_intrinsics", since = "1.59.0")
5958)]
5959#[cfg_attr(
5960    target_arch = "arm",
5961    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5962)]
5963pub fn vcleq_f32(a: float32x4_t, b: float32x4_t) -> uint32x4_t {
5964    unsafe { simd_le(a, b) }
5965}
5966#[doc = "Compare signed less than or equal"]
5967#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcle_s8)"]
5968#[inline]
5969#[target_feature(enable = "neon")]
5970#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5971#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.s8"))]
5972#[cfg_attr(
5973    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5974    assert_instr(cmge)
5975)]
5976#[cfg_attr(
5977    not(target_arch = "arm"),
5978    stable(feature = "neon_intrinsics", since = "1.59.0")
5979)]
5980#[cfg_attr(
5981    target_arch = "arm",
5982    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5983)]
5984pub fn vcle_s8(a: int8x8_t, b: int8x8_t) -> uint8x8_t {
5985    unsafe { simd_le(a, b) }
5986}
5987#[doc = "Compare signed less than or equal"]
5988#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcleq_s8)"]
5989#[inline]
5990#[target_feature(enable = "neon")]
5991#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5992#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.s8"))]
5993#[cfg_attr(
5994    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5995    assert_instr(cmge)
5996)]
5997#[cfg_attr(
5998    not(target_arch = "arm"),
5999    stable(feature = "neon_intrinsics", since = "1.59.0")
6000)]
6001#[cfg_attr(
6002    target_arch = "arm",
6003    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6004)]
6005pub fn vcleq_s8(a: int8x16_t, b: int8x16_t) -> uint8x16_t {
6006    unsafe { simd_le(a, b) }
6007}
6008#[doc = "Compare signed less than or equal"]
6009#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcle_s16)"]
6010#[inline]
6011#[target_feature(enable = "neon")]
6012#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6013#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.s16"))]
6014#[cfg_attr(
6015    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6016    assert_instr(cmge)
6017)]
6018#[cfg_attr(
6019    not(target_arch = "arm"),
6020    stable(feature = "neon_intrinsics", since = "1.59.0")
6021)]
6022#[cfg_attr(
6023    target_arch = "arm",
6024    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6025)]
6026pub fn vcle_s16(a: int16x4_t, b: int16x4_t) -> uint16x4_t {
6027    unsafe { simd_le(a, b) }
6028}
6029#[doc = "Compare signed less than or equal"]
6030#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcleq_s16)"]
6031#[inline]
6032#[target_feature(enable = "neon")]
6033#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6034#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.s16"))]
6035#[cfg_attr(
6036    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6037    assert_instr(cmge)
6038)]
6039#[cfg_attr(
6040    not(target_arch = "arm"),
6041    stable(feature = "neon_intrinsics", since = "1.59.0")
6042)]
6043#[cfg_attr(
6044    target_arch = "arm",
6045    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6046)]
6047pub fn vcleq_s16(a: int16x8_t, b: int16x8_t) -> uint16x8_t {
6048    unsafe { simd_le(a, b) }
6049}
6050#[doc = "Compare signed less than or equal"]
6051#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcle_s32)"]
6052#[inline]
6053#[target_feature(enable = "neon")]
6054#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6055#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.s32"))]
6056#[cfg_attr(
6057    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6058    assert_instr(cmge)
6059)]
6060#[cfg_attr(
6061    not(target_arch = "arm"),
6062    stable(feature = "neon_intrinsics", since = "1.59.0")
6063)]
6064#[cfg_attr(
6065    target_arch = "arm",
6066    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6067)]
6068pub fn vcle_s32(a: int32x2_t, b: int32x2_t) -> uint32x2_t {
6069    unsafe { simd_le(a, b) }
6070}
6071#[doc = "Compare signed less than or equal"]
6072#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcleq_s32)"]
6073#[inline]
6074#[target_feature(enable = "neon")]
6075#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6076#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.s32"))]
6077#[cfg_attr(
6078    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6079    assert_instr(cmge)
6080)]
6081#[cfg_attr(
6082    not(target_arch = "arm"),
6083    stable(feature = "neon_intrinsics", since = "1.59.0")
6084)]
6085#[cfg_attr(
6086    target_arch = "arm",
6087    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6088)]
6089pub fn vcleq_s32(a: int32x4_t, b: int32x4_t) -> uint32x4_t {
6090    unsafe { simd_le(a, b) }
6091}
6092#[doc = "Compare unsigned less than or equal"]
6093#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcle_u8)"]
6094#[inline]
6095#[target_feature(enable = "neon")]
6096#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6097#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.u8"))]
6098#[cfg_attr(
6099    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6100    assert_instr(cmhs)
6101)]
6102#[cfg_attr(
6103    not(target_arch = "arm"),
6104    stable(feature = "neon_intrinsics", since = "1.59.0")
6105)]
6106#[cfg_attr(
6107    target_arch = "arm",
6108    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6109)]
6110pub fn vcle_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
6111    unsafe { simd_le(a, b) }
6112}
6113#[doc = "Compare unsigned less than or equal"]
6114#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcleq_u8)"]
6115#[inline]
6116#[target_feature(enable = "neon")]
6117#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6118#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.u8"))]
6119#[cfg_attr(
6120    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6121    assert_instr(cmhs)
6122)]
6123#[cfg_attr(
6124    not(target_arch = "arm"),
6125    stable(feature = "neon_intrinsics", since = "1.59.0")
6126)]
6127#[cfg_attr(
6128    target_arch = "arm",
6129    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6130)]
6131pub fn vcleq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
6132    unsafe { simd_le(a, b) }
6133}
6134#[doc = "Compare unsigned less than or equal"]
6135#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcle_u16)"]
6136#[inline]
6137#[target_feature(enable = "neon")]
6138#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6139#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.u16"))]
6140#[cfg_attr(
6141    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6142    assert_instr(cmhs)
6143)]
6144#[cfg_attr(
6145    not(target_arch = "arm"),
6146    stable(feature = "neon_intrinsics", since = "1.59.0")
6147)]
6148#[cfg_attr(
6149    target_arch = "arm",
6150    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6151)]
6152pub fn vcle_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
6153    unsafe { simd_le(a, b) }
6154}
6155#[doc = "Compare unsigned less than or equal"]
6156#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcleq_u16)"]
6157#[inline]
6158#[target_feature(enable = "neon")]
6159#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6160#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.u16"))]
6161#[cfg_attr(
6162    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6163    assert_instr(cmhs)
6164)]
6165#[cfg_attr(
6166    not(target_arch = "arm"),
6167    stable(feature = "neon_intrinsics", since = "1.59.0")
6168)]
6169#[cfg_attr(
6170    target_arch = "arm",
6171    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6172)]
6173pub fn vcleq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
6174    unsafe { simd_le(a, b) }
6175}
6176#[doc = "Compare unsigned less than or equal"]
6177#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcle_u32)"]
6178#[inline]
6179#[target_feature(enable = "neon")]
6180#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6181#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.u32"))]
6182#[cfg_attr(
6183    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6184    assert_instr(cmhs)
6185)]
6186#[cfg_attr(
6187    not(target_arch = "arm"),
6188    stable(feature = "neon_intrinsics", since = "1.59.0")
6189)]
6190#[cfg_attr(
6191    target_arch = "arm",
6192    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6193)]
6194pub fn vcle_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
6195    unsafe { simd_le(a, b) }
6196}
6197#[doc = "Compare unsigned less than or equal"]
6198#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcleq_u32)"]
6199#[inline]
6200#[target_feature(enable = "neon")]
6201#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6202#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.u32"))]
6203#[cfg_attr(
6204    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6205    assert_instr(cmhs)
6206)]
6207#[cfg_attr(
6208    not(target_arch = "arm"),
6209    stable(feature = "neon_intrinsics", since = "1.59.0")
6210)]
6211#[cfg_attr(
6212    target_arch = "arm",
6213    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6214)]
6215pub fn vcleq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
6216    unsafe { simd_le(a, b) }
6217}
6218#[doc = "Floating-point compare less than or equal to zero"]
6219#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclez_f16)"]
6220#[inline]
6221#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
6222#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcle.f16"))]
6223#[cfg_attr(
6224    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6225    assert_instr(fcmle)
6226)]
6227#[target_feature(enable = "neon,fp16")]
6228#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
6229#[cfg(not(target_arch = "arm64ec"))]
6230pub fn vclez_f16(a: float16x4_t) -> uint16x4_t {
6231    let b: f16x4 = f16x4::new(0.0, 0.0, 0.0, 0.0);
6232    unsafe { simd_le(a, transmute(b)) }
6233}
6234#[doc = "Floating-point compare less than or equal to zero"]
6235#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclezq_f16)"]
6236#[inline]
6237#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
6238#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcle.f16"))]
6239#[cfg_attr(
6240    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6241    assert_instr(fcmle)
6242)]
6243#[target_feature(enable = "neon,fp16")]
6244#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
6245#[cfg(not(target_arch = "arm64ec"))]
6246pub fn vclezq_f16(a: float16x8_t) -> uint16x8_t {
6247    let b: f16x8 = f16x8::new(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
6248    unsafe { simd_le(a, transmute(b)) }
6249}
6250#[doc = "Count leading sign bits"]
6251#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcls_s8)"]
6252#[inline]
6253#[target_feature(enable = "neon")]
6254#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6255#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcls.s8"))]
6256#[cfg_attr(
6257    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6258    assert_instr(cls)
6259)]
6260#[cfg_attr(
6261    not(target_arch = "arm"),
6262    stable(feature = "neon_intrinsics", since = "1.59.0")
6263)]
6264#[cfg_attr(
6265    target_arch = "arm",
6266    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6267)]
6268pub fn vcls_s8(a: int8x8_t) -> int8x8_t {
6269    unsafe extern "unadjusted" {
6270        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vcls.v8i8")]
6271        #[cfg_attr(
6272            any(target_arch = "aarch64", target_arch = "arm64ec"),
6273            link_name = "llvm.aarch64.neon.cls.v8i8"
6274        )]
6275        fn _vcls_s8(a: int8x8_t) -> int8x8_t;
6276    }
6277    unsafe { _vcls_s8(a) }
6278}
6279#[doc = "Count leading sign bits"]
6280#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclsq_s8)"]
6281#[inline]
6282#[target_feature(enable = "neon")]
6283#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6284#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcls.s8"))]
6285#[cfg_attr(
6286    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6287    assert_instr(cls)
6288)]
6289#[cfg_attr(
6290    not(target_arch = "arm"),
6291    stable(feature = "neon_intrinsics", since = "1.59.0")
6292)]
6293#[cfg_attr(
6294    target_arch = "arm",
6295    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6296)]
6297pub fn vclsq_s8(a: int8x16_t) -> int8x16_t {
6298    unsafe extern "unadjusted" {
6299        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vcls.v16i8")]
6300        #[cfg_attr(
6301            any(target_arch = "aarch64", target_arch = "arm64ec"),
6302            link_name = "llvm.aarch64.neon.cls.v16i8"
6303        )]
6304        fn _vclsq_s8(a: int8x16_t) -> int8x16_t;
6305    }
6306    unsafe { _vclsq_s8(a) }
6307}
6308#[doc = "Count leading sign bits"]
6309#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcls_s16)"]
6310#[inline]
6311#[target_feature(enable = "neon")]
6312#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6313#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcls.s16"))]
6314#[cfg_attr(
6315    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6316    assert_instr(cls)
6317)]
6318#[cfg_attr(
6319    not(target_arch = "arm"),
6320    stable(feature = "neon_intrinsics", since = "1.59.0")
6321)]
6322#[cfg_attr(
6323    target_arch = "arm",
6324    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6325)]
6326pub fn vcls_s16(a: int16x4_t) -> int16x4_t {
6327    unsafe extern "unadjusted" {
6328        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vcls.v4i16")]
6329        #[cfg_attr(
6330            any(target_arch = "aarch64", target_arch = "arm64ec"),
6331            link_name = "llvm.aarch64.neon.cls.v4i16"
6332        )]
6333        fn _vcls_s16(a: int16x4_t) -> int16x4_t;
6334    }
6335    unsafe { _vcls_s16(a) }
6336}
6337#[doc = "Count leading sign bits"]
6338#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclsq_s16)"]
6339#[inline]
6340#[target_feature(enable = "neon")]
6341#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6342#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcls.s16"))]
6343#[cfg_attr(
6344    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6345    assert_instr(cls)
6346)]
6347#[cfg_attr(
6348    not(target_arch = "arm"),
6349    stable(feature = "neon_intrinsics", since = "1.59.0")
6350)]
6351#[cfg_attr(
6352    target_arch = "arm",
6353    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6354)]
6355pub fn vclsq_s16(a: int16x8_t) -> int16x8_t {
6356    unsafe extern "unadjusted" {
6357        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vcls.v8i16")]
6358        #[cfg_attr(
6359            any(target_arch = "aarch64", target_arch = "arm64ec"),
6360            link_name = "llvm.aarch64.neon.cls.v8i16"
6361        )]
6362        fn _vclsq_s16(a: int16x8_t) -> int16x8_t;
6363    }
6364    unsafe { _vclsq_s16(a) }
6365}
6366#[doc = "Count leading sign bits"]
6367#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcls_s32)"]
6368#[inline]
6369#[target_feature(enable = "neon")]
6370#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6371#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcls.s32"))]
6372#[cfg_attr(
6373    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6374    assert_instr(cls)
6375)]
6376#[cfg_attr(
6377    not(target_arch = "arm"),
6378    stable(feature = "neon_intrinsics", since = "1.59.0")
6379)]
6380#[cfg_attr(
6381    target_arch = "arm",
6382    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6383)]
6384pub fn vcls_s32(a: int32x2_t) -> int32x2_t {
6385    unsafe extern "unadjusted" {
6386        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vcls.v2i32")]
6387        #[cfg_attr(
6388            any(target_arch = "aarch64", target_arch = "arm64ec"),
6389            link_name = "llvm.aarch64.neon.cls.v2i32"
6390        )]
6391        fn _vcls_s32(a: int32x2_t) -> int32x2_t;
6392    }
6393    unsafe { _vcls_s32(a) }
6394}
6395#[doc = "Count leading sign bits"]
6396#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclsq_s32)"]
6397#[inline]
6398#[target_feature(enable = "neon")]
6399#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6400#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcls.s32"))]
6401#[cfg_attr(
6402    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6403    assert_instr(cls)
6404)]
6405#[cfg_attr(
6406    not(target_arch = "arm"),
6407    stable(feature = "neon_intrinsics", since = "1.59.0")
6408)]
6409#[cfg_attr(
6410    target_arch = "arm",
6411    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6412)]
6413pub fn vclsq_s32(a: int32x4_t) -> int32x4_t {
6414    unsafe extern "unadjusted" {
6415        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vcls.v4i32")]
6416        #[cfg_attr(
6417            any(target_arch = "aarch64", target_arch = "arm64ec"),
6418            link_name = "llvm.aarch64.neon.cls.v4i32"
6419        )]
6420        fn _vclsq_s32(a: int32x4_t) -> int32x4_t;
6421    }
6422    unsafe { _vclsq_s32(a) }
6423}
6424#[doc = "Count leading sign bits"]
6425#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcls_u8)"]
6426#[inline]
6427#[target_feature(enable = "neon")]
6428#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6429#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcls))]
6430#[cfg_attr(
6431    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6432    assert_instr(cls)
6433)]
6434#[cfg_attr(
6435    not(target_arch = "arm"),
6436    stable(feature = "neon_intrinsics", since = "1.59.0")
6437)]
6438#[cfg_attr(
6439    target_arch = "arm",
6440    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6441)]
6442pub fn vcls_u8(a: uint8x8_t) -> int8x8_t {
6443    unsafe { vcls_s8(transmute(a)) }
6444}
6445#[doc = "Count leading sign bits"]
6446#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclsq_u8)"]
6447#[inline]
6448#[target_feature(enable = "neon")]
6449#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6450#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcls))]
6451#[cfg_attr(
6452    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6453    assert_instr(cls)
6454)]
6455#[cfg_attr(
6456    not(target_arch = "arm"),
6457    stable(feature = "neon_intrinsics", since = "1.59.0")
6458)]
6459#[cfg_attr(
6460    target_arch = "arm",
6461    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6462)]
6463pub fn vclsq_u8(a: uint8x16_t) -> int8x16_t {
6464    unsafe { vclsq_s8(transmute(a)) }
6465}
6466#[doc = "Count leading sign bits"]
6467#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcls_u16)"]
6468#[inline]
6469#[target_feature(enable = "neon")]
6470#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6471#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcls))]
6472#[cfg_attr(
6473    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6474    assert_instr(cls)
6475)]
6476#[cfg_attr(
6477    not(target_arch = "arm"),
6478    stable(feature = "neon_intrinsics", since = "1.59.0")
6479)]
6480#[cfg_attr(
6481    target_arch = "arm",
6482    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6483)]
6484pub fn vcls_u16(a: uint16x4_t) -> int16x4_t {
6485    unsafe { vcls_s16(transmute(a)) }
6486}
6487#[doc = "Count leading sign bits"]
6488#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclsq_u16)"]
6489#[inline]
6490#[target_feature(enable = "neon")]
6491#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6492#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcls))]
6493#[cfg_attr(
6494    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6495    assert_instr(cls)
6496)]
6497#[cfg_attr(
6498    not(target_arch = "arm"),
6499    stable(feature = "neon_intrinsics", since = "1.59.0")
6500)]
6501#[cfg_attr(
6502    target_arch = "arm",
6503    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6504)]
6505pub fn vclsq_u16(a: uint16x8_t) -> int16x8_t {
6506    unsafe { vclsq_s16(transmute(a)) }
6507}
6508#[doc = "Count leading sign bits"]
6509#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcls_u32)"]
6510#[inline]
6511#[target_feature(enable = "neon")]
6512#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6513#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcls))]
6514#[cfg_attr(
6515    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6516    assert_instr(cls)
6517)]
6518#[cfg_attr(
6519    not(target_arch = "arm"),
6520    stable(feature = "neon_intrinsics", since = "1.59.0")
6521)]
6522#[cfg_attr(
6523    target_arch = "arm",
6524    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6525)]
6526pub fn vcls_u32(a: uint32x2_t) -> int32x2_t {
6527    unsafe { vcls_s32(transmute(a)) }
6528}
6529#[doc = "Count leading sign bits"]
6530#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclsq_u32)"]
6531#[inline]
6532#[target_feature(enable = "neon")]
6533#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6534#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcls))]
6535#[cfg_attr(
6536    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6537    assert_instr(cls)
6538)]
6539#[cfg_attr(
6540    not(target_arch = "arm"),
6541    stable(feature = "neon_intrinsics", since = "1.59.0")
6542)]
6543#[cfg_attr(
6544    target_arch = "arm",
6545    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6546)]
6547pub fn vclsq_u32(a: uint32x4_t) -> int32x4_t {
6548    unsafe { vclsq_s32(transmute(a)) }
6549}
6550#[doc = "Floating-point compare less than"]
6551#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclt_f16)"]
6552#[inline]
6553#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
6554#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.f16"))]
6555#[cfg_attr(
6556    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6557    assert_instr(fcmgt)
6558)]
6559#[target_feature(enable = "neon,fp16")]
6560#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
6561#[cfg(not(target_arch = "arm64ec"))]
6562pub fn vclt_f16(a: float16x4_t, b: float16x4_t) -> uint16x4_t {
6563    unsafe { simd_lt(a, b) }
6564}
6565#[doc = "Floating-point compare less than"]
6566#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcltq_f16)"]
6567#[inline]
6568#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
6569#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.f16"))]
6570#[cfg_attr(
6571    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6572    assert_instr(fcmgt)
6573)]
6574#[target_feature(enable = "neon,fp16")]
6575#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
6576#[cfg(not(target_arch = "arm64ec"))]
6577pub fn vcltq_f16(a: float16x8_t, b: float16x8_t) -> uint16x8_t {
6578    unsafe { simd_lt(a, b) }
6579}
6580#[doc = "Floating-point compare less than"]
6581#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclt_f32)"]
6582#[inline]
6583#[target_feature(enable = "neon")]
6584#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6585#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.f32"))]
6586#[cfg_attr(
6587    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6588    assert_instr(fcmgt)
6589)]
6590#[cfg_attr(
6591    not(target_arch = "arm"),
6592    stable(feature = "neon_intrinsics", since = "1.59.0")
6593)]
6594#[cfg_attr(
6595    target_arch = "arm",
6596    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6597)]
6598pub fn vclt_f32(a: float32x2_t, b: float32x2_t) -> uint32x2_t {
6599    unsafe { simd_lt(a, b) }
6600}
6601#[doc = "Floating-point compare less than"]
6602#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcltq_f32)"]
6603#[inline]
6604#[target_feature(enable = "neon")]
6605#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6606#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.f32"))]
6607#[cfg_attr(
6608    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6609    assert_instr(fcmgt)
6610)]
6611#[cfg_attr(
6612    not(target_arch = "arm"),
6613    stable(feature = "neon_intrinsics", since = "1.59.0")
6614)]
6615#[cfg_attr(
6616    target_arch = "arm",
6617    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6618)]
6619pub fn vcltq_f32(a: float32x4_t, b: float32x4_t) -> uint32x4_t {
6620    unsafe { simd_lt(a, b) }
6621}
6622#[doc = "Compare signed less than"]
6623#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclt_s8)"]
6624#[inline]
6625#[target_feature(enable = "neon")]
6626#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6627#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.s8"))]
6628#[cfg_attr(
6629    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6630    assert_instr(cmgt)
6631)]
6632#[cfg_attr(
6633    not(target_arch = "arm"),
6634    stable(feature = "neon_intrinsics", since = "1.59.0")
6635)]
6636#[cfg_attr(
6637    target_arch = "arm",
6638    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6639)]
6640pub fn vclt_s8(a: int8x8_t, b: int8x8_t) -> uint8x8_t {
6641    unsafe { simd_lt(a, b) }
6642}
6643#[doc = "Compare signed less than"]
6644#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcltq_s8)"]
6645#[inline]
6646#[target_feature(enable = "neon")]
6647#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6648#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.s8"))]
6649#[cfg_attr(
6650    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6651    assert_instr(cmgt)
6652)]
6653#[cfg_attr(
6654    not(target_arch = "arm"),
6655    stable(feature = "neon_intrinsics", since = "1.59.0")
6656)]
6657#[cfg_attr(
6658    target_arch = "arm",
6659    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6660)]
6661pub fn vcltq_s8(a: int8x16_t, b: int8x16_t) -> uint8x16_t {
6662    unsafe { simd_lt(a, b) }
6663}
6664#[doc = "Compare signed less than"]
6665#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclt_s16)"]
6666#[inline]
6667#[target_feature(enable = "neon")]
6668#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6669#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.s16"))]
6670#[cfg_attr(
6671    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6672    assert_instr(cmgt)
6673)]
6674#[cfg_attr(
6675    not(target_arch = "arm"),
6676    stable(feature = "neon_intrinsics", since = "1.59.0")
6677)]
6678#[cfg_attr(
6679    target_arch = "arm",
6680    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6681)]
6682pub fn vclt_s16(a: int16x4_t, b: int16x4_t) -> uint16x4_t {
6683    unsafe { simd_lt(a, b) }
6684}
6685#[doc = "Compare signed less than"]
6686#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcltq_s16)"]
6687#[inline]
6688#[target_feature(enable = "neon")]
6689#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6690#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.s16"))]
6691#[cfg_attr(
6692    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6693    assert_instr(cmgt)
6694)]
6695#[cfg_attr(
6696    not(target_arch = "arm"),
6697    stable(feature = "neon_intrinsics", since = "1.59.0")
6698)]
6699#[cfg_attr(
6700    target_arch = "arm",
6701    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6702)]
6703pub fn vcltq_s16(a: int16x8_t, b: int16x8_t) -> uint16x8_t {
6704    unsafe { simd_lt(a, b) }
6705}
6706#[doc = "Compare signed less than"]
6707#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclt_s32)"]
6708#[inline]
6709#[target_feature(enable = "neon")]
6710#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6711#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.s32"))]
6712#[cfg_attr(
6713    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6714    assert_instr(cmgt)
6715)]
6716#[cfg_attr(
6717    not(target_arch = "arm"),
6718    stable(feature = "neon_intrinsics", since = "1.59.0")
6719)]
6720#[cfg_attr(
6721    target_arch = "arm",
6722    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6723)]
6724pub fn vclt_s32(a: int32x2_t, b: int32x2_t) -> uint32x2_t {
6725    unsafe { simd_lt(a, b) }
6726}
6727#[doc = "Compare signed less than"]
6728#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcltq_s32)"]
6729#[inline]
6730#[target_feature(enable = "neon")]
6731#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6732#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.s32"))]
6733#[cfg_attr(
6734    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6735    assert_instr(cmgt)
6736)]
6737#[cfg_attr(
6738    not(target_arch = "arm"),
6739    stable(feature = "neon_intrinsics", since = "1.59.0")
6740)]
6741#[cfg_attr(
6742    target_arch = "arm",
6743    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6744)]
6745pub fn vcltq_s32(a: int32x4_t, b: int32x4_t) -> uint32x4_t {
6746    unsafe { simd_lt(a, b) }
6747}
6748#[doc = "Compare unsigned less than"]
6749#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclt_u8)"]
6750#[inline]
6751#[target_feature(enable = "neon")]
6752#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6753#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.u8"))]
6754#[cfg_attr(
6755    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6756    assert_instr(cmhi)
6757)]
6758#[cfg_attr(
6759    not(target_arch = "arm"),
6760    stable(feature = "neon_intrinsics", since = "1.59.0")
6761)]
6762#[cfg_attr(
6763    target_arch = "arm",
6764    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6765)]
6766pub fn vclt_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
6767    unsafe { simd_lt(a, b) }
6768}
6769#[doc = "Compare unsigned less than"]
6770#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcltq_u8)"]
6771#[inline]
6772#[target_feature(enable = "neon")]
6773#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6774#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.u8"))]
6775#[cfg_attr(
6776    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6777    assert_instr(cmhi)
6778)]
6779#[cfg_attr(
6780    not(target_arch = "arm"),
6781    stable(feature = "neon_intrinsics", since = "1.59.0")
6782)]
6783#[cfg_attr(
6784    target_arch = "arm",
6785    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6786)]
6787pub fn vcltq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
6788    unsafe { simd_lt(a, b) }
6789}
6790#[doc = "Compare unsigned less than"]
6791#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclt_u16)"]
6792#[inline]
6793#[target_feature(enable = "neon")]
6794#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6795#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.u16"))]
6796#[cfg_attr(
6797    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6798    assert_instr(cmhi)
6799)]
6800#[cfg_attr(
6801    not(target_arch = "arm"),
6802    stable(feature = "neon_intrinsics", since = "1.59.0")
6803)]
6804#[cfg_attr(
6805    target_arch = "arm",
6806    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6807)]
6808pub fn vclt_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
6809    unsafe { simd_lt(a, b) }
6810}
6811#[doc = "Compare unsigned less than"]
6812#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcltq_u16)"]
6813#[inline]
6814#[target_feature(enable = "neon")]
6815#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6816#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.u16"))]
6817#[cfg_attr(
6818    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6819    assert_instr(cmhi)
6820)]
6821#[cfg_attr(
6822    not(target_arch = "arm"),
6823    stable(feature = "neon_intrinsics", since = "1.59.0")
6824)]
6825#[cfg_attr(
6826    target_arch = "arm",
6827    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6828)]
6829pub fn vcltq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
6830    unsafe { simd_lt(a, b) }
6831}
6832#[doc = "Compare unsigned less than"]
6833#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclt_u32)"]
6834#[inline]
6835#[target_feature(enable = "neon")]
6836#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6837#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.u32"))]
6838#[cfg_attr(
6839    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6840    assert_instr(cmhi)
6841)]
6842#[cfg_attr(
6843    not(target_arch = "arm"),
6844    stable(feature = "neon_intrinsics", since = "1.59.0")
6845)]
6846#[cfg_attr(
6847    target_arch = "arm",
6848    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6849)]
6850pub fn vclt_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
6851    unsafe { simd_lt(a, b) }
6852}
6853#[doc = "Compare unsigned less than"]
6854#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcltq_u32)"]
6855#[inline]
6856#[target_feature(enable = "neon")]
6857#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6858#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.u32"))]
6859#[cfg_attr(
6860    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6861    assert_instr(cmhi)
6862)]
6863#[cfg_attr(
6864    not(target_arch = "arm"),
6865    stable(feature = "neon_intrinsics", since = "1.59.0")
6866)]
6867#[cfg_attr(
6868    target_arch = "arm",
6869    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6870)]
6871pub fn vcltq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
6872    unsafe { simd_lt(a, b) }
6873}
6874#[doc = "Floating-point compare less than"]
6875#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcltz_f16)"]
6876#[inline]
6877#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
6878#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vclt.f16"))]
6879#[cfg_attr(
6880    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6881    assert_instr(fcmlt)
6882)]
6883#[target_feature(enable = "neon,fp16")]
6884#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
6885#[cfg(not(target_arch = "arm64ec"))]
6886pub fn vcltz_f16(a: float16x4_t) -> uint16x4_t {
6887    let b: f16x4 = f16x4::new(0.0, 0.0, 0.0, 0.0);
6888    unsafe { simd_lt(a, transmute(b)) }
6889}
6890#[doc = "Floating-point compare less than"]
6891#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcltzq_f16)"]
6892#[inline]
6893#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
6894#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vclt.f16"))]
6895#[cfg_attr(
6896    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6897    assert_instr(fcmlt)
6898)]
6899#[target_feature(enable = "neon,fp16")]
6900#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
6901#[cfg(not(target_arch = "arm64ec"))]
6902pub fn vcltzq_f16(a: float16x8_t) -> uint16x8_t {
6903    let b: f16x8 = f16x8::new(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
6904    unsafe { simd_lt(a, transmute(b)) }
6905}
6906#[doc = "Count leading zero bits"]
6907#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclz_s8)"]
6908#[inline]
6909#[target_feature(enable = "neon")]
6910#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6911#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vclz.i8"))]
6912#[cfg_attr(
6913    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6914    assert_instr(clz)
6915)]
6916#[cfg_attr(
6917    not(target_arch = "arm"),
6918    stable(feature = "neon_intrinsics", since = "1.59.0")
6919)]
6920#[cfg_attr(
6921    target_arch = "arm",
6922    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6923)]
6924pub fn vclz_s8(a: int8x8_t) -> int8x8_t {
6925    unsafe { simd_ctlz(a) }
6926}
6927#[doc = "Count leading zero bits"]
6928#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclzq_s8)"]
6929#[inline]
6930#[target_feature(enable = "neon")]
6931#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6932#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vclz.i8"))]
6933#[cfg_attr(
6934    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6935    assert_instr(clz)
6936)]
6937#[cfg_attr(
6938    not(target_arch = "arm"),
6939    stable(feature = "neon_intrinsics", since = "1.59.0")
6940)]
6941#[cfg_attr(
6942    target_arch = "arm",
6943    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6944)]
6945pub fn vclzq_s8(a: int8x16_t) -> int8x16_t {
6946    unsafe { simd_ctlz(a) }
6947}
6948#[doc = "Count leading zero bits"]
6949#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclz_s16)"]
6950#[inline]
6951#[target_feature(enable = "neon")]
6952#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6953#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vclz.i16"))]
6954#[cfg_attr(
6955    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6956    assert_instr(clz)
6957)]
6958#[cfg_attr(
6959    not(target_arch = "arm"),
6960    stable(feature = "neon_intrinsics", since = "1.59.0")
6961)]
6962#[cfg_attr(
6963    target_arch = "arm",
6964    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6965)]
6966pub fn vclz_s16(a: int16x4_t) -> int16x4_t {
6967    unsafe { simd_ctlz(a) }
6968}
6969#[doc = "Count leading zero bits"]
6970#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclzq_s16)"]
6971#[inline]
6972#[target_feature(enable = "neon")]
6973#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6974#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vclz.i16"))]
6975#[cfg_attr(
6976    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6977    assert_instr(clz)
6978)]
6979#[cfg_attr(
6980    not(target_arch = "arm"),
6981    stable(feature = "neon_intrinsics", since = "1.59.0")
6982)]
6983#[cfg_attr(
6984    target_arch = "arm",
6985    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6986)]
6987pub fn vclzq_s16(a: int16x8_t) -> int16x8_t {
6988    unsafe { simd_ctlz(a) }
6989}
6990#[doc = "Count leading zero bits"]
6991#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclz_s32)"]
6992#[inline]
6993#[target_feature(enable = "neon")]
6994#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6995#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vclz.i32"))]
6996#[cfg_attr(
6997    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6998    assert_instr(clz)
6999)]
7000#[cfg_attr(
7001    not(target_arch = "arm"),
7002    stable(feature = "neon_intrinsics", since = "1.59.0")
7003)]
7004#[cfg_attr(
7005    target_arch = "arm",
7006    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7007)]
7008pub fn vclz_s32(a: int32x2_t) -> int32x2_t {
7009    unsafe { simd_ctlz(a) }
7010}
7011#[doc = "Count leading zero bits"]
7012#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclzq_s32)"]
7013#[inline]
7014#[target_feature(enable = "neon")]
7015#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7016#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vclz.i32"))]
7017#[cfg_attr(
7018    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7019    assert_instr(clz)
7020)]
7021#[cfg_attr(
7022    not(target_arch = "arm"),
7023    stable(feature = "neon_intrinsics", since = "1.59.0")
7024)]
7025#[cfg_attr(
7026    target_arch = "arm",
7027    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7028)]
7029pub fn vclzq_s32(a: int32x4_t) -> int32x4_t {
7030    unsafe { simd_ctlz(a) }
7031}
7032#[doc = "Count leading zero bits"]
7033#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclz_u16)"]
7034#[inline]
7035#[cfg(target_endian = "little")]
7036#[target_feature(enable = "neon")]
7037#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7038#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vclz.i16"))]
7039#[cfg_attr(
7040    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7041    assert_instr(clz)
7042)]
7043#[cfg_attr(
7044    not(target_arch = "arm"),
7045    stable(feature = "neon_intrinsics", since = "1.59.0")
7046)]
7047#[cfg_attr(
7048    target_arch = "arm",
7049    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7050)]
7051pub fn vclz_u16(a: uint16x4_t) -> uint16x4_t {
7052    unsafe { transmute(vclz_s16(transmute(a))) }
7053}
7054#[doc = "Count leading zero bits"]
7055#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclz_u16)"]
7056#[inline]
7057#[cfg(target_endian = "big")]
7058#[target_feature(enable = "neon")]
7059#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7060#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vclz.i16"))]
7061#[cfg_attr(
7062    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7063    assert_instr(clz)
7064)]
7065#[cfg_attr(
7066    not(target_arch = "arm"),
7067    stable(feature = "neon_intrinsics", since = "1.59.0")
7068)]
7069#[cfg_attr(
7070    target_arch = "arm",
7071    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7072)]
7073pub fn vclz_u16(a: uint16x4_t) -> uint16x4_t {
7074    let a: uint16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
7075    unsafe {
7076        let ret_val: uint16x4_t = transmute(vclz_s16(transmute(a)));
7077        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
7078    }
7079}
7080#[doc = "Count leading zero bits"]
7081#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclzq_u16)"]
7082#[inline]
7083#[cfg(target_endian = "little")]
7084#[target_feature(enable = "neon")]
7085#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7086#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vclz.i16"))]
7087#[cfg_attr(
7088    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7089    assert_instr(clz)
7090)]
7091#[cfg_attr(
7092    not(target_arch = "arm"),
7093    stable(feature = "neon_intrinsics", since = "1.59.0")
7094)]
7095#[cfg_attr(
7096    target_arch = "arm",
7097    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7098)]
7099pub fn vclzq_u16(a: uint16x8_t) -> uint16x8_t {
7100    unsafe { transmute(vclzq_s16(transmute(a))) }
7101}
7102#[doc = "Count leading zero bits"]
7103#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclzq_u16)"]
7104#[inline]
7105#[cfg(target_endian = "big")]
7106#[target_feature(enable = "neon")]
7107#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7108#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vclz.i16"))]
7109#[cfg_attr(
7110    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7111    assert_instr(clz)
7112)]
7113#[cfg_attr(
7114    not(target_arch = "arm"),
7115    stable(feature = "neon_intrinsics", since = "1.59.0")
7116)]
7117#[cfg_attr(
7118    target_arch = "arm",
7119    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7120)]
7121pub fn vclzq_u16(a: uint16x8_t) -> uint16x8_t {
7122    let a: uint16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
7123    unsafe {
7124        let ret_val: uint16x8_t = transmute(vclzq_s16(transmute(a)));
7125        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
7126    }
7127}
7128#[doc = "Count leading zero bits"]
7129#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclz_u32)"]
7130#[inline]
7131#[cfg(target_endian = "little")]
7132#[target_feature(enable = "neon")]
7133#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7134#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vclz.i32"))]
7135#[cfg_attr(
7136    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7137    assert_instr(clz)
7138)]
7139#[cfg_attr(
7140    not(target_arch = "arm"),
7141    stable(feature = "neon_intrinsics", since = "1.59.0")
7142)]
7143#[cfg_attr(
7144    target_arch = "arm",
7145    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7146)]
7147pub fn vclz_u32(a: uint32x2_t) -> uint32x2_t {
7148    unsafe { transmute(vclz_s32(transmute(a))) }
7149}
7150#[doc = "Count leading zero bits"]
7151#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclz_u32)"]
7152#[inline]
7153#[cfg(target_endian = "big")]
7154#[target_feature(enable = "neon")]
7155#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7156#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vclz.i32"))]
7157#[cfg_attr(
7158    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7159    assert_instr(clz)
7160)]
7161#[cfg_attr(
7162    not(target_arch = "arm"),
7163    stable(feature = "neon_intrinsics", since = "1.59.0")
7164)]
7165#[cfg_attr(
7166    target_arch = "arm",
7167    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7168)]
7169pub fn vclz_u32(a: uint32x2_t) -> uint32x2_t {
7170    let a: uint32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
7171    unsafe {
7172        let ret_val: uint32x2_t = transmute(vclz_s32(transmute(a)));
7173        simd_shuffle!(ret_val, ret_val, [1, 0])
7174    }
7175}
7176#[doc = "Count leading zero bits"]
7177#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclzq_u32)"]
7178#[inline]
7179#[cfg(target_endian = "little")]
7180#[target_feature(enable = "neon")]
7181#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7182#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vclz.i32"))]
7183#[cfg_attr(
7184    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7185    assert_instr(clz)
7186)]
7187#[cfg_attr(
7188    not(target_arch = "arm"),
7189    stable(feature = "neon_intrinsics", since = "1.59.0")
7190)]
7191#[cfg_attr(
7192    target_arch = "arm",
7193    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7194)]
7195pub fn vclzq_u32(a: uint32x4_t) -> uint32x4_t {
7196    unsafe { transmute(vclzq_s32(transmute(a))) }
7197}
7198#[doc = "Count leading zero bits"]
7199#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclzq_u32)"]
7200#[inline]
7201#[cfg(target_endian = "big")]
7202#[target_feature(enable = "neon")]
7203#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7204#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vclz.i32"))]
7205#[cfg_attr(
7206    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7207    assert_instr(clz)
7208)]
7209#[cfg_attr(
7210    not(target_arch = "arm"),
7211    stable(feature = "neon_intrinsics", since = "1.59.0")
7212)]
7213#[cfg_attr(
7214    target_arch = "arm",
7215    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7216)]
7217pub fn vclzq_u32(a: uint32x4_t) -> uint32x4_t {
7218    let a: uint32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
7219    unsafe {
7220        let ret_val: uint32x4_t = transmute(vclzq_s32(transmute(a)));
7221        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
7222    }
7223}
7224#[doc = "Count leading zero bits"]
7225#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclz_u8)"]
7226#[inline]
7227#[cfg(target_endian = "little")]
7228#[target_feature(enable = "neon")]
7229#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7230#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vclz.i8"))]
7231#[cfg_attr(
7232    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7233    assert_instr(clz)
7234)]
7235#[cfg_attr(
7236    not(target_arch = "arm"),
7237    stable(feature = "neon_intrinsics", since = "1.59.0")
7238)]
7239#[cfg_attr(
7240    target_arch = "arm",
7241    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7242)]
7243pub fn vclz_u8(a: uint8x8_t) -> uint8x8_t {
7244    unsafe { transmute(vclz_s8(transmute(a))) }
7245}
7246#[doc = "Count leading zero bits"]
7247#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclz_u8)"]
7248#[inline]
7249#[cfg(target_endian = "big")]
7250#[target_feature(enable = "neon")]
7251#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7252#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vclz.i8"))]
7253#[cfg_attr(
7254    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7255    assert_instr(clz)
7256)]
7257#[cfg_attr(
7258    not(target_arch = "arm"),
7259    stable(feature = "neon_intrinsics", since = "1.59.0")
7260)]
7261#[cfg_attr(
7262    target_arch = "arm",
7263    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7264)]
7265pub fn vclz_u8(a: uint8x8_t) -> uint8x8_t {
7266    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
7267    unsafe {
7268        let ret_val: uint8x8_t = transmute(vclz_s8(transmute(a)));
7269        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
7270    }
7271}
7272#[doc = "Count leading zero bits"]
7273#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclzq_u8)"]
7274#[inline]
7275#[cfg(target_endian = "little")]
7276#[target_feature(enable = "neon")]
7277#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7278#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vclz.i8"))]
7279#[cfg_attr(
7280    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7281    assert_instr(clz)
7282)]
7283#[cfg_attr(
7284    not(target_arch = "arm"),
7285    stable(feature = "neon_intrinsics", since = "1.59.0")
7286)]
7287#[cfg_attr(
7288    target_arch = "arm",
7289    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7290)]
7291pub fn vclzq_u8(a: uint8x16_t) -> uint8x16_t {
7292    unsafe { transmute(vclzq_s8(transmute(a))) }
7293}
7294#[doc = "Count leading zero bits"]
7295#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclzq_u8)"]
7296#[inline]
7297#[cfg(target_endian = "big")]
7298#[target_feature(enable = "neon")]
7299#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7300#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vclz.i8"))]
7301#[cfg_attr(
7302    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7303    assert_instr(clz)
7304)]
7305#[cfg_attr(
7306    not(target_arch = "arm"),
7307    stable(feature = "neon_intrinsics", since = "1.59.0")
7308)]
7309#[cfg_attr(
7310    target_arch = "arm",
7311    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7312)]
7313pub fn vclzq_u8(a: uint8x16_t) -> uint8x16_t {
7314    let a: uint8x16_t =
7315        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
7316    unsafe {
7317        let ret_val: uint8x16_t = transmute(vclzq_s8(transmute(a)));
7318        simd_shuffle!(
7319            ret_val,
7320            ret_val,
7321            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
7322        )
7323    }
7324}
7325#[doc = "Population count per byte."]
7326#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcnt_s8)"]
7327#[inline]
7328#[target_feature(enable = "neon")]
7329#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7330#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcnt))]
7331#[cfg_attr(
7332    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7333    assert_instr(cnt)
7334)]
7335#[cfg_attr(
7336    not(target_arch = "arm"),
7337    stable(feature = "neon_intrinsics", since = "1.59.0")
7338)]
7339#[cfg_attr(
7340    target_arch = "arm",
7341    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7342)]
7343pub fn vcnt_s8(a: int8x8_t) -> int8x8_t {
7344    unsafe { simd_ctpop(a) }
7345}
7346#[doc = "Population count per byte."]
7347#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcntq_s8)"]
7348#[inline]
7349#[target_feature(enable = "neon")]
7350#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7351#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcnt))]
7352#[cfg_attr(
7353    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7354    assert_instr(cnt)
7355)]
7356#[cfg_attr(
7357    not(target_arch = "arm"),
7358    stable(feature = "neon_intrinsics", since = "1.59.0")
7359)]
7360#[cfg_attr(
7361    target_arch = "arm",
7362    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7363)]
7364pub fn vcntq_s8(a: int8x16_t) -> int8x16_t {
7365    unsafe { simd_ctpop(a) }
7366}
7367#[doc = "Population count per byte."]
7368#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcnt_u8)"]
7369#[inline]
7370#[cfg(target_endian = "little")]
7371#[target_feature(enable = "neon")]
7372#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7373#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcnt))]
7374#[cfg_attr(
7375    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7376    assert_instr(cnt)
7377)]
7378#[cfg_attr(
7379    not(target_arch = "arm"),
7380    stable(feature = "neon_intrinsics", since = "1.59.0")
7381)]
7382#[cfg_attr(
7383    target_arch = "arm",
7384    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7385)]
7386pub fn vcnt_u8(a: uint8x8_t) -> uint8x8_t {
7387    unsafe { transmute(vcnt_s8(transmute(a))) }
7388}
7389#[doc = "Population count per byte."]
7390#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcnt_u8)"]
7391#[inline]
7392#[cfg(target_endian = "big")]
7393#[target_feature(enable = "neon")]
7394#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7395#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcnt))]
7396#[cfg_attr(
7397    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7398    assert_instr(cnt)
7399)]
7400#[cfg_attr(
7401    not(target_arch = "arm"),
7402    stable(feature = "neon_intrinsics", since = "1.59.0")
7403)]
7404#[cfg_attr(
7405    target_arch = "arm",
7406    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7407)]
7408pub fn vcnt_u8(a: uint8x8_t) -> uint8x8_t {
7409    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
7410    unsafe {
7411        let ret_val: uint8x8_t = transmute(vcnt_s8(transmute(a)));
7412        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
7413    }
7414}
7415#[doc = "Population count per byte."]
7416#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcntq_u8)"]
7417#[inline]
7418#[cfg(target_endian = "little")]
7419#[target_feature(enable = "neon")]
7420#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7421#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcnt))]
7422#[cfg_attr(
7423    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7424    assert_instr(cnt)
7425)]
7426#[cfg_attr(
7427    not(target_arch = "arm"),
7428    stable(feature = "neon_intrinsics", since = "1.59.0")
7429)]
7430#[cfg_attr(
7431    target_arch = "arm",
7432    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7433)]
7434pub fn vcntq_u8(a: uint8x16_t) -> uint8x16_t {
7435    unsafe { transmute(vcntq_s8(transmute(a))) }
7436}
7437#[doc = "Population count per byte."]
7438#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcntq_u8)"]
7439#[inline]
7440#[cfg(target_endian = "big")]
7441#[target_feature(enable = "neon")]
7442#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7443#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcnt))]
7444#[cfg_attr(
7445    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7446    assert_instr(cnt)
7447)]
7448#[cfg_attr(
7449    not(target_arch = "arm"),
7450    stable(feature = "neon_intrinsics", since = "1.59.0")
7451)]
7452#[cfg_attr(
7453    target_arch = "arm",
7454    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7455)]
7456pub fn vcntq_u8(a: uint8x16_t) -> uint8x16_t {
7457    let a: uint8x16_t =
7458        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
7459    unsafe {
7460        let ret_val: uint8x16_t = transmute(vcntq_s8(transmute(a)));
7461        simd_shuffle!(
7462            ret_val,
7463            ret_val,
7464            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
7465        )
7466    }
7467}
7468#[doc = "Population count per byte."]
7469#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcnt_p8)"]
7470#[inline]
7471#[cfg(target_endian = "little")]
7472#[target_feature(enable = "neon")]
7473#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7474#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcnt))]
7475#[cfg_attr(
7476    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7477    assert_instr(cnt)
7478)]
7479#[cfg_attr(
7480    not(target_arch = "arm"),
7481    stable(feature = "neon_intrinsics", since = "1.59.0")
7482)]
7483#[cfg_attr(
7484    target_arch = "arm",
7485    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7486)]
7487pub fn vcnt_p8(a: poly8x8_t) -> poly8x8_t {
7488    unsafe { transmute(vcnt_s8(transmute(a))) }
7489}
7490#[doc = "Population count per byte."]
7491#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcnt_p8)"]
7492#[inline]
7493#[cfg(target_endian = "big")]
7494#[target_feature(enable = "neon")]
7495#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7496#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcnt))]
7497#[cfg_attr(
7498    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7499    assert_instr(cnt)
7500)]
7501#[cfg_attr(
7502    not(target_arch = "arm"),
7503    stable(feature = "neon_intrinsics", since = "1.59.0")
7504)]
7505#[cfg_attr(
7506    target_arch = "arm",
7507    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7508)]
7509pub fn vcnt_p8(a: poly8x8_t) -> poly8x8_t {
7510    let a: poly8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
7511    unsafe {
7512        let ret_val: poly8x8_t = transmute(vcnt_s8(transmute(a)));
7513        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
7514    }
7515}
7516#[doc = "Population count per byte."]
7517#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcntq_p8)"]
7518#[inline]
7519#[cfg(target_endian = "little")]
7520#[target_feature(enable = "neon")]
7521#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7522#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcnt))]
7523#[cfg_attr(
7524    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7525    assert_instr(cnt)
7526)]
7527#[cfg_attr(
7528    not(target_arch = "arm"),
7529    stable(feature = "neon_intrinsics", since = "1.59.0")
7530)]
7531#[cfg_attr(
7532    target_arch = "arm",
7533    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7534)]
7535pub fn vcntq_p8(a: poly8x16_t) -> poly8x16_t {
7536    unsafe { transmute(vcntq_s8(transmute(a))) }
7537}
7538#[doc = "Population count per byte."]
7539#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcntq_p8)"]
7540#[inline]
7541#[cfg(target_endian = "big")]
7542#[target_feature(enable = "neon")]
7543#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7544#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcnt))]
7545#[cfg_attr(
7546    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7547    assert_instr(cnt)
7548)]
7549#[cfg_attr(
7550    not(target_arch = "arm"),
7551    stable(feature = "neon_intrinsics", since = "1.59.0")
7552)]
7553#[cfg_attr(
7554    target_arch = "arm",
7555    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7556)]
7557pub fn vcntq_p8(a: poly8x16_t) -> poly8x16_t {
7558    let a: poly8x16_t =
7559        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
7560    unsafe {
7561        let ret_val: poly8x16_t = transmute(vcntq_s8(transmute(a)));
7562        simd_shuffle!(
7563            ret_val,
7564            ret_val,
7565            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
7566        )
7567    }
7568}
7569#[doc = "Join two smaller vectors into a single larger vector"]
7570#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcombine_f16)"]
7571#[inline]
7572#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7573#[target_feature(enable = "neon,fp16")]
7574#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
7575#[cfg(not(target_arch = "arm64ec"))]
7576#[cfg_attr(test, assert_instr(nop))]
7577pub fn vcombine_f16(a: float16x4_t, b: float16x4_t) -> float16x8_t {
7578    unsafe { simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7]) }
7579}
7580#[doc = "Join two smaller vectors into a single larger vector"]
7581#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcombine_f32)"]
7582#[inline]
7583#[target_feature(enable = "neon")]
7584#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7585#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
7586#[cfg_attr(
7587    not(target_arch = "arm"),
7588    stable(feature = "neon_intrinsics", since = "1.59.0")
7589)]
7590#[cfg_attr(
7591    target_arch = "arm",
7592    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7593)]
7594pub fn vcombine_f32(a: float32x2_t, b: float32x2_t) -> float32x4_t {
7595    unsafe { simd_shuffle!(a, b, [0, 1, 2, 3]) }
7596}
7597#[doc = "Join two smaller vectors into a single larger vector"]
7598#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcombine_s8)"]
7599#[inline]
7600#[target_feature(enable = "neon")]
7601#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7602#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
7603#[cfg_attr(
7604    not(target_arch = "arm"),
7605    stable(feature = "neon_intrinsics", since = "1.59.0")
7606)]
7607#[cfg_attr(
7608    target_arch = "arm",
7609    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7610)]
7611pub fn vcombine_s8(a: int8x8_t, b: int8x8_t) -> int8x16_t {
7612    unsafe { simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]) }
7613}
7614#[doc = "Join two smaller vectors into a single larger vector"]
7615#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcombine_s16)"]
7616#[inline]
7617#[target_feature(enable = "neon")]
7618#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7619#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
7620#[cfg_attr(
7621    not(target_arch = "arm"),
7622    stable(feature = "neon_intrinsics", since = "1.59.0")
7623)]
7624#[cfg_attr(
7625    target_arch = "arm",
7626    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7627)]
7628pub fn vcombine_s16(a: int16x4_t, b: int16x4_t) -> int16x8_t {
7629    unsafe { simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7]) }
7630}
7631#[doc = "Join two smaller vectors into a single larger vector"]
7632#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcombine_s32)"]
7633#[inline]
7634#[target_feature(enable = "neon")]
7635#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7636#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
7637#[cfg_attr(
7638    not(target_arch = "arm"),
7639    stable(feature = "neon_intrinsics", since = "1.59.0")
7640)]
7641#[cfg_attr(
7642    target_arch = "arm",
7643    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7644)]
7645pub fn vcombine_s32(a: int32x2_t, b: int32x2_t) -> int32x4_t {
7646    unsafe { simd_shuffle!(a, b, [0, 1, 2, 3]) }
7647}
7648#[doc = "Join two smaller vectors into a single larger vector"]
7649#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcombine_s64)"]
7650#[inline]
7651#[target_feature(enable = "neon")]
7652#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7653#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
7654#[cfg_attr(
7655    not(target_arch = "arm"),
7656    stable(feature = "neon_intrinsics", since = "1.59.0")
7657)]
7658#[cfg_attr(
7659    target_arch = "arm",
7660    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7661)]
7662pub fn vcombine_s64(a: int64x1_t, b: int64x1_t) -> int64x2_t {
7663    unsafe { simd_shuffle!(a, b, [0, 1]) }
7664}
7665#[doc = "Join two smaller vectors into a single larger vector"]
7666#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcombine_u8)"]
7667#[inline]
7668#[target_feature(enable = "neon")]
7669#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7670#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
7671#[cfg_attr(
7672    not(target_arch = "arm"),
7673    stable(feature = "neon_intrinsics", since = "1.59.0")
7674)]
7675#[cfg_attr(
7676    target_arch = "arm",
7677    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7678)]
7679pub fn vcombine_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x16_t {
7680    unsafe { simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]) }
7681}
7682#[doc = "Join two smaller vectors into a single larger vector"]
7683#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcombine_u16)"]
7684#[inline]
7685#[target_feature(enable = "neon")]
7686#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7687#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
7688#[cfg_attr(
7689    not(target_arch = "arm"),
7690    stable(feature = "neon_intrinsics", since = "1.59.0")
7691)]
7692#[cfg_attr(
7693    target_arch = "arm",
7694    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7695)]
7696pub fn vcombine_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x8_t {
7697    unsafe { simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7]) }
7698}
7699#[doc = "Join two smaller vectors into a single larger vector"]
7700#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcombine_u32)"]
7701#[inline]
7702#[target_feature(enable = "neon")]
7703#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7704#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
7705#[cfg_attr(
7706    not(target_arch = "arm"),
7707    stable(feature = "neon_intrinsics", since = "1.59.0")
7708)]
7709#[cfg_attr(
7710    target_arch = "arm",
7711    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7712)]
7713pub fn vcombine_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x4_t {
7714    unsafe { simd_shuffle!(a, b, [0, 1, 2, 3]) }
7715}
7716#[doc = "Join two smaller vectors into a single larger vector"]
7717#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcombine_u64)"]
7718#[inline]
7719#[target_feature(enable = "neon")]
7720#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7721#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
7722#[cfg_attr(
7723    not(target_arch = "arm"),
7724    stable(feature = "neon_intrinsics", since = "1.59.0")
7725)]
7726#[cfg_attr(
7727    target_arch = "arm",
7728    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7729)]
7730pub fn vcombine_u64(a: uint64x1_t, b: uint64x1_t) -> uint64x2_t {
7731    unsafe { simd_shuffle!(a, b, [0, 1]) }
7732}
7733#[doc = "Join two smaller vectors into a single larger vector"]
7734#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcombine_p8)"]
7735#[inline]
7736#[target_feature(enable = "neon")]
7737#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7738#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
7739#[cfg_attr(
7740    not(target_arch = "arm"),
7741    stable(feature = "neon_intrinsics", since = "1.59.0")
7742)]
7743#[cfg_attr(
7744    target_arch = "arm",
7745    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7746)]
7747pub fn vcombine_p8(a: poly8x8_t, b: poly8x8_t) -> poly8x16_t {
7748    unsafe { simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]) }
7749}
7750#[doc = "Join two smaller vectors into a single larger vector"]
7751#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcombine_p16)"]
7752#[inline]
7753#[target_feature(enable = "neon")]
7754#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7755#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
7756#[cfg_attr(
7757    not(target_arch = "arm"),
7758    stable(feature = "neon_intrinsics", since = "1.59.0")
7759)]
7760#[cfg_attr(
7761    target_arch = "arm",
7762    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7763)]
7764pub fn vcombine_p16(a: poly16x4_t, b: poly16x4_t) -> poly16x8_t {
7765    unsafe { simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7]) }
7766}
7767#[doc = "Join two smaller vectors into a single larger vector"]
7768#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcombine_p64)"]
7769#[inline]
7770#[target_feature(enable = "neon")]
7771#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7772#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
7773#[cfg_attr(
7774    not(target_arch = "arm"),
7775    stable(feature = "neon_intrinsics", since = "1.59.0")
7776)]
7777#[cfg_attr(
7778    target_arch = "arm",
7779    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7780)]
7781pub fn vcombine_p64(a: poly64x1_t, b: poly64x1_t) -> poly64x2_t {
7782    unsafe { simd_shuffle!(a, b, [0, 1]) }
7783}
7784#[doc = "Insert vector element from another vector element"]
7785#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcreate_f16)"]
7786#[inline]
7787#[cfg(target_endian = "little")]
7788#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7789#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
7790#[cfg_attr(
7791    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7792    assert_instr(nop)
7793)]
7794#[target_feature(enable = "neon,fp16")]
7795#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
7796#[cfg(not(target_arch = "arm64ec"))]
7797pub fn vcreate_f16(a: u64) -> float16x4_t {
7798    unsafe { transmute(a) }
7799}
7800#[doc = "Insert vector element from another vector element"]
7801#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcreate_f16)"]
7802#[inline]
7803#[cfg(target_endian = "big")]
7804#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7805#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
7806#[cfg_attr(
7807    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7808    assert_instr(nop)
7809)]
7810#[target_feature(enable = "neon,fp16")]
7811#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
7812#[cfg(not(target_arch = "arm64ec"))]
7813pub fn vcreate_f16(a: u64) -> float16x4_t {
7814    unsafe {
7815        let ret_val: float16x4_t = transmute(a);
7816        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
7817    }
7818}
7819#[doc = "Insert vector element from another vector element"]
7820#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcreate_f32)"]
7821#[inline]
7822#[cfg(target_endian = "little")]
7823#[target_feature(enable = "neon")]
7824#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7825#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
7826#[cfg_attr(
7827    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7828    assert_instr(nop)
7829)]
7830#[cfg_attr(
7831    not(target_arch = "arm"),
7832    stable(feature = "neon_intrinsics", since = "1.59.0")
7833)]
7834#[cfg_attr(
7835    target_arch = "arm",
7836    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7837)]
7838pub fn vcreate_f32(a: u64) -> float32x2_t {
7839    unsafe { transmute(a) }
7840}
7841#[doc = "Insert vector element from another vector element"]
7842#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcreate_f32)"]
7843#[inline]
7844#[cfg(target_endian = "big")]
7845#[target_feature(enable = "neon")]
7846#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7847#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
7848#[cfg_attr(
7849    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7850    assert_instr(nop)
7851)]
7852#[cfg_attr(
7853    not(target_arch = "arm"),
7854    stable(feature = "neon_intrinsics", since = "1.59.0")
7855)]
7856#[cfg_attr(
7857    target_arch = "arm",
7858    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7859)]
7860pub fn vcreate_f32(a: u64) -> float32x2_t {
7861    unsafe {
7862        let ret_val: float32x2_t = transmute(a);
7863        simd_shuffle!(ret_val, ret_val, [1, 0])
7864    }
7865}
7866#[doc = "Insert vector element from another vector element"]
7867#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcreate_s8)"]
7868#[inline]
7869#[cfg(target_endian = "little")]
7870#[target_feature(enable = "neon")]
7871#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7872#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
7873#[cfg_attr(
7874    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7875    assert_instr(nop)
7876)]
7877#[cfg_attr(
7878    not(target_arch = "arm"),
7879    stable(feature = "neon_intrinsics", since = "1.59.0")
7880)]
7881#[cfg_attr(
7882    target_arch = "arm",
7883    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7884)]
7885pub fn vcreate_s8(a: u64) -> int8x8_t {
7886    unsafe { transmute(a) }
7887}
7888#[doc = "Insert vector element from another vector element"]
7889#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcreate_s8)"]
7890#[inline]
7891#[cfg(target_endian = "big")]
7892#[target_feature(enable = "neon")]
7893#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7894#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
7895#[cfg_attr(
7896    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7897    assert_instr(nop)
7898)]
7899#[cfg_attr(
7900    not(target_arch = "arm"),
7901    stable(feature = "neon_intrinsics", since = "1.59.0")
7902)]
7903#[cfg_attr(
7904    target_arch = "arm",
7905    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7906)]
7907pub fn vcreate_s8(a: u64) -> int8x8_t {
7908    unsafe {
7909        let ret_val: int8x8_t = transmute(a);
7910        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
7911    }
7912}
7913#[doc = "Insert vector element from another vector element"]
7914#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcreate_s16)"]
7915#[inline]
7916#[cfg(target_endian = "little")]
7917#[target_feature(enable = "neon")]
7918#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7919#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
7920#[cfg_attr(
7921    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7922    assert_instr(nop)
7923)]
7924#[cfg_attr(
7925    not(target_arch = "arm"),
7926    stable(feature = "neon_intrinsics", since = "1.59.0")
7927)]
7928#[cfg_attr(
7929    target_arch = "arm",
7930    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7931)]
7932pub fn vcreate_s16(a: u64) -> int16x4_t {
7933    unsafe { transmute(a) }
7934}
7935#[doc = "Insert vector element from another vector element"]
7936#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcreate_s16)"]
7937#[inline]
7938#[cfg(target_endian = "big")]
7939#[target_feature(enable = "neon")]
7940#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7941#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
7942#[cfg_attr(
7943    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7944    assert_instr(nop)
7945)]
7946#[cfg_attr(
7947    not(target_arch = "arm"),
7948    stable(feature = "neon_intrinsics", since = "1.59.0")
7949)]
7950#[cfg_attr(
7951    target_arch = "arm",
7952    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7953)]
7954pub fn vcreate_s16(a: u64) -> int16x4_t {
7955    unsafe {
7956        let ret_val: int16x4_t = transmute(a);
7957        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
7958    }
7959}
7960#[doc = "Insert vector element from another vector element"]
7961#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcreate_s32)"]
7962#[inline]
7963#[cfg(target_endian = "little")]
7964#[target_feature(enable = "neon")]
7965#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7966#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
7967#[cfg_attr(
7968    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7969    assert_instr(nop)
7970)]
7971#[cfg_attr(
7972    not(target_arch = "arm"),
7973    stable(feature = "neon_intrinsics", since = "1.59.0")
7974)]
7975#[cfg_attr(
7976    target_arch = "arm",
7977    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7978)]
7979pub fn vcreate_s32(a: u64) -> int32x2_t {
7980    unsafe { transmute(a) }
7981}
7982#[doc = "Insert vector element from another vector element"]
7983#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcreate_s32)"]
7984#[inline]
7985#[cfg(target_endian = "big")]
7986#[target_feature(enable = "neon")]
7987#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7988#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
7989#[cfg_attr(
7990    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7991    assert_instr(nop)
7992)]
7993#[cfg_attr(
7994    not(target_arch = "arm"),
7995    stable(feature = "neon_intrinsics", since = "1.59.0")
7996)]
7997#[cfg_attr(
7998    target_arch = "arm",
7999    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
8000)]
8001pub fn vcreate_s32(a: u64) -> int32x2_t {
8002    unsafe {
8003        let ret_val: int32x2_t = transmute(a);
8004        simd_shuffle!(ret_val, ret_val, [1, 0])
8005    }
8006}
8007#[doc = "Insert vector element from another vector element"]
8008#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcreate_s64)"]
8009#[inline]
8010#[target_feature(enable = "neon")]
8011#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8012#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
8013#[cfg_attr(
8014    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8015    assert_instr(nop)
8016)]
8017#[cfg_attr(
8018    not(target_arch = "arm"),
8019    stable(feature = "neon_intrinsics", since = "1.59.0")
8020)]
8021#[cfg_attr(
8022    target_arch = "arm",
8023    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
8024)]
8025pub fn vcreate_s64(a: u64) -> int64x1_t {
8026    unsafe { transmute(a) }
8027}
8028#[doc = "Insert vector element from another vector element"]
8029#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcreate_u8)"]
8030#[inline]
8031#[cfg(target_endian = "little")]
8032#[target_feature(enable = "neon")]
8033#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8034#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
8035#[cfg_attr(
8036    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8037    assert_instr(nop)
8038)]
8039#[cfg_attr(
8040    not(target_arch = "arm"),
8041    stable(feature = "neon_intrinsics", since = "1.59.0")
8042)]
8043#[cfg_attr(
8044    target_arch = "arm",
8045    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
8046)]
8047pub fn vcreate_u8(a: u64) -> uint8x8_t {
8048    unsafe { transmute(a) }
8049}
8050#[doc = "Insert vector element from another vector element"]
8051#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcreate_u8)"]
8052#[inline]
8053#[cfg(target_endian = "big")]
8054#[target_feature(enable = "neon")]
8055#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8056#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
8057#[cfg_attr(
8058    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8059    assert_instr(nop)
8060)]
8061#[cfg_attr(
8062    not(target_arch = "arm"),
8063    stable(feature = "neon_intrinsics", since = "1.59.0")
8064)]
8065#[cfg_attr(
8066    target_arch = "arm",
8067    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
8068)]
8069pub fn vcreate_u8(a: u64) -> uint8x8_t {
8070    unsafe {
8071        let ret_val: uint8x8_t = transmute(a);
8072        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
8073    }
8074}
8075#[doc = "Insert vector element from another vector element"]
8076#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcreate_u16)"]
8077#[inline]
8078#[cfg(target_endian = "little")]
8079#[target_feature(enable = "neon")]
8080#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8081#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
8082#[cfg_attr(
8083    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8084    assert_instr(nop)
8085)]
8086#[cfg_attr(
8087    not(target_arch = "arm"),
8088    stable(feature = "neon_intrinsics", since = "1.59.0")
8089)]
8090#[cfg_attr(
8091    target_arch = "arm",
8092    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
8093)]
8094pub fn vcreate_u16(a: u64) -> uint16x4_t {
8095    unsafe { transmute(a) }
8096}
8097#[doc = "Insert vector element from another vector element"]
8098#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcreate_u16)"]
8099#[inline]
8100#[cfg(target_endian = "big")]
8101#[target_feature(enable = "neon")]
8102#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8103#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
8104#[cfg_attr(
8105    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8106    assert_instr(nop)
8107)]
8108#[cfg_attr(
8109    not(target_arch = "arm"),
8110    stable(feature = "neon_intrinsics", since = "1.59.0")
8111)]
8112#[cfg_attr(
8113    target_arch = "arm",
8114    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
8115)]
8116pub fn vcreate_u16(a: u64) -> uint16x4_t {
8117    unsafe {
8118        let ret_val: uint16x4_t = transmute(a);
8119        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
8120    }
8121}
8122#[doc = "Insert vector element from another vector element"]
8123#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcreate_u32)"]
8124#[inline]
8125#[cfg(target_endian = "little")]
8126#[target_feature(enable = "neon")]
8127#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8128#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
8129#[cfg_attr(
8130    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8131    assert_instr(nop)
8132)]
8133#[cfg_attr(
8134    not(target_arch = "arm"),
8135    stable(feature = "neon_intrinsics", since = "1.59.0")
8136)]
8137#[cfg_attr(
8138    target_arch = "arm",
8139    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
8140)]
8141pub fn vcreate_u32(a: u64) -> uint32x2_t {
8142    unsafe { transmute(a) }
8143}
8144#[doc = "Insert vector element from another vector element"]
8145#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcreate_u32)"]
8146#[inline]
8147#[cfg(target_endian = "big")]
8148#[target_feature(enable = "neon")]
8149#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8150#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
8151#[cfg_attr(
8152    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8153    assert_instr(nop)
8154)]
8155#[cfg_attr(
8156    not(target_arch = "arm"),
8157    stable(feature = "neon_intrinsics", since = "1.59.0")
8158)]
8159#[cfg_attr(
8160    target_arch = "arm",
8161    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
8162)]
8163pub fn vcreate_u32(a: u64) -> uint32x2_t {
8164    unsafe {
8165        let ret_val: uint32x2_t = transmute(a);
8166        simd_shuffle!(ret_val, ret_val, [1, 0])
8167    }
8168}
8169#[doc = "Insert vector element from another vector element"]
8170#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcreate_u64)"]
8171#[inline]
8172#[target_feature(enable = "neon")]
8173#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8174#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
8175#[cfg_attr(
8176    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8177    assert_instr(nop)
8178)]
8179#[cfg_attr(
8180    not(target_arch = "arm"),
8181    stable(feature = "neon_intrinsics", since = "1.59.0")
8182)]
8183#[cfg_attr(
8184    target_arch = "arm",
8185    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
8186)]
8187pub fn vcreate_u64(a: u64) -> uint64x1_t {
8188    unsafe { transmute(a) }
8189}
8190#[doc = "Insert vector element from another vector element"]
8191#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcreate_p8)"]
8192#[inline]
8193#[cfg(target_endian = "little")]
8194#[target_feature(enable = "neon")]
8195#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8196#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
8197#[cfg_attr(
8198    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8199    assert_instr(nop)
8200)]
8201#[cfg_attr(
8202    not(target_arch = "arm"),
8203    stable(feature = "neon_intrinsics", since = "1.59.0")
8204)]
8205#[cfg_attr(
8206    target_arch = "arm",
8207    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
8208)]
8209pub fn vcreate_p8(a: u64) -> poly8x8_t {
8210    unsafe { transmute(a) }
8211}
8212#[doc = "Insert vector element from another vector element"]
8213#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcreate_p8)"]
8214#[inline]
8215#[cfg(target_endian = "big")]
8216#[target_feature(enable = "neon")]
8217#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8218#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
8219#[cfg_attr(
8220    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8221    assert_instr(nop)
8222)]
8223#[cfg_attr(
8224    not(target_arch = "arm"),
8225    stable(feature = "neon_intrinsics", since = "1.59.0")
8226)]
8227#[cfg_attr(
8228    target_arch = "arm",
8229    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
8230)]
8231pub fn vcreate_p8(a: u64) -> poly8x8_t {
8232    unsafe {
8233        let ret_val: poly8x8_t = transmute(a);
8234        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
8235    }
8236}
8237#[doc = "Insert vector element from another vector element"]
8238#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcreate_p16)"]
8239#[inline]
8240#[cfg(target_endian = "little")]
8241#[target_feature(enable = "neon")]
8242#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8243#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
8244#[cfg_attr(
8245    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8246    assert_instr(nop)
8247)]
8248#[cfg_attr(
8249    not(target_arch = "arm"),
8250    stable(feature = "neon_intrinsics", since = "1.59.0")
8251)]
8252#[cfg_attr(
8253    target_arch = "arm",
8254    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
8255)]
8256pub fn vcreate_p16(a: u64) -> poly16x4_t {
8257    unsafe { transmute(a) }
8258}
8259#[doc = "Insert vector element from another vector element"]
8260#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcreate_p16)"]
8261#[inline]
8262#[cfg(target_endian = "big")]
8263#[target_feature(enable = "neon")]
8264#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8265#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
8266#[cfg_attr(
8267    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8268    assert_instr(nop)
8269)]
8270#[cfg_attr(
8271    not(target_arch = "arm"),
8272    stable(feature = "neon_intrinsics", since = "1.59.0")
8273)]
8274#[cfg_attr(
8275    target_arch = "arm",
8276    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
8277)]
8278pub fn vcreate_p16(a: u64) -> poly16x4_t {
8279    unsafe {
8280        let ret_val: poly16x4_t = transmute(a);
8281        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
8282    }
8283}
8284#[doc = "Insert vector element from another vector element"]
8285#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcreate_p64)"]
8286#[inline]
8287#[target_feature(enable = "neon,aes")]
8288#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
8289#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
8290#[cfg_attr(
8291    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8292    assert_instr(nop)
8293)]
8294#[cfg_attr(
8295    not(target_arch = "arm"),
8296    stable(feature = "neon_intrinsics", since = "1.59.0")
8297)]
8298#[cfg_attr(
8299    target_arch = "arm",
8300    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
8301)]
8302pub fn vcreate_p64(a: u64) -> poly64x1_t {
8303    unsafe { transmute(a) }
8304}
8305#[doc = "Floating-point convert to lower precision narrow"]
8306#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvt_f16_f32)"]
8307#[inline]
8308#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8309# [cfg_attr (all (test , target_arch = "arm") , assert_instr (vcvt . f16 . f32))]
8310#[cfg_attr(
8311    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8312    assert_instr(fcvtn)
8313)]
8314#[target_feature(enable = "neon,fp16")]
8315#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
8316#[cfg(not(target_arch = "arm64ec"))]
8317pub fn vcvt_f16_f32(a: float32x4_t) -> float16x4_t {
8318    unsafe { simd_cast(a) }
8319}
8320#[doc = "Fixed-point convert to floating-point"]
8321#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvt_f16_s16)"]
8322#[inline]
8323#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8324#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcvt))]
8325#[cfg_attr(
8326    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8327    assert_instr(scvtf)
8328)]
8329#[target_feature(enable = "neon,fp16")]
8330#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
8331#[cfg(not(target_arch = "arm64ec"))]
8332pub fn vcvt_f16_s16(a: int16x4_t) -> float16x4_t {
8333    unsafe { simd_cast(a) }
8334}
8335#[doc = "Fixed-point convert to floating-point"]
8336#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvtq_f16_s16)"]
8337#[inline]
8338#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8339#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcvt))]
8340#[cfg_attr(
8341    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8342    assert_instr(scvtf)
8343)]
8344#[target_feature(enable = "neon,fp16")]
8345#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
8346#[cfg(not(target_arch = "arm64ec"))]
8347pub fn vcvtq_f16_s16(a: int16x8_t) -> float16x8_t {
8348    unsafe { simd_cast(a) }
8349}
8350#[doc = "Fixed-point convert to floating-point"]
8351#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvt_f16_u16)"]
8352#[inline]
8353#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8354#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcvt))]
8355#[cfg_attr(
8356    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8357    assert_instr(ucvtf)
8358)]
8359#[target_feature(enable = "neon,fp16")]
8360#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
8361#[cfg(not(target_arch = "arm64ec"))]
8362pub fn vcvt_f16_u16(a: uint16x4_t) -> float16x4_t {
8363    unsafe { simd_cast(a) }
8364}
8365#[doc = "Fixed-point convert to floating-point"]
8366#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvtq_f16_u16)"]
8367#[inline]
8368#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8369#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcvt))]
8370#[cfg_attr(
8371    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8372    assert_instr(ucvtf)
8373)]
8374#[target_feature(enable = "neon,fp16")]
8375#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
8376#[cfg(not(target_arch = "arm64ec"))]
8377pub fn vcvtq_f16_u16(a: uint16x8_t) -> float16x8_t {
8378    unsafe { simd_cast(a) }
8379}
8380#[doc = "Floating-point convert to higher precision long"]
8381#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvt_f32_f16)"]
8382#[inline]
8383#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8384#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcvt))]
8385#[cfg_attr(
8386    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8387    assert_instr(fcvtl)
8388)]
8389#[target_feature(enable = "neon,fp16")]
8390#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
8391#[cfg(not(target_arch = "arm64ec"))]
8392pub fn vcvt_f32_f16(a: float16x4_t) -> float32x4_t {
8393    unsafe { simd_cast(a) }
8394}
8395#[doc = "Fixed-point convert to floating-point"]
8396#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvt_f32_s32)"]
8397#[inline]
8398#[target_feature(enable = "neon")]
8399#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8400#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcvt))]
8401#[cfg_attr(
8402    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8403    assert_instr(scvtf)
8404)]
8405#[cfg_attr(
8406    not(target_arch = "arm"),
8407    stable(feature = "neon_intrinsics", since = "1.59.0")
8408)]
8409#[cfg_attr(
8410    target_arch = "arm",
8411    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
8412)]
8413pub fn vcvt_f32_s32(a: int32x2_t) -> float32x2_t {
8414    unsafe { simd_cast(a) }
8415}
8416#[doc = "Fixed-point convert to floating-point"]
8417#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvtq_f32_s32)"]
8418#[inline]
8419#[target_feature(enable = "neon")]
8420#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8421#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcvt))]
8422#[cfg_attr(
8423    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8424    assert_instr(scvtf)
8425)]
8426#[cfg_attr(
8427    not(target_arch = "arm"),
8428    stable(feature = "neon_intrinsics", since = "1.59.0")
8429)]
8430#[cfg_attr(
8431    target_arch = "arm",
8432    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
8433)]
8434pub fn vcvtq_f32_s32(a: int32x4_t) -> float32x4_t {
8435    unsafe { simd_cast(a) }
8436}
8437#[doc = "Fixed-point convert to floating-point"]
8438#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvt_f32_u32)"]
8439#[inline]
8440#[target_feature(enable = "neon")]
8441#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8442#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcvt))]
8443#[cfg_attr(
8444    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8445    assert_instr(ucvtf)
8446)]
8447#[cfg_attr(
8448    not(target_arch = "arm"),
8449    stable(feature = "neon_intrinsics", since = "1.59.0")
8450)]
8451#[cfg_attr(
8452    target_arch = "arm",
8453    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
8454)]
8455pub fn vcvt_f32_u32(a: uint32x2_t) -> float32x2_t {
8456    unsafe { simd_cast(a) }
8457}
8458#[doc = "Fixed-point convert to floating-point"]
8459#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvtq_f32_u32)"]
8460#[inline]
8461#[target_feature(enable = "neon")]
8462#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8463#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcvt))]
8464#[cfg_attr(
8465    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8466    assert_instr(ucvtf)
8467)]
8468#[cfg_attr(
8469    not(target_arch = "arm"),
8470    stable(feature = "neon_intrinsics", since = "1.59.0")
8471)]
8472#[cfg_attr(
8473    target_arch = "arm",
8474    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
8475)]
8476pub fn vcvtq_f32_u32(a: uint32x4_t) -> float32x4_t {
8477    unsafe { simd_cast(a) }
8478}
8479#[doc = "Fixed-point convert to floating-point"]
8480#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvt_n_f16_s16)"]
8481#[inline]
8482#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
8483#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcvt", N = 1))]
8484#[cfg_attr(
8485    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8486    assert_instr(scvtf, N = 1)
8487)]
8488#[rustc_legacy_const_generics(1)]
8489#[target_feature(enable = "neon,fp16")]
8490#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
8491#[cfg(not(target_arch = "arm64ec"))]
8492pub fn vcvt_n_f16_s16<const N: i32>(a: int16x4_t) -> float16x4_t {
8493    static_assert!(N >= 1 && N <= 16);
8494    unsafe extern "unadjusted" {
8495        #[cfg_attr(
8496            target_arch = "arm",
8497            link_name = "llvm.arm.neon.vcvtfxs2fp.v4f16.v4i16"
8498        )]
8499        #[cfg_attr(
8500            any(target_arch = "aarch64", target_arch = "arm64ec"),
8501            link_name = "llvm.aarch64.neon.vcvtfxs2fp.v4f16.v4i16"
8502        )]
8503        fn _vcvt_n_f16_s16(a: int16x4_t, n: i32) -> float16x4_t;
8504    }
8505    unsafe { _vcvt_n_f16_s16(a, N) }
8506}
8507#[doc = "Fixed-point convert to floating-point"]
8508#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvtq_n_f16_s16)"]
8509#[inline]
8510#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
8511#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcvt", N = 1))]
8512#[cfg_attr(
8513    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8514    assert_instr(scvtf, N = 1)
8515)]
8516#[rustc_legacy_const_generics(1)]
8517#[target_feature(enable = "neon,fp16")]
8518#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
8519#[cfg(not(target_arch = "arm64ec"))]
8520pub fn vcvtq_n_f16_s16<const N: i32>(a: int16x8_t) -> float16x8_t {
8521    static_assert!(N >= 1 && N <= 16);
8522    unsafe extern "unadjusted" {
8523        #[cfg_attr(
8524            target_arch = "arm",
8525            link_name = "llvm.arm.neon.vcvtfxs2fp.v8f16.v8i16"
8526        )]
8527        #[cfg_attr(
8528            any(target_arch = "aarch64", target_arch = "arm64ec"),
8529            link_name = "llvm.aarch64.neon.vcvtfxs2fp.v8f16.v8i16"
8530        )]
8531        fn _vcvtq_n_f16_s16(a: int16x8_t, n: i32) -> float16x8_t;
8532    }
8533    unsafe { _vcvtq_n_f16_s16(a, N) }
8534}
8535#[doc = "Fixed-point convert to floating-point"]
8536#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvt_n_f16_u16)"]
8537#[inline]
8538#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
8539#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcvt", N = 1))]
8540#[cfg_attr(
8541    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8542    assert_instr(ucvtf, N = 1)
8543)]
8544#[rustc_legacy_const_generics(1)]
8545#[target_feature(enable = "neon,fp16")]
8546#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
8547#[cfg(not(target_arch = "arm64ec"))]
8548pub fn vcvt_n_f16_u16<const N: i32>(a: uint16x4_t) -> float16x4_t {
8549    static_assert!(N >= 1 && N <= 16);
8550    unsafe extern "unadjusted" {
8551        #[cfg_attr(
8552            target_arch = "arm",
8553            link_name = "llvm.arm.neon.vcvtfxu2fp.v4f16.v4i16"
8554        )]
8555        #[cfg_attr(
8556            any(target_arch = "aarch64", target_arch = "arm64ec"),
8557            link_name = "llvm.aarch64.neon.vcvtfxu2fp.v4f16.v4i16"
8558        )]
8559        fn _vcvt_n_f16_u16(a: uint16x4_t, n: i32) -> float16x4_t;
8560    }
8561    unsafe { _vcvt_n_f16_u16(a, N) }
8562}
8563#[doc = "Fixed-point convert to floating-point"]
8564#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvtq_n_f16_u16)"]
8565#[inline]
8566#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
8567#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcvt", N = 1))]
8568#[cfg_attr(
8569    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8570    assert_instr(ucvtf, N = 1)
8571)]
8572#[rustc_legacy_const_generics(1)]
8573#[target_feature(enable = "neon,fp16")]
8574#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
8575#[cfg(not(target_arch = "arm64ec"))]
8576pub fn vcvtq_n_f16_u16<const N: i32>(a: uint16x8_t) -> float16x8_t {
8577    static_assert!(N >= 1 && N <= 16);
8578    unsafe extern "unadjusted" {
8579        #[cfg_attr(
8580            target_arch = "arm",
8581            link_name = "llvm.arm.neon.vcvtfxu2fp.v8f16.v8i16"
8582        )]
8583        #[cfg_attr(
8584            any(target_arch = "aarch64", target_arch = "arm64ec"),
8585            link_name = "llvm.aarch64.neon.vcvtfxu2fp.v8f16.v8i16"
8586        )]
8587        fn _vcvtq_n_f16_u16(a: uint16x8_t, n: i32) -> float16x8_t;
8588    }
8589    unsafe { _vcvtq_n_f16_u16(a, N) }
8590}
8591#[doc = "Fixed-point convert to floating-point"]
8592#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvt_n_f32_s32)"]
8593#[inline]
8594#[cfg(target_arch = "arm")]
8595#[target_feature(enable = "neon,v7")]
8596#[cfg_attr(test, assert_instr(vcvt, N = 2))]
8597#[rustc_legacy_const_generics(1)]
8598#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
8599pub fn vcvt_n_f32_s32<const N: i32>(a: int32x2_t) -> float32x2_t {
8600    static_assert!(N >= 1 && N <= 32);
8601    unsafe extern "unadjusted" {
8602        #[cfg_attr(
8603            target_arch = "arm",
8604            link_name = "llvm.arm.neon.vcvtfxs2fp.v2f32.v2i32"
8605        )]
8606        fn _vcvt_n_f32_s32(a: int32x2_t, n: i32) -> float32x2_t;
8607    }
8608    unsafe { _vcvt_n_f32_s32(a, N) }
8609}
8610#[doc = "Fixed-point convert to floating-point"]
8611#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvtq_n_f32_s32)"]
8612#[inline]
8613#[cfg(target_arch = "arm")]
8614#[target_feature(enable = "neon,v7")]
8615#[cfg_attr(test, assert_instr(vcvt, N = 2))]
8616#[rustc_legacy_const_generics(1)]
8617#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
8618pub fn vcvtq_n_f32_s32<const N: i32>(a: int32x4_t) -> float32x4_t {
8619    static_assert!(N >= 1 && N <= 32);
8620    unsafe extern "unadjusted" {
8621        #[cfg_attr(
8622            target_arch = "arm",
8623            link_name = "llvm.arm.neon.vcvtfxs2fp.v4f32.v4i32"
8624        )]
8625        fn _vcvtq_n_f32_s32(a: int32x4_t, n: i32) -> float32x4_t;
8626    }
8627    unsafe { _vcvtq_n_f32_s32(a, N) }
8628}
8629#[doc = "Fixed-point convert to floating-point"]
8630#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvt_n_f32_s32)"]
8631#[inline]
8632#[target_feature(enable = "neon")]
8633#[cfg(not(target_arch = "arm"))]
8634#[cfg_attr(test, assert_instr(scvtf, N = 2))]
8635#[rustc_legacy_const_generics(1)]
8636#[stable(feature = "neon_intrinsics", since = "1.59.0")]
8637pub fn vcvt_n_f32_s32<const N: i32>(a: int32x2_t) -> float32x2_t {
8638    static_assert!(N >= 1 && N <= 32);
8639    unsafe extern "unadjusted" {
8640        #[cfg_attr(
8641            any(target_arch = "aarch64", target_arch = "arm64ec"),
8642            link_name = "llvm.aarch64.neon.vcvtfxs2fp.v2f32.v2i32"
8643        )]
8644        fn _vcvt_n_f32_s32(a: int32x2_t, n: i32) -> float32x2_t;
8645    }
8646    unsafe { _vcvt_n_f32_s32(a, N) }
8647}
8648#[doc = "Fixed-point convert to floating-point"]
8649#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvtq_n_f32_s32)"]
8650#[inline]
8651#[target_feature(enable = "neon")]
8652#[cfg(not(target_arch = "arm"))]
8653#[cfg_attr(test, assert_instr(scvtf, N = 2))]
8654#[rustc_legacy_const_generics(1)]
8655#[stable(feature = "neon_intrinsics", since = "1.59.0")]
8656pub fn vcvtq_n_f32_s32<const N: i32>(a: int32x4_t) -> float32x4_t {
8657    static_assert!(N >= 1 && N <= 32);
8658    unsafe extern "unadjusted" {
8659        #[cfg_attr(
8660            any(target_arch = "aarch64", target_arch = "arm64ec"),
8661            link_name = "llvm.aarch64.neon.vcvtfxs2fp.v4f32.v4i32"
8662        )]
8663        fn _vcvtq_n_f32_s32(a: int32x4_t, n: i32) -> float32x4_t;
8664    }
8665    unsafe { _vcvtq_n_f32_s32(a, N) }
8666}
8667#[doc = "Fixed-point convert to floating-point"]
8668#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvt_n_f32_u32)"]
8669#[inline]
8670#[cfg(target_arch = "arm")]
8671#[target_feature(enable = "neon,v7")]
8672#[cfg_attr(test, assert_instr(vcvt, N = 2))]
8673#[rustc_legacy_const_generics(1)]
8674#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
8675pub fn vcvt_n_f32_u32<const N: i32>(a: uint32x2_t) -> float32x2_t {
8676    static_assert!(N >= 1 && N <= 32);
8677    unsafe extern "unadjusted" {
8678        #[cfg_attr(
8679            target_arch = "arm",
8680            link_name = "llvm.arm.neon.vcvtfxu2fp.v2f32.v2i32"
8681        )]
8682        fn _vcvt_n_f32_u32(a: uint32x2_t, n: i32) -> float32x2_t;
8683    }
8684    unsafe { _vcvt_n_f32_u32(a, N) }
8685}
8686#[doc = "Fixed-point convert to floating-point"]
8687#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvtq_n_f32_u32)"]
8688#[inline]
8689#[cfg(target_arch = "arm")]
8690#[target_feature(enable = "neon,v7")]
8691#[cfg_attr(test, assert_instr(vcvt, N = 2))]
8692#[rustc_legacy_const_generics(1)]
8693#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
8694pub fn vcvtq_n_f32_u32<const N: i32>(a: uint32x4_t) -> float32x4_t {
8695    static_assert!(N >= 1 && N <= 32);
8696    unsafe extern "unadjusted" {
8697        #[cfg_attr(
8698            target_arch = "arm",
8699            link_name = "llvm.arm.neon.vcvtfxu2fp.v4f32.v4i32"
8700        )]
8701        fn _vcvtq_n_f32_u32(a: uint32x4_t, n: i32) -> float32x4_t;
8702    }
8703    unsafe { _vcvtq_n_f32_u32(a, N) }
8704}
8705#[doc = "Fixed-point convert to floating-point"]
8706#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvt_n_f32_u32)"]
8707#[inline]
8708#[target_feature(enable = "neon")]
8709#[cfg(not(target_arch = "arm"))]
8710#[cfg_attr(test, assert_instr(ucvtf, N = 2))]
8711#[rustc_legacy_const_generics(1)]
8712#[stable(feature = "neon_intrinsics", since = "1.59.0")]
8713pub fn vcvt_n_f32_u32<const N: i32>(a: uint32x2_t) -> float32x2_t {
8714    static_assert!(N >= 1 && N <= 32);
8715    unsafe extern "unadjusted" {
8716        #[cfg_attr(
8717            any(target_arch = "aarch64", target_arch = "arm64ec"),
8718            link_name = "llvm.aarch64.neon.vcvtfxu2fp.v2f32.v2i32"
8719        )]
8720        fn _vcvt_n_f32_u32(a: uint32x2_t, n: i32) -> float32x2_t;
8721    }
8722    unsafe { _vcvt_n_f32_u32(a, N) }
8723}
8724#[doc = "Fixed-point convert to floating-point"]
8725#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvtq_n_f32_u32)"]
8726#[inline]
8727#[target_feature(enable = "neon")]
8728#[cfg(not(target_arch = "arm"))]
8729#[cfg_attr(test, assert_instr(ucvtf, N = 2))]
8730#[rustc_legacy_const_generics(1)]
8731#[stable(feature = "neon_intrinsics", since = "1.59.0")]
8732pub fn vcvtq_n_f32_u32<const N: i32>(a: uint32x4_t) -> float32x4_t {
8733    static_assert!(N >= 1 && N <= 32);
8734    unsafe extern "unadjusted" {
8735        #[cfg_attr(
8736            any(target_arch = "aarch64", target_arch = "arm64ec"),
8737            link_name = "llvm.aarch64.neon.vcvtfxu2fp.v4f32.v4i32"
8738        )]
8739        fn _vcvtq_n_f32_u32(a: uint32x4_t, n: i32) -> float32x4_t;
8740    }
8741    unsafe { _vcvtq_n_f32_u32(a, N) }
8742}
8743#[doc = "Floating-point convert to signed fixed-point"]
8744#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvt_n_s16_f16)"]
8745#[inline]
8746#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
8747#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcvt", N = 1))]
8748#[cfg_attr(
8749    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8750    assert_instr(fcvtzs, N = 1)
8751)]
8752#[rustc_legacy_const_generics(1)]
8753#[target_feature(enable = "neon,fp16")]
8754#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
8755#[cfg(not(target_arch = "arm64ec"))]
8756pub fn vcvt_n_s16_f16<const N: i32>(a: float16x4_t) -> int16x4_t {
8757    static_assert!(N >= 1 && N <= 16);
8758    unsafe extern "unadjusted" {
8759        #[cfg_attr(
8760            target_arch = "arm",
8761            link_name = "llvm.arm.neon.vcvtfp2fxs.v4i16.v4f16"
8762        )]
8763        #[cfg_attr(
8764            any(target_arch = "aarch64", target_arch = "arm64ec"),
8765            link_name = "llvm.aarch64.neon.vcvtfp2fxs.v4i16.v4f16"
8766        )]
8767        fn _vcvt_n_s16_f16(a: float16x4_t, n: i32) -> int16x4_t;
8768    }
8769    unsafe { _vcvt_n_s16_f16(a, N) }
8770}
8771#[doc = "Floating-point convert to signed fixed-point"]
8772#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvtq_n_s16_f16)"]
8773#[inline]
8774#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
8775#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcvt", N = 1))]
8776#[cfg_attr(
8777    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8778    assert_instr(fcvtzs, N = 1)
8779)]
8780#[rustc_legacy_const_generics(1)]
8781#[target_feature(enable = "neon,fp16")]
8782#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
8783#[cfg(not(target_arch = "arm64ec"))]
8784pub fn vcvtq_n_s16_f16<const N: i32>(a: float16x8_t) -> int16x8_t {
8785    static_assert!(N >= 1 && N <= 16);
8786    unsafe extern "unadjusted" {
8787        #[cfg_attr(
8788            target_arch = "arm",
8789            link_name = "llvm.arm.neon.vcvtfp2fxs.v8i16.v8f16"
8790        )]
8791        #[cfg_attr(
8792            any(target_arch = "aarch64", target_arch = "arm64ec"),
8793            link_name = "llvm.aarch64.neon.vcvtfp2fxs.v8i16.v8f16"
8794        )]
8795        fn _vcvtq_n_s16_f16(a: float16x8_t, n: i32) -> int16x8_t;
8796    }
8797    unsafe { _vcvtq_n_s16_f16(a, N) }
8798}
8799#[doc = "Floating-point convert to fixed-point, rounding toward zero"]
8800#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvt_n_s32_f32)"]
8801#[inline]
8802#[cfg(target_arch = "arm")]
8803#[target_feature(enable = "neon,v7")]
8804#[cfg_attr(test, assert_instr(vcvt, N = 2))]
8805#[rustc_legacy_const_generics(1)]
8806#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
8807pub fn vcvt_n_s32_f32<const N: i32>(a: float32x2_t) -> int32x2_t {
8808    static_assert!(N >= 1 && N <= 32);
8809    unsafe extern "unadjusted" {
8810        #[cfg_attr(
8811            target_arch = "arm",
8812            link_name = "llvm.arm.neon.vcvtfp2fxs.v2i32.v2f32"
8813        )]
8814        fn _vcvt_n_s32_f32(a: float32x2_t, n: i32) -> int32x2_t;
8815    }
8816    unsafe { _vcvt_n_s32_f32(a, N) }
8817}
8818#[doc = "Floating-point convert to fixed-point, rounding toward zero"]
8819#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvtq_n_s32_f32)"]
8820#[inline]
8821#[cfg(target_arch = "arm")]
8822#[target_feature(enable = "neon,v7")]
8823#[cfg_attr(test, assert_instr(vcvt, N = 2))]
8824#[rustc_legacy_const_generics(1)]
8825#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
8826pub fn vcvtq_n_s32_f32<const N: i32>(a: float32x4_t) -> int32x4_t {
8827    static_assert!(N >= 1 && N <= 32);
8828    unsafe extern "unadjusted" {
8829        #[cfg_attr(
8830            target_arch = "arm",
8831            link_name = "llvm.arm.neon.vcvtfp2fxs.v4i32.v4f32"
8832        )]
8833        fn _vcvtq_n_s32_f32(a: float32x4_t, n: i32) -> int32x4_t;
8834    }
8835    unsafe { _vcvtq_n_s32_f32(a, N) }
8836}
8837#[doc = "Floating-point convert to fixed-point, rounding toward zero"]
8838#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvt_n_s32_f32)"]
8839#[inline]
8840#[target_feature(enable = "neon")]
8841#[cfg(not(target_arch = "arm"))]
8842#[cfg_attr(test, assert_instr(fcvtzs, N = 2))]
8843#[rustc_legacy_const_generics(1)]
8844#[stable(feature = "neon_intrinsics", since = "1.59.0")]
8845pub fn vcvt_n_s32_f32<const N: i32>(a: float32x2_t) -> int32x2_t {
8846    static_assert!(N >= 1 && N <= 32);
8847    unsafe extern "unadjusted" {
8848        #[cfg_attr(
8849            any(target_arch = "aarch64", target_arch = "arm64ec"),
8850            link_name = "llvm.aarch64.neon.vcvtfp2fxs.v2i32.v2f32"
8851        )]
8852        fn _vcvt_n_s32_f32(a: float32x2_t, n: i32) -> int32x2_t;
8853    }
8854    unsafe { _vcvt_n_s32_f32(a, N) }
8855}
8856#[doc = "Floating-point convert to fixed-point, rounding toward zero"]
8857#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvtq_n_s32_f32)"]
8858#[inline]
8859#[target_feature(enable = "neon")]
8860#[cfg(not(target_arch = "arm"))]
8861#[cfg_attr(test, assert_instr(fcvtzs, N = 2))]
8862#[rustc_legacy_const_generics(1)]
8863#[stable(feature = "neon_intrinsics", since = "1.59.0")]
8864pub fn vcvtq_n_s32_f32<const N: i32>(a: float32x4_t) -> int32x4_t {
8865    static_assert!(N >= 1 && N <= 32);
8866    unsafe extern "unadjusted" {
8867        #[cfg_attr(
8868            any(target_arch = "aarch64", target_arch = "arm64ec"),
8869            link_name = "llvm.aarch64.neon.vcvtfp2fxs.v4i32.v4f32"
8870        )]
8871        fn _vcvtq_n_s32_f32(a: float32x4_t, n: i32) -> int32x4_t;
8872    }
8873    unsafe { _vcvtq_n_s32_f32(a, N) }
8874}
8875#[doc = "Fixed-point convert to unsigned fixed-point, rounding toward zero"]
8876#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvt_n_u16_f16)"]
8877#[inline]
8878#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
8879#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcvt", N = 1))]
8880#[cfg_attr(
8881    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8882    assert_instr(fcvtzu, N = 1)
8883)]
8884#[rustc_legacy_const_generics(1)]
8885#[target_feature(enable = "neon,fp16")]
8886#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
8887#[cfg(not(target_arch = "arm64ec"))]
8888pub fn vcvt_n_u16_f16<const N: i32>(a: float16x4_t) -> uint16x4_t {
8889    static_assert!(N >= 1 && N <= 16);
8890    unsafe extern "unadjusted" {
8891        #[cfg_attr(
8892            target_arch = "arm",
8893            link_name = "llvm.arm.neon.vcvtfp2fxu.v4i16.v4f16"
8894        )]
8895        #[cfg_attr(
8896            any(target_arch = "aarch64", target_arch = "arm64ec"),
8897            link_name = "llvm.aarch64.neon.vcvtfp2fxu.v4i16.v4f16"
8898        )]
8899        fn _vcvt_n_u16_f16(a: float16x4_t, n: i32) -> uint16x4_t;
8900    }
8901    unsafe { _vcvt_n_u16_f16(a, N) }
8902}
8903#[doc = "Fixed-point convert to unsigned fixed-point, rounding toward zero"]
8904#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvtq_n_u16_f16)"]
8905#[inline]
8906#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
8907#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcvt", N = 1))]
8908#[cfg_attr(
8909    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8910    assert_instr(fcvtzu, N = 1)
8911)]
8912#[rustc_legacy_const_generics(1)]
8913#[target_feature(enable = "neon,fp16")]
8914#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
8915#[cfg(not(target_arch = "arm64ec"))]
8916pub fn vcvtq_n_u16_f16<const N: i32>(a: float16x8_t) -> uint16x8_t {
8917    static_assert!(N >= 1 && N <= 16);
8918    unsafe extern "unadjusted" {
8919        #[cfg_attr(
8920            target_arch = "arm",
8921            link_name = "llvm.arm.neon.vcvtfp2fxu.v8i16.v8f16"
8922        )]
8923        #[cfg_attr(
8924            any(target_arch = "aarch64", target_arch = "arm64ec"),
8925            link_name = "llvm.aarch64.neon.vcvtfp2fxu.v8i16.v8f16"
8926        )]
8927        fn _vcvtq_n_u16_f16(a: float16x8_t, n: i32) -> uint16x8_t;
8928    }
8929    unsafe { _vcvtq_n_u16_f16(a, N) }
8930}
8931#[doc = "Floating-point convert to fixed-point, rounding toward zero"]
8932#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvt_n_u32_f32)"]
8933#[inline]
8934#[cfg(target_arch = "arm")]
8935#[target_feature(enable = "neon,v7")]
8936#[cfg_attr(test, assert_instr(vcvt, N = 2))]
8937#[rustc_legacy_const_generics(1)]
8938#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
8939pub fn vcvt_n_u32_f32<const N: i32>(a: float32x2_t) -> uint32x2_t {
8940    static_assert!(N >= 1 && N <= 32);
8941    unsafe extern "unadjusted" {
8942        #[cfg_attr(
8943            target_arch = "arm",
8944            link_name = "llvm.arm.neon.vcvtfp2fxu.v2i32.v2f32"
8945        )]
8946        fn _vcvt_n_u32_f32(a: float32x2_t, n: i32) -> uint32x2_t;
8947    }
8948    unsafe { _vcvt_n_u32_f32(a, N) }
8949}
8950#[doc = "Floating-point convert to fixed-point, rounding toward zero"]
8951#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvtq_n_u32_f32)"]
8952#[inline]
8953#[cfg(target_arch = "arm")]
8954#[target_feature(enable = "neon,v7")]
8955#[cfg_attr(test, assert_instr(vcvt, N = 2))]
8956#[rustc_legacy_const_generics(1)]
8957#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
8958pub fn vcvtq_n_u32_f32<const N: i32>(a: float32x4_t) -> uint32x4_t {
8959    static_assert!(N >= 1 && N <= 32);
8960    unsafe extern "unadjusted" {
8961        #[cfg_attr(
8962            target_arch = "arm",
8963            link_name = "llvm.arm.neon.vcvtfp2fxu.v4i32.v4f32"
8964        )]
8965        fn _vcvtq_n_u32_f32(a: float32x4_t, n: i32) -> uint32x4_t;
8966    }
8967    unsafe { _vcvtq_n_u32_f32(a, N) }
8968}
8969#[doc = "Floating-point convert to fixed-point, rounding toward zero"]
8970#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvt_n_u32_f32)"]
8971#[inline]
8972#[target_feature(enable = "neon")]
8973#[cfg(not(target_arch = "arm"))]
8974#[cfg_attr(test, assert_instr(fcvtzu, N = 2))]
8975#[rustc_legacy_const_generics(1)]
8976#[stable(feature = "neon_intrinsics", since = "1.59.0")]
8977pub fn vcvt_n_u32_f32<const N: i32>(a: float32x2_t) -> uint32x2_t {
8978    static_assert!(N >= 1 && N <= 32);
8979    unsafe extern "unadjusted" {
8980        #[cfg_attr(
8981            any(target_arch = "aarch64", target_arch = "arm64ec"),
8982            link_name = "llvm.aarch64.neon.vcvtfp2fxu.v2i32.v2f32"
8983        )]
8984        fn _vcvt_n_u32_f32(a: float32x2_t, n: i32) -> uint32x2_t;
8985    }
8986    unsafe { _vcvt_n_u32_f32(a, N) }
8987}
8988#[doc = "Floating-point convert to fixed-point, rounding toward zero"]
8989#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvtq_n_u32_f32)"]
8990#[inline]
8991#[target_feature(enable = "neon")]
8992#[cfg(not(target_arch = "arm"))]
8993#[cfg_attr(test, assert_instr(fcvtzu, N = 2))]
8994#[rustc_legacy_const_generics(1)]
8995#[stable(feature = "neon_intrinsics", since = "1.59.0")]
8996pub fn vcvtq_n_u32_f32<const N: i32>(a: float32x4_t) -> uint32x4_t {
8997    static_assert!(N >= 1 && N <= 32);
8998    unsafe extern "unadjusted" {
8999        #[cfg_attr(
9000            any(target_arch = "aarch64", target_arch = "arm64ec"),
9001            link_name = "llvm.aarch64.neon.vcvtfp2fxu.v4i32.v4f32"
9002        )]
9003        fn _vcvtq_n_u32_f32(a: float32x4_t, n: i32) -> uint32x4_t;
9004    }
9005    unsafe { _vcvtq_n_u32_f32(a, N) }
9006}
9007#[doc = "Floating-point convert to signed fixed-point, rounding toward zero"]
9008#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvt_s16_f16)"]
9009#[inline]
9010#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9011#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcvt))]
9012#[cfg_attr(
9013    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9014    assert_instr(fcvtzs)
9015)]
9016#[target_feature(enable = "neon,fp16")]
9017#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
9018#[cfg(not(target_arch = "arm64ec"))]
9019pub fn vcvt_s16_f16(a: float16x4_t) -> int16x4_t {
9020    unsafe { simd_cast(a) }
9021}
9022#[doc = "Floating-point convert to signed fixed-point, rounding toward zero"]
9023#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvtq_s16_f16)"]
9024#[inline]
9025#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9026#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcvt))]
9027#[cfg_attr(
9028    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9029    assert_instr(fcvtzs)
9030)]
9031#[target_feature(enable = "neon,fp16")]
9032#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
9033#[cfg(not(target_arch = "arm64ec"))]
9034pub fn vcvtq_s16_f16(a: float16x8_t) -> int16x8_t {
9035    unsafe { simd_cast(a) }
9036}
9037#[doc = "Floating-point convert to signed fixed-point, rounding toward zero"]
9038#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvt_s32_f32)"]
9039#[inline]
9040#[target_feature(enable = "neon")]
9041#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9042#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcvt))]
9043#[cfg_attr(
9044    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9045    assert_instr(fcvtzs)
9046)]
9047#[cfg_attr(
9048    not(target_arch = "arm"),
9049    stable(feature = "neon_intrinsics", since = "1.59.0")
9050)]
9051#[cfg_attr(
9052    target_arch = "arm",
9053    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
9054)]
9055pub fn vcvt_s32_f32(a: float32x2_t) -> int32x2_t {
9056    unsafe extern "unadjusted" {
9057        #[cfg_attr(target_arch = "arm", link_name = "llvm.fptosi.sat.v2i32.v2f32")]
9058        #[cfg_attr(
9059            any(target_arch = "aarch64", target_arch = "arm64ec"),
9060            link_name = "llvm.fptosi.sat.v2i32.v2f32"
9061        )]
9062        fn _vcvt_s32_f32(a: float32x2_t) -> int32x2_t;
9063    }
9064    unsafe { _vcvt_s32_f32(a) }
9065}
9066#[doc = "Floating-point convert to signed fixed-point, rounding toward zero"]
9067#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvtq_s32_f32)"]
9068#[inline]
9069#[target_feature(enable = "neon")]
9070#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9071#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcvt))]
9072#[cfg_attr(
9073    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9074    assert_instr(fcvtzs)
9075)]
9076#[cfg_attr(
9077    not(target_arch = "arm"),
9078    stable(feature = "neon_intrinsics", since = "1.59.0")
9079)]
9080#[cfg_attr(
9081    target_arch = "arm",
9082    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
9083)]
9084pub fn vcvtq_s32_f32(a: float32x4_t) -> int32x4_t {
9085    unsafe extern "unadjusted" {
9086        #[cfg_attr(target_arch = "arm", link_name = "llvm.fptosi.sat.v4i32.v4f32")]
9087        #[cfg_attr(
9088            any(target_arch = "aarch64", target_arch = "arm64ec"),
9089            link_name = "llvm.fptosi.sat.v4i32.v4f32"
9090        )]
9091        fn _vcvtq_s32_f32(a: float32x4_t) -> int32x4_t;
9092    }
9093    unsafe { _vcvtq_s32_f32(a) }
9094}
9095#[doc = "Floating-point convert to unsigned fixed-point, rounding toward zero"]
9096#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvt_u16_f16)"]
9097#[inline]
9098#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
9099#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcvt))]
9100#[cfg_attr(
9101    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9102    assert_instr(fcvtzu)
9103)]
9104#[target_feature(enable = "neon,fp16")]
9105#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
9106#[cfg(not(target_arch = "arm64ec"))]
9107pub fn vcvt_u16_f16(a: float16x4_t) -> uint16x4_t {
9108    unsafe { simd_cast(a) }
9109}
9110#[doc = "Floating-point convert to unsigned fixed-point, rounding toward zero"]
9111#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvtq_u16_f16)"]
9112#[inline]
9113#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
9114#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcvt))]
9115#[cfg_attr(
9116    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9117    assert_instr(fcvtzu)
9118)]
9119#[target_feature(enable = "neon,fp16")]
9120#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
9121#[cfg(not(target_arch = "arm64ec"))]
9122pub fn vcvtq_u16_f16(a: float16x8_t) -> uint16x8_t {
9123    unsafe { simd_cast(a) }
9124}
9125#[doc = "Floating-point convert to unsigned fixed-point, rounding toward zero"]
9126#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvt_u32_f32)"]
9127#[inline]
9128#[target_feature(enable = "neon")]
9129#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9130#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcvt))]
9131#[cfg_attr(
9132    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9133    assert_instr(fcvtzu)
9134)]
9135#[cfg_attr(
9136    not(target_arch = "arm"),
9137    stable(feature = "neon_intrinsics", since = "1.59.0")
9138)]
9139#[cfg_attr(
9140    target_arch = "arm",
9141    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
9142)]
9143pub fn vcvt_u32_f32(a: float32x2_t) -> uint32x2_t {
9144    unsafe extern "unadjusted" {
9145        #[cfg_attr(target_arch = "arm", link_name = "llvm.fptoui.sat.v2i32.v2f32")]
9146        #[cfg_attr(
9147            any(target_arch = "aarch64", target_arch = "arm64ec"),
9148            link_name = "llvm.fptoui.sat.v2i32.v2f32"
9149        )]
9150        fn _vcvt_u32_f32(a: float32x2_t) -> uint32x2_t;
9151    }
9152    unsafe { _vcvt_u32_f32(a) }
9153}
9154#[doc = "Floating-point convert to unsigned fixed-point, rounding toward zero"]
9155#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvtq_u32_f32)"]
9156#[inline]
9157#[target_feature(enable = "neon")]
9158#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9159#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcvt))]
9160#[cfg_attr(
9161    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9162    assert_instr(fcvtzu)
9163)]
9164#[cfg_attr(
9165    not(target_arch = "arm"),
9166    stable(feature = "neon_intrinsics", since = "1.59.0")
9167)]
9168#[cfg_attr(
9169    target_arch = "arm",
9170    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
9171)]
9172pub fn vcvtq_u32_f32(a: float32x4_t) -> uint32x4_t {
9173    unsafe extern "unadjusted" {
9174        #[cfg_attr(target_arch = "arm", link_name = "llvm.fptoui.sat.v4i32.v4f32")]
9175        #[cfg_attr(
9176            any(target_arch = "aarch64", target_arch = "arm64ec"),
9177            link_name = "llvm.fptoui.sat.v4i32.v4f32"
9178        )]
9179        fn _vcvtq_u32_f32(a: float32x4_t) -> uint32x4_t;
9180    }
9181    unsafe { _vcvtq_u32_f32(a) }
9182}
9183#[doc = "Dot product arithmetic (indexed)"]
9184#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdot_lane_s32)"]
9185#[inline]
9186#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
9187#[target_feature(enable = "neon,dotprod")]
9188#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsdot, LANE = 0))]
9189#[cfg_attr(
9190    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9191    assert_instr(sdot, LANE = 0)
9192)]
9193#[rustc_legacy_const_generics(3)]
9194#[cfg_attr(
9195    not(target_arch = "arm"),
9196    unstable(feature = "stdarch_neon_dotprod", issue = "117224")
9197)]
9198#[cfg_attr(
9199    target_arch = "arm",
9200    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
9201)]
9202pub fn vdot_lane_s32<const LANE: i32>(a: int32x2_t, b: int8x8_t, c: int8x8_t) -> int32x2_t {
9203    static_assert_uimm_bits!(LANE, 1);
9204    unsafe {
9205        let c: int32x2_t = transmute(c);
9206        let c: int32x2_t = simd_shuffle!(c, c, [LANE as u32, LANE as u32]);
9207        vdot_s32(a, b, transmute(c))
9208    }
9209}
9210#[doc = "Dot product arithmetic (indexed)"]
9211#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdotq_lane_s32)"]
9212#[inline]
9213#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
9214#[target_feature(enable = "neon,dotprod")]
9215#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsdot, LANE = 0))]
9216#[cfg_attr(
9217    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9218    assert_instr(sdot, LANE = 0)
9219)]
9220#[rustc_legacy_const_generics(3)]
9221#[cfg_attr(
9222    not(target_arch = "arm"),
9223    unstable(feature = "stdarch_neon_dotprod", issue = "117224")
9224)]
9225#[cfg_attr(
9226    target_arch = "arm",
9227    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
9228)]
9229pub fn vdotq_lane_s32<const LANE: i32>(a: int32x4_t, b: int8x16_t, c: int8x8_t) -> int32x4_t {
9230    static_assert_uimm_bits!(LANE, 1);
9231    unsafe {
9232        let c: int32x2_t = transmute(c);
9233        let c: int32x4_t =
9234            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]);
9235        vdotq_s32(a, b, transmute(c))
9236    }
9237}
9238#[doc = "Dot product arithmetic (indexed)"]
9239#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdot_lane_u32)"]
9240#[inline]
9241#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
9242#[target_feature(enable = "neon,dotprod")]
9243#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vudot, LANE = 0))]
9244#[cfg_attr(
9245    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9246    assert_instr(udot, LANE = 0)
9247)]
9248#[rustc_legacy_const_generics(3)]
9249#[cfg_attr(
9250    not(target_arch = "arm"),
9251    unstable(feature = "stdarch_neon_dotprod", issue = "117224")
9252)]
9253#[cfg_attr(
9254    target_arch = "arm",
9255    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
9256)]
9257pub fn vdot_lane_u32<const LANE: i32>(a: uint32x2_t, b: uint8x8_t, c: uint8x8_t) -> uint32x2_t {
9258    static_assert_uimm_bits!(LANE, 1);
9259    unsafe {
9260        let c: uint32x2_t = transmute(c);
9261        let c: uint32x2_t = simd_shuffle!(c, c, [LANE as u32, LANE as u32]);
9262        vdot_u32(a, b, transmute(c))
9263    }
9264}
9265#[doc = "Dot product arithmetic (indexed)"]
9266#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdotq_lane_u32)"]
9267#[inline]
9268#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
9269#[target_feature(enable = "neon,dotprod")]
9270#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vudot, LANE = 0))]
9271#[cfg_attr(
9272    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9273    assert_instr(udot, LANE = 0)
9274)]
9275#[rustc_legacy_const_generics(3)]
9276#[cfg_attr(
9277    not(target_arch = "arm"),
9278    unstable(feature = "stdarch_neon_dotprod", issue = "117224")
9279)]
9280#[cfg_attr(
9281    target_arch = "arm",
9282    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
9283)]
9284pub fn vdotq_lane_u32<const LANE: i32>(a: uint32x4_t, b: uint8x16_t, c: uint8x8_t) -> uint32x4_t {
9285    static_assert_uimm_bits!(LANE, 1);
9286    unsafe {
9287        let c: uint32x2_t = transmute(c);
9288        let c: uint32x4_t =
9289            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]);
9290        vdotq_u32(a, b, transmute(c))
9291    }
9292}
9293#[doc = "Dot product arithmetic (vector)"]
9294#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdot_s32)"]
9295#[inline]
9296#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
9297#[target_feature(enable = "neon,dotprod")]
9298#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsdot))]
9299#[cfg_attr(
9300    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9301    assert_instr(sdot)
9302)]
9303#[cfg_attr(
9304    not(target_arch = "arm"),
9305    unstable(feature = "stdarch_neon_dotprod", issue = "117224")
9306)]
9307#[cfg_attr(
9308    target_arch = "arm",
9309    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
9310)]
9311pub fn vdot_s32(a: int32x2_t, b: int8x8_t, c: int8x8_t) -> int32x2_t {
9312    unsafe extern "unadjusted" {
9313        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.sdot.v2i32.v8i8")]
9314        #[cfg_attr(
9315            any(target_arch = "aarch64", target_arch = "arm64ec"),
9316            link_name = "llvm.aarch64.neon.sdot.v2i32.v8i8"
9317        )]
9318        fn _vdot_s32(a: int32x2_t, b: int8x8_t, c: int8x8_t) -> int32x2_t;
9319    }
9320    unsafe { _vdot_s32(a, b, c) }
9321}
9322#[doc = "Dot product arithmetic (vector)"]
9323#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdotq_s32)"]
9324#[inline]
9325#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
9326#[target_feature(enable = "neon,dotprod")]
9327#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsdot))]
9328#[cfg_attr(
9329    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9330    assert_instr(sdot)
9331)]
9332#[cfg_attr(
9333    not(target_arch = "arm"),
9334    unstable(feature = "stdarch_neon_dotprod", issue = "117224")
9335)]
9336#[cfg_attr(
9337    target_arch = "arm",
9338    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
9339)]
9340pub fn vdotq_s32(a: int32x4_t, b: int8x16_t, c: int8x16_t) -> int32x4_t {
9341    unsafe extern "unadjusted" {
9342        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.sdot.v4i32.v16i8")]
9343        #[cfg_attr(
9344            any(target_arch = "aarch64", target_arch = "arm64ec"),
9345            link_name = "llvm.aarch64.neon.sdot.v4i32.v16i8"
9346        )]
9347        fn _vdotq_s32(a: int32x4_t, b: int8x16_t, c: int8x16_t) -> int32x4_t;
9348    }
9349    unsafe { _vdotq_s32(a, b, c) }
9350}
9351#[doc = "Dot product arithmetic (vector)"]
9352#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdot_u32)"]
9353#[inline]
9354#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
9355#[target_feature(enable = "neon,dotprod")]
9356#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vudot))]
9357#[cfg_attr(
9358    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9359    assert_instr(udot)
9360)]
9361#[cfg_attr(
9362    not(target_arch = "arm"),
9363    unstable(feature = "stdarch_neon_dotprod", issue = "117224")
9364)]
9365#[cfg_attr(
9366    target_arch = "arm",
9367    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
9368)]
9369pub fn vdot_u32(a: uint32x2_t, b: uint8x8_t, c: uint8x8_t) -> uint32x2_t {
9370    unsafe extern "unadjusted" {
9371        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.udot.v2i32.v8i8")]
9372        #[cfg_attr(
9373            any(target_arch = "aarch64", target_arch = "arm64ec"),
9374            link_name = "llvm.aarch64.neon.udot.v2i32.v8i8"
9375        )]
9376        fn _vdot_u32(a: uint32x2_t, b: uint8x8_t, c: uint8x8_t) -> uint32x2_t;
9377    }
9378    unsafe { _vdot_u32(a, b, c) }
9379}
9380#[doc = "Dot product arithmetic (vector)"]
9381#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdotq_u32)"]
9382#[inline]
9383#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
9384#[target_feature(enable = "neon,dotprod")]
9385#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vudot))]
9386#[cfg_attr(
9387    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9388    assert_instr(udot)
9389)]
9390#[cfg_attr(
9391    not(target_arch = "arm"),
9392    unstable(feature = "stdarch_neon_dotprod", issue = "117224")
9393)]
9394#[cfg_attr(
9395    target_arch = "arm",
9396    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
9397)]
9398pub fn vdotq_u32(a: uint32x4_t, b: uint8x16_t, c: uint8x16_t) -> uint32x4_t {
9399    unsafe extern "unadjusted" {
9400        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.udot.v4i32.v16i8")]
9401        #[cfg_attr(
9402            any(target_arch = "aarch64", target_arch = "arm64ec"),
9403            link_name = "llvm.aarch64.neon.udot.v4i32.v16i8"
9404        )]
9405        fn _vdotq_u32(a: uint32x4_t, b: uint8x16_t, c: uint8x16_t) -> uint32x4_t;
9406    }
9407    unsafe { _vdotq_u32(a, b, c) }
9408}
9409#[doc = "Set all vector lanes to the same value"]
9410#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_lane_f16)"]
9411#[inline]
9412#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9413#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 2))]
9414#[cfg_attr(
9415    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9416    assert_instr(dup, N = 2)
9417)]
9418#[rustc_legacy_const_generics(1)]
9419#[target_feature(enable = "neon,fp16")]
9420#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
9421#[cfg(not(target_arch = "arm64ec"))]
9422pub fn vdup_lane_f16<const N: i32>(a: float16x4_t) -> float16x4_t {
9423    static_assert_uimm_bits!(N, 2);
9424    unsafe { simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32]) }
9425}
9426#[doc = "Set all vector lanes to the same value"]
9427#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_lane_f16)"]
9428#[inline]
9429#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9430#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 2))]
9431#[cfg_attr(
9432    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9433    assert_instr(dup, N = 2)
9434)]
9435#[rustc_legacy_const_generics(1)]
9436#[target_feature(enable = "neon,fp16")]
9437#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
9438#[cfg(not(target_arch = "arm64ec"))]
9439pub fn vdupq_lane_f16<const N: i32>(a: float16x4_t) -> float16x8_t {
9440    static_assert_uimm_bits!(N, 2);
9441    unsafe {
9442        simd_shuffle!(
9443            a,
9444            a,
9445            [N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32]
9446        )
9447    }
9448}
9449#[doc = "Set all vector lanes to the same value"]
9450#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_lane_f32)"]
9451#[inline]
9452#[target_feature(enable = "neon")]
9453#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9454#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32", N = 1))]
9455#[cfg_attr(
9456    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9457    assert_instr(dup, N = 1)
9458)]
9459#[rustc_legacy_const_generics(1)]
9460#[cfg_attr(
9461    not(target_arch = "arm"),
9462    stable(feature = "neon_intrinsics", since = "1.59.0")
9463)]
9464#[cfg_attr(
9465    target_arch = "arm",
9466    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
9467)]
9468pub fn vdup_lane_f32<const N: i32>(a: float32x2_t) -> float32x2_t {
9469    static_assert_uimm_bits!(N, 1);
9470    unsafe { simd_shuffle!(a, a, [N as u32, N as u32]) }
9471}
9472#[doc = "Set all vector lanes to the same value"]
9473#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_lane_s32)"]
9474#[inline]
9475#[target_feature(enable = "neon")]
9476#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9477#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32", N = 1))]
9478#[cfg_attr(
9479    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9480    assert_instr(dup, N = 1)
9481)]
9482#[rustc_legacy_const_generics(1)]
9483#[cfg_attr(
9484    not(target_arch = "arm"),
9485    stable(feature = "neon_intrinsics", since = "1.59.0")
9486)]
9487#[cfg_attr(
9488    target_arch = "arm",
9489    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
9490)]
9491pub fn vdup_lane_s32<const N: i32>(a: int32x2_t) -> int32x2_t {
9492    static_assert_uimm_bits!(N, 1);
9493    unsafe { simd_shuffle!(a, a, [N as u32, N as u32]) }
9494}
9495#[doc = "Set all vector lanes to the same value"]
9496#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_lane_u32)"]
9497#[inline]
9498#[target_feature(enable = "neon")]
9499#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9500#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32", N = 1))]
9501#[cfg_attr(
9502    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9503    assert_instr(dup, N = 1)
9504)]
9505#[rustc_legacy_const_generics(1)]
9506#[cfg_attr(
9507    not(target_arch = "arm"),
9508    stable(feature = "neon_intrinsics", since = "1.59.0")
9509)]
9510#[cfg_attr(
9511    target_arch = "arm",
9512    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
9513)]
9514pub fn vdup_lane_u32<const N: i32>(a: uint32x2_t) -> uint32x2_t {
9515    static_assert_uimm_bits!(N, 1);
9516    unsafe { simd_shuffle!(a, a, [N as u32, N as u32]) }
9517}
9518#[doc = "Set all vector lanes to the same value"]
9519#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_lane_f32)"]
9520#[inline]
9521#[target_feature(enable = "neon")]
9522#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9523#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32", N = 1))]
9524#[cfg_attr(
9525    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9526    assert_instr(dup, N = 1)
9527)]
9528#[rustc_legacy_const_generics(1)]
9529#[cfg_attr(
9530    not(target_arch = "arm"),
9531    stable(feature = "neon_intrinsics", since = "1.59.0")
9532)]
9533#[cfg_attr(
9534    target_arch = "arm",
9535    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
9536)]
9537pub fn vdupq_lane_f32<const N: i32>(a: float32x2_t) -> float32x4_t {
9538    static_assert_uimm_bits!(N, 1);
9539    unsafe { simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32]) }
9540}
9541#[doc = "Set all vector lanes to the same value"]
9542#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_lane_s32)"]
9543#[inline]
9544#[target_feature(enable = "neon")]
9545#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9546#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32", N = 1))]
9547#[cfg_attr(
9548    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9549    assert_instr(dup, N = 1)
9550)]
9551#[rustc_legacy_const_generics(1)]
9552#[cfg_attr(
9553    not(target_arch = "arm"),
9554    stable(feature = "neon_intrinsics", since = "1.59.0")
9555)]
9556#[cfg_attr(
9557    target_arch = "arm",
9558    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
9559)]
9560pub fn vdupq_lane_s32<const N: i32>(a: int32x2_t) -> int32x4_t {
9561    static_assert_uimm_bits!(N, 1);
9562    unsafe { simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32]) }
9563}
9564#[doc = "Set all vector lanes to the same value"]
9565#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_lane_u32)"]
9566#[inline]
9567#[target_feature(enable = "neon")]
9568#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9569#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32", N = 1))]
9570#[cfg_attr(
9571    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9572    assert_instr(dup, N = 1)
9573)]
9574#[rustc_legacy_const_generics(1)]
9575#[cfg_attr(
9576    not(target_arch = "arm"),
9577    stable(feature = "neon_intrinsics", since = "1.59.0")
9578)]
9579#[cfg_attr(
9580    target_arch = "arm",
9581    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
9582)]
9583pub fn vdupq_lane_u32<const N: i32>(a: uint32x2_t) -> uint32x4_t {
9584    static_assert_uimm_bits!(N, 1);
9585    unsafe { simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32]) }
9586}
9587#[doc = "Set all vector lanes to the same value"]
9588#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_lane_p16)"]
9589#[inline]
9590#[target_feature(enable = "neon")]
9591#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9592#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 2))]
9593#[cfg_attr(
9594    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9595    assert_instr(dup, N = 2)
9596)]
9597#[rustc_legacy_const_generics(1)]
9598#[cfg_attr(
9599    not(target_arch = "arm"),
9600    stable(feature = "neon_intrinsics", since = "1.59.0")
9601)]
9602#[cfg_attr(
9603    target_arch = "arm",
9604    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
9605)]
9606pub fn vdup_lane_p16<const N: i32>(a: poly16x4_t) -> poly16x4_t {
9607    static_assert_uimm_bits!(N, 2);
9608    unsafe { simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32]) }
9609}
9610#[doc = "Set all vector lanes to the same value"]
9611#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_lane_s16)"]
9612#[inline]
9613#[target_feature(enable = "neon")]
9614#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9615#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 2))]
9616#[cfg_attr(
9617    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9618    assert_instr(dup, N = 2)
9619)]
9620#[rustc_legacy_const_generics(1)]
9621#[cfg_attr(
9622    not(target_arch = "arm"),
9623    stable(feature = "neon_intrinsics", since = "1.59.0")
9624)]
9625#[cfg_attr(
9626    target_arch = "arm",
9627    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
9628)]
9629pub fn vdup_lane_s16<const N: i32>(a: int16x4_t) -> int16x4_t {
9630    static_assert_uimm_bits!(N, 2);
9631    unsafe { simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32]) }
9632}
9633#[doc = "Set all vector lanes to the same value"]
9634#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_lane_u16)"]
9635#[inline]
9636#[target_feature(enable = "neon")]
9637#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9638#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 2))]
9639#[cfg_attr(
9640    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9641    assert_instr(dup, N = 2)
9642)]
9643#[rustc_legacy_const_generics(1)]
9644#[cfg_attr(
9645    not(target_arch = "arm"),
9646    stable(feature = "neon_intrinsics", since = "1.59.0")
9647)]
9648#[cfg_attr(
9649    target_arch = "arm",
9650    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
9651)]
9652pub fn vdup_lane_u16<const N: i32>(a: uint16x4_t) -> uint16x4_t {
9653    static_assert_uimm_bits!(N, 2);
9654    unsafe { simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32]) }
9655}
9656#[doc = "Set all vector lanes to the same value"]
9657#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_lane_p16)"]
9658#[inline]
9659#[target_feature(enable = "neon")]
9660#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9661#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 2))]
9662#[cfg_attr(
9663    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9664    assert_instr(dup, N = 2)
9665)]
9666#[rustc_legacy_const_generics(1)]
9667#[cfg_attr(
9668    not(target_arch = "arm"),
9669    stable(feature = "neon_intrinsics", since = "1.59.0")
9670)]
9671#[cfg_attr(
9672    target_arch = "arm",
9673    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
9674)]
9675pub fn vdupq_lane_p16<const N: i32>(a: poly16x4_t) -> poly16x8_t {
9676    static_assert_uimm_bits!(N, 2);
9677    unsafe {
9678        simd_shuffle!(
9679            a,
9680            a,
9681            [N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32]
9682        )
9683    }
9684}
9685#[doc = "Set all vector lanes to the same value"]
9686#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_lane_s16)"]
9687#[inline]
9688#[target_feature(enable = "neon")]
9689#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9690#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 2))]
9691#[cfg_attr(
9692    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9693    assert_instr(dup, N = 2)
9694)]
9695#[rustc_legacy_const_generics(1)]
9696#[cfg_attr(
9697    not(target_arch = "arm"),
9698    stable(feature = "neon_intrinsics", since = "1.59.0")
9699)]
9700#[cfg_attr(
9701    target_arch = "arm",
9702    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
9703)]
9704pub fn vdupq_lane_s16<const N: i32>(a: int16x4_t) -> int16x8_t {
9705    static_assert_uimm_bits!(N, 2);
9706    unsafe {
9707        simd_shuffle!(
9708            a,
9709            a,
9710            [N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32]
9711        )
9712    }
9713}
9714#[doc = "Set all vector lanes to the same value"]
9715#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_lane_u16)"]
9716#[inline]
9717#[target_feature(enable = "neon")]
9718#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9719#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 2))]
9720#[cfg_attr(
9721    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9722    assert_instr(dup, N = 2)
9723)]
9724#[rustc_legacy_const_generics(1)]
9725#[cfg_attr(
9726    not(target_arch = "arm"),
9727    stable(feature = "neon_intrinsics", since = "1.59.0")
9728)]
9729#[cfg_attr(
9730    target_arch = "arm",
9731    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
9732)]
9733pub fn vdupq_lane_u16<const N: i32>(a: uint16x4_t) -> uint16x8_t {
9734    static_assert_uimm_bits!(N, 2);
9735    unsafe {
9736        simd_shuffle!(
9737            a,
9738            a,
9739            [N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32]
9740        )
9741    }
9742}
9743#[doc = "Set all vector lanes to the same value"]
9744#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_lane_p8)"]
9745#[inline]
9746#[target_feature(enable = "neon")]
9747#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9748#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8", N = 4))]
9749#[cfg_attr(
9750    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9751    assert_instr(dup, N = 4)
9752)]
9753#[rustc_legacy_const_generics(1)]
9754#[cfg_attr(
9755    not(target_arch = "arm"),
9756    stable(feature = "neon_intrinsics", since = "1.59.0")
9757)]
9758#[cfg_attr(
9759    target_arch = "arm",
9760    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
9761)]
9762pub fn vdup_lane_p8<const N: i32>(a: poly8x8_t) -> poly8x8_t {
9763    static_assert_uimm_bits!(N, 3);
9764    unsafe {
9765        simd_shuffle!(
9766            a,
9767            a,
9768            [N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32]
9769        )
9770    }
9771}
9772#[doc = "Set all vector lanes to the same value"]
9773#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_lane_s8)"]
9774#[inline]
9775#[target_feature(enable = "neon")]
9776#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9777#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8", N = 4))]
9778#[cfg_attr(
9779    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9780    assert_instr(dup, N = 4)
9781)]
9782#[rustc_legacy_const_generics(1)]
9783#[cfg_attr(
9784    not(target_arch = "arm"),
9785    stable(feature = "neon_intrinsics", since = "1.59.0")
9786)]
9787#[cfg_attr(
9788    target_arch = "arm",
9789    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
9790)]
9791pub fn vdup_lane_s8<const N: i32>(a: int8x8_t) -> int8x8_t {
9792    static_assert_uimm_bits!(N, 3);
9793    unsafe {
9794        simd_shuffle!(
9795            a,
9796            a,
9797            [N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32]
9798        )
9799    }
9800}
9801#[doc = "Set all vector lanes to the same value"]
9802#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_lane_u8)"]
9803#[inline]
9804#[target_feature(enable = "neon")]
9805#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9806#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8", N = 4))]
9807#[cfg_attr(
9808    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9809    assert_instr(dup, N = 4)
9810)]
9811#[rustc_legacy_const_generics(1)]
9812#[cfg_attr(
9813    not(target_arch = "arm"),
9814    stable(feature = "neon_intrinsics", since = "1.59.0")
9815)]
9816#[cfg_attr(
9817    target_arch = "arm",
9818    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
9819)]
9820pub fn vdup_lane_u8<const N: i32>(a: uint8x8_t) -> uint8x8_t {
9821    static_assert_uimm_bits!(N, 3);
9822    unsafe {
9823        simd_shuffle!(
9824            a,
9825            a,
9826            [N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32]
9827        )
9828    }
9829}
9830#[doc = "Set all vector lanes to the same value"]
9831#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_lane_p8)"]
9832#[inline]
9833#[target_feature(enable = "neon")]
9834#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9835#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8", N = 4))]
9836#[cfg_attr(
9837    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9838    assert_instr(dup, N = 4)
9839)]
9840#[rustc_legacy_const_generics(1)]
9841#[cfg_attr(
9842    not(target_arch = "arm"),
9843    stable(feature = "neon_intrinsics", since = "1.59.0")
9844)]
9845#[cfg_attr(
9846    target_arch = "arm",
9847    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
9848)]
9849pub fn vdupq_lane_p8<const N: i32>(a: poly8x8_t) -> poly8x16_t {
9850    static_assert_uimm_bits!(N, 3);
9851    unsafe {
9852        simd_shuffle!(
9853            a,
9854            a,
9855            [
9856                N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32,
9857                N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32
9858            ]
9859        )
9860    }
9861}
9862#[doc = "Set all vector lanes to the same value"]
9863#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_lane_s8)"]
9864#[inline]
9865#[target_feature(enable = "neon")]
9866#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9867#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8", N = 4))]
9868#[cfg_attr(
9869    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9870    assert_instr(dup, N = 4)
9871)]
9872#[rustc_legacy_const_generics(1)]
9873#[cfg_attr(
9874    not(target_arch = "arm"),
9875    stable(feature = "neon_intrinsics", since = "1.59.0")
9876)]
9877#[cfg_attr(
9878    target_arch = "arm",
9879    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
9880)]
9881pub fn vdupq_lane_s8<const N: i32>(a: int8x8_t) -> int8x16_t {
9882    static_assert_uimm_bits!(N, 3);
9883    unsafe {
9884        simd_shuffle!(
9885            a,
9886            a,
9887            [
9888                N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32,
9889                N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32
9890            ]
9891        )
9892    }
9893}
9894#[doc = "Set all vector lanes to the same value"]
9895#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_lane_u8)"]
9896#[inline]
9897#[target_feature(enable = "neon")]
9898#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9899#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8", N = 4))]
9900#[cfg_attr(
9901    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9902    assert_instr(dup, N = 4)
9903)]
9904#[rustc_legacy_const_generics(1)]
9905#[cfg_attr(
9906    not(target_arch = "arm"),
9907    stable(feature = "neon_intrinsics", since = "1.59.0")
9908)]
9909#[cfg_attr(
9910    target_arch = "arm",
9911    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
9912)]
9913pub fn vdupq_lane_u8<const N: i32>(a: uint8x8_t) -> uint8x16_t {
9914    static_assert_uimm_bits!(N, 3);
9915    unsafe {
9916        simd_shuffle!(
9917            a,
9918            a,
9919            [
9920                N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32,
9921                N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32
9922            ]
9923        )
9924    }
9925}
9926#[doc = "Set all vector lanes to the same value"]
9927#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_lane_s64)"]
9928#[inline]
9929#[target_feature(enable = "neon")]
9930#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9931#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, N = 0))]
9932#[cfg_attr(
9933    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9934    assert_instr(nop, N = 0)
9935)]
9936#[rustc_legacy_const_generics(1)]
9937#[cfg_attr(
9938    not(target_arch = "arm"),
9939    stable(feature = "neon_intrinsics", since = "1.59.0")
9940)]
9941#[cfg_attr(
9942    target_arch = "arm",
9943    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
9944)]
9945pub fn vdup_lane_s64<const N: i32>(a: int64x1_t) -> int64x1_t {
9946    static_assert!(N == 0);
9947    a
9948}
9949#[doc = "Set all vector lanes to the same value"]
9950#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_lane_u64)"]
9951#[inline]
9952#[target_feature(enable = "neon")]
9953#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9954#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, N = 0))]
9955#[cfg_attr(
9956    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9957    assert_instr(nop, N = 0)
9958)]
9959#[rustc_legacy_const_generics(1)]
9960#[cfg_attr(
9961    not(target_arch = "arm"),
9962    stable(feature = "neon_intrinsics", since = "1.59.0")
9963)]
9964#[cfg_attr(
9965    target_arch = "arm",
9966    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
9967)]
9968pub fn vdup_lane_u64<const N: i32>(a: uint64x1_t) -> uint64x1_t {
9969    static_assert!(N == 0);
9970    a
9971}
9972#[doc = "Set all vector lanes to the same value"]
9973#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_laneq_f16)"]
9974#[inline]
9975#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9976#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 4))]
9977#[cfg_attr(
9978    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9979    assert_instr(dup, N = 4)
9980)]
9981#[rustc_legacy_const_generics(1)]
9982#[target_feature(enable = "neon,fp16")]
9983#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
9984#[cfg(not(target_arch = "arm64ec"))]
9985pub fn vdup_laneq_f16<const N: i32>(a: float16x8_t) -> float16x4_t {
9986    static_assert_uimm_bits!(N, 3);
9987    unsafe { simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32]) }
9988}
9989#[doc = "Set all vector lanes to the same value"]
9990#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_laneq_f16)"]
9991#[inline]
9992#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9993#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 4))]
9994#[cfg_attr(
9995    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9996    assert_instr(dup, N = 4)
9997)]
9998#[rustc_legacy_const_generics(1)]
9999#[target_feature(enable = "neon,fp16")]
10000#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
10001#[cfg(not(target_arch = "arm64ec"))]
10002pub fn vdupq_laneq_f16<const N: i32>(a: float16x8_t) -> float16x8_t {
10003    static_assert_uimm_bits!(N, 3);
10004    unsafe {
10005        simd_shuffle!(
10006            a,
10007            a,
10008            [N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32]
10009        )
10010    }
10011}
10012#[doc = "Set all vector lanes to the same value"]
10013#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_laneq_f32)"]
10014#[inline]
10015#[target_feature(enable = "neon")]
10016#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10017#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32", N = 2))]
10018#[cfg_attr(
10019    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10020    assert_instr(dup, N = 2)
10021)]
10022#[rustc_legacy_const_generics(1)]
10023#[cfg_attr(
10024    not(target_arch = "arm"),
10025    stable(feature = "neon_intrinsics", since = "1.59.0")
10026)]
10027#[cfg_attr(
10028    target_arch = "arm",
10029    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10030)]
10031pub fn vdup_laneq_f32<const N: i32>(a: float32x4_t) -> float32x2_t {
10032    static_assert_uimm_bits!(N, 2);
10033    unsafe { simd_shuffle!(a, a, [N as u32, N as u32]) }
10034}
10035#[doc = "Set all vector lanes to the same value"]
10036#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_laneq_s32)"]
10037#[inline]
10038#[target_feature(enable = "neon")]
10039#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10040#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32", N = 2))]
10041#[cfg_attr(
10042    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10043    assert_instr(dup, N = 2)
10044)]
10045#[rustc_legacy_const_generics(1)]
10046#[cfg_attr(
10047    not(target_arch = "arm"),
10048    stable(feature = "neon_intrinsics", since = "1.59.0")
10049)]
10050#[cfg_attr(
10051    target_arch = "arm",
10052    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10053)]
10054pub fn vdup_laneq_s32<const N: i32>(a: int32x4_t) -> int32x2_t {
10055    static_assert_uimm_bits!(N, 2);
10056    unsafe { simd_shuffle!(a, a, [N as u32, N as u32]) }
10057}
10058#[doc = "Set all vector lanes to the same value"]
10059#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_laneq_u32)"]
10060#[inline]
10061#[target_feature(enable = "neon")]
10062#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10063#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32", N = 2))]
10064#[cfg_attr(
10065    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10066    assert_instr(dup, N = 2)
10067)]
10068#[rustc_legacy_const_generics(1)]
10069#[cfg_attr(
10070    not(target_arch = "arm"),
10071    stable(feature = "neon_intrinsics", since = "1.59.0")
10072)]
10073#[cfg_attr(
10074    target_arch = "arm",
10075    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10076)]
10077pub fn vdup_laneq_u32<const N: i32>(a: uint32x4_t) -> uint32x2_t {
10078    static_assert_uimm_bits!(N, 2);
10079    unsafe { simd_shuffle!(a, a, [N as u32, N as u32]) }
10080}
10081#[doc = "Set all vector lanes to the same value"]
10082#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_laneq_f32)"]
10083#[inline]
10084#[target_feature(enable = "neon")]
10085#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10086#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32", N = 2))]
10087#[cfg_attr(
10088    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10089    assert_instr(dup, N = 2)
10090)]
10091#[rustc_legacy_const_generics(1)]
10092#[cfg_attr(
10093    not(target_arch = "arm"),
10094    stable(feature = "neon_intrinsics", since = "1.59.0")
10095)]
10096#[cfg_attr(
10097    target_arch = "arm",
10098    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10099)]
10100pub fn vdupq_laneq_f32<const N: i32>(a: float32x4_t) -> float32x4_t {
10101    static_assert_uimm_bits!(N, 2);
10102    unsafe { simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32]) }
10103}
10104#[doc = "Set all vector lanes to the same value"]
10105#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_laneq_s32)"]
10106#[inline]
10107#[target_feature(enable = "neon")]
10108#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10109#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32", N = 2))]
10110#[cfg_attr(
10111    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10112    assert_instr(dup, N = 2)
10113)]
10114#[rustc_legacy_const_generics(1)]
10115#[cfg_attr(
10116    not(target_arch = "arm"),
10117    stable(feature = "neon_intrinsics", since = "1.59.0")
10118)]
10119#[cfg_attr(
10120    target_arch = "arm",
10121    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10122)]
10123pub fn vdupq_laneq_s32<const N: i32>(a: int32x4_t) -> int32x4_t {
10124    static_assert_uimm_bits!(N, 2);
10125    unsafe { simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32]) }
10126}
10127#[doc = "Set all vector lanes to the same value"]
10128#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_laneq_u32)"]
10129#[inline]
10130#[target_feature(enable = "neon")]
10131#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10132#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32", N = 2))]
10133#[cfg_attr(
10134    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10135    assert_instr(dup, N = 2)
10136)]
10137#[rustc_legacy_const_generics(1)]
10138#[cfg_attr(
10139    not(target_arch = "arm"),
10140    stable(feature = "neon_intrinsics", since = "1.59.0")
10141)]
10142#[cfg_attr(
10143    target_arch = "arm",
10144    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10145)]
10146pub fn vdupq_laneq_u32<const N: i32>(a: uint32x4_t) -> uint32x4_t {
10147    static_assert_uimm_bits!(N, 2);
10148    unsafe { simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32]) }
10149}
10150#[doc = "Set all vector lanes to the same value"]
10151#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_laneq_p16)"]
10152#[inline]
10153#[target_feature(enable = "neon")]
10154#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10155#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 4))]
10156#[cfg_attr(
10157    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10158    assert_instr(dup, N = 4)
10159)]
10160#[rustc_legacy_const_generics(1)]
10161#[cfg_attr(
10162    not(target_arch = "arm"),
10163    stable(feature = "neon_intrinsics", since = "1.59.0")
10164)]
10165#[cfg_attr(
10166    target_arch = "arm",
10167    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10168)]
10169pub fn vdup_laneq_p16<const N: i32>(a: poly16x8_t) -> poly16x4_t {
10170    static_assert_uimm_bits!(N, 3);
10171    unsafe { simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32]) }
10172}
10173#[doc = "Set all vector lanes to the same value"]
10174#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_laneq_s16)"]
10175#[inline]
10176#[target_feature(enable = "neon")]
10177#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10178#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 4))]
10179#[cfg_attr(
10180    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10181    assert_instr(dup, N = 4)
10182)]
10183#[rustc_legacy_const_generics(1)]
10184#[cfg_attr(
10185    not(target_arch = "arm"),
10186    stable(feature = "neon_intrinsics", since = "1.59.0")
10187)]
10188#[cfg_attr(
10189    target_arch = "arm",
10190    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10191)]
10192pub fn vdup_laneq_s16<const N: i32>(a: int16x8_t) -> int16x4_t {
10193    static_assert_uimm_bits!(N, 3);
10194    unsafe { simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32]) }
10195}
10196#[doc = "Set all vector lanes to the same value"]
10197#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_laneq_u16)"]
10198#[inline]
10199#[target_feature(enable = "neon")]
10200#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10201#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 4))]
10202#[cfg_attr(
10203    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10204    assert_instr(dup, N = 4)
10205)]
10206#[rustc_legacy_const_generics(1)]
10207#[cfg_attr(
10208    not(target_arch = "arm"),
10209    stable(feature = "neon_intrinsics", since = "1.59.0")
10210)]
10211#[cfg_attr(
10212    target_arch = "arm",
10213    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10214)]
10215pub fn vdup_laneq_u16<const N: i32>(a: uint16x8_t) -> uint16x4_t {
10216    static_assert_uimm_bits!(N, 3);
10217    unsafe { simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32]) }
10218}
10219#[doc = "Set all vector lanes to the same value"]
10220#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_laneq_p16)"]
10221#[inline]
10222#[target_feature(enable = "neon")]
10223#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10224#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 4))]
10225#[cfg_attr(
10226    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10227    assert_instr(dup, N = 4)
10228)]
10229#[rustc_legacy_const_generics(1)]
10230#[cfg_attr(
10231    not(target_arch = "arm"),
10232    stable(feature = "neon_intrinsics", since = "1.59.0")
10233)]
10234#[cfg_attr(
10235    target_arch = "arm",
10236    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10237)]
10238pub fn vdupq_laneq_p16<const N: i32>(a: poly16x8_t) -> poly16x8_t {
10239    static_assert_uimm_bits!(N, 3);
10240    unsafe {
10241        simd_shuffle!(
10242            a,
10243            a,
10244            [N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32]
10245        )
10246    }
10247}
10248#[doc = "Set all vector lanes to the same value"]
10249#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_laneq_s16)"]
10250#[inline]
10251#[target_feature(enable = "neon")]
10252#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10253#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 4))]
10254#[cfg_attr(
10255    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10256    assert_instr(dup, N = 4)
10257)]
10258#[rustc_legacy_const_generics(1)]
10259#[cfg_attr(
10260    not(target_arch = "arm"),
10261    stable(feature = "neon_intrinsics", since = "1.59.0")
10262)]
10263#[cfg_attr(
10264    target_arch = "arm",
10265    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10266)]
10267pub fn vdupq_laneq_s16<const N: i32>(a: int16x8_t) -> int16x8_t {
10268    static_assert_uimm_bits!(N, 3);
10269    unsafe {
10270        simd_shuffle!(
10271            a,
10272            a,
10273            [N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32]
10274        )
10275    }
10276}
10277#[doc = "Set all vector lanes to the same value"]
10278#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_laneq_u16)"]
10279#[inline]
10280#[target_feature(enable = "neon")]
10281#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10282#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 4))]
10283#[cfg_attr(
10284    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10285    assert_instr(dup, N = 4)
10286)]
10287#[rustc_legacy_const_generics(1)]
10288#[cfg_attr(
10289    not(target_arch = "arm"),
10290    stable(feature = "neon_intrinsics", since = "1.59.0")
10291)]
10292#[cfg_attr(
10293    target_arch = "arm",
10294    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10295)]
10296pub fn vdupq_laneq_u16<const N: i32>(a: uint16x8_t) -> uint16x8_t {
10297    static_assert_uimm_bits!(N, 3);
10298    unsafe {
10299        simd_shuffle!(
10300            a,
10301            a,
10302            [N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32]
10303        )
10304    }
10305}
10306#[doc = "Set all vector lanes to the same value"]
10307#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_laneq_p8)"]
10308#[inline]
10309#[target_feature(enable = "neon")]
10310#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10311#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8", N = 8))]
10312#[cfg_attr(
10313    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10314    assert_instr(dup, N = 8)
10315)]
10316#[rustc_legacy_const_generics(1)]
10317#[cfg_attr(
10318    not(target_arch = "arm"),
10319    stable(feature = "neon_intrinsics", since = "1.59.0")
10320)]
10321#[cfg_attr(
10322    target_arch = "arm",
10323    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10324)]
10325pub fn vdup_laneq_p8<const N: i32>(a: poly8x16_t) -> poly8x8_t {
10326    static_assert_uimm_bits!(N, 4);
10327    unsafe {
10328        simd_shuffle!(
10329            a,
10330            a,
10331            [N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32]
10332        )
10333    }
10334}
10335#[doc = "Set all vector lanes to the same value"]
10336#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_laneq_s8)"]
10337#[inline]
10338#[target_feature(enable = "neon")]
10339#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10340#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8", N = 8))]
10341#[cfg_attr(
10342    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10343    assert_instr(dup, N = 8)
10344)]
10345#[rustc_legacy_const_generics(1)]
10346#[cfg_attr(
10347    not(target_arch = "arm"),
10348    stable(feature = "neon_intrinsics", since = "1.59.0")
10349)]
10350#[cfg_attr(
10351    target_arch = "arm",
10352    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10353)]
10354pub fn vdup_laneq_s8<const N: i32>(a: int8x16_t) -> int8x8_t {
10355    static_assert_uimm_bits!(N, 4);
10356    unsafe {
10357        simd_shuffle!(
10358            a,
10359            a,
10360            [N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32]
10361        )
10362    }
10363}
10364#[doc = "Set all vector lanes to the same value"]
10365#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_laneq_u8)"]
10366#[inline]
10367#[target_feature(enable = "neon")]
10368#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10369#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8", N = 8))]
10370#[cfg_attr(
10371    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10372    assert_instr(dup, N = 8)
10373)]
10374#[rustc_legacy_const_generics(1)]
10375#[cfg_attr(
10376    not(target_arch = "arm"),
10377    stable(feature = "neon_intrinsics", since = "1.59.0")
10378)]
10379#[cfg_attr(
10380    target_arch = "arm",
10381    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10382)]
10383pub fn vdup_laneq_u8<const N: i32>(a: uint8x16_t) -> uint8x8_t {
10384    static_assert_uimm_bits!(N, 4);
10385    unsafe {
10386        simd_shuffle!(
10387            a,
10388            a,
10389            [N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32]
10390        )
10391    }
10392}
10393#[doc = "Set all vector lanes to the same value"]
10394#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_laneq_p8)"]
10395#[inline]
10396#[target_feature(enable = "neon")]
10397#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10398#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8", N = 8))]
10399#[cfg_attr(
10400    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10401    assert_instr(dup, N = 8)
10402)]
10403#[rustc_legacy_const_generics(1)]
10404#[cfg_attr(
10405    not(target_arch = "arm"),
10406    stable(feature = "neon_intrinsics", since = "1.59.0")
10407)]
10408#[cfg_attr(
10409    target_arch = "arm",
10410    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10411)]
10412pub fn vdupq_laneq_p8<const N: i32>(a: poly8x16_t) -> poly8x16_t {
10413    static_assert_uimm_bits!(N, 4);
10414    unsafe {
10415        simd_shuffle!(
10416            a,
10417            a,
10418            [
10419                N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32,
10420                N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32
10421            ]
10422        )
10423    }
10424}
10425#[doc = "Set all vector lanes to the same value"]
10426#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_laneq_s8)"]
10427#[inline]
10428#[target_feature(enable = "neon")]
10429#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10430#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8", N = 8))]
10431#[cfg_attr(
10432    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10433    assert_instr(dup, N = 8)
10434)]
10435#[rustc_legacy_const_generics(1)]
10436#[cfg_attr(
10437    not(target_arch = "arm"),
10438    stable(feature = "neon_intrinsics", since = "1.59.0")
10439)]
10440#[cfg_attr(
10441    target_arch = "arm",
10442    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10443)]
10444pub fn vdupq_laneq_s8<const N: i32>(a: int8x16_t) -> int8x16_t {
10445    static_assert_uimm_bits!(N, 4);
10446    unsafe {
10447        simd_shuffle!(
10448            a,
10449            a,
10450            [
10451                N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32,
10452                N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32
10453            ]
10454        )
10455    }
10456}
10457#[doc = "Set all vector lanes to the same value"]
10458#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_laneq_u8)"]
10459#[inline]
10460#[target_feature(enable = "neon")]
10461#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10462#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8", N = 8))]
10463#[cfg_attr(
10464    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10465    assert_instr(dup, N = 8)
10466)]
10467#[rustc_legacy_const_generics(1)]
10468#[cfg_attr(
10469    not(target_arch = "arm"),
10470    stable(feature = "neon_intrinsics", since = "1.59.0")
10471)]
10472#[cfg_attr(
10473    target_arch = "arm",
10474    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10475)]
10476pub fn vdupq_laneq_u8<const N: i32>(a: uint8x16_t) -> uint8x16_t {
10477    static_assert_uimm_bits!(N, 4);
10478    unsafe {
10479        simd_shuffle!(
10480            a,
10481            a,
10482            [
10483                N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32,
10484                N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32
10485            ]
10486        )
10487    }
10488}
10489#[doc = "Set all vector lanes to the same value"]
10490#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_laneq_s64)"]
10491#[inline]
10492#[target_feature(enable = "neon")]
10493#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10494#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmov, N = 1))]
10495#[cfg_attr(
10496    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10497    assert_instr(nop, N = 1)
10498)]
10499#[rustc_legacy_const_generics(1)]
10500#[cfg_attr(
10501    not(target_arch = "arm"),
10502    stable(feature = "neon_intrinsics", since = "1.59.0")
10503)]
10504#[cfg_attr(
10505    target_arch = "arm",
10506    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10507)]
10508pub fn vdup_laneq_s64<const N: i32>(a: int64x2_t) -> int64x1_t {
10509    static_assert_uimm_bits!(N, 1);
10510    unsafe { transmute::<i64, _>(simd_extract!(a, N as u32)) }
10511}
10512#[doc = "Set all vector lanes to the same value"]
10513#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_laneq_u64)"]
10514#[inline]
10515#[target_feature(enable = "neon")]
10516#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10517#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmov, N = 1))]
10518#[cfg_attr(
10519    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10520    assert_instr(nop, N = 1)
10521)]
10522#[rustc_legacy_const_generics(1)]
10523#[cfg_attr(
10524    not(target_arch = "arm"),
10525    stable(feature = "neon_intrinsics", since = "1.59.0")
10526)]
10527#[cfg_attr(
10528    target_arch = "arm",
10529    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10530)]
10531pub fn vdup_laneq_u64<const N: i32>(a: uint64x2_t) -> uint64x1_t {
10532    static_assert_uimm_bits!(N, 1);
10533    unsafe { transmute::<u64, _>(simd_extract!(a, N as u32)) }
10534}
10535#[doc = "Create a new vector with all lanes set to a value"]
10536#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_n_f16)"]
10537#[inline]
10538#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10539#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
10540#[cfg_attr(
10541    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10542    assert_instr(dup)
10543)]
10544#[target_feature(enable = "neon,fp16")]
10545#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
10546#[cfg(not(target_arch = "arm64ec"))]
10547pub fn vdup_n_f16(a: f16) -> float16x4_t {
10548    float16x4_t::splat(a)
10549}
10550#[doc = "Create a new vector with all lanes set to a value"]
10551#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_n_f16)"]
10552#[inline]
10553#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10554#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
10555#[cfg_attr(
10556    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10557    assert_instr(dup)
10558)]
10559#[target_feature(enable = "neon,fp16")]
10560#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
10561#[cfg(not(target_arch = "arm64ec"))]
10562pub fn vdupq_n_f16(a: f16) -> float16x8_t {
10563    float16x8_t::splat(a)
10564}
10565#[doc = "Duplicate vector element to vector or scalar"]
10566#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_n_f32)"]
10567#[inline]
10568#[target_feature(enable = "neon")]
10569#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10570#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32"))]
10571#[cfg_attr(
10572    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10573    assert_instr(dup)
10574)]
10575#[cfg_attr(
10576    not(target_arch = "arm"),
10577    stable(feature = "neon_intrinsics", since = "1.59.0")
10578)]
10579#[cfg_attr(
10580    target_arch = "arm",
10581    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10582)]
10583pub fn vdup_n_f32(value: f32) -> float32x2_t {
10584    float32x2_t::splat(value)
10585}
10586#[doc = "Duplicate vector element to vector or scalar"]
10587#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_n_p16)"]
10588#[inline]
10589#[target_feature(enable = "neon")]
10590#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10591#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
10592#[cfg_attr(
10593    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10594    assert_instr(dup)
10595)]
10596#[cfg_attr(
10597    not(target_arch = "arm"),
10598    stable(feature = "neon_intrinsics", since = "1.59.0")
10599)]
10600#[cfg_attr(
10601    target_arch = "arm",
10602    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10603)]
10604pub fn vdup_n_p16(value: p16) -> poly16x4_t {
10605    poly16x4_t::splat(value)
10606}
10607#[doc = "Duplicate vector element to vector or scalar"]
10608#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_n_p8)"]
10609#[inline]
10610#[target_feature(enable = "neon")]
10611#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10612#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8"))]
10613#[cfg_attr(
10614    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10615    assert_instr(dup)
10616)]
10617#[cfg_attr(
10618    not(target_arch = "arm"),
10619    stable(feature = "neon_intrinsics", since = "1.59.0")
10620)]
10621#[cfg_attr(
10622    target_arch = "arm",
10623    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10624)]
10625pub fn vdup_n_p8(value: p8) -> poly8x8_t {
10626    poly8x8_t::splat(value)
10627}
10628#[doc = "Duplicate vector element to vector or scalar"]
10629#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_n_s16)"]
10630#[inline]
10631#[target_feature(enable = "neon")]
10632#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10633#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
10634#[cfg_attr(
10635    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10636    assert_instr(dup)
10637)]
10638#[cfg_attr(
10639    not(target_arch = "arm"),
10640    stable(feature = "neon_intrinsics", since = "1.59.0")
10641)]
10642#[cfg_attr(
10643    target_arch = "arm",
10644    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10645)]
10646pub fn vdup_n_s16(value: i16) -> int16x4_t {
10647    int16x4_t::splat(value)
10648}
10649#[doc = "Duplicate vector element to vector or scalar"]
10650#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_n_s32)"]
10651#[inline]
10652#[target_feature(enable = "neon")]
10653#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10654#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32"))]
10655#[cfg_attr(
10656    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10657    assert_instr(dup)
10658)]
10659#[cfg_attr(
10660    not(target_arch = "arm"),
10661    stable(feature = "neon_intrinsics", since = "1.59.0")
10662)]
10663#[cfg_attr(
10664    target_arch = "arm",
10665    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10666)]
10667pub fn vdup_n_s32(value: i32) -> int32x2_t {
10668    int32x2_t::splat(value)
10669}
10670#[doc = "Duplicate vector element to vector or scalar"]
10671#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_n_s64)"]
10672#[inline]
10673#[target_feature(enable = "neon")]
10674#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10675#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
10676#[cfg_attr(
10677    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10678    assert_instr(fmov)
10679)]
10680#[cfg_attr(
10681    not(target_arch = "arm"),
10682    stable(feature = "neon_intrinsics", since = "1.59.0")
10683)]
10684#[cfg_attr(
10685    target_arch = "arm",
10686    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10687)]
10688pub fn vdup_n_s64(value: i64) -> int64x1_t {
10689    int64x1_t::splat(value)
10690}
10691#[doc = "Duplicate vector element to vector or scalar"]
10692#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_n_s8)"]
10693#[inline]
10694#[target_feature(enable = "neon")]
10695#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10696#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8"))]
10697#[cfg_attr(
10698    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10699    assert_instr(dup)
10700)]
10701#[cfg_attr(
10702    not(target_arch = "arm"),
10703    stable(feature = "neon_intrinsics", since = "1.59.0")
10704)]
10705#[cfg_attr(
10706    target_arch = "arm",
10707    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10708)]
10709pub fn vdup_n_s8(value: i8) -> int8x8_t {
10710    int8x8_t::splat(value)
10711}
10712#[doc = "Duplicate vector element to vector or scalar"]
10713#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_n_u16)"]
10714#[inline]
10715#[target_feature(enable = "neon")]
10716#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10717#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
10718#[cfg_attr(
10719    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10720    assert_instr(dup)
10721)]
10722#[cfg_attr(
10723    not(target_arch = "arm"),
10724    stable(feature = "neon_intrinsics", since = "1.59.0")
10725)]
10726#[cfg_attr(
10727    target_arch = "arm",
10728    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10729)]
10730pub fn vdup_n_u16(value: u16) -> uint16x4_t {
10731    uint16x4_t::splat(value)
10732}
10733#[doc = "Duplicate vector element to vector or scalar"]
10734#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_n_u32)"]
10735#[inline]
10736#[target_feature(enable = "neon")]
10737#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10738#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32"))]
10739#[cfg_attr(
10740    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10741    assert_instr(dup)
10742)]
10743#[cfg_attr(
10744    not(target_arch = "arm"),
10745    stable(feature = "neon_intrinsics", since = "1.59.0")
10746)]
10747#[cfg_attr(
10748    target_arch = "arm",
10749    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10750)]
10751pub fn vdup_n_u32(value: u32) -> uint32x2_t {
10752    uint32x2_t::splat(value)
10753}
10754#[doc = "Duplicate vector element to vector or scalar"]
10755#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_n_u64)"]
10756#[inline]
10757#[target_feature(enable = "neon")]
10758#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10759#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
10760#[cfg_attr(
10761    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10762    assert_instr(fmov)
10763)]
10764#[cfg_attr(
10765    not(target_arch = "arm"),
10766    stable(feature = "neon_intrinsics", since = "1.59.0")
10767)]
10768#[cfg_attr(
10769    target_arch = "arm",
10770    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10771)]
10772pub fn vdup_n_u64(value: u64) -> uint64x1_t {
10773    uint64x1_t::splat(value)
10774}
10775#[doc = "Duplicate vector element to vector or scalar"]
10776#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_n_u8)"]
10777#[inline]
10778#[target_feature(enable = "neon")]
10779#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10780#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8"))]
10781#[cfg_attr(
10782    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10783    assert_instr(dup)
10784)]
10785#[cfg_attr(
10786    not(target_arch = "arm"),
10787    stable(feature = "neon_intrinsics", since = "1.59.0")
10788)]
10789#[cfg_attr(
10790    target_arch = "arm",
10791    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10792)]
10793pub fn vdup_n_u8(value: u8) -> uint8x8_t {
10794    uint8x8_t::splat(value)
10795}
10796#[doc = "Duplicate vector element to vector or scalar"]
10797#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_n_f32)"]
10798#[inline]
10799#[target_feature(enable = "neon")]
10800#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10801#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32"))]
10802#[cfg_attr(
10803    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10804    assert_instr(dup)
10805)]
10806#[cfg_attr(
10807    not(target_arch = "arm"),
10808    stable(feature = "neon_intrinsics", since = "1.59.0")
10809)]
10810#[cfg_attr(
10811    target_arch = "arm",
10812    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10813)]
10814pub fn vdupq_n_f32(value: f32) -> float32x4_t {
10815    float32x4_t::splat(value)
10816}
10817#[doc = "Duplicate vector element to vector or scalar"]
10818#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_n_p16)"]
10819#[inline]
10820#[target_feature(enable = "neon")]
10821#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10822#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
10823#[cfg_attr(
10824    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10825    assert_instr(dup)
10826)]
10827#[cfg_attr(
10828    not(target_arch = "arm"),
10829    stable(feature = "neon_intrinsics", since = "1.59.0")
10830)]
10831#[cfg_attr(
10832    target_arch = "arm",
10833    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10834)]
10835pub fn vdupq_n_p16(value: p16) -> poly16x8_t {
10836    poly16x8_t::splat(value)
10837}
10838#[doc = "Duplicate vector element to vector or scalar"]
10839#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_n_p8)"]
10840#[inline]
10841#[target_feature(enable = "neon")]
10842#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10843#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8"))]
10844#[cfg_attr(
10845    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10846    assert_instr(dup)
10847)]
10848#[cfg_attr(
10849    not(target_arch = "arm"),
10850    stable(feature = "neon_intrinsics", since = "1.59.0")
10851)]
10852#[cfg_attr(
10853    target_arch = "arm",
10854    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10855)]
10856pub fn vdupq_n_p8(value: p8) -> poly8x16_t {
10857    poly8x16_t::splat(value)
10858}
10859#[doc = "Duplicate vector element to vector or scalar"]
10860#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_n_s16)"]
10861#[inline]
10862#[target_feature(enable = "neon")]
10863#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10864#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
10865#[cfg_attr(
10866    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10867    assert_instr(dup)
10868)]
10869#[cfg_attr(
10870    not(target_arch = "arm"),
10871    stable(feature = "neon_intrinsics", since = "1.59.0")
10872)]
10873#[cfg_attr(
10874    target_arch = "arm",
10875    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10876)]
10877pub fn vdupq_n_s16(value: i16) -> int16x8_t {
10878    int16x8_t::splat(value)
10879}
10880#[doc = "Duplicate vector element to vector or scalar"]
10881#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_n_s32)"]
10882#[inline]
10883#[target_feature(enable = "neon")]
10884#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10885#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32"))]
10886#[cfg_attr(
10887    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10888    assert_instr(dup)
10889)]
10890#[cfg_attr(
10891    not(target_arch = "arm"),
10892    stable(feature = "neon_intrinsics", since = "1.59.0")
10893)]
10894#[cfg_attr(
10895    target_arch = "arm",
10896    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10897)]
10898pub fn vdupq_n_s32(value: i32) -> int32x4_t {
10899    int32x4_t::splat(value)
10900}
10901#[doc = "Duplicate vector element to vector or scalar"]
10902#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_n_s64)"]
10903#[inline]
10904#[target_feature(enable = "neon")]
10905#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10906#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
10907#[cfg_attr(
10908    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10909    assert_instr(dup)
10910)]
10911#[cfg_attr(
10912    not(target_arch = "arm"),
10913    stable(feature = "neon_intrinsics", since = "1.59.0")
10914)]
10915#[cfg_attr(
10916    target_arch = "arm",
10917    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10918)]
10919pub fn vdupq_n_s64(value: i64) -> int64x2_t {
10920    int64x2_t::splat(value)
10921}
10922#[doc = "Duplicate vector element to vector or scalar"]
10923#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_n_s8)"]
10924#[inline]
10925#[target_feature(enable = "neon")]
10926#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10927#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8"))]
10928#[cfg_attr(
10929    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10930    assert_instr(dup)
10931)]
10932#[cfg_attr(
10933    not(target_arch = "arm"),
10934    stable(feature = "neon_intrinsics", since = "1.59.0")
10935)]
10936#[cfg_attr(
10937    target_arch = "arm",
10938    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10939)]
10940pub fn vdupq_n_s8(value: i8) -> int8x16_t {
10941    int8x16_t::splat(value)
10942}
10943#[doc = "Duplicate vector element to vector or scalar"]
10944#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_n_u16)"]
10945#[inline]
10946#[target_feature(enable = "neon")]
10947#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10948#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
10949#[cfg_attr(
10950    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10951    assert_instr(dup)
10952)]
10953#[cfg_attr(
10954    not(target_arch = "arm"),
10955    stable(feature = "neon_intrinsics", since = "1.59.0")
10956)]
10957#[cfg_attr(
10958    target_arch = "arm",
10959    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10960)]
10961pub fn vdupq_n_u16(value: u16) -> uint16x8_t {
10962    uint16x8_t::splat(value)
10963}
10964#[doc = "Duplicate vector element to vector or scalar"]
10965#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_n_u32)"]
10966#[inline]
10967#[target_feature(enable = "neon")]
10968#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10969#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32"))]
10970#[cfg_attr(
10971    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10972    assert_instr(dup)
10973)]
10974#[cfg_attr(
10975    not(target_arch = "arm"),
10976    stable(feature = "neon_intrinsics", since = "1.59.0")
10977)]
10978#[cfg_attr(
10979    target_arch = "arm",
10980    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10981)]
10982pub fn vdupq_n_u32(value: u32) -> uint32x4_t {
10983    uint32x4_t::splat(value)
10984}
10985#[doc = "Duplicate vector element to vector or scalar"]
10986#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_n_u64)"]
10987#[inline]
10988#[target_feature(enable = "neon")]
10989#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10990#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
10991#[cfg_attr(
10992    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10993    assert_instr(dup)
10994)]
10995#[cfg_attr(
10996    not(target_arch = "arm"),
10997    stable(feature = "neon_intrinsics", since = "1.59.0")
10998)]
10999#[cfg_attr(
11000    target_arch = "arm",
11001    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11002)]
11003pub fn vdupq_n_u64(value: u64) -> uint64x2_t {
11004    uint64x2_t::splat(value)
11005}
11006#[doc = "Duplicate vector element to vector or scalar"]
11007#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_n_u8)"]
11008#[inline]
11009#[target_feature(enable = "neon")]
11010#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11011#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8"))]
11012#[cfg_attr(
11013    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11014    assert_instr(dup)
11015)]
11016#[cfg_attr(
11017    not(target_arch = "arm"),
11018    stable(feature = "neon_intrinsics", since = "1.59.0")
11019)]
11020#[cfg_attr(
11021    target_arch = "arm",
11022    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11023)]
11024pub fn vdupq_n_u8(value: u8) -> uint8x16_t {
11025    uint8x16_t::splat(value)
11026}
11027#[doc = "Duplicate vector element to vector or scalar"]
11028#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_n_f32_vfp4)"]
11029#[inline]
11030#[target_feature(enable = "neon")]
11031#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
11032#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32"))]
11033#[cfg_attr(
11034    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11035    assert_instr(dup)
11036)]
11037#[cfg_attr(
11038    not(target_arch = "arm"),
11039    stable(feature = "neon_intrinsics", since = "1.59.0")
11040)]
11041#[cfg_attr(
11042    target_arch = "arm",
11043    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11044)]
11045fn vdup_n_f32_vfp4(value: f32) -> float32x2_t {
11046    float32x2_t::splat(value)
11047}
11048#[doc = "Duplicate vector element to vector or scalar"]
11049#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_n_f32_vfp4)"]
11050#[inline]
11051#[target_feature(enable = "neon")]
11052#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
11053#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32"))]
11054#[cfg_attr(
11055    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11056    assert_instr(dup)
11057)]
11058#[cfg_attr(
11059    not(target_arch = "arm"),
11060    stable(feature = "neon_intrinsics", since = "1.59.0")
11061)]
11062#[cfg_attr(
11063    target_arch = "arm",
11064    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11065)]
11066fn vdupq_n_f32_vfp4(value: f32) -> float32x4_t {
11067    float32x4_t::splat(value)
11068}
11069#[doc = "Set all vector lanes to the same value"]
11070#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_lane_s64)"]
11071#[inline]
11072#[target_feature(enable = "neon")]
11073#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11074#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmov, N = 0))]
11075#[cfg_attr(
11076    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11077    assert_instr(dup, N = 0)
11078)]
11079#[rustc_legacy_const_generics(1)]
11080#[cfg_attr(
11081    not(target_arch = "arm"),
11082    stable(feature = "neon_intrinsics", since = "1.59.0")
11083)]
11084#[cfg_attr(
11085    target_arch = "arm",
11086    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11087)]
11088pub fn vdupq_lane_s64<const N: i32>(a: int64x1_t) -> int64x2_t {
11089    static_assert!(N == 0);
11090    unsafe { simd_shuffle!(a, a, [N as u32, N as u32]) }
11091}
11092#[doc = "Set all vector lanes to the same value"]
11093#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_lane_u64)"]
11094#[inline]
11095#[target_feature(enable = "neon")]
11096#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11097#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmov, N = 0))]
11098#[cfg_attr(
11099    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11100    assert_instr(dup, N = 0)
11101)]
11102#[rustc_legacy_const_generics(1)]
11103#[cfg_attr(
11104    not(target_arch = "arm"),
11105    stable(feature = "neon_intrinsics", since = "1.59.0")
11106)]
11107#[cfg_attr(
11108    target_arch = "arm",
11109    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11110)]
11111pub fn vdupq_lane_u64<const N: i32>(a: uint64x1_t) -> uint64x2_t {
11112    static_assert!(N == 0);
11113    unsafe { simd_shuffle!(a, a, [N as u32, N as u32]) }
11114}
11115#[doc = "Set all vector lanes to the same value"]
11116#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_laneq_s64)"]
11117#[inline]
11118#[target_feature(enable = "neon")]
11119#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11120#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmov, N = 1))]
11121#[cfg_attr(
11122    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11123    assert_instr(dup, N = 1)
11124)]
11125#[rustc_legacy_const_generics(1)]
11126#[cfg_attr(
11127    not(target_arch = "arm"),
11128    stable(feature = "neon_intrinsics", since = "1.59.0")
11129)]
11130#[cfg_attr(
11131    target_arch = "arm",
11132    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11133)]
11134pub fn vdupq_laneq_s64<const N: i32>(a: int64x2_t) -> int64x2_t {
11135    static_assert_uimm_bits!(N, 1);
11136    unsafe { simd_shuffle!(a, a, [N as u32, N as u32]) }
11137}
11138#[doc = "Set all vector lanes to the same value"]
11139#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_laneq_u64)"]
11140#[inline]
11141#[target_feature(enable = "neon")]
11142#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11143#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmov, N = 1))]
11144#[cfg_attr(
11145    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11146    assert_instr(dup, N = 1)
11147)]
11148#[rustc_legacy_const_generics(1)]
11149#[cfg_attr(
11150    not(target_arch = "arm"),
11151    stable(feature = "neon_intrinsics", since = "1.59.0")
11152)]
11153#[cfg_attr(
11154    target_arch = "arm",
11155    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11156)]
11157pub fn vdupq_laneq_u64<const N: i32>(a: uint64x2_t) -> uint64x2_t {
11158    static_assert_uimm_bits!(N, 1);
11159    unsafe { simd_shuffle!(a, a, [N as u32, N as u32]) }
11160}
11161#[doc = "Vector bitwise exclusive or (vector)"]
11162#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veor_s8)"]
11163#[inline]
11164#[target_feature(enable = "neon")]
11165#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11166#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
11167#[cfg_attr(
11168    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11169    assert_instr(eor)
11170)]
11171#[cfg_attr(
11172    not(target_arch = "arm"),
11173    stable(feature = "neon_intrinsics", since = "1.59.0")
11174)]
11175#[cfg_attr(
11176    target_arch = "arm",
11177    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11178)]
11179pub fn veor_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
11180    unsafe { simd_xor(a, b) }
11181}
11182#[doc = "Vector bitwise exclusive or (vector)"]
11183#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veorq_s8)"]
11184#[inline]
11185#[target_feature(enable = "neon")]
11186#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11187#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
11188#[cfg_attr(
11189    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11190    assert_instr(eor)
11191)]
11192#[cfg_attr(
11193    not(target_arch = "arm"),
11194    stable(feature = "neon_intrinsics", since = "1.59.0")
11195)]
11196#[cfg_attr(
11197    target_arch = "arm",
11198    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11199)]
11200pub fn veorq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
11201    unsafe { simd_xor(a, b) }
11202}
11203#[doc = "Vector bitwise exclusive or (vector)"]
11204#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veor_s16)"]
11205#[inline]
11206#[target_feature(enable = "neon")]
11207#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11208#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
11209#[cfg_attr(
11210    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11211    assert_instr(eor)
11212)]
11213#[cfg_attr(
11214    not(target_arch = "arm"),
11215    stable(feature = "neon_intrinsics", since = "1.59.0")
11216)]
11217#[cfg_attr(
11218    target_arch = "arm",
11219    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11220)]
11221pub fn veor_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
11222    unsafe { simd_xor(a, b) }
11223}
11224#[doc = "Vector bitwise exclusive or (vector)"]
11225#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veorq_s16)"]
11226#[inline]
11227#[target_feature(enable = "neon")]
11228#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11229#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
11230#[cfg_attr(
11231    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11232    assert_instr(eor)
11233)]
11234#[cfg_attr(
11235    not(target_arch = "arm"),
11236    stable(feature = "neon_intrinsics", since = "1.59.0")
11237)]
11238#[cfg_attr(
11239    target_arch = "arm",
11240    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11241)]
11242pub fn veorq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
11243    unsafe { simd_xor(a, b) }
11244}
11245#[doc = "Vector bitwise exclusive or (vector)"]
11246#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veor_s32)"]
11247#[inline]
11248#[target_feature(enable = "neon")]
11249#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11250#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
11251#[cfg_attr(
11252    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11253    assert_instr(eor)
11254)]
11255#[cfg_attr(
11256    not(target_arch = "arm"),
11257    stable(feature = "neon_intrinsics", since = "1.59.0")
11258)]
11259#[cfg_attr(
11260    target_arch = "arm",
11261    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11262)]
11263pub fn veor_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
11264    unsafe { simd_xor(a, b) }
11265}
11266#[doc = "Vector bitwise exclusive or (vector)"]
11267#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veorq_s32)"]
11268#[inline]
11269#[target_feature(enable = "neon")]
11270#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11271#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
11272#[cfg_attr(
11273    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11274    assert_instr(eor)
11275)]
11276#[cfg_attr(
11277    not(target_arch = "arm"),
11278    stable(feature = "neon_intrinsics", since = "1.59.0")
11279)]
11280#[cfg_attr(
11281    target_arch = "arm",
11282    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11283)]
11284pub fn veorq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
11285    unsafe { simd_xor(a, b) }
11286}
11287#[doc = "Vector bitwise exclusive or (vector)"]
11288#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veor_s64)"]
11289#[inline]
11290#[target_feature(enable = "neon")]
11291#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11292#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
11293#[cfg_attr(
11294    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11295    assert_instr(eor)
11296)]
11297#[cfg_attr(
11298    not(target_arch = "arm"),
11299    stable(feature = "neon_intrinsics", since = "1.59.0")
11300)]
11301#[cfg_attr(
11302    target_arch = "arm",
11303    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11304)]
11305pub fn veor_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t {
11306    unsafe { simd_xor(a, b) }
11307}
11308#[doc = "Vector bitwise exclusive or (vector)"]
11309#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veorq_s64)"]
11310#[inline]
11311#[target_feature(enable = "neon")]
11312#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11313#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
11314#[cfg_attr(
11315    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11316    assert_instr(eor)
11317)]
11318#[cfg_attr(
11319    not(target_arch = "arm"),
11320    stable(feature = "neon_intrinsics", since = "1.59.0")
11321)]
11322#[cfg_attr(
11323    target_arch = "arm",
11324    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11325)]
11326pub fn veorq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t {
11327    unsafe { simd_xor(a, b) }
11328}
11329#[doc = "Vector bitwise exclusive or (vector)"]
11330#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veor_u8)"]
11331#[inline]
11332#[target_feature(enable = "neon")]
11333#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11334#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
11335#[cfg_attr(
11336    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11337    assert_instr(eor)
11338)]
11339#[cfg_attr(
11340    not(target_arch = "arm"),
11341    stable(feature = "neon_intrinsics", since = "1.59.0")
11342)]
11343#[cfg_attr(
11344    target_arch = "arm",
11345    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11346)]
11347pub fn veor_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
11348    unsafe { simd_xor(a, b) }
11349}
11350#[doc = "Vector bitwise exclusive or (vector)"]
11351#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veorq_u8)"]
11352#[inline]
11353#[target_feature(enable = "neon")]
11354#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11355#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
11356#[cfg_attr(
11357    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11358    assert_instr(eor)
11359)]
11360#[cfg_attr(
11361    not(target_arch = "arm"),
11362    stable(feature = "neon_intrinsics", since = "1.59.0")
11363)]
11364#[cfg_attr(
11365    target_arch = "arm",
11366    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11367)]
11368pub fn veorq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
11369    unsafe { simd_xor(a, b) }
11370}
11371#[doc = "Vector bitwise exclusive or (vector)"]
11372#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veor_u16)"]
11373#[inline]
11374#[target_feature(enable = "neon")]
11375#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11376#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
11377#[cfg_attr(
11378    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11379    assert_instr(eor)
11380)]
11381#[cfg_attr(
11382    not(target_arch = "arm"),
11383    stable(feature = "neon_intrinsics", since = "1.59.0")
11384)]
11385#[cfg_attr(
11386    target_arch = "arm",
11387    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11388)]
11389pub fn veor_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
11390    unsafe { simd_xor(a, b) }
11391}
11392#[doc = "Vector bitwise exclusive or (vector)"]
11393#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veorq_u16)"]
11394#[inline]
11395#[target_feature(enable = "neon")]
11396#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11397#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
11398#[cfg_attr(
11399    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11400    assert_instr(eor)
11401)]
11402#[cfg_attr(
11403    not(target_arch = "arm"),
11404    stable(feature = "neon_intrinsics", since = "1.59.0")
11405)]
11406#[cfg_attr(
11407    target_arch = "arm",
11408    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11409)]
11410pub fn veorq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
11411    unsafe { simd_xor(a, b) }
11412}
11413#[doc = "Vector bitwise exclusive or (vector)"]
11414#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veor_u32)"]
11415#[inline]
11416#[target_feature(enable = "neon")]
11417#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11418#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
11419#[cfg_attr(
11420    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11421    assert_instr(eor)
11422)]
11423#[cfg_attr(
11424    not(target_arch = "arm"),
11425    stable(feature = "neon_intrinsics", since = "1.59.0")
11426)]
11427#[cfg_attr(
11428    target_arch = "arm",
11429    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11430)]
11431pub fn veor_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
11432    unsafe { simd_xor(a, b) }
11433}
11434#[doc = "Vector bitwise exclusive or (vector)"]
11435#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veorq_u32)"]
11436#[inline]
11437#[target_feature(enable = "neon")]
11438#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11439#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
11440#[cfg_attr(
11441    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11442    assert_instr(eor)
11443)]
11444#[cfg_attr(
11445    not(target_arch = "arm"),
11446    stable(feature = "neon_intrinsics", since = "1.59.0")
11447)]
11448#[cfg_attr(
11449    target_arch = "arm",
11450    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11451)]
11452pub fn veorq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
11453    unsafe { simd_xor(a, b) }
11454}
11455#[doc = "Vector bitwise exclusive or (vector)"]
11456#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veor_u64)"]
11457#[inline]
11458#[target_feature(enable = "neon")]
11459#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11460#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
11461#[cfg_attr(
11462    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11463    assert_instr(eor)
11464)]
11465#[cfg_attr(
11466    not(target_arch = "arm"),
11467    stable(feature = "neon_intrinsics", since = "1.59.0")
11468)]
11469#[cfg_attr(
11470    target_arch = "arm",
11471    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11472)]
11473pub fn veor_u64(a: uint64x1_t, b: uint64x1_t) -> uint64x1_t {
11474    unsafe { simd_xor(a, b) }
11475}
11476#[doc = "Vector bitwise exclusive or (vector)"]
11477#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veorq_u64)"]
11478#[inline]
11479#[target_feature(enable = "neon")]
11480#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11481#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
11482#[cfg_attr(
11483    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11484    assert_instr(eor)
11485)]
11486#[cfg_attr(
11487    not(target_arch = "arm"),
11488    stable(feature = "neon_intrinsics", since = "1.59.0")
11489)]
11490#[cfg_attr(
11491    target_arch = "arm",
11492    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11493)]
11494pub fn veorq_u64(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
11495    unsafe { simd_xor(a, b) }
11496}
11497#[doc = "Extract vector from pair of vectors"]
11498#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vext_f16)"]
11499#[inline]
11500#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11501#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 3))]
11502#[cfg_attr(
11503    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11504    assert_instr(ext, N = 3)
11505)]
11506#[rustc_legacy_const_generics(2)]
11507#[target_feature(enable = "neon,fp16")]
11508#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
11509#[cfg(not(target_arch = "arm64ec"))]
11510pub fn vext_f16<const N: i32>(a: float16x4_t, b: float16x4_t) -> float16x4_t {
11511    static_assert_uimm_bits!(N, 2);
11512    unsafe {
11513        match N & 0b11 {
11514            0 => simd_shuffle!(a, b, [0, 1, 2, 3]),
11515            1 => simd_shuffle!(a, b, [1, 2, 3, 4]),
11516            2 => simd_shuffle!(a, b, [2, 3, 4, 5]),
11517            3 => simd_shuffle!(a, b, [3, 4, 5, 6]),
11518            _ => unreachable_unchecked(),
11519        }
11520    }
11521}
11522#[doc = "Extract vector from pair of vectors"]
11523#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vext_f32)"]
11524#[inline]
11525#[target_feature(enable = "neon")]
11526#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11527#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 1))]
11528#[cfg_attr(
11529    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11530    assert_instr(ext, N = 1)
11531)]
11532#[rustc_legacy_const_generics(2)]
11533#[cfg_attr(
11534    not(target_arch = "arm"),
11535    stable(feature = "neon_intrinsics", since = "1.59.0")
11536)]
11537#[cfg_attr(
11538    target_arch = "arm",
11539    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11540)]
11541pub fn vext_f32<const N: i32>(a: float32x2_t, b: float32x2_t) -> float32x2_t {
11542    static_assert_uimm_bits!(N, 1);
11543    unsafe {
11544        match N & 0b1 {
11545            0 => simd_shuffle!(a, b, [0, 1]),
11546            1 => simd_shuffle!(a, b, [1, 2]),
11547            _ => unreachable_unchecked(),
11548        }
11549    }
11550}
11551#[doc = "Extract vector from pair of vectors"]
11552#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vext_s32)"]
11553#[inline]
11554#[target_feature(enable = "neon")]
11555#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11556#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 1))]
11557#[cfg_attr(
11558    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11559    assert_instr(ext, N = 1)
11560)]
11561#[rustc_legacy_const_generics(2)]
11562#[cfg_attr(
11563    not(target_arch = "arm"),
11564    stable(feature = "neon_intrinsics", since = "1.59.0")
11565)]
11566#[cfg_attr(
11567    target_arch = "arm",
11568    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11569)]
11570pub fn vext_s32<const N: i32>(a: int32x2_t, b: int32x2_t) -> int32x2_t {
11571    static_assert_uimm_bits!(N, 1);
11572    unsafe {
11573        match N & 0b1 {
11574            0 => simd_shuffle!(a, b, [0, 1]),
11575            1 => simd_shuffle!(a, b, [1, 2]),
11576            _ => unreachable_unchecked(),
11577        }
11578    }
11579}
11580#[doc = "Extract vector from pair of vectors"]
11581#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vext_u32)"]
11582#[inline]
11583#[target_feature(enable = "neon")]
11584#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11585#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 1))]
11586#[cfg_attr(
11587    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11588    assert_instr(ext, N = 1)
11589)]
11590#[rustc_legacy_const_generics(2)]
11591#[cfg_attr(
11592    not(target_arch = "arm"),
11593    stable(feature = "neon_intrinsics", since = "1.59.0")
11594)]
11595#[cfg_attr(
11596    target_arch = "arm",
11597    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11598)]
11599pub fn vext_u32<const N: i32>(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
11600    static_assert_uimm_bits!(N, 1);
11601    unsafe {
11602        match N & 0b1 {
11603            0 => simd_shuffle!(a, b, [0, 1]),
11604            1 => simd_shuffle!(a, b, [1, 2]),
11605            _ => unreachable_unchecked(),
11606        }
11607    }
11608}
11609#[doc = "Extract vector from pair of vectors"]
11610#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vext_s64)"]
11611#[doc = "## Safety"]
11612#[doc = "  * Neon instrinsic unsafe"]
11613#[inline]
11614#[target_feature(enable = "neon")]
11615#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11616#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, N = 0))]
11617#[cfg_attr(
11618    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11619    assert_instr(nop, N = 0)
11620)]
11621#[rustc_legacy_const_generics(2)]
11622#[cfg_attr(
11623    not(target_arch = "arm"),
11624    stable(feature = "neon_intrinsics", since = "1.59.0")
11625)]
11626#[cfg_attr(
11627    target_arch = "arm",
11628    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11629)]
11630pub unsafe fn vext_s64<const N: i32>(a: int64x1_t, _b: int64x1_t) -> int64x1_t {
11631    static_assert!(N == 0);
11632    a
11633}
11634#[doc = "Extract vector from pair of vectors"]
11635#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vext_u64)"]
11636#[doc = "## Safety"]
11637#[doc = "  * Neon instrinsic unsafe"]
11638#[inline]
11639#[target_feature(enable = "neon")]
11640#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11641#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, N = 0))]
11642#[cfg_attr(
11643    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11644    assert_instr(nop, N = 0)
11645)]
11646#[rustc_legacy_const_generics(2)]
11647#[cfg_attr(
11648    not(target_arch = "arm"),
11649    stable(feature = "neon_intrinsics", since = "1.59.0")
11650)]
11651#[cfg_attr(
11652    target_arch = "arm",
11653    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11654)]
11655pub unsafe fn vext_u64<const N: i32>(a: uint64x1_t, _b: uint64x1_t) -> uint64x1_t {
11656    static_assert!(N == 0);
11657    a
11658}
11659#[doc = "Extract vector from pair of vectors"]
11660#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vext_s8)"]
11661#[inline]
11662#[target_feature(enable = "neon")]
11663#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11664#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 7))]
11665#[cfg_attr(
11666    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11667    assert_instr(ext, N = 7)
11668)]
11669#[rustc_legacy_const_generics(2)]
11670#[cfg_attr(
11671    not(target_arch = "arm"),
11672    stable(feature = "neon_intrinsics", since = "1.59.0")
11673)]
11674#[cfg_attr(
11675    target_arch = "arm",
11676    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11677)]
11678pub fn vext_s8<const N: i32>(a: int8x8_t, b: int8x8_t) -> int8x8_t {
11679    static_assert_uimm_bits!(N, 3);
11680    unsafe {
11681        match N & 0b111 {
11682            0 => simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7]),
11683            1 => simd_shuffle!(a, b, [1, 2, 3, 4, 5, 6, 7, 8]),
11684            2 => simd_shuffle!(a, b, [2, 3, 4, 5, 6, 7, 8, 9]),
11685            3 => simd_shuffle!(a, b, [3, 4, 5, 6, 7, 8, 9, 10]),
11686            4 => simd_shuffle!(a, b, [4, 5, 6, 7, 8, 9, 10, 11]),
11687            5 => simd_shuffle!(a, b, [5, 6, 7, 8, 9, 10, 11, 12]),
11688            6 => simd_shuffle!(a, b, [6, 7, 8, 9, 10, 11, 12, 13]),
11689            7 => simd_shuffle!(a, b, [7, 8, 9, 10, 11, 12, 13, 14]),
11690            _ => unreachable_unchecked(),
11691        }
11692    }
11693}
11694#[doc = "Extract vector from pair of vectors"]
11695#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vextq_s16)"]
11696#[inline]
11697#[target_feature(enable = "neon")]
11698#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11699#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 7))]
11700#[cfg_attr(
11701    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11702    assert_instr(ext, N = 7)
11703)]
11704#[rustc_legacy_const_generics(2)]
11705#[cfg_attr(
11706    not(target_arch = "arm"),
11707    stable(feature = "neon_intrinsics", since = "1.59.0")
11708)]
11709#[cfg_attr(
11710    target_arch = "arm",
11711    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11712)]
11713pub fn vextq_s16<const N: i32>(a: int16x8_t, b: int16x8_t) -> int16x8_t {
11714    static_assert_uimm_bits!(N, 3);
11715    unsafe {
11716        match N & 0b111 {
11717            0 => simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7]),
11718            1 => simd_shuffle!(a, b, [1, 2, 3, 4, 5, 6, 7, 8]),
11719            2 => simd_shuffle!(a, b, [2, 3, 4, 5, 6, 7, 8, 9]),
11720            3 => simd_shuffle!(a, b, [3, 4, 5, 6, 7, 8, 9, 10]),
11721            4 => simd_shuffle!(a, b, [4, 5, 6, 7, 8, 9, 10, 11]),
11722            5 => simd_shuffle!(a, b, [5, 6, 7, 8, 9, 10, 11, 12]),
11723            6 => simd_shuffle!(a, b, [6, 7, 8, 9, 10, 11, 12, 13]),
11724            7 => simd_shuffle!(a, b, [7, 8, 9, 10, 11, 12, 13, 14]),
11725            _ => unreachable_unchecked(),
11726        }
11727    }
11728}
11729#[doc = "Extract vector from pair of vectors"]
11730#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vext_u8)"]
11731#[inline]
11732#[target_feature(enable = "neon")]
11733#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11734#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 7))]
11735#[cfg_attr(
11736    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11737    assert_instr(ext, N = 7)
11738)]
11739#[rustc_legacy_const_generics(2)]
11740#[cfg_attr(
11741    not(target_arch = "arm"),
11742    stable(feature = "neon_intrinsics", since = "1.59.0")
11743)]
11744#[cfg_attr(
11745    target_arch = "arm",
11746    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11747)]
11748pub fn vext_u8<const N: i32>(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
11749    static_assert_uimm_bits!(N, 3);
11750    unsafe {
11751        match N & 0b111 {
11752            0 => simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7]),
11753            1 => simd_shuffle!(a, b, [1, 2, 3, 4, 5, 6, 7, 8]),
11754            2 => simd_shuffle!(a, b, [2, 3, 4, 5, 6, 7, 8, 9]),
11755            3 => simd_shuffle!(a, b, [3, 4, 5, 6, 7, 8, 9, 10]),
11756            4 => simd_shuffle!(a, b, [4, 5, 6, 7, 8, 9, 10, 11]),
11757            5 => simd_shuffle!(a, b, [5, 6, 7, 8, 9, 10, 11, 12]),
11758            6 => simd_shuffle!(a, b, [6, 7, 8, 9, 10, 11, 12, 13]),
11759            7 => simd_shuffle!(a, b, [7, 8, 9, 10, 11, 12, 13, 14]),
11760            _ => unreachable_unchecked(),
11761        }
11762    }
11763}
11764#[doc = "Extract vector from pair of vectors"]
11765#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vextq_u16)"]
11766#[inline]
11767#[target_feature(enable = "neon")]
11768#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11769#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 7))]
11770#[cfg_attr(
11771    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11772    assert_instr(ext, N = 7)
11773)]
11774#[rustc_legacy_const_generics(2)]
11775#[cfg_attr(
11776    not(target_arch = "arm"),
11777    stable(feature = "neon_intrinsics", since = "1.59.0")
11778)]
11779#[cfg_attr(
11780    target_arch = "arm",
11781    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11782)]
11783pub fn vextq_u16<const N: i32>(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
11784    static_assert_uimm_bits!(N, 3);
11785    unsafe {
11786        match N & 0b111 {
11787            0 => simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7]),
11788            1 => simd_shuffle!(a, b, [1, 2, 3, 4, 5, 6, 7, 8]),
11789            2 => simd_shuffle!(a, b, [2, 3, 4, 5, 6, 7, 8, 9]),
11790            3 => simd_shuffle!(a, b, [3, 4, 5, 6, 7, 8, 9, 10]),
11791            4 => simd_shuffle!(a, b, [4, 5, 6, 7, 8, 9, 10, 11]),
11792            5 => simd_shuffle!(a, b, [5, 6, 7, 8, 9, 10, 11, 12]),
11793            6 => simd_shuffle!(a, b, [6, 7, 8, 9, 10, 11, 12, 13]),
11794            7 => simd_shuffle!(a, b, [7, 8, 9, 10, 11, 12, 13, 14]),
11795            _ => unreachable_unchecked(),
11796        }
11797    }
11798}
11799#[doc = "Extract vector from pair of vectors"]
11800#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vext_p8)"]
11801#[inline]
11802#[target_feature(enable = "neon")]
11803#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11804#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 7))]
11805#[cfg_attr(
11806    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11807    assert_instr(ext, N = 7)
11808)]
11809#[rustc_legacy_const_generics(2)]
11810#[cfg_attr(
11811    not(target_arch = "arm"),
11812    stable(feature = "neon_intrinsics", since = "1.59.0")
11813)]
11814#[cfg_attr(
11815    target_arch = "arm",
11816    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11817)]
11818pub fn vext_p8<const N: i32>(a: poly8x8_t, b: poly8x8_t) -> poly8x8_t {
11819    static_assert_uimm_bits!(N, 3);
11820    unsafe {
11821        match N & 0b111 {
11822            0 => simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7]),
11823            1 => simd_shuffle!(a, b, [1, 2, 3, 4, 5, 6, 7, 8]),
11824            2 => simd_shuffle!(a, b, [2, 3, 4, 5, 6, 7, 8, 9]),
11825            3 => simd_shuffle!(a, b, [3, 4, 5, 6, 7, 8, 9, 10]),
11826            4 => simd_shuffle!(a, b, [4, 5, 6, 7, 8, 9, 10, 11]),
11827            5 => simd_shuffle!(a, b, [5, 6, 7, 8, 9, 10, 11, 12]),
11828            6 => simd_shuffle!(a, b, [6, 7, 8, 9, 10, 11, 12, 13]),
11829            7 => simd_shuffle!(a, b, [7, 8, 9, 10, 11, 12, 13, 14]),
11830            _ => unreachable_unchecked(),
11831        }
11832    }
11833}
11834#[doc = "Extract vector from pair of vectors"]
11835#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vextq_p16)"]
11836#[inline]
11837#[target_feature(enable = "neon")]
11838#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11839#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 7))]
11840#[cfg_attr(
11841    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11842    assert_instr(ext, N = 7)
11843)]
11844#[rustc_legacy_const_generics(2)]
11845#[cfg_attr(
11846    not(target_arch = "arm"),
11847    stable(feature = "neon_intrinsics", since = "1.59.0")
11848)]
11849#[cfg_attr(
11850    target_arch = "arm",
11851    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11852)]
11853pub fn vextq_p16<const N: i32>(a: poly16x8_t, b: poly16x8_t) -> poly16x8_t {
11854    static_assert_uimm_bits!(N, 3);
11855    unsafe {
11856        match N & 0b111 {
11857            0 => simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7]),
11858            1 => simd_shuffle!(a, b, [1, 2, 3, 4, 5, 6, 7, 8]),
11859            2 => simd_shuffle!(a, b, [2, 3, 4, 5, 6, 7, 8, 9]),
11860            3 => simd_shuffle!(a, b, [3, 4, 5, 6, 7, 8, 9, 10]),
11861            4 => simd_shuffle!(a, b, [4, 5, 6, 7, 8, 9, 10, 11]),
11862            5 => simd_shuffle!(a, b, [5, 6, 7, 8, 9, 10, 11, 12]),
11863            6 => simd_shuffle!(a, b, [6, 7, 8, 9, 10, 11, 12, 13]),
11864            7 => simd_shuffle!(a, b, [7, 8, 9, 10, 11, 12, 13, 14]),
11865            _ => unreachable_unchecked(),
11866        }
11867    }
11868}
11869#[doc = "Extract vector from pair of vectors"]
11870#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vextq_f16)"]
11871#[inline]
11872#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11873#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 7))]
11874#[cfg_attr(
11875    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11876    assert_instr(ext, N = 7)
11877)]
11878#[rustc_legacy_const_generics(2)]
11879#[target_feature(enable = "neon,fp16")]
11880#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
11881#[cfg(not(target_arch = "arm64ec"))]
11882pub fn vextq_f16<const N: i32>(a: float16x8_t, b: float16x8_t) -> float16x8_t {
11883    static_assert_uimm_bits!(N, 3);
11884    unsafe {
11885        match N & 0b111 {
11886            0 => simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7]),
11887            1 => simd_shuffle!(a, b, [1, 2, 3, 4, 5, 6, 7, 8]),
11888            2 => simd_shuffle!(a, b, [2, 3, 4, 5, 6, 7, 8, 9]),
11889            3 => simd_shuffle!(a, b, [3, 4, 5, 6, 7, 8, 9, 10]),
11890            4 => simd_shuffle!(a, b, [4, 5, 6, 7, 8, 9, 10, 11]),
11891            5 => simd_shuffle!(a, b, [5, 6, 7, 8, 9, 10, 11, 12]),
11892            6 => simd_shuffle!(a, b, [6, 7, 8, 9, 10, 11, 12, 13]),
11893            7 => simd_shuffle!(a, b, [7, 8, 9, 10, 11, 12, 13, 14]),
11894            _ => unreachable_unchecked(),
11895        }
11896    }
11897}
11898#[doc = "Extract vector from pair of vectors"]
11899#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vextq_f32)"]
11900#[inline]
11901#[target_feature(enable = "neon")]
11902#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11903#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 3))]
11904#[cfg_attr(
11905    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11906    assert_instr(ext, N = 3)
11907)]
11908#[rustc_legacy_const_generics(2)]
11909#[cfg_attr(
11910    not(target_arch = "arm"),
11911    stable(feature = "neon_intrinsics", since = "1.59.0")
11912)]
11913#[cfg_attr(
11914    target_arch = "arm",
11915    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11916)]
11917pub fn vextq_f32<const N: i32>(a: float32x4_t, b: float32x4_t) -> float32x4_t {
11918    static_assert_uimm_bits!(N, 2);
11919    unsafe {
11920        match N & 0b11 {
11921            0 => simd_shuffle!(a, b, [0, 1, 2, 3]),
11922            1 => simd_shuffle!(a, b, [1, 2, 3, 4]),
11923            2 => simd_shuffle!(a, b, [2, 3, 4, 5]),
11924            3 => simd_shuffle!(a, b, [3, 4, 5, 6]),
11925            _ => unreachable_unchecked(),
11926        }
11927    }
11928}
11929#[doc = "Extract vector from pair of vectors"]
11930#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vext_s16)"]
11931#[inline]
11932#[target_feature(enable = "neon")]
11933#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11934#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 3))]
11935#[cfg_attr(
11936    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11937    assert_instr(ext, N = 3)
11938)]
11939#[rustc_legacy_const_generics(2)]
11940#[cfg_attr(
11941    not(target_arch = "arm"),
11942    stable(feature = "neon_intrinsics", since = "1.59.0")
11943)]
11944#[cfg_attr(
11945    target_arch = "arm",
11946    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11947)]
11948pub fn vext_s16<const N: i32>(a: int16x4_t, b: int16x4_t) -> int16x4_t {
11949    static_assert_uimm_bits!(N, 2);
11950    unsafe {
11951        match N & 0b11 {
11952            0 => simd_shuffle!(a, b, [0, 1, 2, 3]),
11953            1 => simd_shuffle!(a, b, [1, 2, 3, 4]),
11954            2 => simd_shuffle!(a, b, [2, 3, 4, 5]),
11955            3 => simd_shuffle!(a, b, [3, 4, 5, 6]),
11956            _ => unreachable_unchecked(),
11957        }
11958    }
11959}
11960#[doc = "Extract vector from pair of vectors"]
11961#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vextq_s32)"]
11962#[inline]
11963#[target_feature(enable = "neon")]
11964#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11965#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 3))]
11966#[cfg_attr(
11967    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11968    assert_instr(ext, N = 3)
11969)]
11970#[rustc_legacy_const_generics(2)]
11971#[cfg_attr(
11972    not(target_arch = "arm"),
11973    stable(feature = "neon_intrinsics", since = "1.59.0")
11974)]
11975#[cfg_attr(
11976    target_arch = "arm",
11977    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11978)]
11979pub fn vextq_s32<const N: i32>(a: int32x4_t, b: int32x4_t) -> int32x4_t {
11980    static_assert_uimm_bits!(N, 2);
11981    unsafe {
11982        match N & 0b11 {
11983            0 => simd_shuffle!(a, b, [0, 1, 2, 3]),
11984            1 => simd_shuffle!(a, b, [1, 2, 3, 4]),
11985            2 => simd_shuffle!(a, b, [2, 3, 4, 5]),
11986            3 => simd_shuffle!(a, b, [3, 4, 5, 6]),
11987            _ => unreachable_unchecked(),
11988        }
11989    }
11990}
11991#[doc = "Extract vector from pair of vectors"]
11992#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vext_u16)"]
11993#[inline]
11994#[target_feature(enable = "neon")]
11995#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11996#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 3))]
11997#[cfg_attr(
11998    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11999    assert_instr(ext, N = 3)
12000)]
12001#[rustc_legacy_const_generics(2)]
12002#[cfg_attr(
12003    not(target_arch = "arm"),
12004    stable(feature = "neon_intrinsics", since = "1.59.0")
12005)]
12006#[cfg_attr(
12007    target_arch = "arm",
12008    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12009)]
12010pub fn vext_u16<const N: i32>(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
12011    static_assert_uimm_bits!(N, 2);
12012    unsafe {
12013        match N & 0b11 {
12014            0 => simd_shuffle!(a, b, [0, 1, 2, 3]),
12015            1 => simd_shuffle!(a, b, [1, 2, 3, 4]),
12016            2 => simd_shuffle!(a, b, [2, 3, 4, 5]),
12017            3 => simd_shuffle!(a, b, [3, 4, 5, 6]),
12018            _ => unreachable_unchecked(),
12019        }
12020    }
12021}
12022#[doc = "Extract vector from pair of vectors"]
12023#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vextq_u32)"]
12024#[inline]
12025#[target_feature(enable = "neon")]
12026#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12027#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 3))]
12028#[cfg_attr(
12029    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12030    assert_instr(ext, N = 3)
12031)]
12032#[rustc_legacy_const_generics(2)]
12033#[cfg_attr(
12034    not(target_arch = "arm"),
12035    stable(feature = "neon_intrinsics", since = "1.59.0")
12036)]
12037#[cfg_attr(
12038    target_arch = "arm",
12039    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12040)]
12041pub fn vextq_u32<const N: i32>(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
12042    static_assert_uimm_bits!(N, 2);
12043    unsafe {
12044        match N & 0b11 {
12045            0 => simd_shuffle!(a, b, [0, 1, 2, 3]),
12046            1 => simd_shuffle!(a, b, [1, 2, 3, 4]),
12047            2 => simd_shuffle!(a, b, [2, 3, 4, 5]),
12048            3 => simd_shuffle!(a, b, [3, 4, 5, 6]),
12049            _ => unreachable_unchecked(),
12050        }
12051    }
12052}
12053#[doc = "Extract vector from pair of vectors"]
12054#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vext_p16)"]
12055#[inline]
12056#[target_feature(enable = "neon")]
12057#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12058#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 3))]
12059#[cfg_attr(
12060    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12061    assert_instr(ext, N = 3)
12062)]
12063#[rustc_legacy_const_generics(2)]
12064#[cfg_attr(
12065    not(target_arch = "arm"),
12066    stable(feature = "neon_intrinsics", since = "1.59.0")
12067)]
12068#[cfg_attr(
12069    target_arch = "arm",
12070    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12071)]
12072pub fn vext_p16<const N: i32>(a: poly16x4_t, b: poly16x4_t) -> poly16x4_t {
12073    static_assert_uimm_bits!(N, 2);
12074    unsafe {
12075        match N & 0b11 {
12076            0 => simd_shuffle!(a, b, [0, 1, 2, 3]),
12077            1 => simd_shuffle!(a, b, [1, 2, 3, 4]),
12078            2 => simd_shuffle!(a, b, [2, 3, 4, 5]),
12079            3 => simd_shuffle!(a, b, [3, 4, 5, 6]),
12080            _ => unreachable_unchecked(),
12081        }
12082    }
12083}
12084#[doc = "Extract vector from pair of vectors"]
12085#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vextq_s64)"]
12086#[inline]
12087#[target_feature(enable = "neon")]
12088#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12089#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmov, N = 1))]
12090#[cfg_attr(
12091    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12092    assert_instr(ext, N = 1)
12093)]
12094#[rustc_legacy_const_generics(2)]
12095#[cfg_attr(
12096    not(target_arch = "arm"),
12097    stable(feature = "neon_intrinsics", since = "1.59.0")
12098)]
12099#[cfg_attr(
12100    target_arch = "arm",
12101    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12102)]
12103pub fn vextq_s64<const N: i32>(a: int64x2_t, b: int64x2_t) -> int64x2_t {
12104    static_assert_uimm_bits!(N, 1);
12105    unsafe {
12106        match N & 0b1 {
12107            0 => simd_shuffle!(a, b, [0, 1]),
12108            1 => simd_shuffle!(a, b, [1, 2]),
12109            _ => unreachable_unchecked(),
12110        }
12111    }
12112}
12113#[doc = "Extract vector from pair of vectors"]
12114#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vextq_u64)"]
12115#[inline]
12116#[target_feature(enable = "neon")]
12117#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12118#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmov, N = 1))]
12119#[cfg_attr(
12120    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12121    assert_instr(ext, N = 1)
12122)]
12123#[rustc_legacy_const_generics(2)]
12124#[cfg_attr(
12125    not(target_arch = "arm"),
12126    stable(feature = "neon_intrinsics", since = "1.59.0")
12127)]
12128#[cfg_attr(
12129    target_arch = "arm",
12130    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12131)]
12132pub fn vextq_u64<const N: i32>(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
12133    static_assert_uimm_bits!(N, 1);
12134    unsafe {
12135        match N & 0b1 {
12136            0 => simd_shuffle!(a, b, [0, 1]),
12137            1 => simd_shuffle!(a, b, [1, 2]),
12138            _ => unreachable_unchecked(),
12139        }
12140    }
12141}
12142#[doc = "Extract vector from pair of vectors"]
12143#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vextq_s8)"]
12144#[inline]
12145#[target_feature(enable = "neon")]
12146#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12147#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 15))]
12148#[cfg_attr(
12149    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12150    assert_instr(ext, N = 15)
12151)]
12152#[rustc_legacy_const_generics(2)]
12153#[cfg_attr(
12154    not(target_arch = "arm"),
12155    stable(feature = "neon_intrinsics", since = "1.59.0")
12156)]
12157#[cfg_attr(
12158    target_arch = "arm",
12159    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12160)]
12161pub fn vextq_s8<const N: i32>(a: int8x16_t, b: int8x16_t) -> int8x16_t {
12162    static_assert_uimm_bits!(N, 4);
12163    unsafe {
12164        match N & 0b1111 {
12165            0 => simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]),
12166            1 => simd_shuffle!(
12167                a,
12168                b,
12169                [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
12170            ),
12171            2 => simd_shuffle!(
12172                a,
12173                b,
12174                [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]
12175            ),
12176            3 => simd_shuffle!(
12177                a,
12178                b,
12179                [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]
12180            ),
12181            4 => simd_shuffle!(
12182                a,
12183                b,
12184                [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
12185            ),
12186            5 => simd_shuffle!(
12187                a,
12188                b,
12189                [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
12190            ),
12191            6 => simd_shuffle!(
12192                a,
12193                b,
12194                [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21]
12195            ),
12196            7 => simd_shuffle!(
12197                a,
12198                b,
12199                [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22]
12200            ),
12201            8 => simd_shuffle!(
12202                a,
12203                b,
12204                [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]
12205            ),
12206            9 => simd_shuffle!(
12207                a,
12208                b,
12209                [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24]
12210            ),
12211            10 => simd_shuffle!(
12212                a,
12213                b,
12214                [10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25]
12215            ),
12216            11 => simd_shuffle!(
12217                a,
12218                b,
12219                [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]
12220            ),
12221            12 => simd_shuffle!(
12222                a,
12223                b,
12224                [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27]
12225            ),
12226            13 => simd_shuffle!(
12227                a,
12228                b,
12229                [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28]
12230            ),
12231            14 => simd_shuffle!(
12232                a,
12233                b,
12234                [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]
12235            ),
12236            15 => simd_shuffle!(
12237                a,
12238                b,
12239                [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]
12240            ),
12241            _ => unreachable_unchecked(),
12242        }
12243    }
12244}
12245#[doc = "Extract vector from pair of vectors"]
12246#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vextq_u8)"]
12247#[inline]
12248#[target_feature(enable = "neon")]
12249#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12250#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 15))]
12251#[cfg_attr(
12252    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12253    assert_instr(ext, N = 15)
12254)]
12255#[rustc_legacy_const_generics(2)]
12256#[cfg_attr(
12257    not(target_arch = "arm"),
12258    stable(feature = "neon_intrinsics", since = "1.59.0")
12259)]
12260#[cfg_attr(
12261    target_arch = "arm",
12262    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12263)]
12264pub fn vextq_u8<const N: i32>(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
12265    static_assert_uimm_bits!(N, 4);
12266    unsafe {
12267        match N & 0b1111 {
12268            0 => simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]),
12269            1 => simd_shuffle!(
12270                a,
12271                b,
12272                [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
12273            ),
12274            2 => simd_shuffle!(
12275                a,
12276                b,
12277                [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]
12278            ),
12279            3 => simd_shuffle!(
12280                a,
12281                b,
12282                [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]
12283            ),
12284            4 => simd_shuffle!(
12285                a,
12286                b,
12287                [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
12288            ),
12289            5 => simd_shuffle!(
12290                a,
12291                b,
12292                [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
12293            ),
12294            6 => simd_shuffle!(
12295                a,
12296                b,
12297                [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21]
12298            ),
12299            7 => simd_shuffle!(
12300                a,
12301                b,
12302                [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22]
12303            ),
12304            8 => simd_shuffle!(
12305                a,
12306                b,
12307                [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]
12308            ),
12309            9 => simd_shuffle!(
12310                a,
12311                b,
12312                [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24]
12313            ),
12314            10 => simd_shuffle!(
12315                a,
12316                b,
12317                [10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25]
12318            ),
12319            11 => simd_shuffle!(
12320                a,
12321                b,
12322                [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]
12323            ),
12324            12 => simd_shuffle!(
12325                a,
12326                b,
12327                [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27]
12328            ),
12329            13 => simd_shuffle!(
12330                a,
12331                b,
12332                [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28]
12333            ),
12334            14 => simd_shuffle!(
12335                a,
12336                b,
12337                [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]
12338            ),
12339            15 => simd_shuffle!(
12340                a,
12341                b,
12342                [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]
12343            ),
12344            _ => unreachable_unchecked(),
12345        }
12346    }
12347}
12348#[doc = "Extract vector from pair of vectors"]
12349#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vextq_p8)"]
12350#[inline]
12351#[target_feature(enable = "neon")]
12352#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12353#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 15))]
12354#[cfg_attr(
12355    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12356    assert_instr(ext, N = 15)
12357)]
12358#[rustc_legacy_const_generics(2)]
12359#[cfg_attr(
12360    not(target_arch = "arm"),
12361    stable(feature = "neon_intrinsics", since = "1.59.0")
12362)]
12363#[cfg_attr(
12364    target_arch = "arm",
12365    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12366)]
12367pub fn vextq_p8<const N: i32>(a: poly8x16_t, b: poly8x16_t) -> poly8x16_t {
12368    static_assert_uimm_bits!(N, 4);
12369    unsafe {
12370        match N & 0b1111 {
12371            0 => simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]),
12372            1 => simd_shuffle!(
12373                a,
12374                b,
12375                [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
12376            ),
12377            2 => simd_shuffle!(
12378                a,
12379                b,
12380                [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]
12381            ),
12382            3 => simd_shuffle!(
12383                a,
12384                b,
12385                [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]
12386            ),
12387            4 => simd_shuffle!(
12388                a,
12389                b,
12390                [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
12391            ),
12392            5 => simd_shuffle!(
12393                a,
12394                b,
12395                [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
12396            ),
12397            6 => simd_shuffle!(
12398                a,
12399                b,
12400                [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21]
12401            ),
12402            7 => simd_shuffle!(
12403                a,
12404                b,
12405                [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22]
12406            ),
12407            8 => simd_shuffle!(
12408                a,
12409                b,
12410                [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]
12411            ),
12412            9 => simd_shuffle!(
12413                a,
12414                b,
12415                [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24]
12416            ),
12417            10 => simd_shuffle!(
12418                a,
12419                b,
12420                [10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25]
12421            ),
12422            11 => simd_shuffle!(
12423                a,
12424                b,
12425                [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]
12426            ),
12427            12 => simd_shuffle!(
12428                a,
12429                b,
12430                [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27]
12431            ),
12432            13 => simd_shuffle!(
12433                a,
12434                b,
12435                [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28]
12436            ),
12437            14 => simd_shuffle!(
12438                a,
12439                b,
12440                [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]
12441            ),
12442            15 => simd_shuffle!(
12443                a,
12444                b,
12445                [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]
12446            ),
12447            _ => unreachable_unchecked(),
12448        }
12449    }
12450}
12451#[doc = "Floating-point fused Multiply-Add to accumulator (vector)"]
12452#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfma_f16)"]
12453#[inline]
12454#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
12455#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vfma))]
12456#[cfg_attr(
12457    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12458    assert_instr(fmla)
12459)]
12460#[target_feature(enable = "neon,fp16")]
12461#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
12462#[cfg(not(target_arch = "arm64ec"))]
12463pub fn vfma_f16(a: float16x4_t, b: float16x4_t, c: float16x4_t) -> float16x4_t {
12464    unsafe { simd_fma(b, c, a) }
12465}
12466#[doc = "Floating-point fused Multiply-Add to accumulator (vector)"]
12467#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfmaq_f16)"]
12468#[inline]
12469#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
12470#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vfma))]
12471#[cfg_attr(
12472    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12473    assert_instr(fmla)
12474)]
12475#[target_feature(enable = "neon,fp16")]
12476#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
12477#[cfg(not(target_arch = "arm64ec"))]
12478pub fn vfmaq_f16(a: float16x8_t, b: float16x8_t, c: float16x8_t) -> float16x8_t {
12479    unsafe { simd_fma(b, c, a) }
12480}
12481#[doc = "Floating-point fused Multiply-Add to accumulator(vector)"]
12482#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfma_f32)"]
12483#[inline]
12484#[target_feature(enable = "neon")]
12485#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
12486#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vfma))]
12487#[cfg_attr(
12488    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12489    assert_instr(fmla)
12490)]
12491#[cfg_attr(
12492    not(target_arch = "arm"),
12493    stable(feature = "neon_intrinsics", since = "1.59.0")
12494)]
12495#[cfg_attr(
12496    target_arch = "arm",
12497    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12498)]
12499pub fn vfma_f32(a: float32x2_t, b: float32x2_t, c: float32x2_t) -> float32x2_t {
12500    unsafe { simd_fma(b, c, a) }
12501}
12502#[doc = "Floating-point fused Multiply-Add to accumulator(vector)"]
12503#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfmaq_f32)"]
12504#[inline]
12505#[target_feature(enable = "neon")]
12506#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
12507#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vfma))]
12508#[cfg_attr(
12509    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12510    assert_instr(fmla)
12511)]
12512#[cfg_attr(
12513    not(target_arch = "arm"),
12514    stable(feature = "neon_intrinsics", since = "1.59.0")
12515)]
12516#[cfg_attr(
12517    target_arch = "arm",
12518    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12519)]
12520pub fn vfmaq_f32(a: float32x4_t, b: float32x4_t, c: float32x4_t) -> float32x4_t {
12521    unsafe { simd_fma(b, c, a) }
12522}
12523#[doc = "Floating-point fused Multiply-Add to accumulator(vector)"]
12524#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfma_n_f32)"]
12525#[inline]
12526#[target_feature(enable = "neon")]
12527#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
12528#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vfma))]
12529#[cfg_attr(
12530    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12531    assert_instr(fmla)
12532)]
12533#[cfg_attr(
12534    not(target_arch = "arm"),
12535    stable(feature = "neon_intrinsics", since = "1.59.0")
12536)]
12537#[cfg_attr(
12538    target_arch = "arm",
12539    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12540)]
12541pub fn vfma_n_f32(a: float32x2_t, b: float32x2_t, c: f32) -> float32x2_t {
12542    vfma_f32(a, b, vdup_n_f32_vfp4(c))
12543}
12544#[doc = "Floating-point fused Multiply-Add to accumulator(vector)"]
12545#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfmaq_n_f32)"]
12546#[inline]
12547#[target_feature(enable = "neon")]
12548#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
12549#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vfma))]
12550#[cfg_attr(
12551    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12552    assert_instr(fmla)
12553)]
12554#[cfg_attr(
12555    not(target_arch = "arm"),
12556    stable(feature = "neon_intrinsics", since = "1.59.0")
12557)]
12558#[cfg_attr(
12559    target_arch = "arm",
12560    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12561)]
12562pub fn vfmaq_n_f32(a: float32x4_t, b: float32x4_t, c: f32) -> float32x4_t {
12563    vfmaq_f32(a, b, vdupq_n_f32_vfp4(c))
12564}
12565#[doc = "Floating-point fused multiply-subtract from accumulator"]
12566#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfms_f16)"]
12567#[inline]
12568#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
12569#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
12570#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
12571#[cfg_attr(
12572    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12573    assert_instr(fmls)
12574)]
12575#[target_feature(enable = "neon,fp16")]
12576#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
12577#[cfg(not(target_arch = "arm64ec"))]
12578pub fn vfms_f16(a: float16x4_t, b: float16x4_t, c: float16x4_t) -> float16x4_t {
12579    unsafe {
12580        let b: float16x4_t = simd_neg(b);
12581        vfma_f16(a, b, c)
12582    }
12583}
12584#[doc = "Floating-point fused multiply-subtract from accumulator"]
12585#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfmsq_f16)"]
12586#[inline]
12587#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
12588#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
12589#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
12590#[cfg_attr(
12591    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12592    assert_instr(fmls)
12593)]
12594#[target_feature(enable = "neon,fp16")]
12595#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
12596#[cfg(not(target_arch = "arm64ec"))]
12597pub fn vfmsq_f16(a: float16x8_t, b: float16x8_t, c: float16x8_t) -> float16x8_t {
12598    unsafe {
12599        let b: float16x8_t = simd_neg(b);
12600        vfmaq_f16(a, b, c)
12601    }
12602}
12603#[doc = "Floating-point fused multiply-subtract from accumulator"]
12604#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfms_f32)"]
12605#[inline]
12606#[target_feature(enable = "neon")]
12607#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
12608#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vfms))]
12609#[cfg_attr(
12610    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12611    assert_instr(fmls)
12612)]
12613#[cfg_attr(
12614    not(target_arch = "arm"),
12615    stable(feature = "neon_intrinsics", since = "1.59.0")
12616)]
12617#[cfg_attr(
12618    target_arch = "arm",
12619    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12620)]
12621pub fn vfms_f32(a: float32x2_t, b: float32x2_t, c: float32x2_t) -> float32x2_t {
12622    unsafe {
12623        let b: float32x2_t = simd_neg(b);
12624        vfma_f32(a, b, c)
12625    }
12626}
12627#[doc = "Floating-point fused multiply-subtract from accumulator"]
12628#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfmsq_f32)"]
12629#[inline]
12630#[target_feature(enable = "neon")]
12631#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
12632#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vfms))]
12633#[cfg_attr(
12634    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12635    assert_instr(fmls)
12636)]
12637#[cfg_attr(
12638    not(target_arch = "arm"),
12639    stable(feature = "neon_intrinsics", since = "1.59.0")
12640)]
12641#[cfg_attr(
12642    target_arch = "arm",
12643    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12644)]
12645pub fn vfmsq_f32(a: float32x4_t, b: float32x4_t, c: float32x4_t) -> float32x4_t {
12646    unsafe {
12647        let b: float32x4_t = simd_neg(b);
12648        vfmaq_f32(a, b, c)
12649    }
12650}
12651#[doc = "Floating-point fused Multiply-subtract to accumulator(vector)"]
12652#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfms_n_f32)"]
12653#[inline]
12654#[target_feature(enable = "neon")]
12655#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
12656#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vfms))]
12657#[cfg_attr(
12658    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12659    assert_instr(fmls)
12660)]
12661#[cfg_attr(
12662    not(target_arch = "arm"),
12663    stable(feature = "neon_intrinsics", since = "1.59.0")
12664)]
12665#[cfg_attr(
12666    target_arch = "arm",
12667    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12668)]
12669pub fn vfms_n_f32(a: float32x2_t, b: float32x2_t, c: f32) -> float32x2_t {
12670    vfms_f32(a, b, vdup_n_f32_vfp4(c))
12671}
12672#[doc = "Floating-point fused Multiply-subtract to accumulator(vector)"]
12673#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfmsq_n_f32)"]
12674#[inline]
12675#[target_feature(enable = "neon")]
12676#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
12677#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vfms))]
12678#[cfg_attr(
12679    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12680    assert_instr(fmls)
12681)]
12682#[cfg_attr(
12683    not(target_arch = "arm"),
12684    stable(feature = "neon_intrinsics", since = "1.59.0")
12685)]
12686#[cfg_attr(
12687    target_arch = "arm",
12688    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12689)]
12690pub fn vfmsq_n_f32(a: float32x4_t, b: float32x4_t, c: f32) -> float32x4_t {
12691    vfmsq_f32(a, b, vdupq_n_f32_vfp4(c))
12692}
12693#[doc = "Duplicate vector element to vector"]
12694#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_high_f16)"]
12695#[inline]
12696#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12697#[target_feature(enable = "neon,fp16")]
12698#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
12699#[cfg(not(target_arch = "arm64ec"))]
12700#[cfg_attr(test, assert_instr(nop))]
12701pub fn vget_high_f16(a: float16x8_t) -> float16x4_t {
12702    unsafe { simd_shuffle!(a, a, [4, 5, 6, 7]) }
12703}
12704#[doc = "Duplicate vector element to vector"]
12705#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_low_f16)"]
12706#[inline]
12707#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12708#[target_feature(enable = "neon,fp16")]
12709#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
12710#[cfg(not(target_arch = "arm64ec"))]
12711#[cfg_attr(test, assert_instr(nop))]
12712pub fn vget_low_f16(a: float16x8_t) -> float16x4_t {
12713    unsafe { simd_shuffle!(a, a, [0, 1, 2, 3]) }
12714}
12715#[doc = "Duplicate vector element to vector or scalar"]
12716#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_high_f32)"]
12717#[inline]
12718#[target_feature(enable = "neon")]
12719#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12720#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
12721#[cfg_attr(
12722    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12723    assert_instr(ext)
12724)]
12725#[cfg_attr(
12726    not(target_arch = "arm"),
12727    stable(feature = "neon_intrinsics", since = "1.59.0")
12728)]
12729#[cfg_attr(
12730    target_arch = "arm",
12731    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12732)]
12733pub fn vget_high_f32(a: float32x4_t) -> float32x2_t {
12734    unsafe { simd_shuffle!(a, a, [2, 3]) }
12735}
12736#[doc = "Duplicate vector element to vector or scalar"]
12737#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_high_p16)"]
12738#[inline]
12739#[target_feature(enable = "neon")]
12740#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12741#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
12742#[cfg_attr(
12743    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12744    assert_instr(ext)
12745)]
12746#[cfg_attr(
12747    not(target_arch = "arm"),
12748    stable(feature = "neon_intrinsics", since = "1.59.0")
12749)]
12750#[cfg_attr(
12751    target_arch = "arm",
12752    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12753)]
12754pub fn vget_high_p16(a: poly16x8_t) -> poly16x4_t {
12755    unsafe { simd_shuffle!(a, a, [4, 5, 6, 7]) }
12756}
12757#[doc = "Duplicate vector element to vector or scalar"]
12758#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_high_p8)"]
12759#[inline]
12760#[target_feature(enable = "neon")]
12761#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12762#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
12763#[cfg_attr(
12764    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12765    assert_instr(ext)
12766)]
12767#[cfg_attr(
12768    not(target_arch = "arm"),
12769    stable(feature = "neon_intrinsics", since = "1.59.0")
12770)]
12771#[cfg_attr(
12772    target_arch = "arm",
12773    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12774)]
12775pub fn vget_high_p8(a: poly8x16_t) -> poly8x8_t {
12776    unsafe { simd_shuffle!(a, a, [8, 9, 10, 11, 12, 13, 14, 15]) }
12777}
12778#[doc = "Duplicate vector element to vector or scalar"]
12779#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_high_s16)"]
12780#[inline]
12781#[target_feature(enable = "neon")]
12782#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12783#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
12784#[cfg_attr(
12785    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12786    assert_instr(ext)
12787)]
12788#[cfg_attr(
12789    not(target_arch = "arm"),
12790    stable(feature = "neon_intrinsics", since = "1.59.0")
12791)]
12792#[cfg_attr(
12793    target_arch = "arm",
12794    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12795)]
12796pub fn vget_high_s16(a: int16x8_t) -> int16x4_t {
12797    unsafe { simd_shuffle!(a, a, [4, 5, 6, 7]) }
12798}
12799#[doc = "Duplicate vector element to vector or scalar"]
12800#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_high_s32)"]
12801#[inline]
12802#[target_feature(enable = "neon")]
12803#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12804#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
12805#[cfg_attr(
12806    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12807    assert_instr(ext)
12808)]
12809#[cfg_attr(
12810    not(target_arch = "arm"),
12811    stable(feature = "neon_intrinsics", since = "1.59.0")
12812)]
12813#[cfg_attr(
12814    target_arch = "arm",
12815    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12816)]
12817pub fn vget_high_s32(a: int32x4_t) -> int32x2_t {
12818    unsafe { simd_shuffle!(a, a, [2, 3]) }
12819}
12820#[doc = "Duplicate vector element to vector or scalar"]
12821#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_high_s8)"]
12822#[inline]
12823#[target_feature(enable = "neon")]
12824#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12825#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
12826#[cfg_attr(
12827    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12828    assert_instr(ext)
12829)]
12830#[cfg_attr(
12831    not(target_arch = "arm"),
12832    stable(feature = "neon_intrinsics", since = "1.59.0")
12833)]
12834#[cfg_attr(
12835    target_arch = "arm",
12836    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12837)]
12838pub fn vget_high_s8(a: int8x16_t) -> int8x8_t {
12839    unsafe { simd_shuffle!(a, a, [8, 9, 10, 11, 12, 13, 14, 15]) }
12840}
12841#[doc = "Duplicate vector element to vector or scalar"]
12842#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_high_u16)"]
12843#[inline]
12844#[target_feature(enable = "neon")]
12845#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12846#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
12847#[cfg_attr(
12848    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12849    assert_instr(ext)
12850)]
12851#[cfg_attr(
12852    not(target_arch = "arm"),
12853    stable(feature = "neon_intrinsics", since = "1.59.0")
12854)]
12855#[cfg_attr(
12856    target_arch = "arm",
12857    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12858)]
12859pub fn vget_high_u16(a: uint16x8_t) -> uint16x4_t {
12860    unsafe { simd_shuffle!(a, a, [4, 5, 6, 7]) }
12861}
12862#[doc = "Duplicate vector element to vector or scalar"]
12863#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_high_u32)"]
12864#[inline]
12865#[target_feature(enable = "neon")]
12866#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12867#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
12868#[cfg_attr(
12869    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12870    assert_instr(ext)
12871)]
12872#[cfg_attr(
12873    not(target_arch = "arm"),
12874    stable(feature = "neon_intrinsics", since = "1.59.0")
12875)]
12876#[cfg_attr(
12877    target_arch = "arm",
12878    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12879)]
12880pub fn vget_high_u32(a: uint32x4_t) -> uint32x2_t {
12881    unsafe { simd_shuffle!(a, a, [2, 3]) }
12882}
12883#[doc = "Duplicate vector element to vector or scalar"]
12884#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_high_u8)"]
12885#[inline]
12886#[target_feature(enable = "neon")]
12887#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12888#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
12889#[cfg_attr(
12890    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12891    assert_instr(ext)
12892)]
12893#[cfg_attr(
12894    not(target_arch = "arm"),
12895    stable(feature = "neon_intrinsics", since = "1.59.0")
12896)]
12897#[cfg_attr(
12898    target_arch = "arm",
12899    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12900)]
12901pub fn vget_high_u8(a: uint8x16_t) -> uint8x8_t {
12902    unsafe { simd_shuffle!(a, a, [8, 9, 10, 11, 12, 13, 14, 15]) }
12903}
12904#[doc = "Duplicate vector element to vector or scalar"]
12905#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_high_s64)"]
12906#[inline]
12907#[target_feature(enable = "neon")]
12908#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12909#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
12910#[cfg_attr(
12911    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12912    assert_instr(ext)
12913)]
12914#[cfg_attr(
12915    not(target_arch = "arm"),
12916    stable(feature = "neon_intrinsics", since = "1.59.0")
12917)]
12918#[cfg_attr(
12919    target_arch = "arm",
12920    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12921)]
12922pub fn vget_high_s64(a: int64x2_t) -> int64x1_t {
12923    unsafe { int64x1_t([simd_extract!(a, 1)]) }
12924}
12925#[doc = "Duplicate vector element to vector or scalar"]
12926#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_high_u64)"]
12927#[inline]
12928#[target_feature(enable = "neon")]
12929#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12930#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
12931#[cfg_attr(
12932    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12933    assert_instr(ext)
12934)]
12935#[cfg_attr(
12936    not(target_arch = "arm"),
12937    stable(feature = "neon_intrinsics", since = "1.59.0")
12938)]
12939#[cfg_attr(
12940    target_arch = "arm",
12941    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12942)]
12943pub fn vget_high_u64(a: uint64x2_t) -> uint64x1_t {
12944    unsafe { uint64x1_t([simd_extract!(a, 1)]) }
12945}
12946#[doc = "Duplicate vector element to scalar"]
12947#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_lane_f16)"]
12948#[inline]
12949#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12950#[target_feature(enable = "neon,fp16")]
12951#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
12952#[cfg_attr(
12953    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12954    assert_instr(nop, LANE = 0)
12955)]
12956#[rustc_legacy_const_generics(1)]
12957#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
12958#[cfg(not(target_arch = "arm64ec"))]
12959pub fn vget_lane_f16<const LANE: i32>(a: float16x4_t) -> f16 {
12960    static_assert_uimm_bits!(LANE, 2);
12961    unsafe { simd_extract!(a, LANE as u32) }
12962}
12963#[doc = "Duplicate vector element to scalar"]
12964#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vgetq_lane_f16)"]
12965#[inline]
12966#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12967#[target_feature(enable = "neon,fp16")]
12968#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
12969#[cfg_attr(
12970    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12971    assert_instr(nop, LANE = 0)
12972)]
12973#[rustc_legacy_const_generics(1)]
12974#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
12975#[cfg(not(target_arch = "arm64ec"))]
12976pub fn vgetq_lane_f16<const LANE: i32>(a: float16x8_t) -> f16 {
12977    static_assert_uimm_bits!(LANE, 3);
12978    unsafe { simd_extract!(a, LANE as u32) }
12979}
12980#[doc = "Move vector element to general-purpose register"]
12981#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_lane_f32)"]
12982#[inline]
12983#[target_feature(enable = "neon")]
12984#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12985#[rustc_legacy_const_generics(1)]
12986#[cfg_attr(test, assert_instr(nop, IMM5 = 1))]
12987#[cfg_attr(
12988    not(target_arch = "arm"),
12989    stable(feature = "neon_intrinsics", since = "1.59.0")
12990)]
12991#[cfg_attr(
12992    target_arch = "arm",
12993    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12994)]
12995pub fn vget_lane_f32<const IMM5: i32>(v: float32x2_t) -> f32 {
12996    static_assert_uimm_bits!(IMM5, 1);
12997    unsafe { simd_extract!(v, IMM5 as u32) }
12998}
12999#[doc = "Move vector element to general-purpose register"]
13000#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_lane_p16)"]
13001#[inline]
13002#[target_feature(enable = "neon")]
13003#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13004#[rustc_legacy_const_generics(1)]
13005#[cfg_attr(test, assert_instr(nop, IMM5 = 2))]
13006#[cfg_attr(
13007    not(target_arch = "arm"),
13008    stable(feature = "neon_intrinsics", since = "1.59.0")
13009)]
13010#[cfg_attr(
13011    target_arch = "arm",
13012    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13013)]
13014pub fn vget_lane_p16<const IMM5: i32>(v: poly16x4_t) -> p16 {
13015    static_assert_uimm_bits!(IMM5, 2);
13016    unsafe { simd_extract!(v, IMM5 as u32) }
13017}
13018#[doc = "Move vector element to general-purpose register"]
13019#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_lane_p8)"]
13020#[inline]
13021#[target_feature(enable = "neon")]
13022#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13023#[rustc_legacy_const_generics(1)]
13024#[cfg_attr(test, assert_instr(nop, IMM5 = 2))]
13025#[cfg_attr(
13026    not(target_arch = "arm"),
13027    stable(feature = "neon_intrinsics", since = "1.59.0")
13028)]
13029#[cfg_attr(
13030    target_arch = "arm",
13031    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13032)]
13033pub fn vget_lane_p8<const IMM5: i32>(v: poly8x8_t) -> p8 {
13034    static_assert_uimm_bits!(IMM5, 3);
13035    unsafe { simd_extract!(v, IMM5 as u32) }
13036}
13037#[doc = "Move vector element to general-purpose register"]
13038#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_lane_s16)"]
13039#[inline]
13040#[target_feature(enable = "neon")]
13041#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13042#[rustc_legacy_const_generics(1)]
13043#[cfg_attr(test, assert_instr(nop, IMM5 = 2))]
13044#[cfg_attr(
13045    not(target_arch = "arm"),
13046    stable(feature = "neon_intrinsics", since = "1.59.0")
13047)]
13048#[cfg_attr(
13049    target_arch = "arm",
13050    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13051)]
13052pub fn vget_lane_s16<const IMM5: i32>(v: int16x4_t) -> i16 {
13053    static_assert_uimm_bits!(IMM5, 2);
13054    unsafe { simd_extract!(v, IMM5 as u32) }
13055}
13056#[doc = "Move vector element to general-purpose register"]
13057#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_lane_s32)"]
13058#[inline]
13059#[target_feature(enable = "neon")]
13060#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13061#[rustc_legacy_const_generics(1)]
13062#[cfg_attr(test, assert_instr(nop, IMM5 = 1))]
13063#[cfg_attr(
13064    not(target_arch = "arm"),
13065    stable(feature = "neon_intrinsics", since = "1.59.0")
13066)]
13067#[cfg_attr(
13068    target_arch = "arm",
13069    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13070)]
13071pub fn vget_lane_s32<const IMM5: i32>(v: int32x2_t) -> i32 {
13072    static_assert_uimm_bits!(IMM5, 1);
13073    unsafe { simd_extract!(v, IMM5 as u32) }
13074}
13075#[doc = "Move vector element to general-purpose register"]
13076#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_lane_s8)"]
13077#[inline]
13078#[target_feature(enable = "neon")]
13079#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13080#[rustc_legacy_const_generics(1)]
13081#[cfg_attr(test, assert_instr(nop, IMM5 = 2))]
13082#[cfg_attr(
13083    not(target_arch = "arm"),
13084    stable(feature = "neon_intrinsics", since = "1.59.0")
13085)]
13086#[cfg_attr(
13087    target_arch = "arm",
13088    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13089)]
13090pub fn vget_lane_s8<const IMM5: i32>(v: int8x8_t) -> i8 {
13091    static_assert_uimm_bits!(IMM5, 3);
13092    unsafe { simd_extract!(v, IMM5 as u32) }
13093}
13094#[doc = "Move vector element to general-purpose register"]
13095#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_lane_u16)"]
13096#[inline]
13097#[target_feature(enable = "neon")]
13098#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13099#[rustc_legacy_const_generics(1)]
13100#[cfg_attr(test, assert_instr(nop, IMM5 = 2))]
13101#[cfg_attr(
13102    not(target_arch = "arm"),
13103    stable(feature = "neon_intrinsics", since = "1.59.0")
13104)]
13105#[cfg_attr(
13106    target_arch = "arm",
13107    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13108)]
13109pub fn vget_lane_u16<const IMM5: i32>(v: uint16x4_t) -> u16 {
13110    static_assert_uimm_bits!(IMM5, 2);
13111    unsafe { simd_extract!(v, IMM5 as u32) }
13112}
13113#[doc = "Move vector element to general-purpose register"]
13114#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_lane_u32)"]
13115#[inline]
13116#[target_feature(enable = "neon")]
13117#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13118#[rustc_legacy_const_generics(1)]
13119#[cfg_attr(test, assert_instr(nop, IMM5 = 1))]
13120#[cfg_attr(
13121    not(target_arch = "arm"),
13122    stable(feature = "neon_intrinsics", since = "1.59.0")
13123)]
13124#[cfg_attr(
13125    target_arch = "arm",
13126    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13127)]
13128pub fn vget_lane_u32<const IMM5: i32>(v: uint32x2_t) -> u32 {
13129    static_assert_uimm_bits!(IMM5, 1);
13130    unsafe { simd_extract!(v, IMM5 as u32) }
13131}
13132#[doc = "Move vector element to general-purpose register"]
13133#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_lane_u8)"]
13134#[inline]
13135#[target_feature(enable = "neon")]
13136#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13137#[rustc_legacy_const_generics(1)]
13138#[cfg_attr(test, assert_instr(nop, IMM5 = 2))]
13139#[cfg_attr(
13140    not(target_arch = "arm"),
13141    stable(feature = "neon_intrinsics", since = "1.59.0")
13142)]
13143#[cfg_attr(
13144    target_arch = "arm",
13145    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13146)]
13147pub fn vget_lane_u8<const IMM5: i32>(v: uint8x8_t) -> u8 {
13148    static_assert_uimm_bits!(IMM5, 3);
13149    unsafe { simd_extract!(v, IMM5 as u32) }
13150}
13151#[doc = "Move vector element to general-purpose register"]
13152#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vgetq_lane_f32)"]
13153#[inline]
13154#[target_feature(enable = "neon")]
13155#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13156#[rustc_legacy_const_generics(1)]
13157#[cfg_attr(test, assert_instr(nop, IMM5 = 1))]
13158#[cfg_attr(
13159    not(target_arch = "arm"),
13160    stable(feature = "neon_intrinsics", since = "1.59.0")
13161)]
13162#[cfg_attr(
13163    target_arch = "arm",
13164    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13165)]
13166pub fn vgetq_lane_f32<const IMM5: i32>(v: float32x4_t) -> f32 {
13167    static_assert_uimm_bits!(IMM5, 2);
13168    unsafe { simd_extract!(v, IMM5 as u32) }
13169}
13170#[doc = "Move vector element to general-purpose register"]
13171#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vgetq_lane_p16)"]
13172#[inline]
13173#[target_feature(enable = "neon")]
13174#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13175#[rustc_legacy_const_generics(1)]
13176#[cfg_attr(test, assert_instr(nop, IMM5 = 2))]
13177#[cfg_attr(
13178    not(target_arch = "arm"),
13179    stable(feature = "neon_intrinsics", since = "1.59.0")
13180)]
13181#[cfg_attr(
13182    target_arch = "arm",
13183    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13184)]
13185pub fn vgetq_lane_p16<const IMM5: i32>(v: poly16x8_t) -> p16 {
13186    static_assert_uimm_bits!(IMM5, 3);
13187    unsafe { simd_extract!(v, IMM5 as u32) }
13188}
13189#[doc = "Move vector element to general-purpose register"]
13190#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vgetq_lane_p64)"]
13191#[inline]
13192#[target_feature(enable = "neon")]
13193#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13194#[rustc_legacy_const_generics(1)]
13195#[cfg_attr(test, assert_instr(nop, IMM5 = 1))]
13196#[cfg_attr(
13197    not(target_arch = "arm"),
13198    stable(feature = "neon_intrinsics", since = "1.59.0")
13199)]
13200#[cfg_attr(
13201    target_arch = "arm",
13202    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13203)]
13204pub fn vgetq_lane_p64<const IMM5: i32>(v: poly64x2_t) -> p64 {
13205    static_assert_uimm_bits!(IMM5, 1);
13206    unsafe { simd_extract!(v, IMM5 as u32) }
13207}
13208#[doc = "Move vector element to general-purpose register"]
13209#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vgetq_lane_p8)"]
13210#[inline]
13211#[target_feature(enable = "neon")]
13212#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13213#[rustc_legacy_const_generics(1)]
13214#[cfg_attr(test, assert_instr(nop, IMM5 = 2))]
13215#[cfg_attr(
13216    not(target_arch = "arm"),
13217    stable(feature = "neon_intrinsics", since = "1.59.0")
13218)]
13219#[cfg_attr(
13220    target_arch = "arm",
13221    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13222)]
13223pub fn vgetq_lane_p8<const IMM5: i32>(v: poly8x16_t) -> p8 {
13224    static_assert_uimm_bits!(IMM5, 4);
13225    unsafe { simd_extract!(v, IMM5 as u32) }
13226}
13227#[doc = "Move vector element to general-purpose register"]
13228#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vgetq_lane_s16)"]
13229#[inline]
13230#[target_feature(enable = "neon")]
13231#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13232#[rustc_legacy_const_generics(1)]
13233#[cfg_attr(test, assert_instr(nop, IMM5 = 2))]
13234#[cfg_attr(
13235    not(target_arch = "arm"),
13236    stable(feature = "neon_intrinsics", since = "1.59.0")
13237)]
13238#[cfg_attr(
13239    target_arch = "arm",
13240    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13241)]
13242pub fn vgetq_lane_s16<const IMM5: i32>(v: int16x8_t) -> i16 {
13243    static_assert_uimm_bits!(IMM5, 3);
13244    unsafe { simd_extract!(v, IMM5 as u32) }
13245}
13246#[doc = "Move vector element to general-purpose register"]
13247#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vgetq_lane_s32)"]
13248#[inline]
13249#[target_feature(enable = "neon")]
13250#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13251#[rustc_legacy_const_generics(1)]
13252#[cfg_attr(test, assert_instr(nop, IMM5 = 2))]
13253#[cfg_attr(
13254    not(target_arch = "arm"),
13255    stable(feature = "neon_intrinsics", since = "1.59.0")
13256)]
13257#[cfg_attr(
13258    target_arch = "arm",
13259    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13260)]
13261pub fn vgetq_lane_s32<const IMM5: i32>(v: int32x4_t) -> i32 {
13262    static_assert_uimm_bits!(IMM5, 2);
13263    unsafe { simd_extract!(v, IMM5 as u32) }
13264}
13265#[doc = "Move vector element to general-purpose register"]
13266#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vgetq_lane_s64)"]
13267#[inline]
13268#[target_feature(enable = "neon")]
13269#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13270#[rustc_legacy_const_generics(1)]
13271#[cfg_attr(test, assert_instr(nop, IMM5 = 1))]
13272#[cfg_attr(
13273    not(target_arch = "arm"),
13274    stable(feature = "neon_intrinsics", since = "1.59.0")
13275)]
13276#[cfg_attr(
13277    target_arch = "arm",
13278    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13279)]
13280pub fn vgetq_lane_s64<const IMM5: i32>(v: int64x2_t) -> i64 {
13281    static_assert_uimm_bits!(IMM5, 1);
13282    unsafe { simd_extract!(v, IMM5 as u32) }
13283}
13284#[doc = "Move vector element to general-purpose register"]
13285#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vgetq_lane_s8)"]
13286#[inline]
13287#[target_feature(enable = "neon")]
13288#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13289#[rustc_legacy_const_generics(1)]
13290#[cfg_attr(test, assert_instr(nop, IMM5 = 2))]
13291#[cfg_attr(
13292    not(target_arch = "arm"),
13293    stable(feature = "neon_intrinsics", since = "1.59.0")
13294)]
13295#[cfg_attr(
13296    target_arch = "arm",
13297    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13298)]
13299pub fn vgetq_lane_s8<const IMM5: i32>(v: int8x16_t) -> i8 {
13300    static_assert_uimm_bits!(IMM5, 4);
13301    unsafe { simd_extract!(v, IMM5 as u32) }
13302}
13303#[doc = "Move vector element to general-purpose register"]
13304#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vgetq_lane_u16)"]
13305#[inline]
13306#[target_feature(enable = "neon")]
13307#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13308#[rustc_legacy_const_generics(1)]
13309#[cfg_attr(test, assert_instr(nop, IMM5 = 2))]
13310#[cfg_attr(
13311    not(target_arch = "arm"),
13312    stable(feature = "neon_intrinsics", since = "1.59.0")
13313)]
13314#[cfg_attr(
13315    target_arch = "arm",
13316    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13317)]
13318pub fn vgetq_lane_u16<const IMM5: i32>(v: uint16x8_t) -> u16 {
13319    static_assert_uimm_bits!(IMM5, 3);
13320    unsafe { simd_extract!(v, IMM5 as u32) }
13321}
13322#[doc = "Move vector element to general-purpose register"]
13323#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vgetq_lane_u32)"]
13324#[inline]
13325#[target_feature(enable = "neon")]
13326#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13327#[rustc_legacy_const_generics(1)]
13328#[cfg_attr(test, assert_instr(nop, IMM5 = 2))]
13329#[cfg_attr(
13330    not(target_arch = "arm"),
13331    stable(feature = "neon_intrinsics", since = "1.59.0")
13332)]
13333#[cfg_attr(
13334    target_arch = "arm",
13335    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13336)]
13337pub fn vgetq_lane_u32<const IMM5: i32>(v: uint32x4_t) -> u32 {
13338    static_assert_uimm_bits!(IMM5, 2);
13339    unsafe { simd_extract!(v, IMM5 as u32) }
13340}
13341#[doc = "Move vector element to general-purpose register"]
13342#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vgetq_lane_u64)"]
13343#[inline]
13344#[target_feature(enable = "neon")]
13345#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13346#[rustc_legacy_const_generics(1)]
13347#[cfg_attr(test, assert_instr(nop, IMM5 = 1))]
13348#[cfg_attr(
13349    not(target_arch = "arm"),
13350    stable(feature = "neon_intrinsics", since = "1.59.0")
13351)]
13352#[cfg_attr(
13353    target_arch = "arm",
13354    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13355)]
13356pub fn vgetq_lane_u64<const IMM5: i32>(v: uint64x2_t) -> u64 {
13357    static_assert_uimm_bits!(IMM5, 2);
13358    unsafe { simd_extract!(v, IMM5 as u32) }
13359}
13360#[doc = "Move vector element to general-purpose register"]
13361#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vgetq_lane_u8)"]
13362#[inline]
13363#[target_feature(enable = "neon")]
13364#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13365#[rustc_legacy_const_generics(1)]
13366#[cfg_attr(test, assert_instr(nop, IMM5 = 2))]
13367#[cfg_attr(
13368    not(target_arch = "arm"),
13369    stable(feature = "neon_intrinsics", since = "1.59.0")
13370)]
13371#[cfg_attr(
13372    target_arch = "arm",
13373    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13374)]
13375pub fn vgetq_lane_u8<const IMM5: i32>(v: uint8x16_t) -> u8 {
13376    static_assert_uimm_bits!(IMM5, 4);
13377    unsafe { simd_extract!(v, IMM5 as u32) }
13378}
13379#[doc = "Move vector element to general-purpose register"]
13380#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_lane_p64)"]
13381#[inline]
13382#[target_feature(enable = "neon")]
13383#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13384#[rustc_legacy_const_generics(1)]
13385#[cfg_attr(test, assert_instr(nop, IMM5 = 0))]
13386#[cfg_attr(
13387    not(target_arch = "arm"),
13388    stable(feature = "neon_intrinsics", since = "1.59.0")
13389)]
13390#[cfg_attr(
13391    target_arch = "arm",
13392    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13393)]
13394pub fn vget_lane_p64<const IMM5: i32>(v: poly64x1_t) -> p64 {
13395    static_assert!(IMM5 == 0);
13396    unsafe { simd_extract!(v, IMM5 as u32) }
13397}
13398#[doc = "Move vector element to general-purpose register"]
13399#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_lane_s64)"]
13400#[inline]
13401#[target_feature(enable = "neon")]
13402#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13403#[rustc_legacy_const_generics(1)]
13404#[cfg_attr(test, assert_instr(nop, IMM5 = 0))]
13405#[cfg_attr(
13406    not(target_arch = "arm"),
13407    stable(feature = "neon_intrinsics", since = "1.59.0")
13408)]
13409#[cfg_attr(
13410    target_arch = "arm",
13411    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13412)]
13413pub fn vget_lane_s64<const IMM5: i32>(v: int64x1_t) -> i64 {
13414    static_assert!(IMM5 == 0);
13415    unsafe { simd_extract!(v, IMM5 as u32) }
13416}
13417#[doc = "Move vector element to general-purpose register"]
13418#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_lane_u64)"]
13419#[inline]
13420#[target_feature(enable = "neon")]
13421#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13422#[rustc_legacy_const_generics(1)]
13423#[cfg_attr(test, assert_instr(nop, IMM5 = 0))]
13424#[cfg_attr(
13425    not(target_arch = "arm"),
13426    stable(feature = "neon_intrinsics", since = "1.59.0")
13427)]
13428#[cfg_attr(
13429    target_arch = "arm",
13430    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13431)]
13432pub fn vget_lane_u64<const IMM5: i32>(v: uint64x1_t) -> u64 {
13433    static_assert!(IMM5 == 0);
13434    unsafe { simd_extract!(v, 0) }
13435}
13436#[doc = "Duplicate vector element to vector or scalar"]
13437#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_low_f32)"]
13438#[inline]
13439#[target_feature(enable = "neon")]
13440#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13441#[cfg_attr(test, assert_instr(nop))]
13442#[cfg_attr(
13443    not(target_arch = "arm"),
13444    stable(feature = "neon_intrinsics", since = "1.59.0")
13445)]
13446#[cfg_attr(
13447    target_arch = "arm",
13448    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13449)]
13450pub fn vget_low_f32(a: float32x4_t) -> float32x2_t {
13451    unsafe { simd_shuffle!(a, a, [0, 1]) }
13452}
13453#[doc = "Duplicate vector element to vector or scalar"]
13454#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_low_p16)"]
13455#[inline]
13456#[target_feature(enable = "neon")]
13457#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13458#[cfg_attr(test, assert_instr(nop))]
13459#[cfg_attr(
13460    not(target_arch = "arm"),
13461    stable(feature = "neon_intrinsics", since = "1.59.0")
13462)]
13463#[cfg_attr(
13464    target_arch = "arm",
13465    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13466)]
13467pub fn vget_low_p16(a: poly16x8_t) -> poly16x4_t {
13468    unsafe { simd_shuffle!(a, a, [0, 1, 2, 3]) }
13469}
13470#[doc = "Duplicate vector element to vector or scalar"]
13471#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_low_p8)"]
13472#[inline]
13473#[target_feature(enable = "neon")]
13474#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13475#[cfg_attr(test, assert_instr(nop))]
13476#[cfg_attr(
13477    not(target_arch = "arm"),
13478    stable(feature = "neon_intrinsics", since = "1.59.0")
13479)]
13480#[cfg_attr(
13481    target_arch = "arm",
13482    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13483)]
13484pub fn vget_low_p8(a: poly8x16_t) -> poly8x8_t {
13485    unsafe { simd_shuffle!(a, a, [0, 1, 2, 3, 4, 5, 6, 7]) }
13486}
13487#[doc = "Duplicate vector element to vector or scalar"]
13488#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_low_s16)"]
13489#[inline]
13490#[target_feature(enable = "neon")]
13491#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13492#[cfg_attr(test, assert_instr(nop))]
13493#[cfg_attr(
13494    not(target_arch = "arm"),
13495    stable(feature = "neon_intrinsics", since = "1.59.0")
13496)]
13497#[cfg_attr(
13498    target_arch = "arm",
13499    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13500)]
13501pub fn vget_low_s16(a: int16x8_t) -> int16x4_t {
13502    unsafe { simd_shuffle!(a, a, [0, 1, 2, 3]) }
13503}
13504#[doc = "Duplicate vector element to vector or scalar"]
13505#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_low_s32)"]
13506#[inline]
13507#[target_feature(enable = "neon")]
13508#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13509#[cfg_attr(test, assert_instr(nop))]
13510#[cfg_attr(
13511    not(target_arch = "arm"),
13512    stable(feature = "neon_intrinsics", since = "1.59.0")
13513)]
13514#[cfg_attr(
13515    target_arch = "arm",
13516    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13517)]
13518pub fn vget_low_s32(a: int32x4_t) -> int32x2_t {
13519    unsafe { simd_shuffle!(a, a, [0, 1]) }
13520}
13521#[doc = "Duplicate vector element to vector or scalar"]
13522#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_low_s8)"]
13523#[inline]
13524#[target_feature(enable = "neon")]
13525#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13526#[cfg_attr(test, assert_instr(nop))]
13527#[cfg_attr(
13528    not(target_arch = "arm"),
13529    stable(feature = "neon_intrinsics", since = "1.59.0")
13530)]
13531#[cfg_attr(
13532    target_arch = "arm",
13533    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13534)]
13535pub fn vget_low_s8(a: int8x16_t) -> int8x8_t {
13536    unsafe { simd_shuffle!(a, a, [0, 1, 2, 3, 4, 5, 6, 7]) }
13537}
13538#[doc = "Duplicate vector element to vector or scalar"]
13539#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_low_u16)"]
13540#[inline]
13541#[target_feature(enable = "neon")]
13542#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13543#[cfg_attr(test, assert_instr(nop))]
13544#[cfg_attr(
13545    not(target_arch = "arm"),
13546    stable(feature = "neon_intrinsics", since = "1.59.0")
13547)]
13548#[cfg_attr(
13549    target_arch = "arm",
13550    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13551)]
13552pub fn vget_low_u16(a: uint16x8_t) -> uint16x4_t {
13553    unsafe { simd_shuffle!(a, a, [0, 1, 2, 3]) }
13554}
13555#[doc = "Duplicate vector element to vector or scalar"]
13556#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_low_u32)"]
13557#[inline]
13558#[target_feature(enable = "neon")]
13559#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13560#[cfg_attr(test, assert_instr(nop))]
13561#[cfg_attr(
13562    not(target_arch = "arm"),
13563    stable(feature = "neon_intrinsics", since = "1.59.0")
13564)]
13565#[cfg_attr(
13566    target_arch = "arm",
13567    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13568)]
13569pub fn vget_low_u32(a: uint32x4_t) -> uint32x2_t {
13570    unsafe { simd_shuffle!(a, a, [0, 1]) }
13571}
13572#[doc = "Duplicate vector element to vector or scalar"]
13573#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_low_u8)"]
13574#[inline]
13575#[target_feature(enable = "neon")]
13576#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13577#[cfg_attr(test, assert_instr(nop))]
13578#[cfg_attr(
13579    not(target_arch = "arm"),
13580    stable(feature = "neon_intrinsics", since = "1.59.0")
13581)]
13582#[cfg_attr(
13583    target_arch = "arm",
13584    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13585)]
13586pub fn vget_low_u8(a: uint8x16_t) -> uint8x8_t {
13587    unsafe { simd_shuffle!(a, a, [0, 1, 2, 3, 4, 5, 6, 7]) }
13588}
13589#[doc = "Duplicate vector element to vector or scalar"]
13590#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_low_s64)"]
13591#[inline]
13592#[target_feature(enable = "neon")]
13593#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13594#[cfg_attr(test, assert_instr(nop))]
13595#[cfg_attr(
13596    not(target_arch = "arm"),
13597    stable(feature = "neon_intrinsics", since = "1.59.0")
13598)]
13599#[cfg_attr(
13600    target_arch = "arm",
13601    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13602)]
13603pub fn vget_low_s64(a: int64x2_t) -> int64x1_t {
13604    unsafe { int64x1_t([simd_extract!(a, 0)]) }
13605}
13606#[doc = "Duplicate vector element to vector or scalar"]
13607#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_low_u64)"]
13608#[inline]
13609#[target_feature(enable = "neon")]
13610#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13611#[cfg_attr(test, assert_instr(nop))]
13612#[cfg_attr(
13613    not(target_arch = "arm"),
13614    stable(feature = "neon_intrinsics", since = "1.59.0")
13615)]
13616#[cfg_attr(
13617    target_arch = "arm",
13618    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13619)]
13620pub fn vget_low_u64(a: uint64x2_t) -> uint64x1_t {
13621    unsafe { uint64x1_t([simd_extract!(a, 0)]) }
13622}
13623#[doc = "Halving add"]
13624#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhadd_s8)"]
13625#[inline]
13626#[target_feature(enable = "neon")]
13627#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13628#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhadd.s8"))]
13629#[cfg_attr(
13630    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13631    assert_instr(shadd)
13632)]
13633#[cfg_attr(
13634    not(target_arch = "arm"),
13635    stable(feature = "neon_intrinsics", since = "1.59.0")
13636)]
13637#[cfg_attr(
13638    target_arch = "arm",
13639    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13640)]
13641pub fn vhadd_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
13642    unsafe extern "unadjusted" {
13643        #[cfg_attr(
13644            any(target_arch = "aarch64", target_arch = "arm64ec"),
13645            link_name = "llvm.aarch64.neon.shadd.v8i8"
13646        )]
13647        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhadds.v8i8")]
13648        fn _vhadd_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t;
13649    }
13650    unsafe { _vhadd_s8(a, b) }
13651}
13652#[doc = "Halving add"]
13653#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhaddq_s8)"]
13654#[inline]
13655#[target_feature(enable = "neon")]
13656#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13657#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhadd.s8"))]
13658#[cfg_attr(
13659    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13660    assert_instr(shadd)
13661)]
13662#[cfg_attr(
13663    not(target_arch = "arm"),
13664    stable(feature = "neon_intrinsics", since = "1.59.0")
13665)]
13666#[cfg_attr(
13667    target_arch = "arm",
13668    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13669)]
13670pub fn vhaddq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
13671    unsafe extern "unadjusted" {
13672        #[cfg_attr(
13673            any(target_arch = "aarch64", target_arch = "arm64ec"),
13674            link_name = "llvm.aarch64.neon.shadd.v16i8"
13675        )]
13676        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhadds.v16i8")]
13677        fn _vhaddq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t;
13678    }
13679    unsafe { _vhaddq_s8(a, b) }
13680}
13681#[doc = "Halving add"]
13682#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhadd_s16)"]
13683#[inline]
13684#[target_feature(enable = "neon")]
13685#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13686#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhadd.s16"))]
13687#[cfg_attr(
13688    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13689    assert_instr(shadd)
13690)]
13691#[cfg_attr(
13692    not(target_arch = "arm"),
13693    stable(feature = "neon_intrinsics", since = "1.59.0")
13694)]
13695#[cfg_attr(
13696    target_arch = "arm",
13697    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13698)]
13699pub fn vhadd_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
13700    unsafe extern "unadjusted" {
13701        #[cfg_attr(
13702            any(target_arch = "aarch64", target_arch = "arm64ec"),
13703            link_name = "llvm.aarch64.neon.shadd.v4i16"
13704        )]
13705        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhadds.v4i16")]
13706        fn _vhadd_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t;
13707    }
13708    unsafe { _vhadd_s16(a, b) }
13709}
13710#[doc = "Halving add"]
13711#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhaddq_s16)"]
13712#[inline]
13713#[target_feature(enable = "neon")]
13714#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13715#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhadd.s16"))]
13716#[cfg_attr(
13717    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13718    assert_instr(shadd)
13719)]
13720#[cfg_attr(
13721    not(target_arch = "arm"),
13722    stable(feature = "neon_intrinsics", since = "1.59.0")
13723)]
13724#[cfg_attr(
13725    target_arch = "arm",
13726    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13727)]
13728pub fn vhaddq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
13729    unsafe extern "unadjusted" {
13730        #[cfg_attr(
13731            any(target_arch = "aarch64", target_arch = "arm64ec"),
13732            link_name = "llvm.aarch64.neon.shadd.v8i16"
13733        )]
13734        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhadds.v8i16")]
13735        fn _vhaddq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t;
13736    }
13737    unsafe { _vhaddq_s16(a, b) }
13738}
13739#[doc = "Halving add"]
13740#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhadd_s32)"]
13741#[inline]
13742#[target_feature(enable = "neon")]
13743#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13744#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhadd.s32"))]
13745#[cfg_attr(
13746    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13747    assert_instr(shadd)
13748)]
13749#[cfg_attr(
13750    not(target_arch = "arm"),
13751    stable(feature = "neon_intrinsics", since = "1.59.0")
13752)]
13753#[cfg_attr(
13754    target_arch = "arm",
13755    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13756)]
13757pub fn vhadd_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
13758    unsafe extern "unadjusted" {
13759        #[cfg_attr(
13760            any(target_arch = "aarch64", target_arch = "arm64ec"),
13761            link_name = "llvm.aarch64.neon.shadd.v2i32"
13762        )]
13763        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhadds.v2i32")]
13764        fn _vhadd_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t;
13765    }
13766    unsafe { _vhadd_s32(a, b) }
13767}
13768#[doc = "Halving add"]
13769#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhaddq_s32)"]
13770#[inline]
13771#[target_feature(enable = "neon")]
13772#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13773#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhadd.s32"))]
13774#[cfg_attr(
13775    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13776    assert_instr(shadd)
13777)]
13778#[cfg_attr(
13779    not(target_arch = "arm"),
13780    stable(feature = "neon_intrinsics", since = "1.59.0")
13781)]
13782#[cfg_attr(
13783    target_arch = "arm",
13784    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13785)]
13786pub fn vhaddq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
13787    unsafe extern "unadjusted" {
13788        #[cfg_attr(
13789            any(target_arch = "aarch64", target_arch = "arm64ec"),
13790            link_name = "llvm.aarch64.neon.shadd.v4i32"
13791        )]
13792        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhadds.v4i32")]
13793        fn _vhaddq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t;
13794    }
13795    unsafe { _vhaddq_s32(a, b) }
13796}
13797#[doc = "Halving add"]
13798#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhadd_u8)"]
13799#[inline]
13800#[target_feature(enable = "neon")]
13801#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13802#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhadd.u8"))]
13803#[cfg_attr(
13804    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13805    assert_instr(uhadd)
13806)]
13807#[cfg_attr(
13808    not(target_arch = "arm"),
13809    stable(feature = "neon_intrinsics", since = "1.59.0")
13810)]
13811#[cfg_attr(
13812    target_arch = "arm",
13813    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13814)]
13815pub fn vhadd_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
13816    unsafe extern "unadjusted" {
13817        #[cfg_attr(
13818            any(target_arch = "aarch64", target_arch = "arm64ec"),
13819            link_name = "llvm.aarch64.neon.uhadd.v8i8"
13820        )]
13821        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhaddu.v8i8")]
13822        fn _vhadd_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t;
13823    }
13824    unsafe { _vhadd_u8(a, b) }
13825}
13826#[doc = "Halving add"]
13827#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhaddq_u8)"]
13828#[inline]
13829#[target_feature(enable = "neon")]
13830#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13831#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhadd.u8"))]
13832#[cfg_attr(
13833    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13834    assert_instr(uhadd)
13835)]
13836#[cfg_attr(
13837    not(target_arch = "arm"),
13838    stable(feature = "neon_intrinsics", since = "1.59.0")
13839)]
13840#[cfg_attr(
13841    target_arch = "arm",
13842    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13843)]
13844pub fn vhaddq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
13845    unsafe extern "unadjusted" {
13846        #[cfg_attr(
13847            any(target_arch = "aarch64", target_arch = "arm64ec"),
13848            link_name = "llvm.aarch64.neon.uhadd.v16i8"
13849        )]
13850        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhaddu.v16i8")]
13851        fn _vhaddq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t;
13852    }
13853    unsafe { _vhaddq_u8(a, b) }
13854}
13855#[doc = "Halving add"]
13856#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhadd_u16)"]
13857#[inline]
13858#[target_feature(enable = "neon")]
13859#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13860#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhadd.u16"))]
13861#[cfg_attr(
13862    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13863    assert_instr(uhadd)
13864)]
13865#[cfg_attr(
13866    not(target_arch = "arm"),
13867    stable(feature = "neon_intrinsics", since = "1.59.0")
13868)]
13869#[cfg_attr(
13870    target_arch = "arm",
13871    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13872)]
13873pub fn vhadd_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
13874    unsafe extern "unadjusted" {
13875        #[cfg_attr(
13876            any(target_arch = "aarch64", target_arch = "arm64ec"),
13877            link_name = "llvm.aarch64.neon.uhadd.v4i16"
13878        )]
13879        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhaddu.v4i16")]
13880        fn _vhadd_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t;
13881    }
13882    unsafe { _vhadd_u16(a, b) }
13883}
13884#[doc = "Halving add"]
13885#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhaddq_u16)"]
13886#[inline]
13887#[target_feature(enable = "neon")]
13888#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13889#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhadd.u16"))]
13890#[cfg_attr(
13891    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13892    assert_instr(uhadd)
13893)]
13894#[cfg_attr(
13895    not(target_arch = "arm"),
13896    stable(feature = "neon_intrinsics", since = "1.59.0")
13897)]
13898#[cfg_attr(
13899    target_arch = "arm",
13900    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13901)]
13902pub fn vhaddq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
13903    unsafe extern "unadjusted" {
13904        #[cfg_attr(
13905            any(target_arch = "aarch64", target_arch = "arm64ec"),
13906            link_name = "llvm.aarch64.neon.uhadd.v8i16"
13907        )]
13908        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhaddu.v8i16")]
13909        fn _vhaddq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t;
13910    }
13911    unsafe { _vhaddq_u16(a, b) }
13912}
13913#[doc = "Halving add"]
13914#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhadd_u32)"]
13915#[inline]
13916#[target_feature(enable = "neon")]
13917#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13918#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhadd.u32"))]
13919#[cfg_attr(
13920    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13921    assert_instr(uhadd)
13922)]
13923#[cfg_attr(
13924    not(target_arch = "arm"),
13925    stable(feature = "neon_intrinsics", since = "1.59.0")
13926)]
13927#[cfg_attr(
13928    target_arch = "arm",
13929    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13930)]
13931pub fn vhadd_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
13932    unsafe extern "unadjusted" {
13933        #[cfg_attr(
13934            any(target_arch = "aarch64", target_arch = "arm64ec"),
13935            link_name = "llvm.aarch64.neon.uhadd.v2i32"
13936        )]
13937        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhaddu.v2i32")]
13938        fn _vhadd_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t;
13939    }
13940    unsafe { _vhadd_u32(a, b) }
13941}
13942#[doc = "Halving add"]
13943#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhaddq_u32)"]
13944#[inline]
13945#[target_feature(enable = "neon")]
13946#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13947#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhadd.u32"))]
13948#[cfg_attr(
13949    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13950    assert_instr(uhadd)
13951)]
13952#[cfg_attr(
13953    not(target_arch = "arm"),
13954    stable(feature = "neon_intrinsics", since = "1.59.0")
13955)]
13956#[cfg_attr(
13957    target_arch = "arm",
13958    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13959)]
13960pub fn vhaddq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
13961    unsafe extern "unadjusted" {
13962        #[cfg_attr(
13963            any(target_arch = "aarch64", target_arch = "arm64ec"),
13964            link_name = "llvm.aarch64.neon.uhadd.v4i32"
13965        )]
13966        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhaddu.v4i32")]
13967        fn _vhaddq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t;
13968    }
13969    unsafe { _vhaddq_u32(a, b) }
13970}
13971#[doc = "Signed halving subtract"]
13972#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhsub_s16)"]
13973#[inline]
13974#[target_feature(enable = "neon")]
13975#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13976#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhsub.s16"))]
13977#[cfg_attr(
13978    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13979    assert_instr(shsub)
13980)]
13981#[cfg_attr(
13982    not(target_arch = "arm"),
13983    stable(feature = "neon_intrinsics", since = "1.59.0")
13984)]
13985#[cfg_attr(
13986    target_arch = "arm",
13987    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13988)]
13989pub fn vhsub_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
13990    unsafe extern "unadjusted" {
13991        #[cfg_attr(
13992            any(target_arch = "aarch64", target_arch = "arm64ec"),
13993            link_name = "llvm.aarch64.neon.shsub.v4i16"
13994        )]
13995        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhsubs.v4i16")]
13996        fn _vhsub_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t;
13997    }
13998    unsafe { _vhsub_s16(a, b) }
13999}
14000#[doc = "Signed halving subtract"]
14001#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhsubq_s16)"]
14002#[inline]
14003#[target_feature(enable = "neon")]
14004#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14005#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhsub.s16"))]
14006#[cfg_attr(
14007    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14008    assert_instr(shsub)
14009)]
14010#[cfg_attr(
14011    not(target_arch = "arm"),
14012    stable(feature = "neon_intrinsics", since = "1.59.0")
14013)]
14014#[cfg_attr(
14015    target_arch = "arm",
14016    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14017)]
14018pub fn vhsubq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
14019    unsafe extern "unadjusted" {
14020        #[cfg_attr(
14021            any(target_arch = "aarch64", target_arch = "arm64ec"),
14022            link_name = "llvm.aarch64.neon.shsub.v8i16"
14023        )]
14024        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhsubs.v8i16")]
14025        fn _vhsubq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t;
14026    }
14027    unsafe { _vhsubq_s16(a, b) }
14028}
14029#[doc = "Signed halving subtract"]
14030#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhsub_s32)"]
14031#[inline]
14032#[target_feature(enable = "neon")]
14033#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14034#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhsub.s32"))]
14035#[cfg_attr(
14036    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14037    assert_instr(shsub)
14038)]
14039#[cfg_attr(
14040    not(target_arch = "arm"),
14041    stable(feature = "neon_intrinsics", since = "1.59.0")
14042)]
14043#[cfg_attr(
14044    target_arch = "arm",
14045    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14046)]
14047pub fn vhsub_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
14048    unsafe extern "unadjusted" {
14049        #[cfg_attr(
14050            any(target_arch = "aarch64", target_arch = "arm64ec"),
14051            link_name = "llvm.aarch64.neon.shsub.v2i32"
14052        )]
14053        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhsubs.v2i32")]
14054        fn _vhsub_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t;
14055    }
14056    unsafe { _vhsub_s32(a, b) }
14057}
14058#[doc = "Signed halving subtract"]
14059#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhsubq_s32)"]
14060#[inline]
14061#[target_feature(enable = "neon")]
14062#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14063#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhsub.s32"))]
14064#[cfg_attr(
14065    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14066    assert_instr(shsub)
14067)]
14068#[cfg_attr(
14069    not(target_arch = "arm"),
14070    stable(feature = "neon_intrinsics", since = "1.59.0")
14071)]
14072#[cfg_attr(
14073    target_arch = "arm",
14074    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14075)]
14076pub fn vhsubq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
14077    unsafe extern "unadjusted" {
14078        #[cfg_attr(
14079            any(target_arch = "aarch64", target_arch = "arm64ec"),
14080            link_name = "llvm.aarch64.neon.shsub.v4i32"
14081        )]
14082        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhsubs.v4i32")]
14083        fn _vhsubq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t;
14084    }
14085    unsafe { _vhsubq_s32(a, b) }
14086}
14087#[doc = "Signed halving subtract"]
14088#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhsub_s8)"]
14089#[inline]
14090#[target_feature(enable = "neon")]
14091#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14092#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhsub.s8"))]
14093#[cfg_attr(
14094    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14095    assert_instr(shsub)
14096)]
14097#[cfg_attr(
14098    not(target_arch = "arm"),
14099    stable(feature = "neon_intrinsics", since = "1.59.0")
14100)]
14101#[cfg_attr(
14102    target_arch = "arm",
14103    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14104)]
14105pub fn vhsub_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
14106    unsafe extern "unadjusted" {
14107        #[cfg_attr(
14108            any(target_arch = "aarch64", target_arch = "arm64ec"),
14109            link_name = "llvm.aarch64.neon.shsub.v8i8"
14110        )]
14111        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhsubs.v8i8")]
14112        fn _vhsub_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t;
14113    }
14114    unsafe { _vhsub_s8(a, b) }
14115}
14116#[doc = "Signed halving subtract"]
14117#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhsubq_s8)"]
14118#[inline]
14119#[target_feature(enable = "neon")]
14120#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14121#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhsub.s8"))]
14122#[cfg_attr(
14123    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14124    assert_instr(shsub)
14125)]
14126#[cfg_attr(
14127    not(target_arch = "arm"),
14128    stable(feature = "neon_intrinsics", since = "1.59.0")
14129)]
14130#[cfg_attr(
14131    target_arch = "arm",
14132    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14133)]
14134pub fn vhsubq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
14135    unsafe extern "unadjusted" {
14136        #[cfg_attr(
14137            any(target_arch = "aarch64", target_arch = "arm64ec"),
14138            link_name = "llvm.aarch64.neon.shsub.v16i8"
14139        )]
14140        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhsubs.v16i8")]
14141        fn _vhsubq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t;
14142    }
14143    unsafe { _vhsubq_s8(a, b) }
14144}
14145#[doc = "Signed halving subtract"]
14146#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhsub_u8)"]
14147#[inline]
14148#[target_feature(enable = "neon")]
14149#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14150#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhsub.u8"))]
14151#[cfg_attr(
14152    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14153    assert_instr(uhsub)
14154)]
14155#[cfg_attr(
14156    not(target_arch = "arm"),
14157    stable(feature = "neon_intrinsics", since = "1.59.0")
14158)]
14159#[cfg_attr(
14160    target_arch = "arm",
14161    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14162)]
14163pub fn vhsub_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
14164    unsafe extern "unadjusted" {
14165        #[cfg_attr(
14166            any(target_arch = "aarch64", target_arch = "arm64ec"),
14167            link_name = "llvm.aarch64.neon.uhsub.v8i8"
14168        )]
14169        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhsubu.v8i8")]
14170        fn _vhsub_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t;
14171    }
14172    unsafe { _vhsub_u8(a, b) }
14173}
14174#[doc = "Signed halving subtract"]
14175#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhsubq_u8)"]
14176#[inline]
14177#[target_feature(enable = "neon")]
14178#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14179#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhsub.u8"))]
14180#[cfg_attr(
14181    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14182    assert_instr(uhsub)
14183)]
14184#[cfg_attr(
14185    not(target_arch = "arm"),
14186    stable(feature = "neon_intrinsics", since = "1.59.0")
14187)]
14188#[cfg_attr(
14189    target_arch = "arm",
14190    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14191)]
14192pub fn vhsubq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
14193    unsafe extern "unadjusted" {
14194        #[cfg_attr(
14195            any(target_arch = "aarch64", target_arch = "arm64ec"),
14196            link_name = "llvm.aarch64.neon.uhsub.v16i8"
14197        )]
14198        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhsubu.v16i8")]
14199        fn _vhsubq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t;
14200    }
14201    unsafe { _vhsubq_u8(a, b) }
14202}
14203#[doc = "Signed halving subtract"]
14204#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhsub_u16)"]
14205#[inline]
14206#[target_feature(enable = "neon")]
14207#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14208#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhsub.u16"))]
14209#[cfg_attr(
14210    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14211    assert_instr(uhsub)
14212)]
14213#[cfg_attr(
14214    not(target_arch = "arm"),
14215    stable(feature = "neon_intrinsics", since = "1.59.0")
14216)]
14217#[cfg_attr(
14218    target_arch = "arm",
14219    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14220)]
14221pub fn vhsub_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
14222    unsafe extern "unadjusted" {
14223        #[cfg_attr(
14224            any(target_arch = "aarch64", target_arch = "arm64ec"),
14225            link_name = "llvm.aarch64.neon.uhsub.v4i16"
14226        )]
14227        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhsubu.v4i16")]
14228        fn _vhsub_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t;
14229    }
14230    unsafe { _vhsub_u16(a, b) }
14231}
14232#[doc = "Signed halving subtract"]
14233#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhsubq_u16)"]
14234#[inline]
14235#[target_feature(enable = "neon")]
14236#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14237#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhsub.u16"))]
14238#[cfg_attr(
14239    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14240    assert_instr(uhsub)
14241)]
14242#[cfg_attr(
14243    not(target_arch = "arm"),
14244    stable(feature = "neon_intrinsics", since = "1.59.0")
14245)]
14246#[cfg_attr(
14247    target_arch = "arm",
14248    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14249)]
14250pub fn vhsubq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
14251    unsafe extern "unadjusted" {
14252        #[cfg_attr(
14253            any(target_arch = "aarch64", target_arch = "arm64ec"),
14254            link_name = "llvm.aarch64.neon.uhsub.v8i16"
14255        )]
14256        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhsubu.v8i16")]
14257        fn _vhsubq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t;
14258    }
14259    unsafe { _vhsubq_u16(a, b) }
14260}
14261#[doc = "Signed halving subtract"]
14262#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhsub_u32)"]
14263#[inline]
14264#[target_feature(enable = "neon")]
14265#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14266#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhsub.u32"))]
14267#[cfg_attr(
14268    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14269    assert_instr(uhsub)
14270)]
14271#[cfg_attr(
14272    not(target_arch = "arm"),
14273    stable(feature = "neon_intrinsics", since = "1.59.0")
14274)]
14275#[cfg_attr(
14276    target_arch = "arm",
14277    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14278)]
14279pub fn vhsub_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
14280    unsafe extern "unadjusted" {
14281        #[cfg_attr(
14282            any(target_arch = "aarch64", target_arch = "arm64ec"),
14283            link_name = "llvm.aarch64.neon.uhsub.v2i32"
14284        )]
14285        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhsubu.v2i32")]
14286        fn _vhsub_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t;
14287    }
14288    unsafe { _vhsub_u32(a, b) }
14289}
14290#[doc = "Signed halving subtract"]
14291#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhsubq_u32)"]
14292#[inline]
14293#[target_feature(enable = "neon")]
14294#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14295#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhsub.u32"))]
14296#[cfg_attr(
14297    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14298    assert_instr(uhsub)
14299)]
14300#[cfg_attr(
14301    not(target_arch = "arm"),
14302    stable(feature = "neon_intrinsics", since = "1.59.0")
14303)]
14304#[cfg_attr(
14305    target_arch = "arm",
14306    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14307)]
14308pub fn vhsubq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
14309    unsafe extern "unadjusted" {
14310        #[cfg_attr(
14311            any(target_arch = "aarch64", target_arch = "arm64ec"),
14312            link_name = "llvm.aarch64.neon.uhsub.v4i32"
14313        )]
14314        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhsubu.v4i32")]
14315        fn _vhsubq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t;
14316    }
14317    unsafe { _vhsubq_u32(a, b) }
14318}
14319#[doc = "Load one single-element structure and replicate to all lanes of one register"]
14320#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_f16)"]
14321#[doc = "## Safety"]
14322#[doc = "  * Neon instrinsic unsafe"]
14323#[inline]
14324#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14325#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
14326#[cfg_attr(
14327    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14328    assert_instr(ld1r)
14329)]
14330#[target_feature(enable = "neon,fp16")]
14331#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
14332#[cfg(not(target_arch = "arm64ec"))]
14333pub unsafe fn vld1_dup_f16(ptr: *const f16) -> float16x4_t {
14334    let x: float16x4_t = vld1_lane_f16::<0>(ptr, transmute(f16x4::splat(0.0)));
14335    simd_shuffle!(x, x, [0, 0, 0, 0])
14336}
14337#[doc = "Load one single-element structure and replicate to all lanes of one register"]
14338#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_f16)"]
14339#[doc = "## Safety"]
14340#[doc = "  * Neon instrinsic unsafe"]
14341#[inline]
14342#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14343#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
14344#[cfg_attr(
14345    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14346    assert_instr(ld1r)
14347)]
14348#[target_feature(enable = "neon,fp16")]
14349#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
14350#[cfg(not(target_arch = "arm64ec"))]
14351pub unsafe fn vld1q_dup_f16(ptr: *const f16) -> float16x8_t {
14352    let x: float16x8_t = vld1q_lane_f16::<0>(ptr, transmute(f16x8::splat(0.0)));
14353    simd_shuffle!(x, x, [0, 0, 0, 0, 0, 0, 0, 0])
14354}
14355#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
14356#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_f32)"]
14357#[doc = "## Safety"]
14358#[doc = "  * Neon instrinsic unsafe"]
14359#[inline]
14360#[target_feature(enable = "neon")]
14361#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14362#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.32"))]
14363#[cfg_attr(
14364    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14365    assert_instr(ld1r)
14366)]
14367#[cfg_attr(
14368    not(target_arch = "arm"),
14369    stable(feature = "neon_intrinsics", since = "1.59.0")
14370)]
14371#[cfg_attr(
14372    target_arch = "arm",
14373    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14374)]
14375pub unsafe fn vld1_dup_f32(ptr: *const f32) -> float32x2_t {
14376    transmute(f32x2::splat(*ptr))
14377}
14378#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
14379#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_p16)"]
14380#[doc = "## Safety"]
14381#[doc = "  * Neon instrinsic unsafe"]
14382#[inline]
14383#[target_feature(enable = "neon")]
14384#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14385#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
14386#[cfg_attr(
14387    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14388    assert_instr(ld1r)
14389)]
14390#[cfg_attr(
14391    not(target_arch = "arm"),
14392    stable(feature = "neon_intrinsics", since = "1.59.0")
14393)]
14394#[cfg_attr(
14395    target_arch = "arm",
14396    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14397)]
14398pub unsafe fn vld1_dup_p16(ptr: *const p16) -> poly16x4_t {
14399    transmute(u16x4::splat(*ptr))
14400}
14401#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
14402#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_p8)"]
14403#[doc = "## Safety"]
14404#[doc = "  * Neon instrinsic unsafe"]
14405#[inline]
14406#[target_feature(enable = "neon")]
14407#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14408#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8"))]
14409#[cfg_attr(
14410    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14411    assert_instr(ld1r)
14412)]
14413#[cfg_attr(
14414    not(target_arch = "arm"),
14415    stable(feature = "neon_intrinsics", since = "1.59.0")
14416)]
14417#[cfg_attr(
14418    target_arch = "arm",
14419    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14420)]
14421pub unsafe fn vld1_dup_p8(ptr: *const p8) -> poly8x8_t {
14422    transmute(u8x8::splat(*ptr))
14423}
14424#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
14425#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_s16)"]
14426#[doc = "## Safety"]
14427#[doc = "  * Neon instrinsic unsafe"]
14428#[inline]
14429#[target_feature(enable = "neon")]
14430#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14431#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
14432#[cfg_attr(
14433    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14434    assert_instr(ld1r)
14435)]
14436#[cfg_attr(
14437    not(target_arch = "arm"),
14438    stable(feature = "neon_intrinsics", since = "1.59.0")
14439)]
14440#[cfg_attr(
14441    target_arch = "arm",
14442    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14443)]
14444pub unsafe fn vld1_dup_s16(ptr: *const i16) -> int16x4_t {
14445    transmute(i16x4::splat(*ptr))
14446}
14447#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
14448#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_s32)"]
14449#[doc = "## Safety"]
14450#[doc = "  * Neon instrinsic unsafe"]
14451#[inline]
14452#[target_feature(enable = "neon")]
14453#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14454#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.32"))]
14455#[cfg_attr(
14456    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14457    assert_instr(ld1r)
14458)]
14459#[cfg_attr(
14460    not(target_arch = "arm"),
14461    stable(feature = "neon_intrinsics", since = "1.59.0")
14462)]
14463#[cfg_attr(
14464    target_arch = "arm",
14465    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14466)]
14467pub unsafe fn vld1_dup_s32(ptr: *const i32) -> int32x2_t {
14468    transmute(i32x2::splat(*ptr))
14469}
14470#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
14471#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_s8)"]
14472#[doc = "## Safety"]
14473#[doc = "  * Neon instrinsic unsafe"]
14474#[inline]
14475#[target_feature(enable = "neon")]
14476#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14477#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8"))]
14478#[cfg_attr(
14479    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14480    assert_instr(ld1r)
14481)]
14482#[cfg_attr(
14483    not(target_arch = "arm"),
14484    stable(feature = "neon_intrinsics", since = "1.59.0")
14485)]
14486#[cfg_attr(
14487    target_arch = "arm",
14488    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14489)]
14490pub unsafe fn vld1_dup_s8(ptr: *const i8) -> int8x8_t {
14491    transmute(i8x8::splat(*ptr))
14492}
14493#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
14494#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_u16)"]
14495#[doc = "## Safety"]
14496#[doc = "  * Neon instrinsic unsafe"]
14497#[inline]
14498#[target_feature(enable = "neon")]
14499#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14500#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
14501#[cfg_attr(
14502    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14503    assert_instr(ld1r)
14504)]
14505#[cfg_attr(
14506    not(target_arch = "arm"),
14507    stable(feature = "neon_intrinsics", since = "1.59.0")
14508)]
14509#[cfg_attr(
14510    target_arch = "arm",
14511    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14512)]
14513pub unsafe fn vld1_dup_u16(ptr: *const u16) -> uint16x4_t {
14514    transmute(u16x4::splat(*ptr))
14515}
14516#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
14517#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_u32)"]
14518#[doc = "## Safety"]
14519#[doc = "  * Neon instrinsic unsafe"]
14520#[inline]
14521#[target_feature(enable = "neon")]
14522#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14523#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.32"))]
14524#[cfg_attr(
14525    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14526    assert_instr(ld1r)
14527)]
14528#[cfg_attr(
14529    not(target_arch = "arm"),
14530    stable(feature = "neon_intrinsics", since = "1.59.0")
14531)]
14532#[cfg_attr(
14533    target_arch = "arm",
14534    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14535)]
14536pub unsafe fn vld1_dup_u32(ptr: *const u32) -> uint32x2_t {
14537    transmute(u32x2::splat(*ptr))
14538}
14539#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
14540#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_u8)"]
14541#[doc = "## Safety"]
14542#[doc = "  * Neon instrinsic unsafe"]
14543#[inline]
14544#[target_feature(enable = "neon")]
14545#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14546#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8"))]
14547#[cfg_attr(
14548    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14549    assert_instr(ld1r)
14550)]
14551#[cfg_attr(
14552    not(target_arch = "arm"),
14553    stable(feature = "neon_intrinsics", since = "1.59.0")
14554)]
14555#[cfg_attr(
14556    target_arch = "arm",
14557    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14558)]
14559pub unsafe fn vld1_dup_u8(ptr: *const u8) -> uint8x8_t {
14560    transmute(u8x8::splat(*ptr))
14561}
14562#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
14563#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_f32)"]
14564#[doc = "## Safety"]
14565#[doc = "  * Neon instrinsic unsafe"]
14566#[inline]
14567#[target_feature(enable = "neon")]
14568#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14569#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.32"))]
14570#[cfg_attr(
14571    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14572    assert_instr(ld1r)
14573)]
14574#[cfg_attr(
14575    not(target_arch = "arm"),
14576    stable(feature = "neon_intrinsics", since = "1.59.0")
14577)]
14578#[cfg_attr(
14579    target_arch = "arm",
14580    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14581)]
14582pub unsafe fn vld1q_dup_f32(ptr: *const f32) -> float32x4_t {
14583    transmute(f32x4::splat(*ptr))
14584}
14585#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
14586#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_p16)"]
14587#[doc = "## Safety"]
14588#[doc = "  * Neon instrinsic unsafe"]
14589#[inline]
14590#[target_feature(enable = "neon")]
14591#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14592#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
14593#[cfg_attr(
14594    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14595    assert_instr(ld1r)
14596)]
14597#[cfg_attr(
14598    not(target_arch = "arm"),
14599    stable(feature = "neon_intrinsics", since = "1.59.0")
14600)]
14601#[cfg_attr(
14602    target_arch = "arm",
14603    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14604)]
14605pub unsafe fn vld1q_dup_p16(ptr: *const p16) -> poly16x8_t {
14606    transmute(u16x8::splat(*ptr))
14607}
14608#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
14609#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_p8)"]
14610#[doc = "## Safety"]
14611#[doc = "  * Neon instrinsic unsafe"]
14612#[inline]
14613#[target_feature(enable = "neon")]
14614#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14615#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8"))]
14616#[cfg_attr(
14617    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14618    assert_instr(ld1r)
14619)]
14620#[cfg_attr(
14621    not(target_arch = "arm"),
14622    stable(feature = "neon_intrinsics", since = "1.59.0")
14623)]
14624#[cfg_attr(
14625    target_arch = "arm",
14626    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14627)]
14628pub unsafe fn vld1q_dup_p8(ptr: *const p8) -> poly8x16_t {
14629    transmute(u8x16::splat(*ptr))
14630}
14631#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
14632#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_s16)"]
14633#[doc = "## Safety"]
14634#[doc = "  * Neon instrinsic unsafe"]
14635#[inline]
14636#[target_feature(enable = "neon")]
14637#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14638#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
14639#[cfg_attr(
14640    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14641    assert_instr(ld1r)
14642)]
14643#[cfg_attr(
14644    not(target_arch = "arm"),
14645    stable(feature = "neon_intrinsics", since = "1.59.0")
14646)]
14647#[cfg_attr(
14648    target_arch = "arm",
14649    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14650)]
14651pub unsafe fn vld1q_dup_s16(ptr: *const i16) -> int16x8_t {
14652    transmute(i16x8::splat(*ptr))
14653}
14654#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
14655#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_s32)"]
14656#[doc = "## Safety"]
14657#[doc = "  * Neon instrinsic unsafe"]
14658#[inline]
14659#[target_feature(enable = "neon")]
14660#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14661#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.32"))]
14662#[cfg_attr(
14663    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14664    assert_instr(ld1r)
14665)]
14666#[cfg_attr(
14667    not(target_arch = "arm"),
14668    stable(feature = "neon_intrinsics", since = "1.59.0")
14669)]
14670#[cfg_attr(
14671    target_arch = "arm",
14672    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14673)]
14674pub unsafe fn vld1q_dup_s32(ptr: *const i32) -> int32x4_t {
14675    transmute(i32x4::splat(*ptr))
14676}
14677#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
14678#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_s64)"]
14679#[doc = "## Safety"]
14680#[doc = "  * Neon instrinsic unsafe"]
14681#[inline]
14682#[target_feature(enable = "neon")]
14683#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14684#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vldr"))]
14685#[cfg_attr(
14686    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14687    assert_instr(ld1r)
14688)]
14689#[cfg_attr(
14690    not(target_arch = "arm"),
14691    stable(feature = "neon_intrinsics", since = "1.59.0")
14692)]
14693#[cfg_attr(
14694    target_arch = "arm",
14695    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14696)]
14697pub unsafe fn vld1q_dup_s64(ptr: *const i64) -> int64x2_t {
14698    transmute(i64x2::splat(*ptr))
14699}
14700#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
14701#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_s8)"]
14702#[doc = "## Safety"]
14703#[doc = "  * Neon instrinsic unsafe"]
14704#[inline]
14705#[target_feature(enable = "neon")]
14706#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14707#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8"))]
14708#[cfg_attr(
14709    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14710    assert_instr(ld1r)
14711)]
14712#[cfg_attr(
14713    not(target_arch = "arm"),
14714    stable(feature = "neon_intrinsics", since = "1.59.0")
14715)]
14716#[cfg_attr(
14717    target_arch = "arm",
14718    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14719)]
14720pub unsafe fn vld1q_dup_s8(ptr: *const i8) -> int8x16_t {
14721    transmute(i8x16::splat(*ptr))
14722}
14723#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
14724#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_u16)"]
14725#[doc = "## Safety"]
14726#[doc = "  * Neon instrinsic unsafe"]
14727#[inline]
14728#[target_feature(enable = "neon")]
14729#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14730#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
14731#[cfg_attr(
14732    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14733    assert_instr(ld1r)
14734)]
14735#[cfg_attr(
14736    not(target_arch = "arm"),
14737    stable(feature = "neon_intrinsics", since = "1.59.0")
14738)]
14739#[cfg_attr(
14740    target_arch = "arm",
14741    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14742)]
14743pub unsafe fn vld1q_dup_u16(ptr: *const u16) -> uint16x8_t {
14744    transmute(u16x8::splat(*ptr))
14745}
14746#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
14747#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_u32)"]
14748#[doc = "## Safety"]
14749#[doc = "  * Neon instrinsic unsafe"]
14750#[inline]
14751#[target_feature(enable = "neon")]
14752#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14753#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.32"))]
14754#[cfg_attr(
14755    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14756    assert_instr(ld1r)
14757)]
14758#[cfg_attr(
14759    not(target_arch = "arm"),
14760    stable(feature = "neon_intrinsics", since = "1.59.0")
14761)]
14762#[cfg_attr(
14763    target_arch = "arm",
14764    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14765)]
14766pub unsafe fn vld1q_dup_u32(ptr: *const u32) -> uint32x4_t {
14767    transmute(u32x4::splat(*ptr))
14768}
14769#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
14770#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_u64)"]
14771#[doc = "## Safety"]
14772#[doc = "  * Neon instrinsic unsafe"]
14773#[inline]
14774#[target_feature(enable = "neon")]
14775#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14776#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vldr"))]
14777#[cfg_attr(
14778    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14779    assert_instr(ld1r)
14780)]
14781#[cfg_attr(
14782    not(target_arch = "arm"),
14783    stable(feature = "neon_intrinsics", since = "1.59.0")
14784)]
14785#[cfg_attr(
14786    target_arch = "arm",
14787    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14788)]
14789pub unsafe fn vld1q_dup_u64(ptr: *const u64) -> uint64x2_t {
14790    transmute(u64x2::splat(*ptr))
14791}
14792#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
14793#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_u8)"]
14794#[doc = "## Safety"]
14795#[doc = "  * Neon instrinsic unsafe"]
14796#[inline]
14797#[target_feature(enable = "neon")]
14798#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14799#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8"))]
14800#[cfg_attr(
14801    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14802    assert_instr(ld1r)
14803)]
14804#[cfg_attr(
14805    not(target_arch = "arm"),
14806    stable(feature = "neon_intrinsics", since = "1.59.0")
14807)]
14808#[cfg_attr(
14809    target_arch = "arm",
14810    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14811)]
14812pub unsafe fn vld1q_dup_u8(ptr: *const u8) -> uint8x16_t {
14813    transmute(u8x16::splat(*ptr))
14814}
14815#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
14816#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_p64)"]
14817#[doc = "## Safety"]
14818#[doc = "  * Neon instrinsic unsafe"]
14819#[inline]
14820#[target_feature(enable = "neon,aes")]
14821#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14822#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr))]
14823#[cfg_attr(
14824    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14825    assert_instr(ldr)
14826)]
14827#[cfg_attr(
14828    not(target_arch = "arm"),
14829    stable(feature = "neon_intrinsics", since = "1.59.0")
14830)]
14831#[cfg_attr(
14832    target_arch = "arm",
14833    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14834)]
14835pub unsafe fn vld1_dup_p64(ptr: *const p64) -> poly64x1_t {
14836    let x: poly64x1_t;
14837    #[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
14838    {
14839        x = crate::core_arch::aarch64::vld1_p64(ptr);
14840    }
14841    #[cfg(target_arch = "arm")]
14842    {
14843        x = crate::core_arch::arm::vld1_p64(ptr);
14844    };
14845    x
14846}
14847#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
14848#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_s64)"]
14849#[doc = "## Safety"]
14850#[doc = "  * Neon instrinsic unsafe"]
14851#[inline]
14852#[target_feature(enable = "neon")]
14853#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14854#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr))]
14855#[cfg_attr(
14856    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14857    assert_instr(ldr)
14858)]
14859#[cfg_attr(
14860    not(target_arch = "arm"),
14861    stable(feature = "neon_intrinsics", since = "1.59.0")
14862)]
14863#[cfg_attr(
14864    target_arch = "arm",
14865    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14866)]
14867pub unsafe fn vld1_dup_s64(ptr: *const i64) -> int64x1_t {
14868    let x: int64x1_t;
14869    #[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
14870    {
14871        x = crate::core_arch::aarch64::vld1_s64(ptr);
14872    }
14873    #[cfg(target_arch = "arm")]
14874    {
14875        x = crate::core_arch::arm::vld1_s64(ptr);
14876    };
14877    x
14878}
14879#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
14880#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_u64)"]
14881#[doc = "## Safety"]
14882#[doc = "  * Neon instrinsic unsafe"]
14883#[inline]
14884#[target_feature(enable = "neon")]
14885#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14886#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr))]
14887#[cfg_attr(
14888    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14889    assert_instr(ldr)
14890)]
14891#[cfg_attr(
14892    not(target_arch = "arm"),
14893    stable(feature = "neon_intrinsics", since = "1.59.0")
14894)]
14895#[cfg_attr(
14896    target_arch = "arm",
14897    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14898)]
14899pub unsafe fn vld1_dup_u64(ptr: *const u64) -> uint64x1_t {
14900    let x: uint64x1_t;
14901    #[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
14902    {
14903        x = crate::core_arch::aarch64::vld1_u64(ptr);
14904    }
14905    #[cfg(target_arch = "arm")]
14906    {
14907        x = crate::core_arch::arm::vld1_u64(ptr);
14908    };
14909    x
14910}
14911#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
14912#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_f16)"]
14913#[doc = "## Safety"]
14914#[doc = "  * Neon instrinsic unsafe"]
14915#[inline]
14916#[cfg(target_endian = "little")]
14917#[cfg(target_arch = "arm")]
14918#[target_feature(enable = "neon,v7")]
14919#[target_feature(enable = "neon,fp16")]
14920#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
14921#[cfg(not(target_arch = "arm64ec"))]
14922#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
14923pub unsafe fn vld1_f16(ptr: *const f16) -> float16x4_t {
14924    transmute(vld1_v4f16(
14925        ptr as *const i8,
14926        crate::mem::align_of::<f16>() as i32,
14927    ))
14928}
14929#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
14930#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_f16)"]
14931#[doc = "## Safety"]
14932#[doc = "  * Neon instrinsic unsafe"]
14933#[inline]
14934#[cfg(target_endian = "big")]
14935#[cfg(target_arch = "arm")]
14936#[target_feature(enable = "neon,v7")]
14937#[target_feature(enable = "neon,fp16")]
14938#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
14939#[cfg(not(target_arch = "arm64ec"))]
14940#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
14941pub unsafe fn vld1_f16(ptr: *const f16) -> float16x4_t {
14942    let ret_val: float16x4_t = transmute(vld1_v4f16(
14943        ptr as *const i8,
14944        crate::mem::align_of::<f16>() as i32,
14945    ));
14946    simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
14947}
14948#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
14949#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_f16)"]
14950#[doc = "## Safety"]
14951#[doc = "  * Neon instrinsic unsafe"]
14952#[inline]
14953#[cfg(target_endian = "little")]
14954#[cfg(target_arch = "arm")]
14955#[target_feature(enable = "neon,v7")]
14956#[target_feature(enable = "neon,fp16")]
14957#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
14958#[cfg(not(target_arch = "arm64ec"))]
14959#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
14960pub unsafe fn vld1q_f16(ptr: *const f16) -> float16x8_t {
14961    transmute(vld1q_v8f16(
14962        ptr as *const i8,
14963        crate::mem::align_of::<f16>() as i32,
14964    ))
14965}
14966#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
14967#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_f16)"]
14968#[doc = "## Safety"]
14969#[doc = "  * Neon instrinsic unsafe"]
14970#[inline]
14971#[cfg(target_endian = "big")]
14972#[cfg(target_arch = "arm")]
14973#[target_feature(enable = "neon,v7")]
14974#[target_feature(enable = "neon,fp16")]
14975#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
14976#[cfg(not(target_arch = "arm64ec"))]
14977#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
14978pub unsafe fn vld1q_f16(ptr: *const f16) -> float16x8_t {
14979    let ret_val: float16x8_t = transmute(vld1q_v8f16(
14980        ptr as *const i8,
14981        crate::mem::align_of::<f16>() as i32,
14982    ));
14983    simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
14984}
14985#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
14986#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_f16_x2)"]
14987#[doc = "## Safety"]
14988#[doc = "  * Neon instrinsic unsafe"]
14989#[inline]
14990#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14991#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
14992#[cfg_attr(
14993    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14994    assert_instr(ld1)
14995)]
14996#[target_feature(enable = "neon,fp16")]
14997#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
14998#[cfg(not(target_arch = "arm64ec"))]
14999pub unsafe fn vld1_f16_x2(a: *const f16) -> float16x4x2_t {
15000    unsafe extern "unadjusted" {
15001        #[cfg_attr(
15002            any(target_arch = "aarch64", target_arch = "arm64ec"),
15003            link_name = "llvm.aarch64.neon.ld1x2.v4f16.p0"
15004        )]
15005        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x2.v4f16.p0")]
15006        fn _vld1_f16_x2(a: *const f16) -> float16x4x2_t;
15007    }
15008    _vld1_f16_x2(a)
15009}
15010#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
15011#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_f16_x3)"]
15012#[doc = "## Safety"]
15013#[doc = "  * Neon instrinsic unsafe"]
15014#[inline]
15015#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15016#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
15017#[cfg_attr(
15018    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15019    assert_instr(ld1)
15020)]
15021#[target_feature(enable = "neon,fp16")]
15022#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
15023#[cfg(not(target_arch = "arm64ec"))]
15024pub unsafe fn vld1_f16_x3(a: *const f16) -> float16x4x3_t {
15025    unsafe extern "unadjusted" {
15026        #[cfg_attr(
15027            any(target_arch = "aarch64", target_arch = "arm64ec"),
15028            link_name = "llvm.aarch64.neon.ld1x3.v4f16.p0"
15029        )]
15030        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x3.v4f16.p0")]
15031        fn _vld1_f16_x3(a: *const f16) -> float16x4x3_t;
15032    }
15033    _vld1_f16_x3(a)
15034}
15035#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
15036#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_f16_x4)"]
15037#[doc = "## Safety"]
15038#[doc = "  * Neon instrinsic unsafe"]
15039#[inline]
15040#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15041#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
15042#[cfg_attr(
15043    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15044    assert_instr(ld1)
15045)]
15046#[target_feature(enable = "neon,fp16")]
15047#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
15048#[cfg(not(target_arch = "arm64ec"))]
15049pub unsafe fn vld1_f16_x4(a: *const f16) -> float16x4x4_t {
15050    unsafe extern "unadjusted" {
15051        #[cfg_attr(
15052            any(target_arch = "aarch64", target_arch = "arm64ec"),
15053            link_name = "llvm.aarch64.neon.ld1x4.v4f16.p0"
15054        )]
15055        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x4.v4f16.p0")]
15056        fn _vld1_f16_x4(a: *const f16) -> float16x4x4_t;
15057    }
15058    _vld1_f16_x4(a)
15059}
15060#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
15061#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_f16_x2)"]
15062#[doc = "## Safety"]
15063#[doc = "  * Neon instrinsic unsafe"]
15064#[inline]
15065#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15066#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
15067#[cfg_attr(
15068    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15069    assert_instr(ld1)
15070)]
15071#[target_feature(enable = "neon,fp16")]
15072#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
15073#[cfg(not(target_arch = "arm64ec"))]
15074pub unsafe fn vld1q_f16_x2(a: *const f16) -> float16x8x2_t {
15075    unsafe extern "unadjusted" {
15076        #[cfg_attr(
15077            any(target_arch = "aarch64", target_arch = "arm64ec"),
15078            link_name = "llvm.aarch64.neon.ld1x2.v8f16.p0"
15079        )]
15080        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x2.v8f16.p0")]
15081        fn _vld1q_f16_x2(a: *const f16) -> float16x8x2_t;
15082    }
15083    _vld1q_f16_x2(a)
15084}
15085#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
15086#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_f16_x3)"]
15087#[doc = "## Safety"]
15088#[doc = "  * Neon instrinsic unsafe"]
15089#[inline]
15090#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15091#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
15092#[cfg_attr(
15093    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15094    assert_instr(ld1)
15095)]
15096#[target_feature(enable = "neon,fp16")]
15097#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
15098#[cfg(not(target_arch = "arm64ec"))]
15099pub unsafe fn vld1q_f16_x3(a: *const f16) -> float16x8x3_t {
15100    unsafe extern "unadjusted" {
15101        #[cfg_attr(
15102            any(target_arch = "aarch64", target_arch = "arm64ec"),
15103            link_name = "llvm.aarch64.neon.ld1x3.v8f16.p0"
15104        )]
15105        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x3.v8f16.p0")]
15106        fn _vld1q_f16_x3(a: *const f16) -> float16x8x3_t;
15107    }
15108    _vld1q_f16_x3(a)
15109}
15110#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
15111#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_f16_x4)"]
15112#[doc = "## Safety"]
15113#[doc = "  * Neon instrinsic unsafe"]
15114#[inline]
15115#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15116#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
15117#[cfg_attr(
15118    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15119    assert_instr(ld1)
15120)]
15121#[target_feature(enable = "neon,fp16")]
15122#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
15123#[cfg(not(target_arch = "arm64ec"))]
15124pub unsafe fn vld1q_f16_x4(a: *const f16) -> float16x8x4_t {
15125    unsafe extern "unadjusted" {
15126        #[cfg_attr(
15127            any(target_arch = "aarch64", target_arch = "arm64ec"),
15128            link_name = "llvm.aarch64.neon.ld1x4.v8f16.p0"
15129        )]
15130        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x4.v8f16.p0")]
15131        fn _vld1q_f16_x4(a: *const f16) -> float16x8x4_t;
15132    }
15133    _vld1q_f16_x4(a)
15134}
15135#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15136#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_f32)"]
15137#[doc = "## Safety"]
15138#[doc = "  * Neon instrinsic unsafe"]
15139#[inline]
15140#[cfg(target_endian = "little")]
15141#[cfg(target_arch = "arm")]
15142#[target_feature(enable = "neon,v7")]
15143#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15144#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr))]
15145pub unsafe fn vld1_f32(ptr: *const f32) -> float32x2_t {
15146    transmute(vld1_v2f32(
15147        ptr as *const i8,
15148        crate::mem::align_of::<f32>() as i32,
15149    ))
15150}
15151#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15152#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_f32)"]
15153#[doc = "## Safety"]
15154#[doc = "  * Neon instrinsic unsafe"]
15155#[inline]
15156#[cfg(target_endian = "big")]
15157#[cfg(target_arch = "arm")]
15158#[target_feature(enable = "neon,v7")]
15159#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15160#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr))]
15161pub unsafe fn vld1_f32(ptr: *const f32) -> float32x2_t {
15162    let ret_val: float32x2_t = transmute(vld1_v2f32(
15163        ptr as *const i8,
15164        crate::mem::align_of::<f32>() as i32,
15165    ));
15166    simd_shuffle!(ret_val, ret_val, [1, 0])
15167}
15168#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15169#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_f32)"]
15170#[doc = "## Safety"]
15171#[doc = "  * Neon instrinsic unsafe"]
15172#[inline]
15173#[cfg(target_endian = "little")]
15174#[cfg(target_arch = "arm")]
15175#[target_feature(enable = "neon,v7")]
15176#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15177#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.32"))]
15178pub unsafe fn vld1q_f32(ptr: *const f32) -> float32x4_t {
15179    transmute(vld1q_v4f32(
15180        ptr as *const i8,
15181        crate::mem::align_of::<f32>() as i32,
15182    ))
15183}
15184#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15185#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_f32)"]
15186#[doc = "## Safety"]
15187#[doc = "  * Neon instrinsic unsafe"]
15188#[inline]
15189#[cfg(target_endian = "big")]
15190#[cfg(target_arch = "arm")]
15191#[target_feature(enable = "neon,v7")]
15192#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15193#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.32"))]
15194pub unsafe fn vld1q_f32(ptr: *const f32) -> float32x4_t {
15195    let ret_val: float32x4_t = transmute(vld1q_v4f32(
15196        ptr as *const i8,
15197        crate::mem::align_of::<f32>() as i32,
15198    ));
15199    simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
15200}
15201#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15202#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u8)"]
15203#[doc = "## Safety"]
15204#[doc = "  * Neon instrinsic unsafe"]
15205#[inline]
15206#[cfg(target_endian = "little")]
15207#[cfg(target_arch = "arm")]
15208#[target_feature(enable = "neon,v7")]
15209#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15210#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8"))]
15211pub unsafe fn vld1_u8(ptr: *const u8) -> uint8x8_t {
15212    transmute(vld1_v8i8(
15213        ptr as *const i8,
15214        crate::mem::align_of::<u8>() as i32,
15215    ))
15216}
15217#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15218#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u8)"]
15219#[doc = "## Safety"]
15220#[doc = "  * Neon instrinsic unsafe"]
15221#[inline]
15222#[cfg(target_endian = "big")]
15223#[cfg(target_arch = "arm")]
15224#[target_feature(enable = "neon,v7")]
15225#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15226#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8"))]
15227pub unsafe fn vld1_u8(ptr: *const u8) -> uint8x8_t {
15228    let ret_val: uint8x8_t = transmute(vld1_v8i8(
15229        ptr as *const i8,
15230        crate::mem::align_of::<u8>() as i32,
15231    ));
15232    simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
15233}
15234#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15235#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u8)"]
15236#[doc = "## Safety"]
15237#[doc = "  * Neon instrinsic unsafe"]
15238#[inline]
15239#[cfg(target_endian = "little")]
15240#[cfg(target_arch = "arm")]
15241#[target_feature(enable = "neon,v7")]
15242#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15243#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8"))]
15244pub unsafe fn vld1q_u8(ptr: *const u8) -> uint8x16_t {
15245    transmute(vld1q_v16i8(
15246        ptr as *const i8,
15247        crate::mem::align_of::<u8>() as i32,
15248    ))
15249}
15250#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15251#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u8)"]
15252#[doc = "## Safety"]
15253#[doc = "  * Neon instrinsic unsafe"]
15254#[inline]
15255#[cfg(target_endian = "big")]
15256#[cfg(target_arch = "arm")]
15257#[target_feature(enable = "neon,v7")]
15258#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15259#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8"))]
15260pub unsafe fn vld1q_u8(ptr: *const u8) -> uint8x16_t {
15261    let ret_val: uint8x16_t = transmute(vld1q_v16i8(
15262        ptr as *const i8,
15263        crate::mem::align_of::<u8>() as i32,
15264    ));
15265    simd_shuffle!(
15266        ret_val,
15267        ret_val,
15268        [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
15269    )
15270}
15271#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15272#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u16)"]
15273#[doc = "## Safety"]
15274#[doc = "  * Neon instrinsic unsafe"]
15275#[inline]
15276#[cfg(target_endian = "little")]
15277#[cfg(target_arch = "arm")]
15278#[target_feature(enable = "neon,v7")]
15279#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15280#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
15281pub unsafe fn vld1_u16(ptr: *const u16) -> uint16x4_t {
15282    transmute(vld1_v4i16(
15283        ptr as *const i8,
15284        crate::mem::align_of::<u16>() as i32,
15285    ))
15286}
15287#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15288#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u16)"]
15289#[doc = "## Safety"]
15290#[doc = "  * Neon instrinsic unsafe"]
15291#[inline]
15292#[cfg(target_endian = "big")]
15293#[cfg(target_arch = "arm")]
15294#[target_feature(enable = "neon,v7")]
15295#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15296#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
15297pub unsafe fn vld1_u16(ptr: *const u16) -> uint16x4_t {
15298    let ret_val: uint16x4_t = transmute(vld1_v4i16(
15299        ptr as *const i8,
15300        crate::mem::align_of::<u16>() as i32,
15301    ));
15302    simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
15303}
15304#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15305#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u16)"]
15306#[doc = "## Safety"]
15307#[doc = "  * Neon instrinsic unsafe"]
15308#[inline]
15309#[cfg(target_endian = "little")]
15310#[cfg(target_arch = "arm")]
15311#[target_feature(enable = "neon,v7")]
15312#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15313#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
15314pub unsafe fn vld1q_u16(ptr: *const u16) -> uint16x8_t {
15315    transmute(vld1q_v8i16(
15316        ptr as *const i8,
15317        crate::mem::align_of::<u16>() as i32,
15318    ))
15319}
15320#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15321#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u16)"]
15322#[doc = "## Safety"]
15323#[doc = "  * Neon instrinsic unsafe"]
15324#[inline]
15325#[cfg(target_endian = "big")]
15326#[cfg(target_arch = "arm")]
15327#[target_feature(enable = "neon,v7")]
15328#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15329#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
15330pub unsafe fn vld1q_u16(ptr: *const u16) -> uint16x8_t {
15331    let ret_val: uint16x8_t = transmute(vld1q_v8i16(
15332        ptr as *const i8,
15333        crate::mem::align_of::<u16>() as i32,
15334    ));
15335    simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
15336}
15337#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15338#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u32)"]
15339#[doc = "## Safety"]
15340#[doc = "  * Neon instrinsic unsafe"]
15341#[inline]
15342#[cfg(target_endian = "little")]
15343#[cfg(target_arch = "arm")]
15344#[target_feature(enable = "neon,v7")]
15345#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15346#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr))]
15347pub unsafe fn vld1_u32(ptr: *const u32) -> uint32x2_t {
15348    transmute(vld1_v2i32(
15349        ptr as *const i8,
15350        crate::mem::align_of::<u32>() as i32,
15351    ))
15352}
15353#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15354#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u32)"]
15355#[doc = "## Safety"]
15356#[doc = "  * Neon instrinsic unsafe"]
15357#[inline]
15358#[cfg(target_endian = "big")]
15359#[cfg(target_arch = "arm")]
15360#[target_feature(enable = "neon,v7")]
15361#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15362#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr))]
15363pub unsafe fn vld1_u32(ptr: *const u32) -> uint32x2_t {
15364    let ret_val: uint32x2_t = transmute(vld1_v2i32(
15365        ptr as *const i8,
15366        crate::mem::align_of::<u32>() as i32,
15367    ));
15368    simd_shuffle!(ret_val, ret_val, [1, 0])
15369}
15370#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15371#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u32)"]
15372#[doc = "## Safety"]
15373#[doc = "  * Neon instrinsic unsafe"]
15374#[inline]
15375#[cfg(target_endian = "little")]
15376#[cfg(target_arch = "arm")]
15377#[target_feature(enable = "neon,v7")]
15378#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15379#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.32"))]
15380pub unsafe fn vld1q_u32(ptr: *const u32) -> uint32x4_t {
15381    transmute(vld1q_v4i32(
15382        ptr as *const i8,
15383        crate::mem::align_of::<u32>() as i32,
15384    ))
15385}
15386#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15387#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u32)"]
15388#[doc = "## Safety"]
15389#[doc = "  * Neon instrinsic unsafe"]
15390#[inline]
15391#[cfg(target_endian = "big")]
15392#[cfg(target_arch = "arm")]
15393#[target_feature(enable = "neon,v7")]
15394#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15395#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.32"))]
15396pub unsafe fn vld1q_u32(ptr: *const u32) -> uint32x4_t {
15397    let ret_val: uint32x4_t = transmute(vld1q_v4i32(
15398        ptr as *const i8,
15399        crate::mem::align_of::<u32>() as i32,
15400    ));
15401    simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
15402}
15403#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15404#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u64)"]
15405#[doc = "## Safety"]
15406#[doc = "  * Neon instrinsic unsafe"]
15407#[inline]
15408#[cfg(target_arch = "arm")]
15409#[target_feature(enable = "neon,v7")]
15410#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15411#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr))]
15412pub unsafe fn vld1_u64(ptr: *const u64) -> uint64x1_t {
15413    transmute(vld1_v1i64(
15414        ptr as *const i8,
15415        crate::mem::align_of::<u64>() as i32,
15416    ))
15417}
15418#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15419#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u64)"]
15420#[doc = "## Safety"]
15421#[doc = "  * Neon instrinsic unsafe"]
15422#[inline]
15423#[cfg(target_endian = "little")]
15424#[cfg(target_arch = "arm")]
15425#[target_feature(enable = "neon,v7")]
15426#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15427#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.64"))]
15428pub unsafe fn vld1q_u64(ptr: *const u64) -> uint64x2_t {
15429    transmute(vld1q_v2i64(
15430        ptr as *const i8,
15431        crate::mem::align_of::<u64>() as i32,
15432    ))
15433}
15434#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15435#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u64)"]
15436#[doc = "## Safety"]
15437#[doc = "  * Neon instrinsic unsafe"]
15438#[inline]
15439#[cfg(target_endian = "big")]
15440#[cfg(target_arch = "arm")]
15441#[target_feature(enable = "neon,v7")]
15442#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15443#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.64"))]
15444pub unsafe fn vld1q_u64(ptr: *const u64) -> uint64x2_t {
15445    let ret_val: uint64x2_t = transmute(vld1q_v2i64(
15446        ptr as *const i8,
15447        crate::mem::align_of::<u64>() as i32,
15448    ));
15449    simd_shuffle!(ret_val, ret_val, [1, 0])
15450}
15451#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15452#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p8)"]
15453#[doc = "## Safety"]
15454#[doc = "  * Neon instrinsic unsafe"]
15455#[inline]
15456#[cfg(target_endian = "little")]
15457#[cfg(target_arch = "arm")]
15458#[target_feature(enable = "neon,v7")]
15459#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15460#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8"))]
15461pub unsafe fn vld1_p8(ptr: *const p8) -> poly8x8_t {
15462    transmute(vld1_v8i8(
15463        ptr as *const i8,
15464        crate::mem::align_of::<p8>() as i32,
15465    ))
15466}
15467#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15468#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p8)"]
15469#[doc = "## Safety"]
15470#[doc = "  * Neon instrinsic unsafe"]
15471#[inline]
15472#[cfg(target_endian = "big")]
15473#[cfg(target_arch = "arm")]
15474#[target_feature(enable = "neon,v7")]
15475#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15476#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8"))]
15477pub unsafe fn vld1_p8(ptr: *const p8) -> poly8x8_t {
15478    let ret_val: poly8x8_t = transmute(vld1_v8i8(
15479        ptr as *const i8,
15480        crate::mem::align_of::<p8>() as i32,
15481    ));
15482    simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
15483}
15484#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15485#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p8)"]
15486#[doc = "## Safety"]
15487#[doc = "  * Neon instrinsic unsafe"]
15488#[inline]
15489#[cfg(target_endian = "little")]
15490#[cfg(target_arch = "arm")]
15491#[target_feature(enable = "neon,v7")]
15492#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15493#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8"))]
15494pub unsafe fn vld1q_p8(ptr: *const p8) -> poly8x16_t {
15495    transmute(vld1q_v16i8(
15496        ptr as *const i8,
15497        crate::mem::align_of::<p8>() as i32,
15498    ))
15499}
15500#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15501#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p8)"]
15502#[doc = "## Safety"]
15503#[doc = "  * Neon instrinsic unsafe"]
15504#[inline]
15505#[cfg(target_endian = "big")]
15506#[cfg(target_arch = "arm")]
15507#[target_feature(enable = "neon,v7")]
15508#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15509#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8"))]
15510pub unsafe fn vld1q_p8(ptr: *const p8) -> poly8x16_t {
15511    let ret_val: poly8x16_t = transmute(vld1q_v16i8(
15512        ptr as *const i8,
15513        crate::mem::align_of::<p8>() as i32,
15514    ));
15515    simd_shuffle!(
15516        ret_val,
15517        ret_val,
15518        [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
15519    )
15520}
15521#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15522#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p16)"]
15523#[doc = "## Safety"]
15524#[doc = "  * Neon instrinsic unsafe"]
15525#[inline]
15526#[cfg(target_endian = "little")]
15527#[cfg(target_arch = "arm")]
15528#[target_feature(enable = "neon,v7")]
15529#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15530#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
15531pub unsafe fn vld1_p16(ptr: *const p16) -> poly16x4_t {
15532    transmute(vld1_v4i16(
15533        ptr as *const i8,
15534        crate::mem::align_of::<p16>() as i32,
15535    ))
15536}
15537#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15538#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p16)"]
15539#[doc = "## Safety"]
15540#[doc = "  * Neon instrinsic unsafe"]
15541#[inline]
15542#[cfg(target_endian = "big")]
15543#[cfg(target_arch = "arm")]
15544#[target_feature(enable = "neon,v7")]
15545#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15546#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
15547pub unsafe fn vld1_p16(ptr: *const p16) -> poly16x4_t {
15548    let ret_val: poly16x4_t = transmute(vld1_v4i16(
15549        ptr as *const i8,
15550        crate::mem::align_of::<p16>() as i32,
15551    ));
15552    simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
15553}
15554#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15555#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p16)"]
15556#[doc = "## Safety"]
15557#[doc = "  * Neon instrinsic unsafe"]
15558#[inline]
15559#[cfg(target_endian = "little")]
15560#[cfg(target_arch = "arm")]
15561#[target_feature(enable = "neon,v7")]
15562#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15563#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
15564pub unsafe fn vld1q_p16(ptr: *const p16) -> poly16x8_t {
15565    transmute(vld1q_v8i16(
15566        ptr as *const i8,
15567        crate::mem::align_of::<p16>() as i32,
15568    ))
15569}
15570#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15571#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p16)"]
15572#[doc = "## Safety"]
15573#[doc = "  * Neon instrinsic unsafe"]
15574#[inline]
15575#[cfg(target_endian = "big")]
15576#[cfg(target_arch = "arm")]
15577#[target_feature(enable = "neon,v7")]
15578#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15579#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
15580pub unsafe fn vld1q_p16(ptr: *const p16) -> poly16x8_t {
15581    let ret_val: poly16x8_t = transmute(vld1q_v8i16(
15582        ptr as *const i8,
15583        crate::mem::align_of::<p16>() as i32,
15584    ));
15585    simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
15586}
15587#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15588#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p64)"]
15589#[doc = "## Safety"]
15590#[doc = "  * Neon instrinsic unsafe"]
15591#[inline]
15592#[cfg(target_endian = "little")]
15593#[cfg(target_arch = "arm")]
15594#[target_feature(enable = "neon,aes")]
15595#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15596#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.64"))]
15597pub unsafe fn vld1q_p64(ptr: *const p64) -> poly64x2_t {
15598    transmute(vld1q_v2i64(
15599        ptr as *const i8,
15600        crate::mem::align_of::<p64>() as i32,
15601    ))
15602}
15603#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15604#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p64)"]
15605#[doc = "## Safety"]
15606#[doc = "  * Neon instrinsic unsafe"]
15607#[inline]
15608#[cfg(target_endian = "big")]
15609#[cfg(target_arch = "arm")]
15610#[target_feature(enable = "neon,aes")]
15611#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15612#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.64"))]
15613pub unsafe fn vld1q_p64(ptr: *const p64) -> poly64x2_t {
15614    let ret_val: poly64x2_t = transmute(vld1q_v2i64(
15615        ptr as *const i8,
15616        crate::mem::align_of::<p64>() as i32,
15617    ));
15618    simd_shuffle!(ret_val, ret_val, [1, 0])
15619}
15620#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
15621#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_f32_x2)"]
15622#[doc = "## Safety"]
15623#[doc = "  * Neon instrinsic unsafe"]
15624#[inline]
15625#[target_feature(enable = "neon")]
15626#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15627#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
15628#[cfg_attr(
15629    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15630    assert_instr(ld1)
15631)]
15632#[cfg_attr(
15633    not(target_arch = "arm"),
15634    stable(feature = "neon_intrinsics", since = "1.59.0")
15635)]
15636#[cfg_attr(
15637    target_arch = "arm",
15638    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15639)]
15640pub unsafe fn vld1_f32_x2(a: *const f32) -> float32x2x2_t {
15641    unsafe extern "unadjusted" {
15642        #[cfg_attr(
15643            any(target_arch = "aarch64", target_arch = "arm64ec"),
15644            link_name = "llvm.aarch64.neon.ld1x2.v2f32.p0"
15645        )]
15646        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x2.v2f32.p0")]
15647        fn _vld1_f32_x2(a: *const f32) -> float32x2x2_t;
15648    }
15649    _vld1_f32_x2(a)
15650}
15651#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
15652#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_f32_x3)"]
15653#[doc = "## Safety"]
15654#[doc = "  * Neon instrinsic unsafe"]
15655#[inline]
15656#[target_feature(enable = "neon")]
15657#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15658#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
15659#[cfg_attr(
15660    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15661    assert_instr(ld1)
15662)]
15663#[cfg_attr(
15664    not(target_arch = "arm"),
15665    stable(feature = "neon_intrinsics", since = "1.59.0")
15666)]
15667#[cfg_attr(
15668    target_arch = "arm",
15669    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15670)]
15671pub unsafe fn vld1_f32_x3(a: *const f32) -> float32x2x3_t {
15672    unsafe extern "unadjusted" {
15673        #[cfg_attr(
15674            any(target_arch = "aarch64", target_arch = "arm64ec"),
15675            link_name = "llvm.aarch64.neon.ld1x3.v2f32.p0"
15676        )]
15677        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x3.v2f32.p0")]
15678        fn _vld1_f32_x3(a: *const f32) -> float32x2x3_t;
15679    }
15680    _vld1_f32_x3(a)
15681}
15682#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
15683#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_f32_x4)"]
15684#[doc = "## Safety"]
15685#[doc = "  * Neon instrinsic unsafe"]
15686#[inline]
15687#[target_feature(enable = "neon")]
15688#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15689#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
15690#[cfg_attr(
15691    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15692    assert_instr(ld1)
15693)]
15694#[cfg_attr(
15695    not(target_arch = "arm"),
15696    stable(feature = "neon_intrinsics", since = "1.59.0")
15697)]
15698#[cfg_attr(
15699    target_arch = "arm",
15700    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15701)]
15702pub unsafe fn vld1_f32_x4(a: *const f32) -> float32x2x4_t {
15703    unsafe extern "unadjusted" {
15704        #[cfg_attr(
15705            any(target_arch = "aarch64", target_arch = "arm64ec"),
15706            link_name = "llvm.aarch64.neon.ld1x4.v2f32.p0"
15707        )]
15708        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x4.v2f32.p0")]
15709        fn _vld1_f32_x4(a: *const f32) -> float32x2x4_t;
15710    }
15711    _vld1_f32_x4(a)
15712}
15713#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
15714#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_f32_x2)"]
15715#[doc = "## Safety"]
15716#[doc = "  * Neon instrinsic unsafe"]
15717#[inline]
15718#[target_feature(enable = "neon")]
15719#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15720#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
15721#[cfg_attr(
15722    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15723    assert_instr(ld1)
15724)]
15725#[cfg_attr(
15726    not(target_arch = "arm"),
15727    stable(feature = "neon_intrinsics", since = "1.59.0")
15728)]
15729#[cfg_attr(
15730    target_arch = "arm",
15731    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15732)]
15733pub unsafe fn vld1q_f32_x2(a: *const f32) -> float32x4x2_t {
15734    unsafe extern "unadjusted" {
15735        #[cfg_attr(
15736            any(target_arch = "aarch64", target_arch = "arm64ec"),
15737            link_name = "llvm.aarch64.neon.ld1x2.v4f32.p0"
15738        )]
15739        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x2.v4f32.p0")]
15740        fn _vld1q_f32_x2(a: *const f32) -> float32x4x2_t;
15741    }
15742    _vld1q_f32_x2(a)
15743}
15744#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
15745#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_f32_x3)"]
15746#[doc = "## Safety"]
15747#[doc = "  * Neon instrinsic unsafe"]
15748#[inline]
15749#[target_feature(enable = "neon")]
15750#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15751#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
15752#[cfg_attr(
15753    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15754    assert_instr(ld1)
15755)]
15756#[cfg_attr(
15757    not(target_arch = "arm"),
15758    stable(feature = "neon_intrinsics", since = "1.59.0")
15759)]
15760#[cfg_attr(
15761    target_arch = "arm",
15762    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15763)]
15764pub unsafe fn vld1q_f32_x3(a: *const f32) -> float32x4x3_t {
15765    unsafe extern "unadjusted" {
15766        #[cfg_attr(
15767            any(target_arch = "aarch64", target_arch = "arm64ec"),
15768            link_name = "llvm.aarch64.neon.ld1x3.v4f32.p0"
15769        )]
15770        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x3.v4f32.p0")]
15771        fn _vld1q_f32_x3(a: *const f32) -> float32x4x3_t;
15772    }
15773    _vld1q_f32_x3(a)
15774}
15775#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
15776#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_f32_x4)"]
15777#[doc = "## Safety"]
15778#[doc = "  * Neon instrinsic unsafe"]
15779#[inline]
15780#[target_feature(enable = "neon")]
15781#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15782#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
15783#[cfg_attr(
15784    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15785    assert_instr(ld1)
15786)]
15787#[cfg_attr(
15788    not(target_arch = "arm"),
15789    stable(feature = "neon_intrinsics", since = "1.59.0")
15790)]
15791#[cfg_attr(
15792    target_arch = "arm",
15793    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15794)]
15795pub unsafe fn vld1q_f32_x4(a: *const f32) -> float32x4x4_t {
15796    unsafe extern "unadjusted" {
15797        #[cfg_attr(
15798            any(target_arch = "aarch64", target_arch = "arm64ec"),
15799            link_name = "llvm.aarch64.neon.ld1x4.v4f32.p0"
15800        )]
15801        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x4.v4f32.p0")]
15802        fn _vld1q_f32_x4(a: *const f32) -> float32x4x4_t;
15803    }
15804    _vld1q_f32_x4(a)
15805}
15806#[doc = "Load one single-element structure to one lane of one register"]
15807#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_lane_f16)"]
15808#[doc = "## Safety"]
15809#[doc = "  * Neon instrinsic unsafe"]
15810#[inline]
15811#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15812#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1, LANE = 0))]
15813#[cfg_attr(
15814    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15815    assert_instr(ld1, LANE = 0)
15816)]
15817#[rustc_legacy_const_generics(2)]
15818#[target_feature(enable = "neon,fp16")]
15819#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
15820#[cfg(not(target_arch = "arm64ec"))]
15821pub unsafe fn vld1_lane_f16<const LANE: i32>(ptr: *const f16, src: float16x4_t) -> float16x4_t {
15822    static_assert_uimm_bits!(LANE, 2);
15823    simd_insert!(src, LANE as u32, *ptr)
15824}
15825#[doc = "Load one single-element structure to one lane of one register"]
15826#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_lane_f16)"]
15827#[doc = "## Safety"]
15828#[doc = "  * Neon instrinsic unsafe"]
15829#[inline]
15830#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15831#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1, LANE = 0))]
15832#[cfg_attr(
15833    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15834    assert_instr(ld1, LANE = 0)
15835)]
15836#[rustc_legacy_const_generics(2)]
15837#[target_feature(enable = "neon,fp16")]
15838#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
15839#[cfg(not(target_arch = "arm64ec"))]
15840pub unsafe fn vld1q_lane_f16<const LANE: i32>(ptr: *const f16, src: float16x8_t) -> float16x8_t {
15841    static_assert_uimm_bits!(LANE, 3);
15842    simd_insert!(src, LANE as u32, *ptr)
15843}
15844#[doc = "Load one single-element structure to one lane of one register."]
15845#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_lane_f32)"]
15846#[doc = "## Safety"]
15847#[doc = "  * Neon instrinsic unsafe"]
15848#[inline]
15849#[target_feature(enable = "neon")]
15850#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15851#[rustc_legacy_const_generics(2)]
15852#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.32", LANE = 1))]
15853#[cfg_attr(
15854    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15855    assert_instr(ld1, LANE = 1)
15856)]
15857#[cfg_attr(
15858    not(target_arch = "arm"),
15859    stable(feature = "neon_intrinsics", since = "1.59.0")
15860)]
15861#[cfg_attr(
15862    target_arch = "arm",
15863    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15864)]
15865pub unsafe fn vld1_lane_f32<const LANE: i32>(ptr: *const f32, src: float32x2_t) -> float32x2_t {
15866    static_assert_uimm_bits!(LANE, 1);
15867    simd_insert!(src, LANE as u32, *ptr)
15868}
15869#[doc = "Load one single-element structure to one lane of one register."]
15870#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_lane_p16)"]
15871#[doc = "## Safety"]
15872#[doc = "  * Neon instrinsic unsafe"]
15873#[inline]
15874#[target_feature(enable = "neon")]
15875#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15876#[rustc_legacy_const_generics(2)]
15877#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16", LANE = 3))]
15878#[cfg_attr(
15879    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15880    assert_instr(ld1, LANE = 3)
15881)]
15882#[cfg_attr(
15883    not(target_arch = "arm"),
15884    stable(feature = "neon_intrinsics", since = "1.59.0")
15885)]
15886#[cfg_attr(
15887    target_arch = "arm",
15888    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15889)]
15890pub unsafe fn vld1_lane_p16<const LANE: i32>(ptr: *const p16, src: poly16x4_t) -> poly16x4_t {
15891    static_assert_uimm_bits!(LANE, 2);
15892    simd_insert!(src, LANE as u32, *ptr)
15893}
15894#[doc = "Load one single-element structure to one lane of one register."]
15895#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_lane_p8)"]
15896#[doc = "## Safety"]
15897#[doc = "  * Neon instrinsic unsafe"]
15898#[inline]
15899#[target_feature(enable = "neon")]
15900#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15901#[rustc_legacy_const_generics(2)]
15902#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8", LANE = 7))]
15903#[cfg_attr(
15904    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15905    assert_instr(ld1, LANE = 7)
15906)]
15907#[cfg_attr(
15908    not(target_arch = "arm"),
15909    stable(feature = "neon_intrinsics", since = "1.59.0")
15910)]
15911#[cfg_attr(
15912    target_arch = "arm",
15913    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15914)]
15915pub unsafe fn vld1_lane_p8<const LANE: i32>(ptr: *const p8, src: poly8x8_t) -> poly8x8_t {
15916    static_assert_uimm_bits!(LANE, 3);
15917    simd_insert!(src, LANE as u32, *ptr)
15918}
15919#[doc = "Load one single-element structure to one lane of one register."]
15920#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_lane_s16)"]
15921#[doc = "## Safety"]
15922#[doc = "  * Neon instrinsic unsafe"]
15923#[inline]
15924#[target_feature(enable = "neon")]
15925#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15926#[rustc_legacy_const_generics(2)]
15927#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16", LANE = 3))]
15928#[cfg_attr(
15929    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15930    assert_instr(ld1, LANE = 3)
15931)]
15932#[cfg_attr(
15933    not(target_arch = "arm"),
15934    stable(feature = "neon_intrinsics", since = "1.59.0")
15935)]
15936#[cfg_attr(
15937    target_arch = "arm",
15938    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15939)]
15940pub unsafe fn vld1_lane_s16<const LANE: i32>(ptr: *const i16, src: int16x4_t) -> int16x4_t {
15941    static_assert_uimm_bits!(LANE, 2);
15942    simd_insert!(src, LANE as u32, *ptr)
15943}
15944#[doc = "Load one single-element structure to one lane of one register."]
15945#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_lane_s32)"]
15946#[doc = "## Safety"]
15947#[doc = "  * Neon instrinsic unsafe"]
15948#[inline]
15949#[target_feature(enable = "neon")]
15950#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15951#[rustc_legacy_const_generics(2)]
15952#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.32", LANE = 1))]
15953#[cfg_attr(
15954    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15955    assert_instr(ld1, LANE = 1)
15956)]
15957#[cfg_attr(
15958    not(target_arch = "arm"),
15959    stable(feature = "neon_intrinsics", since = "1.59.0")
15960)]
15961#[cfg_attr(
15962    target_arch = "arm",
15963    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15964)]
15965pub unsafe fn vld1_lane_s32<const LANE: i32>(ptr: *const i32, src: int32x2_t) -> int32x2_t {
15966    static_assert_uimm_bits!(LANE, 1);
15967    simd_insert!(src, LANE as u32, *ptr)
15968}
15969#[doc = "Load one single-element structure to one lane of one register."]
15970#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_lane_s64)"]
15971#[doc = "## Safety"]
15972#[doc = "  * Neon instrinsic unsafe"]
15973#[inline]
15974#[target_feature(enable = "neon")]
15975#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15976#[rustc_legacy_const_generics(2)]
15977#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr, LANE = 0))]
15978#[cfg_attr(
15979    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15980    assert_instr(ldr, LANE = 0)
15981)]
15982#[cfg_attr(
15983    not(target_arch = "arm"),
15984    stable(feature = "neon_intrinsics", since = "1.59.0")
15985)]
15986#[cfg_attr(
15987    target_arch = "arm",
15988    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15989)]
15990pub unsafe fn vld1_lane_s64<const LANE: i32>(ptr: *const i64, src: int64x1_t) -> int64x1_t {
15991    static_assert!(LANE == 0);
15992    simd_insert!(src, LANE as u32, *ptr)
15993}
15994#[doc = "Load one single-element structure to one lane of one register."]
15995#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_lane_s8)"]
15996#[doc = "## Safety"]
15997#[doc = "  * Neon instrinsic unsafe"]
15998#[inline]
15999#[target_feature(enable = "neon")]
16000#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16001#[rustc_legacy_const_generics(2)]
16002#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8", LANE = 7))]
16003#[cfg_attr(
16004    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16005    assert_instr(ld1, LANE = 7)
16006)]
16007#[cfg_attr(
16008    not(target_arch = "arm"),
16009    stable(feature = "neon_intrinsics", since = "1.59.0")
16010)]
16011#[cfg_attr(
16012    target_arch = "arm",
16013    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16014)]
16015pub unsafe fn vld1_lane_s8<const LANE: i32>(ptr: *const i8, src: int8x8_t) -> int8x8_t {
16016    static_assert_uimm_bits!(LANE, 3);
16017    simd_insert!(src, LANE as u32, *ptr)
16018}
16019#[doc = "Load one single-element structure to one lane of one register."]
16020#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_lane_u16)"]
16021#[doc = "## Safety"]
16022#[doc = "  * Neon instrinsic unsafe"]
16023#[inline]
16024#[target_feature(enable = "neon")]
16025#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16026#[rustc_legacy_const_generics(2)]
16027#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16", LANE = 3))]
16028#[cfg_attr(
16029    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16030    assert_instr(ld1, LANE = 3)
16031)]
16032#[cfg_attr(
16033    not(target_arch = "arm"),
16034    stable(feature = "neon_intrinsics", since = "1.59.0")
16035)]
16036#[cfg_attr(
16037    target_arch = "arm",
16038    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16039)]
16040pub unsafe fn vld1_lane_u16<const LANE: i32>(ptr: *const u16, src: uint16x4_t) -> uint16x4_t {
16041    static_assert_uimm_bits!(LANE, 2);
16042    simd_insert!(src, LANE as u32, *ptr)
16043}
16044#[doc = "Load one single-element structure to one lane of one register."]
16045#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_lane_u32)"]
16046#[doc = "## Safety"]
16047#[doc = "  * Neon instrinsic unsafe"]
16048#[inline]
16049#[target_feature(enable = "neon")]
16050#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16051#[rustc_legacy_const_generics(2)]
16052#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.32", LANE = 1))]
16053#[cfg_attr(
16054    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16055    assert_instr(ld1, LANE = 1)
16056)]
16057#[cfg_attr(
16058    not(target_arch = "arm"),
16059    stable(feature = "neon_intrinsics", since = "1.59.0")
16060)]
16061#[cfg_attr(
16062    target_arch = "arm",
16063    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16064)]
16065pub unsafe fn vld1_lane_u32<const LANE: i32>(ptr: *const u32, src: uint32x2_t) -> uint32x2_t {
16066    static_assert_uimm_bits!(LANE, 1);
16067    simd_insert!(src, LANE as u32, *ptr)
16068}
16069#[doc = "Load one single-element structure to one lane of one register."]
16070#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_lane_u64)"]
16071#[doc = "## Safety"]
16072#[doc = "  * Neon instrinsic unsafe"]
16073#[inline]
16074#[target_feature(enable = "neon")]
16075#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16076#[rustc_legacy_const_generics(2)]
16077#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr, LANE = 0))]
16078#[cfg_attr(
16079    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16080    assert_instr(ldr, LANE = 0)
16081)]
16082#[cfg_attr(
16083    not(target_arch = "arm"),
16084    stable(feature = "neon_intrinsics", since = "1.59.0")
16085)]
16086#[cfg_attr(
16087    target_arch = "arm",
16088    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16089)]
16090pub unsafe fn vld1_lane_u64<const LANE: i32>(ptr: *const u64, src: uint64x1_t) -> uint64x1_t {
16091    static_assert!(LANE == 0);
16092    simd_insert!(src, LANE as u32, *ptr)
16093}
16094#[doc = "Load one single-element structure to one lane of one register."]
16095#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_lane_u8)"]
16096#[doc = "## Safety"]
16097#[doc = "  * Neon instrinsic unsafe"]
16098#[inline]
16099#[target_feature(enable = "neon")]
16100#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16101#[rustc_legacy_const_generics(2)]
16102#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8", LANE = 7))]
16103#[cfg_attr(
16104    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16105    assert_instr(ld1, LANE = 7)
16106)]
16107#[cfg_attr(
16108    not(target_arch = "arm"),
16109    stable(feature = "neon_intrinsics", since = "1.59.0")
16110)]
16111#[cfg_attr(
16112    target_arch = "arm",
16113    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16114)]
16115pub unsafe fn vld1_lane_u8<const LANE: i32>(ptr: *const u8, src: uint8x8_t) -> uint8x8_t {
16116    static_assert_uimm_bits!(LANE, 3);
16117    simd_insert!(src, LANE as u32, *ptr)
16118}
16119#[doc = "Load one single-element structure to one lane of one register."]
16120#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_lane_f32)"]
16121#[doc = "## Safety"]
16122#[doc = "  * Neon instrinsic unsafe"]
16123#[inline]
16124#[target_feature(enable = "neon")]
16125#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16126#[rustc_legacy_const_generics(2)]
16127#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.32", LANE = 3))]
16128#[cfg_attr(
16129    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16130    assert_instr(ld1, LANE = 3)
16131)]
16132#[cfg_attr(
16133    not(target_arch = "arm"),
16134    stable(feature = "neon_intrinsics", since = "1.59.0")
16135)]
16136#[cfg_attr(
16137    target_arch = "arm",
16138    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16139)]
16140pub unsafe fn vld1q_lane_f32<const LANE: i32>(ptr: *const f32, src: float32x4_t) -> float32x4_t {
16141    static_assert_uimm_bits!(LANE, 2);
16142    simd_insert!(src, LANE as u32, *ptr)
16143}
16144#[doc = "Load one single-element structure to one lane of one register."]
16145#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_lane_p16)"]
16146#[doc = "## Safety"]
16147#[doc = "  * Neon instrinsic unsafe"]
16148#[inline]
16149#[target_feature(enable = "neon")]
16150#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16151#[rustc_legacy_const_generics(2)]
16152#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16", LANE = 7))]
16153#[cfg_attr(
16154    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16155    assert_instr(ld1, LANE = 7)
16156)]
16157#[cfg_attr(
16158    not(target_arch = "arm"),
16159    stable(feature = "neon_intrinsics", since = "1.59.0")
16160)]
16161#[cfg_attr(
16162    target_arch = "arm",
16163    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16164)]
16165pub unsafe fn vld1q_lane_p16<const LANE: i32>(ptr: *const p16, src: poly16x8_t) -> poly16x8_t {
16166    static_assert_uimm_bits!(LANE, 3);
16167    simd_insert!(src, LANE as u32, *ptr)
16168}
16169#[doc = "Load one single-element structure to one lane of one register."]
16170#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_lane_p8)"]
16171#[doc = "## Safety"]
16172#[doc = "  * Neon instrinsic unsafe"]
16173#[inline]
16174#[target_feature(enable = "neon")]
16175#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16176#[rustc_legacy_const_generics(2)]
16177#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8", LANE = 15))]
16178#[cfg_attr(
16179    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16180    assert_instr(ld1, LANE = 15)
16181)]
16182#[cfg_attr(
16183    not(target_arch = "arm"),
16184    stable(feature = "neon_intrinsics", since = "1.59.0")
16185)]
16186#[cfg_attr(
16187    target_arch = "arm",
16188    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16189)]
16190pub unsafe fn vld1q_lane_p8<const LANE: i32>(ptr: *const p8, src: poly8x16_t) -> poly8x16_t {
16191    static_assert_uimm_bits!(LANE, 4);
16192    simd_insert!(src, LANE as u32, *ptr)
16193}
16194#[doc = "Load one single-element structure to one lane of one register."]
16195#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_lane_s16)"]
16196#[doc = "## Safety"]
16197#[doc = "  * Neon instrinsic unsafe"]
16198#[inline]
16199#[target_feature(enable = "neon")]
16200#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16201#[rustc_legacy_const_generics(2)]
16202#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16", LANE = 7))]
16203#[cfg_attr(
16204    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16205    assert_instr(ld1, LANE = 7)
16206)]
16207#[cfg_attr(
16208    not(target_arch = "arm"),
16209    stable(feature = "neon_intrinsics", since = "1.59.0")
16210)]
16211#[cfg_attr(
16212    target_arch = "arm",
16213    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16214)]
16215pub unsafe fn vld1q_lane_s16<const LANE: i32>(ptr: *const i16, src: int16x8_t) -> int16x8_t {
16216    static_assert_uimm_bits!(LANE, 3);
16217    simd_insert!(src, LANE as u32, *ptr)
16218}
16219#[doc = "Load one single-element structure to one lane of one register."]
16220#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_lane_s32)"]
16221#[doc = "## Safety"]
16222#[doc = "  * Neon instrinsic unsafe"]
16223#[inline]
16224#[target_feature(enable = "neon")]
16225#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16226#[rustc_legacy_const_generics(2)]
16227#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.32", LANE = 3))]
16228#[cfg_attr(
16229    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16230    assert_instr(ld1, LANE = 3)
16231)]
16232#[cfg_attr(
16233    not(target_arch = "arm"),
16234    stable(feature = "neon_intrinsics", since = "1.59.0")
16235)]
16236#[cfg_attr(
16237    target_arch = "arm",
16238    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16239)]
16240pub unsafe fn vld1q_lane_s32<const LANE: i32>(ptr: *const i32, src: int32x4_t) -> int32x4_t {
16241    static_assert_uimm_bits!(LANE, 2);
16242    simd_insert!(src, LANE as u32, *ptr)
16243}
16244#[doc = "Load one single-element structure to one lane of one register."]
16245#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_lane_s64)"]
16246#[doc = "## Safety"]
16247#[doc = "  * Neon instrinsic unsafe"]
16248#[inline]
16249#[target_feature(enable = "neon")]
16250#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16251#[rustc_legacy_const_generics(2)]
16252#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr, LANE = 1))]
16253#[cfg_attr(
16254    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16255    assert_instr(ld1, LANE = 1)
16256)]
16257#[cfg_attr(
16258    not(target_arch = "arm"),
16259    stable(feature = "neon_intrinsics", since = "1.59.0")
16260)]
16261#[cfg_attr(
16262    target_arch = "arm",
16263    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16264)]
16265pub unsafe fn vld1q_lane_s64<const LANE: i32>(ptr: *const i64, src: int64x2_t) -> int64x2_t {
16266    static_assert_uimm_bits!(LANE, 1);
16267    simd_insert!(src, LANE as u32, *ptr)
16268}
16269#[doc = "Load one single-element structure to one lane of one register."]
16270#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_lane_s8)"]
16271#[doc = "## Safety"]
16272#[doc = "  * Neon instrinsic unsafe"]
16273#[inline]
16274#[target_feature(enable = "neon")]
16275#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16276#[rustc_legacy_const_generics(2)]
16277#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8", LANE = 15))]
16278#[cfg_attr(
16279    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16280    assert_instr(ld1, LANE = 15)
16281)]
16282#[cfg_attr(
16283    not(target_arch = "arm"),
16284    stable(feature = "neon_intrinsics", since = "1.59.0")
16285)]
16286#[cfg_attr(
16287    target_arch = "arm",
16288    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16289)]
16290pub unsafe fn vld1q_lane_s8<const LANE: i32>(ptr: *const i8, src: int8x16_t) -> int8x16_t {
16291    static_assert_uimm_bits!(LANE, 4);
16292    simd_insert!(src, LANE as u32, *ptr)
16293}
16294#[doc = "Load one single-element structure to one lane of one register."]
16295#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_lane_u16)"]
16296#[doc = "## Safety"]
16297#[doc = "  * Neon instrinsic unsafe"]
16298#[inline]
16299#[target_feature(enable = "neon")]
16300#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16301#[rustc_legacy_const_generics(2)]
16302#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16", LANE = 7))]
16303#[cfg_attr(
16304    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16305    assert_instr(ld1, LANE = 7)
16306)]
16307#[cfg_attr(
16308    not(target_arch = "arm"),
16309    stable(feature = "neon_intrinsics", since = "1.59.0")
16310)]
16311#[cfg_attr(
16312    target_arch = "arm",
16313    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16314)]
16315pub unsafe fn vld1q_lane_u16<const LANE: i32>(ptr: *const u16, src: uint16x8_t) -> uint16x8_t {
16316    static_assert_uimm_bits!(LANE, 3);
16317    simd_insert!(src, LANE as u32, *ptr)
16318}
16319#[doc = "Load one single-element structure to one lane of one register."]
16320#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_lane_u32)"]
16321#[doc = "## Safety"]
16322#[doc = "  * Neon instrinsic unsafe"]
16323#[inline]
16324#[target_feature(enable = "neon")]
16325#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16326#[rustc_legacy_const_generics(2)]
16327#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.32", LANE = 3))]
16328#[cfg_attr(
16329    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16330    assert_instr(ld1, LANE = 3)
16331)]
16332#[cfg_attr(
16333    not(target_arch = "arm"),
16334    stable(feature = "neon_intrinsics", since = "1.59.0")
16335)]
16336#[cfg_attr(
16337    target_arch = "arm",
16338    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16339)]
16340pub unsafe fn vld1q_lane_u32<const LANE: i32>(ptr: *const u32, src: uint32x4_t) -> uint32x4_t {
16341    static_assert_uimm_bits!(LANE, 2);
16342    simd_insert!(src, LANE as u32, *ptr)
16343}
16344#[doc = "Load one single-element structure to one lane of one register."]
16345#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_lane_u64)"]
16346#[doc = "## Safety"]
16347#[doc = "  * Neon instrinsic unsafe"]
16348#[inline]
16349#[target_feature(enable = "neon")]
16350#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16351#[rustc_legacy_const_generics(2)]
16352#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr, LANE = 1))]
16353#[cfg_attr(
16354    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16355    assert_instr(ld1, LANE = 1)
16356)]
16357#[cfg_attr(
16358    not(target_arch = "arm"),
16359    stable(feature = "neon_intrinsics", since = "1.59.0")
16360)]
16361#[cfg_attr(
16362    target_arch = "arm",
16363    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16364)]
16365pub unsafe fn vld1q_lane_u64<const LANE: i32>(ptr: *const u64, src: uint64x2_t) -> uint64x2_t {
16366    static_assert_uimm_bits!(LANE, 1);
16367    simd_insert!(src, LANE as u32, *ptr)
16368}
16369#[doc = "Load one single-element structure to one lane of one register."]
16370#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_lane_u8)"]
16371#[doc = "## Safety"]
16372#[doc = "  * Neon instrinsic unsafe"]
16373#[inline]
16374#[target_feature(enable = "neon")]
16375#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16376#[rustc_legacy_const_generics(2)]
16377#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8", LANE = 15))]
16378#[cfg_attr(
16379    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16380    assert_instr(ld1, LANE = 15)
16381)]
16382#[cfg_attr(
16383    not(target_arch = "arm"),
16384    stable(feature = "neon_intrinsics", since = "1.59.0")
16385)]
16386#[cfg_attr(
16387    target_arch = "arm",
16388    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16389)]
16390pub unsafe fn vld1q_lane_u8<const LANE: i32>(ptr: *const u8, src: uint8x16_t) -> uint8x16_t {
16391    static_assert_uimm_bits!(LANE, 4);
16392    simd_insert!(src, LANE as u32, *ptr)
16393}
16394#[doc = "Load one single-element structure to one lane of one register."]
16395#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_lane_p64)"]
16396#[doc = "## Safety"]
16397#[doc = "  * Neon instrinsic unsafe"]
16398#[inline]
16399#[target_feature(enable = "neon,aes")]
16400#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16401#[rustc_legacy_const_generics(2)]
16402#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr, LANE = 0))]
16403#[cfg_attr(
16404    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16405    assert_instr(ldr, LANE = 0)
16406)]
16407#[cfg_attr(
16408    not(target_arch = "arm"),
16409    stable(feature = "neon_intrinsics", since = "1.59.0")
16410)]
16411#[cfg_attr(
16412    target_arch = "arm",
16413    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16414)]
16415pub unsafe fn vld1_lane_p64<const LANE: i32>(ptr: *const p64, src: poly64x1_t) -> poly64x1_t {
16416    static_assert!(LANE == 0);
16417    simd_insert!(src, LANE as u32, *ptr)
16418}
16419#[doc = "Load one single-element structure to one lane of one register."]
16420#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_lane_p64)"]
16421#[doc = "## Safety"]
16422#[doc = "  * Neon instrinsic unsafe"]
16423#[inline]
16424#[target_feature(enable = "neon,aes")]
16425#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16426#[rustc_legacy_const_generics(2)]
16427#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr, LANE = 1))]
16428#[cfg_attr(
16429    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16430    assert_instr(ld1, LANE = 1)
16431)]
16432#[cfg_attr(
16433    not(target_arch = "arm"),
16434    stable(feature = "neon_intrinsics", since = "1.59.0")
16435)]
16436#[cfg_attr(
16437    target_arch = "arm",
16438    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16439)]
16440pub unsafe fn vld1q_lane_p64<const LANE: i32>(ptr: *const p64, src: poly64x2_t) -> poly64x2_t {
16441    static_assert_uimm_bits!(LANE, 1);
16442    simd_insert!(src, LANE as u32, *ptr)
16443}
16444#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
16445#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p64)"]
16446#[doc = "## Safety"]
16447#[doc = "  * Neon instrinsic unsafe"]
16448#[inline]
16449#[cfg(target_arch = "arm")]
16450#[target_feature(enable = "neon,aes")]
16451#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
16452#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr))]
16453pub unsafe fn vld1_p64(ptr: *const p64) -> poly64x1_t {
16454    let a: *const i8 = ptr as *const i8;
16455    let b: i32 = crate::mem::align_of::<p64>() as i32;
16456    unsafe extern "unadjusted" {
16457        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1.v1i64")]
16458        fn _vld1_v1i64(a: *const i8, b: i32) -> int64x1_t;
16459    }
16460    transmute(_vld1_v1i64(a, b))
16461}
16462#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
16463#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p64_x2)"]
16464#[doc = "## Safety"]
16465#[doc = "  * Neon instrinsic unsafe"]
16466#[inline]
16467#[target_feature(enable = "neon,aes")]
16468#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
16469#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
16470#[cfg_attr(
16471    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16472    assert_instr(ld1)
16473)]
16474#[cfg_attr(
16475    not(target_arch = "arm"),
16476    stable(feature = "neon_intrinsics", since = "1.59.0")
16477)]
16478#[cfg_attr(
16479    target_arch = "arm",
16480    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16481)]
16482pub unsafe fn vld1_p64_x2(a: *const p64) -> poly64x1x2_t {
16483    transmute(vld1_s64_x2(transmute(a)))
16484}
16485#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
16486#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p64_x3)"]
16487#[doc = "## Safety"]
16488#[doc = "  * Neon instrinsic unsafe"]
16489#[inline]
16490#[target_feature(enable = "neon,aes")]
16491#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
16492#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
16493#[cfg_attr(
16494    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16495    assert_instr(ld1)
16496)]
16497#[cfg_attr(
16498    not(target_arch = "arm"),
16499    stable(feature = "neon_intrinsics", since = "1.59.0")
16500)]
16501#[cfg_attr(
16502    target_arch = "arm",
16503    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16504)]
16505pub unsafe fn vld1_p64_x3(a: *const p64) -> poly64x1x3_t {
16506    transmute(vld1_s64_x3(transmute(a)))
16507}
16508#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
16509#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p64_x4)"]
16510#[doc = "## Safety"]
16511#[doc = "  * Neon instrinsic unsafe"]
16512#[inline]
16513#[target_feature(enable = "neon,aes")]
16514#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
16515#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
16516#[cfg_attr(
16517    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16518    assert_instr(ld1)
16519)]
16520#[cfg_attr(
16521    not(target_arch = "arm"),
16522    stable(feature = "neon_intrinsics", since = "1.59.0")
16523)]
16524#[cfg_attr(
16525    target_arch = "arm",
16526    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16527)]
16528pub unsafe fn vld1_p64_x4(a: *const p64) -> poly64x1x4_t {
16529    transmute(vld1_s64_x4(transmute(a)))
16530}
16531#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
16532#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p64_x2)"]
16533#[doc = "## Safety"]
16534#[doc = "  * Neon instrinsic unsafe"]
16535#[inline]
16536#[cfg(target_endian = "little")]
16537#[target_feature(enable = "neon,aes")]
16538#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
16539#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
16540#[cfg_attr(
16541    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16542    assert_instr(ld1)
16543)]
16544#[cfg_attr(
16545    not(target_arch = "arm"),
16546    stable(feature = "neon_intrinsics", since = "1.59.0")
16547)]
16548#[cfg_attr(
16549    target_arch = "arm",
16550    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16551)]
16552pub unsafe fn vld1q_p64_x2(a: *const p64) -> poly64x2x2_t {
16553    transmute(vld1q_s64_x2(transmute(a)))
16554}
16555#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
16556#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p64_x2)"]
16557#[doc = "## Safety"]
16558#[doc = "  * Neon instrinsic unsafe"]
16559#[inline]
16560#[cfg(target_endian = "big")]
16561#[target_feature(enable = "neon,aes")]
16562#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
16563#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
16564#[cfg_attr(
16565    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16566    assert_instr(ld1)
16567)]
16568#[cfg_attr(
16569    not(target_arch = "arm"),
16570    stable(feature = "neon_intrinsics", since = "1.59.0")
16571)]
16572#[cfg_attr(
16573    target_arch = "arm",
16574    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16575)]
16576pub unsafe fn vld1q_p64_x2(a: *const p64) -> poly64x2x2_t {
16577    let mut ret_val: poly64x2x2_t = transmute(vld1q_s64_x2(transmute(a)));
16578    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [1, 0]) };
16579    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [1, 0]) };
16580    ret_val
16581}
16582#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
16583#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p64_x3)"]
16584#[doc = "## Safety"]
16585#[doc = "  * Neon instrinsic unsafe"]
16586#[inline]
16587#[cfg(target_endian = "little")]
16588#[target_feature(enable = "neon,aes")]
16589#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
16590#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
16591#[cfg_attr(
16592    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16593    assert_instr(ld1)
16594)]
16595#[cfg_attr(
16596    not(target_arch = "arm"),
16597    stable(feature = "neon_intrinsics", since = "1.59.0")
16598)]
16599#[cfg_attr(
16600    target_arch = "arm",
16601    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16602)]
16603pub unsafe fn vld1q_p64_x3(a: *const p64) -> poly64x2x3_t {
16604    transmute(vld1q_s64_x3(transmute(a)))
16605}
16606#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
16607#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p64_x3)"]
16608#[doc = "## Safety"]
16609#[doc = "  * Neon instrinsic unsafe"]
16610#[inline]
16611#[cfg(target_endian = "big")]
16612#[target_feature(enable = "neon,aes")]
16613#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
16614#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
16615#[cfg_attr(
16616    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16617    assert_instr(ld1)
16618)]
16619#[cfg_attr(
16620    not(target_arch = "arm"),
16621    stable(feature = "neon_intrinsics", since = "1.59.0")
16622)]
16623#[cfg_attr(
16624    target_arch = "arm",
16625    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16626)]
16627pub unsafe fn vld1q_p64_x3(a: *const p64) -> poly64x2x3_t {
16628    let mut ret_val: poly64x2x3_t = transmute(vld1q_s64_x3(transmute(a)));
16629    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [1, 0]) };
16630    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [1, 0]) };
16631    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [1, 0]) };
16632    ret_val
16633}
16634#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
16635#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p64_x4)"]
16636#[doc = "## Safety"]
16637#[doc = "  * Neon instrinsic unsafe"]
16638#[inline]
16639#[cfg(target_endian = "little")]
16640#[target_feature(enable = "neon,aes")]
16641#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
16642#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
16643#[cfg_attr(
16644    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16645    assert_instr(ld1)
16646)]
16647#[cfg_attr(
16648    not(target_arch = "arm"),
16649    stable(feature = "neon_intrinsics", since = "1.59.0")
16650)]
16651#[cfg_attr(
16652    target_arch = "arm",
16653    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16654)]
16655pub unsafe fn vld1q_p64_x4(a: *const p64) -> poly64x2x4_t {
16656    transmute(vld1q_s64_x4(transmute(a)))
16657}
16658#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
16659#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p64_x4)"]
16660#[doc = "## Safety"]
16661#[doc = "  * Neon instrinsic unsafe"]
16662#[inline]
16663#[cfg(target_endian = "big")]
16664#[target_feature(enable = "neon,aes")]
16665#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
16666#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
16667#[cfg_attr(
16668    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16669    assert_instr(ld1)
16670)]
16671#[cfg_attr(
16672    not(target_arch = "arm"),
16673    stable(feature = "neon_intrinsics", since = "1.59.0")
16674)]
16675#[cfg_attr(
16676    target_arch = "arm",
16677    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16678)]
16679pub unsafe fn vld1q_p64_x4(a: *const p64) -> poly64x2x4_t {
16680    let mut ret_val: poly64x2x4_t = transmute(vld1q_s64_x4(transmute(a)));
16681    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [1, 0]) };
16682    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [1, 0]) };
16683    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [1, 0]) };
16684    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [1, 0]) };
16685    ret_val
16686}
16687#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
16688#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s8)"]
16689#[doc = "## Safety"]
16690#[doc = "  * Neon instrinsic unsafe"]
16691#[inline]
16692#[cfg(target_arch = "arm")]
16693#[target_feature(enable = "neon,v7")]
16694#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
16695#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8"))]
16696pub unsafe fn vld1_s8(ptr: *const i8) -> int8x8_t {
16697    vld1_v8i8(ptr as *const i8, crate::mem::align_of::<i8>() as i32)
16698}
16699#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
16700#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s8)"]
16701#[doc = "## Safety"]
16702#[doc = "  * Neon instrinsic unsafe"]
16703#[inline]
16704#[cfg(target_arch = "arm")]
16705#[target_feature(enable = "neon,v7")]
16706#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
16707#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8"))]
16708pub unsafe fn vld1q_s8(ptr: *const i8) -> int8x16_t {
16709    vld1q_v16i8(ptr as *const i8, crate::mem::align_of::<i8>() as i32)
16710}
16711#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
16712#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s16)"]
16713#[doc = "## Safety"]
16714#[doc = "  * Neon instrinsic unsafe"]
16715#[inline]
16716#[cfg(target_arch = "arm")]
16717#[target_feature(enable = "neon,v7")]
16718#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
16719#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
16720pub unsafe fn vld1_s16(ptr: *const i16) -> int16x4_t {
16721    vld1_v4i16(ptr as *const i8, crate::mem::align_of::<i16>() as i32)
16722}
16723#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
16724#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s16)"]
16725#[doc = "## Safety"]
16726#[doc = "  * Neon instrinsic unsafe"]
16727#[inline]
16728#[cfg(target_arch = "arm")]
16729#[target_feature(enable = "neon,v7")]
16730#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
16731#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
16732pub unsafe fn vld1q_s16(ptr: *const i16) -> int16x8_t {
16733    vld1q_v8i16(ptr as *const i8, crate::mem::align_of::<i16>() as i32)
16734}
16735#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
16736#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s32)"]
16737#[doc = "## Safety"]
16738#[doc = "  * Neon instrinsic unsafe"]
16739#[inline]
16740#[cfg(target_arch = "arm")]
16741#[target_feature(enable = "neon,v7")]
16742#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
16743#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr))]
16744pub unsafe fn vld1_s32(ptr: *const i32) -> int32x2_t {
16745    vld1_v2i32(ptr as *const i8, crate::mem::align_of::<i32>() as i32)
16746}
16747#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
16748#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s32)"]
16749#[doc = "## Safety"]
16750#[doc = "  * Neon instrinsic unsafe"]
16751#[inline]
16752#[cfg(target_arch = "arm")]
16753#[target_feature(enable = "neon,v7")]
16754#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
16755#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.32"))]
16756pub unsafe fn vld1q_s32(ptr: *const i32) -> int32x4_t {
16757    vld1q_v4i32(ptr as *const i8, crate::mem::align_of::<i32>() as i32)
16758}
16759#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
16760#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s64)"]
16761#[doc = "## Safety"]
16762#[doc = "  * Neon instrinsic unsafe"]
16763#[inline]
16764#[cfg(target_arch = "arm")]
16765#[target_feature(enable = "neon,v7")]
16766#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
16767#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr))]
16768pub unsafe fn vld1_s64(ptr: *const i64) -> int64x1_t {
16769    vld1_v1i64(ptr as *const i8, crate::mem::align_of::<i64>() as i32)
16770}
16771#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
16772#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s64)"]
16773#[doc = "## Safety"]
16774#[doc = "  * Neon instrinsic unsafe"]
16775#[inline]
16776#[cfg(target_arch = "arm")]
16777#[target_feature(enable = "neon,v7")]
16778#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
16779#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.64"))]
16780pub unsafe fn vld1q_s64(ptr: *const i64) -> int64x2_t {
16781    vld1q_v2i64(ptr as *const i8, crate::mem::align_of::<i64>() as i32)
16782}
16783#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
16784#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s8_x2)"]
16785#[doc = "## Safety"]
16786#[doc = "  * Neon instrinsic unsafe"]
16787#[inline]
16788#[target_feature(enable = "neon")]
16789#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16790#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
16791#[cfg_attr(
16792    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16793    assert_instr(ld1)
16794)]
16795#[cfg_attr(
16796    not(target_arch = "arm"),
16797    stable(feature = "neon_intrinsics", since = "1.59.0")
16798)]
16799#[cfg_attr(
16800    target_arch = "arm",
16801    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16802)]
16803pub unsafe fn vld1_s8_x2(a: *const i8) -> int8x8x2_t {
16804    unsafe extern "unadjusted" {
16805        #[cfg_attr(
16806            any(target_arch = "aarch64", target_arch = "arm64ec"),
16807            link_name = "llvm.aarch64.neon.ld1x2.v8i8.p0"
16808        )]
16809        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x2.v8i8.p0")]
16810        fn _vld1_s8_x2(a: *const i8) -> int8x8x2_t;
16811    }
16812    _vld1_s8_x2(a)
16813}
16814#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
16815#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s8_x3)"]
16816#[doc = "## Safety"]
16817#[doc = "  * Neon instrinsic unsafe"]
16818#[inline]
16819#[target_feature(enable = "neon")]
16820#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16821#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
16822#[cfg_attr(
16823    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16824    assert_instr(ld1)
16825)]
16826#[cfg_attr(
16827    not(target_arch = "arm"),
16828    stable(feature = "neon_intrinsics", since = "1.59.0")
16829)]
16830#[cfg_attr(
16831    target_arch = "arm",
16832    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16833)]
16834pub unsafe fn vld1_s8_x3(a: *const i8) -> int8x8x3_t {
16835    unsafe extern "unadjusted" {
16836        #[cfg_attr(
16837            any(target_arch = "aarch64", target_arch = "arm64ec"),
16838            link_name = "llvm.aarch64.neon.ld1x3.v8i8.p0"
16839        )]
16840        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x3.v8i8.p0")]
16841        fn _vld1_s8_x3(a: *const i8) -> int8x8x3_t;
16842    }
16843    _vld1_s8_x3(a)
16844}
16845#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
16846#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s8_x4)"]
16847#[doc = "## Safety"]
16848#[doc = "  * Neon instrinsic unsafe"]
16849#[inline]
16850#[target_feature(enable = "neon")]
16851#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16852#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
16853#[cfg_attr(
16854    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16855    assert_instr(ld1)
16856)]
16857#[cfg_attr(
16858    not(target_arch = "arm"),
16859    stable(feature = "neon_intrinsics", since = "1.59.0")
16860)]
16861#[cfg_attr(
16862    target_arch = "arm",
16863    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16864)]
16865pub unsafe fn vld1_s8_x4(a: *const i8) -> int8x8x4_t {
16866    unsafe extern "unadjusted" {
16867        #[cfg_attr(
16868            any(target_arch = "aarch64", target_arch = "arm64ec"),
16869            link_name = "llvm.aarch64.neon.ld1x4.v8i8.p0"
16870        )]
16871        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x4.v8i8.p0")]
16872        fn _vld1_s8_x4(a: *const i8) -> int8x8x4_t;
16873    }
16874    _vld1_s8_x4(a)
16875}
16876#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
16877#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s8_x2)"]
16878#[doc = "## Safety"]
16879#[doc = "  * Neon instrinsic unsafe"]
16880#[inline]
16881#[target_feature(enable = "neon")]
16882#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16883#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
16884#[cfg_attr(
16885    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16886    assert_instr(ld1)
16887)]
16888#[cfg_attr(
16889    not(target_arch = "arm"),
16890    stable(feature = "neon_intrinsics", since = "1.59.0")
16891)]
16892#[cfg_attr(
16893    target_arch = "arm",
16894    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16895)]
16896pub unsafe fn vld1q_s8_x2(a: *const i8) -> int8x16x2_t {
16897    unsafe extern "unadjusted" {
16898        #[cfg_attr(
16899            any(target_arch = "aarch64", target_arch = "arm64ec"),
16900            link_name = "llvm.aarch64.neon.ld1x2.v16i8.p0"
16901        )]
16902        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x2.v16i8.p0")]
16903        fn _vld1q_s8_x2(a: *const i8) -> int8x16x2_t;
16904    }
16905    _vld1q_s8_x2(a)
16906}
16907#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
16908#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s8_x3)"]
16909#[doc = "## Safety"]
16910#[doc = "  * Neon instrinsic unsafe"]
16911#[inline]
16912#[target_feature(enable = "neon")]
16913#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16914#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
16915#[cfg_attr(
16916    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16917    assert_instr(ld1)
16918)]
16919#[cfg_attr(
16920    not(target_arch = "arm"),
16921    stable(feature = "neon_intrinsics", since = "1.59.0")
16922)]
16923#[cfg_attr(
16924    target_arch = "arm",
16925    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16926)]
16927pub unsafe fn vld1q_s8_x3(a: *const i8) -> int8x16x3_t {
16928    unsafe extern "unadjusted" {
16929        #[cfg_attr(
16930            any(target_arch = "aarch64", target_arch = "arm64ec"),
16931            link_name = "llvm.aarch64.neon.ld1x3.v16i8.p0"
16932        )]
16933        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x3.v16i8.p0")]
16934        fn _vld1q_s8_x3(a: *const i8) -> int8x16x3_t;
16935    }
16936    _vld1q_s8_x3(a)
16937}
16938#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
16939#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s8_x4)"]
16940#[doc = "## Safety"]
16941#[doc = "  * Neon instrinsic unsafe"]
16942#[inline]
16943#[target_feature(enable = "neon")]
16944#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16945#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
16946#[cfg_attr(
16947    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16948    assert_instr(ld1)
16949)]
16950#[cfg_attr(
16951    not(target_arch = "arm"),
16952    stable(feature = "neon_intrinsics", since = "1.59.0")
16953)]
16954#[cfg_attr(
16955    target_arch = "arm",
16956    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16957)]
16958pub unsafe fn vld1q_s8_x4(a: *const i8) -> int8x16x4_t {
16959    unsafe extern "unadjusted" {
16960        #[cfg_attr(
16961            any(target_arch = "aarch64", target_arch = "arm64ec"),
16962            link_name = "llvm.aarch64.neon.ld1x4.v16i8.p0"
16963        )]
16964        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x4.v16i8.p0")]
16965        fn _vld1q_s8_x4(a: *const i8) -> int8x16x4_t;
16966    }
16967    _vld1q_s8_x4(a)
16968}
16969#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
16970#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s16_x2)"]
16971#[doc = "## Safety"]
16972#[doc = "  * Neon instrinsic unsafe"]
16973#[inline]
16974#[target_feature(enable = "neon")]
16975#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16976#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
16977#[cfg_attr(
16978    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16979    assert_instr(ld1)
16980)]
16981#[cfg_attr(
16982    not(target_arch = "arm"),
16983    stable(feature = "neon_intrinsics", since = "1.59.0")
16984)]
16985#[cfg_attr(
16986    target_arch = "arm",
16987    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16988)]
16989pub unsafe fn vld1_s16_x2(a: *const i16) -> int16x4x2_t {
16990    unsafe extern "unadjusted" {
16991        #[cfg_attr(
16992            any(target_arch = "aarch64", target_arch = "arm64ec"),
16993            link_name = "llvm.aarch64.neon.ld1x2.v4i16.p0"
16994        )]
16995        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x2.v4i16.p0")]
16996        fn _vld1_s16_x2(a: *const i16) -> int16x4x2_t;
16997    }
16998    _vld1_s16_x2(a)
16999}
17000#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17001#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s16_x3)"]
17002#[doc = "## Safety"]
17003#[doc = "  * Neon instrinsic unsafe"]
17004#[inline]
17005#[target_feature(enable = "neon")]
17006#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17007#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17008#[cfg_attr(
17009    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17010    assert_instr(ld1)
17011)]
17012#[cfg_attr(
17013    not(target_arch = "arm"),
17014    stable(feature = "neon_intrinsics", since = "1.59.0")
17015)]
17016#[cfg_attr(
17017    target_arch = "arm",
17018    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17019)]
17020pub unsafe fn vld1_s16_x3(a: *const i16) -> int16x4x3_t {
17021    unsafe extern "unadjusted" {
17022        #[cfg_attr(
17023            any(target_arch = "aarch64", target_arch = "arm64ec"),
17024            link_name = "llvm.aarch64.neon.ld1x3.v4i16.p0"
17025        )]
17026        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x3.v4i16.p0")]
17027        fn _vld1_s16_x3(a: *const i16) -> int16x4x3_t;
17028    }
17029    _vld1_s16_x3(a)
17030}
17031#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17032#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s16_x4)"]
17033#[doc = "## Safety"]
17034#[doc = "  * Neon instrinsic unsafe"]
17035#[inline]
17036#[target_feature(enable = "neon")]
17037#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17038#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17039#[cfg_attr(
17040    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17041    assert_instr(ld1)
17042)]
17043#[cfg_attr(
17044    not(target_arch = "arm"),
17045    stable(feature = "neon_intrinsics", since = "1.59.0")
17046)]
17047#[cfg_attr(
17048    target_arch = "arm",
17049    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17050)]
17051pub unsafe fn vld1_s16_x4(a: *const i16) -> int16x4x4_t {
17052    unsafe extern "unadjusted" {
17053        #[cfg_attr(
17054            any(target_arch = "aarch64", target_arch = "arm64ec"),
17055            link_name = "llvm.aarch64.neon.ld1x4.v4i16.p0"
17056        )]
17057        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x4.v4i16.p0")]
17058        fn _vld1_s16_x4(a: *const i16) -> int16x4x4_t;
17059    }
17060    _vld1_s16_x4(a)
17061}
17062#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17063#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s16_x2)"]
17064#[doc = "## Safety"]
17065#[doc = "  * Neon instrinsic unsafe"]
17066#[inline]
17067#[target_feature(enable = "neon")]
17068#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17069#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17070#[cfg_attr(
17071    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17072    assert_instr(ld1)
17073)]
17074#[cfg_attr(
17075    not(target_arch = "arm"),
17076    stable(feature = "neon_intrinsics", since = "1.59.0")
17077)]
17078#[cfg_attr(
17079    target_arch = "arm",
17080    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17081)]
17082pub unsafe fn vld1q_s16_x2(a: *const i16) -> int16x8x2_t {
17083    unsafe extern "unadjusted" {
17084        #[cfg_attr(
17085            any(target_arch = "aarch64", target_arch = "arm64ec"),
17086            link_name = "llvm.aarch64.neon.ld1x2.v8i16.p0"
17087        )]
17088        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x2.v8i16.p0")]
17089        fn _vld1q_s16_x2(a: *const i16) -> int16x8x2_t;
17090    }
17091    _vld1q_s16_x2(a)
17092}
17093#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17094#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s16_x3)"]
17095#[doc = "## Safety"]
17096#[doc = "  * Neon instrinsic unsafe"]
17097#[inline]
17098#[target_feature(enable = "neon")]
17099#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17100#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17101#[cfg_attr(
17102    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17103    assert_instr(ld1)
17104)]
17105#[cfg_attr(
17106    not(target_arch = "arm"),
17107    stable(feature = "neon_intrinsics", since = "1.59.0")
17108)]
17109#[cfg_attr(
17110    target_arch = "arm",
17111    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17112)]
17113pub unsafe fn vld1q_s16_x3(a: *const i16) -> int16x8x3_t {
17114    unsafe extern "unadjusted" {
17115        #[cfg_attr(
17116            any(target_arch = "aarch64", target_arch = "arm64ec"),
17117            link_name = "llvm.aarch64.neon.ld1x3.v8i16.p0"
17118        )]
17119        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x3.v8i16.p0")]
17120        fn _vld1q_s16_x3(a: *const i16) -> int16x8x3_t;
17121    }
17122    _vld1q_s16_x3(a)
17123}
17124#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17125#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s16_x4)"]
17126#[doc = "## Safety"]
17127#[doc = "  * Neon instrinsic unsafe"]
17128#[inline]
17129#[target_feature(enable = "neon")]
17130#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17131#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17132#[cfg_attr(
17133    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17134    assert_instr(ld1)
17135)]
17136#[cfg_attr(
17137    not(target_arch = "arm"),
17138    stable(feature = "neon_intrinsics", since = "1.59.0")
17139)]
17140#[cfg_attr(
17141    target_arch = "arm",
17142    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17143)]
17144pub unsafe fn vld1q_s16_x4(a: *const i16) -> int16x8x4_t {
17145    unsafe extern "unadjusted" {
17146        #[cfg_attr(
17147            any(target_arch = "aarch64", target_arch = "arm64ec"),
17148            link_name = "llvm.aarch64.neon.ld1x4.v8i16.p0"
17149        )]
17150        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x4.v8i16.p0")]
17151        fn _vld1q_s16_x4(a: *const i16) -> int16x8x4_t;
17152    }
17153    _vld1q_s16_x4(a)
17154}
17155#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17156#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s32_x2)"]
17157#[doc = "## Safety"]
17158#[doc = "  * Neon instrinsic unsafe"]
17159#[inline]
17160#[target_feature(enable = "neon")]
17161#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17162#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17163#[cfg_attr(
17164    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17165    assert_instr(ld1)
17166)]
17167#[cfg_attr(
17168    not(target_arch = "arm"),
17169    stable(feature = "neon_intrinsics", since = "1.59.0")
17170)]
17171#[cfg_attr(
17172    target_arch = "arm",
17173    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17174)]
17175pub unsafe fn vld1_s32_x2(a: *const i32) -> int32x2x2_t {
17176    unsafe extern "unadjusted" {
17177        #[cfg_attr(
17178            any(target_arch = "aarch64", target_arch = "arm64ec"),
17179            link_name = "llvm.aarch64.neon.ld1x2.v2i32.p0"
17180        )]
17181        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x2.v2i32.p0")]
17182        fn _vld1_s32_x2(a: *const i32) -> int32x2x2_t;
17183    }
17184    _vld1_s32_x2(a)
17185}
17186#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17187#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s32_x3)"]
17188#[doc = "## Safety"]
17189#[doc = "  * Neon instrinsic unsafe"]
17190#[inline]
17191#[target_feature(enable = "neon")]
17192#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17193#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17194#[cfg_attr(
17195    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17196    assert_instr(ld1)
17197)]
17198#[cfg_attr(
17199    not(target_arch = "arm"),
17200    stable(feature = "neon_intrinsics", since = "1.59.0")
17201)]
17202#[cfg_attr(
17203    target_arch = "arm",
17204    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17205)]
17206pub unsafe fn vld1_s32_x3(a: *const i32) -> int32x2x3_t {
17207    unsafe extern "unadjusted" {
17208        #[cfg_attr(
17209            any(target_arch = "aarch64", target_arch = "arm64ec"),
17210            link_name = "llvm.aarch64.neon.ld1x3.v2i32.p0"
17211        )]
17212        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x3.v2i32.p0")]
17213        fn _vld1_s32_x3(a: *const i32) -> int32x2x3_t;
17214    }
17215    _vld1_s32_x3(a)
17216}
17217#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17218#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s32_x4)"]
17219#[doc = "## Safety"]
17220#[doc = "  * Neon instrinsic unsafe"]
17221#[inline]
17222#[target_feature(enable = "neon")]
17223#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17224#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17225#[cfg_attr(
17226    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17227    assert_instr(ld1)
17228)]
17229#[cfg_attr(
17230    not(target_arch = "arm"),
17231    stable(feature = "neon_intrinsics", since = "1.59.0")
17232)]
17233#[cfg_attr(
17234    target_arch = "arm",
17235    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17236)]
17237pub unsafe fn vld1_s32_x4(a: *const i32) -> int32x2x4_t {
17238    unsafe extern "unadjusted" {
17239        #[cfg_attr(
17240            any(target_arch = "aarch64", target_arch = "arm64ec"),
17241            link_name = "llvm.aarch64.neon.ld1x4.v2i32.p0"
17242        )]
17243        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x4.v2i32.p0")]
17244        fn _vld1_s32_x4(a: *const i32) -> int32x2x4_t;
17245    }
17246    _vld1_s32_x4(a)
17247}
17248#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17249#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s32_x2)"]
17250#[doc = "## Safety"]
17251#[doc = "  * Neon instrinsic unsafe"]
17252#[inline]
17253#[target_feature(enable = "neon")]
17254#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17255#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17256#[cfg_attr(
17257    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17258    assert_instr(ld1)
17259)]
17260#[cfg_attr(
17261    not(target_arch = "arm"),
17262    stable(feature = "neon_intrinsics", since = "1.59.0")
17263)]
17264#[cfg_attr(
17265    target_arch = "arm",
17266    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17267)]
17268pub unsafe fn vld1q_s32_x2(a: *const i32) -> int32x4x2_t {
17269    unsafe extern "unadjusted" {
17270        #[cfg_attr(
17271            any(target_arch = "aarch64", target_arch = "arm64ec"),
17272            link_name = "llvm.aarch64.neon.ld1x2.v4i32.p0"
17273        )]
17274        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x2.v4i32.p0")]
17275        fn _vld1q_s32_x2(a: *const i32) -> int32x4x2_t;
17276    }
17277    _vld1q_s32_x2(a)
17278}
17279#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17280#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s32_x3)"]
17281#[doc = "## Safety"]
17282#[doc = "  * Neon instrinsic unsafe"]
17283#[inline]
17284#[target_feature(enable = "neon")]
17285#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17286#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17287#[cfg_attr(
17288    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17289    assert_instr(ld1)
17290)]
17291#[cfg_attr(
17292    not(target_arch = "arm"),
17293    stable(feature = "neon_intrinsics", since = "1.59.0")
17294)]
17295#[cfg_attr(
17296    target_arch = "arm",
17297    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17298)]
17299pub unsafe fn vld1q_s32_x3(a: *const i32) -> int32x4x3_t {
17300    unsafe extern "unadjusted" {
17301        #[cfg_attr(
17302            any(target_arch = "aarch64", target_arch = "arm64ec"),
17303            link_name = "llvm.aarch64.neon.ld1x3.v4i32.p0"
17304        )]
17305        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x3.v4i32.p0")]
17306        fn _vld1q_s32_x3(a: *const i32) -> int32x4x3_t;
17307    }
17308    _vld1q_s32_x3(a)
17309}
17310#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17311#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s32_x4)"]
17312#[doc = "## Safety"]
17313#[doc = "  * Neon instrinsic unsafe"]
17314#[inline]
17315#[target_feature(enable = "neon")]
17316#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17317#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17318#[cfg_attr(
17319    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17320    assert_instr(ld1)
17321)]
17322#[cfg_attr(
17323    not(target_arch = "arm"),
17324    stable(feature = "neon_intrinsics", since = "1.59.0")
17325)]
17326#[cfg_attr(
17327    target_arch = "arm",
17328    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17329)]
17330pub unsafe fn vld1q_s32_x4(a: *const i32) -> int32x4x4_t {
17331    unsafe extern "unadjusted" {
17332        #[cfg_attr(
17333            any(target_arch = "aarch64", target_arch = "arm64ec"),
17334            link_name = "llvm.aarch64.neon.ld1x4.v4i32.p0"
17335        )]
17336        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x4.v4i32.p0")]
17337        fn _vld1q_s32_x4(a: *const i32) -> int32x4x4_t;
17338    }
17339    _vld1q_s32_x4(a)
17340}
17341#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17342#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s64_x2)"]
17343#[doc = "## Safety"]
17344#[doc = "  * Neon instrinsic unsafe"]
17345#[inline]
17346#[target_feature(enable = "neon")]
17347#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17348#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17349#[cfg_attr(
17350    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17351    assert_instr(ld1)
17352)]
17353#[cfg_attr(
17354    not(target_arch = "arm"),
17355    stable(feature = "neon_intrinsics", since = "1.59.0")
17356)]
17357#[cfg_attr(
17358    target_arch = "arm",
17359    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17360)]
17361pub unsafe fn vld1_s64_x2(a: *const i64) -> int64x1x2_t {
17362    unsafe extern "unadjusted" {
17363        #[cfg_attr(
17364            any(target_arch = "aarch64", target_arch = "arm64ec"),
17365            link_name = "llvm.aarch64.neon.ld1x2.v1i64.p0"
17366        )]
17367        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x2.v1i64.p0")]
17368        fn _vld1_s64_x2(a: *const i64) -> int64x1x2_t;
17369    }
17370    _vld1_s64_x2(a)
17371}
17372#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17373#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s64_x3)"]
17374#[doc = "## Safety"]
17375#[doc = "  * Neon instrinsic unsafe"]
17376#[inline]
17377#[target_feature(enable = "neon")]
17378#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17379#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17380#[cfg_attr(
17381    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17382    assert_instr(ld1)
17383)]
17384#[cfg_attr(
17385    not(target_arch = "arm"),
17386    stable(feature = "neon_intrinsics", since = "1.59.0")
17387)]
17388#[cfg_attr(
17389    target_arch = "arm",
17390    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17391)]
17392pub unsafe fn vld1_s64_x3(a: *const i64) -> int64x1x3_t {
17393    unsafe extern "unadjusted" {
17394        #[cfg_attr(
17395            any(target_arch = "aarch64", target_arch = "arm64ec"),
17396            link_name = "llvm.aarch64.neon.ld1x3.v1i64.p0"
17397        )]
17398        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x3.v1i64.p0")]
17399        fn _vld1_s64_x3(a: *const i64) -> int64x1x3_t;
17400    }
17401    _vld1_s64_x3(a)
17402}
17403#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17404#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s64_x4)"]
17405#[doc = "## Safety"]
17406#[doc = "  * Neon instrinsic unsafe"]
17407#[inline]
17408#[target_feature(enable = "neon")]
17409#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17410#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17411#[cfg_attr(
17412    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17413    assert_instr(ld1)
17414)]
17415#[cfg_attr(
17416    not(target_arch = "arm"),
17417    stable(feature = "neon_intrinsics", since = "1.59.0")
17418)]
17419#[cfg_attr(
17420    target_arch = "arm",
17421    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17422)]
17423pub unsafe fn vld1_s64_x4(a: *const i64) -> int64x1x4_t {
17424    unsafe extern "unadjusted" {
17425        #[cfg_attr(
17426            any(target_arch = "aarch64", target_arch = "arm64ec"),
17427            link_name = "llvm.aarch64.neon.ld1x4.v1i64.p0"
17428        )]
17429        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x4.v1i64.p0")]
17430        fn _vld1_s64_x4(a: *const i64) -> int64x1x4_t;
17431    }
17432    _vld1_s64_x4(a)
17433}
17434#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17435#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s64_x2)"]
17436#[doc = "## Safety"]
17437#[doc = "  * Neon instrinsic unsafe"]
17438#[inline]
17439#[target_feature(enable = "neon")]
17440#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17441#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17442#[cfg_attr(
17443    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17444    assert_instr(ld1)
17445)]
17446#[cfg_attr(
17447    not(target_arch = "arm"),
17448    stable(feature = "neon_intrinsics", since = "1.59.0")
17449)]
17450#[cfg_attr(
17451    target_arch = "arm",
17452    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17453)]
17454pub unsafe fn vld1q_s64_x2(a: *const i64) -> int64x2x2_t {
17455    unsafe extern "unadjusted" {
17456        #[cfg_attr(
17457            any(target_arch = "aarch64", target_arch = "arm64ec"),
17458            link_name = "llvm.aarch64.neon.ld1x2.v2i64.p0"
17459        )]
17460        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x2.v2i64.p0")]
17461        fn _vld1q_s64_x2(a: *const i64) -> int64x2x2_t;
17462    }
17463    _vld1q_s64_x2(a)
17464}
17465#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17466#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s64_x3)"]
17467#[doc = "## Safety"]
17468#[doc = "  * Neon instrinsic unsafe"]
17469#[inline]
17470#[target_feature(enable = "neon")]
17471#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17472#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17473#[cfg_attr(
17474    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17475    assert_instr(ld1)
17476)]
17477#[cfg_attr(
17478    not(target_arch = "arm"),
17479    stable(feature = "neon_intrinsics", since = "1.59.0")
17480)]
17481#[cfg_attr(
17482    target_arch = "arm",
17483    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17484)]
17485pub unsafe fn vld1q_s64_x3(a: *const i64) -> int64x2x3_t {
17486    unsafe extern "unadjusted" {
17487        #[cfg_attr(
17488            any(target_arch = "aarch64", target_arch = "arm64ec"),
17489            link_name = "llvm.aarch64.neon.ld1x3.v2i64.p0"
17490        )]
17491        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x3.v2i64.p0")]
17492        fn _vld1q_s64_x3(a: *const i64) -> int64x2x3_t;
17493    }
17494    _vld1q_s64_x3(a)
17495}
17496#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17497#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s64_x4)"]
17498#[doc = "## Safety"]
17499#[doc = "  * Neon instrinsic unsafe"]
17500#[inline]
17501#[target_feature(enable = "neon")]
17502#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17503#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17504#[cfg_attr(
17505    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17506    assert_instr(ld1)
17507)]
17508#[cfg_attr(
17509    not(target_arch = "arm"),
17510    stable(feature = "neon_intrinsics", since = "1.59.0")
17511)]
17512#[cfg_attr(
17513    target_arch = "arm",
17514    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17515)]
17516pub unsafe fn vld1q_s64_x4(a: *const i64) -> int64x2x4_t {
17517    unsafe extern "unadjusted" {
17518        #[cfg_attr(
17519            any(target_arch = "aarch64", target_arch = "arm64ec"),
17520            link_name = "llvm.aarch64.neon.ld1x4.v2i64.p0"
17521        )]
17522        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x4.v2i64.p0")]
17523        fn _vld1q_s64_x4(a: *const i64) -> int64x2x4_t;
17524    }
17525    _vld1q_s64_x4(a)
17526}
17527#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17528#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u8_x2)"]
17529#[doc = "## Safety"]
17530#[doc = "  * Neon instrinsic unsafe"]
17531#[inline]
17532#[cfg(target_endian = "little")]
17533#[target_feature(enable = "neon")]
17534#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17535#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17536#[cfg_attr(
17537    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17538    assert_instr(ld1)
17539)]
17540#[cfg_attr(
17541    not(target_arch = "arm"),
17542    stable(feature = "neon_intrinsics", since = "1.59.0")
17543)]
17544#[cfg_attr(
17545    target_arch = "arm",
17546    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17547)]
17548pub unsafe fn vld1_u8_x2(a: *const u8) -> uint8x8x2_t {
17549    transmute(vld1_s8_x2(transmute(a)))
17550}
17551#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17552#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u8_x2)"]
17553#[doc = "## Safety"]
17554#[doc = "  * Neon instrinsic unsafe"]
17555#[inline]
17556#[cfg(target_endian = "big")]
17557#[target_feature(enable = "neon")]
17558#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17559#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17560#[cfg_attr(
17561    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17562    assert_instr(ld1)
17563)]
17564#[cfg_attr(
17565    not(target_arch = "arm"),
17566    stable(feature = "neon_intrinsics", since = "1.59.0")
17567)]
17568#[cfg_attr(
17569    target_arch = "arm",
17570    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17571)]
17572pub unsafe fn vld1_u8_x2(a: *const u8) -> uint8x8x2_t {
17573    let mut ret_val: uint8x8x2_t = transmute(vld1_s8_x2(transmute(a)));
17574    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
17575    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
17576    ret_val
17577}
17578#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17579#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u8_x3)"]
17580#[doc = "## Safety"]
17581#[doc = "  * Neon instrinsic unsafe"]
17582#[inline]
17583#[cfg(target_endian = "little")]
17584#[target_feature(enable = "neon")]
17585#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17586#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17587#[cfg_attr(
17588    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17589    assert_instr(ld1)
17590)]
17591#[cfg_attr(
17592    not(target_arch = "arm"),
17593    stable(feature = "neon_intrinsics", since = "1.59.0")
17594)]
17595#[cfg_attr(
17596    target_arch = "arm",
17597    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17598)]
17599pub unsafe fn vld1_u8_x3(a: *const u8) -> uint8x8x3_t {
17600    transmute(vld1_s8_x3(transmute(a)))
17601}
17602#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17603#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u8_x3)"]
17604#[doc = "## Safety"]
17605#[doc = "  * Neon instrinsic unsafe"]
17606#[inline]
17607#[cfg(target_endian = "big")]
17608#[target_feature(enable = "neon")]
17609#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17610#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17611#[cfg_attr(
17612    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17613    assert_instr(ld1)
17614)]
17615#[cfg_attr(
17616    not(target_arch = "arm"),
17617    stable(feature = "neon_intrinsics", since = "1.59.0")
17618)]
17619#[cfg_attr(
17620    target_arch = "arm",
17621    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17622)]
17623pub unsafe fn vld1_u8_x3(a: *const u8) -> uint8x8x3_t {
17624    let mut ret_val: uint8x8x3_t = transmute(vld1_s8_x3(transmute(a)));
17625    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
17626    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
17627    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
17628    ret_val
17629}
17630#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17631#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u8_x4)"]
17632#[doc = "## Safety"]
17633#[doc = "  * Neon instrinsic unsafe"]
17634#[inline]
17635#[cfg(target_endian = "little")]
17636#[target_feature(enable = "neon")]
17637#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17638#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17639#[cfg_attr(
17640    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17641    assert_instr(ld1)
17642)]
17643#[cfg_attr(
17644    not(target_arch = "arm"),
17645    stable(feature = "neon_intrinsics", since = "1.59.0")
17646)]
17647#[cfg_attr(
17648    target_arch = "arm",
17649    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17650)]
17651pub unsafe fn vld1_u8_x4(a: *const u8) -> uint8x8x4_t {
17652    transmute(vld1_s8_x4(transmute(a)))
17653}
17654#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17655#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u8_x4)"]
17656#[doc = "## Safety"]
17657#[doc = "  * Neon instrinsic unsafe"]
17658#[inline]
17659#[cfg(target_endian = "big")]
17660#[target_feature(enable = "neon")]
17661#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17662#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17663#[cfg_attr(
17664    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17665    assert_instr(ld1)
17666)]
17667#[cfg_attr(
17668    not(target_arch = "arm"),
17669    stable(feature = "neon_intrinsics", since = "1.59.0")
17670)]
17671#[cfg_attr(
17672    target_arch = "arm",
17673    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17674)]
17675pub unsafe fn vld1_u8_x4(a: *const u8) -> uint8x8x4_t {
17676    let mut ret_val: uint8x8x4_t = transmute(vld1_s8_x4(transmute(a)));
17677    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
17678    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
17679    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
17680    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [7, 6, 5, 4, 3, 2, 1, 0]) };
17681    ret_val
17682}
17683#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17684#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u8_x2)"]
17685#[doc = "## Safety"]
17686#[doc = "  * Neon instrinsic unsafe"]
17687#[inline]
17688#[cfg(target_endian = "little")]
17689#[target_feature(enable = "neon")]
17690#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17691#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17692#[cfg_attr(
17693    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17694    assert_instr(ld1)
17695)]
17696#[cfg_attr(
17697    not(target_arch = "arm"),
17698    stable(feature = "neon_intrinsics", since = "1.59.0")
17699)]
17700#[cfg_attr(
17701    target_arch = "arm",
17702    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17703)]
17704pub unsafe fn vld1q_u8_x2(a: *const u8) -> uint8x16x2_t {
17705    transmute(vld1q_s8_x2(transmute(a)))
17706}
17707#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17708#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u8_x2)"]
17709#[doc = "## Safety"]
17710#[doc = "  * Neon instrinsic unsafe"]
17711#[inline]
17712#[cfg(target_endian = "big")]
17713#[target_feature(enable = "neon")]
17714#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17715#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17716#[cfg_attr(
17717    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17718    assert_instr(ld1)
17719)]
17720#[cfg_attr(
17721    not(target_arch = "arm"),
17722    stable(feature = "neon_intrinsics", since = "1.59.0")
17723)]
17724#[cfg_attr(
17725    target_arch = "arm",
17726    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17727)]
17728pub unsafe fn vld1q_u8_x2(a: *const u8) -> uint8x16x2_t {
17729    let mut ret_val: uint8x16x2_t = transmute(vld1q_s8_x2(transmute(a)));
17730    ret_val.0 = unsafe {
17731        simd_shuffle!(
17732            ret_val.0,
17733            ret_val.0,
17734            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
17735        )
17736    };
17737    ret_val.1 = unsafe {
17738        simd_shuffle!(
17739            ret_val.1,
17740            ret_val.1,
17741            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
17742        )
17743    };
17744    ret_val
17745}
17746#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17747#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u8_x3)"]
17748#[doc = "## Safety"]
17749#[doc = "  * Neon instrinsic unsafe"]
17750#[inline]
17751#[cfg(target_endian = "little")]
17752#[target_feature(enable = "neon")]
17753#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17754#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17755#[cfg_attr(
17756    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17757    assert_instr(ld1)
17758)]
17759#[cfg_attr(
17760    not(target_arch = "arm"),
17761    stable(feature = "neon_intrinsics", since = "1.59.0")
17762)]
17763#[cfg_attr(
17764    target_arch = "arm",
17765    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17766)]
17767pub unsafe fn vld1q_u8_x3(a: *const u8) -> uint8x16x3_t {
17768    transmute(vld1q_s8_x3(transmute(a)))
17769}
17770#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17771#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u8_x3)"]
17772#[doc = "## Safety"]
17773#[doc = "  * Neon instrinsic unsafe"]
17774#[inline]
17775#[cfg(target_endian = "big")]
17776#[target_feature(enable = "neon")]
17777#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17778#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17779#[cfg_attr(
17780    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17781    assert_instr(ld1)
17782)]
17783#[cfg_attr(
17784    not(target_arch = "arm"),
17785    stable(feature = "neon_intrinsics", since = "1.59.0")
17786)]
17787#[cfg_attr(
17788    target_arch = "arm",
17789    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17790)]
17791pub unsafe fn vld1q_u8_x3(a: *const u8) -> uint8x16x3_t {
17792    let mut ret_val: uint8x16x3_t = transmute(vld1q_s8_x3(transmute(a)));
17793    ret_val.0 = unsafe {
17794        simd_shuffle!(
17795            ret_val.0,
17796            ret_val.0,
17797            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
17798        )
17799    };
17800    ret_val.1 = unsafe {
17801        simd_shuffle!(
17802            ret_val.1,
17803            ret_val.1,
17804            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
17805        )
17806    };
17807    ret_val.2 = unsafe {
17808        simd_shuffle!(
17809            ret_val.2,
17810            ret_val.2,
17811            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
17812        )
17813    };
17814    ret_val
17815}
17816#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17817#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u8_x4)"]
17818#[doc = "## Safety"]
17819#[doc = "  * Neon instrinsic unsafe"]
17820#[inline]
17821#[cfg(target_endian = "little")]
17822#[target_feature(enable = "neon")]
17823#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17824#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17825#[cfg_attr(
17826    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17827    assert_instr(ld1)
17828)]
17829#[cfg_attr(
17830    not(target_arch = "arm"),
17831    stable(feature = "neon_intrinsics", since = "1.59.0")
17832)]
17833#[cfg_attr(
17834    target_arch = "arm",
17835    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17836)]
17837pub unsafe fn vld1q_u8_x4(a: *const u8) -> uint8x16x4_t {
17838    transmute(vld1q_s8_x4(transmute(a)))
17839}
17840#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17841#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u8_x4)"]
17842#[doc = "## Safety"]
17843#[doc = "  * Neon instrinsic unsafe"]
17844#[inline]
17845#[cfg(target_endian = "big")]
17846#[target_feature(enable = "neon")]
17847#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17848#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17849#[cfg_attr(
17850    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17851    assert_instr(ld1)
17852)]
17853#[cfg_attr(
17854    not(target_arch = "arm"),
17855    stable(feature = "neon_intrinsics", since = "1.59.0")
17856)]
17857#[cfg_attr(
17858    target_arch = "arm",
17859    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17860)]
17861pub unsafe fn vld1q_u8_x4(a: *const u8) -> uint8x16x4_t {
17862    let mut ret_val: uint8x16x4_t = transmute(vld1q_s8_x4(transmute(a)));
17863    ret_val.0 = unsafe {
17864        simd_shuffle!(
17865            ret_val.0,
17866            ret_val.0,
17867            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
17868        )
17869    };
17870    ret_val.1 = unsafe {
17871        simd_shuffle!(
17872            ret_val.1,
17873            ret_val.1,
17874            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
17875        )
17876    };
17877    ret_val.2 = unsafe {
17878        simd_shuffle!(
17879            ret_val.2,
17880            ret_val.2,
17881            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
17882        )
17883    };
17884    ret_val.3 = unsafe {
17885        simd_shuffle!(
17886            ret_val.3,
17887            ret_val.3,
17888            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
17889        )
17890    };
17891    ret_val
17892}
17893#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17894#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u16_x2)"]
17895#[doc = "## Safety"]
17896#[doc = "  * Neon instrinsic unsafe"]
17897#[inline]
17898#[cfg(target_endian = "little")]
17899#[target_feature(enable = "neon")]
17900#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17901#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17902#[cfg_attr(
17903    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17904    assert_instr(ld1)
17905)]
17906#[cfg_attr(
17907    not(target_arch = "arm"),
17908    stable(feature = "neon_intrinsics", since = "1.59.0")
17909)]
17910#[cfg_attr(
17911    target_arch = "arm",
17912    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17913)]
17914pub unsafe fn vld1_u16_x2(a: *const u16) -> uint16x4x2_t {
17915    transmute(vld1_s16_x2(transmute(a)))
17916}
17917#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17918#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u16_x2)"]
17919#[doc = "## Safety"]
17920#[doc = "  * Neon instrinsic unsafe"]
17921#[inline]
17922#[cfg(target_endian = "big")]
17923#[target_feature(enable = "neon")]
17924#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17925#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17926#[cfg_attr(
17927    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17928    assert_instr(ld1)
17929)]
17930#[cfg_attr(
17931    not(target_arch = "arm"),
17932    stable(feature = "neon_intrinsics", since = "1.59.0")
17933)]
17934#[cfg_attr(
17935    target_arch = "arm",
17936    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17937)]
17938pub unsafe fn vld1_u16_x2(a: *const u16) -> uint16x4x2_t {
17939    let mut ret_val: uint16x4x2_t = transmute(vld1_s16_x2(transmute(a)));
17940    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
17941    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
17942    ret_val
17943}
17944#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17945#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u16_x3)"]
17946#[doc = "## Safety"]
17947#[doc = "  * Neon instrinsic unsafe"]
17948#[inline]
17949#[cfg(target_endian = "little")]
17950#[target_feature(enable = "neon")]
17951#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17952#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17953#[cfg_attr(
17954    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17955    assert_instr(ld1)
17956)]
17957#[cfg_attr(
17958    not(target_arch = "arm"),
17959    stable(feature = "neon_intrinsics", since = "1.59.0")
17960)]
17961#[cfg_attr(
17962    target_arch = "arm",
17963    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17964)]
17965pub unsafe fn vld1_u16_x3(a: *const u16) -> uint16x4x3_t {
17966    transmute(vld1_s16_x3(transmute(a)))
17967}
17968#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17969#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u16_x3)"]
17970#[doc = "## Safety"]
17971#[doc = "  * Neon instrinsic unsafe"]
17972#[inline]
17973#[cfg(target_endian = "big")]
17974#[target_feature(enable = "neon")]
17975#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17976#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17977#[cfg_attr(
17978    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17979    assert_instr(ld1)
17980)]
17981#[cfg_attr(
17982    not(target_arch = "arm"),
17983    stable(feature = "neon_intrinsics", since = "1.59.0")
17984)]
17985#[cfg_attr(
17986    target_arch = "arm",
17987    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17988)]
17989pub unsafe fn vld1_u16_x3(a: *const u16) -> uint16x4x3_t {
17990    let mut ret_val: uint16x4x3_t = transmute(vld1_s16_x3(transmute(a)));
17991    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
17992    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
17993    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [3, 2, 1, 0]) };
17994    ret_val
17995}
17996#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17997#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u16_x4)"]
17998#[doc = "## Safety"]
17999#[doc = "  * Neon instrinsic unsafe"]
18000#[inline]
18001#[cfg(target_endian = "little")]
18002#[target_feature(enable = "neon")]
18003#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18004#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18005#[cfg_attr(
18006    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18007    assert_instr(ld1)
18008)]
18009#[cfg_attr(
18010    not(target_arch = "arm"),
18011    stable(feature = "neon_intrinsics", since = "1.59.0")
18012)]
18013#[cfg_attr(
18014    target_arch = "arm",
18015    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18016)]
18017pub unsafe fn vld1_u16_x4(a: *const u16) -> uint16x4x4_t {
18018    transmute(vld1_s16_x4(transmute(a)))
18019}
18020#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18021#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u16_x4)"]
18022#[doc = "## Safety"]
18023#[doc = "  * Neon instrinsic unsafe"]
18024#[inline]
18025#[cfg(target_endian = "big")]
18026#[target_feature(enable = "neon")]
18027#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18028#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18029#[cfg_attr(
18030    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18031    assert_instr(ld1)
18032)]
18033#[cfg_attr(
18034    not(target_arch = "arm"),
18035    stable(feature = "neon_intrinsics", since = "1.59.0")
18036)]
18037#[cfg_attr(
18038    target_arch = "arm",
18039    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18040)]
18041pub unsafe fn vld1_u16_x4(a: *const u16) -> uint16x4x4_t {
18042    let mut ret_val: uint16x4x4_t = transmute(vld1_s16_x4(transmute(a)));
18043    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
18044    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
18045    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [3, 2, 1, 0]) };
18046    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [3, 2, 1, 0]) };
18047    ret_val
18048}
18049#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18050#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u16_x2)"]
18051#[doc = "## Safety"]
18052#[doc = "  * Neon instrinsic unsafe"]
18053#[inline]
18054#[cfg(target_endian = "little")]
18055#[target_feature(enable = "neon")]
18056#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18057#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18058#[cfg_attr(
18059    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18060    assert_instr(ld1)
18061)]
18062#[cfg_attr(
18063    not(target_arch = "arm"),
18064    stable(feature = "neon_intrinsics", since = "1.59.0")
18065)]
18066#[cfg_attr(
18067    target_arch = "arm",
18068    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18069)]
18070pub unsafe fn vld1q_u16_x2(a: *const u16) -> uint16x8x2_t {
18071    transmute(vld1q_s16_x2(transmute(a)))
18072}
18073#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18074#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u16_x2)"]
18075#[doc = "## Safety"]
18076#[doc = "  * Neon instrinsic unsafe"]
18077#[inline]
18078#[cfg(target_endian = "big")]
18079#[target_feature(enable = "neon")]
18080#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18081#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18082#[cfg_attr(
18083    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18084    assert_instr(ld1)
18085)]
18086#[cfg_attr(
18087    not(target_arch = "arm"),
18088    stable(feature = "neon_intrinsics", since = "1.59.0")
18089)]
18090#[cfg_attr(
18091    target_arch = "arm",
18092    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18093)]
18094pub unsafe fn vld1q_u16_x2(a: *const u16) -> uint16x8x2_t {
18095    let mut ret_val: uint16x8x2_t = transmute(vld1q_s16_x2(transmute(a)));
18096    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
18097    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
18098    ret_val
18099}
18100#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18101#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u16_x3)"]
18102#[doc = "## Safety"]
18103#[doc = "  * Neon instrinsic unsafe"]
18104#[inline]
18105#[cfg(target_endian = "little")]
18106#[target_feature(enable = "neon")]
18107#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18108#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18109#[cfg_attr(
18110    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18111    assert_instr(ld1)
18112)]
18113#[cfg_attr(
18114    not(target_arch = "arm"),
18115    stable(feature = "neon_intrinsics", since = "1.59.0")
18116)]
18117#[cfg_attr(
18118    target_arch = "arm",
18119    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18120)]
18121pub unsafe fn vld1q_u16_x3(a: *const u16) -> uint16x8x3_t {
18122    transmute(vld1q_s16_x3(transmute(a)))
18123}
18124#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18125#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u16_x3)"]
18126#[doc = "## Safety"]
18127#[doc = "  * Neon instrinsic unsafe"]
18128#[inline]
18129#[cfg(target_endian = "big")]
18130#[target_feature(enable = "neon")]
18131#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18132#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18133#[cfg_attr(
18134    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18135    assert_instr(ld1)
18136)]
18137#[cfg_attr(
18138    not(target_arch = "arm"),
18139    stable(feature = "neon_intrinsics", since = "1.59.0")
18140)]
18141#[cfg_attr(
18142    target_arch = "arm",
18143    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18144)]
18145pub unsafe fn vld1q_u16_x3(a: *const u16) -> uint16x8x3_t {
18146    let mut ret_val: uint16x8x3_t = transmute(vld1q_s16_x3(transmute(a)));
18147    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
18148    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
18149    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
18150    ret_val
18151}
18152#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18153#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u16_x4)"]
18154#[doc = "## Safety"]
18155#[doc = "  * Neon instrinsic unsafe"]
18156#[inline]
18157#[cfg(target_endian = "little")]
18158#[target_feature(enable = "neon")]
18159#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18160#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18161#[cfg_attr(
18162    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18163    assert_instr(ld1)
18164)]
18165#[cfg_attr(
18166    not(target_arch = "arm"),
18167    stable(feature = "neon_intrinsics", since = "1.59.0")
18168)]
18169#[cfg_attr(
18170    target_arch = "arm",
18171    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18172)]
18173pub unsafe fn vld1q_u16_x4(a: *const u16) -> uint16x8x4_t {
18174    transmute(vld1q_s16_x4(transmute(a)))
18175}
18176#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18177#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u16_x4)"]
18178#[doc = "## Safety"]
18179#[doc = "  * Neon instrinsic unsafe"]
18180#[inline]
18181#[cfg(target_endian = "big")]
18182#[target_feature(enable = "neon")]
18183#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18184#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18185#[cfg_attr(
18186    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18187    assert_instr(ld1)
18188)]
18189#[cfg_attr(
18190    not(target_arch = "arm"),
18191    stable(feature = "neon_intrinsics", since = "1.59.0")
18192)]
18193#[cfg_attr(
18194    target_arch = "arm",
18195    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18196)]
18197pub unsafe fn vld1q_u16_x4(a: *const u16) -> uint16x8x4_t {
18198    let mut ret_val: uint16x8x4_t = transmute(vld1q_s16_x4(transmute(a)));
18199    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
18200    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
18201    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
18202    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [7, 6, 5, 4, 3, 2, 1, 0]) };
18203    ret_val
18204}
18205#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18206#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u32_x2)"]
18207#[doc = "## Safety"]
18208#[doc = "  * Neon instrinsic unsafe"]
18209#[inline]
18210#[cfg(target_endian = "little")]
18211#[target_feature(enable = "neon")]
18212#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18213#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18214#[cfg_attr(
18215    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18216    assert_instr(ld1)
18217)]
18218#[cfg_attr(
18219    not(target_arch = "arm"),
18220    stable(feature = "neon_intrinsics", since = "1.59.0")
18221)]
18222#[cfg_attr(
18223    target_arch = "arm",
18224    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18225)]
18226pub unsafe fn vld1_u32_x2(a: *const u32) -> uint32x2x2_t {
18227    transmute(vld1_s32_x2(transmute(a)))
18228}
18229#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18230#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u32_x2)"]
18231#[doc = "## Safety"]
18232#[doc = "  * Neon instrinsic unsafe"]
18233#[inline]
18234#[cfg(target_endian = "big")]
18235#[target_feature(enable = "neon")]
18236#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18237#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18238#[cfg_attr(
18239    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18240    assert_instr(ld1)
18241)]
18242#[cfg_attr(
18243    not(target_arch = "arm"),
18244    stable(feature = "neon_intrinsics", since = "1.59.0")
18245)]
18246#[cfg_attr(
18247    target_arch = "arm",
18248    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18249)]
18250pub unsafe fn vld1_u32_x2(a: *const u32) -> uint32x2x2_t {
18251    let mut ret_val: uint32x2x2_t = transmute(vld1_s32_x2(transmute(a)));
18252    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [1, 0]) };
18253    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [1, 0]) };
18254    ret_val
18255}
18256#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18257#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u32_x3)"]
18258#[doc = "## Safety"]
18259#[doc = "  * Neon instrinsic unsafe"]
18260#[inline]
18261#[cfg(target_endian = "little")]
18262#[target_feature(enable = "neon")]
18263#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18264#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18265#[cfg_attr(
18266    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18267    assert_instr(ld1)
18268)]
18269#[cfg_attr(
18270    not(target_arch = "arm"),
18271    stable(feature = "neon_intrinsics", since = "1.59.0")
18272)]
18273#[cfg_attr(
18274    target_arch = "arm",
18275    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18276)]
18277pub unsafe fn vld1_u32_x3(a: *const u32) -> uint32x2x3_t {
18278    transmute(vld1_s32_x3(transmute(a)))
18279}
18280#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18281#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u32_x3)"]
18282#[doc = "## Safety"]
18283#[doc = "  * Neon instrinsic unsafe"]
18284#[inline]
18285#[cfg(target_endian = "big")]
18286#[target_feature(enable = "neon")]
18287#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18288#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18289#[cfg_attr(
18290    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18291    assert_instr(ld1)
18292)]
18293#[cfg_attr(
18294    not(target_arch = "arm"),
18295    stable(feature = "neon_intrinsics", since = "1.59.0")
18296)]
18297#[cfg_attr(
18298    target_arch = "arm",
18299    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18300)]
18301pub unsafe fn vld1_u32_x3(a: *const u32) -> uint32x2x3_t {
18302    let mut ret_val: uint32x2x3_t = transmute(vld1_s32_x3(transmute(a)));
18303    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [1, 0]) };
18304    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [1, 0]) };
18305    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [1, 0]) };
18306    ret_val
18307}
18308#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18309#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u32_x4)"]
18310#[doc = "## Safety"]
18311#[doc = "  * Neon instrinsic unsafe"]
18312#[inline]
18313#[cfg(target_endian = "little")]
18314#[target_feature(enable = "neon")]
18315#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18316#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18317#[cfg_attr(
18318    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18319    assert_instr(ld1)
18320)]
18321#[cfg_attr(
18322    not(target_arch = "arm"),
18323    stable(feature = "neon_intrinsics", since = "1.59.0")
18324)]
18325#[cfg_attr(
18326    target_arch = "arm",
18327    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18328)]
18329pub unsafe fn vld1_u32_x4(a: *const u32) -> uint32x2x4_t {
18330    transmute(vld1_s32_x4(transmute(a)))
18331}
18332#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18333#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u32_x4)"]
18334#[doc = "## Safety"]
18335#[doc = "  * Neon instrinsic unsafe"]
18336#[inline]
18337#[cfg(target_endian = "big")]
18338#[target_feature(enable = "neon")]
18339#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18340#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18341#[cfg_attr(
18342    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18343    assert_instr(ld1)
18344)]
18345#[cfg_attr(
18346    not(target_arch = "arm"),
18347    stable(feature = "neon_intrinsics", since = "1.59.0")
18348)]
18349#[cfg_attr(
18350    target_arch = "arm",
18351    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18352)]
18353pub unsafe fn vld1_u32_x4(a: *const u32) -> uint32x2x4_t {
18354    let mut ret_val: uint32x2x4_t = transmute(vld1_s32_x4(transmute(a)));
18355    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [1, 0]) };
18356    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [1, 0]) };
18357    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [1, 0]) };
18358    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [1, 0]) };
18359    ret_val
18360}
18361#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18362#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u32_x2)"]
18363#[doc = "## Safety"]
18364#[doc = "  * Neon instrinsic unsafe"]
18365#[inline]
18366#[cfg(target_endian = "little")]
18367#[target_feature(enable = "neon")]
18368#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18369#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18370#[cfg_attr(
18371    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18372    assert_instr(ld1)
18373)]
18374#[cfg_attr(
18375    not(target_arch = "arm"),
18376    stable(feature = "neon_intrinsics", since = "1.59.0")
18377)]
18378#[cfg_attr(
18379    target_arch = "arm",
18380    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18381)]
18382pub unsafe fn vld1q_u32_x2(a: *const u32) -> uint32x4x2_t {
18383    transmute(vld1q_s32_x2(transmute(a)))
18384}
18385#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18386#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u32_x2)"]
18387#[doc = "## Safety"]
18388#[doc = "  * Neon instrinsic unsafe"]
18389#[inline]
18390#[cfg(target_endian = "big")]
18391#[target_feature(enable = "neon")]
18392#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18393#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18394#[cfg_attr(
18395    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18396    assert_instr(ld1)
18397)]
18398#[cfg_attr(
18399    not(target_arch = "arm"),
18400    stable(feature = "neon_intrinsics", since = "1.59.0")
18401)]
18402#[cfg_attr(
18403    target_arch = "arm",
18404    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18405)]
18406pub unsafe fn vld1q_u32_x2(a: *const u32) -> uint32x4x2_t {
18407    let mut ret_val: uint32x4x2_t = transmute(vld1q_s32_x2(transmute(a)));
18408    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
18409    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
18410    ret_val
18411}
18412#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18413#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u32_x3)"]
18414#[doc = "## Safety"]
18415#[doc = "  * Neon instrinsic unsafe"]
18416#[inline]
18417#[cfg(target_endian = "little")]
18418#[target_feature(enable = "neon")]
18419#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18420#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18421#[cfg_attr(
18422    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18423    assert_instr(ld1)
18424)]
18425#[cfg_attr(
18426    not(target_arch = "arm"),
18427    stable(feature = "neon_intrinsics", since = "1.59.0")
18428)]
18429#[cfg_attr(
18430    target_arch = "arm",
18431    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18432)]
18433pub unsafe fn vld1q_u32_x3(a: *const u32) -> uint32x4x3_t {
18434    transmute(vld1q_s32_x3(transmute(a)))
18435}
18436#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18437#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u32_x3)"]
18438#[doc = "## Safety"]
18439#[doc = "  * Neon instrinsic unsafe"]
18440#[inline]
18441#[cfg(target_endian = "big")]
18442#[target_feature(enable = "neon")]
18443#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18444#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18445#[cfg_attr(
18446    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18447    assert_instr(ld1)
18448)]
18449#[cfg_attr(
18450    not(target_arch = "arm"),
18451    stable(feature = "neon_intrinsics", since = "1.59.0")
18452)]
18453#[cfg_attr(
18454    target_arch = "arm",
18455    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18456)]
18457pub unsafe fn vld1q_u32_x3(a: *const u32) -> uint32x4x3_t {
18458    let mut ret_val: uint32x4x3_t = transmute(vld1q_s32_x3(transmute(a)));
18459    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
18460    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
18461    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [3, 2, 1, 0]) };
18462    ret_val
18463}
18464#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18465#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u32_x4)"]
18466#[doc = "## Safety"]
18467#[doc = "  * Neon instrinsic unsafe"]
18468#[inline]
18469#[cfg(target_endian = "little")]
18470#[target_feature(enable = "neon")]
18471#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18472#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18473#[cfg_attr(
18474    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18475    assert_instr(ld1)
18476)]
18477#[cfg_attr(
18478    not(target_arch = "arm"),
18479    stable(feature = "neon_intrinsics", since = "1.59.0")
18480)]
18481#[cfg_attr(
18482    target_arch = "arm",
18483    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18484)]
18485pub unsafe fn vld1q_u32_x4(a: *const u32) -> uint32x4x4_t {
18486    transmute(vld1q_s32_x4(transmute(a)))
18487}
18488#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18489#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u32_x4)"]
18490#[doc = "## Safety"]
18491#[doc = "  * Neon instrinsic unsafe"]
18492#[inline]
18493#[cfg(target_endian = "big")]
18494#[target_feature(enable = "neon")]
18495#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18496#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18497#[cfg_attr(
18498    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18499    assert_instr(ld1)
18500)]
18501#[cfg_attr(
18502    not(target_arch = "arm"),
18503    stable(feature = "neon_intrinsics", since = "1.59.0")
18504)]
18505#[cfg_attr(
18506    target_arch = "arm",
18507    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18508)]
18509pub unsafe fn vld1q_u32_x4(a: *const u32) -> uint32x4x4_t {
18510    let mut ret_val: uint32x4x4_t = transmute(vld1q_s32_x4(transmute(a)));
18511    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
18512    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
18513    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [3, 2, 1, 0]) };
18514    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [3, 2, 1, 0]) };
18515    ret_val
18516}
18517#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18518#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u64_x2)"]
18519#[doc = "## Safety"]
18520#[doc = "  * Neon instrinsic unsafe"]
18521#[inline]
18522#[target_feature(enable = "neon")]
18523#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18524#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18525#[cfg_attr(
18526    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18527    assert_instr(ld1)
18528)]
18529#[cfg_attr(
18530    not(target_arch = "arm"),
18531    stable(feature = "neon_intrinsics", since = "1.59.0")
18532)]
18533#[cfg_attr(
18534    target_arch = "arm",
18535    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18536)]
18537pub unsafe fn vld1_u64_x2(a: *const u64) -> uint64x1x2_t {
18538    transmute(vld1_s64_x2(transmute(a)))
18539}
18540#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18541#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u64_x3)"]
18542#[doc = "## Safety"]
18543#[doc = "  * Neon instrinsic unsafe"]
18544#[inline]
18545#[target_feature(enable = "neon")]
18546#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18547#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18548#[cfg_attr(
18549    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18550    assert_instr(ld1)
18551)]
18552#[cfg_attr(
18553    not(target_arch = "arm"),
18554    stable(feature = "neon_intrinsics", since = "1.59.0")
18555)]
18556#[cfg_attr(
18557    target_arch = "arm",
18558    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18559)]
18560pub unsafe fn vld1_u64_x3(a: *const u64) -> uint64x1x3_t {
18561    transmute(vld1_s64_x3(transmute(a)))
18562}
18563#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18564#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u64_x4)"]
18565#[doc = "## Safety"]
18566#[doc = "  * Neon instrinsic unsafe"]
18567#[inline]
18568#[target_feature(enable = "neon")]
18569#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18570#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18571#[cfg_attr(
18572    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18573    assert_instr(ld1)
18574)]
18575#[cfg_attr(
18576    not(target_arch = "arm"),
18577    stable(feature = "neon_intrinsics", since = "1.59.0")
18578)]
18579#[cfg_attr(
18580    target_arch = "arm",
18581    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18582)]
18583pub unsafe fn vld1_u64_x4(a: *const u64) -> uint64x1x4_t {
18584    transmute(vld1_s64_x4(transmute(a)))
18585}
18586#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18587#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u64_x2)"]
18588#[doc = "## Safety"]
18589#[doc = "  * Neon instrinsic unsafe"]
18590#[inline]
18591#[cfg(target_endian = "little")]
18592#[target_feature(enable = "neon")]
18593#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18594#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18595#[cfg_attr(
18596    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18597    assert_instr(ld1)
18598)]
18599#[cfg_attr(
18600    not(target_arch = "arm"),
18601    stable(feature = "neon_intrinsics", since = "1.59.0")
18602)]
18603#[cfg_attr(
18604    target_arch = "arm",
18605    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18606)]
18607pub unsafe fn vld1q_u64_x2(a: *const u64) -> uint64x2x2_t {
18608    transmute(vld1q_s64_x2(transmute(a)))
18609}
18610#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18611#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u64_x2)"]
18612#[doc = "## Safety"]
18613#[doc = "  * Neon instrinsic unsafe"]
18614#[inline]
18615#[cfg(target_endian = "big")]
18616#[target_feature(enable = "neon")]
18617#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18618#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18619#[cfg_attr(
18620    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18621    assert_instr(ld1)
18622)]
18623#[cfg_attr(
18624    not(target_arch = "arm"),
18625    stable(feature = "neon_intrinsics", since = "1.59.0")
18626)]
18627#[cfg_attr(
18628    target_arch = "arm",
18629    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18630)]
18631pub unsafe fn vld1q_u64_x2(a: *const u64) -> uint64x2x2_t {
18632    let mut ret_val: uint64x2x2_t = transmute(vld1q_s64_x2(transmute(a)));
18633    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [1, 0]) };
18634    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [1, 0]) };
18635    ret_val
18636}
18637#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18638#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u64_x3)"]
18639#[doc = "## Safety"]
18640#[doc = "  * Neon instrinsic unsafe"]
18641#[inline]
18642#[cfg(target_endian = "little")]
18643#[target_feature(enable = "neon")]
18644#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18645#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18646#[cfg_attr(
18647    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18648    assert_instr(ld1)
18649)]
18650#[cfg_attr(
18651    not(target_arch = "arm"),
18652    stable(feature = "neon_intrinsics", since = "1.59.0")
18653)]
18654#[cfg_attr(
18655    target_arch = "arm",
18656    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18657)]
18658pub unsafe fn vld1q_u64_x3(a: *const u64) -> uint64x2x3_t {
18659    transmute(vld1q_s64_x3(transmute(a)))
18660}
18661#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18662#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u64_x3)"]
18663#[doc = "## Safety"]
18664#[doc = "  * Neon instrinsic unsafe"]
18665#[inline]
18666#[cfg(target_endian = "big")]
18667#[target_feature(enable = "neon")]
18668#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18669#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18670#[cfg_attr(
18671    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18672    assert_instr(ld1)
18673)]
18674#[cfg_attr(
18675    not(target_arch = "arm"),
18676    stable(feature = "neon_intrinsics", since = "1.59.0")
18677)]
18678#[cfg_attr(
18679    target_arch = "arm",
18680    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18681)]
18682pub unsafe fn vld1q_u64_x3(a: *const u64) -> uint64x2x3_t {
18683    let mut ret_val: uint64x2x3_t = transmute(vld1q_s64_x3(transmute(a)));
18684    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [1, 0]) };
18685    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [1, 0]) };
18686    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [1, 0]) };
18687    ret_val
18688}
18689#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18690#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u64_x4)"]
18691#[doc = "## Safety"]
18692#[doc = "  * Neon instrinsic unsafe"]
18693#[inline]
18694#[cfg(target_endian = "little")]
18695#[target_feature(enable = "neon")]
18696#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18697#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18698#[cfg_attr(
18699    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18700    assert_instr(ld1)
18701)]
18702#[cfg_attr(
18703    not(target_arch = "arm"),
18704    stable(feature = "neon_intrinsics", since = "1.59.0")
18705)]
18706#[cfg_attr(
18707    target_arch = "arm",
18708    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18709)]
18710pub unsafe fn vld1q_u64_x4(a: *const u64) -> uint64x2x4_t {
18711    transmute(vld1q_s64_x4(transmute(a)))
18712}
18713#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18714#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u64_x4)"]
18715#[doc = "## Safety"]
18716#[doc = "  * Neon instrinsic unsafe"]
18717#[inline]
18718#[cfg(target_endian = "big")]
18719#[target_feature(enable = "neon")]
18720#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18721#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18722#[cfg_attr(
18723    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18724    assert_instr(ld1)
18725)]
18726#[cfg_attr(
18727    not(target_arch = "arm"),
18728    stable(feature = "neon_intrinsics", since = "1.59.0")
18729)]
18730#[cfg_attr(
18731    target_arch = "arm",
18732    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18733)]
18734pub unsafe fn vld1q_u64_x4(a: *const u64) -> uint64x2x4_t {
18735    let mut ret_val: uint64x2x4_t = transmute(vld1q_s64_x4(transmute(a)));
18736    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [1, 0]) };
18737    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [1, 0]) };
18738    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [1, 0]) };
18739    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [1, 0]) };
18740    ret_val
18741}
18742#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18743#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p8_x2)"]
18744#[doc = "## Safety"]
18745#[doc = "  * Neon instrinsic unsafe"]
18746#[inline]
18747#[cfg(target_endian = "little")]
18748#[target_feature(enable = "neon")]
18749#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18750#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18751#[cfg_attr(
18752    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18753    assert_instr(ld1)
18754)]
18755#[cfg_attr(
18756    not(target_arch = "arm"),
18757    stable(feature = "neon_intrinsics", since = "1.59.0")
18758)]
18759#[cfg_attr(
18760    target_arch = "arm",
18761    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18762)]
18763pub unsafe fn vld1_p8_x2(a: *const p8) -> poly8x8x2_t {
18764    transmute(vld1_s8_x2(transmute(a)))
18765}
18766#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18767#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p8_x2)"]
18768#[doc = "## Safety"]
18769#[doc = "  * Neon instrinsic unsafe"]
18770#[inline]
18771#[cfg(target_endian = "big")]
18772#[target_feature(enable = "neon")]
18773#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18774#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18775#[cfg_attr(
18776    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18777    assert_instr(ld1)
18778)]
18779#[cfg_attr(
18780    not(target_arch = "arm"),
18781    stable(feature = "neon_intrinsics", since = "1.59.0")
18782)]
18783#[cfg_attr(
18784    target_arch = "arm",
18785    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18786)]
18787pub unsafe fn vld1_p8_x2(a: *const p8) -> poly8x8x2_t {
18788    let mut ret_val: poly8x8x2_t = transmute(vld1_s8_x2(transmute(a)));
18789    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
18790    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
18791    ret_val
18792}
18793#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18794#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p8_x3)"]
18795#[doc = "## Safety"]
18796#[doc = "  * Neon instrinsic unsafe"]
18797#[inline]
18798#[cfg(target_endian = "little")]
18799#[target_feature(enable = "neon")]
18800#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18801#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18802#[cfg_attr(
18803    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18804    assert_instr(ld1)
18805)]
18806#[cfg_attr(
18807    not(target_arch = "arm"),
18808    stable(feature = "neon_intrinsics", since = "1.59.0")
18809)]
18810#[cfg_attr(
18811    target_arch = "arm",
18812    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18813)]
18814pub unsafe fn vld1_p8_x3(a: *const p8) -> poly8x8x3_t {
18815    transmute(vld1_s8_x3(transmute(a)))
18816}
18817#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18818#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p8_x3)"]
18819#[doc = "## Safety"]
18820#[doc = "  * Neon instrinsic unsafe"]
18821#[inline]
18822#[cfg(target_endian = "big")]
18823#[target_feature(enable = "neon")]
18824#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18825#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18826#[cfg_attr(
18827    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18828    assert_instr(ld1)
18829)]
18830#[cfg_attr(
18831    not(target_arch = "arm"),
18832    stable(feature = "neon_intrinsics", since = "1.59.0")
18833)]
18834#[cfg_attr(
18835    target_arch = "arm",
18836    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18837)]
18838pub unsafe fn vld1_p8_x3(a: *const p8) -> poly8x8x3_t {
18839    let mut ret_val: poly8x8x3_t = transmute(vld1_s8_x3(transmute(a)));
18840    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
18841    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
18842    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
18843    ret_val
18844}
18845#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18846#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p8_x4)"]
18847#[doc = "## Safety"]
18848#[doc = "  * Neon instrinsic unsafe"]
18849#[inline]
18850#[cfg(target_endian = "little")]
18851#[target_feature(enable = "neon")]
18852#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18853#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18854#[cfg_attr(
18855    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18856    assert_instr(ld1)
18857)]
18858#[cfg_attr(
18859    not(target_arch = "arm"),
18860    stable(feature = "neon_intrinsics", since = "1.59.0")
18861)]
18862#[cfg_attr(
18863    target_arch = "arm",
18864    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18865)]
18866pub unsafe fn vld1_p8_x4(a: *const p8) -> poly8x8x4_t {
18867    transmute(vld1_s8_x4(transmute(a)))
18868}
18869#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18870#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p8_x4)"]
18871#[doc = "## Safety"]
18872#[doc = "  * Neon instrinsic unsafe"]
18873#[inline]
18874#[cfg(target_endian = "big")]
18875#[target_feature(enable = "neon")]
18876#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18877#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18878#[cfg_attr(
18879    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18880    assert_instr(ld1)
18881)]
18882#[cfg_attr(
18883    not(target_arch = "arm"),
18884    stable(feature = "neon_intrinsics", since = "1.59.0")
18885)]
18886#[cfg_attr(
18887    target_arch = "arm",
18888    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18889)]
18890pub unsafe fn vld1_p8_x4(a: *const p8) -> poly8x8x4_t {
18891    let mut ret_val: poly8x8x4_t = transmute(vld1_s8_x4(transmute(a)));
18892    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
18893    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
18894    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
18895    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [7, 6, 5, 4, 3, 2, 1, 0]) };
18896    ret_val
18897}
18898#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18899#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p8_x2)"]
18900#[doc = "## Safety"]
18901#[doc = "  * Neon instrinsic unsafe"]
18902#[inline]
18903#[cfg(target_endian = "little")]
18904#[target_feature(enable = "neon")]
18905#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18906#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18907#[cfg_attr(
18908    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18909    assert_instr(ld1)
18910)]
18911#[cfg_attr(
18912    not(target_arch = "arm"),
18913    stable(feature = "neon_intrinsics", since = "1.59.0")
18914)]
18915#[cfg_attr(
18916    target_arch = "arm",
18917    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18918)]
18919pub unsafe fn vld1q_p8_x2(a: *const p8) -> poly8x16x2_t {
18920    transmute(vld1q_s8_x2(transmute(a)))
18921}
18922#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18923#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p8_x2)"]
18924#[doc = "## Safety"]
18925#[doc = "  * Neon instrinsic unsafe"]
18926#[inline]
18927#[cfg(target_endian = "big")]
18928#[target_feature(enable = "neon")]
18929#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18930#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18931#[cfg_attr(
18932    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18933    assert_instr(ld1)
18934)]
18935#[cfg_attr(
18936    not(target_arch = "arm"),
18937    stable(feature = "neon_intrinsics", since = "1.59.0")
18938)]
18939#[cfg_attr(
18940    target_arch = "arm",
18941    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18942)]
18943pub unsafe fn vld1q_p8_x2(a: *const p8) -> poly8x16x2_t {
18944    let mut ret_val: poly8x16x2_t = transmute(vld1q_s8_x2(transmute(a)));
18945    ret_val.0 = unsafe {
18946        simd_shuffle!(
18947            ret_val.0,
18948            ret_val.0,
18949            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
18950        )
18951    };
18952    ret_val.1 = unsafe {
18953        simd_shuffle!(
18954            ret_val.1,
18955            ret_val.1,
18956            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
18957        )
18958    };
18959    ret_val
18960}
18961#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18962#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p8_x3)"]
18963#[doc = "## Safety"]
18964#[doc = "  * Neon instrinsic unsafe"]
18965#[inline]
18966#[cfg(target_endian = "little")]
18967#[target_feature(enable = "neon")]
18968#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18969#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18970#[cfg_attr(
18971    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18972    assert_instr(ld1)
18973)]
18974#[cfg_attr(
18975    not(target_arch = "arm"),
18976    stable(feature = "neon_intrinsics", since = "1.59.0")
18977)]
18978#[cfg_attr(
18979    target_arch = "arm",
18980    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18981)]
18982pub unsafe fn vld1q_p8_x3(a: *const p8) -> poly8x16x3_t {
18983    transmute(vld1q_s8_x3(transmute(a)))
18984}
18985#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18986#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p8_x3)"]
18987#[doc = "## Safety"]
18988#[doc = "  * Neon instrinsic unsafe"]
18989#[inline]
18990#[cfg(target_endian = "big")]
18991#[target_feature(enable = "neon")]
18992#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18993#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18994#[cfg_attr(
18995    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18996    assert_instr(ld1)
18997)]
18998#[cfg_attr(
18999    not(target_arch = "arm"),
19000    stable(feature = "neon_intrinsics", since = "1.59.0")
19001)]
19002#[cfg_attr(
19003    target_arch = "arm",
19004    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19005)]
19006pub unsafe fn vld1q_p8_x3(a: *const p8) -> poly8x16x3_t {
19007    let mut ret_val: poly8x16x3_t = transmute(vld1q_s8_x3(transmute(a)));
19008    ret_val.0 = unsafe {
19009        simd_shuffle!(
19010            ret_val.0,
19011            ret_val.0,
19012            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
19013        )
19014    };
19015    ret_val.1 = unsafe {
19016        simd_shuffle!(
19017            ret_val.1,
19018            ret_val.1,
19019            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
19020        )
19021    };
19022    ret_val.2 = unsafe {
19023        simd_shuffle!(
19024            ret_val.2,
19025            ret_val.2,
19026            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
19027        )
19028    };
19029    ret_val
19030}
19031#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
19032#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p8_x4)"]
19033#[doc = "## Safety"]
19034#[doc = "  * Neon instrinsic unsafe"]
19035#[inline]
19036#[cfg(target_endian = "little")]
19037#[target_feature(enable = "neon")]
19038#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19039#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
19040#[cfg_attr(
19041    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19042    assert_instr(ld1)
19043)]
19044#[cfg_attr(
19045    not(target_arch = "arm"),
19046    stable(feature = "neon_intrinsics", since = "1.59.0")
19047)]
19048#[cfg_attr(
19049    target_arch = "arm",
19050    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19051)]
19052pub unsafe fn vld1q_p8_x4(a: *const p8) -> poly8x16x4_t {
19053    transmute(vld1q_s8_x4(transmute(a)))
19054}
19055#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
19056#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p8_x4)"]
19057#[doc = "## Safety"]
19058#[doc = "  * Neon instrinsic unsafe"]
19059#[inline]
19060#[cfg(target_endian = "big")]
19061#[target_feature(enable = "neon")]
19062#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19063#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
19064#[cfg_attr(
19065    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19066    assert_instr(ld1)
19067)]
19068#[cfg_attr(
19069    not(target_arch = "arm"),
19070    stable(feature = "neon_intrinsics", since = "1.59.0")
19071)]
19072#[cfg_attr(
19073    target_arch = "arm",
19074    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19075)]
19076pub unsafe fn vld1q_p8_x4(a: *const p8) -> poly8x16x4_t {
19077    let mut ret_val: poly8x16x4_t = transmute(vld1q_s8_x4(transmute(a)));
19078    ret_val.0 = unsafe {
19079        simd_shuffle!(
19080            ret_val.0,
19081            ret_val.0,
19082            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
19083        )
19084    };
19085    ret_val.1 = unsafe {
19086        simd_shuffle!(
19087            ret_val.1,
19088            ret_val.1,
19089            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
19090        )
19091    };
19092    ret_val.2 = unsafe {
19093        simd_shuffle!(
19094            ret_val.2,
19095            ret_val.2,
19096            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
19097        )
19098    };
19099    ret_val.3 = unsafe {
19100        simd_shuffle!(
19101            ret_val.3,
19102            ret_val.3,
19103            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
19104        )
19105    };
19106    ret_val
19107}
19108#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
19109#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p16_x2)"]
19110#[doc = "## Safety"]
19111#[doc = "  * Neon instrinsic unsafe"]
19112#[inline]
19113#[cfg(target_endian = "little")]
19114#[target_feature(enable = "neon")]
19115#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19116#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
19117#[cfg_attr(
19118    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19119    assert_instr(ld1)
19120)]
19121#[cfg_attr(
19122    not(target_arch = "arm"),
19123    stable(feature = "neon_intrinsics", since = "1.59.0")
19124)]
19125#[cfg_attr(
19126    target_arch = "arm",
19127    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19128)]
19129pub unsafe fn vld1_p16_x2(a: *const p16) -> poly16x4x2_t {
19130    transmute(vld1_s16_x2(transmute(a)))
19131}
19132#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
19133#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p16_x2)"]
19134#[doc = "## Safety"]
19135#[doc = "  * Neon instrinsic unsafe"]
19136#[inline]
19137#[cfg(target_endian = "big")]
19138#[target_feature(enable = "neon")]
19139#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19140#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
19141#[cfg_attr(
19142    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19143    assert_instr(ld1)
19144)]
19145#[cfg_attr(
19146    not(target_arch = "arm"),
19147    stable(feature = "neon_intrinsics", since = "1.59.0")
19148)]
19149#[cfg_attr(
19150    target_arch = "arm",
19151    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19152)]
19153pub unsafe fn vld1_p16_x2(a: *const p16) -> poly16x4x2_t {
19154    let mut ret_val: poly16x4x2_t = transmute(vld1_s16_x2(transmute(a)));
19155    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
19156    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
19157    ret_val
19158}
19159#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
19160#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p16_x3)"]
19161#[doc = "## Safety"]
19162#[doc = "  * Neon instrinsic unsafe"]
19163#[inline]
19164#[cfg(target_endian = "little")]
19165#[target_feature(enable = "neon")]
19166#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19167#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
19168#[cfg_attr(
19169    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19170    assert_instr(ld1)
19171)]
19172#[cfg_attr(
19173    not(target_arch = "arm"),
19174    stable(feature = "neon_intrinsics", since = "1.59.0")
19175)]
19176#[cfg_attr(
19177    target_arch = "arm",
19178    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19179)]
19180pub unsafe fn vld1_p16_x3(a: *const p16) -> poly16x4x3_t {
19181    transmute(vld1_s16_x3(transmute(a)))
19182}
19183#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
19184#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p16_x3)"]
19185#[doc = "## Safety"]
19186#[doc = "  * Neon instrinsic unsafe"]
19187#[inline]
19188#[cfg(target_endian = "big")]
19189#[target_feature(enable = "neon")]
19190#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19191#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
19192#[cfg_attr(
19193    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19194    assert_instr(ld1)
19195)]
19196#[cfg_attr(
19197    not(target_arch = "arm"),
19198    stable(feature = "neon_intrinsics", since = "1.59.0")
19199)]
19200#[cfg_attr(
19201    target_arch = "arm",
19202    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19203)]
19204pub unsafe fn vld1_p16_x3(a: *const p16) -> poly16x4x3_t {
19205    let mut ret_val: poly16x4x3_t = transmute(vld1_s16_x3(transmute(a)));
19206    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
19207    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
19208    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [3, 2, 1, 0]) };
19209    ret_val
19210}
19211#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
19212#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p16_x4)"]
19213#[doc = "## Safety"]
19214#[doc = "  * Neon instrinsic unsafe"]
19215#[inline]
19216#[cfg(target_endian = "little")]
19217#[target_feature(enable = "neon")]
19218#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19219#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
19220#[cfg_attr(
19221    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19222    assert_instr(ld1)
19223)]
19224#[cfg_attr(
19225    not(target_arch = "arm"),
19226    stable(feature = "neon_intrinsics", since = "1.59.0")
19227)]
19228#[cfg_attr(
19229    target_arch = "arm",
19230    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19231)]
19232pub unsafe fn vld1_p16_x4(a: *const p16) -> poly16x4x4_t {
19233    transmute(vld1_s16_x4(transmute(a)))
19234}
19235#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
19236#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p16_x4)"]
19237#[doc = "## Safety"]
19238#[doc = "  * Neon instrinsic unsafe"]
19239#[inline]
19240#[cfg(target_endian = "big")]
19241#[target_feature(enable = "neon")]
19242#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19243#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
19244#[cfg_attr(
19245    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19246    assert_instr(ld1)
19247)]
19248#[cfg_attr(
19249    not(target_arch = "arm"),
19250    stable(feature = "neon_intrinsics", since = "1.59.0")
19251)]
19252#[cfg_attr(
19253    target_arch = "arm",
19254    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19255)]
19256pub unsafe fn vld1_p16_x4(a: *const p16) -> poly16x4x4_t {
19257    let mut ret_val: poly16x4x4_t = transmute(vld1_s16_x4(transmute(a)));
19258    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
19259    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
19260    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [3, 2, 1, 0]) };
19261    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [3, 2, 1, 0]) };
19262    ret_val
19263}
19264#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
19265#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p16_x2)"]
19266#[doc = "## Safety"]
19267#[doc = "  * Neon instrinsic unsafe"]
19268#[inline]
19269#[cfg(target_endian = "little")]
19270#[target_feature(enable = "neon")]
19271#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19272#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
19273#[cfg_attr(
19274    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19275    assert_instr(ld1)
19276)]
19277#[cfg_attr(
19278    not(target_arch = "arm"),
19279    stable(feature = "neon_intrinsics", since = "1.59.0")
19280)]
19281#[cfg_attr(
19282    target_arch = "arm",
19283    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19284)]
19285pub unsafe fn vld1q_p16_x2(a: *const p16) -> poly16x8x2_t {
19286    transmute(vld1q_s16_x2(transmute(a)))
19287}
19288#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
19289#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p16_x2)"]
19290#[doc = "## Safety"]
19291#[doc = "  * Neon instrinsic unsafe"]
19292#[inline]
19293#[cfg(target_endian = "big")]
19294#[target_feature(enable = "neon")]
19295#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19296#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
19297#[cfg_attr(
19298    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19299    assert_instr(ld1)
19300)]
19301#[cfg_attr(
19302    not(target_arch = "arm"),
19303    stable(feature = "neon_intrinsics", since = "1.59.0")
19304)]
19305#[cfg_attr(
19306    target_arch = "arm",
19307    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19308)]
19309pub unsafe fn vld1q_p16_x2(a: *const p16) -> poly16x8x2_t {
19310    let mut ret_val: poly16x8x2_t = transmute(vld1q_s16_x2(transmute(a)));
19311    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
19312    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
19313    ret_val
19314}
19315#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
19316#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p16_x3)"]
19317#[doc = "## Safety"]
19318#[doc = "  * Neon instrinsic unsafe"]
19319#[inline]
19320#[cfg(target_endian = "little")]
19321#[target_feature(enable = "neon")]
19322#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19323#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
19324#[cfg_attr(
19325    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19326    assert_instr(ld1)
19327)]
19328#[cfg_attr(
19329    not(target_arch = "arm"),
19330    stable(feature = "neon_intrinsics", since = "1.59.0")
19331)]
19332#[cfg_attr(
19333    target_arch = "arm",
19334    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19335)]
19336pub unsafe fn vld1q_p16_x3(a: *const p16) -> poly16x8x3_t {
19337    transmute(vld1q_s16_x3(transmute(a)))
19338}
19339#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
19340#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p16_x3)"]
19341#[doc = "## Safety"]
19342#[doc = "  * Neon instrinsic unsafe"]
19343#[inline]
19344#[cfg(target_endian = "big")]
19345#[target_feature(enable = "neon")]
19346#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19347#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
19348#[cfg_attr(
19349    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19350    assert_instr(ld1)
19351)]
19352#[cfg_attr(
19353    not(target_arch = "arm"),
19354    stable(feature = "neon_intrinsics", since = "1.59.0")
19355)]
19356#[cfg_attr(
19357    target_arch = "arm",
19358    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19359)]
19360pub unsafe fn vld1q_p16_x3(a: *const p16) -> poly16x8x3_t {
19361    let mut ret_val: poly16x8x3_t = transmute(vld1q_s16_x3(transmute(a)));
19362    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
19363    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
19364    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
19365    ret_val
19366}
19367#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
19368#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p16_x4)"]
19369#[doc = "## Safety"]
19370#[doc = "  * Neon instrinsic unsafe"]
19371#[inline]
19372#[cfg(target_endian = "little")]
19373#[target_feature(enable = "neon")]
19374#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19375#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
19376#[cfg_attr(
19377    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19378    assert_instr(ld1)
19379)]
19380#[cfg_attr(
19381    not(target_arch = "arm"),
19382    stable(feature = "neon_intrinsics", since = "1.59.0")
19383)]
19384#[cfg_attr(
19385    target_arch = "arm",
19386    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19387)]
19388pub unsafe fn vld1q_p16_x4(a: *const p16) -> poly16x8x4_t {
19389    transmute(vld1q_s16_x4(transmute(a)))
19390}
19391#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
19392#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p16_x4)"]
19393#[doc = "## Safety"]
19394#[doc = "  * Neon instrinsic unsafe"]
19395#[inline]
19396#[cfg(target_endian = "big")]
19397#[target_feature(enable = "neon")]
19398#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19399#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
19400#[cfg_attr(
19401    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19402    assert_instr(ld1)
19403)]
19404#[cfg_attr(
19405    not(target_arch = "arm"),
19406    stable(feature = "neon_intrinsics", since = "1.59.0")
19407)]
19408#[cfg_attr(
19409    target_arch = "arm",
19410    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19411)]
19412pub unsafe fn vld1q_p16_x4(a: *const p16) -> poly16x8x4_t {
19413    let mut ret_val: poly16x8x4_t = transmute(vld1q_s16_x4(transmute(a)));
19414    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
19415    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
19416    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
19417    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [7, 6, 5, 4, 3, 2, 1, 0]) };
19418    ret_val
19419}
19420#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
19421#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_v1i64)"]
19422#[doc = "## Safety"]
19423#[doc = "  * Neon instrinsic unsafe"]
19424#[inline]
19425#[cfg(target_arch = "arm")]
19426#[target_feature(enable = "neon,v7")]
19427#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
19428unsafe fn vld1_v1i64(a: *const i8, b: i32) -> int64x1_t {
19429    unsafe extern "unadjusted" {
19430        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1.v1i64")]
19431        fn _vld1_v1i64(a: *const i8, b: i32) -> int64x1_t;
19432    }
19433    _vld1_v1i64(a, b)
19434}
19435#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
19436#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_v2f32)"]
19437#[doc = "## Safety"]
19438#[doc = "  * Neon instrinsic unsafe"]
19439#[inline]
19440#[cfg(target_arch = "arm")]
19441#[target_feature(enable = "neon,v7")]
19442#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
19443unsafe fn vld1_v2f32(a: *const i8, b: i32) -> float32x2_t {
19444    unsafe extern "unadjusted" {
19445        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1.v2f32")]
19446        fn _vld1_v2f32(a: *const i8, b: i32) -> float32x2_t;
19447    }
19448    _vld1_v2f32(a, b)
19449}
19450#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
19451#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_v2i32)"]
19452#[doc = "## Safety"]
19453#[doc = "  * Neon instrinsic unsafe"]
19454#[inline]
19455#[cfg(target_arch = "arm")]
19456#[target_feature(enable = "neon,v7")]
19457#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
19458unsafe fn vld1_v2i32(a: *const i8, b: i32) -> int32x2_t {
19459    unsafe extern "unadjusted" {
19460        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1.v2i32")]
19461        fn _vld1_v2i32(a: *const i8, b: i32) -> int32x2_t;
19462    }
19463    _vld1_v2i32(a, b)
19464}
19465#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
19466#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_v4i16)"]
19467#[doc = "## Safety"]
19468#[doc = "  * Neon instrinsic unsafe"]
19469#[inline]
19470#[cfg(target_arch = "arm")]
19471#[target_feature(enable = "neon,v7")]
19472#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
19473unsafe fn vld1_v4i16(a: *const i8, b: i32) -> int16x4_t {
19474    unsafe extern "unadjusted" {
19475        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1.v4i16")]
19476        fn _vld1_v4i16(a: *const i8, b: i32) -> int16x4_t;
19477    }
19478    _vld1_v4i16(a, b)
19479}
19480#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
19481#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_v8i8)"]
19482#[doc = "## Safety"]
19483#[doc = "  * Neon instrinsic unsafe"]
19484#[inline]
19485#[cfg(target_arch = "arm")]
19486#[target_feature(enable = "neon,v7")]
19487#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
19488unsafe fn vld1_v8i8(a: *const i8, b: i32) -> int8x8_t {
19489    unsafe extern "unadjusted" {
19490        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1.v8i8")]
19491        fn _vld1_v8i8(a: *const i8, b: i32) -> int8x8_t;
19492    }
19493    _vld1_v8i8(a, b)
19494}
19495#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
19496#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_v16i8)"]
19497#[doc = "## Safety"]
19498#[doc = "  * Neon instrinsic unsafe"]
19499#[inline]
19500#[cfg(target_arch = "arm")]
19501#[target_feature(enable = "neon,v7")]
19502#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
19503unsafe fn vld1q_v16i8(a: *const i8, b: i32) -> int8x16_t {
19504    unsafe extern "unadjusted" {
19505        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1.v16i8")]
19506        fn _vld1q_v16i8(a: *const i8, b: i32) -> int8x16_t;
19507    }
19508    _vld1q_v16i8(a, b)
19509}
19510#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
19511#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_v2i64)"]
19512#[doc = "## Safety"]
19513#[doc = "  * Neon instrinsic unsafe"]
19514#[inline]
19515#[cfg(target_arch = "arm")]
19516#[target_feature(enable = "neon,v7")]
19517#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
19518unsafe fn vld1q_v2i64(a: *const i8, b: i32) -> int64x2_t {
19519    unsafe extern "unadjusted" {
19520        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1.v2i64")]
19521        fn _vld1q_v2i64(a: *const i8, b: i32) -> int64x2_t;
19522    }
19523    _vld1q_v2i64(a, b)
19524}
19525#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
19526#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_v4f32)"]
19527#[doc = "## Safety"]
19528#[doc = "  * Neon instrinsic unsafe"]
19529#[inline]
19530#[cfg(target_arch = "arm")]
19531#[target_feature(enable = "neon,v7")]
19532#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
19533unsafe fn vld1q_v4f32(a: *const i8, b: i32) -> float32x4_t {
19534    unsafe extern "unadjusted" {
19535        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1.v4f32")]
19536        fn _vld1q_v4f32(a: *const i8, b: i32) -> float32x4_t;
19537    }
19538    _vld1q_v4f32(a, b)
19539}
19540#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
19541#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_v4i32)"]
19542#[doc = "## Safety"]
19543#[doc = "  * Neon instrinsic unsafe"]
19544#[inline]
19545#[cfg(target_arch = "arm")]
19546#[target_feature(enable = "neon,v7")]
19547#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
19548unsafe fn vld1q_v4i32(a: *const i8, b: i32) -> int32x4_t {
19549    unsafe extern "unadjusted" {
19550        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1.v4i32")]
19551        fn _vld1q_v4i32(a: *const i8, b: i32) -> int32x4_t;
19552    }
19553    _vld1q_v4i32(a, b)
19554}
19555#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
19556#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_v8i16)"]
19557#[doc = "## Safety"]
19558#[doc = "  * Neon instrinsic unsafe"]
19559#[inline]
19560#[cfg(target_arch = "arm")]
19561#[target_feature(enable = "neon,v7")]
19562#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
19563unsafe fn vld1q_v8i16(a: *const i8, b: i32) -> int16x8_t {
19564    unsafe extern "unadjusted" {
19565        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1.v8i16")]
19566        fn _vld1q_v8i16(a: *const i8, b: i32) -> int16x8_t;
19567    }
19568    _vld1q_v8i16(a, b)
19569}
19570#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
19571#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_v4f16)"]
19572#[doc = "## Safety"]
19573#[doc = "  * Neon instrinsic unsafe"]
19574#[inline]
19575#[cfg(target_arch = "arm")]
19576#[target_feature(enable = "neon,v7")]
19577#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
19578#[target_feature(enable = "neon,fp16")]
19579#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
19580#[cfg(not(target_arch = "arm64ec"))]
19581unsafe fn vld1_v4f16(a: *const i8, b: i32) -> float16x4_t {
19582    unsafe extern "unadjusted" {
19583        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1.v4f16")]
19584        fn _vld1_v4f16(a: *const i8, b: i32) -> float16x4_t;
19585    }
19586    _vld1_v4f16(a, b)
19587}
19588#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
19589#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_v8f16)"]
19590#[doc = "## Safety"]
19591#[doc = "  * Neon instrinsic unsafe"]
19592#[inline]
19593#[cfg(target_arch = "arm")]
19594#[target_feature(enable = "neon,v7")]
19595#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
19596#[target_feature(enable = "neon,fp16")]
19597#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
19598#[cfg(not(target_arch = "arm64ec"))]
19599unsafe fn vld1q_v8f16(a: *const i8, b: i32) -> float16x8_t {
19600    unsafe extern "unadjusted" {
19601        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1.v8f16")]
19602        fn _vld1q_v8f16(a: *const i8, b: i32) -> float16x8_t;
19603    }
19604    _vld1q_v8f16(a, b)
19605}
19606#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
19607#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_p64)"]
19608#[doc = "## Safety"]
19609#[doc = "  * Neon instrinsic unsafe"]
19610#[inline]
19611#[target_feature(enable = "neon,aes")]
19612#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19613#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr))]
19614#[cfg_attr(
19615    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19616    assert_instr(ld1r)
19617)]
19618#[cfg_attr(
19619    not(target_arch = "arm"),
19620    stable(feature = "neon_intrinsics", since = "1.59.0")
19621)]
19622#[cfg_attr(
19623    target_arch = "arm",
19624    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19625)]
19626pub unsafe fn vld1q_dup_p64(ptr: *const p64) -> poly64x2_t {
19627    let x = vld1q_lane_p64::<0>(ptr, transmute(u64x2::splat(0)));
19628    simd_shuffle!(x, x, [0, 0])
19629}
19630#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19631#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_f16)"]
19632#[doc = "## Safety"]
19633#[doc = "  * Neon instrinsic unsafe"]
19634#[inline]
19635#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19636#[cfg(target_arch = "arm")]
19637#[target_feature(enable = "neon,fp16")]
19638#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
19639#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
19640#[cfg(not(target_arch = "arm64ec"))]
19641pub unsafe fn vld2_dup_f16(a: *const f16) -> float16x4x2_t {
19642    unsafe extern "unadjusted" {
19643        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2dup.v4f16.p0")]
19644        fn _vld2_dup_f16(ptr: *const f16, size: i32) -> float16x4x2_t;
19645    }
19646    _vld2_dup_f16(a as _, 2)
19647}
19648#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19649#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_f16)"]
19650#[doc = "## Safety"]
19651#[doc = "  * Neon instrinsic unsafe"]
19652#[inline]
19653#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19654#[cfg(target_arch = "arm")]
19655#[target_feature(enable = "neon,fp16")]
19656#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
19657#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
19658#[cfg(not(target_arch = "arm64ec"))]
19659pub unsafe fn vld2q_dup_f16(a: *const f16) -> float16x8x2_t {
19660    unsafe extern "unadjusted" {
19661        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2dup.v8f16.p0")]
19662        fn _vld2q_dup_f16(ptr: *const f16, size: i32) -> float16x8x2_t;
19663    }
19664    _vld2q_dup_f16(a as _, 2)
19665}
19666#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19667#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_f16)"]
19668#[doc = "## Safety"]
19669#[doc = "  * Neon instrinsic unsafe"]
19670#[inline]
19671#[cfg(not(target_arch = "arm"))]
19672#[cfg_attr(
19673    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19674    assert_instr(ld2r)
19675)]
19676#[target_feature(enable = "neon,fp16")]
19677#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
19678#[cfg(not(target_arch = "arm64ec"))]
19679pub unsafe fn vld2_dup_f16(a: *const f16) -> float16x4x2_t {
19680    unsafe extern "unadjusted" {
19681        #[cfg_attr(
19682            any(target_arch = "aarch64", target_arch = "arm64ec"),
19683            link_name = "llvm.aarch64.neon.ld2r.v4f16.p0"
19684        )]
19685        fn _vld2_dup_f16(ptr: *const f16) -> float16x4x2_t;
19686    }
19687    _vld2_dup_f16(a as _)
19688}
19689#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19690#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_f16)"]
19691#[doc = "## Safety"]
19692#[doc = "  * Neon instrinsic unsafe"]
19693#[inline]
19694#[cfg(not(target_arch = "arm"))]
19695#[cfg_attr(
19696    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19697    assert_instr(ld2r)
19698)]
19699#[target_feature(enable = "neon,fp16")]
19700#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
19701#[cfg(not(target_arch = "arm64ec"))]
19702pub unsafe fn vld2q_dup_f16(a: *const f16) -> float16x8x2_t {
19703    unsafe extern "unadjusted" {
19704        #[cfg_attr(
19705            any(target_arch = "aarch64", target_arch = "arm64ec"),
19706            link_name = "llvm.aarch64.neon.ld2r.v8f16.p0"
19707        )]
19708        fn _vld2q_dup_f16(ptr: *const f16) -> float16x8x2_t;
19709    }
19710    _vld2q_dup_f16(a as _)
19711}
19712#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19713#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_f32)"]
19714#[doc = "## Safety"]
19715#[doc = "  * Neon instrinsic unsafe"]
19716#[inline]
19717#[target_feature(enable = "neon,v7")]
19718#[cfg(target_arch = "arm")]
19719#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
19720#[cfg_attr(test, assert_instr(vld2))]
19721pub unsafe fn vld2_dup_f32(a: *const f32) -> float32x2x2_t {
19722    unsafe extern "unadjusted" {
19723        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2dup.v2f32.p0")]
19724        fn _vld2_dup_f32(ptr: *const i8, size: i32) -> float32x2x2_t;
19725    }
19726    _vld2_dup_f32(a as *const i8, 4)
19727}
19728#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19729#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_f32)"]
19730#[doc = "## Safety"]
19731#[doc = "  * Neon instrinsic unsafe"]
19732#[inline]
19733#[target_feature(enable = "neon,v7")]
19734#[cfg(target_arch = "arm")]
19735#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
19736#[cfg_attr(test, assert_instr(vld2))]
19737pub unsafe fn vld2q_dup_f32(a: *const f32) -> float32x4x2_t {
19738    unsafe extern "unadjusted" {
19739        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2dup.v4f32.p0")]
19740        fn _vld2q_dup_f32(ptr: *const i8, size: i32) -> float32x4x2_t;
19741    }
19742    _vld2q_dup_f32(a as *const i8, 4)
19743}
19744#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19745#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_s8)"]
19746#[doc = "## Safety"]
19747#[doc = "  * Neon instrinsic unsafe"]
19748#[inline]
19749#[target_feature(enable = "neon,v7")]
19750#[cfg(target_arch = "arm")]
19751#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
19752#[cfg_attr(test, assert_instr(vld2))]
19753pub unsafe fn vld2_dup_s8(a: *const i8) -> int8x8x2_t {
19754    unsafe extern "unadjusted" {
19755        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2dup.v8i8.p0")]
19756        fn _vld2_dup_s8(ptr: *const i8, size: i32) -> int8x8x2_t;
19757    }
19758    _vld2_dup_s8(a as *const i8, 1)
19759}
19760#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19761#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_s8)"]
19762#[doc = "## Safety"]
19763#[doc = "  * Neon instrinsic unsafe"]
19764#[inline]
19765#[target_feature(enable = "neon,v7")]
19766#[cfg(target_arch = "arm")]
19767#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
19768#[cfg_attr(test, assert_instr(vld2))]
19769pub unsafe fn vld2q_dup_s8(a: *const i8) -> int8x16x2_t {
19770    unsafe extern "unadjusted" {
19771        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2dup.v16i8.p0")]
19772        fn _vld2q_dup_s8(ptr: *const i8, size: i32) -> int8x16x2_t;
19773    }
19774    _vld2q_dup_s8(a as *const i8, 1)
19775}
19776#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19777#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_s16)"]
19778#[doc = "## Safety"]
19779#[doc = "  * Neon instrinsic unsafe"]
19780#[inline]
19781#[target_feature(enable = "neon,v7")]
19782#[cfg(target_arch = "arm")]
19783#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
19784#[cfg_attr(test, assert_instr(vld2))]
19785pub unsafe fn vld2_dup_s16(a: *const i16) -> int16x4x2_t {
19786    unsafe extern "unadjusted" {
19787        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2dup.v4i16.p0")]
19788        fn _vld2_dup_s16(ptr: *const i8, size: i32) -> int16x4x2_t;
19789    }
19790    _vld2_dup_s16(a as *const i8, 2)
19791}
19792#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19793#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_s16)"]
19794#[doc = "## Safety"]
19795#[doc = "  * Neon instrinsic unsafe"]
19796#[inline]
19797#[target_feature(enable = "neon,v7")]
19798#[cfg(target_arch = "arm")]
19799#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
19800#[cfg_attr(test, assert_instr(vld2))]
19801pub unsafe fn vld2q_dup_s16(a: *const i16) -> int16x8x2_t {
19802    unsafe extern "unadjusted" {
19803        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2dup.v8i16.p0")]
19804        fn _vld2q_dup_s16(ptr: *const i8, size: i32) -> int16x8x2_t;
19805    }
19806    _vld2q_dup_s16(a as *const i8, 2)
19807}
19808#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19809#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_s32)"]
19810#[doc = "## Safety"]
19811#[doc = "  * Neon instrinsic unsafe"]
19812#[inline]
19813#[target_feature(enable = "neon,v7")]
19814#[cfg(target_arch = "arm")]
19815#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
19816#[cfg_attr(test, assert_instr(vld2))]
19817pub unsafe fn vld2_dup_s32(a: *const i32) -> int32x2x2_t {
19818    unsafe extern "unadjusted" {
19819        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2dup.v2i32.p0")]
19820        fn _vld2_dup_s32(ptr: *const i8, size: i32) -> int32x2x2_t;
19821    }
19822    _vld2_dup_s32(a as *const i8, 4)
19823}
19824#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19825#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_s32)"]
19826#[doc = "## Safety"]
19827#[doc = "  * Neon instrinsic unsafe"]
19828#[inline]
19829#[target_feature(enable = "neon,v7")]
19830#[cfg(target_arch = "arm")]
19831#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
19832#[cfg_attr(test, assert_instr(vld2))]
19833pub unsafe fn vld2q_dup_s32(a: *const i32) -> int32x4x2_t {
19834    unsafe extern "unadjusted" {
19835        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2dup.v4i32.p0")]
19836        fn _vld2q_dup_s32(ptr: *const i8, size: i32) -> int32x4x2_t;
19837    }
19838    _vld2q_dup_s32(a as *const i8, 4)
19839}
19840#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19841#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_f32)"]
19842#[doc = "## Safety"]
19843#[doc = "  * Neon instrinsic unsafe"]
19844#[inline]
19845#[target_feature(enable = "neon")]
19846#[cfg(not(target_arch = "arm"))]
19847#[stable(feature = "neon_intrinsics", since = "1.59.0")]
19848#[cfg_attr(test, assert_instr(ld2r))]
19849pub unsafe fn vld2_dup_f32(a: *const f32) -> float32x2x2_t {
19850    unsafe extern "unadjusted" {
19851        #[cfg_attr(
19852            any(target_arch = "aarch64", target_arch = "arm64ec"),
19853            link_name = "llvm.aarch64.neon.ld2r.v2f32.p0"
19854        )]
19855        fn _vld2_dup_f32(ptr: *const f32) -> float32x2x2_t;
19856    }
19857    _vld2_dup_f32(a as _)
19858}
19859#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19860#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_f32)"]
19861#[doc = "## Safety"]
19862#[doc = "  * Neon instrinsic unsafe"]
19863#[inline]
19864#[target_feature(enable = "neon")]
19865#[cfg(not(target_arch = "arm"))]
19866#[stable(feature = "neon_intrinsics", since = "1.59.0")]
19867#[cfg_attr(test, assert_instr(ld2r))]
19868pub unsafe fn vld2q_dup_f32(a: *const f32) -> float32x4x2_t {
19869    unsafe extern "unadjusted" {
19870        #[cfg_attr(
19871            any(target_arch = "aarch64", target_arch = "arm64ec"),
19872            link_name = "llvm.aarch64.neon.ld2r.v4f32.p0"
19873        )]
19874        fn _vld2q_dup_f32(ptr: *const f32) -> float32x4x2_t;
19875    }
19876    _vld2q_dup_f32(a as _)
19877}
19878#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19879#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_s8)"]
19880#[doc = "## Safety"]
19881#[doc = "  * Neon instrinsic unsafe"]
19882#[inline]
19883#[target_feature(enable = "neon")]
19884#[cfg(not(target_arch = "arm"))]
19885#[stable(feature = "neon_intrinsics", since = "1.59.0")]
19886#[cfg_attr(test, assert_instr(ld2r))]
19887pub unsafe fn vld2_dup_s8(a: *const i8) -> int8x8x2_t {
19888    unsafe extern "unadjusted" {
19889        #[cfg_attr(
19890            any(target_arch = "aarch64", target_arch = "arm64ec"),
19891            link_name = "llvm.aarch64.neon.ld2r.v8i8.p0"
19892        )]
19893        fn _vld2_dup_s8(ptr: *const i8) -> int8x8x2_t;
19894    }
19895    _vld2_dup_s8(a as _)
19896}
19897#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19898#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_s8)"]
19899#[doc = "## Safety"]
19900#[doc = "  * Neon instrinsic unsafe"]
19901#[inline]
19902#[target_feature(enable = "neon")]
19903#[cfg(not(target_arch = "arm"))]
19904#[stable(feature = "neon_intrinsics", since = "1.59.0")]
19905#[cfg_attr(test, assert_instr(ld2r))]
19906pub unsafe fn vld2q_dup_s8(a: *const i8) -> int8x16x2_t {
19907    unsafe extern "unadjusted" {
19908        #[cfg_attr(
19909            any(target_arch = "aarch64", target_arch = "arm64ec"),
19910            link_name = "llvm.aarch64.neon.ld2r.v16i8.p0"
19911        )]
19912        fn _vld2q_dup_s8(ptr: *const i8) -> int8x16x2_t;
19913    }
19914    _vld2q_dup_s8(a as _)
19915}
19916#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19917#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_s16)"]
19918#[doc = "## Safety"]
19919#[doc = "  * Neon instrinsic unsafe"]
19920#[inline]
19921#[target_feature(enable = "neon")]
19922#[cfg(not(target_arch = "arm"))]
19923#[stable(feature = "neon_intrinsics", since = "1.59.0")]
19924#[cfg_attr(test, assert_instr(ld2r))]
19925pub unsafe fn vld2_dup_s16(a: *const i16) -> int16x4x2_t {
19926    unsafe extern "unadjusted" {
19927        #[cfg_attr(
19928            any(target_arch = "aarch64", target_arch = "arm64ec"),
19929            link_name = "llvm.aarch64.neon.ld2r.v4i16.p0"
19930        )]
19931        fn _vld2_dup_s16(ptr: *const i16) -> int16x4x2_t;
19932    }
19933    _vld2_dup_s16(a as _)
19934}
19935#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19936#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_s16)"]
19937#[doc = "## Safety"]
19938#[doc = "  * Neon instrinsic unsafe"]
19939#[inline]
19940#[target_feature(enable = "neon")]
19941#[cfg(not(target_arch = "arm"))]
19942#[stable(feature = "neon_intrinsics", since = "1.59.0")]
19943#[cfg_attr(test, assert_instr(ld2r))]
19944pub unsafe fn vld2q_dup_s16(a: *const i16) -> int16x8x2_t {
19945    unsafe extern "unadjusted" {
19946        #[cfg_attr(
19947            any(target_arch = "aarch64", target_arch = "arm64ec"),
19948            link_name = "llvm.aarch64.neon.ld2r.v8i16.p0"
19949        )]
19950        fn _vld2q_dup_s16(ptr: *const i16) -> int16x8x2_t;
19951    }
19952    _vld2q_dup_s16(a as _)
19953}
19954#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19955#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_s32)"]
19956#[doc = "## Safety"]
19957#[doc = "  * Neon instrinsic unsafe"]
19958#[inline]
19959#[target_feature(enable = "neon")]
19960#[cfg(not(target_arch = "arm"))]
19961#[stable(feature = "neon_intrinsics", since = "1.59.0")]
19962#[cfg_attr(test, assert_instr(ld2r))]
19963pub unsafe fn vld2_dup_s32(a: *const i32) -> int32x2x2_t {
19964    unsafe extern "unadjusted" {
19965        #[cfg_attr(
19966            any(target_arch = "aarch64", target_arch = "arm64ec"),
19967            link_name = "llvm.aarch64.neon.ld2r.v2i32.p0"
19968        )]
19969        fn _vld2_dup_s32(ptr: *const i32) -> int32x2x2_t;
19970    }
19971    _vld2_dup_s32(a as _)
19972}
19973#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19974#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_s32)"]
19975#[doc = "## Safety"]
19976#[doc = "  * Neon instrinsic unsafe"]
19977#[inline]
19978#[target_feature(enable = "neon")]
19979#[cfg(not(target_arch = "arm"))]
19980#[stable(feature = "neon_intrinsics", since = "1.59.0")]
19981#[cfg_attr(test, assert_instr(ld2r))]
19982pub unsafe fn vld2q_dup_s32(a: *const i32) -> int32x4x2_t {
19983    unsafe extern "unadjusted" {
19984        #[cfg_attr(
19985            any(target_arch = "aarch64", target_arch = "arm64ec"),
19986            link_name = "llvm.aarch64.neon.ld2r.v4i32.p0"
19987        )]
19988        fn _vld2q_dup_s32(ptr: *const i32) -> int32x4x2_t;
19989    }
19990    _vld2q_dup_s32(a as _)
19991}
19992#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19993#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_p64)"]
19994#[doc = "## Safety"]
19995#[doc = "  * Neon instrinsic unsafe"]
19996#[inline]
19997#[target_feature(enable = "neon,aes")]
19998#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
19999#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
20000#[cfg_attr(
20001    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20002    assert_instr(ld2r)
20003)]
20004#[cfg_attr(
20005    not(target_arch = "arm"),
20006    stable(feature = "neon_intrinsics", since = "1.59.0")
20007)]
20008#[cfg_attr(
20009    target_arch = "arm",
20010    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20011)]
20012pub unsafe fn vld2_dup_p64(a: *const p64) -> poly64x1x2_t {
20013    transmute(vld2_dup_s64(transmute(a)))
20014}
20015#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20016#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_s64)"]
20017#[doc = "## Safety"]
20018#[doc = "  * Neon instrinsic unsafe"]
20019#[inline]
20020#[target_feature(enable = "neon,v7")]
20021#[cfg(target_arch = "arm")]
20022#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
20023#[cfg_attr(test, assert_instr(nop))]
20024pub unsafe fn vld2_dup_s64(a: *const i64) -> int64x1x2_t {
20025    unsafe extern "unadjusted" {
20026        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2dup.v1i64.p0")]
20027        fn _vld2_dup_s64(ptr: *const i8, size: i32) -> int64x1x2_t;
20028    }
20029    _vld2_dup_s64(a as *const i8, 8)
20030}
20031#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20032#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_s64)"]
20033#[doc = "## Safety"]
20034#[doc = "  * Neon instrinsic unsafe"]
20035#[inline]
20036#[target_feature(enable = "neon")]
20037#[cfg(not(target_arch = "arm"))]
20038#[stable(feature = "neon_intrinsics", since = "1.59.0")]
20039#[cfg_attr(test, assert_instr(ld2r))]
20040pub unsafe fn vld2_dup_s64(a: *const i64) -> int64x1x2_t {
20041    unsafe extern "unadjusted" {
20042        #[cfg_attr(
20043            any(target_arch = "aarch64", target_arch = "arm64ec"),
20044            link_name = "llvm.aarch64.neon.ld2r.v1i64.p0"
20045        )]
20046        fn _vld2_dup_s64(ptr: *const i64) -> int64x1x2_t;
20047    }
20048    _vld2_dup_s64(a as _)
20049}
20050#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20051#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_u64)"]
20052#[doc = "## Safety"]
20053#[doc = "  * Neon instrinsic unsafe"]
20054#[inline]
20055#[target_feature(enable = "neon")]
20056#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20057#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
20058#[cfg_attr(
20059    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20060    assert_instr(ld2r)
20061)]
20062#[cfg_attr(
20063    not(target_arch = "arm"),
20064    stable(feature = "neon_intrinsics", since = "1.59.0")
20065)]
20066#[cfg_attr(
20067    target_arch = "arm",
20068    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20069)]
20070pub unsafe fn vld2_dup_u64(a: *const u64) -> uint64x1x2_t {
20071    transmute(vld2_dup_s64(transmute(a)))
20072}
20073#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20074#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_u8)"]
20075#[doc = "## Safety"]
20076#[doc = "  * Neon instrinsic unsafe"]
20077#[inline]
20078#[cfg(target_endian = "little")]
20079#[target_feature(enable = "neon")]
20080#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20081#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
20082#[cfg_attr(
20083    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20084    assert_instr(ld2r)
20085)]
20086#[cfg_attr(
20087    not(target_arch = "arm"),
20088    stable(feature = "neon_intrinsics", since = "1.59.0")
20089)]
20090#[cfg_attr(
20091    target_arch = "arm",
20092    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20093)]
20094pub unsafe fn vld2_dup_u8(a: *const u8) -> uint8x8x2_t {
20095    transmute(vld2_dup_s8(transmute(a)))
20096}
20097#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20098#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_u8)"]
20099#[doc = "## Safety"]
20100#[doc = "  * Neon instrinsic unsafe"]
20101#[inline]
20102#[cfg(target_endian = "big")]
20103#[target_feature(enable = "neon")]
20104#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20105#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
20106#[cfg_attr(
20107    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20108    assert_instr(ld2r)
20109)]
20110#[cfg_attr(
20111    not(target_arch = "arm"),
20112    stable(feature = "neon_intrinsics", since = "1.59.0")
20113)]
20114#[cfg_attr(
20115    target_arch = "arm",
20116    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20117)]
20118pub unsafe fn vld2_dup_u8(a: *const u8) -> uint8x8x2_t {
20119    let mut ret_val: uint8x8x2_t = transmute(vld2_dup_s8(transmute(a)));
20120    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
20121    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
20122    ret_val
20123}
20124#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20125#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_u8)"]
20126#[doc = "## Safety"]
20127#[doc = "  * Neon instrinsic unsafe"]
20128#[inline]
20129#[cfg(target_endian = "little")]
20130#[target_feature(enable = "neon")]
20131#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20132#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
20133#[cfg_attr(
20134    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20135    assert_instr(ld2r)
20136)]
20137#[cfg_attr(
20138    not(target_arch = "arm"),
20139    stable(feature = "neon_intrinsics", since = "1.59.0")
20140)]
20141#[cfg_attr(
20142    target_arch = "arm",
20143    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20144)]
20145pub unsafe fn vld2q_dup_u8(a: *const u8) -> uint8x16x2_t {
20146    transmute(vld2q_dup_s8(transmute(a)))
20147}
20148#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20149#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_u8)"]
20150#[doc = "## Safety"]
20151#[doc = "  * Neon instrinsic unsafe"]
20152#[inline]
20153#[cfg(target_endian = "big")]
20154#[target_feature(enable = "neon")]
20155#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20156#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
20157#[cfg_attr(
20158    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20159    assert_instr(ld2r)
20160)]
20161#[cfg_attr(
20162    not(target_arch = "arm"),
20163    stable(feature = "neon_intrinsics", since = "1.59.0")
20164)]
20165#[cfg_attr(
20166    target_arch = "arm",
20167    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20168)]
20169pub unsafe fn vld2q_dup_u8(a: *const u8) -> uint8x16x2_t {
20170    let mut ret_val: uint8x16x2_t = transmute(vld2q_dup_s8(transmute(a)));
20171    ret_val.0 = unsafe {
20172        simd_shuffle!(
20173            ret_val.0,
20174            ret_val.0,
20175            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
20176        )
20177    };
20178    ret_val.1 = unsafe {
20179        simd_shuffle!(
20180            ret_val.1,
20181            ret_val.1,
20182            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
20183        )
20184    };
20185    ret_val
20186}
20187#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20188#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_u16)"]
20189#[doc = "## Safety"]
20190#[doc = "  * Neon instrinsic unsafe"]
20191#[inline]
20192#[cfg(target_endian = "little")]
20193#[target_feature(enable = "neon")]
20194#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20195#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
20196#[cfg_attr(
20197    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20198    assert_instr(ld2r)
20199)]
20200#[cfg_attr(
20201    not(target_arch = "arm"),
20202    stable(feature = "neon_intrinsics", since = "1.59.0")
20203)]
20204#[cfg_attr(
20205    target_arch = "arm",
20206    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20207)]
20208pub unsafe fn vld2_dup_u16(a: *const u16) -> uint16x4x2_t {
20209    transmute(vld2_dup_s16(transmute(a)))
20210}
20211#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20212#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_u16)"]
20213#[doc = "## Safety"]
20214#[doc = "  * Neon instrinsic unsafe"]
20215#[inline]
20216#[cfg(target_endian = "big")]
20217#[target_feature(enable = "neon")]
20218#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20219#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
20220#[cfg_attr(
20221    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20222    assert_instr(ld2r)
20223)]
20224#[cfg_attr(
20225    not(target_arch = "arm"),
20226    stable(feature = "neon_intrinsics", since = "1.59.0")
20227)]
20228#[cfg_attr(
20229    target_arch = "arm",
20230    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20231)]
20232pub unsafe fn vld2_dup_u16(a: *const u16) -> uint16x4x2_t {
20233    let mut ret_val: uint16x4x2_t = transmute(vld2_dup_s16(transmute(a)));
20234    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
20235    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
20236    ret_val
20237}
20238#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20239#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_u16)"]
20240#[doc = "## Safety"]
20241#[doc = "  * Neon instrinsic unsafe"]
20242#[inline]
20243#[cfg(target_endian = "little")]
20244#[target_feature(enable = "neon")]
20245#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20246#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
20247#[cfg_attr(
20248    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20249    assert_instr(ld2r)
20250)]
20251#[cfg_attr(
20252    not(target_arch = "arm"),
20253    stable(feature = "neon_intrinsics", since = "1.59.0")
20254)]
20255#[cfg_attr(
20256    target_arch = "arm",
20257    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20258)]
20259pub unsafe fn vld2q_dup_u16(a: *const u16) -> uint16x8x2_t {
20260    transmute(vld2q_dup_s16(transmute(a)))
20261}
20262#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20263#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_u16)"]
20264#[doc = "## Safety"]
20265#[doc = "  * Neon instrinsic unsafe"]
20266#[inline]
20267#[cfg(target_endian = "big")]
20268#[target_feature(enable = "neon")]
20269#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20270#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
20271#[cfg_attr(
20272    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20273    assert_instr(ld2r)
20274)]
20275#[cfg_attr(
20276    not(target_arch = "arm"),
20277    stable(feature = "neon_intrinsics", since = "1.59.0")
20278)]
20279#[cfg_attr(
20280    target_arch = "arm",
20281    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20282)]
20283pub unsafe fn vld2q_dup_u16(a: *const u16) -> uint16x8x2_t {
20284    let mut ret_val: uint16x8x2_t = transmute(vld2q_dup_s16(transmute(a)));
20285    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
20286    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
20287    ret_val
20288}
20289#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20290#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_u32)"]
20291#[doc = "## Safety"]
20292#[doc = "  * Neon instrinsic unsafe"]
20293#[inline]
20294#[cfg(target_endian = "little")]
20295#[target_feature(enable = "neon")]
20296#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20297#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
20298#[cfg_attr(
20299    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20300    assert_instr(ld2r)
20301)]
20302#[cfg_attr(
20303    not(target_arch = "arm"),
20304    stable(feature = "neon_intrinsics", since = "1.59.0")
20305)]
20306#[cfg_attr(
20307    target_arch = "arm",
20308    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20309)]
20310pub unsafe fn vld2_dup_u32(a: *const u32) -> uint32x2x2_t {
20311    transmute(vld2_dup_s32(transmute(a)))
20312}
20313#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20314#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_u32)"]
20315#[doc = "## Safety"]
20316#[doc = "  * Neon instrinsic unsafe"]
20317#[inline]
20318#[cfg(target_endian = "big")]
20319#[target_feature(enable = "neon")]
20320#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20321#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
20322#[cfg_attr(
20323    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20324    assert_instr(ld2r)
20325)]
20326#[cfg_attr(
20327    not(target_arch = "arm"),
20328    stable(feature = "neon_intrinsics", since = "1.59.0")
20329)]
20330#[cfg_attr(
20331    target_arch = "arm",
20332    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20333)]
20334pub unsafe fn vld2_dup_u32(a: *const u32) -> uint32x2x2_t {
20335    let mut ret_val: uint32x2x2_t = transmute(vld2_dup_s32(transmute(a)));
20336    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [1, 0]) };
20337    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [1, 0]) };
20338    ret_val
20339}
20340#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20341#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_u32)"]
20342#[doc = "## Safety"]
20343#[doc = "  * Neon instrinsic unsafe"]
20344#[inline]
20345#[cfg(target_endian = "little")]
20346#[target_feature(enable = "neon")]
20347#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20348#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
20349#[cfg_attr(
20350    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20351    assert_instr(ld2r)
20352)]
20353#[cfg_attr(
20354    not(target_arch = "arm"),
20355    stable(feature = "neon_intrinsics", since = "1.59.0")
20356)]
20357#[cfg_attr(
20358    target_arch = "arm",
20359    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20360)]
20361pub unsafe fn vld2q_dup_u32(a: *const u32) -> uint32x4x2_t {
20362    transmute(vld2q_dup_s32(transmute(a)))
20363}
20364#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20365#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_u32)"]
20366#[doc = "## Safety"]
20367#[doc = "  * Neon instrinsic unsafe"]
20368#[inline]
20369#[cfg(target_endian = "big")]
20370#[target_feature(enable = "neon")]
20371#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20372#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
20373#[cfg_attr(
20374    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20375    assert_instr(ld2r)
20376)]
20377#[cfg_attr(
20378    not(target_arch = "arm"),
20379    stable(feature = "neon_intrinsics", since = "1.59.0")
20380)]
20381#[cfg_attr(
20382    target_arch = "arm",
20383    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20384)]
20385pub unsafe fn vld2q_dup_u32(a: *const u32) -> uint32x4x2_t {
20386    let mut ret_val: uint32x4x2_t = transmute(vld2q_dup_s32(transmute(a)));
20387    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
20388    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
20389    ret_val
20390}
20391#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20392#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_p8)"]
20393#[doc = "## Safety"]
20394#[doc = "  * Neon instrinsic unsafe"]
20395#[inline]
20396#[cfg(target_endian = "little")]
20397#[target_feature(enable = "neon")]
20398#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20399#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
20400#[cfg_attr(
20401    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20402    assert_instr(ld2r)
20403)]
20404#[cfg_attr(
20405    not(target_arch = "arm"),
20406    stable(feature = "neon_intrinsics", since = "1.59.0")
20407)]
20408#[cfg_attr(
20409    target_arch = "arm",
20410    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20411)]
20412pub unsafe fn vld2_dup_p8(a: *const p8) -> poly8x8x2_t {
20413    transmute(vld2_dup_s8(transmute(a)))
20414}
20415#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20416#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_p8)"]
20417#[doc = "## Safety"]
20418#[doc = "  * Neon instrinsic unsafe"]
20419#[inline]
20420#[cfg(target_endian = "big")]
20421#[target_feature(enable = "neon")]
20422#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20423#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
20424#[cfg_attr(
20425    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20426    assert_instr(ld2r)
20427)]
20428#[cfg_attr(
20429    not(target_arch = "arm"),
20430    stable(feature = "neon_intrinsics", since = "1.59.0")
20431)]
20432#[cfg_attr(
20433    target_arch = "arm",
20434    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20435)]
20436pub unsafe fn vld2_dup_p8(a: *const p8) -> poly8x8x2_t {
20437    let mut ret_val: poly8x8x2_t = transmute(vld2_dup_s8(transmute(a)));
20438    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
20439    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
20440    ret_val
20441}
20442#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20443#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_p8)"]
20444#[doc = "## Safety"]
20445#[doc = "  * Neon instrinsic unsafe"]
20446#[inline]
20447#[cfg(target_endian = "little")]
20448#[target_feature(enable = "neon")]
20449#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20450#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
20451#[cfg_attr(
20452    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20453    assert_instr(ld2r)
20454)]
20455#[cfg_attr(
20456    not(target_arch = "arm"),
20457    stable(feature = "neon_intrinsics", since = "1.59.0")
20458)]
20459#[cfg_attr(
20460    target_arch = "arm",
20461    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20462)]
20463pub unsafe fn vld2q_dup_p8(a: *const p8) -> poly8x16x2_t {
20464    transmute(vld2q_dup_s8(transmute(a)))
20465}
20466#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20467#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_p8)"]
20468#[doc = "## Safety"]
20469#[doc = "  * Neon instrinsic unsafe"]
20470#[inline]
20471#[cfg(target_endian = "big")]
20472#[target_feature(enable = "neon")]
20473#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20474#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
20475#[cfg_attr(
20476    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20477    assert_instr(ld2r)
20478)]
20479#[cfg_attr(
20480    not(target_arch = "arm"),
20481    stable(feature = "neon_intrinsics", since = "1.59.0")
20482)]
20483#[cfg_attr(
20484    target_arch = "arm",
20485    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20486)]
20487pub unsafe fn vld2q_dup_p8(a: *const p8) -> poly8x16x2_t {
20488    let mut ret_val: poly8x16x2_t = transmute(vld2q_dup_s8(transmute(a)));
20489    ret_val.0 = unsafe {
20490        simd_shuffle!(
20491            ret_val.0,
20492            ret_val.0,
20493            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
20494        )
20495    };
20496    ret_val.1 = unsafe {
20497        simd_shuffle!(
20498            ret_val.1,
20499            ret_val.1,
20500            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
20501        )
20502    };
20503    ret_val
20504}
20505#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20506#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_p16)"]
20507#[doc = "## Safety"]
20508#[doc = "  * Neon instrinsic unsafe"]
20509#[inline]
20510#[cfg(target_endian = "little")]
20511#[target_feature(enable = "neon")]
20512#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20513#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
20514#[cfg_attr(
20515    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20516    assert_instr(ld2r)
20517)]
20518#[cfg_attr(
20519    not(target_arch = "arm"),
20520    stable(feature = "neon_intrinsics", since = "1.59.0")
20521)]
20522#[cfg_attr(
20523    target_arch = "arm",
20524    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20525)]
20526pub unsafe fn vld2_dup_p16(a: *const p16) -> poly16x4x2_t {
20527    transmute(vld2_dup_s16(transmute(a)))
20528}
20529#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20530#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_p16)"]
20531#[doc = "## Safety"]
20532#[doc = "  * Neon instrinsic unsafe"]
20533#[inline]
20534#[cfg(target_endian = "big")]
20535#[target_feature(enable = "neon")]
20536#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20537#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
20538#[cfg_attr(
20539    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20540    assert_instr(ld2r)
20541)]
20542#[cfg_attr(
20543    not(target_arch = "arm"),
20544    stable(feature = "neon_intrinsics", since = "1.59.0")
20545)]
20546#[cfg_attr(
20547    target_arch = "arm",
20548    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20549)]
20550pub unsafe fn vld2_dup_p16(a: *const p16) -> poly16x4x2_t {
20551    let mut ret_val: poly16x4x2_t = transmute(vld2_dup_s16(transmute(a)));
20552    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
20553    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
20554    ret_val
20555}
20556#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20557#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_p16)"]
20558#[doc = "## Safety"]
20559#[doc = "  * Neon instrinsic unsafe"]
20560#[inline]
20561#[cfg(target_endian = "little")]
20562#[target_feature(enable = "neon")]
20563#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20564#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
20565#[cfg_attr(
20566    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20567    assert_instr(ld2r)
20568)]
20569#[cfg_attr(
20570    not(target_arch = "arm"),
20571    stable(feature = "neon_intrinsics", since = "1.59.0")
20572)]
20573#[cfg_attr(
20574    target_arch = "arm",
20575    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20576)]
20577pub unsafe fn vld2q_dup_p16(a: *const p16) -> poly16x8x2_t {
20578    transmute(vld2q_dup_s16(transmute(a)))
20579}
20580#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20581#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_p16)"]
20582#[doc = "## Safety"]
20583#[doc = "  * Neon instrinsic unsafe"]
20584#[inline]
20585#[cfg(target_endian = "big")]
20586#[target_feature(enable = "neon")]
20587#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20588#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
20589#[cfg_attr(
20590    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20591    assert_instr(ld2r)
20592)]
20593#[cfg_attr(
20594    not(target_arch = "arm"),
20595    stable(feature = "neon_intrinsics", since = "1.59.0")
20596)]
20597#[cfg_attr(
20598    target_arch = "arm",
20599    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20600)]
20601pub unsafe fn vld2q_dup_p16(a: *const p16) -> poly16x8x2_t {
20602    let mut ret_val: poly16x8x2_t = transmute(vld2q_dup_s16(transmute(a)));
20603    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
20604    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
20605    ret_val
20606}
20607#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20608#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_f16)"]
20609#[doc = "## Safety"]
20610#[doc = "  * Neon instrinsic unsafe"]
20611#[inline]
20612#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20613#[cfg(target_arch = "arm")]
20614#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
20615#[target_feature(enable = "neon,fp16")]
20616#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
20617#[cfg(not(target_arch = "arm64ec"))]
20618pub unsafe fn vld2_f16(a: *const f16) -> float16x4x2_t {
20619    unsafe extern "unadjusted" {
20620        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2.v4f16.p0")]
20621        fn _vld2_f16(ptr: *const f16, size: i32) -> float16x4x2_t;
20622    }
20623    _vld2_f16(a as _, 2)
20624}
20625#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20626#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_f16)"]
20627#[doc = "## Safety"]
20628#[doc = "  * Neon instrinsic unsafe"]
20629#[inline]
20630#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20631#[cfg(target_arch = "arm")]
20632#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
20633#[target_feature(enable = "neon,fp16")]
20634#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
20635#[cfg(not(target_arch = "arm64ec"))]
20636pub unsafe fn vld2q_f16(a: *const f16) -> float16x8x2_t {
20637    unsafe extern "unadjusted" {
20638        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2.v8f16.p0")]
20639        fn _vld2q_f16(ptr: *const f16, size: i32) -> float16x8x2_t;
20640    }
20641    _vld2q_f16(a as _, 2)
20642}
20643#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20644#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_f16)"]
20645#[doc = "## Safety"]
20646#[doc = "  * Neon instrinsic unsafe"]
20647#[inline]
20648#[cfg(not(target_arch = "arm"))]
20649#[cfg_attr(
20650    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20651    assert_instr(ld2)
20652)]
20653#[target_feature(enable = "neon,fp16")]
20654#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
20655#[cfg(not(target_arch = "arm64ec"))]
20656pub unsafe fn vld2_f16(a: *const f16) -> float16x4x2_t {
20657    unsafe extern "unadjusted" {
20658        #[cfg_attr(
20659            any(target_arch = "aarch64", target_arch = "arm64ec"),
20660            link_name = "llvm.aarch64.neon.ld2.v4f16.p0"
20661        )]
20662        fn _vld2_f16(ptr: *const f16) -> float16x4x2_t;
20663    }
20664    _vld2_f16(a as _)
20665}
20666#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20667#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_f16)"]
20668#[doc = "## Safety"]
20669#[doc = "  * Neon instrinsic unsafe"]
20670#[inline]
20671#[cfg(not(target_arch = "arm"))]
20672#[cfg_attr(
20673    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20674    assert_instr(ld2)
20675)]
20676#[target_feature(enable = "neon,fp16")]
20677#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
20678#[cfg(not(target_arch = "arm64ec"))]
20679pub unsafe fn vld2q_f16(a: *const f16) -> float16x8x2_t {
20680    unsafe extern "unadjusted" {
20681        #[cfg_attr(
20682            any(target_arch = "aarch64", target_arch = "arm64ec"),
20683            link_name = "llvm.aarch64.neon.ld2.v8f16.p0"
20684        )]
20685        fn _vld2q_f16(ptr: *const f16) -> float16x8x2_t;
20686    }
20687    _vld2q_f16(a as _)
20688}
20689#[doc = "Load multiple 2-element structures to two registers"]
20690#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_f32)"]
20691#[doc = "## Safety"]
20692#[doc = "  * Neon instrinsic unsafe"]
20693#[inline]
20694#[target_feature(enable = "neon,v7")]
20695#[cfg(target_arch = "arm")]
20696#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
20697#[cfg_attr(test, assert_instr(vld2))]
20698pub unsafe fn vld2_f32(a: *const f32) -> float32x2x2_t {
20699    unsafe extern "unadjusted" {
20700        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2.v2f32")]
20701        fn _vld2_f32(ptr: *const i8, size: i32) -> float32x2x2_t;
20702    }
20703    _vld2_f32(a as *const i8, 4)
20704}
20705#[doc = "Load multiple 2-element structures to two registers"]
20706#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_f32)"]
20707#[doc = "## Safety"]
20708#[doc = "  * Neon instrinsic unsafe"]
20709#[inline]
20710#[target_feature(enable = "neon,v7")]
20711#[cfg(target_arch = "arm")]
20712#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
20713#[cfg_attr(test, assert_instr(vld2))]
20714pub unsafe fn vld2q_f32(a: *const f32) -> float32x4x2_t {
20715    unsafe extern "unadjusted" {
20716        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2.v4f32")]
20717        fn _vld2q_f32(ptr: *const i8, size: i32) -> float32x4x2_t;
20718    }
20719    _vld2q_f32(a as *const i8, 4)
20720}
20721#[doc = "Load multiple 2-element structures to two registers"]
20722#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_s8)"]
20723#[doc = "## Safety"]
20724#[doc = "  * Neon instrinsic unsafe"]
20725#[inline]
20726#[target_feature(enable = "neon,v7")]
20727#[cfg(target_arch = "arm")]
20728#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
20729#[cfg_attr(test, assert_instr(vld2))]
20730pub unsafe fn vld2_s8(a: *const i8) -> int8x8x2_t {
20731    unsafe extern "unadjusted" {
20732        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2.v8i8")]
20733        fn _vld2_s8(ptr: *const i8, size: i32) -> int8x8x2_t;
20734    }
20735    _vld2_s8(a as *const i8, 1)
20736}
20737#[doc = "Load multiple 2-element structures to two registers"]
20738#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_s8)"]
20739#[doc = "## Safety"]
20740#[doc = "  * Neon instrinsic unsafe"]
20741#[inline]
20742#[target_feature(enable = "neon,v7")]
20743#[cfg(target_arch = "arm")]
20744#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
20745#[cfg_attr(test, assert_instr(vld2))]
20746pub unsafe fn vld2q_s8(a: *const i8) -> int8x16x2_t {
20747    unsafe extern "unadjusted" {
20748        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2.v16i8")]
20749        fn _vld2q_s8(ptr: *const i8, size: i32) -> int8x16x2_t;
20750    }
20751    _vld2q_s8(a as *const i8, 1)
20752}
20753#[doc = "Load multiple 2-element structures to two registers"]
20754#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_s16)"]
20755#[doc = "## Safety"]
20756#[doc = "  * Neon instrinsic unsafe"]
20757#[inline]
20758#[target_feature(enable = "neon,v7")]
20759#[cfg(target_arch = "arm")]
20760#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
20761#[cfg_attr(test, assert_instr(vld2))]
20762pub unsafe fn vld2_s16(a: *const i16) -> int16x4x2_t {
20763    unsafe extern "unadjusted" {
20764        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2.v4i16")]
20765        fn _vld2_s16(ptr: *const i8, size: i32) -> int16x4x2_t;
20766    }
20767    _vld2_s16(a as *const i8, 2)
20768}
20769#[doc = "Load multiple 2-element structures to two registers"]
20770#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_s16)"]
20771#[doc = "## Safety"]
20772#[doc = "  * Neon instrinsic unsafe"]
20773#[inline]
20774#[target_feature(enable = "neon,v7")]
20775#[cfg(target_arch = "arm")]
20776#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
20777#[cfg_attr(test, assert_instr(vld2))]
20778pub unsafe fn vld2q_s16(a: *const i16) -> int16x8x2_t {
20779    unsafe extern "unadjusted" {
20780        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2.v8i16")]
20781        fn _vld2q_s16(ptr: *const i8, size: i32) -> int16x8x2_t;
20782    }
20783    _vld2q_s16(a as *const i8, 2)
20784}
20785#[doc = "Load multiple 2-element structures to two registers"]
20786#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_s32)"]
20787#[doc = "## Safety"]
20788#[doc = "  * Neon instrinsic unsafe"]
20789#[inline]
20790#[target_feature(enable = "neon,v7")]
20791#[cfg(target_arch = "arm")]
20792#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
20793#[cfg_attr(test, assert_instr(vld2))]
20794pub unsafe fn vld2_s32(a: *const i32) -> int32x2x2_t {
20795    unsafe extern "unadjusted" {
20796        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2.v2i32")]
20797        fn _vld2_s32(ptr: *const i8, size: i32) -> int32x2x2_t;
20798    }
20799    _vld2_s32(a as *const i8, 4)
20800}
20801#[doc = "Load multiple 2-element structures to two registers"]
20802#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_s32)"]
20803#[doc = "## Safety"]
20804#[doc = "  * Neon instrinsic unsafe"]
20805#[inline]
20806#[target_feature(enable = "neon,v7")]
20807#[cfg(target_arch = "arm")]
20808#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
20809#[cfg_attr(test, assert_instr(vld2))]
20810pub unsafe fn vld2q_s32(a: *const i32) -> int32x4x2_t {
20811    unsafe extern "unadjusted" {
20812        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2.v4i32")]
20813        fn _vld2q_s32(ptr: *const i8, size: i32) -> int32x4x2_t;
20814    }
20815    _vld2q_s32(a as *const i8, 4)
20816}
20817#[doc = "Load multiple 2-element structures to two registers"]
20818#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_f32)"]
20819#[doc = "## Safety"]
20820#[doc = "  * Neon instrinsic unsafe"]
20821#[inline]
20822#[target_feature(enable = "neon")]
20823#[cfg(not(target_arch = "arm"))]
20824#[stable(feature = "neon_intrinsics", since = "1.59.0")]
20825#[cfg_attr(test, assert_instr(ld2))]
20826pub unsafe fn vld2_f32(a: *const f32) -> float32x2x2_t {
20827    unsafe extern "unadjusted" {
20828        #[cfg_attr(
20829            any(target_arch = "aarch64", target_arch = "arm64ec"),
20830            link_name = "llvm.aarch64.neon.ld2.v2f32.p0"
20831        )]
20832        fn _vld2_f32(ptr: *const float32x2_t) -> float32x2x2_t;
20833    }
20834    _vld2_f32(a as _)
20835}
20836#[doc = "Load multiple 2-element structures to two registers"]
20837#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_f32)"]
20838#[doc = "## Safety"]
20839#[doc = "  * Neon instrinsic unsafe"]
20840#[inline]
20841#[target_feature(enable = "neon")]
20842#[cfg(not(target_arch = "arm"))]
20843#[stable(feature = "neon_intrinsics", since = "1.59.0")]
20844#[cfg_attr(test, assert_instr(ld2))]
20845pub unsafe fn vld2q_f32(a: *const f32) -> float32x4x2_t {
20846    unsafe extern "unadjusted" {
20847        #[cfg_attr(
20848            any(target_arch = "aarch64", target_arch = "arm64ec"),
20849            link_name = "llvm.aarch64.neon.ld2.v4f32.p0"
20850        )]
20851        fn _vld2q_f32(ptr: *const float32x4_t) -> float32x4x2_t;
20852    }
20853    _vld2q_f32(a as _)
20854}
20855#[doc = "Load multiple 2-element structures to two registers"]
20856#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_s8)"]
20857#[doc = "## Safety"]
20858#[doc = "  * Neon instrinsic unsafe"]
20859#[inline]
20860#[target_feature(enable = "neon")]
20861#[cfg(not(target_arch = "arm"))]
20862#[stable(feature = "neon_intrinsics", since = "1.59.0")]
20863#[cfg_attr(test, assert_instr(ld2))]
20864pub unsafe fn vld2_s8(a: *const i8) -> int8x8x2_t {
20865    unsafe extern "unadjusted" {
20866        #[cfg_attr(
20867            any(target_arch = "aarch64", target_arch = "arm64ec"),
20868            link_name = "llvm.aarch64.neon.ld2.v8i8.p0"
20869        )]
20870        fn _vld2_s8(ptr: *const int8x8_t) -> int8x8x2_t;
20871    }
20872    _vld2_s8(a as _)
20873}
20874#[doc = "Load multiple 2-element structures to two registers"]
20875#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_s8)"]
20876#[doc = "## Safety"]
20877#[doc = "  * Neon instrinsic unsafe"]
20878#[inline]
20879#[target_feature(enable = "neon")]
20880#[cfg(not(target_arch = "arm"))]
20881#[stable(feature = "neon_intrinsics", since = "1.59.0")]
20882#[cfg_attr(test, assert_instr(ld2))]
20883pub unsafe fn vld2q_s8(a: *const i8) -> int8x16x2_t {
20884    unsafe extern "unadjusted" {
20885        #[cfg_attr(
20886            any(target_arch = "aarch64", target_arch = "arm64ec"),
20887            link_name = "llvm.aarch64.neon.ld2.v16i8.p0"
20888        )]
20889        fn _vld2q_s8(ptr: *const int8x16_t) -> int8x16x2_t;
20890    }
20891    _vld2q_s8(a as _)
20892}
20893#[doc = "Load multiple 2-element structures to two registers"]
20894#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_s16)"]
20895#[doc = "## Safety"]
20896#[doc = "  * Neon instrinsic unsafe"]
20897#[inline]
20898#[target_feature(enable = "neon")]
20899#[cfg(not(target_arch = "arm"))]
20900#[stable(feature = "neon_intrinsics", since = "1.59.0")]
20901#[cfg_attr(test, assert_instr(ld2))]
20902pub unsafe fn vld2_s16(a: *const i16) -> int16x4x2_t {
20903    unsafe extern "unadjusted" {
20904        #[cfg_attr(
20905            any(target_arch = "aarch64", target_arch = "arm64ec"),
20906            link_name = "llvm.aarch64.neon.ld2.v4i16.p0"
20907        )]
20908        fn _vld2_s16(ptr: *const int16x4_t) -> int16x4x2_t;
20909    }
20910    _vld2_s16(a as _)
20911}
20912#[doc = "Load multiple 2-element structures to two registers"]
20913#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_s16)"]
20914#[doc = "## Safety"]
20915#[doc = "  * Neon instrinsic unsafe"]
20916#[inline]
20917#[target_feature(enable = "neon")]
20918#[cfg(not(target_arch = "arm"))]
20919#[stable(feature = "neon_intrinsics", since = "1.59.0")]
20920#[cfg_attr(test, assert_instr(ld2))]
20921pub unsafe fn vld2q_s16(a: *const i16) -> int16x8x2_t {
20922    unsafe extern "unadjusted" {
20923        #[cfg_attr(
20924            any(target_arch = "aarch64", target_arch = "arm64ec"),
20925            link_name = "llvm.aarch64.neon.ld2.v8i16.p0"
20926        )]
20927        fn _vld2q_s16(ptr: *const int16x8_t) -> int16x8x2_t;
20928    }
20929    _vld2q_s16(a as _)
20930}
20931#[doc = "Load multiple 2-element structures to two registers"]
20932#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_s32)"]
20933#[doc = "## Safety"]
20934#[doc = "  * Neon instrinsic unsafe"]
20935#[inline]
20936#[target_feature(enable = "neon")]
20937#[cfg(not(target_arch = "arm"))]
20938#[stable(feature = "neon_intrinsics", since = "1.59.0")]
20939#[cfg_attr(test, assert_instr(ld2))]
20940pub unsafe fn vld2_s32(a: *const i32) -> int32x2x2_t {
20941    unsafe extern "unadjusted" {
20942        #[cfg_attr(
20943            any(target_arch = "aarch64", target_arch = "arm64ec"),
20944            link_name = "llvm.aarch64.neon.ld2.v2i32.p0"
20945        )]
20946        fn _vld2_s32(ptr: *const int32x2_t) -> int32x2x2_t;
20947    }
20948    _vld2_s32(a as _)
20949}
20950#[doc = "Load multiple 2-element structures to two registers"]
20951#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_s32)"]
20952#[doc = "## Safety"]
20953#[doc = "  * Neon instrinsic unsafe"]
20954#[inline]
20955#[target_feature(enable = "neon")]
20956#[cfg(not(target_arch = "arm"))]
20957#[stable(feature = "neon_intrinsics", since = "1.59.0")]
20958#[cfg_attr(test, assert_instr(ld2))]
20959pub unsafe fn vld2q_s32(a: *const i32) -> int32x4x2_t {
20960    unsafe extern "unadjusted" {
20961        #[cfg_attr(
20962            any(target_arch = "aarch64", target_arch = "arm64ec"),
20963            link_name = "llvm.aarch64.neon.ld2.v4i32.p0"
20964        )]
20965        fn _vld2q_s32(ptr: *const int32x4_t) -> int32x4x2_t;
20966    }
20967    _vld2q_s32(a as _)
20968}
20969#[doc = "Load multiple 2-element structures to two registers"]
20970#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_f16)"]
20971#[doc = "## Safety"]
20972#[doc = "  * Neon instrinsic unsafe"]
20973#[inline]
20974#[target_feature(enable = "neon,v7")]
20975#[cfg(target_arch = "arm")]
20976#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2, LANE = 0))]
20977#[rustc_legacy_const_generics(2)]
20978#[target_feature(enable = "neon,fp16")]
20979#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
20980#[cfg(not(target_arch = "arm64ec"))]
20981pub unsafe fn vld2_lane_f16<const LANE: i32>(a: *const f16, b: float16x4x2_t) -> float16x4x2_t {
20982    static_assert_uimm_bits!(LANE, 2);
20983    unsafe extern "unadjusted" {
20984        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2lane.v4f16.p0")]
20985        fn _vld2_lane_f16(
20986            ptr: *const f16,
20987            a: float16x4_t,
20988            b: float16x4_t,
20989            n: i32,
20990            size: i32,
20991        ) -> float16x4x2_t;
20992    }
20993    _vld2_lane_f16(a as _, b.0, b.1, LANE, 2)
20994}
20995#[doc = "Load multiple 2-element structures to two registers"]
20996#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_lane_f16)"]
20997#[doc = "## Safety"]
20998#[doc = "  * Neon instrinsic unsafe"]
20999#[inline]
21000#[target_feature(enable = "neon,v7")]
21001#[cfg(target_arch = "arm")]
21002#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2, LANE = 0))]
21003#[rustc_legacy_const_generics(2)]
21004#[target_feature(enable = "neon,fp16")]
21005#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
21006#[cfg(not(target_arch = "arm64ec"))]
21007pub unsafe fn vld2q_lane_f16<const LANE: i32>(a: *const f16, b: float16x8x2_t) -> float16x8x2_t {
21008    static_assert_uimm_bits!(LANE, 3);
21009    unsafe extern "unadjusted" {
21010        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2lane.v8f16.p0")]
21011        fn _vld2q_lane_f16(
21012            ptr: *const f16,
21013            a: float16x8_t,
21014            b: float16x8_t,
21015            n: i32,
21016            size: i32,
21017        ) -> float16x8x2_t;
21018    }
21019    _vld2q_lane_f16(a as _, b.0, b.1, LANE, 2)
21020}
21021#[doc = "Load multiple 2-element structures to two registers"]
21022#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_f16)"]
21023#[doc = "## Safety"]
21024#[doc = "  * Neon instrinsic unsafe"]
21025#[inline]
21026#[cfg(not(target_arch = "arm"))]
21027#[cfg_attr(
21028    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21029    assert_instr(ld2, LANE = 0)
21030)]
21031#[rustc_legacy_const_generics(2)]
21032#[target_feature(enable = "neon,fp16")]
21033#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
21034#[cfg(not(target_arch = "arm64ec"))]
21035pub unsafe fn vld2_lane_f16<const LANE: i32>(a: *const f16, b: float16x4x2_t) -> float16x4x2_t {
21036    static_assert_uimm_bits!(LANE, 2);
21037    unsafe extern "unadjusted" {
21038        #[cfg_attr(
21039            any(target_arch = "aarch64", target_arch = "arm64ec"),
21040            link_name = "llvm.aarch64.neon.ld2lane.v4f16.p0"
21041        )]
21042        fn _vld2_lane_f16(a: float16x4_t, b: float16x4_t, n: i64, ptr: *const f16)
21043            -> float16x4x2_t;
21044    }
21045    _vld2_lane_f16(b.0, b.1, LANE as i64, a as _)
21046}
21047#[doc = "Load multiple 2-element structures to two registers"]
21048#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_lane_f16)"]
21049#[doc = "## Safety"]
21050#[doc = "  * Neon instrinsic unsafe"]
21051#[inline]
21052#[cfg(not(target_arch = "arm"))]
21053#[cfg_attr(
21054    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21055    assert_instr(ld2, LANE = 0)
21056)]
21057#[rustc_legacy_const_generics(2)]
21058#[target_feature(enable = "neon,fp16")]
21059#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
21060#[cfg(not(target_arch = "arm64ec"))]
21061pub unsafe fn vld2q_lane_f16<const LANE: i32>(a: *const f16, b: float16x8x2_t) -> float16x8x2_t {
21062    static_assert_uimm_bits!(LANE, 3);
21063    unsafe extern "unadjusted" {
21064        #[cfg_attr(
21065            any(target_arch = "aarch64", target_arch = "arm64ec"),
21066            link_name = "llvm.aarch64.neon.ld2lane.v8f16.p0"
21067        )]
21068        fn _vld2q_lane_f16(
21069            a: float16x8_t,
21070            b: float16x8_t,
21071            n: i64,
21072            ptr: *const f16,
21073        ) -> float16x8x2_t;
21074    }
21075    _vld2q_lane_f16(b.0, b.1, LANE as i64, a as _)
21076}
21077#[doc = "Load multiple 2-element structures to two registers"]
21078#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_f32)"]
21079#[doc = "## Safety"]
21080#[doc = "  * Neon instrinsic unsafe"]
21081#[inline]
21082#[target_feature(enable = "neon")]
21083#[cfg(not(target_arch = "arm"))]
21084#[cfg_attr(test, assert_instr(ld2, LANE = 0))]
21085#[rustc_legacy_const_generics(2)]
21086#[stable(feature = "neon_intrinsics", since = "1.59.0")]
21087pub unsafe fn vld2_lane_f32<const LANE: i32>(a: *const f32, b: float32x2x2_t) -> float32x2x2_t {
21088    static_assert_uimm_bits!(LANE, 2);
21089    unsafe extern "unadjusted" {
21090        #[cfg_attr(
21091            any(target_arch = "aarch64", target_arch = "arm64ec"),
21092            link_name = "llvm.aarch64.neon.ld2lane.v2f32.p0"
21093        )]
21094        fn _vld2_lane_f32(a: float32x2_t, b: float32x2_t, n: i64, ptr: *const i8) -> float32x2x2_t;
21095    }
21096    _vld2_lane_f32(b.0, b.1, LANE as i64, a as _)
21097}
21098#[doc = "Load multiple 2-element structures to two registers"]
21099#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_lane_f32)"]
21100#[doc = "## Safety"]
21101#[doc = "  * Neon instrinsic unsafe"]
21102#[inline]
21103#[target_feature(enable = "neon")]
21104#[cfg(not(target_arch = "arm"))]
21105#[cfg_attr(test, assert_instr(ld2, LANE = 0))]
21106#[rustc_legacy_const_generics(2)]
21107#[stable(feature = "neon_intrinsics", since = "1.59.0")]
21108pub unsafe fn vld2q_lane_f32<const LANE: i32>(a: *const f32, b: float32x4x2_t) -> float32x4x2_t {
21109    static_assert_uimm_bits!(LANE, 2);
21110    unsafe extern "unadjusted" {
21111        #[cfg_attr(
21112            any(target_arch = "aarch64", target_arch = "arm64ec"),
21113            link_name = "llvm.aarch64.neon.ld2lane.v4f32.p0"
21114        )]
21115        fn _vld2q_lane_f32(a: float32x4_t, b: float32x4_t, n: i64, ptr: *const i8)
21116            -> float32x4x2_t;
21117    }
21118    _vld2q_lane_f32(b.0, b.1, LANE as i64, a as _)
21119}
21120#[doc = "Load multiple 2-element structures to two registers"]
21121#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_s8)"]
21122#[doc = "## Safety"]
21123#[doc = "  * Neon instrinsic unsafe"]
21124#[inline]
21125#[target_feature(enable = "neon")]
21126#[cfg(not(target_arch = "arm"))]
21127#[cfg_attr(test, assert_instr(ld2, LANE = 0))]
21128#[rustc_legacy_const_generics(2)]
21129#[stable(feature = "neon_intrinsics", since = "1.59.0")]
21130pub unsafe fn vld2_lane_s8<const LANE: i32>(a: *const i8, b: int8x8x2_t) -> int8x8x2_t {
21131    static_assert_uimm_bits!(LANE, 3);
21132    unsafe extern "unadjusted" {
21133        #[cfg_attr(
21134            any(target_arch = "aarch64", target_arch = "arm64ec"),
21135            link_name = "llvm.aarch64.neon.ld2lane.v8i8.p0"
21136        )]
21137        fn _vld2_lane_s8(a: int8x8_t, b: int8x8_t, n: i64, ptr: *const i8) -> int8x8x2_t;
21138    }
21139    _vld2_lane_s8(b.0, b.1, LANE as i64, a as _)
21140}
21141#[doc = "Load multiple 2-element structures to two registers"]
21142#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_s16)"]
21143#[doc = "## Safety"]
21144#[doc = "  * Neon instrinsic unsafe"]
21145#[inline]
21146#[target_feature(enable = "neon")]
21147#[cfg(not(target_arch = "arm"))]
21148#[cfg_attr(test, assert_instr(ld2, LANE = 0))]
21149#[rustc_legacy_const_generics(2)]
21150#[stable(feature = "neon_intrinsics", since = "1.59.0")]
21151pub unsafe fn vld2_lane_s16<const LANE: i32>(a: *const i16, b: int16x4x2_t) -> int16x4x2_t {
21152    static_assert_uimm_bits!(LANE, 2);
21153    unsafe extern "unadjusted" {
21154        #[cfg_attr(
21155            any(target_arch = "aarch64", target_arch = "arm64ec"),
21156            link_name = "llvm.aarch64.neon.ld2lane.v4i16.p0"
21157        )]
21158        fn _vld2_lane_s16(a: int16x4_t, b: int16x4_t, n: i64, ptr: *const i8) -> int16x4x2_t;
21159    }
21160    _vld2_lane_s16(b.0, b.1, LANE as i64, a as _)
21161}
21162#[doc = "Load multiple 2-element structures to two registers"]
21163#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_lane_s16)"]
21164#[doc = "## Safety"]
21165#[doc = "  * Neon instrinsic unsafe"]
21166#[inline]
21167#[target_feature(enable = "neon")]
21168#[cfg(not(target_arch = "arm"))]
21169#[cfg_attr(test, assert_instr(ld2, LANE = 0))]
21170#[rustc_legacy_const_generics(2)]
21171#[stable(feature = "neon_intrinsics", since = "1.59.0")]
21172pub unsafe fn vld2q_lane_s16<const LANE: i32>(a: *const i16, b: int16x8x2_t) -> int16x8x2_t {
21173    static_assert_uimm_bits!(LANE, 3);
21174    unsafe extern "unadjusted" {
21175        #[cfg_attr(
21176            any(target_arch = "aarch64", target_arch = "arm64ec"),
21177            link_name = "llvm.aarch64.neon.ld2lane.v8i16.p0"
21178        )]
21179        fn _vld2q_lane_s16(a: int16x8_t, b: int16x8_t, n: i64, ptr: *const i8) -> int16x8x2_t;
21180    }
21181    _vld2q_lane_s16(b.0, b.1, LANE as i64, a as _)
21182}
21183#[doc = "Load multiple 2-element structures to two registers"]
21184#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_s32)"]
21185#[doc = "## Safety"]
21186#[doc = "  * Neon instrinsic unsafe"]
21187#[inline]
21188#[target_feature(enable = "neon")]
21189#[cfg(not(target_arch = "arm"))]
21190#[cfg_attr(test, assert_instr(ld2, LANE = 0))]
21191#[rustc_legacy_const_generics(2)]
21192#[stable(feature = "neon_intrinsics", since = "1.59.0")]
21193pub unsafe fn vld2_lane_s32<const LANE: i32>(a: *const i32, b: int32x2x2_t) -> int32x2x2_t {
21194    static_assert_uimm_bits!(LANE, 1);
21195    unsafe extern "unadjusted" {
21196        #[cfg_attr(
21197            any(target_arch = "aarch64", target_arch = "arm64ec"),
21198            link_name = "llvm.aarch64.neon.ld2lane.v2i32.p0"
21199        )]
21200        fn _vld2_lane_s32(a: int32x2_t, b: int32x2_t, n: i64, ptr: *const i8) -> int32x2x2_t;
21201    }
21202    _vld2_lane_s32(b.0, b.1, LANE as i64, a as _)
21203}
21204#[doc = "Load multiple 2-element structures to two registers"]
21205#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_lane_s32)"]
21206#[doc = "## Safety"]
21207#[doc = "  * Neon instrinsic unsafe"]
21208#[inline]
21209#[target_feature(enable = "neon")]
21210#[cfg(not(target_arch = "arm"))]
21211#[cfg_attr(test, assert_instr(ld2, LANE = 0))]
21212#[rustc_legacy_const_generics(2)]
21213#[stable(feature = "neon_intrinsics", since = "1.59.0")]
21214pub unsafe fn vld2q_lane_s32<const LANE: i32>(a: *const i32, b: int32x4x2_t) -> int32x4x2_t {
21215    static_assert_uimm_bits!(LANE, 2);
21216    unsafe extern "unadjusted" {
21217        #[cfg_attr(
21218            any(target_arch = "aarch64", target_arch = "arm64ec"),
21219            link_name = "llvm.aarch64.neon.ld2lane.v4i32.p0"
21220        )]
21221        fn _vld2q_lane_s32(a: int32x4_t, b: int32x4_t, n: i64, ptr: *const i8) -> int32x4x2_t;
21222    }
21223    _vld2q_lane_s32(b.0, b.1, LANE as i64, a as _)
21224}
21225#[doc = "Load multiple 2-element structures to two registers"]
21226#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_f32)"]
21227#[doc = "## Safety"]
21228#[doc = "  * Neon instrinsic unsafe"]
21229#[inline]
21230#[target_feature(enable = "neon,v7")]
21231#[cfg(target_arch = "arm")]
21232#[cfg_attr(test, assert_instr(vld2, LANE = 0))]
21233#[rustc_legacy_const_generics(2)]
21234#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
21235pub unsafe fn vld2_lane_f32<const LANE: i32>(a: *const f32, b: float32x2x2_t) -> float32x2x2_t {
21236    static_assert_uimm_bits!(LANE, 1);
21237    unsafe extern "unadjusted" {
21238        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2lane.v2f32.p0")]
21239        fn _vld2_lane_f32(
21240            ptr: *const i8,
21241            a: float32x2_t,
21242            b: float32x2_t,
21243            n: i32,
21244            size: i32,
21245        ) -> float32x2x2_t;
21246    }
21247    _vld2_lane_f32(a as _, b.0, b.1, LANE, 4)
21248}
21249#[doc = "Load multiple 2-element structures to two registers"]
21250#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_lane_f32)"]
21251#[doc = "## Safety"]
21252#[doc = "  * Neon instrinsic unsafe"]
21253#[inline]
21254#[target_feature(enable = "neon,v7")]
21255#[cfg(target_arch = "arm")]
21256#[cfg_attr(test, assert_instr(vld2, LANE = 0))]
21257#[rustc_legacy_const_generics(2)]
21258#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
21259pub unsafe fn vld2q_lane_f32<const LANE: i32>(a: *const f32, b: float32x4x2_t) -> float32x4x2_t {
21260    static_assert_uimm_bits!(LANE, 2);
21261    unsafe extern "unadjusted" {
21262        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2lane.v4f32.p0")]
21263        fn _vld2q_lane_f32(
21264            ptr: *const i8,
21265            a: float32x4_t,
21266            b: float32x4_t,
21267            n: i32,
21268            size: i32,
21269        ) -> float32x4x2_t;
21270    }
21271    _vld2q_lane_f32(a as _, b.0, b.1, LANE, 4)
21272}
21273#[doc = "Load multiple 2-element structures to two registers"]
21274#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_lane_s16)"]
21275#[doc = "## Safety"]
21276#[doc = "  * Neon instrinsic unsafe"]
21277#[inline]
21278#[target_feature(enable = "neon,v7")]
21279#[cfg(target_arch = "arm")]
21280#[cfg_attr(test, assert_instr(vld2, LANE = 0))]
21281#[rustc_legacy_const_generics(2)]
21282#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
21283pub unsafe fn vld2q_lane_s16<const LANE: i32>(a: *const i16, b: int16x8x2_t) -> int16x8x2_t {
21284    static_assert_uimm_bits!(LANE, 3);
21285    unsafe extern "unadjusted" {
21286        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2lane.v8i16.p0")]
21287        fn _vld2q_lane_s16(
21288            ptr: *const i8,
21289            a: int16x8_t,
21290            b: int16x8_t,
21291            n: i32,
21292            size: i32,
21293        ) -> int16x8x2_t;
21294    }
21295    _vld2q_lane_s16(a as _, b.0, b.1, LANE, 2)
21296}
21297#[doc = "Load multiple 2-element structures to two registers"]
21298#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_lane_s32)"]
21299#[doc = "## Safety"]
21300#[doc = "  * Neon instrinsic unsafe"]
21301#[inline]
21302#[target_feature(enable = "neon,v7")]
21303#[cfg(target_arch = "arm")]
21304#[cfg_attr(test, assert_instr(vld2, LANE = 0))]
21305#[rustc_legacy_const_generics(2)]
21306#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
21307pub unsafe fn vld2q_lane_s32<const LANE: i32>(a: *const i32, b: int32x4x2_t) -> int32x4x2_t {
21308    static_assert_uimm_bits!(LANE, 2);
21309    unsafe extern "unadjusted" {
21310        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2lane.v4i32.p0")]
21311        fn _vld2q_lane_s32(
21312            ptr: *const i8,
21313            a: int32x4_t,
21314            b: int32x4_t,
21315            n: i32,
21316            size: i32,
21317        ) -> int32x4x2_t;
21318    }
21319    _vld2q_lane_s32(a as _, b.0, b.1, LANE, 4)
21320}
21321#[doc = "Load multiple 2-element structures to two registers"]
21322#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_s8)"]
21323#[doc = "## Safety"]
21324#[doc = "  * Neon instrinsic unsafe"]
21325#[inline]
21326#[target_feature(enable = "neon,v7")]
21327#[cfg(target_arch = "arm")]
21328#[cfg_attr(test, assert_instr(vld2, LANE = 0))]
21329#[rustc_legacy_const_generics(2)]
21330#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
21331pub unsafe fn vld2_lane_s8<const LANE: i32>(a: *const i8, b: int8x8x2_t) -> int8x8x2_t {
21332    static_assert_uimm_bits!(LANE, 3);
21333    unsafe extern "unadjusted" {
21334        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2lane.v8i8.p0")]
21335        fn _vld2_lane_s8(ptr: *const i8, a: int8x8_t, b: int8x8_t, n: i32, size: i32)
21336            -> int8x8x2_t;
21337    }
21338    _vld2_lane_s8(a as _, b.0, b.1, LANE, 1)
21339}
21340#[doc = "Load multiple 2-element structures to two registers"]
21341#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_s16)"]
21342#[doc = "## Safety"]
21343#[doc = "  * Neon instrinsic unsafe"]
21344#[inline]
21345#[target_feature(enable = "neon,v7")]
21346#[cfg(target_arch = "arm")]
21347#[cfg_attr(test, assert_instr(vld2, LANE = 0))]
21348#[rustc_legacy_const_generics(2)]
21349#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
21350pub unsafe fn vld2_lane_s16<const LANE: i32>(a: *const i16, b: int16x4x2_t) -> int16x4x2_t {
21351    static_assert_uimm_bits!(LANE, 2);
21352    unsafe extern "unadjusted" {
21353        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2lane.v4i16.p0")]
21354        fn _vld2_lane_s16(
21355            ptr: *const i8,
21356            a: int16x4_t,
21357            b: int16x4_t,
21358            n: i32,
21359            size: i32,
21360        ) -> int16x4x2_t;
21361    }
21362    _vld2_lane_s16(a as _, b.0, b.1, LANE, 2)
21363}
21364#[doc = "Load multiple 2-element structures to two registers"]
21365#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_s32)"]
21366#[doc = "## Safety"]
21367#[doc = "  * Neon instrinsic unsafe"]
21368#[inline]
21369#[target_feature(enable = "neon,v7")]
21370#[cfg(target_arch = "arm")]
21371#[cfg_attr(test, assert_instr(vld2, LANE = 0))]
21372#[rustc_legacy_const_generics(2)]
21373#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
21374pub unsafe fn vld2_lane_s32<const LANE: i32>(a: *const i32, b: int32x2x2_t) -> int32x2x2_t {
21375    static_assert_uimm_bits!(LANE, 1);
21376    unsafe extern "unadjusted" {
21377        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2lane.v2i32.p0")]
21378        fn _vld2_lane_s32(
21379            ptr: *const i8,
21380            a: int32x2_t,
21381            b: int32x2_t,
21382            n: i32,
21383            size: i32,
21384        ) -> int32x2x2_t;
21385    }
21386    _vld2_lane_s32(a as _, b.0, b.1, LANE, 4)
21387}
21388#[doc = "Load multiple 2-element structures to two registers"]
21389#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_u8)"]
21390#[doc = "## Safety"]
21391#[doc = "  * Neon instrinsic unsafe"]
21392#[inline]
21393#[target_feature(enable = "neon")]
21394#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21395#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2, LANE = 0))]
21396#[cfg_attr(
21397    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21398    assert_instr(ld2, LANE = 0)
21399)]
21400#[rustc_legacy_const_generics(2)]
21401#[cfg_attr(
21402    not(target_arch = "arm"),
21403    stable(feature = "neon_intrinsics", since = "1.59.0")
21404)]
21405#[cfg_attr(
21406    target_arch = "arm",
21407    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21408)]
21409pub unsafe fn vld2_lane_u8<const LANE: i32>(a: *const u8, b: uint8x8x2_t) -> uint8x8x2_t {
21410    static_assert_uimm_bits!(LANE, 3);
21411    transmute(vld2_lane_s8::<LANE>(transmute(a), transmute(b)))
21412}
21413#[doc = "Load multiple 2-element structures to two registers"]
21414#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_u16)"]
21415#[doc = "## Safety"]
21416#[doc = "  * Neon instrinsic unsafe"]
21417#[inline]
21418#[target_feature(enable = "neon")]
21419#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21420#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2, LANE = 0))]
21421#[cfg_attr(
21422    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21423    assert_instr(ld2, LANE = 0)
21424)]
21425#[rustc_legacy_const_generics(2)]
21426#[cfg_attr(
21427    not(target_arch = "arm"),
21428    stable(feature = "neon_intrinsics", since = "1.59.0")
21429)]
21430#[cfg_attr(
21431    target_arch = "arm",
21432    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21433)]
21434pub unsafe fn vld2_lane_u16<const LANE: i32>(a: *const u16, b: uint16x4x2_t) -> uint16x4x2_t {
21435    static_assert_uimm_bits!(LANE, 2);
21436    transmute(vld2_lane_s16::<LANE>(transmute(a), transmute(b)))
21437}
21438#[doc = "Load multiple 2-element structures to two registers"]
21439#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_lane_u16)"]
21440#[doc = "## Safety"]
21441#[doc = "  * Neon instrinsic unsafe"]
21442#[inline]
21443#[target_feature(enable = "neon")]
21444#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21445#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2, LANE = 0))]
21446#[cfg_attr(
21447    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21448    assert_instr(ld2, LANE = 0)
21449)]
21450#[rustc_legacy_const_generics(2)]
21451#[cfg_attr(
21452    not(target_arch = "arm"),
21453    stable(feature = "neon_intrinsics", since = "1.59.0")
21454)]
21455#[cfg_attr(
21456    target_arch = "arm",
21457    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21458)]
21459pub unsafe fn vld2q_lane_u16<const LANE: i32>(a: *const u16, b: uint16x8x2_t) -> uint16x8x2_t {
21460    static_assert_uimm_bits!(LANE, 3);
21461    transmute(vld2q_lane_s16::<LANE>(transmute(a), transmute(b)))
21462}
21463#[doc = "Load multiple 2-element structures to two registers"]
21464#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_u32)"]
21465#[doc = "## Safety"]
21466#[doc = "  * Neon instrinsic unsafe"]
21467#[inline]
21468#[target_feature(enable = "neon")]
21469#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21470#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2, LANE = 0))]
21471#[cfg_attr(
21472    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21473    assert_instr(ld2, LANE = 0)
21474)]
21475#[rustc_legacy_const_generics(2)]
21476#[cfg_attr(
21477    not(target_arch = "arm"),
21478    stable(feature = "neon_intrinsics", since = "1.59.0")
21479)]
21480#[cfg_attr(
21481    target_arch = "arm",
21482    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21483)]
21484pub unsafe fn vld2_lane_u32<const LANE: i32>(a: *const u32, b: uint32x2x2_t) -> uint32x2x2_t {
21485    static_assert_uimm_bits!(LANE, 1);
21486    transmute(vld2_lane_s32::<LANE>(transmute(a), transmute(b)))
21487}
21488#[doc = "Load multiple 2-element structures to two registers"]
21489#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_lane_u32)"]
21490#[doc = "## Safety"]
21491#[doc = "  * Neon instrinsic unsafe"]
21492#[inline]
21493#[target_feature(enable = "neon")]
21494#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21495#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2, LANE = 0))]
21496#[cfg_attr(
21497    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21498    assert_instr(ld2, LANE = 0)
21499)]
21500#[rustc_legacy_const_generics(2)]
21501#[cfg_attr(
21502    not(target_arch = "arm"),
21503    stable(feature = "neon_intrinsics", since = "1.59.0")
21504)]
21505#[cfg_attr(
21506    target_arch = "arm",
21507    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21508)]
21509pub unsafe fn vld2q_lane_u32<const LANE: i32>(a: *const u32, b: uint32x4x2_t) -> uint32x4x2_t {
21510    static_assert_uimm_bits!(LANE, 2);
21511    transmute(vld2q_lane_s32::<LANE>(transmute(a), transmute(b)))
21512}
21513#[doc = "Load multiple 2-element structures to two registers"]
21514#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_p8)"]
21515#[doc = "## Safety"]
21516#[doc = "  * Neon instrinsic unsafe"]
21517#[inline]
21518#[target_feature(enable = "neon")]
21519#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21520#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2, LANE = 0))]
21521#[cfg_attr(
21522    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21523    assert_instr(ld2, LANE = 0)
21524)]
21525#[rustc_legacy_const_generics(2)]
21526#[cfg_attr(
21527    not(target_arch = "arm"),
21528    stable(feature = "neon_intrinsics", since = "1.59.0")
21529)]
21530#[cfg_attr(
21531    target_arch = "arm",
21532    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21533)]
21534pub unsafe fn vld2_lane_p8<const LANE: i32>(a: *const p8, b: poly8x8x2_t) -> poly8x8x2_t {
21535    static_assert_uimm_bits!(LANE, 3);
21536    transmute(vld2_lane_s8::<LANE>(transmute(a), transmute(b)))
21537}
21538#[doc = "Load multiple 2-element structures to two registers"]
21539#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_p16)"]
21540#[doc = "## Safety"]
21541#[doc = "  * Neon instrinsic unsafe"]
21542#[inline]
21543#[target_feature(enable = "neon")]
21544#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21545#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2, LANE = 0))]
21546#[cfg_attr(
21547    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21548    assert_instr(ld2, LANE = 0)
21549)]
21550#[rustc_legacy_const_generics(2)]
21551#[cfg_attr(
21552    not(target_arch = "arm"),
21553    stable(feature = "neon_intrinsics", since = "1.59.0")
21554)]
21555#[cfg_attr(
21556    target_arch = "arm",
21557    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21558)]
21559pub unsafe fn vld2_lane_p16<const LANE: i32>(a: *const p16, b: poly16x4x2_t) -> poly16x4x2_t {
21560    static_assert_uimm_bits!(LANE, 2);
21561    transmute(vld2_lane_s16::<LANE>(transmute(a), transmute(b)))
21562}
21563#[doc = "Load multiple 2-element structures to two registers"]
21564#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_lane_p16)"]
21565#[doc = "## Safety"]
21566#[doc = "  * Neon instrinsic unsafe"]
21567#[inline]
21568#[target_feature(enable = "neon")]
21569#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21570#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2, LANE = 0))]
21571#[cfg_attr(
21572    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21573    assert_instr(ld2, LANE = 0)
21574)]
21575#[rustc_legacy_const_generics(2)]
21576#[cfg_attr(
21577    not(target_arch = "arm"),
21578    stable(feature = "neon_intrinsics", since = "1.59.0")
21579)]
21580#[cfg_attr(
21581    target_arch = "arm",
21582    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21583)]
21584pub unsafe fn vld2q_lane_p16<const LANE: i32>(a: *const p16, b: poly16x8x2_t) -> poly16x8x2_t {
21585    static_assert_uimm_bits!(LANE, 3);
21586    transmute(vld2q_lane_s16::<LANE>(transmute(a), transmute(b)))
21587}
21588#[doc = "Load multiple 2-element structures to two registers"]
21589#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_p64)"]
21590#[doc = "## Safety"]
21591#[doc = "  * Neon instrinsic unsafe"]
21592#[inline]
21593#[target_feature(enable = "neon,aes")]
21594#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
21595#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
21596#[cfg_attr(
21597    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21598    assert_instr(nop)
21599)]
21600#[cfg_attr(
21601    not(target_arch = "arm"),
21602    stable(feature = "neon_intrinsics", since = "1.59.0")
21603)]
21604#[cfg_attr(
21605    target_arch = "arm",
21606    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21607)]
21608pub unsafe fn vld2_p64(a: *const p64) -> poly64x1x2_t {
21609    transmute(vld2_s64(transmute(a)))
21610}
21611#[doc = "Load multiple 2-element structures to two registers"]
21612#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_s64)"]
21613#[doc = "## Safety"]
21614#[doc = "  * Neon instrinsic unsafe"]
21615#[inline]
21616#[target_feature(enable = "neon,v7")]
21617#[cfg(target_arch = "arm")]
21618#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
21619#[cfg_attr(test, assert_instr(nop))]
21620pub unsafe fn vld2_s64(a: *const i64) -> int64x1x2_t {
21621    unsafe extern "unadjusted" {
21622        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2.v1i64")]
21623        fn _vld2_s64(ptr: *const i8, size: i32) -> int64x1x2_t;
21624    }
21625    _vld2_s64(a as *const i8, 8)
21626}
21627#[doc = "Load multiple 2-element structures to two registers"]
21628#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_s64)"]
21629#[doc = "## Safety"]
21630#[doc = "  * Neon instrinsic unsafe"]
21631#[inline]
21632#[target_feature(enable = "neon")]
21633#[cfg(not(target_arch = "arm"))]
21634#[stable(feature = "neon_intrinsics", since = "1.59.0")]
21635#[cfg_attr(test, assert_instr(nop))]
21636pub unsafe fn vld2_s64(a: *const i64) -> int64x1x2_t {
21637    unsafe extern "unadjusted" {
21638        #[cfg_attr(
21639            any(target_arch = "aarch64", target_arch = "arm64ec"),
21640            link_name = "llvm.aarch64.neon.ld2.v1i64.p0"
21641        )]
21642        fn _vld2_s64(ptr: *const int64x1_t) -> int64x1x2_t;
21643    }
21644    _vld2_s64(a as _)
21645}
21646#[doc = "Load multiple 2-element structures to two registers"]
21647#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_u64)"]
21648#[doc = "## Safety"]
21649#[doc = "  * Neon instrinsic unsafe"]
21650#[inline]
21651#[target_feature(enable = "neon")]
21652#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21653#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
21654#[cfg_attr(
21655    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21656    assert_instr(nop)
21657)]
21658#[cfg_attr(
21659    not(target_arch = "arm"),
21660    stable(feature = "neon_intrinsics", since = "1.59.0")
21661)]
21662#[cfg_attr(
21663    target_arch = "arm",
21664    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21665)]
21666pub unsafe fn vld2_u64(a: *const u64) -> uint64x1x2_t {
21667    transmute(vld2_s64(transmute(a)))
21668}
21669#[doc = "Load multiple 2-element structures to two registers"]
21670#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_u8)"]
21671#[doc = "## Safety"]
21672#[doc = "  * Neon instrinsic unsafe"]
21673#[inline]
21674#[cfg(target_endian = "little")]
21675#[target_feature(enable = "neon")]
21676#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21677#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
21678#[cfg_attr(
21679    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21680    assert_instr(ld2)
21681)]
21682#[cfg_attr(
21683    not(target_arch = "arm"),
21684    stable(feature = "neon_intrinsics", since = "1.59.0")
21685)]
21686#[cfg_attr(
21687    target_arch = "arm",
21688    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21689)]
21690pub unsafe fn vld2_u8(a: *const u8) -> uint8x8x2_t {
21691    transmute(vld2_s8(transmute(a)))
21692}
21693#[doc = "Load multiple 2-element structures to two registers"]
21694#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_u8)"]
21695#[doc = "## Safety"]
21696#[doc = "  * Neon instrinsic unsafe"]
21697#[inline]
21698#[cfg(target_endian = "big")]
21699#[target_feature(enable = "neon")]
21700#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21701#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
21702#[cfg_attr(
21703    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21704    assert_instr(ld2)
21705)]
21706#[cfg_attr(
21707    not(target_arch = "arm"),
21708    stable(feature = "neon_intrinsics", since = "1.59.0")
21709)]
21710#[cfg_attr(
21711    target_arch = "arm",
21712    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21713)]
21714pub unsafe fn vld2_u8(a: *const u8) -> uint8x8x2_t {
21715    let mut ret_val: uint8x8x2_t = transmute(vld2_s8(transmute(a)));
21716    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
21717    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
21718    ret_val
21719}
21720#[doc = "Load multiple 2-element structures to two registers"]
21721#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_u8)"]
21722#[doc = "## Safety"]
21723#[doc = "  * Neon instrinsic unsafe"]
21724#[inline]
21725#[cfg(target_endian = "little")]
21726#[target_feature(enable = "neon")]
21727#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21728#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
21729#[cfg_attr(
21730    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21731    assert_instr(ld2)
21732)]
21733#[cfg_attr(
21734    not(target_arch = "arm"),
21735    stable(feature = "neon_intrinsics", since = "1.59.0")
21736)]
21737#[cfg_attr(
21738    target_arch = "arm",
21739    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21740)]
21741pub unsafe fn vld2q_u8(a: *const u8) -> uint8x16x2_t {
21742    transmute(vld2q_s8(transmute(a)))
21743}
21744#[doc = "Load multiple 2-element structures to two registers"]
21745#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_u8)"]
21746#[doc = "## Safety"]
21747#[doc = "  * Neon instrinsic unsafe"]
21748#[inline]
21749#[cfg(target_endian = "big")]
21750#[target_feature(enable = "neon")]
21751#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21752#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
21753#[cfg_attr(
21754    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21755    assert_instr(ld2)
21756)]
21757#[cfg_attr(
21758    not(target_arch = "arm"),
21759    stable(feature = "neon_intrinsics", since = "1.59.0")
21760)]
21761#[cfg_attr(
21762    target_arch = "arm",
21763    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21764)]
21765pub unsafe fn vld2q_u8(a: *const u8) -> uint8x16x2_t {
21766    let mut ret_val: uint8x16x2_t = transmute(vld2q_s8(transmute(a)));
21767    ret_val.0 = unsafe {
21768        simd_shuffle!(
21769            ret_val.0,
21770            ret_val.0,
21771            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
21772        )
21773    };
21774    ret_val.1 = unsafe {
21775        simd_shuffle!(
21776            ret_val.1,
21777            ret_val.1,
21778            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
21779        )
21780    };
21781    ret_val
21782}
21783#[doc = "Load multiple 2-element structures to two registers"]
21784#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_u16)"]
21785#[doc = "## Safety"]
21786#[doc = "  * Neon instrinsic unsafe"]
21787#[inline]
21788#[cfg(target_endian = "little")]
21789#[target_feature(enable = "neon")]
21790#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21791#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
21792#[cfg_attr(
21793    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21794    assert_instr(ld2)
21795)]
21796#[cfg_attr(
21797    not(target_arch = "arm"),
21798    stable(feature = "neon_intrinsics", since = "1.59.0")
21799)]
21800#[cfg_attr(
21801    target_arch = "arm",
21802    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21803)]
21804pub unsafe fn vld2_u16(a: *const u16) -> uint16x4x2_t {
21805    transmute(vld2_s16(transmute(a)))
21806}
21807#[doc = "Load multiple 2-element structures to two registers"]
21808#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_u16)"]
21809#[doc = "## Safety"]
21810#[doc = "  * Neon instrinsic unsafe"]
21811#[inline]
21812#[cfg(target_endian = "big")]
21813#[target_feature(enable = "neon")]
21814#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21815#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
21816#[cfg_attr(
21817    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21818    assert_instr(ld2)
21819)]
21820#[cfg_attr(
21821    not(target_arch = "arm"),
21822    stable(feature = "neon_intrinsics", since = "1.59.0")
21823)]
21824#[cfg_attr(
21825    target_arch = "arm",
21826    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21827)]
21828pub unsafe fn vld2_u16(a: *const u16) -> uint16x4x2_t {
21829    let mut ret_val: uint16x4x2_t = transmute(vld2_s16(transmute(a)));
21830    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
21831    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
21832    ret_val
21833}
21834#[doc = "Load multiple 2-element structures to two registers"]
21835#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_u16)"]
21836#[doc = "## Safety"]
21837#[doc = "  * Neon instrinsic unsafe"]
21838#[inline]
21839#[cfg(target_endian = "little")]
21840#[target_feature(enable = "neon")]
21841#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21842#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
21843#[cfg_attr(
21844    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21845    assert_instr(ld2)
21846)]
21847#[cfg_attr(
21848    not(target_arch = "arm"),
21849    stable(feature = "neon_intrinsics", since = "1.59.0")
21850)]
21851#[cfg_attr(
21852    target_arch = "arm",
21853    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21854)]
21855pub unsafe fn vld2q_u16(a: *const u16) -> uint16x8x2_t {
21856    transmute(vld2q_s16(transmute(a)))
21857}
21858#[doc = "Load multiple 2-element structures to two registers"]
21859#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_u16)"]
21860#[doc = "## Safety"]
21861#[doc = "  * Neon instrinsic unsafe"]
21862#[inline]
21863#[cfg(target_endian = "big")]
21864#[target_feature(enable = "neon")]
21865#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21866#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
21867#[cfg_attr(
21868    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21869    assert_instr(ld2)
21870)]
21871#[cfg_attr(
21872    not(target_arch = "arm"),
21873    stable(feature = "neon_intrinsics", since = "1.59.0")
21874)]
21875#[cfg_attr(
21876    target_arch = "arm",
21877    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21878)]
21879pub unsafe fn vld2q_u16(a: *const u16) -> uint16x8x2_t {
21880    let mut ret_val: uint16x8x2_t = transmute(vld2q_s16(transmute(a)));
21881    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
21882    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
21883    ret_val
21884}
21885#[doc = "Load multiple 2-element structures to two registers"]
21886#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_u32)"]
21887#[doc = "## Safety"]
21888#[doc = "  * Neon instrinsic unsafe"]
21889#[inline]
21890#[cfg(target_endian = "little")]
21891#[target_feature(enable = "neon")]
21892#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21893#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
21894#[cfg_attr(
21895    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21896    assert_instr(ld2)
21897)]
21898#[cfg_attr(
21899    not(target_arch = "arm"),
21900    stable(feature = "neon_intrinsics", since = "1.59.0")
21901)]
21902#[cfg_attr(
21903    target_arch = "arm",
21904    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21905)]
21906pub unsafe fn vld2_u32(a: *const u32) -> uint32x2x2_t {
21907    transmute(vld2_s32(transmute(a)))
21908}
21909#[doc = "Load multiple 2-element structures to two registers"]
21910#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_u32)"]
21911#[doc = "## Safety"]
21912#[doc = "  * Neon instrinsic unsafe"]
21913#[inline]
21914#[cfg(target_endian = "big")]
21915#[target_feature(enable = "neon")]
21916#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21917#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
21918#[cfg_attr(
21919    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21920    assert_instr(ld2)
21921)]
21922#[cfg_attr(
21923    not(target_arch = "arm"),
21924    stable(feature = "neon_intrinsics", since = "1.59.0")
21925)]
21926#[cfg_attr(
21927    target_arch = "arm",
21928    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21929)]
21930pub unsafe fn vld2_u32(a: *const u32) -> uint32x2x2_t {
21931    let mut ret_val: uint32x2x2_t = transmute(vld2_s32(transmute(a)));
21932    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [1, 0]) };
21933    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [1, 0]) };
21934    ret_val
21935}
21936#[doc = "Load multiple 2-element structures to two registers"]
21937#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_u32)"]
21938#[doc = "## Safety"]
21939#[doc = "  * Neon instrinsic unsafe"]
21940#[inline]
21941#[cfg(target_endian = "little")]
21942#[target_feature(enable = "neon")]
21943#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21944#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
21945#[cfg_attr(
21946    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21947    assert_instr(ld2)
21948)]
21949#[cfg_attr(
21950    not(target_arch = "arm"),
21951    stable(feature = "neon_intrinsics", since = "1.59.0")
21952)]
21953#[cfg_attr(
21954    target_arch = "arm",
21955    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21956)]
21957pub unsafe fn vld2q_u32(a: *const u32) -> uint32x4x2_t {
21958    transmute(vld2q_s32(transmute(a)))
21959}
21960#[doc = "Load multiple 2-element structures to two registers"]
21961#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_u32)"]
21962#[doc = "## Safety"]
21963#[doc = "  * Neon instrinsic unsafe"]
21964#[inline]
21965#[cfg(target_endian = "big")]
21966#[target_feature(enable = "neon")]
21967#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21968#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
21969#[cfg_attr(
21970    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21971    assert_instr(ld2)
21972)]
21973#[cfg_attr(
21974    not(target_arch = "arm"),
21975    stable(feature = "neon_intrinsics", since = "1.59.0")
21976)]
21977#[cfg_attr(
21978    target_arch = "arm",
21979    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21980)]
21981pub unsafe fn vld2q_u32(a: *const u32) -> uint32x4x2_t {
21982    let mut ret_val: uint32x4x2_t = transmute(vld2q_s32(transmute(a)));
21983    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
21984    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
21985    ret_val
21986}
21987#[doc = "Load multiple 2-element structures to two registers"]
21988#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_p8)"]
21989#[doc = "## Safety"]
21990#[doc = "  * Neon instrinsic unsafe"]
21991#[inline]
21992#[cfg(target_endian = "little")]
21993#[target_feature(enable = "neon")]
21994#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21995#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
21996#[cfg_attr(
21997    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21998    assert_instr(ld2)
21999)]
22000#[cfg_attr(
22001    not(target_arch = "arm"),
22002    stable(feature = "neon_intrinsics", since = "1.59.0")
22003)]
22004#[cfg_attr(
22005    target_arch = "arm",
22006    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22007)]
22008pub unsafe fn vld2_p8(a: *const p8) -> poly8x8x2_t {
22009    transmute(vld2_s8(transmute(a)))
22010}
22011#[doc = "Load multiple 2-element structures to two registers"]
22012#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_p8)"]
22013#[doc = "## Safety"]
22014#[doc = "  * Neon instrinsic unsafe"]
22015#[inline]
22016#[cfg(target_endian = "big")]
22017#[target_feature(enable = "neon")]
22018#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22019#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
22020#[cfg_attr(
22021    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22022    assert_instr(ld2)
22023)]
22024#[cfg_attr(
22025    not(target_arch = "arm"),
22026    stable(feature = "neon_intrinsics", since = "1.59.0")
22027)]
22028#[cfg_attr(
22029    target_arch = "arm",
22030    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22031)]
22032pub unsafe fn vld2_p8(a: *const p8) -> poly8x8x2_t {
22033    let mut ret_val: poly8x8x2_t = transmute(vld2_s8(transmute(a)));
22034    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
22035    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
22036    ret_val
22037}
22038#[doc = "Load multiple 2-element structures to two registers"]
22039#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_p8)"]
22040#[doc = "## Safety"]
22041#[doc = "  * Neon instrinsic unsafe"]
22042#[inline]
22043#[cfg(target_endian = "little")]
22044#[target_feature(enable = "neon")]
22045#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22046#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
22047#[cfg_attr(
22048    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22049    assert_instr(ld2)
22050)]
22051#[cfg_attr(
22052    not(target_arch = "arm"),
22053    stable(feature = "neon_intrinsics", since = "1.59.0")
22054)]
22055#[cfg_attr(
22056    target_arch = "arm",
22057    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22058)]
22059pub unsafe fn vld2q_p8(a: *const p8) -> poly8x16x2_t {
22060    transmute(vld2q_s8(transmute(a)))
22061}
22062#[doc = "Load multiple 2-element structures to two registers"]
22063#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_p8)"]
22064#[doc = "## Safety"]
22065#[doc = "  * Neon instrinsic unsafe"]
22066#[inline]
22067#[cfg(target_endian = "big")]
22068#[target_feature(enable = "neon")]
22069#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22070#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
22071#[cfg_attr(
22072    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22073    assert_instr(ld2)
22074)]
22075#[cfg_attr(
22076    not(target_arch = "arm"),
22077    stable(feature = "neon_intrinsics", since = "1.59.0")
22078)]
22079#[cfg_attr(
22080    target_arch = "arm",
22081    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22082)]
22083pub unsafe fn vld2q_p8(a: *const p8) -> poly8x16x2_t {
22084    let mut ret_val: poly8x16x2_t = transmute(vld2q_s8(transmute(a)));
22085    ret_val.0 = unsafe {
22086        simd_shuffle!(
22087            ret_val.0,
22088            ret_val.0,
22089            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
22090        )
22091    };
22092    ret_val.1 = unsafe {
22093        simd_shuffle!(
22094            ret_val.1,
22095            ret_val.1,
22096            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
22097        )
22098    };
22099    ret_val
22100}
22101#[doc = "Load multiple 2-element structures to two registers"]
22102#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_p16)"]
22103#[doc = "## Safety"]
22104#[doc = "  * Neon instrinsic unsafe"]
22105#[inline]
22106#[cfg(target_endian = "little")]
22107#[target_feature(enable = "neon")]
22108#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22109#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
22110#[cfg_attr(
22111    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22112    assert_instr(ld2)
22113)]
22114#[cfg_attr(
22115    not(target_arch = "arm"),
22116    stable(feature = "neon_intrinsics", since = "1.59.0")
22117)]
22118#[cfg_attr(
22119    target_arch = "arm",
22120    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22121)]
22122pub unsafe fn vld2_p16(a: *const p16) -> poly16x4x2_t {
22123    transmute(vld2_s16(transmute(a)))
22124}
22125#[doc = "Load multiple 2-element structures to two registers"]
22126#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_p16)"]
22127#[doc = "## Safety"]
22128#[doc = "  * Neon instrinsic unsafe"]
22129#[inline]
22130#[cfg(target_endian = "big")]
22131#[target_feature(enable = "neon")]
22132#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22133#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
22134#[cfg_attr(
22135    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22136    assert_instr(ld2)
22137)]
22138#[cfg_attr(
22139    not(target_arch = "arm"),
22140    stable(feature = "neon_intrinsics", since = "1.59.0")
22141)]
22142#[cfg_attr(
22143    target_arch = "arm",
22144    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22145)]
22146pub unsafe fn vld2_p16(a: *const p16) -> poly16x4x2_t {
22147    let mut ret_val: poly16x4x2_t = transmute(vld2_s16(transmute(a)));
22148    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
22149    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
22150    ret_val
22151}
22152#[doc = "Load multiple 2-element structures to two registers"]
22153#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_p16)"]
22154#[doc = "## Safety"]
22155#[doc = "  * Neon instrinsic unsafe"]
22156#[inline]
22157#[cfg(target_endian = "little")]
22158#[target_feature(enable = "neon")]
22159#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22160#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
22161#[cfg_attr(
22162    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22163    assert_instr(ld2)
22164)]
22165#[cfg_attr(
22166    not(target_arch = "arm"),
22167    stable(feature = "neon_intrinsics", since = "1.59.0")
22168)]
22169#[cfg_attr(
22170    target_arch = "arm",
22171    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22172)]
22173pub unsafe fn vld2q_p16(a: *const p16) -> poly16x8x2_t {
22174    transmute(vld2q_s16(transmute(a)))
22175}
22176#[doc = "Load multiple 2-element structures to two registers"]
22177#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_p16)"]
22178#[doc = "## Safety"]
22179#[doc = "  * Neon instrinsic unsafe"]
22180#[inline]
22181#[cfg(target_endian = "big")]
22182#[target_feature(enable = "neon")]
22183#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22184#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
22185#[cfg_attr(
22186    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22187    assert_instr(ld2)
22188)]
22189#[cfg_attr(
22190    not(target_arch = "arm"),
22191    stable(feature = "neon_intrinsics", since = "1.59.0")
22192)]
22193#[cfg_attr(
22194    target_arch = "arm",
22195    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22196)]
22197pub unsafe fn vld2q_p16(a: *const p16) -> poly16x8x2_t {
22198    let mut ret_val: poly16x8x2_t = transmute(vld2q_s16(transmute(a)));
22199    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
22200    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
22201    ret_val
22202}
22203#[doc = "Load single 3-element structure and replicate to all lanes of two registers"]
22204#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_f16)"]
22205#[doc = "## Safety"]
22206#[doc = "  * Neon instrinsic unsafe"]
22207#[inline]
22208#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22209#[cfg(target_arch = "arm")]
22210#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
22211#[target_feature(enable = "neon,fp16")]
22212#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
22213#[cfg(not(target_arch = "arm64ec"))]
22214pub unsafe fn vld3_dup_f16(a: *const f16) -> float16x4x3_t {
22215    unsafe extern "unadjusted" {
22216        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3dup.v4f16.p0")]
22217        fn _vld3_dup_f16(ptr: *const f16, size: i32) -> float16x4x3_t;
22218    }
22219    _vld3_dup_f16(a as _, 2)
22220}
22221#[doc = "Load single 3-element structure and replicate to all lanes of two registers"]
22222#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_f16)"]
22223#[doc = "## Safety"]
22224#[doc = "  * Neon instrinsic unsafe"]
22225#[inline]
22226#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22227#[cfg(target_arch = "arm")]
22228#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
22229#[target_feature(enable = "neon,fp16")]
22230#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
22231#[cfg(not(target_arch = "arm64ec"))]
22232pub unsafe fn vld3q_dup_f16(a: *const f16) -> float16x8x3_t {
22233    unsafe extern "unadjusted" {
22234        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3dup.v8f16.p0")]
22235        fn _vld3q_dup_f16(ptr: *const f16, size: i32) -> float16x8x3_t;
22236    }
22237    _vld3q_dup_f16(a as _, 2)
22238}
22239#[doc = "Load single 3-element structure and replicate to all lanes of two registers"]
22240#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_f16)"]
22241#[doc = "## Safety"]
22242#[doc = "  * Neon instrinsic unsafe"]
22243#[inline]
22244#[cfg(not(target_arch = "arm"))]
22245#[cfg_attr(
22246    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22247    assert_instr(ld3r)
22248)]
22249#[target_feature(enable = "neon,fp16")]
22250#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
22251#[cfg(not(target_arch = "arm64ec"))]
22252pub unsafe fn vld3_dup_f16(a: *const f16) -> float16x4x3_t {
22253    unsafe extern "unadjusted" {
22254        #[cfg_attr(
22255            any(target_arch = "aarch64", target_arch = "arm64ec"),
22256            link_name = "llvm.aarch64.neon.ld3r.v4f16.p0"
22257        )]
22258        fn _vld3_dup_f16(ptr: *const f16) -> float16x4x3_t;
22259    }
22260    _vld3_dup_f16(a as _)
22261}
22262#[doc = "Load single 3-element structure and replicate to all lanes of two registers"]
22263#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_f16)"]
22264#[doc = "## Safety"]
22265#[doc = "  * Neon instrinsic unsafe"]
22266#[inline]
22267#[cfg(not(target_arch = "arm"))]
22268#[cfg_attr(
22269    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22270    assert_instr(ld3r)
22271)]
22272#[target_feature(enable = "neon,fp16")]
22273#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
22274#[cfg(not(target_arch = "arm64ec"))]
22275pub unsafe fn vld3q_dup_f16(a: *const f16) -> float16x8x3_t {
22276    unsafe extern "unadjusted" {
22277        #[cfg_attr(
22278            any(target_arch = "aarch64", target_arch = "arm64ec"),
22279            link_name = "llvm.aarch64.neon.ld3r.v8f16.p0"
22280        )]
22281        fn _vld3q_dup_f16(ptr: *const f16) -> float16x8x3_t;
22282    }
22283    _vld3q_dup_f16(a as _)
22284}
22285#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
22286#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_f32)"]
22287#[doc = "## Safety"]
22288#[doc = "  * Neon instrinsic unsafe"]
22289#[inline]
22290#[target_feature(enable = "neon")]
22291#[cfg(not(target_arch = "arm"))]
22292#[stable(feature = "neon_intrinsics", since = "1.59.0")]
22293#[cfg_attr(test, assert_instr(ld3r))]
22294pub unsafe fn vld3_dup_f32(a: *const f32) -> float32x2x3_t {
22295    unsafe extern "unadjusted" {
22296        #[cfg_attr(
22297            any(target_arch = "aarch64", target_arch = "arm64ec"),
22298            link_name = "llvm.aarch64.neon.ld3r.v2f32.p0"
22299        )]
22300        fn _vld3_dup_f32(ptr: *const f32) -> float32x2x3_t;
22301    }
22302    _vld3_dup_f32(a as _)
22303}
22304#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
22305#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_f32)"]
22306#[doc = "## Safety"]
22307#[doc = "  * Neon instrinsic unsafe"]
22308#[inline]
22309#[target_feature(enable = "neon")]
22310#[cfg(not(target_arch = "arm"))]
22311#[stable(feature = "neon_intrinsics", since = "1.59.0")]
22312#[cfg_attr(test, assert_instr(ld3r))]
22313pub unsafe fn vld3q_dup_f32(a: *const f32) -> float32x4x3_t {
22314    unsafe extern "unadjusted" {
22315        #[cfg_attr(
22316            any(target_arch = "aarch64", target_arch = "arm64ec"),
22317            link_name = "llvm.aarch64.neon.ld3r.v4f32.p0"
22318        )]
22319        fn _vld3q_dup_f32(ptr: *const f32) -> float32x4x3_t;
22320    }
22321    _vld3q_dup_f32(a as _)
22322}
22323#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
22324#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_s8)"]
22325#[doc = "## Safety"]
22326#[doc = "  * Neon instrinsic unsafe"]
22327#[inline]
22328#[target_feature(enable = "neon")]
22329#[cfg(not(target_arch = "arm"))]
22330#[stable(feature = "neon_intrinsics", since = "1.59.0")]
22331#[cfg_attr(test, assert_instr(ld3r))]
22332pub unsafe fn vld3_dup_s8(a: *const i8) -> int8x8x3_t {
22333    unsafe extern "unadjusted" {
22334        #[cfg_attr(
22335            any(target_arch = "aarch64", target_arch = "arm64ec"),
22336            link_name = "llvm.aarch64.neon.ld3r.v8i8.p0"
22337        )]
22338        fn _vld3_dup_s8(ptr: *const i8) -> int8x8x3_t;
22339    }
22340    _vld3_dup_s8(a as _)
22341}
22342#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
22343#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_s8)"]
22344#[doc = "## Safety"]
22345#[doc = "  * Neon instrinsic unsafe"]
22346#[inline]
22347#[target_feature(enable = "neon")]
22348#[cfg(not(target_arch = "arm"))]
22349#[stable(feature = "neon_intrinsics", since = "1.59.0")]
22350#[cfg_attr(test, assert_instr(ld3r))]
22351pub unsafe fn vld3q_dup_s8(a: *const i8) -> int8x16x3_t {
22352    unsafe extern "unadjusted" {
22353        #[cfg_attr(
22354            any(target_arch = "aarch64", target_arch = "arm64ec"),
22355            link_name = "llvm.aarch64.neon.ld3r.v16i8.p0"
22356        )]
22357        fn _vld3q_dup_s8(ptr: *const i8) -> int8x16x3_t;
22358    }
22359    _vld3q_dup_s8(a as _)
22360}
22361#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
22362#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_s16)"]
22363#[doc = "## Safety"]
22364#[doc = "  * Neon instrinsic unsafe"]
22365#[inline]
22366#[target_feature(enable = "neon")]
22367#[cfg(not(target_arch = "arm"))]
22368#[stable(feature = "neon_intrinsics", since = "1.59.0")]
22369#[cfg_attr(test, assert_instr(ld3r))]
22370pub unsafe fn vld3_dup_s16(a: *const i16) -> int16x4x3_t {
22371    unsafe extern "unadjusted" {
22372        #[cfg_attr(
22373            any(target_arch = "aarch64", target_arch = "arm64ec"),
22374            link_name = "llvm.aarch64.neon.ld3r.v4i16.p0"
22375        )]
22376        fn _vld3_dup_s16(ptr: *const i16) -> int16x4x3_t;
22377    }
22378    _vld3_dup_s16(a as _)
22379}
22380#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
22381#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_s16)"]
22382#[doc = "## Safety"]
22383#[doc = "  * Neon instrinsic unsafe"]
22384#[inline]
22385#[target_feature(enable = "neon")]
22386#[cfg(not(target_arch = "arm"))]
22387#[stable(feature = "neon_intrinsics", since = "1.59.0")]
22388#[cfg_attr(test, assert_instr(ld3r))]
22389pub unsafe fn vld3q_dup_s16(a: *const i16) -> int16x8x3_t {
22390    unsafe extern "unadjusted" {
22391        #[cfg_attr(
22392            any(target_arch = "aarch64", target_arch = "arm64ec"),
22393            link_name = "llvm.aarch64.neon.ld3r.v8i16.p0"
22394        )]
22395        fn _vld3q_dup_s16(ptr: *const i16) -> int16x8x3_t;
22396    }
22397    _vld3q_dup_s16(a as _)
22398}
22399#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
22400#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_s32)"]
22401#[doc = "## Safety"]
22402#[doc = "  * Neon instrinsic unsafe"]
22403#[inline]
22404#[target_feature(enable = "neon")]
22405#[cfg(not(target_arch = "arm"))]
22406#[stable(feature = "neon_intrinsics", since = "1.59.0")]
22407#[cfg_attr(test, assert_instr(ld3r))]
22408pub unsafe fn vld3_dup_s32(a: *const i32) -> int32x2x3_t {
22409    unsafe extern "unadjusted" {
22410        #[cfg_attr(
22411            any(target_arch = "aarch64", target_arch = "arm64ec"),
22412            link_name = "llvm.aarch64.neon.ld3r.v2i32.p0"
22413        )]
22414        fn _vld3_dup_s32(ptr: *const i32) -> int32x2x3_t;
22415    }
22416    _vld3_dup_s32(a as _)
22417}
22418#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
22419#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_s32)"]
22420#[doc = "## Safety"]
22421#[doc = "  * Neon instrinsic unsafe"]
22422#[inline]
22423#[target_feature(enable = "neon")]
22424#[cfg(not(target_arch = "arm"))]
22425#[stable(feature = "neon_intrinsics", since = "1.59.0")]
22426#[cfg_attr(test, assert_instr(ld3r))]
22427pub unsafe fn vld3q_dup_s32(a: *const i32) -> int32x4x3_t {
22428    unsafe extern "unadjusted" {
22429        #[cfg_attr(
22430            any(target_arch = "aarch64", target_arch = "arm64ec"),
22431            link_name = "llvm.aarch64.neon.ld3r.v4i32.p0"
22432        )]
22433        fn _vld3q_dup_s32(ptr: *const i32) -> int32x4x3_t;
22434    }
22435    _vld3q_dup_s32(a as _)
22436}
22437#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
22438#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_s64)"]
22439#[doc = "## Safety"]
22440#[doc = "  * Neon instrinsic unsafe"]
22441#[inline]
22442#[target_feature(enable = "neon")]
22443#[cfg(not(target_arch = "arm"))]
22444#[stable(feature = "neon_intrinsics", since = "1.59.0")]
22445#[cfg_attr(test, assert_instr(ld3r))]
22446pub unsafe fn vld3_dup_s64(a: *const i64) -> int64x1x3_t {
22447    unsafe extern "unadjusted" {
22448        #[cfg_attr(
22449            any(target_arch = "aarch64", target_arch = "arm64ec"),
22450            link_name = "llvm.aarch64.neon.ld3r.v1i64.p0"
22451        )]
22452        fn _vld3_dup_s64(ptr: *const i64) -> int64x1x3_t;
22453    }
22454    _vld3_dup_s64(a as _)
22455}
22456#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
22457#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_f32)"]
22458#[doc = "## Safety"]
22459#[doc = "  * Neon instrinsic unsafe"]
22460#[inline]
22461#[target_feature(enable = "neon,v7")]
22462#[cfg(target_arch = "arm")]
22463#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
22464#[cfg_attr(test, assert_instr(vld3))]
22465pub unsafe fn vld3_dup_f32(a: *const f32) -> float32x2x3_t {
22466    unsafe extern "unadjusted" {
22467        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3dup.v2f32.p0")]
22468        fn _vld3_dup_f32(ptr: *const i8, size: i32) -> float32x2x3_t;
22469    }
22470    _vld3_dup_f32(a as *const i8, 4)
22471}
22472#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
22473#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_f32)"]
22474#[doc = "## Safety"]
22475#[doc = "  * Neon instrinsic unsafe"]
22476#[inline]
22477#[target_feature(enable = "neon,v7")]
22478#[cfg(target_arch = "arm")]
22479#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
22480#[cfg_attr(test, assert_instr(vld3))]
22481pub unsafe fn vld3q_dup_f32(a: *const f32) -> float32x4x3_t {
22482    unsafe extern "unadjusted" {
22483        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3dup.v4f32.p0")]
22484        fn _vld3q_dup_f32(ptr: *const i8, size: i32) -> float32x4x3_t;
22485    }
22486    _vld3q_dup_f32(a as *const i8, 4)
22487}
22488#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
22489#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_s8)"]
22490#[doc = "## Safety"]
22491#[doc = "  * Neon instrinsic unsafe"]
22492#[inline]
22493#[target_feature(enable = "neon,v7")]
22494#[cfg(target_arch = "arm")]
22495#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
22496#[cfg_attr(test, assert_instr(vld3))]
22497pub unsafe fn vld3_dup_s8(a: *const i8) -> int8x8x3_t {
22498    unsafe extern "unadjusted" {
22499        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3dup.v8i8.p0")]
22500        fn _vld3_dup_s8(ptr: *const i8, size: i32) -> int8x8x3_t;
22501    }
22502    _vld3_dup_s8(a as *const i8, 1)
22503}
22504#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
22505#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_s8)"]
22506#[doc = "## Safety"]
22507#[doc = "  * Neon instrinsic unsafe"]
22508#[inline]
22509#[target_feature(enable = "neon,v7")]
22510#[cfg(target_arch = "arm")]
22511#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
22512#[cfg_attr(test, assert_instr(vld3))]
22513pub unsafe fn vld3q_dup_s8(a: *const i8) -> int8x16x3_t {
22514    unsafe extern "unadjusted" {
22515        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3dup.v16i8.p0")]
22516        fn _vld3q_dup_s8(ptr: *const i8, size: i32) -> int8x16x3_t;
22517    }
22518    _vld3q_dup_s8(a as *const i8, 1)
22519}
22520#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
22521#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_s16)"]
22522#[doc = "## Safety"]
22523#[doc = "  * Neon instrinsic unsafe"]
22524#[inline]
22525#[target_feature(enable = "neon,v7")]
22526#[cfg(target_arch = "arm")]
22527#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
22528#[cfg_attr(test, assert_instr(vld3))]
22529pub unsafe fn vld3_dup_s16(a: *const i16) -> int16x4x3_t {
22530    unsafe extern "unadjusted" {
22531        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3dup.v4i16.p0")]
22532        fn _vld3_dup_s16(ptr: *const i8, size: i32) -> int16x4x3_t;
22533    }
22534    _vld3_dup_s16(a as *const i8, 2)
22535}
22536#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
22537#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_s16)"]
22538#[doc = "## Safety"]
22539#[doc = "  * Neon instrinsic unsafe"]
22540#[inline]
22541#[target_feature(enable = "neon,v7")]
22542#[cfg(target_arch = "arm")]
22543#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
22544#[cfg_attr(test, assert_instr(vld3))]
22545pub unsafe fn vld3q_dup_s16(a: *const i16) -> int16x8x3_t {
22546    unsafe extern "unadjusted" {
22547        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3dup.v8i16.p0")]
22548        fn _vld3q_dup_s16(ptr: *const i8, size: i32) -> int16x8x3_t;
22549    }
22550    _vld3q_dup_s16(a as *const i8, 2)
22551}
22552#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
22553#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_s32)"]
22554#[doc = "## Safety"]
22555#[doc = "  * Neon instrinsic unsafe"]
22556#[inline]
22557#[target_feature(enable = "neon,v7")]
22558#[cfg(target_arch = "arm")]
22559#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
22560#[cfg_attr(test, assert_instr(vld3))]
22561pub unsafe fn vld3_dup_s32(a: *const i32) -> int32x2x3_t {
22562    unsafe extern "unadjusted" {
22563        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3dup.v2i32.p0")]
22564        fn _vld3_dup_s32(ptr: *const i8, size: i32) -> int32x2x3_t;
22565    }
22566    _vld3_dup_s32(a as *const i8, 4)
22567}
22568#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
22569#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_s32)"]
22570#[doc = "## Safety"]
22571#[doc = "  * Neon instrinsic unsafe"]
22572#[inline]
22573#[target_feature(enable = "neon,v7")]
22574#[cfg(target_arch = "arm")]
22575#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
22576#[cfg_attr(test, assert_instr(vld3))]
22577pub unsafe fn vld3q_dup_s32(a: *const i32) -> int32x4x3_t {
22578    unsafe extern "unadjusted" {
22579        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3dup.v4i32.p0")]
22580        fn _vld3q_dup_s32(ptr: *const i8, size: i32) -> int32x4x3_t;
22581    }
22582    _vld3q_dup_s32(a as *const i8, 4)
22583}
22584#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
22585#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_p64)"]
22586#[doc = "## Safety"]
22587#[doc = "  * Neon instrinsic unsafe"]
22588#[inline]
22589#[target_feature(enable = "neon,aes")]
22590#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
22591#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
22592#[cfg_attr(
22593    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22594    assert_instr(ld3r)
22595)]
22596#[cfg_attr(
22597    not(target_arch = "arm"),
22598    stable(feature = "neon_intrinsics", since = "1.59.0")
22599)]
22600#[cfg_attr(
22601    target_arch = "arm",
22602    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22603)]
22604pub unsafe fn vld3_dup_p64(a: *const p64) -> poly64x1x3_t {
22605    transmute(vld3_dup_s64(transmute(a)))
22606}
22607#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
22608#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_s64)"]
22609#[doc = "## Safety"]
22610#[doc = "  * Neon instrinsic unsafe"]
22611#[inline]
22612#[cfg(target_arch = "arm")]
22613#[target_feature(enable = "neon,v7")]
22614#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
22615#[cfg_attr(test, assert_instr(nop))]
22616pub unsafe fn vld3_dup_s64(a: *const i64) -> int64x1x3_t {
22617    unsafe extern "unadjusted" {
22618        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3dup.v1i64.p0")]
22619        fn _vld3_dup_s64(ptr: *const i8, size: i32) -> int64x1x3_t;
22620    }
22621    _vld3_dup_s64(a as *const i8, 8)
22622}
22623#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
22624#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_u64)"]
22625#[doc = "## Safety"]
22626#[doc = "  * Neon instrinsic unsafe"]
22627#[inline]
22628#[target_feature(enable = "neon")]
22629#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22630#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
22631#[cfg_attr(
22632    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22633    assert_instr(ld3r)
22634)]
22635#[cfg_attr(
22636    not(target_arch = "arm"),
22637    stable(feature = "neon_intrinsics", since = "1.59.0")
22638)]
22639#[cfg_attr(
22640    target_arch = "arm",
22641    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22642)]
22643pub unsafe fn vld3_dup_u64(a: *const u64) -> uint64x1x3_t {
22644    transmute(vld3_dup_s64(transmute(a)))
22645}
22646#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
22647#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_u8)"]
22648#[doc = "## Safety"]
22649#[doc = "  * Neon instrinsic unsafe"]
22650#[inline]
22651#[cfg(target_endian = "little")]
22652#[target_feature(enable = "neon")]
22653#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22654#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
22655#[cfg_attr(
22656    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22657    assert_instr(ld3r)
22658)]
22659#[cfg_attr(
22660    not(target_arch = "arm"),
22661    stable(feature = "neon_intrinsics", since = "1.59.0")
22662)]
22663#[cfg_attr(
22664    target_arch = "arm",
22665    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22666)]
22667pub unsafe fn vld3_dup_u8(a: *const u8) -> uint8x8x3_t {
22668    transmute(vld3_dup_s8(transmute(a)))
22669}
22670#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
22671#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_u8)"]
22672#[doc = "## Safety"]
22673#[doc = "  * Neon instrinsic unsafe"]
22674#[inline]
22675#[cfg(target_endian = "big")]
22676#[target_feature(enable = "neon")]
22677#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22678#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
22679#[cfg_attr(
22680    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22681    assert_instr(ld3r)
22682)]
22683#[cfg_attr(
22684    not(target_arch = "arm"),
22685    stable(feature = "neon_intrinsics", since = "1.59.0")
22686)]
22687#[cfg_attr(
22688    target_arch = "arm",
22689    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22690)]
22691pub unsafe fn vld3_dup_u8(a: *const u8) -> uint8x8x3_t {
22692    let mut ret_val: uint8x8x3_t = transmute(vld3_dup_s8(transmute(a)));
22693    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
22694    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
22695    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
22696    ret_val
22697}
22698#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
22699#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_u8)"]
22700#[doc = "## Safety"]
22701#[doc = "  * Neon instrinsic unsafe"]
22702#[inline]
22703#[cfg(target_endian = "little")]
22704#[target_feature(enable = "neon")]
22705#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22706#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
22707#[cfg_attr(
22708    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22709    assert_instr(ld3r)
22710)]
22711#[cfg_attr(
22712    not(target_arch = "arm"),
22713    stable(feature = "neon_intrinsics", since = "1.59.0")
22714)]
22715#[cfg_attr(
22716    target_arch = "arm",
22717    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22718)]
22719pub unsafe fn vld3q_dup_u8(a: *const u8) -> uint8x16x3_t {
22720    transmute(vld3q_dup_s8(transmute(a)))
22721}
22722#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
22723#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_u8)"]
22724#[doc = "## Safety"]
22725#[doc = "  * Neon instrinsic unsafe"]
22726#[inline]
22727#[cfg(target_endian = "big")]
22728#[target_feature(enable = "neon")]
22729#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22730#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
22731#[cfg_attr(
22732    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22733    assert_instr(ld3r)
22734)]
22735#[cfg_attr(
22736    not(target_arch = "arm"),
22737    stable(feature = "neon_intrinsics", since = "1.59.0")
22738)]
22739#[cfg_attr(
22740    target_arch = "arm",
22741    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22742)]
22743pub unsafe fn vld3q_dup_u8(a: *const u8) -> uint8x16x3_t {
22744    let mut ret_val: uint8x16x3_t = transmute(vld3q_dup_s8(transmute(a)));
22745    ret_val.0 = unsafe {
22746        simd_shuffle!(
22747            ret_val.0,
22748            ret_val.0,
22749            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
22750        )
22751    };
22752    ret_val.1 = unsafe {
22753        simd_shuffle!(
22754            ret_val.1,
22755            ret_val.1,
22756            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
22757        )
22758    };
22759    ret_val.2 = unsafe {
22760        simd_shuffle!(
22761            ret_val.2,
22762            ret_val.2,
22763            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
22764        )
22765    };
22766    ret_val
22767}
22768#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
22769#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_u16)"]
22770#[doc = "## Safety"]
22771#[doc = "  * Neon instrinsic unsafe"]
22772#[inline]
22773#[cfg(target_endian = "little")]
22774#[target_feature(enable = "neon")]
22775#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22776#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
22777#[cfg_attr(
22778    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22779    assert_instr(ld3r)
22780)]
22781#[cfg_attr(
22782    not(target_arch = "arm"),
22783    stable(feature = "neon_intrinsics", since = "1.59.0")
22784)]
22785#[cfg_attr(
22786    target_arch = "arm",
22787    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22788)]
22789pub unsafe fn vld3_dup_u16(a: *const u16) -> uint16x4x3_t {
22790    transmute(vld3_dup_s16(transmute(a)))
22791}
22792#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
22793#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_u16)"]
22794#[doc = "## Safety"]
22795#[doc = "  * Neon instrinsic unsafe"]
22796#[inline]
22797#[cfg(target_endian = "big")]
22798#[target_feature(enable = "neon")]
22799#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22800#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
22801#[cfg_attr(
22802    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22803    assert_instr(ld3r)
22804)]
22805#[cfg_attr(
22806    not(target_arch = "arm"),
22807    stable(feature = "neon_intrinsics", since = "1.59.0")
22808)]
22809#[cfg_attr(
22810    target_arch = "arm",
22811    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22812)]
22813pub unsafe fn vld3_dup_u16(a: *const u16) -> uint16x4x3_t {
22814    let mut ret_val: uint16x4x3_t = transmute(vld3_dup_s16(transmute(a)));
22815    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
22816    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
22817    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [3, 2, 1, 0]) };
22818    ret_val
22819}
22820#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
22821#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_u16)"]
22822#[doc = "## Safety"]
22823#[doc = "  * Neon instrinsic unsafe"]
22824#[inline]
22825#[cfg(target_endian = "little")]
22826#[target_feature(enable = "neon")]
22827#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22828#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
22829#[cfg_attr(
22830    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22831    assert_instr(ld3r)
22832)]
22833#[cfg_attr(
22834    not(target_arch = "arm"),
22835    stable(feature = "neon_intrinsics", since = "1.59.0")
22836)]
22837#[cfg_attr(
22838    target_arch = "arm",
22839    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22840)]
22841pub unsafe fn vld3q_dup_u16(a: *const u16) -> uint16x8x3_t {
22842    transmute(vld3q_dup_s16(transmute(a)))
22843}
22844#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
22845#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_u16)"]
22846#[doc = "## Safety"]
22847#[doc = "  * Neon instrinsic unsafe"]
22848#[inline]
22849#[cfg(target_endian = "big")]
22850#[target_feature(enable = "neon")]
22851#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22852#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
22853#[cfg_attr(
22854    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22855    assert_instr(ld3r)
22856)]
22857#[cfg_attr(
22858    not(target_arch = "arm"),
22859    stable(feature = "neon_intrinsics", since = "1.59.0")
22860)]
22861#[cfg_attr(
22862    target_arch = "arm",
22863    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22864)]
22865pub unsafe fn vld3q_dup_u16(a: *const u16) -> uint16x8x3_t {
22866    let mut ret_val: uint16x8x3_t = transmute(vld3q_dup_s16(transmute(a)));
22867    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
22868    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
22869    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
22870    ret_val
22871}
22872#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
22873#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_u32)"]
22874#[doc = "## Safety"]
22875#[doc = "  * Neon instrinsic unsafe"]
22876#[inline]
22877#[cfg(target_endian = "little")]
22878#[target_feature(enable = "neon")]
22879#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22880#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
22881#[cfg_attr(
22882    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22883    assert_instr(ld3r)
22884)]
22885#[cfg_attr(
22886    not(target_arch = "arm"),
22887    stable(feature = "neon_intrinsics", since = "1.59.0")
22888)]
22889#[cfg_attr(
22890    target_arch = "arm",
22891    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22892)]
22893pub unsafe fn vld3_dup_u32(a: *const u32) -> uint32x2x3_t {
22894    transmute(vld3_dup_s32(transmute(a)))
22895}
22896#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
22897#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_u32)"]
22898#[doc = "## Safety"]
22899#[doc = "  * Neon instrinsic unsafe"]
22900#[inline]
22901#[cfg(target_endian = "big")]
22902#[target_feature(enable = "neon")]
22903#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22904#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
22905#[cfg_attr(
22906    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22907    assert_instr(ld3r)
22908)]
22909#[cfg_attr(
22910    not(target_arch = "arm"),
22911    stable(feature = "neon_intrinsics", since = "1.59.0")
22912)]
22913#[cfg_attr(
22914    target_arch = "arm",
22915    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22916)]
22917pub unsafe fn vld3_dup_u32(a: *const u32) -> uint32x2x3_t {
22918    let mut ret_val: uint32x2x3_t = transmute(vld3_dup_s32(transmute(a)));
22919    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [1, 0]) };
22920    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [1, 0]) };
22921    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [1, 0]) };
22922    ret_val
22923}
22924#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
22925#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_u32)"]
22926#[doc = "## Safety"]
22927#[doc = "  * Neon instrinsic unsafe"]
22928#[inline]
22929#[cfg(target_endian = "little")]
22930#[target_feature(enable = "neon")]
22931#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22932#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
22933#[cfg_attr(
22934    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22935    assert_instr(ld3r)
22936)]
22937#[cfg_attr(
22938    not(target_arch = "arm"),
22939    stable(feature = "neon_intrinsics", since = "1.59.0")
22940)]
22941#[cfg_attr(
22942    target_arch = "arm",
22943    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22944)]
22945pub unsafe fn vld3q_dup_u32(a: *const u32) -> uint32x4x3_t {
22946    transmute(vld3q_dup_s32(transmute(a)))
22947}
22948#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
22949#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_u32)"]
22950#[doc = "## Safety"]
22951#[doc = "  * Neon instrinsic unsafe"]
22952#[inline]
22953#[cfg(target_endian = "big")]
22954#[target_feature(enable = "neon")]
22955#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22956#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
22957#[cfg_attr(
22958    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22959    assert_instr(ld3r)
22960)]
22961#[cfg_attr(
22962    not(target_arch = "arm"),
22963    stable(feature = "neon_intrinsics", since = "1.59.0")
22964)]
22965#[cfg_attr(
22966    target_arch = "arm",
22967    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22968)]
22969pub unsafe fn vld3q_dup_u32(a: *const u32) -> uint32x4x3_t {
22970    let mut ret_val: uint32x4x3_t = transmute(vld3q_dup_s32(transmute(a)));
22971    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
22972    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
22973    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [3, 2, 1, 0]) };
22974    ret_val
22975}
22976#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
22977#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_p8)"]
22978#[doc = "## Safety"]
22979#[doc = "  * Neon instrinsic unsafe"]
22980#[inline]
22981#[cfg(target_endian = "little")]
22982#[target_feature(enable = "neon")]
22983#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22984#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
22985#[cfg_attr(
22986    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22987    assert_instr(ld3r)
22988)]
22989#[cfg_attr(
22990    not(target_arch = "arm"),
22991    stable(feature = "neon_intrinsics", since = "1.59.0")
22992)]
22993#[cfg_attr(
22994    target_arch = "arm",
22995    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22996)]
22997pub unsafe fn vld3_dup_p8(a: *const p8) -> poly8x8x3_t {
22998    transmute(vld3_dup_s8(transmute(a)))
22999}
23000#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
23001#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_p8)"]
23002#[doc = "## Safety"]
23003#[doc = "  * Neon instrinsic unsafe"]
23004#[inline]
23005#[cfg(target_endian = "big")]
23006#[target_feature(enable = "neon")]
23007#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23008#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
23009#[cfg_attr(
23010    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23011    assert_instr(ld3r)
23012)]
23013#[cfg_attr(
23014    not(target_arch = "arm"),
23015    stable(feature = "neon_intrinsics", since = "1.59.0")
23016)]
23017#[cfg_attr(
23018    target_arch = "arm",
23019    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23020)]
23021pub unsafe fn vld3_dup_p8(a: *const p8) -> poly8x8x3_t {
23022    let mut ret_val: poly8x8x3_t = transmute(vld3_dup_s8(transmute(a)));
23023    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
23024    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
23025    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
23026    ret_val
23027}
23028#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
23029#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_p8)"]
23030#[doc = "## Safety"]
23031#[doc = "  * Neon instrinsic unsafe"]
23032#[inline]
23033#[cfg(target_endian = "little")]
23034#[target_feature(enable = "neon")]
23035#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23036#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
23037#[cfg_attr(
23038    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23039    assert_instr(ld3r)
23040)]
23041#[cfg_attr(
23042    not(target_arch = "arm"),
23043    stable(feature = "neon_intrinsics", since = "1.59.0")
23044)]
23045#[cfg_attr(
23046    target_arch = "arm",
23047    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23048)]
23049pub unsafe fn vld3q_dup_p8(a: *const p8) -> poly8x16x3_t {
23050    transmute(vld3q_dup_s8(transmute(a)))
23051}
23052#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
23053#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_p8)"]
23054#[doc = "## Safety"]
23055#[doc = "  * Neon instrinsic unsafe"]
23056#[inline]
23057#[cfg(target_endian = "big")]
23058#[target_feature(enable = "neon")]
23059#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23060#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
23061#[cfg_attr(
23062    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23063    assert_instr(ld3r)
23064)]
23065#[cfg_attr(
23066    not(target_arch = "arm"),
23067    stable(feature = "neon_intrinsics", since = "1.59.0")
23068)]
23069#[cfg_attr(
23070    target_arch = "arm",
23071    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23072)]
23073pub unsafe fn vld3q_dup_p8(a: *const p8) -> poly8x16x3_t {
23074    let mut ret_val: poly8x16x3_t = transmute(vld3q_dup_s8(transmute(a)));
23075    ret_val.0 = unsafe {
23076        simd_shuffle!(
23077            ret_val.0,
23078            ret_val.0,
23079            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
23080        )
23081    };
23082    ret_val.1 = unsafe {
23083        simd_shuffle!(
23084            ret_val.1,
23085            ret_val.1,
23086            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
23087        )
23088    };
23089    ret_val.2 = unsafe {
23090        simd_shuffle!(
23091            ret_val.2,
23092            ret_val.2,
23093            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
23094        )
23095    };
23096    ret_val
23097}
23098#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
23099#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_p16)"]
23100#[doc = "## Safety"]
23101#[doc = "  * Neon instrinsic unsafe"]
23102#[inline]
23103#[cfg(target_endian = "little")]
23104#[target_feature(enable = "neon")]
23105#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23106#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
23107#[cfg_attr(
23108    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23109    assert_instr(ld3r)
23110)]
23111#[cfg_attr(
23112    not(target_arch = "arm"),
23113    stable(feature = "neon_intrinsics", since = "1.59.0")
23114)]
23115#[cfg_attr(
23116    target_arch = "arm",
23117    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23118)]
23119pub unsafe fn vld3_dup_p16(a: *const p16) -> poly16x4x3_t {
23120    transmute(vld3_dup_s16(transmute(a)))
23121}
23122#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
23123#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_p16)"]
23124#[doc = "## Safety"]
23125#[doc = "  * Neon instrinsic unsafe"]
23126#[inline]
23127#[cfg(target_endian = "big")]
23128#[target_feature(enable = "neon")]
23129#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23130#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
23131#[cfg_attr(
23132    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23133    assert_instr(ld3r)
23134)]
23135#[cfg_attr(
23136    not(target_arch = "arm"),
23137    stable(feature = "neon_intrinsics", since = "1.59.0")
23138)]
23139#[cfg_attr(
23140    target_arch = "arm",
23141    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23142)]
23143pub unsafe fn vld3_dup_p16(a: *const p16) -> poly16x4x3_t {
23144    let mut ret_val: poly16x4x3_t = transmute(vld3_dup_s16(transmute(a)));
23145    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
23146    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
23147    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [3, 2, 1, 0]) };
23148    ret_val
23149}
23150#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
23151#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_p16)"]
23152#[doc = "## Safety"]
23153#[doc = "  * Neon instrinsic unsafe"]
23154#[inline]
23155#[cfg(target_endian = "little")]
23156#[target_feature(enable = "neon")]
23157#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23158#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
23159#[cfg_attr(
23160    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23161    assert_instr(ld3r)
23162)]
23163#[cfg_attr(
23164    not(target_arch = "arm"),
23165    stable(feature = "neon_intrinsics", since = "1.59.0")
23166)]
23167#[cfg_attr(
23168    target_arch = "arm",
23169    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23170)]
23171pub unsafe fn vld3q_dup_p16(a: *const p16) -> poly16x8x3_t {
23172    transmute(vld3q_dup_s16(transmute(a)))
23173}
23174#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
23175#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_p16)"]
23176#[doc = "## Safety"]
23177#[doc = "  * Neon instrinsic unsafe"]
23178#[inline]
23179#[cfg(target_endian = "big")]
23180#[target_feature(enable = "neon")]
23181#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23182#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
23183#[cfg_attr(
23184    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23185    assert_instr(ld3r)
23186)]
23187#[cfg_attr(
23188    not(target_arch = "arm"),
23189    stable(feature = "neon_intrinsics", since = "1.59.0")
23190)]
23191#[cfg_attr(
23192    target_arch = "arm",
23193    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23194)]
23195pub unsafe fn vld3q_dup_p16(a: *const p16) -> poly16x8x3_t {
23196    let mut ret_val: poly16x8x3_t = transmute(vld3q_dup_s16(transmute(a)));
23197    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
23198    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
23199    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
23200    ret_val
23201}
23202#[doc = "Load single 3-element structure and replicate to all lanes of two registers"]
23203#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_f16)"]
23204#[doc = "## Safety"]
23205#[doc = "  * Neon instrinsic unsafe"]
23206#[inline]
23207#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23208#[cfg(target_arch = "arm")]
23209#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
23210#[target_feature(enable = "neon,fp16")]
23211#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
23212#[cfg(not(target_arch = "arm64ec"))]
23213pub unsafe fn vld3_f16(a: *const f16) -> float16x4x3_t {
23214    unsafe extern "unadjusted" {
23215        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3.v4f16.p0")]
23216        fn _vld3_f16(ptr: *const f16, size: i32) -> float16x4x3_t;
23217    }
23218    _vld3_f16(a as _, 2)
23219}
23220#[doc = "Load single 3-element structure and replicate to all lanes of two registers"]
23221#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_f16)"]
23222#[doc = "## Safety"]
23223#[doc = "  * Neon instrinsic unsafe"]
23224#[inline]
23225#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23226#[cfg(target_arch = "arm")]
23227#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
23228#[target_feature(enable = "neon,fp16")]
23229#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
23230#[cfg(not(target_arch = "arm64ec"))]
23231pub unsafe fn vld3q_f16(a: *const f16) -> float16x8x3_t {
23232    unsafe extern "unadjusted" {
23233        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3.v8f16.p0")]
23234        fn _vld3q_f16(ptr: *const f16, size: i32) -> float16x8x3_t;
23235    }
23236    _vld3q_f16(a as _, 2)
23237}
23238#[doc = "Load single 3-element structure and replicate to all lanes of two registers"]
23239#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_f16)"]
23240#[doc = "## Safety"]
23241#[doc = "  * Neon instrinsic unsafe"]
23242#[inline]
23243#[cfg(not(target_arch = "arm"))]
23244#[cfg_attr(
23245    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23246    assert_instr(ld3)
23247)]
23248#[target_feature(enable = "neon,fp16")]
23249#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
23250#[cfg(not(target_arch = "arm64ec"))]
23251pub unsafe fn vld3_f16(a: *const f16) -> float16x4x3_t {
23252    unsafe extern "unadjusted" {
23253        #[cfg_attr(
23254            any(target_arch = "aarch64", target_arch = "arm64ec"),
23255            link_name = "llvm.aarch64.neon.ld3.v4f16.p0"
23256        )]
23257        fn _vld3_f16(ptr: *const f16) -> float16x4x3_t;
23258    }
23259    _vld3_f16(a as _)
23260}
23261#[doc = "Load single 3-element structure and replicate to all lanes of two registers"]
23262#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_f16)"]
23263#[doc = "## Safety"]
23264#[doc = "  * Neon instrinsic unsafe"]
23265#[inline]
23266#[cfg(not(target_arch = "arm"))]
23267#[cfg_attr(
23268    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23269    assert_instr(ld3)
23270)]
23271#[target_feature(enable = "neon,fp16")]
23272#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
23273#[cfg(not(target_arch = "arm64ec"))]
23274pub unsafe fn vld3q_f16(a: *const f16) -> float16x8x3_t {
23275    unsafe extern "unadjusted" {
23276        #[cfg_attr(
23277            any(target_arch = "aarch64", target_arch = "arm64ec"),
23278            link_name = "llvm.aarch64.neon.ld3.v8f16.p0"
23279        )]
23280        fn _vld3q_f16(ptr: *const f16) -> float16x8x3_t;
23281    }
23282    _vld3q_f16(a as _)
23283}
23284#[doc = "Load multiple 3-element structures to three registers"]
23285#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_f32)"]
23286#[doc = "## Safety"]
23287#[doc = "  * Neon instrinsic unsafe"]
23288#[inline]
23289#[target_feature(enable = "neon")]
23290#[stable(feature = "neon_intrinsics", since = "1.59.0")]
23291#[cfg(not(target_arch = "arm"))]
23292#[cfg_attr(test, assert_instr(ld3))]
23293pub unsafe fn vld3_f32(a: *const f32) -> float32x2x3_t {
23294    unsafe extern "unadjusted" {
23295        #[cfg_attr(
23296            any(target_arch = "aarch64", target_arch = "arm64ec"),
23297            link_name = "llvm.aarch64.neon.ld3.v2f32.p0"
23298        )]
23299        fn _vld3_f32(ptr: *const float32x2_t) -> float32x2x3_t;
23300    }
23301    _vld3_f32(a as _)
23302}
23303#[doc = "Load multiple 3-element structures to three registers"]
23304#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_f32)"]
23305#[doc = "## Safety"]
23306#[doc = "  * Neon instrinsic unsafe"]
23307#[inline]
23308#[target_feature(enable = "neon")]
23309#[stable(feature = "neon_intrinsics", since = "1.59.0")]
23310#[cfg(not(target_arch = "arm"))]
23311#[cfg_attr(test, assert_instr(ld3))]
23312pub unsafe fn vld3q_f32(a: *const f32) -> float32x4x3_t {
23313    unsafe extern "unadjusted" {
23314        #[cfg_attr(
23315            any(target_arch = "aarch64", target_arch = "arm64ec"),
23316            link_name = "llvm.aarch64.neon.ld3.v4f32.p0"
23317        )]
23318        fn _vld3q_f32(ptr: *const float32x4_t) -> float32x4x3_t;
23319    }
23320    _vld3q_f32(a as _)
23321}
23322#[doc = "Load multiple 3-element structures to three registers"]
23323#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_s8)"]
23324#[doc = "## Safety"]
23325#[doc = "  * Neon instrinsic unsafe"]
23326#[inline]
23327#[target_feature(enable = "neon")]
23328#[stable(feature = "neon_intrinsics", since = "1.59.0")]
23329#[cfg(not(target_arch = "arm"))]
23330#[cfg_attr(test, assert_instr(ld3))]
23331pub unsafe fn vld3_s8(a: *const i8) -> int8x8x3_t {
23332    unsafe extern "unadjusted" {
23333        #[cfg_attr(
23334            any(target_arch = "aarch64", target_arch = "arm64ec"),
23335            link_name = "llvm.aarch64.neon.ld3.v8i8.p0"
23336        )]
23337        fn _vld3_s8(ptr: *const int8x8_t) -> int8x8x3_t;
23338    }
23339    _vld3_s8(a as _)
23340}
23341#[doc = "Load multiple 3-element structures to three registers"]
23342#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_s8)"]
23343#[doc = "## Safety"]
23344#[doc = "  * Neon instrinsic unsafe"]
23345#[inline]
23346#[target_feature(enable = "neon")]
23347#[stable(feature = "neon_intrinsics", since = "1.59.0")]
23348#[cfg(not(target_arch = "arm"))]
23349#[cfg_attr(test, assert_instr(ld3))]
23350pub unsafe fn vld3q_s8(a: *const i8) -> int8x16x3_t {
23351    unsafe extern "unadjusted" {
23352        #[cfg_attr(
23353            any(target_arch = "aarch64", target_arch = "arm64ec"),
23354            link_name = "llvm.aarch64.neon.ld3.v16i8.p0"
23355        )]
23356        fn _vld3q_s8(ptr: *const int8x16_t) -> int8x16x3_t;
23357    }
23358    _vld3q_s8(a as _)
23359}
23360#[doc = "Load multiple 3-element structures to three registers"]
23361#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_s16)"]
23362#[doc = "## Safety"]
23363#[doc = "  * Neon instrinsic unsafe"]
23364#[inline]
23365#[target_feature(enable = "neon")]
23366#[stable(feature = "neon_intrinsics", since = "1.59.0")]
23367#[cfg(not(target_arch = "arm"))]
23368#[cfg_attr(test, assert_instr(ld3))]
23369pub unsafe fn vld3_s16(a: *const i16) -> int16x4x3_t {
23370    unsafe extern "unadjusted" {
23371        #[cfg_attr(
23372            any(target_arch = "aarch64", target_arch = "arm64ec"),
23373            link_name = "llvm.aarch64.neon.ld3.v4i16.p0"
23374        )]
23375        fn _vld3_s16(ptr: *const int16x4_t) -> int16x4x3_t;
23376    }
23377    _vld3_s16(a as _)
23378}
23379#[doc = "Load multiple 3-element structures to three registers"]
23380#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_s16)"]
23381#[doc = "## Safety"]
23382#[doc = "  * Neon instrinsic unsafe"]
23383#[inline]
23384#[target_feature(enable = "neon")]
23385#[stable(feature = "neon_intrinsics", since = "1.59.0")]
23386#[cfg(not(target_arch = "arm"))]
23387#[cfg_attr(test, assert_instr(ld3))]
23388pub unsafe fn vld3q_s16(a: *const i16) -> int16x8x3_t {
23389    unsafe extern "unadjusted" {
23390        #[cfg_attr(
23391            any(target_arch = "aarch64", target_arch = "arm64ec"),
23392            link_name = "llvm.aarch64.neon.ld3.v8i16.p0"
23393        )]
23394        fn _vld3q_s16(ptr: *const int16x8_t) -> int16x8x3_t;
23395    }
23396    _vld3q_s16(a as _)
23397}
23398#[doc = "Load multiple 3-element structures to three registers"]
23399#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_s32)"]
23400#[doc = "## Safety"]
23401#[doc = "  * Neon instrinsic unsafe"]
23402#[inline]
23403#[target_feature(enable = "neon")]
23404#[stable(feature = "neon_intrinsics", since = "1.59.0")]
23405#[cfg(not(target_arch = "arm"))]
23406#[cfg_attr(test, assert_instr(ld3))]
23407pub unsafe fn vld3_s32(a: *const i32) -> int32x2x3_t {
23408    unsafe extern "unadjusted" {
23409        #[cfg_attr(
23410            any(target_arch = "aarch64", target_arch = "arm64ec"),
23411            link_name = "llvm.aarch64.neon.ld3.v2i32.p0"
23412        )]
23413        fn _vld3_s32(ptr: *const int32x2_t) -> int32x2x3_t;
23414    }
23415    _vld3_s32(a as _)
23416}
23417#[doc = "Load multiple 3-element structures to three registers"]
23418#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_s32)"]
23419#[doc = "## Safety"]
23420#[doc = "  * Neon instrinsic unsafe"]
23421#[inline]
23422#[target_feature(enable = "neon")]
23423#[stable(feature = "neon_intrinsics", since = "1.59.0")]
23424#[cfg(not(target_arch = "arm"))]
23425#[cfg_attr(test, assert_instr(ld3))]
23426pub unsafe fn vld3q_s32(a: *const i32) -> int32x4x3_t {
23427    unsafe extern "unadjusted" {
23428        #[cfg_attr(
23429            any(target_arch = "aarch64", target_arch = "arm64ec"),
23430            link_name = "llvm.aarch64.neon.ld3.v4i32.p0"
23431        )]
23432        fn _vld3q_s32(ptr: *const int32x4_t) -> int32x4x3_t;
23433    }
23434    _vld3q_s32(a as _)
23435}
23436#[doc = "Load multiple 3-element structures to three registers"]
23437#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_f32)"]
23438#[doc = "## Safety"]
23439#[doc = "  * Neon instrinsic unsafe"]
23440#[inline]
23441#[cfg(target_arch = "arm")]
23442#[target_feature(enable = "neon,v7")]
23443#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
23444#[cfg_attr(test, assert_instr(vld3))]
23445pub unsafe fn vld3_f32(a: *const f32) -> float32x2x3_t {
23446    unsafe extern "unadjusted" {
23447        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3.v2f32.p0")]
23448        fn _vld3_f32(ptr: *const i8, size: i32) -> float32x2x3_t;
23449    }
23450    _vld3_f32(a as *const i8, 4)
23451}
23452#[doc = "Load multiple 3-element structures to three registers"]
23453#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_f32)"]
23454#[doc = "## Safety"]
23455#[doc = "  * Neon instrinsic unsafe"]
23456#[inline]
23457#[cfg(target_arch = "arm")]
23458#[target_feature(enable = "neon,v7")]
23459#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
23460#[cfg_attr(test, assert_instr(vld3))]
23461pub unsafe fn vld3q_f32(a: *const f32) -> float32x4x3_t {
23462    unsafe extern "unadjusted" {
23463        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3.v4f32.p0")]
23464        fn _vld3q_f32(ptr: *const i8, size: i32) -> float32x4x3_t;
23465    }
23466    _vld3q_f32(a as *const i8, 4)
23467}
23468#[doc = "Load multiple 3-element structures to three registers"]
23469#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_s8)"]
23470#[doc = "## Safety"]
23471#[doc = "  * Neon instrinsic unsafe"]
23472#[inline]
23473#[cfg(target_arch = "arm")]
23474#[target_feature(enable = "neon,v7")]
23475#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
23476#[cfg_attr(test, assert_instr(vld3))]
23477pub unsafe fn vld3_s8(a: *const i8) -> int8x8x3_t {
23478    unsafe extern "unadjusted" {
23479        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3.v8i8.p0")]
23480        fn _vld3_s8(ptr: *const i8, size: i32) -> int8x8x3_t;
23481    }
23482    _vld3_s8(a as *const i8, 1)
23483}
23484#[doc = "Load multiple 3-element structures to three registers"]
23485#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_s8)"]
23486#[doc = "## Safety"]
23487#[doc = "  * Neon instrinsic unsafe"]
23488#[inline]
23489#[cfg(target_arch = "arm")]
23490#[target_feature(enable = "neon,v7")]
23491#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
23492#[cfg_attr(test, assert_instr(vld3))]
23493pub unsafe fn vld3q_s8(a: *const i8) -> int8x16x3_t {
23494    unsafe extern "unadjusted" {
23495        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3.v16i8.p0")]
23496        fn _vld3q_s8(ptr: *const i8, size: i32) -> int8x16x3_t;
23497    }
23498    _vld3q_s8(a as *const i8, 1)
23499}
23500#[doc = "Load multiple 3-element structures to three registers"]
23501#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_s16)"]
23502#[doc = "## Safety"]
23503#[doc = "  * Neon instrinsic unsafe"]
23504#[inline]
23505#[cfg(target_arch = "arm")]
23506#[target_feature(enable = "neon,v7")]
23507#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
23508#[cfg_attr(test, assert_instr(vld3))]
23509pub unsafe fn vld3_s16(a: *const i16) -> int16x4x3_t {
23510    unsafe extern "unadjusted" {
23511        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3.v4i16.p0")]
23512        fn _vld3_s16(ptr: *const i8, size: i32) -> int16x4x3_t;
23513    }
23514    _vld3_s16(a as *const i8, 2)
23515}
23516#[doc = "Load multiple 3-element structures to three registers"]
23517#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_s16)"]
23518#[doc = "## Safety"]
23519#[doc = "  * Neon instrinsic unsafe"]
23520#[inline]
23521#[cfg(target_arch = "arm")]
23522#[target_feature(enable = "neon,v7")]
23523#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
23524#[cfg_attr(test, assert_instr(vld3))]
23525pub unsafe fn vld3q_s16(a: *const i16) -> int16x8x3_t {
23526    unsafe extern "unadjusted" {
23527        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3.v8i16.p0")]
23528        fn _vld3q_s16(ptr: *const i8, size: i32) -> int16x8x3_t;
23529    }
23530    _vld3q_s16(a as *const i8, 2)
23531}
23532#[doc = "Load multiple 3-element structures to three registers"]
23533#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_s32)"]
23534#[doc = "## Safety"]
23535#[doc = "  * Neon instrinsic unsafe"]
23536#[inline]
23537#[cfg(target_arch = "arm")]
23538#[target_feature(enable = "neon,v7")]
23539#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
23540#[cfg_attr(test, assert_instr(vld3))]
23541pub unsafe fn vld3_s32(a: *const i32) -> int32x2x3_t {
23542    unsafe extern "unadjusted" {
23543        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3.v2i32.p0")]
23544        fn _vld3_s32(ptr: *const i8, size: i32) -> int32x2x3_t;
23545    }
23546    _vld3_s32(a as *const i8, 4)
23547}
23548#[doc = "Load multiple 3-element structures to three registers"]
23549#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_s32)"]
23550#[doc = "## Safety"]
23551#[doc = "  * Neon instrinsic unsafe"]
23552#[inline]
23553#[cfg(target_arch = "arm")]
23554#[target_feature(enable = "neon,v7")]
23555#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
23556#[cfg_attr(test, assert_instr(vld3))]
23557pub unsafe fn vld3q_s32(a: *const i32) -> int32x4x3_t {
23558    unsafe extern "unadjusted" {
23559        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3.v4i32.p0")]
23560        fn _vld3q_s32(ptr: *const i8, size: i32) -> int32x4x3_t;
23561    }
23562    _vld3q_s32(a as *const i8, 4)
23563}
23564#[doc = "Load multiple 3-element structures to two registers"]
23565#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_f16)"]
23566#[doc = "## Safety"]
23567#[doc = "  * Neon instrinsic unsafe"]
23568#[inline]
23569#[target_feature(enable = "neon,v7")]
23570#[cfg(target_arch = "arm")]
23571#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3, LANE = 0))]
23572#[rustc_legacy_const_generics(2)]
23573#[target_feature(enable = "neon,fp16")]
23574#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
23575#[cfg(not(target_arch = "arm64ec"))]
23576pub unsafe fn vld3_lane_f16<const LANE: i32>(a: *const f16, b: float16x4x3_t) -> float16x4x3_t {
23577    static_assert_uimm_bits!(LANE, 2);
23578    unsafe extern "unadjusted" {
23579        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3lane.v4f16.p0")]
23580        fn _vld3_lane_f16(
23581            ptr: *const f16,
23582            a: float16x4_t,
23583            b: float16x4_t,
23584            c: float16x4_t,
23585            n: i32,
23586            size: i32,
23587        ) -> float16x4x3_t;
23588    }
23589    _vld3_lane_f16(a as _, b.0, b.1, b.2, LANE, 2)
23590}
23591#[doc = "Load multiple 3-element structures to two registers"]
23592#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_lane_f16)"]
23593#[doc = "## Safety"]
23594#[doc = "  * Neon instrinsic unsafe"]
23595#[inline]
23596#[target_feature(enable = "neon,v7")]
23597#[cfg(target_arch = "arm")]
23598#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3, LANE = 0))]
23599#[rustc_legacy_const_generics(2)]
23600#[target_feature(enable = "neon,fp16")]
23601#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
23602#[cfg(not(target_arch = "arm64ec"))]
23603pub unsafe fn vld3q_lane_f16<const LANE: i32>(a: *const f16, b: float16x8x3_t) -> float16x8x3_t {
23604    static_assert_uimm_bits!(LANE, 3);
23605    unsafe extern "unadjusted" {
23606        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3lane.v8f16.p0")]
23607        fn _vld3q_lane_f16(
23608            ptr: *const f16,
23609            a: float16x8_t,
23610            b: float16x8_t,
23611            c: float16x8_t,
23612            n: i32,
23613            size: i32,
23614        ) -> float16x8x3_t;
23615    }
23616    _vld3q_lane_f16(a as _, b.0, b.1, b.2, LANE, 2)
23617}
23618#[doc = "Load multiple 3-element structures to two registers"]
23619#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_f16)"]
23620#[doc = "## Safety"]
23621#[doc = "  * Neon instrinsic unsafe"]
23622#[inline]
23623#[cfg(not(target_arch = "arm"))]
23624#[cfg_attr(
23625    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23626    assert_instr(ld3, LANE = 0)
23627)]
23628#[rustc_legacy_const_generics(2)]
23629#[target_feature(enable = "neon,fp16")]
23630#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
23631#[cfg(not(target_arch = "arm64ec"))]
23632pub unsafe fn vld3_lane_f16<const LANE: i32>(a: *const f16, b: float16x4x3_t) -> float16x4x3_t {
23633    static_assert_uimm_bits!(LANE, 2);
23634    unsafe extern "unadjusted" {
23635        #[cfg_attr(
23636            any(target_arch = "aarch64", target_arch = "arm64ec"),
23637            link_name = "llvm.aarch64.neon.ld3lane.v4f16.p0"
23638        )]
23639        fn _vld3_lane_f16(
23640            a: float16x4_t,
23641            b: float16x4_t,
23642            c: float16x4_t,
23643            n: i64,
23644            ptr: *const f16,
23645        ) -> float16x4x3_t;
23646    }
23647    _vld3_lane_f16(b.0, b.1, b.2, LANE as i64, a as _)
23648}
23649#[doc = "Load multiple 3-element structures to two registers"]
23650#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_lane_f16)"]
23651#[doc = "## Safety"]
23652#[doc = "  * Neon instrinsic unsafe"]
23653#[inline]
23654#[cfg(not(target_arch = "arm"))]
23655#[cfg_attr(
23656    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23657    assert_instr(ld3, LANE = 0)
23658)]
23659#[rustc_legacy_const_generics(2)]
23660#[target_feature(enable = "neon,fp16")]
23661#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
23662#[cfg(not(target_arch = "arm64ec"))]
23663pub unsafe fn vld3q_lane_f16<const LANE: i32>(a: *const f16, b: float16x8x3_t) -> float16x8x3_t {
23664    static_assert_uimm_bits!(LANE, 3);
23665    unsafe extern "unadjusted" {
23666        #[cfg_attr(
23667            any(target_arch = "aarch64", target_arch = "arm64ec"),
23668            link_name = "llvm.aarch64.neon.ld3lane.v8f16.p0"
23669        )]
23670        fn _vld3q_lane_f16(
23671            a: float16x8_t,
23672            b: float16x8_t,
23673            c: float16x8_t,
23674            n: i64,
23675            ptr: *const f16,
23676        ) -> float16x8x3_t;
23677    }
23678    _vld3q_lane_f16(b.0, b.1, b.2, LANE as i64, a as _)
23679}
23680#[doc = "Load multiple 3-element structures to three registers"]
23681#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_f32)"]
23682#[doc = "## Safety"]
23683#[doc = "  * Neon instrinsic unsafe"]
23684#[inline]
23685#[target_feature(enable = "neon")]
23686#[cfg(not(target_arch = "arm"))]
23687#[cfg_attr(test, assert_instr(ld3, LANE = 0))]
23688#[rustc_legacy_const_generics(2)]
23689#[stable(feature = "neon_intrinsics", since = "1.59.0")]
23690pub unsafe fn vld3_lane_f32<const LANE: i32>(a: *const f32, b: float32x2x3_t) -> float32x2x3_t {
23691    static_assert_uimm_bits!(LANE, 1);
23692    unsafe extern "unadjusted" {
23693        #[cfg_attr(
23694            any(target_arch = "aarch64", target_arch = "arm64ec"),
23695            link_name = "llvm.aarch64.neon.ld3lane.v2f32.p0"
23696        )]
23697        fn _vld3_lane_f32(
23698            a: float32x2_t,
23699            b: float32x2_t,
23700            c: float32x2_t,
23701            n: i64,
23702            ptr: *const i8,
23703        ) -> float32x2x3_t;
23704    }
23705    _vld3_lane_f32(b.0, b.1, b.2, LANE as i64, a as _)
23706}
23707#[doc = "Load multiple 3-element structures to three registers"]
23708#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_lane_f32)"]
23709#[doc = "## Safety"]
23710#[doc = "  * Neon instrinsic unsafe"]
23711#[inline]
23712#[target_feature(enable = "neon")]
23713#[cfg(not(target_arch = "arm"))]
23714#[cfg_attr(test, assert_instr(ld3, LANE = 0))]
23715#[rustc_legacy_const_generics(2)]
23716#[stable(feature = "neon_intrinsics", since = "1.59.0")]
23717pub unsafe fn vld3q_lane_f32<const LANE: i32>(a: *const f32, b: float32x4x3_t) -> float32x4x3_t {
23718    static_assert_uimm_bits!(LANE, 2);
23719    unsafe extern "unadjusted" {
23720        #[cfg_attr(
23721            any(target_arch = "aarch64", target_arch = "arm64ec"),
23722            link_name = "llvm.aarch64.neon.ld3lane.v4f32.p0"
23723        )]
23724        fn _vld3q_lane_f32(
23725            a: float32x4_t,
23726            b: float32x4_t,
23727            c: float32x4_t,
23728            n: i64,
23729            ptr: *const i8,
23730        ) -> float32x4x3_t;
23731    }
23732    _vld3q_lane_f32(b.0, b.1, b.2, LANE as i64, a as _)
23733}
23734#[doc = "Load multiple 3-element structures to three registers"]
23735#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_f32)"]
23736#[doc = "## Safety"]
23737#[doc = "  * Neon instrinsic unsafe"]
23738#[inline]
23739#[cfg(target_arch = "arm")]
23740#[target_feature(enable = "neon,v7")]
23741#[cfg_attr(test, assert_instr(vld3, LANE = 0))]
23742#[rustc_legacy_const_generics(2)]
23743#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
23744pub unsafe fn vld3_lane_f32<const LANE: i32>(a: *const f32, b: float32x2x3_t) -> float32x2x3_t {
23745    static_assert_uimm_bits!(LANE, 1);
23746    unsafe extern "unadjusted" {
23747        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3lane.v2f32.p0")]
23748        fn _vld3_lane_f32(
23749            ptr: *const i8,
23750            a: float32x2_t,
23751            b: float32x2_t,
23752            c: float32x2_t,
23753            n: i32,
23754            size: i32,
23755        ) -> float32x2x3_t;
23756    }
23757    _vld3_lane_f32(a as _, b.0, b.1, b.2, LANE, 4)
23758}
23759#[doc = "Load multiple 3-element structures to two registers"]
23760#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_s8)"]
23761#[doc = "## Safety"]
23762#[doc = "  * Neon instrinsic unsafe"]
23763#[inline]
23764#[target_feature(enable = "neon")]
23765#[cfg(not(target_arch = "arm"))]
23766#[cfg_attr(test, assert_instr(ld3, LANE = 0))]
23767#[rustc_legacy_const_generics(2)]
23768#[stable(feature = "neon_intrinsics", since = "1.59.0")]
23769pub unsafe fn vld3_lane_s8<const LANE: i32>(a: *const i8, b: int8x8x3_t) -> int8x8x3_t {
23770    static_assert_uimm_bits!(LANE, 3);
23771    unsafe extern "unadjusted" {
23772        #[cfg_attr(
23773            any(target_arch = "aarch64", target_arch = "arm64ec"),
23774            link_name = "llvm.aarch64.neon.ld3lane.v8i8.p0"
23775        )]
23776        fn _vld3_lane_s8(
23777            a: int8x8_t,
23778            b: int8x8_t,
23779            c: int8x8_t,
23780            n: i64,
23781            ptr: *const i8,
23782        ) -> int8x8x3_t;
23783    }
23784    _vld3_lane_s8(b.0, b.1, b.2, LANE as i64, a as _)
23785}
23786#[doc = "Load multiple 3-element structures to two registers"]
23787#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_s16)"]
23788#[doc = "## Safety"]
23789#[doc = "  * Neon instrinsic unsafe"]
23790#[inline]
23791#[target_feature(enable = "neon")]
23792#[cfg(not(target_arch = "arm"))]
23793#[cfg_attr(test, assert_instr(ld3, LANE = 0))]
23794#[rustc_legacy_const_generics(2)]
23795#[stable(feature = "neon_intrinsics", since = "1.59.0")]
23796pub unsafe fn vld3_lane_s16<const LANE: i32>(a: *const i16, b: int16x4x3_t) -> int16x4x3_t {
23797    static_assert_uimm_bits!(LANE, 2);
23798    unsafe extern "unadjusted" {
23799        #[cfg_attr(
23800            any(target_arch = "aarch64", target_arch = "arm64ec"),
23801            link_name = "llvm.aarch64.neon.ld3lane.v4i16.p0"
23802        )]
23803        fn _vld3_lane_s16(
23804            a: int16x4_t,
23805            b: int16x4_t,
23806            c: int16x4_t,
23807            n: i64,
23808            ptr: *const i8,
23809        ) -> int16x4x3_t;
23810    }
23811    _vld3_lane_s16(b.0, b.1, b.2, LANE as i64, a as _)
23812}
23813#[doc = "Load multiple 3-element structures to two registers"]
23814#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_lane_s16)"]
23815#[doc = "## Safety"]
23816#[doc = "  * Neon instrinsic unsafe"]
23817#[inline]
23818#[target_feature(enable = "neon")]
23819#[cfg(not(target_arch = "arm"))]
23820#[cfg_attr(test, assert_instr(ld3, LANE = 0))]
23821#[rustc_legacy_const_generics(2)]
23822#[stable(feature = "neon_intrinsics", since = "1.59.0")]
23823pub unsafe fn vld3q_lane_s16<const LANE: i32>(a: *const i16, b: int16x8x3_t) -> int16x8x3_t {
23824    static_assert_uimm_bits!(LANE, 4);
23825    unsafe extern "unadjusted" {
23826        #[cfg_attr(
23827            any(target_arch = "aarch64", target_arch = "arm64ec"),
23828            link_name = "llvm.aarch64.neon.ld3lane.v8i16.p0"
23829        )]
23830        fn _vld3q_lane_s16(
23831            a: int16x8_t,
23832            b: int16x8_t,
23833            c: int16x8_t,
23834            n: i64,
23835            ptr: *const i8,
23836        ) -> int16x8x3_t;
23837    }
23838    _vld3q_lane_s16(b.0, b.1, b.2, LANE as i64, a as _)
23839}
23840#[doc = "Load multiple 3-element structures to two registers"]
23841#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_s32)"]
23842#[doc = "## Safety"]
23843#[doc = "  * Neon instrinsic unsafe"]
23844#[inline]
23845#[target_feature(enable = "neon")]
23846#[cfg(not(target_arch = "arm"))]
23847#[cfg_attr(test, assert_instr(ld3, LANE = 0))]
23848#[rustc_legacy_const_generics(2)]
23849#[stable(feature = "neon_intrinsics", since = "1.59.0")]
23850pub unsafe fn vld3_lane_s32<const LANE: i32>(a: *const i32, b: int32x2x3_t) -> int32x2x3_t {
23851    static_assert_uimm_bits!(LANE, 1);
23852    unsafe extern "unadjusted" {
23853        #[cfg_attr(
23854            any(target_arch = "aarch64", target_arch = "arm64ec"),
23855            link_name = "llvm.aarch64.neon.ld3lane.v2i32.p0"
23856        )]
23857        fn _vld3_lane_s32(
23858            a: int32x2_t,
23859            b: int32x2_t,
23860            c: int32x2_t,
23861            n: i64,
23862            ptr: *const i8,
23863        ) -> int32x2x3_t;
23864    }
23865    _vld3_lane_s32(b.0, b.1, b.2, LANE as i64, a as _)
23866}
23867#[doc = "Load multiple 3-element structures to two registers"]
23868#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_lane_s32)"]
23869#[doc = "## Safety"]
23870#[doc = "  * Neon instrinsic unsafe"]
23871#[inline]
23872#[target_feature(enable = "neon")]
23873#[cfg(not(target_arch = "arm"))]
23874#[cfg_attr(test, assert_instr(ld3, LANE = 0))]
23875#[rustc_legacy_const_generics(2)]
23876#[stable(feature = "neon_intrinsics", since = "1.59.0")]
23877pub unsafe fn vld3q_lane_s32<const LANE: i32>(a: *const i32, b: int32x4x3_t) -> int32x4x3_t {
23878    static_assert_uimm_bits!(LANE, 2);
23879    unsafe extern "unadjusted" {
23880        #[cfg_attr(
23881            any(target_arch = "aarch64", target_arch = "arm64ec"),
23882            link_name = "llvm.aarch64.neon.ld3lane.v4i32.p0"
23883        )]
23884        fn _vld3q_lane_s32(
23885            a: int32x4_t,
23886            b: int32x4_t,
23887            c: int32x4_t,
23888            n: i64,
23889            ptr: *const i8,
23890        ) -> int32x4x3_t;
23891    }
23892    _vld3q_lane_s32(b.0, b.1, b.2, LANE as i64, a as _)
23893}
23894#[doc = "Load multiple 3-element structures to two registers"]
23895#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_s8)"]
23896#[doc = "## Safety"]
23897#[doc = "  * Neon instrinsic unsafe"]
23898#[inline]
23899#[cfg(target_arch = "arm")]
23900#[target_feature(enable = "neon,v7")]
23901#[cfg_attr(test, assert_instr(vld3, LANE = 0))]
23902#[rustc_legacy_const_generics(2)]
23903#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
23904pub unsafe fn vld3_lane_s8<const LANE: i32>(a: *const i8, b: int8x8x3_t) -> int8x8x3_t {
23905    static_assert_uimm_bits!(LANE, 3);
23906    unsafe extern "unadjusted" {
23907        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3lane.v8i8.p0")]
23908        fn _vld3_lane_s8(
23909            ptr: *const i8,
23910            a: int8x8_t,
23911            b: int8x8_t,
23912            c: int8x8_t,
23913            n: i32,
23914            size: i32,
23915        ) -> int8x8x3_t;
23916    }
23917    _vld3_lane_s8(a as _, b.0, b.1, b.2, LANE, 1)
23918}
23919#[doc = "Load multiple 3-element structures to two registers"]
23920#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_s16)"]
23921#[doc = "## Safety"]
23922#[doc = "  * Neon instrinsic unsafe"]
23923#[inline]
23924#[cfg(target_arch = "arm")]
23925#[target_feature(enable = "neon,v7")]
23926#[cfg_attr(test, assert_instr(vld3, LANE = 0))]
23927#[rustc_legacy_const_generics(2)]
23928#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
23929pub unsafe fn vld3_lane_s16<const LANE: i32>(a: *const i16, b: int16x4x3_t) -> int16x4x3_t {
23930    static_assert_uimm_bits!(LANE, 2);
23931    unsafe extern "unadjusted" {
23932        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3lane.v4i16.p0")]
23933        fn _vld3_lane_s16(
23934            ptr: *const i8,
23935            a: int16x4_t,
23936            b: int16x4_t,
23937            c: int16x4_t,
23938            n: i32,
23939            size: i32,
23940        ) -> int16x4x3_t;
23941    }
23942    _vld3_lane_s16(a as _, b.0, b.1, b.2, LANE, 2)
23943}
23944#[doc = "Load multiple 3-element structures to two registers"]
23945#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_lane_s16)"]
23946#[doc = "## Safety"]
23947#[doc = "  * Neon instrinsic unsafe"]
23948#[inline]
23949#[cfg(target_arch = "arm")]
23950#[target_feature(enable = "neon,v7")]
23951#[cfg_attr(test, assert_instr(vld3, LANE = 0))]
23952#[rustc_legacy_const_generics(2)]
23953#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
23954pub unsafe fn vld3q_lane_s16<const LANE: i32>(a: *const i16, b: int16x8x3_t) -> int16x8x3_t {
23955    static_assert_uimm_bits!(LANE, 3);
23956    unsafe extern "unadjusted" {
23957        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3lane.v8i16.p0")]
23958        fn _vld3q_lane_s16(
23959            ptr: *const i8,
23960            a: int16x8_t,
23961            b: int16x8_t,
23962            c: int16x8_t,
23963            n: i32,
23964            size: i32,
23965        ) -> int16x8x3_t;
23966    }
23967    _vld3q_lane_s16(a as _, b.0, b.1, b.2, LANE, 2)
23968}
23969#[doc = "Load multiple 3-element structures to two registers"]
23970#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_s32)"]
23971#[doc = "## Safety"]
23972#[doc = "  * Neon instrinsic unsafe"]
23973#[inline]
23974#[cfg(target_arch = "arm")]
23975#[target_feature(enable = "neon,v7")]
23976#[cfg_attr(test, assert_instr(vld3, LANE = 0))]
23977#[rustc_legacy_const_generics(2)]
23978#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
23979pub unsafe fn vld3_lane_s32<const LANE: i32>(a: *const i32, b: int32x2x3_t) -> int32x2x3_t {
23980    static_assert_uimm_bits!(LANE, 1);
23981    unsafe extern "unadjusted" {
23982        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3lane.v2i32.p0")]
23983        fn _vld3_lane_s32(
23984            ptr: *const i8,
23985            a: int32x2_t,
23986            b: int32x2_t,
23987            c: int32x2_t,
23988            n: i32,
23989            size: i32,
23990        ) -> int32x2x3_t;
23991    }
23992    _vld3_lane_s32(a as _, b.0, b.1, b.2, LANE, 4)
23993}
23994#[doc = "Load multiple 3-element structures to two registers"]
23995#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_lane_s32)"]
23996#[doc = "## Safety"]
23997#[doc = "  * Neon instrinsic unsafe"]
23998#[inline]
23999#[cfg(target_arch = "arm")]
24000#[target_feature(enable = "neon,v7")]
24001#[cfg_attr(test, assert_instr(vld3, LANE = 0))]
24002#[rustc_legacy_const_generics(2)]
24003#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
24004pub unsafe fn vld3q_lane_s32<const LANE: i32>(a: *const i32, b: int32x4x3_t) -> int32x4x3_t {
24005    static_assert_uimm_bits!(LANE, 2);
24006    unsafe extern "unadjusted" {
24007        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3lane.v4i32.p0")]
24008        fn _vld3q_lane_s32(
24009            ptr: *const i8,
24010            a: int32x4_t,
24011            b: int32x4_t,
24012            c: int32x4_t,
24013            n: i32,
24014            size: i32,
24015        ) -> int32x4x3_t;
24016    }
24017    _vld3q_lane_s32(a as _, b.0, b.1, b.2, LANE, 4)
24018}
24019#[doc = "Load multiple 3-element structures to three registers"]
24020#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_u8)"]
24021#[doc = "## Safety"]
24022#[doc = "  * Neon instrinsic unsafe"]
24023#[inline]
24024#[target_feature(enable = "neon")]
24025#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24026#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3, LANE = 0))]
24027#[cfg_attr(
24028    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24029    assert_instr(ld3, LANE = 0)
24030)]
24031#[rustc_legacy_const_generics(2)]
24032#[cfg_attr(
24033    not(target_arch = "arm"),
24034    stable(feature = "neon_intrinsics", since = "1.59.0")
24035)]
24036#[cfg_attr(
24037    target_arch = "arm",
24038    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24039)]
24040pub unsafe fn vld3_lane_u8<const LANE: i32>(a: *const u8, b: uint8x8x3_t) -> uint8x8x3_t {
24041    static_assert_uimm_bits!(LANE, 3);
24042    transmute(vld3_lane_s8::<LANE>(transmute(a), transmute(b)))
24043}
24044#[doc = "Load multiple 3-element structures to three registers"]
24045#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_u16)"]
24046#[doc = "## Safety"]
24047#[doc = "  * Neon instrinsic unsafe"]
24048#[inline]
24049#[target_feature(enable = "neon")]
24050#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24051#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3, LANE = 0))]
24052#[cfg_attr(
24053    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24054    assert_instr(ld3, LANE = 0)
24055)]
24056#[rustc_legacy_const_generics(2)]
24057#[cfg_attr(
24058    not(target_arch = "arm"),
24059    stable(feature = "neon_intrinsics", since = "1.59.0")
24060)]
24061#[cfg_attr(
24062    target_arch = "arm",
24063    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24064)]
24065pub unsafe fn vld3_lane_u16<const LANE: i32>(a: *const u16, b: uint16x4x3_t) -> uint16x4x3_t {
24066    static_assert_uimm_bits!(LANE, 2);
24067    transmute(vld3_lane_s16::<LANE>(transmute(a), transmute(b)))
24068}
24069#[doc = "Load multiple 3-element structures to three registers"]
24070#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_lane_u16)"]
24071#[doc = "## Safety"]
24072#[doc = "  * Neon instrinsic unsafe"]
24073#[inline]
24074#[target_feature(enable = "neon")]
24075#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24076#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3, LANE = 0))]
24077#[cfg_attr(
24078    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24079    assert_instr(ld3, LANE = 0)
24080)]
24081#[rustc_legacy_const_generics(2)]
24082#[cfg_attr(
24083    not(target_arch = "arm"),
24084    stable(feature = "neon_intrinsics", since = "1.59.0")
24085)]
24086#[cfg_attr(
24087    target_arch = "arm",
24088    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24089)]
24090pub unsafe fn vld3q_lane_u16<const LANE: i32>(a: *const u16, b: uint16x8x3_t) -> uint16x8x3_t {
24091    static_assert_uimm_bits!(LANE, 3);
24092    transmute(vld3q_lane_s16::<LANE>(transmute(a), transmute(b)))
24093}
24094#[doc = "Load multiple 3-element structures to three registers"]
24095#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_u32)"]
24096#[doc = "## Safety"]
24097#[doc = "  * Neon instrinsic unsafe"]
24098#[inline]
24099#[target_feature(enable = "neon")]
24100#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24101#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3, LANE = 0))]
24102#[cfg_attr(
24103    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24104    assert_instr(ld3, LANE = 0)
24105)]
24106#[rustc_legacy_const_generics(2)]
24107#[cfg_attr(
24108    not(target_arch = "arm"),
24109    stable(feature = "neon_intrinsics", since = "1.59.0")
24110)]
24111#[cfg_attr(
24112    target_arch = "arm",
24113    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24114)]
24115pub unsafe fn vld3_lane_u32<const LANE: i32>(a: *const u32, b: uint32x2x3_t) -> uint32x2x3_t {
24116    static_assert_uimm_bits!(LANE, 1);
24117    transmute(vld3_lane_s32::<LANE>(transmute(a), transmute(b)))
24118}
24119#[doc = "Load multiple 3-element structures to three registers"]
24120#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_lane_u32)"]
24121#[doc = "## Safety"]
24122#[doc = "  * Neon instrinsic unsafe"]
24123#[inline]
24124#[target_feature(enable = "neon")]
24125#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24126#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3, LANE = 0))]
24127#[cfg_attr(
24128    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24129    assert_instr(ld3, LANE = 0)
24130)]
24131#[rustc_legacy_const_generics(2)]
24132#[cfg_attr(
24133    not(target_arch = "arm"),
24134    stable(feature = "neon_intrinsics", since = "1.59.0")
24135)]
24136#[cfg_attr(
24137    target_arch = "arm",
24138    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24139)]
24140pub unsafe fn vld3q_lane_u32<const LANE: i32>(a: *const u32, b: uint32x4x3_t) -> uint32x4x3_t {
24141    static_assert_uimm_bits!(LANE, 2);
24142    transmute(vld3q_lane_s32::<LANE>(transmute(a), transmute(b)))
24143}
24144#[doc = "Load multiple 3-element structures to three registers"]
24145#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_p8)"]
24146#[doc = "## Safety"]
24147#[doc = "  * Neon instrinsic unsafe"]
24148#[inline]
24149#[target_feature(enable = "neon")]
24150#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24151#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3, LANE = 0))]
24152#[cfg_attr(
24153    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24154    assert_instr(ld3, LANE = 0)
24155)]
24156#[rustc_legacy_const_generics(2)]
24157#[cfg_attr(
24158    not(target_arch = "arm"),
24159    stable(feature = "neon_intrinsics", since = "1.59.0")
24160)]
24161#[cfg_attr(
24162    target_arch = "arm",
24163    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24164)]
24165pub unsafe fn vld3_lane_p8<const LANE: i32>(a: *const p8, b: poly8x8x3_t) -> poly8x8x3_t {
24166    static_assert_uimm_bits!(LANE, 3);
24167    transmute(vld3_lane_s8::<LANE>(transmute(a), transmute(b)))
24168}
24169#[doc = "Load multiple 3-element structures to three registers"]
24170#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_p16)"]
24171#[doc = "## Safety"]
24172#[doc = "  * Neon instrinsic unsafe"]
24173#[inline]
24174#[target_feature(enable = "neon")]
24175#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24176#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3, LANE = 0))]
24177#[cfg_attr(
24178    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24179    assert_instr(ld3, LANE = 0)
24180)]
24181#[rustc_legacy_const_generics(2)]
24182#[cfg_attr(
24183    not(target_arch = "arm"),
24184    stable(feature = "neon_intrinsics", since = "1.59.0")
24185)]
24186#[cfg_attr(
24187    target_arch = "arm",
24188    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24189)]
24190pub unsafe fn vld3_lane_p16<const LANE: i32>(a: *const p16, b: poly16x4x3_t) -> poly16x4x3_t {
24191    static_assert_uimm_bits!(LANE, 2);
24192    transmute(vld3_lane_s16::<LANE>(transmute(a), transmute(b)))
24193}
24194#[doc = "Load multiple 3-element structures to three registers"]
24195#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_lane_p16)"]
24196#[doc = "## Safety"]
24197#[doc = "  * Neon instrinsic unsafe"]
24198#[inline]
24199#[target_feature(enable = "neon")]
24200#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24201#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3, LANE = 0))]
24202#[cfg_attr(
24203    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24204    assert_instr(ld3, LANE = 0)
24205)]
24206#[rustc_legacy_const_generics(2)]
24207#[cfg_attr(
24208    not(target_arch = "arm"),
24209    stable(feature = "neon_intrinsics", since = "1.59.0")
24210)]
24211#[cfg_attr(
24212    target_arch = "arm",
24213    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24214)]
24215pub unsafe fn vld3q_lane_p16<const LANE: i32>(a: *const p16, b: poly16x8x3_t) -> poly16x8x3_t {
24216    static_assert_uimm_bits!(LANE, 3);
24217    transmute(vld3q_lane_s16::<LANE>(transmute(a), transmute(b)))
24218}
24219#[doc = "Load multiple 3-element structures to three registers"]
24220#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_p64)"]
24221#[doc = "## Safety"]
24222#[doc = "  * Neon instrinsic unsafe"]
24223#[inline]
24224#[target_feature(enable = "neon,aes")]
24225#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
24226#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24227#[cfg_attr(
24228    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24229    assert_instr(nop)
24230)]
24231#[cfg_attr(
24232    not(target_arch = "arm"),
24233    stable(feature = "neon_intrinsics", since = "1.59.0")
24234)]
24235#[cfg_attr(
24236    target_arch = "arm",
24237    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24238)]
24239pub unsafe fn vld3_p64(a: *const p64) -> poly64x1x3_t {
24240    transmute(vld3_s64(transmute(a)))
24241}
24242#[doc = "Load multiple 3-element structures to three registers"]
24243#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_s64)"]
24244#[doc = "## Safety"]
24245#[doc = "  * Neon instrinsic unsafe"]
24246#[inline]
24247#[target_feature(enable = "neon")]
24248#[stable(feature = "neon_intrinsics", since = "1.59.0")]
24249#[cfg(not(target_arch = "arm"))]
24250#[cfg_attr(test, assert_instr(nop))]
24251pub unsafe fn vld3_s64(a: *const i64) -> int64x1x3_t {
24252    unsafe extern "unadjusted" {
24253        #[cfg_attr(
24254            any(target_arch = "aarch64", target_arch = "arm64ec"),
24255            link_name = "llvm.aarch64.neon.ld3.v1i64.p0"
24256        )]
24257        fn _vld3_s64(ptr: *const int64x1_t) -> int64x1x3_t;
24258    }
24259    _vld3_s64(a as _)
24260}
24261#[doc = "Load multiple 3-element structures to three registers"]
24262#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_s64)"]
24263#[doc = "## Safety"]
24264#[doc = "  * Neon instrinsic unsafe"]
24265#[inline]
24266#[cfg(target_arch = "arm")]
24267#[target_feature(enable = "neon,v7")]
24268#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
24269#[cfg_attr(test, assert_instr(nop))]
24270pub unsafe fn vld3_s64(a: *const i64) -> int64x1x3_t {
24271    unsafe extern "unadjusted" {
24272        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3.v1i64.p0")]
24273        fn _vld3_s64(ptr: *const i8, size: i32) -> int64x1x3_t;
24274    }
24275    _vld3_s64(a as *const i8, 8)
24276}
24277#[doc = "Load multiple 3-element structures to three registers"]
24278#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_u64)"]
24279#[doc = "## Safety"]
24280#[doc = "  * Neon instrinsic unsafe"]
24281#[inline]
24282#[target_feature(enable = "neon")]
24283#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24284#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24285#[cfg_attr(
24286    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24287    assert_instr(nop)
24288)]
24289#[cfg_attr(
24290    not(target_arch = "arm"),
24291    stable(feature = "neon_intrinsics", since = "1.59.0")
24292)]
24293#[cfg_attr(
24294    target_arch = "arm",
24295    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24296)]
24297pub unsafe fn vld3_u64(a: *const u64) -> uint64x1x3_t {
24298    transmute(vld3_s64(transmute(a)))
24299}
24300#[doc = "Load multiple 3-element structures to three registers"]
24301#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_u8)"]
24302#[doc = "## Safety"]
24303#[doc = "  * Neon instrinsic unsafe"]
24304#[inline]
24305#[cfg(target_endian = "little")]
24306#[target_feature(enable = "neon")]
24307#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24308#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
24309#[cfg_attr(
24310    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24311    assert_instr(ld3)
24312)]
24313#[cfg_attr(
24314    not(target_arch = "arm"),
24315    stable(feature = "neon_intrinsics", since = "1.59.0")
24316)]
24317#[cfg_attr(
24318    target_arch = "arm",
24319    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24320)]
24321pub unsafe fn vld3_u8(a: *const u8) -> uint8x8x3_t {
24322    transmute(vld3_s8(transmute(a)))
24323}
24324#[doc = "Load multiple 3-element structures to three registers"]
24325#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_u8)"]
24326#[doc = "## Safety"]
24327#[doc = "  * Neon instrinsic unsafe"]
24328#[inline]
24329#[cfg(target_endian = "big")]
24330#[target_feature(enable = "neon")]
24331#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24332#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
24333#[cfg_attr(
24334    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24335    assert_instr(ld3)
24336)]
24337#[cfg_attr(
24338    not(target_arch = "arm"),
24339    stable(feature = "neon_intrinsics", since = "1.59.0")
24340)]
24341#[cfg_attr(
24342    target_arch = "arm",
24343    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24344)]
24345pub unsafe fn vld3_u8(a: *const u8) -> uint8x8x3_t {
24346    let mut ret_val: uint8x8x3_t = transmute(vld3_s8(transmute(a)));
24347    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
24348    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
24349    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
24350    ret_val
24351}
24352#[doc = "Load multiple 3-element structures to three registers"]
24353#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_u8)"]
24354#[doc = "## Safety"]
24355#[doc = "  * Neon instrinsic unsafe"]
24356#[inline]
24357#[cfg(target_endian = "little")]
24358#[target_feature(enable = "neon")]
24359#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24360#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
24361#[cfg_attr(
24362    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24363    assert_instr(ld3)
24364)]
24365#[cfg_attr(
24366    not(target_arch = "arm"),
24367    stable(feature = "neon_intrinsics", since = "1.59.0")
24368)]
24369#[cfg_attr(
24370    target_arch = "arm",
24371    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24372)]
24373pub unsafe fn vld3q_u8(a: *const u8) -> uint8x16x3_t {
24374    transmute(vld3q_s8(transmute(a)))
24375}
24376#[doc = "Load multiple 3-element structures to three registers"]
24377#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_u8)"]
24378#[doc = "## Safety"]
24379#[doc = "  * Neon instrinsic unsafe"]
24380#[inline]
24381#[cfg(target_endian = "big")]
24382#[target_feature(enable = "neon")]
24383#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24384#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
24385#[cfg_attr(
24386    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24387    assert_instr(ld3)
24388)]
24389#[cfg_attr(
24390    not(target_arch = "arm"),
24391    stable(feature = "neon_intrinsics", since = "1.59.0")
24392)]
24393#[cfg_attr(
24394    target_arch = "arm",
24395    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24396)]
24397pub unsafe fn vld3q_u8(a: *const u8) -> uint8x16x3_t {
24398    let mut ret_val: uint8x16x3_t = transmute(vld3q_s8(transmute(a)));
24399    ret_val.0 = unsafe {
24400        simd_shuffle!(
24401            ret_val.0,
24402            ret_val.0,
24403            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
24404        )
24405    };
24406    ret_val.1 = unsafe {
24407        simd_shuffle!(
24408            ret_val.1,
24409            ret_val.1,
24410            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
24411        )
24412    };
24413    ret_val.2 = unsafe {
24414        simd_shuffle!(
24415            ret_val.2,
24416            ret_val.2,
24417            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
24418        )
24419    };
24420    ret_val
24421}
24422#[doc = "Load multiple 3-element structures to three registers"]
24423#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_u16)"]
24424#[doc = "## Safety"]
24425#[doc = "  * Neon instrinsic unsafe"]
24426#[inline]
24427#[cfg(target_endian = "little")]
24428#[target_feature(enable = "neon")]
24429#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24430#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
24431#[cfg_attr(
24432    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24433    assert_instr(ld3)
24434)]
24435#[cfg_attr(
24436    not(target_arch = "arm"),
24437    stable(feature = "neon_intrinsics", since = "1.59.0")
24438)]
24439#[cfg_attr(
24440    target_arch = "arm",
24441    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24442)]
24443pub unsafe fn vld3_u16(a: *const u16) -> uint16x4x3_t {
24444    transmute(vld3_s16(transmute(a)))
24445}
24446#[doc = "Load multiple 3-element structures to three registers"]
24447#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_u16)"]
24448#[doc = "## Safety"]
24449#[doc = "  * Neon instrinsic unsafe"]
24450#[inline]
24451#[cfg(target_endian = "big")]
24452#[target_feature(enable = "neon")]
24453#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24454#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
24455#[cfg_attr(
24456    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24457    assert_instr(ld3)
24458)]
24459#[cfg_attr(
24460    not(target_arch = "arm"),
24461    stable(feature = "neon_intrinsics", since = "1.59.0")
24462)]
24463#[cfg_attr(
24464    target_arch = "arm",
24465    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24466)]
24467pub unsafe fn vld3_u16(a: *const u16) -> uint16x4x3_t {
24468    let mut ret_val: uint16x4x3_t = transmute(vld3_s16(transmute(a)));
24469    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
24470    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
24471    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [3, 2, 1, 0]) };
24472    ret_val
24473}
24474#[doc = "Load multiple 3-element structures to three registers"]
24475#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_u16)"]
24476#[doc = "## Safety"]
24477#[doc = "  * Neon instrinsic unsafe"]
24478#[inline]
24479#[cfg(target_endian = "little")]
24480#[target_feature(enable = "neon")]
24481#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24482#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
24483#[cfg_attr(
24484    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24485    assert_instr(ld3)
24486)]
24487#[cfg_attr(
24488    not(target_arch = "arm"),
24489    stable(feature = "neon_intrinsics", since = "1.59.0")
24490)]
24491#[cfg_attr(
24492    target_arch = "arm",
24493    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24494)]
24495pub unsafe fn vld3q_u16(a: *const u16) -> uint16x8x3_t {
24496    transmute(vld3q_s16(transmute(a)))
24497}
24498#[doc = "Load multiple 3-element structures to three registers"]
24499#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_u16)"]
24500#[doc = "## Safety"]
24501#[doc = "  * Neon instrinsic unsafe"]
24502#[inline]
24503#[cfg(target_endian = "big")]
24504#[target_feature(enable = "neon")]
24505#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24506#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
24507#[cfg_attr(
24508    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24509    assert_instr(ld3)
24510)]
24511#[cfg_attr(
24512    not(target_arch = "arm"),
24513    stable(feature = "neon_intrinsics", since = "1.59.0")
24514)]
24515#[cfg_attr(
24516    target_arch = "arm",
24517    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24518)]
24519pub unsafe fn vld3q_u16(a: *const u16) -> uint16x8x3_t {
24520    let mut ret_val: uint16x8x3_t = transmute(vld3q_s16(transmute(a)));
24521    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
24522    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
24523    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
24524    ret_val
24525}
24526#[doc = "Load multiple 3-element structures to three registers"]
24527#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_u32)"]
24528#[doc = "## Safety"]
24529#[doc = "  * Neon instrinsic unsafe"]
24530#[inline]
24531#[cfg(target_endian = "little")]
24532#[target_feature(enable = "neon")]
24533#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24534#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
24535#[cfg_attr(
24536    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24537    assert_instr(ld3)
24538)]
24539#[cfg_attr(
24540    not(target_arch = "arm"),
24541    stable(feature = "neon_intrinsics", since = "1.59.0")
24542)]
24543#[cfg_attr(
24544    target_arch = "arm",
24545    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24546)]
24547pub unsafe fn vld3_u32(a: *const u32) -> uint32x2x3_t {
24548    transmute(vld3_s32(transmute(a)))
24549}
24550#[doc = "Load multiple 3-element structures to three registers"]
24551#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_u32)"]
24552#[doc = "## Safety"]
24553#[doc = "  * Neon instrinsic unsafe"]
24554#[inline]
24555#[cfg(target_endian = "big")]
24556#[target_feature(enable = "neon")]
24557#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24558#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
24559#[cfg_attr(
24560    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24561    assert_instr(ld3)
24562)]
24563#[cfg_attr(
24564    not(target_arch = "arm"),
24565    stable(feature = "neon_intrinsics", since = "1.59.0")
24566)]
24567#[cfg_attr(
24568    target_arch = "arm",
24569    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24570)]
24571pub unsafe fn vld3_u32(a: *const u32) -> uint32x2x3_t {
24572    let mut ret_val: uint32x2x3_t = transmute(vld3_s32(transmute(a)));
24573    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [1, 0]) };
24574    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [1, 0]) };
24575    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [1, 0]) };
24576    ret_val
24577}
24578#[doc = "Load multiple 3-element structures to three registers"]
24579#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_u32)"]
24580#[doc = "## Safety"]
24581#[doc = "  * Neon instrinsic unsafe"]
24582#[inline]
24583#[cfg(target_endian = "little")]
24584#[target_feature(enable = "neon")]
24585#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24586#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
24587#[cfg_attr(
24588    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24589    assert_instr(ld3)
24590)]
24591#[cfg_attr(
24592    not(target_arch = "arm"),
24593    stable(feature = "neon_intrinsics", since = "1.59.0")
24594)]
24595#[cfg_attr(
24596    target_arch = "arm",
24597    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24598)]
24599pub unsafe fn vld3q_u32(a: *const u32) -> uint32x4x3_t {
24600    transmute(vld3q_s32(transmute(a)))
24601}
24602#[doc = "Load multiple 3-element structures to three registers"]
24603#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_u32)"]
24604#[doc = "## Safety"]
24605#[doc = "  * Neon instrinsic unsafe"]
24606#[inline]
24607#[cfg(target_endian = "big")]
24608#[target_feature(enable = "neon")]
24609#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24610#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
24611#[cfg_attr(
24612    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24613    assert_instr(ld3)
24614)]
24615#[cfg_attr(
24616    not(target_arch = "arm"),
24617    stable(feature = "neon_intrinsics", since = "1.59.0")
24618)]
24619#[cfg_attr(
24620    target_arch = "arm",
24621    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24622)]
24623pub unsafe fn vld3q_u32(a: *const u32) -> uint32x4x3_t {
24624    let mut ret_val: uint32x4x3_t = transmute(vld3q_s32(transmute(a)));
24625    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
24626    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
24627    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [3, 2, 1, 0]) };
24628    ret_val
24629}
24630#[doc = "Load multiple 3-element structures to three registers"]
24631#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_p8)"]
24632#[doc = "## Safety"]
24633#[doc = "  * Neon instrinsic unsafe"]
24634#[inline]
24635#[cfg(target_endian = "little")]
24636#[target_feature(enable = "neon")]
24637#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24638#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
24639#[cfg_attr(
24640    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24641    assert_instr(ld3)
24642)]
24643#[cfg_attr(
24644    not(target_arch = "arm"),
24645    stable(feature = "neon_intrinsics", since = "1.59.0")
24646)]
24647#[cfg_attr(
24648    target_arch = "arm",
24649    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24650)]
24651pub unsafe fn vld3_p8(a: *const p8) -> poly8x8x3_t {
24652    transmute(vld3_s8(transmute(a)))
24653}
24654#[doc = "Load multiple 3-element structures to three registers"]
24655#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_p8)"]
24656#[doc = "## Safety"]
24657#[doc = "  * Neon instrinsic unsafe"]
24658#[inline]
24659#[cfg(target_endian = "big")]
24660#[target_feature(enable = "neon")]
24661#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24662#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
24663#[cfg_attr(
24664    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24665    assert_instr(ld3)
24666)]
24667#[cfg_attr(
24668    not(target_arch = "arm"),
24669    stable(feature = "neon_intrinsics", since = "1.59.0")
24670)]
24671#[cfg_attr(
24672    target_arch = "arm",
24673    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24674)]
24675pub unsafe fn vld3_p8(a: *const p8) -> poly8x8x3_t {
24676    let mut ret_val: poly8x8x3_t = transmute(vld3_s8(transmute(a)));
24677    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
24678    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
24679    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
24680    ret_val
24681}
24682#[doc = "Load multiple 3-element structures to three registers"]
24683#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_p8)"]
24684#[doc = "## Safety"]
24685#[doc = "  * Neon instrinsic unsafe"]
24686#[inline]
24687#[cfg(target_endian = "little")]
24688#[target_feature(enable = "neon")]
24689#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24690#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
24691#[cfg_attr(
24692    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24693    assert_instr(ld3)
24694)]
24695#[cfg_attr(
24696    not(target_arch = "arm"),
24697    stable(feature = "neon_intrinsics", since = "1.59.0")
24698)]
24699#[cfg_attr(
24700    target_arch = "arm",
24701    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24702)]
24703pub unsafe fn vld3q_p8(a: *const p8) -> poly8x16x3_t {
24704    transmute(vld3q_s8(transmute(a)))
24705}
24706#[doc = "Load multiple 3-element structures to three registers"]
24707#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_p8)"]
24708#[doc = "## Safety"]
24709#[doc = "  * Neon instrinsic unsafe"]
24710#[inline]
24711#[cfg(target_endian = "big")]
24712#[target_feature(enable = "neon")]
24713#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24714#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
24715#[cfg_attr(
24716    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24717    assert_instr(ld3)
24718)]
24719#[cfg_attr(
24720    not(target_arch = "arm"),
24721    stable(feature = "neon_intrinsics", since = "1.59.0")
24722)]
24723#[cfg_attr(
24724    target_arch = "arm",
24725    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24726)]
24727pub unsafe fn vld3q_p8(a: *const p8) -> poly8x16x3_t {
24728    let mut ret_val: poly8x16x3_t = transmute(vld3q_s8(transmute(a)));
24729    ret_val.0 = unsafe {
24730        simd_shuffle!(
24731            ret_val.0,
24732            ret_val.0,
24733            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
24734        )
24735    };
24736    ret_val.1 = unsafe {
24737        simd_shuffle!(
24738            ret_val.1,
24739            ret_val.1,
24740            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
24741        )
24742    };
24743    ret_val.2 = unsafe {
24744        simd_shuffle!(
24745            ret_val.2,
24746            ret_val.2,
24747            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
24748        )
24749    };
24750    ret_val
24751}
24752#[doc = "Load multiple 3-element structures to three registers"]
24753#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_p16)"]
24754#[doc = "## Safety"]
24755#[doc = "  * Neon instrinsic unsafe"]
24756#[inline]
24757#[cfg(target_endian = "little")]
24758#[target_feature(enable = "neon")]
24759#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24760#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
24761#[cfg_attr(
24762    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24763    assert_instr(ld3)
24764)]
24765#[cfg_attr(
24766    not(target_arch = "arm"),
24767    stable(feature = "neon_intrinsics", since = "1.59.0")
24768)]
24769#[cfg_attr(
24770    target_arch = "arm",
24771    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24772)]
24773pub unsafe fn vld3_p16(a: *const p16) -> poly16x4x3_t {
24774    transmute(vld3_s16(transmute(a)))
24775}
24776#[doc = "Load multiple 3-element structures to three registers"]
24777#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_p16)"]
24778#[doc = "## Safety"]
24779#[doc = "  * Neon instrinsic unsafe"]
24780#[inline]
24781#[cfg(target_endian = "big")]
24782#[target_feature(enable = "neon")]
24783#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24784#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
24785#[cfg_attr(
24786    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24787    assert_instr(ld3)
24788)]
24789#[cfg_attr(
24790    not(target_arch = "arm"),
24791    stable(feature = "neon_intrinsics", since = "1.59.0")
24792)]
24793#[cfg_attr(
24794    target_arch = "arm",
24795    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24796)]
24797pub unsafe fn vld3_p16(a: *const p16) -> poly16x4x3_t {
24798    let mut ret_val: poly16x4x3_t = transmute(vld3_s16(transmute(a)));
24799    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
24800    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
24801    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [3, 2, 1, 0]) };
24802    ret_val
24803}
24804#[doc = "Load multiple 3-element structures to three registers"]
24805#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_p16)"]
24806#[doc = "## Safety"]
24807#[doc = "  * Neon instrinsic unsafe"]
24808#[inline]
24809#[cfg(target_endian = "little")]
24810#[target_feature(enable = "neon")]
24811#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24812#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
24813#[cfg_attr(
24814    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24815    assert_instr(ld3)
24816)]
24817#[cfg_attr(
24818    not(target_arch = "arm"),
24819    stable(feature = "neon_intrinsics", since = "1.59.0")
24820)]
24821#[cfg_attr(
24822    target_arch = "arm",
24823    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24824)]
24825pub unsafe fn vld3q_p16(a: *const p16) -> poly16x8x3_t {
24826    transmute(vld3q_s16(transmute(a)))
24827}
24828#[doc = "Load multiple 3-element structures to three registers"]
24829#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_p16)"]
24830#[doc = "## Safety"]
24831#[doc = "  * Neon instrinsic unsafe"]
24832#[inline]
24833#[cfg(target_endian = "big")]
24834#[target_feature(enable = "neon")]
24835#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24836#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
24837#[cfg_attr(
24838    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24839    assert_instr(ld3)
24840)]
24841#[cfg_attr(
24842    not(target_arch = "arm"),
24843    stable(feature = "neon_intrinsics", since = "1.59.0")
24844)]
24845#[cfg_attr(
24846    target_arch = "arm",
24847    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24848)]
24849pub unsafe fn vld3q_p16(a: *const p16) -> poly16x8x3_t {
24850    let mut ret_val: poly16x8x3_t = transmute(vld3q_s16(transmute(a)));
24851    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
24852    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
24853    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
24854    ret_val
24855}
24856#[doc = "Load multiple 3-element structures to three registers"]
24857#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_lane_f32)"]
24858#[doc = "## Safety"]
24859#[doc = "  * Neon instrinsic unsafe"]
24860#[inline]
24861#[cfg(target_arch = "arm")]
24862#[target_feature(enable = "neon,v7")]
24863#[cfg_attr(test, assert_instr(vld3, LANE = 0))]
24864#[rustc_legacy_const_generics(2)]
24865#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
24866pub unsafe fn vld3q_lane_f32<const LANE: i32>(a: *const f32, b: float32x4x3_t) -> float32x4x3_t {
24867    static_assert_uimm_bits!(LANE, 2);
24868    unsafe extern "unadjusted" {
24869        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3lane.v4f32.p0")]
24870        fn _vld3q_lane_f32(
24871            ptr: *const i8,
24872            a: float32x4_t,
24873            b: float32x4_t,
24874            c: float32x4_t,
24875            n: i32,
24876            size: i32,
24877        ) -> float32x4x3_t;
24878    }
24879    _vld3q_lane_f32(a as _, b.0, b.1, b.2, LANE, 4)
24880}
24881#[doc = "Load single 4-element structure and replicate to all lanes of two registers"]
24882#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_f16)"]
24883#[doc = "## Safety"]
24884#[doc = "  * Neon instrinsic unsafe"]
24885#[inline]
24886#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24887#[cfg(target_arch = "arm")]
24888#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
24889#[target_feature(enable = "neon,fp16")]
24890#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
24891#[cfg(not(target_arch = "arm64ec"))]
24892pub unsafe fn vld4_dup_f16(a: *const f16) -> float16x4x4_t {
24893    unsafe extern "unadjusted" {
24894        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4dup.v4f16.p0")]
24895        fn _vld4_dup_f16(ptr: *const f16, size: i32) -> float16x4x4_t;
24896    }
24897    _vld4_dup_f16(a as _, 2)
24898}
24899#[doc = "Load single 4-element structure and replicate to all lanes of two registers"]
24900#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_f16)"]
24901#[doc = "## Safety"]
24902#[doc = "  * Neon instrinsic unsafe"]
24903#[inline]
24904#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24905#[cfg(target_arch = "arm")]
24906#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
24907#[target_feature(enable = "neon,fp16")]
24908#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
24909#[cfg(not(target_arch = "arm64ec"))]
24910pub unsafe fn vld4q_dup_f16(a: *const f16) -> float16x8x4_t {
24911    unsafe extern "unadjusted" {
24912        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4dup.v8f16.p0")]
24913        fn _vld4q_dup_f16(ptr: *const f16, size: i32) -> float16x8x4_t;
24914    }
24915    _vld4q_dup_f16(a as _, 2)
24916}
24917#[doc = "Load single 4-element structure and replicate to all lanes of two registers"]
24918#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_f16)"]
24919#[doc = "## Safety"]
24920#[doc = "  * Neon instrinsic unsafe"]
24921#[inline]
24922#[cfg(not(target_arch = "arm"))]
24923#[cfg_attr(
24924    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24925    assert_instr(ld4r)
24926)]
24927#[target_feature(enable = "neon,fp16")]
24928#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
24929#[cfg(not(target_arch = "arm64ec"))]
24930pub unsafe fn vld4_dup_f16(a: *const f16) -> float16x4x4_t {
24931    unsafe extern "unadjusted" {
24932        #[cfg_attr(
24933            any(target_arch = "aarch64", target_arch = "arm64ec"),
24934            link_name = "llvm.aarch64.neon.ld4r.v4f16.p0"
24935        )]
24936        fn _vld4_dup_f16(ptr: *const f16) -> float16x4x4_t;
24937    }
24938    _vld4_dup_f16(a as _)
24939}
24940#[doc = "Load single 4-element structure and replicate to all lanes of two registers"]
24941#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_f16)"]
24942#[doc = "## Safety"]
24943#[doc = "  * Neon instrinsic unsafe"]
24944#[inline]
24945#[cfg(not(target_arch = "arm"))]
24946#[cfg_attr(
24947    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24948    assert_instr(ld4r)
24949)]
24950#[target_feature(enable = "neon,fp16")]
24951#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
24952#[cfg(not(target_arch = "arm64ec"))]
24953pub unsafe fn vld4q_dup_f16(a: *const f16) -> float16x8x4_t {
24954    unsafe extern "unadjusted" {
24955        #[cfg_attr(
24956            any(target_arch = "aarch64", target_arch = "arm64ec"),
24957            link_name = "llvm.aarch64.neon.ld4r.v8f16.p0"
24958        )]
24959        fn _vld4q_dup_f16(ptr: *const f16) -> float16x8x4_t;
24960    }
24961    _vld4q_dup_f16(a as _)
24962}
24963#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
24964#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_f32)"]
24965#[doc = "## Safety"]
24966#[doc = "  * Neon instrinsic unsafe"]
24967#[inline]
24968#[cfg(target_arch = "arm")]
24969#[target_feature(enable = "neon,v7")]
24970#[cfg_attr(test, assert_instr(vld4))]
24971#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
24972pub unsafe fn vld4_dup_f32(a: *const f32) -> float32x2x4_t {
24973    unsafe extern "unadjusted" {
24974        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4dup.v2f32.p0")]
24975        fn _vld4_dup_f32(ptr: *const i8, size: i32) -> float32x2x4_t;
24976    }
24977    _vld4_dup_f32(a as *const i8, 4)
24978}
24979#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
24980#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_f32)"]
24981#[doc = "## Safety"]
24982#[doc = "  * Neon instrinsic unsafe"]
24983#[inline]
24984#[cfg(target_arch = "arm")]
24985#[target_feature(enable = "neon,v7")]
24986#[cfg_attr(test, assert_instr(vld4))]
24987#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
24988pub unsafe fn vld4q_dup_f32(a: *const f32) -> float32x4x4_t {
24989    unsafe extern "unadjusted" {
24990        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4dup.v4f32.p0")]
24991        fn _vld4q_dup_f32(ptr: *const i8, size: i32) -> float32x4x4_t;
24992    }
24993    _vld4q_dup_f32(a as *const i8, 4)
24994}
24995#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
24996#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_s8)"]
24997#[doc = "## Safety"]
24998#[doc = "  * Neon instrinsic unsafe"]
24999#[inline]
25000#[cfg(target_arch = "arm")]
25001#[target_feature(enable = "neon,v7")]
25002#[cfg_attr(test, assert_instr(vld4))]
25003#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
25004pub unsafe fn vld4_dup_s8(a: *const i8) -> int8x8x4_t {
25005    unsafe extern "unadjusted" {
25006        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4dup.v8i8.p0")]
25007        fn _vld4_dup_s8(ptr: *const i8, size: i32) -> int8x8x4_t;
25008    }
25009    _vld4_dup_s8(a as *const i8, 1)
25010}
25011#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25012#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_s8)"]
25013#[doc = "## Safety"]
25014#[doc = "  * Neon instrinsic unsafe"]
25015#[inline]
25016#[cfg(target_arch = "arm")]
25017#[target_feature(enable = "neon,v7")]
25018#[cfg_attr(test, assert_instr(vld4))]
25019#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
25020pub unsafe fn vld4q_dup_s8(a: *const i8) -> int8x16x4_t {
25021    unsafe extern "unadjusted" {
25022        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4dup.v16i8.p0")]
25023        fn _vld4q_dup_s8(ptr: *const i8, size: i32) -> int8x16x4_t;
25024    }
25025    _vld4q_dup_s8(a as *const i8, 1)
25026}
25027#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25028#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_s16)"]
25029#[doc = "## Safety"]
25030#[doc = "  * Neon instrinsic unsafe"]
25031#[inline]
25032#[cfg(target_arch = "arm")]
25033#[target_feature(enable = "neon,v7")]
25034#[cfg_attr(test, assert_instr(vld4))]
25035#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
25036pub unsafe fn vld4_dup_s16(a: *const i16) -> int16x4x4_t {
25037    unsafe extern "unadjusted" {
25038        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4dup.v4i16.p0")]
25039        fn _vld4_dup_s16(ptr: *const i8, size: i32) -> int16x4x4_t;
25040    }
25041    _vld4_dup_s16(a as *const i8, 2)
25042}
25043#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25044#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_s16)"]
25045#[doc = "## Safety"]
25046#[doc = "  * Neon instrinsic unsafe"]
25047#[inline]
25048#[cfg(target_arch = "arm")]
25049#[target_feature(enable = "neon,v7")]
25050#[cfg_attr(test, assert_instr(vld4))]
25051#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
25052pub unsafe fn vld4q_dup_s16(a: *const i16) -> int16x8x4_t {
25053    unsafe extern "unadjusted" {
25054        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4dup.v8i16.p0")]
25055        fn _vld4q_dup_s16(ptr: *const i8, size: i32) -> int16x8x4_t;
25056    }
25057    _vld4q_dup_s16(a as *const i8, 2)
25058}
25059#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25060#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_s32)"]
25061#[doc = "## Safety"]
25062#[doc = "  * Neon instrinsic unsafe"]
25063#[inline]
25064#[cfg(target_arch = "arm")]
25065#[target_feature(enable = "neon,v7")]
25066#[cfg_attr(test, assert_instr(vld4))]
25067#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
25068pub unsafe fn vld4_dup_s32(a: *const i32) -> int32x2x4_t {
25069    unsafe extern "unadjusted" {
25070        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4dup.v2i32.p0")]
25071        fn _vld4_dup_s32(ptr: *const i8, size: i32) -> int32x2x4_t;
25072    }
25073    _vld4_dup_s32(a as *const i8, 4)
25074}
25075#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25076#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_s32)"]
25077#[doc = "## Safety"]
25078#[doc = "  * Neon instrinsic unsafe"]
25079#[inline]
25080#[cfg(target_arch = "arm")]
25081#[target_feature(enable = "neon,v7")]
25082#[cfg_attr(test, assert_instr(vld4))]
25083#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
25084pub unsafe fn vld4q_dup_s32(a: *const i32) -> int32x4x4_t {
25085    unsafe extern "unadjusted" {
25086        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4dup.v4i32.p0")]
25087        fn _vld4q_dup_s32(ptr: *const i8, size: i32) -> int32x4x4_t;
25088    }
25089    _vld4q_dup_s32(a as *const i8, 4)
25090}
25091#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25092#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_f32)"]
25093#[doc = "## Safety"]
25094#[doc = "  * Neon instrinsic unsafe"]
25095#[inline]
25096#[target_feature(enable = "neon")]
25097#[cfg(not(target_arch = "arm"))]
25098#[cfg_attr(test, assert_instr(ld4r))]
25099#[stable(feature = "neon_intrinsics", since = "1.59.0")]
25100pub unsafe fn vld4_dup_f32(a: *const f32) -> float32x2x4_t {
25101    unsafe extern "unadjusted" {
25102        #[cfg_attr(
25103            any(target_arch = "aarch64", target_arch = "arm64ec"),
25104            link_name = "llvm.aarch64.neon.ld4r.v2f32.p0.p0"
25105        )]
25106        fn _vld4_dup_f32(ptr: *const f32) -> float32x2x4_t;
25107    }
25108    _vld4_dup_f32(a as _)
25109}
25110#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25111#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_f32)"]
25112#[doc = "## Safety"]
25113#[doc = "  * Neon instrinsic unsafe"]
25114#[inline]
25115#[target_feature(enable = "neon")]
25116#[cfg(not(target_arch = "arm"))]
25117#[cfg_attr(test, assert_instr(ld4r))]
25118#[stable(feature = "neon_intrinsics", since = "1.59.0")]
25119pub unsafe fn vld4q_dup_f32(a: *const f32) -> float32x4x4_t {
25120    unsafe extern "unadjusted" {
25121        #[cfg_attr(
25122            any(target_arch = "aarch64", target_arch = "arm64ec"),
25123            link_name = "llvm.aarch64.neon.ld4r.v4f32.p0.p0"
25124        )]
25125        fn _vld4q_dup_f32(ptr: *const f32) -> float32x4x4_t;
25126    }
25127    _vld4q_dup_f32(a as _)
25128}
25129#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25130#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_s8)"]
25131#[doc = "## Safety"]
25132#[doc = "  * Neon instrinsic unsafe"]
25133#[inline]
25134#[target_feature(enable = "neon")]
25135#[cfg(not(target_arch = "arm"))]
25136#[cfg_attr(test, assert_instr(ld4r))]
25137#[stable(feature = "neon_intrinsics", since = "1.59.0")]
25138pub unsafe fn vld4_dup_s8(a: *const i8) -> int8x8x4_t {
25139    unsafe extern "unadjusted" {
25140        #[cfg_attr(
25141            any(target_arch = "aarch64", target_arch = "arm64ec"),
25142            link_name = "llvm.aarch64.neon.ld4r.v8i8.p0.p0"
25143        )]
25144        fn _vld4_dup_s8(ptr: *const i8) -> int8x8x4_t;
25145    }
25146    _vld4_dup_s8(a as _)
25147}
25148#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25149#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_s8)"]
25150#[doc = "## Safety"]
25151#[doc = "  * Neon instrinsic unsafe"]
25152#[inline]
25153#[target_feature(enable = "neon")]
25154#[cfg(not(target_arch = "arm"))]
25155#[cfg_attr(test, assert_instr(ld4r))]
25156#[stable(feature = "neon_intrinsics", since = "1.59.0")]
25157pub unsafe fn vld4q_dup_s8(a: *const i8) -> int8x16x4_t {
25158    unsafe extern "unadjusted" {
25159        #[cfg_attr(
25160            any(target_arch = "aarch64", target_arch = "arm64ec"),
25161            link_name = "llvm.aarch64.neon.ld4r.v16i8.p0.p0"
25162        )]
25163        fn _vld4q_dup_s8(ptr: *const i8) -> int8x16x4_t;
25164    }
25165    _vld4q_dup_s8(a as _)
25166}
25167#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25168#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_s16)"]
25169#[doc = "## Safety"]
25170#[doc = "  * Neon instrinsic unsafe"]
25171#[inline]
25172#[target_feature(enable = "neon")]
25173#[cfg(not(target_arch = "arm"))]
25174#[cfg_attr(test, assert_instr(ld4r))]
25175#[stable(feature = "neon_intrinsics", since = "1.59.0")]
25176pub unsafe fn vld4_dup_s16(a: *const i16) -> int16x4x4_t {
25177    unsafe extern "unadjusted" {
25178        #[cfg_attr(
25179            any(target_arch = "aarch64", target_arch = "arm64ec"),
25180            link_name = "llvm.aarch64.neon.ld4r.v4i16.p0.p0"
25181        )]
25182        fn _vld4_dup_s16(ptr: *const i16) -> int16x4x4_t;
25183    }
25184    _vld4_dup_s16(a as _)
25185}
25186#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25187#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_s16)"]
25188#[doc = "## Safety"]
25189#[doc = "  * Neon instrinsic unsafe"]
25190#[inline]
25191#[target_feature(enable = "neon")]
25192#[cfg(not(target_arch = "arm"))]
25193#[cfg_attr(test, assert_instr(ld4r))]
25194#[stable(feature = "neon_intrinsics", since = "1.59.0")]
25195pub unsafe fn vld4q_dup_s16(a: *const i16) -> int16x8x4_t {
25196    unsafe extern "unadjusted" {
25197        #[cfg_attr(
25198            any(target_arch = "aarch64", target_arch = "arm64ec"),
25199            link_name = "llvm.aarch64.neon.ld4r.v8i16.p0.p0"
25200        )]
25201        fn _vld4q_dup_s16(ptr: *const i16) -> int16x8x4_t;
25202    }
25203    _vld4q_dup_s16(a as _)
25204}
25205#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25206#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_s32)"]
25207#[doc = "## Safety"]
25208#[doc = "  * Neon instrinsic unsafe"]
25209#[inline]
25210#[target_feature(enable = "neon")]
25211#[cfg(not(target_arch = "arm"))]
25212#[cfg_attr(test, assert_instr(ld4r))]
25213#[stable(feature = "neon_intrinsics", since = "1.59.0")]
25214pub unsafe fn vld4_dup_s32(a: *const i32) -> int32x2x4_t {
25215    unsafe extern "unadjusted" {
25216        #[cfg_attr(
25217            any(target_arch = "aarch64", target_arch = "arm64ec"),
25218            link_name = "llvm.aarch64.neon.ld4r.v2i32.p0.p0"
25219        )]
25220        fn _vld4_dup_s32(ptr: *const i32) -> int32x2x4_t;
25221    }
25222    _vld4_dup_s32(a as _)
25223}
25224#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25225#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_s32)"]
25226#[doc = "## Safety"]
25227#[doc = "  * Neon instrinsic unsafe"]
25228#[inline]
25229#[target_feature(enable = "neon")]
25230#[cfg(not(target_arch = "arm"))]
25231#[cfg_attr(test, assert_instr(ld4r))]
25232#[stable(feature = "neon_intrinsics", since = "1.59.0")]
25233pub unsafe fn vld4q_dup_s32(a: *const i32) -> int32x4x4_t {
25234    unsafe extern "unadjusted" {
25235        #[cfg_attr(
25236            any(target_arch = "aarch64", target_arch = "arm64ec"),
25237            link_name = "llvm.aarch64.neon.ld4r.v4i32.p0.p0"
25238        )]
25239        fn _vld4q_dup_s32(ptr: *const i32) -> int32x4x4_t;
25240    }
25241    _vld4q_dup_s32(a as _)
25242}
25243#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25244#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_s64)"]
25245#[doc = "## Safety"]
25246#[doc = "  * Neon instrinsic unsafe"]
25247#[inline]
25248#[target_feature(enable = "neon")]
25249#[cfg(not(target_arch = "arm"))]
25250#[cfg_attr(test, assert_instr(ld4r))]
25251#[stable(feature = "neon_intrinsics", since = "1.59.0")]
25252pub unsafe fn vld4_dup_s64(a: *const i64) -> int64x1x4_t {
25253    unsafe extern "unadjusted" {
25254        #[cfg_attr(
25255            any(target_arch = "aarch64", target_arch = "arm64ec"),
25256            link_name = "llvm.aarch64.neon.ld4r.v1i64.p0.p0"
25257        )]
25258        fn _vld4_dup_s64(ptr: *const i64) -> int64x1x4_t;
25259    }
25260    _vld4_dup_s64(a as _)
25261}
25262#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25263#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_p64)"]
25264#[doc = "## Safety"]
25265#[doc = "  * Neon instrinsic unsafe"]
25266#[inline]
25267#[target_feature(enable = "neon,aes")]
25268#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
25269#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25270#[cfg_attr(
25271    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25272    assert_instr(ld4r)
25273)]
25274#[cfg_attr(
25275    not(target_arch = "arm"),
25276    stable(feature = "neon_intrinsics", since = "1.59.0")
25277)]
25278#[cfg_attr(
25279    target_arch = "arm",
25280    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25281)]
25282pub unsafe fn vld4_dup_p64(a: *const p64) -> poly64x1x4_t {
25283    transmute(vld4_dup_s64(transmute(a)))
25284}
25285#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25286#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_s64)"]
25287#[doc = "## Safety"]
25288#[doc = "  * Neon instrinsic unsafe"]
25289#[inline]
25290#[cfg(target_arch = "arm")]
25291#[target_feature(enable = "neon,v7")]
25292#[cfg_attr(test, assert_instr(nop))]
25293#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
25294pub unsafe fn vld4_dup_s64(a: *const i64) -> int64x1x4_t {
25295    unsafe extern "unadjusted" {
25296        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4dup.v1i64.p0")]
25297        fn _vld4_dup_s64(ptr: *const i8, size: i32) -> int64x1x4_t;
25298    }
25299    _vld4_dup_s64(a as *const i8, 8)
25300}
25301#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25302#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_u64)"]
25303#[doc = "## Safety"]
25304#[doc = "  * Neon instrinsic unsafe"]
25305#[inline]
25306#[target_feature(enable = "neon")]
25307#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25308#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25309#[cfg_attr(
25310    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25311    assert_instr(ld4r)
25312)]
25313#[cfg_attr(
25314    not(target_arch = "arm"),
25315    stable(feature = "neon_intrinsics", since = "1.59.0")
25316)]
25317#[cfg_attr(
25318    target_arch = "arm",
25319    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25320)]
25321pub unsafe fn vld4_dup_u64(a: *const u64) -> uint64x1x4_t {
25322    transmute(vld4_dup_s64(transmute(a)))
25323}
25324#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25325#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_u8)"]
25326#[doc = "## Safety"]
25327#[doc = "  * Neon instrinsic unsafe"]
25328#[inline]
25329#[cfg(target_endian = "little")]
25330#[target_feature(enable = "neon")]
25331#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25332#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
25333#[cfg_attr(
25334    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25335    assert_instr(ld4r)
25336)]
25337#[cfg_attr(
25338    not(target_arch = "arm"),
25339    stable(feature = "neon_intrinsics", since = "1.59.0")
25340)]
25341#[cfg_attr(
25342    target_arch = "arm",
25343    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25344)]
25345pub unsafe fn vld4_dup_u8(a: *const u8) -> uint8x8x4_t {
25346    transmute(vld4_dup_s8(transmute(a)))
25347}
25348#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25349#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_u8)"]
25350#[doc = "## Safety"]
25351#[doc = "  * Neon instrinsic unsafe"]
25352#[inline]
25353#[cfg(target_endian = "big")]
25354#[target_feature(enable = "neon")]
25355#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25356#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
25357#[cfg_attr(
25358    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25359    assert_instr(ld4r)
25360)]
25361#[cfg_attr(
25362    not(target_arch = "arm"),
25363    stable(feature = "neon_intrinsics", since = "1.59.0")
25364)]
25365#[cfg_attr(
25366    target_arch = "arm",
25367    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25368)]
25369pub unsafe fn vld4_dup_u8(a: *const u8) -> uint8x8x4_t {
25370    let mut ret_val: uint8x8x4_t = transmute(vld4_dup_s8(transmute(a)));
25371    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
25372    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
25373    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
25374    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [7, 6, 5, 4, 3, 2, 1, 0]) };
25375    ret_val
25376}
25377#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25378#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_u8)"]
25379#[doc = "## Safety"]
25380#[doc = "  * Neon instrinsic unsafe"]
25381#[inline]
25382#[cfg(target_endian = "little")]
25383#[target_feature(enable = "neon")]
25384#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25385#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
25386#[cfg_attr(
25387    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25388    assert_instr(ld4r)
25389)]
25390#[cfg_attr(
25391    not(target_arch = "arm"),
25392    stable(feature = "neon_intrinsics", since = "1.59.0")
25393)]
25394#[cfg_attr(
25395    target_arch = "arm",
25396    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25397)]
25398pub unsafe fn vld4q_dup_u8(a: *const u8) -> uint8x16x4_t {
25399    transmute(vld4q_dup_s8(transmute(a)))
25400}
25401#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25402#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_u8)"]
25403#[doc = "## Safety"]
25404#[doc = "  * Neon instrinsic unsafe"]
25405#[inline]
25406#[cfg(target_endian = "big")]
25407#[target_feature(enable = "neon")]
25408#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25409#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
25410#[cfg_attr(
25411    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25412    assert_instr(ld4r)
25413)]
25414#[cfg_attr(
25415    not(target_arch = "arm"),
25416    stable(feature = "neon_intrinsics", since = "1.59.0")
25417)]
25418#[cfg_attr(
25419    target_arch = "arm",
25420    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25421)]
25422pub unsafe fn vld4q_dup_u8(a: *const u8) -> uint8x16x4_t {
25423    let mut ret_val: uint8x16x4_t = transmute(vld4q_dup_s8(transmute(a)));
25424    ret_val.0 = unsafe {
25425        simd_shuffle!(
25426            ret_val.0,
25427            ret_val.0,
25428            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
25429        )
25430    };
25431    ret_val.1 = unsafe {
25432        simd_shuffle!(
25433            ret_val.1,
25434            ret_val.1,
25435            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
25436        )
25437    };
25438    ret_val.2 = unsafe {
25439        simd_shuffle!(
25440            ret_val.2,
25441            ret_val.2,
25442            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
25443        )
25444    };
25445    ret_val.3 = unsafe {
25446        simd_shuffle!(
25447            ret_val.3,
25448            ret_val.3,
25449            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
25450        )
25451    };
25452    ret_val
25453}
25454#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25455#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_u16)"]
25456#[doc = "## Safety"]
25457#[doc = "  * Neon instrinsic unsafe"]
25458#[inline]
25459#[cfg(target_endian = "little")]
25460#[target_feature(enable = "neon")]
25461#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25462#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
25463#[cfg_attr(
25464    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25465    assert_instr(ld4r)
25466)]
25467#[cfg_attr(
25468    not(target_arch = "arm"),
25469    stable(feature = "neon_intrinsics", since = "1.59.0")
25470)]
25471#[cfg_attr(
25472    target_arch = "arm",
25473    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25474)]
25475pub unsafe fn vld4_dup_u16(a: *const u16) -> uint16x4x4_t {
25476    transmute(vld4_dup_s16(transmute(a)))
25477}
25478#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25479#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_u16)"]
25480#[doc = "## Safety"]
25481#[doc = "  * Neon instrinsic unsafe"]
25482#[inline]
25483#[cfg(target_endian = "big")]
25484#[target_feature(enable = "neon")]
25485#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25486#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
25487#[cfg_attr(
25488    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25489    assert_instr(ld4r)
25490)]
25491#[cfg_attr(
25492    not(target_arch = "arm"),
25493    stable(feature = "neon_intrinsics", since = "1.59.0")
25494)]
25495#[cfg_attr(
25496    target_arch = "arm",
25497    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25498)]
25499pub unsafe fn vld4_dup_u16(a: *const u16) -> uint16x4x4_t {
25500    let mut ret_val: uint16x4x4_t = transmute(vld4_dup_s16(transmute(a)));
25501    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
25502    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
25503    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [3, 2, 1, 0]) };
25504    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [3, 2, 1, 0]) };
25505    ret_val
25506}
25507#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25508#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_u16)"]
25509#[doc = "## Safety"]
25510#[doc = "  * Neon instrinsic unsafe"]
25511#[inline]
25512#[cfg(target_endian = "little")]
25513#[target_feature(enable = "neon")]
25514#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25515#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
25516#[cfg_attr(
25517    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25518    assert_instr(ld4r)
25519)]
25520#[cfg_attr(
25521    not(target_arch = "arm"),
25522    stable(feature = "neon_intrinsics", since = "1.59.0")
25523)]
25524#[cfg_attr(
25525    target_arch = "arm",
25526    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25527)]
25528pub unsafe fn vld4q_dup_u16(a: *const u16) -> uint16x8x4_t {
25529    transmute(vld4q_dup_s16(transmute(a)))
25530}
25531#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25532#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_u16)"]
25533#[doc = "## Safety"]
25534#[doc = "  * Neon instrinsic unsafe"]
25535#[inline]
25536#[cfg(target_endian = "big")]
25537#[target_feature(enable = "neon")]
25538#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25539#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
25540#[cfg_attr(
25541    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25542    assert_instr(ld4r)
25543)]
25544#[cfg_attr(
25545    not(target_arch = "arm"),
25546    stable(feature = "neon_intrinsics", since = "1.59.0")
25547)]
25548#[cfg_attr(
25549    target_arch = "arm",
25550    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25551)]
25552pub unsafe fn vld4q_dup_u16(a: *const u16) -> uint16x8x4_t {
25553    let mut ret_val: uint16x8x4_t = transmute(vld4q_dup_s16(transmute(a)));
25554    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
25555    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
25556    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
25557    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [7, 6, 5, 4, 3, 2, 1, 0]) };
25558    ret_val
25559}
25560#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25561#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_u32)"]
25562#[doc = "## Safety"]
25563#[doc = "  * Neon instrinsic unsafe"]
25564#[inline]
25565#[cfg(target_endian = "little")]
25566#[target_feature(enable = "neon")]
25567#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25568#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
25569#[cfg_attr(
25570    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25571    assert_instr(ld4r)
25572)]
25573#[cfg_attr(
25574    not(target_arch = "arm"),
25575    stable(feature = "neon_intrinsics", since = "1.59.0")
25576)]
25577#[cfg_attr(
25578    target_arch = "arm",
25579    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25580)]
25581pub unsafe fn vld4_dup_u32(a: *const u32) -> uint32x2x4_t {
25582    transmute(vld4_dup_s32(transmute(a)))
25583}
25584#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25585#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_u32)"]
25586#[doc = "## Safety"]
25587#[doc = "  * Neon instrinsic unsafe"]
25588#[inline]
25589#[cfg(target_endian = "big")]
25590#[target_feature(enable = "neon")]
25591#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25592#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
25593#[cfg_attr(
25594    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25595    assert_instr(ld4r)
25596)]
25597#[cfg_attr(
25598    not(target_arch = "arm"),
25599    stable(feature = "neon_intrinsics", since = "1.59.0")
25600)]
25601#[cfg_attr(
25602    target_arch = "arm",
25603    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25604)]
25605pub unsafe fn vld4_dup_u32(a: *const u32) -> uint32x2x4_t {
25606    let mut ret_val: uint32x2x4_t = transmute(vld4_dup_s32(transmute(a)));
25607    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [1, 0]) };
25608    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [1, 0]) };
25609    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [1, 0]) };
25610    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [1, 0]) };
25611    ret_val
25612}
25613#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25614#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_u32)"]
25615#[doc = "## Safety"]
25616#[doc = "  * Neon instrinsic unsafe"]
25617#[inline]
25618#[cfg(target_endian = "little")]
25619#[target_feature(enable = "neon")]
25620#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25621#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
25622#[cfg_attr(
25623    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25624    assert_instr(ld4r)
25625)]
25626#[cfg_attr(
25627    not(target_arch = "arm"),
25628    stable(feature = "neon_intrinsics", since = "1.59.0")
25629)]
25630#[cfg_attr(
25631    target_arch = "arm",
25632    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25633)]
25634pub unsafe fn vld4q_dup_u32(a: *const u32) -> uint32x4x4_t {
25635    transmute(vld4q_dup_s32(transmute(a)))
25636}
25637#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25638#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_u32)"]
25639#[doc = "## Safety"]
25640#[doc = "  * Neon instrinsic unsafe"]
25641#[inline]
25642#[cfg(target_endian = "big")]
25643#[target_feature(enable = "neon")]
25644#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25645#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
25646#[cfg_attr(
25647    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25648    assert_instr(ld4r)
25649)]
25650#[cfg_attr(
25651    not(target_arch = "arm"),
25652    stable(feature = "neon_intrinsics", since = "1.59.0")
25653)]
25654#[cfg_attr(
25655    target_arch = "arm",
25656    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25657)]
25658pub unsafe fn vld4q_dup_u32(a: *const u32) -> uint32x4x4_t {
25659    let mut ret_val: uint32x4x4_t = transmute(vld4q_dup_s32(transmute(a)));
25660    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
25661    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
25662    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [3, 2, 1, 0]) };
25663    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [3, 2, 1, 0]) };
25664    ret_val
25665}
25666#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25667#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_p8)"]
25668#[doc = "## Safety"]
25669#[doc = "  * Neon instrinsic unsafe"]
25670#[inline]
25671#[cfg(target_endian = "little")]
25672#[target_feature(enable = "neon")]
25673#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25674#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
25675#[cfg_attr(
25676    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25677    assert_instr(ld4r)
25678)]
25679#[cfg_attr(
25680    not(target_arch = "arm"),
25681    stable(feature = "neon_intrinsics", since = "1.59.0")
25682)]
25683#[cfg_attr(
25684    target_arch = "arm",
25685    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25686)]
25687pub unsafe fn vld4_dup_p8(a: *const p8) -> poly8x8x4_t {
25688    transmute(vld4_dup_s8(transmute(a)))
25689}
25690#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25691#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_p8)"]
25692#[doc = "## Safety"]
25693#[doc = "  * Neon instrinsic unsafe"]
25694#[inline]
25695#[cfg(target_endian = "big")]
25696#[target_feature(enable = "neon")]
25697#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25698#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
25699#[cfg_attr(
25700    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25701    assert_instr(ld4r)
25702)]
25703#[cfg_attr(
25704    not(target_arch = "arm"),
25705    stable(feature = "neon_intrinsics", since = "1.59.0")
25706)]
25707#[cfg_attr(
25708    target_arch = "arm",
25709    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25710)]
25711pub unsafe fn vld4_dup_p8(a: *const p8) -> poly8x8x4_t {
25712    let mut ret_val: poly8x8x4_t = transmute(vld4_dup_s8(transmute(a)));
25713    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
25714    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
25715    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
25716    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [7, 6, 5, 4, 3, 2, 1, 0]) };
25717    ret_val
25718}
25719#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25720#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_p8)"]
25721#[doc = "## Safety"]
25722#[doc = "  * Neon instrinsic unsafe"]
25723#[inline]
25724#[cfg(target_endian = "little")]
25725#[target_feature(enable = "neon")]
25726#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25727#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
25728#[cfg_attr(
25729    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25730    assert_instr(ld4r)
25731)]
25732#[cfg_attr(
25733    not(target_arch = "arm"),
25734    stable(feature = "neon_intrinsics", since = "1.59.0")
25735)]
25736#[cfg_attr(
25737    target_arch = "arm",
25738    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25739)]
25740pub unsafe fn vld4q_dup_p8(a: *const p8) -> poly8x16x4_t {
25741    transmute(vld4q_dup_s8(transmute(a)))
25742}
25743#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25744#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_p8)"]
25745#[doc = "## Safety"]
25746#[doc = "  * Neon instrinsic unsafe"]
25747#[inline]
25748#[cfg(target_endian = "big")]
25749#[target_feature(enable = "neon")]
25750#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25751#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
25752#[cfg_attr(
25753    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25754    assert_instr(ld4r)
25755)]
25756#[cfg_attr(
25757    not(target_arch = "arm"),
25758    stable(feature = "neon_intrinsics", since = "1.59.0")
25759)]
25760#[cfg_attr(
25761    target_arch = "arm",
25762    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25763)]
25764pub unsafe fn vld4q_dup_p8(a: *const p8) -> poly8x16x4_t {
25765    let mut ret_val: poly8x16x4_t = transmute(vld4q_dup_s8(transmute(a)));
25766    ret_val.0 = unsafe {
25767        simd_shuffle!(
25768            ret_val.0,
25769            ret_val.0,
25770            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
25771        )
25772    };
25773    ret_val.1 = unsafe {
25774        simd_shuffle!(
25775            ret_val.1,
25776            ret_val.1,
25777            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
25778        )
25779    };
25780    ret_val.2 = unsafe {
25781        simd_shuffle!(
25782            ret_val.2,
25783            ret_val.2,
25784            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
25785        )
25786    };
25787    ret_val.3 = unsafe {
25788        simd_shuffle!(
25789            ret_val.3,
25790            ret_val.3,
25791            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
25792        )
25793    };
25794    ret_val
25795}
25796#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25797#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_p16)"]
25798#[doc = "## Safety"]
25799#[doc = "  * Neon instrinsic unsafe"]
25800#[inline]
25801#[cfg(target_endian = "little")]
25802#[target_feature(enable = "neon")]
25803#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25804#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
25805#[cfg_attr(
25806    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25807    assert_instr(ld4r)
25808)]
25809#[cfg_attr(
25810    not(target_arch = "arm"),
25811    stable(feature = "neon_intrinsics", since = "1.59.0")
25812)]
25813#[cfg_attr(
25814    target_arch = "arm",
25815    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25816)]
25817pub unsafe fn vld4_dup_p16(a: *const p16) -> poly16x4x4_t {
25818    transmute(vld4_dup_s16(transmute(a)))
25819}
25820#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25821#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_p16)"]
25822#[doc = "## Safety"]
25823#[doc = "  * Neon instrinsic unsafe"]
25824#[inline]
25825#[cfg(target_endian = "big")]
25826#[target_feature(enable = "neon")]
25827#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25828#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
25829#[cfg_attr(
25830    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25831    assert_instr(ld4r)
25832)]
25833#[cfg_attr(
25834    not(target_arch = "arm"),
25835    stable(feature = "neon_intrinsics", since = "1.59.0")
25836)]
25837#[cfg_attr(
25838    target_arch = "arm",
25839    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25840)]
25841pub unsafe fn vld4_dup_p16(a: *const p16) -> poly16x4x4_t {
25842    let mut ret_val: poly16x4x4_t = transmute(vld4_dup_s16(transmute(a)));
25843    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
25844    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
25845    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [3, 2, 1, 0]) };
25846    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [3, 2, 1, 0]) };
25847    ret_val
25848}
25849#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25850#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_p16)"]
25851#[doc = "## Safety"]
25852#[doc = "  * Neon instrinsic unsafe"]
25853#[inline]
25854#[cfg(target_endian = "little")]
25855#[target_feature(enable = "neon")]
25856#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25857#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
25858#[cfg_attr(
25859    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25860    assert_instr(ld4r)
25861)]
25862#[cfg_attr(
25863    not(target_arch = "arm"),
25864    stable(feature = "neon_intrinsics", since = "1.59.0")
25865)]
25866#[cfg_attr(
25867    target_arch = "arm",
25868    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25869)]
25870pub unsafe fn vld4q_dup_p16(a: *const p16) -> poly16x8x4_t {
25871    transmute(vld4q_dup_s16(transmute(a)))
25872}
25873#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25874#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_p16)"]
25875#[doc = "## Safety"]
25876#[doc = "  * Neon instrinsic unsafe"]
25877#[inline]
25878#[cfg(target_endian = "big")]
25879#[target_feature(enable = "neon")]
25880#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25881#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
25882#[cfg_attr(
25883    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25884    assert_instr(ld4r)
25885)]
25886#[cfg_attr(
25887    not(target_arch = "arm"),
25888    stable(feature = "neon_intrinsics", since = "1.59.0")
25889)]
25890#[cfg_attr(
25891    target_arch = "arm",
25892    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25893)]
25894pub unsafe fn vld4q_dup_p16(a: *const p16) -> poly16x8x4_t {
25895    let mut ret_val: poly16x8x4_t = transmute(vld4q_dup_s16(transmute(a)));
25896    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
25897    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
25898    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
25899    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [7, 6, 5, 4, 3, 2, 1, 0]) };
25900    ret_val
25901}
25902#[doc = "Load single 4-element structure and replicate to all lanes of two registers"]
25903#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_f16)"]
25904#[doc = "## Safety"]
25905#[doc = "  * Neon instrinsic unsafe"]
25906#[inline]
25907#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25908#[cfg(target_arch = "arm")]
25909#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
25910#[target_feature(enable = "neon,fp16")]
25911#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
25912#[cfg(not(target_arch = "arm64ec"))]
25913pub unsafe fn vld4_f16(a: *const f16) -> float16x4x4_t {
25914    unsafe extern "unadjusted" {
25915        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4.v4f16.p0")]
25916        fn _vld4_f16(ptr: *const f16, size: i32) -> float16x4x4_t;
25917    }
25918    _vld4_f16(a as _, 2)
25919}
25920#[doc = "Load single 4-element structure and replicate to all lanes of two registers"]
25921#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_f16)"]
25922#[doc = "## Safety"]
25923#[doc = "  * Neon instrinsic unsafe"]
25924#[inline]
25925#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25926#[cfg(target_arch = "arm")]
25927#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
25928#[target_feature(enable = "neon,fp16")]
25929#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
25930#[cfg(not(target_arch = "arm64ec"))]
25931pub unsafe fn vld4q_f16(a: *const f16) -> float16x8x4_t {
25932    unsafe extern "unadjusted" {
25933        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4.v8f16.p0")]
25934        fn _vld4q_f16(ptr: *const f16, size: i32) -> float16x8x4_t;
25935    }
25936    _vld4q_f16(a as _, 2)
25937}
25938#[doc = "Load single 4-element structure and replicate to all lanes of two registers"]
25939#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_f16)"]
25940#[doc = "## Safety"]
25941#[doc = "  * Neon instrinsic unsafe"]
25942#[inline]
25943#[cfg(not(target_arch = "arm"))]
25944#[cfg_attr(
25945    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25946    assert_instr(ld4)
25947)]
25948#[target_feature(enable = "neon,fp16")]
25949#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
25950#[cfg(not(target_arch = "arm64ec"))]
25951pub unsafe fn vld4_f16(a: *const f16) -> float16x4x4_t {
25952    unsafe extern "unadjusted" {
25953        #[cfg_attr(
25954            any(target_arch = "aarch64", target_arch = "arm64ec"),
25955            link_name = "llvm.aarch64.neon.ld4.v4f16.p0"
25956        )]
25957        fn _vld4_f16(ptr: *const f16) -> float16x4x4_t;
25958    }
25959    _vld4_f16(a as _)
25960}
25961#[doc = "Load single 4-element structure and replicate to all lanes of two registers"]
25962#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_f16)"]
25963#[doc = "## Safety"]
25964#[doc = "  * Neon instrinsic unsafe"]
25965#[inline]
25966#[cfg(not(target_arch = "arm"))]
25967#[cfg_attr(
25968    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25969    assert_instr(ld4)
25970)]
25971#[target_feature(enable = "neon,fp16")]
25972#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
25973#[cfg(not(target_arch = "arm64ec"))]
25974pub unsafe fn vld4q_f16(a: *const f16) -> float16x8x4_t {
25975    unsafe extern "unadjusted" {
25976        #[cfg_attr(
25977            any(target_arch = "aarch64", target_arch = "arm64ec"),
25978            link_name = "llvm.aarch64.neon.ld4.v8f16.p0"
25979        )]
25980        fn _vld4q_f16(ptr: *const f16) -> float16x8x4_t;
25981    }
25982    _vld4q_f16(a as _)
25983}
25984#[doc = "Load multiple 4-element structures to four registers"]
25985#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_f32)"]
25986#[doc = "## Safety"]
25987#[doc = "  * Neon instrinsic unsafe"]
25988#[inline]
25989#[target_feature(enable = "neon")]
25990#[cfg(not(target_arch = "arm"))]
25991#[stable(feature = "neon_intrinsics", since = "1.59.0")]
25992#[cfg_attr(test, assert_instr(ld4))]
25993pub unsafe fn vld4_f32(a: *const f32) -> float32x2x4_t {
25994    unsafe extern "unadjusted" {
25995        #[cfg_attr(
25996            any(target_arch = "aarch64", target_arch = "arm64ec"),
25997            link_name = "llvm.aarch64.neon.ld4.v2f32.p0"
25998        )]
25999        fn _vld4_f32(ptr: *const float32x2_t) -> float32x2x4_t;
26000    }
26001    _vld4_f32(a as _)
26002}
26003#[doc = "Load multiple 4-element structures to four registers"]
26004#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_f32)"]
26005#[doc = "## Safety"]
26006#[doc = "  * Neon instrinsic unsafe"]
26007#[inline]
26008#[target_feature(enable = "neon")]
26009#[cfg(not(target_arch = "arm"))]
26010#[stable(feature = "neon_intrinsics", since = "1.59.0")]
26011#[cfg_attr(test, assert_instr(ld4))]
26012pub unsafe fn vld4q_f32(a: *const f32) -> float32x4x4_t {
26013    unsafe extern "unadjusted" {
26014        #[cfg_attr(
26015            any(target_arch = "aarch64", target_arch = "arm64ec"),
26016            link_name = "llvm.aarch64.neon.ld4.v4f32.p0"
26017        )]
26018        fn _vld4q_f32(ptr: *const float32x4_t) -> float32x4x4_t;
26019    }
26020    _vld4q_f32(a as _)
26021}
26022#[doc = "Load multiple 4-element structures to four registers"]
26023#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_s8)"]
26024#[doc = "## Safety"]
26025#[doc = "  * Neon instrinsic unsafe"]
26026#[inline]
26027#[target_feature(enable = "neon")]
26028#[cfg(not(target_arch = "arm"))]
26029#[stable(feature = "neon_intrinsics", since = "1.59.0")]
26030#[cfg_attr(test, assert_instr(ld4))]
26031pub unsafe fn vld4_s8(a: *const i8) -> int8x8x4_t {
26032    unsafe extern "unadjusted" {
26033        #[cfg_attr(
26034            any(target_arch = "aarch64", target_arch = "arm64ec"),
26035            link_name = "llvm.aarch64.neon.ld4.v8i8.p0"
26036        )]
26037        fn _vld4_s8(ptr: *const int8x8_t) -> int8x8x4_t;
26038    }
26039    _vld4_s8(a as _)
26040}
26041#[doc = "Load multiple 4-element structures to four registers"]
26042#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_s8)"]
26043#[doc = "## Safety"]
26044#[doc = "  * Neon instrinsic unsafe"]
26045#[inline]
26046#[target_feature(enable = "neon")]
26047#[cfg(not(target_arch = "arm"))]
26048#[stable(feature = "neon_intrinsics", since = "1.59.0")]
26049#[cfg_attr(test, assert_instr(ld4))]
26050pub unsafe fn vld4q_s8(a: *const i8) -> int8x16x4_t {
26051    unsafe extern "unadjusted" {
26052        #[cfg_attr(
26053            any(target_arch = "aarch64", target_arch = "arm64ec"),
26054            link_name = "llvm.aarch64.neon.ld4.v16i8.p0"
26055        )]
26056        fn _vld4q_s8(ptr: *const int8x16_t) -> int8x16x4_t;
26057    }
26058    _vld4q_s8(a as _)
26059}
26060#[doc = "Load multiple 4-element structures to four registers"]
26061#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_s16)"]
26062#[doc = "## Safety"]
26063#[doc = "  * Neon instrinsic unsafe"]
26064#[inline]
26065#[target_feature(enable = "neon")]
26066#[cfg(not(target_arch = "arm"))]
26067#[stable(feature = "neon_intrinsics", since = "1.59.0")]
26068#[cfg_attr(test, assert_instr(ld4))]
26069pub unsafe fn vld4_s16(a: *const i16) -> int16x4x4_t {
26070    unsafe extern "unadjusted" {
26071        #[cfg_attr(
26072            any(target_arch = "aarch64", target_arch = "arm64ec"),
26073            link_name = "llvm.aarch64.neon.ld4.v4i16.p0"
26074        )]
26075        fn _vld4_s16(ptr: *const int16x4_t) -> int16x4x4_t;
26076    }
26077    _vld4_s16(a as _)
26078}
26079#[doc = "Load multiple 4-element structures to four registers"]
26080#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_s16)"]
26081#[doc = "## Safety"]
26082#[doc = "  * Neon instrinsic unsafe"]
26083#[inline]
26084#[target_feature(enable = "neon")]
26085#[cfg(not(target_arch = "arm"))]
26086#[stable(feature = "neon_intrinsics", since = "1.59.0")]
26087#[cfg_attr(test, assert_instr(ld4))]
26088pub unsafe fn vld4q_s16(a: *const i16) -> int16x8x4_t {
26089    unsafe extern "unadjusted" {
26090        #[cfg_attr(
26091            any(target_arch = "aarch64", target_arch = "arm64ec"),
26092            link_name = "llvm.aarch64.neon.ld4.v8i16.p0"
26093        )]
26094        fn _vld4q_s16(ptr: *const int16x8_t) -> int16x8x4_t;
26095    }
26096    _vld4q_s16(a as _)
26097}
26098#[doc = "Load multiple 4-element structures to four registers"]
26099#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_s32)"]
26100#[doc = "## Safety"]
26101#[doc = "  * Neon instrinsic unsafe"]
26102#[inline]
26103#[target_feature(enable = "neon")]
26104#[cfg(not(target_arch = "arm"))]
26105#[stable(feature = "neon_intrinsics", since = "1.59.0")]
26106#[cfg_attr(test, assert_instr(ld4))]
26107pub unsafe fn vld4_s32(a: *const i32) -> int32x2x4_t {
26108    unsafe extern "unadjusted" {
26109        #[cfg_attr(
26110            any(target_arch = "aarch64", target_arch = "arm64ec"),
26111            link_name = "llvm.aarch64.neon.ld4.v2i32.p0"
26112        )]
26113        fn _vld4_s32(ptr: *const int32x2_t) -> int32x2x4_t;
26114    }
26115    _vld4_s32(a as _)
26116}
26117#[doc = "Load multiple 4-element structures to four registers"]
26118#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_s32)"]
26119#[doc = "## Safety"]
26120#[doc = "  * Neon instrinsic unsafe"]
26121#[inline]
26122#[target_feature(enable = "neon")]
26123#[cfg(not(target_arch = "arm"))]
26124#[stable(feature = "neon_intrinsics", since = "1.59.0")]
26125#[cfg_attr(test, assert_instr(ld4))]
26126pub unsafe fn vld4q_s32(a: *const i32) -> int32x4x4_t {
26127    unsafe extern "unadjusted" {
26128        #[cfg_attr(
26129            any(target_arch = "aarch64", target_arch = "arm64ec"),
26130            link_name = "llvm.aarch64.neon.ld4.v4i32.p0"
26131        )]
26132        fn _vld4q_s32(ptr: *const int32x4_t) -> int32x4x4_t;
26133    }
26134    _vld4q_s32(a as _)
26135}
26136#[doc = "Load multiple 4-element structures to four registers"]
26137#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_f32)"]
26138#[doc = "## Safety"]
26139#[doc = "  * Neon instrinsic unsafe"]
26140#[inline]
26141#[target_feature(enable = "neon,v7")]
26142#[cfg(target_arch = "arm")]
26143#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
26144#[cfg_attr(test, assert_instr(vld4))]
26145pub unsafe fn vld4_f32(a: *const f32) -> float32x2x4_t {
26146    unsafe extern "unadjusted" {
26147        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4.v2f32.p0")]
26148        fn _vld4_f32(ptr: *const i8, size: i32) -> float32x2x4_t;
26149    }
26150    _vld4_f32(a as *const i8, 4)
26151}
26152#[doc = "Load multiple 4-element structures to four registers"]
26153#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_f32)"]
26154#[doc = "## Safety"]
26155#[doc = "  * Neon instrinsic unsafe"]
26156#[inline]
26157#[target_feature(enable = "neon,v7")]
26158#[cfg(target_arch = "arm")]
26159#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
26160#[cfg_attr(test, assert_instr(vld4))]
26161pub unsafe fn vld4q_f32(a: *const f32) -> float32x4x4_t {
26162    unsafe extern "unadjusted" {
26163        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4.v4f32.p0")]
26164        fn _vld4q_f32(ptr: *const i8, size: i32) -> float32x4x4_t;
26165    }
26166    _vld4q_f32(a as *const i8, 4)
26167}
26168#[doc = "Load multiple 4-element structures to four registers"]
26169#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_s8)"]
26170#[doc = "## Safety"]
26171#[doc = "  * Neon instrinsic unsafe"]
26172#[inline]
26173#[target_feature(enable = "neon,v7")]
26174#[cfg(target_arch = "arm")]
26175#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
26176#[cfg_attr(test, assert_instr(vld4))]
26177pub unsafe fn vld4_s8(a: *const i8) -> int8x8x4_t {
26178    unsafe extern "unadjusted" {
26179        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4.v8i8.p0")]
26180        fn _vld4_s8(ptr: *const i8, size: i32) -> int8x8x4_t;
26181    }
26182    _vld4_s8(a as *const i8, 1)
26183}
26184#[doc = "Load multiple 4-element structures to four registers"]
26185#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_s8)"]
26186#[doc = "## Safety"]
26187#[doc = "  * Neon instrinsic unsafe"]
26188#[inline]
26189#[target_feature(enable = "neon,v7")]
26190#[cfg(target_arch = "arm")]
26191#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
26192#[cfg_attr(test, assert_instr(vld4))]
26193pub unsafe fn vld4q_s8(a: *const i8) -> int8x16x4_t {
26194    unsafe extern "unadjusted" {
26195        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4.v16i8.p0")]
26196        fn _vld4q_s8(ptr: *const i8, size: i32) -> int8x16x4_t;
26197    }
26198    _vld4q_s8(a as *const i8, 1)
26199}
26200#[doc = "Load multiple 4-element structures to four registers"]
26201#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_s16)"]
26202#[doc = "## Safety"]
26203#[doc = "  * Neon instrinsic unsafe"]
26204#[inline]
26205#[target_feature(enable = "neon,v7")]
26206#[cfg(target_arch = "arm")]
26207#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
26208#[cfg_attr(test, assert_instr(vld4))]
26209pub unsafe fn vld4_s16(a: *const i16) -> int16x4x4_t {
26210    unsafe extern "unadjusted" {
26211        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4.v4i16.p0")]
26212        fn _vld4_s16(ptr: *const i8, size: i32) -> int16x4x4_t;
26213    }
26214    _vld4_s16(a as *const i8, 2)
26215}
26216#[doc = "Load multiple 4-element structures to four registers"]
26217#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_s16)"]
26218#[doc = "## Safety"]
26219#[doc = "  * Neon instrinsic unsafe"]
26220#[inline]
26221#[target_feature(enable = "neon,v7")]
26222#[cfg(target_arch = "arm")]
26223#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
26224#[cfg_attr(test, assert_instr(vld4))]
26225pub unsafe fn vld4q_s16(a: *const i16) -> int16x8x4_t {
26226    unsafe extern "unadjusted" {
26227        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4.v8i16.p0")]
26228        fn _vld4q_s16(ptr: *const i8, size: i32) -> int16x8x4_t;
26229    }
26230    _vld4q_s16(a as *const i8, 2)
26231}
26232#[doc = "Load multiple 4-element structures to four registers"]
26233#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_s32)"]
26234#[doc = "## Safety"]
26235#[doc = "  * Neon instrinsic unsafe"]
26236#[inline]
26237#[target_feature(enable = "neon,v7")]
26238#[cfg(target_arch = "arm")]
26239#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
26240#[cfg_attr(test, assert_instr(vld4))]
26241pub unsafe fn vld4_s32(a: *const i32) -> int32x2x4_t {
26242    unsafe extern "unadjusted" {
26243        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4.v2i32.p0")]
26244        fn _vld4_s32(ptr: *const i8, size: i32) -> int32x2x4_t;
26245    }
26246    _vld4_s32(a as *const i8, 4)
26247}
26248#[doc = "Load multiple 4-element structures to four registers"]
26249#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_s32)"]
26250#[doc = "## Safety"]
26251#[doc = "  * Neon instrinsic unsafe"]
26252#[inline]
26253#[target_feature(enable = "neon,v7")]
26254#[cfg(target_arch = "arm")]
26255#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
26256#[cfg_attr(test, assert_instr(vld4))]
26257pub unsafe fn vld4q_s32(a: *const i32) -> int32x4x4_t {
26258    unsafe extern "unadjusted" {
26259        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4.v4i32.p0")]
26260        fn _vld4q_s32(ptr: *const i8, size: i32) -> int32x4x4_t;
26261    }
26262    _vld4q_s32(a as *const i8, 4)
26263}
26264#[doc = "Load multiple 4-element structures to two registers"]
26265#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_f16)"]
26266#[doc = "## Safety"]
26267#[doc = "  * Neon instrinsic unsafe"]
26268#[inline]
26269#[target_feature(enable = "neon,v7")]
26270#[cfg(target_arch = "arm")]
26271#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4, LANE = 0))]
26272#[rustc_legacy_const_generics(2)]
26273#[target_feature(enable = "neon,fp16")]
26274#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
26275#[cfg(not(target_arch = "arm64ec"))]
26276pub unsafe fn vld4_lane_f16<const LANE: i32>(a: *const f16, b: float16x4x4_t) -> float16x4x4_t {
26277    static_assert_uimm_bits!(LANE, 2);
26278    unsafe extern "unadjusted" {
26279        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4lane.v4f16.p0")]
26280        fn _vld4_lane_f16(
26281            ptr: *const f16,
26282            a: float16x4_t,
26283            b: float16x4_t,
26284            c: float16x4_t,
26285            d: float16x4_t,
26286            n: i32,
26287            size: i32,
26288        ) -> float16x4x4_t;
26289    }
26290    _vld4_lane_f16(a as _, b.0, b.1, b.2, b.3, LANE, 2)
26291}
26292#[doc = "Load multiple 4-element structures to two registers"]
26293#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_lane_f16)"]
26294#[doc = "## Safety"]
26295#[doc = "  * Neon instrinsic unsafe"]
26296#[inline]
26297#[target_feature(enable = "neon,v7")]
26298#[cfg(target_arch = "arm")]
26299#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4, LANE = 0))]
26300#[rustc_legacy_const_generics(2)]
26301#[target_feature(enable = "neon,fp16")]
26302#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
26303#[cfg(not(target_arch = "arm64ec"))]
26304pub unsafe fn vld4q_lane_f16<const LANE: i32>(a: *const f16, b: float16x8x4_t) -> float16x8x4_t {
26305    static_assert_uimm_bits!(LANE, 3);
26306    unsafe extern "unadjusted" {
26307        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4lane.v8f16.p0")]
26308        fn _vld4q_lane_f16(
26309            ptr: *const f16,
26310            a: float16x8_t,
26311            b: float16x8_t,
26312            c: float16x8_t,
26313            d: float16x8_t,
26314            n: i32,
26315            size: i32,
26316        ) -> float16x8x4_t;
26317    }
26318    _vld4q_lane_f16(a as _, b.0, b.1, b.2, b.3, LANE, 2)
26319}
26320#[doc = "Load multiple 4-element structures to two registers"]
26321#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_f16)"]
26322#[doc = "## Safety"]
26323#[doc = "  * Neon instrinsic unsafe"]
26324#[inline]
26325#[cfg(not(target_arch = "arm"))]
26326#[cfg_attr(
26327    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26328    assert_instr(ld4, LANE = 0)
26329)]
26330#[rustc_legacy_const_generics(2)]
26331#[target_feature(enable = "neon,fp16")]
26332#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
26333#[cfg(not(target_arch = "arm64ec"))]
26334pub unsafe fn vld4_lane_f16<const LANE: i32>(a: *const f16, b: float16x4x4_t) -> float16x4x4_t {
26335    static_assert_uimm_bits!(LANE, 2);
26336    unsafe extern "unadjusted" {
26337        #[cfg_attr(
26338            any(target_arch = "aarch64", target_arch = "arm64ec"),
26339            link_name = "llvm.aarch64.neon.ld4lane.v4f16.p0"
26340        )]
26341        fn _vld4_lane_f16(
26342            a: float16x4_t,
26343            b: float16x4_t,
26344            c: float16x4_t,
26345            d: float16x4_t,
26346            n: i64,
26347            ptr: *const f16,
26348        ) -> float16x4x4_t;
26349    }
26350    _vld4_lane_f16(b.0, b.1, b.2, b.3, LANE as i64, a as _)
26351}
26352#[doc = "Load multiple 4-element structures to two registers"]
26353#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_lane_f16)"]
26354#[doc = "## Safety"]
26355#[doc = "  * Neon instrinsic unsafe"]
26356#[inline]
26357#[cfg(not(target_arch = "arm"))]
26358#[cfg_attr(
26359    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26360    assert_instr(ld4, LANE = 0)
26361)]
26362#[rustc_legacy_const_generics(2)]
26363#[target_feature(enable = "neon,fp16")]
26364#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
26365#[cfg(not(target_arch = "arm64ec"))]
26366pub unsafe fn vld4q_lane_f16<const LANE: i32>(a: *const f16, b: float16x8x4_t) -> float16x8x4_t {
26367    static_assert_uimm_bits!(LANE, 3);
26368    unsafe extern "unadjusted" {
26369        #[cfg_attr(
26370            any(target_arch = "aarch64", target_arch = "arm64ec"),
26371            link_name = "llvm.aarch64.neon.ld4lane.v8f16.p0"
26372        )]
26373        fn _vld4q_lane_f16(
26374            a: float16x8_t,
26375            b: float16x8_t,
26376            c: float16x8_t,
26377            d: float16x8_t,
26378            n: i64,
26379            ptr: *const f16,
26380        ) -> float16x8x4_t;
26381    }
26382    _vld4q_lane_f16(b.0, b.1, b.2, b.3, LANE as i64, a as _)
26383}
26384#[doc = "Load multiple 4-element structures to four registers"]
26385#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_f32)"]
26386#[doc = "## Safety"]
26387#[doc = "  * Neon instrinsic unsafe"]
26388#[inline]
26389#[target_feature(enable = "neon")]
26390#[cfg(not(target_arch = "arm"))]
26391#[cfg_attr(test, assert_instr(ld4, LANE = 0))]
26392#[rustc_legacy_const_generics(2)]
26393#[stable(feature = "neon_intrinsics", since = "1.59.0")]
26394pub unsafe fn vld4_lane_f32<const LANE: i32>(a: *const f32, b: float32x2x4_t) -> float32x2x4_t {
26395    static_assert_uimm_bits!(LANE, 1);
26396    unsafe extern "unadjusted" {
26397        #[cfg_attr(
26398            any(target_arch = "aarch64", target_arch = "arm64ec"),
26399            link_name = "llvm.aarch64.neon.ld4lane.v2f32.p0"
26400        )]
26401        fn _vld4_lane_f32(
26402            a: float32x2_t,
26403            b: float32x2_t,
26404            c: float32x2_t,
26405            d: float32x2_t,
26406            n: i64,
26407            ptr: *const i8,
26408        ) -> float32x2x4_t;
26409    }
26410    _vld4_lane_f32(b.0, b.1, b.2, b.3, LANE as i64, a as _)
26411}
26412#[doc = "Load multiple 4-element structures to four registers"]
26413#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_lane_f32)"]
26414#[doc = "## Safety"]
26415#[doc = "  * Neon instrinsic unsafe"]
26416#[inline]
26417#[target_feature(enable = "neon")]
26418#[cfg(not(target_arch = "arm"))]
26419#[cfg_attr(test, assert_instr(ld4, LANE = 0))]
26420#[rustc_legacy_const_generics(2)]
26421#[stable(feature = "neon_intrinsics", since = "1.59.0")]
26422pub unsafe fn vld4q_lane_f32<const LANE: i32>(a: *const f32, b: float32x4x4_t) -> float32x4x4_t {
26423    static_assert_uimm_bits!(LANE, 2);
26424    unsafe extern "unadjusted" {
26425        #[cfg_attr(
26426            any(target_arch = "aarch64", target_arch = "arm64ec"),
26427            link_name = "llvm.aarch64.neon.ld4lane.v4f32.p0"
26428        )]
26429        fn _vld4q_lane_f32(
26430            a: float32x4_t,
26431            b: float32x4_t,
26432            c: float32x4_t,
26433            d: float32x4_t,
26434            n: i64,
26435            ptr: *const i8,
26436        ) -> float32x4x4_t;
26437    }
26438    _vld4q_lane_f32(b.0, b.1, b.2, b.3, LANE as i64, a as _)
26439}
26440#[doc = "Load multiple 4-element structures to four registers"]
26441#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_s8)"]
26442#[doc = "## Safety"]
26443#[doc = "  * Neon instrinsic unsafe"]
26444#[inline]
26445#[target_feature(enable = "neon")]
26446#[cfg(not(target_arch = "arm"))]
26447#[cfg_attr(test, assert_instr(ld4, LANE = 0))]
26448#[rustc_legacy_const_generics(2)]
26449#[stable(feature = "neon_intrinsics", since = "1.59.0")]
26450pub unsafe fn vld4_lane_s8<const LANE: i32>(a: *const i8, b: int8x8x4_t) -> int8x8x4_t {
26451    static_assert_uimm_bits!(LANE, 3);
26452    unsafe extern "unadjusted" {
26453        #[cfg_attr(
26454            any(target_arch = "aarch64", target_arch = "arm64ec"),
26455            link_name = "llvm.aarch64.neon.ld4lane.v8i8.p0"
26456        )]
26457        fn _vld4_lane_s8(
26458            a: int8x8_t,
26459            b: int8x8_t,
26460            c: int8x8_t,
26461            d: int8x8_t,
26462            n: i64,
26463            ptr: *const i8,
26464        ) -> int8x8x4_t;
26465    }
26466    _vld4_lane_s8(b.0, b.1, b.2, b.3, LANE as i64, a as _)
26467}
26468#[doc = "Load multiple 4-element structures to four registers"]
26469#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_s16)"]
26470#[doc = "## Safety"]
26471#[doc = "  * Neon instrinsic unsafe"]
26472#[inline]
26473#[target_feature(enable = "neon")]
26474#[cfg(not(target_arch = "arm"))]
26475#[cfg_attr(test, assert_instr(ld4, LANE = 0))]
26476#[rustc_legacy_const_generics(2)]
26477#[stable(feature = "neon_intrinsics", since = "1.59.0")]
26478pub unsafe fn vld4_lane_s16<const LANE: i32>(a: *const i16, b: int16x4x4_t) -> int16x4x4_t {
26479    static_assert_uimm_bits!(LANE, 2);
26480    unsafe extern "unadjusted" {
26481        #[cfg_attr(
26482            any(target_arch = "aarch64", target_arch = "arm64ec"),
26483            link_name = "llvm.aarch64.neon.ld4lane.v4i16.p0"
26484        )]
26485        fn _vld4_lane_s16(
26486            a: int16x4_t,
26487            b: int16x4_t,
26488            c: int16x4_t,
26489            d: int16x4_t,
26490            n: i64,
26491            ptr: *const i8,
26492        ) -> int16x4x4_t;
26493    }
26494    _vld4_lane_s16(b.0, b.1, b.2, b.3, LANE as i64, a as _)
26495}
26496#[doc = "Load multiple 4-element structures to four registers"]
26497#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_lane_s16)"]
26498#[doc = "## Safety"]
26499#[doc = "  * Neon instrinsic unsafe"]
26500#[inline]
26501#[target_feature(enable = "neon")]
26502#[cfg(not(target_arch = "arm"))]
26503#[cfg_attr(test, assert_instr(ld4, LANE = 0))]
26504#[rustc_legacy_const_generics(2)]
26505#[stable(feature = "neon_intrinsics", since = "1.59.0")]
26506pub unsafe fn vld4q_lane_s16<const LANE: i32>(a: *const i16, b: int16x8x4_t) -> int16x8x4_t {
26507    static_assert_uimm_bits!(LANE, 3);
26508    unsafe extern "unadjusted" {
26509        #[cfg_attr(
26510            any(target_arch = "aarch64", target_arch = "arm64ec"),
26511            link_name = "llvm.aarch64.neon.ld4lane.v8i16.p0"
26512        )]
26513        fn _vld4q_lane_s16(
26514            a: int16x8_t,
26515            b: int16x8_t,
26516            c: int16x8_t,
26517            d: int16x8_t,
26518            n: i64,
26519            ptr: *const i8,
26520        ) -> int16x8x4_t;
26521    }
26522    _vld4q_lane_s16(b.0, b.1, b.2, b.3, LANE as i64, a as _)
26523}
26524#[doc = "Load multiple 4-element structures to four registers"]
26525#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_s32)"]
26526#[doc = "## Safety"]
26527#[doc = "  * Neon instrinsic unsafe"]
26528#[inline]
26529#[target_feature(enable = "neon")]
26530#[cfg(not(target_arch = "arm"))]
26531#[cfg_attr(test, assert_instr(ld4, LANE = 0))]
26532#[rustc_legacy_const_generics(2)]
26533#[stable(feature = "neon_intrinsics", since = "1.59.0")]
26534pub unsafe fn vld4_lane_s32<const LANE: i32>(a: *const i32, b: int32x2x4_t) -> int32x2x4_t {
26535    static_assert_uimm_bits!(LANE, 1);
26536    unsafe extern "unadjusted" {
26537        #[cfg_attr(
26538            any(target_arch = "aarch64", target_arch = "arm64ec"),
26539            link_name = "llvm.aarch64.neon.ld4lane.v2i32.p0"
26540        )]
26541        fn _vld4_lane_s32(
26542            a: int32x2_t,
26543            b: int32x2_t,
26544            c: int32x2_t,
26545            d: int32x2_t,
26546            n: i64,
26547            ptr: *const i8,
26548        ) -> int32x2x4_t;
26549    }
26550    _vld4_lane_s32(b.0, b.1, b.2, b.3, LANE as i64, a as _)
26551}
26552#[doc = "Load multiple 4-element structures to four registers"]
26553#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_lane_s32)"]
26554#[doc = "## Safety"]
26555#[doc = "  * Neon instrinsic unsafe"]
26556#[inline]
26557#[target_feature(enable = "neon")]
26558#[cfg(not(target_arch = "arm"))]
26559#[cfg_attr(test, assert_instr(ld4, LANE = 0))]
26560#[rustc_legacy_const_generics(2)]
26561#[stable(feature = "neon_intrinsics", since = "1.59.0")]
26562pub unsafe fn vld4q_lane_s32<const LANE: i32>(a: *const i32, b: int32x4x4_t) -> int32x4x4_t {
26563    static_assert_uimm_bits!(LANE, 2);
26564    unsafe extern "unadjusted" {
26565        #[cfg_attr(
26566            any(target_arch = "aarch64", target_arch = "arm64ec"),
26567            link_name = "llvm.aarch64.neon.ld4lane.v4i32.p0"
26568        )]
26569        fn _vld4q_lane_s32(
26570            a: int32x4_t,
26571            b: int32x4_t,
26572            c: int32x4_t,
26573            d: int32x4_t,
26574            n: i64,
26575            ptr: *const i8,
26576        ) -> int32x4x4_t;
26577    }
26578    _vld4q_lane_s32(b.0, b.1, b.2, b.3, LANE as i64, a as _)
26579}
26580#[doc = "Load multiple 4-element structures to four registers"]
26581#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_f32)"]
26582#[doc = "## Safety"]
26583#[doc = "  * Neon instrinsic unsafe"]
26584#[inline]
26585#[target_feature(enable = "neon,v7")]
26586#[cfg(target_arch = "arm")]
26587#[cfg_attr(test, assert_instr(vld4, LANE = 0))]
26588#[rustc_legacy_const_generics(2)]
26589#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
26590pub unsafe fn vld4_lane_f32<const LANE: i32>(a: *const f32, b: float32x2x4_t) -> float32x2x4_t {
26591    static_assert_uimm_bits!(LANE, 1);
26592    unsafe extern "unadjusted" {
26593        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4lane.v2f32.p0")]
26594        fn _vld4_lane_f32(
26595            ptr: *const i8,
26596            a: float32x2_t,
26597            b: float32x2_t,
26598            c: float32x2_t,
26599            d: float32x2_t,
26600            n: i32,
26601            size: i32,
26602        ) -> float32x2x4_t;
26603    }
26604    _vld4_lane_f32(a as _, b.0, b.1, b.2, b.3, LANE, 4)
26605}
26606#[doc = "Load multiple 4-element structures to four registers"]
26607#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_lane_f32)"]
26608#[doc = "## Safety"]
26609#[doc = "  * Neon instrinsic unsafe"]
26610#[inline]
26611#[target_feature(enable = "neon,v7")]
26612#[cfg(target_arch = "arm")]
26613#[cfg_attr(test, assert_instr(vld4, LANE = 0))]
26614#[rustc_legacy_const_generics(2)]
26615#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
26616pub unsafe fn vld4q_lane_f32<const LANE: i32>(a: *const f32, b: float32x4x4_t) -> float32x4x4_t {
26617    static_assert_uimm_bits!(LANE, 2);
26618    unsafe extern "unadjusted" {
26619        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4lane.v4f32.p0")]
26620        fn _vld4q_lane_f32(
26621            ptr: *const i8,
26622            a: float32x4_t,
26623            b: float32x4_t,
26624            c: float32x4_t,
26625            d: float32x4_t,
26626            n: i32,
26627            size: i32,
26628        ) -> float32x4x4_t;
26629    }
26630    _vld4q_lane_f32(a as _, b.0, b.1, b.2, b.3, LANE, 4)
26631}
26632#[doc = "Load multiple 4-element structures to four registers"]
26633#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_s8)"]
26634#[doc = "## Safety"]
26635#[doc = "  * Neon instrinsic unsafe"]
26636#[inline]
26637#[target_feature(enable = "neon,v7")]
26638#[cfg(target_arch = "arm")]
26639#[cfg_attr(test, assert_instr(vld4, LANE = 0))]
26640#[rustc_legacy_const_generics(2)]
26641#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
26642pub unsafe fn vld4_lane_s8<const LANE: i32>(a: *const i8, b: int8x8x4_t) -> int8x8x4_t {
26643    static_assert_uimm_bits!(LANE, 3);
26644    unsafe extern "unadjusted" {
26645        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4lane.v8i8.p0")]
26646        fn _vld4_lane_s8(
26647            ptr: *const i8,
26648            a: int8x8_t,
26649            b: int8x8_t,
26650            c: int8x8_t,
26651            d: int8x8_t,
26652            n: i32,
26653            size: i32,
26654        ) -> int8x8x4_t;
26655    }
26656    _vld4_lane_s8(a as _, b.0, b.1, b.2, b.3, LANE, 1)
26657}
26658#[doc = "Load multiple 4-element structures to four registers"]
26659#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_s16)"]
26660#[doc = "## Safety"]
26661#[doc = "  * Neon instrinsic unsafe"]
26662#[inline]
26663#[target_feature(enable = "neon,v7")]
26664#[cfg(target_arch = "arm")]
26665#[cfg_attr(test, assert_instr(vld4, LANE = 0))]
26666#[rustc_legacy_const_generics(2)]
26667#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
26668pub unsafe fn vld4_lane_s16<const LANE: i32>(a: *const i16, b: int16x4x4_t) -> int16x4x4_t {
26669    static_assert_uimm_bits!(LANE, 2);
26670    unsafe extern "unadjusted" {
26671        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4lane.v4i16.p0")]
26672        fn _vld4_lane_s16(
26673            ptr: *const i8,
26674            a: int16x4_t,
26675            b: int16x4_t,
26676            c: int16x4_t,
26677            d: int16x4_t,
26678            n: i32,
26679            size: i32,
26680        ) -> int16x4x4_t;
26681    }
26682    _vld4_lane_s16(a as _, b.0, b.1, b.2, b.3, LANE, 2)
26683}
26684#[doc = "Load multiple 4-element structures to four registers"]
26685#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_lane_s16)"]
26686#[doc = "## Safety"]
26687#[doc = "  * Neon instrinsic unsafe"]
26688#[inline]
26689#[target_feature(enable = "neon,v7")]
26690#[cfg(target_arch = "arm")]
26691#[cfg_attr(test, assert_instr(vld4, LANE = 0))]
26692#[rustc_legacy_const_generics(2)]
26693#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
26694pub unsafe fn vld4q_lane_s16<const LANE: i32>(a: *const i16, b: int16x8x4_t) -> int16x8x4_t {
26695    static_assert_uimm_bits!(LANE, 3);
26696    unsafe extern "unadjusted" {
26697        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4lane.v8i16.p0")]
26698        fn _vld4q_lane_s16(
26699            ptr: *const i8,
26700            a: int16x8_t,
26701            b: int16x8_t,
26702            c: int16x8_t,
26703            d: int16x8_t,
26704            n: i32,
26705            size: i32,
26706        ) -> int16x8x4_t;
26707    }
26708    _vld4q_lane_s16(a as _, b.0, b.1, b.2, b.3, LANE, 2)
26709}
26710#[doc = "Load multiple 4-element structures to four registers"]
26711#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_s32)"]
26712#[doc = "## Safety"]
26713#[doc = "  * Neon instrinsic unsafe"]
26714#[inline]
26715#[target_feature(enable = "neon,v7")]
26716#[cfg(target_arch = "arm")]
26717#[cfg_attr(test, assert_instr(vld4, LANE = 0))]
26718#[rustc_legacy_const_generics(2)]
26719#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
26720pub unsafe fn vld4_lane_s32<const LANE: i32>(a: *const i32, b: int32x2x4_t) -> int32x2x4_t {
26721    static_assert_uimm_bits!(LANE, 1);
26722    unsafe extern "unadjusted" {
26723        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4lane.v2i32.p0")]
26724        fn _vld4_lane_s32(
26725            ptr: *const i8,
26726            a: int32x2_t,
26727            b: int32x2_t,
26728            c: int32x2_t,
26729            d: int32x2_t,
26730            n: i32,
26731            size: i32,
26732        ) -> int32x2x4_t;
26733    }
26734    _vld4_lane_s32(a as _, b.0, b.1, b.2, b.3, LANE, 4)
26735}
26736#[doc = "Load multiple 4-element structures to four registers"]
26737#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_lane_s32)"]
26738#[doc = "## Safety"]
26739#[doc = "  * Neon instrinsic unsafe"]
26740#[inline]
26741#[target_feature(enable = "neon,v7")]
26742#[cfg(target_arch = "arm")]
26743#[cfg_attr(test, assert_instr(vld4, LANE = 0))]
26744#[rustc_legacy_const_generics(2)]
26745#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
26746pub unsafe fn vld4q_lane_s32<const LANE: i32>(a: *const i32, b: int32x4x4_t) -> int32x4x4_t {
26747    static_assert_uimm_bits!(LANE, 2);
26748    unsafe extern "unadjusted" {
26749        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4lane.v4i32.p0")]
26750        fn _vld4q_lane_s32(
26751            ptr: *const i8,
26752            a: int32x4_t,
26753            b: int32x4_t,
26754            c: int32x4_t,
26755            d: int32x4_t,
26756            n: i32,
26757            size: i32,
26758        ) -> int32x4x4_t;
26759    }
26760    _vld4q_lane_s32(a as _, b.0, b.1, b.2, b.3, LANE, 4)
26761}
26762#[doc = "Load multiple 4-element structures to four registers"]
26763#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_u8)"]
26764#[doc = "## Safety"]
26765#[doc = "  * Neon instrinsic unsafe"]
26766#[inline]
26767#[target_feature(enable = "neon")]
26768#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26769#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4, LANE = 0))]
26770#[cfg_attr(
26771    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26772    assert_instr(ld4, LANE = 0)
26773)]
26774#[rustc_legacy_const_generics(2)]
26775#[cfg_attr(
26776    not(target_arch = "arm"),
26777    stable(feature = "neon_intrinsics", since = "1.59.0")
26778)]
26779#[cfg_attr(
26780    target_arch = "arm",
26781    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26782)]
26783pub unsafe fn vld4_lane_u8<const LANE: i32>(a: *const u8, b: uint8x8x4_t) -> uint8x8x4_t {
26784    static_assert_uimm_bits!(LANE, 3);
26785    transmute(vld4_lane_s8::<LANE>(transmute(a), transmute(b)))
26786}
26787#[doc = "Load multiple 4-element structures to four registers"]
26788#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_u16)"]
26789#[doc = "## Safety"]
26790#[doc = "  * Neon instrinsic unsafe"]
26791#[inline]
26792#[target_feature(enable = "neon")]
26793#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26794#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4, LANE = 0))]
26795#[cfg_attr(
26796    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26797    assert_instr(ld4, LANE = 0)
26798)]
26799#[rustc_legacy_const_generics(2)]
26800#[cfg_attr(
26801    not(target_arch = "arm"),
26802    stable(feature = "neon_intrinsics", since = "1.59.0")
26803)]
26804#[cfg_attr(
26805    target_arch = "arm",
26806    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26807)]
26808pub unsafe fn vld4_lane_u16<const LANE: i32>(a: *const u16, b: uint16x4x4_t) -> uint16x4x4_t {
26809    static_assert_uimm_bits!(LANE, 2);
26810    transmute(vld4_lane_s16::<LANE>(transmute(a), transmute(b)))
26811}
26812#[doc = "Load multiple 4-element structures to four registers"]
26813#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_lane_u16)"]
26814#[doc = "## Safety"]
26815#[doc = "  * Neon instrinsic unsafe"]
26816#[inline]
26817#[target_feature(enable = "neon")]
26818#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26819#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4, LANE = 0))]
26820#[cfg_attr(
26821    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26822    assert_instr(ld4, LANE = 0)
26823)]
26824#[rustc_legacy_const_generics(2)]
26825#[cfg_attr(
26826    not(target_arch = "arm"),
26827    stable(feature = "neon_intrinsics", since = "1.59.0")
26828)]
26829#[cfg_attr(
26830    target_arch = "arm",
26831    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26832)]
26833pub unsafe fn vld4q_lane_u16<const LANE: i32>(a: *const u16, b: uint16x8x4_t) -> uint16x8x4_t {
26834    static_assert_uimm_bits!(LANE, 3);
26835    transmute(vld4q_lane_s16::<LANE>(transmute(a), transmute(b)))
26836}
26837#[doc = "Load multiple 4-element structures to four registers"]
26838#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_u32)"]
26839#[doc = "## Safety"]
26840#[doc = "  * Neon instrinsic unsafe"]
26841#[inline]
26842#[target_feature(enable = "neon")]
26843#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26844#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4, LANE = 0))]
26845#[cfg_attr(
26846    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26847    assert_instr(ld4, LANE = 0)
26848)]
26849#[rustc_legacy_const_generics(2)]
26850#[cfg_attr(
26851    not(target_arch = "arm"),
26852    stable(feature = "neon_intrinsics", since = "1.59.0")
26853)]
26854#[cfg_attr(
26855    target_arch = "arm",
26856    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26857)]
26858pub unsafe fn vld4_lane_u32<const LANE: i32>(a: *const u32, b: uint32x2x4_t) -> uint32x2x4_t {
26859    static_assert_uimm_bits!(LANE, 1);
26860    transmute(vld4_lane_s32::<LANE>(transmute(a), transmute(b)))
26861}
26862#[doc = "Load multiple 4-element structures to four registers"]
26863#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_lane_u32)"]
26864#[doc = "## Safety"]
26865#[doc = "  * Neon instrinsic unsafe"]
26866#[inline]
26867#[target_feature(enable = "neon")]
26868#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26869#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4, LANE = 0))]
26870#[cfg_attr(
26871    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26872    assert_instr(ld4, LANE = 0)
26873)]
26874#[rustc_legacy_const_generics(2)]
26875#[cfg_attr(
26876    not(target_arch = "arm"),
26877    stable(feature = "neon_intrinsics", since = "1.59.0")
26878)]
26879#[cfg_attr(
26880    target_arch = "arm",
26881    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26882)]
26883pub unsafe fn vld4q_lane_u32<const LANE: i32>(a: *const u32, b: uint32x4x4_t) -> uint32x4x4_t {
26884    static_assert_uimm_bits!(LANE, 2);
26885    transmute(vld4q_lane_s32::<LANE>(transmute(a), transmute(b)))
26886}
26887#[doc = "Load multiple 4-element structures to four registers"]
26888#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_p8)"]
26889#[doc = "## Safety"]
26890#[doc = "  * Neon instrinsic unsafe"]
26891#[inline]
26892#[target_feature(enable = "neon")]
26893#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26894#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4, LANE = 0))]
26895#[cfg_attr(
26896    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26897    assert_instr(ld4, LANE = 0)
26898)]
26899#[rustc_legacy_const_generics(2)]
26900#[cfg_attr(
26901    not(target_arch = "arm"),
26902    stable(feature = "neon_intrinsics", since = "1.59.0")
26903)]
26904#[cfg_attr(
26905    target_arch = "arm",
26906    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26907)]
26908pub unsafe fn vld4_lane_p8<const LANE: i32>(a: *const p8, b: poly8x8x4_t) -> poly8x8x4_t {
26909    static_assert_uimm_bits!(LANE, 3);
26910    transmute(vld4_lane_s8::<LANE>(transmute(a), transmute(b)))
26911}
26912#[doc = "Load multiple 4-element structures to four registers"]
26913#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_p16)"]
26914#[doc = "## Safety"]
26915#[doc = "  * Neon instrinsic unsafe"]
26916#[inline]
26917#[target_feature(enable = "neon")]
26918#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26919#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4, LANE = 0))]
26920#[cfg_attr(
26921    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26922    assert_instr(ld4, LANE = 0)
26923)]
26924#[rustc_legacy_const_generics(2)]
26925#[cfg_attr(
26926    not(target_arch = "arm"),
26927    stable(feature = "neon_intrinsics", since = "1.59.0")
26928)]
26929#[cfg_attr(
26930    target_arch = "arm",
26931    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26932)]
26933pub unsafe fn vld4_lane_p16<const LANE: i32>(a: *const p16, b: poly16x4x4_t) -> poly16x4x4_t {
26934    static_assert_uimm_bits!(LANE, 2);
26935    transmute(vld4_lane_s16::<LANE>(transmute(a), transmute(b)))
26936}
26937#[doc = "Load multiple 4-element structures to four registers"]
26938#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_lane_p16)"]
26939#[doc = "## Safety"]
26940#[doc = "  * Neon instrinsic unsafe"]
26941#[inline]
26942#[target_feature(enable = "neon")]
26943#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26944#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4, LANE = 0))]
26945#[cfg_attr(
26946    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26947    assert_instr(ld4, LANE = 0)
26948)]
26949#[rustc_legacy_const_generics(2)]
26950#[cfg_attr(
26951    not(target_arch = "arm"),
26952    stable(feature = "neon_intrinsics", since = "1.59.0")
26953)]
26954#[cfg_attr(
26955    target_arch = "arm",
26956    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26957)]
26958pub unsafe fn vld4q_lane_p16<const LANE: i32>(a: *const p16, b: poly16x8x4_t) -> poly16x8x4_t {
26959    static_assert_uimm_bits!(LANE, 3);
26960    transmute(vld4q_lane_s16::<LANE>(transmute(a), transmute(b)))
26961}
26962#[doc = "Load multiple 4-element structures to four registers"]
26963#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_p64)"]
26964#[doc = "## Safety"]
26965#[doc = "  * Neon instrinsic unsafe"]
26966#[inline]
26967#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
26968#[target_feature(enable = "neon,aes")]
26969#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26970#[cfg_attr(
26971    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26972    assert_instr(nop)
26973)]
26974#[cfg_attr(
26975    not(target_arch = "arm"),
26976    stable(feature = "neon_intrinsics", since = "1.59.0")
26977)]
26978#[cfg_attr(
26979    target_arch = "arm",
26980    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26981)]
26982pub unsafe fn vld4_p64(a: *const p64) -> poly64x1x4_t {
26983    transmute(vld4_s64(transmute(a)))
26984}
26985#[doc = "Load multiple 4-element structures to four registers"]
26986#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_s64)"]
26987#[doc = "## Safety"]
26988#[doc = "  * Neon instrinsic unsafe"]
26989#[inline]
26990#[target_feature(enable = "neon")]
26991#[cfg(not(target_arch = "arm"))]
26992#[stable(feature = "neon_intrinsics", since = "1.59.0")]
26993#[cfg_attr(test, assert_instr(nop))]
26994pub unsafe fn vld4_s64(a: *const i64) -> int64x1x4_t {
26995    unsafe extern "unadjusted" {
26996        #[cfg_attr(
26997            any(target_arch = "aarch64", target_arch = "arm64ec"),
26998            link_name = "llvm.aarch64.neon.ld4.v1i64.p0"
26999        )]
27000        fn _vld4_s64(ptr: *const int64x1_t) -> int64x1x4_t;
27001    }
27002    _vld4_s64(a as _)
27003}
27004#[doc = "Load multiple 4-element structures to four registers"]
27005#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_s64)"]
27006#[doc = "## Safety"]
27007#[doc = "  * Neon instrinsic unsafe"]
27008#[inline]
27009#[target_feature(enable = "neon,v7")]
27010#[cfg(target_arch = "arm")]
27011#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
27012#[cfg_attr(test, assert_instr(nop))]
27013pub unsafe fn vld4_s64(a: *const i64) -> int64x1x4_t {
27014    unsafe extern "unadjusted" {
27015        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4.v1i64.p0")]
27016        fn _vld4_s64(ptr: *const i8, size: i32) -> int64x1x4_t;
27017    }
27018    _vld4_s64(a as *const i8, 8)
27019}
27020#[doc = "Load multiple 4-element structures to four registers"]
27021#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_u64)"]
27022#[doc = "## Safety"]
27023#[doc = "  * Neon instrinsic unsafe"]
27024#[inline]
27025#[target_feature(enable = "neon")]
27026#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27027#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
27028#[cfg_attr(
27029    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27030    assert_instr(nop)
27031)]
27032#[cfg_attr(
27033    not(target_arch = "arm"),
27034    stable(feature = "neon_intrinsics", since = "1.59.0")
27035)]
27036#[cfg_attr(
27037    target_arch = "arm",
27038    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27039)]
27040pub unsafe fn vld4_u64(a: *const u64) -> uint64x1x4_t {
27041    transmute(vld4_s64(transmute(a)))
27042}
27043#[doc = "Load multiple 4-element structures to four registers"]
27044#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_u8)"]
27045#[doc = "## Safety"]
27046#[doc = "  * Neon instrinsic unsafe"]
27047#[inline]
27048#[cfg(target_endian = "little")]
27049#[target_feature(enable = "neon")]
27050#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27051#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
27052#[cfg_attr(
27053    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27054    assert_instr(ld4)
27055)]
27056#[cfg_attr(
27057    not(target_arch = "arm"),
27058    stable(feature = "neon_intrinsics", since = "1.59.0")
27059)]
27060#[cfg_attr(
27061    target_arch = "arm",
27062    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27063)]
27064pub unsafe fn vld4_u8(a: *const u8) -> uint8x8x4_t {
27065    transmute(vld4_s8(transmute(a)))
27066}
27067#[doc = "Load multiple 4-element structures to four registers"]
27068#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_u8)"]
27069#[doc = "## Safety"]
27070#[doc = "  * Neon instrinsic unsafe"]
27071#[inline]
27072#[cfg(target_endian = "big")]
27073#[target_feature(enable = "neon")]
27074#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27075#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
27076#[cfg_attr(
27077    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27078    assert_instr(ld4)
27079)]
27080#[cfg_attr(
27081    not(target_arch = "arm"),
27082    stable(feature = "neon_intrinsics", since = "1.59.0")
27083)]
27084#[cfg_attr(
27085    target_arch = "arm",
27086    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27087)]
27088pub unsafe fn vld4_u8(a: *const u8) -> uint8x8x4_t {
27089    let mut ret_val: uint8x8x4_t = transmute(vld4_s8(transmute(a)));
27090    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
27091    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
27092    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
27093    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [7, 6, 5, 4, 3, 2, 1, 0]) };
27094    ret_val
27095}
27096#[doc = "Load multiple 4-element structures to four registers"]
27097#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_u8)"]
27098#[doc = "## Safety"]
27099#[doc = "  * Neon instrinsic unsafe"]
27100#[inline]
27101#[cfg(target_endian = "little")]
27102#[target_feature(enable = "neon")]
27103#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27104#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
27105#[cfg_attr(
27106    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27107    assert_instr(ld4)
27108)]
27109#[cfg_attr(
27110    not(target_arch = "arm"),
27111    stable(feature = "neon_intrinsics", since = "1.59.0")
27112)]
27113#[cfg_attr(
27114    target_arch = "arm",
27115    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27116)]
27117pub unsafe fn vld4q_u8(a: *const u8) -> uint8x16x4_t {
27118    transmute(vld4q_s8(transmute(a)))
27119}
27120#[doc = "Load multiple 4-element structures to four registers"]
27121#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_u8)"]
27122#[doc = "## Safety"]
27123#[doc = "  * Neon instrinsic unsafe"]
27124#[inline]
27125#[cfg(target_endian = "big")]
27126#[target_feature(enable = "neon")]
27127#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27128#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
27129#[cfg_attr(
27130    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27131    assert_instr(ld4)
27132)]
27133#[cfg_attr(
27134    not(target_arch = "arm"),
27135    stable(feature = "neon_intrinsics", since = "1.59.0")
27136)]
27137#[cfg_attr(
27138    target_arch = "arm",
27139    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27140)]
27141pub unsafe fn vld4q_u8(a: *const u8) -> uint8x16x4_t {
27142    let mut ret_val: uint8x16x4_t = transmute(vld4q_s8(transmute(a)));
27143    ret_val.0 = unsafe {
27144        simd_shuffle!(
27145            ret_val.0,
27146            ret_val.0,
27147            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
27148        )
27149    };
27150    ret_val.1 = unsafe {
27151        simd_shuffle!(
27152            ret_val.1,
27153            ret_val.1,
27154            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
27155        )
27156    };
27157    ret_val.2 = unsafe {
27158        simd_shuffle!(
27159            ret_val.2,
27160            ret_val.2,
27161            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
27162        )
27163    };
27164    ret_val.3 = unsafe {
27165        simd_shuffle!(
27166            ret_val.3,
27167            ret_val.3,
27168            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
27169        )
27170    };
27171    ret_val
27172}
27173#[doc = "Load multiple 4-element structures to four registers"]
27174#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_u16)"]
27175#[doc = "## Safety"]
27176#[doc = "  * Neon instrinsic unsafe"]
27177#[inline]
27178#[cfg(target_endian = "little")]
27179#[target_feature(enable = "neon")]
27180#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27181#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
27182#[cfg_attr(
27183    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27184    assert_instr(ld4)
27185)]
27186#[cfg_attr(
27187    not(target_arch = "arm"),
27188    stable(feature = "neon_intrinsics", since = "1.59.0")
27189)]
27190#[cfg_attr(
27191    target_arch = "arm",
27192    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27193)]
27194pub unsafe fn vld4_u16(a: *const u16) -> uint16x4x4_t {
27195    transmute(vld4_s16(transmute(a)))
27196}
27197#[doc = "Load multiple 4-element structures to four registers"]
27198#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_u16)"]
27199#[doc = "## Safety"]
27200#[doc = "  * Neon instrinsic unsafe"]
27201#[inline]
27202#[cfg(target_endian = "big")]
27203#[target_feature(enable = "neon")]
27204#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27205#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
27206#[cfg_attr(
27207    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27208    assert_instr(ld4)
27209)]
27210#[cfg_attr(
27211    not(target_arch = "arm"),
27212    stable(feature = "neon_intrinsics", since = "1.59.0")
27213)]
27214#[cfg_attr(
27215    target_arch = "arm",
27216    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27217)]
27218pub unsafe fn vld4_u16(a: *const u16) -> uint16x4x4_t {
27219    let mut ret_val: uint16x4x4_t = transmute(vld4_s16(transmute(a)));
27220    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
27221    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
27222    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [3, 2, 1, 0]) };
27223    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [3, 2, 1, 0]) };
27224    ret_val
27225}
27226#[doc = "Load multiple 4-element structures to four registers"]
27227#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_u16)"]
27228#[doc = "## Safety"]
27229#[doc = "  * Neon instrinsic unsafe"]
27230#[inline]
27231#[cfg(target_endian = "little")]
27232#[target_feature(enable = "neon")]
27233#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27234#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
27235#[cfg_attr(
27236    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27237    assert_instr(ld4)
27238)]
27239#[cfg_attr(
27240    not(target_arch = "arm"),
27241    stable(feature = "neon_intrinsics", since = "1.59.0")
27242)]
27243#[cfg_attr(
27244    target_arch = "arm",
27245    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27246)]
27247pub unsafe fn vld4q_u16(a: *const u16) -> uint16x8x4_t {
27248    transmute(vld4q_s16(transmute(a)))
27249}
27250#[doc = "Load multiple 4-element structures to four registers"]
27251#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_u16)"]
27252#[doc = "## Safety"]
27253#[doc = "  * Neon instrinsic unsafe"]
27254#[inline]
27255#[cfg(target_endian = "big")]
27256#[target_feature(enable = "neon")]
27257#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27258#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
27259#[cfg_attr(
27260    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27261    assert_instr(ld4)
27262)]
27263#[cfg_attr(
27264    not(target_arch = "arm"),
27265    stable(feature = "neon_intrinsics", since = "1.59.0")
27266)]
27267#[cfg_attr(
27268    target_arch = "arm",
27269    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27270)]
27271pub unsafe fn vld4q_u16(a: *const u16) -> uint16x8x4_t {
27272    let mut ret_val: uint16x8x4_t = transmute(vld4q_s16(transmute(a)));
27273    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
27274    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
27275    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
27276    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [7, 6, 5, 4, 3, 2, 1, 0]) };
27277    ret_val
27278}
27279#[doc = "Load multiple 4-element structures to four registers"]
27280#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_u32)"]
27281#[doc = "## Safety"]
27282#[doc = "  * Neon instrinsic unsafe"]
27283#[inline]
27284#[cfg(target_endian = "little")]
27285#[target_feature(enable = "neon")]
27286#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27287#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
27288#[cfg_attr(
27289    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27290    assert_instr(ld4)
27291)]
27292#[cfg_attr(
27293    not(target_arch = "arm"),
27294    stable(feature = "neon_intrinsics", since = "1.59.0")
27295)]
27296#[cfg_attr(
27297    target_arch = "arm",
27298    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27299)]
27300pub unsafe fn vld4_u32(a: *const u32) -> uint32x2x4_t {
27301    transmute(vld4_s32(transmute(a)))
27302}
27303#[doc = "Load multiple 4-element structures to four registers"]
27304#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_u32)"]
27305#[doc = "## Safety"]
27306#[doc = "  * Neon instrinsic unsafe"]
27307#[inline]
27308#[cfg(target_endian = "big")]
27309#[target_feature(enable = "neon")]
27310#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27311#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
27312#[cfg_attr(
27313    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27314    assert_instr(ld4)
27315)]
27316#[cfg_attr(
27317    not(target_arch = "arm"),
27318    stable(feature = "neon_intrinsics", since = "1.59.0")
27319)]
27320#[cfg_attr(
27321    target_arch = "arm",
27322    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27323)]
27324pub unsafe fn vld4_u32(a: *const u32) -> uint32x2x4_t {
27325    let mut ret_val: uint32x2x4_t = transmute(vld4_s32(transmute(a)));
27326    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [1, 0]) };
27327    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [1, 0]) };
27328    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [1, 0]) };
27329    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [1, 0]) };
27330    ret_val
27331}
27332#[doc = "Load multiple 4-element structures to four registers"]
27333#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_u32)"]
27334#[doc = "## Safety"]
27335#[doc = "  * Neon instrinsic unsafe"]
27336#[inline]
27337#[cfg(target_endian = "little")]
27338#[target_feature(enable = "neon")]
27339#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27340#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
27341#[cfg_attr(
27342    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27343    assert_instr(ld4)
27344)]
27345#[cfg_attr(
27346    not(target_arch = "arm"),
27347    stable(feature = "neon_intrinsics", since = "1.59.0")
27348)]
27349#[cfg_attr(
27350    target_arch = "arm",
27351    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27352)]
27353pub unsafe fn vld4q_u32(a: *const u32) -> uint32x4x4_t {
27354    transmute(vld4q_s32(transmute(a)))
27355}
27356#[doc = "Load multiple 4-element structures to four registers"]
27357#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_u32)"]
27358#[doc = "## Safety"]
27359#[doc = "  * Neon instrinsic unsafe"]
27360#[inline]
27361#[cfg(target_endian = "big")]
27362#[target_feature(enable = "neon")]
27363#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27364#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
27365#[cfg_attr(
27366    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27367    assert_instr(ld4)
27368)]
27369#[cfg_attr(
27370    not(target_arch = "arm"),
27371    stable(feature = "neon_intrinsics", since = "1.59.0")
27372)]
27373#[cfg_attr(
27374    target_arch = "arm",
27375    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27376)]
27377pub unsafe fn vld4q_u32(a: *const u32) -> uint32x4x4_t {
27378    let mut ret_val: uint32x4x4_t = transmute(vld4q_s32(transmute(a)));
27379    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
27380    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
27381    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [3, 2, 1, 0]) };
27382    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [3, 2, 1, 0]) };
27383    ret_val
27384}
27385#[doc = "Load multiple 4-element structures to four registers"]
27386#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_p8)"]
27387#[doc = "## Safety"]
27388#[doc = "  * Neon instrinsic unsafe"]
27389#[inline]
27390#[cfg(target_endian = "little")]
27391#[target_feature(enable = "neon")]
27392#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27393#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
27394#[cfg_attr(
27395    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27396    assert_instr(ld4)
27397)]
27398#[cfg_attr(
27399    not(target_arch = "arm"),
27400    stable(feature = "neon_intrinsics", since = "1.59.0")
27401)]
27402#[cfg_attr(
27403    target_arch = "arm",
27404    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27405)]
27406pub unsafe fn vld4_p8(a: *const p8) -> poly8x8x4_t {
27407    transmute(vld4_s8(transmute(a)))
27408}
27409#[doc = "Load multiple 4-element structures to four registers"]
27410#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_p8)"]
27411#[doc = "## Safety"]
27412#[doc = "  * Neon instrinsic unsafe"]
27413#[inline]
27414#[cfg(target_endian = "big")]
27415#[target_feature(enable = "neon")]
27416#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27417#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
27418#[cfg_attr(
27419    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27420    assert_instr(ld4)
27421)]
27422#[cfg_attr(
27423    not(target_arch = "arm"),
27424    stable(feature = "neon_intrinsics", since = "1.59.0")
27425)]
27426#[cfg_attr(
27427    target_arch = "arm",
27428    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27429)]
27430pub unsafe fn vld4_p8(a: *const p8) -> poly8x8x4_t {
27431    let mut ret_val: poly8x8x4_t = transmute(vld4_s8(transmute(a)));
27432    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
27433    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
27434    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
27435    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [7, 6, 5, 4, 3, 2, 1, 0]) };
27436    ret_val
27437}
27438#[doc = "Load multiple 4-element structures to four registers"]
27439#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_p8)"]
27440#[doc = "## Safety"]
27441#[doc = "  * Neon instrinsic unsafe"]
27442#[inline]
27443#[cfg(target_endian = "little")]
27444#[target_feature(enable = "neon")]
27445#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27446#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
27447#[cfg_attr(
27448    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27449    assert_instr(ld4)
27450)]
27451#[cfg_attr(
27452    not(target_arch = "arm"),
27453    stable(feature = "neon_intrinsics", since = "1.59.0")
27454)]
27455#[cfg_attr(
27456    target_arch = "arm",
27457    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27458)]
27459pub unsafe fn vld4q_p8(a: *const p8) -> poly8x16x4_t {
27460    transmute(vld4q_s8(transmute(a)))
27461}
27462#[doc = "Load multiple 4-element structures to four registers"]
27463#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_p8)"]
27464#[doc = "## Safety"]
27465#[doc = "  * Neon instrinsic unsafe"]
27466#[inline]
27467#[cfg(target_endian = "big")]
27468#[target_feature(enable = "neon")]
27469#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27470#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
27471#[cfg_attr(
27472    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27473    assert_instr(ld4)
27474)]
27475#[cfg_attr(
27476    not(target_arch = "arm"),
27477    stable(feature = "neon_intrinsics", since = "1.59.0")
27478)]
27479#[cfg_attr(
27480    target_arch = "arm",
27481    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27482)]
27483pub unsafe fn vld4q_p8(a: *const p8) -> poly8x16x4_t {
27484    let mut ret_val: poly8x16x4_t = transmute(vld4q_s8(transmute(a)));
27485    ret_val.0 = unsafe {
27486        simd_shuffle!(
27487            ret_val.0,
27488            ret_val.0,
27489            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
27490        )
27491    };
27492    ret_val.1 = unsafe {
27493        simd_shuffle!(
27494            ret_val.1,
27495            ret_val.1,
27496            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
27497        )
27498    };
27499    ret_val.2 = unsafe {
27500        simd_shuffle!(
27501            ret_val.2,
27502            ret_val.2,
27503            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
27504        )
27505    };
27506    ret_val.3 = unsafe {
27507        simd_shuffle!(
27508            ret_val.3,
27509            ret_val.3,
27510            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
27511        )
27512    };
27513    ret_val
27514}
27515#[doc = "Load multiple 4-element structures to four registers"]
27516#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_p16)"]
27517#[doc = "## Safety"]
27518#[doc = "  * Neon instrinsic unsafe"]
27519#[inline]
27520#[cfg(target_endian = "little")]
27521#[target_feature(enable = "neon")]
27522#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27523#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
27524#[cfg_attr(
27525    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27526    assert_instr(ld4)
27527)]
27528#[cfg_attr(
27529    not(target_arch = "arm"),
27530    stable(feature = "neon_intrinsics", since = "1.59.0")
27531)]
27532#[cfg_attr(
27533    target_arch = "arm",
27534    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27535)]
27536pub unsafe fn vld4_p16(a: *const p16) -> poly16x4x4_t {
27537    transmute(vld4_s16(transmute(a)))
27538}
27539#[doc = "Load multiple 4-element structures to four registers"]
27540#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_p16)"]
27541#[doc = "## Safety"]
27542#[doc = "  * Neon instrinsic unsafe"]
27543#[inline]
27544#[cfg(target_endian = "big")]
27545#[target_feature(enable = "neon")]
27546#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27547#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
27548#[cfg_attr(
27549    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27550    assert_instr(ld4)
27551)]
27552#[cfg_attr(
27553    not(target_arch = "arm"),
27554    stable(feature = "neon_intrinsics", since = "1.59.0")
27555)]
27556#[cfg_attr(
27557    target_arch = "arm",
27558    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27559)]
27560pub unsafe fn vld4_p16(a: *const p16) -> poly16x4x4_t {
27561    let mut ret_val: poly16x4x4_t = transmute(vld4_s16(transmute(a)));
27562    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
27563    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
27564    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [3, 2, 1, 0]) };
27565    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [3, 2, 1, 0]) };
27566    ret_val
27567}
27568#[doc = "Load multiple 4-element structures to four registers"]
27569#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_p16)"]
27570#[doc = "## Safety"]
27571#[doc = "  * Neon instrinsic unsafe"]
27572#[inline]
27573#[cfg(target_endian = "little")]
27574#[target_feature(enable = "neon")]
27575#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27576#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
27577#[cfg_attr(
27578    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27579    assert_instr(ld4)
27580)]
27581#[cfg_attr(
27582    not(target_arch = "arm"),
27583    stable(feature = "neon_intrinsics", since = "1.59.0")
27584)]
27585#[cfg_attr(
27586    target_arch = "arm",
27587    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27588)]
27589pub unsafe fn vld4q_p16(a: *const p16) -> poly16x8x4_t {
27590    transmute(vld4q_s16(transmute(a)))
27591}
27592#[doc = "Load multiple 4-element structures to four registers"]
27593#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_p16)"]
27594#[doc = "## Safety"]
27595#[doc = "  * Neon instrinsic unsafe"]
27596#[inline]
27597#[cfg(target_endian = "big")]
27598#[target_feature(enable = "neon")]
27599#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27600#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
27601#[cfg_attr(
27602    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27603    assert_instr(ld4)
27604)]
27605#[cfg_attr(
27606    not(target_arch = "arm"),
27607    stable(feature = "neon_intrinsics", since = "1.59.0")
27608)]
27609#[cfg_attr(
27610    target_arch = "arm",
27611    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27612)]
27613pub unsafe fn vld4q_p16(a: *const p16) -> poly16x8x4_t {
27614    let mut ret_val: poly16x8x4_t = transmute(vld4q_s16(transmute(a)));
27615    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
27616    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
27617    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
27618    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [7, 6, 5, 4, 3, 2, 1, 0]) };
27619    ret_val
27620}
27621#[doc = "Store SIMD&FP register (immediate offset)"]
27622#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vldrq_p128)"]
27623#[doc = "## Safety"]
27624#[doc = "  * Neon instrinsic unsafe"]
27625#[inline]
27626#[target_feature(enable = "neon")]
27627#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27628#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
27629#[cfg_attr(
27630    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27631    assert_instr(nop)
27632)]
27633#[cfg_attr(
27634    not(target_arch = "arm"),
27635    stable(feature = "neon_intrinsics", since = "1.59.0")
27636)]
27637#[cfg_attr(
27638    target_arch = "arm",
27639    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27640)]
27641pub unsafe fn vldrq_p128(a: *const p128) -> p128 {
27642    *a
27643}
27644#[doc = "Maximum (vector)"]
27645#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmax_f16)"]
27646#[inline]
27647#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
27648#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
27649#[cfg_attr(
27650    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27651    assert_instr(fmax)
27652)]
27653#[target_feature(enable = "neon,fp16")]
27654#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
27655#[cfg(not(target_arch = "arm64ec"))]
27656pub fn vmax_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t {
27657    unsafe extern "unadjusted" {
27658        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmaxs.v4f16")]
27659        #[cfg_attr(
27660            any(target_arch = "aarch64", target_arch = "arm64ec"),
27661            link_name = "llvm.aarch64.neon.fmax.v4f16"
27662        )]
27663        fn _vmax_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t;
27664    }
27665    unsafe { _vmax_f16(a, b) }
27666}
27667#[doc = "Maximum (vector)"]
27668#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxq_f16)"]
27669#[inline]
27670#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
27671#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
27672#[cfg_attr(
27673    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27674    assert_instr(fmax)
27675)]
27676#[target_feature(enable = "neon,fp16")]
27677#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
27678#[cfg(not(target_arch = "arm64ec"))]
27679pub fn vmaxq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t {
27680    unsafe extern "unadjusted" {
27681        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmaxs.v8f16")]
27682        #[cfg_attr(
27683            any(target_arch = "aarch64", target_arch = "arm64ec"),
27684            link_name = "llvm.aarch64.neon.fmax.v8f16"
27685        )]
27686        fn _vmaxq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t;
27687    }
27688    unsafe { _vmaxq_f16(a, b) }
27689}
27690#[doc = "Maximum (vector)"]
27691#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmax_f32)"]
27692#[inline]
27693#[target_feature(enable = "neon")]
27694#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27695#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
27696#[cfg_attr(
27697    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27698    assert_instr(fmax)
27699)]
27700#[cfg_attr(
27701    not(target_arch = "arm"),
27702    stable(feature = "neon_intrinsics", since = "1.59.0")
27703)]
27704#[cfg_attr(
27705    target_arch = "arm",
27706    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27707)]
27708pub fn vmax_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
27709    unsafe extern "unadjusted" {
27710        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmaxs.v2f32")]
27711        #[cfg_attr(
27712            any(target_arch = "aarch64", target_arch = "arm64ec"),
27713            link_name = "llvm.aarch64.neon.fmax.v2f32"
27714        )]
27715        fn _vmax_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t;
27716    }
27717    unsafe { _vmax_f32(a, b) }
27718}
27719#[doc = "Maximum (vector)"]
27720#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxq_f32)"]
27721#[inline]
27722#[target_feature(enable = "neon")]
27723#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27724#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
27725#[cfg_attr(
27726    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27727    assert_instr(fmax)
27728)]
27729#[cfg_attr(
27730    not(target_arch = "arm"),
27731    stable(feature = "neon_intrinsics", since = "1.59.0")
27732)]
27733#[cfg_attr(
27734    target_arch = "arm",
27735    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27736)]
27737pub fn vmaxq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t {
27738    unsafe extern "unadjusted" {
27739        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmaxs.v4f32")]
27740        #[cfg_attr(
27741            any(target_arch = "aarch64", target_arch = "arm64ec"),
27742            link_name = "llvm.aarch64.neon.fmax.v4f32"
27743        )]
27744        fn _vmaxq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t;
27745    }
27746    unsafe { _vmaxq_f32(a, b) }
27747}
27748#[doc = "Maximum (vector)"]
27749#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmax_s8)"]
27750#[inline]
27751#[target_feature(enable = "neon")]
27752#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27753#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
27754#[cfg_attr(
27755    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27756    assert_instr(smax)
27757)]
27758#[cfg_attr(
27759    not(target_arch = "arm"),
27760    stable(feature = "neon_intrinsics", since = "1.59.0")
27761)]
27762#[cfg_attr(
27763    target_arch = "arm",
27764    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27765)]
27766pub fn vmax_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
27767    unsafe {
27768        let mask: int8x8_t = simd_ge(a, b);
27769        simd_select(mask, a, b)
27770    }
27771}
27772#[doc = "Maximum (vector)"]
27773#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxq_s8)"]
27774#[inline]
27775#[target_feature(enable = "neon")]
27776#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27777#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
27778#[cfg_attr(
27779    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27780    assert_instr(smax)
27781)]
27782#[cfg_attr(
27783    not(target_arch = "arm"),
27784    stable(feature = "neon_intrinsics", since = "1.59.0")
27785)]
27786#[cfg_attr(
27787    target_arch = "arm",
27788    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27789)]
27790pub fn vmaxq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
27791    unsafe {
27792        let mask: int8x16_t = simd_ge(a, b);
27793        simd_select(mask, a, b)
27794    }
27795}
27796#[doc = "Maximum (vector)"]
27797#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmax_s16)"]
27798#[inline]
27799#[target_feature(enable = "neon")]
27800#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27801#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
27802#[cfg_attr(
27803    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27804    assert_instr(smax)
27805)]
27806#[cfg_attr(
27807    not(target_arch = "arm"),
27808    stable(feature = "neon_intrinsics", since = "1.59.0")
27809)]
27810#[cfg_attr(
27811    target_arch = "arm",
27812    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27813)]
27814pub fn vmax_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
27815    unsafe {
27816        let mask: int16x4_t = simd_ge(a, b);
27817        simd_select(mask, a, b)
27818    }
27819}
27820#[doc = "Maximum (vector)"]
27821#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxq_s16)"]
27822#[inline]
27823#[target_feature(enable = "neon")]
27824#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27825#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
27826#[cfg_attr(
27827    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27828    assert_instr(smax)
27829)]
27830#[cfg_attr(
27831    not(target_arch = "arm"),
27832    stable(feature = "neon_intrinsics", since = "1.59.0")
27833)]
27834#[cfg_attr(
27835    target_arch = "arm",
27836    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27837)]
27838pub fn vmaxq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
27839    unsafe {
27840        let mask: int16x8_t = simd_ge(a, b);
27841        simd_select(mask, a, b)
27842    }
27843}
27844#[doc = "Maximum (vector)"]
27845#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmax_s32)"]
27846#[inline]
27847#[target_feature(enable = "neon")]
27848#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27849#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
27850#[cfg_attr(
27851    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27852    assert_instr(smax)
27853)]
27854#[cfg_attr(
27855    not(target_arch = "arm"),
27856    stable(feature = "neon_intrinsics", since = "1.59.0")
27857)]
27858#[cfg_attr(
27859    target_arch = "arm",
27860    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27861)]
27862pub fn vmax_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
27863    unsafe {
27864        let mask: int32x2_t = simd_ge(a, b);
27865        simd_select(mask, a, b)
27866    }
27867}
27868#[doc = "Maximum (vector)"]
27869#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxq_s32)"]
27870#[inline]
27871#[target_feature(enable = "neon")]
27872#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27873#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
27874#[cfg_attr(
27875    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27876    assert_instr(smax)
27877)]
27878#[cfg_attr(
27879    not(target_arch = "arm"),
27880    stable(feature = "neon_intrinsics", since = "1.59.0")
27881)]
27882#[cfg_attr(
27883    target_arch = "arm",
27884    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27885)]
27886pub fn vmaxq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
27887    unsafe {
27888        let mask: int32x4_t = simd_ge(a, b);
27889        simd_select(mask, a, b)
27890    }
27891}
27892#[doc = "Maximum (vector)"]
27893#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmax_u8)"]
27894#[inline]
27895#[target_feature(enable = "neon")]
27896#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27897#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
27898#[cfg_attr(
27899    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27900    assert_instr(umax)
27901)]
27902#[cfg_attr(
27903    not(target_arch = "arm"),
27904    stable(feature = "neon_intrinsics", since = "1.59.0")
27905)]
27906#[cfg_attr(
27907    target_arch = "arm",
27908    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27909)]
27910pub fn vmax_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
27911    unsafe {
27912        let mask: uint8x8_t = simd_ge(a, b);
27913        simd_select(mask, a, b)
27914    }
27915}
27916#[doc = "Maximum (vector)"]
27917#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxq_u8)"]
27918#[inline]
27919#[target_feature(enable = "neon")]
27920#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27921#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
27922#[cfg_attr(
27923    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27924    assert_instr(umax)
27925)]
27926#[cfg_attr(
27927    not(target_arch = "arm"),
27928    stable(feature = "neon_intrinsics", since = "1.59.0")
27929)]
27930#[cfg_attr(
27931    target_arch = "arm",
27932    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27933)]
27934pub fn vmaxq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
27935    unsafe {
27936        let mask: uint8x16_t = simd_ge(a, b);
27937        simd_select(mask, a, b)
27938    }
27939}
27940#[doc = "Maximum (vector)"]
27941#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmax_u16)"]
27942#[inline]
27943#[target_feature(enable = "neon")]
27944#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27945#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
27946#[cfg_attr(
27947    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27948    assert_instr(umax)
27949)]
27950#[cfg_attr(
27951    not(target_arch = "arm"),
27952    stable(feature = "neon_intrinsics", since = "1.59.0")
27953)]
27954#[cfg_attr(
27955    target_arch = "arm",
27956    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27957)]
27958pub fn vmax_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
27959    unsafe {
27960        let mask: uint16x4_t = simd_ge(a, b);
27961        simd_select(mask, a, b)
27962    }
27963}
27964#[doc = "Maximum (vector)"]
27965#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxq_u16)"]
27966#[inline]
27967#[target_feature(enable = "neon")]
27968#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27969#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
27970#[cfg_attr(
27971    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27972    assert_instr(umax)
27973)]
27974#[cfg_attr(
27975    not(target_arch = "arm"),
27976    stable(feature = "neon_intrinsics", since = "1.59.0")
27977)]
27978#[cfg_attr(
27979    target_arch = "arm",
27980    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27981)]
27982pub fn vmaxq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
27983    unsafe {
27984        let mask: uint16x8_t = simd_ge(a, b);
27985        simd_select(mask, a, b)
27986    }
27987}
27988#[doc = "Maximum (vector)"]
27989#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmax_u32)"]
27990#[inline]
27991#[target_feature(enable = "neon")]
27992#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27993#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
27994#[cfg_attr(
27995    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27996    assert_instr(umax)
27997)]
27998#[cfg_attr(
27999    not(target_arch = "arm"),
28000    stable(feature = "neon_intrinsics", since = "1.59.0")
28001)]
28002#[cfg_attr(
28003    target_arch = "arm",
28004    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28005)]
28006pub fn vmax_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
28007    unsafe {
28008        let mask: uint32x2_t = simd_ge(a, b);
28009        simd_select(mask, a, b)
28010    }
28011}
28012#[doc = "Maximum (vector)"]
28013#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxq_u32)"]
28014#[inline]
28015#[target_feature(enable = "neon")]
28016#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28017#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
28018#[cfg_attr(
28019    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28020    assert_instr(umax)
28021)]
28022#[cfg_attr(
28023    not(target_arch = "arm"),
28024    stable(feature = "neon_intrinsics", since = "1.59.0")
28025)]
28026#[cfg_attr(
28027    target_arch = "arm",
28028    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28029)]
28030pub fn vmaxq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
28031    unsafe {
28032        let mask: uint32x4_t = simd_ge(a, b);
28033        simd_select(mask, a, b)
28034    }
28035}
28036#[doc = "Floating-point Maximum Number (vector)"]
28037#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxnm_f16)"]
28038#[inline]
28039#[cfg_attr(target_arch = "arm", target_feature(enable = "fp-armv8,v8"))]
28040#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmaxnm))]
28041#[cfg_attr(
28042    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28043    assert_instr(fmaxnm)
28044)]
28045#[target_feature(enable = "neon,fp16")]
28046#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
28047#[cfg(not(target_arch = "arm64ec"))]
28048pub fn vmaxnm_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t {
28049    unsafe { simd_fmax(a, b) }
28050}
28051#[doc = "Floating-point Maximum Number (vector)"]
28052#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxnmq_f16)"]
28053#[inline]
28054#[cfg_attr(target_arch = "arm", target_feature(enable = "fp-armv8,v8"))]
28055#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmaxnm))]
28056#[cfg_attr(
28057    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28058    assert_instr(fmaxnm)
28059)]
28060#[target_feature(enable = "neon,fp16")]
28061#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
28062#[cfg(not(target_arch = "arm64ec"))]
28063pub fn vmaxnmq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t {
28064    unsafe { simd_fmax(a, b) }
28065}
28066#[doc = "Floating-point Maximum Number (vector)"]
28067#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxnm_f32)"]
28068#[inline]
28069#[target_feature(enable = "neon")]
28070#[cfg_attr(target_arch = "arm", target_feature(enable = "fp-armv8,v8"))]
28071#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmaxnm))]
28072#[cfg_attr(
28073    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28074    assert_instr(fmaxnm)
28075)]
28076#[cfg_attr(
28077    not(target_arch = "arm"),
28078    stable(feature = "neon_intrinsics", since = "1.59.0")
28079)]
28080#[cfg_attr(
28081    target_arch = "arm",
28082    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28083)]
28084pub fn vmaxnm_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
28085    unsafe { simd_fmax(a, b) }
28086}
28087#[doc = "Floating-point Maximum Number (vector)"]
28088#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxnmq_f32)"]
28089#[inline]
28090#[target_feature(enable = "neon")]
28091#[cfg_attr(target_arch = "arm", target_feature(enable = "fp-armv8,v8"))]
28092#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmaxnm))]
28093#[cfg_attr(
28094    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28095    assert_instr(fmaxnm)
28096)]
28097#[cfg_attr(
28098    not(target_arch = "arm"),
28099    stable(feature = "neon_intrinsics", since = "1.59.0")
28100)]
28101#[cfg_attr(
28102    target_arch = "arm",
28103    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28104)]
28105pub fn vmaxnmq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t {
28106    unsafe { simd_fmax(a, b) }
28107}
28108#[doc = "Minimum (vector)"]
28109#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmin_f16)"]
28110#[inline]
28111#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
28112#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
28113#[cfg_attr(
28114    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28115    assert_instr(fmin)
28116)]
28117#[target_feature(enable = "neon,fp16")]
28118#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
28119#[cfg(not(target_arch = "arm64ec"))]
28120pub fn vmin_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t {
28121    unsafe extern "unadjusted" {
28122        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmins.v4f16")]
28123        #[cfg_attr(
28124            any(target_arch = "aarch64", target_arch = "arm64ec"),
28125            link_name = "llvm.aarch64.neon.fmin.v4f16"
28126        )]
28127        fn _vmin_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t;
28128    }
28129    unsafe { _vmin_f16(a, b) }
28130}
28131#[doc = "Minimum (vector)"]
28132#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminq_f16)"]
28133#[inline]
28134#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
28135#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
28136#[cfg_attr(
28137    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28138    assert_instr(fmin)
28139)]
28140#[target_feature(enable = "neon,fp16")]
28141#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
28142#[cfg(not(target_arch = "arm64ec"))]
28143pub fn vminq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t {
28144    unsafe extern "unadjusted" {
28145        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmins.v8f16")]
28146        #[cfg_attr(
28147            any(target_arch = "aarch64", target_arch = "arm64ec"),
28148            link_name = "llvm.aarch64.neon.fmin.v8f16"
28149        )]
28150        fn _vminq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t;
28151    }
28152    unsafe { _vminq_f16(a, b) }
28153}
28154#[doc = "Minimum (vector)"]
28155#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmin_f32)"]
28156#[inline]
28157#[target_feature(enable = "neon")]
28158#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28159#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
28160#[cfg_attr(
28161    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28162    assert_instr(fmin)
28163)]
28164#[cfg_attr(
28165    not(target_arch = "arm"),
28166    stable(feature = "neon_intrinsics", since = "1.59.0")
28167)]
28168#[cfg_attr(
28169    target_arch = "arm",
28170    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28171)]
28172pub fn vmin_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
28173    unsafe extern "unadjusted" {
28174        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmins.v2f32")]
28175        #[cfg_attr(
28176            any(target_arch = "aarch64", target_arch = "arm64ec"),
28177            link_name = "llvm.aarch64.neon.fmin.v2f32"
28178        )]
28179        fn _vmin_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t;
28180    }
28181    unsafe { _vmin_f32(a, b) }
28182}
28183#[doc = "Minimum (vector)"]
28184#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminq_f32)"]
28185#[inline]
28186#[target_feature(enable = "neon")]
28187#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28188#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
28189#[cfg_attr(
28190    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28191    assert_instr(fmin)
28192)]
28193#[cfg_attr(
28194    not(target_arch = "arm"),
28195    stable(feature = "neon_intrinsics", since = "1.59.0")
28196)]
28197#[cfg_attr(
28198    target_arch = "arm",
28199    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28200)]
28201pub fn vminq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t {
28202    unsafe extern "unadjusted" {
28203        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmins.v4f32")]
28204        #[cfg_attr(
28205            any(target_arch = "aarch64", target_arch = "arm64ec"),
28206            link_name = "llvm.aarch64.neon.fmin.v4f32"
28207        )]
28208        fn _vminq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t;
28209    }
28210    unsafe { _vminq_f32(a, b) }
28211}
28212#[doc = "Minimum (vector)"]
28213#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmin_s8)"]
28214#[inline]
28215#[target_feature(enable = "neon")]
28216#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28217#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
28218#[cfg_attr(
28219    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28220    assert_instr(smin)
28221)]
28222#[cfg_attr(
28223    not(target_arch = "arm"),
28224    stable(feature = "neon_intrinsics", since = "1.59.0")
28225)]
28226#[cfg_attr(
28227    target_arch = "arm",
28228    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28229)]
28230pub fn vmin_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
28231    unsafe {
28232        let mask: int8x8_t = simd_le(a, b);
28233        simd_select(mask, a, b)
28234    }
28235}
28236#[doc = "Minimum (vector)"]
28237#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminq_s8)"]
28238#[inline]
28239#[target_feature(enable = "neon")]
28240#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28241#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
28242#[cfg_attr(
28243    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28244    assert_instr(smin)
28245)]
28246#[cfg_attr(
28247    not(target_arch = "arm"),
28248    stable(feature = "neon_intrinsics", since = "1.59.0")
28249)]
28250#[cfg_attr(
28251    target_arch = "arm",
28252    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28253)]
28254pub fn vminq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
28255    unsafe {
28256        let mask: int8x16_t = simd_le(a, b);
28257        simd_select(mask, a, b)
28258    }
28259}
28260#[doc = "Minimum (vector)"]
28261#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmin_s16)"]
28262#[inline]
28263#[target_feature(enable = "neon")]
28264#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28265#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
28266#[cfg_attr(
28267    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28268    assert_instr(smin)
28269)]
28270#[cfg_attr(
28271    not(target_arch = "arm"),
28272    stable(feature = "neon_intrinsics", since = "1.59.0")
28273)]
28274#[cfg_attr(
28275    target_arch = "arm",
28276    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28277)]
28278pub fn vmin_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
28279    unsafe {
28280        let mask: int16x4_t = simd_le(a, b);
28281        simd_select(mask, a, b)
28282    }
28283}
28284#[doc = "Minimum (vector)"]
28285#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminq_s16)"]
28286#[inline]
28287#[target_feature(enable = "neon")]
28288#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28289#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
28290#[cfg_attr(
28291    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28292    assert_instr(smin)
28293)]
28294#[cfg_attr(
28295    not(target_arch = "arm"),
28296    stable(feature = "neon_intrinsics", since = "1.59.0")
28297)]
28298#[cfg_attr(
28299    target_arch = "arm",
28300    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28301)]
28302pub fn vminq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
28303    unsafe {
28304        let mask: int16x8_t = simd_le(a, b);
28305        simd_select(mask, a, b)
28306    }
28307}
28308#[doc = "Minimum (vector)"]
28309#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmin_s32)"]
28310#[inline]
28311#[target_feature(enable = "neon")]
28312#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28313#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
28314#[cfg_attr(
28315    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28316    assert_instr(smin)
28317)]
28318#[cfg_attr(
28319    not(target_arch = "arm"),
28320    stable(feature = "neon_intrinsics", since = "1.59.0")
28321)]
28322#[cfg_attr(
28323    target_arch = "arm",
28324    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28325)]
28326pub fn vmin_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
28327    unsafe {
28328        let mask: int32x2_t = simd_le(a, b);
28329        simd_select(mask, a, b)
28330    }
28331}
28332#[doc = "Minimum (vector)"]
28333#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminq_s32)"]
28334#[inline]
28335#[target_feature(enable = "neon")]
28336#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28337#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
28338#[cfg_attr(
28339    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28340    assert_instr(smin)
28341)]
28342#[cfg_attr(
28343    not(target_arch = "arm"),
28344    stable(feature = "neon_intrinsics", since = "1.59.0")
28345)]
28346#[cfg_attr(
28347    target_arch = "arm",
28348    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28349)]
28350pub fn vminq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
28351    unsafe {
28352        let mask: int32x4_t = simd_le(a, b);
28353        simd_select(mask, a, b)
28354    }
28355}
28356#[doc = "Minimum (vector)"]
28357#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmin_u8)"]
28358#[inline]
28359#[target_feature(enable = "neon")]
28360#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28361#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
28362#[cfg_attr(
28363    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28364    assert_instr(umin)
28365)]
28366#[cfg_attr(
28367    not(target_arch = "arm"),
28368    stable(feature = "neon_intrinsics", since = "1.59.0")
28369)]
28370#[cfg_attr(
28371    target_arch = "arm",
28372    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28373)]
28374pub fn vmin_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
28375    unsafe {
28376        let mask: uint8x8_t = simd_le(a, b);
28377        simd_select(mask, a, b)
28378    }
28379}
28380#[doc = "Minimum (vector)"]
28381#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminq_u8)"]
28382#[inline]
28383#[target_feature(enable = "neon")]
28384#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28385#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
28386#[cfg_attr(
28387    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28388    assert_instr(umin)
28389)]
28390#[cfg_attr(
28391    not(target_arch = "arm"),
28392    stable(feature = "neon_intrinsics", since = "1.59.0")
28393)]
28394#[cfg_attr(
28395    target_arch = "arm",
28396    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28397)]
28398pub fn vminq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
28399    unsafe {
28400        let mask: uint8x16_t = simd_le(a, b);
28401        simd_select(mask, a, b)
28402    }
28403}
28404#[doc = "Minimum (vector)"]
28405#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmin_u16)"]
28406#[inline]
28407#[target_feature(enable = "neon")]
28408#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28409#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
28410#[cfg_attr(
28411    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28412    assert_instr(umin)
28413)]
28414#[cfg_attr(
28415    not(target_arch = "arm"),
28416    stable(feature = "neon_intrinsics", since = "1.59.0")
28417)]
28418#[cfg_attr(
28419    target_arch = "arm",
28420    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28421)]
28422pub fn vmin_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
28423    unsafe {
28424        let mask: uint16x4_t = simd_le(a, b);
28425        simd_select(mask, a, b)
28426    }
28427}
28428#[doc = "Minimum (vector)"]
28429#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminq_u16)"]
28430#[inline]
28431#[target_feature(enable = "neon")]
28432#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28433#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
28434#[cfg_attr(
28435    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28436    assert_instr(umin)
28437)]
28438#[cfg_attr(
28439    not(target_arch = "arm"),
28440    stable(feature = "neon_intrinsics", since = "1.59.0")
28441)]
28442#[cfg_attr(
28443    target_arch = "arm",
28444    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28445)]
28446pub fn vminq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
28447    unsafe {
28448        let mask: uint16x8_t = simd_le(a, b);
28449        simd_select(mask, a, b)
28450    }
28451}
28452#[doc = "Minimum (vector)"]
28453#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmin_u32)"]
28454#[inline]
28455#[target_feature(enable = "neon")]
28456#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28457#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
28458#[cfg_attr(
28459    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28460    assert_instr(umin)
28461)]
28462#[cfg_attr(
28463    not(target_arch = "arm"),
28464    stable(feature = "neon_intrinsics", since = "1.59.0")
28465)]
28466#[cfg_attr(
28467    target_arch = "arm",
28468    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28469)]
28470pub fn vmin_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
28471    unsafe {
28472        let mask: uint32x2_t = simd_le(a, b);
28473        simd_select(mask, a, b)
28474    }
28475}
28476#[doc = "Minimum (vector)"]
28477#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminq_u32)"]
28478#[inline]
28479#[target_feature(enable = "neon")]
28480#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28481#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
28482#[cfg_attr(
28483    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28484    assert_instr(umin)
28485)]
28486#[cfg_attr(
28487    not(target_arch = "arm"),
28488    stable(feature = "neon_intrinsics", since = "1.59.0")
28489)]
28490#[cfg_attr(
28491    target_arch = "arm",
28492    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28493)]
28494pub fn vminq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
28495    unsafe {
28496        let mask: uint32x4_t = simd_le(a, b);
28497        simd_select(mask, a, b)
28498    }
28499}
28500#[doc = "Floating-point Minimum Number (vector)"]
28501#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminnm_f16)"]
28502#[inline]
28503#[cfg_attr(target_arch = "arm", target_feature(enable = "fp-armv8,v8"))]
28504#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vminnm))]
28505#[cfg_attr(
28506    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28507    assert_instr(fminnm)
28508)]
28509#[target_feature(enable = "neon,fp16")]
28510#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
28511#[cfg(not(target_arch = "arm64ec"))]
28512pub fn vminnm_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t {
28513    unsafe { simd_fmin(a, b) }
28514}
28515#[doc = "Floating-point Minimum Number (vector)"]
28516#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminnmq_f16)"]
28517#[inline]
28518#[cfg_attr(target_arch = "arm", target_feature(enable = "fp-armv8,v8"))]
28519#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vminnm))]
28520#[cfg_attr(
28521    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28522    assert_instr(fminnm)
28523)]
28524#[target_feature(enable = "neon,fp16")]
28525#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
28526#[cfg(not(target_arch = "arm64ec"))]
28527pub fn vminnmq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t {
28528    unsafe { simd_fmin(a, b) }
28529}
28530#[doc = "Floating-point Minimum Number (vector)"]
28531#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminnm_f32)"]
28532#[inline]
28533#[target_feature(enable = "neon")]
28534#[cfg_attr(target_arch = "arm", target_feature(enable = "fp-armv8,v8"))]
28535#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vminnm))]
28536#[cfg_attr(
28537    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28538    assert_instr(fminnm)
28539)]
28540#[cfg_attr(
28541    not(target_arch = "arm"),
28542    stable(feature = "neon_intrinsics", since = "1.59.0")
28543)]
28544#[cfg_attr(
28545    target_arch = "arm",
28546    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28547)]
28548pub fn vminnm_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
28549    unsafe { simd_fmin(a, b) }
28550}
28551#[doc = "Floating-point Minimum Number (vector)"]
28552#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminnmq_f32)"]
28553#[inline]
28554#[target_feature(enable = "neon")]
28555#[cfg_attr(target_arch = "arm", target_feature(enable = "fp-armv8,v8"))]
28556#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vminnm))]
28557#[cfg_attr(
28558    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28559    assert_instr(fminnm)
28560)]
28561#[cfg_attr(
28562    not(target_arch = "arm"),
28563    stable(feature = "neon_intrinsics", since = "1.59.0")
28564)]
28565#[cfg_attr(
28566    target_arch = "arm",
28567    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28568)]
28569pub fn vminnmq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t {
28570    unsafe { simd_fmin(a, b) }
28571}
28572#[doc = "Floating-point multiply-add to accumulator"]
28573#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_f32)"]
28574#[inline]
28575#[target_feature(enable = "neon")]
28576#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28577#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.f32"))]
28578#[cfg_attr(
28579    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28580    assert_instr(fmul)
28581)]
28582#[cfg_attr(
28583    not(target_arch = "arm"),
28584    stable(feature = "neon_intrinsics", since = "1.59.0")
28585)]
28586#[cfg_attr(
28587    target_arch = "arm",
28588    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28589)]
28590pub fn vmla_f32(a: float32x2_t, b: float32x2_t, c: float32x2_t) -> float32x2_t {
28591    unsafe { simd_add(a, simd_mul(b, c)) }
28592}
28593#[doc = "Floating-point multiply-add to accumulator"]
28594#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_f32)"]
28595#[inline]
28596#[target_feature(enable = "neon")]
28597#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28598#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.f32"))]
28599#[cfg_attr(
28600    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28601    assert_instr(fmul)
28602)]
28603#[cfg_attr(
28604    not(target_arch = "arm"),
28605    stable(feature = "neon_intrinsics", since = "1.59.0")
28606)]
28607#[cfg_attr(
28608    target_arch = "arm",
28609    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28610)]
28611pub fn vmlaq_f32(a: float32x4_t, b: float32x4_t, c: float32x4_t) -> float32x4_t {
28612    unsafe { simd_add(a, simd_mul(b, c)) }
28613}
28614#[doc = "Vector multiply accumulate with scalar"]
28615#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_lane_f32)"]
28616#[inline]
28617#[target_feature(enable = "neon")]
28618#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28619#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.f32", LANE = 1))]
28620#[cfg_attr(
28621    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28622    assert_instr(fmul, LANE = 1)
28623)]
28624#[rustc_legacy_const_generics(3)]
28625#[cfg_attr(
28626    not(target_arch = "arm"),
28627    stable(feature = "neon_intrinsics", since = "1.59.0")
28628)]
28629#[cfg_attr(
28630    target_arch = "arm",
28631    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28632)]
28633pub fn vmla_lane_f32<const LANE: i32>(
28634    a: float32x2_t,
28635    b: float32x2_t,
28636    c: float32x2_t,
28637) -> float32x2_t {
28638    static_assert_uimm_bits!(LANE, 1);
28639    unsafe { vmla_f32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
28640}
28641#[doc = "Vector multiply accumulate with scalar"]
28642#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_laneq_f32)"]
28643#[inline]
28644#[target_feature(enable = "neon")]
28645#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28646#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.f32", LANE = 1))]
28647#[cfg_attr(
28648    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28649    assert_instr(fmul, LANE = 1)
28650)]
28651#[rustc_legacy_const_generics(3)]
28652#[cfg_attr(
28653    not(target_arch = "arm"),
28654    stable(feature = "neon_intrinsics", since = "1.59.0")
28655)]
28656#[cfg_attr(
28657    target_arch = "arm",
28658    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28659)]
28660pub fn vmla_laneq_f32<const LANE: i32>(
28661    a: float32x2_t,
28662    b: float32x2_t,
28663    c: float32x4_t,
28664) -> float32x2_t {
28665    static_assert_uimm_bits!(LANE, 2);
28666    unsafe { vmla_f32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
28667}
28668#[doc = "Vector multiply accumulate with scalar"]
28669#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_lane_f32)"]
28670#[inline]
28671#[target_feature(enable = "neon")]
28672#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28673#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.f32", LANE = 1))]
28674#[cfg_attr(
28675    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28676    assert_instr(fmul, LANE = 1)
28677)]
28678#[rustc_legacy_const_generics(3)]
28679#[cfg_attr(
28680    not(target_arch = "arm"),
28681    stable(feature = "neon_intrinsics", since = "1.59.0")
28682)]
28683#[cfg_attr(
28684    target_arch = "arm",
28685    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28686)]
28687pub fn vmlaq_lane_f32<const LANE: i32>(
28688    a: float32x4_t,
28689    b: float32x4_t,
28690    c: float32x2_t,
28691) -> float32x4_t {
28692    static_assert_uimm_bits!(LANE, 1);
28693    unsafe {
28694        vmlaq_f32(
28695            a,
28696            b,
28697            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
28698        )
28699    }
28700}
28701#[doc = "Vector multiply accumulate with scalar"]
28702#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_laneq_f32)"]
28703#[inline]
28704#[target_feature(enable = "neon")]
28705#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28706#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.f32", LANE = 1))]
28707#[cfg_attr(
28708    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28709    assert_instr(fmul, LANE = 1)
28710)]
28711#[rustc_legacy_const_generics(3)]
28712#[cfg_attr(
28713    not(target_arch = "arm"),
28714    stable(feature = "neon_intrinsics", since = "1.59.0")
28715)]
28716#[cfg_attr(
28717    target_arch = "arm",
28718    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28719)]
28720pub fn vmlaq_laneq_f32<const LANE: i32>(
28721    a: float32x4_t,
28722    b: float32x4_t,
28723    c: float32x4_t,
28724) -> float32x4_t {
28725    static_assert_uimm_bits!(LANE, 2);
28726    unsafe {
28727        vmlaq_f32(
28728            a,
28729            b,
28730            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
28731        )
28732    }
28733}
28734#[doc = "Vector multiply accumulate with scalar"]
28735#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_lane_s16)"]
28736#[inline]
28737#[target_feature(enable = "neon")]
28738#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28739#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16", LANE = 1))]
28740#[cfg_attr(
28741    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28742    assert_instr(mla, LANE = 1)
28743)]
28744#[rustc_legacy_const_generics(3)]
28745#[cfg_attr(
28746    not(target_arch = "arm"),
28747    stable(feature = "neon_intrinsics", since = "1.59.0")
28748)]
28749#[cfg_attr(
28750    target_arch = "arm",
28751    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28752)]
28753pub fn vmla_lane_s16<const LANE: i32>(a: int16x4_t, b: int16x4_t, c: int16x4_t) -> int16x4_t {
28754    static_assert_uimm_bits!(LANE, 2);
28755    unsafe {
28756        vmla_s16(
28757            a,
28758            b,
28759            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
28760        )
28761    }
28762}
28763#[doc = "Vector multiply accumulate with scalar"]
28764#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_lane_u16)"]
28765#[inline]
28766#[target_feature(enable = "neon")]
28767#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28768#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16", LANE = 1))]
28769#[cfg_attr(
28770    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28771    assert_instr(mla, LANE = 1)
28772)]
28773#[rustc_legacy_const_generics(3)]
28774#[cfg_attr(
28775    not(target_arch = "arm"),
28776    stable(feature = "neon_intrinsics", since = "1.59.0")
28777)]
28778#[cfg_attr(
28779    target_arch = "arm",
28780    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28781)]
28782pub fn vmla_lane_u16<const LANE: i32>(a: uint16x4_t, b: uint16x4_t, c: uint16x4_t) -> uint16x4_t {
28783    static_assert_uimm_bits!(LANE, 2);
28784    unsafe {
28785        vmla_u16(
28786            a,
28787            b,
28788            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
28789        )
28790    }
28791}
28792#[doc = "Vector multiply accumulate with scalar"]
28793#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_laneq_s16)"]
28794#[inline]
28795#[target_feature(enable = "neon")]
28796#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28797#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16", LANE = 1))]
28798#[cfg_attr(
28799    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28800    assert_instr(mla, LANE = 1)
28801)]
28802#[rustc_legacy_const_generics(3)]
28803#[cfg_attr(
28804    not(target_arch = "arm"),
28805    stable(feature = "neon_intrinsics", since = "1.59.0")
28806)]
28807#[cfg_attr(
28808    target_arch = "arm",
28809    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28810)]
28811pub fn vmla_laneq_s16<const LANE: i32>(a: int16x4_t, b: int16x4_t, c: int16x8_t) -> int16x4_t {
28812    static_assert_uimm_bits!(LANE, 3);
28813    unsafe {
28814        vmla_s16(
28815            a,
28816            b,
28817            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
28818        )
28819    }
28820}
28821#[doc = "Vector multiply accumulate with scalar"]
28822#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_laneq_u16)"]
28823#[inline]
28824#[target_feature(enable = "neon")]
28825#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28826#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16", LANE = 1))]
28827#[cfg_attr(
28828    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28829    assert_instr(mla, LANE = 1)
28830)]
28831#[rustc_legacy_const_generics(3)]
28832#[cfg_attr(
28833    not(target_arch = "arm"),
28834    stable(feature = "neon_intrinsics", since = "1.59.0")
28835)]
28836#[cfg_attr(
28837    target_arch = "arm",
28838    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28839)]
28840pub fn vmla_laneq_u16<const LANE: i32>(a: uint16x4_t, b: uint16x4_t, c: uint16x8_t) -> uint16x4_t {
28841    static_assert_uimm_bits!(LANE, 3);
28842    unsafe {
28843        vmla_u16(
28844            a,
28845            b,
28846            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
28847        )
28848    }
28849}
28850#[doc = "Vector multiply accumulate with scalar"]
28851#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_lane_s16)"]
28852#[inline]
28853#[target_feature(enable = "neon")]
28854#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28855#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16", LANE = 1))]
28856#[cfg_attr(
28857    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28858    assert_instr(mla, LANE = 1)
28859)]
28860#[rustc_legacy_const_generics(3)]
28861#[cfg_attr(
28862    not(target_arch = "arm"),
28863    stable(feature = "neon_intrinsics", since = "1.59.0")
28864)]
28865#[cfg_attr(
28866    target_arch = "arm",
28867    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28868)]
28869pub fn vmlaq_lane_s16<const LANE: i32>(a: int16x8_t, b: int16x8_t, c: int16x4_t) -> int16x8_t {
28870    static_assert_uimm_bits!(LANE, 2);
28871    unsafe {
28872        vmlaq_s16(
28873            a,
28874            b,
28875            simd_shuffle!(
28876                c,
28877                c,
28878                [
28879                    LANE as u32,
28880                    LANE as u32,
28881                    LANE as u32,
28882                    LANE as u32,
28883                    LANE as u32,
28884                    LANE as u32,
28885                    LANE as u32,
28886                    LANE as u32
28887                ]
28888            ),
28889        )
28890    }
28891}
28892#[doc = "Vector multiply accumulate with scalar"]
28893#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_lane_u16)"]
28894#[inline]
28895#[target_feature(enable = "neon")]
28896#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28897#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16", LANE = 1))]
28898#[cfg_attr(
28899    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28900    assert_instr(mla, LANE = 1)
28901)]
28902#[rustc_legacy_const_generics(3)]
28903#[cfg_attr(
28904    not(target_arch = "arm"),
28905    stable(feature = "neon_intrinsics", since = "1.59.0")
28906)]
28907#[cfg_attr(
28908    target_arch = "arm",
28909    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28910)]
28911pub fn vmlaq_lane_u16<const LANE: i32>(a: uint16x8_t, b: uint16x8_t, c: uint16x4_t) -> uint16x8_t {
28912    static_assert_uimm_bits!(LANE, 2);
28913    unsafe {
28914        vmlaq_u16(
28915            a,
28916            b,
28917            simd_shuffle!(
28918                c,
28919                c,
28920                [
28921                    LANE as u32,
28922                    LANE as u32,
28923                    LANE as u32,
28924                    LANE as u32,
28925                    LANE as u32,
28926                    LANE as u32,
28927                    LANE as u32,
28928                    LANE as u32
28929                ]
28930            ),
28931        )
28932    }
28933}
28934#[doc = "Vector multiply accumulate with scalar"]
28935#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_laneq_s16)"]
28936#[inline]
28937#[target_feature(enable = "neon")]
28938#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28939#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16", LANE = 1))]
28940#[cfg_attr(
28941    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28942    assert_instr(mla, LANE = 1)
28943)]
28944#[rustc_legacy_const_generics(3)]
28945#[cfg_attr(
28946    not(target_arch = "arm"),
28947    stable(feature = "neon_intrinsics", since = "1.59.0")
28948)]
28949#[cfg_attr(
28950    target_arch = "arm",
28951    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28952)]
28953pub fn vmlaq_laneq_s16<const LANE: i32>(a: int16x8_t, b: int16x8_t, c: int16x8_t) -> int16x8_t {
28954    static_assert_uimm_bits!(LANE, 3);
28955    unsafe {
28956        vmlaq_s16(
28957            a,
28958            b,
28959            simd_shuffle!(
28960                c,
28961                c,
28962                [
28963                    LANE as u32,
28964                    LANE as u32,
28965                    LANE as u32,
28966                    LANE as u32,
28967                    LANE as u32,
28968                    LANE as u32,
28969                    LANE as u32,
28970                    LANE as u32
28971                ]
28972            ),
28973        )
28974    }
28975}
28976#[doc = "Vector multiply accumulate with scalar"]
28977#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_laneq_u16)"]
28978#[inline]
28979#[target_feature(enable = "neon")]
28980#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28981#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16", LANE = 1))]
28982#[cfg_attr(
28983    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28984    assert_instr(mla, LANE = 1)
28985)]
28986#[rustc_legacy_const_generics(3)]
28987#[cfg_attr(
28988    not(target_arch = "arm"),
28989    stable(feature = "neon_intrinsics", since = "1.59.0")
28990)]
28991#[cfg_attr(
28992    target_arch = "arm",
28993    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28994)]
28995pub fn vmlaq_laneq_u16<const LANE: i32>(a: uint16x8_t, b: uint16x8_t, c: uint16x8_t) -> uint16x8_t {
28996    static_assert_uimm_bits!(LANE, 3);
28997    unsafe {
28998        vmlaq_u16(
28999            a,
29000            b,
29001            simd_shuffle!(
29002                c,
29003                c,
29004                [
29005                    LANE as u32,
29006                    LANE as u32,
29007                    LANE as u32,
29008                    LANE as u32,
29009                    LANE as u32,
29010                    LANE as u32,
29011                    LANE as u32,
29012                    LANE as u32
29013                ]
29014            ),
29015        )
29016    }
29017}
29018#[doc = "Vector multiply accumulate with scalar"]
29019#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_lane_s32)"]
29020#[inline]
29021#[target_feature(enable = "neon")]
29022#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29023#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32", LANE = 1))]
29024#[cfg_attr(
29025    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29026    assert_instr(mla, LANE = 1)
29027)]
29028#[rustc_legacy_const_generics(3)]
29029#[cfg_attr(
29030    not(target_arch = "arm"),
29031    stable(feature = "neon_intrinsics", since = "1.59.0")
29032)]
29033#[cfg_attr(
29034    target_arch = "arm",
29035    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29036)]
29037pub fn vmla_lane_s32<const LANE: i32>(a: int32x2_t, b: int32x2_t, c: int32x2_t) -> int32x2_t {
29038    static_assert_uimm_bits!(LANE, 1);
29039    unsafe { vmla_s32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
29040}
29041#[doc = "Vector multiply accumulate with scalar"]
29042#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_lane_u32)"]
29043#[inline]
29044#[target_feature(enable = "neon")]
29045#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29046#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32", LANE = 1))]
29047#[cfg_attr(
29048    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29049    assert_instr(mla, LANE = 1)
29050)]
29051#[rustc_legacy_const_generics(3)]
29052#[cfg_attr(
29053    not(target_arch = "arm"),
29054    stable(feature = "neon_intrinsics", since = "1.59.0")
29055)]
29056#[cfg_attr(
29057    target_arch = "arm",
29058    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29059)]
29060pub fn vmla_lane_u32<const LANE: i32>(a: uint32x2_t, b: uint32x2_t, c: uint32x2_t) -> uint32x2_t {
29061    static_assert_uimm_bits!(LANE, 1);
29062    unsafe { vmla_u32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
29063}
29064#[doc = "Vector multiply accumulate with scalar"]
29065#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_laneq_s32)"]
29066#[inline]
29067#[target_feature(enable = "neon")]
29068#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29069#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32", LANE = 1))]
29070#[cfg_attr(
29071    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29072    assert_instr(mla, LANE = 1)
29073)]
29074#[rustc_legacy_const_generics(3)]
29075#[cfg_attr(
29076    not(target_arch = "arm"),
29077    stable(feature = "neon_intrinsics", since = "1.59.0")
29078)]
29079#[cfg_attr(
29080    target_arch = "arm",
29081    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29082)]
29083pub fn vmla_laneq_s32<const LANE: i32>(a: int32x2_t, b: int32x2_t, c: int32x4_t) -> int32x2_t {
29084    static_assert_uimm_bits!(LANE, 2);
29085    unsafe { vmla_s32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
29086}
29087#[doc = "Vector multiply accumulate with scalar"]
29088#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_laneq_u32)"]
29089#[inline]
29090#[target_feature(enable = "neon")]
29091#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29092#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32", LANE = 1))]
29093#[cfg_attr(
29094    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29095    assert_instr(mla, LANE = 1)
29096)]
29097#[rustc_legacy_const_generics(3)]
29098#[cfg_attr(
29099    not(target_arch = "arm"),
29100    stable(feature = "neon_intrinsics", since = "1.59.0")
29101)]
29102#[cfg_attr(
29103    target_arch = "arm",
29104    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29105)]
29106pub fn vmla_laneq_u32<const LANE: i32>(a: uint32x2_t, b: uint32x2_t, c: uint32x4_t) -> uint32x2_t {
29107    static_assert_uimm_bits!(LANE, 2);
29108    unsafe { vmla_u32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
29109}
29110#[doc = "Vector multiply accumulate with scalar"]
29111#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_lane_s32)"]
29112#[inline]
29113#[target_feature(enable = "neon")]
29114#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29115#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32", LANE = 1))]
29116#[cfg_attr(
29117    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29118    assert_instr(mla, LANE = 1)
29119)]
29120#[rustc_legacy_const_generics(3)]
29121#[cfg_attr(
29122    not(target_arch = "arm"),
29123    stable(feature = "neon_intrinsics", since = "1.59.0")
29124)]
29125#[cfg_attr(
29126    target_arch = "arm",
29127    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29128)]
29129pub fn vmlaq_lane_s32<const LANE: i32>(a: int32x4_t, b: int32x4_t, c: int32x2_t) -> int32x4_t {
29130    static_assert_uimm_bits!(LANE, 1);
29131    unsafe {
29132        vmlaq_s32(
29133            a,
29134            b,
29135            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
29136        )
29137    }
29138}
29139#[doc = "Vector multiply accumulate with scalar"]
29140#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_lane_u32)"]
29141#[inline]
29142#[target_feature(enable = "neon")]
29143#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29144#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32", LANE = 1))]
29145#[cfg_attr(
29146    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29147    assert_instr(mla, LANE = 1)
29148)]
29149#[rustc_legacy_const_generics(3)]
29150#[cfg_attr(
29151    not(target_arch = "arm"),
29152    stable(feature = "neon_intrinsics", since = "1.59.0")
29153)]
29154#[cfg_attr(
29155    target_arch = "arm",
29156    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29157)]
29158pub fn vmlaq_lane_u32<const LANE: i32>(a: uint32x4_t, b: uint32x4_t, c: uint32x2_t) -> uint32x4_t {
29159    static_assert_uimm_bits!(LANE, 1);
29160    unsafe {
29161        vmlaq_u32(
29162            a,
29163            b,
29164            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
29165        )
29166    }
29167}
29168#[doc = "Vector multiply accumulate with scalar"]
29169#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_laneq_s32)"]
29170#[inline]
29171#[target_feature(enable = "neon")]
29172#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29173#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32", LANE = 1))]
29174#[cfg_attr(
29175    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29176    assert_instr(mla, LANE = 1)
29177)]
29178#[rustc_legacy_const_generics(3)]
29179#[cfg_attr(
29180    not(target_arch = "arm"),
29181    stable(feature = "neon_intrinsics", since = "1.59.0")
29182)]
29183#[cfg_attr(
29184    target_arch = "arm",
29185    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29186)]
29187pub fn vmlaq_laneq_s32<const LANE: i32>(a: int32x4_t, b: int32x4_t, c: int32x4_t) -> int32x4_t {
29188    static_assert_uimm_bits!(LANE, 2);
29189    unsafe {
29190        vmlaq_s32(
29191            a,
29192            b,
29193            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
29194        )
29195    }
29196}
29197#[doc = "Vector multiply accumulate with scalar"]
29198#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_laneq_u32)"]
29199#[inline]
29200#[target_feature(enable = "neon")]
29201#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29202#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32", LANE = 1))]
29203#[cfg_attr(
29204    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29205    assert_instr(mla, LANE = 1)
29206)]
29207#[rustc_legacy_const_generics(3)]
29208#[cfg_attr(
29209    not(target_arch = "arm"),
29210    stable(feature = "neon_intrinsics", since = "1.59.0")
29211)]
29212#[cfg_attr(
29213    target_arch = "arm",
29214    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29215)]
29216pub fn vmlaq_laneq_u32<const LANE: i32>(a: uint32x4_t, b: uint32x4_t, c: uint32x4_t) -> uint32x4_t {
29217    static_assert_uimm_bits!(LANE, 2);
29218    unsafe {
29219        vmlaq_u32(
29220            a,
29221            b,
29222            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
29223        )
29224    }
29225}
29226#[doc = "Vector multiply accumulate with scalar"]
29227#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_n_f32)"]
29228#[inline]
29229#[target_feature(enable = "neon")]
29230#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29231#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.f32"))]
29232#[cfg_attr(
29233    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29234    assert_instr(fmul)
29235)]
29236#[cfg_attr(
29237    not(target_arch = "arm"),
29238    stable(feature = "neon_intrinsics", since = "1.59.0")
29239)]
29240#[cfg_attr(
29241    target_arch = "arm",
29242    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29243)]
29244pub fn vmla_n_f32(a: float32x2_t, b: float32x2_t, c: f32) -> float32x2_t {
29245    vmla_f32(a, b, vdup_n_f32(c))
29246}
29247#[doc = "Vector multiply accumulate with scalar"]
29248#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_n_f32)"]
29249#[inline]
29250#[target_feature(enable = "neon")]
29251#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29252#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.f32"))]
29253#[cfg_attr(
29254    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29255    assert_instr(fmul)
29256)]
29257#[cfg_attr(
29258    not(target_arch = "arm"),
29259    stable(feature = "neon_intrinsics", since = "1.59.0")
29260)]
29261#[cfg_attr(
29262    target_arch = "arm",
29263    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29264)]
29265pub fn vmlaq_n_f32(a: float32x4_t, b: float32x4_t, c: f32) -> float32x4_t {
29266    vmlaq_f32(a, b, vdupq_n_f32(c))
29267}
29268#[doc = "Vector multiply accumulate with scalar"]
29269#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_n_s16)"]
29270#[inline]
29271#[target_feature(enable = "neon")]
29272#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29273#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16"))]
29274#[cfg_attr(
29275    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29276    assert_instr(mla)
29277)]
29278#[cfg_attr(
29279    not(target_arch = "arm"),
29280    stable(feature = "neon_intrinsics", since = "1.59.0")
29281)]
29282#[cfg_attr(
29283    target_arch = "arm",
29284    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29285)]
29286pub fn vmla_n_s16(a: int16x4_t, b: int16x4_t, c: i16) -> int16x4_t {
29287    vmla_s16(a, b, vdup_n_s16(c))
29288}
29289#[doc = "Vector multiply accumulate with scalar"]
29290#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_n_s16)"]
29291#[inline]
29292#[target_feature(enable = "neon")]
29293#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29294#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16"))]
29295#[cfg_attr(
29296    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29297    assert_instr(mla)
29298)]
29299#[cfg_attr(
29300    not(target_arch = "arm"),
29301    stable(feature = "neon_intrinsics", since = "1.59.0")
29302)]
29303#[cfg_attr(
29304    target_arch = "arm",
29305    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29306)]
29307pub fn vmlaq_n_s16(a: int16x8_t, b: int16x8_t, c: i16) -> int16x8_t {
29308    vmlaq_s16(a, b, vdupq_n_s16(c))
29309}
29310#[doc = "Vector multiply accumulate with scalar"]
29311#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_n_u16)"]
29312#[inline]
29313#[target_feature(enable = "neon")]
29314#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29315#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16"))]
29316#[cfg_attr(
29317    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29318    assert_instr(mla)
29319)]
29320#[cfg_attr(
29321    not(target_arch = "arm"),
29322    stable(feature = "neon_intrinsics", since = "1.59.0")
29323)]
29324#[cfg_attr(
29325    target_arch = "arm",
29326    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29327)]
29328pub fn vmla_n_u16(a: uint16x4_t, b: uint16x4_t, c: u16) -> uint16x4_t {
29329    vmla_u16(a, b, vdup_n_u16(c))
29330}
29331#[doc = "Vector multiply accumulate with scalar"]
29332#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_n_u16)"]
29333#[inline]
29334#[target_feature(enable = "neon")]
29335#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29336#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16"))]
29337#[cfg_attr(
29338    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29339    assert_instr(mla)
29340)]
29341#[cfg_attr(
29342    not(target_arch = "arm"),
29343    stable(feature = "neon_intrinsics", since = "1.59.0")
29344)]
29345#[cfg_attr(
29346    target_arch = "arm",
29347    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29348)]
29349pub fn vmlaq_n_u16(a: uint16x8_t, b: uint16x8_t, c: u16) -> uint16x8_t {
29350    vmlaq_u16(a, b, vdupq_n_u16(c))
29351}
29352#[doc = "Vector multiply accumulate with scalar"]
29353#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_n_s32)"]
29354#[inline]
29355#[target_feature(enable = "neon")]
29356#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29357#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32"))]
29358#[cfg_attr(
29359    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29360    assert_instr(mla)
29361)]
29362#[cfg_attr(
29363    not(target_arch = "arm"),
29364    stable(feature = "neon_intrinsics", since = "1.59.0")
29365)]
29366#[cfg_attr(
29367    target_arch = "arm",
29368    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29369)]
29370pub fn vmla_n_s32(a: int32x2_t, b: int32x2_t, c: i32) -> int32x2_t {
29371    vmla_s32(a, b, vdup_n_s32(c))
29372}
29373#[doc = "Vector multiply accumulate with scalar"]
29374#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_n_s32)"]
29375#[inline]
29376#[target_feature(enable = "neon")]
29377#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29378#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32"))]
29379#[cfg_attr(
29380    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29381    assert_instr(mla)
29382)]
29383#[cfg_attr(
29384    not(target_arch = "arm"),
29385    stable(feature = "neon_intrinsics", since = "1.59.0")
29386)]
29387#[cfg_attr(
29388    target_arch = "arm",
29389    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29390)]
29391pub fn vmlaq_n_s32(a: int32x4_t, b: int32x4_t, c: i32) -> int32x4_t {
29392    vmlaq_s32(a, b, vdupq_n_s32(c))
29393}
29394#[doc = "Vector multiply accumulate with scalar"]
29395#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_n_u32)"]
29396#[inline]
29397#[target_feature(enable = "neon")]
29398#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29399#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32"))]
29400#[cfg_attr(
29401    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29402    assert_instr(mla)
29403)]
29404#[cfg_attr(
29405    not(target_arch = "arm"),
29406    stable(feature = "neon_intrinsics", since = "1.59.0")
29407)]
29408#[cfg_attr(
29409    target_arch = "arm",
29410    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29411)]
29412pub fn vmla_n_u32(a: uint32x2_t, b: uint32x2_t, c: u32) -> uint32x2_t {
29413    vmla_u32(a, b, vdup_n_u32(c))
29414}
29415#[doc = "Vector multiply accumulate with scalar"]
29416#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_n_u32)"]
29417#[inline]
29418#[target_feature(enable = "neon")]
29419#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29420#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32"))]
29421#[cfg_attr(
29422    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29423    assert_instr(mla)
29424)]
29425#[cfg_attr(
29426    not(target_arch = "arm"),
29427    stable(feature = "neon_intrinsics", since = "1.59.0")
29428)]
29429#[cfg_attr(
29430    target_arch = "arm",
29431    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29432)]
29433pub fn vmlaq_n_u32(a: uint32x4_t, b: uint32x4_t, c: u32) -> uint32x4_t {
29434    vmlaq_u32(a, b, vdupq_n_u32(c))
29435}
29436#[doc = "Multiply-add to accumulator"]
29437#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_s8)"]
29438#[inline]
29439#[target_feature(enable = "neon")]
29440#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29441#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i8"))]
29442#[cfg_attr(
29443    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29444    assert_instr(mla)
29445)]
29446#[cfg_attr(
29447    not(target_arch = "arm"),
29448    stable(feature = "neon_intrinsics", since = "1.59.0")
29449)]
29450#[cfg_attr(
29451    target_arch = "arm",
29452    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29453)]
29454pub fn vmla_s8(a: int8x8_t, b: int8x8_t, c: int8x8_t) -> int8x8_t {
29455    unsafe { simd_add(a, simd_mul(b, c)) }
29456}
29457#[doc = "Multiply-add to accumulator"]
29458#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_s8)"]
29459#[inline]
29460#[target_feature(enable = "neon")]
29461#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29462#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i8"))]
29463#[cfg_attr(
29464    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29465    assert_instr(mla)
29466)]
29467#[cfg_attr(
29468    not(target_arch = "arm"),
29469    stable(feature = "neon_intrinsics", since = "1.59.0")
29470)]
29471#[cfg_attr(
29472    target_arch = "arm",
29473    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29474)]
29475pub fn vmlaq_s8(a: int8x16_t, b: int8x16_t, c: int8x16_t) -> int8x16_t {
29476    unsafe { simd_add(a, simd_mul(b, c)) }
29477}
29478#[doc = "Multiply-add to accumulator"]
29479#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_s16)"]
29480#[inline]
29481#[target_feature(enable = "neon")]
29482#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29483#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16"))]
29484#[cfg_attr(
29485    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29486    assert_instr(mla)
29487)]
29488#[cfg_attr(
29489    not(target_arch = "arm"),
29490    stable(feature = "neon_intrinsics", since = "1.59.0")
29491)]
29492#[cfg_attr(
29493    target_arch = "arm",
29494    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29495)]
29496pub fn vmla_s16(a: int16x4_t, b: int16x4_t, c: int16x4_t) -> int16x4_t {
29497    unsafe { simd_add(a, simd_mul(b, c)) }
29498}
29499#[doc = "Multiply-add to accumulator"]
29500#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_s16)"]
29501#[inline]
29502#[target_feature(enable = "neon")]
29503#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29504#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16"))]
29505#[cfg_attr(
29506    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29507    assert_instr(mla)
29508)]
29509#[cfg_attr(
29510    not(target_arch = "arm"),
29511    stable(feature = "neon_intrinsics", since = "1.59.0")
29512)]
29513#[cfg_attr(
29514    target_arch = "arm",
29515    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29516)]
29517pub fn vmlaq_s16(a: int16x8_t, b: int16x8_t, c: int16x8_t) -> int16x8_t {
29518    unsafe { simd_add(a, simd_mul(b, c)) }
29519}
29520#[doc = "Multiply-add to accumulator"]
29521#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_s32)"]
29522#[inline]
29523#[target_feature(enable = "neon")]
29524#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29525#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32"))]
29526#[cfg_attr(
29527    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29528    assert_instr(mla)
29529)]
29530#[cfg_attr(
29531    not(target_arch = "arm"),
29532    stable(feature = "neon_intrinsics", since = "1.59.0")
29533)]
29534#[cfg_attr(
29535    target_arch = "arm",
29536    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29537)]
29538pub fn vmla_s32(a: int32x2_t, b: int32x2_t, c: int32x2_t) -> int32x2_t {
29539    unsafe { simd_add(a, simd_mul(b, c)) }
29540}
29541#[doc = "Multiply-add to accumulator"]
29542#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_s32)"]
29543#[inline]
29544#[target_feature(enable = "neon")]
29545#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29546#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32"))]
29547#[cfg_attr(
29548    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29549    assert_instr(mla)
29550)]
29551#[cfg_attr(
29552    not(target_arch = "arm"),
29553    stable(feature = "neon_intrinsics", since = "1.59.0")
29554)]
29555#[cfg_attr(
29556    target_arch = "arm",
29557    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29558)]
29559pub fn vmlaq_s32(a: int32x4_t, b: int32x4_t, c: int32x4_t) -> int32x4_t {
29560    unsafe { simd_add(a, simd_mul(b, c)) }
29561}
29562#[doc = "Multiply-add to accumulator"]
29563#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_u8)"]
29564#[inline]
29565#[target_feature(enable = "neon")]
29566#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29567#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i8"))]
29568#[cfg_attr(
29569    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29570    assert_instr(mla)
29571)]
29572#[cfg_attr(
29573    not(target_arch = "arm"),
29574    stable(feature = "neon_intrinsics", since = "1.59.0")
29575)]
29576#[cfg_attr(
29577    target_arch = "arm",
29578    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29579)]
29580pub fn vmla_u8(a: uint8x8_t, b: uint8x8_t, c: uint8x8_t) -> uint8x8_t {
29581    unsafe { simd_add(a, simd_mul(b, c)) }
29582}
29583#[doc = "Multiply-add to accumulator"]
29584#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_u8)"]
29585#[inline]
29586#[target_feature(enable = "neon")]
29587#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29588#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i8"))]
29589#[cfg_attr(
29590    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29591    assert_instr(mla)
29592)]
29593#[cfg_attr(
29594    not(target_arch = "arm"),
29595    stable(feature = "neon_intrinsics", since = "1.59.0")
29596)]
29597#[cfg_attr(
29598    target_arch = "arm",
29599    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29600)]
29601pub fn vmlaq_u8(a: uint8x16_t, b: uint8x16_t, c: uint8x16_t) -> uint8x16_t {
29602    unsafe { simd_add(a, simd_mul(b, c)) }
29603}
29604#[doc = "Multiply-add to accumulator"]
29605#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_u16)"]
29606#[inline]
29607#[target_feature(enable = "neon")]
29608#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29609#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16"))]
29610#[cfg_attr(
29611    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29612    assert_instr(mla)
29613)]
29614#[cfg_attr(
29615    not(target_arch = "arm"),
29616    stable(feature = "neon_intrinsics", since = "1.59.0")
29617)]
29618#[cfg_attr(
29619    target_arch = "arm",
29620    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29621)]
29622pub fn vmla_u16(a: uint16x4_t, b: uint16x4_t, c: uint16x4_t) -> uint16x4_t {
29623    unsafe { simd_add(a, simd_mul(b, c)) }
29624}
29625#[doc = "Multiply-add to accumulator"]
29626#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_u16)"]
29627#[inline]
29628#[target_feature(enable = "neon")]
29629#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29630#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16"))]
29631#[cfg_attr(
29632    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29633    assert_instr(mla)
29634)]
29635#[cfg_attr(
29636    not(target_arch = "arm"),
29637    stable(feature = "neon_intrinsics", since = "1.59.0")
29638)]
29639#[cfg_attr(
29640    target_arch = "arm",
29641    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29642)]
29643pub fn vmlaq_u16(a: uint16x8_t, b: uint16x8_t, c: uint16x8_t) -> uint16x8_t {
29644    unsafe { simd_add(a, simd_mul(b, c)) }
29645}
29646#[doc = "Multiply-add to accumulator"]
29647#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_u32)"]
29648#[inline]
29649#[target_feature(enable = "neon")]
29650#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29651#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32"))]
29652#[cfg_attr(
29653    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29654    assert_instr(mla)
29655)]
29656#[cfg_attr(
29657    not(target_arch = "arm"),
29658    stable(feature = "neon_intrinsics", since = "1.59.0")
29659)]
29660#[cfg_attr(
29661    target_arch = "arm",
29662    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29663)]
29664pub fn vmla_u32(a: uint32x2_t, b: uint32x2_t, c: uint32x2_t) -> uint32x2_t {
29665    unsafe { simd_add(a, simd_mul(b, c)) }
29666}
29667#[doc = "Multiply-add to accumulator"]
29668#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_u32)"]
29669#[inline]
29670#[target_feature(enable = "neon")]
29671#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29672#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32"))]
29673#[cfg_attr(
29674    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29675    assert_instr(mla)
29676)]
29677#[cfg_attr(
29678    not(target_arch = "arm"),
29679    stable(feature = "neon_intrinsics", since = "1.59.0")
29680)]
29681#[cfg_attr(
29682    target_arch = "arm",
29683    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29684)]
29685pub fn vmlaq_u32(a: uint32x4_t, b: uint32x4_t, c: uint32x4_t) -> uint32x4_t {
29686    unsafe { simd_add(a, simd_mul(b, c)) }
29687}
29688#[doc = "Vector widening multiply accumulate with scalar"]
29689#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_lane_s16)"]
29690#[inline]
29691#[target_feature(enable = "neon")]
29692#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29693#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.s16", LANE = 1))]
29694#[cfg_attr(
29695    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29696    assert_instr(smlal, LANE = 1)
29697)]
29698#[rustc_legacy_const_generics(3)]
29699#[cfg_attr(
29700    not(target_arch = "arm"),
29701    stable(feature = "neon_intrinsics", since = "1.59.0")
29702)]
29703#[cfg_attr(
29704    target_arch = "arm",
29705    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29706)]
29707pub fn vmlal_lane_s16<const LANE: i32>(a: int32x4_t, b: int16x4_t, c: int16x4_t) -> int32x4_t {
29708    static_assert_uimm_bits!(LANE, 2);
29709    unsafe {
29710        vmlal_s16(
29711            a,
29712            b,
29713            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
29714        )
29715    }
29716}
29717#[doc = "Vector widening multiply accumulate with scalar"]
29718#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_laneq_s16)"]
29719#[inline]
29720#[target_feature(enable = "neon")]
29721#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29722#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.s16", LANE = 1))]
29723#[cfg_attr(
29724    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29725    assert_instr(smlal, LANE = 1)
29726)]
29727#[rustc_legacy_const_generics(3)]
29728#[cfg_attr(
29729    not(target_arch = "arm"),
29730    stable(feature = "neon_intrinsics", since = "1.59.0")
29731)]
29732#[cfg_attr(
29733    target_arch = "arm",
29734    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29735)]
29736pub fn vmlal_laneq_s16<const LANE: i32>(a: int32x4_t, b: int16x4_t, c: int16x8_t) -> int32x4_t {
29737    static_assert_uimm_bits!(LANE, 3);
29738    unsafe {
29739        vmlal_s16(
29740            a,
29741            b,
29742            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
29743        )
29744    }
29745}
29746#[doc = "Vector widening multiply accumulate with scalar"]
29747#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_lane_s32)"]
29748#[inline]
29749#[target_feature(enable = "neon")]
29750#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29751#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.s32", LANE = 1))]
29752#[cfg_attr(
29753    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29754    assert_instr(smlal, LANE = 1)
29755)]
29756#[rustc_legacy_const_generics(3)]
29757#[cfg_attr(
29758    not(target_arch = "arm"),
29759    stable(feature = "neon_intrinsics", since = "1.59.0")
29760)]
29761#[cfg_attr(
29762    target_arch = "arm",
29763    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29764)]
29765pub fn vmlal_lane_s32<const LANE: i32>(a: int64x2_t, b: int32x2_t, c: int32x2_t) -> int64x2_t {
29766    static_assert_uimm_bits!(LANE, 1);
29767    unsafe { vmlal_s32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
29768}
29769#[doc = "Vector widening multiply accumulate with scalar"]
29770#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_laneq_s32)"]
29771#[inline]
29772#[target_feature(enable = "neon")]
29773#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29774#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.s32", LANE = 1))]
29775#[cfg_attr(
29776    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29777    assert_instr(smlal, LANE = 1)
29778)]
29779#[rustc_legacy_const_generics(3)]
29780#[cfg_attr(
29781    not(target_arch = "arm"),
29782    stable(feature = "neon_intrinsics", since = "1.59.0")
29783)]
29784#[cfg_attr(
29785    target_arch = "arm",
29786    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29787)]
29788pub fn vmlal_laneq_s32<const LANE: i32>(a: int64x2_t, b: int32x2_t, c: int32x4_t) -> int64x2_t {
29789    static_assert_uimm_bits!(LANE, 2);
29790    unsafe { vmlal_s32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
29791}
29792#[doc = "Vector widening multiply accumulate with scalar"]
29793#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_lane_u16)"]
29794#[inline]
29795#[target_feature(enable = "neon")]
29796#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29797#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.u16", LANE = 1))]
29798#[cfg_attr(
29799    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29800    assert_instr(umlal, LANE = 1)
29801)]
29802#[rustc_legacy_const_generics(3)]
29803#[cfg_attr(
29804    not(target_arch = "arm"),
29805    stable(feature = "neon_intrinsics", since = "1.59.0")
29806)]
29807#[cfg_attr(
29808    target_arch = "arm",
29809    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29810)]
29811pub fn vmlal_lane_u16<const LANE: i32>(a: uint32x4_t, b: uint16x4_t, c: uint16x4_t) -> uint32x4_t {
29812    static_assert_uimm_bits!(LANE, 2);
29813    unsafe {
29814        vmlal_u16(
29815            a,
29816            b,
29817            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
29818        )
29819    }
29820}
29821#[doc = "Vector widening multiply accumulate with scalar"]
29822#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_laneq_u16)"]
29823#[inline]
29824#[target_feature(enable = "neon")]
29825#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29826#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.u16", LANE = 1))]
29827#[cfg_attr(
29828    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29829    assert_instr(umlal, LANE = 1)
29830)]
29831#[rustc_legacy_const_generics(3)]
29832#[cfg_attr(
29833    not(target_arch = "arm"),
29834    stable(feature = "neon_intrinsics", since = "1.59.0")
29835)]
29836#[cfg_attr(
29837    target_arch = "arm",
29838    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29839)]
29840pub fn vmlal_laneq_u16<const LANE: i32>(a: uint32x4_t, b: uint16x4_t, c: uint16x8_t) -> uint32x4_t {
29841    static_assert_uimm_bits!(LANE, 3);
29842    unsafe {
29843        vmlal_u16(
29844            a,
29845            b,
29846            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
29847        )
29848    }
29849}
29850#[doc = "Vector widening multiply accumulate with scalar"]
29851#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_lane_u32)"]
29852#[inline]
29853#[target_feature(enable = "neon")]
29854#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29855#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.u32", LANE = 1))]
29856#[cfg_attr(
29857    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29858    assert_instr(umlal, LANE = 1)
29859)]
29860#[rustc_legacy_const_generics(3)]
29861#[cfg_attr(
29862    not(target_arch = "arm"),
29863    stable(feature = "neon_intrinsics", since = "1.59.0")
29864)]
29865#[cfg_attr(
29866    target_arch = "arm",
29867    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29868)]
29869pub fn vmlal_lane_u32<const LANE: i32>(a: uint64x2_t, b: uint32x2_t, c: uint32x2_t) -> uint64x2_t {
29870    static_assert_uimm_bits!(LANE, 1);
29871    unsafe { vmlal_u32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
29872}
29873#[doc = "Vector widening multiply accumulate with scalar"]
29874#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_laneq_u32)"]
29875#[inline]
29876#[target_feature(enable = "neon")]
29877#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29878#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.u32", LANE = 1))]
29879#[cfg_attr(
29880    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29881    assert_instr(umlal, LANE = 1)
29882)]
29883#[rustc_legacy_const_generics(3)]
29884#[cfg_attr(
29885    not(target_arch = "arm"),
29886    stable(feature = "neon_intrinsics", since = "1.59.0")
29887)]
29888#[cfg_attr(
29889    target_arch = "arm",
29890    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29891)]
29892pub fn vmlal_laneq_u32<const LANE: i32>(a: uint64x2_t, b: uint32x2_t, c: uint32x4_t) -> uint64x2_t {
29893    static_assert_uimm_bits!(LANE, 2);
29894    unsafe { vmlal_u32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
29895}
29896#[doc = "Vector widening multiply accumulate with scalar"]
29897#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_n_s16)"]
29898#[inline]
29899#[target_feature(enable = "neon")]
29900#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29901#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.s16"))]
29902#[cfg_attr(
29903    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29904    assert_instr(smlal)
29905)]
29906#[cfg_attr(
29907    not(target_arch = "arm"),
29908    stable(feature = "neon_intrinsics", since = "1.59.0")
29909)]
29910#[cfg_attr(
29911    target_arch = "arm",
29912    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29913)]
29914pub fn vmlal_n_s16(a: int32x4_t, b: int16x4_t, c: i16) -> int32x4_t {
29915    vmlal_s16(a, b, vdup_n_s16(c))
29916}
29917#[doc = "Vector widening multiply accumulate with scalar"]
29918#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_n_s32)"]
29919#[inline]
29920#[target_feature(enable = "neon")]
29921#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29922#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.s32"))]
29923#[cfg_attr(
29924    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29925    assert_instr(smlal)
29926)]
29927#[cfg_attr(
29928    not(target_arch = "arm"),
29929    stable(feature = "neon_intrinsics", since = "1.59.0")
29930)]
29931#[cfg_attr(
29932    target_arch = "arm",
29933    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29934)]
29935pub fn vmlal_n_s32(a: int64x2_t, b: int32x2_t, c: i32) -> int64x2_t {
29936    vmlal_s32(a, b, vdup_n_s32(c))
29937}
29938#[doc = "Vector widening multiply accumulate with scalar"]
29939#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_n_u16)"]
29940#[inline]
29941#[target_feature(enable = "neon")]
29942#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29943#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.u16"))]
29944#[cfg_attr(
29945    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29946    assert_instr(umlal)
29947)]
29948#[cfg_attr(
29949    not(target_arch = "arm"),
29950    stable(feature = "neon_intrinsics", since = "1.59.0")
29951)]
29952#[cfg_attr(
29953    target_arch = "arm",
29954    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29955)]
29956pub fn vmlal_n_u16(a: uint32x4_t, b: uint16x4_t, c: u16) -> uint32x4_t {
29957    vmlal_u16(a, b, vdup_n_u16(c))
29958}
29959#[doc = "Vector widening multiply accumulate with scalar"]
29960#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_n_u32)"]
29961#[inline]
29962#[target_feature(enable = "neon")]
29963#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29964#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.u32"))]
29965#[cfg_attr(
29966    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29967    assert_instr(umlal)
29968)]
29969#[cfg_attr(
29970    not(target_arch = "arm"),
29971    stable(feature = "neon_intrinsics", since = "1.59.0")
29972)]
29973#[cfg_attr(
29974    target_arch = "arm",
29975    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29976)]
29977pub fn vmlal_n_u32(a: uint64x2_t, b: uint32x2_t, c: u32) -> uint64x2_t {
29978    vmlal_u32(a, b, vdup_n_u32(c))
29979}
29980#[doc = "Signed multiply-add long"]
29981#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_s8)"]
29982#[inline]
29983#[target_feature(enable = "neon")]
29984#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29985#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.s8"))]
29986#[cfg_attr(
29987    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29988    assert_instr(smlal)
29989)]
29990#[cfg_attr(
29991    not(target_arch = "arm"),
29992    stable(feature = "neon_intrinsics", since = "1.59.0")
29993)]
29994#[cfg_attr(
29995    target_arch = "arm",
29996    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29997)]
29998pub fn vmlal_s8(a: int16x8_t, b: int8x8_t, c: int8x8_t) -> int16x8_t {
29999    unsafe { simd_add(a, vmull_s8(b, c)) }
30000}
30001#[doc = "Signed multiply-add long"]
30002#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_s16)"]
30003#[inline]
30004#[target_feature(enable = "neon")]
30005#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30006#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.s16"))]
30007#[cfg_attr(
30008    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30009    assert_instr(smlal)
30010)]
30011#[cfg_attr(
30012    not(target_arch = "arm"),
30013    stable(feature = "neon_intrinsics", since = "1.59.0")
30014)]
30015#[cfg_attr(
30016    target_arch = "arm",
30017    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30018)]
30019pub fn vmlal_s16(a: int32x4_t, b: int16x4_t, c: int16x4_t) -> int32x4_t {
30020    unsafe { simd_add(a, vmull_s16(b, c)) }
30021}
30022#[doc = "Signed multiply-add long"]
30023#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_s32)"]
30024#[inline]
30025#[target_feature(enable = "neon")]
30026#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30027#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.s32"))]
30028#[cfg_attr(
30029    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30030    assert_instr(smlal)
30031)]
30032#[cfg_attr(
30033    not(target_arch = "arm"),
30034    stable(feature = "neon_intrinsics", since = "1.59.0")
30035)]
30036#[cfg_attr(
30037    target_arch = "arm",
30038    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30039)]
30040pub fn vmlal_s32(a: int64x2_t, b: int32x2_t, c: int32x2_t) -> int64x2_t {
30041    unsafe { simd_add(a, vmull_s32(b, c)) }
30042}
30043#[doc = "Unsigned multiply-add long"]
30044#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_u8)"]
30045#[inline]
30046#[target_feature(enable = "neon")]
30047#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30048#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.u8"))]
30049#[cfg_attr(
30050    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30051    assert_instr(umlal)
30052)]
30053#[cfg_attr(
30054    not(target_arch = "arm"),
30055    stable(feature = "neon_intrinsics", since = "1.59.0")
30056)]
30057#[cfg_attr(
30058    target_arch = "arm",
30059    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30060)]
30061pub fn vmlal_u8(a: uint16x8_t, b: uint8x8_t, c: uint8x8_t) -> uint16x8_t {
30062    unsafe { simd_add(a, vmull_u8(b, c)) }
30063}
30064#[doc = "Unsigned multiply-add long"]
30065#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_u16)"]
30066#[inline]
30067#[target_feature(enable = "neon")]
30068#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30069#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.u16"))]
30070#[cfg_attr(
30071    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30072    assert_instr(umlal)
30073)]
30074#[cfg_attr(
30075    not(target_arch = "arm"),
30076    stable(feature = "neon_intrinsics", since = "1.59.0")
30077)]
30078#[cfg_attr(
30079    target_arch = "arm",
30080    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30081)]
30082pub fn vmlal_u16(a: uint32x4_t, b: uint16x4_t, c: uint16x4_t) -> uint32x4_t {
30083    unsafe { simd_add(a, vmull_u16(b, c)) }
30084}
30085#[doc = "Unsigned multiply-add long"]
30086#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_u32)"]
30087#[inline]
30088#[target_feature(enable = "neon")]
30089#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30090#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.u32"))]
30091#[cfg_attr(
30092    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30093    assert_instr(umlal)
30094)]
30095#[cfg_attr(
30096    not(target_arch = "arm"),
30097    stable(feature = "neon_intrinsics", since = "1.59.0")
30098)]
30099#[cfg_attr(
30100    target_arch = "arm",
30101    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30102)]
30103pub fn vmlal_u32(a: uint64x2_t, b: uint32x2_t, c: uint32x2_t) -> uint64x2_t {
30104    unsafe { simd_add(a, vmull_u32(b, c)) }
30105}
30106#[doc = "Floating-point multiply-subtract from accumulator"]
30107#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_f32)"]
30108#[inline]
30109#[target_feature(enable = "neon")]
30110#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30111#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.f32"))]
30112#[cfg_attr(
30113    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30114    assert_instr(fmul)
30115)]
30116#[cfg_attr(
30117    not(target_arch = "arm"),
30118    stable(feature = "neon_intrinsics", since = "1.59.0")
30119)]
30120#[cfg_attr(
30121    target_arch = "arm",
30122    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30123)]
30124pub fn vmls_f32(a: float32x2_t, b: float32x2_t, c: float32x2_t) -> float32x2_t {
30125    unsafe { simd_sub(a, simd_mul(b, c)) }
30126}
30127#[doc = "Floating-point multiply-subtract from accumulator"]
30128#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_f32)"]
30129#[inline]
30130#[target_feature(enable = "neon")]
30131#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30132#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.f32"))]
30133#[cfg_attr(
30134    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30135    assert_instr(fmul)
30136)]
30137#[cfg_attr(
30138    not(target_arch = "arm"),
30139    stable(feature = "neon_intrinsics", since = "1.59.0")
30140)]
30141#[cfg_attr(
30142    target_arch = "arm",
30143    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30144)]
30145pub fn vmlsq_f32(a: float32x4_t, b: float32x4_t, c: float32x4_t) -> float32x4_t {
30146    unsafe { simd_sub(a, simd_mul(b, c)) }
30147}
30148#[doc = "Vector multiply subtract with scalar"]
30149#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_lane_f32)"]
30150#[inline]
30151#[target_feature(enable = "neon")]
30152#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30153#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.f32", LANE = 1))]
30154#[cfg_attr(
30155    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30156    assert_instr(fmul, LANE = 1)
30157)]
30158#[rustc_legacy_const_generics(3)]
30159#[cfg_attr(
30160    not(target_arch = "arm"),
30161    stable(feature = "neon_intrinsics", since = "1.59.0")
30162)]
30163#[cfg_attr(
30164    target_arch = "arm",
30165    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30166)]
30167pub fn vmls_lane_f32<const LANE: i32>(
30168    a: float32x2_t,
30169    b: float32x2_t,
30170    c: float32x2_t,
30171) -> float32x2_t {
30172    static_assert_uimm_bits!(LANE, 1);
30173    unsafe { vmls_f32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
30174}
30175#[doc = "Vector multiply subtract with scalar"]
30176#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_laneq_f32)"]
30177#[inline]
30178#[target_feature(enable = "neon")]
30179#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30180#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.f32", LANE = 1))]
30181#[cfg_attr(
30182    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30183    assert_instr(fmul, LANE = 1)
30184)]
30185#[rustc_legacy_const_generics(3)]
30186#[cfg_attr(
30187    not(target_arch = "arm"),
30188    stable(feature = "neon_intrinsics", since = "1.59.0")
30189)]
30190#[cfg_attr(
30191    target_arch = "arm",
30192    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30193)]
30194pub fn vmls_laneq_f32<const LANE: i32>(
30195    a: float32x2_t,
30196    b: float32x2_t,
30197    c: float32x4_t,
30198) -> float32x2_t {
30199    static_assert_uimm_bits!(LANE, 2);
30200    unsafe { vmls_f32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
30201}
30202#[doc = "Vector multiply subtract with scalar"]
30203#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_lane_f32)"]
30204#[inline]
30205#[target_feature(enable = "neon")]
30206#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30207#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.f32", LANE = 1))]
30208#[cfg_attr(
30209    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30210    assert_instr(fmul, LANE = 1)
30211)]
30212#[rustc_legacy_const_generics(3)]
30213#[cfg_attr(
30214    not(target_arch = "arm"),
30215    stable(feature = "neon_intrinsics", since = "1.59.0")
30216)]
30217#[cfg_attr(
30218    target_arch = "arm",
30219    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30220)]
30221pub fn vmlsq_lane_f32<const LANE: i32>(
30222    a: float32x4_t,
30223    b: float32x4_t,
30224    c: float32x2_t,
30225) -> float32x4_t {
30226    static_assert_uimm_bits!(LANE, 1);
30227    unsafe {
30228        vmlsq_f32(
30229            a,
30230            b,
30231            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
30232        )
30233    }
30234}
30235#[doc = "Vector multiply subtract with scalar"]
30236#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_laneq_f32)"]
30237#[inline]
30238#[target_feature(enable = "neon")]
30239#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30240#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.f32", LANE = 1))]
30241#[cfg_attr(
30242    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30243    assert_instr(fmul, LANE = 1)
30244)]
30245#[rustc_legacy_const_generics(3)]
30246#[cfg_attr(
30247    not(target_arch = "arm"),
30248    stable(feature = "neon_intrinsics", since = "1.59.0")
30249)]
30250#[cfg_attr(
30251    target_arch = "arm",
30252    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30253)]
30254pub fn vmlsq_laneq_f32<const LANE: i32>(
30255    a: float32x4_t,
30256    b: float32x4_t,
30257    c: float32x4_t,
30258) -> float32x4_t {
30259    static_assert_uimm_bits!(LANE, 2);
30260    unsafe {
30261        vmlsq_f32(
30262            a,
30263            b,
30264            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
30265        )
30266    }
30267}
30268#[doc = "Vector multiply subtract with scalar"]
30269#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_lane_s16)"]
30270#[inline]
30271#[target_feature(enable = "neon")]
30272#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30273#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16", LANE = 1))]
30274#[cfg_attr(
30275    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30276    assert_instr(mls, LANE = 1)
30277)]
30278#[rustc_legacy_const_generics(3)]
30279#[cfg_attr(
30280    not(target_arch = "arm"),
30281    stable(feature = "neon_intrinsics", since = "1.59.0")
30282)]
30283#[cfg_attr(
30284    target_arch = "arm",
30285    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30286)]
30287pub fn vmls_lane_s16<const LANE: i32>(a: int16x4_t, b: int16x4_t, c: int16x4_t) -> int16x4_t {
30288    static_assert_uimm_bits!(LANE, 2);
30289    unsafe {
30290        vmls_s16(
30291            a,
30292            b,
30293            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
30294        )
30295    }
30296}
30297#[doc = "Vector multiply subtract with scalar"]
30298#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_lane_u16)"]
30299#[inline]
30300#[target_feature(enable = "neon")]
30301#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30302#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16", LANE = 1))]
30303#[cfg_attr(
30304    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30305    assert_instr(mls, LANE = 1)
30306)]
30307#[rustc_legacy_const_generics(3)]
30308#[cfg_attr(
30309    not(target_arch = "arm"),
30310    stable(feature = "neon_intrinsics", since = "1.59.0")
30311)]
30312#[cfg_attr(
30313    target_arch = "arm",
30314    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30315)]
30316pub fn vmls_lane_u16<const LANE: i32>(a: uint16x4_t, b: uint16x4_t, c: uint16x4_t) -> uint16x4_t {
30317    static_assert_uimm_bits!(LANE, 2);
30318    unsafe {
30319        vmls_u16(
30320            a,
30321            b,
30322            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
30323        )
30324    }
30325}
30326#[doc = "Vector multiply subtract with scalar"]
30327#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_laneq_s16)"]
30328#[inline]
30329#[target_feature(enable = "neon")]
30330#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30331#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16", LANE = 1))]
30332#[cfg_attr(
30333    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30334    assert_instr(mls, LANE = 1)
30335)]
30336#[rustc_legacy_const_generics(3)]
30337#[cfg_attr(
30338    not(target_arch = "arm"),
30339    stable(feature = "neon_intrinsics", since = "1.59.0")
30340)]
30341#[cfg_attr(
30342    target_arch = "arm",
30343    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30344)]
30345pub fn vmls_laneq_s16<const LANE: i32>(a: int16x4_t, b: int16x4_t, c: int16x8_t) -> int16x4_t {
30346    static_assert_uimm_bits!(LANE, 3);
30347    unsafe {
30348        vmls_s16(
30349            a,
30350            b,
30351            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
30352        )
30353    }
30354}
30355#[doc = "Vector multiply subtract with scalar"]
30356#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_laneq_u16)"]
30357#[inline]
30358#[target_feature(enable = "neon")]
30359#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30360#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16", LANE = 1))]
30361#[cfg_attr(
30362    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30363    assert_instr(mls, LANE = 1)
30364)]
30365#[rustc_legacy_const_generics(3)]
30366#[cfg_attr(
30367    not(target_arch = "arm"),
30368    stable(feature = "neon_intrinsics", since = "1.59.0")
30369)]
30370#[cfg_attr(
30371    target_arch = "arm",
30372    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30373)]
30374pub fn vmls_laneq_u16<const LANE: i32>(a: uint16x4_t, b: uint16x4_t, c: uint16x8_t) -> uint16x4_t {
30375    static_assert_uimm_bits!(LANE, 3);
30376    unsafe {
30377        vmls_u16(
30378            a,
30379            b,
30380            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
30381        )
30382    }
30383}
30384#[doc = "Vector multiply subtract with scalar"]
30385#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_lane_s16)"]
30386#[inline]
30387#[target_feature(enable = "neon")]
30388#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30389#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16", LANE = 1))]
30390#[cfg_attr(
30391    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30392    assert_instr(mls, LANE = 1)
30393)]
30394#[rustc_legacy_const_generics(3)]
30395#[cfg_attr(
30396    not(target_arch = "arm"),
30397    stable(feature = "neon_intrinsics", since = "1.59.0")
30398)]
30399#[cfg_attr(
30400    target_arch = "arm",
30401    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30402)]
30403pub fn vmlsq_lane_s16<const LANE: i32>(a: int16x8_t, b: int16x8_t, c: int16x4_t) -> int16x8_t {
30404    static_assert_uimm_bits!(LANE, 2);
30405    unsafe {
30406        vmlsq_s16(
30407            a,
30408            b,
30409            simd_shuffle!(
30410                c,
30411                c,
30412                [
30413                    LANE as u32,
30414                    LANE as u32,
30415                    LANE as u32,
30416                    LANE as u32,
30417                    LANE as u32,
30418                    LANE as u32,
30419                    LANE as u32,
30420                    LANE as u32
30421                ]
30422            ),
30423        )
30424    }
30425}
30426#[doc = "Vector multiply subtract with scalar"]
30427#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_lane_u16)"]
30428#[inline]
30429#[target_feature(enable = "neon")]
30430#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30431#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16", LANE = 1))]
30432#[cfg_attr(
30433    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30434    assert_instr(mls, LANE = 1)
30435)]
30436#[rustc_legacy_const_generics(3)]
30437#[cfg_attr(
30438    not(target_arch = "arm"),
30439    stable(feature = "neon_intrinsics", since = "1.59.0")
30440)]
30441#[cfg_attr(
30442    target_arch = "arm",
30443    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30444)]
30445pub fn vmlsq_lane_u16<const LANE: i32>(a: uint16x8_t, b: uint16x8_t, c: uint16x4_t) -> uint16x8_t {
30446    static_assert_uimm_bits!(LANE, 2);
30447    unsafe {
30448        vmlsq_u16(
30449            a,
30450            b,
30451            simd_shuffle!(
30452                c,
30453                c,
30454                [
30455                    LANE as u32,
30456                    LANE as u32,
30457                    LANE as u32,
30458                    LANE as u32,
30459                    LANE as u32,
30460                    LANE as u32,
30461                    LANE as u32,
30462                    LANE as u32
30463                ]
30464            ),
30465        )
30466    }
30467}
30468#[doc = "Vector multiply subtract with scalar"]
30469#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_laneq_s16)"]
30470#[inline]
30471#[target_feature(enable = "neon")]
30472#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30473#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16", LANE = 1))]
30474#[cfg_attr(
30475    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30476    assert_instr(mls, LANE = 1)
30477)]
30478#[rustc_legacy_const_generics(3)]
30479#[cfg_attr(
30480    not(target_arch = "arm"),
30481    stable(feature = "neon_intrinsics", since = "1.59.0")
30482)]
30483#[cfg_attr(
30484    target_arch = "arm",
30485    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30486)]
30487pub fn vmlsq_laneq_s16<const LANE: i32>(a: int16x8_t, b: int16x8_t, c: int16x8_t) -> int16x8_t {
30488    static_assert_uimm_bits!(LANE, 3);
30489    unsafe {
30490        vmlsq_s16(
30491            a,
30492            b,
30493            simd_shuffle!(
30494                c,
30495                c,
30496                [
30497                    LANE as u32,
30498                    LANE as u32,
30499                    LANE as u32,
30500                    LANE as u32,
30501                    LANE as u32,
30502                    LANE as u32,
30503                    LANE as u32,
30504                    LANE as u32
30505                ]
30506            ),
30507        )
30508    }
30509}
30510#[doc = "Vector multiply subtract with scalar"]
30511#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_laneq_u16)"]
30512#[inline]
30513#[target_feature(enable = "neon")]
30514#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30515#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16", LANE = 1))]
30516#[cfg_attr(
30517    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30518    assert_instr(mls, LANE = 1)
30519)]
30520#[rustc_legacy_const_generics(3)]
30521#[cfg_attr(
30522    not(target_arch = "arm"),
30523    stable(feature = "neon_intrinsics", since = "1.59.0")
30524)]
30525#[cfg_attr(
30526    target_arch = "arm",
30527    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30528)]
30529pub fn vmlsq_laneq_u16<const LANE: i32>(a: uint16x8_t, b: uint16x8_t, c: uint16x8_t) -> uint16x8_t {
30530    static_assert_uimm_bits!(LANE, 3);
30531    unsafe {
30532        vmlsq_u16(
30533            a,
30534            b,
30535            simd_shuffle!(
30536                c,
30537                c,
30538                [
30539                    LANE as u32,
30540                    LANE as u32,
30541                    LANE as u32,
30542                    LANE as u32,
30543                    LANE as u32,
30544                    LANE as u32,
30545                    LANE as u32,
30546                    LANE as u32
30547                ]
30548            ),
30549        )
30550    }
30551}
30552#[doc = "Vector multiply subtract with scalar"]
30553#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_lane_s32)"]
30554#[inline]
30555#[target_feature(enable = "neon")]
30556#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30557#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32", LANE = 1))]
30558#[cfg_attr(
30559    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30560    assert_instr(mls, LANE = 1)
30561)]
30562#[rustc_legacy_const_generics(3)]
30563#[cfg_attr(
30564    not(target_arch = "arm"),
30565    stable(feature = "neon_intrinsics", since = "1.59.0")
30566)]
30567#[cfg_attr(
30568    target_arch = "arm",
30569    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30570)]
30571pub fn vmls_lane_s32<const LANE: i32>(a: int32x2_t, b: int32x2_t, c: int32x2_t) -> int32x2_t {
30572    static_assert_uimm_bits!(LANE, 1);
30573    unsafe { vmls_s32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
30574}
30575#[doc = "Vector multiply subtract with scalar"]
30576#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_lane_u32)"]
30577#[inline]
30578#[target_feature(enable = "neon")]
30579#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30580#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32", LANE = 1))]
30581#[cfg_attr(
30582    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30583    assert_instr(mls, LANE = 1)
30584)]
30585#[rustc_legacy_const_generics(3)]
30586#[cfg_attr(
30587    not(target_arch = "arm"),
30588    stable(feature = "neon_intrinsics", since = "1.59.0")
30589)]
30590#[cfg_attr(
30591    target_arch = "arm",
30592    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30593)]
30594pub fn vmls_lane_u32<const LANE: i32>(a: uint32x2_t, b: uint32x2_t, c: uint32x2_t) -> uint32x2_t {
30595    static_assert_uimm_bits!(LANE, 1);
30596    unsafe { vmls_u32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
30597}
30598#[doc = "Vector multiply subtract with scalar"]
30599#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_laneq_s32)"]
30600#[inline]
30601#[target_feature(enable = "neon")]
30602#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30603#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32", LANE = 1))]
30604#[cfg_attr(
30605    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30606    assert_instr(mls, LANE = 1)
30607)]
30608#[rustc_legacy_const_generics(3)]
30609#[cfg_attr(
30610    not(target_arch = "arm"),
30611    stable(feature = "neon_intrinsics", since = "1.59.0")
30612)]
30613#[cfg_attr(
30614    target_arch = "arm",
30615    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30616)]
30617pub fn vmls_laneq_s32<const LANE: i32>(a: int32x2_t, b: int32x2_t, c: int32x4_t) -> int32x2_t {
30618    static_assert_uimm_bits!(LANE, 2);
30619    unsafe { vmls_s32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
30620}
30621#[doc = "Vector multiply subtract with scalar"]
30622#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_laneq_u32)"]
30623#[inline]
30624#[target_feature(enable = "neon")]
30625#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30626#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32", LANE = 1))]
30627#[cfg_attr(
30628    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30629    assert_instr(mls, LANE = 1)
30630)]
30631#[rustc_legacy_const_generics(3)]
30632#[cfg_attr(
30633    not(target_arch = "arm"),
30634    stable(feature = "neon_intrinsics", since = "1.59.0")
30635)]
30636#[cfg_attr(
30637    target_arch = "arm",
30638    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30639)]
30640pub fn vmls_laneq_u32<const LANE: i32>(a: uint32x2_t, b: uint32x2_t, c: uint32x4_t) -> uint32x2_t {
30641    static_assert_uimm_bits!(LANE, 2);
30642    unsafe { vmls_u32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
30643}
30644#[doc = "Vector multiply subtract with scalar"]
30645#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_lane_s32)"]
30646#[inline]
30647#[target_feature(enable = "neon")]
30648#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30649#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32", LANE = 1))]
30650#[cfg_attr(
30651    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30652    assert_instr(mls, LANE = 1)
30653)]
30654#[rustc_legacy_const_generics(3)]
30655#[cfg_attr(
30656    not(target_arch = "arm"),
30657    stable(feature = "neon_intrinsics", since = "1.59.0")
30658)]
30659#[cfg_attr(
30660    target_arch = "arm",
30661    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30662)]
30663pub fn vmlsq_lane_s32<const LANE: i32>(a: int32x4_t, b: int32x4_t, c: int32x2_t) -> int32x4_t {
30664    static_assert_uimm_bits!(LANE, 1);
30665    unsafe {
30666        vmlsq_s32(
30667            a,
30668            b,
30669            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
30670        )
30671    }
30672}
30673#[doc = "Vector multiply subtract with scalar"]
30674#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_lane_u32)"]
30675#[inline]
30676#[target_feature(enable = "neon")]
30677#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30678#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32", LANE = 1))]
30679#[cfg_attr(
30680    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30681    assert_instr(mls, LANE = 1)
30682)]
30683#[rustc_legacy_const_generics(3)]
30684#[cfg_attr(
30685    not(target_arch = "arm"),
30686    stable(feature = "neon_intrinsics", since = "1.59.0")
30687)]
30688#[cfg_attr(
30689    target_arch = "arm",
30690    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30691)]
30692pub fn vmlsq_lane_u32<const LANE: i32>(a: uint32x4_t, b: uint32x4_t, c: uint32x2_t) -> uint32x4_t {
30693    static_assert_uimm_bits!(LANE, 1);
30694    unsafe {
30695        vmlsq_u32(
30696            a,
30697            b,
30698            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
30699        )
30700    }
30701}
30702#[doc = "Vector multiply subtract with scalar"]
30703#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_laneq_s32)"]
30704#[inline]
30705#[target_feature(enable = "neon")]
30706#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30707#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32", LANE = 1))]
30708#[cfg_attr(
30709    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30710    assert_instr(mls, LANE = 1)
30711)]
30712#[rustc_legacy_const_generics(3)]
30713#[cfg_attr(
30714    not(target_arch = "arm"),
30715    stable(feature = "neon_intrinsics", since = "1.59.0")
30716)]
30717#[cfg_attr(
30718    target_arch = "arm",
30719    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30720)]
30721pub fn vmlsq_laneq_s32<const LANE: i32>(a: int32x4_t, b: int32x4_t, c: int32x4_t) -> int32x4_t {
30722    static_assert_uimm_bits!(LANE, 2);
30723    unsafe {
30724        vmlsq_s32(
30725            a,
30726            b,
30727            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
30728        )
30729    }
30730}
30731#[doc = "Vector multiply subtract with scalar"]
30732#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_laneq_u32)"]
30733#[inline]
30734#[target_feature(enable = "neon")]
30735#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30736#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32", LANE = 1))]
30737#[cfg_attr(
30738    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30739    assert_instr(mls, LANE = 1)
30740)]
30741#[rustc_legacy_const_generics(3)]
30742#[cfg_attr(
30743    not(target_arch = "arm"),
30744    stable(feature = "neon_intrinsics", since = "1.59.0")
30745)]
30746#[cfg_attr(
30747    target_arch = "arm",
30748    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30749)]
30750pub fn vmlsq_laneq_u32<const LANE: i32>(a: uint32x4_t, b: uint32x4_t, c: uint32x4_t) -> uint32x4_t {
30751    static_assert_uimm_bits!(LANE, 2);
30752    unsafe {
30753        vmlsq_u32(
30754            a,
30755            b,
30756            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
30757        )
30758    }
30759}
30760#[doc = "Vector multiply subtract with scalar"]
30761#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_n_f32)"]
30762#[inline]
30763#[target_feature(enable = "neon")]
30764#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30765#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.f32"))]
30766#[cfg_attr(
30767    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30768    assert_instr(fmul)
30769)]
30770#[cfg_attr(
30771    not(target_arch = "arm"),
30772    stable(feature = "neon_intrinsics", since = "1.59.0")
30773)]
30774#[cfg_attr(
30775    target_arch = "arm",
30776    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30777)]
30778pub fn vmls_n_f32(a: float32x2_t, b: float32x2_t, c: f32) -> float32x2_t {
30779    vmls_f32(a, b, vdup_n_f32(c))
30780}
30781#[doc = "Vector multiply subtract with scalar"]
30782#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_n_f32)"]
30783#[inline]
30784#[target_feature(enable = "neon")]
30785#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30786#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.f32"))]
30787#[cfg_attr(
30788    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30789    assert_instr(fmul)
30790)]
30791#[cfg_attr(
30792    not(target_arch = "arm"),
30793    stable(feature = "neon_intrinsics", since = "1.59.0")
30794)]
30795#[cfg_attr(
30796    target_arch = "arm",
30797    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30798)]
30799pub fn vmlsq_n_f32(a: float32x4_t, b: float32x4_t, c: f32) -> float32x4_t {
30800    vmlsq_f32(a, b, vdupq_n_f32(c))
30801}
30802#[doc = "Vector multiply subtract with scalar"]
30803#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_n_s16)"]
30804#[inline]
30805#[target_feature(enable = "neon")]
30806#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30807#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16"))]
30808#[cfg_attr(
30809    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30810    assert_instr(mls)
30811)]
30812#[cfg_attr(
30813    not(target_arch = "arm"),
30814    stable(feature = "neon_intrinsics", since = "1.59.0")
30815)]
30816#[cfg_attr(
30817    target_arch = "arm",
30818    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30819)]
30820pub fn vmls_n_s16(a: int16x4_t, b: int16x4_t, c: i16) -> int16x4_t {
30821    vmls_s16(a, b, vdup_n_s16(c))
30822}
30823#[doc = "Vector multiply subtract with scalar"]
30824#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_n_s16)"]
30825#[inline]
30826#[target_feature(enable = "neon")]
30827#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30828#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16"))]
30829#[cfg_attr(
30830    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30831    assert_instr(mls)
30832)]
30833#[cfg_attr(
30834    not(target_arch = "arm"),
30835    stable(feature = "neon_intrinsics", since = "1.59.0")
30836)]
30837#[cfg_attr(
30838    target_arch = "arm",
30839    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30840)]
30841pub fn vmlsq_n_s16(a: int16x8_t, b: int16x8_t, c: i16) -> int16x8_t {
30842    vmlsq_s16(a, b, vdupq_n_s16(c))
30843}
30844#[doc = "Vector multiply subtract with scalar"]
30845#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_n_u16)"]
30846#[inline]
30847#[target_feature(enable = "neon")]
30848#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30849#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16"))]
30850#[cfg_attr(
30851    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30852    assert_instr(mls)
30853)]
30854#[cfg_attr(
30855    not(target_arch = "arm"),
30856    stable(feature = "neon_intrinsics", since = "1.59.0")
30857)]
30858#[cfg_attr(
30859    target_arch = "arm",
30860    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30861)]
30862pub fn vmls_n_u16(a: uint16x4_t, b: uint16x4_t, c: u16) -> uint16x4_t {
30863    vmls_u16(a, b, vdup_n_u16(c))
30864}
30865#[doc = "Vector multiply subtract with scalar"]
30866#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_n_u16)"]
30867#[inline]
30868#[target_feature(enable = "neon")]
30869#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30870#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16"))]
30871#[cfg_attr(
30872    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30873    assert_instr(mls)
30874)]
30875#[cfg_attr(
30876    not(target_arch = "arm"),
30877    stable(feature = "neon_intrinsics", since = "1.59.0")
30878)]
30879#[cfg_attr(
30880    target_arch = "arm",
30881    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30882)]
30883pub fn vmlsq_n_u16(a: uint16x8_t, b: uint16x8_t, c: u16) -> uint16x8_t {
30884    vmlsq_u16(a, b, vdupq_n_u16(c))
30885}
30886#[doc = "Vector multiply subtract with scalar"]
30887#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_n_s32)"]
30888#[inline]
30889#[target_feature(enable = "neon")]
30890#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30891#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32"))]
30892#[cfg_attr(
30893    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30894    assert_instr(mls)
30895)]
30896#[cfg_attr(
30897    not(target_arch = "arm"),
30898    stable(feature = "neon_intrinsics", since = "1.59.0")
30899)]
30900#[cfg_attr(
30901    target_arch = "arm",
30902    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30903)]
30904pub fn vmls_n_s32(a: int32x2_t, b: int32x2_t, c: i32) -> int32x2_t {
30905    vmls_s32(a, b, vdup_n_s32(c))
30906}
30907#[doc = "Vector multiply subtract with scalar"]
30908#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_n_s32)"]
30909#[inline]
30910#[target_feature(enable = "neon")]
30911#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30912#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32"))]
30913#[cfg_attr(
30914    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30915    assert_instr(mls)
30916)]
30917#[cfg_attr(
30918    not(target_arch = "arm"),
30919    stable(feature = "neon_intrinsics", since = "1.59.0")
30920)]
30921#[cfg_attr(
30922    target_arch = "arm",
30923    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30924)]
30925pub fn vmlsq_n_s32(a: int32x4_t, b: int32x4_t, c: i32) -> int32x4_t {
30926    vmlsq_s32(a, b, vdupq_n_s32(c))
30927}
30928#[doc = "Vector multiply subtract with scalar"]
30929#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_n_u32)"]
30930#[inline]
30931#[target_feature(enable = "neon")]
30932#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30933#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32"))]
30934#[cfg_attr(
30935    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30936    assert_instr(mls)
30937)]
30938#[cfg_attr(
30939    not(target_arch = "arm"),
30940    stable(feature = "neon_intrinsics", since = "1.59.0")
30941)]
30942#[cfg_attr(
30943    target_arch = "arm",
30944    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30945)]
30946pub fn vmls_n_u32(a: uint32x2_t, b: uint32x2_t, c: u32) -> uint32x2_t {
30947    vmls_u32(a, b, vdup_n_u32(c))
30948}
30949#[doc = "Vector multiply subtract with scalar"]
30950#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_n_u32)"]
30951#[inline]
30952#[target_feature(enable = "neon")]
30953#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30954#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32"))]
30955#[cfg_attr(
30956    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30957    assert_instr(mls)
30958)]
30959#[cfg_attr(
30960    not(target_arch = "arm"),
30961    stable(feature = "neon_intrinsics", since = "1.59.0")
30962)]
30963#[cfg_attr(
30964    target_arch = "arm",
30965    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30966)]
30967pub fn vmlsq_n_u32(a: uint32x4_t, b: uint32x4_t, c: u32) -> uint32x4_t {
30968    vmlsq_u32(a, b, vdupq_n_u32(c))
30969}
30970#[doc = "Multiply-subtract from accumulator"]
30971#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_s8)"]
30972#[inline]
30973#[target_feature(enable = "neon")]
30974#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30975#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i8"))]
30976#[cfg_attr(
30977    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30978    assert_instr(mls)
30979)]
30980#[cfg_attr(
30981    not(target_arch = "arm"),
30982    stable(feature = "neon_intrinsics", since = "1.59.0")
30983)]
30984#[cfg_attr(
30985    target_arch = "arm",
30986    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30987)]
30988pub fn vmls_s8(a: int8x8_t, b: int8x8_t, c: int8x8_t) -> int8x8_t {
30989    unsafe { simd_sub(a, simd_mul(b, c)) }
30990}
30991#[doc = "Multiply-subtract from accumulator"]
30992#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_s8)"]
30993#[inline]
30994#[target_feature(enable = "neon")]
30995#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30996#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i8"))]
30997#[cfg_attr(
30998    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30999    assert_instr(mls)
31000)]
31001#[cfg_attr(
31002    not(target_arch = "arm"),
31003    stable(feature = "neon_intrinsics", since = "1.59.0")
31004)]
31005#[cfg_attr(
31006    target_arch = "arm",
31007    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31008)]
31009pub fn vmlsq_s8(a: int8x16_t, b: int8x16_t, c: int8x16_t) -> int8x16_t {
31010    unsafe { simd_sub(a, simd_mul(b, c)) }
31011}
31012#[doc = "Multiply-subtract from accumulator"]
31013#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_s16)"]
31014#[inline]
31015#[target_feature(enable = "neon")]
31016#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31017#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16"))]
31018#[cfg_attr(
31019    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31020    assert_instr(mls)
31021)]
31022#[cfg_attr(
31023    not(target_arch = "arm"),
31024    stable(feature = "neon_intrinsics", since = "1.59.0")
31025)]
31026#[cfg_attr(
31027    target_arch = "arm",
31028    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31029)]
31030pub fn vmls_s16(a: int16x4_t, b: int16x4_t, c: int16x4_t) -> int16x4_t {
31031    unsafe { simd_sub(a, simd_mul(b, c)) }
31032}
31033#[doc = "Multiply-subtract from accumulator"]
31034#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_s16)"]
31035#[inline]
31036#[target_feature(enable = "neon")]
31037#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31038#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16"))]
31039#[cfg_attr(
31040    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31041    assert_instr(mls)
31042)]
31043#[cfg_attr(
31044    not(target_arch = "arm"),
31045    stable(feature = "neon_intrinsics", since = "1.59.0")
31046)]
31047#[cfg_attr(
31048    target_arch = "arm",
31049    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31050)]
31051pub fn vmlsq_s16(a: int16x8_t, b: int16x8_t, c: int16x8_t) -> int16x8_t {
31052    unsafe { simd_sub(a, simd_mul(b, c)) }
31053}
31054#[doc = "Multiply-subtract from accumulator"]
31055#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_s32)"]
31056#[inline]
31057#[target_feature(enable = "neon")]
31058#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31059#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32"))]
31060#[cfg_attr(
31061    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31062    assert_instr(mls)
31063)]
31064#[cfg_attr(
31065    not(target_arch = "arm"),
31066    stable(feature = "neon_intrinsics", since = "1.59.0")
31067)]
31068#[cfg_attr(
31069    target_arch = "arm",
31070    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31071)]
31072pub fn vmls_s32(a: int32x2_t, b: int32x2_t, c: int32x2_t) -> int32x2_t {
31073    unsafe { simd_sub(a, simd_mul(b, c)) }
31074}
31075#[doc = "Multiply-subtract from accumulator"]
31076#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_s32)"]
31077#[inline]
31078#[target_feature(enable = "neon")]
31079#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31080#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32"))]
31081#[cfg_attr(
31082    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31083    assert_instr(mls)
31084)]
31085#[cfg_attr(
31086    not(target_arch = "arm"),
31087    stable(feature = "neon_intrinsics", since = "1.59.0")
31088)]
31089#[cfg_attr(
31090    target_arch = "arm",
31091    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31092)]
31093pub fn vmlsq_s32(a: int32x4_t, b: int32x4_t, c: int32x4_t) -> int32x4_t {
31094    unsafe { simd_sub(a, simd_mul(b, c)) }
31095}
31096#[doc = "Multiply-subtract from accumulator"]
31097#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_u8)"]
31098#[inline]
31099#[target_feature(enable = "neon")]
31100#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31101#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i8"))]
31102#[cfg_attr(
31103    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31104    assert_instr(mls)
31105)]
31106#[cfg_attr(
31107    not(target_arch = "arm"),
31108    stable(feature = "neon_intrinsics", since = "1.59.0")
31109)]
31110#[cfg_attr(
31111    target_arch = "arm",
31112    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31113)]
31114pub fn vmls_u8(a: uint8x8_t, b: uint8x8_t, c: uint8x8_t) -> uint8x8_t {
31115    unsafe { simd_sub(a, simd_mul(b, c)) }
31116}
31117#[doc = "Multiply-subtract from accumulator"]
31118#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_u8)"]
31119#[inline]
31120#[target_feature(enable = "neon")]
31121#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31122#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i8"))]
31123#[cfg_attr(
31124    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31125    assert_instr(mls)
31126)]
31127#[cfg_attr(
31128    not(target_arch = "arm"),
31129    stable(feature = "neon_intrinsics", since = "1.59.0")
31130)]
31131#[cfg_attr(
31132    target_arch = "arm",
31133    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31134)]
31135pub fn vmlsq_u8(a: uint8x16_t, b: uint8x16_t, c: uint8x16_t) -> uint8x16_t {
31136    unsafe { simd_sub(a, simd_mul(b, c)) }
31137}
31138#[doc = "Multiply-subtract from accumulator"]
31139#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_u16)"]
31140#[inline]
31141#[target_feature(enable = "neon")]
31142#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31143#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16"))]
31144#[cfg_attr(
31145    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31146    assert_instr(mls)
31147)]
31148#[cfg_attr(
31149    not(target_arch = "arm"),
31150    stable(feature = "neon_intrinsics", since = "1.59.0")
31151)]
31152#[cfg_attr(
31153    target_arch = "arm",
31154    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31155)]
31156pub fn vmls_u16(a: uint16x4_t, b: uint16x4_t, c: uint16x4_t) -> uint16x4_t {
31157    unsafe { simd_sub(a, simd_mul(b, c)) }
31158}
31159#[doc = "Multiply-subtract from accumulator"]
31160#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_u16)"]
31161#[inline]
31162#[target_feature(enable = "neon")]
31163#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31164#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16"))]
31165#[cfg_attr(
31166    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31167    assert_instr(mls)
31168)]
31169#[cfg_attr(
31170    not(target_arch = "arm"),
31171    stable(feature = "neon_intrinsics", since = "1.59.0")
31172)]
31173#[cfg_attr(
31174    target_arch = "arm",
31175    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31176)]
31177pub fn vmlsq_u16(a: uint16x8_t, b: uint16x8_t, c: uint16x8_t) -> uint16x8_t {
31178    unsafe { simd_sub(a, simd_mul(b, c)) }
31179}
31180#[doc = "Multiply-subtract from accumulator"]
31181#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_u32)"]
31182#[inline]
31183#[target_feature(enable = "neon")]
31184#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31185#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32"))]
31186#[cfg_attr(
31187    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31188    assert_instr(mls)
31189)]
31190#[cfg_attr(
31191    not(target_arch = "arm"),
31192    stable(feature = "neon_intrinsics", since = "1.59.0")
31193)]
31194#[cfg_attr(
31195    target_arch = "arm",
31196    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31197)]
31198pub fn vmls_u32(a: uint32x2_t, b: uint32x2_t, c: uint32x2_t) -> uint32x2_t {
31199    unsafe { simd_sub(a, simd_mul(b, c)) }
31200}
31201#[doc = "Multiply-subtract from accumulator"]
31202#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_u32)"]
31203#[inline]
31204#[target_feature(enable = "neon")]
31205#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31206#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32"))]
31207#[cfg_attr(
31208    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31209    assert_instr(mls)
31210)]
31211#[cfg_attr(
31212    not(target_arch = "arm"),
31213    stable(feature = "neon_intrinsics", since = "1.59.0")
31214)]
31215#[cfg_attr(
31216    target_arch = "arm",
31217    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31218)]
31219pub fn vmlsq_u32(a: uint32x4_t, b: uint32x4_t, c: uint32x4_t) -> uint32x4_t {
31220    unsafe { simd_sub(a, simd_mul(b, c)) }
31221}
31222#[doc = "Vector widening multiply subtract with scalar"]
31223#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_lane_s16)"]
31224#[inline]
31225#[target_feature(enable = "neon")]
31226#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31227#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.s16", LANE = 1))]
31228#[cfg_attr(
31229    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31230    assert_instr(smlsl, LANE = 1)
31231)]
31232#[rustc_legacy_const_generics(3)]
31233#[cfg_attr(
31234    not(target_arch = "arm"),
31235    stable(feature = "neon_intrinsics", since = "1.59.0")
31236)]
31237#[cfg_attr(
31238    target_arch = "arm",
31239    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31240)]
31241pub fn vmlsl_lane_s16<const LANE: i32>(a: int32x4_t, b: int16x4_t, c: int16x4_t) -> int32x4_t {
31242    static_assert_uimm_bits!(LANE, 2);
31243    unsafe {
31244        vmlsl_s16(
31245            a,
31246            b,
31247            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
31248        )
31249    }
31250}
31251#[doc = "Vector widening multiply subtract with scalar"]
31252#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_laneq_s16)"]
31253#[inline]
31254#[target_feature(enable = "neon")]
31255#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31256#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.s16", LANE = 1))]
31257#[cfg_attr(
31258    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31259    assert_instr(smlsl, LANE = 1)
31260)]
31261#[rustc_legacy_const_generics(3)]
31262#[cfg_attr(
31263    not(target_arch = "arm"),
31264    stable(feature = "neon_intrinsics", since = "1.59.0")
31265)]
31266#[cfg_attr(
31267    target_arch = "arm",
31268    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31269)]
31270pub fn vmlsl_laneq_s16<const LANE: i32>(a: int32x4_t, b: int16x4_t, c: int16x8_t) -> int32x4_t {
31271    static_assert_uimm_bits!(LANE, 3);
31272    unsafe {
31273        vmlsl_s16(
31274            a,
31275            b,
31276            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
31277        )
31278    }
31279}
31280#[doc = "Vector widening multiply subtract with scalar"]
31281#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_lane_s32)"]
31282#[inline]
31283#[target_feature(enable = "neon")]
31284#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31285#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.s32", LANE = 1))]
31286#[cfg_attr(
31287    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31288    assert_instr(smlsl, LANE = 1)
31289)]
31290#[rustc_legacy_const_generics(3)]
31291#[cfg_attr(
31292    not(target_arch = "arm"),
31293    stable(feature = "neon_intrinsics", since = "1.59.0")
31294)]
31295#[cfg_attr(
31296    target_arch = "arm",
31297    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31298)]
31299pub fn vmlsl_lane_s32<const LANE: i32>(a: int64x2_t, b: int32x2_t, c: int32x2_t) -> int64x2_t {
31300    static_assert_uimm_bits!(LANE, 1);
31301    unsafe { vmlsl_s32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
31302}
31303#[doc = "Vector widening multiply subtract with scalar"]
31304#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_laneq_s32)"]
31305#[inline]
31306#[target_feature(enable = "neon")]
31307#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31308#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.s32", LANE = 1))]
31309#[cfg_attr(
31310    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31311    assert_instr(smlsl, LANE = 1)
31312)]
31313#[rustc_legacy_const_generics(3)]
31314#[cfg_attr(
31315    not(target_arch = "arm"),
31316    stable(feature = "neon_intrinsics", since = "1.59.0")
31317)]
31318#[cfg_attr(
31319    target_arch = "arm",
31320    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31321)]
31322pub fn vmlsl_laneq_s32<const LANE: i32>(a: int64x2_t, b: int32x2_t, c: int32x4_t) -> int64x2_t {
31323    static_assert_uimm_bits!(LANE, 2);
31324    unsafe { vmlsl_s32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
31325}
31326#[doc = "Vector widening multiply subtract with scalar"]
31327#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_lane_u16)"]
31328#[inline]
31329#[target_feature(enable = "neon")]
31330#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31331#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.u16", LANE = 1))]
31332#[cfg_attr(
31333    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31334    assert_instr(umlsl, LANE = 1)
31335)]
31336#[rustc_legacy_const_generics(3)]
31337#[cfg_attr(
31338    not(target_arch = "arm"),
31339    stable(feature = "neon_intrinsics", since = "1.59.0")
31340)]
31341#[cfg_attr(
31342    target_arch = "arm",
31343    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31344)]
31345pub fn vmlsl_lane_u16<const LANE: i32>(a: uint32x4_t, b: uint16x4_t, c: uint16x4_t) -> uint32x4_t {
31346    static_assert_uimm_bits!(LANE, 2);
31347    unsafe {
31348        vmlsl_u16(
31349            a,
31350            b,
31351            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
31352        )
31353    }
31354}
31355#[doc = "Vector widening multiply subtract with scalar"]
31356#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_laneq_u16)"]
31357#[inline]
31358#[target_feature(enable = "neon")]
31359#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31360#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.u16", LANE = 1))]
31361#[cfg_attr(
31362    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31363    assert_instr(umlsl, LANE = 1)
31364)]
31365#[rustc_legacy_const_generics(3)]
31366#[cfg_attr(
31367    not(target_arch = "arm"),
31368    stable(feature = "neon_intrinsics", since = "1.59.0")
31369)]
31370#[cfg_attr(
31371    target_arch = "arm",
31372    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31373)]
31374pub fn vmlsl_laneq_u16<const LANE: i32>(a: uint32x4_t, b: uint16x4_t, c: uint16x8_t) -> uint32x4_t {
31375    static_assert_uimm_bits!(LANE, 3);
31376    unsafe {
31377        vmlsl_u16(
31378            a,
31379            b,
31380            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
31381        )
31382    }
31383}
31384#[doc = "Vector widening multiply subtract with scalar"]
31385#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_lane_u32)"]
31386#[inline]
31387#[target_feature(enable = "neon")]
31388#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31389#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.u32", LANE = 1))]
31390#[cfg_attr(
31391    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31392    assert_instr(umlsl, LANE = 1)
31393)]
31394#[rustc_legacy_const_generics(3)]
31395#[cfg_attr(
31396    not(target_arch = "arm"),
31397    stable(feature = "neon_intrinsics", since = "1.59.0")
31398)]
31399#[cfg_attr(
31400    target_arch = "arm",
31401    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31402)]
31403pub fn vmlsl_lane_u32<const LANE: i32>(a: uint64x2_t, b: uint32x2_t, c: uint32x2_t) -> uint64x2_t {
31404    static_assert_uimm_bits!(LANE, 1);
31405    unsafe { vmlsl_u32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
31406}
31407#[doc = "Vector widening multiply subtract with scalar"]
31408#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_laneq_u32)"]
31409#[inline]
31410#[target_feature(enable = "neon")]
31411#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31412#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.u32", LANE = 1))]
31413#[cfg_attr(
31414    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31415    assert_instr(umlsl, LANE = 1)
31416)]
31417#[rustc_legacy_const_generics(3)]
31418#[cfg_attr(
31419    not(target_arch = "arm"),
31420    stable(feature = "neon_intrinsics", since = "1.59.0")
31421)]
31422#[cfg_attr(
31423    target_arch = "arm",
31424    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31425)]
31426pub fn vmlsl_laneq_u32<const LANE: i32>(a: uint64x2_t, b: uint32x2_t, c: uint32x4_t) -> uint64x2_t {
31427    static_assert_uimm_bits!(LANE, 2);
31428    unsafe { vmlsl_u32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
31429}
31430#[doc = "Vector widening multiply subtract with scalar"]
31431#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_n_s16)"]
31432#[inline]
31433#[target_feature(enable = "neon")]
31434#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31435#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.s16"))]
31436#[cfg_attr(
31437    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31438    assert_instr(smlsl)
31439)]
31440#[cfg_attr(
31441    not(target_arch = "arm"),
31442    stable(feature = "neon_intrinsics", since = "1.59.0")
31443)]
31444#[cfg_attr(
31445    target_arch = "arm",
31446    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31447)]
31448pub fn vmlsl_n_s16(a: int32x4_t, b: int16x4_t, c: i16) -> int32x4_t {
31449    vmlsl_s16(a, b, vdup_n_s16(c))
31450}
31451#[doc = "Vector widening multiply subtract with scalar"]
31452#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_n_s32)"]
31453#[inline]
31454#[target_feature(enable = "neon")]
31455#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31456#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.s32"))]
31457#[cfg_attr(
31458    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31459    assert_instr(smlsl)
31460)]
31461#[cfg_attr(
31462    not(target_arch = "arm"),
31463    stable(feature = "neon_intrinsics", since = "1.59.0")
31464)]
31465#[cfg_attr(
31466    target_arch = "arm",
31467    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31468)]
31469pub fn vmlsl_n_s32(a: int64x2_t, b: int32x2_t, c: i32) -> int64x2_t {
31470    vmlsl_s32(a, b, vdup_n_s32(c))
31471}
31472#[doc = "Vector widening multiply subtract with scalar"]
31473#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_n_u16)"]
31474#[inline]
31475#[target_feature(enable = "neon")]
31476#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31477#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.u16"))]
31478#[cfg_attr(
31479    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31480    assert_instr(umlsl)
31481)]
31482#[cfg_attr(
31483    not(target_arch = "arm"),
31484    stable(feature = "neon_intrinsics", since = "1.59.0")
31485)]
31486#[cfg_attr(
31487    target_arch = "arm",
31488    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31489)]
31490pub fn vmlsl_n_u16(a: uint32x4_t, b: uint16x4_t, c: u16) -> uint32x4_t {
31491    vmlsl_u16(a, b, vdup_n_u16(c))
31492}
31493#[doc = "Vector widening multiply subtract with scalar"]
31494#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_n_u32)"]
31495#[inline]
31496#[target_feature(enable = "neon")]
31497#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31498#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.u32"))]
31499#[cfg_attr(
31500    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31501    assert_instr(umlsl)
31502)]
31503#[cfg_attr(
31504    not(target_arch = "arm"),
31505    stable(feature = "neon_intrinsics", since = "1.59.0")
31506)]
31507#[cfg_attr(
31508    target_arch = "arm",
31509    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31510)]
31511pub fn vmlsl_n_u32(a: uint64x2_t, b: uint32x2_t, c: u32) -> uint64x2_t {
31512    vmlsl_u32(a, b, vdup_n_u32(c))
31513}
31514#[doc = "Signed multiply-subtract long"]
31515#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_s8)"]
31516#[inline]
31517#[target_feature(enable = "neon")]
31518#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31519#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.s8"))]
31520#[cfg_attr(
31521    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31522    assert_instr(smlsl)
31523)]
31524#[cfg_attr(
31525    not(target_arch = "arm"),
31526    stable(feature = "neon_intrinsics", since = "1.59.0")
31527)]
31528#[cfg_attr(
31529    target_arch = "arm",
31530    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31531)]
31532pub fn vmlsl_s8(a: int16x8_t, b: int8x8_t, c: int8x8_t) -> int16x8_t {
31533    unsafe { simd_sub(a, vmull_s8(b, c)) }
31534}
31535#[doc = "Signed multiply-subtract long"]
31536#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_s16)"]
31537#[inline]
31538#[target_feature(enable = "neon")]
31539#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31540#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.s16"))]
31541#[cfg_attr(
31542    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31543    assert_instr(smlsl)
31544)]
31545#[cfg_attr(
31546    not(target_arch = "arm"),
31547    stable(feature = "neon_intrinsics", since = "1.59.0")
31548)]
31549#[cfg_attr(
31550    target_arch = "arm",
31551    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31552)]
31553pub fn vmlsl_s16(a: int32x4_t, b: int16x4_t, c: int16x4_t) -> int32x4_t {
31554    unsafe { simd_sub(a, vmull_s16(b, c)) }
31555}
31556#[doc = "Signed multiply-subtract long"]
31557#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_s32)"]
31558#[inline]
31559#[target_feature(enable = "neon")]
31560#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31561#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.s32"))]
31562#[cfg_attr(
31563    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31564    assert_instr(smlsl)
31565)]
31566#[cfg_attr(
31567    not(target_arch = "arm"),
31568    stable(feature = "neon_intrinsics", since = "1.59.0")
31569)]
31570#[cfg_attr(
31571    target_arch = "arm",
31572    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31573)]
31574pub fn vmlsl_s32(a: int64x2_t, b: int32x2_t, c: int32x2_t) -> int64x2_t {
31575    unsafe { simd_sub(a, vmull_s32(b, c)) }
31576}
31577#[doc = "Unsigned multiply-subtract long"]
31578#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_u8)"]
31579#[inline]
31580#[target_feature(enable = "neon")]
31581#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31582#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.u8"))]
31583#[cfg_attr(
31584    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31585    assert_instr(umlsl)
31586)]
31587#[cfg_attr(
31588    not(target_arch = "arm"),
31589    stable(feature = "neon_intrinsics", since = "1.59.0")
31590)]
31591#[cfg_attr(
31592    target_arch = "arm",
31593    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31594)]
31595pub fn vmlsl_u8(a: uint16x8_t, b: uint8x8_t, c: uint8x8_t) -> uint16x8_t {
31596    unsafe { simd_sub(a, vmull_u8(b, c)) }
31597}
31598#[doc = "Unsigned multiply-subtract long"]
31599#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_u16)"]
31600#[inline]
31601#[target_feature(enable = "neon")]
31602#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31603#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.u16"))]
31604#[cfg_attr(
31605    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31606    assert_instr(umlsl)
31607)]
31608#[cfg_attr(
31609    not(target_arch = "arm"),
31610    stable(feature = "neon_intrinsics", since = "1.59.0")
31611)]
31612#[cfg_attr(
31613    target_arch = "arm",
31614    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31615)]
31616pub fn vmlsl_u16(a: uint32x4_t, b: uint16x4_t, c: uint16x4_t) -> uint32x4_t {
31617    unsafe { simd_sub(a, vmull_u16(b, c)) }
31618}
31619#[doc = "Unsigned multiply-subtract long"]
31620#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_u32)"]
31621#[inline]
31622#[target_feature(enable = "neon")]
31623#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31624#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.u32"))]
31625#[cfg_attr(
31626    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31627    assert_instr(umlsl)
31628)]
31629#[cfg_attr(
31630    not(target_arch = "arm"),
31631    stable(feature = "neon_intrinsics", since = "1.59.0")
31632)]
31633#[cfg_attr(
31634    target_arch = "arm",
31635    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31636)]
31637pub fn vmlsl_u32(a: uint64x2_t, b: uint32x2_t, c: uint32x2_t) -> uint64x2_t {
31638    unsafe { simd_sub(a, vmull_u32(b, c)) }
31639}
31640#[doc = "8-bit integer matrix multiply-accumulate"]
31641#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmmlaq_s32)"]
31642#[inline]
31643#[target_feature(enable = "neon,i8mm")]
31644#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
31645#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
31646#[cfg_attr(
31647    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31648    assert_instr(smmla)
31649)]
31650#[cfg_attr(
31651    not(target_arch = "arm"),
31652    unstable(feature = "stdarch_neon_i8mm", issue = "117223")
31653)]
31654#[cfg_attr(
31655    target_arch = "arm",
31656    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31657)]
31658pub fn vmmlaq_s32(a: int32x4_t, b: int8x16_t, c: int8x16_t) -> int32x4_t {
31659    unsafe extern "unadjusted" {
31660        #[cfg_attr(
31661            any(target_arch = "aarch64", target_arch = "arm64ec"),
31662            link_name = "llvm.aarch64.neon.smmla.v4i32.v16i8"
31663        )]
31664        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.smmla.v4i32.v16i8")]
31665        fn _vmmlaq_s32(a: int32x4_t, b: int8x16_t, c: int8x16_t) -> int32x4_t;
31666    }
31667    unsafe { _vmmlaq_s32(a, b, c) }
31668}
31669#[doc = "8-bit integer matrix multiply-accumulate"]
31670#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmmlaq_u32)"]
31671#[inline]
31672#[target_feature(enable = "neon,i8mm")]
31673#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
31674#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
31675#[cfg_attr(
31676    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31677    assert_instr(ummla)
31678)]
31679#[cfg_attr(
31680    not(target_arch = "arm"),
31681    unstable(feature = "stdarch_neon_i8mm", issue = "117223")
31682)]
31683#[cfg_attr(
31684    target_arch = "arm",
31685    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31686)]
31687pub fn vmmlaq_u32(a: uint32x4_t, b: uint8x16_t, c: uint8x16_t) -> uint32x4_t {
31688    unsafe extern "unadjusted" {
31689        #[cfg_attr(
31690            any(target_arch = "aarch64", target_arch = "arm64ec"),
31691            link_name = "llvm.aarch64.neon.ummla.v4i32.v16i8"
31692        )]
31693        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.ummla.v4i32.v16i8")]
31694        fn _vmmlaq_u32(a: uint32x4_t, b: uint8x16_t, c: uint8x16_t) -> uint32x4_t;
31695    }
31696    unsafe { _vmmlaq_u32(a, b, c) }
31697}
31698#[doc = "Duplicate element to vector"]
31699#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmov_n_f16)"]
31700#[inline]
31701#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31702#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
31703#[cfg_attr(
31704    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31705    assert_instr(dup)
31706)]
31707#[target_feature(enable = "neon,fp16")]
31708#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
31709#[cfg(not(target_arch = "arm64ec"))]
31710pub fn vmov_n_f16(a: f16) -> float16x4_t {
31711    vdup_n_f16(a)
31712}
31713#[doc = "Duplicate element to vector"]
31714#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovq_n_f16)"]
31715#[inline]
31716#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31717#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
31718#[cfg_attr(
31719    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31720    assert_instr(dup)
31721)]
31722#[target_feature(enable = "neon,fp16")]
31723#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
31724#[cfg(not(target_arch = "arm64ec"))]
31725pub fn vmovq_n_f16(a: f16) -> float16x8_t {
31726    vdupq_n_f16(a)
31727}
31728#[doc = "Duplicate vector element to vector or scalar"]
31729#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmov_n_f32)"]
31730#[inline]
31731#[target_feature(enable = "neon")]
31732#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31733#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32"))]
31734#[cfg_attr(
31735    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31736    assert_instr(dup)
31737)]
31738#[cfg_attr(
31739    not(target_arch = "arm"),
31740    stable(feature = "neon_intrinsics", since = "1.59.0")
31741)]
31742#[cfg_attr(
31743    target_arch = "arm",
31744    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31745)]
31746pub fn vmov_n_f32(value: f32) -> float32x2_t {
31747    vdup_n_f32(value)
31748}
31749#[doc = "Duplicate vector element to vector or scalar"]
31750#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmov_n_p16)"]
31751#[inline]
31752#[target_feature(enable = "neon")]
31753#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31754#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
31755#[cfg_attr(
31756    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31757    assert_instr(dup)
31758)]
31759#[cfg_attr(
31760    not(target_arch = "arm"),
31761    stable(feature = "neon_intrinsics", since = "1.59.0")
31762)]
31763#[cfg_attr(
31764    target_arch = "arm",
31765    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31766)]
31767pub fn vmov_n_p16(value: p16) -> poly16x4_t {
31768    vdup_n_p16(value)
31769}
31770#[doc = "Duplicate vector element to vector or scalar"]
31771#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmov_n_p8)"]
31772#[inline]
31773#[target_feature(enable = "neon")]
31774#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31775#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8"))]
31776#[cfg_attr(
31777    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31778    assert_instr(dup)
31779)]
31780#[cfg_attr(
31781    not(target_arch = "arm"),
31782    stable(feature = "neon_intrinsics", since = "1.59.0")
31783)]
31784#[cfg_attr(
31785    target_arch = "arm",
31786    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31787)]
31788pub fn vmov_n_p8(value: p8) -> poly8x8_t {
31789    vdup_n_p8(value)
31790}
31791#[doc = "Duplicate vector element to vector or scalar"]
31792#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmov_n_s16)"]
31793#[inline]
31794#[target_feature(enable = "neon")]
31795#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31796#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
31797#[cfg_attr(
31798    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31799    assert_instr(dup)
31800)]
31801#[cfg_attr(
31802    not(target_arch = "arm"),
31803    stable(feature = "neon_intrinsics", since = "1.59.0")
31804)]
31805#[cfg_attr(
31806    target_arch = "arm",
31807    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31808)]
31809pub fn vmov_n_s16(value: i16) -> int16x4_t {
31810    vdup_n_s16(value)
31811}
31812#[doc = "Duplicate vector element to vector or scalar"]
31813#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmov_n_s32)"]
31814#[inline]
31815#[target_feature(enable = "neon")]
31816#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31817#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32"))]
31818#[cfg_attr(
31819    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31820    assert_instr(dup)
31821)]
31822#[cfg_attr(
31823    not(target_arch = "arm"),
31824    stable(feature = "neon_intrinsics", since = "1.59.0")
31825)]
31826#[cfg_attr(
31827    target_arch = "arm",
31828    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31829)]
31830pub fn vmov_n_s32(value: i32) -> int32x2_t {
31831    vdup_n_s32(value)
31832}
31833#[doc = "Duplicate vector element to vector or scalar"]
31834#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmov_n_s64)"]
31835#[inline]
31836#[target_feature(enable = "neon")]
31837#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31838#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
31839#[cfg_attr(
31840    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31841    assert_instr(fmov)
31842)]
31843#[cfg_attr(
31844    not(target_arch = "arm"),
31845    stable(feature = "neon_intrinsics", since = "1.59.0")
31846)]
31847#[cfg_attr(
31848    target_arch = "arm",
31849    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31850)]
31851pub fn vmov_n_s64(value: i64) -> int64x1_t {
31852    vdup_n_s64(value)
31853}
31854#[doc = "Duplicate vector element to vector or scalar"]
31855#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmov_n_s8)"]
31856#[inline]
31857#[target_feature(enable = "neon")]
31858#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31859#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8"))]
31860#[cfg_attr(
31861    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31862    assert_instr(dup)
31863)]
31864#[cfg_attr(
31865    not(target_arch = "arm"),
31866    stable(feature = "neon_intrinsics", since = "1.59.0")
31867)]
31868#[cfg_attr(
31869    target_arch = "arm",
31870    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31871)]
31872pub fn vmov_n_s8(value: i8) -> int8x8_t {
31873    vdup_n_s8(value)
31874}
31875#[doc = "Duplicate vector element to vector or scalar"]
31876#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmov_n_u16)"]
31877#[inline]
31878#[target_feature(enable = "neon")]
31879#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31880#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
31881#[cfg_attr(
31882    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31883    assert_instr(dup)
31884)]
31885#[cfg_attr(
31886    not(target_arch = "arm"),
31887    stable(feature = "neon_intrinsics", since = "1.59.0")
31888)]
31889#[cfg_attr(
31890    target_arch = "arm",
31891    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31892)]
31893pub fn vmov_n_u16(value: u16) -> uint16x4_t {
31894    vdup_n_u16(value)
31895}
31896#[doc = "Duplicate vector element to vector or scalar"]
31897#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmov_n_u32)"]
31898#[inline]
31899#[target_feature(enable = "neon")]
31900#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31901#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32"))]
31902#[cfg_attr(
31903    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31904    assert_instr(dup)
31905)]
31906#[cfg_attr(
31907    not(target_arch = "arm"),
31908    stable(feature = "neon_intrinsics", since = "1.59.0")
31909)]
31910#[cfg_attr(
31911    target_arch = "arm",
31912    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31913)]
31914pub fn vmov_n_u32(value: u32) -> uint32x2_t {
31915    vdup_n_u32(value)
31916}
31917#[doc = "Duplicate vector element to vector or scalar"]
31918#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmov_n_u64)"]
31919#[inline]
31920#[target_feature(enable = "neon")]
31921#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31922#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
31923#[cfg_attr(
31924    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31925    assert_instr(fmov)
31926)]
31927#[cfg_attr(
31928    not(target_arch = "arm"),
31929    stable(feature = "neon_intrinsics", since = "1.59.0")
31930)]
31931#[cfg_attr(
31932    target_arch = "arm",
31933    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31934)]
31935pub fn vmov_n_u64(value: u64) -> uint64x1_t {
31936    vdup_n_u64(value)
31937}
31938#[doc = "Duplicate vector element to vector or scalar"]
31939#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmov_n_u8)"]
31940#[inline]
31941#[target_feature(enable = "neon")]
31942#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31943#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8"))]
31944#[cfg_attr(
31945    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31946    assert_instr(dup)
31947)]
31948#[cfg_attr(
31949    not(target_arch = "arm"),
31950    stable(feature = "neon_intrinsics", since = "1.59.0")
31951)]
31952#[cfg_attr(
31953    target_arch = "arm",
31954    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31955)]
31956pub fn vmov_n_u8(value: u8) -> uint8x8_t {
31957    vdup_n_u8(value)
31958}
31959#[doc = "Duplicate vector element to vector or scalar"]
31960#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovq_n_f32)"]
31961#[inline]
31962#[target_feature(enable = "neon")]
31963#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31964#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32"))]
31965#[cfg_attr(
31966    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31967    assert_instr(dup)
31968)]
31969#[cfg_attr(
31970    not(target_arch = "arm"),
31971    stable(feature = "neon_intrinsics", since = "1.59.0")
31972)]
31973#[cfg_attr(
31974    target_arch = "arm",
31975    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31976)]
31977pub fn vmovq_n_f32(value: f32) -> float32x4_t {
31978    vdupq_n_f32(value)
31979}
31980#[doc = "Duplicate vector element to vector or scalar"]
31981#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovq_n_p16)"]
31982#[inline]
31983#[target_feature(enable = "neon")]
31984#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31985#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
31986#[cfg_attr(
31987    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31988    assert_instr(dup)
31989)]
31990#[cfg_attr(
31991    not(target_arch = "arm"),
31992    stable(feature = "neon_intrinsics", since = "1.59.0")
31993)]
31994#[cfg_attr(
31995    target_arch = "arm",
31996    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31997)]
31998pub fn vmovq_n_p16(value: p16) -> poly16x8_t {
31999    vdupq_n_p16(value)
32000}
32001#[doc = "Duplicate vector element to vector or scalar"]
32002#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovq_n_p8)"]
32003#[inline]
32004#[target_feature(enable = "neon")]
32005#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32006#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8"))]
32007#[cfg_attr(
32008    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32009    assert_instr(dup)
32010)]
32011#[cfg_attr(
32012    not(target_arch = "arm"),
32013    stable(feature = "neon_intrinsics", since = "1.59.0")
32014)]
32015#[cfg_attr(
32016    target_arch = "arm",
32017    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32018)]
32019pub fn vmovq_n_p8(value: p8) -> poly8x16_t {
32020    vdupq_n_p8(value)
32021}
32022#[doc = "Duplicate vector element to vector or scalar"]
32023#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovq_n_s16)"]
32024#[inline]
32025#[target_feature(enable = "neon")]
32026#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32027#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
32028#[cfg_attr(
32029    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32030    assert_instr(dup)
32031)]
32032#[cfg_attr(
32033    not(target_arch = "arm"),
32034    stable(feature = "neon_intrinsics", since = "1.59.0")
32035)]
32036#[cfg_attr(
32037    target_arch = "arm",
32038    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32039)]
32040pub fn vmovq_n_s16(value: i16) -> int16x8_t {
32041    vdupq_n_s16(value)
32042}
32043#[doc = "Duplicate vector element to vector or scalar"]
32044#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovq_n_s32)"]
32045#[inline]
32046#[target_feature(enable = "neon")]
32047#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32048#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32"))]
32049#[cfg_attr(
32050    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32051    assert_instr(dup)
32052)]
32053#[cfg_attr(
32054    not(target_arch = "arm"),
32055    stable(feature = "neon_intrinsics", since = "1.59.0")
32056)]
32057#[cfg_attr(
32058    target_arch = "arm",
32059    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32060)]
32061pub fn vmovq_n_s32(value: i32) -> int32x4_t {
32062    vdupq_n_s32(value)
32063}
32064#[doc = "Duplicate vector element to vector or scalar"]
32065#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovq_n_s64)"]
32066#[inline]
32067#[target_feature(enable = "neon")]
32068#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32069#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
32070#[cfg_attr(
32071    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32072    assert_instr(dup)
32073)]
32074#[cfg_attr(
32075    not(target_arch = "arm"),
32076    stable(feature = "neon_intrinsics", since = "1.59.0")
32077)]
32078#[cfg_attr(
32079    target_arch = "arm",
32080    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32081)]
32082pub fn vmovq_n_s64(value: i64) -> int64x2_t {
32083    vdupq_n_s64(value)
32084}
32085#[doc = "Duplicate vector element to vector or scalar"]
32086#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovq_n_s8)"]
32087#[inline]
32088#[target_feature(enable = "neon")]
32089#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32090#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8"))]
32091#[cfg_attr(
32092    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32093    assert_instr(dup)
32094)]
32095#[cfg_attr(
32096    not(target_arch = "arm"),
32097    stable(feature = "neon_intrinsics", since = "1.59.0")
32098)]
32099#[cfg_attr(
32100    target_arch = "arm",
32101    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32102)]
32103pub fn vmovq_n_s8(value: i8) -> int8x16_t {
32104    vdupq_n_s8(value)
32105}
32106#[doc = "Duplicate vector element to vector or scalar"]
32107#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovq_n_u16)"]
32108#[inline]
32109#[target_feature(enable = "neon")]
32110#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32111#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
32112#[cfg_attr(
32113    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32114    assert_instr(dup)
32115)]
32116#[cfg_attr(
32117    not(target_arch = "arm"),
32118    stable(feature = "neon_intrinsics", since = "1.59.0")
32119)]
32120#[cfg_attr(
32121    target_arch = "arm",
32122    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32123)]
32124pub fn vmovq_n_u16(value: u16) -> uint16x8_t {
32125    vdupq_n_u16(value)
32126}
32127#[doc = "Duplicate vector element to vector or scalar"]
32128#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovq_n_u32)"]
32129#[inline]
32130#[target_feature(enable = "neon")]
32131#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32132#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32"))]
32133#[cfg_attr(
32134    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32135    assert_instr(dup)
32136)]
32137#[cfg_attr(
32138    not(target_arch = "arm"),
32139    stable(feature = "neon_intrinsics", since = "1.59.0")
32140)]
32141#[cfg_attr(
32142    target_arch = "arm",
32143    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32144)]
32145pub fn vmovq_n_u32(value: u32) -> uint32x4_t {
32146    vdupq_n_u32(value)
32147}
32148#[doc = "Duplicate vector element to vector or scalar"]
32149#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovq_n_u64)"]
32150#[inline]
32151#[target_feature(enable = "neon")]
32152#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32153#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
32154#[cfg_attr(
32155    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32156    assert_instr(dup)
32157)]
32158#[cfg_attr(
32159    not(target_arch = "arm"),
32160    stable(feature = "neon_intrinsics", since = "1.59.0")
32161)]
32162#[cfg_attr(
32163    target_arch = "arm",
32164    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32165)]
32166pub fn vmovq_n_u64(value: u64) -> uint64x2_t {
32167    vdupq_n_u64(value)
32168}
32169#[doc = "Duplicate vector element to vector or scalar"]
32170#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovq_n_u8)"]
32171#[inline]
32172#[target_feature(enable = "neon")]
32173#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32174#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8"))]
32175#[cfg_attr(
32176    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32177    assert_instr(dup)
32178)]
32179#[cfg_attr(
32180    not(target_arch = "arm"),
32181    stable(feature = "neon_intrinsics", since = "1.59.0")
32182)]
32183#[cfg_attr(
32184    target_arch = "arm",
32185    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32186)]
32187pub fn vmovq_n_u8(value: u8) -> uint8x16_t {
32188    vdupq_n_u8(value)
32189}
32190#[doc = "Vector long move."]
32191#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovl_s16)"]
32192#[inline]
32193#[target_feature(enable = "neon")]
32194#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32195#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmovl))]
32196#[cfg_attr(
32197    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32198    assert_instr(sxtl)
32199)]
32200#[cfg_attr(
32201    not(target_arch = "arm"),
32202    stable(feature = "neon_intrinsics", since = "1.59.0")
32203)]
32204#[cfg_attr(
32205    target_arch = "arm",
32206    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32207)]
32208pub fn vmovl_s16(a: int16x4_t) -> int32x4_t {
32209    unsafe { simd_cast(a) }
32210}
32211#[doc = "Vector long move."]
32212#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovl_s32)"]
32213#[inline]
32214#[target_feature(enable = "neon")]
32215#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32216#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmovl))]
32217#[cfg_attr(
32218    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32219    assert_instr(sxtl)
32220)]
32221#[cfg_attr(
32222    not(target_arch = "arm"),
32223    stable(feature = "neon_intrinsics", since = "1.59.0")
32224)]
32225#[cfg_attr(
32226    target_arch = "arm",
32227    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32228)]
32229pub fn vmovl_s32(a: int32x2_t) -> int64x2_t {
32230    unsafe { simd_cast(a) }
32231}
32232#[doc = "Vector long move."]
32233#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovl_s8)"]
32234#[inline]
32235#[target_feature(enable = "neon")]
32236#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32237#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmovl))]
32238#[cfg_attr(
32239    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32240    assert_instr(sxtl)
32241)]
32242#[cfg_attr(
32243    not(target_arch = "arm"),
32244    stable(feature = "neon_intrinsics", since = "1.59.0")
32245)]
32246#[cfg_attr(
32247    target_arch = "arm",
32248    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32249)]
32250pub fn vmovl_s8(a: int8x8_t) -> int16x8_t {
32251    unsafe { simd_cast(a) }
32252}
32253#[doc = "Vector long move."]
32254#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovl_u16)"]
32255#[inline]
32256#[target_feature(enable = "neon")]
32257#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32258#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmovl))]
32259#[cfg_attr(
32260    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32261    assert_instr(uxtl)
32262)]
32263#[cfg_attr(
32264    not(target_arch = "arm"),
32265    stable(feature = "neon_intrinsics", since = "1.59.0")
32266)]
32267#[cfg_attr(
32268    target_arch = "arm",
32269    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32270)]
32271pub fn vmovl_u16(a: uint16x4_t) -> uint32x4_t {
32272    unsafe { simd_cast(a) }
32273}
32274#[doc = "Vector long move."]
32275#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovl_u32)"]
32276#[inline]
32277#[target_feature(enable = "neon")]
32278#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32279#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmovl))]
32280#[cfg_attr(
32281    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32282    assert_instr(uxtl)
32283)]
32284#[cfg_attr(
32285    not(target_arch = "arm"),
32286    stable(feature = "neon_intrinsics", since = "1.59.0")
32287)]
32288#[cfg_attr(
32289    target_arch = "arm",
32290    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32291)]
32292pub fn vmovl_u32(a: uint32x2_t) -> uint64x2_t {
32293    unsafe { simd_cast(a) }
32294}
32295#[doc = "Vector long move."]
32296#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovl_u8)"]
32297#[inline]
32298#[target_feature(enable = "neon")]
32299#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32300#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmovl))]
32301#[cfg_attr(
32302    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32303    assert_instr(uxtl)
32304)]
32305#[cfg_attr(
32306    not(target_arch = "arm"),
32307    stable(feature = "neon_intrinsics", since = "1.59.0")
32308)]
32309#[cfg_attr(
32310    target_arch = "arm",
32311    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32312)]
32313pub fn vmovl_u8(a: uint8x8_t) -> uint16x8_t {
32314    unsafe { simd_cast(a) }
32315}
32316#[doc = "Vector narrow integer."]
32317#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovn_s16)"]
32318#[inline]
32319#[target_feature(enable = "neon")]
32320#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32321#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmovn))]
32322#[cfg_attr(
32323    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32324    assert_instr(xtn)
32325)]
32326#[cfg_attr(
32327    not(target_arch = "arm"),
32328    stable(feature = "neon_intrinsics", since = "1.59.0")
32329)]
32330#[cfg_attr(
32331    target_arch = "arm",
32332    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32333)]
32334pub fn vmovn_s16(a: int16x8_t) -> int8x8_t {
32335    unsafe { simd_cast(a) }
32336}
32337#[doc = "Vector narrow integer."]
32338#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovn_s32)"]
32339#[inline]
32340#[target_feature(enable = "neon")]
32341#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32342#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmovn))]
32343#[cfg_attr(
32344    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32345    assert_instr(xtn)
32346)]
32347#[cfg_attr(
32348    not(target_arch = "arm"),
32349    stable(feature = "neon_intrinsics", since = "1.59.0")
32350)]
32351#[cfg_attr(
32352    target_arch = "arm",
32353    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32354)]
32355pub fn vmovn_s32(a: int32x4_t) -> int16x4_t {
32356    unsafe { simd_cast(a) }
32357}
32358#[doc = "Vector narrow integer."]
32359#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovn_s64)"]
32360#[inline]
32361#[target_feature(enable = "neon")]
32362#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32363#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmovn))]
32364#[cfg_attr(
32365    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32366    assert_instr(xtn)
32367)]
32368#[cfg_attr(
32369    not(target_arch = "arm"),
32370    stable(feature = "neon_intrinsics", since = "1.59.0")
32371)]
32372#[cfg_attr(
32373    target_arch = "arm",
32374    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32375)]
32376pub fn vmovn_s64(a: int64x2_t) -> int32x2_t {
32377    unsafe { simd_cast(a) }
32378}
32379#[doc = "Vector narrow integer."]
32380#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovn_u16)"]
32381#[inline]
32382#[target_feature(enable = "neon")]
32383#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32384#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmovn))]
32385#[cfg_attr(
32386    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32387    assert_instr(xtn)
32388)]
32389#[cfg_attr(
32390    not(target_arch = "arm"),
32391    stable(feature = "neon_intrinsics", since = "1.59.0")
32392)]
32393#[cfg_attr(
32394    target_arch = "arm",
32395    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32396)]
32397pub fn vmovn_u16(a: uint16x8_t) -> uint8x8_t {
32398    unsafe { simd_cast(a) }
32399}
32400#[doc = "Vector narrow integer."]
32401#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovn_u32)"]
32402#[inline]
32403#[target_feature(enable = "neon")]
32404#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32405#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmovn))]
32406#[cfg_attr(
32407    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32408    assert_instr(xtn)
32409)]
32410#[cfg_attr(
32411    not(target_arch = "arm"),
32412    stable(feature = "neon_intrinsics", since = "1.59.0")
32413)]
32414#[cfg_attr(
32415    target_arch = "arm",
32416    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32417)]
32418pub fn vmovn_u32(a: uint32x4_t) -> uint16x4_t {
32419    unsafe { simd_cast(a) }
32420}
32421#[doc = "Vector narrow integer."]
32422#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovn_u64)"]
32423#[inline]
32424#[target_feature(enable = "neon")]
32425#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32426#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmovn))]
32427#[cfg_attr(
32428    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32429    assert_instr(xtn)
32430)]
32431#[cfg_attr(
32432    not(target_arch = "arm"),
32433    stable(feature = "neon_intrinsics", since = "1.59.0")
32434)]
32435#[cfg_attr(
32436    target_arch = "arm",
32437    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32438)]
32439pub fn vmovn_u64(a: uint64x2_t) -> uint32x2_t {
32440    unsafe { simd_cast(a) }
32441}
32442#[doc = "Multiply"]
32443#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_f16)"]
32444#[inline]
32445#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
32446#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.f16"))]
32447#[cfg_attr(
32448    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32449    assert_instr(fmul)
32450)]
32451#[target_feature(enable = "neon,fp16")]
32452#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
32453#[cfg(not(target_arch = "arm64ec"))]
32454pub fn vmul_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t {
32455    unsafe { simd_mul(a, b) }
32456}
32457#[doc = "Multiply"]
32458#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_f16)"]
32459#[inline]
32460#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
32461#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.f16"))]
32462#[cfg_attr(
32463    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32464    assert_instr(fmul)
32465)]
32466#[target_feature(enable = "neon,fp16")]
32467#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
32468#[cfg(not(target_arch = "arm64ec"))]
32469pub fn vmulq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t {
32470    unsafe { simd_mul(a, b) }
32471}
32472#[doc = "Multiply"]
32473#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_f32)"]
32474#[inline]
32475#[target_feature(enable = "neon")]
32476#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32477#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.f32"))]
32478#[cfg_attr(
32479    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32480    assert_instr(fmul)
32481)]
32482#[cfg_attr(
32483    not(target_arch = "arm"),
32484    stable(feature = "neon_intrinsics", since = "1.59.0")
32485)]
32486#[cfg_attr(
32487    target_arch = "arm",
32488    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32489)]
32490pub fn vmul_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
32491    unsafe { simd_mul(a, b) }
32492}
32493#[doc = "Multiply"]
32494#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_f32)"]
32495#[inline]
32496#[target_feature(enable = "neon")]
32497#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32498#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.f32"))]
32499#[cfg_attr(
32500    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32501    assert_instr(fmul)
32502)]
32503#[cfg_attr(
32504    not(target_arch = "arm"),
32505    stable(feature = "neon_intrinsics", since = "1.59.0")
32506)]
32507#[cfg_attr(
32508    target_arch = "arm",
32509    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32510)]
32511pub fn vmulq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t {
32512    unsafe { simd_mul(a, b) }
32513}
32514#[doc = "Multiply"]
32515#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_lane_f16)"]
32516#[inline]
32517#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
32518#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
32519#[cfg_attr(
32520    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32521    assert_instr(fmul, LANE = 1)
32522)]
32523#[rustc_legacy_const_generics(2)]
32524#[target_feature(enable = "neon,fp16")]
32525#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
32526#[cfg(not(target_arch = "arm64ec"))]
32527pub fn vmul_lane_f16<const LANE: i32>(a: float16x4_t, v: float16x4_t) -> float16x4_t {
32528    static_assert_uimm_bits!(LANE, 2);
32529    unsafe {
32530        simd_mul(
32531            a,
32532            simd_shuffle!(v, v, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
32533        )
32534    }
32535}
32536#[doc = "Multiply"]
32537#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_lane_f16)"]
32538#[inline]
32539#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
32540#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
32541#[cfg_attr(
32542    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32543    assert_instr(fmul, LANE = 1)
32544)]
32545#[rustc_legacy_const_generics(2)]
32546#[target_feature(enable = "neon,fp16")]
32547#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
32548#[cfg(not(target_arch = "arm64ec"))]
32549pub fn vmulq_lane_f16<const LANE: i32>(a: float16x8_t, v: float16x4_t) -> float16x8_t {
32550    static_assert_uimm_bits!(LANE, 2);
32551    unsafe {
32552        simd_mul(
32553            a,
32554            simd_shuffle!(
32555                v,
32556                v,
32557                [
32558                    LANE as u32,
32559                    LANE as u32,
32560                    LANE as u32,
32561                    LANE as u32,
32562                    LANE as u32,
32563                    LANE as u32,
32564                    LANE as u32,
32565                    LANE as u32
32566                ]
32567            ),
32568        )
32569    }
32570}
32571#[doc = "Floating-point multiply"]
32572#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_lane_f32)"]
32573#[inline]
32574#[target_feature(enable = "neon")]
32575#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32576#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 0))]
32577#[cfg_attr(
32578    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32579    assert_instr(fmul, LANE = 0)
32580)]
32581#[rustc_legacy_const_generics(2)]
32582#[cfg_attr(
32583    not(target_arch = "arm"),
32584    stable(feature = "neon_intrinsics", since = "1.59.0")
32585)]
32586#[cfg_attr(
32587    target_arch = "arm",
32588    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32589)]
32590pub fn vmul_lane_f32<const LANE: i32>(a: float32x2_t, b: float32x2_t) -> float32x2_t {
32591    static_assert_uimm_bits!(LANE, 1);
32592    unsafe { simd_mul(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32])) }
32593}
32594#[doc = "Floating-point multiply"]
32595#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_laneq_f32)"]
32596#[inline]
32597#[target_feature(enable = "neon")]
32598#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32599#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 0))]
32600#[cfg_attr(
32601    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32602    assert_instr(fmul, LANE = 0)
32603)]
32604#[rustc_legacy_const_generics(2)]
32605#[cfg_attr(
32606    not(target_arch = "arm"),
32607    stable(feature = "neon_intrinsics", since = "1.59.0")
32608)]
32609#[cfg_attr(
32610    target_arch = "arm",
32611    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32612)]
32613pub fn vmul_laneq_f32<const LANE: i32>(a: float32x2_t, b: float32x4_t) -> float32x2_t {
32614    static_assert_uimm_bits!(LANE, 2);
32615    unsafe { simd_mul(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32])) }
32616}
32617#[doc = "Floating-point multiply"]
32618#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_lane_f32)"]
32619#[inline]
32620#[target_feature(enable = "neon")]
32621#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32622#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 0))]
32623#[cfg_attr(
32624    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32625    assert_instr(fmul, LANE = 0)
32626)]
32627#[rustc_legacy_const_generics(2)]
32628#[cfg_attr(
32629    not(target_arch = "arm"),
32630    stable(feature = "neon_intrinsics", since = "1.59.0")
32631)]
32632#[cfg_attr(
32633    target_arch = "arm",
32634    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32635)]
32636pub fn vmulq_lane_f32<const LANE: i32>(a: float32x4_t, b: float32x2_t) -> float32x4_t {
32637    static_assert_uimm_bits!(LANE, 1);
32638    unsafe {
32639        simd_mul(
32640            a,
32641            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
32642        )
32643    }
32644}
32645#[doc = "Floating-point multiply"]
32646#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_laneq_f32)"]
32647#[inline]
32648#[target_feature(enable = "neon")]
32649#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32650#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 0))]
32651#[cfg_attr(
32652    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32653    assert_instr(fmul, LANE = 0)
32654)]
32655#[rustc_legacy_const_generics(2)]
32656#[cfg_attr(
32657    not(target_arch = "arm"),
32658    stable(feature = "neon_intrinsics", since = "1.59.0")
32659)]
32660#[cfg_attr(
32661    target_arch = "arm",
32662    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32663)]
32664pub fn vmulq_laneq_f32<const LANE: i32>(a: float32x4_t, b: float32x4_t) -> float32x4_t {
32665    static_assert_uimm_bits!(LANE, 2);
32666    unsafe {
32667        simd_mul(
32668            a,
32669            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
32670        )
32671    }
32672}
32673#[doc = "Multiply"]
32674#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_lane_s16)"]
32675#[inline]
32676#[target_feature(enable = "neon")]
32677#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32678#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
32679#[cfg_attr(
32680    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32681    assert_instr(mul, LANE = 1)
32682)]
32683#[rustc_legacy_const_generics(2)]
32684#[cfg_attr(
32685    not(target_arch = "arm"),
32686    stable(feature = "neon_intrinsics", since = "1.59.0")
32687)]
32688#[cfg_attr(
32689    target_arch = "arm",
32690    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32691)]
32692pub fn vmul_lane_s16<const LANE: i32>(a: int16x4_t, b: int16x4_t) -> int16x4_t {
32693    static_assert_uimm_bits!(LANE, 2);
32694    unsafe {
32695        simd_mul(
32696            a,
32697            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
32698        )
32699    }
32700}
32701#[doc = "Multiply"]
32702#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_lane_s16)"]
32703#[inline]
32704#[target_feature(enable = "neon")]
32705#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32706#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
32707#[cfg_attr(
32708    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32709    assert_instr(mul, LANE = 1)
32710)]
32711#[rustc_legacy_const_generics(2)]
32712#[cfg_attr(
32713    not(target_arch = "arm"),
32714    stable(feature = "neon_intrinsics", since = "1.59.0")
32715)]
32716#[cfg_attr(
32717    target_arch = "arm",
32718    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32719)]
32720pub fn vmulq_lane_s16<const LANE: i32>(a: int16x8_t, b: int16x4_t) -> int16x8_t {
32721    static_assert_uimm_bits!(LANE, 2);
32722    unsafe {
32723        simd_mul(
32724            a,
32725            simd_shuffle!(
32726                b,
32727                b,
32728                [
32729                    LANE as u32,
32730                    LANE as u32,
32731                    LANE as u32,
32732                    LANE as u32,
32733                    LANE as u32,
32734                    LANE as u32,
32735                    LANE as u32,
32736                    LANE as u32
32737                ]
32738            ),
32739        )
32740    }
32741}
32742#[doc = "Multiply"]
32743#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_lane_s32)"]
32744#[inline]
32745#[target_feature(enable = "neon")]
32746#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32747#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
32748#[cfg_attr(
32749    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32750    assert_instr(mul, LANE = 1)
32751)]
32752#[rustc_legacy_const_generics(2)]
32753#[cfg_attr(
32754    not(target_arch = "arm"),
32755    stable(feature = "neon_intrinsics", since = "1.59.0")
32756)]
32757#[cfg_attr(
32758    target_arch = "arm",
32759    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32760)]
32761pub fn vmul_lane_s32<const LANE: i32>(a: int32x2_t, b: int32x2_t) -> int32x2_t {
32762    static_assert_uimm_bits!(LANE, 1);
32763    unsafe { simd_mul(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32])) }
32764}
32765#[doc = "Multiply"]
32766#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_lane_s32)"]
32767#[inline]
32768#[target_feature(enable = "neon")]
32769#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32770#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
32771#[cfg_attr(
32772    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32773    assert_instr(mul, LANE = 1)
32774)]
32775#[rustc_legacy_const_generics(2)]
32776#[cfg_attr(
32777    not(target_arch = "arm"),
32778    stable(feature = "neon_intrinsics", since = "1.59.0")
32779)]
32780#[cfg_attr(
32781    target_arch = "arm",
32782    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32783)]
32784pub fn vmulq_lane_s32<const LANE: i32>(a: int32x4_t, b: int32x2_t) -> int32x4_t {
32785    static_assert_uimm_bits!(LANE, 1);
32786    unsafe {
32787        simd_mul(
32788            a,
32789            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
32790        )
32791    }
32792}
32793#[doc = "Multiply"]
32794#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_lane_u16)"]
32795#[inline]
32796#[target_feature(enable = "neon")]
32797#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32798#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
32799#[cfg_attr(
32800    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32801    assert_instr(mul, LANE = 1)
32802)]
32803#[rustc_legacy_const_generics(2)]
32804#[cfg_attr(
32805    not(target_arch = "arm"),
32806    stable(feature = "neon_intrinsics", since = "1.59.0")
32807)]
32808#[cfg_attr(
32809    target_arch = "arm",
32810    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32811)]
32812pub fn vmul_lane_u16<const LANE: i32>(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
32813    static_assert_uimm_bits!(LANE, 2);
32814    unsafe {
32815        simd_mul(
32816            a,
32817            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
32818        )
32819    }
32820}
32821#[doc = "Multiply"]
32822#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_lane_u16)"]
32823#[inline]
32824#[target_feature(enable = "neon")]
32825#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32826#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
32827#[cfg_attr(
32828    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32829    assert_instr(mul, LANE = 1)
32830)]
32831#[rustc_legacy_const_generics(2)]
32832#[cfg_attr(
32833    not(target_arch = "arm"),
32834    stable(feature = "neon_intrinsics", since = "1.59.0")
32835)]
32836#[cfg_attr(
32837    target_arch = "arm",
32838    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32839)]
32840pub fn vmulq_lane_u16<const LANE: i32>(a: uint16x8_t, b: uint16x4_t) -> uint16x8_t {
32841    static_assert_uimm_bits!(LANE, 2);
32842    unsafe {
32843        simd_mul(
32844            a,
32845            simd_shuffle!(
32846                b,
32847                b,
32848                [
32849                    LANE as u32,
32850                    LANE as u32,
32851                    LANE as u32,
32852                    LANE as u32,
32853                    LANE as u32,
32854                    LANE as u32,
32855                    LANE as u32,
32856                    LANE as u32
32857                ]
32858            ),
32859        )
32860    }
32861}
32862#[doc = "Multiply"]
32863#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_lane_u32)"]
32864#[inline]
32865#[target_feature(enable = "neon")]
32866#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32867#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
32868#[cfg_attr(
32869    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32870    assert_instr(mul, LANE = 1)
32871)]
32872#[rustc_legacy_const_generics(2)]
32873#[cfg_attr(
32874    not(target_arch = "arm"),
32875    stable(feature = "neon_intrinsics", since = "1.59.0")
32876)]
32877#[cfg_attr(
32878    target_arch = "arm",
32879    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32880)]
32881pub fn vmul_lane_u32<const LANE: i32>(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
32882    static_assert_uimm_bits!(LANE, 1);
32883    unsafe { simd_mul(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32])) }
32884}
32885#[doc = "Multiply"]
32886#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_lane_u32)"]
32887#[inline]
32888#[target_feature(enable = "neon")]
32889#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32890#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
32891#[cfg_attr(
32892    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32893    assert_instr(mul, LANE = 1)
32894)]
32895#[rustc_legacy_const_generics(2)]
32896#[cfg_attr(
32897    not(target_arch = "arm"),
32898    stable(feature = "neon_intrinsics", since = "1.59.0")
32899)]
32900#[cfg_attr(
32901    target_arch = "arm",
32902    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32903)]
32904pub fn vmulq_lane_u32<const LANE: i32>(a: uint32x4_t, b: uint32x2_t) -> uint32x4_t {
32905    static_assert_uimm_bits!(LANE, 1);
32906    unsafe {
32907        simd_mul(
32908            a,
32909            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
32910        )
32911    }
32912}
32913#[doc = "Multiply"]
32914#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_laneq_s16)"]
32915#[inline]
32916#[target_feature(enable = "neon")]
32917#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32918#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
32919#[cfg_attr(
32920    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32921    assert_instr(mul, LANE = 1)
32922)]
32923#[rustc_legacy_const_generics(2)]
32924#[cfg_attr(
32925    not(target_arch = "arm"),
32926    stable(feature = "neon_intrinsics", since = "1.59.0")
32927)]
32928#[cfg_attr(
32929    target_arch = "arm",
32930    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32931)]
32932pub fn vmul_laneq_s16<const LANE: i32>(a: int16x4_t, b: int16x8_t) -> int16x4_t {
32933    static_assert_uimm_bits!(LANE, 3);
32934    unsafe {
32935        simd_mul(
32936            a,
32937            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
32938        )
32939    }
32940}
32941#[doc = "Multiply"]
32942#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_laneq_s16)"]
32943#[inline]
32944#[target_feature(enable = "neon")]
32945#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32946#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
32947#[cfg_attr(
32948    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32949    assert_instr(mul, LANE = 1)
32950)]
32951#[rustc_legacy_const_generics(2)]
32952#[cfg_attr(
32953    not(target_arch = "arm"),
32954    stable(feature = "neon_intrinsics", since = "1.59.0")
32955)]
32956#[cfg_attr(
32957    target_arch = "arm",
32958    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32959)]
32960pub fn vmulq_laneq_s16<const LANE: i32>(a: int16x8_t, b: int16x8_t) -> int16x8_t {
32961    static_assert_uimm_bits!(LANE, 3);
32962    unsafe {
32963        simd_mul(
32964            a,
32965            simd_shuffle!(
32966                b,
32967                b,
32968                [
32969                    LANE as u32,
32970                    LANE as u32,
32971                    LANE as u32,
32972                    LANE as u32,
32973                    LANE as u32,
32974                    LANE as u32,
32975                    LANE as u32,
32976                    LANE as u32
32977                ]
32978            ),
32979        )
32980    }
32981}
32982#[doc = "Multiply"]
32983#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_laneq_s32)"]
32984#[inline]
32985#[target_feature(enable = "neon")]
32986#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32987#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
32988#[cfg_attr(
32989    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32990    assert_instr(mul, LANE = 1)
32991)]
32992#[rustc_legacy_const_generics(2)]
32993#[cfg_attr(
32994    not(target_arch = "arm"),
32995    stable(feature = "neon_intrinsics", since = "1.59.0")
32996)]
32997#[cfg_attr(
32998    target_arch = "arm",
32999    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33000)]
33001pub fn vmul_laneq_s32<const LANE: i32>(a: int32x2_t, b: int32x4_t) -> int32x2_t {
33002    static_assert_uimm_bits!(LANE, 2);
33003    unsafe { simd_mul(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32])) }
33004}
33005#[doc = "Multiply"]
33006#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_laneq_s32)"]
33007#[inline]
33008#[target_feature(enable = "neon")]
33009#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33010#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
33011#[cfg_attr(
33012    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33013    assert_instr(mul, LANE = 1)
33014)]
33015#[rustc_legacy_const_generics(2)]
33016#[cfg_attr(
33017    not(target_arch = "arm"),
33018    stable(feature = "neon_intrinsics", since = "1.59.0")
33019)]
33020#[cfg_attr(
33021    target_arch = "arm",
33022    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33023)]
33024pub fn vmulq_laneq_s32<const LANE: i32>(a: int32x4_t, b: int32x4_t) -> int32x4_t {
33025    static_assert_uimm_bits!(LANE, 2);
33026    unsafe {
33027        simd_mul(
33028            a,
33029            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
33030        )
33031    }
33032}
33033#[doc = "Multiply"]
33034#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_laneq_u16)"]
33035#[inline]
33036#[target_feature(enable = "neon")]
33037#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33038#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
33039#[cfg_attr(
33040    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33041    assert_instr(mul, LANE = 1)
33042)]
33043#[rustc_legacy_const_generics(2)]
33044#[cfg_attr(
33045    not(target_arch = "arm"),
33046    stable(feature = "neon_intrinsics", since = "1.59.0")
33047)]
33048#[cfg_attr(
33049    target_arch = "arm",
33050    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33051)]
33052pub fn vmul_laneq_u16<const LANE: i32>(a: uint16x4_t, b: uint16x8_t) -> uint16x4_t {
33053    static_assert_uimm_bits!(LANE, 3);
33054    unsafe {
33055        simd_mul(
33056            a,
33057            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
33058        )
33059    }
33060}
33061#[doc = "Multiply"]
33062#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_laneq_u16)"]
33063#[inline]
33064#[target_feature(enable = "neon")]
33065#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33066#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
33067#[cfg_attr(
33068    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33069    assert_instr(mul, LANE = 1)
33070)]
33071#[rustc_legacy_const_generics(2)]
33072#[cfg_attr(
33073    not(target_arch = "arm"),
33074    stable(feature = "neon_intrinsics", since = "1.59.0")
33075)]
33076#[cfg_attr(
33077    target_arch = "arm",
33078    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33079)]
33080pub fn vmulq_laneq_u16<const LANE: i32>(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
33081    static_assert_uimm_bits!(LANE, 3);
33082    unsafe {
33083        simd_mul(
33084            a,
33085            simd_shuffle!(
33086                b,
33087                b,
33088                [
33089                    LANE as u32,
33090                    LANE as u32,
33091                    LANE as u32,
33092                    LANE as u32,
33093                    LANE as u32,
33094                    LANE as u32,
33095                    LANE as u32,
33096                    LANE as u32
33097                ]
33098            ),
33099        )
33100    }
33101}
33102#[doc = "Multiply"]
33103#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_laneq_u32)"]
33104#[inline]
33105#[target_feature(enable = "neon")]
33106#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33107#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
33108#[cfg_attr(
33109    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33110    assert_instr(mul, LANE = 1)
33111)]
33112#[rustc_legacy_const_generics(2)]
33113#[cfg_attr(
33114    not(target_arch = "arm"),
33115    stable(feature = "neon_intrinsics", since = "1.59.0")
33116)]
33117#[cfg_attr(
33118    target_arch = "arm",
33119    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33120)]
33121pub fn vmul_laneq_u32<const LANE: i32>(a: uint32x2_t, b: uint32x4_t) -> uint32x2_t {
33122    static_assert_uimm_bits!(LANE, 2);
33123    unsafe { simd_mul(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32])) }
33124}
33125#[doc = "Multiply"]
33126#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_laneq_u32)"]
33127#[inline]
33128#[target_feature(enable = "neon")]
33129#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33130#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
33131#[cfg_attr(
33132    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33133    assert_instr(mul, LANE = 1)
33134)]
33135#[rustc_legacy_const_generics(2)]
33136#[cfg_attr(
33137    not(target_arch = "arm"),
33138    stable(feature = "neon_intrinsics", since = "1.59.0")
33139)]
33140#[cfg_attr(
33141    target_arch = "arm",
33142    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33143)]
33144pub fn vmulq_laneq_u32<const LANE: i32>(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
33145    static_assert_uimm_bits!(LANE, 2);
33146    unsafe {
33147        simd_mul(
33148            a,
33149            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
33150        )
33151    }
33152}
33153#[doc = "Vector multiply by scalar"]
33154#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_n_f16)"]
33155#[inline]
33156#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
33157#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
33158#[cfg_attr(
33159    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33160    assert_instr(fmul)
33161)]
33162#[target_feature(enable = "neon,fp16")]
33163#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
33164#[cfg(not(target_arch = "arm64ec"))]
33165pub fn vmul_n_f16(a: float16x4_t, b: f16) -> float16x4_t {
33166    unsafe { simd_mul(a, vdup_n_f16(b)) }
33167}
33168#[doc = "Vector multiply by scalar"]
33169#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_n_f16)"]
33170#[inline]
33171#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
33172#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
33173#[cfg_attr(
33174    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33175    assert_instr(fmul)
33176)]
33177#[target_feature(enable = "neon,fp16")]
33178#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
33179#[cfg(not(target_arch = "arm64ec"))]
33180pub fn vmulq_n_f16(a: float16x8_t, b: f16) -> float16x8_t {
33181    unsafe { simd_mul(a, vdupq_n_f16(b)) }
33182}
33183#[doc = "Vector multiply by scalar"]
33184#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_n_f32)"]
33185#[inline]
33186#[target_feature(enable = "neon")]
33187#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33188#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
33189#[cfg_attr(
33190    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33191    assert_instr(fmul)
33192)]
33193#[cfg_attr(
33194    not(target_arch = "arm"),
33195    stable(feature = "neon_intrinsics", since = "1.59.0")
33196)]
33197#[cfg_attr(
33198    target_arch = "arm",
33199    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33200)]
33201pub fn vmul_n_f32(a: float32x2_t, b: f32) -> float32x2_t {
33202    unsafe { simd_mul(a, vdup_n_f32(b)) }
33203}
33204#[doc = "Vector multiply by scalar"]
33205#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_n_f32)"]
33206#[inline]
33207#[target_feature(enable = "neon")]
33208#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33209#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
33210#[cfg_attr(
33211    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33212    assert_instr(fmul)
33213)]
33214#[cfg_attr(
33215    not(target_arch = "arm"),
33216    stable(feature = "neon_intrinsics", since = "1.59.0")
33217)]
33218#[cfg_attr(
33219    target_arch = "arm",
33220    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33221)]
33222pub fn vmulq_n_f32(a: float32x4_t, b: f32) -> float32x4_t {
33223    unsafe { simd_mul(a, vdupq_n_f32(b)) }
33224}
33225#[doc = "Vector multiply by scalar"]
33226#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_n_s16)"]
33227#[inline]
33228#[target_feature(enable = "neon")]
33229#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33230#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
33231#[cfg_attr(
33232    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33233    assert_instr(mul)
33234)]
33235#[cfg_attr(
33236    not(target_arch = "arm"),
33237    stable(feature = "neon_intrinsics", since = "1.59.0")
33238)]
33239#[cfg_attr(
33240    target_arch = "arm",
33241    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33242)]
33243pub fn vmul_n_s16(a: int16x4_t, b: i16) -> int16x4_t {
33244    unsafe { simd_mul(a, vdup_n_s16(b)) }
33245}
33246#[doc = "Vector multiply by scalar"]
33247#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_n_s16)"]
33248#[inline]
33249#[target_feature(enable = "neon")]
33250#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33251#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
33252#[cfg_attr(
33253    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33254    assert_instr(mul)
33255)]
33256#[cfg_attr(
33257    not(target_arch = "arm"),
33258    stable(feature = "neon_intrinsics", since = "1.59.0")
33259)]
33260#[cfg_attr(
33261    target_arch = "arm",
33262    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33263)]
33264pub fn vmulq_n_s16(a: int16x8_t, b: i16) -> int16x8_t {
33265    unsafe { simd_mul(a, vdupq_n_s16(b)) }
33266}
33267#[doc = "Vector multiply by scalar"]
33268#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_n_s32)"]
33269#[inline]
33270#[target_feature(enable = "neon")]
33271#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33272#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
33273#[cfg_attr(
33274    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33275    assert_instr(mul)
33276)]
33277#[cfg_attr(
33278    not(target_arch = "arm"),
33279    stable(feature = "neon_intrinsics", since = "1.59.0")
33280)]
33281#[cfg_attr(
33282    target_arch = "arm",
33283    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33284)]
33285pub fn vmul_n_s32(a: int32x2_t, b: i32) -> int32x2_t {
33286    unsafe { simd_mul(a, vdup_n_s32(b)) }
33287}
33288#[doc = "Vector multiply by scalar"]
33289#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_n_s32)"]
33290#[inline]
33291#[target_feature(enable = "neon")]
33292#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33293#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
33294#[cfg_attr(
33295    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33296    assert_instr(mul)
33297)]
33298#[cfg_attr(
33299    not(target_arch = "arm"),
33300    stable(feature = "neon_intrinsics", since = "1.59.0")
33301)]
33302#[cfg_attr(
33303    target_arch = "arm",
33304    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33305)]
33306pub fn vmulq_n_s32(a: int32x4_t, b: i32) -> int32x4_t {
33307    unsafe { simd_mul(a, vdupq_n_s32(b)) }
33308}
33309#[doc = "Vector multiply by scalar"]
33310#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_n_u16)"]
33311#[inline]
33312#[target_feature(enable = "neon")]
33313#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33314#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
33315#[cfg_attr(
33316    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33317    assert_instr(mul)
33318)]
33319#[cfg_attr(
33320    not(target_arch = "arm"),
33321    stable(feature = "neon_intrinsics", since = "1.59.0")
33322)]
33323#[cfg_attr(
33324    target_arch = "arm",
33325    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33326)]
33327pub fn vmul_n_u16(a: uint16x4_t, b: u16) -> uint16x4_t {
33328    unsafe { simd_mul(a, vdup_n_u16(b)) }
33329}
33330#[doc = "Vector multiply by scalar"]
33331#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_n_u16)"]
33332#[inline]
33333#[target_feature(enable = "neon")]
33334#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33335#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
33336#[cfg_attr(
33337    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33338    assert_instr(mul)
33339)]
33340#[cfg_attr(
33341    not(target_arch = "arm"),
33342    stable(feature = "neon_intrinsics", since = "1.59.0")
33343)]
33344#[cfg_attr(
33345    target_arch = "arm",
33346    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33347)]
33348pub fn vmulq_n_u16(a: uint16x8_t, b: u16) -> uint16x8_t {
33349    unsafe { simd_mul(a, vdupq_n_u16(b)) }
33350}
33351#[doc = "Vector multiply by scalar"]
33352#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_n_u32)"]
33353#[inline]
33354#[target_feature(enable = "neon")]
33355#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33356#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
33357#[cfg_attr(
33358    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33359    assert_instr(mul)
33360)]
33361#[cfg_attr(
33362    not(target_arch = "arm"),
33363    stable(feature = "neon_intrinsics", since = "1.59.0")
33364)]
33365#[cfg_attr(
33366    target_arch = "arm",
33367    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33368)]
33369pub fn vmul_n_u32(a: uint32x2_t, b: u32) -> uint32x2_t {
33370    unsafe { simd_mul(a, vdup_n_u32(b)) }
33371}
33372#[doc = "Vector multiply by scalar"]
33373#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_n_u32)"]
33374#[inline]
33375#[target_feature(enable = "neon")]
33376#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33377#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
33378#[cfg_attr(
33379    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33380    assert_instr(mul)
33381)]
33382#[cfg_attr(
33383    not(target_arch = "arm"),
33384    stable(feature = "neon_intrinsics", since = "1.59.0")
33385)]
33386#[cfg_attr(
33387    target_arch = "arm",
33388    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33389)]
33390pub fn vmulq_n_u32(a: uint32x4_t, b: u32) -> uint32x4_t {
33391    unsafe { simd_mul(a, vdupq_n_u32(b)) }
33392}
33393#[doc = "Polynomial multiply"]
33394#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_p8)"]
33395#[inline]
33396#[target_feature(enable = "neon")]
33397#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33398#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
33399#[cfg_attr(
33400    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33401    assert_instr(pmul)
33402)]
33403#[cfg_attr(
33404    not(target_arch = "arm"),
33405    stable(feature = "neon_intrinsics", since = "1.59.0")
33406)]
33407#[cfg_attr(
33408    target_arch = "arm",
33409    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33410)]
33411pub fn vmul_p8(a: poly8x8_t, b: poly8x8_t) -> poly8x8_t {
33412    unsafe extern "unadjusted" {
33413        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmulp.v8i8")]
33414        #[cfg_attr(
33415            any(target_arch = "aarch64", target_arch = "arm64ec"),
33416            link_name = "llvm.aarch64.neon.pmul.v8i8"
33417        )]
33418        fn _vmul_p8(a: poly8x8_t, b: poly8x8_t) -> poly8x8_t;
33419    }
33420    unsafe { _vmul_p8(a, b) }
33421}
33422#[doc = "Polynomial multiply"]
33423#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_p8)"]
33424#[inline]
33425#[target_feature(enable = "neon")]
33426#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33427#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
33428#[cfg_attr(
33429    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33430    assert_instr(pmul)
33431)]
33432#[cfg_attr(
33433    not(target_arch = "arm"),
33434    stable(feature = "neon_intrinsics", since = "1.59.0")
33435)]
33436#[cfg_attr(
33437    target_arch = "arm",
33438    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33439)]
33440pub fn vmulq_p8(a: poly8x16_t, b: poly8x16_t) -> poly8x16_t {
33441    unsafe extern "unadjusted" {
33442        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmulp.v16i8")]
33443        #[cfg_attr(
33444            any(target_arch = "aarch64", target_arch = "arm64ec"),
33445            link_name = "llvm.aarch64.neon.pmul.v16i8"
33446        )]
33447        fn _vmulq_p8(a: poly8x16_t, b: poly8x16_t) -> poly8x16_t;
33448    }
33449    unsafe { _vmulq_p8(a, b) }
33450}
33451#[doc = "Multiply"]
33452#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_s16)"]
33453#[inline]
33454#[target_feature(enable = "neon")]
33455#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33456#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.i16"))]
33457#[cfg_attr(
33458    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33459    assert_instr(mul)
33460)]
33461#[cfg_attr(
33462    not(target_arch = "arm"),
33463    stable(feature = "neon_intrinsics", since = "1.59.0")
33464)]
33465#[cfg_attr(
33466    target_arch = "arm",
33467    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33468)]
33469pub fn vmul_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
33470    unsafe { simd_mul(a, b) }
33471}
33472#[doc = "Multiply"]
33473#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_s16)"]
33474#[inline]
33475#[target_feature(enable = "neon")]
33476#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33477#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.i16"))]
33478#[cfg_attr(
33479    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33480    assert_instr(mul)
33481)]
33482#[cfg_attr(
33483    not(target_arch = "arm"),
33484    stable(feature = "neon_intrinsics", since = "1.59.0")
33485)]
33486#[cfg_attr(
33487    target_arch = "arm",
33488    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33489)]
33490pub fn vmulq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
33491    unsafe { simd_mul(a, b) }
33492}
33493#[doc = "Multiply"]
33494#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_u16)"]
33495#[inline]
33496#[target_feature(enable = "neon")]
33497#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33498#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.i16"))]
33499#[cfg_attr(
33500    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33501    assert_instr(mul)
33502)]
33503#[cfg_attr(
33504    not(target_arch = "arm"),
33505    stable(feature = "neon_intrinsics", since = "1.59.0")
33506)]
33507#[cfg_attr(
33508    target_arch = "arm",
33509    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33510)]
33511pub fn vmul_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
33512    unsafe { simd_mul(a, b) }
33513}
33514#[doc = "Multiply"]
33515#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_u16)"]
33516#[inline]
33517#[target_feature(enable = "neon")]
33518#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33519#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.i16"))]
33520#[cfg_attr(
33521    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33522    assert_instr(mul)
33523)]
33524#[cfg_attr(
33525    not(target_arch = "arm"),
33526    stable(feature = "neon_intrinsics", since = "1.59.0")
33527)]
33528#[cfg_attr(
33529    target_arch = "arm",
33530    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33531)]
33532pub fn vmulq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
33533    unsafe { simd_mul(a, b) }
33534}
33535#[doc = "Multiply"]
33536#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_s32)"]
33537#[inline]
33538#[target_feature(enable = "neon")]
33539#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33540#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.i32"))]
33541#[cfg_attr(
33542    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33543    assert_instr(mul)
33544)]
33545#[cfg_attr(
33546    not(target_arch = "arm"),
33547    stable(feature = "neon_intrinsics", since = "1.59.0")
33548)]
33549#[cfg_attr(
33550    target_arch = "arm",
33551    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33552)]
33553pub fn vmul_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
33554    unsafe { simd_mul(a, b) }
33555}
33556#[doc = "Multiply"]
33557#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_s32)"]
33558#[inline]
33559#[target_feature(enable = "neon")]
33560#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33561#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.i32"))]
33562#[cfg_attr(
33563    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33564    assert_instr(mul)
33565)]
33566#[cfg_attr(
33567    not(target_arch = "arm"),
33568    stable(feature = "neon_intrinsics", since = "1.59.0")
33569)]
33570#[cfg_attr(
33571    target_arch = "arm",
33572    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33573)]
33574pub fn vmulq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
33575    unsafe { simd_mul(a, b) }
33576}
33577#[doc = "Multiply"]
33578#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_u32)"]
33579#[inline]
33580#[target_feature(enable = "neon")]
33581#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33582#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.i32"))]
33583#[cfg_attr(
33584    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33585    assert_instr(mul)
33586)]
33587#[cfg_attr(
33588    not(target_arch = "arm"),
33589    stable(feature = "neon_intrinsics", since = "1.59.0")
33590)]
33591#[cfg_attr(
33592    target_arch = "arm",
33593    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33594)]
33595pub fn vmul_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
33596    unsafe { simd_mul(a, b) }
33597}
33598#[doc = "Multiply"]
33599#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_u32)"]
33600#[inline]
33601#[target_feature(enable = "neon")]
33602#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33603#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.i32"))]
33604#[cfg_attr(
33605    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33606    assert_instr(mul)
33607)]
33608#[cfg_attr(
33609    not(target_arch = "arm"),
33610    stable(feature = "neon_intrinsics", since = "1.59.0")
33611)]
33612#[cfg_attr(
33613    target_arch = "arm",
33614    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33615)]
33616pub fn vmulq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
33617    unsafe { simd_mul(a, b) }
33618}
33619#[doc = "Multiply"]
33620#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_s8)"]
33621#[inline]
33622#[target_feature(enable = "neon")]
33623#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33624#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.i8"))]
33625#[cfg_attr(
33626    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33627    assert_instr(mul)
33628)]
33629#[cfg_attr(
33630    not(target_arch = "arm"),
33631    stable(feature = "neon_intrinsics", since = "1.59.0")
33632)]
33633#[cfg_attr(
33634    target_arch = "arm",
33635    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33636)]
33637pub fn vmul_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
33638    unsafe { simd_mul(a, b) }
33639}
33640#[doc = "Multiply"]
33641#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_s8)"]
33642#[inline]
33643#[target_feature(enable = "neon")]
33644#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33645#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.i8"))]
33646#[cfg_attr(
33647    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33648    assert_instr(mul)
33649)]
33650#[cfg_attr(
33651    not(target_arch = "arm"),
33652    stable(feature = "neon_intrinsics", since = "1.59.0")
33653)]
33654#[cfg_attr(
33655    target_arch = "arm",
33656    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33657)]
33658pub fn vmulq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
33659    unsafe { simd_mul(a, b) }
33660}
33661#[doc = "Multiply"]
33662#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_u8)"]
33663#[inline]
33664#[target_feature(enable = "neon")]
33665#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33666#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.i8"))]
33667#[cfg_attr(
33668    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33669    assert_instr(mul)
33670)]
33671#[cfg_attr(
33672    not(target_arch = "arm"),
33673    stable(feature = "neon_intrinsics", since = "1.59.0")
33674)]
33675#[cfg_attr(
33676    target_arch = "arm",
33677    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33678)]
33679pub fn vmul_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
33680    unsafe { simd_mul(a, b) }
33681}
33682#[doc = "Multiply"]
33683#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_u8)"]
33684#[inline]
33685#[target_feature(enable = "neon")]
33686#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33687#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.i8"))]
33688#[cfg_attr(
33689    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33690    assert_instr(mul)
33691)]
33692#[cfg_attr(
33693    not(target_arch = "arm"),
33694    stable(feature = "neon_intrinsics", since = "1.59.0")
33695)]
33696#[cfg_attr(
33697    target_arch = "arm",
33698    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33699)]
33700pub fn vmulq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
33701    unsafe { simd_mul(a, b) }
33702}
33703#[doc = "Vector long multiply by scalar"]
33704#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_lane_s16)"]
33705#[inline]
33706#[target_feature(enable = "neon")]
33707#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33708#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmull, LANE = 1))]
33709#[cfg_attr(
33710    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33711    assert_instr(smull, LANE = 1)
33712)]
33713#[rustc_legacy_const_generics(2)]
33714#[cfg_attr(
33715    not(target_arch = "arm"),
33716    stable(feature = "neon_intrinsics", since = "1.59.0")
33717)]
33718#[cfg_attr(
33719    target_arch = "arm",
33720    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33721)]
33722pub fn vmull_lane_s16<const LANE: i32>(a: int16x4_t, b: int16x4_t) -> int32x4_t {
33723    static_assert_uimm_bits!(LANE, 2);
33724    unsafe {
33725        vmull_s16(
33726            a,
33727            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
33728        )
33729    }
33730}
33731#[doc = "Vector long multiply by scalar"]
33732#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_laneq_s16)"]
33733#[inline]
33734#[target_feature(enable = "neon")]
33735#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33736#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmull, LANE = 1))]
33737#[cfg_attr(
33738    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33739    assert_instr(smull, LANE = 1)
33740)]
33741#[rustc_legacy_const_generics(2)]
33742#[cfg_attr(
33743    not(target_arch = "arm"),
33744    stable(feature = "neon_intrinsics", since = "1.59.0")
33745)]
33746#[cfg_attr(
33747    target_arch = "arm",
33748    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33749)]
33750pub fn vmull_laneq_s16<const LANE: i32>(a: int16x4_t, b: int16x8_t) -> int32x4_t {
33751    static_assert_uimm_bits!(LANE, 3);
33752    unsafe {
33753        vmull_s16(
33754            a,
33755            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
33756        )
33757    }
33758}
33759#[doc = "Vector long multiply by scalar"]
33760#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_lane_s32)"]
33761#[inline]
33762#[target_feature(enable = "neon")]
33763#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33764#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmull, LANE = 1))]
33765#[cfg_attr(
33766    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33767    assert_instr(smull, LANE = 1)
33768)]
33769#[rustc_legacy_const_generics(2)]
33770#[cfg_attr(
33771    not(target_arch = "arm"),
33772    stable(feature = "neon_intrinsics", since = "1.59.0")
33773)]
33774#[cfg_attr(
33775    target_arch = "arm",
33776    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33777)]
33778pub fn vmull_lane_s32<const LANE: i32>(a: int32x2_t, b: int32x2_t) -> int64x2_t {
33779    static_assert_uimm_bits!(LANE, 1);
33780    unsafe { vmull_s32(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32])) }
33781}
33782#[doc = "Vector long multiply by scalar"]
33783#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_laneq_s32)"]
33784#[inline]
33785#[target_feature(enable = "neon")]
33786#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33787#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmull, LANE = 1))]
33788#[cfg_attr(
33789    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33790    assert_instr(smull, LANE = 1)
33791)]
33792#[rustc_legacy_const_generics(2)]
33793#[cfg_attr(
33794    not(target_arch = "arm"),
33795    stable(feature = "neon_intrinsics", since = "1.59.0")
33796)]
33797#[cfg_attr(
33798    target_arch = "arm",
33799    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33800)]
33801pub fn vmull_laneq_s32<const LANE: i32>(a: int32x2_t, b: int32x4_t) -> int64x2_t {
33802    static_assert_uimm_bits!(LANE, 2);
33803    unsafe { vmull_s32(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32])) }
33804}
33805#[doc = "Vector long multiply by scalar"]
33806#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_lane_u16)"]
33807#[inline]
33808#[target_feature(enable = "neon")]
33809#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33810#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmull, LANE = 1))]
33811#[cfg_attr(
33812    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33813    assert_instr(umull, LANE = 1)
33814)]
33815#[rustc_legacy_const_generics(2)]
33816#[cfg_attr(
33817    not(target_arch = "arm"),
33818    stable(feature = "neon_intrinsics", since = "1.59.0")
33819)]
33820#[cfg_attr(
33821    target_arch = "arm",
33822    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33823)]
33824pub fn vmull_lane_u16<const LANE: i32>(a: uint16x4_t, b: uint16x4_t) -> uint32x4_t {
33825    static_assert_uimm_bits!(LANE, 2);
33826    unsafe {
33827        vmull_u16(
33828            a,
33829            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
33830        )
33831    }
33832}
33833#[doc = "Vector long multiply by scalar"]
33834#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_laneq_u16)"]
33835#[inline]
33836#[target_feature(enable = "neon")]
33837#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33838#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmull, LANE = 1))]
33839#[cfg_attr(
33840    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33841    assert_instr(umull, LANE = 1)
33842)]
33843#[rustc_legacy_const_generics(2)]
33844#[cfg_attr(
33845    not(target_arch = "arm"),
33846    stable(feature = "neon_intrinsics", since = "1.59.0")
33847)]
33848#[cfg_attr(
33849    target_arch = "arm",
33850    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33851)]
33852pub fn vmull_laneq_u16<const LANE: i32>(a: uint16x4_t, b: uint16x8_t) -> uint32x4_t {
33853    static_assert_uimm_bits!(LANE, 3);
33854    unsafe {
33855        vmull_u16(
33856            a,
33857            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
33858        )
33859    }
33860}
33861#[doc = "Vector long multiply by scalar"]
33862#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_lane_u32)"]
33863#[inline]
33864#[target_feature(enable = "neon")]
33865#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33866#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmull, LANE = 1))]
33867#[cfg_attr(
33868    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33869    assert_instr(umull, LANE = 1)
33870)]
33871#[rustc_legacy_const_generics(2)]
33872#[cfg_attr(
33873    not(target_arch = "arm"),
33874    stable(feature = "neon_intrinsics", since = "1.59.0")
33875)]
33876#[cfg_attr(
33877    target_arch = "arm",
33878    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33879)]
33880pub fn vmull_lane_u32<const LANE: i32>(a: uint32x2_t, b: uint32x2_t) -> uint64x2_t {
33881    static_assert_uimm_bits!(LANE, 1);
33882    unsafe { vmull_u32(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32])) }
33883}
33884#[doc = "Vector long multiply by scalar"]
33885#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_laneq_u32)"]
33886#[inline]
33887#[target_feature(enable = "neon")]
33888#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33889#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmull, LANE = 1))]
33890#[cfg_attr(
33891    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33892    assert_instr(umull, LANE = 1)
33893)]
33894#[rustc_legacy_const_generics(2)]
33895#[cfg_attr(
33896    not(target_arch = "arm"),
33897    stable(feature = "neon_intrinsics", since = "1.59.0")
33898)]
33899#[cfg_attr(
33900    target_arch = "arm",
33901    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33902)]
33903pub fn vmull_laneq_u32<const LANE: i32>(a: uint32x2_t, b: uint32x4_t) -> uint64x2_t {
33904    static_assert_uimm_bits!(LANE, 2);
33905    unsafe { vmull_u32(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32])) }
33906}
33907#[doc = "Vector long multiply with scalar"]
33908#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_n_s16)"]
33909#[inline]
33910#[target_feature(enable = "neon")]
33911#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33912#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmull))]
33913#[cfg_attr(
33914    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33915    assert_instr(smull)
33916)]
33917#[cfg_attr(
33918    not(target_arch = "arm"),
33919    stable(feature = "neon_intrinsics", since = "1.59.0")
33920)]
33921#[cfg_attr(
33922    target_arch = "arm",
33923    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33924)]
33925pub fn vmull_n_s16(a: int16x4_t, b: i16) -> int32x4_t {
33926    vmull_s16(a, vdup_n_s16(b))
33927}
33928#[doc = "Vector long multiply with scalar"]
33929#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_n_s32)"]
33930#[inline]
33931#[target_feature(enable = "neon")]
33932#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33933#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmull))]
33934#[cfg_attr(
33935    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33936    assert_instr(smull)
33937)]
33938#[cfg_attr(
33939    not(target_arch = "arm"),
33940    stable(feature = "neon_intrinsics", since = "1.59.0")
33941)]
33942#[cfg_attr(
33943    target_arch = "arm",
33944    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33945)]
33946pub fn vmull_n_s32(a: int32x2_t, b: i32) -> int64x2_t {
33947    vmull_s32(a, vdup_n_s32(b))
33948}
33949#[doc = "Vector long multiply with scalar"]
33950#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_n_u16)"]
33951#[inline]
33952#[target_feature(enable = "neon")]
33953#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33954#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmull))]
33955#[cfg_attr(
33956    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33957    assert_instr(umull)
33958)]
33959#[cfg_attr(
33960    not(target_arch = "arm"),
33961    stable(feature = "neon_intrinsics", since = "1.59.0")
33962)]
33963#[cfg_attr(
33964    target_arch = "arm",
33965    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33966)]
33967pub fn vmull_n_u16(a: uint16x4_t, b: u16) -> uint32x4_t {
33968    vmull_u16(a, vdup_n_u16(b))
33969}
33970#[doc = "Vector long multiply with scalar"]
33971#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_n_u32)"]
33972#[inline]
33973#[target_feature(enable = "neon")]
33974#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33975#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmull))]
33976#[cfg_attr(
33977    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33978    assert_instr(umull)
33979)]
33980#[cfg_attr(
33981    not(target_arch = "arm"),
33982    stable(feature = "neon_intrinsics", since = "1.59.0")
33983)]
33984#[cfg_attr(
33985    target_arch = "arm",
33986    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33987)]
33988pub fn vmull_n_u32(a: uint32x2_t, b: u32) -> uint64x2_t {
33989    vmull_u32(a, vdup_n_u32(b))
33990}
33991#[doc = "Polynomial multiply long"]
33992#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_p8)"]
33993#[inline]
33994#[target_feature(enable = "neon")]
33995#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33996#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmull.p8"))]
33997#[cfg_attr(
33998    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33999    assert_instr(pmull)
34000)]
34001#[cfg_attr(
34002    not(target_arch = "arm"),
34003    stable(feature = "neon_intrinsics", since = "1.59.0")
34004)]
34005#[cfg_attr(
34006    target_arch = "arm",
34007    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34008)]
34009pub fn vmull_p8(a: poly8x8_t, b: poly8x8_t) -> poly16x8_t {
34010    unsafe extern "unadjusted" {
34011        #[cfg_attr(
34012            any(target_arch = "aarch64", target_arch = "arm64ec"),
34013            link_name = "llvm.aarch64.neon.pmull.v8i16"
34014        )]
34015        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmullp.v8i16")]
34016        fn _vmull_p8(a: poly8x8_t, b: poly8x8_t) -> poly16x8_t;
34017    }
34018    unsafe { _vmull_p8(a, b) }
34019}
34020#[doc = "Signed multiply long"]
34021#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_s16)"]
34022#[inline]
34023#[target_feature(enable = "neon")]
34024#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34025#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmull.s16"))]
34026#[cfg_attr(
34027    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34028    assert_instr(smull)
34029)]
34030#[cfg_attr(
34031    not(target_arch = "arm"),
34032    stable(feature = "neon_intrinsics", since = "1.59.0")
34033)]
34034#[cfg_attr(
34035    target_arch = "arm",
34036    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34037)]
34038pub fn vmull_s16(a: int16x4_t, b: int16x4_t) -> int32x4_t {
34039    unsafe extern "unadjusted" {
34040        #[cfg_attr(
34041            any(target_arch = "aarch64", target_arch = "arm64ec"),
34042            link_name = "llvm.aarch64.neon.smull.v4i32"
34043        )]
34044        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmulls.v4i32")]
34045        fn _vmull_s16(a: int16x4_t, b: int16x4_t) -> int32x4_t;
34046    }
34047    unsafe { _vmull_s16(a, b) }
34048}
34049#[doc = "Signed multiply long"]
34050#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_s32)"]
34051#[inline]
34052#[target_feature(enable = "neon")]
34053#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34054#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmull.s32"))]
34055#[cfg_attr(
34056    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34057    assert_instr(smull)
34058)]
34059#[cfg_attr(
34060    not(target_arch = "arm"),
34061    stable(feature = "neon_intrinsics", since = "1.59.0")
34062)]
34063#[cfg_attr(
34064    target_arch = "arm",
34065    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34066)]
34067pub fn vmull_s32(a: int32x2_t, b: int32x2_t) -> int64x2_t {
34068    unsafe extern "unadjusted" {
34069        #[cfg_attr(
34070            any(target_arch = "aarch64", target_arch = "arm64ec"),
34071            link_name = "llvm.aarch64.neon.smull.v2i64"
34072        )]
34073        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmulls.v2i64")]
34074        fn _vmull_s32(a: int32x2_t, b: int32x2_t) -> int64x2_t;
34075    }
34076    unsafe { _vmull_s32(a, b) }
34077}
34078#[doc = "Signed multiply long"]
34079#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_s8)"]
34080#[inline]
34081#[target_feature(enable = "neon")]
34082#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34083#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmull.s8"))]
34084#[cfg_attr(
34085    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34086    assert_instr(smull)
34087)]
34088#[cfg_attr(
34089    not(target_arch = "arm"),
34090    stable(feature = "neon_intrinsics", since = "1.59.0")
34091)]
34092#[cfg_attr(
34093    target_arch = "arm",
34094    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34095)]
34096pub fn vmull_s8(a: int8x8_t, b: int8x8_t) -> int16x8_t {
34097    unsafe extern "unadjusted" {
34098        #[cfg_attr(
34099            any(target_arch = "aarch64", target_arch = "arm64ec"),
34100            link_name = "llvm.aarch64.neon.smull.v8i16"
34101        )]
34102        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmulls.v8i16")]
34103        fn _vmull_s8(a: int8x8_t, b: int8x8_t) -> int16x8_t;
34104    }
34105    unsafe { _vmull_s8(a, b) }
34106}
34107#[doc = "Unsigned multiply long"]
34108#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_u8)"]
34109#[inline]
34110#[target_feature(enable = "neon")]
34111#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34112#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmull.u8"))]
34113#[cfg_attr(
34114    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34115    assert_instr(umull)
34116)]
34117#[cfg_attr(
34118    not(target_arch = "arm"),
34119    stable(feature = "neon_intrinsics", since = "1.59.0")
34120)]
34121#[cfg_attr(
34122    target_arch = "arm",
34123    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34124)]
34125pub fn vmull_u8(a: uint8x8_t, b: uint8x8_t) -> uint16x8_t {
34126    unsafe extern "unadjusted" {
34127        #[cfg_attr(
34128            any(target_arch = "aarch64", target_arch = "arm64ec"),
34129            link_name = "llvm.aarch64.neon.umull.v8i16"
34130        )]
34131        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmullu.v8i16")]
34132        fn _vmull_u8(a: uint8x8_t, b: uint8x8_t) -> uint16x8_t;
34133    }
34134    unsafe { _vmull_u8(a, b) }
34135}
34136#[doc = "Unsigned multiply long"]
34137#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_u16)"]
34138#[inline]
34139#[target_feature(enable = "neon")]
34140#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34141#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmull.u16"))]
34142#[cfg_attr(
34143    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34144    assert_instr(umull)
34145)]
34146#[cfg_attr(
34147    not(target_arch = "arm"),
34148    stable(feature = "neon_intrinsics", since = "1.59.0")
34149)]
34150#[cfg_attr(
34151    target_arch = "arm",
34152    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34153)]
34154pub fn vmull_u16(a: uint16x4_t, b: uint16x4_t) -> uint32x4_t {
34155    unsafe extern "unadjusted" {
34156        #[cfg_attr(
34157            any(target_arch = "aarch64", target_arch = "arm64ec"),
34158            link_name = "llvm.aarch64.neon.umull.v4i32"
34159        )]
34160        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmullu.v4i32")]
34161        fn _vmull_u16(a: uint16x4_t, b: uint16x4_t) -> uint32x4_t;
34162    }
34163    unsafe { _vmull_u16(a, b) }
34164}
34165#[doc = "Unsigned multiply long"]
34166#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_u32)"]
34167#[inline]
34168#[target_feature(enable = "neon")]
34169#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34170#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmull.u32"))]
34171#[cfg_attr(
34172    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34173    assert_instr(umull)
34174)]
34175#[cfg_attr(
34176    not(target_arch = "arm"),
34177    stable(feature = "neon_intrinsics", since = "1.59.0")
34178)]
34179#[cfg_attr(
34180    target_arch = "arm",
34181    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34182)]
34183pub fn vmull_u32(a: uint32x2_t, b: uint32x2_t) -> uint64x2_t {
34184    unsafe extern "unadjusted" {
34185        #[cfg_attr(
34186            any(target_arch = "aarch64", target_arch = "arm64ec"),
34187            link_name = "llvm.aarch64.neon.umull.v2i64"
34188        )]
34189        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmullu.v2i64")]
34190        fn _vmull_u32(a: uint32x2_t, b: uint32x2_t) -> uint64x2_t;
34191    }
34192    unsafe { _vmull_u32(a, b) }
34193}
34194#[doc = "Vector bitwise not."]
34195#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmvn_p8)"]
34196#[inline]
34197#[target_feature(enable = "neon")]
34198#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34199#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmvn))]
34200#[cfg_attr(
34201    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34202    assert_instr(mvn)
34203)]
34204#[cfg_attr(
34205    not(target_arch = "arm"),
34206    stable(feature = "neon_intrinsics", since = "1.59.0")
34207)]
34208#[cfg_attr(
34209    target_arch = "arm",
34210    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34211)]
34212pub fn vmvn_p8(a: poly8x8_t) -> poly8x8_t {
34213    let b = poly8x8_t::splat(255);
34214    unsafe { simd_xor(a, b) }
34215}
34216#[doc = "Vector bitwise not."]
34217#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmvn_s16)"]
34218#[inline]
34219#[target_feature(enable = "neon")]
34220#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34221#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmvn))]
34222#[cfg_attr(
34223    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34224    assert_instr(mvn)
34225)]
34226#[cfg_attr(
34227    not(target_arch = "arm"),
34228    stable(feature = "neon_intrinsics", since = "1.59.0")
34229)]
34230#[cfg_attr(
34231    target_arch = "arm",
34232    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34233)]
34234pub fn vmvn_s16(a: int16x4_t) -> int16x4_t {
34235    let b = int16x4_t::splat(-1);
34236    unsafe { simd_xor(a, b) }
34237}
34238#[doc = "Vector bitwise not."]
34239#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmvn_s32)"]
34240#[inline]
34241#[target_feature(enable = "neon")]
34242#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34243#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmvn))]
34244#[cfg_attr(
34245    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34246    assert_instr(mvn)
34247)]
34248#[cfg_attr(
34249    not(target_arch = "arm"),
34250    stable(feature = "neon_intrinsics", since = "1.59.0")
34251)]
34252#[cfg_attr(
34253    target_arch = "arm",
34254    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34255)]
34256pub fn vmvn_s32(a: int32x2_t) -> int32x2_t {
34257    let b = int32x2_t::splat(-1);
34258    unsafe { simd_xor(a, b) }
34259}
34260#[doc = "Vector bitwise not."]
34261#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmvn_s8)"]
34262#[inline]
34263#[target_feature(enable = "neon")]
34264#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34265#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmvn))]
34266#[cfg_attr(
34267    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34268    assert_instr(mvn)
34269)]
34270#[cfg_attr(
34271    not(target_arch = "arm"),
34272    stable(feature = "neon_intrinsics", since = "1.59.0")
34273)]
34274#[cfg_attr(
34275    target_arch = "arm",
34276    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34277)]
34278pub fn vmvn_s8(a: int8x8_t) -> int8x8_t {
34279    let b = int8x8_t::splat(-1);
34280    unsafe { simd_xor(a, b) }
34281}
34282#[doc = "Vector bitwise not."]
34283#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmvn_u16)"]
34284#[inline]
34285#[target_feature(enable = "neon")]
34286#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34287#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmvn))]
34288#[cfg_attr(
34289    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34290    assert_instr(mvn)
34291)]
34292#[cfg_attr(
34293    not(target_arch = "arm"),
34294    stable(feature = "neon_intrinsics", since = "1.59.0")
34295)]
34296#[cfg_attr(
34297    target_arch = "arm",
34298    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34299)]
34300pub fn vmvn_u16(a: uint16x4_t) -> uint16x4_t {
34301    let b = uint16x4_t::splat(65_535);
34302    unsafe { simd_xor(a, b) }
34303}
34304#[doc = "Vector bitwise not."]
34305#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmvn_u32)"]
34306#[inline]
34307#[target_feature(enable = "neon")]
34308#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34309#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmvn))]
34310#[cfg_attr(
34311    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34312    assert_instr(mvn)
34313)]
34314#[cfg_attr(
34315    not(target_arch = "arm"),
34316    stable(feature = "neon_intrinsics", since = "1.59.0")
34317)]
34318#[cfg_attr(
34319    target_arch = "arm",
34320    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34321)]
34322pub fn vmvn_u32(a: uint32x2_t) -> uint32x2_t {
34323    let b = uint32x2_t::splat(4_294_967_295);
34324    unsafe { simd_xor(a, b) }
34325}
34326#[doc = "Vector bitwise not."]
34327#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmvn_u8)"]
34328#[inline]
34329#[target_feature(enable = "neon")]
34330#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34331#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmvn))]
34332#[cfg_attr(
34333    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34334    assert_instr(mvn)
34335)]
34336#[cfg_attr(
34337    not(target_arch = "arm"),
34338    stable(feature = "neon_intrinsics", since = "1.59.0")
34339)]
34340#[cfg_attr(
34341    target_arch = "arm",
34342    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34343)]
34344pub fn vmvn_u8(a: uint8x8_t) -> uint8x8_t {
34345    let b = uint8x8_t::splat(255);
34346    unsafe { simd_xor(a, b) }
34347}
34348#[doc = "Vector bitwise not."]
34349#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmvnq_p8)"]
34350#[inline]
34351#[target_feature(enable = "neon")]
34352#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34353#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmvn))]
34354#[cfg_attr(
34355    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34356    assert_instr(mvn)
34357)]
34358#[cfg_attr(
34359    not(target_arch = "arm"),
34360    stable(feature = "neon_intrinsics", since = "1.59.0")
34361)]
34362#[cfg_attr(
34363    target_arch = "arm",
34364    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34365)]
34366pub fn vmvnq_p8(a: poly8x16_t) -> poly8x16_t {
34367    let b = poly8x16_t::splat(255);
34368    unsafe { simd_xor(a, b) }
34369}
34370#[doc = "Vector bitwise not."]
34371#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmvnq_s16)"]
34372#[inline]
34373#[target_feature(enable = "neon")]
34374#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34375#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmvn))]
34376#[cfg_attr(
34377    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34378    assert_instr(mvn)
34379)]
34380#[cfg_attr(
34381    not(target_arch = "arm"),
34382    stable(feature = "neon_intrinsics", since = "1.59.0")
34383)]
34384#[cfg_attr(
34385    target_arch = "arm",
34386    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34387)]
34388pub fn vmvnq_s16(a: int16x8_t) -> int16x8_t {
34389    let b = int16x8_t::splat(-1);
34390    unsafe { simd_xor(a, b) }
34391}
34392#[doc = "Vector bitwise not."]
34393#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmvnq_s32)"]
34394#[inline]
34395#[target_feature(enable = "neon")]
34396#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34397#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmvn))]
34398#[cfg_attr(
34399    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34400    assert_instr(mvn)
34401)]
34402#[cfg_attr(
34403    not(target_arch = "arm"),
34404    stable(feature = "neon_intrinsics", since = "1.59.0")
34405)]
34406#[cfg_attr(
34407    target_arch = "arm",
34408    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34409)]
34410pub fn vmvnq_s32(a: int32x4_t) -> int32x4_t {
34411    let b = int32x4_t::splat(-1);
34412    unsafe { simd_xor(a, b) }
34413}
34414#[doc = "Vector bitwise not."]
34415#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmvnq_s8)"]
34416#[inline]
34417#[target_feature(enable = "neon")]
34418#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34419#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmvn))]
34420#[cfg_attr(
34421    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34422    assert_instr(mvn)
34423)]
34424#[cfg_attr(
34425    not(target_arch = "arm"),
34426    stable(feature = "neon_intrinsics", since = "1.59.0")
34427)]
34428#[cfg_attr(
34429    target_arch = "arm",
34430    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34431)]
34432pub fn vmvnq_s8(a: int8x16_t) -> int8x16_t {
34433    let b = int8x16_t::splat(-1);
34434    unsafe { simd_xor(a, b) }
34435}
34436#[doc = "Vector bitwise not."]
34437#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmvnq_u16)"]
34438#[inline]
34439#[target_feature(enable = "neon")]
34440#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34441#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmvn))]
34442#[cfg_attr(
34443    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34444    assert_instr(mvn)
34445)]
34446#[cfg_attr(
34447    not(target_arch = "arm"),
34448    stable(feature = "neon_intrinsics", since = "1.59.0")
34449)]
34450#[cfg_attr(
34451    target_arch = "arm",
34452    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34453)]
34454pub fn vmvnq_u16(a: uint16x8_t) -> uint16x8_t {
34455    let b = uint16x8_t::splat(65_535);
34456    unsafe { simd_xor(a, b) }
34457}
34458#[doc = "Vector bitwise not."]
34459#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmvnq_u32)"]
34460#[inline]
34461#[target_feature(enable = "neon")]
34462#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34463#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmvn))]
34464#[cfg_attr(
34465    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34466    assert_instr(mvn)
34467)]
34468#[cfg_attr(
34469    not(target_arch = "arm"),
34470    stable(feature = "neon_intrinsics", since = "1.59.0")
34471)]
34472#[cfg_attr(
34473    target_arch = "arm",
34474    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34475)]
34476pub fn vmvnq_u32(a: uint32x4_t) -> uint32x4_t {
34477    let b = uint32x4_t::splat(4_294_967_295);
34478    unsafe { simd_xor(a, b) }
34479}
34480#[doc = "Vector bitwise not."]
34481#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmvnq_u8)"]
34482#[inline]
34483#[target_feature(enable = "neon")]
34484#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34485#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmvn))]
34486#[cfg_attr(
34487    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34488    assert_instr(mvn)
34489)]
34490#[cfg_attr(
34491    not(target_arch = "arm"),
34492    stable(feature = "neon_intrinsics", since = "1.59.0")
34493)]
34494#[cfg_attr(
34495    target_arch = "arm",
34496    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34497)]
34498pub fn vmvnq_u8(a: uint8x16_t) -> uint8x16_t {
34499    let b = uint8x16_t::splat(255);
34500    unsafe { simd_xor(a, b) }
34501}
34502#[doc = "Negate"]
34503#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vneg_f16)"]
34504#[inline]
34505#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
34506#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vneg.f16"))]
34507#[cfg_attr(
34508    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34509    assert_instr(fneg)
34510)]
34511#[target_feature(enable = "neon,fp16")]
34512#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
34513#[cfg(not(target_arch = "arm64ec"))]
34514pub fn vneg_f16(a: float16x4_t) -> float16x4_t {
34515    unsafe { simd_neg(a) }
34516}
34517#[doc = "Negate"]
34518#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vnegq_f16)"]
34519#[inline]
34520#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
34521#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vneg.f16"))]
34522#[cfg_attr(
34523    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34524    assert_instr(fneg)
34525)]
34526#[target_feature(enable = "neon,fp16")]
34527#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
34528#[cfg(not(target_arch = "arm64ec"))]
34529pub fn vnegq_f16(a: float16x8_t) -> float16x8_t {
34530    unsafe { simd_neg(a) }
34531}
34532#[doc = "Negate"]
34533#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vneg_f32)"]
34534#[inline]
34535#[target_feature(enable = "neon")]
34536#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34537#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vneg.f32"))]
34538#[cfg_attr(
34539    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34540    assert_instr(fneg)
34541)]
34542#[cfg_attr(
34543    not(target_arch = "arm"),
34544    stable(feature = "neon_intrinsics", since = "1.59.0")
34545)]
34546#[cfg_attr(
34547    target_arch = "arm",
34548    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34549)]
34550pub fn vneg_f32(a: float32x2_t) -> float32x2_t {
34551    unsafe { simd_neg(a) }
34552}
34553#[doc = "Negate"]
34554#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vnegq_f32)"]
34555#[inline]
34556#[target_feature(enable = "neon")]
34557#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34558#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vneg.f32"))]
34559#[cfg_attr(
34560    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34561    assert_instr(fneg)
34562)]
34563#[cfg_attr(
34564    not(target_arch = "arm"),
34565    stable(feature = "neon_intrinsics", since = "1.59.0")
34566)]
34567#[cfg_attr(
34568    target_arch = "arm",
34569    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34570)]
34571pub fn vnegq_f32(a: float32x4_t) -> float32x4_t {
34572    unsafe { simd_neg(a) }
34573}
34574#[doc = "Negate"]
34575#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vneg_s8)"]
34576#[inline]
34577#[target_feature(enable = "neon")]
34578#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34579#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vneg.s8"))]
34580#[cfg_attr(
34581    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34582    assert_instr(neg)
34583)]
34584#[cfg_attr(
34585    not(target_arch = "arm"),
34586    stable(feature = "neon_intrinsics", since = "1.59.0")
34587)]
34588#[cfg_attr(
34589    target_arch = "arm",
34590    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34591)]
34592pub fn vneg_s8(a: int8x8_t) -> int8x8_t {
34593    unsafe { simd_neg(a) }
34594}
34595#[doc = "Negate"]
34596#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vnegq_s8)"]
34597#[inline]
34598#[target_feature(enable = "neon")]
34599#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34600#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vneg.s8"))]
34601#[cfg_attr(
34602    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34603    assert_instr(neg)
34604)]
34605#[cfg_attr(
34606    not(target_arch = "arm"),
34607    stable(feature = "neon_intrinsics", since = "1.59.0")
34608)]
34609#[cfg_attr(
34610    target_arch = "arm",
34611    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34612)]
34613pub fn vnegq_s8(a: int8x16_t) -> int8x16_t {
34614    unsafe { simd_neg(a) }
34615}
34616#[doc = "Negate"]
34617#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vneg_s16)"]
34618#[inline]
34619#[target_feature(enable = "neon")]
34620#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34621#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vneg.s16"))]
34622#[cfg_attr(
34623    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34624    assert_instr(neg)
34625)]
34626#[cfg_attr(
34627    not(target_arch = "arm"),
34628    stable(feature = "neon_intrinsics", since = "1.59.0")
34629)]
34630#[cfg_attr(
34631    target_arch = "arm",
34632    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34633)]
34634pub fn vneg_s16(a: int16x4_t) -> int16x4_t {
34635    unsafe { simd_neg(a) }
34636}
34637#[doc = "Negate"]
34638#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vnegq_s16)"]
34639#[inline]
34640#[target_feature(enable = "neon")]
34641#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34642#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vneg.s16"))]
34643#[cfg_attr(
34644    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34645    assert_instr(neg)
34646)]
34647#[cfg_attr(
34648    not(target_arch = "arm"),
34649    stable(feature = "neon_intrinsics", since = "1.59.0")
34650)]
34651#[cfg_attr(
34652    target_arch = "arm",
34653    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34654)]
34655pub fn vnegq_s16(a: int16x8_t) -> int16x8_t {
34656    unsafe { simd_neg(a) }
34657}
34658#[doc = "Negate"]
34659#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vneg_s32)"]
34660#[inline]
34661#[target_feature(enable = "neon")]
34662#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34663#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vneg.s32"))]
34664#[cfg_attr(
34665    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34666    assert_instr(neg)
34667)]
34668#[cfg_attr(
34669    not(target_arch = "arm"),
34670    stable(feature = "neon_intrinsics", since = "1.59.0")
34671)]
34672#[cfg_attr(
34673    target_arch = "arm",
34674    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34675)]
34676pub fn vneg_s32(a: int32x2_t) -> int32x2_t {
34677    unsafe { simd_neg(a) }
34678}
34679#[doc = "Negate"]
34680#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vnegq_s32)"]
34681#[inline]
34682#[target_feature(enable = "neon")]
34683#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34684#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vneg.s32"))]
34685#[cfg_attr(
34686    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34687    assert_instr(neg)
34688)]
34689#[cfg_attr(
34690    not(target_arch = "arm"),
34691    stable(feature = "neon_intrinsics", since = "1.59.0")
34692)]
34693#[cfg_attr(
34694    target_arch = "arm",
34695    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34696)]
34697pub fn vnegq_s32(a: int32x4_t) -> int32x4_t {
34698    unsafe { simd_neg(a) }
34699}
34700#[doc = "Vector bitwise inclusive OR NOT"]
34701#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorn_s16)"]
34702#[inline]
34703#[target_feature(enable = "neon")]
34704#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34705#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
34706#[cfg_attr(
34707    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34708    assert_instr(orn)
34709)]
34710#[cfg_attr(
34711    not(target_arch = "arm"),
34712    stable(feature = "neon_intrinsics", since = "1.59.0")
34713)]
34714#[cfg_attr(
34715    target_arch = "arm",
34716    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34717)]
34718pub fn vorn_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
34719    let c = int16x4_t::splat(-1);
34720    unsafe { simd_or(simd_xor(b, c), a) }
34721}
34722#[doc = "Vector bitwise inclusive OR NOT"]
34723#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorn_s32)"]
34724#[inline]
34725#[target_feature(enable = "neon")]
34726#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34727#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
34728#[cfg_attr(
34729    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34730    assert_instr(orn)
34731)]
34732#[cfg_attr(
34733    not(target_arch = "arm"),
34734    stable(feature = "neon_intrinsics", since = "1.59.0")
34735)]
34736#[cfg_attr(
34737    target_arch = "arm",
34738    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34739)]
34740pub fn vorn_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
34741    let c = int32x2_t::splat(-1);
34742    unsafe { simd_or(simd_xor(b, c), a) }
34743}
34744#[doc = "Vector bitwise inclusive OR NOT"]
34745#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorn_s64)"]
34746#[inline]
34747#[target_feature(enable = "neon")]
34748#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34749#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
34750#[cfg_attr(
34751    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34752    assert_instr(orn)
34753)]
34754#[cfg_attr(
34755    not(target_arch = "arm"),
34756    stable(feature = "neon_intrinsics", since = "1.59.0")
34757)]
34758#[cfg_attr(
34759    target_arch = "arm",
34760    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34761)]
34762pub fn vorn_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t {
34763    let c = int64x1_t::splat(-1);
34764    unsafe { simd_or(simd_xor(b, c), a) }
34765}
34766#[doc = "Vector bitwise inclusive OR NOT"]
34767#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorn_s8)"]
34768#[inline]
34769#[target_feature(enable = "neon")]
34770#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34771#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
34772#[cfg_attr(
34773    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34774    assert_instr(orn)
34775)]
34776#[cfg_attr(
34777    not(target_arch = "arm"),
34778    stable(feature = "neon_intrinsics", since = "1.59.0")
34779)]
34780#[cfg_attr(
34781    target_arch = "arm",
34782    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34783)]
34784pub fn vorn_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
34785    let c = int8x8_t::splat(-1);
34786    unsafe { simd_or(simd_xor(b, c), a) }
34787}
34788#[doc = "Vector bitwise inclusive OR NOT"]
34789#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vornq_s16)"]
34790#[inline]
34791#[target_feature(enable = "neon")]
34792#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34793#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
34794#[cfg_attr(
34795    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34796    assert_instr(orn)
34797)]
34798#[cfg_attr(
34799    not(target_arch = "arm"),
34800    stable(feature = "neon_intrinsics", since = "1.59.0")
34801)]
34802#[cfg_attr(
34803    target_arch = "arm",
34804    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34805)]
34806pub fn vornq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
34807    let c = int16x8_t::splat(-1);
34808    unsafe { simd_or(simd_xor(b, c), a) }
34809}
34810#[doc = "Vector bitwise inclusive OR NOT"]
34811#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vornq_s32)"]
34812#[inline]
34813#[target_feature(enable = "neon")]
34814#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34815#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
34816#[cfg_attr(
34817    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34818    assert_instr(orn)
34819)]
34820#[cfg_attr(
34821    not(target_arch = "arm"),
34822    stable(feature = "neon_intrinsics", since = "1.59.0")
34823)]
34824#[cfg_attr(
34825    target_arch = "arm",
34826    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34827)]
34828pub fn vornq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
34829    let c = int32x4_t::splat(-1);
34830    unsafe { simd_or(simd_xor(b, c), a) }
34831}
34832#[doc = "Vector bitwise inclusive OR NOT"]
34833#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vornq_s64)"]
34834#[inline]
34835#[target_feature(enable = "neon")]
34836#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34837#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
34838#[cfg_attr(
34839    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34840    assert_instr(orn)
34841)]
34842#[cfg_attr(
34843    not(target_arch = "arm"),
34844    stable(feature = "neon_intrinsics", since = "1.59.0")
34845)]
34846#[cfg_attr(
34847    target_arch = "arm",
34848    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34849)]
34850pub fn vornq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t {
34851    let c = int64x2_t::splat(-1);
34852    unsafe { simd_or(simd_xor(b, c), a) }
34853}
34854#[doc = "Vector bitwise inclusive OR NOT"]
34855#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vornq_s8)"]
34856#[inline]
34857#[target_feature(enable = "neon")]
34858#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34859#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
34860#[cfg_attr(
34861    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34862    assert_instr(orn)
34863)]
34864#[cfg_attr(
34865    not(target_arch = "arm"),
34866    stable(feature = "neon_intrinsics", since = "1.59.0")
34867)]
34868#[cfg_attr(
34869    target_arch = "arm",
34870    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34871)]
34872pub fn vornq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
34873    let c = int8x16_t::splat(-1);
34874    unsafe { simd_or(simd_xor(b, c), a) }
34875}
34876#[doc = "Vector bitwise inclusive OR NOT"]
34877#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorn_u16)"]
34878#[inline]
34879#[target_feature(enable = "neon")]
34880#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34881#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
34882#[cfg_attr(
34883    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34884    assert_instr(orn)
34885)]
34886#[cfg_attr(
34887    not(target_arch = "arm"),
34888    stable(feature = "neon_intrinsics", since = "1.59.0")
34889)]
34890#[cfg_attr(
34891    target_arch = "arm",
34892    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34893)]
34894pub fn vorn_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
34895    let c = int16x4_t::splat(-1);
34896    unsafe { simd_or(simd_xor(b, transmute(c)), a) }
34897}
34898#[doc = "Vector bitwise inclusive OR NOT"]
34899#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorn_u32)"]
34900#[inline]
34901#[target_feature(enable = "neon")]
34902#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34903#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
34904#[cfg_attr(
34905    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34906    assert_instr(orn)
34907)]
34908#[cfg_attr(
34909    not(target_arch = "arm"),
34910    stable(feature = "neon_intrinsics", since = "1.59.0")
34911)]
34912#[cfg_attr(
34913    target_arch = "arm",
34914    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34915)]
34916pub fn vorn_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
34917    let c = int32x2_t::splat(-1);
34918    unsafe { simd_or(simd_xor(b, transmute(c)), a) }
34919}
34920#[doc = "Vector bitwise inclusive OR NOT"]
34921#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorn_u64)"]
34922#[inline]
34923#[target_feature(enable = "neon")]
34924#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34925#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
34926#[cfg_attr(
34927    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34928    assert_instr(orn)
34929)]
34930#[cfg_attr(
34931    not(target_arch = "arm"),
34932    stable(feature = "neon_intrinsics", since = "1.59.0")
34933)]
34934#[cfg_attr(
34935    target_arch = "arm",
34936    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34937)]
34938pub fn vorn_u64(a: uint64x1_t, b: uint64x1_t) -> uint64x1_t {
34939    let c = int64x1_t::splat(-1);
34940    unsafe { simd_or(simd_xor(b, transmute(c)), a) }
34941}
34942#[doc = "Vector bitwise inclusive OR NOT"]
34943#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorn_u8)"]
34944#[inline]
34945#[target_feature(enable = "neon")]
34946#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34947#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
34948#[cfg_attr(
34949    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34950    assert_instr(orn)
34951)]
34952#[cfg_attr(
34953    not(target_arch = "arm"),
34954    stable(feature = "neon_intrinsics", since = "1.59.0")
34955)]
34956#[cfg_attr(
34957    target_arch = "arm",
34958    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34959)]
34960pub fn vorn_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
34961    let c = int8x8_t::splat(-1);
34962    unsafe { simd_or(simd_xor(b, transmute(c)), a) }
34963}
34964#[doc = "Vector bitwise inclusive OR NOT"]
34965#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vornq_u16)"]
34966#[inline]
34967#[target_feature(enable = "neon")]
34968#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34969#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
34970#[cfg_attr(
34971    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34972    assert_instr(orn)
34973)]
34974#[cfg_attr(
34975    not(target_arch = "arm"),
34976    stable(feature = "neon_intrinsics", since = "1.59.0")
34977)]
34978#[cfg_attr(
34979    target_arch = "arm",
34980    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34981)]
34982pub fn vornq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
34983    let c = int16x8_t::splat(-1);
34984    unsafe { simd_or(simd_xor(b, transmute(c)), a) }
34985}
34986#[doc = "Vector bitwise inclusive OR NOT"]
34987#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vornq_u32)"]
34988#[inline]
34989#[target_feature(enable = "neon")]
34990#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34991#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
34992#[cfg_attr(
34993    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34994    assert_instr(orn)
34995)]
34996#[cfg_attr(
34997    not(target_arch = "arm"),
34998    stable(feature = "neon_intrinsics", since = "1.59.0")
34999)]
35000#[cfg_attr(
35001    target_arch = "arm",
35002    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35003)]
35004pub fn vornq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
35005    let c = int32x4_t::splat(-1);
35006    unsafe { simd_or(simd_xor(b, transmute(c)), a) }
35007}
35008#[doc = "Vector bitwise inclusive OR NOT"]
35009#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vornq_u64)"]
35010#[inline]
35011#[target_feature(enable = "neon")]
35012#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35013#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
35014#[cfg_attr(
35015    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35016    assert_instr(orn)
35017)]
35018#[cfg_attr(
35019    not(target_arch = "arm"),
35020    stable(feature = "neon_intrinsics", since = "1.59.0")
35021)]
35022#[cfg_attr(
35023    target_arch = "arm",
35024    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35025)]
35026pub fn vornq_u64(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
35027    let c = int64x2_t::splat(-1);
35028    unsafe { simd_or(simd_xor(b, transmute(c)), a) }
35029}
35030#[doc = "Vector bitwise inclusive OR NOT"]
35031#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vornq_u8)"]
35032#[inline]
35033#[target_feature(enable = "neon")]
35034#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35035#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
35036#[cfg_attr(
35037    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35038    assert_instr(orn)
35039)]
35040#[cfg_attr(
35041    not(target_arch = "arm"),
35042    stable(feature = "neon_intrinsics", since = "1.59.0")
35043)]
35044#[cfg_attr(
35045    target_arch = "arm",
35046    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35047)]
35048pub fn vornq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
35049    let c = int8x16_t::splat(-1);
35050    unsafe { simd_or(simd_xor(b, transmute(c)), a) }
35051}
35052#[doc = "Vector bitwise or (immediate, inclusive)"]
35053#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorr_s8)"]
35054#[inline]
35055#[target_feature(enable = "neon")]
35056#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35057#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
35058#[cfg_attr(
35059    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35060    assert_instr(orr)
35061)]
35062#[cfg_attr(
35063    not(target_arch = "arm"),
35064    stable(feature = "neon_intrinsics", since = "1.59.0")
35065)]
35066#[cfg_attr(
35067    target_arch = "arm",
35068    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35069)]
35070pub fn vorr_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
35071    unsafe { simd_or(a, b) }
35072}
35073#[doc = "Vector bitwise or (immediate, inclusive)"]
35074#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorrq_s8)"]
35075#[inline]
35076#[target_feature(enable = "neon")]
35077#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35078#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
35079#[cfg_attr(
35080    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35081    assert_instr(orr)
35082)]
35083#[cfg_attr(
35084    not(target_arch = "arm"),
35085    stable(feature = "neon_intrinsics", since = "1.59.0")
35086)]
35087#[cfg_attr(
35088    target_arch = "arm",
35089    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35090)]
35091pub fn vorrq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
35092    unsafe { simd_or(a, b) }
35093}
35094#[doc = "Vector bitwise or (immediate, inclusive)"]
35095#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorr_s16)"]
35096#[inline]
35097#[target_feature(enable = "neon")]
35098#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35099#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
35100#[cfg_attr(
35101    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35102    assert_instr(orr)
35103)]
35104#[cfg_attr(
35105    not(target_arch = "arm"),
35106    stable(feature = "neon_intrinsics", since = "1.59.0")
35107)]
35108#[cfg_attr(
35109    target_arch = "arm",
35110    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35111)]
35112pub fn vorr_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
35113    unsafe { simd_or(a, b) }
35114}
35115#[doc = "Vector bitwise or (immediate, inclusive)"]
35116#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorrq_s16)"]
35117#[inline]
35118#[target_feature(enable = "neon")]
35119#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35120#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
35121#[cfg_attr(
35122    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35123    assert_instr(orr)
35124)]
35125#[cfg_attr(
35126    not(target_arch = "arm"),
35127    stable(feature = "neon_intrinsics", since = "1.59.0")
35128)]
35129#[cfg_attr(
35130    target_arch = "arm",
35131    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35132)]
35133pub fn vorrq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
35134    unsafe { simd_or(a, b) }
35135}
35136#[doc = "Vector bitwise or (immediate, inclusive)"]
35137#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorr_s32)"]
35138#[inline]
35139#[target_feature(enable = "neon")]
35140#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35141#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
35142#[cfg_attr(
35143    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35144    assert_instr(orr)
35145)]
35146#[cfg_attr(
35147    not(target_arch = "arm"),
35148    stable(feature = "neon_intrinsics", since = "1.59.0")
35149)]
35150#[cfg_attr(
35151    target_arch = "arm",
35152    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35153)]
35154pub fn vorr_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
35155    unsafe { simd_or(a, b) }
35156}
35157#[doc = "Vector bitwise or (immediate, inclusive)"]
35158#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorrq_s32)"]
35159#[inline]
35160#[target_feature(enable = "neon")]
35161#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35162#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
35163#[cfg_attr(
35164    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35165    assert_instr(orr)
35166)]
35167#[cfg_attr(
35168    not(target_arch = "arm"),
35169    stable(feature = "neon_intrinsics", since = "1.59.0")
35170)]
35171#[cfg_attr(
35172    target_arch = "arm",
35173    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35174)]
35175pub fn vorrq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
35176    unsafe { simd_or(a, b) }
35177}
35178#[doc = "Vector bitwise or (immediate, inclusive)"]
35179#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorr_s64)"]
35180#[inline]
35181#[target_feature(enable = "neon")]
35182#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35183#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
35184#[cfg_attr(
35185    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35186    assert_instr(orr)
35187)]
35188#[cfg_attr(
35189    not(target_arch = "arm"),
35190    stable(feature = "neon_intrinsics", since = "1.59.0")
35191)]
35192#[cfg_attr(
35193    target_arch = "arm",
35194    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35195)]
35196pub fn vorr_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t {
35197    unsafe { simd_or(a, b) }
35198}
35199#[doc = "Vector bitwise or (immediate, inclusive)"]
35200#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorrq_s64)"]
35201#[inline]
35202#[target_feature(enable = "neon")]
35203#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35204#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
35205#[cfg_attr(
35206    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35207    assert_instr(orr)
35208)]
35209#[cfg_attr(
35210    not(target_arch = "arm"),
35211    stable(feature = "neon_intrinsics", since = "1.59.0")
35212)]
35213#[cfg_attr(
35214    target_arch = "arm",
35215    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35216)]
35217pub fn vorrq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t {
35218    unsafe { simd_or(a, b) }
35219}
35220#[doc = "Vector bitwise or (immediate, inclusive)"]
35221#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorr_u8)"]
35222#[inline]
35223#[target_feature(enable = "neon")]
35224#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35225#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
35226#[cfg_attr(
35227    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35228    assert_instr(orr)
35229)]
35230#[cfg_attr(
35231    not(target_arch = "arm"),
35232    stable(feature = "neon_intrinsics", since = "1.59.0")
35233)]
35234#[cfg_attr(
35235    target_arch = "arm",
35236    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35237)]
35238pub fn vorr_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
35239    unsafe { simd_or(a, b) }
35240}
35241#[doc = "Vector bitwise or (immediate, inclusive)"]
35242#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorrq_u8)"]
35243#[inline]
35244#[target_feature(enable = "neon")]
35245#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35246#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
35247#[cfg_attr(
35248    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35249    assert_instr(orr)
35250)]
35251#[cfg_attr(
35252    not(target_arch = "arm"),
35253    stable(feature = "neon_intrinsics", since = "1.59.0")
35254)]
35255#[cfg_attr(
35256    target_arch = "arm",
35257    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35258)]
35259pub fn vorrq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
35260    unsafe { simd_or(a, b) }
35261}
35262#[doc = "Vector bitwise or (immediate, inclusive)"]
35263#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorr_u16)"]
35264#[inline]
35265#[target_feature(enable = "neon")]
35266#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35267#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
35268#[cfg_attr(
35269    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35270    assert_instr(orr)
35271)]
35272#[cfg_attr(
35273    not(target_arch = "arm"),
35274    stable(feature = "neon_intrinsics", since = "1.59.0")
35275)]
35276#[cfg_attr(
35277    target_arch = "arm",
35278    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35279)]
35280pub fn vorr_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
35281    unsafe { simd_or(a, b) }
35282}
35283#[doc = "Vector bitwise or (immediate, inclusive)"]
35284#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorrq_u16)"]
35285#[inline]
35286#[target_feature(enable = "neon")]
35287#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35288#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
35289#[cfg_attr(
35290    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35291    assert_instr(orr)
35292)]
35293#[cfg_attr(
35294    not(target_arch = "arm"),
35295    stable(feature = "neon_intrinsics", since = "1.59.0")
35296)]
35297#[cfg_attr(
35298    target_arch = "arm",
35299    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35300)]
35301pub fn vorrq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
35302    unsafe { simd_or(a, b) }
35303}
35304#[doc = "Vector bitwise or (immediate, inclusive)"]
35305#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorr_u32)"]
35306#[inline]
35307#[target_feature(enable = "neon")]
35308#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35309#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
35310#[cfg_attr(
35311    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35312    assert_instr(orr)
35313)]
35314#[cfg_attr(
35315    not(target_arch = "arm"),
35316    stable(feature = "neon_intrinsics", since = "1.59.0")
35317)]
35318#[cfg_attr(
35319    target_arch = "arm",
35320    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35321)]
35322pub fn vorr_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
35323    unsafe { simd_or(a, b) }
35324}
35325#[doc = "Vector bitwise or (immediate, inclusive)"]
35326#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorrq_u32)"]
35327#[inline]
35328#[target_feature(enable = "neon")]
35329#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35330#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
35331#[cfg_attr(
35332    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35333    assert_instr(orr)
35334)]
35335#[cfg_attr(
35336    not(target_arch = "arm"),
35337    stable(feature = "neon_intrinsics", since = "1.59.0")
35338)]
35339#[cfg_attr(
35340    target_arch = "arm",
35341    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35342)]
35343pub fn vorrq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
35344    unsafe { simd_or(a, b) }
35345}
35346#[doc = "Vector bitwise or (immediate, inclusive)"]
35347#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorr_u64)"]
35348#[inline]
35349#[target_feature(enable = "neon")]
35350#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35351#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
35352#[cfg_attr(
35353    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35354    assert_instr(orr)
35355)]
35356#[cfg_attr(
35357    not(target_arch = "arm"),
35358    stable(feature = "neon_intrinsics", since = "1.59.0")
35359)]
35360#[cfg_attr(
35361    target_arch = "arm",
35362    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35363)]
35364pub fn vorr_u64(a: uint64x1_t, b: uint64x1_t) -> uint64x1_t {
35365    unsafe { simd_or(a, b) }
35366}
35367#[doc = "Vector bitwise or (immediate, inclusive)"]
35368#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorrq_u64)"]
35369#[inline]
35370#[target_feature(enable = "neon")]
35371#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35372#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
35373#[cfg_attr(
35374    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35375    assert_instr(orr)
35376)]
35377#[cfg_attr(
35378    not(target_arch = "arm"),
35379    stable(feature = "neon_intrinsics", since = "1.59.0")
35380)]
35381#[cfg_attr(
35382    target_arch = "arm",
35383    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35384)]
35385pub fn vorrq_u64(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
35386    unsafe { simd_or(a, b) }
35387}
35388#[doc = "Signed Add and Accumulate Long Pairwise."]
35389#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadal_s8)"]
35390#[inline]
35391#[target_feature(enable = "neon")]
35392#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35393#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpadal.s8"))]
35394#[cfg_attr(
35395    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35396    assert_instr(sadalp)
35397)]
35398#[cfg_attr(
35399    not(target_arch = "arm"),
35400    stable(feature = "neon_intrinsics", since = "1.59.0")
35401)]
35402#[cfg_attr(
35403    target_arch = "arm",
35404    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35405)]
35406pub fn vpadal_s8(a: int16x4_t, b: int8x8_t) -> int16x4_t {
35407    let x: int16x4_t;
35408    #[cfg(target_arch = "arm")]
35409    {
35410        x = priv_vpadal_s8(a, b);
35411    }
35412    #[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
35413    unsafe {
35414        x = simd_add(vpaddl_s8(b), a);
35415    };
35416    x
35417}
35418#[doc = "Signed Add and Accumulate Long Pairwise."]
35419#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadalq_s8)"]
35420#[inline]
35421#[target_feature(enable = "neon")]
35422#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35423#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpadal.s8"))]
35424#[cfg_attr(
35425    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35426    assert_instr(sadalp)
35427)]
35428#[cfg_attr(
35429    not(target_arch = "arm"),
35430    stable(feature = "neon_intrinsics", since = "1.59.0")
35431)]
35432#[cfg_attr(
35433    target_arch = "arm",
35434    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35435)]
35436pub fn vpadalq_s8(a: int16x8_t, b: int8x16_t) -> int16x8_t {
35437    let x: int16x8_t;
35438    #[cfg(target_arch = "arm")]
35439    {
35440        x = priv_vpadalq_s8(a, b);
35441    }
35442    #[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
35443    unsafe {
35444        x = simd_add(vpaddlq_s8(b), a);
35445    };
35446    x
35447}
35448#[doc = "Signed Add and Accumulate Long Pairwise."]
35449#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadal_s16)"]
35450#[inline]
35451#[target_feature(enable = "neon")]
35452#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35453#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpadal.s16"))]
35454#[cfg_attr(
35455    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35456    assert_instr(sadalp)
35457)]
35458#[cfg_attr(
35459    not(target_arch = "arm"),
35460    stable(feature = "neon_intrinsics", since = "1.59.0")
35461)]
35462#[cfg_attr(
35463    target_arch = "arm",
35464    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35465)]
35466pub fn vpadal_s16(a: int32x2_t, b: int16x4_t) -> int32x2_t {
35467    let x: int32x2_t;
35468    #[cfg(target_arch = "arm")]
35469    {
35470        x = priv_vpadal_s16(a, b);
35471    }
35472    #[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
35473    unsafe {
35474        x = simd_add(vpaddl_s16(b), a);
35475    };
35476    x
35477}
35478#[doc = "Signed Add and Accumulate Long Pairwise."]
35479#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadalq_s16)"]
35480#[inline]
35481#[target_feature(enable = "neon")]
35482#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35483#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpadal.s16"))]
35484#[cfg_attr(
35485    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35486    assert_instr(sadalp)
35487)]
35488#[cfg_attr(
35489    not(target_arch = "arm"),
35490    stable(feature = "neon_intrinsics", since = "1.59.0")
35491)]
35492#[cfg_attr(
35493    target_arch = "arm",
35494    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35495)]
35496pub fn vpadalq_s16(a: int32x4_t, b: int16x8_t) -> int32x4_t {
35497    let x: int32x4_t;
35498    #[cfg(target_arch = "arm")]
35499    {
35500        x = priv_vpadalq_s16(a, b);
35501    }
35502    #[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
35503    unsafe {
35504        x = simd_add(vpaddlq_s16(b), a);
35505    };
35506    x
35507}
35508#[doc = "Signed Add and Accumulate Long Pairwise."]
35509#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadal_s32)"]
35510#[inline]
35511#[target_feature(enable = "neon")]
35512#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35513#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpadal.s32"))]
35514#[cfg_attr(
35515    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35516    assert_instr(sadalp)
35517)]
35518#[cfg_attr(
35519    not(target_arch = "arm"),
35520    stable(feature = "neon_intrinsics", since = "1.59.0")
35521)]
35522#[cfg_attr(
35523    target_arch = "arm",
35524    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35525)]
35526pub fn vpadal_s32(a: int64x1_t, b: int32x2_t) -> int64x1_t {
35527    let x: int64x1_t;
35528    #[cfg(target_arch = "arm")]
35529    {
35530        x = priv_vpadal_s32(a, b);
35531    }
35532    #[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
35533    unsafe {
35534        x = simd_add(vpaddl_s32(b), a);
35535    };
35536    x
35537}
35538#[doc = "Signed Add and Accumulate Long Pairwise."]
35539#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadalq_s32)"]
35540#[inline]
35541#[target_feature(enable = "neon")]
35542#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35543#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpadal.s32"))]
35544#[cfg_attr(
35545    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35546    assert_instr(sadalp)
35547)]
35548#[cfg_attr(
35549    not(target_arch = "arm"),
35550    stable(feature = "neon_intrinsics", since = "1.59.0")
35551)]
35552#[cfg_attr(
35553    target_arch = "arm",
35554    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35555)]
35556pub fn vpadalq_s32(a: int64x2_t, b: int32x4_t) -> int64x2_t {
35557    let x: int64x2_t;
35558    #[cfg(target_arch = "arm")]
35559    {
35560        x = priv_vpadalq_s32(a, b);
35561    }
35562    #[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
35563    unsafe {
35564        x = simd_add(vpaddlq_s32(b), a);
35565    };
35566    x
35567}
35568#[doc = "Unsigned Add and Accumulate Long Pairwise."]
35569#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadal_u8)"]
35570#[inline]
35571#[target_feature(enable = "neon")]
35572#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35573#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpadal.u8"))]
35574#[cfg_attr(
35575    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35576    assert_instr(uadalp)
35577)]
35578#[cfg_attr(
35579    not(target_arch = "arm"),
35580    stable(feature = "neon_intrinsics", since = "1.59.0")
35581)]
35582#[cfg_attr(
35583    target_arch = "arm",
35584    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35585)]
35586pub fn vpadal_u8(a: uint16x4_t, b: uint8x8_t) -> uint16x4_t {
35587    let x: uint16x4_t;
35588    #[cfg(target_arch = "arm")]
35589    {
35590        x = priv_vpadal_u8(a, b);
35591    }
35592    #[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
35593    unsafe {
35594        x = simd_add(vpaddl_u8(b), a);
35595    };
35596    x
35597}
35598#[doc = "Unsigned Add and Accumulate Long Pairwise."]
35599#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadalq_u8)"]
35600#[inline]
35601#[target_feature(enable = "neon")]
35602#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35603#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpadal.u8"))]
35604#[cfg_attr(
35605    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35606    assert_instr(uadalp)
35607)]
35608#[cfg_attr(
35609    not(target_arch = "arm"),
35610    stable(feature = "neon_intrinsics", since = "1.59.0")
35611)]
35612#[cfg_attr(
35613    target_arch = "arm",
35614    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35615)]
35616pub fn vpadalq_u8(a: uint16x8_t, b: uint8x16_t) -> uint16x8_t {
35617    let x: uint16x8_t;
35618    #[cfg(target_arch = "arm")]
35619    {
35620        x = priv_vpadalq_u8(a, b);
35621    }
35622    #[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
35623    unsafe {
35624        x = simd_add(vpaddlq_u8(b), a);
35625    };
35626    x
35627}
35628#[doc = "Unsigned Add and Accumulate Long Pairwise."]
35629#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadal_u16)"]
35630#[inline]
35631#[target_feature(enable = "neon")]
35632#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35633#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpadal.u16"))]
35634#[cfg_attr(
35635    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35636    assert_instr(uadalp)
35637)]
35638#[cfg_attr(
35639    not(target_arch = "arm"),
35640    stable(feature = "neon_intrinsics", since = "1.59.0")
35641)]
35642#[cfg_attr(
35643    target_arch = "arm",
35644    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35645)]
35646pub fn vpadal_u16(a: uint32x2_t, b: uint16x4_t) -> uint32x2_t {
35647    let x: uint32x2_t;
35648    #[cfg(target_arch = "arm")]
35649    {
35650        x = priv_vpadal_u16(a, b);
35651    }
35652    #[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
35653    unsafe {
35654        x = simd_add(vpaddl_u16(b), a);
35655    };
35656    x
35657}
35658#[doc = "Unsigned Add and Accumulate Long Pairwise."]
35659#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadalq_u16)"]
35660#[inline]
35661#[target_feature(enable = "neon")]
35662#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35663#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpadal.u16"))]
35664#[cfg_attr(
35665    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35666    assert_instr(uadalp)
35667)]
35668#[cfg_attr(
35669    not(target_arch = "arm"),
35670    stable(feature = "neon_intrinsics", since = "1.59.0")
35671)]
35672#[cfg_attr(
35673    target_arch = "arm",
35674    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35675)]
35676pub fn vpadalq_u16(a: uint32x4_t, b: uint16x8_t) -> uint32x4_t {
35677    let x: uint32x4_t;
35678    #[cfg(target_arch = "arm")]
35679    {
35680        x = priv_vpadalq_u16(a, b);
35681    }
35682    #[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
35683    unsafe {
35684        x = simd_add(vpaddlq_u16(b), a);
35685    };
35686    x
35687}
35688#[doc = "Unsigned Add and Accumulate Long Pairwise."]
35689#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadal_u32)"]
35690#[inline]
35691#[target_feature(enable = "neon")]
35692#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35693#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpadal.u32"))]
35694#[cfg_attr(
35695    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35696    assert_instr(uadalp)
35697)]
35698#[cfg_attr(
35699    not(target_arch = "arm"),
35700    stable(feature = "neon_intrinsics", since = "1.59.0")
35701)]
35702#[cfg_attr(
35703    target_arch = "arm",
35704    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35705)]
35706pub fn vpadal_u32(a: uint64x1_t, b: uint32x2_t) -> uint64x1_t {
35707    let x: uint64x1_t;
35708    #[cfg(target_arch = "arm")]
35709    {
35710        x = priv_vpadal_u32(a, b);
35711    }
35712    #[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
35713    unsafe {
35714        x = simd_add(vpaddl_u32(b), a);
35715    };
35716    x
35717}
35718#[doc = "Unsigned Add and Accumulate Long Pairwise."]
35719#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadalq_u32)"]
35720#[inline]
35721#[target_feature(enable = "neon")]
35722#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35723#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpadal.u32"))]
35724#[cfg_attr(
35725    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35726    assert_instr(uadalp)
35727)]
35728#[cfg_attr(
35729    not(target_arch = "arm"),
35730    stable(feature = "neon_intrinsics", since = "1.59.0")
35731)]
35732#[cfg_attr(
35733    target_arch = "arm",
35734    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35735)]
35736pub fn vpadalq_u32(a: uint64x2_t, b: uint32x4_t) -> uint64x2_t {
35737    let x: uint64x2_t;
35738    #[cfg(target_arch = "arm")]
35739    {
35740        x = priv_vpadalq_u32(a, b);
35741    }
35742    #[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
35743    unsafe {
35744        x = simd_add(vpaddlq_u32(b), a);
35745    };
35746    x
35747}
35748#[doc = "Floating-point add pairwise"]
35749#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadd_f16)"]
35750#[inline]
35751#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
35752#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpadd))]
35753#[cfg_attr(
35754    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35755    assert_instr(faddp)
35756)]
35757#[target_feature(enable = "neon,fp16")]
35758#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
35759#[cfg(not(target_arch = "arm64ec"))]
35760pub fn vpadd_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t {
35761    unsafe extern "unadjusted" {
35762        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpadd.v4f16")]
35763        #[cfg_attr(
35764            any(target_arch = "aarch64", target_arch = "arm64ec"),
35765            link_name = "llvm.aarch64.neon.faddp.v4f16"
35766        )]
35767        fn _vpadd_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t;
35768    }
35769    unsafe { _vpadd_f16(a, b) }
35770}
35771#[doc = "Floating-point add pairwise"]
35772#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadd_f32)"]
35773#[inline]
35774#[target_feature(enable = "neon")]
35775#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35776#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpadd))]
35777#[cfg_attr(
35778    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35779    assert_instr(faddp)
35780)]
35781#[cfg_attr(
35782    not(target_arch = "arm"),
35783    stable(feature = "neon_intrinsics", since = "1.59.0")
35784)]
35785#[cfg_attr(
35786    target_arch = "arm",
35787    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35788)]
35789pub fn vpadd_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
35790    unsafe extern "unadjusted" {
35791        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpadd.v2f32")]
35792        #[cfg_attr(
35793            any(target_arch = "aarch64", target_arch = "arm64ec"),
35794            link_name = "llvm.aarch64.neon.faddp.v2f32"
35795        )]
35796        fn _vpadd_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t;
35797    }
35798    unsafe { _vpadd_f32(a, b) }
35799}
35800#[doc = "Add pairwise."]
35801#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadd_s8)"]
35802#[inline]
35803#[target_feature(enable = "neon")]
35804#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35805#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpadd))]
35806#[cfg_attr(
35807    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35808    assert_instr(addp)
35809)]
35810#[cfg_attr(
35811    not(target_arch = "arm"),
35812    stable(feature = "neon_intrinsics", since = "1.59.0")
35813)]
35814#[cfg_attr(
35815    target_arch = "arm",
35816    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35817)]
35818pub fn vpadd_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
35819    unsafe extern "unadjusted" {
35820        #[cfg_attr(
35821            any(target_arch = "aarch64", target_arch = "arm64ec"),
35822            link_name = "llvm.aarch64.neon.addp.v8i8"
35823        )]
35824        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpadd.v8i8")]
35825        fn _vpadd_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t;
35826    }
35827    unsafe { _vpadd_s8(a, b) }
35828}
35829#[doc = "Add pairwise."]
35830#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadd_s16)"]
35831#[inline]
35832#[target_feature(enable = "neon")]
35833#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35834#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpadd))]
35835#[cfg_attr(
35836    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35837    assert_instr(addp)
35838)]
35839#[cfg_attr(
35840    not(target_arch = "arm"),
35841    stable(feature = "neon_intrinsics", since = "1.59.0")
35842)]
35843#[cfg_attr(
35844    target_arch = "arm",
35845    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35846)]
35847pub fn vpadd_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
35848    unsafe extern "unadjusted" {
35849        #[cfg_attr(
35850            any(target_arch = "aarch64", target_arch = "arm64ec"),
35851            link_name = "llvm.aarch64.neon.addp.v4i16"
35852        )]
35853        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpadd.v4i16")]
35854        fn _vpadd_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t;
35855    }
35856    unsafe { _vpadd_s16(a, b) }
35857}
35858#[doc = "Add pairwise."]
35859#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadd_s32)"]
35860#[inline]
35861#[target_feature(enable = "neon")]
35862#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35863#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpadd))]
35864#[cfg_attr(
35865    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35866    assert_instr(addp)
35867)]
35868#[cfg_attr(
35869    not(target_arch = "arm"),
35870    stable(feature = "neon_intrinsics", since = "1.59.0")
35871)]
35872#[cfg_attr(
35873    target_arch = "arm",
35874    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35875)]
35876pub fn vpadd_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
35877    unsafe extern "unadjusted" {
35878        #[cfg_attr(
35879            any(target_arch = "aarch64", target_arch = "arm64ec"),
35880            link_name = "llvm.aarch64.neon.addp.v2i32"
35881        )]
35882        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpadd.v2i32")]
35883        fn _vpadd_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t;
35884    }
35885    unsafe { _vpadd_s32(a, b) }
35886}
35887#[doc = "Add pairwise."]
35888#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadd_u8)"]
35889#[inline]
35890#[cfg(target_endian = "little")]
35891#[target_feature(enable = "neon")]
35892#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35893#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpadd))]
35894#[cfg_attr(
35895    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35896    assert_instr(addp)
35897)]
35898#[cfg_attr(
35899    not(target_arch = "arm"),
35900    stable(feature = "neon_intrinsics", since = "1.59.0")
35901)]
35902#[cfg_attr(
35903    target_arch = "arm",
35904    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35905)]
35906pub fn vpadd_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
35907    unsafe { transmute(vpadd_s8(transmute(a), transmute(b))) }
35908}
35909#[doc = "Add pairwise."]
35910#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadd_u8)"]
35911#[inline]
35912#[cfg(target_endian = "big")]
35913#[target_feature(enable = "neon")]
35914#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35915#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpadd))]
35916#[cfg_attr(
35917    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35918    assert_instr(addp)
35919)]
35920#[cfg_attr(
35921    not(target_arch = "arm"),
35922    stable(feature = "neon_intrinsics", since = "1.59.0")
35923)]
35924#[cfg_attr(
35925    target_arch = "arm",
35926    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35927)]
35928pub fn vpadd_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
35929    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
35930    let b: uint8x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
35931    unsafe {
35932        let ret_val: uint8x8_t = transmute(vpadd_s8(transmute(a), transmute(b)));
35933        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
35934    }
35935}
35936#[doc = "Add pairwise."]
35937#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadd_u16)"]
35938#[inline]
35939#[cfg(target_endian = "little")]
35940#[target_feature(enable = "neon")]
35941#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35942#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpadd))]
35943#[cfg_attr(
35944    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35945    assert_instr(addp)
35946)]
35947#[cfg_attr(
35948    not(target_arch = "arm"),
35949    stable(feature = "neon_intrinsics", since = "1.59.0")
35950)]
35951#[cfg_attr(
35952    target_arch = "arm",
35953    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35954)]
35955pub fn vpadd_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
35956    unsafe { transmute(vpadd_s16(transmute(a), transmute(b))) }
35957}
35958#[doc = "Add pairwise."]
35959#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadd_u16)"]
35960#[inline]
35961#[cfg(target_endian = "big")]
35962#[target_feature(enable = "neon")]
35963#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35964#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpadd))]
35965#[cfg_attr(
35966    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35967    assert_instr(addp)
35968)]
35969#[cfg_attr(
35970    not(target_arch = "arm"),
35971    stable(feature = "neon_intrinsics", since = "1.59.0")
35972)]
35973#[cfg_attr(
35974    target_arch = "arm",
35975    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35976)]
35977pub fn vpadd_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
35978    let a: uint16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
35979    let b: uint16x4_t = unsafe { simd_shuffle!(b, b, [3, 2, 1, 0]) };
35980    unsafe {
35981        let ret_val: uint16x4_t = transmute(vpadd_s16(transmute(a), transmute(b)));
35982        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
35983    }
35984}
35985#[doc = "Add pairwise."]
35986#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadd_u32)"]
35987#[inline]
35988#[cfg(target_endian = "little")]
35989#[target_feature(enable = "neon")]
35990#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35991#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpadd))]
35992#[cfg_attr(
35993    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35994    assert_instr(addp)
35995)]
35996#[cfg_attr(
35997    not(target_arch = "arm"),
35998    stable(feature = "neon_intrinsics", since = "1.59.0")
35999)]
36000#[cfg_attr(
36001    target_arch = "arm",
36002    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36003)]
36004pub fn vpadd_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
36005    unsafe { transmute(vpadd_s32(transmute(a), transmute(b))) }
36006}
36007#[doc = "Add pairwise."]
36008#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadd_u32)"]
36009#[inline]
36010#[cfg(target_endian = "big")]
36011#[target_feature(enable = "neon")]
36012#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36013#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpadd))]
36014#[cfg_attr(
36015    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36016    assert_instr(addp)
36017)]
36018#[cfg_attr(
36019    not(target_arch = "arm"),
36020    stable(feature = "neon_intrinsics", since = "1.59.0")
36021)]
36022#[cfg_attr(
36023    target_arch = "arm",
36024    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36025)]
36026pub fn vpadd_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
36027    let a: uint32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
36028    let b: uint32x2_t = unsafe { simd_shuffle!(b, b, [1, 0]) };
36029    unsafe {
36030        let ret_val: uint32x2_t = transmute(vpadd_s32(transmute(a), transmute(b)));
36031        simd_shuffle!(ret_val, ret_val, [1, 0])
36032    }
36033}
36034#[doc = "Signed Add and Accumulate Long Pairwise."]
36035#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpaddl_s8)"]
36036#[inline]
36037#[target_feature(enable = "neon")]
36038#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36039#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpaddl.s8"))]
36040#[cfg_attr(
36041    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36042    assert_instr(saddlp)
36043)]
36044#[cfg_attr(
36045    not(target_arch = "arm"),
36046    stable(feature = "neon_intrinsics", since = "1.59.0")
36047)]
36048#[cfg_attr(
36049    target_arch = "arm",
36050    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36051)]
36052pub fn vpaddl_s8(a: int8x8_t) -> int16x4_t {
36053    unsafe extern "unadjusted" {
36054        #[cfg_attr(
36055            any(target_arch = "aarch64", target_arch = "arm64ec"),
36056            link_name = "llvm.aarch64.neon.saddlp.v4i16.v8i8"
36057        )]
36058        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpaddls.v4i16.v8i8")]
36059        fn _vpaddl_s8(a: int8x8_t) -> int16x4_t;
36060    }
36061    unsafe { _vpaddl_s8(a) }
36062}
36063#[doc = "Signed Add and Accumulate Long Pairwise."]
36064#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpaddlq_s8)"]
36065#[inline]
36066#[target_feature(enable = "neon")]
36067#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36068#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpaddl.s8"))]
36069#[cfg_attr(
36070    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36071    assert_instr(saddlp)
36072)]
36073#[cfg_attr(
36074    not(target_arch = "arm"),
36075    stable(feature = "neon_intrinsics", since = "1.59.0")
36076)]
36077#[cfg_attr(
36078    target_arch = "arm",
36079    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36080)]
36081pub fn vpaddlq_s8(a: int8x16_t) -> int16x8_t {
36082    unsafe extern "unadjusted" {
36083        #[cfg_attr(
36084            any(target_arch = "aarch64", target_arch = "arm64ec"),
36085            link_name = "llvm.aarch64.neon.saddlp.v8i16.v16i8"
36086        )]
36087        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpaddls.v8i16.v16i8")]
36088        fn _vpaddlq_s8(a: int8x16_t) -> int16x8_t;
36089    }
36090    unsafe { _vpaddlq_s8(a) }
36091}
36092#[doc = "Signed Add and Accumulate Long Pairwise."]
36093#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpaddl_s16)"]
36094#[inline]
36095#[target_feature(enable = "neon")]
36096#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36097#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpaddl.s16"))]
36098#[cfg_attr(
36099    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36100    assert_instr(saddlp)
36101)]
36102#[cfg_attr(
36103    not(target_arch = "arm"),
36104    stable(feature = "neon_intrinsics", since = "1.59.0")
36105)]
36106#[cfg_attr(
36107    target_arch = "arm",
36108    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36109)]
36110pub fn vpaddl_s16(a: int16x4_t) -> int32x2_t {
36111    unsafe extern "unadjusted" {
36112        #[cfg_attr(
36113            any(target_arch = "aarch64", target_arch = "arm64ec"),
36114            link_name = "llvm.aarch64.neon.saddlp.v2i32.v4i16"
36115        )]
36116        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpaddls.v2i32.v4i16")]
36117        fn _vpaddl_s16(a: int16x4_t) -> int32x2_t;
36118    }
36119    unsafe { _vpaddl_s16(a) }
36120}
36121#[doc = "Signed Add and Accumulate Long Pairwise."]
36122#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpaddlq_s16)"]
36123#[inline]
36124#[target_feature(enable = "neon")]
36125#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36126#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpaddl.s16"))]
36127#[cfg_attr(
36128    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36129    assert_instr(saddlp)
36130)]
36131#[cfg_attr(
36132    not(target_arch = "arm"),
36133    stable(feature = "neon_intrinsics", since = "1.59.0")
36134)]
36135#[cfg_attr(
36136    target_arch = "arm",
36137    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36138)]
36139pub fn vpaddlq_s16(a: int16x8_t) -> int32x4_t {
36140    unsafe extern "unadjusted" {
36141        #[cfg_attr(
36142            any(target_arch = "aarch64", target_arch = "arm64ec"),
36143            link_name = "llvm.aarch64.neon.saddlp.v4i32.v8i16"
36144        )]
36145        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpaddls.v4i32.v8i16")]
36146        fn _vpaddlq_s16(a: int16x8_t) -> int32x4_t;
36147    }
36148    unsafe { _vpaddlq_s16(a) }
36149}
36150#[doc = "Signed Add and Accumulate Long Pairwise."]
36151#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpaddl_s32)"]
36152#[inline]
36153#[target_feature(enable = "neon")]
36154#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36155#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpaddl.s32"))]
36156#[cfg_attr(
36157    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36158    assert_instr(saddlp)
36159)]
36160#[cfg_attr(
36161    not(target_arch = "arm"),
36162    stable(feature = "neon_intrinsics", since = "1.59.0")
36163)]
36164#[cfg_attr(
36165    target_arch = "arm",
36166    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36167)]
36168pub fn vpaddl_s32(a: int32x2_t) -> int64x1_t {
36169    unsafe extern "unadjusted" {
36170        #[cfg_attr(
36171            any(target_arch = "aarch64", target_arch = "arm64ec"),
36172            link_name = "llvm.aarch64.neon.saddlp.v1i64.v2i32"
36173        )]
36174        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpaddls.v1i64.v2i32")]
36175        fn _vpaddl_s32(a: int32x2_t) -> int64x1_t;
36176    }
36177    unsafe { _vpaddl_s32(a) }
36178}
36179#[doc = "Signed Add and Accumulate Long Pairwise."]
36180#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpaddlq_s32)"]
36181#[inline]
36182#[target_feature(enable = "neon")]
36183#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36184#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpaddl.s32"))]
36185#[cfg_attr(
36186    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36187    assert_instr(saddlp)
36188)]
36189#[cfg_attr(
36190    not(target_arch = "arm"),
36191    stable(feature = "neon_intrinsics", since = "1.59.0")
36192)]
36193#[cfg_attr(
36194    target_arch = "arm",
36195    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36196)]
36197pub fn vpaddlq_s32(a: int32x4_t) -> int64x2_t {
36198    unsafe extern "unadjusted" {
36199        #[cfg_attr(
36200            any(target_arch = "aarch64", target_arch = "arm64ec"),
36201            link_name = "llvm.aarch64.neon.saddlp.v2i64.v4i32"
36202        )]
36203        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpaddls.v2i64.v4i32")]
36204        fn _vpaddlq_s32(a: int32x4_t) -> int64x2_t;
36205    }
36206    unsafe { _vpaddlq_s32(a) }
36207}
36208#[doc = "Unsigned Add and Accumulate Long Pairwise."]
36209#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpaddl_u8)"]
36210#[inline]
36211#[target_feature(enable = "neon")]
36212#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36213#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpaddl.u8"))]
36214#[cfg_attr(
36215    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36216    assert_instr(uaddlp)
36217)]
36218#[cfg_attr(
36219    not(target_arch = "arm"),
36220    stable(feature = "neon_intrinsics", since = "1.59.0")
36221)]
36222#[cfg_attr(
36223    target_arch = "arm",
36224    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36225)]
36226pub fn vpaddl_u8(a: uint8x8_t) -> uint16x4_t {
36227    unsafe extern "unadjusted" {
36228        #[cfg_attr(
36229            any(target_arch = "aarch64", target_arch = "arm64ec"),
36230            link_name = "llvm.aarch64.neon.uaddlp.v4i16.v8i8"
36231        )]
36232        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpaddlu.v4i16.v8i8")]
36233        fn _vpaddl_u8(a: uint8x8_t) -> uint16x4_t;
36234    }
36235    unsafe { _vpaddl_u8(a) }
36236}
36237#[doc = "Unsigned Add and Accumulate Long Pairwise."]
36238#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpaddlq_u8)"]
36239#[inline]
36240#[target_feature(enable = "neon")]
36241#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36242#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpaddl.u8"))]
36243#[cfg_attr(
36244    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36245    assert_instr(uaddlp)
36246)]
36247#[cfg_attr(
36248    not(target_arch = "arm"),
36249    stable(feature = "neon_intrinsics", since = "1.59.0")
36250)]
36251#[cfg_attr(
36252    target_arch = "arm",
36253    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36254)]
36255pub fn vpaddlq_u8(a: uint8x16_t) -> uint16x8_t {
36256    unsafe extern "unadjusted" {
36257        #[cfg_attr(
36258            any(target_arch = "aarch64", target_arch = "arm64ec"),
36259            link_name = "llvm.aarch64.neon.uaddlp.v8i16.v16i8"
36260        )]
36261        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpaddlu.v8i16.v16i8")]
36262        fn _vpaddlq_u8(a: uint8x16_t) -> uint16x8_t;
36263    }
36264    unsafe { _vpaddlq_u8(a) }
36265}
36266#[doc = "Unsigned Add and Accumulate Long Pairwise."]
36267#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpaddl_u16)"]
36268#[inline]
36269#[target_feature(enable = "neon")]
36270#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36271#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpaddl.u16"))]
36272#[cfg_attr(
36273    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36274    assert_instr(uaddlp)
36275)]
36276#[cfg_attr(
36277    not(target_arch = "arm"),
36278    stable(feature = "neon_intrinsics", since = "1.59.0")
36279)]
36280#[cfg_attr(
36281    target_arch = "arm",
36282    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36283)]
36284pub fn vpaddl_u16(a: uint16x4_t) -> uint32x2_t {
36285    unsafe extern "unadjusted" {
36286        #[cfg_attr(
36287            any(target_arch = "aarch64", target_arch = "arm64ec"),
36288            link_name = "llvm.aarch64.neon.uaddlp.v2i32.v4i16"
36289        )]
36290        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpaddlu.v2i32.v4i16")]
36291        fn _vpaddl_u16(a: uint16x4_t) -> uint32x2_t;
36292    }
36293    unsafe { _vpaddl_u16(a) }
36294}
36295#[doc = "Unsigned Add and Accumulate Long Pairwise."]
36296#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpaddlq_u16)"]
36297#[inline]
36298#[target_feature(enable = "neon")]
36299#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36300#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpaddl.u16"))]
36301#[cfg_attr(
36302    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36303    assert_instr(uaddlp)
36304)]
36305#[cfg_attr(
36306    not(target_arch = "arm"),
36307    stable(feature = "neon_intrinsics", since = "1.59.0")
36308)]
36309#[cfg_attr(
36310    target_arch = "arm",
36311    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36312)]
36313pub fn vpaddlq_u16(a: uint16x8_t) -> uint32x4_t {
36314    unsafe extern "unadjusted" {
36315        #[cfg_attr(
36316            any(target_arch = "aarch64", target_arch = "arm64ec"),
36317            link_name = "llvm.aarch64.neon.uaddlp.v4i32.v8i16"
36318        )]
36319        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpaddlu.v4i32.v8i16")]
36320        fn _vpaddlq_u16(a: uint16x8_t) -> uint32x4_t;
36321    }
36322    unsafe { _vpaddlq_u16(a) }
36323}
36324#[doc = "Unsigned Add and Accumulate Long Pairwise."]
36325#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpaddl_u32)"]
36326#[inline]
36327#[target_feature(enable = "neon")]
36328#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36329#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpaddl.u32"))]
36330#[cfg_attr(
36331    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36332    assert_instr(uaddlp)
36333)]
36334#[cfg_attr(
36335    not(target_arch = "arm"),
36336    stable(feature = "neon_intrinsics", since = "1.59.0")
36337)]
36338#[cfg_attr(
36339    target_arch = "arm",
36340    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36341)]
36342pub fn vpaddl_u32(a: uint32x2_t) -> uint64x1_t {
36343    unsafe extern "unadjusted" {
36344        #[cfg_attr(
36345            any(target_arch = "aarch64", target_arch = "arm64ec"),
36346            link_name = "llvm.aarch64.neon.uaddlp.v1i64.v2i32"
36347        )]
36348        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpaddlu.v1i64.v2i32")]
36349        fn _vpaddl_u32(a: uint32x2_t) -> uint64x1_t;
36350    }
36351    unsafe { _vpaddl_u32(a) }
36352}
36353#[doc = "Unsigned Add and Accumulate Long Pairwise."]
36354#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpaddlq_u32)"]
36355#[inline]
36356#[target_feature(enable = "neon")]
36357#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36358#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpaddl.u32"))]
36359#[cfg_attr(
36360    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36361    assert_instr(uaddlp)
36362)]
36363#[cfg_attr(
36364    not(target_arch = "arm"),
36365    stable(feature = "neon_intrinsics", since = "1.59.0")
36366)]
36367#[cfg_attr(
36368    target_arch = "arm",
36369    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36370)]
36371pub fn vpaddlq_u32(a: uint32x4_t) -> uint64x2_t {
36372    unsafe extern "unadjusted" {
36373        #[cfg_attr(
36374            any(target_arch = "aarch64", target_arch = "arm64ec"),
36375            link_name = "llvm.aarch64.neon.uaddlp.v2i64.v4i32"
36376        )]
36377        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpaddlu.v2i64.v4i32")]
36378        fn _vpaddlq_u32(a: uint32x4_t) -> uint64x2_t;
36379    }
36380    unsafe { _vpaddlq_u32(a) }
36381}
36382#[doc = "Folding maximum of adjacent pairs"]
36383#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpmax_f32)"]
36384#[inline]
36385#[target_feature(enable = "neon")]
36386#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36387#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpmax))]
36388#[cfg_attr(
36389    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36390    assert_instr(fmaxp)
36391)]
36392#[cfg_attr(
36393    not(target_arch = "arm"),
36394    stable(feature = "neon_intrinsics", since = "1.59.0")
36395)]
36396#[cfg_attr(
36397    target_arch = "arm",
36398    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36399)]
36400pub fn vpmax_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
36401    unsafe extern "unadjusted" {
36402        #[cfg_attr(
36403            any(target_arch = "aarch64", target_arch = "arm64ec"),
36404            link_name = "llvm.aarch64.neon.fmaxp.v2f32"
36405        )]
36406        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpmaxs.v2f32")]
36407        fn _vpmax_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t;
36408    }
36409    unsafe { _vpmax_f32(a, b) }
36410}
36411#[doc = "Folding maximum of adjacent pairs"]
36412#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpmax_s8)"]
36413#[inline]
36414#[target_feature(enable = "neon")]
36415#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36416#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpmax))]
36417#[cfg_attr(
36418    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36419    assert_instr(smaxp)
36420)]
36421#[cfg_attr(
36422    not(target_arch = "arm"),
36423    stable(feature = "neon_intrinsics", since = "1.59.0")
36424)]
36425#[cfg_attr(
36426    target_arch = "arm",
36427    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36428)]
36429pub fn vpmax_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
36430    unsafe extern "unadjusted" {
36431        #[cfg_attr(
36432            any(target_arch = "aarch64", target_arch = "arm64ec"),
36433            link_name = "llvm.aarch64.neon.smaxp.v8i8"
36434        )]
36435        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpmaxs.v8i8")]
36436        fn _vpmax_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t;
36437    }
36438    unsafe { _vpmax_s8(a, b) }
36439}
36440#[doc = "Folding maximum of adjacent pairs"]
36441#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpmax_s16)"]
36442#[inline]
36443#[target_feature(enable = "neon")]
36444#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36445#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpmax))]
36446#[cfg_attr(
36447    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36448    assert_instr(smaxp)
36449)]
36450#[cfg_attr(
36451    not(target_arch = "arm"),
36452    stable(feature = "neon_intrinsics", since = "1.59.0")
36453)]
36454#[cfg_attr(
36455    target_arch = "arm",
36456    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36457)]
36458pub fn vpmax_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
36459    unsafe extern "unadjusted" {
36460        #[cfg_attr(
36461            any(target_arch = "aarch64", target_arch = "arm64ec"),
36462            link_name = "llvm.aarch64.neon.smaxp.v4i16"
36463        )]
36464        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpmaxs.v4i16")]
36465        fn _vpmax_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t;
36466    }
36467    unsafe { _vpmax_s16(a, b) }
36468}
36469#[doc = "Folding maximum of adjacent pairs"]
36470#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpmax_s32)"]
36471#[inline]
36472#[target_feature(enable = "neon")]
36473#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36474#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpmax))]
36475#[cfg_attr(
36476    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36477    assert_instr(smaxp)
36478)]
36479#[cfg_attr(
36480    not(target_arch = "arm"),
36481    stable(feature = "neon_intrinsics", since = "1.59.0")
36482)]
36483#[cfg_attr(
36484    target_arch = "arm",
36485    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36486)]
36487pub fn vpmax_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
36488    unsafe extern "unadjusted" {
36489        #[cfg_attr(
36490            any(target_arch = "aarch64", target_arch = "arm64ec"),
36491            link_name = "llvm.aarch64.neon.smaxp.v2i32"
36492        )]
36493        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpmaxs.v2i32")]
36494        fn _vpmax_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t;
36495    }
36496    unsafe { _vpmax_s32(a, b) }
36497}
36498#[doc = "Folding maximum of adjacent pairs"]
36499#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpmax_u8)"]
36500#[inline]
36501#[target_feature(enable = "neon")]
36502#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36503#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpmax))]
36504#[cfg_attr(
36505    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36506    assert_instr(umaxp)
36507)]
36508#[cfg_attr(
36509    not(target_arch = "arm"),
36510    stable(feature = "neon_intrinsics", since = "1.59.0")
36511)]
36512#[cfg_attr(
36513    target_arch = "arm",
36514    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36515)]
36516pub fn vpmax_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
36517    unsafe extern "unadjusted" {
36518        #[cfg_attr(
36519            any(target_arch = "aarch64", target_arch = "arm64ec"),
36520            link_name = "llvm.aarch64.neon.umaxp.v8i8"
36521        )]
36522        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpmaxu.v8i8")]
36523        fn _vpmax_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t;
36524    }
36525    unsafe { _vpmax_u8(a, b) }
36526}
36527#[doc = "Folding maximum of adjacent pairs"]
36528#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpmax_u16)"]
36529#[inline]
36530#[target_feature(enable = "neon")]
36531#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36532#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpmax))]
36533#[cfg_attr(
36534    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36535    assert_instr(umaxp)
36536)]
36537#[cfg_attr(
36538    not(target_arch = "arm"),
36539    stable(feature = "neon_intrinsics", since = "1.59.0")
36540)]
36541#[cfg_attr(
36542    target_arch = "arm",
36543    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36544)]
36545pub fn vpmax_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
36546    unsafe extern "unadjusted" {
36547        #[cfg_attr(
36548            any(target_arch = "aarch64", target_arch = "arm64ec"),
36549            link_name = "llvm.aarch64.neon.umaxp.v4i16"
36550        )]
36551        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpmaxu.v4i16")]
36552        fn _vpmax_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t;
36553    }
36554    unsafe { _vpmax_u16(a, b) }
36555}
36556#[doc = "Folding maximum of adjacent pairs"]
36557#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpmax_u32)"]
36558#[inline]
36559#[target_feature(enable = "neon")]
36560#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36561#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpmax))]
36562#[cfg_attr(
36563    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36564    assert_instr(umaxp)
36565)]
36566#[cfg_attr(
36567    not(target_arch = "arm"),
36568    stable(feature = "neon_intrinsics", since = "1.59.0")
36569)]
36570#[cfg_attr(
36571    target_arch = "arm",
36572    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36573)]
36574pub fn vpmax_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
36575    unsafe extern "unadjusted" {
36576        #[cfg_attr(
36577            any(target_arch = "aarch64", target_arch = "arm64ec"),
36578            link_name = "llvm.aarch64.neon.umaxp.v2i32"
36579        )]
36580        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpmaxu.v2i32")]
36581        fn _vpmax_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t;
36582    }
36583    unsafe { _vpmax_u32(a, b) }
36584}
36585#[doc = "Folding minimum of adjacent pairs"]
36586#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpmin_f32)"]
36587#[inline]
36588#[target_feature(enable = "neon")]
36589#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36590#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpmin))]
36591#[cfg_attr(
36592    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36593    assert_instr(fminp)
36594)]
36595#[cfg_attr(
36596    not(target_arch = "arm"),
36597    stable(feature = "neon_intrinsics", since = "1.59.0")
36598)]
36599#[cfg_attr(
36600    target_arch = "arm",
36601    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36602)]
36603pub fn vpmin_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
36604    unsafe extern "unadjusted" {
36605        #[cfg_attr(
36606            any(target_arch = "aarch64", target_arch = "arm64ec"),
36607            link_name = "llvm.aarch64.neon.fminp.v2f32"
36608        )]
36609        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpmins.v2f32")]
36610        fn _vpmin_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t;
36611    }
36612    unsafe { _vpmin_f32(a, b) }
36613}
36614#[doc = "Folding minimum of adjacent pairs"]
36615#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpmin_s8)"]
36616#[inline]
36617#[target_feature(enable = "neon")]
36618#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36619#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpmin))]
36620#[cfg_attr(
36621    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36622    assert_instr(sminp)
36623)]
36624#[cfg_attr(
36625    not(target_arch = "arm"),
36626    stable(feature = "neon_intrinsics", since = "1.59.0")
36627)]
36628#[cfg_attr(
36629    target_arch = "arm",
36630    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36631)]
36632pub fn vpmin_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
36633    unsafe extern "unadjusted" {
36634        #[cfg_attr(
36635            any(target_arch = "aarch64", target_arch = "arm64ec"),
36636            link_name = "llvm.aarch64.neon.sminp.v8i8"
36637        )]
36638        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpmins.v8i8")]
36639        fn _vpmin_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t;
36640    }
36641    unsafe { _vpmin_s8(a, b) }
36642}
36643#[doc = "Folding minimum of adjacent pairs"]
36644#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpmin_s16)"]
36645#[inline]
36646#[target_feature(enable = "neon")]
36647#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36648#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpmin))]
36649#[cfg_attr(
36650    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36651    assert_instr(sminp)
36652)]
36653#[cfg_attr(
36654    not(target_arch = "arm"),
36655    stable(feature = "neon_intrinsics", since = "1.59.0")
36656)]
36657#[cfg_attr(
36658    target_arch = "arm",
36659    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36660)]
36661pub fn vpmin_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
36662    unsafe extern "unadjusted" {
36663        #[cfg_attr(
36664            any(target_arch = "aarch64", target_arch = "arm64ec"),
36665            link_name = "llvm.aarch64.neon.sminp.v4i16"
36666        )]
36667        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpmins.v4i16")]
36668        fn _vpmin_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t;
36669    }
36670    unsafe { _vpmin_s16(a, b) }
36671}
36672#[doc = "Folding minimum of adjacent pairs"]
36673#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpmin_s32)"]
36674#[inline]
36675#[target_feature(enable = "neon")]
36676#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36677#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpmin))]
36678#[cfg_attr(
36679    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36680    assert_instr(sminp)
36681)]
36682#[cfg_attr(
36683    not(target_arch = "arm"),
36684    stable(feature = "neon_intrinsics", since = "1.59.0")
36685)]
36686#[cfg_attr(
36687    target_arch = "arm",
36688    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36689)]
36690pub fn vpmin_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
36691    unsafe extern "unadjusted" {
36692        #[cfg_attr(
36693            any(target_arch = "aarch64", target_arch = "arm64ec"),
36694            link_name = "llvm.aarch64.neon.sminp.v2i32"
36695        )]
36696        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpmins.v2i32")]
36697        fn _vpmin_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t;
36698    }
36699    unsafe { _vpmin_s32(a, b) }
36700}
36701#[doc = "Folding minimum of adjacent pairs"]
36702#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpmin_u8)"]
36703#[inline]
36704#[target_feature(enable = "neon")]
36705#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36706#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpmin))]
36707#[cfg_attr(
36708    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36709    assert_instr(uminp)
36710)]
36711#[cfg_attr(
36712    not(target_arch = "arm"),
36713    stable(feature = "neon_intrinsics", since = "1.59.0")
36714)]
36715#[cfg_attr(
36716    target_arch = "arm",
36717    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36718)]
36719pub fn vpmin_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
36720    unsafe extern "unadjusted" {
36721        #[cfg_attr(
36722            any(target_arch = "aarch64", target_arch = "arm64ec"),
36723            link_name = "llvm.aarch64.neon.uminp.v8i8"
36724        )]
36725        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpminu.v8i8")]
36726        fn _vpmin_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t;
36727    }
36728    unsafe { _vpmin_u8(a, b) }
36729}
36730#[doc = "Folding minimum of adjacent pairs"]
36731#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpmin_u16)"]
36732#[inline]
36733#[target_feature(enable = "neon")]
36734#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36735#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpmin))]
36736#[cfg_attr(
36737    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36738    assert_instr(uminp)
36739)]
36740#[cfg_attr(
36741    not(target_arch = "arm"),
36742    stable(feature = "neon_intrinsics", since = "1.59.0")
36743)]
36744#[cfg_attr(
36745    target_arch = "arm",
36746    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36747)]
36748pub fn vpmin_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
36749    unsafe extern "unadjusted" {
36750        #[cfg_attr(
36751            any(target_arch = "aarch64", target_arch = "arm64ec"),
36752            link_name = "llvm.aarch64.neon.uminp.v4i16"
36753        )]
36754        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpminu.v4i16")]
36755        fn _vpmin_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t;
36756    }
36757    unsafe { _vpmin_u16(a, b) }
36758}
36759#[doc = "Folding minimum of adjacent pairs"]
36760#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpmin_u32)"]
36761#[inline]
36762#[target_feature(enable = "neon")]
36763#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36764#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpmin))]
36765#[cfg_attr(
36766    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36767    assert_instr(uminp)
36768)]
36769#[cfg_attr(
36770    not(target_arch = "arm"),
36771    stable(feature = "neon_intrinsics", since = "1.59.0")
36772)]
36773#[cfg_attr(
36774    target_arch = "arm",
36775    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36776)]
36777pub fn vpmin_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
36778    unsafe extern "unadjusted" {
36779        #[cfg_attr(
36780            any(target_arch = "aarch64", target_arch = "arm64ec"),
36781            link_name = "llvm.aarch64.neon.uminp.v2i32"
36782        )]
36783        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpminu.v2i32")]
36784        fn _vpmin_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t;
36785    }
36786    unsafe { _vpmin_u32(a, b) }
36787}
36788#[doc = "Signed saturating Absolute value"]
36789#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqabs_s8)"]
36790#[inline]
36791#[target_feature(enable = "neon")]
36792#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36793#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqabs.s8"))]
36794#[cfg_attr(
36795    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36796    assert_instr(sqabs)
36797)]
36798#[cfg_attr(
36799    not(target_arch = "arm"),
36800    stable(feature = "neon_intrinsics", since = "1.59.0")
36801)]
36802#[cfg_attr(
36803    target_arch = "arm",
36804    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36805)]
36806pub fn vqabs_s8(a: int8x8_t) -> int8x8_t {
36807    unsafe extern "unadjusted" {
36808        #[cfg_attr(
36809            any(target_arch = "aarch64", target_arch = "arm64ec"),
36810            link_name = "llvm.aarch64.neon.sqabs.v8i8"
36811        )]
36812        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqabs.v8i8")]
36813        fn _vqabs_s8(a: int8x8_t) -> int8x8_t;
36814    }
36815    unsafe { _vqabs_s8(a) }
36816}
36817#[doc = "Signed saturating Absolute value"]
36818#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqabsq_s8)"]
36819#[inline]
36820#[target_feature(enable = "neon")]
36821#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36822#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqabs.s8"))]
36823#[cfg_attr(
36824    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36825    assert_instr(sqabs)
36826)]
36827#[cfg_attr(
36828    not(target_arch = "arm"),
36829    stable(feature = "neon_intrinsics", since = "1.59.0")
36830)]
36831#[cfg_attr(
36832    target_arch = "arm",
36833    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36834)]
36835pub fn vqabsq_s8(a: int8x16_t) -> int8x16_t {
36836    unsafe extern "unadjusted" {
36837        #[cfg_attr(
36838            any(target_arch = "aarch64", target_arch = "arm64ec"),
36839            link_name = "llvm.aarch64.neon.sqabs.v16i8"
36840        )]
36841        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqabs.v16i8")]
36842        fn _vqabsq_s8(a: int8x16_t) -> int8x16_t;
36843    }
36844    unsafe { _vqabsq_s8(a) }
36845}
36846#[doc = "Signed saturating Absolute value"]
36847#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqabs_s16)"]
36848#[inline]
36849#[target_feature(enable = "neon")]
36850#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36851#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqabs.s16"))]
36852#[cfg_attr(
36853    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36854    assert_instr(sqabs)
36855)]
36856#[cfg_attr(
36857    not(target_arch = "arm"),
36858    stable(feature = "neon_intrinsics", since = "1.59.0")
36859)]
36860#[cfg_attr(
36861    target_arch = "arm",
36862    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36863)]
36864pub fn vqabs_s16(a: int16x4_t) -> int16x4_t {
36865    unsafe extern "unadjusted" {
36866        #[cfg_attr(
36867            any(target_arch = "aarch64", target_arch = "arm64ec"),
36868            link_name = "llvm.aarch64.neon.sqabs.v4i16"
36869        )]
36870        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqabs.v4i16")]
36871        fn _vqabs_s16(a: int16x4_t) -> int16x4_t;
36872    }
36873    unsafe { _vqabs_s16(a) }
36874}
36875#[doc = "Signed saturating Absolute value"]
36876#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqabsq_s16)"]
36877#[inline]
36878#[target_feature(enable = "neon")]
36879#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36880#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqabs.s16"))]
36881#[cfg_attr(
36882    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36883    assert_instr(sqabs)
36884)]
36885#[cfg_attr(
36886    not(target_arch = "arm"),
36887    stable(feature = "neon_intrinsics", since = "1.59.0")
36888)]
36889#[cfg_attr(
36890    target_arch = "arm",
36891    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36892)]
36893pub fn vqabsq_s16(a: int16x8_t) -> int16x8_t {
36894    unsafe extern "unadjusted" {
36895        #[cfg_attr(
36896            any(target_arch = "aarch64", target_arch = "arm64ec"),
36897            link_name = "llvm.aarch64.neon.sqabs.v8i16"
36898        )]
36899        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqabs.v8i16")]
36900        fn _vqabsq_s16(a: int16x8_t) -> int16x8_t;
36901    }
36902    unsafe { _vqabsq_s16(a) }
36903}
36904#[doc = "Signed saturating Absolute value"]
36905#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqabs_s32)"]
36906#[inline]
36907#[target_feature(enable = "neon")]
36908#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36909#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqabs.s32"))]
36910#[cfg_attr(
36911    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36912    assert_instr(sqabs)
36913)]
36914#[cfg_attr(
36915    not(target_arch = "arm"),
36916    stable(feature = "neon_intrinsics", since = "1.59.0")
36917)]
36918#[cfg_attr(
36919    target_arch = "arm",
36920    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36921)]
36922pub fn vqabs_s32(a: int32x2_t) -> int32x2_t {
36923    unsafe extern "unadjusted" {
36924        #[cfg_attr(
36925            any(target_arch = "aarch64", target_arch = "arm64ec"),
36926            link_name = "llvm.aarch64.neon.sqabs.v2i32"
36927        )]
36928        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqabs.v2i32")]
36929        fn _vqabs_s32(a: int32x2_t) -> int32x2_t;
36930    }
36931    unsafe { _vqabs_s32(a) }
36932}
36933#[doc = "Signed saturating Absolute value"]
36934#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqabsq_s32)"]
36935#[inline]
36936#[target_feature(enable = "neon")]
36937#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36938#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqabs.s32"))]
36939#[cfg_attr(
36940    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36941    assert_instr(sqabs)
36942)]
36943#[cfg_attr(
36944    not(target_arch = "arm"),
36945    stable(feature = "neon_intrinsics", since = "1.59.0")
36946)]
36947#[cfg_attr(
36948    target_arch = "arm",
36949    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36950)]
36951pub fn vqabsq_s32(a: int32x4_t) -> int32x4_t {
36952    unsafe extern "unadjusted" {
36953        #[cfg_attr(
36954            any(target_arch = "aarch64", target_arch = "arm64ec"),
36955            link_name = "llvm.aarch64.neon.sqabs.v4i32"
36956        )]
36957        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqabs.v4i32")]
36958        fn _vqabsq_s32(a: int32x4_t) -> int32x4_t;
36959    }
36960    unsafe { _vqabsq_s32(a) }
36961}
36962#[doc = "Saturating add"]
36963#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqadd_s8)"]
36964#[inline]
36965#[target_feature(enable = "neon")]
36966#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36967#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.s8"))]
36968#[cfg_attr(
36969    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36970    assert_instr(sqadd)
36971)]
36972#[cfg_attr(
36973    not(target_arch = "arm"),
36974    stable(feature = "neon_intrinsics", since = "1.59.0")
36975)]
36976#[cfg_attr(
36977    target_arch = "arm",
36978    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36979)]
36980pub fn vqadd_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
36981    unsafe { simd_saturating_add(a, b) }
36982}
36983#[doc = "Saturating add"]
36984#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqaddq_s8)"]
36985#[inline]
36986#[target_feature(enable = "neon")]
36987#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36988#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.s8"))]
36989#[cfg_attr(
36990    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36991    assert_instr(sqadd)
36992)]
36993#[cfg_attr(
36994    not(target_arch = "arm"),
36995    stable(feature = "neon_intrinsics", since = "1.59.0")
36996)]
36997#[cfg_attr(
36998    target_arch = "arm",
36999    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37000)]
37001pub fn vqaddq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
37002    unsafe { simd_saturating_add(a, b) }
37003}
37004#[doc = "Saturating add"]
37005#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqadd_s16)"]
37006#[inline]
37007#[target_feature(enable = "neon")]
37008#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37009#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.s16"))]
37010#[cfg_attr(
37011    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37012    assert_instr(sqadd)
37013)]
37014#[cfg_attr(
37015    not(target_arch = "arm"),
37016    stable(feature = "neon_intrinsics", since = "1.59.0")
37017)]
37018#[cfg_attr(
37019    target_arch = "arm",
37020    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37021)]
37022pub fn vqadd_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
37023    unsafe { simd_saturating_add(a, b) }
37024}
37025#[doc = "Saturating add"]
37026#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqaddq_s16)"]
37027#[inline]
37028#[target_feature(enable = "neon")]
37029#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37030#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.s16"))]
37031#[cfg_attr(
37032    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37033    assert_instr(sqadd)
37034)]
37035#[cfg_attr(
37036    not(target_arch = "arm"),
37037    stable(feature = "neon_intrinsics", since = "1.59.0")
37038)]
37039#[cfg_attr(
37040    target_arch = "arm",
37041    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37042)]
37043pub fn vqaddq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
37044    unsafe { simd_saturating_add(a, b) }
37045}
37046#[doc = "Saturating add"]
37047#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqadd_s32)"]
37048#[inline]
37049#[target_feature(enable = "neon")]
37050#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37051#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.s32"))]
37052#[cfg_attr(
37053    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37054    assert_instr(sqadd)
37055)]
37056#[cfg_attr(
37057    not(target_arch = "arm"),
37058    stable(feature = "neon_intrinsics", since = "1.59.0")
37059)]
37060#[cfg_attr(
37061    target_arch = "arm",
37062    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37063)]
37064pub fn vqadd_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
37065    unsafe { simd_saturating_add(a, b) }
37066}
37067#[doc = "Saturating add"]
37068#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqaddq_s32)"]
37069#[inline]
37070#[target_feature(enable = "neon")]
37071#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37072#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.s32"))]
37073#[cfg_attr(
37074    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37075    assert_instr(sqadd)
37076)]
37077#[cfg_attr(
37078    not(target_arch = "arm"),
37079    stable(feature = "neon_intrinsics", since = "1.59.0")
37080)]
37081#[cfg_attr(
37082    target_arch = "arm",
37083    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37084)]
37085pub fn vqaddq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
37086    unsafe { simd_saturating_add(a, b) }
37087}
37088#[doc = "Saturating add"]
37089#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqadd_s64)"]
37090#[inline]
37091#[target_feature(enable = "neon")]
37092#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37093#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.s64"))]
37094#[cfg_attr(
37095    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37096    assert_instr(sqadd)
37097)]
37098#[cfg_attr(
37099    not(target_arch = "arm"),
37100    stable(feature = "neon_intrinsics", since = "1.59.0")
37101)]
37102#[cfg_attr(
37103    target_arch = "arm",
37104    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37105)]
37106pub fn vqadd_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t {
37107    unsafe { simd_saturating_add(a, b) }
37108}
37109#[doc = "Saturating add"]
37110#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqaddq_s64)"]
37111#[inline]
37112#[target_feature(enable = "neon")]
37113#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37114#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.s64"))]
37115#[cfg_attr(
37116    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37117    assert_instr(sqadd)
37118)]
37119#[cfg_attr(
37120    not(target_arch = "arm"),
37121    stable(feature = "neon_intrinsics", since = "1.59.0")
37122)]
37123#[cfg_attr(
37124    target_arch = "arm",
37125    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37126)]
37127pub fn vqaddq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t {
37128    unsafe { simd_saturating_add(a, b) }
37129}
37130#[doc = "Saturating add"]
37131#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqadd_u8)"]
37132#[inline]
37133#[target_feature(enable = "neon")]
37134#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37135#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.u8"))]
37136#[cfg_attr(
37137    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37138    assert_instr(uqadd)
37139)]
37140#[cfg_attr(
37141    not(target_arch = "arm"),
37142    stable(feature = "neon_intrinsics", since = "1.59.0")
37143)]
37144#[cfg_attr(
37145    target_arch = "arm",
37146    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37147)]
37148pub fn vqadd_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
37149    unsafe { simd_saturating_add(a, b) }
37150}
37151#[doc = "Saturating add"]
37152#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqaddq_u8)"]
37153#[inline]
37154#[target_feature(enable = "neon")]
37155#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37156#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.u8"))]
37157#[cfg_attr(
37158    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37159    assert_instr(uqadd)
37160)]
37161#[cfg_attr(
37162    not(target_arch = "arm"),
37163    stable(feature = "neon_intrinsics", since = "1.59.0")
37164)]
37165#[cfg_attr(
37166    target_arch = "arm",
37167    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37168)]
37169pub fn vqaddq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
37170    unsafe { simd_saturating_add(a, b) }
37171}
37172#[doc = "Saturating add"]
37173#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqadd_u16)"]
37174#[inline]
37175#[target_feature(enable = "neon")]
37176#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37177#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.u16"))]
37178#[cfg_attr(
37179    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37180    assert_instr(uqadd)
37181)]
37182#[cfg_attr(
37183    not(target_arch = "arm"),
37184    stable(feature = "neon_intrinsics", since = "1.59.0")
37185)]
37186#[cfg_attr(
37187    target_arch = "arm",
37188    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37189)]
37190pub fn vqadd_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
37191    unsafe { simd_saturating_add(a, b) }
37192}
37193#[doc = "Saturating add"]
37194#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqaddq_u16)"]
37195#[inline]
37196#[target_feature(enable = "neon")]
37197#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37198#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.u16"))]
37199#[cfg_attr(
37200    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37201    assert_instr(uqadd)
37202)]
37203#[cfg_attr(
37204    not(target_arch = "arm"),
37205    stable(feature = "neon_intrinsics", since = "1.59.0")
37206)]
37207#[cfg_attr(
37208    target_arch = "arm",
37209    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37210)]
37211pub fn vqaddq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
37212    unsafe { simd_saturating_add(a, b) }
37213}
37214#[doc = "Saturating add"]
37215#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqadd_u32)"]
37216#[inline]
37217#[target_feature(enable = "neon")]
37218#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37219#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.u32"))]
37220#[cfg_attr(
37221    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37222    assert_instr(uqadd)
37223)]
37224#[cfg_attr(
37225    not(target_arch = "arm"),
37226    stable(feature = "neon_intrinsics", since = "1.59.0")
37227)]
37228#[cfg_attr(
37229    target_arch = "arm",
37230    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37231)]
37232pub fn vqadd_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
37233    unsafe { simd_saturating_add(a, b) }
37234}
37235#[doc = "Saturating add"]
37236#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqaddq_u32)"]
37237#[inline]
37238#[target_feature(enable = "neon")]
37239#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37240#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.u32"))]
37241#[cfg_attr(
37242    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37243    assert_instr(uqadd)
37244)]
37245#[cfg_attr(
37246    not(target_arch = "arm"),
37247    stable(feature = "neon_intrinsics", since = "1.59.0")
37248)]
37249#[cfg_attr(
37250    target_arch = "arm",
37251    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37252)]
37253pub fn vqaddq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
37254    unsafe { simd_saturating_add(a, b) }
37255}
37256#[doc = "Saturating add"]
37257#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqadd_u64)"]
37258#[inline]
37259#[target_feature(enable = "neon")]
37260#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37261#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.u64"))]
37262#[cfg_attr(
37263    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37264    assert_instr(uqadd)
37265)]
37266#[cfg_attr(
37267    not(target_arch = "arm"),
37268    stable(feature = "neon_intrinsics", since = "1.59.0")
37269)]
37270#[cfg_attr(
37271    target_arch = "arm",
37272    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37273)]
37274pub fn vqadd_u64(a: uint64x1_t, b: uint64x1_t) -> uint64x1_t {
37275    unsafe { simd_saturating_add(a, b) }
37276}
37277#[doc = "Saturating add"]
37278#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqaddq_u64)"]
37279#[inline]
37280#[target_feature(enable = "neon")]
37281#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37282#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.u64"))]
37283#[cfg_attr(
37284    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37285    assert_instr(uqadd)
37286)]
37287#[cfg_attr(
37288    not(target_arch = "arm"),
37289    stable(feature = "neon_intrinsics", since = "1.59.0")
37290)]
37291#[cfg_attr(
37292    target_arch = "arm",
37293    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37294)]
37295pub fn vqaddq_u64(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
37296    unsafe { simd_saturating_add(a, b) }
37297}
37298#[doc = "Vector widening saturating doubling multiply accumulate with scalar"]
37299#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlal_lane_s16)"]
37300#[inline]
37301#[target_feature(enable = "neon")]
37302#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37303#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmlal, N = 2))]
37304#[cfg_attr(
37305    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37306    assert_instr(sqdmlal, N = 2)
37307)]
37308#[rustc_legacy_const_generics(3)]
37309#[cfg_attr(
37310    not(target_arch = "arm"),
37311    stable(feature = "neon_intrinsics", since = "1.59.0")
37312)]
37313#[cfg_attr(
37314    target_arch = "arm",
37315    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37316)]
37317pub fn vqdmlal_lane_s16<const N: i32>(a: int32x4_t, b: int16x4_t, c: int16x4_t) -> int32x4_t {
37318    static_assert_uimm_bits!(N, 2);
37319    vqaddq_s32(a, vqdmull_lane_s16::<N>(b, c))
37320}
37321#[doc = "Vector widening saturating doubling multiply accumulate with scalar"]
37322#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlal_lane_s32)"]
37323#[inline]
37324#[target_feature(enable = "neon")]
37325#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37326#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmlal, N = 1))]
37327#[cfg_attr(
37328    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37329    assert_instr(sqdmlal, N = 1)
37330)]
37331#[rustc_legacy_const_generics(3)]
37332#[cfg_attr(
37333    not(target_arch = "arm"),
37334    stable(feature = "neon_intrinsics", since = "1.59.0")
37335)]
37336#[cfg_attr(
37337    target_arch = "arm",
37338    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37339)]
37340pub fn vqdmlal_lane_s32<const N: i32>(a: int64x2_t, b: int32x2_t, c: int32x2_t) -> int64x2_t {
37341    static_assert_uimm_bits!(N, 1);
37342    vqaddq_s64(a, vqdmull_lane_s32::<N>(b, c))
37343}
37344#[doc = "Vector widening saturating doubling multiply accumulate with scalar"]
37345#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlal_n_s16)"]
37346#[inline]
37347#[target_feature(enable = "neon")]
37348#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37349#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmlal))]
37350#[cfg_attr(
37351    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37352    assert_instr(sqdmlal)
37353)]
37354#[cfg_attr(
37355    not(target_arch = "arm"),
37356    stable(feature = "neon_intrinsics", since = "1.59.0")
37357)]
37358#[cfg_attr(
37359    target_arch = "arm",
37360    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37361)]
37362pub fn vqdmlal_n_s16(a: int32x4_t, b: int16x4_t, c: i16) -> int32x4_t {
37363    vqaddq_s32(a, vqdmull_n_s16(b, c))
37364}
37365#[doc = "Vector widening saturating doubling multiply accumulate with scalar"]
37366#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlal_n_s32)"]
37367#[inline]
37368#[target_feature(enable = "neon")]
37369#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37370#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmlal))]
37371#[cfg_attr(
37372    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37373    assert_instr(sqdmlal)
37374)]
37375#[cfg_attr(
37376    not(target_arch = "arm"),
37377    stable(feature = "neon_intrinsics", since = "1.59.0")
37378)]
37379#[cfg_attr(
37380    target_arch = "arm",
37381    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37382)]
37383pub fn vqdmlal_n_s32(a: int64x2_t, b: int32x2_t, c: i32) -> int64x2_t {
37384    vqaddq_s64(a, vqdmull_n_s32(b, c))
37385}
37386#[doc = "Signed saturating doubling multiply-add long"]
37387#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlal_s16)"]
37388#[inline]
37389#[target_feature(enable = "neon")]
37390#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37391#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmlal))]
37392#[cfg_attr(
37393    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37394    assert_instr(sqdmlal)
37395)]
37396#[cfg_attr(
37397    not(target_arch = "arm"),
37398    stable(feature = "neon_intrinsics", since = "1.59.0")
37399)]
37400#[cfg_attr(
37401    target_arch = "arm",
37402    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37403)]
37404pub fn vqdmlal_s16(a: int32x4_t, b: int16x4_t, c: int16x4_t) -> int32x4_t {
37405    vqaddq_s32(a, vqdmull_s16(b, c))
37406}
37407#[doc = "Signed saturating doubling multiply-add long"]
37408#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlal_s32)"]
37409#[inline]
37410#[target_feature(enable = "neon")]
37411#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37412#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmlal))]
37413#[cfg_attr(
37414    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37415    assert_instr(sqdmlal)
37416)]
37417#[cfg_attr(
37418    not(target_arch = "arm"),
37419    stable(feature = "neon_intrinsics", since = "1.59.0")
37420)]
37421#[cfg_attr(
37422    target_arch = "arm",
37423    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37424)]
37425pub fn vqdmlal_s32(a: int64x2_t, b: int32x2_t, c: int32x2_t) -> int64x2_t {
37426    vqaddq_s64(a, vqdmull_s32(b, c))
37427}
37428#[doc = "Vector widening saturating doubling multiply subtract with scalar"]
37429#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlsl_lane_s16)"]
37430#[inline]
37431#[target_feature(enable = "neon")]
37432#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37433#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmlsl, N = 2))]
37434#[cfg_attr(
37435    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37436    assert_instr(sqdmlsl, N = 2)
37437)]
37438#[rustc_legacy_const_generics(3)]
37439#[cfg_attr(
37440    not(target_arch = "arm"),
37441    stable(feature = "neon_intrinsics", since = "1.59.0")
37442)]
37443#[cfg_attr(
37444    target_arch = "arm",
37445    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37446)]
37447pub fn vqdmlsl_lane_s16<const N: i32>(a: int32x4_t, b: int16x4_t, c: int16x4_t) -> int32x4_t {
37448    static_assert_uimm_bits!(N, 2);
37449    vqsubq_s32(a, vqdmull_lane_s16::<N>(b, c))
37450}
37451#[doc = "Vector widening saturating doubling multiply subtract with scalar"]
37452#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlsl_lane_s32)"]
37453#[inline]
37454#[target_feature(enable = "neon")]
37455#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37456#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmlsl, N = 1))]
37457#[cfg_attr(
37458    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37459    assert_instr(sqdmlsl, N = 1)
37460)]
37461#[rustc_legacy_const_generics(3)]
37462#[cfg_attr(
37463    not(target_arch = "arm"),
37464    stable(feature = "neon_intrinsics", since = "1.59.0")
37465)]
37466#[cfg_attr(
37467    target_arch = "arm",
37468    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37469)]
37470pub fn vqdmlsl_lane_s32<const N: i32>(a: int64x2_t, b: int32x2_t, c: int32x2_t) -> int64x2_t {
37471    static_assert_uimm_bits!(N, 1);
37472    vqsubq_s64(a, vqdmull_lane_s32::<N>(b, c))
37473}
37474#[doc = "Vector widening saturating doubling multiply subtract with scalar"]
37475#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlsl_n_s16)"]
37476#[inline]
37477#[target_feature(enable = "neon")]
37478#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37479#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmlsl))]
37480#[cfg_attr(
37481    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37482    assert_instr(sqdmlsl)
37483)]
37484#[cfg_attr(
37485    not(target_arch = "arm"),
37486    stable(feature = "neon_intrinsics", since = "1.59.0")
37487)]
37488#[cfg_attr(
37489    target_arch = "arm",
37490    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37491)]
37492pub fn vqdmlsl_n_s16(a: int32x4_t, b: int16x4_t, c: i16) -> int32x4_t {
37493    vqsubq_s32(a, vqdmull_n_s16(b, c))
37494}
37495#[doc = "Vector widening saturating doubling multiply subtract with scalar"]
37496#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlsl_n_s32)"]
37497#[inline]
37498#[target_feature(enable = "neon")]
37499#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37500#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmlsl))]
37501#[cfg_attr(
37502    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37503    assert_instr(sqdmlsl)
37504)]
37505#[cfg_attr(
37506    not(target_arch = "arm"),
37507    stable(feature = "neon_intrinsics", since = "1.59.0")
37508)]
37509#[cfg_attr(
37510    target_arch = "arm",
37511    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37512)]
37513pub fn vqdmlsl_n_s32(a: int64x2_t, b: int32x2_t, c: i32) -> int64x2_t {
37514    vqsubq_s64(a, vqdmull_n_s32(b, c))
37515}
37516#[doc = "Signed saturating doubling multiply-subtract long"]
37517#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlsl_s16)"]
37518#[inline]
37519#[target_feature(enable = "neon")]
37520#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37521#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmlsl))]
37522#[cfg_attr(
37523    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37524    assert_instr(sqdmlsl)
37525)]
37526#[cfg_attr(
37527    not(target_arch = "arm"),
37528    stable(feature = "neon_intrinsics", since = "1.59.0")
37529)]
37530#[cfg_attr(
37531    target_arch = "arm",
37532    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37533)]
37534pub fn vqdmlsl_s16(a: int32x4_t, b: int16x4_t, c: int16x4_t) -> int32x4_t {
37535    vqsubq_s32(a, vqdmull_s16(b, c))
37536}
37537#[doc = "Signed saturating doubling multiply-subtract long"]
37538#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlsl_s32)"]
37539#[inline]
37540#[target_feature(enable = "neon")]
37541#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37542#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmlsl))]
37543#[cfg_attr(
37544    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37545    assert_instr(sqdmlsl)
37546)]
37547#[cfg_attr(
37548    not(target_arch = "arm"),
37549    stable(feature = "neon_intrinsics", since = "1.59.0")
37550)]
37551#[cfg_attr(
37552    target_arch = "arm",
37553    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37554)]
37555pub fn vqdmlsl_s32(a: int64x2_t, b: int32x2_t, c: int32x2_t) -> int64x2_t {
37556    vqsubq_s64(a, vqdmull_s32(b, c))
37557}
37558#[doc = "Vector saturating doubling multiply high by scalar"]
37559#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulh_laneq_s16)"]
37560#[inline]
37561#[target_feature(enable = "neon")]
37562#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37563#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmulh, LANE = 0))]
37564#[cfg_attr(
37565    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37566    assert_instr(sqdmulh, LANE = 0)
37567)]
37568#[rustc_legacy_const_generics(2)]
37569#[cfg_attr(
37570    not(target_arch = "arm"),
37571    stable(feature = "neon_intrinsics", since = "1.59.0")
37572)]
37573#[cfg_attr(
37574    target_arch = "arm",
37575    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37576)]
37577pub fn vqdmulh_laneq_s16<const LANE: i32>(a: int16x4_t, b: int16x8_t) -> int16x4_t {
37578    static_assert_uimm_bits!(LANE, 3);
37579    unsafe { vqdmulh_s16(a, vdup_n_s16(simd_extract!(b, LANE as u32))) }
37580}
37581#[doc = "Vector saturating doubling multiply high by scalar"]
37582#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulhq_laneq_s16)"]
37583#[inline]
37584#[target_feature(enable = "neon")]
37585#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37586#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmulh, LANE = 0))]
37587#[cfg_attr(
37588    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37589    assert_instr(sqdmulh, LANE = 0)
37590)]
37591#[rustc_legacy_const_generics(2)]
37592#[cfg_attr(
37593    not(target_arch = "arm"),
37594    stable(feature = "neon_intrinsics", since = "1.59.0")
37595)]
37596#[cfg_attr(
37597    target_arch = "arm",
37598    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37599)]
37600pub fn vqdmulhq_laneq_s16<const LANE: i32>(a: int16x8_t, b: int16x8_t) -> int16x8_t {
37601    static_assert_uimm_bits!(LANE, 3);
37602    unsafe { vqdmulhq_s16(a, vdupq_n_s16(simd_extract!(b, LANE as u32))) }
37603}
37604#[doc = "Vector saturating doubling multiply high by scalar"]
37605#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulh_laneq_s32)"]
37606#[inline]
37607#[target_feature(enable = "neon")]
37608#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37609#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmulh, LANE = 0))]
37610#[cfg_attr(
37611    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37612    assert_instr(sqdmulh, LANE = 0)
37613)]
37614#[rustc_legacy_const_generics(2)]
37615#[cfg_attr(
37616    not(target_arch = "arm"),
37617    stable(feature = "neon_intrinsics", since = "1.59.0")
37618)]
37619#[cfg_attr(
37620    target_arch = "arm",
37621    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37622)]
37623pub fn vqdmulh_laneq_s32<const LANE: i32>(a: int32x2_t, b: int32x4_t) -> int32x2_t {
37624    static_assert_uimm_bits!(LANE, 2);
37625    unsafe { vqdmulh_s32(a, vdup_n_s32(simd_extract!(b, LANE as u32))) }
37626}
37627#[doc = "Vector saturating doubling multiply high by scalar"]
37628#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulhq_laneq_s32)"]
37629#[inline]
37630#[target_feature(enable = "neon")]
37631#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37632#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmulh, LANE = 0))]
37633#[cfg_attr(
37634    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37635    assert_instr(sqdmulh, LANE = 0)
37636)]
37637#[rustc_legacy_const_generics(2)]
37638#[cfg_attr(
37639    not(target_arch = "arm"),
37640    stable(feature = "neon_intrinsics", since = "1.59.0")
37641)]
37642#[cfg_attr(
37643    target_arch = "arm",
37644    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37645)]
37646pub fn vqdmulhq_laneq_s32<const LANE: i32>(a: int32x4_t, b: int32x4_t) -> int32x4_t {
37647    static_assert_uimm_bits!(LANE, 2);
37648    unsafe { vqdmulhq_s32(a, vdupq_n_s32(simd_extract!(b, LANE as u32))) }
37649}
37650#[doc = "Vector saturating doubling multiply high with scalar"]
37651#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulh_n_s16)"]
37652#[inline]
37653#[target_feature(enable = "neon")]
37654#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37655#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmulh))]
37656#[cfg_attr(
37657    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37658    assert_instr(sqdmulh)
37659)]
37660#[cfg_attr(
37661    not(target_arch = "arm"),
37662    stable(feature = "neon_intrinsics", since = "1.59.0")
37663)]
37664#[cfg_attr(
37665    target_arch = "arm",
37666    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37667)]
37668pub fn vqdmulh_n_s16(a: int16x4_t, b: i16) -> int16x4_t {
37669    let b: int16x4_t = vdup_n_s16(b);
37670    vqdmulh_s16(a, b)
37671}
37672#[doc = "Vector saturating doubling multiply high with scalar"]
37673#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulhq_n_s16)"]
37674#[inline]
37675#[target_feature(enable = "neon")]
37676#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37677#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmulh))]
37678#[cfg_attr(
37679    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37680    assert_instr(sqdmulh)
37681)]
37682#[cfg_attr(
37683    not(target_arch = "arm"),
37684    stable(feature = "neon_intrinsics", since = "1.59.0")
37685)]
37686#[cfg_attr(
37687    target_arch = "arm",
37688    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37689)]
37690pub fn vqdmulhq_n_s16(a: int16x8_t, b: i16) -> int16x8_t {
37691    let b: int16x8_t = vdupq_n_s16(b);
37692    vqdmulhq_s16(a, b)
37693}
37694#[doc = "Vector saturating doubling multiply high with scalar"]
37695#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulh_n_s32)"]
37696#[inline]
37697#[target_feature(enable = "neon")]
37698#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37699#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmulh))]
37700#[cfg_attr(
37701    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37702    assert_instr(sqdmulh)
37703)]
37704#[cfg_attr(
37705    not(target_arch = "arm"),
37706    stable(feature = "neon_intrinsics", since = "1.59.0")
37707)]
37708#[cfg_attr(
37709    target_arch = "arm",
37710    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37711)]
37712pub fn vqdmulh_n_s32(a: int32x2_t, b: i32) -> int32x2_t {
37713    let b: int32x2_t = vdup_n_s32(b);
37714    vqdmulh_s32(a, b)
37715}
37716#[doc = "Vector saturating doubling multiply high with scalar"]
37717#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulhq_n_s32)"]
37718#[inline]
37719#[target_feature(enable = "neon")]
37720#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37721#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmulh))]
37722#[cfg_attr(
37723    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37724    assert_instr(sqdmulh)
37725)]
37726#[cfg_attr(
37727    not(target_arch = "arm"),
37728    stable(feature = "neon_intrinsics", since = "1.59.0")
37729)]
37730#[cfg_attr(
37731    target_arch = "arm",
37732    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37733)]
37734pub fn vqdmulhq_n_s32(a: int32x4_t, b: i32) -> int32x4_t {
37735    let b: int32x4_t = vdupq_n_s32(b);
37736    vqdmulhq_s32(a, b)
37737}
37738#[doc = "Signed saturating doubling multiply returning high half"]
37739#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulh_s16)"]
37740#[inline]
37741#[target_feature(enable = "neon")]
37742#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37743#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmulh))]
37744#[cfg_attr(
37745    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37746    assert_instr(sqdmulh)
37747)]
37748#[cfg_attr(
37749    not(target_arch = "arm"),
37750    stable(feature = "neon_intrinsics", since = "1.59.0")
37751)]
37752#[cfg_attr(
37753    target_arch = "arm",
37754    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37755)]
37756pub fn vqdmulh_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
37757    unsafe extern "unadjusted" {
37758        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqdmulh.v4i16")]
37759        #[cfg_attr(
37760            any(target_arch = "aarch64", target_arch = "arm64ec"),
37761            link_name = "llvm.aarch64.neon.sqdmulh.v4i16"
37762        )]
37763        fn _vqdmulh_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t;
37764    }
37765    unsafe { _vqdmulh_s16(a, b) }
37766}
37767#[doc = "Signed saturating doubling multiply returning high half"]
37768#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulhq_s16)"]
37769#[inline]
37770#[target_feature(enable = "neon")]
37771#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37772#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmulh))]
37773#[cfg_attr(
37774    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37775    assert_instr(sqdmulh)
37776)]
37777#[cfg_attr(
37778    not(target_arch = "arm"),
37779    stable(feature = "neon_intrinsics", since = "1.59.0")
37780)]
37781#[cfg_attr(
37782    target_arch = "arm",
37783    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37784)]
37785pub fn vqdmulhq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
37786    unsafe extern "unadjusted" {
37787        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqdmulh.v8i16")]
37788        #[cfg_attr(
37789            any(target_arch = "aarch64", target_arch = "arm64ec"),
37790            link_name = "llvm.aarch64.neon.sqdmulh.v8i16"
37791        )]
37792        fn _vqdmulhq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t;
37793    }
37794    unsafe { _vqdmulhq_s16(a, b) }
37795}
37796#[doc = "Signed saturating doubling multiply returning high half"]
37797#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulh_s32)"]
37798#[inline]
37799#[target_feature(enable = "neon")]
37800#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37801#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmulh))]
37802#[cfg_attr(
37803    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37804    assert_instr(sqdmulh)
37805)]
37806#[cfg_attr(
37807    not(target_arch = "arm"),
37808    stable(feature = "neon_intrinsics", since = "1.59.0")
37809)]
37810#[cfg_attr(
37811    target_arch = "arm",
37812    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37813)]
37814pub fn vqdmulh_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
37815    unsafe extern "unadjusted" {
37816        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqdmulh.v2i32")]
37817        #[cfg_attr(
37818            any(target_arch = "aarch64", target_arch = "arm64ec"),
37819            link_name = "llvm.aarch64.neon.sqdmulh.v2i32"
37820        )]
37821        fn _vqdmulh_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t;
37822    }
37823    unsafe { _vqdmulh_s32(a, b) }
37824}
37825#[doc = "Signed saturating doubling multiply returning high half"]
37826#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulhq_s32)"]
37827#[inline]
37828#[target_feature(enable = "neon")]
37829#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37830#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmulh))]
37831#[cfg_attr(
37832    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37833    assert_instr(sqdmulh)
37834)]
37835#[cfg_attr(
37836    not(target_arch = "arm"),
37837    stable(feature = "neon_intrinsics", since = "1.59.0")
37838)]
37839#[cfg_attr(
37840    target_arch = "arm",
37841    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37842)]
37843pub fn vqdmulhq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
37844    unsafe extern "unadjusted" {
37845        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqdmulh.v4i32")]
37846        #[cfg_attr(
37847            any(target_arch = "aarch64", target_arch = "arm64ec"),
37848            link_name = "llvm.aarch64.neon.sqdmulh.v4i32"
37849        )]
37850        fn _vqdmulhq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t;
37851    }
37852    unsafe { _vqdmulhq_s32(a, b) }
37853}
37854#[doc = "Vector saturating doubling long multiply by scalar"]
37855#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmull_lane_s16)"]
37856#[inline]
37857#[target_feature(enable = "neon")]
37858#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37859#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmull, N = 2))]
37860#[cfg_attr(
37861    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37862    assert_instr(sqdmull, N = 2)
37863)]
37864#[rustc_legacy_const_generics(2)]
37865#[cfg_attr(
37866    not(target_arch = "arm"),
37867    stable(feature = "neon_intrinsics", since = "1.59.0")
37868)]
37869#[cfg_attr(
37870    target_arch = "arm",
37871    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37872)]
37873pub fn vqdmull_lane_s16<const N: i32>(a: int16x4_t, b: int16x4_t) -> int32x4_t {
37874    static_assert_uimm_bits!(N, 2);
37875    unsafe {
37876        let b: int16x4_t = simd_shuffle!(b, b, [N as u32, N as u32, N as u32, N as u32]);
37877        vqdmull_s16(a, b)
37878    }
37879}
37880#[doc = "Vector saturating doubling long multiply by scalar"]
37881#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmull_lane_s32)"]
37882#[inline]
37883#[target_feature(enable = "neon")]
37884#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37885#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmull, N = 1))]
37886#[cfg_attr(
37887    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37888    assert_instr(sqdmull, N = 1)
37889)]
37890#[rustc_legacy_const_generics(2)]
37891#[cfg_attr(
37892    not(target_arch = "arm"),
37893    stable(feature = "neon_intrinsics", since = "1.59.0")
37894)]
37895#[cfg_attr(
37896    target_arch = "arm",
37897    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37898)]
37899pub fn vqdmull_lane_s32<const N: i32>(a: int32x2_t, b: int32x2_t) -> int64x2_t {
37900    static_assert_uimm_bits!(N, 1);
37901    unsafe {
37902        let b: int32x2_t = simd_shuffle!(b, b, [N as u32, N as u32]);
37903        vqdmull_s32(a, b)
37904    }
37905}
37906#[doc = "Vector saturating doubling long multiply with scalar"]
37907#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmull_n_s16)"]
37908#[inline]
37909#[target_feature(enable = "neon")]
37910#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37911#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmull))]
37912#[cfg_attr(
37913    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37914    assert_instr(sqdmull)
37915)]
37916#[cfg_attr(
37917    not(target_arch = "arm"),
37918    stable(feature = "neon_intrinsics", since = "1.59.0")
37919)]
37920#[cfg_attr(
37921    target_arch = "arm",
37922    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37923)]
37924pub fn vqdmull_n_s16(a: int16x4_t, b: i16) -> int32x4_t {
37925    vqdmull_s16(a, vdup_n_s16(b))
37926}
37927#[doc = "Vector saturating doubling long multiply with scalar"]
37928#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmull_n_s32)"]
37929#[inline]
37930#[target_feature(enable = "neon")]
37931#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37932#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmull))]
37933#[cfg_attr(
37934    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37935    assert_instr(sqdmull)
37936)]
37937#[cfg_attr(
37938    not(target_arch = "arm"),
37939    stable(feature = "neon_intrinsics", since = "1.59.0")
37940)]
37941#[cfg_attr(
37942    target_arch = "arm",
37943    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37944)]
37945pub fn vqdmull_n_s32(a: int32x2_t, b: i32) -> int64x2_t {
37946    vqdmull_s32(a, vdup_n_s32(b))
37947}
37948#[doc = "Signed saturating doubling multiply long"]
37949#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmull_s16)"]
37950#[inline]
37951#[target_feature(enable = "neon")]
37952#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37953#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmull))]
37954#[cfg_attr(
37955    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37956    assert_instr(sqdmull)
37957)]
37958#[cfg_attr(
37959    not(target_arch = "arm"),
37960    stable(feature = "neon_intrinsics", since = "1.59.0")
37961)]
37962#[cfg_attr(
37963    target_arch = "arm",
37964    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37965)]
37966pub fn vqdmull_s16(a: int16x4_t, b: int16x4_t) -> int32x4_t {
37967    unsafe extern "unadjusted" {
37968        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqdmull.v4i32")]
37969        #[cfg_attr(
37970            any(target_arch = "aarch64", target_arch = "arm64ec"),
37971            link_name = "llvm.aarch64.neon.sqdmull.v4i32"
37972        )]
37973        fn _vqdmull_s16(a: int16x4_t, b: int16x4_t) -> int32x4_t;
37974    }
37975    unsafe { _vqdmull_s16(a, b) }
37976}
37977#[doc = "Signed saturating doubling multiply long"]
37978#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmull_s32)"]
37979#[inline]
37980#[target_feature(enable = "neon")]
37981#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37982#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmull))]
37983#[cfg_attr(
37984    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37985    assert_instr(sqdmull)
37986)]
37987#[cfg_attr(
37988    not(target_arch = "arm"),
37989    stable(feature = "neon_intrinsics", since = "1.59.0")
37990)]
37991#[cfg_attr(
37992    target_arch = "arm",
37993    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37994)]
37995pub fn vqdmull_s32(a: int32x2_t, b: int32x2_t) -> int64x2_t {
37996    unsafe extern "unadjusted" {
37997        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqdmull.v2i64")]
37998        #[cfg_attr(
37999            any(target_arch = "aarch64", target_arch = "arm64ec"),
38000            link_name = "llvm.aarch64.neon.sqdmull.v2i64"
38001        )]
38002        fn _vqdmull_s32(a: int32x2_t, b: int32x2_t) -> int64x2_t;
38003    }
38004    unsafe { _vqdmull_s32(a, b) }
38005}
38006#[doc = "Signed saturating extract narrow"]
38007#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqmovn_s16)"]
38008#[inline]
38009#[target_feature(enable = "neon")]
38010#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38011#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqmovn))]
38012#[cfg_attr(
38013    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38014    assert_instr(sqxtn)
38015)]
38016#[cfg_attr(
38017    not(target_arch = "arm"),
38018    stable(feature = "neon_intrinsics", since = "1.59.0")
38019)]
38020#[cfg_attr(
38021    target_arch = "arm",
38022    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38023)]
38024pub fn vqmovn_s16(a: int16x8_t) -> int8x8_t {
38025    unsafe extern "unadjusted" {
38026        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqmovns.v8i8")]
38027        #[cfg_attr(
38028            any(target_arch = "aarch64", target_arch = "arm64ec"),
38029            link_name = "llvm.aarch64.neon.sqxtn.v8i8"
38030        )]
38031        fn _vqmovn_s16(a: int16x8_t) -> int8x8_t;
38032    }
38033    unsafe { _vqmovn_s16(a) }
38034}
38035#[doc = "Signed saturating extract narrow"]
38036#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqmovn_s32)"]
38037#[inline]
38038#[target_feature(enable = "neon")]
38039#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38040#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqmovn))]
38041#[cfg_attr(
38042    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38043    assert_instr(sqxtn)
38044)]
38045#[cfg_attr(
38046    not(target_arch = "arm"),
38047    stable(feature = "neon_intrinsics", since = "1.59.0")
38048)]
38049#[cfg_attr(
38050    target_arch = "arm",
38051    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38052)]
38053pub fn vqmovn_s32(a: int32x4_t) -> int16x4_t {
38054    unsafe extern "unadjusted" {
38055        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqmovns.v4i16")]
38056        #[cfg_attr(
38057            any(target_arch = "aarch64", target_arch = "arm64ec"),
38058            link_name = "llvm.aarch64.neon.sqxtn.v4i16"
38059        )]
38060        fn _vqmovn_s32(a: int32x4_t) -> int16x4_t;
38061    }
38062    unsafe { _vqmovn_s32(a) }
38063}
38064#[doc = "Signed saturating extract narrow"]
38065#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqmovn_s64)"]
38066#[inline]
38067#[target_feature(enable = "neon")]
38068#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38069#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqmovn))]
38070#[cfg_attr(
38071    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38072    assert_instr(sqxtn)
38073)]
38074#[cfg_attr(
38075    not(target_arch = "arm"),
38076    stable(feature = "neon_intrinsics", since = "1.59.0")
38077)]
38078#[cfg_attr(
38079    target_arch = "arm",
38080    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38081)]
38082pub fn vqmovn_s64(a: int64x2_t) -> int32x2_t {
38083    unsafe extern "unadjusted" {
38084        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqmovns.v2i32")]
38085        #[cfg_attr(
38086            any(target_arch = "aarch64", target_arch = "arm64ec"),
38087            link_name = "llvm.aarch64.neon.sqxtn.v2i32"
38088        )]
38089        fn _vqmovn_s64(a: int64x2_t) -> int32x2_t;
38090    }
38091    unsafe { _vqmovn_s64(a) }
38092}
38093#[doc = "Unsigned saturating extract narrow"]
38094#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqmovn_u16)"]
38095#[inline]
38096#[target_feature(enable = "neon")]
38097#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38098#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqmovn))]
38099#[cfg_attr(
38100    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38101    assert_instr(uqxtn)
38102)]
38103#[cfg_attr(
38104    not(target_arch = "arm"),
38105    stable(feature = "neon_intrinsics", since = "1.59.0")
38106)]
38107#[cfg_attr(
38108    target_arch = "arm",
38109    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38110)]
38111pub fn vqmovn_u16(a: uint16x8_t) -> uint8x8_t {
38112    unsafe extern "unadjusted" {
38113        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqmovnu.v8i8")]
38114        #[cfg_attr(
38115            any(target_arch = "aarch64", target_arch = "arm64ec"),
38116            link_name = "llvm.aarch64.neon.uqxtn.v8i8"
38117        )]
38118        fn _vqmovn_u16(a: uint16x8_t) -> uint8x8_t;
38119    }
38120    unsafe { _vqmovn_u16(a) }
38121}
38122#[doc = "Unsigned saturating extract narrow"]
38123#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqmovn_u32)"]
38124#[inline]
38125#[target_feature(enable = "neon")]
38126#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38127#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqmovn))]
38128#[cfg_attr(
38129    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38130    assert_instr(uqxtn)
38131)]
38132#[cfg_attr(
38133    not(target_arch = "arm"),
38134    stable(feature = "neon_intrinsics", since = "1.59.0")
38135)]
38136#[cfg_attr(
38137    target_arch = "arm",
38138    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38139)]
38140pub fn vqmovn_u32(a: uint32x4_t) -> uint16x4_t {
38141    unsafe extern "unadjusted" {
38142        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqmovnu.v4i16")]
38143        #[cfg_attr(
38144            any(target_arch = "aarch64", target_arch = "arm64ec"),
38145            link_name = "llvm.aarch64.neon.uqxtn.v4i16"
38146        )]
38147        fn _vqmovn_u32(a: uint32x4_t) -> uint16x4_t;
38148    }
38149    unsafe { _vqmovn_u32(a) }
38150}
38151#[doc = "Unsigned saturating extract narrow"]
38152#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqmovn_u64)"]
38153#[inline]
38154#[target_feature(enable = "neon")]
38155#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38156#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqmovn))]
38157#[cfg_attr(
38158    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38159    assert_instr(uqxtn)
38160)]
38161#[cfg_attr(
38162    not(target_arch = "arm"),
38163    stable(feature = "neon_intrinsics", since = "1.59.0")
38164)]
38165#[cfg_attr(
38166    target_arch = "arm",
38167    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38168)]
38169pub fn vqmovn_u64(a: uint64x2_t) -> uint32x2_t {
38170    unsafe extern "unadjusted" {
38171        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqmovnu.v2i32")]
38172        #[cfg_attr(
38173            any(target_arch = "aarch64", target_arch = "arm64ec"),
38174            link_name = "llvm.aarch64.neon.uqxtn.v2i32"
38175        )]
38176        fn _vqmovn_u64(a: uint64x2_t) -> uint32x2_t;
38177    }
38178    unsafe { _vqmovn_u64(a) }
38179}
38180#[doc = "Signed saturating extract unsigned narrow"]
38181#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqmovun_s16)"]
38182#[inline]
38183#[target_feature(enable = "neon")]
38184#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38185#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqmovun))]
38186#[cfg_attr(
38187    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38188    assert_instr(sqxtun)
38189)]
38190#[cfg_attr(
38191    not(target_arch = "arm"),
38192    stable(feature = "neon_intrinsics", since = "1.59.0")
38193)]
38194#[cfg_attr(
38195    target_arch = "arm",
38196    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38197)]
38198pub fn vqmovun_s16(a: int16x8_t) -> uint8x8_t {
38199    unsafe extern "unadjusted" {
38200        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqmovnsu.v8i8")]
38201        #[cfg_attr(
38202            any(target_arch = "aarch64", target_arch = "arm64ec"),
38203            link_name = "llvm.aarch64.neon.sqxtun.v8i8"
38204        )]
38205        fn _vqmovun_s16(a: int16x8_t) -> uint8x8_t;
38206    }
38207    unsafe { _vqmovun_s16(a) }
38208}
38209#[doc = "Signed saturating extract unsigned narrow"]
38210#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqmovun_s32)"]
38211#[inline]
38212#[target_feature(enable = "neon")]
38213#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38214#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqmovun))]
38215#[cfg_attr(
38216    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38217    assert_instr(sqxtun)
38218)]
38219#[cfg_attr(
38220    not(target_arch = "arm"),
38221    stable(feature = "neon_intrinsics", since = "1.59.0")
38222)]
38223#[cfg_attr(
38224    target_arch = "arm",
38225    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38226)]
38227pub fn vqmovun_s32(a: int32x4_t) -> uint16x4_t {
38228    unsafe extern "unadjusted" {
38229        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqmovnsu.v4i16")]
38230        #[cfg_attr(
38231            any(target_arch = "aarch64", target_arch = "arm64ec"),
38232            link_name = "llvm.aarch64.neon.sqxtun.v4i16"
38233        )]
38234        fn _vqmovun_s32(a: int32x4_t) -> uint16x4_t;
38235    }
38236    unsafe { _vqmovun_s32(a) }
38237}
38238#[doc = "Signed saturating extract unsigned narrow"]
38239#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqmovun_s64)"]
38240#[inline]
38241#[target_feature(enable = "neon")]
38242#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38243#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqmovun))]
38244#[cfg_attr(
38245    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38246    assert_instr(sqxtun)
38247)]
38248#[cfg_attr(
38249    not(target_arch = "arm"),
38250    stable(feature = "neon_intrinsics", since = "1.59.0")
38251)]
38252#[cfg_attr(
38253    target_arch = "arm",
38254    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38255)]
38256pub fn vqmovun_s64(a: int64x2_t) -> uint32x2_t {
38257    unsafe extern "unadjusted" {
38258        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqmovnsu.v2i32")]
38259        #[cfg_attr(
38260            any(target_arch = "aarch64", target_arch = "arm64ec"),
38261            link_name = "llvm.aarch64.neon.sqxtun.v2i32"
38262        )]
38263        fn _vqmovun_s64(a: int64x2_t) -> uint32x2_t;
38264    }
38265    unsafe { _vqmovun_s64(a) }
38266}
38267#[doc = "Signed saturating negate"]
38268#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqneg_s8)"]
38269#[inline]
38270#[target_feature(enable = "neon")]
38271#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38272#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqneg.s8"))]
38273#[cfg_attr(
38274    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38275    assert_instr(sqneg)
38276)]
38277#[cfg_attr(
38278    not(target_arch = "arm"),
38279    stable(feature = "neon_intrinsics", since = "1.59.0")
38280)]
38281#[cfg_attr(
38282    target_arch = "arm",
38283    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38284)]
38285pub fn vqneg_s8(a: int8x8_t) -> int8x8_t {
38286    unsafe extern "unadjusted" {
38287        #[cfg_attr(
38288            any(target_arch = "aarch64", target_arch = "arm64ec"),
38289            link_name = "llvm.aarch64.neon.sqneg.v8i8"
38290        )]
38291        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqneg.v8i8")]
38292        fn _vqneg_s8(a: int8x8_t) -> int8x8_t;
38293    }
38294    unsafe { _vqneg_s8(a) }
38295}
38296#[doc = "Signed saturating negate"]
38297#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqnegq_s8)"]
38298#[inline]
38299#[target_feature(enable = "neon")]
38300#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38301#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqneg.s8"))]
38302#[cfg_attr(
38303    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38304    assert_instr(sqneg)
38305)]
38306#[cfg_attr(
38307    not(target_arch = "arm"),
38308    stable(feature = "neon_intrinsics", since = "1.59.0")
38309)]
38310#[cfg_attr(
38311    target_arch = "arm",
38312    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38313)]
38314pub fn vqnegq_s8(a: int8x16_t) -> int8x16_t {
38315    unsafe extern "unadjusted" {
38316        #[cfg_attr(
38317            any(target_arch = "aarch64", target_arch = "arm64ec"),
38318            link_name = "llvm.aarch64.neon.sqneg.v16i8"
38319        )]
38320        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqneg.v16i8")]
38321        fn _vqnegq_s8(a: int8x16_t) -> int8x16_t;
38322    }
38323    unsafe { _vqnegq_s8(a) }
38324}
38325#[doc = "Signed saturating negate"]
38326#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqneg_s16)"]
38327#[inline]
38328#[target_feature(enable = "neon")]
38329#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38330#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqneg.s16"))]
38331#[cfg_attr(
38332    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38333    assert_instr(sqneg)
38334)]
38335#[cfg_attr(
38336    not(target_arch = "arm"),
38337    stable(feature = "neon_intrinsics", since = "1.59.0")
38338)]
38339#[cfg_attr(
38340    target_arch = "arm",
38341    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38342)]
38343pub fn vqneg_s16(a: int16x4_t) -> int16x4_t {
38344    unsafe extern "unadjusted" {
38345        #[cfg_attr(
38346            any(target_arch = "aarch64", target_arch = "arm64ec"),
38347            link_name = "llvm.aarch64.neon.sqneg.v4i16"
38348        )]
38349        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqneg.v4i16")]
38350        fn _vqneg_s16(a: int16x4_t) -> int16x4_t;
38351    }
38352    unsafe { _vqneg_s16(a) }
38353}
38354#[doc = "Signed saturating negate"]
38355#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqnegq_s16)"]
38356#[inline]
38357#[target_feature(enable = "neon")]
38358#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38359#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqneg.s16"))]
38360#[cfg_attr(
38361    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38362    assert_instr(sqneg)
38363)]
38364#[cfg_attr(
38365    not(target_arch = "arm"),
38366    stable(feature = "neon_intrinsics", since = "1.59.0")
38367)]
38368#[cfg_attr(
38369    target_arch = "arm",
38370    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38371)]
38372pub fn vqnegq_s16(a: int16x8_t) -> int16x8_t {
38373    unsafe extern "unadjusted" {
38374        #[cfg_attr(
38375            any(target_arch = "aarch64", target_arch = "arm64ec"),
38376            link_name = "llvm.aarch64.neon.sqneg.v8i16"
38377        )]
38378        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqneg.v8i16")]
38379        fn _vqnegq_s16(a: int16x8_t) -> int16x8_t;
38380    }
38381    unsafe { _vqnegq_s16(a) }
38382}
38383#[doc = "Signed saturating negate"]
38384#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqneg_s32)"]
38385#[inline]
38386#[target_feature(enable = "neon")]
38387#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38388#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqneg.s32"))]
38389#[cfg_attr(
38390    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38391    assert_instr(sqneg)
38392)]
38393#[cfg_attr(
38394    not(target_arch = "arm"),
38395    stable(feature = "neon_intrinsics", since = "1.59.0")
38396)]
38397#[cfg_attr(
38398    target_arch = "arm",
38399    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38400)]
38401pub fn vqneg_s32(a: int32x2_t) -> int32x2_t {
38402    unsafe extern "unadjusted" {
38403        #[cfg_attr(
38404            any(target_arch = "aarch64", target_arch = "arm64ec"),
38405            link_name = "llvm.aarch64.neon.sqneg.v2i32"
38406        )]
38407        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqneg.v2i32")]
38408        fn _vqneg_s32(a: int32x2_t) -> int32x2_t;
38409    }
38410    unsafe { _vqneg_s32(a) }
38411}
38412#[doc = "Signed saturating negate"]
38413#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqnegq_s32)"]
38414#[inline]
38415#[target_feature(enable = "neon")]
38416#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38417#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqneg.s32"))]
38418#[cfg_attr(
38419    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38420    assert_instr(sqneg)
38421)]
38422#[cfg_attr(
38423    not(target_arch = "arm"),
38424    stable(feature = "neon_intrinsics", since = "1.59.0")
38425)]
38426#[cfg_attr(
38427    target_arch = "arm",
38428    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38429)]
38430pub fn vqnegq_s32(a: int32x4_t) -> int32x4_t {
38431    unsafe extern "unadjusted" {
38432        #[cfg_attr(
38433            any(target_arch = "aarch64", target_arch = "arm64ec"),
38434            link_name = "llvm.aarch64.neon.sqneg.v4i32"
38435        )]
38436        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqneg.v4i32")]
38437        fn _vqnegq_s32(a: int32x4_t) -> int32x4_t;
38438    }
38439    unsafe { _vqnegq_s32(a) }
38440}
38441#[doc = "Vector rounding saturating doubling multiply high by scalar"]
38442#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulh_lane_s16)"]
38443#[inline]
38444#[target_feature(enable = "neon")]
38445#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38446#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh, LANE = 1))]
38447#[cfg_attr(
38448    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38449    assert_instr(sqrdmulh, LANE = 1)
38450)]
38451#[rustc_legacy_const_generics(2)]
38452#[cfg_attr(
38453    not(target_arch = "arm"),
38454    stable(feature = "neon_intrinsics", since = "1.59.0")
38455)]
38456#[cfg_attr(
38457    target_arch = "arm",
38458    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38459)]
38460pub fn vqrdmulh_lane_s16<const LANE: i32>(a: int16x4_t, b: int16x4_t) -> int16x4_t {
38461    static_assert_uimm_bits!(LANE, 2);
38462    unsafe {
38463        let b: int16x4_t =
38464            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]);
38465        vqrdmulh_s16(a, b)
38466    }
38467}
38468#[doc = "Vector rounding saturating doubling multiply high by scalar"]
38469#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulh_lane_s32)"]
38470#[inline]
38471#[target_feature(enable = "neon")]
38472#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38473#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh, LANE = 1))]
38474#[cfg_attr(
38475    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38476    assert_instr(sqrdmulh, LANE = 1)
38477)]
38478#[rustc_legacy_const_generics(2)]
38479#[cfg_attr(
38480    not(target_arch = "arm"),
38481    stable(feature = "neon_intrinsics", since = "1.59.0")
38482)]
38483#[cfg_attr(
38484    target_arch = "arm",
38485    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38486)]
38487pub fn vqrdmulh_lane_s32<const LANE: i32>(a: int32x2_t, b: int32x2_t) -> int32x2_t {
38488    static_assert_uimm_bits!(LANE, 1);
38489    unsafe {
38490        let b: int32x2_t = simd_shuffle!(b, b, [LANE as u32, LANE as u32]);
38491        vqrdmulh_s32(a, b)
38492    }
38493}
38494#[doc = "Vector rounding saturating doubling multiply high by scalar"]
38495#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulh_laneq_s16)"]
38496#[inline]
38497#[target_feature(enable = "neon")]
38498#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38499#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh, LANE = 1))]
38500#[cfg_attr(
38501    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38502    assert_instr(sqrdmulh, LANE = 1)
38503)]
38504#[rustc_legacy_const_generics(2)]
38505#[cfg_attr(
38506    not(target_arch = "arm"),
38507    stable(feature = "neon_intrinsics", since = "1.59.0")
38508)]
38509#[cfg_attr(
38510    target_arch = "arm",
38511    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38512)]
38513pub fn vqrdmulh_laneq_s16<const LANE: i32>(a: int16x4_t, b: int16x8_t) -> int16x4_t {
38514    static_assert_uimm_bits!(LANE, 3);
38515    unsafe {
38516        let b: int16x4_t =
38517            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]);
38518        vqrdmulh_s16(a, b)
38519    }
38520}
38521#[doc = "Vector rounding saturating doubling multiply high by scalar"]
38522#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulh_laneq_s32)"]
38523#[inline]
38524#[target_feature(enable = "neon")]
38525#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38526#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh, LANE = 1))]
38527#[cfg_attr(
38528    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38529    assert_instr(sqrdmulh, LANE = 1)
38530)]
38531#[rustc_legacy_const_generics(2)]
38532#[cfg_attr(
38533    not(target_arch = "arm"),
38534    stable(feature = "neon_intrinsics", since = "1.59.0")
38535)]
38536#[cfg_attr(
38537    target_arch = "arm",
38538    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38539)]
38540pub fn vqrdmulh_laneq_s32<const LANE: i32>(a: int32x2_t, b: int32x4_t) -> int32x2_t {
38541    static_assert_uimm_bits!(LANE, 2);
38542    unsafe {
38543        let b: int32x2_t = simd_shuffle!(b, b, [LANE as u32, LANE as u32]);
38544        vqrdmulh_s32(a, b)
38545    }
38546}
38547#[doc = "Vector rounding saturating doubling multiply high by scalar"]
38548#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulhq_lane_s16)"]
38549#[inline]
38550#[target_feature(enable = "neon")]
38551#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38552#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh, LANE = 1))]
38553#[cfg_attr(
38554    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38555    assert_instr(sqrdmulh, LANE = 1)
38556)]
38557#[rustc_legacy_const_generics(2)]
38558#[cfg_attr(
38559    not(target_arch = "arm"),
38560    stable(feature = "neon_intrinsics", since = "1.59.0")
38561)]
38562#[cfg_attr(
38563    target_arch = "arm",
38564    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38565)]
38566pub fn vqrdmulhq_lane_s16<const LANE: i32>(a: int16x8_t, b: int16x4_t) -> int16x8_t {
38567    static_assert_uimm_bits!(LANE, 2);
38568    unsafe {
38569        let b: int16x8_t = simd_shuffle!(
38570            b,
38571            b,
38572            [
38573                LANE as u32,
38574                LANE as u32,
38575                LANE as u32,
38576                LANE as u32,
38577                LANE as u32,
38578                LANE as u32,
38579                LANE as u32,
38580                LANE as u32
38581            ]
38582        );
38583        vqrdmulhq_s16(a, b)
38584    }
38585}
38586#[doc = "Vector rounding saturating doubling multiply high by scalar"]
38587#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulhq_lane_s32)"]
38588#[inline]
38589#[target_feature(enable = "neon")]
38590#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38591#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh, LANE = 1))]
38592#[cfg_attr(
38593    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38594    assert_instr(sqrdmulh, LANE = 1)
38595)]
38596#[rustc_legacy_const_generics(2)]
38597#[cfg_attr(
38598    not(target_arch = "arm"),
38599    stable(feature = "neon_intrinsics", since = "1.59.0")
38600)]
38601#[cfg_attr(
38602    target_arch = "arm",
38603    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38604)]
38605pub fn vqrdmulhq_lane_s32<const LANE: i32>(a: int32x4_t, b: int32x2_t) -> int32x4_t {
38606    static_assert_uimm_bits!(LANE, 1);
38607    unsafe {
38608        let b: int32x4_t =
38609            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]);
38610        vqrdmulhq_s32(a, b)
38611    }
38612}
38613#[doc = "Vector rounding saturating doubling multiply high by scalar"]
38614#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulhq_laneq_s16)"]
38615#[inline]
38616#[target_feature(enable = "neon")]
38617#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38618#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh, LANE = 1))]
38619#[cfg_attr(
38620    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38621    assert_instr(sqrdmulh, LANE = 1)
38622)]
38623#[rustc_legacy_const_generics(2)]
38624#[cfg_attr(
38625    not(target_arch = "arm"),
38626    stable(feature = "neon_intrinsics", since = "1.59.0")
38627)]
38628#[cfg_attr(
38629    target_arch = "arm",
38630    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38631)]
38632pub fn vqrdmulhq_laneq_s16<const LANE: i32>(a: int16x8_t, b: int16x8_t) -> int16x8_t {
38633    static_assert_uimm_bits!(LANE, 3);
38634    unsafe {
38635        let b: int16x8_t = simd_shuffle!(
38636            b,
38637            b,
38638            [
38639                LANE as u32,
38640                LANE as u32,
38641                LANE as u32,
38642                LANE as u32,
38643                LANE as u32,
38644                LANE as u32,
38645                LANE as u32,
38646                LANE as u32
38647            ]
38648        );
38649        vqrdmulhq_s16(a, b)
38650    }
38651}
38652#[doc = "Vector rounding saturating doubling multiply high by scalar"]
38653#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulhq_laneq_s32)"]
38654#[inline]
38655#[target_feature(enable = "neon")]
38656#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38657#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh, LANE = 1))]
38658#[cfg_attr(
38659    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38660    assert_instr(sqrdmulh, LANE = 1)
38661)]
38662#[rustc_legacy_const_generics(2)]
38663#[cfg_attr(
38664    not(target_arch = "arm"),
38665    stable(feature = "neon_intrinsics", since = "1.59.0")
38666)]
38667#[cfg_attr(
38668    target_arch = "arm",
38669    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38670)]
38671pub fn vqrdmulhq_laneq_s32<const LANE: i32>(a: int32x4_t, b: int32x4_t) -> int32x4_t {
38672    static_assert_uimm_bits!(LANE, 2);
38673    unsafe {
38674        let b: int32x4_t =
38675            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]);
38676        vqrdmulhq_s32(a, b)
38677    }
38678}
38679#[doc = "Vector saturating rounding doubling multiply high with scalar"]
38680#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulh_n_s16)"]
38681#[inline]
38682#[target_feature(enable = "neon")]
38683#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38684#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh))]
38685#[cfg_attr(
38686    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38687    assert_instr(sqrdmulh)
38688)]
38689#[cfg_attr(
38690    not(target_arch = "arm"),
38691    stable(feature = "neon_intrinsics", since = "1.59.0")
38692)]
38693#[cfg_attr(
38694    target_arch = "arm",
38695    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38696)]
38697pub fn vqrdmulh_n_s16(a: int16x4_t, b: i16) -> int16x4_t {
38698    vqrdmulh_s16(a, vdup_n_s16(b))
38699}
38700#[doc = "Vector saturating rounding doubling multiply high with scalar"]
38701#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulhq_n_s16)"]
38702#[inline]
38703#[target_feature(enable = "neon")]
38704#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38705#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh))]
38706#[cfg_attr(
38707    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38708    assert_instr(sqrdmulh)
38709)]
38710#[cfg_attr(
38711    not(target_arch = "arm"),
38712    stable(feature = "neon_intrinsics", since = "1.59.0")
38713)]
38714#[cfg_attr(
38715    target_arch = "arm",
38716    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38717)]
38718pub fn vqrdmulhq_n_s16(a: int16x8_t, b: i16) -> int16x8_t {
38719    vqrdmulhq_s16(a, vdupq_n_s16(b))
38720}
38721#[doc = "Vector saturating rounding doubling multiply high with scalar"]
38722#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulh_n_s32)"]
38723#[inline]
38724#[target_feature(enable = "neon")]
38725#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38726#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh))]
38727#[cfg_attr(
38728    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38729    assert_instr(sqrdmulh)
38730)]
38731#[cfg_attr(
38732    not(target_arch = "arm"),
38733    stable(feature = "neon_intrinsics", since = "1.59.0")
38734)]
38735#[cfg_attr(
38736    target_arch = "arm",
38737    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38738)]
38739pub fn vqrdmulh_n_s32(a: int32x2_t, b: i32) -> int32x2_t {
38740    vqrdmulh_s32(a, vdup_n_s32(b))
38741}
38742#[doc = "Vector saturating rounding doubling multiply high with scalar"]
38743#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulhq_n_s32)"]
38744#[inline]
38745#[target_feature(enable = "neon")]
38746#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38747#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh))]
38748#[cfg_attr(
38749    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38750    assert_instr(sqrdmulh)
38751)]
38752#[cfg_attr(
38753    not(target_arch = "arm"),
38754    stable(feature = "neon_intrinsics", since = "1.59.0")
38755)]
38756#[cfg_attr(
38757    target_arch = "arm",
38758    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38759)]
38760pub fn vqrdmulhq_n_s32(a: int32x4_t, b: i32) -> int32x4_t {
38761    vqrdmulhq_s32(a, vdupq_n_s32(b))
38762}
38763#[doc = "Signed saturating rounding doubling multiply returning high half"]
38764#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulh_s16)"]
38765#[inline]
38766#[target_feature(enable = "neon")]
38767#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38768#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh))]
38769#[cfg_attr(
38770    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38771    assert_instr(sqrdmulh)
38772)]
38773#[cfg_attr(
38774    not(target_arch = "arm"),
38775    stable(feature = "neon_intrinsics", since = "1.59.0")
38776)]
38777#[cfg_attr(
38778    target_arch = "arm",
38779    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38780)]
38781pub fn vqrdmulh_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
38782    unsafe extern "unadjusted" {
38783        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrdmulh.v4i16")]
38784        #[cfg_attr(
38785            any(target_arch = "aarch64", target_arch = "arm64ec"),
38786            link_name = "llvm.aarch64.neon.sqrdmulh.v4i16"
38787        )]
38788        fn _vqrdmulh_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t;
38789    }
38790    unsafe { _vqrdmulh_s16(a, b) }
38791}
38792#[doc = "Signed saturating rounding doubling multiply returning high half"]
38793#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulhq_s16)"]
38794#[inline]
38795#[target_feature(enable = "neon")]
38796#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38797#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh))]
38798#[cfg_attr(
38799    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38800    assert_instr(sqrdmulh)
38801)]
38802#[cfg_attr(
38803    not(target_arch = "arm"),
38804    stable(feature = "neon_intrinsics", since = "1.59.0")
38805)]
38806#[cfg_attr(
38807    target_arch = "arm",
38808    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38809)]
38810pub fn vqrdmulhq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
38811    unsafe extern "unadjusted" {
38812        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrdmulh.v8i16")]
38813        #[cfg_attr(
38814            any(target_arch = "aarch64", target_arch = "arm64ec"),
38815            link_name = "llvm.aarch64.neon.sqrdmulh.v8i16"
38816        )]
38817        fn _vqrdmulhq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t;
38818    }
38819    unsafe { _vqrdmulhq_s16(a, b) }
38820}
38821#[doc = "Signed saturating rounding doubling multiply returning high half"]
38822#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulh_s32)"]
38823#[inline]
38824#[target_feature(enable = "neon")]
38825#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38826#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh))]
38827#[cfg_attr(
38828    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38829    assert_instr(sqrdmulh)
38830)]
38831#[cfg_attr(
38832    not(target_arch = "arm"),
38833    stable(feature = "neon_intrinsics", since = "1.59.0")
38834)]
38835#[cfg_attr(
38836    target_arch = "arm",
38837    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38838)]
38839pub fn vqrdmulh_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
38840    unsafe extern "unadjusted" {
38841        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrdmulh.v2i32")]
38842        #[cfg_attr(
38843            any(target_arch = "aarch64", target_arch = "arm64ec"),
38844            link_name = "llvm.aarch64.neon.sqrdmulh.v2i32"
38845        )]
38846        fn _vqrdmulh_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t;
38847    }
38848    unsafe { _vqrdmulh_s32(a, b) }
38849}
38850#[doc = "Signed saturating rounding doubling multiply returning high half"]
38851#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulhq_s32)"]
38852#[inline]
38853#[target_feature(enable = "neon")]
38854#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38855#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh))]
38856#[cfg_attr(
38857    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38858    assert_instr(sqrdmulh)
38859)]
38860#[cfg_attr(
38861    not(target_arch = "arm"),
38862    stable(feature = "neon_intrinsics", since = "1.59.0")
38863)]
38864#[cfg_attr(
38865    target_arch = "arm",
38866    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38867)]
38868pub fn vqrdmulhq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
38869    unsafe extern "unadjusted" {
38870        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrdmulh.v4i32")]
38871        #[cfg_attr(
38872            any(target_arch = "aarch64", target_arch = "arm64ec"),
38873            link_name = "llvm.aarch64.neon.sqrdmulh.v4i32"
38874        )]
38875        fn _vqrdmulhq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t;
38876    }
38877    unsafe { _vqrdmulhq_s32(a, b) }
38878}
38879#[doc = "Signed saturating rounding shift left"]
38880#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshl_s8)"]
38881#[inline]
38882#[target_feature(enable = "neon")]
38883#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38884#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
38885#[cfg_attr(
38886    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38887    assert_instr(sqrshl)
38888)]
38889#[cfg_attr(
38890    not(target_arch = "arm"),
38891    stable(feature = "neon_intrinsics", since = "1.59.0")
38892)]
38893#[cfg_attr(
38894    target_arch = "arm",
38895    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38896)]
38897pub fn vqrshl_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
38898    unsafe extern "unadjusted" {
38899        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshifts.v8i8")]
38900        #[cfg_attr(
38901            any(target_arch = "aarch64", target_arch = "arm64ec"),
38902            link_name = "llvm.aarch64.neon.sqrshl.v8i8"
38903        )]
38904        fn _vqrshl_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t;
38905    }
38906    unsafe { _vqrshl_s8(a, b) }
38907}
38908#[doc = "Signed saturating rounding shift left"]
38909#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshlq_s8)"]
38910#[inline]
38911#[target_feature(enable = "neon")]
38912#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38913#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
38914#[cfg_attr(
38915    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38916    assert_instr(sqrshl)
38917)]
38918#[cfg_attr(
38919    not(target_arch = "arm"),
38920    stable(feature = "neon_intrinsics", since = "1.59.0")
38921)]
38922#[cfg_attr(
38923    target_arch = "arm",
38924    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38925)]
38926pub fn vqrshlq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
38927    unsafe extern "unadjusted" {
38928        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshifts.v16i8")]
38929        #[cfg_attr(
38930            any(target_arch = "aarch64", target_arch = "arm64ec"),
38931            link_name = "llvm.aarch64.neon.sqrshl.v16i8"
38932        )]
38933        fn _vqrshlq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t;
38934    }
38935    unsafe { _vqrshlq_s8(a, b) }
38936}
38937#[doc = "Signed saturating rounding shift left"]
38938#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshl_s16)"]
38939#[inline]
38940#[target_feature(enable = "neon")]
38941#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38942#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
38943#[cfg_attr(
38944    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38945    assert_instr(sqrshl)
38946)]
38947#[cfg_attr(
38948    not(target_arch = "arm"),
38949    stable(feature = "neon_intrinsics", since = "1.59.0")
38950)]
38951#[cfg_attr(
38952    target_arch = "arm",
38953    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38954)]
38955pub fn vqrshl_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
38956    unsafe extern "unadjusted" {
38957        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshifts.v4i16")]
38958        #[cfg_attr(
38959            any(target_arch = "aarch64", target_arch = "arm64ec"),
38960            link_name = "llvm.aarch64.neon.sqrshl.v4i16"
38961        )]
38962        fn _vqrshl_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t;
38963    }
38964    unsafe { _vqrshl_s16(a, b) }
38965}
38966#[doc = "Signed saturating rounding shift left"]
38967#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshlq_s16)"]
38968#[inline]
38969#[target_feature(enable = "neon")]
38970#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38971#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
38972#[cfg_attr(
38973    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38974    assert_instr(sqrshl)
38975)]
38976#[cfg_attr(
38977    not(target_arch = "arm"),
38978    stable(feature = "neon_intrinsics", since = "1.59.0")
38979)]
38980#[cfg_attr(
38981    target_arch = "arm",
38982    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38983)]
38984pub fn vqrshlq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
38985    unsafe extern "unadjusted" {
38986        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshifts.v8i16")]
38987        #[cfg_attr(
38988            any(target_arch = "aarch64", target_arch = "arm64ec"),
38989            link_name = "llvm.aarch64.neon.sqrshl.v8i16"
38990        )]
38991        fn _vqrshlq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t;
38992    }
38993    unsafe { _vqrshlq_s16(a, b) }
38994}
38995#[doc = "Signed saturating rounding shift left"]
38996#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshl_s32)"]
38997#[inline]
38998#[target_feature(enable = "neon")]
38999#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39000#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
39001#[cfg_attr(
39002    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39003    assert_instr(sqrshl)
39004)]
39005#[cfg_attr(
39006    not(target_arch = "arm"),
39007    stable(feature = "neon_intrinsics", since = "1.59.0")
39008)]
39009#[cfg_attr(
39010    target_arch = "arm",
39011    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39012)]
39013pub fn vqrshl_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
39014    unsafe extern "unadjusted" {
39015        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshifts.v2i32")]
39016        #[cfg_attr(
39017            any(target_arch = "aarch64", target_arch = "arm64ec"),
39018            link_name = "llvm.aarch64.neon.sqrshl.v2i32"
39019        )]
39020        fn _vqrshl_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t;
39021    }
39022    unsafe { _vqrshl_s32(a, b) }
39023}
39024#[doc = "Signed saturating rounding shift left"]
39025#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshlq_s32)"]
39026#[inline]
39027#[target_feature(enable = "neon")]
39028#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39029#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
39030#[cfg_attr(
39031    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39032    assert_instr(sqrshl)
39033)]
39034#[cfg_attr(
39035    not(target_arch = "arm"),
39036    stable(feature = "neon_intrinsics", since = "1.59.0")
39037)]
39038#[cfg_attr(
39039    target_arch = "arm",
39040    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39041)]
39042pub fn vqrshlq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
39043    unsafe extern "unadjusted" {
39044        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshifts.v4i32")]
39045        #[cfg_attr(
39046            any(target_arch = "aarch64", target_arch = "arm64ec"),
39047            link_name = "llvm.aarch64.neon.sqrshl.v4i32"
39048        )]
39049        fn _vqrshlq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t;
39050    }
39051    unsafe { _vqrshlq_s32(a, b) }
39052}
39053#[doc = "Signed saturating rounding shift left"]
39054#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshl_s64)"]
39055#[inline]
39056#[target_feature(enable = "neon")]
39057#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39058#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
39059#[cfg_attr(
39060    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39061    assert_instr(sqrshl)
39062)]
39063#[cfg_attr(
39064    not(target_arch = "arm"),
39065    stable(feature = "neon_intrinsics", since = "1.59.0")
39066)]
39067#[cfg_attr(
39068    target_arch = "arm",
39069    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39070)]
39071pub fn vqrshl_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t {
39072    unsafe extern "unadjusted" {
39073        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshifts.v1i64")]
39074        #[cfg_attr(
39075            any(target_arch = "aarch64", target_arch = "arm64ec"),
39076            link_name = "llvm.aarch64.neon.sqrshl.v1i64"
39077        )]
39078        fn _vqrshl_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t;
39079    }
39080    unsafe { _vqrshl_s64(a, b) }
39081}
39082#[doc = "Signed saturating rounding shift left"]
39083#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshlq_s64)"]
39084#[inline]
39085#[target_feature(enable = "neon")]
39086#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39087#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
39088#[cfg_attr(
39089    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39090    assert_instr(sqrshl)
39091)]
39092#[cfg_attr(
39093    not(target_arch = "arm"),
39094    stable(feature = "neon_intrinsics", since = "1.59.0")
39095)]
39096#[cfg_attr(
39097    target_arch = "arm",
39098    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39099)]
39100pub fn vqrshlq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t {
39101    unsafe extern "unadjusted" {
39102        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshifts.v2i64")]
39103        #[cfg_attr(
39104            any(target_arch = "aarch64", target_arch = "arm64ec"),
39105            link_name = "llvm.aarch64.neon.sqrshl.v2i64"
39106        )]
39107        fn _vqrshlq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t;
39108    }
39109    unsafe { _vqrshlq_s64(a, b) }
39110}
39111#[doc = "Unsigned signed saturating rounding shift left"]
39112#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshl_u8)"]
39113#[inline]
39114#[target_feature(enable = "neon")]
39115#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39116#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
39117#[cfg_attr(
39118    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39119    assert_instr(uqrshl)
39120)]
39121#[cfg_attr(
39122    not(target_arch = "arm"),
39123    stable(feature = "neon_intrinsics", since = "1.59.0")
39124)]
39125#[cfg_attr(
39126    target_arch = "arm",
39127    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39128)]
39129pub fn vqrshl_u8(a: uint8x8_t, b: int8x8_t) -> uint8x8_t {
39130    unsafe extern "unadjusted" {
39131        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftu.v8i8")]
39132        #[cfg_attr(
39133            any(target_arch = "aarch64", target_arch = "arm64ec"),
39134            link_name = "llvm.aarch64.neon.uqrshl.v8i8"
39135        )]
39136        fn _vqrshl_u8(a: uint8x8_t, b: int8x8_t) -> uint8x8_t;
39137    }
39138    unsafe { _vqrshl_u8(a, b) }
39139}
39140#[doc = "Unsigned signed saturating rounding shift left"]
39141#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshlq_u8)"]
39142#[inline]
39143#[target_feature(enable = "neon")]
39144#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39145#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
39146#[cfg_attr(
39147    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39148    assert_instr(uqrshl)
39149)]
39150#[cfg_attr(
39151    not(target_arch = "arm"),
39152    stable(feature = "neon_intrinsics", since = "1.59.0")
39153)]
39154#[cfg_attr(
39155    target_arch = "arm",
39156    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39157)]
39158pub fn vqrshlq_u8(a: uint8x16_t, b: int8x16_t) -> uint8x16_t {
39159    unsafe extern "unadjusted" {
39160        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftu.v16i8")]
39161        #[cfg_attr(
39162            any(target_arch = "aarch64", target_arch = "arm64ec"),
39163            link_name = "llvm.aarch64.neon.uqrshl.v16i8"
39164        )]
39165        fn _vqrshlq_u8(a: uint8x16_t, b: int8x16_t) -> uint8x16_t;
39166    }
39167    unsafe { _vqrshlq_u8(a, b) }
39168}
39169#[doc = "Unsigned signed saturating rounding shift left"]
39170#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshl_u16)"]
39171#[inline]
39172#[target_feature(enable = "neon")]
39173#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39174#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
39175#[cfg_attr(
39176    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39177    assert_instr(uqrshl)
39178)]
39179#[cfg_attr(
39180    not(target_arch = "arm"),
39181    stable(feature = "neon_intrinsics", since = "1.59.0")
39182)]
39183#[cfg_attr(
39184    target_arch = "arm",
39185    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39186)]
39187pub fn vqrshl_u16(a: uint16x4_t, b: int16x4_t) -> uint16x4_t {
39188    unsafe extern "unadjusted" {
39189        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftu.v4i16")]
39190        #[cfg_attr(
39191            any(target_arch = "aarch64", target_arch = "arm64ec"),
39192            link_name = "llvm.aarch64.neon.uqrshl.v4i16"
39193        )]
39194        fn _vqrshl_u16(a: uint16x4_t, b: int16x4_t) -> uint16x4_t;
39195    }
39196    unsafe { _vqrshl_u16(a, b) }
39197}
39198#[doc = "Unsigned signed saturating rounding shift left"]
39199#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshlq_u16)"]
39200#[inline]
39201#[target_feature(enable = "neon")]
39202#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39203#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
39204#[cfg_attr(
39205    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39206    assert_instr(uqrshl)
39207)]
39208#[cfg_attr(
39209    not(target_arch = "arm"),
39210    stable(feature = "neon_intrinsics", since = "1.59.0")
39211)]
39212#[cfg_attr(
39213    target_arch = "arm",
39214    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39215)]
39216pub fn vqrshlq_u16(a: uint16x8_t, b: int16x8_t) -> uint16x8_t {
39217    unsafe extern "unadjusted" {
39218        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftu.v8i16")]
39219        #[cfg_attr(
39220            any(target_arch = "aarch64", target_arch = "arm64ec"),
39221            link_name = "llvm.aarch64.neon.uqrshl.v8i16"
39222        )]
39223        fn _vqrshlq_u16(a: uint16x8_t, b: int16x8_t) -> uint16x8_t;
39224    }
39225    unsafe { _vqrshlq_u16(a, b) }
39226}
39227#[doc = "Unsigned signed saturating rounding shift left"]
39228#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshl_u32)"]
39229#[inline]
39230#[target_feature(enable = "neon")]
39231#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39232#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
39233#[cfg_attr(
39234    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39235    assert_instr(uqrshl)
39236)]
39237#[cfg_attr(
39238    not(target_arch = "arm"),
39239    stable(feature = "neon_intrinsics", since = "1.59.0")
39240)]
39241#[cfg_attr(
39242    target_arch = "arm",
39243    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39244)]
39245pub fn vqrshl_u32(a: uint32x2_t, b: int32x2_t) -> uint32x2_t {
39246    unsafe extern "unadjusted" {
39247        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftu.v2i32")]
39248        #[cfg_attr(
39249            any(target_arch = "aarch64", target_arch = "arm64ec"),
39250            link_name = "llvm.aarch64.neon.uqrshl.v2i32"
39251        )]
39252        fn _vqrshl_u32(a: uint32x2_t, b: int32x2_t) -> uint32x2_t;
39253    }
39254    unsafe { _vqrshl_u32(a, b) }
39255}
39256#[doc = "Unsigned signed saturating rounding shift left"]
39257#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshlq_u32)"]
39258#[inline]
39259#[target_feature(enable = "neon")]
39260#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39261#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
39262#[cfg_attr(
39263    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39264    assert_instr(uqrshl)
39265)]
39266#[cfg_attr(
39267    not(target_arch = "arm"),
39268    stable(feature = "neon_intrinsics", since = "1.59.0")
39269)]
39270#[cfg_attr(
39271    target_arch = "arm",
39272    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39273)]
39274pub fn vqrshlq_u32(a: uint32x4_t, b: int32x4_t) -> uint32x4_t {
39275    unsafe extern "unadjusted" {
39276        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftu.v4i32")]
39277        #[cfg_attr(
39278            any(target_arch = "aarch64", target_arch = "arm64ec"),
39279            link_name = "llvm.aarch64.neon.uqrshl.v4i32"
39280        )]
39281        fn _vqrshlq_u32(a: uint32x4_t, b: int32x4_t) -> uint32x4_t;
39282    }
39283    unsafe { _vqrshlq_u32(a, b) }
39284}
39285#[doc = "Unsigned signed saturating rounding shift left"]
39286#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshl_u64)"]
39287#[inline]
39288#[target_feature(enable = "neon")]
39289#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39290#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
39291#[cfg_attr(
39292    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39293    assert_instr(uqrshl)
39294)]
39295#[cfg_attr(
39296    not(target_arch = "arm"),
39297    stable(feature = "neon_intrinsics", since = "1.59.0")
39298)]
39299#[cfg_attr(
39300    target_arch = "arm",
39301    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39302)]
39303pub fn vqrshl_u64(a: uint64x1_t, b: int64x1_t) -> uint64x1_t {
39304    unsafe extern "unadjusted" {
39305        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftu.v1i64")]
39306        #[cfg_attr(
39307            any(target_arch = "aarch64", target_arch = "arm64ec"),
39308            link_name = "llvm.aarch64.neon.uqrshl.v1i64"
39309        )]
39310        fn _vqrshl_u64(a: uint64x1_t, b: int64x1_t) -> uint64x1_t;
39311    }
39312    unsafe { _vqrshl_u64(a, b) }
39313}
39314#[doc = "Unsigned signed saturating rounding shift left"]
39315#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshlq_u64)"]
39316#[inline]
39317#[target_feature(enable = "neon")]
39318#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39319#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
39320#[cfg_attr(
39321    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39322    assert_instr(uqrshl)
39323)]
39324#[cfg_attr(
39325    not(target_arch = "arm"),
39326    stable(feature = "neon_intrinsics", since = "1.59.0")
39327)]
39328#[cfg_attr(
39329    target_arch = "arm",
39330    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39331)]
39332pub fn vqrshlq_u64(a: uint64x2_t, b: int64x2_t) -> uint64x2_t {
39333    unsafe extern "unadjusted" {
39334        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftu.v2i64")]
39335        #[cfg_attr(
39336            any(target_arch = "aarch64", target_arch = "arm64ec"),
39337            link_name = "llvm.aarch64.neon.uqrshl.v2i64"
39338        )]
39339        fn _vqrshlq_u64(a: uint64x2_t, b: int64x2_t) -> uint64x2_t;
39340    }
39341    unsafe { _vqrshlq_u64(a, b) }
39342}
39343#[doc = "Signed saturating rounded shift right narrow"]
39344#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_s16)"]
39345#[inline]
39346#[cfg(target_arch = "arm")]
39347#[target_feature(enable = "neon,v7")]
39348#[cfg_attr(test, assert_instr(vqrshrn, N = 2))]
39349#[rustc_legacy_const_generics(1)]
39350#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
39351pub fn vqrshrn_n_s16<const N: i32>(a: int16x8_t) -> int8x8_t {
39352    static_assert!(N >= 1 && N <= 8);
39353    unsafe extern "unadjusted" {
39354        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftns.v8i8")]
39355        fn _vqrshrn_n_s16(a: int16x8_t, n: int16x8_t) -> int8x8_t;
39356    }
39357    unsafe { _vqrshrn_n_s16(a, const { int16x8_t([-N as i16; 8]) }) }
39358}
39359#[doc = "Signed saturating rounded shift right narrow"]
39360#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_s32)"]
39361#[inline]
39362#[cfg(target_arch = "arm")]
39363#[target_feature(enable = "neon,v7")]
39364#[cfg_attr(test, assert_instr(vqrshrn, N = 2))]
39365#[rustc_legacy_const_generics(1)]
39366#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
39367pub fn vqrshrn_n_s32<const N: i32>(a: int32x4_t) -> int16x4_t {
39368    static_assert!(N >= 1 && N <= 16);
39369    unsafe extern "unadjusted" {
39370        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftns.v4i16")]
39371        fn _vqrshrn_n_s32(a: int32x4_t, n: int32x4_t) -> int16x4_t;
39372    }
39373    unsafe { _vqrshrn_n_s32(a, const { int32x4_t([-N; 4]) }) }
39374}
39375#[doc = "Signed saturating rounded shift right narrow"]
39376#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_s64)"]
39377#[inline]
39378#[cfg(target_arch = "arm")]
39379#[target_feature(enable = "neon,v7")]
39380#[cfg_attr(test, assert_instr(vqrshrn, N = 2))]
39381#[rustc_legacy_const_generics(1)]
39382#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
39383pub fn vqrshrn_n_s64<const N: i32>(a: int64x2_t) -> int32x2_t {
39384    static_assert!(N >= 1 && N <= 32);
39385    unsafe extern "unadjusted" {
39386        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftns.v2i32")]
39387        fn _vqrshrn_n_s64(a: int64x2_t, n: int64x2_t) -> int32x2_t;
39388    }
39389    unsafe { _vqrshrn_n_s64(a, const { int64x2_t([-N as i64; 2]) }) }
39390}
39391#[doc = "Signed saturating rounded shift right narrow"]
39392#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_s16)"]
39393#[inline]
39394#[target_feature(enable = "neon")]
39395#[cfg(not(target_arch = "arm"))]
39396#[cfg_attr(test, assert_instr(sqrshrn, N = 2))]
39397#[rustc_legacy_const_generics(1)]
39398#[stable(feature = "neon_intrinsics", since = "1.59.0")]
39399pub fn vqrshrn_n_s16<const N: i32>(a: int16x8_t) -> int8x8_t {
39400    static_assert!(N >= 1 && N <= 8);
39401    unsafe extern "unadjusted" {
39402        #[cfg_attr(
39403            any(target_arch = "aarch64", target_arch = "arm64ec"),
39404            link_name = "llvm.aarch64.neon.sqrshrn.v8i8"
39405        )]
39406        fn _vqrshrn_n_s16(a: int16x8_t, n: i32) -> int8x8_t;
39407    }
39408    unsafe { _vqrshrn_n_s16(a, N) }
39409}
39410#[doc = "Signed saturating rounded shift right narrow"]
39411#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_s32)"]
39412#[inline]
39413#[target_feature(enable = "neon")]
39414#[cfg(not(target_arch = "arm"))]
39415#[cfg_attr(test, assert_instr(sqrshrn, N = 2))]
39416#[rustc_legacy_const_generics(1)]
39417#[stable(feature = "neon_intrinsics", since = "1.59.0")]
39418pub fn vqrshrn_n_s32<const N: i32>(a: int32x4_t) -> int16x4_t {
39419    static_assert!(N >= 1 && N <= 16);
39420    unsafe extern "unadjusted" {
39421        #[cfg_attr(
39422            any(target_arch = "aarch64", target_arch = "arm64ec"),
39423            link_name = "llvm.aarch64.neon.sqrshrn.v4i16"
39424        )]
39425        fn _vqrshrn_n_s32(a: int32x4_t, n: i32) -> int16x4_t;
39426    }
39427    unsafe { _vqrshrn_n_s32(a, N) }
39428}
39429#[doc = "Signed saturating rounded shift right narrow"]
39430#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_s64)"]
39431#[inline]
39432#[target_feature(enable = "neon")]
39433#[cfg(not(target_arch = "arm"))]
39434#[cfg_attr(test, assert_instr(sqrshrn, N = 2))]
39435#[rustc_legacy_const_generics(1)]
39436#[stable(feature = "neon_intrinsics", since = "1.59.0")]
39437pub fn vqrshrn_n_s64<const N: i32>(a: int64x2_t) -> int32x2_t {
39438    static_assert!(N >= 1 && N <= 32);
39439    unsafe extern "unadjusted" {
39440        #[cfg_attr(
39441            any(target_arch = "aarch64", target_arch = "arm64ec"),
39442            link_name = "llvm.aarch64.neon.sqrshrn.v2i32"
39443        )]
39444        fn _vqrshrn_n_s64(a: int64x2_t, n: i32) -> int32x2_t;
39445    }
39446    unsafe { _vqrshrn_n_s64(a, N) }
39447}
39448#[doc = "Unsigned signed saturating rounded shift right narrow"]
39449#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_u16)"]
39450#[inline]
39451#[cfg(target_arch = "arm")]
39452#[target_feature(enable = "neon,v7")]
39453#[cfg_attr(test, assert_instr(vqrshrn, N = 2))]
39454#[rustc_legacy_const_generics(1)]
39455#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
39456pub fn vqrshrn_n_u16<const N: i32>(a: uint16x8_t) -> uint8x8_t {
39457    static_assert!(N >= 1 && N <= 8);
39458    unsafe extern "unadjusted" {
39459        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftnu.v8i8")]
39460        fn _vqrshrn_n_u16(a: uint16x8_t, n: uint16x8_t) -> uint8x8_t;
39461    }
39462    unsafe {
39463        _vqrshrn_n_u16(
39464            a,
39465            const {
39466                uint16x8_t([
39467                    -N as u16, -N as u16, -N as u16, -N as u16, -N as u16, -N as u16, -N as u16,
39468                    -N as u16,
39469                ])
39470            },
39471        )
39472    }
39473}
39474#[doc = "Unsigned signed saturating rounded shift right narrow"]
39475#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_u32)"]
39476#[inline]
39477#[cfg(target_arch = "arm")]
39478#[target_feature(enable = "neon,v7")]
39479#[cfg_attr(test, assert_instr(vqrshrn, N = 2))]
39480#[rustc_legacy_const_generics(1)]
39481#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
39482pub fn vqrshrn_n_u32<const N: i32>(a: uint32x4_t) -> uint16x4_t {
39483    static_assert!(N >= 1 && N <= 16);
39484    unsafe extern "unadjusted" {
39485        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftnu.v4i16")]
39486        fn _vqrshrn_n_u32(a: uint32x4_t, n: uint32x4_t) -> uint16x4_t;
39487    }
39488    unsafe {
39489        _vqrshrn_n_u32(
39490            a,
39491            const { uint32x4_t([-N as u32, -N as u32, -N as u32, -N as u32]) },
39492        )
39493    }
39494}
39495#[doc = "Unsigned signed saturating rounded shift right narrow"]
39496#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_u64)"]
39497#[inline]
39498#[cfg(target_arch = "arm")]
39499#[target_feature(enable = "neon,v7")]
39500#[cfg_attr(test, assert_instr(vqrshrn, N = 2))]
39501#[rustc_legacy_const_generics(1)]
39502#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
39503pub fn vqrshrn_n_u64<const N: i32>(a: uint64x2_t) -> uint32x2_t {
39504    static_assert!(N >= 1 && N <= 32);
39505    unsafe extern "unadjusted" {
39506        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftnu.v2i32")]
39507        fn _vqrshrn_n_u64(a: uint64x2_t, n: uint64x2_t) -> uint32x2_t;
39508    }
39509    unsafe { _vqrshrn_n_u64(a, const { uint64x2_t([-N as u64, -N as u64]) }) }
39510}
39511#[doc = "Unsigned signed saturating rounded shift right narrow"]
39512#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_u16)"]
39513#[inline]
39514#[target_feature(enable = "neon")]
39515#[cfg(not(target_arch = "arm"))]
39516#[cfg_attr(test, assert_instr(uqrshrn, N = 2))]
39517#[rustc_legacy_const_generics(1)]
39518#[stable(feature = "neon_intrinsics", since = "1.59.0")]
39519pub fn vqrshrn_n_u16<const N: i32>(a: uint16x8_t) -> uint8x8_t {
39520    static_assert!(N >= 1 && N <= 8);
39521    unsafe extern "unadjusted" {
39522        #[cfg_attr(
39523            any(target_arch = "aarch64", target_arch = "arm64ec"),
39524            link_name = "llvm.aarch64.neon.uqrshrn.v8i8"
39525        )]
39526        fn _vqrshrn_n_u16(a: uint16x8_t, n: i32) -> uint8x8_t;
39527    }
39528    unsafe { _vqrshrn_n_u16(a, N) }
39529}
39530#[doc = "Unsigned signed saturating rounded shift right narrow"]
39531#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_u32)"]
39532#[inline]
39533#[target_feature(enable = "neon")]
39534#[cfg(not(target_arch = "arm"))]
39535#[cfg_attr(test, assert_instr(uqrshrn, N = 2))]
39536#[rustc_legacy_const_generics(1)]
39537#[stable(feature = "neon_intrinsics", since = "1.59.0")]
39538pub fn vqrshrn_n_u32<const N: i32>(a: uint32x4_t) -> uint16x4_t {
39539    static_assert!(N >= 1 && N <= 16);
39540    unsafe extern "unadjusted" {
39541        #[cfg_attr(
39542            any(target_arch = "aarch64", target_arch = "arm64ec"),
39543            link_name = "llvm.aarch64.neon.uqrshrn.v4i16"
39544        )]
39545        fn _vqrshrn_n_u32(a: uint32x4_t, n: i32) -> uint16x4_t;
39546    }
39547    unsafe { _vqrshrn_n_u32(a, N) }
39548}
39549#[doc = "Unsigned signed saturating rounded shift right narrow"]
39550#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_u64)"]
39551#[inline]
39552#[target_feature(enable = "neon")]
39553#[cfg(not(target_arch = "arm"))]
39554#[cfg_attr(test, assert_instr(uqrshrn, N = 2))]
39555#[rustc_legacy_const_generics(1)]
39556#[stable(feature = "neon_intrinsics", since = "1.59.0")]
39557pub fn vqrshrn_n_u64<const N: i32>(a: uint64x2_t) -> uint32x2_t {
39558    static_assert!(N >= 1 && N <= 32);
39559    unsafe extern "unadjusted" {
39560        #[cfg_attr(
39561            any(target_arch = "aarch64", target_arch = "arm64ec"),
39562            link_name = "llvm.aarch64.neon.uqrshrn.v2i32"
39563        )]
39564        fn _vqrshrn_n_u64(a: uint64x2_t, n: i32) -> uint32x2_t;
39565    }
39566    unsafe { _vqrshrn_n_u64(a, N) }
39567}
39568#[doc = "Signed saturating rounded shift right unsigned narrow"]
39569#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrun_n_s16)"]
39570#[inline]
39571#[cfg(target_arch = "arm")]
39572#[target_feature(enable = "neon,v7")]
39573#[cfg_attr(test, assert_instr(vqrshrun, N = 2))]
39574#[rustc_legacy_const_generics(1)]
39575#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
39576pub fn vqrshrun_n_s16<const N: i32>(a: int16x8_t) -> uint8x8_t {
39577    static_assert!(N >= 1 && N <= 8);
39578    unsafe extern "unadjusted" {
39579        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftnsu.v8i8")]
39580        fn _vqrshrun_n_s16(a: int16x8_t, n: int16x8_t) -> uint8x8_t;
39581    }
39582    unsafe { _vqrshrun_n_s16(a, const { int16x8_t([-N as i16; 8]) }) }
39583}
39584#[doc = "Signed saturating rounded shift right unsigned narrow"]
39585#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrun_n_s32)"]
39586#[inline]
39587#[cfg(target_arch = "arm")]
39588#[target_feature(enable = "neon,v7")]
39589#[cfg_attr(test, assert_instr(vqrshrun, N = 2))]
39590#[rustc_legacy_const_generics(1)]
39591#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
39592pub fn vqrshrun_n_s32<const N: i32>(a: int32x4_t) -> uint16x4_t {
39593    static_assert!(N >= 1 && N <= 16);
39594    unsafe extern "unadjusted" {
39595        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftnsu.v4i16")]
39596        fn _vqrshrun_n_s32(a: int32x4_t, n: int32x4_t) -> uint16x4_t;
39597    }
39598    unsafe { _vqrshrun_n_s32(a, const { int32x4_t([-N; 4]) }) }
39599}
39600#[doc = "Signed saturating rounded shift right unsigned narrow"]
39601#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrun_n_s64)"]
39602#[inline]
39603#[cfg(target_arch = "arm")]
39604#[target_feature(enable = "neon,v7")]
39605#[cfg_attr(test, assert_instr(vqrshrun, N = 2))]
39606#[rustc_legacy_const_generics(1)]
39607#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
39608pub fn vqrshrun_n_s64<const N: i32>(a: int64x2_t) -> uint32x2_t {
39609    static_assert!(N >= 1 && N <= 32);
39610    unsafe extern "unadjusted" {
39611        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftnsu.v2i32")]
39612        fn _vqrshrun_n_s64(a: int64x2_t, n: int64x2_t) -> uint32x2_t;
39613    }
39614    unsafe { _vqrshrun_n_s64(a, const { int64x2_t([-N as i64; 2]) }) }
39615}
39616#[doc = "Signed saturating rounded shift right unsigned narrow"]
39617#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrun_n_s16)"]
39618#[inline]
39619#[target_feature(enable = "neon")]
39620#[cfg(not(target_arch = "arm"))]
39621#[cfg_attr(test, assert_instr(sqrshrun, N = 2))]
39622#[rustc_legacy_const_generics(1)]
39623#[stable(feature = "neon_intrinsics", since = "1.59.0")]
39624pub fn vqrshrun_n_s16<const N: i32>(a: int16x8_t) -> uint8x8_t {
39625    static_assert!(N >= 1 && N <= 8);
39626    unsafe extern "unadjusted" {
39627        #[cfg_attr(
39628            any(target_arch = "aarch64", target_arch = "arm64ec"),
39629            link_name = "llvm.aarch64.neon.sqrshrun.v8i8"
39630        )]
39631        fn _vqrshrun_n_s16(a: int16x8_t, n: i32) -> uint8x8_t;
39632    }
39633    unsafe { _vqrshrun_n_s16(a, N) }
39634}
39635#[doc = "Signed saturating rounded shift right unsigned narrow"]
39636#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrun_n_s32)"]
39637#[inline]
39638#[target_feature(enable = "neon")]
39639#[cfg(not(target_arch = "arm"))]
39640#[cfg_attr(test, assert_instr(sqrshrun, N = 2))]
39641#[rustc_legacy_const_generics(1)]
39642#[stable(feature = "neon_intrinsics", since = "1.59.0")]
39643pub fn vqrshrun_n_s32<const N: i32>(a: int32x4_t) -> uint16x4_t {
39644    static_assert!(N >= 1 && N <= 16);
39645    unsafe extern "unadjusted" {
39646        #[cfg_attr(
39647            any(target_arch = "aarch64", target_arch = "arm64ec"),
39648            link_name = "llvm.aarch64.neon.sqrshrun.v4i16"
39649        )]
39650        fn _vqrshrun_n_s32(a: int32x4_t, n: i32) -> uint16x4_t;
39651    }
39652    unsafe { _vqrshrun_n_s32(a, N) }
39653}
39654#[doc = "Signed saturating rounded shift right unsigned narrow"]
39655#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrun_n_s64)"]
39656#[inline]
39657#[target_feature(enable = "neon")]
39658#[cfg(not(target_arch = "arm"))]
39659#[cfg_attr(test, assert_instr(sqrshrun, N = 2))]
39660#[rustc_legacy_const_generics(1)]
39661#[stable(feature = "neon_intrinsics", since = "1.59.0")]
39662pub fn vqrshrun_n_s64<const N: i32>(a: int64x2_t) -> uint32x2_t {
39663    static_assert!(N >= 1 && N <= 32);
39664    unsafe extern "unadjusted" {
39665        #[cfg_attr(
39666            any(target_arch = "aarch64", target_arch = "arm64ec"),
39667            link_name = "llvm.aarch64.neon.sqrshrun.v2i32"
39668        )]
39669        fn _vqrshrun_n_s64(a: int64x2_t, n: i32) -> uint32x2_t;
39670    }
39671    unsafe { _vqrshrun_n_s64(a, N) }
39672}
39673#[doc = "Signed saturating shift left"]
39674#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_n_s8)"]
39675#[inline]
39676#[target_feature(enable = "neon")]
39677#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39678#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
39679#[cfg_attr(
39680    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39681    assert_instr(sqshl, N = 2)
39682)]
39683#[rustc_legacy_const_generics(1)]
39684#[cfg_attr(
39685    not(target_arch = "arm"),
39686    stable(feature = "neon_intrinsics", since = "1.59.0")
39687)]
39688#[cfg_attr(
39689    target_arch = "arm",
39690    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39691)]
39692pub fn vqshl_n_s8<const N: i32>(a: int8x8_t) -> int8x8_t {
39693    static_assert_uimm_bits!(N, 3);
39694    vqshl_s8(a, vdup_n_s8(N as _))
39695}
39696#[doc = "Signed saturating shift left"]
39697#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_n_s8)"]
39698#[inline]
39699#[target_feature(enable = "neon")]
39700#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39701#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
39702#[cfg_attr(
39703    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39704    assert_instr(sqshl, N = 2)
39705)]
39706#[rustc_legacy_const_generics(1)]
39707#[cfg_attr(
39708    not(target_arch = "arm"),
39709    stable(feature = "neon_intrinsics", since = "1.59.0")
39710)]
39711#[cfg_attr(
39712    target_arch = "arm",
39713    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39714)]
39715pub fn vqshlq_n_s8<const N: i32>(a: int8x16_t) -> int8x16_t {
39716    static_assert_uimm_bits!(N, 3);
39717    vqshlq_s8(a, vdupq_n_s8(N as _))
39718}
39719#[doc = "Signed saturating shift left"]
39720#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_n_s16)"]
39721#[inline]
39722#[target_feature(enable = "neon")]
39723#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39724#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
39725#[cfg_attr(
39726    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39727    assert_instr(sqshl, N = 2)
39728)]
39729#[rustc_legacy_const_generics(1)]
39730#[cfg_attr(
39731    not(target_arch = "arm"),
39732    stable(feature = "neon_intrinsics", since = "1.59.0")
39733)]
39734#[cfg_attr(
39735    target_arch = "arm",
39736    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39737)]
39738pub fn vqshl_n_s16<const N: i32>(a: int16x4_t) -> int16x4_t {
39739    static_assert_uimm_bits!(N, 4);
39740    vqshl_s16(a, vdup_n_s16(N as _))
39741}
39742#[doc = "Signed saturating shift left"]
39743#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_n_s16)"]
39744#[inline]
39745#[target_feature(enable = "neon")]
39746#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39747#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
39748#[cfg_attr(
39749    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39750    assert_instr(sqshl, N = 2)
39751)]
39752#[rustc_legacy_const_generics(1)]
39753#[cfg_attr(
39754    not(target_arch = "arm"),
39755    stable(feature = "neon_intrinsics", since = "1.59.0")
39756)]
39757#[cfg_attr(
39758    target_arch = "arm",
39759    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39760)]
39761pub fn vqshlq_n_s16<const N: i32>(a: int16x8_t) -> int16x8_t {
39762    static_assert_uimm_bits!(N, 4);
39763    vqshlq_s16(a, vdupq_n_s16(N as _))
39764}
39765#[doc = "Signed saturating shift left"]
39766#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_n_s32)"]
39767#[inline]
39768#[target_feature(enable = "neon")]
39769#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39770#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
39771#[cfg_attr(
39772    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39773    assert_instr(sqshl, N = 2)
39774)]
39775#[rustc_legacy_const_generics(1)]
39776#[cfg_attr(
39777    not(target_arch = "arm"),
39778    stable(feature = "neon_intrinsics", since = "1.59.0")
39779)]
39780#[cfg_attr(
39781    target_arch = "arm",
39782    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39783)]
39784pub fn vqshl_n_s32<const N: i32>(a: int32x2_t) -> int32x2_t {
39785    static_assert_uimm_bits!(N, 5);
39786    vqshl_s32(a, vdup_n_s32(N as _))
39787}
39788#[doc = "Signed saturating shift left"]
39789#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_n_s32)"]
39790#[inline]
39791#[target_feature(enable = "neon")]
39792#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39793#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
39794#[cfg_attr(
39795    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39796    assert_instr(sqshl, N = 2)
39797)]
39798#[rustc_legacy_const_generics(1)]
39799#[cfg_attr(
39800    not(target_arch = "arm"),
39801    stable(feature = "neon_intrinsics", since = "1.59.0")
39802)]
39803#[cfg_attr(
39804    target_arch = "arm",
39805    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39806)]
39807pub fn vqshlq_n_s32<const N: i32>(a: int32x4_t) -> int32x4_t {
39808    static_assert_uimm_bits!(N, 5);
39809    vqshlq_s32(a, vdupq_n_s32(N as _))
39810}
39811#[doc = "Signed saturating shift left"]
39812#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_n_s64)"]
39813#[inline]
39814#[target_feature(enable = "neon")]
39815#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39816#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
39817#[cfg_attr(
39818    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39819    assert_instr(sqshl, N = 2)
39820)]
39821#[rustc_legacy_const_generics(1)]
39822#[cfg_attr(
39823    not(target_arch = "arm"),
39824    stable(feature = "neon_intrinsics", since = "1.59.0")
39825)]
39826#[cfg_attr(
39827    target_arch = "arm",
39828    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39829)]
39830pub fn vqshl_n_s64<const N: i32>(a: int64x1_t) -> int64x1_t {
39831    static_assert_uimm_bits!(N, 6);
39832    vqshl_s64(a, vdup_n_s64(N as _))
39833}
39834#[doc = "Signed saturating shift left"]
39835#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_n_s64)"]
39836#[inline]
39837#[target_feature(enable = "neon")]
39838#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39839#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
39840#[cfg_attr(
39841    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39842    assert_instr(sqshl, N = 2)
39843)]
39844#[rustc_legacy_const_generics(1)]
39845#[cfg_attr(
39846    not(target_arch = "arm"),
39847    stable(feature = "neon_intrinsics", since = "1.59.0")
39848)]
39849#[cfg_attr(
39850    target_arch = "arm",
39851    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39852)]
39853pub fn vqshlq_n_s64<const N: i32>(a: int64x2_t) -> int64x2_t {
39854    static_assert_uimm_bits!(N, 6);
39855    vqshlq_s64(a, vdupq_n_s64(N as _))
39856}
39857#[doc = "Unsigned saturating shift left"]
39858#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_n_u8)"]
39859#[inline]
39860#[target_feature(enable = "neon")]
39861#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39862#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
39863#[cfg_attr(
39864    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39865    assert_instr(uqshl, N = 2)
39866)]
39867#[rustc_legacy_const_generics(1)]
39868#[cfg_attr(
39869    not(target_arch = "arm"),
39870    stable(feature = "neon_intrinsics", since = "1.59.0")
39871)]
39872#[cfg_attr(
39873    target_arch = "arm",
39874    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39875)]
39876pub fn vqshl_n_u8<const N: i32>(a: uint8x8_t) -> uint8x8_t {
39877    static_assert_uimm_bits!(N, 3);
39878    vqshl_u8(a, vdup_n_s8(N as _))
39879}
39880#[doc = "Unsigned saturating shift left"]
39881#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_n_u8)"]
39882#[inline]
39883#[target_feature(enable = "neon")]
39884#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39885#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
39886#[cfg_attr(
39887    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39888    assert_instr(uqshl, N = 2)
39889)]
39890#[rustc_legacy_const_generics(1)]
39891#[cfg_attr(
39892    not(target_arch = "arm"),
39893    stable(feature = "neon_intrinsics", since = "1.59.0")
39894)]
39895#[cfg_attr(
39896    target_arch = "arm",
39897    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39898)]
39899pub fn vqshlq_n_u8<const N: i32>(a: uint8x16_t) -> uint8x16_t {
39900    static_assert_uimm_bits!(N, 3);
39901    vqshlq_u8(a, vdupq_n_s8(N as _))
39902}
39903#[doc = "Unsigned saturating shift left"]
39904#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_n_u16)"]
39905#[inline]
39906#[target_feature(enable = "neon")]
39907#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39908#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
39909#[cfg_attr(
39910    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39911    assert_instr(uqshl, N = 2)
39912)]
39913#[rustc_legacy_const_generics(1)]
39914#[cfg_attr(
39915    not(target_arch = "arm"),
39916    stable(feature = "neon_intrinsics", since = "1.59.0")
39917)]
39918#[cfg_attr(
39919    target_arch = "arm",
39920    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39921)]
39922pub fn vqshl_n_u16<const N: i32>(a: uint16x4_t) -> uint16x4_t {
39923    static_assert_uimm_bits!(N, 4);
39924    vqshl_u16(a, vdup_n_s16(N as _))
39925}
39926#[doc = "Unsigned saturating shift left"]
39927#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_n_u16)"]
39928#[inline]
39929#[target_feature(enable = "neon")]
39930#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39931#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
39932#[cfg_attr(
39933    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39934    assert_instr(uqshl, N = 2)
39935)]
39936#[rustc_legacy_const_generics(1)]
39937#[cfg_attr(
39938    not(target_arch = "arm"),
39939    stable(feature = "neon_intrinsics", since = "1.59.0")
39940)]
39941#[cfg_attr(
39942    target_arch = "arm",
39943    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39944)]
39945pub fn vqshlq_n_u16<const N: i32>(a: uint16x8_t) -> uint16x8_t {
39946    static_assert_uimm_bits!(N, 4);
39947    vqshlq_u16(a, vdupq_n_s16(N as _))
39948}
39949#[doc = "Unsigned saturating shift left"]
39950#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_n_u32)"]
39951#[inline]
39952#[target_feature(enable = "neon")]
39953#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39954#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
39955#[cfg_attr(
39956    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39957    assert_instr(uqshl, N = 2)
39958)]
39959#[rustc_legacy_const_generics(1)]
39960#[cfg_attr(
39961    not(target_arch = "arm"),
39962    stable(feature = "neon_intrinsics", since = "1.59.0")
39963)]
39964#[cfg_attr(
39965    target_arch = "arm",
39966    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39967)]
39968pub fn vqshl_n_u32<const N: i32>(a: uint32x2_t) -> uint32x2_t {
39969    static_assert_uimm_bits!(N, 5);
39970    vqshl_u32(a, vdup_n_s32(N as _))
39971}
39972#[doc = "Unsigned saturating shift left"]
39973#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_n_u32)"]
39974#[inline]
39975#[target_feature(enable = "neon")]
39976#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39977#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
39978#[cfg_attr(
39979    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39980    assert_instr(uqshl, N = 2)
39981)]
39982#[rustc_legacy_const_generics(1)]
39983#[cfg_attr(
39984    not(target_arch = "arm"),
39985    stable(feature = "neon_intrinsics", since = "1.59.0")
39986)]
39987#[cfg_attr(
39988    target_arch = "arm",
39989    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39990)]
39991pub fn vqshlq_n_u32<const N: i32>(a: uint32x4_t) -> uint32x4_t {
39992    static_assert_uimm_bits!(N, 5);
39993    vqshlq_u32(a, vdupq_n_s32(N as _))
39994}
39995#[doc = "Unsigned saturating shift left"]
39996#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_n_u64)"]
39997#[inline]
39998#[target_feature(enable = "neon")]
39999#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40000#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
40001#[cfg_attr(
40002    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40003    assert_instr(uqshl, N = 2)
40004)]
40005#[rustc_legacy_const_generics(1)]
40006#[cfg_attr(
40007    not(target_arch = "arm"),
40008    stable(feature = "neon_intrinsics", since = "1.59.0")
40009)]
40010#[cfg_attr(
40011    target_arch = "arm",
40012    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40013)]
40014pub fn vqshl_n_u64<const N: i32>(a: uint64x1_t) -> uint64x1_t {
40015    static_assert_uimm_bits!(N, 6);
40016    vqshl_u64(a, vdup_n_s64(N as _))
40017}
40018#[doc = "Unsigned saturating shift left"]
40019#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_n_u64)"]
40020#[inline]
40021#[target_feature(enable = "neon")]
40022#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40023#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
40024#[cfg_attr(
40025    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40026    assert_instr(uqshl, N = 2)
40027)]
40028#[rustc_legacy_const_generics(1)]
40029#[cfg_attr(
40030    not(target_arch = "arm"),
40031    stable(feature = "neon_intrinsics", since = "1.59.0")
40032)]
40033#[cfg_attr(
40034    target_arch = "arm",
40035    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40036)]
40037pub fn vqshlq_n_u64<const N: i32>(a: uint64x2_t) -> uint64x2_t {
40038    static_assert_uimm_bits!(N, 6);
40039    vqshlq_u64(a, vdupq_n_s64(N as _))
40040}
40041#[doc = "Signed saturating shift left"]
40042#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_s8)"]
40043#[inline]
40044#[target_feature(enable = "neon")]
40045#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40046#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
40047#[cfg_attr(
40048    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40049    assert_instr(sqshl)
40050)]
40051#[cfg_attr(
40052    not(target_arch = "arm"),
40053    stable(feature = "neon_intrinsics", since = "1.59.0")
40054)]
40055#[cfg_attr(
40056    target_arch = "arm",
40057    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40058)]
40059pub fn vqshl_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
40060    unsafe extern "unadjusted" {
40061        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshifts.v8i8")]
40062        #[cfg_attr(
40063            any(target_arch = "aarch64", target_arch = "arm64ec"),
40064            link_name = "llvm.aarch64.neon.sqshl.v8i8"
40065        )]
40066        fn _vqshl_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t;
40067    }
40068    unsafe { _vqshl_s8(a, b) }
40069}
40070#[doc = "Signed saturating shift left"]
40071#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_s8)"]
40072#[inline]
40073#[target_feature(enable = "neon")]
40074#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40075#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
40076#[cfg_attr(
40077    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40078    assert_instr(sqshl)
40079)]
40080#[cfg_attr(
40081    not(target_arch = "arm"),
40082    stable(feature = "neon_intrinsics", since = "1.59.0")
40083)]
40084#[cfg_attr(
40085    target_arch = "arm",
40086    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40087)]
40088pub fn vqshlq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
40089    unsafe extern "unadjusted" {
40090        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshifts.v16i8")]
40091        #[cfg_attr(
40092            any(target_arch = "aarch64", target_arch = "arm64ec"),
40093            link_name = "llvm.aarch64.neon.sqshl.v16i8"
40094        )]
40095        fn _vqshlq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t;
40096    }
40097    unsafe { _vqshlq_s8(a, b) }
40098}
40099#[doc = "Signed saturating shift left"]
40100#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_s16)"]
40101#[inline]
40102#[target_feature(enable = "neon")]
40103#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40104#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
40105#[cfg_attr(
40106    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40107    assert_instr(sqshl)
40108)]
40109#[cfg_attr(
40110    not(target_arch = "arm"),
40111    stable(feature = "neon_intrinsics", since = "1.59.0")
40112)]
40113#[cfg_attr(
40114    target_arch = "arm",
40115    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40116)]
40117pub fn vqshl_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
40118    unsafe extern "unadjusted" {
40119        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshifts.v4i16")]
40120        #[cfg_attr(
40121            any(target_arch = "aarch64", target_arch = "arm64ec"),
40122            link_name = "llvm.aarch64.neon.sqshl.v4i16"
40123        )]
40124        fn _vqshl_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t;
40125    }
40126    unsafe { _vqshl_s16(a, b) }
40127}
40128#[doc = "Signed saturating shift left"]
40129#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_s16)"]
40130#[inline]
40131#[target_feature(enable = "neon")]
40132#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40133#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
40134#[cfg_attr(
40135    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40136    assert_instr(sqshl)
40137)]
40138#[cfg_attr(
40139    not(target_arch = "arm"),
40140    stable(feature = "neon_intrinsics", since = "1.59.0")
40141)]
40142#[cfg_attr(
40143    target_arch = "arm",
40144    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40145)]
40146pub fn vqshlq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
40147    unsafe extern "unadjusted" {
40148        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshifts.v8i16")]
40149        #[cfg_attr(
40150            any(target_arch = "aarch64", target_arch = "arm64ec"),
40151            link_name = "llvm.aarch64.neon.sqshl.v8i16"
40152        )]
40153        fn _vqshlq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t;
40154    }
40155    unsafe { _vqshlq_s16(a, b) }
40156}
40157#[doc = "Signed saturating shift left"]
40158#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_s32)"]
40159#[inline]
40160#[target_feature(enable = "neon")]
40161#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40162#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
40163#[cfg_attr(
40164    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40165    assert_instr(sqshl)
40166)]
40167#[cfg_attr(
40168    not(target_arch = "arm"),
40169    stable(feature = "neon_intrinsics", since = "1.59.0")
40170)]
40171#[cfg_attr(
40172    target_arch = "arm",
40173    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40174)]
40175pub fn vqshl_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
40176    unsafe extern "unadjusted" {
40177        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshifts.v2i32")]
40178        #[cfg_attr(
40179            any(target_arch = "aarch64", target_arch = "arm64ec"),
40180            link_name = "llvm.aarch64.neon.sqshl.v2i32"
40181        )]
40182        fn _vqshl_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t;
40183    }
40184    unsafe { _vqshl_s32(a, b) }
40185}
40186#[doc = "Signed saturating shift left"]
40187#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_s32)"]
40188#[inline]
40189#[target_feature(enable = "neon")]
40190#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40191#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
40192#[cfg_attr(
40193    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40194    assert_instr(sqshl)
40195)]
40196#[cfg_attr(
40197    not(target_arch = "arm"),
40198    stable(feature = "neon_intrinsics", since = "1.59.0")
40199)]
40200#[cfg_attr(
40201    target_arch = "arm",
40202    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40203)]
40204pub fn vqshlq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
40205    unsafe extern "unadjusted" {
40206        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshifts.v4i32")]
40207        #[cfg_attr(
40208            any(target_arch = "aarch64", target_arch = "arm64ec"),
40209            link_name = "llvm.aarch64.neon.sqshl.v4i32"
40210        )]
40211        fn _vqshlq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t;
40212    }
40213    unsafe { _vqshlq_s32(a, b) }
40214}
40215#[doc = "Signed saturating shift left"]
40216#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_s64)"]
40217#[inline]
40218#[target_feature(enable = "neon")]
40219#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40220#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
40221#[cfg_attr(
40222    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40223    assert_instr(sqshl)
40224)]
40225#[cfg_attr(
40226    not(target_arch = "arm"),
40227    stable(feature = "neon_intrinsics", since = "1.59.0")
40228)]
40229#[cfg_attr(
40230    target_arch = "arm",
40231    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40232)]
40233pub fn vqshl_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t {
40234    unsafe extern "unadjusted" {
40235        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshifts.v1i64")]
40236        #[cfg_attr(
40237            any(target_arch = "aarch64", target_arch = "arm64ec"),
40238            link_name = "llvm.aarch64.neon.sqshl.v1i64"
40239        )]
40240        fn _vqshl_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t;
40241    }
40242    unsafe { _vqshl_s64(a, b) }
40243}
40244#[doc = "Signed saturating shift left"]
40245#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_s64)"]
40246#[inline]
40247#[target_feature(enable = "neon")]
40248#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40249#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
40250#[cfg_attr(
40251    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40252    assert_instr(sqshl)
40253)]
40254#[cfg_attr(
40255    not(target_arch = "arm"),
40256    stable(feature = "neon_intrinsics", since = "1.59.0")
40257)]
40258#[cfg_attr(
40259    target_arch = "arm",
40260    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40261)]
40262pub fn vqshlq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t {
40263    unsafe extern "unadjusted" {
40264        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshifts.v2i64")]
40265        #[cfg_attr(
40266            any(target_arch = "aarch64", target_arch = "arm64ec"),
40267            link_name = "llvm.aarch64.neon.sqshl.v2i64"
40268        )]
40269        fn _vqshlq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t;
40270    }
40271    unsafe { _vqshlq_s64(a, b) }
40272}
40273#[doc = "Unsigned saturating shift left"]
40274#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_u8)"]
40275#[inline]
40276#[target_feature(enable = "neon")]
40277#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40278#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
40279#[cfg_attr(
40280    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40281    assert_instr(uqshl)
40282)]
40283#[cfg_attr(
40284    not(target_arch = "arm"),
40285    stable(feature = "neon_intrinsics", since = "1.59.0")
40286)]
40287#[cfg_attr(
40288    target_arch = "arm",
40289    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40290)]
40291pub fn vqshl_u8(a: uint8x8_t, b: int8x8_t) -> uint8x8_t {
40292    unsafe extern "unadjusted" {
40293        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftu.v8i8")]
40294        #[cfg_attr(
40295            any(target_arch = "aarch64", target_arch = "arm64ec"),
40296            link_name = "llvm.aarch64.neon.uqshl.v8i8"
40297        )]
40298        fn _vqshl_u8(a: uint8x8_t, b: int8x8_t) -> uint8x8_t;
40299    }
40300    unsafe { _vqshl_u8(a, b) }
40301}
40302#[doc = "Unsigned saturating shift left"]
40303#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_u8)"]
40304#[inline]
40305#[target_feature(enable = "neon")]
40306#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40307#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
40308#[cfg_attr(
40309    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40310    assert_instr(uqshl)
40311)]
40312#[cfg_attr(
40313    not(target_arch = "arm"),
40314    stable(feature = "neon_intrinsics", since = "1.59.0")
40315)]
40316#[cfg_attr(
40317    target_arch = "arm",
40318    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40319)]
40320pub fn vqshlq_u8(a: uint8x16_t, b: int8x16_t) -> uint8x16_t {
40321    unsafe extern "unadjusted" {
40322        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftu.v16i8")]
40323        #[cfg_attr(
40324            any(target_arch = "aarch64", target_arch = "arm64ec"),
40325            link_name = "llvm.aarch64.neon.uqshl.v16i8"
40326        )]
40327        fn _vqshlq_u8(a: uint8x16_t, b: int8x16_t) -> uint8x16_t;
40328    }
40329    unsafe { _vqshlq_u8(a, b) }
40330}
40331#[doc = "Unsigned saturating shift left"]
40332#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_u16)"]
40333#[inline]
40334#[target_feature(enable = "neon")]
40335#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40336#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
40337#[cfg_attr(
40338    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40339    assert_instr(uqshl)
40340)]
40341#[cfg_attr(
40342    not(target_arch = "arm"),
40343    stable(feature = "neon_intrinsics", since = "1.59.0")
40344)]
40345#[cfg_attr(
40346    target_arch = "arm",
40347    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40348)]
40349pub fn vqshl_u16(a: uint16x4_t, b: int16x4_t) -> uint16x4_t {
40350    unsafe extern "unadjusted" {
40351        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftu.v4i16")]
40352        #[cfg_attr(
40353            any(target_arch = "aarch64", target_arch = "arm64ec"),
40354            link_name = "llvm.aarch64.neon.uqshl.v4i16"
40355        )]
40356        fn _vqshl_u16(a: uint16x4_t, b: int16x4_t) -> uint16x4_t;
40357    }
40358    unsafe { _vqshl_u16(a, b) }
40359}
40360#[doc = "Unsigned saturating shift left"]
40361#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_u16)"]
40362#[inline]
40363#[target_feature(enable = "neon")]
40364#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40365#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
40366#[cfg_attr(
40367    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40368    assert_instr(uqshl)
40369)]
40370#[cfg_attr(
40371    not(target_arch = "arm"),
40372    stable(feature = "neon_intrinsics", since = "1.59.0")
40373)]
40374#[cfg_attr(
40375    target_arch = "arm",
40376    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40377)]
40378pub fn vqshlq_u16(a: uint16x8_t, b: int16x8_t) -> uint16x8_t {
40379    unsafe extern "unadjusted" {
40380        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftu.v8i16")]
40381        #[cfg_attr(
40382            any(target_arch = "aarch64", target_arch = "arm64ec"),
40383            link_name = "llvm.aarch64.neon.uqshl.v8i16"
40384        )]
40385        fn _vqshlq_u16(a: uint16x8_t, b: int16x8_t) -> uint16x8_t;
40386    }
40387    unsafe { _vqshlq_u16(a, b) }
40388}
40389#[doc = "Unsigned saturating shift left"]
40390#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_u32)"]
40391#[inline]
40392#[target_feature(enable = "neon")]
40393#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40394#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
40395#[cfg_attr(
40396    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40397    assert_instr(uqshl)
40398)]
40399#[cfg_attr(
40400    not(target_arch = "arm"),
40401    stable(feature = "neon_intrinsics", since = "1.59.0")
40402)]
40403#[cfg_attr(
40404    target_arch = "arm",
40405    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40406)]
40407pub fn vqshl_u32(a: uint32x2_t, b: int32x2_t) -> uint32x2_t {
40408    unsafe extern "unadjusted" {
40409        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftu.v2i32")]
40410        #[cfg_attr(
40411            any(target_arch = "aarch64", target_arch = "arm64ec"),
40412            link_name = "llvm.aarch64.neon.uqshl.v2i32"
40413        )]
40414        fn _vqshl_u32(a: uint32x2_t, b: int32x2_t) -> uint32x2_t;
40415    }
40416    unsafe { _vqshl_u32(a, b) }
40417}
40418#[doc = "Unsigned saturating shift left"]
40419#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_u32)"]
40420#[inline]
40421#[target_feature(enable = "neon")]
40422#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40423#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
40424#[cfg_attr(
40425    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40426    assert_instr(uqshl)
40427)]
40428#[cfg_attr(
40429    not(target_arch = "arm"),
40430    stable(feature = "neon_intrinsics", since = "1.59.0")
40431)]
40432#[cfg_attr(
40433    target_arch = "arm",
40434    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40435)]
40436pub fn vqshlq_u32(a: uint32x4_t, b: int32x4_t) -> uint32x4_t {
40437    unsafe extern "unadjusted" {
40438        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftu.v4i32")]
40439        #[cfg_attr(
40440            any(target_arch = "aarch64", target_arch = "arm64ec"),
40441            link_name = "llvm.aarch64.neon.uqshl.v4i32"
40442        )]
40443        fn _vqshlq_u32(a: uint32x4_t, b: int32x4_t) -> uint32x4_t;
40444    }
40445    unsafe { _vqshlq_u32(a, b) }
40446}
40447#[doc = "Unsigned saturating shift left"]
40448#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_u64)"]
40449#[inline]
40450#[target_feature(enable = "neon")]
40451#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40452#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
40453#[cfg_attr(
40454    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40455    assert_instr(uqshl)
40456)]
40457#[cfg_attr(
40458    not(target_arch = "arm"),
40459    stable(feature = "neon_intrinsics", since = "1.59.0")
40460)]
40461#[cfg_attr(
40462    target_arch = "arm",
40463    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40464)]
40465pub fn vqshl_u64(a: uint64x1_t, b: int64x1_t) -> uint64x1_t {
40466    unsafe extern "unadjusted" {
40467        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftu.v1i64")]
40468        #[cfg_attr(
40469            any(target_arch = "aarch64", target_arch = "arm64ec"),
40470            link_name = "llvm.aarch64.neon.uqshl.v1i64"
40471        )]
40472        fn _vqshl_u64(a: uint64x1_t, b: int64x1_t) -> uint64x1_t;
40473    }
40474    unsafe { _vqshl_u64(a, b) }
40475}
40476#[doc = "Unsigned saturating shift left"]
40477#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_u64)"]
40478#[inline]
40479#[target_feature(enable = "neon")]
40480#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40481#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
40482#[cfg_attr(
40483    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40484    assert_instr(uqshl)
40485)]
40486#[cfg_attr(
40487    not(target_arch = "arm"),
40488    stable(feature = "neon_intrinsics", since = "1.59.0")
40489)]
40490#[cfg_attr(
40491    target_arch = "arm",
40492    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40493)]
40494pub fn vqshlq_u64(a: uint64x2_t, b: int64x2_t) -> uint64x2_t {
40495    unsafe extern "unadjusted" {
40496        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftu.v2i64")]
40497        #[cfg_attr(
40498            any(target_arch = "aarch64", target_arch = "arm64ec"),
40499            link_name = "llvm.aarch64.neon.uqshl.v2i64"
40500        )]
40501        fn _vqshlq_u64(a: uint64x2_t, b: int64x2_t) -> uint64x2_t;
40502    }
40503    unsafe { _vqshlq_u64(a, b) }
40504}
40505#[doc = "Signed saturating shift left unsigned"]
40506#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlu_n_s8)"]
40507#[inline]
40508#[cfg(target_arch = "arm")]
40509#[target_feature(enable = "neon,v7")]
40510#[cfg_attr(test, assert_instr(vqshlu, N = 2))]
40511#[rustc_legacy_const_generics(1)]
40512#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
40513pub fn vqshlu_n_s8<const N: i32>(a: int8x8_t) -> uint8x8_t {
40514    static_assert_uimm_bits!(N, 3);
40515    unsafe extern "unadjusted" {
40516        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftsu.v8i8")]
40517        fn _vqshlu_n_s8(a: int8x8_t, n: int8x8_t) -> uint8x8_t;
40518    }
40519    unsafe { _vqshlu_n_s8(a, const { int8x8_t([N as i8; 8]) }) }
40520}
40521#[doc = "Signed saturating shift left unsigned"]
40522#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshluq_n_s8)"]
40523#[inline]
40524#[cfg(target_arch = "arm")]
40525#[target_feature(enable = "neon,v7")]
40526#[cfg_attr(test, assert_instr(vqshlu, N = 2))]
40527#[rustc_legacy_const_generics(1)]
40528#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
40529pub fn vqshluq_n_s8<const N: i32>(a: int8x16_t) -> uint8x16_t {
40530    static_assert_uimm_bits!(N, 3);
40531    unsafe extern "unadjusted" {
40532        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftsu.v16i8")]
40533        fn _vqshluq_n_s8(a: int8x16_t, n: int8x16_t) -> uint8x16_t;
40534    }
40535    unsafe { _vqshluq_n_s8(a, const { int8x16_t([N as i8; 16]) }) }
40536}
40537#[doc = "Signed saturating shift left unsigned"]
40538#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlu_n_s16)"]
40539#[inline]
40540#[cfg(target_arch = "arm")]
40541#[target_feature(enable = "neon,v7")]
40542#[cfg_attr(test, assert_instr(vqshlu, N = 2))]
40543#[rustc_legacy_const_generics(1)]
40544#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
40545pub fn vqshlu_n_s16<const N: i32>(a: int16x4_t) -> uint16x4_t {
40546    static_assert_uimm_bits!(N, 4);
40547    unsafe extern "unadjusted" {
40548        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftsu.v4i16")]
40549        fn _vqshlu_n_s16(a: int16x4_t, n: int16x4_t) -> uint16x4_t;
40550    }
40551    unsafe { _vqshlu_n_s16(a, const { int16x4_t([N as i16; 4]) }) }
40552}
40553#[doc = "Signed saturating shift left unsigned"]
40554#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshluq_n_s16)"]
40555#[inline]
40556#[cfg(target_arch = "arm")]
40557#[target_feature(enable = "neon,v7")]
40558#[cfg_attr(test, assert_instr(vqshlu, N = 2))]
40559#[rustc_legacy_const_generics(1)]
40560#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
40561pub fn vqshluq_n_s16<const N: i32>(a: int16x8_t) -> uint16x8_t {
40562    static_assert_uimm_bits!(N, 4);
40563    unsafe extern "unadjusted" {
40564        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftsu.v8i16")]
40565        fn _vqshluq_n_s16(a: int16x8_t, n: int16x8_t) -> uint16x8_t;
40566    }
40567    unsafe { _vqshluq_n_s16(a, const { int16x8_t([N as i16; 8]) }) }
40568}
40569#[doc = "Signed saturating shift left unsigned"]
40570#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlu_n_s32)"]
40571#[inline]
40572#[cfg(target_arch = "arm")]
40573#[target_feature(enable = "neon,v7")]
40574#[cfg_attr(test, assert_instr(vqshlu, N = 2))]
40575#[rustc_legacy_const_generics(1)]
40576#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
40577pub fn vqshlu_n_s32<const N: i32>(a: int32x2_t) -> uint32x2_t {
40578    static_assert_uimm_bits!(N, 5);
40579    unsafe extern "unadjusted" {
40580        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftsu.v2i32")]
40581        fn _vqshlu_n_s32(a: int32x2_t, n: int32x2_t) -> uint32x2_t;
40582    }
40583    unsafe { _vqshlu_n_s32(a, const { int32x2_t([N; 2]) }) }
40584}
40585#[doc = "Signed saturating shift left unsigned"]
40586#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshluq_n_s32)"]
40587#[inline]
40588#[cfg(target_arch = "arm")]
40589#[target_feature(enable = "neon,v7")]
40590#[cfg_attr(test, assert_instr(vqshlu, N = 2))]
40591#[rustc_legacy_const_generics(1)]
40592#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
40593pub fn vqshluq_n_s32<const N: i32>(a: int32x4_t) -> uint32x4_t {
40594    static_assert_uimm_bits!(N, 5);
40595    unsafe extern "unadjusted" {
40596        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftsu.v4i32")]
40597        fn _vqshluq_n_s32(a: int32x4_t, n: int32x4_t) -> uint32x4_t;
40598    }
40599    unsafe { _vqshluq_n_s32(a, const { int32x4_t([N; 4]) }) }
40600}
40601#[doc = "Signed saturating shift left unsigned"]
40602#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlu_n_s64)"]
40603#[inline]
40604#[cfg(target_arch = "arm")]
40605#[target_feature(enable = "neon,v7")]
40606#[cfg_attr(test, assert_instr(vqshlu, N = 2))]
40607#[rustc_legacy_const_generics(1)]
40608#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
40609pub fn vqshlu_n_s64<const N: i32>(a: int64x1_t) -> uint64x1_t {
40610    static_assert_uimm_bits!(N, 6);
40611    unsafe extern "unadjusted" {
40612        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftsu.v1i64")]
40613        fn _vqshlu_n_s64(a: int64x1_t, n: int64x1_t) -> uint64x1_t;
40614    }
40615    unsafe { _vqshlu_n_s64(a, const { int64x1_t([N as i64]) }) }
40616}
40617#[doc = "Signed saturating shift left unsigned"]
40618#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshluq_n_s64)"]
40619#[inline]
40620#[cfg(target_arch = "arm")]
40621#[target_feature(enable = "neon,v7")]
40622#[cfg_attr(test, assert_instr(vqshlu, N = 2))]
40623#[rustc_legacy_const_generics(1)]
40624#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
40625pub fn vqshluq_n_s64<const N: i32>(a: int64x2_t) -> uint64x2_t {
40626    static_assert_uimm_bits!(N, 6);
40627    unsafe extern "unadjusted" {
40628        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftsu.v2i64")]
40629        fn _vqshluq_n_s64(a: int64x2_t, n: int64x2_t) -> uint64x2_t;
40630    }
40631    unsafe { _vqshluq_n_s64(a, const { int64x2_t([N as i64; 2]) }) }
40632}
40633#[doc = "Signed saturating shift left unsigned"]
40634#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlu_n_s8)"]
40635#[inline]
40636#[target_feature(enable = "neon")]
40637#[cfg(not(target_arch = "arm"))]
40638#[cfg_attr(test, assert_instr(sqshlu, N = 2))]
40639#[rustc_legacy_const_generics(1)]
40640#[stable(feature = "neon_intrinsics", since = "1.59.0")]
40641pub fn vqshlu_n_s8<const N: i32>(a: int8x8_t) -> uint8x8_t {
40642    static_assert_uimm_bits!(N, 3);
40643    unsafe extern "unadjusted" {
40644        #[cfg_attr(
40645            any(target_arch = "aarch64", target_arch = "arm64ec"),
40646            link_name = "llvm.aarch64.neon.sqshlu.v8i8"
40647        )]
40648        fn _vqshlu_n_s8(a: int8x8_t, n: int8x8_t) -> uint8x8_t;
40649    }
40650    unsafe { _vqshlu_n_s8(a, const { int8x8_t([N as i8; 8]) }) }
40651}
40652#[doc = "Signed saturating shift left unsigned"]
40653#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshluq_n_s8)"]
40654#[inline]
40655#[target_feature(enable = "neon")]
40656#[cfg(not(target_arch = "arm"))]
40657#[cfg_attr(test, assert_instr(sqshlu, N = 2))]
40658#[rustc_legacy_const_generics(1)]
40659#[stable(feature = "neon_intrinsics", since = "1.59.0")]
40660pub fn vqshluq_n_s8<const N: i32>(a: int8x16_t) -> uint8x16_t {
40661    static_assert_uimm_bits!(N, 3);
40662    unsafe extern "unadjusted" {
40663        #[cfg_attr(
40664            any(target_arch = "aarch64", target_arch = "arm64ec"),
40665            link_name = "llvm.aarch64.neon.sqshlu.v16i8"
40666        )]
40667        fn _vqshluq_n_s8(a: int8x16_t, n: int8x16_t) -> uint8x16_t;
40668    }
40669    unsafe { _vqshluq_n_s8(a, const { int8x16_t([N as i8; 16]) }) }
40670}
40671#[doc = "Signed saturating shift left unsigned"]
40672#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlu_n_s16)"]
40673#[inline]
40674#[target_feature(enable = "neon")]
40675#[cfg(not(target_arch = "arm"))]
40676#[cfg_attr(test, assert_instr(sqshlu, N = 2))]
40677#[rustc_legacy_const_generics(1)]
40678#[stable(feature = "neon_intrinsics", since = "1.59.0")]
40679pub fn vqshlu_n_s16<const N: i32>(a: int16x4_t) -> uint16x4_t {
40680    static_assert_uimm_bits!(N, 4);
40681    unsafe extern "unadjusted" {
40682        #[cfg_attr(
40683            any(target_arch = "aarch64", target_arch = "arm64ec"),
40684            link_name = "llvm.aarch64.neon.sqshlu.v4i16"
40685        )]
40686        fn _vqshlu_n_s16(a: int16x4_t, n: int16x4_t) -> uint16x4_t;
40687    }
40688    unsafe { _vqshlu_n_s16(a, const { int16x4_t([N as i16; 4]) }) }
40689}
40690#[doc = "Signed saturating shift left unsigned"]
40691#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshluq_n_s16)"]
40692#[inline]
40693#[target_feature(enable = "neon")]
40694#[cfg(not(target_arch = "arm"))]
40695#[cfg_attr(test, assert_instr(sqshlu, N = 2))]
40696#[rustc_legacy_const_generics(1)]
40697#[stable(feature = "neon_intrinsics", since = "1.59.0")]
40698pub fn vqshluq_n_s16<const N: i32>(a: int16x8_t) -> uint16x8_t {
40699    static_assert_uimm_bits!(N, 4);
40700    unsafe extern "unadjusted" {
40701        #[cfg_attr(
40702            any(target_arch = "aarch64", target_arch = "arm64ec"),
40703            link_name = "llvm.aarch64.neon.sqshlu.v8i16"
40704        )]
40705        fn _vqshluq_n_s16(a: int16x8_t, n: int16x8_t) -> uint16x8_t;
40706    }
40707    unsafe { _vqshluq_n_s16(a, const { int16x8_t([N as i16; 8]) }) }
40708}
40709#[doc = "Signed saturating shift left unsigned"]
40710#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlu_n_s32)"]
40711#[inline]
40712#[target_feature(enable = "neon")]
40713#[cfg(not(target_arch = "arm"))]
40714#[cfg_attr(test, assert_instr(sqshlu, N = 2))]
40715#[rustc_legacy_const_generics(1)]
40716#[stable(feature = "neon_intrinsics", since = "1.59.0")]
40717pub fn vqshlu_n_s32<const N: i32>(a: int32x2_t) -> uint32x2_t {
40718    static_assert_uimm_bits!(N, 5);
40719    unsafe extern "unadjusted" {
40720        #[cfg_attr(
40721            any(target_arch = "aarch64", target_arch = "arm64ec"),
40722            link_name = "llvm.aarch64.neon.sqshlu.v2i32"
40723        )]
40724        fn _vqshlu_n_s32(a: int32x2_t, n: int32x2_t) -> uint32x2_t;
40725    }
40726    unsafe { _vqshlu_n_s32(a, const { int32x2_t([N; 2]) }) }
40727}
40728#[doc = "Signed saturating shift left unsigned"]
40729#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshluq_n_s32)"]
40730#[inline]
40731#[target_feature(enable = "neon")]
40732#[cfg(not(target_arch = "arm"))]
40733#[cfg_attr(test, assert_instr(sqshlu, N = 2))]
40734#[rustc_legacy_const_generics(1)]
40735#[stable(feature = "neon_intrinsics", since = "1.59.0")]
40736pub fn vqshluq_n_s32<const N: i32>(a: int32x4_t) -> uint32x4_t {
40737    static_assert_uimm_bits!(N, 5);
40738    unsafe extern "unadjusted" {
40739        #[cfg_attr(
40740            any(target_arch = "aarch64", target_arch = "arm64ec"),
40741            link_name = "llvm.aarch64.neon.sqshlu.v4i32"
40742        )]
40743        fn _vqshluq_n_s32(a: int32x4_t, n: int32x4_t) -> uint32x4_t;
40744    }
40745    unsafe { _vqshluq_n_s32(a, const { int32x4_t([N; 4]) }) }
40746}
40747#[doc = "Signed saturating shift left unsigned"]
40748#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlu_n_s64)"]
40749#[inline]
40750#[target_feature(enable = "neon")]
40751#[cfg(not(target_arch = "arm"))]
40752#[cfg_attr(test, assert_instr(sqshlu, N = 2))]
40753#[rustc_legacy_const_generics(1)]
40754#[stable(feature = "neon_intrinsics", since = "1.59.0")]
40755pub fn vqshlu_n_s64<const N: i32>(a: int64x1_t) -> uint64x1_t {
40756    static_assert_uimm_bits!(N, 6);
40757    unsafe extern "unadjusted" {
40758        #[cfg_attr(
40759            any(target_arch = "aarch64", target_arch = "arm64ec"),
40760            link_name = "llvm.aarch64.neon.sqshlu.v1i64"
40761        )]
40762        fn _vqshlu_n_s64(a: int64x1_t, n: int64x1_t) -> uint64x1_t;
40763    }
40764    unsafe { _vqshlu_n_s64(a, const { int64x1_t([N as i64]) }) }
40765}
40766#[doc = "Signed saturating shift left unsigned"]
40767#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshluq_n_s64)"]
40768#[inline]
40769#[target_feature(enable = "neon")]
40770#[cfg(not(target_arch = "arm"))]
40771#[cfg_attr(test, assert_instr(sqshlu, N = 2))]
40772#[rustc_legacy_const_generics(1)]
40773#[stable(feature = "neon_intrinsics", since = "1.59.0")]
40774pub fn vqshluq_n_s64<const N: i32>(a: int64x2_t) -> uint64x2_t {
40775    static_assert_uimm_bits!(N, 6);
40776    unsafe extern "unadjusted" {
40777        #[cfg_attr(
40778            any(target_arch = "aarch64", target_arch = "arm64ec"),
40779            link_name = "llvm.aarch64.neon.sqshlu.v2i64"
40780        )]
40781        fn _vqshluq_n_s64(a: int64x2_t, n: int64x2_t) -> uint64x2_t;
40782    }
40783    unsafe { _vqshluq_n_s64(a, const { int64x2_t([N as i64; 2]) }) }
40784}
40785#[doc = "Signed saturating shift right narrow"]
40786#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_s16)"]
40787#[inline]
40788#[cfg(target_arch = "arm")]
40789#[target_feature(enable = "neon,v7")]
40790#[cfg_attr(test, assert_instr(vqshrn, N = 2))]
40791#[rustc_legacy_const_generics(1)]
40792#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
40793pub fn vqshrn_n_s16<const N: i32>(a: int16x8_t) -> int8x8_t {
40794    static_assert!(N >= 1 && N <= 8);
40795    unsafe extern "unadjusted" {
40796        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftns.v8i8")]
40797        fn _vqshrn_n_s16(a: int16x8_t, n: int16x8_t) -> int8x8_t;
40798    }
40799    unsafe { _vqshrn_n_s16(a, const { int16x8_t([-N as i16; 8]) }) }
40800}
40801#[doc = "Signed saturating shift right narrow"]
40802#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_s32)"]
40803#[inline]
40804#[cfg(target_arch = "arm")]
40805#[target_feature(enable = "neon,v7")]
40806#[cfg_attr(test, assert_instr(vqshrn, N = 2))]
40807#[rustc_legacy_const_generics(1)]
40808#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
40809pub fn vqshrn_n_s32<const N: i32>(a: int32x4_t) -> int16x4_t {
40810    static_assert!(N >= 1 && N <= 16);
40811    unsafe extern "unadjusted" {
40812        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftns.v4i16")]
40813        fn _vqshrn_n_s32(a: int32x4_t, n: int32x4_t) -> int16x4_t;
40814    }
40815    unsafe { _vqshrn_n_s32(a, const { int32x4_t([-N; 4]) }) }
40816}
40817#[doc = "Signed saturating shift right narrow"]
40818#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_s64)"]
40819#[inline]
40820#[cfg(target_arch = "arm")]
40821#[target_feature(enable = "neon,v7")]
40822#[cfg_attr(test, assert_instr(vqshrn, N = 2))]
40823#[rustc_legacy_const_generics(1)]
40824#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
40825pub fn vqshrn_n_s64<const N: i32>(a: int64x2_t) -> int32x2_t {
40826    static_assert!(N >= 1 && N <= 32);
40827    unsafe extern "unadjusted" {
40828        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftns.v2i32")]
40829        fn _vqshrn_n_s64(a: int64x2_t, n: int64x2_t) -> int32x2_t;
40830    }
40831    unsafe { _vqshrn_n_s64(a, const { int64x2_t([-N as i64; 2]) }) }
40832}
40833#[doc = "Signed saturating shift right narrow"]
40834#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_s16)"]
40835#[inline]
40836#[target_feature(enable = "neon")]
40837#[cfg(not(target_arch = "arm"))]
40838#[cfg_attr(test, assert_instr(sqshrn, N = 2))]
40839#[rustc_legacy_const_generics(1)]
40840#[stable(feature = "neon_intrinsics", since = "1.59.0")]
40841pub fn vqshrn_n_s16<const N: i32>(a: int16x8_t) -> int8x8_t {
40842    static_assert!(N >= 1 && N <= 8);
40843    unsafe extern "unadjusted" {
40844        #[cfg_attr(
40845            any(target_arch = "aarch64", target_arch = "arm64ec"),
40846            link_name = "llvm.aarch64.neon.sqshrn.v8i8"
40847        )]
40848        fn _vqshrn_n_s16(a: int16x8_t, n: i32) -> int8x8_t;
40849    }
40850    unsafe { _vqshrn_n_s16(a, N) }
40851}
40852#[doc = "Signed saturating shift right narrow"]
40853#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_s32)"]
40854#[inline]
40855#[target_feature(enable = "neon")]
40856#[cfg(not(target_arch = "arm"))]
40857#[cfg_attr(test, assert_instr(sqshrn, N = 2))]
40858#[rustc_legacy_const_generics(1)]
40859#[stable(feature = "neon_intrinsics", since = "1.59.0")]
40860pub fn vqshrn_n_s32<const N: i32>(a: int32x4_t) -> int16x4_t {
40861    static_assert!(N >= 1 && N <= 16);
40862    unsafe extern "unadjusted" {
40863        #[cfg_attr(
40864            any(target_arch = "aarch64", target_arch = "arm64ec"),
40865            link_name = "llvm.aarch64.neon.sqshrn.v4i16"
40866        )]
40867        fn _vqshrn_n_s32(a: int32x4_t, n: i32) -> int16x4_t;
40868    }
40869    unsafe { _vqshrn_n_s32(a, N) }
40870}
40871#[doc = "Signed saturating shift right narrow"]
40872#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_s64)"]
40873#[inline]
40874#[target_feature(enable = "neon")]
40875#[cfg(not(target_arch = "arm"))]
40876#[cfg_attr(test, assert_instr(sqshrn, N = 2))]
40877#[rustc_legacy_const_generics(1)]
40878#[stable(feature = "neon_intrinsics", since = "1.59.0")]
40879pub fn vqshrn_n_s64<const N: i32>(a: int64x2_t) -> int32x2_t {
40880    static_assert!(N >= 1 && N <= 32);
40881    unsafe extern "unadjusted" {
40882        #[cfg_attr(
40883            any(target_arch = "aarch64", target_arch = "arm64ec"),
40884            link_name = "llvm.aarch64.neon.sqshrn.v2i32"
40885        )]
40886        fn _vqshrn_n_s64(a: int64x2_t, n: i32) -> int32x2_t;
40887    }
40888    unsafe { _vqshrn_n_s64(a, N) }
40889}
40890#[doc = "Unsigned saturating shift right narrow"]
40891#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_u16)"]
40892#[inline]
40893#[cfg(target_arch = "arm")]
40894#[target_feature(enable = "neon,v7")]
40895#[cfg_attr(test, assert_instr(vqshrn, N = 2))]
40896#[rustc_legacy_const_generics(1)]
40897#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
40898pub fn vqshrn_n_u16<const N: i32>(a: uint16x8_t) -> uint8x8_t {
40899    static_assert!(N >= 1 && N <= 8);
40900    unsafe extern "unadjusted" {
40901        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftnu.v8i8")]
40902        fn _vqshrn_n_u16(a: uint16x8_t, n: uint16x8_t) -> uint8x8_t;
40903    }
40904    unsafe {
40905        _vqshrn_n_u16(
40906            a,
40907            const {
40908                uint16x8_t([
40909                    -N as u16, -N as u16, -N as u16, -N as u16, -N as u16, -N as u16, -N as u16,
40910                    -N as u16,
40911                ])
40912            },
40913        )
40914    }
40915}
40916#[doc = "Unsigned saturating shift right narrow"]
40917#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_u32)"]
40918#[inline]
40919#[cfg(target_arch = "arm")]
40920#[target_feature(enable = "neon,v7")]
40921#[cfg_attr(test, assert_instr(vqshrn, N = 2))]
40922#[rustc_legacy_const_generics(1)]
40923#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
40924pub fn vqshrn_n_u32<const N: i32>(a: uint32x4_t) -> uint16x4_t {
40925    static_assert!(N >= 1 && N <= 16);
40926    unsafe extern "unadjusted" {
40927        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftnu.v4i16")]
40928        fn _vqshrn_n_u32(a: uint32x4_t, n: uint32x4_t) -> uint16x4_t;
40929    }
40930    unsafe {
40931        _vqshrn_n_u32(
40932            a,
40933            const { uint32x4_t([-N as u32, -N as u32, -N as u32, -N as u32]) },
40934        )
40935    }
40936}
40937#[doc = "Unsigned saturating shift right narrow"]
40938#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_u64)"]
40939#[inline]
40940#[cfg(target_arch = "arm")]
40941#[target_feature(enable = "neon,v7")]
40942#[cfg_attr(test, assert_instr(vqshrn, N = 2))]
40943#[rustc_legacy_const_generics(1)]
40944#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
40945pub fn vqshrn_n_u64<const N: i32>(a: uint64x2_t) -> uint32x2_t {
40946    static_assert!(N >= 1 && N <= 32);
40947    unsafe extern "unadjusted" {
40948        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftnu.v2i32")]
40949        fn _vqshrn_n_u64(a: uint64x2_t, n: uint64x2_t) -> uint32x2_t;
40950    }
40951    unsafe { _vqshrn_n_u64(a, const { uint64x2_t([-N as u64, -N as u64]) }) }
40952}
40953#[doc = "Unsigned saturating shift right narrow"]
40954#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_u16)"]
40955#[inline]
40956#[target_feature(enable = "neon")]
40957#[cfg(not(target_arch = "arm"))]
40958#[cfg_attr(test, assert_instr(uqshrn, N = 2))]
40959#[rustc_legacy_const_generics(1)]
40960#[stable(feature = "neon_intrinsics", since = "1.59.0")]
40961pub fn vqshrn_n_u16<const N: i32>(a: uint16x8_t) -> uint8x8_t {
40962    static_assert!(N >= 1 && N <= 8);
40963    unsafe extern "unadjusted" {
40964        #[cfg_attr(
40965            any(target_arch = "aarch64", target_arch = "arm64ec"),
40966            link_name = "llvm.aarch64.neon.uqshrn.v8i8"
40967        )]
40968        fn _vqshrn_n_u16(a: uint16x8_t, n: i32) -> uint8x8_t;
40969    }
40970    unsafe { _vqshrn_n_u16(a, N) }
40971}
40972#[doc = "Unsigned saturating shift right narrow"]
40973#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_u32)"]
40974#[inline]
40975#[target_feature(enable = "neon")]
40976#[cfg(not(target_arch = "arm"))]
40977#[cfg_attr(test, assert_instr(uqshrn, N = 2))]
40978#[rustc_legacy_const_generics(1)]
40979#[stable(feature = "neon_intrinsics", since = "1.59.0")]
40980pub fn vqshrn_n_u32<const N: i32>(a: uint32x4_t) -> uint16x4_t {
40981    static_assert!(N >= 1 && N <= 16);
40982    unsafe extern "unadjusted" {
40983        #[cfg_attr(
40984            any(target_arch = "aarch64", target_arch = "arm64ec"),
40985            link_name = "llvm.aarch64.neon.uqshrn.v4i16"
40986        )]
40987        fn _vqshrn_n_u32(a: uint32x4_t, n: i32) -> uint16x4_t;
40988    }
40989    unsafe { _vqshrn_n_u32(a, N) }
40990}
40991#[doc = "Unsigned saturating shift right narrow"]
40992#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_u64)"]
40993#[inline]
40994#[target_feature(enable = "neon")]
40995#[cfg(not(target_arch = "arm"))]
40996#[cfg_attr(test, assert_instr(uqshrn, N = 2))]
40997#[rustc_legacy_const_generics(1)]
40998#[stable(feature = "neon_intrinsics", since = "1.59.0")]
40999pub fn vqshrn_n_u64<const N: i32>(a: uint64x2_t) -> uint32x2_t {
41000    static_assert!(N >= 1 && N <= 32);
41001    unsafe extern "unadjusted" {
41002        #[cfg_attr(
41003            any(target_arch = "aarch64", target_arch = "arm64ec"),
41004            link_name = "llvm.aarch64.neon.uqshrn.v2i32"
41005        )]
41006        fn _vqshrn_n_u64(a: uint64x2_t, n: i32) -> uint32x2_t;
41007    }
41008    unsafe { _vqshrn_n_u64(a, N) }
41009}
41010#[doc = "Signed saturating shift right unsigned narrow"]
41011#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrun_n_s16)"]
41012#[inline]
41013#[cfg(target_arch = "arm")]
41014#[target_feature(enable = "neon,v7")]
41015#[cfg_attr(test, assert_instr(vqshrun, N = 2))]
41016#[rustc_legacy_const_generics(1)]
41017#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
41018pub fn vqshrun_n_s16<const N: i32>(a: int16x8_t) -> uint8x8_t {
41019    static_assert!(N >= 1 && N <= 8);
41020    unsafe extern "unadjusted" {
41021        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftnsu.v8i8")]
41022        fn _vqshrun_n_s16(a: int16x8_t, n: int16x8_t) -> uint8x8_t;
41023    }
41024    unsafe { _vqshrun_n_s16(a, const { int16x8_t([-N as i16; 8]) }) }
41025}
41026#[doc = "Signed saturating shift right unsigned narrow"]
41027#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrun_n_s32)"]
41028#[inline]
41029#[cfg(target_arch = "arm")]
41030#[target_feature(enable = "neon,v7")]
41031#[cfg_attr(test, assert_instr(vqshrun, N = 2))]
41032#[rustc_legacy_const_generics(1)]
41033#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
41034pub fn vqshrun_n_s32<const N: i32>(a: int32x4_t) -> uint16x4_t {
41035    static_assert!(N >= 1 && N <= 16);
41036    unsafe extern "unadjusted" {
41037        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftnsu.v4i16")]
41038        fn _vqshrun_n_s32(a: int32x4_t, n: int32x4_t) -> uint16x4_t;
41039    }
41040    unsafe { _vqshrun_n_s32(a, const { int32x4_t([-N; 4]) }) }
41041}
41042#[doc = "Signed saturating shift right unsigned narrow"]
41043#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrun_n_s64)"]
41044#[inline]
41045#[cfg(target_arch = "arm")]
41046#[target_feature(enable = "neon,v7")]
41047#[cfg_attr(test, assert_instr(vqshrun, N = 2))]
41048#[rustc_legacy_const_generics(1)]
41049#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
41050pub fn vqshrun_n_s64<const N: i32>(a: int64x2_t) -> uint32x2_t {
41051    static_assert!(N >= 1 && N <= 32);
41052    unsafe extern "unadjusted" {
41053        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftnsu.v2i32")]
41054        fn _vqshrun_n_s64(a: int64x2_t, n: int64x2_t) -> uint32x2_t;
41055    }
41056    unsafe { _vqshrun_n_s64(a, const { int64x2_t([-N as i64; 2]) }) }
41057}
41058#[doc = "Signed saturating shift right unsigned narrow"]
41059#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrun_n_s16)"]
41060#[inline]
41061#[target_feature(enable = "neon")]
41062#[cfg(not(target_arch = "arm"))]
41063#[cfg_attr(test, assert_instr(sqshrun, N = 2))]
41064#[rustc_legacy_const_generics(1)]
41065#[stable(feature = "neon_intrinsics", since = "1.59.0")]
41066pub fn vqshrun_n_s16<const N: i32>(a: int16x8_t) -> uint8x8_t {
41067    static_assert!(N >= 1 && N <= 8);
41068    unsafe extern "unadjusted" {
41069        #[cfg_attr(
41070            any(target_arch = "aarch64", target_arch = "arm64ec"),
41071            link_name = "llvm.aarch64.neon.sqshrun.v8i8"
41072        )]
41073        fn _vqshrun_n_s16(a: int16x8_t, n: i32) -> uint8x8_t;
41074    }
41075    unsafe { _vqshrun_n_s16(a, N) }
41076}
41077#[doc = "Signed saturating shift right unsigned narrow"]
41078#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrun_n_s32)"]
41079#[inline]
41080#[target_feature(enable = "neon")]
41081#[cfg(not(target_arch = "arm"))]
41082#[cfg_attr(test, assert_instr(sqshrun, N = 2))]
41083#[rustc_legacy_const_generics(1)]
41084#[stable(feature = "neon_intrinsics", since = "1.59.0")]
41085pub fn vqshrun_n_s32<const N: i32>(a: int32x4_t) -> uint16x4_t {
41086    static_assert!(N >= 1 && N <= 16);
41087    unsafe extern "unadjusted" {
41088        #[cfg_attr(
41089            any(target_arch = "aarch64", target_arch = "arm64ec"),
41090            link_name = "llvm.aarch64.neon.sqshrun.v4i16"
41091        )]
41092        fn _vqshrun_n_s32(a: int32x4_t, n: i32) -> uint16x4_t;
41093    }
41094    unsafe { _vqshrun_n_s32(a, N) }
41095}
41096#[doc = "Signed saturating shift right unsigned narrow"]
41097#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrun_n_s64)"]
41098#[inline]
41099#[target_feature(enable = "neon")]
41100#[cfg(not(target_arch = "arm"))]
41101#[cfg_attr(test, assert_instr(sqshrun, N = 2))]
41102#[rustc_legacy_const_generics(1)]
41103#[stable(feature = "neon_intrinsics", since = "1.59.0")]
41104pub fn vqshrun_n_s64<const N: i32>(a: int64x2_t) -> uint32x2_t {
41105    static_assert!(N >= 1 && N <= 32);
41106    unsafe extern "unadjusted" {
41107        #[cfg_attr(
41108            any(target_arch = "aarch64", target_arch = "arm64ec"),
41109            link_name = "llvm.aarch64.neon.sqshrun.v2i32"
41110        )]
41111        fn _vqshrun_n_s64(a: int64x2_t, n: i32) -> uint32x2_t;
41112    }
41113    unsafe { _vqshrun_n_s64(a, N) }
41114}
41115#[doc = "Saturating subtract"]
41116#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsub_s8)"]
41117#[inline]
41118#[target_feature(enable = "neon")]
41119#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41120#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.s8"))]
41121#[cfg_attr(
41122    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41123    assert_instr(sqsub)
41124)]
41125#[cfg_attr(
41126    not(target_arch = "arm"),
41127    stable(feature = "neon_intrinsics", since = "1.59.0")
41128)]
41129#[cfg_attr(
41130    target_arch = "arm",
41131    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41132)]
41133pub fn vqsub_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
41134    unsafe { simd_saturating_sub(a, b) }
41135}
41136#[doc = "Saturating subtract"]
41137#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsubq_s8)"]
41138#[inline]
41139#[target_feature(enable = "neon")]
41140#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41141#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.s8"))]
41142#[cfg_attr(
41143    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41144    assert_instr(sqsub)
41145)]
41146#[cfg_attr(
41147    not(target_arch = "arm"),
41148    stable(feature = "neon_intrinsics", since = "1.59.0")
41149)]
41150#[cfg_attr(
41151    target_arch = "arm",
41152    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41153)]
41154pub fn vqsubq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
41155    unsafe { simd_saturating_sub(a, b) }
41156}
41157#[doc = "Saturating subtract"]
41158#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsub_s16)"]
41159#[inline]
41160#[target_feature(enable = "neon")]
41161#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41162#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.s16"))]
41163#[cfg_attr(
41164    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41165    assert_instr(sqsub)
41166)]
41167#[cfg_attr(
41168    not(target_arch = "arm"),
41169    stable(feature = "neon_intrinsics", since = "1.59.0")
41170)]
41171#[cfg_attr(
41172    target_arch = "arm",
41173    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41174)]
41175pub fn vqsub_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
41176    unsafe { simd_saturating_sub(a, b) }
41177}
41178#[doc = "Saturating subtract"]
41179#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsubq_s16)"]
41180#[inline]
41181#[target_feature(enable = "neon")]
41182#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41183#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.s16"))]
41184#[cfg_attr(
41185    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41186    assert_instr(sqsub)
41187)]
41188#[cfg_attr(
41189    not(target_arch = "arm"),
41190    stable(feature = "neon_intrinsics", since = "1.59.0")
41191)]
41192#[cfg_attr(
41193    target_arch = "arm",
41194    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41195)]
41196pub fn vqsubq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
41197    unsafe { simd_saturating_sub(a, b) }
41198}
41199#[doc = "Saturating subtract"]
41200#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsub_s32)"]
41201#[inline]
41202#[target_feature(enable = "neon")]
41203#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41204#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.s32"))]
41205#[cfg_attr(
41206    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41207    assert_instr(sqsub)
41208)]
41209#[cfg_attr(
41210    not(target_arch = "arm"),
41211    stable(feature = "neon_intrinsics", since = "1.59.0")
41212)]
41213#[cfg_attr(
41214    target_arch = "arm",
41215    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41216)]
41217pub fn vqsub_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
41218    unsafe { simd_saturating_sub(a, b) }
41219}
41220#[doc = "Saturating subtract"]
41221#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsubq_s32)"]
41222#[inline]
41223#[target_feature(enable = "neon")]
41224#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41225#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.s32"))]
41226#[cfg_attr(
41227    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41228    assert_instr(sqsub)
41229)]
41230#[cfg_attr(
41231    not(target_arch = "arm"),
41232    stable(feature = "neon_intrinsics", since = "1.59.0")
41233)]
41234#[cfg_attr(
41235    target_arch = "arm",
41236    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41237)]
41238pub fn vqsubq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
41239    unsafe { simd_saturating_sub(a, b) }
41240}
41241#[doc = "Saturating subtract"]
41242#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsub_s64)"]
41243#[inline]
41244#[target_feature(enable = "neon")]
41245#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41246#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.s64"))]
41247#[cfg_attr(
41248    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41249    assert_instr(sqsub)
41250)]
41251#[cfg_attr(
41252    not(target_arch = "arm"),
41253    stable(feature = "neon_intrinsics", since = "1.59.0")
41254)]
41255#[cfg_attr(
41256    target_arch = "arm",
41257    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41258)]
41259pub fn vqsub_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t {
41260    unsafe { simd_saturating_sub(a, b) }
41261}
41262#[doc = "Saturating subtract"]
41263#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsubq_s64)"]
41264#[inline]
41265#[target_feature(enable = "neon")]
41266#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41267#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.s64"))]
41268#[cfg_attr(
41269    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41270    assert_instr(sqsub)
41271)]
41272#[cfg_attr(
41273    not(target_arch = "arm"),
41274    stable(feature = "neon_intrinsics", since = "1.59.0")
41275)]
41276#[cfg_attr(
41277    target_arch = "arm",
41278    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41279)]
41280pub fn vqsubq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t {
41281    unsafe { simd_saturating_sub(a, b) }
41282}
41283#[doc = "Saturating subtract"]
41284#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsub_u8)"]
41285#[inline]
41286#[target_feature(enable = "neon")]
41287#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41288#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.u8"))]
41289#[cfg_attr(
41290    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41291    assert_instr(uqsub)
41292)]
41293#[cfg_attr(
41294    not(target_arch = "arm"),
41295    stable(feature = "neon_intrinsics", since = "1.59.0")
41296)]
41297#[cfg_attr(
41298    target_arch = "arm",
41299    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41300)]
41301pub fn vqsub_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
41302    unsafe { simd_saturating_sub(a, b) }
41303}
41304#[doc = "Saturating subtract"]
41305#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsubq_u8)"]
41306#[inline]
41307#[target_feature(enable = "neon")]
41308#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41309#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.u8"))]
41310#[cfg_attr(
41311    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41312    assert_instr(uqsub)
41313)]
41314#[cfg_attr(
41315    not(target_arch = "arm"),
41316    stable(feature = "neon_intrinsics", since = "1.59.0")
41317)]
41318#[cfg_attr(
41319    target_arch = "arm",
41320    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41321)]
41322pub fn vqsubq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
41323    unsafe { simd_saturating_sub(a, b) }
41324}
41325#[doc = "Saturating subtract"]
41326#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsub_u16)"]
41327#[inline]
41328#[target_feature(enable = "neon")]
41329#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41330#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.u16"))]
41331#[cfg_attr(
41332    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41333    assert_instr(uqsub)
41334)]
41335#[cfg_attr(
41336    not(target_arch = "arm"),
41337    stable(feature = "neon_intrinsics", since = "1.59.0")
41338)]
41339#[cfg_attr(
41340    target_arch = "arm",
41341    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41342)]
41343pub fn vqsub_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
41344    unsafe { simd_saturating_sub(a, b) }
41345}
41346#[doc = "Saturating subtract"]
41347#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsubq_u16)"]
41348#[inline]
41349#[target_feature(enable = "neon")]
41350#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41351#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.u16"))]
41352#[cfg_attr(
41353    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41354    assert_instr(uqsub)
41355)]
41356#[cfg_attr(
41357    not(target_arch = "arm"),
41358    stable(feature = "neon_intrinsics", since = "1.59.0")
41359)]
41360#[cfg_attr(
41361    target_arch = "arm",
41362    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41363)]
41364pub fn vqsubq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
41365    unsafe { simd_saturating_sub(a, b) }
41366}
41367#[doc = "Saturating subtract"]
41368#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsub_u32)"]
41369#[inline]
41370#[target_feature(enable = "neon")]
41371#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41372#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.u32"))]
41373#[cfg_attr(
41374    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41375    assert_instr(uqsub)
41376)]
41377#[cfg_attr(
41378    not(target_arch = "arm"),
41379    stable(feature = "neon_intrinsics", since = "1.59.0")
41380)]
41381#[cfg_attr(
41382    target_arch = "arm",
41383    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41384)]
41385pub fn vqsub_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
41386    unsafe { simd_saturating_sub(a, b) }
41387}
41388#[doc = "Saturating subtract"]
41389#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsubq_u32)"]
41390#[inline]
41391#[target_feature(enable = "neon")]
41392#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41393#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.u32"))]
41394#[cfg_attr(
41395    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41396    assert_instr(uqsub)
41397)]
41398#[cfg_attr(
41399    not(target_arch = "arm"),
41400    stable(feature = "neon_intrinsics", since = "1.59.0")
41401)]
41402#[cfg_attr(
41403    target_arch = "arm",
41404    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41405)]
41406pub fn vqsubq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
41407    unsafe { simd_saturating_sub(a, b) }
41408}
41409#[doc = "Saturating subtract"]
41410#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsub_u64)"]
41411#[inline]
41412#[target_feature(enable = "neon")]
41413#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41414#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.u64"))]
41415#[cfg_attr(
41416    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41417    assert_instr(uqsub)
41418)]
41419#[cfg_attr(
41420    not(target_arch = "arm"),
41421    stable(feature = "neon_intrinsics", since = "1.59.0")
41422)]
41423#[cfg_attr(
41424    target_arch = "arm",
41425    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41426)]
41427pub fn vqsub_u64(a: uint64x1_t, b: uint64x1_t) -> uint64x1_t {
41428    unsafe { simd_saturating_sub(a, b) }
41429}
41430#[doc = "Saturating subtract"]
41431#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsubq_u64)"]
41432#[inline]
41433#[target_feature(enable = "neon")]
41434#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41435#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.u64"))]
41436#[cfg_attr(
41437    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41438    assert_instr(uqsub)
41439)]
41440#[cfg_attr(
41441    not(target_arch = "arm"),
41442    stable(feature = "neon_intrinsics", since = "1.59.0")
41443)]
41444#[cfg_attr(
41445    target_arch = "arm",
41446    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41447)]
41448pub fn vqsubq_u64(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
41449    unsafe { simd_saturating_sub(a, b) }
41450}
41451#[doc = "Rounding Add returning High Narrow (high half)."]
41452#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vraddhn_high_s16)"]
41453#[inline]
41454#[target_feature(enable = "neon")]
41455#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41456#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vraddhn.i16"))]
41457#[cfg_attr(
41458    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41459    assert_instr(raddhn2)
41460)]
41461#[cfg_attr(
41462    not(target_arch = "arm"),
41463    stable(feature = "neon_intrinsics", since = "1.59.0")
41464)]
41465#[cfg_attr(
41466    target_arch = "arm",
41467    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41468)]
41469pub fn vraddhn_high_s16(a: int8x8_t, b: int16x8_t, c: int16x8_t) -> int8x16_t {
41470    let x = vraddhn_s16(b, c);
41471    unsafe { simd_shuffle!(a, x, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]) }
41472}
41473#[doc = "Rounding Add returning High Narrow (high half)."]
41474#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vraddhn_high_s32)"]
41475#[inline]
41476#[target_feature(enable = "neon")]
41477#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41478#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vraddhn.i32"))]
41479#[cfg_attr(
41480    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41481    assert_instr(raddhn2)
41482)]
41483#[cfg_attr(
41484    not(target_arch = "arm"),
41485    stable(feature = "neon_intrinsics", since = "1.59.0")
41486)]
41487#[cfg_attr(
41488    target_arch = "arm",
41489    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41490)]
41491pub fn vraddhn_high_s32(a: int16x4_t, b: int32x4_t, c: int32x4_t) -> int16x8_t {
41492    let x = vraddhn_s32(b, c);
41493    unsafe { simd_shuffle!(a, x, [0, 1, 2, 3, 4, 5, 6, 7]) }
41494}
41495#[doc = "Rounding Add returning High Narrow (high half)."]
41496#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vraddhn_high_s64)"]
41497#[inline]
41498#[target_feature(enable = "neon")]
41499#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41500#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vraddhn.i64"))]
41501#[cfg_attr(
41502    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41503    assert_instr(raddhn2)
41504)]
41505#[cfg_attr(
41506    not(target_arch = "arm"),
41507    stable(feature = "neon_intrinsics", since = "1.59.0")
41508)]
41509#[cfg_attr(
41510    target_arch = "arm",
41511    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41512)]
41513pub fn vraddhn_high_s64(a: int32x2_t, b: int64x2_t, c: int64x2_t) -> int32x4_t {
41514    let x = vraddhn_s64(b, c);
41515    unsafe { simd_shuffle!(a, x, [0, 1, 2, 3]) }
41516}
41517#[doc = "Rounding Add returning High Narrow (high half)."]
41518#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vraddhn_high_u16)"]
41519#[inline]
41520#[target_feature(enable = "neon")]
41521#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41522#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vraddhn.i16"))]
41523#[cfg_attr(
41524    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41525    assert_instr(raddhn2)
41526)]
41527#[cfg_attr(
41528    not(target_arch = "arm"),
41529    stable(feature = "neon_intrinsics", since = "1.59.0")
41530)]
41531#[cfg_attr(
41532    target_arch = "arm",
41533    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41534)]
41535pub fn vraddhn_high_u16(a: uint8x8_t, b: uint16x8_t, c: uint16x8_t) -> uint8x16_t {
41536    unsafe {
41537        let x: uint8x8_t = transmute(vraddhn_s16(transmute(b), transmute(c)));
41538        simd_shuffle!(a, x, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15])
41539    }
41540}
41541#[doc = "Rounding Add returning High Narrow (high half)."]
41542#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vraddhn_high_u32)"]
41543#[inline]
41544#[target_feature(enable = "neon")]
41545#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41546#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vraddhn.i32"))]
41547#[cfg_attr(
41548    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41549    assert_instr(raddhn2)
41550)]
41551#[cfg_attr(
41552    not(target_arch = "arm"),
41553    stable(feature = "neon_intrinsics", since = "1.59.0")
41554)]
41555#[cfg_attr(
41556    target_arch = "arm",
41557    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41558)]
41559pub fn vraddhn_high_u32(a: uint16x4_t, b: uint32x4_t, c: uint32x4_t) -> uint16x8_t {
41560    unsafe {
41561        let x: uint16x4_t = transmute(vraddhn_s32(transmute(b), transmute(c)));
41562        simd_shuffle!(a, x, [0, 1, 2, 3, 4, 5, 6, 7])
41563    }
41564}
41565#[doc = "Rounding Add returning High Narrow (high half)."]
41566#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vraddhn_high_u64)"]
41567#[inline]
41568#[target_feature(enable = "neon")]
41569#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41570#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vraddhn.i64"))]
41571#[cfg_attr(
41572    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41573    assert_instr(raddhn2)
41574)]
41575#[cfg_attr(
41576    not(target_arch = "arm"),
41577    stable(feature = "neon_intrinsics", since = "1.59.0")
41578)]
41579#[cfg_attr(
41580    target_arch = "arm",
41581    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41582)]
41583pub fn vraddhn_high_u64(a: uint32x2_t, b: uint64x2_t, c: uint64x2_t) -> uint32x4_t {
41584    unsafe {
41585        let x: uint32x2_t = transmute(vraddhn_s64(transmute(b), transmute(c)));
41586        simd_shuffle!(a, x, [0, 1, 2, 3])
41587    }
41588}
41589#[doc = "Rounding Add returning High Narrow."]
41590#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vraddhn_s16)"]
41591#[inline]
41592#[target_feature(enable = "neon")]
41593#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41594#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vraddhn.i16"))]
41595#[cfg_attr(
41596    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41597    assert_instr(raddhn)
41598)]
41599#[cfg_attr(
41600    not(target_arch = "arm"),
41601    stable(feature = "neon_intrinsics", since = "1.59.0")
41602)]
41603#[cfg_attr(
41604    target_arch = "arm",
41605    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41606)]
41607pub fn vraddhn_s16(a: int16x8_t, b: int16x8_t) -> int8x8_t {
41608    unsafe extern "unadjusted" {
41609        #[cfg_attr(
41610            any(target_arch = "aarch64", target_arch = "arm64ec"),
41611            link_name = "llvm.aarch64.neon.raddhn.v8i8"
41612        )]
41613        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vraddhn.v8i8")]
41614        fn _vraddhn_s16(a: int16x8_t, b: int16x8_t) -> int8x8_t;
41615    }
41616    unsafe { _vraddhn_s16(a, b) }
41617}
41618#[doc = "Rounding Add returning High Narrow."]
41619#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vraddhn_s32)"]
41620#[inline]
41621#[target_feature(enable = "neon")]
41622#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41623#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vraddhn.i32"))]
41624#[cfg_attr(
41625    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41626    assert_instr(raddhn)
41627)]
41628#[cfg_attr(
41629    not(target_arch = "arm"),
41630    stable(feature = "neon_intrinsics", since = "1.59.0")
41631)]
41632#[cfg_attr(
41633    target_arch = "arm",
41634    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41635)]
41636pub fn vraddhn_s32(a: int32x4_t, b: int32x4_t) -> int16x4_t {
41637    unsafe extern "unadjusted" {
41638        #[cfg_attr(
41639            any(target_arch = "aarch64", target_arch = "arm64ec"),
41640            link_name = "llvm.aarch64.neon.raddhn.v4i16"
41641        )]
41642        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vraddhn.v4i16")]
41643        fn _vraddhn_s32(a: int32x4_t, b: int32x4_t) -> int16x4_t;
41644    }
41645    unsafe { _vraddhn_s32(a, b) }
41646}
41647#[doc = "Rounding Add returning High Narrow."]
41648#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vraddhn_s64)"]
41649#[inline]
41650#[target_feature(enable = "neon")]
41651#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41652#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vraddhn.i64"))]
41653#[cfg_attr(
41654    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41655    assert_instr(raddhn)
41656)]
41657#[cfg_attr(
41658    not(target_arch = "arm"),
41659    stable(feature = "neon_intrinsics", since = "1.59.0")
41660)]
41661#[cfg_attr(
41662    target_arch = "arm",
41663    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41664)]
41665pub fn vraddhn_s64(a: int64x2_t, b: int64x2_t) -> int32x2_t {
41666    unsafe extern "unadjusted" {
41667        #[cfg_attr(
41668            any(target_arch = "aarch64", target_arch = "arm64ec"),
41669            link_name = "llvm.aarch64.neon.raddhn.v2i32"
41670        )]
41671        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vraddhn.v2i32")]
41672        fn _vraddhn_s64(a: int64x2_t, b: int64x2_t) -> int32x2_t;
41673    }
41674    unsafe { _vraddhn_s64(a, b) }
41675}
41676#[doc = "Rounding Add returning High Narrow."]
41677#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vraddhn_u16)"]
41678#[inline]
41679#[cfg(target_endian = "little")]
41680#[target_feature(enable = "neon")]
41681#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41682#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vraddhn.i16"))]
41683#[cfg_attr(
41684    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41685    assert_instr(raddhn)
41686)]
41687#[cfg_attr(
41688    not(target_arch = "arm"),
41689    stable(feature = "neon_intrinsics", since = "1.59.0")
41690)]
41691#[cfg_attr(
41692    target_arch = "arm",
41693    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41694)]
41695pub fn vraddhn_u16(a: uint16x8_t, b: uint16x8_t) -> uint8x8_t {
41696    unsafe { transmute(vraddhn_s16(transmute(a), transmute(b))) }
41697}
41698#[doc = "Rounding Add returning High Narrow."]
41699#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vraddhn_u16)"]
41700#[inline]
41701#[cfg(target_endian = "big")]
41702#[target_feature(enable = "neon")]
41703#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41704#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vraddhn.i16"))]
41705#[cfg_attr(
41706    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41707    assert_instr(raddhn)
41708)]
41709#[cfg_attr(
41710    not(target_arch = "arm"),
41711    stable(feature = "neon_intrinsics", since = "1.59.0")
41712)]
41713#[cfg_attr(
41714    target_arch = "arm",
41715    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41716)]
41717pub fn vraddhn_u16(a: uint16x8_t, b: uint16x8_t) -> uint8x8_t {
41718    let a: uint16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
41719    let b: uint16x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
41720    unsafe {
41721        let ret_val: uint8x8_t = transmute(vraddhn_s16(transmute(a), transmute(b)));
41722        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
41723    }
41724}
41725#[doc = "Rounding Add returning High Narrow."]
41726#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vraddhn_u32)"]
41727#[inline]
41728#[cfg(target_endian = "little")]
41729#[target_feature(enable = "neon")]
41730#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41731#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vraddhn.i32"))]
41732#[cfg_attr(
41733    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41734    assert_instr(raddhn)
41735)]
41736#[cfg_attr(
41737    not(target_arch = "arm"),
41738    stable(feature = "neon_intrinsics", since = "1.59.0")
41739)]
41740#[cfg_attr(
41741    target_arch = "arm",
41742    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41743)]
41744pub fn vraddhn_u32(a: uint32x4_t, b: uint32x4_t) -> uint16x4_t {
41745    unsafe { transmute(vraddhn_s32(transmute(a), transmute(b))) }
41746}
41747#[doc = "Rounding Add returning High Narrow."]
41748#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vraddhn_u32)"]
41749#[inline]
41750#[cfg(target_endian = "big")]
41751#[target_feature(enable = "neon")]
41752#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41753#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vraddhn.i32"))]
41754#[cfg_attr(
41755    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41756    assert_instr(raddhn)
41757)]
41758#[cfg_attr(
41759    not(target_arch = "arm"),
41760    stable(feature = "neon_intrinsics", since = "1.59.0")
41761)]
41762#[cfg_attr(
41763    target_arch = "arm",
41764    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41765)]
41766pub fn vraddhn_u32(a: uint32x4_t, b: uint32x4_t) -> uint16x4_t {
41767    let a: uint32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
41768    let b: uint32x4_t = unsafe { simd_shuffle!(b, b, [3, 2, 1, 0]) };
41769    unsafe {
41770        let ret_val: uint16x4_t = transmute(vraddhn_s32(transmute(a), transmute(b)));
41771        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
41772    }
41773}
41774#[doc = "Rounding Add returning High Narrow."]
41775#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vraddhn_u64)"]
41776#[inline]
41777#[cfg(target_endian = "little")]
41778#[target_feature(enable = "neon")]
41779#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41780#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vraddhn.i64"))]
41781#[cfg_attr(
41782    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41783    assert_instr(raddhn)
41784)]
41785#[cfg_attr(
41786    not(target_arch = "arm"),
41787    stable(feature = "neon_intrinsics", since = "1.59.0")
41788)]
41789#[cfg_attr(
41790    target_arch = "arm",
41791    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41792)]
41793pub fn vraddhn_u64(a: uint64x2_t, b: uint64x2_t) -> uint32x2_t {
41794    unsafe { transmute(vraddhn_s64(transmute(a), transmute(b))) }
41795}
41796#[doc = "Rounding Add returning High Narrow."]
41797#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vraddhn_u64)"]
41798#[inline]
41799#[cfg(target_endian = "big")]
41800#[target_feature(enable = "neon")]
41801#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41802#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vraddhn.i64"))]
41803#[cfg_attr(
41804    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41805    assert_instr(raddhn)
41806)]
41807#[cfg_attr(
41808    not(target_arch = "arm"),
41809    stable(feature = "neon_intrinsics", since = "1.59.0")
41810)]
41811#[cfg_attr(
41812    target_arch = "arm",
41813    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41814)]
41815pub fn vraddhn_u64(a: uint64x2_t, b: uint64x2_t) -> uint32x2_t {
41816    let a: uint64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
41817    let b: uint64x2_t = unsafe { simd_shuffle!(b, b, [1, 0]) };
41818    unsafe {
41819        let ret_val: uint32x2_t = transmute(vraddhn_s64(transmute(a), transmute(b)));
41820        simd_shuffle!(ret_val, ret_val, [1, 0])
41821    }
41822}
41823#[doc = "Reciprocal estimate."]
41824#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrecpe_f16)"]
41825#[inline]
41826#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
41827#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrecpe))]
41828#[cfg_attr(
41829    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41830    assert_instr(frecpe)
41831)]
41832#[target_feature(enable = "neon,fp16")]
41833#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
41834#[cfg(not(target_arch = "arm64ec"))]
41835pub fn vrecpe_f16(a: float16x4_t) -> float16x4_t {
41836    unsafe extern "unadjusted" {
41837        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrecpe.v4f16")]
41838        #[cfg_attr(
41839            any(target_arch = "aarch64", target_arch = "arm64ec"),
41840            link_name = "llvm.aarch64.neon.frecpe.v4f16"
41841        )]
41842        fn _vrecpe_f16(a: float16x4_t) -> float16x4_t;
41843    }
41844    unsafe { _vrecpe_f16(a) }
41845}
41846#[doc = "Reciprocal estimate."]
41847#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrecpeq_f16)"]
41848#[inline]
41849#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
41850#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrecpe))]
41851#[cfg_attr(
41852    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41853    assert_instr(frecpe)
41854)]
41855#[target_feature(enable = "neon,fp16")]
41856#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
41857#[cfg(not(target_arch = "arm64ec"))]
41858pub fn vrecpeq_f16(a: float16x8_t) -> float16x8_t {
41859    unsafe extern "unadjusted" {
41860        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrecpe.v8f16")]
41861        #[cfg_attr(
41862            any(target_arch = "aarch64", target_arch = "arm64ec"),
41863            link_name = "llvm.aarch64.neon.frecpe.v8f16"
41864        )]
41865        fn _vrecpeq_f16(a: float16x8_t) -> float16x8_t;
41866    }
41867    unsafe { _vrecpeq_f16(a) }
41868}
41869#[doc = "Reciprocal estimate."]
41870#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrecpe_f32)"]
41871#[inline]
41872#[target_feature(enable = "neon")]
41873#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41874#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrecpe))]
41875#[cfg_attr(
41876    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41877    assert_instr(frecpe)
41878)]
41879#[cfg_attr(
41880    not(target_arch = "arm"),
41881    stable(feature = "neon_intrinsics", since = "1.59.0")
41882)]
41883#[cfg_attr(
41884    target_arch = "arm",
41885    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41886)]
41887pub fn vrecpe_f32(a: float32x2_t) -> float32x2_t {
41888    unsafe extern "unadjusted" {
41889        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrecpe.v2f32")]
41890        #[cfg_attr(
41891            any(target_arch = "aarch64", target_arch = "arm64ec"),
41892            link_name = "llvm.aarch64.neon.frecpe.v2f32"
41893        )]
41894        fn _vrecpe_f32(a: float32x2_t) -> float32x2_t;
41895    }
41896    unsafe { _vrecpe_f32(a) }
41897}
41898#[doc = "Reciprocal estimate."]
41899#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrecpeq_f32)"]
41900#[inline]
41901#[target_feature(enable = "neon")]
41902#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41903#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrecpe))]
41904#[cfg_attr(
41905    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41906    assert_instr(frecpe)
41907)]
41908#[cfg_attr(
41909    not(target_arch = "arm"),
41910    stable(feature = "neon_intrinsics", since = "1.59.0")
41911)]
41912#[cfg_attr(
41913    target_arch = "arm",
41914    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41915)]
41916pub fn vrecpeq_f32(a: float32x4_t) -> float32x4_t {
41917    unsafe extern "unadjusted" {
41918        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrecpe.v4f32")]
41919        #[cfg_attr(
41920            any(target_arch = "aarch64", target_arch = "arm64ec"),
41921            link_name = "llvm.aarch64.neon.frecpe.v4f32"
41922        )]
41923        fn _vrecpeq_f32(a: float32x4_t) -> float32x4_t;
41924    }
41925    unsafe { _vrecpeq_f32(a) }
41926}
41927#[doc = "Unsigned reciprocal estimate"]
41928#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrecpe_u32)"]
41929#[inline]
41930#[target_feature(enable = "neon")]
41931#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41932#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrecpe))]
41933#[cfg_attr(
41934    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41935    assert_instr(urecpe)
41936)]
41937#[cfg_attr(
41938    not(target_arch = "arm"),
41939    stable(feature = "neon_intrinsics", since = "1.59.0")
41940)]
41941#[cfg_attr(
41942    target_arch = "arm",
41943    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41944)]
41945pub fn vrecpe_u32(a: uint32x2_t) -> uint32x2_t {
41946    unsafe extern "unadjusted" {
41947        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrecpe.v2i32")]
41948        #[cfg_attr(
41949            any(target_arch = "aarch64", target_arch = "arm64ec"),
41950            link_name = "llvm.aarch64.neon.urecpe.v2i32"
41951        )]
41952        fn _vrecpe_u32(a: uint32x2_t) -> uint32x2_t;
41953    }
41954    unsafe { _vrecpe_u32(a) }
41955}
41956#[doc = "Unsigned reciprocal estimate"]
41957#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrecpeq_u32)"]
41958#[inline]
41959#[target_feature(enable = "neon")]
41960#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41961#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrecpe))]
41962#[cfg_attr(
41963    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41964    assert_instr(urecpe)
41965)]
41966#[cfg_attr(
41967    not(target_arch = "arm"),
41968    stable(feature = "neon_intrinsics", since = "1.59.0")
41969)]
41970#[cfg_attr(
41971    target_arch = "arm",
41972    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41973)]
41974pub fn vrecpeq_u32(a: uint32x4_t) -> uint32x4_t {
41975    unsafe extern "unadjusted" {
41976        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrecpe.v4i32")]
41977        #[cfg_attr(
41978            any(target_arch = "aarch64", target_arch = "arm64ec"),
41979            link_name = "llvm.aarch64.neon.urecpe.v4i32"
41980        )]
41981        fn _vrecpeq_u32(a: uint32x4_t) -> uint32x4_t;
41982    }
41983    unsafe { _vrecpeq_u32(a) }
41984}
41985#[doc = "Floating-point reciprocal step"]
41986#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrecps_f16)"]
41987#[inline]
41988#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
41989#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrecps))]
41990#[cfg_attr(
41991    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41992    assert_instr(frecps)
41993)]
41994#[target_feature(enable = "neon,fp16")]
41995#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
41996#[cfg(not(target_arch = "arm64ec"))]
41997pub fn vrecps_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t {
41998    unsafe extern "unadjusted" {
41999        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrecps.v4f16")]
42000        #[cfg_attr(
42001            any(target_arch = "aarch64", target_arch = "arm64ec"),
42002            link_name = "llvm.aarch64.neon.frecps.v4f16"
42003        )]
42004        fn _vrecps_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t;
42005    }
42006    unsafe { _vrecps_f16(a, b) }
42007}
42008#[doc = "Floating-point reciprocal step"]
42009#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrecpsq_f16)"]
42010#[inline]
42011#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
42012#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrecps))]
42013#[cfg_attr(
42014    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42015    assert_instr(frecps)
42016)]
42017#[target_feature(enable = "neon,fp16")]
42018#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
42019#[cfg(not(target_arch = "arm64ec"))]
42020pub fn vrecpsq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t {
42021    unsafe extern "unadjusted" {
42022        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrecps.v8f16")]
42023        #[cfg_attr(
42024            any(target_arch = "aarch64", target_arch = "arm64ec"),
42025            link_name = "llvm.aarch64.neon.frecps.v8f16"
42026        )]
42027        fn _vrecpsq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t;
42028    }
42029    unsafe { _vrecpsq_f16(a, b) }
42030}
42031#[doc = "Floating-point reciprocal step"]
42032#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrecps_f32)"]
42033#[inline]
42034#[target_feature(enable = "neon")]
42035#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42036#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrecps))]
42037#[cfg_attr(
42038    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42039    assert_instr(frecps)
42040)]
42041#[cfg_attr(
42042    not(target_arch = "arm"),
42043    stable(feature = "neon_intrinsics", since = "1.59.0")
42044)]
42045#[cfg_attr(
42046    target_arch = "arm",
42047    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42048)]
42049pub fn vrecps_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
42050    unsafe extern "unadjusted" {
42051        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrecps.v2f32")]
42052        #[cfg_attr(
42053            any(target_arch = "aarch64", target_arch = "arm64ec"),
42054            link_name = "llvm.aarch64.neon.frecps.v2f32"
42055        )]
42056        fn _vrecps_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t;
42057    }
42058    unsafe { _vrecps_f32(a, b) }
42059}
42060#[doc = "Floating-point reciprocal step"]
42061#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrecpsq_f32)"]
42062#[inline]
42063#[target_feature(enable = "neon")]
42064#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42065#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrecps))]
42066#[cfg_attr(
42067    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42068    assert_instr(frecps)
42069)]
42070#[cfg_attr(
42071    not(target_arch = "arm"),
42072    stable(feature = "neon_intrinsics", since = "1.59.0")
42073)]
42074#[cfg_attr(
42075    target_arch = "arm",
42076    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42077)]
42078pub fn vrecpsq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t {
42079    unsafe extern "unadjusted" {
42080        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrecps.v4f32")]
42081        #[cfg_attr(
42082            any(target_arch = "aarch64", target_arch = "arm64ec"),
42083            link_name = "llvm.aarch64.neon.frecps.v4f32"
42084        )]
42085        fn _vrecpsq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t;
42086    }
42087    unsafe { _vrecpsq_f32(a, b) }
42088}
42089#[doc = "Vector reinterpret cast operation"]
42090#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_f16)"]
42091#[inline]
42092#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42093#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42094#[cfg_attr(
42095    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42096    assert_instr(nop)
42097)]
42098#[target_feature(enable = "neon,fp16")]
42099#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
42100#[cfg(not(target_arch = "arm64ec"))]
42101pub fn vreinterpret_f32_f16(a: float16x4_t) -> float32x2_t {
42102    unsafe { transmute(a) }
42103}
42104#[doc = "Vector reinterpret cast operation"]
42105#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_f16)"]
42106#[inline]
42107#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42108#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42109#[cfg_attr(
42110    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42111    assert_instr(nop)
42112)]
42113#[target_feature(enable = "neon,fp16")]
42114#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
42115#[cfg(not(target_arch = "arm64ec"))]
42116pub fn vreinterpret_s8_f16(a: float16x4_t) -> int8x8_t {
42117    unsafe { transmute(a) }
42118}
42119#[doc = "Vector reinterpret cast operation"]
42120#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_f16)"]
42121#[inline]
42122#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42123#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42124#[cfg_attr(
42125    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42126    assert_instr(nop)
42127)]
42128#[target_feature(enable = "neon,fp16")]
42129#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
42130#[cfg(not(target_arch = "arm64ec"))]
42131pub fn vreinterpret_s16_f16(a: float16x4_t) -> int16x4_t {
42132    unsafe { transmute(a) }
42133}
42134#[doc = "Vector reinterpret cast operation"]
42135#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_f16)"]
42136#[inline]
42137#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42138#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42139#[cfg_attr(
42140    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42141    assert_instr(nop)
42142)]
42143#[target_feature(enable = "neon,fp16")]
42144#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
42145#[cfg(not(target_arch = "arm64ec"))]
42146pub fn vreinterpret_s32_f16(a: float16x4_t) -> int32x2_t {
42147    unsafe { transmute(a) }
42148}
42149#[doc = "Vector reinterpret cast operation"]
42150#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_f16)"]
42151#[inline]
42152#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42153#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42154#[cfg_attr(
42155    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42156    assert_instr(nop)
42157)]
42158#[target_feature(enable = "neon,fp16")]
42159#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
42160#[cfg(not(target_arch = "arm64ec"))]
42161pub fn vreinterpret_s64_f16(a: float16x4_t) -> int64x1_t {
42162    unsafe { transmute(a) }
42163}
42164#[doc = "Vector reinterpret cast operation"]
42165#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_f16)"]
42166#[inline]
42167#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42168#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42169#[cfg_attr(
42170    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42171    assert_instr(nop)
42172)]
42173#[target_feature(enable = "neon,fp16")]
42174#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
42175#[cfg(not(target_arch = "arm64ec"))]
42176pub fn vreinterpret_u8_f16(a: float16x4_t) -> uint8x8_t {
42177    unsafe { transmute(a) }
42178}
42179#[doc = "Vector reinterpret cast operation"]
42180#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_f16)"]
42181#[inline]
42182#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42183#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42184#[cfg_attr(
42185    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42186    assert_instr(nop)
42187)]
42188#[target_feature(enable = "neon,fp16")]
42189#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
42190#[cfg(not(target_arch = "arm64ec"))]
42191pub fn vreinterpret_u16_f16(a: float16x4_t) -> uint16x4_t {
42192    unsafe { transmute(a) }
42193}
42194#[doc = "Vector reinterpret cast operation"]
42195#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_f16)"]
42196#[inline]
42197#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42198#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42199#[cfg_attr(
42200    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42201    assert_instr(nop)
42202)]
42203#[target_feature(enable = "neon,fp16")]
42204#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
42205#[cfg(not(target_arch = "arm64ec"))]
42206pub fn vreinterpret_u32_f16(a: float16x4_t) -> uint32x2_t {
42207    unsafe { transmute(a) }
42208}
42209#[doc = "Vector reinterpret cast operation"]
42210#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_f16)"]
42211#[inline]
42212#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42213#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42214#[cfg_attr(
42215    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42216    assert_instr(nop)
42217)]
42218#[target_feature(enable = "neon,fp16")]
42219#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
42220#[cfg(not(target_arch = "arm64ec"))]
42221pub fn vreinterpret_u64_f16(a: float16x4_t) -> uint64x1_t {
42222    unsafe { transmute(a) }
42223}
42224#[doc = "Vector reinterpret cast operation"]
42225#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_f16)"]
42226#[inline]
42227#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42228#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42229#[cfg_attr(
42230    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42231    assert_instr(nop)
42232)]
42233#[target_feature(enable = "neon,fp16")]
42234#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
42235#[cfg(not(target_arch = "arm64ec"))]
42236pub fn vreinterpret_p8_f16(a: float16x4_t) -> poly8x8_t {
42237    unsafe { transmute(a) }
42238}
42239#[doc = "Vector reinterpret cast operation"]
42240#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_f16)"]
42241#[inline]
42242#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42243#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42244#[cfg_attr(
42245    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42246    assert_instr(nop)
42247)]
42248#[target_feature(enable = "neon,fp16")]
42249#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
42250#[cfg(not(target_arch = "arm64ec"))]
42251pub fn vreinterpret_p16_f16(a: float16x4_t) -> poly16x4_t {
42252    unsafe { transmute(a) }
42253}
42254#[doc = "Vector reinterpret cast operation"]
42255#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_f16)"]
42256#[inline]
42257#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42258#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42259#[cfg_attr(
42260    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42261    assert_instr(nop)
42262)]
42263#[target_feature(enable = "neon,fp16")]
42264#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
42265#[cfg(not(target_arch = "arm64ec"))]
42266pub fn vreinterpretq_f32_f16(a: float16x8_t) -> float32x4_t {
42267    unsafe { transmute(a) }
42268}
42269#[doc = "Vector reinterpret cast operation"]
42270#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_f16)"]
42271#[inline]
42272#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42273#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42274#[cfg_attr(
42275    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42276    assert_instr(nop)
42277)]
42278#[target_feature(enable = "neon,fp16")]
42279#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
42280#[cfg(not(target_arch = "arm64ec"))]
42281pub fn vreinterpretq_s8_f16(a: float16x8_t) -> int8x16_t {
42282    unsafe { transmute(a) }
42283}
42284#[doc = "Vector reinterpret cast operation"]
42285#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_f16)"]
42286#[inline]
42287#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42288#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42289#[cfg_attr(
42290    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42291    assert_instr(nop)
42292)]
42293#[target_feature(enable = "neon,fp16")]
42294#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
42295#[cfg(not(target_arch = "arm64ec"))]
42296pub fn vreinterpretq_s16_f16(a: float16x8_t) -> int16x8_t {
42297    unsafe { transmute(a) }
42298}
42299#[doc = "Vector reinterpret cast operation"]
42300#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_f16)"]
42301#[inline]
42302#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42303#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42304#[cfg_attr(
42305    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42306    assert_instr(nop)
42307)]
42308#[target_feature(enable = "neon,fp16")]
42309#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
42310#[cfg(not(target_arch = "arm64ec"))]
42311pub fn vreinterpretq_s32_f16(a: float16x8_t) -> int32x4_t {
42312    unsafe { transmute(a) }
42313}
42314#[doc = "Vector reinterpret cast operation"]
42315#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_f16)"]
42316#[inline]
42317#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42318#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42319#[cfg_attr(
42320    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42321    assert_instr(nop)
42322)]
42323#[target_feature(enable = "neon,fp16")]
42324#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
42325#[cfg(not(target_arch = "arm64ec"))]
42326pub fn vreinterpretq_s64_f16(a: float16x8_t) -> int64x2_t {
42327    unsafe { transmute(a) }
42328}
42329#[doc = "Vector reinterpret cast operation"]
42330#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_f16)"]
42331#[inline]
42332#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42333#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42334#[cfg_attr(
42335    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42336    assert_instr(nop)
42337)]
42338#[target_feature(enable = "neon,fp16")]
42339#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
42340#[cfg(not(target_arch = "arm64ec"))]
42341pub fn vreinterpretq_u8_f16(a: float16x8_t) -> uint8x16_t {
42342    unsafe { transmute(a) }
42343}
42344#[doc = "Vector reinterpret cast operation"]
42345#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_f16)"]
42346#[inline]
42347#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42348#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42349#[cfg_attr(
42350    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42351    assert_instr(nop)
42352)]
42353#[target_feature(enable = "neon,fp16")]
42354#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
42355#[cfg(not(target_arch = "arm64ec"))]
42356pub fn vreinterpretq_u16_f16(a: float16x8_t) -> uint16x8_t {
42357    unsafe { transmute(a) }
42358}
42359#[doc = "Vector reinterpret cast operation"]
42360#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_f16)"]
42361#[inline]
42362#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42363#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42364#[cfg_attr(
42365    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42366    assert_instr(nop)
42367)]
42368#[target_feature(enable = "neon,fp16")]
42369#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
42370#[cfg(not(target_arch = "arm64ec"))]
42371pub fn vreinterpretq_u32_f16(a: float16x8_t) -> uint32x4_t {
42372    unsafe { transmute(a) }
42373}
42374#[doc = "Vector reinterpret cast operation"]
42375#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_f16)"]
42376#[inline]
42377#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42378#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42379#[cfg_attr(
42380    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42381    assert_instr(nop)
42382)]
42383#[target_feature(enable = "neon,fp16")]
42384#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
42385#[cfg(not(target_arch = "arm64ec"))]
42386pub fn vreinterpretq_u64_f16(a: float16x8_t) -> uint64x2_t {
42387    unsafe { transmute(a) }
42388}
42389#[doc = "Vector reinterpret cast operation"]
42390#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_f16)"]
42391#[inline]
42392#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42393#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42394#[cfg_attr(
42395    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42396    assert_instr(nop)
42397)]
42398#[target_feature(enable = "neon,fp16")]
42399#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
42400#[cfg(not(target_arch = "arm64ec"))]
42401pub fn vreinterpretq_p8_f16(a: float16x8_t) -> poly8x16_t {
42402    unsafe { transmute(a) }
42403}
42404#[doc = "Vector reinterpret cast operation"]
42405#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_f16)"]
42406#[inline]
42407#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42408#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42409#[cfg_attr(
42410    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42411    assert_instr(nop)
42412)]
42413#[target_feature(enable = "neon,fp16")]
42414#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
42415#[cfg(not(target_arch = "arm64ec"))]
42416pub fn vreinterpretq_p16_f16(a: float16x8_t) -> poly16x8_t {
42417    unsafe { transmute(a) }
42418}
42419#[doc = "Vector reinterpret cast operation"]
42420#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_f32)"]
42421#[inline]
42422#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42423#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42424#[cfg_attr(
42425    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42426    assert_instr(nop)
42427)]
42428#[target_feature(enable = "neon,fp16")]
42429#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
42430#[cfg(not(target_arch = "arm64ec"))]
42431pub fn vreinterpret_f16_f32(a: float32x2_t) -> float16x4_t {
42432    unsafe { transmute(a) }
42433}
42434#[doc = "Vector reinterpret cast operation"]
42435#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_f32)"]
42436#[inline]
42437#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42438#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42439#[cfg_attr(
42440    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42441    assert_instr(nop)
42442)]
42443#[target_feature(enable = "neon,fp16")]
42444#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
42445#[cfg(not(target_arch = "arm64ec"))]
42446pub fn vreinterpretq_f16_f32(a: float32x4_t) -> float16x8_t {
42447    unsafe { transmute(a) }
42448}
42449#[doc = "Vector reinterpret cast operation"]
42450#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_s8)"]
42451#[inline]
42452#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42453#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42454#[cfg_attr(
42455    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42456    assert_instr(nop)
42457)]
42458#[target_feature(enable = "neon,fp16")]
42459#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
42460#[cfg(not(target_arch = "arm64ec"))]
42461pub fn vreinterpret_f16_s8(a: int8x8_t) -> float16x4_t {
42462    unsafe { transmute(a) }
42463}
42464#[doc = "Vector reinterpret cast operation"]
42465#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_s8)"]
42466#[inline]
42467#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42468#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42469#[cfg_attr(
42470    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42471    assert_instr(nop)
42472)]
42473#[target_feature(enable = "neon,fp16")]
42474#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
42475#[cfg(not(target_arch = "arm64ec"))]
42476pub fn vreinterpretq_f16_s8(a: int8x16_t) -> float16x8_t {
42477    unsafe { transmute(a) }
42478}
42479#[doc = "Vector reinterpret cast operation"]
42480#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_s16)"]
42481#[inline]
42482#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42483#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42484#[cfg_attr(
42485    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42486    assert_instr(nop)
42487)]
42488#[target_feature(enable = "neon,fp16")]
42489#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
42490#[cfg(not(target_arch = "arm64ec"))]
42491pub fn vreinterpret_f16_s16(a: int16x4_t) -> float16x4_t {
42492    unsafe { transmute(a) }
42493}
42494#[doc = "Vector reinterpret cast operation"]
42495#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_s16)"]
42496#[inline]
42497#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42498#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42499#[cfg_attr(
42500    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42501    assert_instr(nop)
42502)]
42503#[target_feature(enable = "neon,fp16")]
42504#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
42505#[cfg(not(target_arch = "arm64ec"))]
42506pub fn vreinterpretq_f16_s16(a: int16x8_t) -> float16x8_t {
42507    unsafe { transmute(a) }
42508}
42509#[doc = "Vector reinterpret cast operation"]
42510#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_s32)"]
42511#[inline]
42512#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42513#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42514#[cfg_attr(
42515    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42516    assert_instr(nop)
42517)]
42518#[target_feature(enable = "neon,fp16")]
42519#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
42520#[cfg(not(target_arch = "arm64ec"))]
42521pub fn vreinterpret_f16_s32(a: int32x2_t) -> float16x4_t {
42522    unsafe { transmute(a) }
42523}
42524#[doc = "Vector reinterpret cast operation"]
42525#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_s32)"]
42526#[inline]
42527#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42528#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42529#[cfg_attr(
42530    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42531    assert_instr(nop)
42532)]
42533#[target_feature(enable = "neon,fp16")]
42534#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
42535#[cfg(not(target_arch = "arm64ec"))]
42536pub fn vreinterpretq_f16_s32(a: int32x4_t) -> float16x8_t {
42537    unsafe { transmute(a) }
42538}
42539#[doc = "Vector reinterpret cast operation"]
42540#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_s64)"]
42541#[inline]
42542#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42543#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42544#[cfg_attr(
42545    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42546    assert_instr(nop)
42547)]
42548#[target_feature(enable = "neon,fp16")]
42549#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
42550#[cfg(not(target_arch = "arm64ec"))]
42551pub fn vreinterpret_f16_s64(a: int64x1_t) -> float16x4_t {
42552    unsafe { transmute(a) }
42553}
42554#[doc = "Vector reinterpret cast operation"]
42555#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_s64)"]
42556#[inline]
42557#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42558#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42559#[cfg_attr(
42560    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42561    assert_instr(nop)
42562)]
42563#[target_feature(enable = "neon,fp16")]
42564#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
42565#[cfg(not(target_arch = "arm64ec"))]
42566pub fn vreinterpretq_f16_s64(a: int64x2_t) -> float16x8_t {
42567    unsafe { transmute(a) }
42568}
42569#[doc = "Vector reinterpret cast operation"]
42570#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_u8)"]
42571#[inline]
42572#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42573#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42574#[cfg_attr(
42575    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42576    assert_instr(nop)
42577)]
42578#[target_feature(enable = "neon,fp16")]
42579#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
42580#[cfg(not(target_arch = "arm64ec"))]
42581pub fn vreinterpret_f16_u8(a: uint8x8_t) -> float16x4_t {
42582    unsafe { transmute(a) }
42583}
42584#[doc = "Vector reinterpret cast operation"]
42585#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_u8)"]
42586#[inline]
42587#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42588#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42589#[cfg_attr(
42590    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42591    assert_instr(nop)
42592)]
42593#[target_feature(enable = "neon,fp16")]
42594#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
42595#[cfg(not(target_arch = "arm64ec"))]
42596pub fn vreinterpretq_f16_u8(a: uint8x16_t) -> float16x8_t {
42597    unsafe { transmute(a) }
42598}
42599#[doc = "Vector reinterpret cast operation"]
42600#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_u16)"]
42601#[inline]
42602#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42603#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42604#[cfg_attr(
42605    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42606    assert_instr(nop)
42607)]
42608#[target_feature(enable = "neon,fp16")]
42609#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
42610#[cfg(not(target_arch = "arm64ec"))]
42611pub fn vreinterpret_f16_u16(a: uint16x4_t) -> float16x4_t {
42612    unsafe { transmute(a) }
42613}
42614#[doc = "Vector reinterpret cast operation"]
42615#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_u16)"]
42616#[inline]
42617#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42618#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42619#[cfg_attr(
42620    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42621    assert_instr(nop)
42622)]
42623#[target_feature(enable = "neon,fp16")]
42624#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
42625#[cfg(not(target_arch = "arm64ec"))]
42626pub fn vreinterpretq_f16_u16(a: uint16x8_t) -> float16x8_t {
42627    unsafe { transmute(a) }
42628}
42629#[doc = "Vector reinterpret cast operation"]
42630#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_u32)"]
42631#[inline]
42632#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42633#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42634#[cfg_attr(
42635    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42636    assert_instr(nop)
42637)]
42638#[target_feature(enable = "neon,fp16")]
42639#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
42640#[cfg(not(target_arch = "arm64ec"))]
42641pub fn vreinterpret_f16_u32(a: uint32x2_t) -> float16x4_t {
42642    unsafe { transmute(a) }
42643}
42644#[doc = "Vector reinterpret cast operation"]
42645#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_u32)"]
42646#[inline]
42647#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42648#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42649#[cfg_attr(
42650    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42651    assert_instr(nop)
42652)]
42653#[target_feature(enable = "neon,fp16")]
42654#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
42655#[cfg(not(target_arch = "arm64ec"))]
42656pub fn vreinterpretq_f16_u32(a: uint32x4_t) -> float16x8_t {
42657    unsafe { transmute(a) }
42658}
42659#[doc = "Vector reinterpret cast operation"]
42660#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_u64)"]
42661#[inline]
42662#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42663#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42664#[cfg_attr(
42665    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42666    assert_instr(nop)
42667)]
42668#[target_feature(enable = "neon,fp16")]
42669#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
42670#[cfg(not(target_arch = "arm64ec"))]
42671pub fn vreinterpret_f16_u64(a: uint64x1_t) -> float16x4_t {
42672    unsafe { transmute(a) }
42673}
42674#[doc = "Vector reinterpret cast operation"]
42675#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_u64)"]
42676#[inline]
42677#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42678#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42679#[cfg_attr(
42680    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42681    assert_instr(nop)
42682)]
42683#[target_feature(enable = "neon,fp16")]
42684#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
42685#[cfg(not(target_arch = "arm64ec"))]
42686pub fn vreinterpretq_f16_u64(a: uint64x2_t) -> float16x8_t {
42687    unsafe { transmute(a) }
42688}
42689#[doc = "Vector reinterpret cast operation"]
42690#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_p8)"]
42691#[inline]
42692#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42693#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42694#[cfg_attr(
42695    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42696    assert_instr(nop)
42697)]
42698#[target_feature(enable = "neon,fp16")]
42699#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
42700#[cfg(not(target_arch = "arm64ec"))]
42701pub fn vreinterpret_f16_p8(a: poly8x8_t) -> float16x4_t {
42702    unsafe { transmute(a) }
42703}
42704#[doc = "Vector reinterpret cast operation"]
42705#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_p8)"]
42706#[inline]
42707#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42708#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42709#[cfg_attr(
42710    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42711    assert_instr(nop)
42712)]
42713#[target_feature(enable = "neon,fp16")]
42714#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
42715#[cfg(not(target_arch = "arm64ec"))]
42716pub fn vreinterpretq_f16_p8(a: poly8x16_t) -> float16x8_t {
42717    unsafe { transmute(a) }
42718}
42719#[doc = "Vector reinterpret cast operation"]
42720#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_p16)"]
42721#[inline]
42722#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42723#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42724#[cfg_attr(
42725    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42726    assert_instr(nop)
42727)]
42728#[target_feature(enable = "neon,fp16")]
42729#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
42730#[cfg(not(target_arch = "arm64ec"))]
42731pub fn vreinterpret_f16_p16(a: poly16x4_t) -> float16x4_t {
42732    unsafe { transmute(a) }
42733}
42734#[doc = "Vector reinterpret cast operation"]
42735#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_p16)"]
42736#[inline]
42737#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42738#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42739#[cfg_attr(
42740    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42741    assert_instr(nop)
42742)]
42743#[target_feature(enable = "neon,fp16")]
42744#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
42745#[cfg(not(target_arch = "arm64ec"))]
42746pub fn vreinterpretq_f16_p16(a: poly16x8_t) -> float16x8_t {
42747    unsafe { transmute(a) }
42748}
42749#[doc = "Vector reinterpret cast operation"]
42750#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_p128)"]
42751#[inline]
42752#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
42753#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42754#[cfg_attr(
42755    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42756    assert_instr(nop)
42757)]
42758#[target_feature(enable = "neon,fp16")]
42759#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
42760#[cfg(not(target_arch = "arm64ec"))]
42761pub fn vreinterpretq_f16_p128(a: p128) -> float16x8_t {
42762    unsafe { transmute(a) }
42763}
42764#[doc = "Vector reinterpret cast operation"]
42765#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_f16)"]
42766#[inline]
42767#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
42768#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42769#[cfg_attr(
42770    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42771    assert_instr(nop)
42772)]
42773#[target_feature(enable = "neon,fp16")]
42774#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
42775#[cfg(not(target_arch = "arm64ec"))]
42776pub fn vreinterpret_p64_f16(a: float16x4_t) -> poly64x1_t {
42777    unsafe { transmute(a) }
42778}
42779#[doc = "Vector reinterpret cast operation"]
42780#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_f16)"]
42781#[inline]
42782#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
42783#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42784#[cfg_attr(
42785    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42786    assert_instr(nop)
42787)]
42788#[target_feature(enable = "neon,fp16")]
42789#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
42790#[cfg(not(target_arch = "arm64ec"))]
42791pub fn vreinterpretq_p128_f16(a: float16x8_t) -> p128 {
42792    unsafe { transmute(a) }
42793}
42794#[doc = "Vector reinterpret cast operation"]
42795#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_f16)"]
42796#[inline]
42797#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
42798#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42799#[cfg_attr(
42800    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42801    assert_instr(nop)
42802)]
42803#[target_feature(enable = "neon,fp16")]
42804#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
42805#[cfg(not(target_arch = "arm64ec"))]
42806pub fn vreinterpretq_p64_f16(a: float16x8_t) -> poly64x2_t {
42807    unsafe { transmute(a) }
42808}
42809#[doc = "Vector reinterpret cast operation"]
42810#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_p64)"]
42811#[inline]
42812#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
42813#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42814#[cfg_attr(
42815    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42816    assert_instr(nop)
42817)]
42818#[target_feature(enable = "neon,fp16")]
42819#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
42820#[cfg(not(target_arch = "arm64ec"))]
42821pub fn vreinterpret_f16_p64(a: poly64x1_t) -> float16x4_t {
42822    unsafe { transmute(a) }
42823}
42824#[doc = "Vector reinterpret cast operation"]
42825#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_p64)"]
42826#[inline]
42827#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
42828#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42829#[cfg_attr(
42830    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42831    assert_instr(nop)
42832)]
42833#[target_feature(enable = "neon,fp16")]
42834#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
42835#[cfg(not(target_arch = "arm64ec"))]
42836pub fn vreinterpretq_f16_p64(a: poly64x2_t) -> float16x8_t {
42837    unsafe { transmute(a) }
42838}
42839#[doc = "Vector reinterpret cast operation"]
42840#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_p128)"]
42841#[inline]
42842#[target_feature(enable = "neon")]
42843#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42844#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42845#[cfg_attr(
42846    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42847    assert_instr(nop)
42848)]
42849#[cfg_attr(
42850    not(target_arch = "arm"),
42851    stable(feature = "neon_intrinsics", since = "1.59.0")
42852)]
42853#[cfg_attr(
42854    target_arch = "arm",
42855    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42856)]
42857pub fn vreinterpretq_f32_p128(a: p128) -> float32x4_t {
42858    unsafe { transmute(a) }
42859}
42860#[doc = "Vector reinterpret cast operation"]
42861#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_f32)"]
42862#[inline]
42863#[target_feature(enable = "neon")]
42864#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42865#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42866#[cfg_attr(
42867    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42868    assert_instr(nop)
42869)]
42870#[cfg_attr(
42871    not(target_arch = "arm"),
42872    stable(feature = "neon_intrinsics", since = "1.59.0")
42873)]
42874#[cfg_attr(
42875    target_arch = "arm",
42876    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42877)]
42878pub fn vreinterpret_s8_f32(a: float32x2_t) -> int8x8_t {
42879    unsafe { transmute(a) }
42880}
42881#[doc = "Vector reinterpret cast operation"]
42882#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_f32)"]
42883#[inline]
42884#[target_feature(enable = "neon")]
42885#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42886#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42887#[cfg_attr(
42888    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42889    assert_instr(nop)
42890)]
42891#[cfg_attr(
42892    not(target_arch = "arm"),
42893    stable(feature = "neon_intrinsics", since = "1.59.0")
42894)]
42895#[cfg_attr(
42896    target_arch = "arm",
42897    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42898)]
42899pub fn vreinterpret_s16_f32(a: float32x2_t) -> int16x4_t {
42900    unsafe { transmute(a) }
42901}
42902#[doc = "Vector reinterpret cast operation"]
42903#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_f32)"]
42904#[inline]
42905#[target_feature(enable = "neon")]
42906#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42907#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42908#[cfg_attr(
42909    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42910    assert_instr(nop)
42911)]
42912#[cfg_attr(
42913    not(target_arch = "arm"),
42914    stable(feature = "neon_intrinsics", since = "1.59.0")
42915)]
42916#[cfg_attr(
42917    target_arch = "arm",
42918    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42919)]
42920pub fn vreinterpret_s32_f32(a: float32x2_t) -> int32x2_t {
42921    unsafe { transmute(a) }
42922}
42923#[doc = "Vector reinterpret cast operation"]
42924#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_f32)"]
42925#[inline]
42926#[target_feature(enable = "neon")]
42927#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42928#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42929#[cfg_attr(
42930    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42931    assert_instr(nop)
42932)]
42933#[cfg_attr(
42934    not(target_arch = "arm"),
42935    stable(feature = "neon_intrinsics", since = "1.59.0")
42936)]
42937#[cfg_attr(
42938    target_arch = "arm",
42939    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42940)]
42941pub fn vreinterpret_s64_f32(a: float32x2_t) -> int64x1_t {
42942    unsafe { transmute(a) }
42943}
42944#[doc = "Vector reinterpret cast operation"]
42945#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_f32)"]
42946#[inline]
42947#[target_feature(enable = "neon")]
42948#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42949#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42950#[cfg_attr(
42951    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42952    assert_instr(nop)
42953)]
42954#[cfg_attr(
42955    not(target_arch = "arm"),
42956    stable(feature = "neon_intrinsics", since = "1.59.0")
42957)]
42958#[cfg_attr(
42959    target_arch = "arm",
42960    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42961)]
42962pub fn vreinterpret_u8_f32(a: float32x2_t) -> uint8x8_t {
42963    unsafe { transmute(a) }
42964}
42965#[doc = "Vector reinterpret cast operation"]
42966#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_f32)"]
42967#[inline]
42968#[target_feature(enable = "neon")]
42969#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42970#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42971#[cfg_attr(
42972    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42973    assert_instr(nop)
42974)]
42975#[cfg_attr(
42976    not(target_arch = "arm"),
42977    stable(feature = "neon_intrinsics", since = "1.59.0")
42978)]
42979#[cfg_attr(
42980    target_arch = "arm",
42981    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42982)]
42983pub fn vreinterpret_u16_f32(a: float32x2_t) -> uint16x4_t {
42984    unsafe { transmute(a) }
42985}
42986#[doc = "Vector reinterpret cast operation"]
42987#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_f32)"]
42988#[inline]
42989#[target_feature(enable = "neon")]
42990#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42991#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42992#[cfg_attr(
42993    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42994    assert_instr(nop)
42995)]
42996#[cfg_attr(
42997    not(target_arch = "arm"),
42998    stable(feature = "neon_intrinsics", since = "1.59.0")
42999)]
43000#[cfg_attr(
43001    target_arch = "arm",
43002    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43003)]
43004pub fn vreinterpret_u32_f32(a: float32x2_t) -> uint32x2_t {
43005    unsafe { transmute(a) }
43006}
43007#[doc = "Vector reinterpret cast operation"]
43008#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_f32)"]
43009#[inline]
43010#[target_feature(enable = "neon")]
43011#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43012#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43013#[cfg_attr(
43014    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43015    assert_instr(nop)
43016)]
43017#[cfg_attr(
43018    not(target_arch = "arm"),
43019    stable(feature = "neon_intrinsics", since = "1.59.0")
43020)]
43021#[cfg_attr(
43022    target_arch = "arm",
43023    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43024)]
43025pub fn vreinterpret_u64_f32(a: float32x2_t) -> uint64x1_t {
43026    unsafe { transmute(a) }
43027}
43028#[doc = "Vector reinterpret cast operation"]
43029#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_f32)"]
43030#[inline]
43031#[target_feature(enable = "neon")]
43032#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43033#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43034#[cfg_attr(
43035    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43036    assert_instr(nop)
43037)]
43038#[cfg_attr(
43039    not(target_arch = "arm"),
43040    stable(feature = "neon_intrinsics", since = "1.59.0")
43041)]
43042#[cfg_attr(
43043    target_arch = "arm",
43044    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43045)]
43046pub fn vreinterpret_p8_f32(a: float32x2_t) -> poly8x8_t {
43047    unsafe { transmute(a) }
43048}
43049#[doc = "Vector reinterpret cast operation"]
43050#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_f32)"]
43051#[inline]
43052#[target_feature(enable = "neon")]
43053#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43054#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43055#[cfg_attr(
43056    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43057    assert_instr(nop)
43058)]
43059#[cfg_attr(
43060    not(target_arch = "arm"),
43061    stable(feature = "neon_intrinsics", since = "1.59.0")
43062)]
43063#[cfg_attr(
43064    target_arch = "arm",
43065    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43066)]
43067pub fn vreinterpret_p16_f32(a: float32x2_t) -> poly16x4_t {
43068    unsafe { transmute(a) }
43069}
43070#[doc = "Vector reinterpret cast operation"]
43071#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_f32)"]
43072#[inline]
43073#[target_feature(enable = "neon")]
43074#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43075#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43076#[cfg_attr(
43077    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43078    assert_instr(nop)
43079)]
43080#[cfg_attr(
43081    not(target_arch = "arm"),
43082    stable(feature = "neon_intrinsics", since = "1.59.0")
43083)]
43084#[cfg_attr(
43085    target_arch = "arm",
43086    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43087)]
43088pub fn vreinterpretq_p128_f32(a: float32x4_t) -> p128 {
43089    unsafe { transmute(a) }
43090}
43091#[doc = "Vector reinterpret cast operation"]
43092#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_f32)"]
43093#[inline]
43094#[target_feature(enable = "neon")]
43095#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43096#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43097#[cfg_attr(
43098    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43099    assert_instr(nop)
43100)]
43101#[cfg_attr(
43102    not(target_arch = "arm"),
43103    stable(feature = "neon_intrinsics", since = "1.59.0")
43104)]
43105#[cfg_attr(
43106    target_arch = "arm",
43107    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43108)]
43109pub fn vreinterpretq_s8_f32(a: float32x4_t) -> int8x16_t {
43110    unsafe { transmute(a) }
43111}
43112#[doc = "Vector reinterpret cast operation"]
43113#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_f32)"]
43114#[inline]
43115#[target_feature(enable = "neon")]
43116#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43117#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43118#[cfg_attr(
43119    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43120    assert_instr(nop)
43121)]
43122#[cfg_attr(
43123    not(target_arch = "arm"),
43124    stable(feature = "neon_intrinsics", since = "1.59.0")
43125)]
43126#[cfg_attr(
43127    target_arch = "arm",
43128    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43129)]
43130pub fn vreinterpretq_s16_f32(a: float32x4_t) -> int16x8_t {
43131    unsafe { transmute(a) }
43132}
43133#[doc = "Vector reinterpret cast operation"]
43134#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_f32)"]
43135#[inline]
43136#[target_feature(enable = "neon")]
43137#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43138#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43139#[cfg_attr(
43140    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43141    assert_instr(nop)
43142)]
43143#[cfg_attr(
43144    not(target_arch = "arm"),
43145    stable(feature = "neon_intrinsics", since = "1.59.0")
43146)]
43147#[cfg_attr(
43148    target_arch = "arm",
43149    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43150)]
43151pub fn vreinterpretq_s32_f32(a: float32x4_t) -> int32x4_t {
43152    unsafe { transmute(a) }
43153}
43154#[doc = "Vector reinterpret cast operation"]
43155#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_f32)"]
43156#[inline]
43157#[target_feature(enable = "neon")]
43158#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43159#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43160#[cfg_attr(
43161    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43162    assert_instr(nop)
43163)]
43164#[cfg_attr(
43165    not(target_arch = "arm"),
43166    stable(feature = "neon_intrinsics", since = "1.59.0")
43167)]
43168#[cfg_attr(
43169    target_arch = "arm",
43170    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43171)]
43172pub fn vreinterpretq_s64_f32(a: float32x4_t) -> int64x2_t {
43173    unsafe { transmute(a) }
43174}
43175#[doc = "Vector reinterpret cast operation"]
43176#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_f32)"]
43177#[inline]
43178#[target_feature(enable = "neon")]
43179#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43180#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43181#[cfg_attr(
43182    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43183    assert_instr(nop)
43184)]
43185#[cfg_attr(
43186    not(target_arch = "arm"),
43187    stable(feature = "neon_intrinsics", since = "1.59.0")
43188)]
43189#[cfg_attr(
43190    target_arch = "arm",
43191    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43192)]
43193pub fn vreinterpretq_u8_f32(a: float32x4_t) -> uint8x16_t {
43194    unsafe { transmute(a) }
43195}
43196#[doc = "Vector reinterpret cast operation"]
43197#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_f32)"]
43198#[inline]
43199#[target_feature(enable = "neon")]
43200#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43201#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43202#[cfg_attr(
43203    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43204    assert_instr(nop)
43205)]
43206#[cfg_attr(
43207    not(target_arch = "arm"),
43208    stable(feature = "neon_intrinsics", since = "1.59.0")
43209)]
43210#[cfg_attr(
43211    target_arch = "arm",
43212    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43213)]
43214pub fn vreinterpretq_u16_f32(a: float32x4_t) -> uint16x8_t {
43215    unsafe { transmute(a) }
43216}
43217#[doc = "Vector reinterpret cast operation"]
43218#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_f32)"]
43219#[inline]
43220#[target_feature(enable = "neon")]
43221#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43222#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43223#[cfg_attr(
43224    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43225    assert_instr(nop)
43226)]
43227#[cfg_attr(
43228    not(target_arch = "arm"),
43229    stable(feature = "neon_intrinsics", since = "1.59.0")
43230)]
43231#[cfg_attr(
43232    target_arch = "arm",
43233    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43234)]
43235pub fn vreinterpretq_u32_f32(a: float32x4_t) -> uint32x4_t {
43236    unsafe { transmute(a) }
43237}
43238#[doc = "Vector reinterpret cast operation"]
43239#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_f32)"]
43240#[inline]
43241#[target_feature(enable = "neon")]
43242#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43243#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43244#[cfg_attr(
43245    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43246    assert_instr(nop)
43247)]
43248#[cfg_attr(
43249    not(target_arch = "arm"),
43250    stable(feature = "neon_intrinsics", since = "1.59.0")
43251)]
43252#[cfg_attr(
43253    target_arch = "arm",
43254    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43255)]
43256pub fn vreinterpretq_u64_f32(a: float32x4_t) -> uint64x2_t {
43257    unsafe { transmute(a) }
43258}
43259#[doc = "Vector reinterpret cast operation"]
43260#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_f32)"]
43261#[inline]
43262#[target_feature(enable = "neon")]
43263#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43264#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43265#[cfg_attr(
43266    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43267    assert_instr(nop)
43268)]
43269#[cfg_attr(
43270    not(target_arch = "arm"),
43271    stable(feature = "neon_intrinsics", since = "1.59.0")
43272)]
43273#[cfg_attr(
43274    target_arch = "arm",
43275    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43276)]
43277pub fn vreinterpretq_p8_f32(a: float32x4_t) -> poly8x16_t {
43278    unsafe { transmute(a) }
43279}
43280#[doc = "Vector reinterpret cast operation"]
43281#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_f32)"]
43282#[inline]
43283#[target_feature(enable = "neon")]
43284#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43285#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43286#[cfg_attr(
43287    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43288    assert_instr(nop)
43289)]
43290#[cfg_attr(
43291    not(target_arch = "arm"),
43292    stable(feature = "neon_intrinsics", since = "1.59.0")
43293)]
43294#[cfg_attr(
43295    target_arch = "arm",
43296    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43297)]
43298pub fn vreinterpretq_p16_f32(a: float32x4_t) -> poly16x8_t {
43299    unsafe { transmute(a) }
43300}
43301#[doc = "Vector reinterpret cast operation"]
43302#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_s8)"]
43303#[inline]
43304#[target_feature(enable = "neon")]
43305#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43306#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43307#[cfg_attr(
43308    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43309    assert_instr(nop)
43310)]
43311#[cfg_attr(
43312    not(target_arch = "arm"),
43313    stable(feature = "neon_intrinsics", since = "1.59.0")
43314)]
43315#[cfg_attr(
43316    target_arch = "arm",
43317    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43318)]
43319pub fn vreinterpret_f32_s8(a: int8x8_t) -> float32x2_t {
43320    unsafe { transmute(a) }
43321}
43322#[doc = "Vector reinterpret cast operation"]
43323#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_s8)"]
43324#[inline]
43325#[target_feature(enable = "neon")]
43326#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43327#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43328#[cfg_attr(
43329    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43330    assert_instr(nop)
43331)]
43332#[cfg_attr(
43333    not(target_arch = "arm"),
43334    stable(feature = "neon_intrinsics", since = "1.59.0")
43335)]
43336#[cfg_attr(
43337    target_arch = "arm",
43338    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43339)]
43340pub fn vreinterpret_s16_s8(a: int8x8_t) -> int16x4_t {
43341    unsafe { transmute(a) }
43342}
43343#[doc = "Vector reinterpret cast operation"]
43344#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_s8)"]
43345#[inline]
43346#[target_feature(enable = "neon")]
43347#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43348#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43349#[cfg_attr(
43350    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43351    assert_instr(nop)
43352)]
43353#[cfg_attr(
43354    not(target_arch = "arm"),
43355    stable(feature = "neon_intrinsics", since = "1.59.0")
43356)]
43357#[cfg_attr(
43358    target_arch = "arm",
43359    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43360)]
43361pub fn vreinterpret_s32_s8(a: int8x8_t) -> int32x2_t {
43362    unsafe { transmute(a) }
43363}
43364#[doc = "Vector reinterpret cast operation"]
43365#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_s8)"]
43366#[inline]
43367#[target_feature(enable = "neon")]
43368#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43369#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43370#[cfg_attr(
43371    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43372    assert_instr(nop)
43373)]
43374#[cfg_attr(
43375    not(target_arch = "arm"),
43376    stable(feature = "neon_intrinsics", since = "1.59.0")
43377)]
43378#[cfg_attr(
43379    target_arch = "arm",
43380    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43381)]
43382pub fn vreinterpret_s64_s8(a: int8x8_t) -> int64x1_t {
43383    unsafe { transmute(a) }
43384}
43385#[doc = "Vector reinterpret cast operation"]
43386#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_s8)"]
43387#[inline]
43388#[target_feature(enable = "neon")]
43389#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43390#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43391#[cfg_attr(
43392    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43393    assert_instr(nop)
43394)]
43395#[cfg_attr(
43396    not(target_arch = "arm"),
43397    stable(feature = "neon_intrinsics", since = "1.59.0")
43398)]
43399#[cfg_attr(
43400    target_arch = "arm",
43401    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43402)]
43403pub fn vreinterpret_u8_s8(a: int8x8_t) -> uint8x8_t {
43404    unsafe { transmute(a) }
43405}
43406#[doc = "Vector reinterpret cast operation"]
43407#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_s8)"]
43408#[inline]
43409#[target_feature(enable = "neon")]
43410#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43411#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43412#[cfg_attr(
43413    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43414    assert_instr(nop)
43415)]
43416#[cfg_attr(
43417    not(target_arch = "arm"),
43418    stable(feature = "neon_intrinsics", since = "1.59.0")
43419)]
43420#[cfg_attr(
43421    target_arch = "arm",
43422    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43423)]
43424pub fn vreinterpret_u16_s8(a: int8x8_t) -> uint16x4_t {
43425    unsafe { transmute(a) }
43426}
43427#[doc = "Vector reinterpret cast operation"]
43428#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_s8)"]
43429#[inline]
43430#[target_feature(enable = "neon")]
43431#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43432#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43433#[cfg_attr(
43434    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43435    assert_instr(nop)
43436)]
43437#[cfg_attr(
43438    not(target_arch = "arm"),
43439    stable(feature = "neon_intrinsics", since = "1.59.0")
43440)]
43441#[cfg_attr(
43442    target_arch = "arm",
43443    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43444)]
43445pub fn vreinterpret_u32_s8(a: int8x8_t) -> uint32x2_t {
43446    unsafe { transmute(a) }
43447}
43448#[doc = "Vector reinterpret cast operation"]
43449#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_s8)"]
43450#[inline]
43451#[target_feature(enable = "neon")]
43452#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43453#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43454#[cfg_attr(
43455    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43456    assert_instr(nop)
43457)]
43458#[cfg_attr(
43459    not(target_arch = "arm"),
43460    stable(feature = "neon_intrinsics", since = "1.59.0")
43461)]
43462#[cfg_attr(
43463    target_arch = "arm",
43464    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43465)]
43466pub fn vreinterpret_u64_s8(a: int8x8_t) -> uint64x1_t {
43467    unsafe { transmute(a) }
43468}
43469#[doc = "Vector reinterpret cast operation"]
43470#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_s8)"]
43471#[inline]
43472#[target_feature(enable = "neon")]
43473#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43474#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43475#[cfg_attr(
43476    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43477    assert_instr(nop)
43478)]
43479#[cfg_attr(
43480    not(target_arch = "arm"),
43481    stable(feature = "neon_intrinsics", since = "1.59.0")
43482)]
43483#[cfg_attr(
43484    target_arch = "arm",
43485    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43486)]
43487pub fn vreinterpret_p8_s8(a: int8x8_t) -> poly8x8_t {
43488    unsafe { transmute(a) }
43489}
43490#[doc = "Vector reinterpret cast operation"]
43491#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_s8)"]
43492#[inline]
43493#[target_feature(enable = "neon")]
43494#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43495#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43496#[cfg_attr(
43497    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43498    assert_instr(nop)
43499)]
43500#[cfg_attr(
43501    not(target_arch = "arm"),
43502    stable(feature = "neon_intrinsics", since = "1.59.0")
43503)]
43504#[cfg_attr(
43505    target_arch = "arm",
43506    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43507)]
43508pub fn vreinterpret_p16_s8(a: int8x8_t) -> poly16x4_t {
43509    unsafe { transmute(a) }
43510}
43511#[doc = "Vector reinterpret cast operation"]
43512#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_s8)"]
43513#[inline]
43514#[target_feature(enable = "neon")]
43515#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43516#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43517#[cfg_attr(
43518    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43519    assert_instr(nop)
43520)]
43521#[cfg_attr(
43522    not(target_arch = "arm"),
43523    stable(feature = "neon_intrinsics", since = "1.59.0")
43524)]
43525#[cfg_attr(
43526    target_arch = "arm",
43527    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43528)]
43529pub fn vreinterpretq_f32_s8(a: int8x16_t) -> float32x4_t {
43530    unsafe { transmute(a) }
43531}
43532#[doc = "Vector reinterpret cast operation"]
43533#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_s8)"]
43534#[inline]
43535#[target_feature(enable = "neon")]
43536#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43537#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43538#[cfg_attr(
43539    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43540    assert_instr(nop)
43541)]
43542#[cfg_attr(
43543    not(target_arch = "arm"),
43544    stable(feature = "neon_intrinsics", since = "1.59.0")
43545)]
43546#[cfg_attr(
43547    target_arch = "arm",
43548    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43549)]
43550pub fn vreinterpretq_s16_s8(a: int8x16_t) -> int16x8_t {
43551    unsafe { transmute(a) }
43552}
43553#[doc = "Vector reinterpret cast operation"]
43554#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_s8)"]
43555#[inline]
43556#[target_feature(enable = "neon")]
43557#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43558#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43559#[cfg_attr(
43560    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43561    assert_instr(nop)
43562)]
43563#[cfg_attr(
43564    not(target_arch = "arm"),
43565    stable(feature = "neon_intrinsics", since = "1.59.0")
43566)]
43567#[cfg_attr(
43568    target_arch = "arm",
43569    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43570)]
43571pub fn vreinterpretq_s32_s8(a: int8x16_t) -> int32x4_t {
43572    unsafe { transmute(a) }
43573}
43574#[doc = "Vector reinterpret cast operation"]
43575#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_s8)"]
43576#[inline]
43577#[target_feature(enable = "neon")]
43578#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43579#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43580#[cfg_attr(
43581    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43582    assert_instr(nop)
43583)]
43584#[cfg_attr(
43585    not(target_arch = "arm"),
43586    stable(feature = "neon_intrinsics", since = "1.59.0")
43587)]
43588#[cfg_attr(
43589    target_arch = "arm",
43590    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43591)]
43592pub fn vreinterpretq_s64_s8(a: int8x16_t) -> int64x2_t {
43593    unsafe { transmute(a) }
43594}
43595#[doc = "Vector reinterpret cast operation"]
43596#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_s8)"]
43597#[inline]
43598#[target_feature(enable = "neon")]
43599#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43600#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43601#[cfg_attr(
43602    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43603    assert_instr(nop)
43604)]
43605#[cfg_attr(
43606    not(target_arch = "arm"),
43607    stable(feature = "neon_intrinsics", since = "1.59.0")
43608)]
43609#[cfg_attr(
43610    target_arch = "arm",
43611    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43612)]
43613pub fn vreinterpretq_u8_s8(a: int8x16_t) -> uint8x16_t {
43614    unsafe { transmute(a) }
43615}
43616#[doc = "Vector reinterpret cast operation"]
43617#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_s8)"]
43618#[inline]
43619#[target_feature(enable = "neon")]
43620#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43621#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43622#[cfg_attr(
43623    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43624    assert_instr(nop)
43625)]
43626#[cfg_attr(
43627    not(target_arch = "arm"),
43628    stable(feature = "neon_intrinsics", since = "1.59.0")
43629)]
43630#[cfg_attr(
43631    target_arch = "arm",
43632    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43633)]
43634pub fn vreinterpretq_u16_s8(a: int8x16_t) -> uint16x8_t {
43635    unsafe { transmute(a) }
43636}
43637#[doc = "Vector reinterpret cast operation"]
43638#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_s8)"]
43639#[inline]
43640#[target_feature(enable = "neon")]
43641#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43642#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43643#[cfg_attr(
43644    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43645    assert_instr(nop)
43646)]
43647#[cfg_attr(
43648    not(target_arch = "arm"),
43649    stable(feature = "neon_intrinsics", since = "1.59.0")
43650)]
43651#[cfg_attr(
43652    target_arch = "arm",
43653    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43654)]
43655pub fn vreinterpretq_u32_s8(a: int8x16_t) -> uint32x4_t {
43656    unsafe { transmute(a) }
43657}
43658#[doc = "Vector reinterpret cast operation"]
43659#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_s8)"]
43660#[inline]
43661#[target_feature(enable = "neon")]
43662#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43663#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43664#[cfg_attr(
43665    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43666    assert_instr(nop)
43667)]
43668#[cfg_attr(
43669    not(target_arch = "arm"),
43670    stable(feature = "neon_intrinsics", since = "1.59.0")
43671)]
43672#[cfg_attr(
43673    target_arch = "arm",
43674    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43675)]
43676pub fn vreinterpretq_u64_s8(a: int8x16_t) -> uint64x2_t {
43677    unsafe { transmute(a) }
43678}
43679#[doc = "Vector reinterpret cast operation"]
43680#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_s8)"]
43681#[inline]
43682#[target_feature(enable = "neon")]
43683#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43684#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43685#[cfg_attr(
43686    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43687    assert_instr(nop)
43688)]
43689#[cfg_attr(
43690    not(target_arch = "arm"),
43691    stable(feature = "neon_intrinsics", since = "1.59.0")
43692)]
43693#[cfg_attr(
43694    target_arch = "arm",
43695    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43696)]
43697pub fn vreinterpretq_p8_s8(a: int8x16_t) -> poly8x16_t {
43698    unsafe { transmute(a) }
43699}
43700#[doc = "Vector reinterpret cast operation"]
43701#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_s8)"]
43702#[inline]
43703#[target_feature(enable = "neon")]
43704#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43705#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43706#[cfg_attr(
43707    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43708    assert_instr(nop)
43709)]
43710#[cfg_attr(
43711    not(target_arch = "arm"),
43712    stable(feature = "neon_intrinsics", since = "1.59.0")
43713)]
43714#[cfg_attr(
43715    target_arch = "arm",
43716    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43717)]
43718pub fn vreinterpretq_p16_s8(a: int8x16_t) -> poly16x8_t {
43719    unsafe { transmute(a) }
43720}
43721#[doc = "Vector reinterpret cast operation"]
43722#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_s16)"]
43723#[inline]
43724#[target_feature(enable = "neon")]
43725#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43726#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43727#[cfg_attr(
43728    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43729    assert_instr(nop)
43730)]
43731#[cfg_attr(
43732    not(target_arch = "arm"),
43733    stable(feature = "neon_intrinsics", since = "1.59.0")
43734)]
43735#[cfg_attr(
43736    target_arch = "arm",
43737    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43738)]
43739pub fn vreinterpret_f32_s16(a: int16x4_t) -> float32x2_t {
43740    unsafe { transmute(a) }
43741}
43742#[doc = "Vector reinterpret cast operation"]
43743#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_s16)"]
43744#[inline]
43745#[target_feature(enable = "neon")]
43746#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43747#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43748#[cfg_attr(
43749    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43750    assert_instr(nop)
43751)]
43752#[cfg_attr(
43753    not(target_arch = "arm"),
43754    stable(feature = "neon_intrinsics", since = "1.59.0")
43755)]
43756#[cfg_attr(
43757    target_arch = "arm",
43758    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43759)]
43760pub fn vreinterpret_s8_s16(a: int16x4_t) -> int8x8_t {
43761    unsafe { transmute(a) }
43762}
43763#[doc = "Vector reinterpret cast operation"]
43764#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_s16)"]
43765#[inline]
43766#[target_feature(enable = "neon")]
43767#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43768#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43769#[cfg_attr(
43770    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43771    assert_instr(nop)
43772)]
43773#[cfg_attr(
43774    not(target_arch = "arm"),
43775    stable(feature = "neon_intrinsics", since = "1.59.0")
43776)]
43777#[cfg_attr(
43778    target_arch = "arm",
43779    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43780)]
43781pub fn vreinterpret_s32_s16(a: int16x4_t) -> int32x2_t {
43782    unsafe { transmute(a) }
43783}
43784#[doc = "Vector reinterpret cast operation"]
43785#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_s16)"]
43786#[inline]
43787#[target_feature(enable = "neon")]
43788#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43789#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43790#[cfg_attr(
43791    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43792    assert_instr(nop)
43793)]
43794#[cfg_attr(
43795    not(target_arch = "arm"),
43796    stable(feature = "neon_intrinsics", since = "1.59.0")
43797)]
43798#[cfg_attr(
43799    target_arch = "arm",
43800    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43801)]
43802pub fn vreinterpret_s64_s16(a: int16x4_t) -> int64x1_t {
43803    unsafe { transmute(a) }
43804}
43805#[doc = "Vector reinterpret cast operation"]
43806#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_s16)"]
43807#[inline]
43808#[target_feature(enable = "neon")]
43809#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43810#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43811#[cfg_attr(
43812    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43813    assert_instr(nop)
43814)]
43815#[cfg_attr(
43816    not(target_arch = "arm"),
43817    stable(feature = "neon_intrinsics", since = "1.59.0")
43818)]
43819#[cfg_attr(
43820    target_arch = "arm",
43821    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43822)]
43823pub fn vreinterpret_u8_s16(a: int16x4_t) -> uint8x8_t {
43824    unsafe { transmute(a) }
43825}
43826#[doc = "Vector reinterpret cast operation"]
43827#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_s16)"]
43828#[inline]
43829#[target_feature(enable = "neon")]
43830#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43831#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43832#[cfg_attr(
43833    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43834    assert_instr(nop)
43835)]
43836#[cfg_attr(
43837    not(target_arch = "arm"),
43838    stable(feature = "neon_intrinsics", since = "1.59.0")
43839)]
43840#[cfg_attr(
43841    target_arch = "arm",
43842    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43843)]
43844pub fn vreinterpret_u16_s16(a: int16x4_t) -> uint16x4_t {
43845    unsafe { transmute(a) }
43846}
43847#[doc = "Vector reinterpret cast operation"]
43848#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_s16)"]
43849#[inline]
43850#[target_feature(enable = "neon")]
43851#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43852#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43853#[cfg_attr(
43854    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43855    assert_instr(nop)
43856)]
43857#[cfg_attr(
43858    not(target_arch = "arm"),
43859    stable(feature = "neon_intrinsics", since = "1.59.0")
43860)]
43861#[cfg_attr(
43862    target_arch = "arm",
43863    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43864)]
43865pub fn vreinterpret_u32_s16(a: int16x4_t) -> uint32x2_t {
43866    unsafe { transmute(a) }
43867}
43868#[doc = "Vector reinterpret cast operation"]
43869#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_s16)"]
43870#[inline]
43871#[target_feature(enable = "neon")]
43872#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43873#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43874#[cfg_attr(
43875    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43876    assert_instr(nop)
43877)]
43878#[cfg_attr(
43879    not(target_arch = "arm"),
43880    stable(feature = "neon_intrinsics", since = "1.59.0")
43881)]
43882#[cfg_attr(
43883    target_arch = "arm",
43884    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43885)]
43886pub fn vreinterpret_u64_s16(a: int16x4_t) -> uint64x1_t {
43887    unsafe { transmute(a) }
43888}
43889#[doc = "Vector reinterpret cast operation"]
43890#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_s16)"]
43891#[inline]
43892#[target_feature(enable = "neon")]
43893#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43894#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43895#[cfg_attr(
43896    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43897    assert_instr(nop)
43898)]
43899#[cfg_attr(
43900    not(target_arch = "arm"),
43901    stable(feature = "neon_intrinsics", since = "1.59.0")
43902)]
43903#[cfg_attr(
43904    target_arch = "arm",
43905    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43906)]
43907pub fn vreinterpret_p8_s16(a: int16x4_t) -> poly8x8_t {
43908    unsafe { transmute(a) }
43909}
43910#[doc = "Vector reinterpret cast operation"]
43911#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_s16)"]
43912#[inline]
43913#[target_feature(enable = "neon")]
43914#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43915#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43916#[cfg_attr(
43917    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43918    assert_instr(nop)
43919)]
43920#[cfg_attr(
43921    not(target_arch = "arm"),
43922    stable(feature = "neon_intrinsics", since = "1.59.0")
43923)]
43924#[cfg_attr(
43925    target_arch = "arm",
43926    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43927)]
43928pub fn vreinterpret_p16_s16(a: int16x4_t) -> poly16x4_t {
43929    unsafe { transmute(a) }
43930}
43931#[doc = "Vector reinterpret cast operation"]
43932#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_s16)"]
43933#[inline]
43934#[target_feature(enable = "neon")]
43935#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43936#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43937#[cfg_attr(
43938    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43939    assert_instr(nop)
43940)]
43941#[cfg_attr(
43942    not(target_arch = "arm"),
43943    stable(feature = "neon_intrinsics", since = "1.59.0")
43944)]
43945#[cfg_attr(
43946    target_arch = "arm",
43947    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43948)]
43949pub fn vreinterpretq_f32_s16(a: int16x8_t) -> float32x4_t {
43950    unsafe { transmute(a) }
43951}
43952#[doc = "Vector reinterpret cast operation"]
43953#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_s16)"]
43954#[inline]
43955#[target_feature(enable = "neon")]
43956#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43957#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43958#[cfg_attr(
43959    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43960    assert_instr(nop)
43961)]
43962#[cfg_attr(
43963    not(target_arch = "arm"),
43964    stable(feature = "neon_intrinsics", since = "1.59.0")
43965)]
43966#[cfg_attr(
43967    target_arch = "arm",
43968    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43969)]
43970pub fn vreinterpretq_s8_s16(a: int16x8_t) -> int8x16_t {
43971    unsafe { transmute(a) }
43972}
43973#[doc = "Vector reinterpret cast operation"]
43974#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_s16)"]
43975#[inline]
43976#[target_feature(enable = "neon")]
43977#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43978#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43979#[cfg_attr(
43980    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43981    assert_instr(nop)
43982)]
43983#[cfg_attr(
43984    not(target_arch = "arm"),
43985    stable(feature = "neon_intrinsics", since = "1.59.0")
43986)]
43987#[cfg_attr(
43988    target_arch = "arm",
43989    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43990)]
43991pub fn vreinterpretq_s32_s16(a: int16x8_t) -> int32x4_t {
43992    unsafe { transmute(a) }
43993}
43994#[doc = "Vector reinterpret cast operation"]
43995#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_s16)"]
43996#[inline]
43997#[target_feature(enable = "neon")]
43998#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43999#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44000#[cfg_attr(
44001    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44002    assert_instr(nop)
44003)]
44004#[cfg_attr(
44005    not(target_arch = "arm"),
44006    stable(feature = "neon_intrinsics", since = "1.59.0")
44007)]
44008#[cfg_attr(
44009    target_arch = "arm",
44010    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44011)]
44012pub fn vreinterpretq_s64_s16(a: int16x8_t) -> int64x2_t {
44013    unsafe { transmute(a) }
44014}
44015#[doc = "Vector reinterpret cast operation"]
44016#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_s16)"]
44017#[inline]
44018#[target_feature(enable = "neon")]
44019#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44020#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44021#[cfg_attr(
44022    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44023    assert_instr(nop)
44024)]
44025#[cfg_attr(
44026    not(target_arch = "arm"),
44027    stable(feature = "neon_intrinsics", since = "1.59.0")
44028)]
44029#[cfg_attr(
44030    target_arch = "arm",
44031    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44032)]
44033pub fn vreinterpretq_u8_s16(a: int16x8_t) -> uint8x16_t {
44034    unsafe { transmute(a) }
44035}
44036#[doc = "Vector reinterpret cast operation"]
44037#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_s16)"]
44038#[inline]
44039#[target_feature(enable = "neon")]
44040#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44041#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44042#[cfg_attr(
44043    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44044    assert_instr(nop)
44045)]
44046#[cfg_attr(
44047    not(target_arch = "arm"),
44048    stable(feature = "neon_intrinsics", since = "1.59.0")
44049)]
44050#[cfg_attr(
44051    target_arch = "arm",
44052    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44053)]
44054pub fn vreinterpretq_u16_s16(a: int16x8_t) -> uint16x8_t {
44055    unsafe { transmute(a) }
44056}
44057#[doc = "Vector reinterpret cast operation"]
44058#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_s16)"]
44059#[inline]
44060#[target_feature(enable = "neon")]
44061#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44062#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44063#[cfg_attr(
44064    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44065    assert_instr(nop)
44066)]
44067#[cfg_attr(
44068    not(target_arch = "arm"),
44069    stable(feature = "neon_intrinsics", since = "1.59.0")
44070)]
44071#[cfg_attr(
44072    target_arch = "arm",
44073    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44074)]
44075pub fn vreinterpretq_u32_s16(a: int16x8_t) -> uint32x4_t {
44076    unsafe { transmute(a) }
44077}
44078#[doc = "Vector reinterpret cast operation"]
44079#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_s16)"]
44080#[inline]
44081#[target_feature(enable = "neon")]
44082#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44083#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44084#[cfg_attr(
44085    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44086    assert_instr(nop)
44087)]
44088#[cfg_attr(
44089    not(target_arch = "arm"),
44090    stable(feature = "neon_intrinsics", since = "1.59.0")
44091)]
44092#[cfg_attr(
44093    target_arch = "arm",
44094    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44095)]
44096pub fn vreinterpretq_u64_s16(a: int16x8_t) -> uint64x2_t {
44097    unsafe { transmute(a) }
44098}
44099#[doc = "Vector reinterpret cast operation"]
44100#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_s16)"]
44101#[inline]
44102#[target_feature(enable = "neon")]
44103#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44104#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44105#[cfg_attr(
44106    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44107    assert_instr(nop)
44108)]
44109#[cfg_attr(
44110    not(target_arch = "arm"),
44111    stable(feature = "neon_intrinsics", since = "1.59.0")
44112)]
44113#[cfg_attr(
44114    target_arch = "arm",
44115    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44116)]
44117pub fn vreinterpretq_p8_s16(a: int16x8_t) -> poly8x16_t {
44118    unsafe { transmute(a) }
44119}
44120#[doc = "Vector reinterpret cast operation"]
44121#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_s16)"]
44122#[inline]
44123#[target_feature(enable = "neon")]
44124#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44125#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44126#[cfg_attr(
44127    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44128    assert_instr(nop)
44129)]
44130#[cfg_attr(
44131    not(target_arch = "arm"),
44132    stable(feature = "neon_intrinsics", since = "1.59.0")
44133)]
44134#[cfg_attr(
44135    target_arch = "arm",
44136    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44137)]
44138pub fn vreinterpretq_p16_s16(a: int16x8_t) -> poly16x8_t {
44139    unsafe { transmute(a) }
44140}
44141#[doc = "Vector reinterpret cast operation"]
44142#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_s32)"]
44143#[inline]
44144#[target_feature(enable = "neon")]
44145#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44146#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44147#[cfg_attr(
44148    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44149    assert_instr(nop)
44150)]
44151#[cfg_attr(
44152    not(target_arch = "arm"),
44153    stable(feature = "neon_intrinsics", since = "1.59.0")
44154)]
44155#[cfg_attr(
44156    target_arch = "arm",
44157    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44158)]
44159pub fn vreinterpret_f32_s32(a: int32x2_t) -> float32x2_t {
44160    unsafe { transmute(a) }
44161}
44162#[doc = "Vector reinterpret cast operation"]
44163#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_s32)"]
44164#[inline]
44165#[target_feature(enable = "neon")]
44166#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44167#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44168#[cfg_attr(
44169    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44170    assert_instr(nop)
44171)]
44172#[cfg_attr(
44173    not(target_arch = "arm"),
44174    stable(feature = "neon_intrinsics", since = "1.59.0")
44175)]
44176#[cfg_attr(
44177    target_arch = "arm",
44178    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44179)]
44180pub fn vreinterpret_s8_s32(a: int32x2_t) -> int8x8_t {
44181    unsafe { transmute(a) }
44182}
44183#[doc = "Vector reinterpret cast operation"]
44184#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_s32)"]
44185#[inline]
44186#[target_feature(enable = "neon")]
44187#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44188#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44189#[cfg_attr(
44190    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44191    assert_instr(nop)
44192)]
44193#[cfg_attr(
44194    not(target_arch = "arm"),
44195    stable(feature = "neon_intrinsics", since = "1.59.0")
44196)]
44197#[cfg_attr(
44198    target_arch = "arm",
44199    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44200)]
44201pub fn vreinterpret_s16_s32(a: int32x2_t) -> int16x4_t {
44202    unsafe { transmute(a) }
44203}
44204#[doc = "Vector reinterpret cast operation"]
44205#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_s32)"]
44206#[inline]
44207#[target_feature(enable = "neon")]
44208#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44209#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44210#[cfg_attr(
44211    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44212    assert_instr(nop)
44213)]
44214#[cfg_attr(
44215    not(target_arch = "arm"),
44216    stable(feature = "neon_intrinsics", since = "1.59.0")
44217)]
44218#[cfg_attr(
44219    target_arch = "arm",
44220    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44221)]
44222pub fn vreinterpret_s64_s32(a: int32x2_t) -> int64x1_t {
44223    unsafe { transmute(a) }
44224}
44225#[doc = "Vector reinterpret cast operation"]
44226#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_s32)"]
44227#[inline]
44228#[target_feature(enable = "neon")]
44229#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44230#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44231#[cfg_attr(
44232    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44233    assert_instr(nop)
44234)]
44235#[cfg_attr(
44236    not(target_arch = "arm"),
44237    stable(feature = "neon_intrinsics", since = "1.59.0")
44238)]
44239#[cfg_attr(
44240    target_arch = "arm",
44241    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44242)]
44243pub fn vreinterpret_u8_s32(a: int32x2_t) -> uint8x8_t {
44244    unsafe { transmute(a) }
44245}
44246#[doc = "Vector reinterpret cast operation"]
44247#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_s32)"]
44248#[inline]
44249#[target_feature(enable = "neon")]
44250#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44251#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44252#[cfg_attr(
44253    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44254    assert_instr(nop)
44255)]
44256#[cfg_attr(
44257    not(target_arch = "arm"),
44258    stable(feature = "neon_intrinsics", since = "1.59.0")
44259)]
44260#[cfg_attr(
44261    target_arch = "arm",
44262    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44263)]
44264pub fn vreinterpret_u16_s32(a: int32x2_t) -> uint16x4_t {
44265    unsafe { transmute(a) }
44266}
44267#[doc = "Vector reinterpret cast operation"]
44268#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_s32)"]
44269#[inline]
44270#[target_feature(enable = "neon")]
44271#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44272#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44273#[cfg_attr(
44274    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44275    assert_instr(nop)
44276)]
44277#[cfg_attr(
44278    not(target_arch = "arm"),
44279    stable(feature = "neon_intrinsics", since = "1.59.0")
44280)]
44281#[cfg_attr(
44282    target_arch = "arm",
44283    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44284)]
44285pub fn vreinterpret_u32_s32(a: int32x2_t) -> uint32x2_t {
44286    unsafe { transmute(a) }
44287}
44288#[doc = "Vector reinterpret cast operation"]
44289#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_s32)"]
44290#[inline]
44291#[target_feature(enable = "neon")]
44292#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44293#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44294#[cfg_attr(
44295    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44296    assert_instr(nop)
44297)]
44298#[cfg_attr(
44299    not(target_arch = "arm"),
44300    stable(feature = "neon_intrinsics", since = "1.59.0")
44301)]
44302#[cfg_attr(
44303    target_arch = "arm",
44304    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44305)]
44306pub fn vreinterpret_u64_s32(a: int32x2_t) -> uint64x1_t {
44307    unsafe { transmute(a) }
44308}
44309#[doc = "Vector reinterpret cast operation"]
44310#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_s32)"]
44311#[inline]
44312#[target_feature(enable = "neon")]
44313#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44314#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44315#[cfg_attr(
44316    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44317    assert_instr(nop)
44318)]
44319#[cfg_attr(
44320    not(target_arch = "arm"),
44321    stable(feature = "neon_intrinsics", since = "1.59.0")
44322)]
44323#[cfg_attr(
44324    target_arch = "arm",
44325    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44326)]
44327pub fn vreinterpret_p8_s32(a: int32x2_t) -> poly8x8_t {
44328    unsafe { transmute(a) }
44329}
44330#[doc = "Vector reinterpret cast operation"]
44331#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_s32)"]
44332#[inline]
44333#[target_feature(enable = "neon")]
44334#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44335#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44336#[cfg_attr(
44337    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44338    assert_instr(nop)
44339)]
44340#[cfg_attr(
44341    not(target_arch = "arm"),
44342    stable(feature = "neon_intrinsics", since = "1.59.0")
44343)]
44344#[cfg_attr(
44345    target_arch = "arm",
44346    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44347)]
44348pub fn vreinterpret_p16_s32(a: int32x2_t) -> poly16x4_t {
44349    unsafe { transmute(a) }
44350}
44351#[doc = "Vector reinterpret cast operation"]
44352#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_s32)"]
44353#[inline]
44354#[target_feature(enable = "neon")]
44355#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44356#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44357#[cfg_attr(
44358    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44359    assert_instr(nop)
44360)]
44361#[cfg_attr(
44362    not(target_arch = "arm"),
44363    stable(feature = "neon_intrinsics", since = "1.59.0")
44364)]
44365#[cfg_attr(
44366    target_arch = "arm",
44367    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44368)]
44369pub fn vreinterpretq_f32_s32(a: int32x4_t) -> float32x4_t {
44370    unsafe { transmute(a) }
44371}
44372#[doc = "Vector reinterpret cast operation"]
44373#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_s32)"]
44374#[inline]
44375#[target_feature(enable = "neon")]
44376#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44377#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44378#[cfg_attr(
44379    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44380    assert_instr(nop)
44381)]
44382#[cfg_attr(
44383    not(target_arch = "arm"),
44384    stable(feature = "neon_intrinsics", since = "1.59.0")
44385)]
44386#[cfg_attr(
44387    target_arch = "arm",
44388    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44389)]
44390pub fn vreinterpretq_s8_s32(a: int32x4_t) -> int8x16_t {
44391    unsafe { transmute(a) }
44392}
44393#[doc = "Vector reinterpret cast operation"]
44394#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_s32)"]
44395#[inline]
44396#[target_feature(enable = "neon")]
44397#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44398#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44399#[cfg_attr(
44400    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44401    assert_instr(nop)
44402)]
44403#[cfg_attr(
44404    not(target_arch = "arm"),
44405    stable(feature = "neon_intrinsics", since = "1.59.0")
44406)]
44407#[cfg_attr(
44408    target_arch = "arm",
44409    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44410)]
44411pub fn vreinterpretq_s16_s32(a: int32x4_t) -> int16x8_t {
44412    unsafe { transmute(a) }
44413}
44414#[doc = "Vector reinterpret cast operation"]
44415#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_s32)"]
44416#[inline]
44417#[target_feature(enable = "neon")]
44418#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44419#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44420#[cfg_attr(
44421    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44422    assert_instr(nop)
44423)]
44424#[cfg_attr(
44425    not(target_arch = "arm"),
44426    stable(feature = "neon_intrinsics", since = "1.59.0")
44427)]
44428#[cfg_attr(
44429    target_arch = "arm",
44430    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44431)]
44432pub fn vreinterpretq_s64_s32(a: int32x4_t) -> int64x2_t {
44433    unsafe { transmute(a) }
44434}
44435#[doc = "Vector reinterpret cast operation"]
44436#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_s32)"]
44437#[inline]
44438#[target_feature(enable = "neon")]
44439#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44440#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44441#[cfg_attr(
44442    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44443    assert_instr(nop)
44444)]
44445#[cfg_attr(
44446    not(target_arch = "arm"),
44447    stable(feature = "neon_intrinsics", since = "1.59.0")
44448)]
44449#[cfg_attr(
44450    target_arch = "arm",
44451    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44452)]
44453pub fn vreinterpretq_u8_s32(a: int32x4_t) -> uint8x16_t {
44454    unsafe { transmute(a) }
44455}
44456#[doc = "Vector reinterpret cast operation"]
44457#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_s32)"]
44458#[inline]
44459#[target_feature(enable = "neon")]
44460#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44461#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44462#[cfg_attr(
44463    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44464    assert_instr(nop)
44465)]
44466#[cfg_attr(
44467    not(target_arch = "arm"),
44468    stable(feature = "neon_intrinsics", since = "1.59.0")
44469)]
44470#[cfg_attr(
44471    target_arch = "arm",
44472    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44473)]
44474pub fn vreinterpretq_u16_s32(a: int32x4_t) -> uint16x8_t {
44475    unsafe { transmute(a) }
44476}
44477#[doc = "Vector reinterpret cast operation"]
44478#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_s32)"]
44479#[inline]
44480#[target_feature(enable = "neon")]
44481#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44482#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44483#[cfg_attr(
44484    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44485    assert_instr(nop)
44486)]
44487#[cfg_attr(
44488    not(target_arch = "arm"),
44489    stable(feature = "neon_intrinsics", since = "1.59.0")
44490)]
44491#[cfg_attr(
44492    target_arch = "arm",
44493    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44494)]
44495pub fn vreinterpretq_u32_s32(a: int32x4_t) -> uint32x4_t {
44496    unsafe { transmute(a) }
44497}
44498#[doc = "Vector reinterpret cast operation"]
44499#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_s32)"]
44500#[inline]
44501#[target_feature(enable = "neon")]
44502#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44503#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44504#[cfg_attr(
44505    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44506    assert_instr(nop)
44507)]
44508#[cfg_attr(
44509    not(target_arch = "arm"),
44510    stable(feature = "neon_intrinsics", since = "1.59.0")
44511)]
44512#[cfg_attr(
44513    target_arch = "arm",
44514    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44515)]
44516pub fn vreinterpretq_u64_s32(a: int32x4_t) -> uint64x2_t {
44517    unsafe { transmute(a) }
44518}
44519#[doc = "Vector reinterpret cast operation"]
44520#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_s32)"]
44521#[inline]
44522#[target_feature(enable = "neon")]
44523#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44524#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44525#[cfg_attr(
44526    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44527    assert_instr(nop)
44528)]
44529#[cfg_attr(
44530    not(target_arch = "arm"),
44531    stable(feature = "neon_intrinsics", since = "1.59.0")
44532)]
44533#[cfg_attr(
44534    target_arch = "arm",
44535    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44536)]
44537pub fn vreinterpretq_p8_s32(a: int32x4_t) -> poly8x16_t {
44538    unsafe { transmute(a) }
44539}
44540#[doc = "Vector reinterpret cast operation"]
44541#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_s32)"]
44542#[inline]
44543#[target_feature(enable = "neon")]
44544#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44545#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44546#[cfg_attr(
44547    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44548    assert_instr(nop)
44549)]
44550#[cfg_attr(
44551    not(target_arch = "arm"),
44552    stable(feature = "neon_intrinsics", since = "1.59.0")
44553)]
44554#[cfg_attr(
44555    target_arch = "arm",
44556    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44557)]
44558pub fn vreinterpretq_p16_s32(a: int32x4_t) -> poly16x8_t {
44559    unsafe { transmute(a) }
44560}
44561#[doc = "Vector reinterpret cast operation"]
44562#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_s64)"]
44563#[inline]
44564#[target_feature(enable = "neon")]
44565#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44566#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44567#[cfg_attr(
44568    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44569    assert_instr(nop)
44570)]
44571#[cfg_attr(
44572    not(target_arch = "arm"),
44573    stable(feature = "neon_intrinsics", since = "1.59.0")
44574)]
44575#[cfg_attr(
44576    target_arch = "arm",
44577    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44578)]
44579pub fn vreinterpret_f32_s64(a: int64x1_t) -> float32x2_t {
44580    unsafe { transmute(a) }
44581}
44582#[doc = "Vector reinterpret cast operation"]
44583#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_s64)"]
44584#[inline]
44585#[target_feature(enable = "neon")]
44586#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44587#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44588#[cfg_attr(
44589    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44590    assert_instr(nop)
44591)]
44592#[cfg_attr(
44593    not(target_arch = "arm"),
44594    stable(feature = "neon_intrinsics", since = "1.59.0")
44595)]
44596#[cfg_attr(
44597    target_arch = "arm",
44598    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44599)]
44600pub fn vreinterpret_s8_s64(a: int64x1_t) -> int8x8_t {
44601    unsafe { transmute(a) }
44602}
44603#[doc = "Vector reinterpret cast operation"]
44604#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_s64)"]
44605#[inline]
44606#[target_feature(enable = "neon")]
44607#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44608#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44609#[cfg_attr(
44610    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44611    assert_instr(nop)
44612)]
44613#[cfg_attr(
44614    not(target_arch = "arm"),
44615    stable(feature = "neon_intrinsics", since = "1.59.0")
44616)]
44617#[cfg_attr(
44618    target_arch = "arm",
44619    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44620)]
44621pub fn vreinterpret_s16_s64(a: int64x1_t) -> int16x4_t {
44622    unsafe { transmute(a) }
44623}
44624#[doc = "Vector reinterpret cast operation"]
44625#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_s64)"]
44626#[inline]
44627#[target_feature(enable = "neon")]
44628#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44629#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44630#[cfg_attr(
44631    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44632    assert_instr(nop)
44633)]
44634#[cfg_attr(
44635    not(target_arch = "arm"),
44636    stable(feature = "neon_intrinsics", since = "1.59.0")
44637)]
44638#[cfg_attr(
44639    target_arch = "arm",
44640    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44641)]
44642pub fn vreinterpret_s32_s64(a: int64x1_t) -> int32x2_t {
44643    unsafe { transmute(a) }
44644}
44645#[doc = "Vector reinterpret cast operation"]
44646#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_s64)"]
44647#[inline]
44648#[target_feature(enable = "neon")]
44649#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44650#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44651#[cfg_attr(
44652    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44653    assert_instr(nop)
44654)]
44655#[cfg_attr(
44656    not(target_arch = "arm"),
44657    stable(feature = "neon_intrinsics", since = "1.59.0")
44658)]
44659#[cfg_attr(
44660    target_arch = "arm",
44661    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44662)]
44663pub fn vreinterpret_u8_s64(a: int64x1_t) -> uint8x8_t {
44664    unsafe { transmute(a) }
44665}
44666#[doc = "Vector reinterpret cast operation"]
44667#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_s64)"]
44668#[inline]
44669#[target_feature(enable = "neon")]
44670#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44671#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44672#[cfg_attr(
44673    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44674    assert_instr(nop)
44675)]
44676#[cfg_attr(
44677    not(target_arch = "arm"),
44678    stable(feature = "neon_intrinsics", since = "1.59.0")
44679)]
44680#[cfg_attr(
44681    target_arch = "arm",
44682    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44683)]
44684pub fn vreinterpret_u16_s64(a: int64x1_t) -> uint16x4_t {
44685    unsafe { transmute(a) }
44686}
44687#[doc = "Vector reinterpret cast operation"]
44688#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_s64)"]
44689#[inline]
44690#[target_feature(enable = "neon")]
44691#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44692#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44693#[cfg_attr(
44694    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44695    assert_instr(nop)
44696)]
44697#[cfg_attr(
44698    not(target_arch = "arm"),
44699    stable(feature = "neon_intrinsics", since = "1.59.0")
44700)]
44701#[cfg_attr(
44702    target_arch = "arm",
44703    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44704)]
44705pub fn vreinterpret_u32_s64(a: int64x1_t) -> uint32x2_t {
44706    unsafe { transmute(a) }
44707}
44708#[doc = "Vector reinterpret cast operation"]
44709#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_s64)"]
44710#[inline]
44711#[target_feature(enable = "neon")]
44712#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44713#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44714#[cfg_attr(
44715    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44716    assert_instr(nop)
44717)]
44718#[cfg_attr(
44719    not(target_arch = "arm"),
44720    stable(feature = "neon_intrinsics", since = "1.59.0")
44721)]
44722#[cfg_attr(
44723    target_arch = "arm",
44724    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44725)]
44726pub fn vreinterpret_u64_s64(a: int64x1_t) -> uint64x1_t {
44727    unsafe { transmute(a) }
44728}
44729#[doc = "Vector reinterpret cast operation"]
44730#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_s64)"]
44731#[inline]
44732#[target_feature(enable = "neon")]
44733#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44734#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44735#[cfg_attr(
44736    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44737    assert_instr(nop)
44738)]
44739#[cfg_attr(
44740    not(target_arch = "arm"),
44741    stable(feature = "neon_intrinsics", since = "1.59.0")
44742)]
44743#[cfg_attr(
44744    target_arch = "arm",
44745    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44746)]
44747pub fn vreinterpret_p8_s64(a: int64x1_t) -> poly8x8_t {
44748    unsafe { transmute(a) }
44749}
44750#[doc = "Vector reinterpret cast operation"]
44751#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_s64)"]
44752#[inline]
44753#[target_feature(enable = "neon")]
44754#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44755#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44756#[cfg_attr(
44757    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44758    assert_instr(nop)
44759)]
44760#[cfg_attr(
44761    not(target_arch = "arm"),
44762    stable(feature = "neon_intrinsics", since = "1.59.0")
44763)]
44764#[cfg_attr(
44765    target_arch = "arm",
44766    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44767)]
44768pub fn vreinterpret_p16_s64(a: int64x1_t) -> poly16x4_t {
44769    unsafe { transmute(a) }
44770}
44771#[doc = "Vector reinterpret cast operation"]
44772#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_s64)"]
44773#[inline]
44774#[target_feature(enable = "neon")]
44775#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44776#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44777#[cfg_attr(
44778    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44779    assert_instr(nop)
44780)]
44781#[cfg_attr(
44782    not(target_arch = "arm"),
44783    stable(feature = "neon_intrinsics", since = "1.59.0")
44784)]
44785#[cfg_attr(
44786    target_arch = "arm",
44787    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44788)]
44789pub fn vreinterpretq_f32_s64(a: int64x2_t) -> float32x4_t {
44790    unsafe { transmute(a) }
44791}
44792#[doc = "Vector reinterpret cast operation"]
44793#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_s64)"]
44794#[inline]
44795#[target_feature(enable = "neon")]
44796#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44797#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44798#[cfg_attr(
44799    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44800    assert_instr(nop)
44801)]
44802#[cfg_attr(
44803    not(target_arch = "arm"),
44804    stable(feature = "neon_intrinsics", since = "1.59.0")
44805)]
44806#[cfg_attr(
44807    target_arch = "arm",
44808    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44809)]
44810pub fn vreinterpretq_s8_s64(a: int64x2_t) -> int8x16_t {
44811    unsafe { transmute(a) }
44812}
44813#[doc = "Vector reinterpret cast operation"]
44814#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_s64)"]
44815#[inline]
44816#[target_feature(enable = "neon")]
44817#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44818#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44819#[cfg_attr(
44820    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44821    assert_instr(nop)
44822)]
44823#[cfg_attr(
44824    not(target_arch = "arm"),
44825    stable(feature = "neon_intrinsics", since = "1.59.0")
44826)]
44827#[cfg_attr(
44828    target_arch = "arm",
44829    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44830)]
44831pub fn vreinterpretq_s16_s64(a: int64x2_t) -> int16x8_t {
44832    unsafe { transmute(a) }
44833}
44834#[doc = "Vector reinterpret cast operation"]
44835#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_s64)"]
44836#[inline]
44837#[target_feature(enable = "neon")]
44838#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44839#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44840#[cfg_attr(
44841    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44842    assert_instr(nop)
44843)]
44844#[cfg_attr(
44845    not(target_arch = "arm"),
44846    stable(feature = "neon_intrinsics", since = "1.59.0")
44847)]
44848#[cfg_attr(
44849    target_arch = "arm",
44850    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44851)]
44852pub fn vreinterpretq_s32_s64(a: int64x2_t) -> int32x4_t {
44853    unsafe { transmute(a) }
44854}
44855#[doc = "Vector reinterpret cast operation"]
44856#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_s64)"]
44857#[inline]
44858#[target_feature(enable = "neon")]
44859#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44860#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44861#[cfg_attr(
44862    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44863    assert_instr(nop)
44864)]
44865#[cfg_attr(
44866    not(target_arch = "arm"),
44867    stable(feature = "neon_intrinsics", since = "1.59.0")
44868)]
44869#[cfg_attr(
44870    target_arch = "arm",
44871    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44872)]
44873pub fn vreinterpretq_u8_s64(a: int64x2_t) -> uint8x16_t {
44874    unsafe { transmute(a) }
44875}
44876#[doc = "Vector reinterpret cast operation"]
44877#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_s64)"]
44878#[inline]
44879#[target_feature(enable = "neon")]
44880#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44881#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44882#[cfg_attr(
44883    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44884    assert_instr(nop)
44885)]
44886#[cfg_attr(
44887    not(target_arch = "arm"),
44888    stable(feature = "neon_intrinsics", since = "1.59.0")
44889)]
44890#[cfg_attr(
44891    target_arch = "arm",
44892    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44893)]
44894pub fn vreinterpretq_u16_s64(a: int64x2_t) -> uint16x8_t {
44895    unsafe { transmute(a) }
44896}
44897#[doc = "Vector reinterpret cast operation"]
44898#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_s64)"]
44899#[inline]
44900#[target_feature(enable = "neon")]
44901#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44902#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44903#[cfg_attr(
44904    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44905    assert_instr(nop)
44906)]
44907#[cfg_attr(
44908    not(target_arch = "arm"),
44909    stable(feature = "neon_intrinsics", since = "1.59.0")
44910)]
44911#[cfg_attr(
44912    target_arch = "arm",
44913    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44914)]
44915pub fn vreinterpretq_u32_s64(a: int64x2_t) -> uint32x4_t {
44916    unsafe { transmute(a) }
44917}
44918#[doc = "Vector reinterpret cast operation"]
44919#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_s64)"]
44920#[inline]
44921#[target_feature(enable = "neon")]
44922#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44923#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44924#[cfg_attr(
44925    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44926    assert_instr(nop)
44927)]
44928#[cfg_attr(
44929    not(target_arch = "arm"),
44930    stable(feature = "neon_intrinsics", since = "1.59.0")
44931)]
44932#[cfg_attr(
44933    target_arch = "arm",
44934    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44935)]
44936pub fn vreinterpretq_u64_s64(a: int64x2_t) -> uint64x2_t {
44937    unsafe { transmute(a) }
44938}
44939#[doc = "Vector reinterpret cast operation"]
44940#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_s64)"]
44941#[inline]
44942#[target_feature(enable = "neon")]
44943#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44944#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44945#[cfg_attr(
44946    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44947    assert_instr(nop)
44948)]
44949#[cfg_attr(
44950    not(target_arch = "arm"),
44951    stable(feature = "neon_intrinsics", since = "1.59.0")
44952)]
44953#[cfg_attr(
44954    target_arch = "arm",
44955    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44956)]
44957pub fn vreinterpretq_p8_s64(a: int64x2_t) -> poly8x16_t {
44958    unsafe { transmute(a) }
44959}
44960#[doc = "Vector reinterpret cast operation"]
44961#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_s64)"]
44962#[inline]
44963#[target_feature(enable = "neon")]
44964#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44965#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44966#[cfg_attr(
44967    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44968    assert_instr(nop)
44969)]
44970#[cfg_attr(
44971    not(target_arch = "arm"),
44972    stable(feature = "neon_intrinsics", since = "1.59.0")
44973)]
44974#[cfg_attr(
44975    target_arch = "arm",
44976    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44977)]
44978pub fn vreinterpretq_p16_s64(a: int64x2_t) -> poly16x8_t {
44979    unsafe { transmute(a) }
44980}
44981#[doc = "Vector reinterpret cast operation"]
44982#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_u8)"]
44983#[inline]
44984#[target_feature(enable = "neon")]
44985#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44986#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44987#[cfg_attr(
44988    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44989    assert_instr(nop)
44990)]
44991#[cfg_attr(
44992    not(target_arch = "arm"),
44993    stable(feature = "neon_intrinsics", since = "1.59.0")
44994)]
44995#[cfg_attr(
44996    target_arch = "arm",
44997    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44998)]
44999pub fn vreinterpret_f32_u8(a: uint8x8_t) -> float32x2_t {
45000    unsafe { transmute(a) }
45001}
45002#[doc = "Vector reinterpret cast operation"]
45003#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_u8)"]
45004#[inline]
45005#[target_feature(enable = "neon")]
45006#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45007#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45008#[cfg_attr(
45009    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45010    assert_instr(nop)
45011)]
45012#[cfg_attr(
45013    not(target_arch = "arm"),
45014    stable(feature = "neon_intrinsics", since = "1.59.0")
45015)]
45016#[cfg_attr(
45017    target_arch = "arm",
45018    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45019)]
45020pub fn vreinterpret_s8_u8(a: uint8x8_t) -> int8x8_t {
45021    unsafe { transmute(a) }
45022}
45023#[doc = "Vector reinterpret cast operation"]
45024#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_u8)"]
45025#[inline]
45026#[target_feature(enable = "neon")]
45027#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45028#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45029#[cfg_attr(
45030    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45031    assert_instr(nop)
45032)]
45033#[cfg_attr(
45034    not(target_arch = "arm"),
45035    stable(feature = "neon_intrinsics", since = "1.59.0")
45036)]
45037#[cfg_attr(
45038    target_arch = "arm",
45039    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45040)]
45041pub fn vreinterpret_s16_u8(a: uint8x8_t) -> int16x4_t {
45042    unsafe { transmute(a) }
45043}
45044#[doc = "Vector reinterpret cast operation"]
45045#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_u8)"]
45046#[inline]
45047#[target_feature(enable = "neon")]
45048#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45049#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45050#[cfg_attr(
45051    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45052    assert_instr(nop)
45053)]
45054#[cfg_attr(
45055    not(target_arch = "arm"),
45056    stable(feature = "neon_intrinsics", since = "1.59.0")
45057)]
45058#[cfg_attr(
45059    target_arch = "arm",
45060    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45061)]
45062pub fn vreinterpret_s32_u8(a: uint8x8_t) -> int32x2_t {
45063    unsafe { transmute(a) }
45064}
45065#[doc = "Vector reinterpret cast operation"]
45066#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_u8)"]
45067#[inline]
45068#[target_feature(enable = "neon")]
45069#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45070#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45071#[cfg_attr(
45072    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45073    assert_instr(nop)
45074)]
45075#[cfg_attr(
45076    not(target_arch = "arm"),
45077    stable(feature = "neon_intrinsics", since = "1.59.0")
45078)]
45079#[cfg_attr(
45080    target_arch = "arm",
45081    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45082)]
45083pub fn vreinterpret_s64_u8(a: uint8x8_t) -> int64x1_t {
45084    unsafe { transmute(a) }
45085}
45086#[doc = "Vector reinterpret cast operation"]
45087#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_u8)"]
45088#[inline]
45089#[target_feature(enable = "neon")]
45090#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45091#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45092#[cfg_attr(
45093    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45094    assert_instr(nop)
45095)]
45096#[cfg_attr(
45097    not(target_arch = "arm"),
45098    stable(feature = "neon_intrinsics", since = "1.59.0")
45099)]
45100#[cfg_attr(
45101    target_arch = "arm",
45102    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45103)]
45104pub fn vreinterpret_u16_u8(a: uint8x8_t) -> uint16x4_t {
45105    unsafe { transmute(a) }
45106}
45107#[doc = "Vector reinterpret cast operation"]
45108#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_u8)"]
45109#[inline]
45110#[target_feature(enable = "neon")]
45111#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45112#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45113#[cfg_attr(
45114    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45115    assert_instr(nop)
45116)]
45117#[cfg_attr(
45118    not(target_arch = "arm"),
45119    stable(feature = "neon_intrinsics", since = "1.59.0")
45120)]
45121#[cfg_attr(
45122    target_arch = "arm",
45123    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45124)]
45125pub fn vreinterpret_u32_u8(a: uint8x8_t) -> uint32x2_t {
45126    unsafe { transmute(a) }
45127}
45128#[doc = "Vector reinterpret cast operation"]
45129#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_u8)"]
45130#[inline]
45131#[target_feature(enable = "neon")]
45132#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45133#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45134#[cfg_attr(
45135    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45136    assert_instr(nop)
45137)]
45138#[cfg_attr(
45139    not(target_arch = "arm"),
45140    stable(feature = "neon_intrinsics", since = "1.59.0")
45141)]
45142#[cfg_attr(
45143    target_arch = "arm",
45144    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45145)]
45146pub fn vreinterpret_u64_u8(a: uint8x8_t) -> uint64x1_t {
45147    unsafe { transmute(a) }
45148}
45149#[doc = "Vector reinterpret cast operation"]
45150#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_u8)"]
45151#[inline]
45152#[target_feature(enable = "neon")]
45153#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45154#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45155#[cfg_attr(
45156    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45157    assert_instr(nop)
45158)]
45159#[cfg_attr(
45160    not(target_arch = "arm"),
45161    stable(feature = "neon_intrinsics", since = "1.59.0")
45162)]
45163#[cfg_attr(
45164    target_arch = "arm",
45165    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45166)]
45167pub fn vreinterpret_p8_u8(a: uint8x8_t) -> poly8x8_t {
45168    unsafe { transmute(a) }
45169}
45170#[doc = "Vector reinterpret cast operation"]
45171#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_u8)"]
45172#[inline]
45173#[target_feature(enable = "neon")]
45174#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45175#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45176#[cfg_attr(
45177    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45178    assert_instr(nop)
45179)]
45180#[cfg_attr(
45181    not(target_arch = "arm"),
45182    stable(feature = "neon_intrinsics", since = "1.59.0")
45183)]
45184#[cfg_attr(
45185    target_arch = "arm",
45186    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45187)]
45188pub fn vreinterpret_p16_u8(a: uint8x8_t) -> poly16x4_t {
45189    unsafe { transmute(a) }
45190}
45191#[doc = "Vector reinterpret cast operation"]
45192#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_u8)"]
45193#[inline]
45194#[target_feature(enable = "neon")]
45195#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45196#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45197#[cfg_attr(
45198    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45199    assert_instr(nop)
45200)]
45201#[cfg_attr(
45202    not(target_arch = "arm"),
45203    stable(feature = "neon_intrinsics", since = "1.59.0")
45204)]
45205#[cfg_attr(
45206    target_arch = "arm",
45207    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45208)]
45209pub fn vreinterpretq_f32_u8(a: uint8x16_t) -> float32x4_t {
45210    unsafe { transmute(a) }
45211}
45212#[doc = "Vector reinterpret cast operation"]
45213#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_u8)"]
45214#[inline]
45215#[target_feature(enable = "neon")]
45216#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45217#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45218#[cfg_attr(
45219    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45220    assert_instr(nop)
45221)]
45222#[cfg_attr(
45223    not(target_arch = "arm"),
45224    stable(feature = "neon_intrinsics", since = "1.59.0")
45225)]
45226#[cfg_attr(
45227    target_arch = "arm",
45228    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45229)]
45230pub fn vreinterpretq_s8_u8(a: uint8x16_t) -> int8x16_t {
45231    unsafe { transmute(a) }
45232}
45233#[doc = "Vector reinterpret cast operation"]
45234#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_u8)"]
45235#[inline]
45236#[target_feature(enable = "neon")]
45237#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45238#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45239#[cfg_attr(
45240    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45241    assert_instr(nop)
45242)]
45243#[cfg_attr(
45244    not(target_arch = "arm"),
45245    stable(feature = "neon_intrinsics", since = "1.59.0")
45246)]
45247#[cfg_attr(
45248    target_arch = "arm",
45249    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45250)]
45251pub fn vreinterpretq_s16_u8(a: uint8x16_t) -> int16x8_t {
45252    unsafe { transmute(a) }
45253}
45254#[doc = "Vector reinterpret cast operation"]
45255#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_u8)"]
45256#[inline]
45257#[target_feature(enable = "neon")]
45258#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45259#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45260#[cfg_attr(
45261    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45262    assert_instr(nop)
45263)]
45264#[cfg_attr(
45265    not(target_arch = "arm"),
45266    stable(feature = "neon_intrinsics", since = "1.59.0")
45267)]
45268#[cfg_attr(
45269    target_arch = "arm",
45270    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45271)]
45272pub fn vreinterpretq_s32_u8(a: uint8x16_t) -> int32x4_t {
45273    unsafe { transmute(a) }
45274}
45275#[doc = "Vector reinterpret cast operation"]
45276#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_u8)"]
45277#[inline]
45278#[target_feature(enable = "neon")]
45279#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45280#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45281#[cfg_attr(
45282    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45283    assert_instr(nop)
45284)]
45285#[cfg_attr(
45286    not(target_arch = "arm"),
45287    stable(feature = "neon_intrinsics", since = "1.59.0")
45288)]
45289#[cfg_attr(
45290    target_arch = "arm",
45291    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45292)]
45293pub fn vreinterpretq_s64_u8(a: uint8x16_t) -> int64x2_t {
45294    unsafe { transmute(a) }
45295}
45296#[doc = "Vector reinterpret cast operation"]
45297#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_u8)"]
45298#[inline]
45299#[target_feature(enable = "neon")]
45300#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45301#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45302#[cfg_attr(
45303    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45304    assert_instr(nop)
45305)]
45306#[cfg_attr(
45307    not(target_arch = "arm"),
45308    stable(feature = "neon_intrinsics", since = "1.59.0")
45309)]
45310#[cfg_attr(
45311    target_arch = "arm",
45312    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45313)]
45314pub fn vreinterpretq_u16_u8(a: uint8x16_t) -> uint16x8_t {
45315    unsafe { transmute(a) }
45316}
45317#[doc = "Vector reinterpret cast operation"]
45318#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_u8)"]
45319#[inline]
45320#[target_feature(enable = "neon")]
45321#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45322#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45323#[cfg_attr(
45324    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45325    assert_instr(nop)
45326)]
45327#[cfg_attr(
45328    not(target_arch = "arm"),
45329    stable(feature = "neon_intrinsics", since = "1.59.0")
45330)]
45331#[cfg_attr(
45332    target_arch = "arm",
45333    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45334)]
45335pub fn vreinterpretq_u32_u8(a: uint8x16_t) -> uint32x4_t {
45336    unsafe { transmute(a) }
45337}
45338#[doc = "Vector reinterpret cast operation"]
45339#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_u8)"]
45340#[inline]
45341#[target_feature(enable = "neon")]
45342#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45343#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45344#[cfg_attr(
45345    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45346    assert_instr(nop)
45347)]
45348#[cfg_attr(
45349    not(target_arch = "arm"),
45350    stable(feature = "neon_intrinsics", since = "1.59.0")
45351)]
45352#[cfg_attr(
45353    target_arch = "arm",
45354    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45355)]
45356pub fn vreinterpretq_u64_u8(a: uint8x16_t) -> uint64x2_t {
45357    unsafe { transmute(a) }
45358}
45359#[doc = "Vector reinterpret cast operation"]
45360#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_u8)"]
45361#[inline]
45362#[target_feature(enable = "neon")]
45363#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45364#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45365#[cfg_attr(
45366    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45367    assert_instr(nop)
45368)]
45369#[cfg_attr(
45370    not(target_arch = "arm"),
45371    stable(feature = "neon_intrinsics", since = "1.59.0")
45372)]
45373#[cfg_attr(
45374    target_arch = "arm",
45375    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45376)]
45377pub fn vreinterpretq_p8_u8(a: uint8x16_t) -> poly8x16_t {
45378    unsafe { transmute(a) }
45379}
45380#[doc = "Vector reinterpret cast operation"]
45381#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_u8)"]
45382#[inline]
45383#[target_feature(enable = "neon")]
45384#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45385#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45386#[cfg_attr(
45387    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45388    assert_instr(nop)
45389)]
45390#[cfg_attr(
45391    not(target_arch = "arm"),
45392    stable(feature = "neon_intrinsics", since = "1.59.0")
45393)]
45394#[cfg_attr(
45395    target_arch = "arm",
45396    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45397)]
45398pub fn vreinterpretq_p16_u8(a: uint8x16_t) -> poly16x8_t {
45399    unsafe { transmute(a) }
45400}
45401#[doc = "Vector reinterpret cast operation"]
45402#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_u16)"]
45403#[inline]
45404#[target_feature(enable = "neon")]
45405#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45406#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45407#[cfg_attr(
45408    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45409    assert_instr(nop)
45410)]
45411#[cfg_attr(
45412    not(target_arch = "arm"),
45413    stable(feature = "neon_intrinsics", since = "1.59.0")
45414)]
45415#[cfg_attr(
45416    target_arch = "arm",
45417    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45418)]
45419pub fn vreinterpret_f32_u16(a: uint16x4_t) -> float32x2_t {
45420    unsafe { transmute(a) }
45421}
45422#[doc = "Vector reinterpret cast operation"]
45423#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_u16)"]
45424#[inline]
45425#[target_feature(enable = "neon")]
45426#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45427#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45428#[cfg_attr(
45429    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45430    assert_instr(nop)
45431)]
45432#[cfg_attr(
45433    not(target_arch = "arm"),
45434    stable(feature = "neon_intrinsics", since = "1.59.0")
45435)]
45436#[cfg_attr(
45437    target_arch = "arm",
45438    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45439)]
45440pub fn vreinterpret_s8_u16(a: uint16x4_t) -> int8x8_t {
45441    unsafe { transmute(a) }
45442}
45443#[doc = "Vector reinterpret cast operation"]
45444#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_u16)"]
45445#[inline]
45446#[target_feature(enable = "neon")]
45447#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45448#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45449#[cfg_attr(
45450    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45451    assert_instr(nop)
45452)]
45453#[cfg_attr(
45454    not(target_arch = "arm"),
45455    stable(feature = "neon_intrinsics", since = "1.59.0")
45456)]
45457#[cfg_attr(
45458    target_arch = "arm",
45459    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45460)]
45461pub fn vreinterpret_s16_u16(a: uint16x4_t) -> int16x4_t {
45462    unsafe { transmute(a) }
45463}
45464#[doc = "Vector reinterpret cast operation"]
45465#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_u16)"]
45466#[inline]
45467#[target_feature(enable = "neon")]
45468#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45469#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45470#[cfg_attr(
45471    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45472    assert_instr(nop)
45473)]
45474#[cfg_attr(
45475    not(target_arch = "arm"),
45476    stable(feature = "neon_intrinsics", since = "1.59.0")
45477)]
45478#[cfg_attr(
45479    target_arch = "arm",
45480    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45481)]
45482pub fn vreinterpret_s32_u16(a: uint16x4_t) -> int32x2_t {
45483    unsafe { transmute(a) }
45484}
45485#[doc = "Vector reinterpret cast operation"]
45486#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_u16)"]
45487#[inline]
45488#[target_feature(enable = "neon")]
45489#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45490#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45491#[cfg_attr(
45492    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45493    assert_instr(nop)
45494)]
45495#[cfg_attr(
45496    not(target_arch = "arm"),
45497    stable(feature = "neon_intrinsics", since = "1.59.0")
45498)]
45499#[cfg_attr(
45500    target_arch = "arm",
45501    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45502)]
45503pub fn vreinterpret_s64_u16(a: uint16x4_t) -> int64x1_t {
45504    unsafe { transmute(a) }
45505}
45506#[doc = "Vector reinterpret cast operation"]
45507#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_u16)"]
45508#[inline]
45509#[target_feature(enable = "neon")]
45510#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45511#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45512#[cfg_attr(
45513    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45514    assert_instr(nop)
45515)]
45516#[cfg_attr(
45517    not(target_arch = "arm"),
45518    stable(feature = "neon_intrinsics", since = "1.59.0")
45519)]
45520#[cfg_attr(
45521    target_arch = "arm",
45522    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45523)]
45524pub fn vreinterpret_u8_u16(a: uint16x4_t) -> uint8x8_t {
45525    unsafe { transmute(a) }
45526}
45527#[doc = "Vector reinterpret cast operation"]
45528#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_u16)"]
45529#[inline]
45530#[target_feature(enable = "neon")]
45531#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45532#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45533#[cfg_attr(
45534    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45535    assert_instr(nop)
45536)]
45537#[cfg_attr(
45538    not(target_arch = "arm"),
45539    stable(feature = "neon_intrinsics", since = "1.59.0")
45540)]
45541#[cfg_attr(
45542    target_arch = "arm",
45543    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45544)]
45545pub fn vreinterpret_u32_u16(a: uint16x4_t) -> uint32x2_t {
45546    unsafe { transmute(a) }
45547}
45548#[doc = "Vector reinterpret cast operation"]
45549#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_u16)"]
45550#[inline]
45551#[target_feature(enable = "neon")]
45552#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45553#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45554#[cfg_attr(
45555    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45556    assert_instr(nop)
45557)]
45558#[cfg_attr(
45559    not(target_arch = "arm"),
45560    stable(feature = "neon_intrinsics", since = "1.59.0")
45561)]
45562#[cfg_attr(
45563    target_arch = "arm",
45564    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45565)]
45566pub fn vreinterpret_u64_u16(a: uint16x4_t) -> uint64x1_t {
45567    unsafe { transmute(a) }
45568}
45569#[doc = "Vector reinterpret cast operation"]
45570#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_u16)"]
45571#[inline]
45572#[target_feature(enable = "neon")]
45573#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45574#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45575#[cfg_attr(
45576    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45577    assert_instr(nop)
45578)]
45579#[cfg_attr(
45580    not(target_arch = "arm"),
45581    stable(feature = "neon_intrinsics", since = "1.59.0")
45582)]
45583#[cfg_attr(
45584    target_arch = "arm",
45585    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45586)]
45587pub fn vreinterpret_p8_u16(a: uint16x4_t) -> poly8x8_t {
45588    unsafe { transmute(a) }
45589}
45590#[doc = "Vector reinterpret cast operation"]
45591#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_u16)"]
45592#[inline]
45593#[target_feature(enable = "neon")]
45594#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45595#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45596#[cfg_attr(
45597    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45598    assert_instr(nop)
45599)]
45600#[cfg_attr(
45601    not(target_arch = "arm"),
45602    stable(feature = "neon_intrinsics", since = "1.59.0")
45603)]
45604#[cfg_attr(
45605    target_arch = "arm",
45606    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45607)]
45608pub fn vreinterpret_p16_u16(a: uint16x4_t) -> poly16x4_t {
45609    unsafe { transmute(a) }
45610}
45611#[doc = "Vector reinterpret cast operation"]
45612#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_u16)"]
45613#[inline]
45614#[target_feature(enable = "neon")]
45615#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45616#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45617#[cfg_attr(
45618    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45619    assert_instr(nop)
45620)]
45621#[cfg_attr(
45622    not(target_arch = "arm"),
45623    stable(feature = "neon_intrinsics", since = "1.59.0")
45624)]
45625#[cfg_attr(
45626    target_arch = "arm",
45627    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45628)]
45629pub fn vreinterpretq_f32_u16(a: uint16x8_t) -> float32x4_t {
45630    unsafe { transmute(a) }
45631}
45632#[doc = "Vector reinterpret cast operation"]
45633#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_u16)"]
45634#[inline]
45635#[target_feature(enable = "neon")]
45636#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45637#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45638#[cfg_attr(
45639    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45640    assert_instr(nop)
45641)]
45642#[cfg_attr(
45643    not(target_arch = "arm"),
45644    stable(feature = "neon_intrinsics", since = "1.59.0")
45645)]
45646#[cfg_attr(
45647    target_arch = "arm",
45648    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45649)]
45650pub fn vreinterpretq_s8_u16(a: uint16x8_t) -> int8x16_t {
45651    unsafe { transmute(a) }
45652}
45653#[doc = "Vector reinterpret cast operation"]
45654#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_u16)"]
45655#[inline]
45656#[target_feature(enable = "neon")]
45657#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45658#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45659#[cfg_attr(
45660    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45661    assert_instr(nop)
45662)]
45663#[cfg_attr(
45664    not(target_arch = "arm"),
45665    stable(feature = "neon_intrinsics", since = "1.59.0")
45666)]
45667#[cfg_attr(
45668    target_arch = "arm",
45669    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45670)]
45671pub fn vreinterpretq_s16_u16(a: uint16x8_t) -> int16x8_t {
45672    unsafe { transmute(a) }
45673}
45674#[doc = "Vector reinterpret cast operation"]
45675#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_u16)"]
45676#[inline]
45677#[target_feature(enable = "neon")]
45678#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45679#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45680#[cfg_attr(
45681    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45682    assert_instr(nop)
45683)]
45684#[cfg_attr(
45685    not(target_arch = "arm"),
45686    stable(feature = "neon_intrinsics", since = "1.59.0")
45687)]
45688#[cfg_attr(
45689    target_arch = "arm",
45690    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45691)]
45692pub fn vreinterpretq_s32_u16(a: uint16x8_t) -> int32x4_t {
45693    unsafe { transmute(a) }
45694}
45695#[doc = "Vector reinterpret cast operation"]
45696#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_u16)"]
45697#[inline]
45698#[target_feature(enable = "neon")]
45699#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45700#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45701#[cfg_attr(
45702    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45703    assert_instr(nop)
45704)]
45705#[cfg_attr(
45706    not(target_arch = "arm"),
45707    stable(feature = "neon_intrinsics", since = "1.59.0")
45708)]
45709#[cfg_attr(
45710    target_arch = "arm",
45711    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45712)]
45713pub fn vreinterpretq_s64_u16(a: uint16x8_t) -> int64x2_t {
45714    unsafe { transmute(a) }
45715}
45716#[doc = "Vector reinterpret cast operation"]
45717#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_u16)"]
45718#[inline]
45719#[target_feature(enable = "neon")]
45720#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45721#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45722#[cfg_attr(
45723    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45724    assert_instr(nop)
45725)]
45726#[cfg_attr(
45727    not(target_arch = "arm"),
45728    stable(feature = "neon_intrinsics", since = "1.59.0")
45729)]
45730#[cfg_attr(
45731    target_arch = "arm",
45732    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45733)]
45734pub fn vreinterpretq_u8_u16(a: uint16x8_t) -> uint8x16_t {
45735    unsafe { transmute(a) }
45736}
45737#[doc = "Vector reinterpret cast operation"]
45738#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_u16)"]
45739#[inline]
45740#[target_feature(enable = "neon")]
45741#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45742#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45743#[cfg_attr(
45744    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45745    assert_instr(nop)
45746)]
45747#[cfg_attr(
45748    not(target_arch = "arm"),
45749    stable(feature = "neon_intrinsics", since = "1.59.0")
45750)]
45751#[cfg_attr(
45752    target_arch = "arm",
45753    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45754)]
45755pub fn vreinterpretq_u32_u16(a: uint16x8_t) -> uint32x4_t {
45756    unsafe { transmute(a) }
45757}
45758#[doc = "Vector reinterpret cast operation"]
45759#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_u16)"]
45760#[inline]
45761#[target_feature(enable = "neon")]
45762#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45763#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45764#[cfg_attr(
45765    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45766    assert_instr(nop)
45767)]
45768#[cfg_attr(
45769    not(target_arch = "arm"),
45770    stable(feature = "neon_intrinsics", since = "1.59.0")
45771)]
45772#[cfg_attr(
45773    target_arch = "arm",
45774    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45775)]
45776pub fn vreinterpretq_u64_u16(a: uint16x8_t) -> uint64x2_t {
45777    unsafe { transmute(a) }
45778}
45779#[doc = "Vector reinterpret cast operation"]
45780#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_u16)"]
45781#[inline]
45782#[target_feature(enable = "neon")]
45783#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45784#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45785#[cfg_attr(
45786    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45787    assert_instr(nop)
45788)]
45789#[cfg_attr(
45790    not(target_arch = "arm"),
45791    stable(feature = "neon_intrinsics", since = "1.59.0")
45792)]
45793#[cfg_attr(
45794    target_arch = "arm",
45795    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45796)]
45797pub fn vreinterpretq_p8_u16(a: uint16x8_t) -> poly8x16_t {
45798    unsafe { transmute(a) }
45799}
45800#[doc = "Vector reinterpret cast operation"]
45801#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_u16)"]
45802#[inline]
45803#[target_feature(enable = "neon")]
45804#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45805#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45806#[cfg_attr(
45807    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45808    assert_instr(nop)
45809)]
45810#[cfg_attr(
45811    not(target_arch = "arm"),
45812    stable(feature = "neon_intrinsics", since = "1.59.0")
45813)]
45814#[cfg_attr(
45815    target_arch = "arm",
45816    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45817)]
45818pub fn vreinterpretq_p16_u16(a: uint16x8_t) -> poly16x8_t {
45819    unsafe { transmute(a) }
45820}
45821#[doc = "Vector reinterpret cast operation"]
45822#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_u32)"]
45823#[inline]
45824#[target_feature(enable = "neon")]
45825#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45826#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45827#[cfg_attr(
45828    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45829    assert_instr(nop)
45830)]
45831#[cfg_attr(
45832    not(target_arch = "arm"),
45833    stable(feature = "neon_intrinsics", since = "1.59.0")
45834)]
45835#[cfg_attr(
45836    target_arch = "arm",
45837    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45838)]
45839pub fn vreinterpret_f32_u32(a: uint32x2_t) -> float32x2_t {
45840    unsafe { transmute(a) }
45841}
45842#[doc = "Vector reinterpret cast operation"]
45843#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_u32)"]
45844#[inline]
45845#[target_feature(enable = "neon")]
45846#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45847#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45848#[cfg_attr(
45849    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45850    assert_instr(nop)
45851)]
45852#[cfg_attr(
45853    not(target_arch = "arm"),
45854    stable(feature = "neon_intrinsics", since = "1.59.0")
45855)]
45856#[cfg_attr(
45857    target_arch = "arm",
45858    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45859)]
45860pub fn vreinterpret_s8_u32(a: uint32x2_t) -> int8x8_t {
45861    unsafe { transmute(a) }
45862}
45863#[doc = "Vector reinterpret cast operation"]
45864#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_u32)"]
45865#[inline]
45866#[target_feature(enable = "neon")]
45867#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45868#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45869#[cfg_attr(
45870    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45871    assert_instr(nop)
45872)]
45873#[cfg_attr(
45874    not(target_arch = "arm"),
45875    stable(feature = "neon_intrinsics", since = "1.59.0")
45876)]
45877#[cfg_attr(
45878    target_arch = "arm",
45879    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45880)]
45881pub fn vreinterpret_s16_u32(a: uint32x2_t) -> int16x4_t {
45882    unsafe { transmute(a) }
45883}
45884#[doc = "Vector reinterpret cast operation"]
45885#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_u32)"]
45886#[inline]
45887#[target_feature(enable = "neon")]
45888#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45889#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45890#[cfg_attr(
45891    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45892    assert_instr(nop)
45893)]
45894#[cfg_attr(
45895    not(target_arch = "arm"),
45896    stable(feature = "neon_intrinsics", since = "1.59.0")
45897)]
45898#[cfg_attr(
45899    target_arch = "arm",
45900    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45901)]
45902pub fn vreinterpret_s32_u32(a: uint32x2_t) -> int32x2_t {
45903    unsafe { transmute(a) }
45904}
45905#[doc = "Vector reinterpret cast operation"]
45906#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_u32)"]
45907#[inline]
45908#[target_feature(enable = "neon")]
45909#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45910#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45911#[cfg_attr(
45912    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45913    assert_instr(nop)
45914)]
45915#[cfg_attr(
45916    not(target_arch = "arm"),
45917    stable(feature = "neon_intrinsics", since = "1.59.0")
45918)]
45919#[cfg_attr(
45920    target_arch = "arm",
45921    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45922)]
45923pub fn vreinterpret_s64_u32(a: uint32x2_t) -> int64x1_t {
45924    unsafe { transmute(a) }
45925}
45926#[doc = "Vector reinterpret cast operation"]
45927#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_u32)"]
45928#[inline]
45929#[target_feature(enable = "neon")]
45930#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45931#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45932#[cfg_attr(
45933    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45934    assert_instr(nop)
45935)]
45936#[cfg_attr(
45937    not(target_arch = "arm"),
45938    stable(feature = "neon_intrinsics", since = "1.59.0")
45939)]
45940#[cfg_attr(
45941    target_arch = "arm",
45942    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45943)]
45944pub fn vreinterpret_u8_u32(a: uint32x2_t) -> uint8x8_t {
45945    unsafe { transmute(a) }
45946}
45947#[doc = "Vector reinterpret cast operation"]
45948#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_u32)"]
45949#[inline]
45950#[target_feature(enable = "neon")]
45951#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45952#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45953#[cfg_attr(
45954    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45955    assert_instr(nop)
45956)]
45957#[cfg_attr(
45958    not(target_arch = "arm"),
45959    stable(feature = "neon_intrinsics", since = "1.59.0")
45960)]
45961#[cfg_attr(
45962    target_arch = "arm",
45963    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45964)]
45965pub fn vreinterpret_u16_u32(a: uint32x2_t) -> uint16x4_t {
45966    unsafe { transmute(a) }
45967}
45968#[doc = "Vector reinterpret cast operation"]
45969#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_u32)"]
45970#[inline]
45971#[target_feature(enable = "neon")]
45972#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45973#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45974#[cfg_attr(
45975    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45976    assert_instr(nop)
45977)]
45978#[cfg_attr(
45979    not(target_arch = "arm"),
45980    stable(feature = "neon_intrinsics", since = "1.59.0")
45981)]
45982#[cfg_attr(
45983    target_arch = "arm",
45984    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45985)]
45986pub fn vreinterpret_u64_u32(a: uint32x2_t) -> uint64x1_t {
45987    unsafe { transmute(a) }
45988}
45989#[doc = "Vector reinterpret cast operation"]
45990#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_u32)"]
45991#[inline]
45992#[target_feature(enable = "neon")]
45993#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45994#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45995#[cfg_attr(
45996    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45997    assert_instr(nop)
45998)]
45999#[cfg_attr(
46000    not(target_arch = "arm"),
46001    stable(feature = "neon_intrinsics", since = "1.59.0")
46002)]
46003#[cfg_attr(
46004    target_arch = "arm",
46005    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46006)]
46007pub fn vreinterpret_p8_u32(a: uint32x2_t) -> poly8x8_t {
46008    unsafe { transmute(a) }
46009}
46010#[doc = "Vector reinterpret cast operation"]
46011#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_u32)"]
46012#[inline]
46013#[target_feature(enable = "neon")]
46014#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46015#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46016#[cfg_attr(
46017    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46018    assert_instr(nop)
46019)]
46020#[cfg_attr(
46021    not(target_arch = "arm"),
46022    stable(feature = "neon_intrinsics", since = "1.59.0")
46023)]
46024#[cfg_attr(
46025    target_arch = "arm",
46026    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46027)]
46028pub fn vreinterpret_p16_u32(a: uint32x2_t) -> poly16x4_t {
46029    unsafe { transmute(a) }
46030}
46031#[doc = "Vector reinterpret cast operation"]
46032#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_u32)"]
46033#[inline]
46034#[target_feature(enable = "neon")]
46035#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46036#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46037#[cfg_attr(
46038    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46039    assert_instr(nop)
46040)]
46041#[cfg_attr(
46042    not(target_arch = "arm"),
46043    stable(feature = "neon_intrinsics", since = "1.59.0")
46044)]
46045#[cfg_attr(
46046    target_arch = "arm",
46047    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46048)]
46049pub fn vreinterpretq_f32_u32(a: uint32x4_t) -> float32x4_t {
46050    unsafe { transmute(a) }
46051}
46052#[doc = "Vector reinterpret cast operation"]
46053#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_u32)"]
46054#[inline]
46055#[target_feature(enable = "neon")]
46056#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46057#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46058#[cfg_attr(
46059    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46060    assert_instr(nop)
46061)]
46062#[cfg_attr(
46063    not(target_arch = "arm"),
46064    stable(feature = "neon_intrinsics", since = "1.59.0")
46065)]
46066#[cfg_attr(
46067    target_arch = "arm",
46068    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46069)]
46070pub fn vreinterpretq_s8_u32(a: uint32x4_t) -> int8x16_t {
46071    unsafe { transmute(a) }
46072}
46073#[doc = "Vector reinterpret cast operation"]
46074#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_u32)"]
46075#[inline]
46076#[target_feature(enable = "neon")]
46077#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46078#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46079#[cfg_attr(
46080    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46081    assert_instr(nop)
46082)]
46083#[cfg_attr(
46084    not(target_arch = "arm"),
46085    stable(feature = "neon_intrinsics", since = "1.59.0")
46086)]
46087#[cfg_attr(
46088    target_arch = "arm",
46089    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46090)]
46091pub fn vreinterpretq_s16_u32(a: uint32x4_t) -> int16x8_t {
46092    unsafe { transmute(a) }
46093}
46094#[doc = "Vector reinterpret cast operation"]
46095#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_u32)"]
46096#[inline]
46097#[target_feature(enable = "neon")]
46098#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46099#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46100#[cfg_attr(
46101    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46102    assert_instr(nop)
46103)]
46104#[cfg_attr(
46105    not(target_arch = "arm"),
46106    stable(feature = "neon_intrinsics", since = "1.59.0")
46107)]
46108#[cfg_attr(
46109    target_arch = "arm",
46110    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46111)]
46112pub fn vreinterpretq_s32_u32(a: uint32x4_t) -> int32x4_t {
46113    unsafe { transmute(a) }
46114}
46115#[doc = "Vector reinterpret cast operation"]
46116#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_u32)"]
46117#[inline]
46118#[target_feature(enable = "neon")]
46119#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46120#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46121#[cfg_attr(
46122    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46123    assert_instr(nop)
46124)]
46125#[cfg_attr(
46126    not(target_arch = "arm"),
46127    stable(feature = "neon_intrinsics", since = "1.59.0")
46128)]
46129#[cfg_attr(
46130    target_arch = "arm",
46131    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46132)]
46133pub fn vreinterpretq_s64_u32(a: uint32x4_t) -> int64x2_t {
46134    unsafe { transmute(a) }
46135}
46136#[doc = "Vector reinterpret cast operation"]
46137#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_u32)"]
46138#[inline]
46139#[target_feature(enable = "neon")]
46140#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46141#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46142#[cfg_attr(
46143    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46144    assert_instr(nop)
46145)]
46146#[cfg_attr(
46147    not(target_arch = "arm"),
46148    stable(feature = "neon_intrinsics", since = "1.59.0")
46149)]
46150#[cfg_attr(
46151    target_arch = "arm",
46152    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46153)]
46154pub fn vreinterpretq_u8_u32(a: uint32x4_t) -> uint8x16_t {
46155    unsafe { transmute(a) }
46156}
46157#[doc = "Vector reinterpret cast operation"]
46158#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_u32)"]
46159#[inline]
46160#[target_feature(enable = "neon")]
46161#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46162#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46163#[cfg_attr(
46164    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46165    assert_instr(nop)
46166)]
46167#[cfg_attr(
46168    not(target_arch = "arm"),
46169    stable(feature = "neon_intrinsics", since = "1.59.0")
46170)]
46171#[cfg_attr(
46172    target_arch = "arm",
46173    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46174)]
46175pub fn vreinterpretq_u16_u32(a: uint32x4_t) -> uint16x8_t {
46176    unsafe { transmute(a) }
46177}
46178#[doc = "Vector reinterpret cast operation"]
46179#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_u32)"]
46180#[inline]
46181#[target_feature(enable = "neon")]
46182#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46183#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46184#[cfg_attr(
46185    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46186    assert_instr(nop)
46187)]
46188#[cfg_attr(
46189    not(target_arch = "arm"),
46190    stable(feature = "neon_intrinsics", since = "1.59.0")
46191)]
46192#[cfg_attr(
46193    target_arch = "arm",
46194    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46195)]
46196pub fn vreinterpretq_u64_u32(a: uint32x4_t) -> uint64x2_t {
46197    unsafe { transmute(a) }
46198}
46199#[doc = "Vector reinterpret cast operation"]
46200#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_u32)"]
46201#[inline]
46202#[target_feature(enable = "neon")]
46203#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46204#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46205#[cfg_attr(
46206    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46207    assert_instr(nop)
46208)]
46209#[cfg_attr(
46210    not(target_arch = "arm"),
46211    stable(feature = "neon_intrinsics", since = "1.59.0")
46212)]
46213#[cfg_attr(
46214    target_arch = "arm",
46215    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46216)]
46217pub fn vreinterpretq_p8_u32(a: uint32x4_t) -> poly8x16_t {
46218    unsafe { transmute(a) }
46219}
46220#[doc = "Vector reinterpret cast operation"]
46221#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_u32)"]
46222#[inline]
46223#[target_feature(enable = "neon")]
46224#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46225#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46226#[cfg_attr(
46227    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46228    assert_instr(nop)
46229)]
46230#[cfg_attr(
46231    not(target_arch = "arm"),
46232    stable(feature = "neon_intrinsics", since = "1.59.0")
46233)]
46234#[cfg_attr(
46235    target_arch = "arm",
46236    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46237)]
46238pub fn vreinterpretq_p16_u32(a: uint32x4_t) -> poly16x8_t {
46239    unsafe { transmute(a) }
46240}
46241#[doc = "Vector reinterpret cast operation"]
46242#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_u64)"]
46243#[inline]
46244#[target_feature(enable = "neon")]
46245#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46246#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46247#[cfg_attr(
46248    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46249    assert_instr(nop)
46250)]
46251#[cfg_attr(
46252    not(target_arch = "arm"),
46253    stable(feature = "neon_intrinsics", since = "1.59.0")
46254)]
46255#[cfg_attr(
46256    target_arch = "arm",
46257    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46258)]
46259pub fn vreinterpret_f32_u64(a: uint64x1_t) -> float32x2_t {
46260    unsafe { transmute(a) }
46261}
46262#[doc = "Vector reinterpret cast operation"]
46263#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_u64)"]
46264#[inline]
46265#[target_feature(enable = "neon")]
46266#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46267#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46268#[cfg_attr(
46269    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46270    assert_instr(nop)
46271)]
46272#[cfg_attr(
46273    not(target_arch = "arm"),
46274    stable(feature = "neon_intrinsics", since = "1.59.0")
46275)]
46276#[cfg_attr(
46277    target_arch = "arm",
46278    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46279)]
46280pub fn vreinterpret_s8_u64(a: uint64x1_t) -> int8x8_t {
46281    unsafe { transmute(a) }
46282}
46283#[doc = "Vector reinterpret cast operation"]
46284#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_u64)"]
46285#[inline]
46286#[target_feature(enable = "neon")]
46287#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46288#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46289#[cfg_attr(
46290    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46291    assert_instr(nop)
46292)]
46293#[cfg_attr(
46294    not(target_arch = "arm"),
46295    stable(feature = "neon_intrinsics", since = "1.59.0")
46296)]
46297#[cfg_attr(
46298    target_arch = "arm",
46299    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46300)]
46301pub fn vreinterpret_s16_u64(a: uint64x1_t) -> int16x4_t {
46302    unsafe { transmute(a) }
46303}
46304#[doc = "Vector reinterpret cast operation"]
46305#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_u64)"]
46306#[inline]
46307#[target_feature(enable = "neon")]
46308#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46309#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46310#[cfg_attr(
46311    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46312    assert_instr(nop)
46313)]
46314#[cfg_attr(
46315    not(target_arch = "arm"),
46316    stable(feature = "neon_intrinsics", since = "1.59.0")
46317)]
46318#[cfg_attr(
46319    target_arch = "arm",
46320    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46321)]
46322pub fn vreinterpret_s32_u64(a: uint64x1_t) -> int32x2_t {
46323    unsafe { transmute(a) }
46324}
46325#[doc = "Vector reinterpret cast operation"]
46326#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_u64)"]
46327#[inline]
46328#[target_feature(enable = "neon")]
46329#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46330#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46331#[cfg_attr(
46332    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46333    assert_instr(nop)
46334)]
46335#[cfg_attr(
46336    not(target_arch = "arm"),
46337    stable(feature = "neon_intrinsics", since = "1.59.0")
46338)]
46339#[cfg_attr(
46340    target_arch = "arm",
46341    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46342)]
46343pub fn vreinterpret_s64_u64(a: uint64x1_t) -> int64x1_t {
46344    unsafe { transmute(a) }
46345}
46346#[doc = "Vector reinterpret cast operation"]
46347#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_u64)"]
46348#[inline]
46349#[target_feature(enable = "neon")]
46350#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46351#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46352#[cfg_attr(
46353    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46354    assert_instr(nop)
46355)]
46356#[cfg_attr(
46357    not(target_arch = "arm"),
46358    stable(feature = "neon_intrinsics", since = "1.59.0")
46359)]
46360#[cfg_attr(
46361    target_arch = "arm",
46362    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46363)]
46364pub fn vreinterpret_u8_u64(a: uint64x1_t) -> uint8x8_t {
46365    unsafe { transmute(a) }
46366}
46367#[doc = "Vector reinterpret cast operation"]
46368#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_u64)"]
46369#[inline]
46370#[target_feature(enable = "neon")]
46371#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46372#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46373#[cfg_attr(
46374    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46375    assert_instr(nop)
46376)]
46377#[cfg_attr(
46378    not(target_arch = "arm"),
46379    stable(feature = "neon_intrinsics", since = "1.59.0")
46380)]
46381#[cfg_attr(
46382    target_arch = "arm",
46383    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46384)]
46385pub fn vreinterpret_u16_u64(a: uint64x1_t) -> uint16x4_t {
46386    unsafe { transmute(a) }
46387}
46388#[doc = "Vector reinterpret cast operation"]
46389#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_u64)"]
46390#[inline]
46391#[target_feature(enable = "neon")]
46392#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46393#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46394#[cfg_attr(
46395    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46396    assert_instr(nop)
46397)]
46398#[cfg_attr(
46399    not(target_arch = "arm"),
46400    stable(feature = "neon_intrinsics", since = "1.59.0")
46401)]
46402#[cfg_attr(
46403    target_arch = "arm",
46404    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46405)]
46406pub fn vreinterpret_u32_u64(a: uint64x1_t) -> uint32x2_t {
46407    unsafe { transmute(a) }
46408}
46409#[doc = "Vector reinterpret cast operation"]
46410#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_u64)"]
46411#[inline]
46412#[target_feature(enable = "neon")]
46413#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46414#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46415#[cfg_attr(
46416    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46417    assert_instr(nop)
46418)]
46419#[cfg_attr(
46420    not(target_arch = "arm"),
46421    stable(feature = "neon_intrinsics", since = "1.59.0")
46422)]
46423#[cfg_attr(
46424    target_arch = "arm",
46425    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46426)]
46427pub fn vreinterpret_p8_u64(a: uint64x1_t) -> poly8x8_t {
46428    unsafe { transmute(a) }
46429}
46430#[doc = "Vector reinterpret cast operation"]
46431#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_u64)"]
46432#[inline]
46433#[target_feature(enable = "neon")]
46434#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46435#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46436#[cfg_attr(
46437    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46438    assert_instr(nop)
46439)]
46440#[cfg_attr(
46441    not(target_arch = "arm"),
46442    stable(feature = "neon_intrinsics", since = "1.59.0")
46443)]
46444#[cfg_attr(
46445    target_arch = "arm",
46446    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46447)]
46448pub fn vreinterpret_p16_u64(a: uint64x1_t) -> poly16x4_t {
46449    unsafe { transmute(a) }
46450}
46451#[doc = "Vector reinterpret cast operation"]
46452#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_u64)"]
46453#[inline]
46454#[target_feature(enable = "neon")]
46455#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46456#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46457#[cfg_attr(
46458    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46459    assert_instr(nop)
46460)]
46461#[cfg_attr(
46462    not(target_arch = "arm"),
46463    stable(feature = "neon_intrinsics", since = "1.59.0")
46464)]
46465#[cfg_attr(
46466    target_arch = "arm",
46467    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46468)]
46469pub fn vreinterpretq_f32_u64(a: uint64x2_t) -> float32x4_t {
46470    unsafe { transmute(a) }
46471}
46472#[doc = "Vector reinterpret cast operation"]
46473#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_u64)"]
46474#[inline]
46475#[target_feature(enable = "neon")]
46476#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46477#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46478#[cfg_attr(
46479    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46480    assert_instr(nop)
46481)]
46482#[cfg_attr(
46483    not(target_arch = "arm"),
46484    stable(feature = "neon_intrinsics", since = "1.59.0")
46485)]
46486#[cfg_attr(
46487    target_arch = "arm",
46488    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46489)]
46490pub fn vreinterpretq_s8_u64(a: uint64x2_t) -> int8x16_t {
46491    unsafe { transmute(a) }
46492}
46493#[doc = "Vector reinterpret cast operation"]
46494#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_u64)"]
46495#[inline]
46496#[target_feature(enable = "neon")]
46497#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46498#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46499#[cfg_attr(
46500    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46501    assert_instr(nop)
46502)]
46503#[cfg_attr(
46504    not(target_arch = "arm"),
46505    stable(feature = "neon_intrinsics", since = "1.59.0")
46506)]
46507#[cfg_attr(
46508    target_arch = "arm",
46509    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46510)]
46511pub fn vreinterpretq_s16_u64(a: uint64x2_t) -> int16x8_t {
46512    unsafe { transmute(a) }
46513}
46514#[doc = "Vector reinterpret cast operation"]
46515#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_u64)"]
46516#[inline]
46517#[target_feature(enable = "neon")]
46518#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46519#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46520#[cfg_attr(
46521    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46522    assert_instr(nop)
46523)]
46524#[cfg_attr(
46525    not(target_arch = "arm"),
46526    stable(feature = "neon_intrinsics", since = "1.59.0")
46527)]
46528#[cfg_attr(
46529    target_arch = "arm",
46530    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46531)]
46532pub fn vreinterpretq_s32_u64(a: uint64x2_t) -> int32x4_t {
46533    unsafe { transmute(a) }
46534}
46535#[doc = "Vector reinterpret cast operation"]
46536#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_u64)"]
46537#[inline]
46538#[target_feature(enable = "neon")]
46539#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46540#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46541#[cfg_attr(
46542    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46543    assert_instr(nop)
46544)]
46545#[cfg_attr(
46546    not(target_arch = "arm"),
46547    stable(feature = "neon_intrinsics", since = "1.59.0")
46548)]
46549#[cfg_attr(
46550    target_arch = "arm",
46551    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46552)]
46553pub fn vreinterpretq_s64_u64(a: uint64x2_t) -> int64x2_t {
46554    unsafe { transmute(a) }
46555}
46556#[doc = "Vector reinterpret cast operation"]
46557#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_u64)"]
46558#[inline]
46559#[target_feature(enable = "neon")]
46560#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46561#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46562#[cfg_attr(
46563    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46564    assert_instr(nop)
46565)]
46566#[cfg_attr(
46567    not(target_arch = "arm"),
46568    stable(feature = "neon_intrinsics", since = "1.59.0")
46569)]
46570#[cfg_attr(
46571    target_arch = "arm",
46572    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46573)]
46574pub fn vreinterpretq_u8_u64(a: uint64x2_t) -> uint8x16_t {
46575    unsafe { transmute(a) }
46576}
46577#[doc = "Vector reinterpret cast operation"]
46578#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_u64)"]
46579#[inline]
46580#[target_feature(enable = "neon")]
46581#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46582#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46583#[cfg_attr(
46584    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46585    assert_instr(nop)
46586)]
46587#[cfg_attr(
46588    not(target_arch = "arm"),
46589    stable(feature = "neon_intrinsics", since = "1.59.0")
46590)]
46591#[cfg_attr(
46592    target_arch = "arm",
46593    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46594)]
46595pub fn vreinterpretq_u16_u64(a: uint64x2_t) -> uint16x8_t {
46596    unsafe { transmute(a) }
46597}
46598#[doc = "Vector reinterpret cast operation"]
46599#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_u64)"]
46600#[inline]
46601#[target_feature(enable = "neon")]
46602#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46603#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46604#[cfg_attr(
46605    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46606    assert_instr(nop)
46607)]
46608#[cfg_attr(
46609    not(target_arch = "arm"),
46610    stable(feature = "neon_intrinsics", since = "1.59.0")
46611)]
46612#[cfg_attr(
46613    target_arch = "arm",
46614    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46615)]
46616pub fn vreinterpretq_u32_u64(a: uint64x2_t) -> uint32x4_t {
46617    unsafe { transmute(a) }
46618}
46619#[doc = "Vector reinterpret cast operation"]
46620#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_u64)"]
46621#[inline]
46622#[target_feature(enable = "neon")]
46623#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46624#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46625#[cfg_attr(
46626    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46627    assert_instr(nop)
46628)]
46629#[cfg_attr(
46630    not(target_arch = "arm"),
46631    stable(feature = "neon_intrinsics", since = "1.59.0")
46632)]
46633#[cfg_attr(
46634    target_arch = "arm",
46635    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46636)]
46637pub fn vreinterpretq_p8_u64(a: uint64x2_t) -> poly8x16_t {
46638    unsafe { transmute(a) }
46639}
46640#[doc = "Vector reinterpret cast operation"]
46641#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_u64)"]
46642#[inline]
46643#[target_feature(enable = "neon")]
46644#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46645#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46646#[cfg_attr(
46647    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46648    assert_instr(nop)
46649)]
46650#[cfg_attr(
46651    not(target_arch = "arm"),
46652    stable(feature = "neon_intrinsics", since = "1.59.0")
46653)]
46654#[cfg_attr(
46655    target_arch = "arm",
46656    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46657)]
46658pub fn vreinterpretq_p16_u64(a: uint64x2_t) -> poly16x8_t {
46659    unsafe { transmute(a) }
46660}
46661#[doc = "Vector reinterpret cast operation"]
46662#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_p8)"]
46663#[inline]
46664#[target_feature(enable = "neon")]
46665#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46666#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46667#[cfg_attr(
46668    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46669    assert_instr(nop)
46670)]
46671#[cfg_attr(
46672    not(target_arch = "arm"),
46673    stable(feature = "neon_intrinsics", since = "1.59.0")
46674)]
46675#[cfg_attr(
46676    target_arch = "arm",
46677    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46678)]
46679pub fn vreinterpret_f32_p8(a: poly8x8_t) -> float32x2_t {
46680    unsafe { transmute(a) }
46681}
46682#[doc = "Vector reinterpret cast operation"]
46683#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_p8)"]
46684#[inline]
46685#[target_feature(enable = "neon")]
46686#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46687#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46688#[cfg_attr(
46689    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46690    assert_instr(nop)
46691)]
46692#[cfg_attr(
46693    not(target_arch = "arm"),
46694    stable(feature = "neon_intrinsics", since = "1.59.0")
46695)]
46696#[cfg_attr(
46697    target_arch = "arm",
46698    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46699)]
46700pub fn vreinterpret_s8_p8(a: poly8x8_t) -> int8x8_t {
46701    unsafe { transmute(a) }
46702}
46703#[doc = "Vector reinterpret cast operation"]
46704#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_p8)"]
46705#[inline]
46706#[target_feature(enable = "neon")]
46707#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46708#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46709#[cfg_attr(
46710    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46711    assert_instr(nop)
46712)]
46713#[cfg_attr(
46714    not(target_arch = "arm"),
46715    stable(feature = "neon_intrinsics", since = "1.59.0")
46716)]
46717#[cfg_attr(
46718    target_arch = "arm",
46719    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46720)]
46721pub fn vreinterpret_s16_p8(a: poly8x8_t) -> int16x4_t {
46722    unsafe { transmute(a) }
46723}
46724#[doc = "Vector reinterpret cast operation"]
46725#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_p8)"]
46726#[inline]
46727#[target_feature(enable = "neon")]
46728#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46729#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46730#[cfg_attr(
46731    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46732    assert_instr(nop)
46733)]
46734#[cfg_attr(
46735    not(target_arch = "arm"),
46736    stable(feature = "neon_intrinsics", since = "1.59.0")
46737)]
46738#[cfg_attr(
46739    target_arch = "arm",
46740    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46741)]
46742pub fn vreinterpret_s32_p8(a: poly8x8_t) -> int32x2_t {
46743    unsafe { transmute(a) }
46744}
46745#[doc = "Vector reinterpret cast operation"]
46746#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_p8)"]
46747#[inline]
46748#[target_feature(enable = "neon")]
46749#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46750#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46751#[cfg_attr(
46752    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46753    assert_instr(nop)
46754)]
46755#[cfg_attr(
46756    not(target_arch = "arm"),
46757    stable(feature = "neon_intrinsics", since = "1.59.0")
46758)]
46759#[cfg_attr(
46760    target_arch = "arm",
46761    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46762)]
46763pub fn vreinterpret_s64_p8(a: poly8x8_t) -> int64x1_t {
46764    unsafe { transmute(a) }
46765}
46766#[doc = "Vector reinterpret cast operation"]
46767#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_p8)"]
46768#[inline]
46769#[target_feature(enable = "neon")]
46770#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46771#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46772#[cfg_attr(
46773    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46774    assert_instr(nop)
46775)]
46776#[cfg_attr(
46777    not(target_arch = "arm"),
46778    stable(feature = "neon_intrinsics", since = "1.59.0")
46779)]
46780#[cfg_attr(
46781    target_arch = "arm",
46782    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46783)]
46784pub fn vreinterpret_u8_p8(a: poly8x8_t) -> uint8x8_t {
46785    unsafe { transmute(a) }
46786}
46787#[doc = "Vector reinterpret cast operation"]
46788#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_p8)"]
46789#[inline]
46790#[target_feature(enable = "neon")]
46791#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46792#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46793#[cfg_attr(
46794    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46795    assert_instr(nop)
46796)]
46797#[cfg_attr(
46798    not(target_arch = "arm"),
46799    stable(feature = "neon_intrinsics", since = "1.59.0")
46800)]
46801#[cfg_attr(
46802    target_arch = "arm",
46803    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46804)]
46805pub fn vreinterpret_u16_p8(a: poly8x8_t) -> uint16x4_t {
46806    unsafe { transmute(a) }
46807}
46808#[doc = "Vector reinterpret cast operation"]
46809#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_p8)"]
46810#[inline]
46811#[target_feature(enable = "neon")]
46812#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46813#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46814#[cfg_attr(
46815    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46816    assert_instr(nop)
46817)]
46818#[cfg_attr(
46819    not(target_arch = "arm"),
46820    stable(feature = "neon_intrinsics", since = "1.59.0")
46821)]
46822#[cfg_attr(
46823    target_arch = "arm",
46824    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46825)]
46826pub fn vreinterpret_u32_p8(a: poly8x8_t) -> uint32x2_t {
46827    unsafe { transmute(a) }
46828}
46829#[doc = "Vector reinterpret cast operation"]
46830#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_p8)"]
46831#[inline]
46832#[target_feature(enable = "neon")]
46833#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46834#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46835#[cfg_attr(
46836    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46837    assert_instr(nop)
46838)]
46839#[cfg_attr(
46840    not(target_arch = "arm"),
46841    stable(feature = "neon_intrinsics", since = "1.59.0")
46842)]
46843#[cfg_attr(
46844    target_arch = "arm",
46845    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46846)]
46847pub fn vreinterpret_u64_p8(a: poly8x8_t) -> uint64x1_t {
46848    unsafe { transmute(a) }
46849}
46850#[doc = "Vector reinterpret cast operation"]
46851#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_p8)"]
46852#[inline]
46853#[target_feature(enable = "neon")]
46854#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46855#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46856#[cfg_attr(
46857    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46858    assert_instr(nop)
46859)]
46860#[cfg_attr(
46861    not(target_arch = "arm"),
46862    stable(feature = "neon_intrinsics", since = "1.59.0")
46863)]
46864#[cfg_attr(
46865    target_arch = "arm",
46866    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46867)]
46868pub fn vreinterpret_p16_p8(a: poly8x8_t) -> poly16x4_t {
46869    unsafe { transmute(a) }
46870}
46871#[doc = "Vector reinterpret cast operation"]
46872#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_p8)"]
46873#[inline]
46874#[target_feature(enable = "neon")]
46875#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46876#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46877#[cfg_attr(
46878    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46879    assert_instr(nop)
46880)]
46881#[cfg_attr(
46882    not(target_arch = "arm"),
46883    stable(feature = "neon_intrinsics", since = "1.59.0")
46884)]
46885#[cfg_attr(
46886    target_arch = "arm",
46887    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46888)]
46889pub fn vreinterpretq_f32_p8(a: poly8x16_t) -> float32x4_t {
46890    unsafe { transmute(a) }
46891}
46892#[doc = "Vector reinterpret cast operation"]
46893#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_p8)"]
46894#[inline]
46895#[target_feature(enable = "neon")]
46896#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46897#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46898#[cfg_attr(
46899    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46900    assert_instr(nop)
46901)]
46902#[cfg_attr(
46903    not(target_arch = "arm"),
46904    stable(feature = "neon_intrinsics", since = "1.59.0")
46905)]
46906#[cfg_attr(
46907    target_arch = "arm",
46908    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46909)]
46910pub fn vreinterpretq_s8_p8(a: poly8x16_t) -> int8x16_t {
46911    unsafe { transmute(a) }
46912}
46913#[doc = "Vector reinterpret cast operation"]
46914#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_p8)"]
46915#[inline]
46916#[target_feature(enable = "neon")]
46917#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46918#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46919#[cfg_attr(
46920    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46921    assert_instr(nop)
46922)]
46923#[cfg_attr(
46924    not(target_arch = "arm"),
46925    stable(feature = "neon_intrinsics", since = "1.59.0")
46926)]
46927#[cfg_attr(
46928    target_arch = "arm",
46929    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46930)]
46931pub fn vreinterpretq_s16_p8(a: poly8x16_t) -> int16x8_t {
46932    unsafe { transmute(a) }
46933}
46934#[doc = "Vector reinterpret cast operation"]
46935#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_p8)"]
46936#[inline]
46937#[target_feature(enable = "neon")]
46938#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46939#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46940#[cfg_attr(
46941    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46942    assert_instr(nop)
46943)]
46944#[cfg_attr(
46945    not(target_arch = "arm"),
46946    stable(feature = "neon_intrinsics", since = "1.59.0")
46947)]
46948#[cfg_attr(
46949    target_arch = "arm",
46950    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46951)]
46952pub fn vreinterpretq_s32_p8(a: poly8x16_t) -> int32x4_t {
46953    unsafe { transmute(a) }
46954}
46955#[doc = "Vector reinterpret cast operation"]
46956#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_p8)"]
46957#[inline]
46958#[target_feature(enable = "neon")]
46959#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46960#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46961#[cfg_attr(
46962    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46963    assert_instr(nop)
46964)]
46965#[cfg_attr(
46966    not(target_arch = "arm"),
46967    stable(feature = "neon_intrinsics", since = "1.59.0")
46968)]
46969#[cfg_attr(
46970    target_arch = "arm",
46971    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46972)]
46973pub fn vreinterpretq_s64_p8(a: poly8x16_t) -> int64x2_t {
46974    unsafe { transmute(a) }
46975}
46976#[doc = "Vector reinterpret cast operation"]
46977#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_p8)"]
46978#[inline]
46979#[target_feature(enable = "neon")]
46980#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46981#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46982#[cfg_attr(
46983    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46984    assert_instr(nop)
46985)]
46986#[cfg_attr(
46987    not(target_arch = "arm"),
46988    stable(feature = "neon_intrinsics", since = "1.59.0")
46989)]
46990#[cfg_attr(
46991    target_arch = "arm",
46992    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46993)]
46994pub fn vreinterpretq_u8_p8(a: poly8x16_t) -> uint8x16_t {
46995    unsafe { transmute(a) }
46996}
46997#[doc = "Vector reinterpret cast operation"]
46998#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_p8)"]
46999#[inline]
47000#[target_feature(enable = "neon")]
47001#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47002#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47003#[cfg_attr(
47004    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47005    assert_instr(nop)
47006)]
47007#[cfg_attr(
47008    not(target_arch = "arm"),
47009    stable(feature = "neon_intrinsics", since = "1.59.0")
47010)]
47011#[cfg_attr(
47012    target_arch = "arm",
47013    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47014)]
47015pub fn vreinterpretq_u16_p8(a: poly8x16_t) -> uint16x8_t {
47016    unsafe { transmute(a) }
47017}
47018#[doc = "Vector reinterpret cast operation"]
47019#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_p8)"]
47020#[inline]
47021#[target_feature(enable = "neon")]
47022#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47023#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47024#[cfg_attr(
47025    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47026    assert_instr(nop)
47027)]
47028#[cfg_attr(
47029    not(target_arch = "arm"),
47030    stable(feature = "neon_intrinsics", since = "1.59.0")
47031)]
47032#[cfg_attr(
47033    target_arch = "arm",
47034    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47035)]
47036pub fn vreinterpretq_u32_p8(a: poly8x16_t) -> uint32x4_t {
47037    unsafe { transmute(a) }
47038}
47039#[doc = "Vector reinterpret cast operation"]
47040#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_p8)"]
47041#[inline]
47042#[target_feature(enable = "neon")]
47043#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47044#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47045#[cfg_attr(
47046    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47047    assert_instr(nop)
47048)]
47049#[cfg_attr(
47050    not(target_arch = "arm"),
47051    stable(feature = "neon_intrinsics", since = "1.59.0")
47052)]
47053#[cfg_attr(
47054    target_arch = "arm",
47055    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47056)]
47057pub fn vreinterpretq_u64_p8(a: poly8x16_t) -> uint64x2_t {
47058    unsafe { transmute(a) }
47059}
47060#[doc = "Vector reinterpret cast operation"]
47061#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_p8)"]
47062#[inline]
47063#[target_feature(enable = "neon")]
47064#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47065#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47066#[cfg_attr(
47067    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47068    assert_instr(nop)
47069)]
47070#[cfg_attr(
47071    not(target_arch = "arm"),
47072    stable(feature = "neon_intrinsics", since = "1.59.0")
47073)]
47074#[cfg_attr(
47075    target_arch = "arm",
47076    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47077)]
47078pub fn vreinterpretq_p16_p8(a: poly8x16_t) -> poly16x8_t {
47079    unsafe { transmute(a) }
47080}
47081#[doc = "Vector reinterpret cast operation"]
47082#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_p16)"]
47083#[inline]
47084#[target_feature(enable = "neon")]
47085#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47086#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47087#[cfg_attr(
47088    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47089    assert_instr(nop)
47090)]
47091#[cfg_attr(
47092    not(target_arch = "arm"),
47093    stable(feature = "neon_intrinsics", since = "1.59.0")
47094)]
47095#[cfg_attr(
47096    target_arch = "arm",
47097    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47098)]
47099pub fn vreinterpret_f32_p16(a: poly16x4_t) -> float32x2_t {
47100    unsafe { transmute(a) }
47101}
47102#[doc = "Vector reinterpret cast operation"]
47103#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_p16)"]
47104#[inline]
47105#[target_feature(enable = "neon")]
47106#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47107#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47108#[cfg_attr(
47109    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47110    assert_instr(nop)
47111)]
47112#[cfg_attr(
47113    not(target_arch = "arm"),
47114    stable(feature = "neon_intrinsics", since = "1.59.0")
47115)]
47116#[cfg_attr(
47117    target_arch = "arm",
47118    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47119)]
47120pub fn vreinterpret_s8_p16(a: poly16x4_t) -> int8x8_t {
47121    unsafe { transmute(a) }
47122}
47123#[doc = "Vector reinterpret cast operation"]
47124#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_p16)"]
47125#[inline]
47126#[target_feature(enable = "neon")]
47127#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47128#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47129#[cfg_attr(
47130    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47131    assert_instr(nop)
47132)]
47133#[cfg_attr(
47134    not(target_arch = "arm"),
47135    stable(feature = "neon_intrinsics", since = "1.59.0")
47136)]
47137#[cfg_attr(
47138    target_arch = "arm",
47139    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47140)]
47141pub fn vreinterpret_s16_p16(a: poly16x4_t) -> int16x4_t {
47142    unsafe { transmute(a) }
47143}
47144#[doc = "Vector reinterpret cast operation"]
47145#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_p16)"]
47146#[inline]
47147#[target_feature(enable = "neon")]
47148#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47149#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47150#[cfg_attr(
47151    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47152    assert_instr(nop)
47153)]
47154#[cfg_attr(
47155    not(target_arch = "arm"),
47156    stable(feature = "neon_intrinsics", since = "1.59.0")
47157)]
47158#[cfg_attr(
47159    target_arch = "arm",
47160    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47161)]
47162pub fn vreinterpret_s32_p16(a: poly16x4_t) -> int32x2_t {
47163    unsafe { transmute(a) }
47164}
47165#[doc = "Vector reinterpret cast operation"]
47166#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_p16)"]
47167#[inline]
47168#[target_feature(enable = "neon")]
47169#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47170#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47171#[cfg_attr(
47172    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47173    assert_instr(nop)
47174)]
47175#[cfg_attr(
47176    not(target_arch = "arm"),
47177    stable(feature = "neon_intrinsics", since = "1.59.0")
47178)]
47179#[cfg_attr(
47180    target_arch = "arm",
47181    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47182)]
47183pub fn vreinterpret_s64_p16(a: poly16x4_t) -> int64x1_t {
47184    unsafe { transmute(a) }
47185}
47186#[doc = "Vector reinterpret cast operation"]
47187#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_p16)"]
47188#[inline]
47189#[target_feature(enable = "neon")]
47190#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47191#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47192#[cfg_attr(
47193    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47194    assert_instr(nop)
47195)]
47196#[cfg_attr(
47197    not(target_arch = "arm"),
47198    stable(feature = "neon_intrinsics", since = "1.59.0")
47199)]
47200#[cfg_attr(
47201    target_arch = "arm",
47202    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47203)]
47204pub fn vreinterpret_u8_p16(a: poly16x4_t) -> uint8x8_t {
47205    unsafe { transmute(a) }
47206}
47207#[doc = "Vector reinterpret cast operation"]
47208#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_p16)"]
47209#[inline]
47210#[target_feature(enable = "neon")]
47211#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47212#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47213#[cfg_attr(
47214    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47215    assert_instr(nop)
47216)]
47217#[cfg_attr(
47218    not(target_arch = "arm"),
47219    stable(feature = "neon_intrinsics", since = "1.59.0")
47220)]
47221#[cfg_attr(
47222    target_arch = "arm",
47223    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47224)]
47225pub fn vreinterpret_u16_p16(a: poly16x4_t) -> uint16x4_t {
47226    unsafe { transmute(a) }
47227}
47228#[doc = "Vector reinterpret cast operation"]
47229#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_p16)"]
47230#[inline]
47231#[target_feature(enable = "neon")]
47232#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47233#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47234#[cfg_attr(
47235    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47236    assert_instr(nop)
47237)]
47238#[cfg_attr(
47239    not(target_arch = "arm"),
47240    stable(feature = "neon_intrinsics", since = "1.59.0")
47241)]
47242#[cfg_attr(
47243    target_arch = "arm",
47244    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47245)]
47246pub fn vreinterpret_u32_p16(a: poly16x4_t) -> uint32x2_t {
47247    unsafe { transmute(a) }
47248}
47249#[doc = "Vector reinterpret cast operation"]
47250#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_p16)"]
47251#[inline]
47252#[target_feature(enable = "neon")]
47253#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47254#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47255#[cfg_attr(
47256    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47257    assert_instr(nop)
47258)]
47259#[cfg_attr(
47260    not(target_arch = "arm"),
47261    stable(feature = "neon_intrinsics", since = "1.59.0")
47262)]
47263#[cfg_attr(
47264    target_arch = "arm",
47265    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47266)]
47267pub fn vreinterpret_u64_p16(a: poly16x4_t) -> uint64x1_t {
47268    unsafe { transmute(a) }
47269}
47270#[doc = "Vector reinterpret cast operation"]
47271#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_p16)"]
47272#[inline]
47273#[target_feature(enable = "neon")]
47274#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47275#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47276#[cfg_attr(
47277    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47278    assert_instr(nop)
47279)]
47280#[cfg_attr(
47281    not(target_arch = "arm"),
47282    stable(feature = "neon_intrinsics", since = "1.59.0")
47283)]
47284#[cfg_attr(
47285    target_arch = "arm",
47286    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47287)]
47288pub fn vreinterpret_p8_p16(a: poly16x4_t) -> poly8x8_t {
47289    unsafe { transmute(a) }
47290}
47291#[doc = "Vector reinterpret cast operation"]
47292#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_p16)"]
47293#[inline]
47294#[target_feature(enable = "neon")]
47295#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47296#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47297#[cfg_attr(
47298    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47299    assert_instr(nop)
47300)]
47301#[cfg_attr(
47302    not(target_arch = "arm"),
47303    stable(feature = "neon_intrinsics", since = "1.59.0")
47304)]
47305#[cfg_attr(
47306    target_arch = "arm",
47307    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47308)]
47309pub fn vreinterpretq_f32_p16(a: poly16x8_t) -> float32x4_t {
47310    unsafe { transmute(a) }
47311}
47312#[doc = "Vector reinterpret cast operation"]
47313#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_p16)"]
47314#[inline]
47315#[target_feature(enable = "neon")]
47316#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47317#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47318#[cfg_attr(
47319    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47320    assert_instr(nop)
47321)]
47322#[cfg_attr(
47323    not(target_arch = "arm"),
47324    stable(feature = "neon_intrinsics", since = "1.59.0")
47325)]
47326#[cfg_attr(
47327    target_arch = "arm",
47328    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47329)]
47330pub fn vreinterpretq_s8_p16(a: poly16x8_t) -> int8x16_t {
47331    unsafe { transmute(a) }
47332}
47333#[doc = "Vector reinterpret cast operation"]
47334#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_p16)"]
47335#[inline]
47336#[target_feature(enable = "neon")]
47337#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47338#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47339#[cfg_attr(
47340    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47341    assert_instr(nop)
47342)]
47343#[cfg_attr(
47344    not(target_arch = "arm"),
47345    stable(feature = "neon_intrinsics", since = "1.59.0")
47346)]
47347#[cfg_attr(
47348    target_arch = "arm",
47349    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47350)]
47351pub fn vreinterpretq_s16_p16(a: poly16x8_t) -> int16x8_t {
47352    unsafe { transmute(a) }
47353}
47354#[doc = "Vector reinterpret cast operation"]
47355#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_p16)"]
47356#[inline]
47357#[target_feature(enable = "neon")]
47358#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47359#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47360#[cfg_attr(
47361    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47362    assert_instr(nop)
47363)]
47364#[cfg_attr(
47365    not(target_arch = "arm"),
47366    stable(feature = "neon_intrinsics", since = "1.59.0")
47367)]
47368#[cfg_attr(
47369    target_arch = "arm",
47370    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47371)]
47372pub fn vreinterpretq_s32_p16(a: poly16x8_t) -> int32x4_t {
47373    unsafe { transmute(a) }
47374}
47375#[doc = "Vector reinterpret cast operation"]
47376#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_p16)"]
47377#[inline]
47378#[target_feature(enable = "neon")]
47379#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47380#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47381#[cfg_attr(
47382    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47383    assert_instr(nop)
47384)]
47385#[cfg_attr(
47386    not(target_arch = "arm"),
47387    stable(feature = "neon_intrinsics", since = "1.59.0")
47388)]
47389#[cfg_attr(
47390    target_arch = "arm",
47391    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47392)]
47393pub fn vreinterpretq_s64_p16(a: poly16x8_t) -> int64x2_t {
47394    unsafe { transmute(a) }
47395}
47396#[doc = "Vector reinterpret cast operation"]
47397#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_p16)"]
47398#[inline]
47399#[target_feature(enable = "neon")]
47400#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47401#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47402#[cfg_attr(
47403    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47404    assert_instr(nop)
47405)]
47406#[cfg_attr(
47407    not(target_arch = "arm"),
47408    stable(feature = "neon_intrinsics", since = "1.59.0")
47409)]
47410#[cfg_attr(
47411    target_arch = "arm",
47412    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47413)]
47414pub fn vreinterpretq_u8_p16(a: poly16x8_t) -> uint8x16_t {
47415    unsafe { transmute(a) }
47416}
47417#[doc = "Vector reinterpret cast operation"]
47418#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_p16)"]
47419#[inline]
47420#[target_feature(enable = "neon")]
47421#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47422#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47423#[cfg_attr(
47424    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47425    assert_instr(nop)
47426)]
47427#[cfg_attr(
47428    not(target_arch = "arm"),
47429    stable(feature = "neon_intrinsics", since = "1.59.0")
47430)]
47431#[cfg_attr(
47432    target_arch = "arm",
47433    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47434)]
47435pub fn vreinterpretq_u16_p16(a: poly16x8_t) -> uint16x8_t {
47436    unsafe { transmute(a) }
47437}
47438#[doc = "Vector reinterpret cast operation"]
47439#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_p16)"]
47440#[inline]
47441#[target_feature(enable = "neon")]
47442#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47443#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47444#[cfg_attr(
47445    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47446    assert_instr(nop)
47447)]
47448#[cfg_attr(
47449    not(target_arch = "arm"),
47450    stable(feature = "neon_intrinsics", since = "1.59.0")
47451)]
47452#[cfg_attr(
47453    target_arch = "arm",
47454    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47455)]
47456pub fn vreinterpretq_u32_p16(a: poly16x8_t) -> uint32x4_t {
47457    unsafe { transmute(a) }
47458}
47459#[doc = "Vector reinterpret cast operation"]
47460#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_p16)"]
47461#[inline]
47462#[target_feature(enable = "neon")]
47463#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47464#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47465#[cfg_attr(
47466    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47467    assert_instr(nop)
47468)]
47469#[cfg_attr(
47470    not(target_arch = "arm"),
47471    stable(feature = "neon_intrinsics", since = "1.59.0")
47472)]
47473#[cfg_attr(
47474    target_arch = "arm",
47475    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47476)]
47477pub fn vreinterpretq_u64_p16(a: poly16x8_t) -> uint64x2_t {
47478    unsafe { transmute(a) }
47479}
47480#[doc = "Vector reinterpret cast operation"]
47481#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_p16)"]
47482#[inline]
47483#[target_feature(enable = "neon")]
47484#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47485#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47486#[cfg_attr(
47487    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47488    assert_instr(nop)
47489)]
47490#[cfg_attr(
47491    not(target_arch = "arm"),
47492    stable(feature = "neon_intrinsics", since = "1.59.0")
47493)]
47494#[cfg_attr(
47495    target_arch = "arm",
47496    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47497)]
47498pub fn vreinterpretq_p8_p16(a: poly16x8_t) -> poly8x16_t {
47499    unsafe { transmute(a) }
47500}
47501#[doc = "Vector reinterpret cast operation"]
47502#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_p128)"]
47503#[inline]
47504#[target_feature(enable = "neon,aes")]
47505#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
47506#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47507#[cfg_attr(
47508    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47509    assert_instr(nop)
47510)]
47511#[cfg_attr(
47512    not(target_arch = "arm"),
47513    stable(feature = "neon_intrinsics", since = "1.59.0")
47514)]
47515#[cfg_attr(
47516    target_arch = "arm",
47517    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47518)]
47519pub fn vreinterpretq_s8_p128(a: p128) -> int8x16_t {
47520    unsafe { transmute(a) }
47521}
47522#[doc = "Vector reinterpret cast operation"]
47523#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_p128)"]
47524#[inline]
47525#[target_feature(enable = "neon,aes")]
47526#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
47527#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47528#[cfg_attr(
47529    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47530    assert_instr(nop)
47531)]
47532#[cfg_attr(
47533    not(target_arch = "arm"),
47534    stable(feature = "neon_intrinsics", since = "1.59.0")
47535)]
47536#[cfg_attr(
47537    target_arch = "arm",
47538    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47539)]
47540pub fn vreinterpretq_s16_p128(a: p128) -> int16x8_t {
47541    unsafe { transmute(a) }
47542}
47543#[doc = "Vector reinterpret cast operation"]
47544#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_p128)"]
47545#[inline]
47546#[target_feature(enable = "neon,aes")]
47547#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
47548#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47549#[cfg_attr(
47550    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47551    assert_instr(nop)
47552)]
47553#[cfg_attr(
47554    not(target_arch = "arm"),
47555    stable(feature = "neon_intrinsics", since = "1.59.0")
47556)]
47557#[cfg_attr(
47558    target_arch = "arm",
47559    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47560)]
47561pub fn vreinterpretq_s32_p128(a: p128) -> int32x4_t {
47562    unsafe { transmute(a) }
47563}
47564#[doc = "Vector reinterpret cast operation"]
47565#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_p128)"]
47566#[inline]
47567#[target_feature(enable = "neon,aes")]
47568#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
47569#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47570#[cfg_attr(
47571    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47572    assert_instr(nop)
47573)]
47574#[cfg_attr(
47575    not(target_arch = "arm"),
47576    stable(feature = "neon_intrinsics", since = "1.59.0")
47577)]
47578#[cfg_attr(
47579    target_arch = "arm",
47580    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47581)]
47582pub fn vreinterpretq_s64_p128(a: p128) -> int64x2_t {
47583    unsafe { transmute(a) }
47584}
47585#[doc = "Vector reinterpret cast operation"]
47586#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_p128)"]
47587#[inline]
47588#[target_feature(enable = "neon,aes")]
47589#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
47590#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47591#[cfg_attr(
47592    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47593    assert_instr(nop)
47594)]
47595#[cfg_attr(
47596    not(target_arch = "arm"),
47597    stable(feature = "neon_intrinsics", since = "1.59.0")
47598)]
47599#[cfg_attr(
47600    target_arch = "arm",
47601    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47602)]
47603pub fn vreinterpretq_u8_p128(a: p128) -> uint8x16_t {
47604    unsafe { transmute(a) }
47605}
47606#[doc = "Vector reinterpret cast operation"]
47607#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_p128)"]
47608#[inline]
47609#[target_feature(enable = "neon,aes")]
47610#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
47611#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47612#[cfg_attr(
47613    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47614    assert_instr(nop)
47615)]
47616#[cfg_attr(
47617    not(target_arch = "arm"),
47618    stable(feature = "neon_intrinsics", since = "1.59.0")
47619)]
47620#[cfg_attr(
47621    target_arch = "arm",
47622    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47623)]
47624pub fn vreinterpretq_u16_p128(a: p128) -> uint16x8_t {
47625    unsafe { transmute(a) }
47626}
47627#[doc = "Vector reinterpret cast operation"]
47628#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_p128)"]
47629#[inline]
47630#[target_feature(enable = "neon,aes")]
47631#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
47632#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47633#[cfg_attr(
47634    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47635    assert_instr(nop)
47636)]
47637#[cfg_attr(
47638    not(target_arch = "arm"),
47639    stable(feature = "neon_intrinsics", since = "1.59.0")
47640)]
47641#[cfg_attr(
47642    target_arch = "arm",
47643    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47644)]
47645pub fn vreinterpretq_u32_p128(a: p128) -> uint32x4_t {
47646    unsafe { transmute(a) }
47647}
47648#[doc = "Vector reinterpret cast operation"]
47649#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_p128)"]
47650#[inline]
47651#[target_feature(enable = "neon,aes")]
47652#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
47653#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47654#[cfg_attr(
47655    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47656    assert_instr(nop)
47657)]
47658#[cfg_attr(
47659    not(target_arch = "arm"),
47660    stable(feature = "neon_intrinsics", since = "1.59.0")
47661)]
47662#[cfg_attr(
47663    target_arch = "arm",
47664    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47665)]
47666pub fn vreinterpretq_u64_p128(a: p128) -> uint64x2_t {
47667    unsafe { transmute(a) }
47668}
47669#[doc = "Vector reinterpret cast operation"]
47670#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_p128)"]
47671#[inline]
47672#[target_feature(enable = "neon,aes")]
47673#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
47674#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47675#[cfg_attr(
47676    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47677    assert_instr(nop)
47678)]
47679#[cfg_attr(
47680    not(target_arch = "arm"),
47681    stable(feature = "neon_intrinsics", since = "1.59.0")
47682)]
47683#[cfg_attr(
47684    target_arch = "arm",
47685    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47686)]
47687pub fn vreinterpretq_p8_p128(a: p128) -> poly8x16_t {
47688    unsafe { transmute(a) }
47689}
47690#[doc = "Vector reinterpret cast operation"]
47691#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_p128)"]
47692#[inline]
47693#[target_feature(enable = "neon,aes")]
47694#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
47695#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47696#[cfg_attr(
47697    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47698    assert_instr(nop)
47699)]
47700#[cfg_attr(
47701    not(target_arch = "arm"),
47702    stable(feature = "neon_intrinsics", since = "1.59.0")
47703)]
47704#[cfg_attr(
47705    target_arch = "arm",
47706    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47707)]
47708pub fn vreinterpretq_p16_p128(a: p128) -> poly16x8_t {
47709    unsafe { transmute(a) }
47710}
47711#[doc = "Vector reinterpret cast operation"]
47712#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_p128)"]
47713#[inline]
47714#[target_feature(enable = "neon,aes")]
47715#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
47716#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47717#[cfg_attr(
47718    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47719    assert_instr(nop)
47720)]
47721#[cfg_attr(
47722    not(target_arch = "arm"),
47723    stable(feature = "neon_intrinsics", since = "1.59.0")
47724)]
47725#[cfg_attr(
47726    target_arch = "arm",
47727    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47728)]
47729pub fn vreinterpretq_p64_p128(a: p128) -> poly64x2_t {
47730    unsafe { transmute(a) }
47731}
47732#[doc = "Vector reinterpret cast operation"]
47733#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_s8)"]
47734#[inline]
47735#[target_feature(enable = "neon,aes")]
47736#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
47737#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47738#[cfg_attr(
47739    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47740    assert_instr(nop)
47741)]
47742#[cfg_attr(
47743    not(target_arch = "arm"),
47744    stable(feature = "neon_intrinsics", since = "1.59.0")
47745)]
47746#[cfg_attr(
47747    target_arch = "arm",
47748    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47749)]
47750pub fn vreinterpret_p64_s8(a: int8x8_t) -> poly64x1_t {
47751    unsafe { transmute(a) }
47752}
47753#[doc = "Vector reinterpret cast operation"]
47754#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_s8)"]
47755#[inline]
47756#[target_feature(enable = "neon,aes")]
47757#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
47758#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47759#[cfg_attr(
47760    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47761    assert_instr(nop)
47762)]
47763#[cfg_attr(
47764    not(target_arch = "arm"),
47765    stable(feature = "neon_intrinsics", since = "1.59.0")
47766)]
47767#[cfg_attr(
47768    target_arch = "arm",
47769    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47770)]
47771pub fn vreinterpretq_p128_s8(a: int8x16_t) -> p128 {
47772    unsafe { transmute(a) }
47773}
47774#[doc = "Vector reinterpret cast operation"]
47775#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_s8)"]
47776#[inline]
47777#[target_feature(enable = "neon,aes")]
47778#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
47779#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47780#[cfg_attr(
47781    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47782    assert_instr(nop)
47783)]
47784#[cfg_attr(
47785    not(target_arch = "arm"),
47786    stable(feature = "neon_intrinsics", since = "1.59.0")
47787)]
47788#[cfg_attr(
47789    target_arch = "arm",
47790    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47791)]
47792pub fn vreinterpretq_p64_s8(a: int8x16_t) -> poly64x2_t {
47793    unsafe { transmute(a) }
47794}
47795#[doc = "Vector reinterpret cast operation"]
47796#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_s16)"]
47797#[inline]
47798#[target_feature(enable = "neon,aes")]
47799#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
47800#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47801#[cfg_attr(
47802    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47803    assert_instr(nop)
47804)]
47805#[cfg_attr(
47806    not(target_arch = "arm"),
47807    stable(feature = "neon_intrinsics", since = "1.59.0")
47808)]
47809#[cfg_attr(
47810    target_arch = "arm",
47811    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47812)]
47813pub fn vreinterpret_p64_s16(a: int16x4_t) -> poly64x1_t {
47814    unsafe { transmute(a) }
47815}
47816#[doc = "Vector reinterpret cast operation"]
47817#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_s16)"]
47818#[inline]
47819#[target_feature(enable = "neon,aes")]
47820#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
47821#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47822#[cfg_attr(
47823    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47824    assert_instr(nop)
47825)]
47826#[cfg_attr(
47827    not(target_arch = "arm"),
47828    stable(feature = "neon_intrinsics", since = "1.59.0")
47829)]
47830#[cfg_attr(
47831    target_arch = "arm",
47832    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47833)]
47834pub fn vreinterpretq_p128_s16(a: int16x8_t) -> p128 {
47835    unsafe { transmute(a) }
47836}
47837#[doc = "Vector reinterpret cast operation"]
47838#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_s16)"]
47839#[inline]
47840#[target_feature(enable = "neon,aes")]
47841#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
47842#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47843#[cfg_attr(
47844    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47845    assert_instr(nop)
47846)]
47847#[cfg_attr(
47848    not(target_arch = "arm"),
47849    stable(feature = "neon_intrinsics", since = "1.59.0")
47850)]
47851#[cfg_attr(
47852    target_arch = "arm",
47853    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47854)]
47855pub fn vreinterpretq_p64_s16(a: int16x8_t) -> poly64x2_t {
47856    unsafe { transmute(a) }
47857}
47858#[doc = "Vector reinterpret cast operation"]
47859#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_s32)"]
47860#[inline]
47861#[target_feature(enable = "neon,aes")]
47862#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
47863#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47864#[cfg_attr(
47865    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47866    assert_instr(nop)
47867)]
47868#[cfg_attr(
47869    not(target_arch = "arm"),
47870    stable(feature = "neon_intrinsics", since = "1.59.0")
47871)]
47872#[cfg_attr(
47873    target_arch = "arm",
47874    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47875)]
47876pub fn vreinterpret_p64_s32(a: int32x2_t) -> poly64x1_t {
47877    unsafe { transmute(a) }
47878}
47879#[doc = "Vector reinterpret cast operation"]
47880#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_s32)"]
47881#[inline]
47882#[target_feature(enable = "neon,aes")]
47883#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
47884#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47885#[cfg_attr(
47886    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47887    assert_instr(nop)
47888)]
47889#[cfg_attr(
47890    not(target_arch = "arm"),
47891    stable(feature = "neon_intrinsics", since = "1.59.0")
47892)]
47893#[cfg_attr(
47894    target_arch = "arm",
47895    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47896)]
47897pub fn vreinterpretq_p128_s32(a: int32x4_t) -> p128 {
47898    unsafe { transmute(a) }
47899}
47900#[doc = "Vector reinterpret cast operation"]
47901#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_s32)"]
47902#[inline]
47903#[target_feature(enable = "neon,aes")]
47904#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
47905#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47906#[cfg_attr(
47907    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47908    assert_instr(nop)
47909)]
47910#[cfg_attr(
47911    not(target_arch = "arm"),
47912    stable(feature = "neon_intrinsics", since = "1.59.0")
47913)]
47914#[cfg_attr(
47915    target_arch = "arm",
47916    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47917)]
47918pub fn vreinterpretq_p64_s32(a: int32x4_t) -> poly64x2_t {
47919    unsafe { transmute(a) }
47920}
47921#[doc = "Vector reinterpret cast operation"]
47922#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_s64)"]
47923#[inline]
47924#[target_feature(enable = "neon,aes")]
47925#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
47926#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47927#[cfg_attr(
47928    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47929    assert_instr(nop)
47930)]
47931#[cfg_attr(
47932    not(target_arch = "arm"),
47933    stable(feature = "neon_intrinsics", since = "1.59.0")
47934)]
47935#[cfg_attr(
47936    target_arch = "arm",
47937    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47938)]
47939pub fn vreinterpretq_p128_s64(a: int64x2_t) -> p128 {
47940    unsafe { transmute(a) }
47941}
47942#[doc = "Vector reinterpret cast operation"]
47943#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_u8)"]
47944#[inline]
47945#[target_feature(enable = "neon,aes")]
47946#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
47947#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47948#[cfg_attr(
47949    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47950    assert_instr(nop)
47951)]
47952#[cfg_attr(
47953    not(target_arch = "arm"),
47954    stable(feature = "neon_intrinsics", since = "1.59.0")
47955)]
47956#[cfg_attr(
47957    target_arch = "arm",
47958    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47959)]
47960pub fn vreinterpret_p64_u8(a: uint8x8_t) -> poly64x1_t {
47961    unsafe { transmute(a) }
47962}
47963#[doc = "Vector reinterpret cast operation"]
47964#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_u8)"]
47965#[inline]
47966#[target_feature(enable = "neon,aes")]
47967#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
47968#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47969#[cfg_attr(
47970    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47971    assert_instr(nop)
47972)]
47973#[cfg_attr(
47974    not(target_arch = "arm"),
47975    stable(feature = "neon_intrinsics", since = "1.59.0")
47976)]
47977#[cfg_attr(
47978    target_arch = "arm",
47979    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47980)]
47981pub fn vreinterpretq_p128_u8(a: uint8x16_t) -> p128 {
47982    unsafe { transmute(a) }
47983}
47984#[doc = "Vector reinterpret cast operation"]
47985#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_u8)"]
47986#[inline]
47987#[target_feature(enable = "neon,aes")]
47988#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
47989#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47990#[cfg_attr(
47991    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47992    assert_instr(nop)
47993)]
47994#[cfg_attr(
47995    not(target_arch = "arm"),
47996    stable(feature = "neon_intrinsics", since = "1.59.0")
47997)]
47998#[cfg_attr(
47999    target_arch = "arm",
48000    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48001)]
48002pub fn vreinterpretq_p64_u8(a: uint8x16_t) -> poly64x2_t {
48003    unsafe { transmute(a) }
48004}
48005#[doc = "Vector reinterpret cast operation"]
48006#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_u16)"]
48007#[inline]
48008#[target_feature(enable = "neon,aes")]
48009#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
48010#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48011#[cfg_attr(
48012    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48013    assert_instr(nop)
48014)]
48015#[cfg_attr(
48016    not(target_arch = "arm"),
48017    stable(feature = "neon_intrinsics", since = "1.59.0")
48018)]
48019#[cfg_attr(
48020    target_arch = "arm",
48021    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48022)]
48023pub fn vreinterpret_p64_u16(a: uint16x4_t) -> poly64x1_t {
48024    unsafe { transmute(a) }
48025}
48026#[doc = "Vector reinterpret cast operation"]
48027#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_u16)"]
48028#[inline]
48029#[target_feature(enable = "neon,aes")]
48030#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
48031#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48032#[cfg_attr(
48033    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48034    assert_instr(nop)
48035)]
48036#[cfg_attr(
48037    not(target_arch = "arm"),
48038    stable(feature = "neon_intrinsics", since = "1.59.0")
48039)]
48040#[cfg_attr(
48041    target_arch = "arm",
48042    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48043)]
48044pub fn vreinterpretq_p128_u16(a: uint16x8_t) -> p128 {
48045    unsafe { transmute(a) }
48046}
48047#[doc = "Vector reinterpret cast operation"]
48048#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_u16)"]
48049#[inline]
48050#[target_feature(enable = "neon,aes")]
48051#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
48052#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48053#[cfg_attr(
48054    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48055    assert_instr(nop)
48056)]
48057#[cfg_attr(
48058    not(target_arch = "arm"),
48059    stable(feature = "neon_intrinsics", since = "1.59.0")
48060)]
48061#[cfg_attr(
48062    target_arch = "arm",
48063    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48064)]
48065pub fn vreinterpretq_p64_u16(a: uint16x8_t) -> poly64x2_t {
48066    unsafe { transmute(a) }
48067}
48068#[doc = "Vector reinterpret cast operation"]
48069#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_u32)"]
48070#[inline]
48071#[target_feature(enable = "neon,aes")]
48072#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
48073#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48074#[cfg_attr(
48075    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48076    assert_instr(nop)
48077)]
48078#[cfg_attr(
48079    not(target_arch = "arm"),
48080    stable(feature = "neon_intrinsics", since = "1.59.0")
48081)]
48082#[cfg_attr(
48083    target_arch = "arm",
48084    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48085)]
48086pub fn vreinterpret_p64_u32(a: uint32x2_t) -> poly64x1_t {
48087    unsafe { transmute(a) }
48088}
48089#[doc = "Vector reinterpret cast operation"]
48090#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_u32)"]
48091#[inline]
48092#[target_feature(enable = "neon,aes")]
48093#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
48094#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48095#[cfg_attr(
48096    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48097    assert_instr(nop)
48098)]
48099#[cfg_attr(
48100    not(target_arch = "arm"),
48101    stable(feature = "neon_intrinsics", since = "1.59.0")
48102)]
48103#[cfg_attr(
48104    target_arch = "arm",
48105    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48106)]
48107pub fn vreinterpretq_p128_u32(a: uint32x4_t) -> p128 {
48108    unsafe { transmute(a) }
48109}
48110#[doc = "Vector reinterpret cast operation"]
48111#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_u32)"]
48112#[inline]
48113#[target_feature(enable = "neon,aes")]
48114#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
48115#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48116#[cfg_attr(
48117    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48118    assert_instr(nop)
48119)]
48120#[cfg_attr(
48121    not(target_arch = "arm"),
48122    stable(feature = "neon_intrinsics", since = "1.59.0")
48123)]
48124#[cfg_attr(
48125    target_arch = "arm",
48126    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48127)]
48128pub fn vreinterpretq_p64_u32(a: uint32x4_t) -> poly64x2_t {
48129    unsafe { transmute(a) }
48130}
48131#[doc = "Vector reinterpret cast operation"]
48132#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_u64)"]
48133#[inline]
48134#[target_feature(enable = "neon,aes")]
48135#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
48136#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48137#[cfg_attr(
48138    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48139    assert_instr(nop)
48140)]
48141#[cfg_attr(
48142    not(target_arch = "arm"),
48143    stable(feature = "neon_intrinsics", since = "1.59.0")
48144)]
48145#[cfg_attr(
48146    target_arch = "arm",
48147    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48148)]
48149pub fn vreinterpretq_p128_u64(a: uint64x2_t) -> p128 {
48150    unsafe { transmute(a) }
48151}
48152#[doc = "Vector reinterpret cast operation"]
48153#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_p8)"]
48154#[inline]
48155#[target_feature(enable = "neon,aes")]
48156#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
48157#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48158#[cfg_attr(
48159    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48160    assert_instr(nop)
48161)]
48162#[cfg_attr(
48163    not(target_arch = "arm"),
48164    stable(feature = "neon_intrinsics", since = "1.59.0")
48165)]
48166#[cfg_attr(
48167    target_arch = "arm",
48168    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48169)]
48170pub fn vreinterpret_p64_p8(a: poly8x8_t) -> poly64x1_t {
48171    unsafe { transmute(a) }
48172}
48173#[doc = "Vector reinterpret cast operation"]
48174#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_p8)"]
48175#[inline]
48176#[target_feature(enable = "neon,aes")]
48177#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
48178#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48179#[cfg_attr(
48180    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48181    assert_instr(nop)
48182)]
48183#[cfg_attr(
48184    not(target_arch = "arm"),
48185    stable(feature = "neon_intrinsics", since = "1.59.0")
48186)]
48187#[cfg_attr(
48188    target_arch = "arm",
48189    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48190)]
48191pub fn vreinterpretq_p128_p8(a: poly8x16_t) -> p128 {
48192    unsafe { transmute(a) }
48193}
48194#[doc = "Vector reinterpret cast operation"]
48195#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_p8)"]
48196#[inline]
48197#[target_feature(enable = "neon,aes")]
48198#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
48199#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48200#[cfg_attr(
48201    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48202    assert_instr(nop)
48203)]
48204#[cfg_attr(
48205    not(target_arch = "arm"),
48206    stable(feature = "neon_intrinsics", since = "1.59.0")
48207)]
48208#[cfg_attr(
48209    target_arch = "arm",
48210    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48211)]
48212pub fn vreinterpretq_p64_p8(a: poly8x16_t) -> poly64x2_t {
48213    unsafe { transmute(a) }
48214}
48215#[doc = "Vector reinterpret cast operation"]
48216#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_p16)"]
48217#[inline]
48218#[target_feature(enable = "neon,aes")]
48219#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
48220#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48221#[cfg_attr(
48222    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48223    assert_instr(nop)
48224)]
48225#[cfg_attr(
48226    not(target_arch = "arm"),
48227    stable(feature = "neon_intrinsics", since = "1.59.0")
48228)]
48229#[cfg_attr(
48230    target_arch = "arm",
48231    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48232)]
48233pub fn vreinterpret_p64_p16(a: poly16x4_t) -> poly64x1_t {
48234    unsafe { transmute(a) }
48235}
48236#[doc = "Vector reinterpret cast operation"]
48237#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_p16)"]
48238#[inline]
48239#[target_feature(enable = "neon,aes")]
48240#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
48241#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48242#[cfg_attr(
48243    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48244    assert_instr(nop)
48245)]
48246#[cfg_attr(
48247    not(target_arch = "arm"),
48248    stable(feature = "neon_intrinsics", since = "1.59.0")
48249)]
48250#[cfg_attr(
48251    target_arch = "arm",
48252    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48253)]
48254pub fn vreinterpretq_p128_p16(a: poly16x8_t) -> p128 {
48255    unsafe { transmute(a) }
48256}
48257#[doc = "Vector reinterpret cast operation"]
48258#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_p16)"]
48259#[inline]
48260#[target_feature(enable = "neon,aes")]
48261#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
48262#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48263#[cfg_attr(
48264    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48265    assert_instr(nop)
48266)]
48267#[cfg_attr(
48268    not(target_arch = "arm"),
48269    stable(feature = "neon_intrinsics", since = "1.59.0")
48270)]
48271#[cfg_attr(
48272    target_arch = "arm",
48273    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48274)]
48275pub fn vreinterpretq_p64_p16(a: poly16x8_t) -> poly64x2_t {
48276    unsafe { transmute(a) }
48277}
48278#[doc = "Vector reinterpret cast operation"]
48279#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_p64)"]
48280#[inline]
48281#[target_feature(enable = "neon,aes")]
48282#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
48283#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48284#[cfg_attr(
48285    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48286    assert_instr(nop)
48287)]
48288#[cfg_attr(
48289    not(target_arch = "arm"),
48290    stable(feature = "neon_intrinsics", since = "1.59.0")
48291)]
48292#[cfg_attr(
48293    target_arch = "arm",
48294    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48295)]
48296pub fn vreinterpret_s8_p64(a: poly64x1_t) -> int8x8_t {
48297    unsafe { transmute(a) }
48298}
48299#[doc = "Vector reinterpret cast operation"]
48300#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_p64)"]
48301#[inline]
48302#[target_feature(enable = "neon,aes")]
48303#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
48304#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48305#[cfg_attr(
48306    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48307    assert_instr(nop)
48308)]
48309#[cfg_attr(
48310    not(target_arch = "arm"),
48311    stable(feature = "neon_intrinsics", since = "1.59.0")
48312)]
48313#[cfg_attr(
48314    target_arch = "arm",
48315    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48316)]
48317pub fn vreinterpret_s16_p64(a: poly64x1_t) -> int16x4_t {
48318    unsafe { transmute(a) }
48319}
48320#[doc = "Vector reinterpret cast operation"]
48321#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_p64)"]
48322#[inline]
48323#[target_feature(enable = "neon,aes")]
48324#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
48325#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48326#[cfg_attr(
48327    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48328    assert_instr(nop)
48329)]
48330#[cfg_attr(
48331    not(target_arch = "arm"),
48332    stable(feature = "neon_intrinsics", since = "1.59.0")
48333)]
48334#[cfg_attr(
48335    target_arch = "arm",
48336    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48337)]
48338pub fn vreinterpret_s32_p64(a: poly64x1_t) -> int32x2_t {
48339    unsafe { transmute(a) }
48340}
48341#[doc = "Vector reinterpret cast operation"]
48342#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_p64)"]
48343#[inline]
48344#[target_feature(enable = "neon,aes")]
48345#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
48346#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48347#[cfg_attr(
48348    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48349    assert_instr(nop)
48350)]
48351#[cfg_attr(
48352    not(target_arch = "arm"),
48353    stable(feature = "neon_intrinsics", since = "1.59.0")
48354)]
48355#[cfg_attr(
48356    target_arch = "arm",
48357    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48358)]
48359pub fn vreinterpret_u8_p64(a: poly64x1_t) -> uint8x8_t {
48360    unsafe { transmute(a) }
48361}
48362#[doc = "Vector reinterpret cast operation"]
48363#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_p64)"]
48364#[inline]
48365#[target_feature(enable = "neon,aes")]
48366#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
48367#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48368#[cfg_attr(
48369    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48370    assert_instr(nop)
48371)]
48372#[cfg_attr(
48373    not(target_arch = "arm"),
48374    stable(feature = "neon_intrinsics", since = "1.59.0")
48375)]
48376#[cfg_attr(
48377    target_arch = "arm",
48378    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48379)]
48380pub fn vreinterpret_u16_p64(a: poly64x1_t) -> uint16x4_t {
48381    unsafe { transmute(a) }
48382}
48383#[doc = "Vector reinterpret cast operation"]
48384#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_p64)"]
48385#[inline]
48386#[target_feature(enable = "neon,aes")]
48387#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
48388#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48389#[cfg_attr(
48390    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48391    assert_instr(nop)
48392)]
48393#[cfg_attr(
48394    not(target_arch = "arm"),
48395    stable(feature = "neon_intrinsics", since = "1.59.0")
48396)]
48397#[cfg_attr(
48398    target_arch = "arm",
48399    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48400)]
48401pub fn vreinterpret_u32_p64(a: poly64x1_t) -> uint32x2_t {
48402    unsafe { transmute(a) }
48403}
48404#[doc = "Vector reinterpret cast operation"]
48405#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_p64)"]
48406#[inline]
48407#[target_feature(enable = "neon,aes")]
48408#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
48409#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48410#[cfg_attr(
48411    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48412    assert_instr(nop)
48413)]
48414#[cfg_attr(
48415    not(target_arch = "arm"),
48416    stable(feature = "neon_intrinsics", since = "1.59.0")
48417)]
48418#[cfg_attr(
48419    target_arch = "arm",
48420    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48421)]
48422pub fn vreinterpret_p8_p64(a: poly64x1_t) -> poly8x8_t {
48423    unsafe { transmute(a) }
48424}
48425#[doc = "Vector reinterpret cast operation"]
48426#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_p64)"]
48427#[inline]
48428#[target_feature(enable = "neon,aes")]
48429#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
48430#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48431#[cfg_attr(
48432    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48433    assert_instr(nop)
48434)]
48435#[cfg_attr(
48436    not(target_arch = "arm"),
48437    stable(feature = "neon_intrinsics", since = "1.59.0")
48438)]
48439#[cfg_attr(
48440    target_arch = "arm",
48441    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48442)]
48443pub fn vreinterpret_p16_p64(a: poly64x1_t) -> poly16x4_t {
48444    unsafe { transmute(a) }
48445}
48446#[doc = "Vector reinterpret cast operation"]
48447#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_p64)"]
48448#[inline]
48449#[target_feature(enable = "neon,aes")]
48450#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
48451#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48452#[cfg_attr(
48453    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48454    assert_instr(nop)
48455)]
48456#[cfg_attr(
48457    not(target_arch = "arm"),
48458    stable(feature = "neon_intrinsics", since = "1.59.0")
48459)]
48460#[cfg_attr(
48461    target_arch = "arm",
48462    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48463)]
48464pub fn vreinterpretq_p128_p64(a: poly64x2_t) -> p128 {
48465    unsafe { transmute(a) }
48466}
48467#[doc = "Vector reinterpret cast operation"]
48468#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_p64)"]
48469#[inline]
48470#[target_feature(enable = "neon,aes")]
48471#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
48472#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48473#[cfg_attr(
48474    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48475    assert_instr(nop)
48476)]
48477#[cfg_attr(
48478    not(target_arch = "arm"),
48479    stable(feature = "neon_intrinsics", since = "1.59.0")
48480)]
48481#[cfg_attr(
48482    target_arch = "arm",
48483    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48484)]
48485pub fn vreinterpretq_s8_p64(a: poly64x2_t) -> int8x16_t {
48486    unsafe { transmute(a) }
48487}
48488#[doc = "Vector reinterpret cast operation"]
48489#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_p64)"]
48490#[inline]
48491#[target_feature(enable = "neon,aes")]
48492#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
48493#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48494#[cfg_attr(
48495    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48496    assert_instr(nop)
48497)]
48498#[cfg_attr(
48499    not(target_arch = "arm"),
48500    stable(feature = "neon_intrinsics", since = "1.59.0")
48501)]
48502#[cfg_attr(
48503    target_arch = "arm",
48504    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48505)]
48506pub fn vreinterpretq_s16_p64(a: poly64x2_t) -> int16x8_t {
48507    unsafe { transmute(a) }
48508}
48509#[doc = "Vector reinterpret cast operation"]
48510#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_p64)"]
48511#[inline]
48512#[target_feature(enable = "neon,aes")]
48513#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
48514#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48515#[cfg_attr(
48516    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48517    assert_instr(nop)
48518)]
48519#[cfg_attr(
48520    not(target_arch = "arm"),
48521    stable(feature = "neon_intrinsics", since = "1.59.0")
48522)]
48523#[cfg_attr(
48524    target_arch = "arm",
48525    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48526)]
48527pub fn vreinterpretq_s32_p64(a: poly64x2_t) -> int32x4_t {
48528    unsafe { transmute(a) }
48529}
48530#[doc = "Vector reinterpret cast operation"]
48531#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_p64)"]
48532#[inline]
48533#[target_feature(enable = "neon,aes")]
48534#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
48535#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48536#[cfg_attr(
48537    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48538    assert_instr(nop)
48539)]
48540#[cfg_attr(
48541    not(target_arch = "arm"),
48542    stable(feature = "neon_intrinsics", since = "1.59.0")
48543)]
48544#[cfg_attr(
48545    target_arch = "arm",
48546    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48547)]
48548pub fn vreinterpretq_u8_p64(a: poly64x2_t) -> uint8x16_t {
48549    unsafe { transmute(a) }
48550}
48551#[doc = "Vector reinterpret cast operation"]
48552#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_p64)"]
48553#[inline]
48554#[target_feature(enable = "neon,aes")]
48555#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
48556#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48557#[cfg_attr(
48558    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48559    assert_instr(nop)
48560)]
48561#[cfg_attr(
48562    not(target_arch = "arm"),
48563    stable(feature = "neon_intrinsics", since = "1.59.0")
48564)]
48565#[cfg_attr(
48566    target_arch = "arm",
48567    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48568)]
48569pub fn vreinterpretq_u16_p64(a: poly64x2_t) -> uint16x8_t {
48570    unsafe { transmute(a) }
48571}
48572#[doc = "Vector reinterpret cast operation"]
48573#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_p64)"]
48574#[inline]
48575#[target_feature(enable = "neon,aes")]
48576#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
48577#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48578#[cfg_attr(
48579    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48580    assert_instr(nop)
48581)]
48582#[cfg_attr(
48583    not(target_arch = "arm"),
48584    stable(feature = "neon_intrinsics", since = "1.59.0")
48585)]
48586#[cfg_attr(
48587    target_arch = "arm",
48588    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48589)]
48590pub fn vreinterpretq_u32_p64(a: poly64x2_t) -> uint32x4_t {
48591    unsafe { transmute(a) }
48592}
48593#[doc = "Vector reinterpret cast operation"]
48594#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_p64)"]
48595#[inline]
48596#[target_feature(enable = "neon,aes")]
48597#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
48598#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48599#[cfg_attr(
48600    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48601    assert_instr(nop)
48602)]
48603#[cfg_attr(
48604    not(target_arch = "arm"),
48605    stable(feature = "neon_intrinsics", since = "1.59.0")
48606)]
48607#[cfg_attr(
48608    target_arch = "arm",
48609    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48610)]
48611pub fn vreinterpretq_p8_p64(a: poly64x2_t) -> poly8x16_t {
48612    unsafe { transmute(a) }
48613}
48614#[doc = "Vector reinterpret cast operation"]
48615#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_p64)"]
48616#[inline]
48617#[target_feature(enable = "neon,aes")]
48618#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
48619#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48620#[cfg_attr(
48621    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48622    assert_instr(nop)
48623)]
48624#[cfg_attr(
48625    not(target_arch = "arm"),
48626    stable(feature = "neon_intrinsics", since = "1.59.0")
48627)]
48628#[cfg_attr(
48629    target_arch = "arm",
48630    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48631)]
48632pub fn vreinterpretq_p16_p64(a: poly64x2_t) -> poly16x8_t {
48633    unsafe { transmute(a) }
48634}
48635#[doc = "Reversing vector elements (swap endianness)"]
48636#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev16_p8)"]
48637#[inline]
48638#[target_feature(enable = "neon")]
48639#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48640#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev16.8"))]
48641#[cfg_attr(
48642    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48643    assert_instr(rev16)
48644)]
48645#[cfg_attr(
48646    not(target_arch = "arm"),
48647    stable(feature = "neon_intrinsics", since = "1.59.0")
48648)]
48649#[cfg_attr(
48650    target_arch = "arm",
48651    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48652)]
48653pub fn vrev16_p8(a: poly8x8_t) -> poly8x8_t {
48654    unsafe { simd_shuffle!(a, a, [1, 0, 3, 2, 5, 4, 7, 6]) }
48655}
48656#[doc = "Reversing vector elements (swap endianness)"]
48657#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev16_s8)"]
48658#[inline]
48659#[target_feature(enable = "neon")]
48660#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48661#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev16.8"))]
48662#[cfg_attr(
48663    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48664    assert_instr(rev16)
48665)]
48666#[cfg_attr(
48667    not(target_arch = "arm"),
48668    stable(feature = "neon_intrinsics", since = "1.59.0")
48669)]
48670#[cfg_attr(
48671    target_arch = "arm",
48672    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48673)]
48674pub fn vrev16_s8(a: int8x8_t) -> int8x8_t {
48675    unsafe { simd_shuffle!(a, a, [1, 0, 3, 2, 5, 4, 7, 6]) }
48676}
48677#[doc = "Reversing vector elements (swap endianness)"]
48678#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev16_u8)"]
48679#[inline]
48680#[target_feature(enable = "neon")]
48681#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48682#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev16.8"))]
48683#[cfg_attr(
48684    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48685    assert_instr(rev16)
48686)]
48687#[cfg_attr(
48688    not(target_arch = "arm"),
48689    stable(feature = "neon_intrinsics", since = "1.59.0")
48690)]
48691#[cfg_attr(
48692    target_arch = "arm",
48693    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48694)]
48695pub fn vrev16_u8(a: uint8x8_t) -> uint8x8_t {
48696    unsafe { simd_shuffle!(a, a, [1, 0, 3, 2, 5, 4, 7, 6]) }
48697}
48698#[doc = "Reversing vector elements (swap endianness)"]
48699#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev16q_p8)"]
48700#[inline]
48701#[target_feature(enable = "neon")]
48702#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48703#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev16.8"))]
48704#[cfg_attr(
48705    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48706    assert_instr(rev16)
48707)]
48708#[cfg_attr(
48709    not(target_arch = "arm"),
48710    stable(feature = "neon_intrinsics", since = "1.59.0")
48711)]
48712#[cfg_attr(
48713    target_arch = "arm",
48714    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48715)]
48716pub fn vrev16q_p8(a: poly8x16_t) -> poly8x16_t {
48717    unsafe { simd_shuffle!(a, a, [1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14]) }
48718}
48719#[doc = "Reversing vector elements (swap endianness)"]
48720#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev16q_s8)"]
48721#[inline]
48722#[target_feature(enable = "neon")]
48723#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48724#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev16.8"))]
48725#[cfg_attr(
48726    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48727    assert_instr(rev16)
48728)]
48729#[cfg_attr(
48730    not(target_arch = "arm"),
48731    stable(feature = "neon_intrinsics", since = "1.59.0")
48732)]
48733#[cfg_attr(
48734    target_arch = "arm",
48735    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48736)]
48737pub fn vrev16q_s8(a: int8x16_t) -> int8x16_t {
48738    unsafe { simd_shuffle!(a, a, [1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14]) }
48739}
48740#[doc = "Reversing vector elements (swap endianness)"]
48741#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev16q_u8)"]
48742#[inline]
48743#[target_feature(enable = "neon")]
48744#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48745#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev16.8"))]
48746#[cfg_attr(
48747    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48748    assert_instr(rev16)
48749)]
48750#[cfg_attr(
48751    not(target_arch = "arm"),
48752    stable(feature = "neon_intrinsics", since = "1.59.0")
48753)]
48754#[cfg_attr(
48755    target_arch = "arm",
48756    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48757)]
48758pub fn vrev16q_u8(a: uint8x16_t) -> uint8x16_t {
48759    unsafe { simd_shuffle!(a, a, [1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14]) }
48760}
48761#[doc = "Reversing vector elements (swap endianness)"]
48762#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev32_p16)"]
48763#[inline]
48764#[target_feature(enable = "neon")]
48765#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48766#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev32.16"))]
48767#[cfg_attr(
48768    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48769    assert_instr(rev32)
48770)]
48771#[cfg_attr(
48772    not(target_arch = "arm"),
48773    stable(feature = "neon_intrinsics", since = "1.59.0")
48774)]
48775#[cfg_attr(
48776    target_arch = "arm",
48777    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48778)]
48779pub fn vrev32_p16(a: poly16x4_t) -> poly16x4_t {
48780    unsafe { simd_shuffle!(a, a, [1, 0, 3, 2]) }
48781}
48782#[doc = "Reversing vector elements (swap endianness)"]
48783#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev32_p8)"]
48784#[inline]
48785#[target_feature(enable = "neon")]
48786#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48787#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev32.8"))]
48788#[cfg_attr(
48789    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48790    assert_instr(rev32)
48791)]
48792#[cfg_attr(
48793    not(target_arch = "arm"),
48794    stable(feature = "neon_intrinsics", since = "1.59.0")
48795)]
48796#[cfg_attr(
48797    target_arch = "arm",
48798    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48799)]
48800pub fn vrev32_p8(a: poly8x8_t) -> poly8x8_t {
48801    unsafe { simd_shuffle!(a, a, [3, 2, 1, 0, 7, 6, 5, 4]) }
48802}
48803#[doc = "Reversing vector elements (swap endianness)"]
48804#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev32_s16)"]
48805#[inline]
48806#[target_feature(enable = "neon")]
48807#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48808#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev32.16"))]
48809#[cfg_attr(
48810    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48811    assert_instr(rev32)
48812)]
48813#[cfg_attr(
48814    not(target_arch = "arm"),
48815    stable(feature = "neon_intrinsics", since = "1.59.0")
48816)]
48817#[cfg_attr(
48818    target_arch = "arm",
48819    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48820)]
48821pub fn vrev32_s16(a: int16x4_t) -> int16x4_t {
48822    unsafe { simd_shuffle!(a, a, [1, 0, 3, 2]) }
48823}
48824#[doc = "Reversing vector elements (swap endianness)"]
48825#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev32_s8)"]
48826#[inline]
48827#[target_feature(enable = "neon")]
48828#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48829#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev32.8"))]
48830#[cfg_attr(
48831    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48832    assert_instr(rev32)
48833)]
48834#[cfg_attr(
48835    not(target_arch = "arm"),
48836    stable(feature = "neon_intrinsics", since = "1.59.0")
48837)]
48838#[cfg_attr(
48839    target_arch = "arm",
48840    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48841)]
48842pub fn vrev32_s8(a: int8x8_t) -> int8x8_t {
48843    unsafe { simd_shuffle!(a, a, [3, 2, 1, 0, 7, 6, 5, 4]) }
48844}
48845#[doc = "Reversing vector elements (swap endianness)"]
48846#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev32_u16)"]
48847#[inline]
48848#[target_feature(enable = "neon")]
48849#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48850#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev32.16"))]
48851#[cfg_attr(
48852    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48853    assert_instr(rev32)
48854)]
48855#[cfg_attr(
48856    not(target_arch = "arm"),
48857    stable(feature = "neon_intrinsics", since = "1.59.0")
48858)]
48859#[cfg_attr(
48860    target_arch = "arm",
48861    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48862)]
48863pub fn vrev32_u16(a: uint16x4_t) -> uint16x4_t {
48864    unsafe { simd_shuffle!(a, a, [1, 0, 3, 2]) }
48865}
48866#[doc = "Reversing vector elements (swap endianness)"]
48867#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev32_u8)"]
48868#[inline]
48869#[target_feature(enable = "neon")]
48870#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48871#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev32.8"))]
48872#[cfg_attr(
48873    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48874    assert_instr(rev32)
48875)]
48876#[cfg_attr(
48877    not(target_arch = "arm"),
48878    stable(feature = "neon_intrinsics", since = "1.59.0")
48879)]
48880#[cfg_attr(
48881    target_arch = "arm",
48882    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48883)]
48884pub fn vrev32_u8(a: uint8x8_t) -> uint8x8_t {
48885    unsafe { simd_shuffle!(a, a, [3, 2, 1, 0, 7, 6, 5, 4]) }
48886}
48887#[doc = "Reversing vector elements (swap endianness)"]
48888#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev32q_p16)"]
48889#[inline]
48890#[target_feature(enable = "neon")]
48891#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48892#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev32.16"))]
48893#[cfg_attr(
48894    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48895    assert_instr(rev32)
48896)]
48897#[cfg_attr(
48898    not(target_arch = "arm"),
48899    stable(feature = "neon_intrinsics", since = "1.59.0")
48900)]
48901#[cfg_attr(
48902    target_arch = "arm",
48903    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48904)]
48905pub fn vrev32q_p16(a: poly16x8_t) -> poly16x8_t {
48906    unsafe { simd_shuffle!(a, a, [1, 0, 3, 2, 5, 4, 7, 6]) }
48907}
48908#[doc = "Reversing vector elements (swap endianness)"]
48909#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev32q_p8)"]
48910#[inline]
48911#[target_feature(enable = "neon")]
48912#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48913#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev32.8"))]
48914#[cfg_attr(
48915    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48916    assert_instr(rev32)
48917)]
48918#[cfg_attr(
48919    not(target_arch = "arm"),
48920    stable(feature = "neon_intrinsics", since = "1.59.0")
48921)]
48922#[cfg_attr(
48923    target_arch = "arm",
48924    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48925)]
48926pub fn vrev32q_p8(a: poly8x16_t) -> poly8x16_t {
48927    unsafe { simd_shuffle!(a, a, [3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12]) }
48928}
48929#[doc = "Reversing vector elements (swap endianness)"]
48930#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev32q_s16)"]
48931#[inline]
48932#[target_feature(enable = "neon")]
48933#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48934#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev32.16"))]
48935#[cfg_attr(
48936    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48937    assert_instr(rev32)
48938)]
48939#[cfg_attr(
48940    not(target_arch = "arm"),
48941    stable(feature = "neon_intrinsics", since = "1.59.0")
48942)]
48943#[cfg_attr(
48944    target_arch = "arm",
48945    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48946)]
48947pub fn vrev32q_s16(a: int16x8_t) -> int16x8_t {
48948    unsafe { simd_shuffle!(a, a, [1, 0, 3, 2, 5, 4, 7, 6]) }
48949}
48950#[doc = "Reversing vector elements (swap endianness)"]
48951#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev32q_s8)"]
48952#[inline]
48953#[target_feature(enable = "neon")]
48954#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48955#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev32.8"))]
48956#[cfg_attr(
48957    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48958    assert_instr(rev32)
48959)]
48960#[cfg_attr(
48961    not(target_arch = "arm"),
48962    stable(feature = "neon_intrinsics", since = "1.59.0")
48963)]
48964#[cfg_attr(
48965    target_arch = "arm",
48966    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48967)]
48968pub fn vrev32q_s8(a: int8x16_t) -> int8x16_t {
48969    unsafe { simd_shuffle!(a, a, [3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12]) }
48970}
48971#[doc = "Reversing vector elements (swap endianness)"]
48972#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev32q_u16)"]
48973#[inline]
48974#[target_feature(enable = "neon")]
48975#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48976#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev32.16"))]
48977#[cfg_attr(
48978    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48979    assert_instr(rev32)
48980)]
48981#[cfg_attr(
48982    not(target_arch = "arm"),
48983    stable(feature = "neon_intrinsics", since = "1.59.0")
48984)]
48985#[cfg_attr(
48986    target_arch = "arm",
48987    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48988)]
48989pub fn vrev32q_u16(a: uint16x8_t) -> uint16x8_t {
48990    unsafe { simd_shuffle!(a, a, [1, 0, 3, 2, 5, 4, 7, 6]) }
48991}
48992#[doc = "Reversing vector elements (swap endianness)"]
48993#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev32q_u8)"]
48994#[inline]
48995#[target_feature(enable = "neon")]
48996#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48997#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev32.8"))]
48998#[cfg_attr(
48999    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49000    assert_instr(rev32)
49001)]
49002#[cfg_attr(
49003    not(target_arch = "arm"),
49004    stable(feature = "neon_intrinsics", since = "1.59.0")
49005)]
49006#[cfg_attr(
49007    target_arch = "arm",
49008    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49009)]
49010pub fn vrev32q_u8(a: uint8x16_t) -> uint8x16_t {
49011    unsafe { simd_shuffle!(a, a, [3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12]) }
49012}
49013#[doc = "Reversing vector elements (swap endianness)"]
49014#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64_f32)"]
49015#[inline]
49016#[target_feature(enable = "neon")]
49017#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49018#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.32"))]
49019#[cfg_attr(
49020    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49021    assert_instr(rev64)
49022)]
49023#[cfg_attr(
49024    not(target_arch = "arm"),
49025    stable(feature = "neon_intrinsics", since = "1.59.0")
49026)]
49027#[cfg_attr(
49028    target_arch = "arm",
49029    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49030)]
49031pub fn vrev64_f32(a: float32x2_t) -> float32x2_t {
49032    unsafe { simd_shuffle!(a, a, [1, 0]) }
49033}
49034#[doc = "Reversing vector elements (swap endianness)"]
49035#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64_p16)"]
49036#[inline]
49037#[target_feature(enable = "neon")]
49038#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49039#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.16"))]
49040#[cfg_attr(
49041    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49042    assert_instr(rev64)
49043)]
49044#[cfg_attr(
49045    not(target_arch = "arm"),
49046    stable(feature = "neon_intrinsics", since = "1.59.0")
49047)]
49048#[cfg_attr(
49049    target_arch = "arm",
49050    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49051)]
49052pub fn vrev64_p16(a: poly16x4_t) -> poly16x4_t {
49053    unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) }
49054}
49055#[doc = "Reversing vector elements (swap endianness)"]
49056#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64_p8)"]
49057#[inline]
49058#[target_feature(enable = "neon")]
49059#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49060#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.8"))]
49061#[cfg_attr(
49062    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49063    assert_instr(rev64)
49064)]
49065#[cfg_attr(
49066    not(target_arch = "arm"),
49067    stable(feature = "neon_intrinsics", since = "1.59.0")
49068)]
49069#[cfg_attr(
49070    target_arch = "arm",
49071    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49072)]
49073pub fn vrev64_p8(a: poly8x8_t) -> poly8x8_t {
49074    unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) }
49075}
49076#[doc = "Reversing vector elements (swap endianness)"]
49077#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64_s16)"]
49078#[inline]
49079#[target_feature(enable = "neon")]
49080#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49081#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.16"))]
49082#[cfg_attr(
49083    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49084    assert_instr(rev64)
49085)]
49086#[cfg_attr(
49087    not(target_arch = "arm"),
49088    stable(feature = "neon_intrinsics", since = "1.59.0")
49089)]
49090#[cfg_attr(
49091    target_arch = "arm",
49092    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49093)]
49094pub fn vrev64_s16(a: int16x4_t) -> int16x4_t {
49095    unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) }
49096}
49097#[doc = "Reversing vector elements (swap endianness)"]
49098#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64_s32)"]
49099#[inline]
49100#[target_feature(enable = "neon")]
49101#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49102#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.32"))]
49103#[cfg_attr(
49104    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49105    assert_instr(rev64)
49106)]
49107#[cfg_attr(
49108    not(target_arch = "arm"),
49109    stable(feature = "neon_intrinsics", since = "1.59.0")
49110)]
49111#[cfg_attr(
49112    target_arch = "arm",
49113    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49114)]
49115pub fn vrev64_s32(a: int32x2_t) -> int32x2_t {
49116    unsafe { simd_shuffle!(a, a, [1, 0]) }
49117}
49118#[doc = "Reversing vector elements (swap endianness)"]
49119#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64_s8)"]
49120#[inline]
49121#[target_feature(enable = "neon")]
49122#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49123#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.8"))]
49124#[cfg_attr(
49125    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49126    assert_instr(rev64)
49127)]
49128#[cfg_attr(
49129    not(target_arch = "arm"),
49130    stable(feature = "neon_intrinsics", since = "1.59.0")
49131)]
49132#[cfg_attr(
49133    target_arch = "arm",
49134    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49135)]
49136pub fn vrev64_s8(a: int8x8_t) -> int8x8_t {
49137    unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) }
49138}
49139#[doc = "Reversing vector elements (swap endianness)"]
49140#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64_u16)"]
49141#[inline]
49142#[target_feature(enable = "neon")]
49143#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49144#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.16"))]
49145#[cfg_attr(
49146    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49147    assert_instr(rev64)
49148)]
49149#[cfg_attr(
49150    not(target_arch = "arm"),
49151    stable(feature = "neon_intrinsics", since = "1.59.0")
49152)]
49153#[cfg_attr(
49154    target_arch = "arm",
49155    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49156)]
49157pub fn vrev64_u16(a: uint16x4_t) -> uint16x4_t {
49158    unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) }
49159}
49160#[doc = "Reversing vector elements (swap endianness)"]
49161#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64_u32)"]
49162#[inline]
49163#[target_feature(enable = "neon")]
49164#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49165#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.32"))]
49166#[cfg_attr(
49167    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49168    assert_instr(rev64)
49169)]
49170#[cfg_attr(
49171    not(target_arch = "arm"),
49172    stable(feature = "neon_intrinsics", since = "1.59.0")
49173)]
49174#[cfg_attr(
49175    target_arch = "arm",
49176    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49177)]
49178pub fn vrev64_u32(a: uint32x2_t) -> uint32x2_t {
49179    unsafe { simd_shuffle!(a, a, [1, 0]) }
49180}
49181#[doc = "Reversing vector elements (swap endianness)"]
49182#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64_u8)"]
49183#[inline]
49184#[target_feature(enable = "neon")]
49185#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49186#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.8"))]
49187#[cfg_attr(
49188    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49189    assert_instr(rev64)
49190)]
49191#[cfg_attr(
49192    not(target_arch = "arm"),
49193    stable(feature = "neon_intrinsics", since = "1.59.0")
49194)]
49195#[cfg_attr(
49196    target_arch = "arm",
49197    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49198)]
49199pub fn vrev64_u8(a: uint8x8_t) -> uint8x8_t {
49200    unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) }
49201}
49202#[doc = "Reversing vector elements (swap endianness)"]
49203#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64q_f32)"]
49204#[inline]
49205#[target_feature(enable = "neon")]
49206#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49207#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.32"))]
49208#[cfg_attr(
49209    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49210    assert_instr(rev64)
49211)]
49212#[cfg_attr(
49213    not(target_arch = "arm"),
49214    stable(feature = "neon_intrinsics", since = "1.59.0")
49215)]
49216#[cfg_attr(
49217    target_arch = "arm",
49218    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49219)]
49220pub fn vrev64q_f32(a: float32x4_t) -> float32x4_t {
49221    unsafe { simd_shuffle!(a, a, [1, 0, 3, 2]) }
49222}
49223#[doc = "Reversing vector elements (swap endianness)"]
49224#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64q_p16)"]
49225#[inline]
49226#[target_feature(enable = "neon")]
49227#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49228#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.16"))]
49229#[cfg_attr(
49230    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49231    assert_instr(rev64)
49232)]
49233#[cfg_attr(
49234    not(target_arch = "arm"),
49235    stable(feature = "neon_intrinsics", since = "1.59.0")
49236)]
49237#[cfg_attr(
49238    target_arch = "arm",
49239    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49240)]
49241pub fn vrev64q_p16(a: poly16x8_t) -> poly16x8_t {
49242    unsafe { simd_shuffle!(a, a, [3, 2, 1, 0, 7, 6, 5, 4]) }
49243}
49244#[doc = "Reversing vector elements (swap endianness)"]
49245#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64q_p8)"]
49246#[inline]
49247#[target_feature(enable = "neon")]
49248#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49249#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.8"))]
49250#[cfg_attr(
49251    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49252    assert_instr(rev64)
49253)]
49254#[cfg_attr(
49255    not(target_arch = "arm"),
49256    stable(feature = "neon_intrinsics", since = "1.59.0")
49257)]
49258#[cfg_attr(
49259    target_arch = "arm",
49260    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49261)]
49262pub fn vrev64q_p8(a: poly8x16_t) -> poly8x16_t {
49263    unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8]) }
49264}
49265#[doc = "Reversing vector elements (swap endianness)"]
49266#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64q_s16)"]
49267#[inline]
49268#[target_feature(enable = "neon")]
49269#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49270#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.16"))]
49271#[cfg_attr(
49272    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49273    assert_instr(rev64)
49274)]
49275#[cfg_attr(
49276    not(target_arch = "arm"),
49277    stable(feature = "neon_intrinsics", since = "1.59.0")
49278)]
49279#[cfg_attr(
49280    target_arch = "arm",
49281    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49282)]
49283pub fn vrev64q_s16(a: int16x8_t) -> int16x8_t {
49284    unsafe { simd_shuffle!(a, a, [3, 2, 1, 0, 7, 6, 5, 4]) }
49285}
49286#[doc = "Reversing vector elements (swap endianness)"]
49287#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64q_s32)"]
49288#[inline]
49289#[target_feature(enable = "neon")]
49290#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49291#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.32"))]
49292#[cfg_attr(
49293    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49294    assert_instr(rev64)
49295)]
49296#[cfg_attr(
49297    not(target_arch = "arm"),
49298    stable(feature = "neon_intrinsics", since = "1.59.0")
49299)]
49300#[cfg_attr(
49301    target_arch = "arm",
49302    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49303)]
49304pub fn vrev64q_s32(a: int32x4_t) -> int32x4_t {
49305    unsafe { simd_shuffle!(a, a, [1, 0, 3, 2]) }
49306}
49307#[doc = "Reversing vector elements (swap endianness)"]
49308#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64q_s8)"]
49309#[inline]
49310#[target_feature(enable = "neon")]
49311#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49312#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.8"))]
49313#[cfg_attr(
49314    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49315    assert_instr(rev64)
49316)]
49317#[cfg_attr(
49318    not(target_arch = "arm"),
49319    stable(feature = "neon_intrinsics", since = "1.59.0")
49320)]
49321#[cfg_attr(
49322    target_arch = "arm",
49323    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49324)]
49325pub fn vrev64q_s8(a: int8x16_t) -> int8x16_t {
49326    unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8]) }
49327}
49328#[doc = "Reversing vector elements (swap endianness)"]
49329#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64q_u16)"]
49330#[inline]
49331#[target_feature(enable = "neon")]
49332#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49333#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.16"))]
49334#[cfg_attr(
49335    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49336    assert_instr(rev64)
49337)]
49338#[cfg_attr(
49339    not(target_arch = "arm"),
49340    stable(feature = "neon_intrinsics", since = "1.59.0")
49341)]
49342#[cfg_attr(
49343    target_arch = "arm",
49344    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49345)]
49346pub fn vrev64q_u16(a: uint16x8_t) -> uint16x8_t {
49347    unsafe { simd_shuffle!(a, a, [3, 2, 1, 0, 7, 6, 5, 4]) }
49348}
49349#[doc = "Reversing vector elements (swap endianness)"]
49350#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64q_u32)"]
49351#[inline]
49352#[target_feature(enable = "neon")]
49353#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49354#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.32"))]
49355#[cfg_attr(
49356    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49357    assert_instr(rev64)
49358)]
49359#[cfg_attr(
49360    not(target_arch = "arm"),
49361    stable(feature = "neon_intrinsics", since = "1.59.0")
49362)]
49363#[cfg_attr(
49364    target_arch = "arm",
49365    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49366)]
49367pub fn vrev64q_u32(a: uint32x4_t) -> uint32x4_t {
49368    unsafe { simd_shuffle!(a, a, [1, 0, 3, 2]) }
49369}
49370#[doc = "Reversing vector elements (swap endianness)"]
49371#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64q_u8)"]
49372#[inline]
49373#[target_feature(enable = "neon")]
49374#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49375#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.8"))]
49376#[cfg_attr(
49377    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49378    assert_instr(rev64)
49379)]
49380#[cfg_attr(
49381    not(target_arch = "arm"),
49382    stable(feature = "neon_intrinsics", since = "1.59.0")
49383)]
49384#[cfg_attr(
49385    target_arch = "arm",
49386    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49387)]
49388pub fn vrev64q_u8(a: uint8x16_t) -> uint8x16_t {
49389    unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8]) }
49390}
49391#[doc = "Reverse elements in 64-bit doublewords"]
49392#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64_f16)"]
49393#[inline]
49394#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49395#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrev64))]
49396#[cfg_attr(
49397    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49398    assert_instr(rev64)
49399)]
49400#[target_feature(enable = "neon,fp16")]
49401#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
49402#[cfg(not(target_arch = "arm64ec"))]
49403pub fn vrev64_f16(a: float16x4_t) -> float16x4_t {
49404    unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) }
49405}
49406#[doc = "Reverse elements in 64-bit doublewords"]
49407#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64q_f16)"]
49408#[inline]
49409#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49410#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrev64))]
49411#[cfg_attr(
49412    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49413    assert_instr(rev64)
49414)]
49415#[target_feature(enable = "neon,fp16")]
49416#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
49417#[cfg(not(target_arch = "arm64ec"))]
49418pub fn vrev64q_f16(a: float16x8_t) -> float16x8_t {
49419    unsafe { simd_shuffle!(a, a, [3, 2, 1, 0, 7, 6, 5, 4]) }
49420}
49421#[doc = "Rounding halving add"]
49422#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrhadd_s8)"]
49423#[inline]
49424#[target_feature(enable = "neon")]
49425#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49426#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrhadd.s8"))]
49427#[cfg_attr(
49428    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49429    assert_instr(srhadd)
49430)]
49431#[cfg_attr(
49432    not(target_arch = "arm"),
49433    stable(feature = "neon_intrinsics", since = "1.59.0")
49434)]
49435#[cfg_attr(
49436    target_arch = "arm",
49437    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49438)]
49439pub fn vrhadd_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
49440    unsafe extern "unadjusted" {
49441        #[cfg_attr(
49442            any(target_arch = "aarch64", target_arch = "arm64ec"),
49443            link_name = "llvm.aarch64.neon.srhadd.v8i8"
49444        )]
49445        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrhadds.v8i8")]
49446        fn _vrhadd_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t;
49447    }
49448    unsafe { _vrhadd_s8(a, b) }
49449}
49450#[doc = "Rounding halving add"]
49451#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrhaddq_s8)"]
49452#[inline]
49453#[target_feature(enable = "neon")]
49454#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49455#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrhadd.s8"))]
49456#[cfg_attr(
49457    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49458    assert_instr(srhadd)
49459)]
49460#[cfg_attr(
49461    not(target_arch = "arm"),
49462    stable(feature = "neon_intrinsics", since = "1.59.0")
49463)]
49464#[cfg_attr(
49465    target_arch = "arm",
49466    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49467)]
49468pub fn vrhaddq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
49469    unsafe extern "unadjusted" {
49470        #[cfg_attr(
49471            any(target_arch = "aarch64", target_arch = "arm64ec"),
49472            link_name = "llvm.aarch64.neon.srhadd.v16i8"
49473        )]
49474        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrhadds.v16i8")]
49475        fn _vrhaddq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t;
49476    }
49477    unsafe { _vrhaddq_s8(a, b) }
49478}
49479#[doc = "Rounding halving add"]
49480#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrhadd_s16)"]
49481#[inline]
49482#[target_feature(enable = "neon")]
49483#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49484#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrhadd.s16"))]
49485#[cfg_attr(
49486    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49487    assert_instr(srhadd)
49488)]
49489#[cfg_attr(
49490    not(target_arch = "arm"),
49491    stable(feature = "neon_intrinsics", since = "1.59.0")
49492)]
49493#[cfg_attr(
49494    target_arch = "arm",
49495    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49496)]
49497pub fn vrhadd_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
49498    unsafe extern "unadjusted" {
49499        #[cfg_attr(
49500            any(target_arch = "aarch64", target_arch = "arm64ec"),
49501            link_name = "llvm.aarch64.neon.srhadd.v4i16"
49502        )]
49503        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrhadds.v4i16")]
49504        fn _vrhadd_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t;
49505    }
49506    unsafe { _vrhadd_s16(a, b) }
49507}
49508#[doc = "Rounding halving add"]
49509#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrhaddq_s16)"]
49510#[inline]
49511#[target_feature(enable = "neon")]
49512#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49513#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrhadd.s16"))]
49514#[cfg_attr(
49515    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49516    assert_instr(srhadd)
49517)]
49518#[cfg_attr(
49519    not(target_arch = "arm"),
49520    stable(feature = "neon_intrinsics", since = "1.59.0")
49521)]
49522#[cfg_attr(
49523    target_arch = "arm",
49524    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49525)]
49526pub fn vrhaddq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
49527    unsafe extern "unadjusted" {
49528        #[cfg_attr(
49529            any(target_arch = "aarch64", target_arch = "arm64ec"),
49530            link_name = "llvm.aarch64.neon.srhadd.v8i16"
49531        )]
49532        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrhadds.v8i16")]
49533        fn _vrhaddq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t;
49534    }
49535    unsafe { _vrhaddq_s16(a, b) }
49536}
49537#[doc = "Rounding halving add"]
49538#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrhadd_s32)"]
49539#[inline]
49540#[target_feature(enable = "neon")]
49541#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49542#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrhadd.s32"))]
49543#[cfg_attr(
49544    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49545    assert_instr(srhadd)
49546)]
49547#[cfg_attr(
49548    not(target_arch = "arm"),
49549    stable(feature = "neon_intrinsics", since = "1.59.0")
49550)]
49551#[cfg_attr(
49552    target_arch = "arm",
49553    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49554)]
49555pub fn vrhadd_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
49556    unsafe extern "unadjusted" {
49557        #[cfg_attr(
49558            any(target_arch = "aarch64", target_arch = "arm64ec"),
49559            link_name = "llvm.aarch64.neon.srhadd.v2i32"
49560        )]
49561        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrhadds.v2i32")]
49562        fn _vrhadd_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t;
49563    }
49564    unsafe { _vrhadd_s32(a, b) }
49565}
49566#[doc = "Rounding halving add"]
49567#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrhaddq_s32)"]
49568#[inline]
49569#[target_feature(enable = "neon")]
49570#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49571#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrhadd.s32"))]
49572#[cfg_attr(
49573    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49574    assert_instr(srhadd)
49575)]
49576#[cfg_attr(
49577    not(target_arch = "arm"),
49578    stable(feature = "neon_intrinsics", since = "1.59.0")
49579)]
49580#[cfg_attr(
49581    target_arch = "arm",
49582    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49583)]
49584pub fn vrhaddq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
49585    unsafe extern "unadjusted" {
49586        #[cfg_attr(
49587            any(target_arch = "aarch64", target_arch = "arm64ec"),
49588            link_name = "llvm.aarch64.neon.srhadd.v4i32"
49589        )]
49590        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrhadds.v4i32")]
49591        fn _vrhaddq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t;
49592    }
49593    unsafe { _vrhaddq_s32(a, b) }
49594}
49595#[doc = "Rounding halving add"]
49596#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrhadd_u8)"]
49597#[inline]
49598#[target_feature(enable = "neon")]
49599#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49600#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrhadd.u8"))]
49601#[cfg_attr(
49602    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49603    assert_instr(urhadd)
49604)]
49605#[cfg_attr(
49606    not(target_arch = "arm"),
49607    stable(feature = "neon_intrinsics", since = "1.59.0")
49608)]
49609#[cfg_attr(
49610    target_arch = "arm",
49611    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49612)]
49613pub fn vrhadd_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
49614    unsafe extern "unadjusted" {
49615        #[cfg_attr(
49616            any(target_arch = "aarch64", target_arch = "arm64ec"),
49617            link_name = "llvm.aarch64.neon.urhadd.v8i8"
49618        )]
49619        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrhaddu.v8i8")]
49620        fn _vrhadd_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t;
49621    }
49622    unsafe { _vrhadd_u8(a, b) }
49623}
49624#[doc = "Rounding halving add"]
49625#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrhaddq_u8)"]
49626#[inline]
49627#[target_feature(enable = "neon")]
49628#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49629#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrhadd.u8"))]
49630#[cfg_attr(
49631    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49632    assert_instr(urhadd)
49633)]
49634#[cfg_attr(
49635    not(target_arch = "arm"),
49636    stable(feature = "neon_intrinsics", since = "1.59.0")
49637)]
49638#[cfg_attr(
49639    target_arch = "arm",
49640    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49641)]
49642pub fn vrhaddq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
49643    unsafe extern "unadjusted" {
49644        #[cfg_attr(
49645            any(target_arch = "aarch64", target_arch = "arm64ec"),
49646            link_name = "llvm.aarch64.neon.urhadd.v16i8"
49647        )]
49648        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrhaddu.v16i8")]
49649        fn _vrhaddq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t;
49650    }
49651    unsafe { _vrhaddq_u8(a, b) }
49652}
49653#[doc = "Rounding halving add"]
49654#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrhadd_u16)"]
49655#[inline]
49656#[target_feature(enable = "neon")]
49657#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49658#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrhadd.u16"))]
49659#[cfg_attr(
49660    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49661    assert_instr(urhadd)
49662)]
49663#[cfg_attr(
49664    not(target_arch = "arm"),
49665    stable(feature = "neon_intrinsics", since = "1.59.0")
49666)]
49667#[cfg_attr(
49668    target_arch = "arm",
49669    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49670)]
49671pub fn vrhadd_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
49672    unsafe extern "unadjusted" {
49673        #[cfg_attr(
49674            any(target_arch = "aarch64", target_arch = "arm64ec"),
49675            link_name = "llvm.aarch64.neon.urhadd.v4i16"
49676        )]
49677        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrhaddu.v4i16")]
49678        fn _vrhadd_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t;
49679    }
49680    unsafe { _vrhadd_u16(a, b) }
49681}
49682#[doc = "Rounding halving add"]
49683#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrhaddq_u16)"]
49684#[inline]
49685#[target_feature(enable = "neon")]
49686#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49687#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrhadd.u16"))]
49688#[cfg_attr(
49689    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49690    assert_instr(urhadd)
49691)]
49692#[cfg_attr(
49693    not(target_arch = "arm"),
49694    stable(feature = "neon_intrinsics", since = "1.59.0")
49695)]
49696#[cfg_attr(
49697    target_arch = "arm",
49698    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49699)]
49700pub fn vrhaddq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
49701    unsafe extern "unadjusted" {
49702        #[cfg_attr(
49703            any(target_arch = "aarch64", target_arch = "arm64ec"),
49704            link_name = "llvm.aarch64.neon.urhadd.v8i16"
49705        )]
49706        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrhaddu.v8i16")]
49707        fn _vrhaddq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t;
49708    }
49709    unsafe { _vrhaddq_u16(a, b) }
49710}
49711#[doc = "Rounding halving add"]
49712#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrhadd_u32)"]
49713#[inline]
49714#[target_feature(enable = "neon")]
49715#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49716#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrhadd.u32"))]
49717#[cfg_attr(
49718    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49719    assert_instr(urhadd)
49720)]
49721#[cfg_attr(
49722    not(target_arch = "arm"),
49723    stable(feature = "neon_intrinsics", since = "1.59.0")
49724)]
49725#[cfg_attr(
49726    target_arch = "arm",
49727    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49728)]
49729pub fn vrhadd_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
49730    unsafe extern "unadjusted" {
49731        #[cfg_attr(
49732            any(target_arch = "aarch64", target_arch = "arm64ec"),
49733            link_name = "llvm.aarch64.neon.urhadd.v2i32"
49734        )]
49735        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrhaddu.v2i32")]
49736        fn _vrhadd_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t;
49737    }
49738    unsafe { _vrhadd_u32(a, b) }
49739}
49740#[doc = "Rounding halving add"]
49741#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrhaddq_u32)"]
49742#[inline]
49743#[target_feature(enable = "neon")]
49744#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49745#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrhadd.u32"))]
49746#[cfg_attr(
49747    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49748    assert_instr(urhadd)
49749)]
49750#[cfg_attr(
49751    not(target_arch = "arm"),
49752    stable(feature = "neon_intrinsics", since = "1.59.0")
49753)]
49754#[cfg_attr(
49755    target_arch = "arm",
49756    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49757)]
49758pub fn vrhaddq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
49759    unsafe extern "unadjusted" {
49760        #[cfg_attr(
49761            any(target_arch = "aarch64", target_arch = "arm64ec"),
49762            link_name = "llvm.aarch64.neon.urhadd.v4i32"
49763        )]
49764        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrhaddu.v4i32")]
49765        fn _vrhaddq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t;
49766    }
49767    unsafe { _vrhaddq_u32(a, b) }
49768}
49769#[doc = "Floating-point round to integral, to nearest with ties to even"]
49770#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrndn_f16)"]
49771#[inline]
49772#[cfg_attr(target_arch = "arm", target_feature(enable = "fp-armv8,v8"))]
49773#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrintn))]
49774#[cfg_attr(
49775    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49776    assert_instr(frintn)
49777)]
49778#[target_feature(enable = "neon,fp16")]
49779#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
49780#[cfg(not(target_arch = "arm64ec"))]
49781pub fn vrndn_f16(a: float16x4_t) -> float16x4_t {
49782    unsafe extern "unadjusted" {
49783        #[cfg_attr(
49784            any(target_arch = "aarch64", target_arch = "arm64ec", target_arch = "arm"),
49785            link_name = "llvm.roundeven.v4f16"
49786        )]
49787        fn _vrndn_f16(a: float16x4_t) -> float16x4_t;
49788    }
49789    unsafe { _vrndn_f16(a) }
49790}
49791#[doc = "Floating-point round to integral, to nearest with ties to even"]
49792#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrndnq_f16)"]
49793#[inline]
49794#[cfg_attr(target_arch = "arm", target_feature(enable = "fp-armv8,v8"))]
49795#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrintn))]
49796#[cfg_attr(
49797    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49798    assert_instr(frintn)
49799)]
49800#[target_feature(enable = "neon,fp16")]
49801#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
49802#[cfg(not(target_arch = "arm64ec"))]
49803pub fn vrndnq_f16(a: float16x8_t) -> float16x8_t {
49804    unsafe extern "unadjusted" {
49805        #[cfg_attr(
49806            any(target_arch = "aarch64", target_arch = "arm64ec", target_arch = "arm"),
49807            link_name = "llvm.roundeven.v8f16"
49808        )]
49809        fn _vrndnq_f16(a: float16x8_t) -> float16x8_t;
49810    }
49811    unsafe { _vrndnq_f16(a) }
49812}
49813#[doc = "Floating-point round to integral, to nearest with ties to even"]
49814#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrndn_f32)"]
49815#[inline]
49816#[target_feature(enable = "neon")]
49817#[cfg_attr(target_arch = "arm", target_feature(enable = "fp-armv8,v8"))]
49818#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrintn))]
49819#[cfg_attr(
49820    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49821    assert_instr(frintn)
49822)]
49823#[cfg_attr(
49824    not(target_arch = "arm"),
49825    stable(feature = "neon_intrinsics", since = "1.59.0")
49826)]
49827#[cfg_attr(
49828    target_arch = "arm",
49829    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49830)]
49831pub fn vrndn_f32(a: float32x2_t) -> float32x2_t {
49832    unsafe extern "unadjusted" {
49833        #[cfg_attr(
49834            any(target_arch = "aarch64", target_arch = "arm64ec", target_arch = "arm"),
49835            link_name = "llvm.roundeven.v2f32"
49836        )]
49837        fn _vrndn_f32(a: float32x2_t) -> float32x2_t;
49838    }
49839    unsafe { _vrndn_f32(a) }
49840}
49841#[doc = "Floating-point round to integral, to nearest with ties to even"]
49842#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrndnq_f32)"]
49843#[inline]
49844#[target_feature(enable = "neon")]
49845#[cfg_attr(target_arch = "arm", target_feature(enable = "fp-armv8,v8"))]
49846#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrintn))]
49847#[cfg_attr(
49848    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49849    assert_instr(frintn)
49850)]
49851#[cfg_attr(
49852    not(target_arch = "arm"),
49853    stable(feature = "neon_intrinsics", since = "1.59.0")
49854)]
49855#[cfg_attr(
49856    target_arch = "arm",
49857    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49858)]
49859pub fn vrndnq_f32(a: float32x4_t) -> float32x4_t {
49860    unsafe extern "unadjusted" {
49861        #[cfg_attr(
49862            any(target_arch = "aarch64", target_arch = "arm64ec", target_arch = "arm"),
49863            link_name = "llvm.roundeven.v4f32"
49864        )]
49865        fn _vrndnq_f32(a: float32x4_t) -> float32x4_t;
49866    }
49867    unsafe { _vrndnq_f32(a) }
49868}
49869#[doc = "Signed rounding shift left"]
49870#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshl_s8)"]
49871#[inline]
49872#[target_feature(enable = "neon")]
49873#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49874#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
49875#[cfg_attr(
49876    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49877    assert_instr(srshl)
49878)]
49879#[cfg_attr(
49880    not(target_arch = "arm"),
49881    stable(feature = "neon_intrinsics", since = "1.59.0")
49882)]
49883#[cfg_attr(
49884    target_arch = "arm",
49885    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49886)]
49887pub fn vrshl_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
49888    unsafe extern "unadjusted" {
49889        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshifts.v8i8")]
49890        #[cfg_attr(
49891            any(target_arch = "aarch64", target_arch = "arm64ec"),
49892            link_name = "llvm.aarch64.neon.srshl.v8i8"
49893        )]
49894        fn _vrshl_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t;
49895    }
49896    unsafe { _vrshl_s8(a, b) }
49897}
49898#[doc = "Signed rounding shift left"]
49899#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshlq_s8)"]
49900#[inline]
49901#[target_feature(enable = "neon")]
49902#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49903#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
49904#[cfg_attr(
49905    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49906    assert_instr(srshl)
49907)]
49908#[cfg_attr(
49909    not(target_arch = "arm"),
49910    stable(feature = "neon_intrinsics", since = "1.59.0")
49911)]
49912#[cfg_attr(
49913    target_arch = "arm",
49914    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49915)]
49916pub fn vrshlq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
49917    unsafe extern "unadjusted" {
49918        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshifts.v16i8")]
49919        #[cfg_attr(
49920            any(target_arch = "aarch64", target_arch = "arm64ec"),
49921            link_name = "llvm.aarch64.neon.srshl.v16i8"
49922        )]
49923        fn _vrshlq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t;
49924    }
49925    unsafe { _vrshlq_s8(a, b) }
49926}
49927#[doc = "Signed rounding shift left"]
49928#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshl_s16)"]
49929#[inline]
49930#[target_feature(enable = "neon")]
49931#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49932#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
49933#[cfg_attr(
49934    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49935    assert_instr(srshl)
49936)]
49937#[cfg_attr(
49938    not(target_arch = "arm"),
49939    stable(feature = "neon_intrinsics", since = "1.59.0")
49940)]
49941#[cfg_attr(
49942    target_arch = "arm",
49943    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49944)]
49945pub fn vrshl_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
49946    unsafe extern "unadjusted" {
49947        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshifts.v4i16")]
49948        #[cfg_attr(
49949            any(target_arch = "aarch64", target_arch = "arm64ec"),
49950            link_name = "llvm.aarch64.neon.srshl.v4i16"
49951        )]
49952        fn _vrshl_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t;
49953    }
49954    unsafe { _vrshl_s16(a, b) }
49955}
49956#[doc = "Signed rounding shift left"]
49957#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshlq_s16)"]
49958#[inline]
49959#[target_feature(enable = "neon")]
49960#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49961#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
49962#[cfg_attr(
49963    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49964    assert_instr(srshl)
49965)]
49966#[cfg_attr(
49967    not(target_arch = "arm"),
49968    stable(feature = "neon_intrinsics", since = "1.59.0")
49969)]
49970#[cfg_attr(
49971    target_arch = "arm",
49972    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49973)]
49974pub fn vrshlq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
49975    unsafe extern "unadjusted" {
49976        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshifts.v8i16")]
49977        #[cfg_attr(
49978            any(target_arch = "aarch64", target_arch = "arm64ec"),
49979            link_name = "llvm.aarch64.neon.srshl.v8i16"
49980        )]
49981        fn _vrshlq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t;
49982    }
49983    unsafe { _vrshlq_s16(a, b) }
49984}
49985#[doc = "Signed rounding shift left"]
49986#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshl_s32)"]
49987#[inline]
49988#[target_feature(enable = "neon")]
49989#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49990#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
49991#[cfg_attr(
49992    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49993    assert_instr(srshl)
49994)]
49995#[cfg_attr(
49996    not(target_arch = "arm"),
49997    stable(feature = "neon_intrinsics", since = "1.59.0")
49998)]
49999#[cfg_attr(
50000    target_arch = "arm",
50001    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50002)]
50003pub fn vrshl_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
50004    unsafe extern "unadjusted" {
50005        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshifts.v2i32")]
50006        #[cfg_attr(
50007            any(target_arch = "aarch64", target_arch = "arm64ec"),
50008            link_name = "llvm.aarch64.neon.srshl.v2i32"
50009        )]
50010        fn _vrshl_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t;
50011    }
50012    unsafe { _vrshl_s32(a, b) }
50013}
50014#[doc = "Signed rounding shift left"]
50015#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshlq_s32)"]
50016#[inline]
50017#[target_feature(enable = "neon")]
50018#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50019#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
50020#[cfg_attr(
50021    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50022    assert_instr(srshl)
50023)]
50024#[cfg_attr(
50025    not(target_arch = "arm"),
50026    stable(feature = "neon_intrinsics", since = "1.59.0")
50027)]
50028#[cfg_attr(
50029    target_arch = "arm",
50030    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50031)]
50032pub fn vrshlq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
50033    unsafe extern "unadjusted" {
50034        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshifts.v4i32")]
50035        #[cfg_attr(
50036            any(target_arch = "aarch64", target_arch = "arm64ec"),
50037            link_name = "llvm.aarch64.neon.srshl.v4i32"
50038        )]
50039        fn _vrshlq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t;
50040    }
50041    unsafe { _vrshlq_s32(a, b) }
50042}
50043#[doc = "Signed rounding shift left"]
50044#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshl_s64)"]
50045#[inline]
50046#[target_feature(enable = "neon")]
50047#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50048#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
50049#[cfg_attr(
50050    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50051    assert_instr(srshl)
50052)]
50053#[cfg_attr(
50054    not(target_arch = "arm"),
50055    stable(feature = "neon_intrinsics", since = "1.59.0")
50056)]
50057#[cfg_attr(
50058    target_arch = "arm",
50059    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50060)]
50061pub fn vrshl_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t {
50062    unsafe extern "unadjusted" {
50063        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshifts.v1i64")]
50064        #[cfg_attr(
50065            any(target_arch = "aarch64", target_arch = "arm64ec"),
50066            link_name = "llvm.aarch64.neon.srshl.v1i64"
50067        )]
50068        fn _vrshl_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t;
50069    }
50070    unsafe { _vrshl_s64(a, b) }
50071}
50072#[doc = "Signed rounding shift left"]
50073#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshlq_s64)"]
50074#[inline]
50075#[target_feature(enable = "neon")]
50076#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50077#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
50078#[cfg_attr(
50079    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50080    assert_instr(srshl)
50081)]
50082#[cfg_attr(
50083    not(target_arch = "arm"),
50084    stable(feature = "neon_intrinsics", since = "1.59.0")
50085)]
50086#[cfg_attr(
50087    target_arch = "arm",
50088    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50089)]
50090pub fn vrshlq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t {
50091    unsafe extern "unadjusted" {
50092        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshifts.v2i64")]
50093        #[cfg_attr(
50094            any(target_arch = "aarch64", target_arch = "arm64ec"),
50095            link_name = "llvm.aarch64.neon.srshl.v2i64"
50096        )]
50097        fn _vrshlq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t;
50098    }
50099    unsafe { _vrshlq_s64(a, b) }
50100}
50101#[doc = "Unsigned rounding shift left"]
50102#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshl_u8)"]
50103#[inline]
50104#[target_feature(enable = "neon")]
50105#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50106#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
50107#[cfg_attr(
50108    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50109    assert_instr(urshl)
50110)]
50111#[cfg_attr(
50112    not(target_arch = "arm"),
50113    stable(feature = "neon_intrinsics", since = "1.59.0")
50114)]
50115#[cfg_attr(
50116    target_arch = "arm",
50117    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50118)]
50119pub fn vrshl_u8(a: uint8x8_t, b: int8x8_t) -> uint8x8_t {
50120    unsafe extern "unadjusted" {
50121        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftu.v8i8")]
50122        #[cfg_attr(
50123            any(target_arch = "aarch64", target_arch = "arm64ec"),
50124            link_name = "llvm.aarch64.neon.urshl.v8i8"
50125        )]
50126        fn _vrshl_u8(a: uint8x8_t, b: int8x8_t) -> uint8x8_t;
50127    }
50128    unsafe { _vrshl_u8(a, b) }
50129}
50130#[doc = "Unsigned rounding shift left"]
50131#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshlq_u8)"]
50132#[inline]
50133#[target_feature(enable = "neon")]
50134#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50135#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
50136#[cfg_attr(
50137    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50138    assert_instr(urshl)
50139)]
50140#[cfg_attr(
50141    not(target_arch = "arm"),
50142    stable(feature = "neon_intrinsics", since = "1.59.0")
50143)]
50144#[cfg_attr(
50145    target_arch = "arm",
50146    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50147)]
50148pub fn vrshlq_u8(a: uint8x16_t, b: int8x16_t) -> uint8x16_t {
50149    unsafe extern "unadjusted" {
50150        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftu.v16i8")]
50151        #[cfg_attr(
50152            any(target_arch = "aarch64", target_arch = "arm64ec"),
50153            link_name = "llvm.aarch64.neon.urshl.v16i8"
50154        )]
50155        fn _vrshlq_u8(a: uint8x16_t, b: int8x16_t) -> uint8x16_t;
50156    }
50157    unsafe { _vrshlq_u8(a, b) }
50158}
50159#[doc = "Unsigned rounding shift left"]
50160#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshl_u16)"]
50161#[inline]
50162#[target_feature(enable = "neon")]
50163#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50164#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
50165#[cfg_attr(
50166    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50167    assert_instr(urshl)
50168)]
50169#[cfg_attr(
50170    not(target_arch = "arm"),
50171    stable(feature = "neon_intrinsics", since = "1.59.0")
50172)]
50173#[cfg_attr(
50174    target_arch = "arm",
50175    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50176)]
50177pub fn vrshl_u16(a: uint16x4_t, b: int16x4_t) -> uint16x4_t {
50178    unsafe extern "unadjusted" {
50179        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftu.v4i16")]
50180        #[cfg_attr(
50181            any(target_arch = "aarch64", target_arch = "arm64ec"),
50182            link_name = "llvm.aarch64.neon.urshl.v4i16"
50183        )]
50184        fn _vrshl_u16(a: uint16x4_t, b: int16x4_t) -> uint16x4_t;
50185    }
50186    unsafe { _vrshl_u16(a, b) }
50187}
50188#[doc = "Unsigned rounding shift left"]
50189#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshlq_u16)"]
50190#[inline]
50191#[target_feature(enable = "neon")]
50192#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50193#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
50194#[cfg_attr(
50195    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50196    assert_instr(urshl)
50197)]
50198#[cfg_attr(
50199    not(target_arch = "arm"),
50200    stable(feature = "neon_intrinsics", since = "1.59.0")
50201)]
50202#[cfg_attr(
50203    target_arch = "arm",
50204    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50205)]
50206pub fn vrshlq_u16(a: uint16x8_t, b: int16x8_t) -> uint16x8_t {
50207    unsafe extern "unadjusted" {
50208        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftu.v8i16")]
50209        #[cfg_attr(
50210            any(target_arch = "aarch64", target_arch = "arm64ec"),
50211            link_name = "llvm.aarch64.neon.urshl.v8i16"
50212        )]
50213        fn _vrshlq_u16(a: uint16x8_t, b: int16x8_t) -> uint16x8_t;
50214    }
50215    unsafe { _vrshlq_u16(a, b) }
50216}
50217#[doc = "Unsigned rounding shift left"]
50218#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshl_u32)"]
50219#[inline]
50220#[target_feature(enable = "neon")]
50221#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50222#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
50223#[cfg_attr(
50224    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50225    assert_instr(urshl)
50226)]
50227#[cfg_attr(
50228    not(target_arch = "arm"),
50229    stable(feature = "neon_intrinsics", since = "1.59.0")
50230)]
50231#[cfg_attr(
50232    target_arch = "arm",
50233    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50234)]
50235pub fn vrshl_u32(a: uint32x2_t, b: int32x2_t) -> uint32x2_t {
50236    unsafe extern "unadjusted" {
50237        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftu.v2i32")]
50238        #[cfg_attr(
50239            any(target_arch = "aarch64", target_arch = "arm64ec"),
50240            link_name = "llvm.aarch64.neon.urshl.v2i32"
50241        )]
50242        fn _vrshl_u32(a: uint32x2_t, b: int32x2_t) -> uint32x2_t;
50243    }
50244    unsafe { _vrshl_u32(a, b) }
50245}
50246#[doc = "Unsigned rounding shift left"]
50247#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshlq_u32)"]
50248#[inline]
50249#[target_feature(enable = "neon")]
50250#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50251#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
50252#[cfg_attr(
50253    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50254    assert_instr(urshl)
50255)]
50256#[cfg_attr(
50257    not(target_arch = "arm"),
50258    stable(feature = "neon_intrinsics", since = "1.59.0")
50259)]
50260#[cfg_attr(
50261    target_arch = "arm",
50262    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50263)]
50264pub fn vrshlq_u32(a: uint32x4_t, b: int32x4_t) -> uint32x4_t {
50265    unsafe extern "unadjusted" {
50266        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftu.v4i32")]
50267        #[cfg_attr(
50268            any(target_arch = "aarch64", target_arch = "arm64ec"),
50269            link_name = "llvm.aarch64.neon.urshl.v4i32"
50270        )]
50271        fn _vrshlq_u32(a: uint32x4_t, b: int32x4_t) -> uint32x4_t;
50272    }
50273    unsafe { _vrshlq_u32(a, b) }
50274}
50275#[doc = "Unsigned rounding shift left"]
50276#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshl_u64)"]
50277#[inline]
50278#[target_feature(enable = "neon")]
50279#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50280#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
50281#[cfg_attr(
50282    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50283    assert_instr(urshl)
50284)]
50285#[cfg_attr(
50286    not(target_arch = "arm"),
50287    stable(feature = "neon_intrinsics", since = "1.59.0")
50288)]
50289#[cfg_attr(
50290    target_arch = "arm",
50291    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50292)]
50293pub fn vrshl_u64(a: uint64x1_t, b: int64x1_t) -> uint64x1_t {
50294    unsafe extern "unadjusted" {
50295        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftu.v1i64")]
50296        #[cfg_attr(
50297            any(target_arch = "aarch64", target_arch = "arm64ec"),
50298            link_name = "llvm.aarch64.neon.urshl.v1i64"
50299        )]
50300        fn _vrshl_u64(a: uint64x1_t, b: int64x1_t) -> uint64x1_t;
50301    }
50302    unsafe { _vrshl_u64(a, b) }
50303}
50304#[doc = "Unsigned rounding shift left"]
50305#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshlq_u64)"]
50306#[inline]
50307#[target_feature(enable = "neon")]
50308#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50309#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
50310#[cfg_attr(
50311    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50312    assert_instr(urshl)
50313)]
50314#[cfg_attr(
50315    not(target_arch = "arm"),
50316    stable(feature = "neon_intrinsics", since = "1.59.0")
50317)]
50318#[cfg_attr(
50319    target_arch = "arm",
50320    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50321)]
50322pub fn vrshlq_u64(a: uint64x2_t, b: int64x2_t) -> uint64x2_t {
50323    unsafe extern "unadjusted" {
50324        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftu.v2i64")]
50325        #[cfg_attr(
50326            any(target_arch = "aarch64", target_arch = "arm64ec"),
50327            link_name = "llvm.aarch64.neon.urshl.v2i64"
50328        )]
50329        fn _vrshlq_u64(a: uint64x2_t, b: int64x2_t) -> uint64x2_t;
50330    }
50331    unsafe { _vrshlq_u64(a, b) }
50332}
50333#[doc = "Signed rounding shift right"]
50334#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshr_n_s8)"]
50335#[inline]
50336#[target_feature(enable = "neon")]
50337#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50338#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
50339#[cfg_attr(
50340    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50341    assert_instr(srshr, N = 2)
50342)]
50343#[rustc_legacy_const_generics(1)]
50344#[cfg_attr(
50345    not(target_arch = "arm"),
50346    stable(feature = "neon_intrinsics", since = "1.59.0")
50347)]
50348#[cfg_attr(
50349    target_arch = "arm",
50350    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50351)]
50352pub fn vrshr_n_s8<const N: i32>(a: int8x8_t) -> int8x8_t {
50353    static_assert!(N >= 1 && N <= 8);
50354    vrshl_s8(a, vdup_n_s8(-N as _))
50355}
50356#[doc = "Signed rounding shift right"]
50357#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrq_n_s8)"]
50358#[inline]
50359#[target_feature(enable = "neon")]
50360#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50361#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
50362#[cfg_attr(
50363    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50364    assert_instr(srshr, N = 2)
50365)]
50366#[rustc_legacy_const_generics(1)]
50367#[cfg_attr(
50368    not(target_arch = "arm"),
50369    stable(feature = "neon_intrinsics", since = "1.59.0")
50370)]
50371#[cfg_attr(
50372    target_arch = "arm",
50373    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50374)]
50375pub fn vrshrq_n_s8<const N: i32>(a: int8x16_t) -> int8x16_t {
50376    static_assert!(N >= 1 && N <= 8);
50377    vrshlq_s8(a, vdupq_n_s8(-N as _))
50378}
50379#[doc = "Signed rounding shift right"]
50380#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshr_n_s16)"]
50381#[inline]
50382#[target_feature(enable = "neon")]
50383#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50384#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
50385#[cfg_attr(
50386    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50387    assert_instr(srshr, N = 2)
50388)]
50389#[rustc_legacy_const_generics(1)]
50390#[cfg_attr(
50391    not(target_arch = "arm"),
50392    stable(feature = "neon_intrinsics", since = "1.59.0")
50393)]
50394#[cfg_attr(
50395    target_arch = "arm",
50396    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50397)]
50398pub fn vrshr_n_s16<const N: i32>(a: int16x4_t) -> int16x4_t {
50399    static_assert!(N >= 1 && N <= 16);
50400    vrshl_s16(a, vdup_n_s16(-N as _))
50401}
50402#[doc = "Signed rounding shift right"]
50403#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrq_n_s16)"]
50404#[inline]
50405#[target_feature(enable = "neon")]
50406#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50407#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
50408#[cfg_attr(
50409    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50410    assert_instr(srshr, N = 2)
50411)]
50412#[rustc_legacy_const_generics(1)]
50413#[cfg_attr(
50414    not(target_arch = "arm"),
50415    stable(feature = "neon_intrinsics", since = "1.59.0")
50416)]
50417#[cfg_attr(
50418    target_arch = "arm",
50419    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50420)]
50421pub fn vrshrq_n_s16<const N: i32>(a: int16x8_t) -> int16x8_t {
50422    static_assert!(N >= 1 && N <= 16);
50423    vrshlq_s16(a, vdupq_n_s16(-N as _))
50424}
50425#[doc = "Signed rounding shift right"]
50426#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshr_n_s32)"]
50427#[inline]
50428#[target_feature(enable = "neon")]
50429#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50430#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
50431#[cfg_attr(
50432    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50433    assert_instr(srshr, N = 2)
50434)]
50435#[rustc_legacy_const_generics(1)]
50436#[cfg_attr(
50437    not(target_arch = "arm"),
50438    stable(feature = "neon_intrinsics", since = "1.59.0")
50439)]
50440#[cfg_attr(
50441    target_arch = "arm",
50442    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50443)]
50444pub fn vrshr_n_s32<const N: i32>(a: int32x2_t) -> int32x2_t {
50445    static_assert!(N >= 1 && N <= 32);
50446    vrshl_s32(a, vdup_n_s32(-N as _))
50447}
50448#[doc = "Signed rounding shift right"]
50449#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrq_n_s32)"]
50450#[inline]
50451#[target_feature(enable = "neon")]
50452#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50453#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
50454#[cfg_attr(
50455    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50456    assert_instr(srshr, N = 2)
50457)]
50458#[rustc_legacy_const_generics(1)]
50459#[cfg_attr(
50460    not(target_arch = "arm"),
50461    stable(feature = "neon_intrinsics", since = "1.59.0")
50462)]
50463#[cfg_attr(
50464    target_arch = "arm",
50465    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50466)]
50467pub fn vrshrq_n_s32<const N: i32>(a: int32x4_t) -> int32x4_t {
50468    static_assert!(N >= 1 && N <= 32);
50469    vrshlq_s32(a, vdupq_n_s32(-N as _))
50470}
50471#[doc = "Signed rounding shift right"]
50472#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshr_n_s64)"]
50473#[inline]
50474#[target_feature(enable = "neon")]
50475#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50476#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
50477#[cfg_attr(
50478    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50479    assert_instr(srshr, N = 2)
50480)]
50481#[rustc_legacy_const_generics(1)]
50482#[cfg_attr(
50483    not(target_arch = "arm"),
50484    stable(feature = "neon_intrinsics", since = "1.59.0")
50485)]
50486#[cfg_attr(
50487    target_arch = "arm",
50488    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50489)]
50490pub fn vrshr_n_s64<const N: i32>(a: int64x1_t) -> int64x1_t {
50491    static_assert!(N >= 1 && N <= 64);
50492    vrshl_s64(a, vdup_n_s64(-N as _))
50493}
50494#[doc = "Signed rounding shift right"]
50495#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrq_n_s64)"]
50496#[inline]
50497#[target_feature(enable = "neon")]
50498#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50499#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
50500#[cfg_attr(
50501    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50502    assert_instr(srshr, N = 2)
50503)]
50504#[rustc_legacy_const_generics(1)]
50505#[cfg_attr(
50506    not(target_arch = "arm"),
50507    stable(feature = "neon_intrinsics", since = "1.59.0")
50508)]
50509#[cfg_attr(
50510    target_arch = "arm",
50511    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50512)]
50513pub fn vrshrq_n_s64<const N: i32>(a: int64x2_t) -> int64x2_t {
50514    static_assert!(N >= 1 && N <= 64);
50515    vrshlq_s64(a, vdupq_n_s64(-N as _))
50516}
50517#[doc = "Unsigned rounding shift right"]
50518#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshr_n_u8)"]
50519#[inline]
50520#[target_feature(enable = "neon")]
50521#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50522#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
50523#[cfg_attr(
50524    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50525    assert_instr(urshr, N = 2)
50526)]
50527#[rustc_legacy_const_generics(1)]
50528#[cfg_attr(
50529    not(target_arch = "arm"),
50530    stable(feature = "neon_intrinsics", since = "1.59.0")
50531)]
50532#[cfg_attr(
50533    target_arch = "arm",
50534    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50535)]
50536pub fn vrshr_n_u8<const N: i32>(a: uint8x8_t) -> uint8x8_t {
50537    static_assert!(N >= 1 && N <= 8);
50538    vrshl_u8(a, vdup_n_s8(-N as _))
50539}
50540#[doc = "Unsigned rounding shift right"]
50541#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrq_n_u8)"]
50542#[inline]
50543#[target_feature(enable = "neon")]
50544#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50545#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
50546#[cfg_attr(
50547    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50548    assert_instr(urshr, N = 2)
50549)]
50550#[rustc_legacy_const_generics(1)]
50551#[cfg_attr(
50552    not(target_arch = "arm"),
50553    stable(feature = "neon_intrinsics", since = "1.59.0")
50554)]
50555#[cfg_attr(
50556    target_arch = "arm",
50557    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50558)]
50559pub fn vrshrq_n_u8<const N: i32>(a: uint8x16_t) -> uint8x16_t {
50560    static_assert!(N >= 1 && N <= 8);
50561    vrshlq_u8(a, vdupq_n_s8(-N as _))
50562}
50563#[doc = "Unsigned rounding shift right"]
50564#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshr_n_u16)"]
50565#[inline]
50566#[target_feature(enable = "neon")]
50567#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50568#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
50569#[cfg_attr(
50570    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50571    assert_instr(urshr, N = 2)
50572)]
50573#[rustc_legacy_const_generics(1)]
50574#[cfg_attr(
50575    not(target_arch = "arm"),
50576    stable(feature = "neon_intrinsics", since = "1.59.0")
50577)]
50578#[cfg_attr(
50579    target_arch = "arm",
50580    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50581)]
50582pub fn vrshr_n_u16<const N: i32>(a: uint16x4_t) -> uint16x4_t {
50583    static_assert!(N >= 1 && N <= 16);
50584    vrshl_u16(a, vdup_n_s16(-N as _))
50585}
50586#[doc = "Unsigned rounding shift right"]
50587#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrq_n_u16)"]
50588#[inline]
50589#[target_feature(enable = "neon")]
50590#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50591#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
50592#[cfg_attr(
50593    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50594    assert_instr(urshr, N = 2)
50595)]
50596#[rustc_legacy_const_generics(1)]
50597#[cfg_attr(
50598    not(target_arch = "arm"),
50599    stable(feature = "neon_intrinsics", since = "1.59.0")
50600)]
50601#[cfg_attr(
50602    target_arch = "arm",
50603    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50604)]
50605pub fn vrshrq_n_u16<const N: i32>(a: uint16x8_t) -> uint16x8_t {
50606    static_assert!(N >= 1 && N <= 16);
50607    vrshlq_u16(a, vdupq_n_s16(-N as _))
50608}
50609#[doc = "Unsigned rounding shift right"]
50610#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshr_n_u32)"]
50611#[inline]
50612#[target_feature(enable = "neon")]
50613#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50614#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
50615#[cfg_attr(
50616    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50617    assert_instr(urshr, N = 2)
50618)]
50619#[rustc_legacy_const_generics(1)]
50620#[cfg_attr(
50621    not(target_arch = "arm"),
50622    stable(feature = "neon_intrinsics", since = "1.59.0")
50623)]
50624#[cfg_attr(
50625    target_arch = "arm",
50626    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50627)]
50628pub fn vrshr_n_u32<const N: i32>(a: uint32x2_t) -> uint32x2_t {
50629    static_assert!(N >= 1 && N <= 32);
50630    vrshl_u32(a, vdup_n_s32(-N as _))
50631}
50632#[doc = "Unsigned rounding shift right"]
50633#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrq_n_u32)"]
50634#[inline]
50635#[target_feature(enable = "neon")]
50636#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50637#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
50638#[cfg_attr(
50639    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50640    assert_instr(urshr, N = 2)
50641)]
50642#[rustc_legacy_const_generics(1)]
50643#[cfg_attr(
50644    not(target_arch = "arm"),
50645    stable(feature = "neon_intrinsics", since = "1.59.0")
50646)]
50647#[cfg_attr(
50648    target_arch = "arm",
50649    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50650)]
50651pub fn vrshrq_n_u32<const N: i32>(a: uint32x4_t) -> uint32x4_t {
50652    static_assert!(N >= 1 && N <= 32);
50653    vrshlq_u32(a, vdupq_n_s32(-N as _))
50654}
50655#[doc = "Unsigned rounding shift right"]
50656#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshr_n_u64)"]
50657#[inline]
50658#[target_feature(enable = "neon")]
50659#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50660#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
50661#[cfg_attr(
50662    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50663    assert_instr(urshr, N = 2)
50664)]
50665#[rustc_legacy_const_generics(1)]
50666#[cfg_attr(
50667    not(target_arch = "arm"),
50668    stable(feature = "neon_intrinsics", since = "1.59.0")
50669)]
50670#[cfg_attr(
50671    target_arch = "arm",
50672    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50673)]
50674pub fn vrshr_n_u64<const N: i32>(a: uint64x1_t) -> uint64x1_t {
50675    static_assert!(N >= 1 && N <= 64);
50676    vrshl_u64(a, vdup_n_s64(-N as _))
50677}
50678#[doc = "Unsigned rounding shift right"]
50679#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrq_n_u64)"]
50680#[inline]
50681#[target_feature(enable = "neon")]
50682#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50683#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
50684#[cfg_attr(
50685    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50686    assert_instr(urshr, N = 2)
50687)]
50688#[rustc_legacy_const_generics(1)]
50689#[cfg_attr(
50690    not(target_arch = "arm"),
50691    stable(feature = "neon_intrinsics", since = "1.59.0")
50692)]
50693#[cfg_attr(
50694    target_arch = "arm",
50695    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50696)]
50697pub fn vrshrq_n_u64<const N: i32>(a: uint64x2_t) -> uint64x2_t {
50698    static_assert!(N >= 1 && N <= 64);
50699    vrshlq_u64(a, vdupq_n_s64(-N as _))
50700}
50701#[doc = "Rounding shift right narrow"]
50702#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrn_n_s16)"]
50703#[inline]
50704#[cfg(target_arch = "arm")]
50705#[target_feature(enable = "neon,v7")]
50706#[cfg_attr(test, assert_instr(vrshrn, N = 2))]
50707#[rustc_legacy_const_generics(1)]
50708#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
50709pub fn vrshrn_n_s16<const N: i32>(a: int16x8_t) -> int8x8_t {
50710    static_assert!(N >= 1 && N <= 8);
50711    unsafe extern "unadjusted" {
50712        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftn.v8i8")]
50713        fn _vrshrn_n_s16(a: int16x8_t, n: int16x8_t) -> int8x8_t;
50714    }
50715    unsafe { _vrshrn_n_s16(a, const { int16x8_t([-N as i16; 8]) }) }
50716}
50717#[doc = "Rounding shift right narrow"]
50718#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrn_n_s32)"]
50719#[inline]
50720#[cfg(target_arch = "arm")]
50721#[target_feature(enable = "neon,v7")]
50722#[cfg_attr(test, assert_instr(vrshrn, N = 2))]
50723#[rustc_legacy_const_generics(1)]
50724#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
50725pub fn vrshrn_n_s32<const N: i32>(a: int32x4_t) -> int16x4_t {
50726    static_assert!(N >= 1 && N <= 16);
50727    unsafe extern "unadjusted" {
50728        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftn.v4i16")]
50729        fn _vrshrn_n_s32(a: int32x4_t, n: int32x4_t) -> int16x4_t;
50730    }
50731    unsafe { _vrshrn_n_s32(a, const { int32x4_t([-N; 4]) }) }
50732}
50733#[doc = "Rounding shift right narrow"]
50734#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrn_n_s64)"]
50735#[inline]
50736#[cfg(target_arch = "arm")]
50737#[target_feature(enable = "neon,v7")]
50738#[cfg_attr(test, assert_instr(vrshrn, N = 2))]
50739#[rustc_legacy_const_generics(1)]
50740#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
50741pub fn vrshrn_n_s64<const N: i32>(a: int64x2_t) -> int32x2_t {
50742    static_assert!(N >= 1 && N <= 32);
50743    unsafe extern "unadjusted" {
50744        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftn.v2i32")]
50745        fn _vrshrn_n_s64(a: int64x2_t, n: int64x2_t) -> int32x2_t;
50746    }
50747    unsafe { _vrshrn_n_s64(a, const { int64x2_t([-N as i64; 2]) }) }
50748}
50749#[doc = "Rounding shift right narrow"]
50750#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrn_n_s16)"]
50751#[inline]
50752#[target_feature(enable = "neon")]
50753#[cfg(not(target_arch = "arm"))]
50754#[cfg_attr(test, assert_instr(rshrn, N = 2))]
50755#[rustc_legacy_const_generics(1)]
50756#[stable(feature = "neon_intrinsics", since = "1.59.0")]
50757pub fn vrshrn_n_s16<const N: i32>(a: int16x8_t) -> int8x8_t {
50758    static_assert!(N >= 1 && N <= 8);
50759    unsafe extern "unadjusted" {
50760        #[cfg_attr(
50761            any(target_arch = "aarch64", target_arch = "arm64ec"),
50762            link_name = "llvm.aarch64.neon.rshrn.v8i8"
50763        )]
50764        fn _vrshrn_n_s16(a: int16x8_t, n: i32) -> int8x8_t;
50765    }
50766    unsafe { _vrshrn_n_s16(a, N) }
50767}
50768#[doc = "Rounding shift right narrow"]
50769#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrn_n_s32)"]
50770#[inline]
50771#[target_feature(enable = "neon")]
50772#[cfg(not(target_arch = "arm"))]
50773#[cfg_attr(test, assert_instr(rshrn, N = 2))]
50774#[rustc_legacy_const_generics(1)]
50775#[stable(feature = "neon_intrinsics", since = "1.59.0")]
50776pub fn vrshrn_n_s32<const N: i32>(a: int32x4_t) -> int16x4_t {
50777    static_assert!(N >= 1 && N <= 16);
50778    unsafe extern "unadjusted" {
50779        #[cfg_attr(
50780            any(target_arch = "aarch64", target_arch = "arm64ec"),
50781            link_name = "llvm.aarch64.neon.rshrn.v4i16"
50782        )]
50783        fn _vrshrn_n_s32(a: int32x4_t, n: i32) -> int16x4_t;
50784    }
50785    unsafe { _vrshrn_n_s32(a, N) }
50786}
50787#[doc = "Rounding shift right narrow"]
50788#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrn_n_s64)"]
50789#[inline]
50790#[target_feature(enable = "neon")]
50791#[cfg(not(target_arch = "arm"))]
50792#[cfg_attr(test, assert_instr(rshrn, N = 2))]
50793#[rustc_legacy_const_generics(1)]
50794#[stable(feature = "neon_intrinsics", since = "1.59.0")]
50795pub fn vrshrn_n_s64<const N: i32>(a: int64x2_t) -> int32x2_t {
50796    static_assert!(N >= 1 && N <= 32);
50797    unsafe extern "unadjusted" {
50798        #[cfg_attr(
50799            any(target_arch = "aarch64", target_arch = "arm64ec"),
50800            link_name = "llvm.aarch64.neon.rshrn.v2i32"
50801        )]
50802        fn _vrshrn_n_s64(a: int64x2_t, n: i32) -> int32x2_t;
50803    }
50804    unsafe { _vrshrn_n_s64(a, N) }
50805}
50806#[doc = "Rounding shift right narrow"]
50807#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrn_n_u16)"]
50808#[inline]
50809#[target_feature(enable = "neon")]
50810#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50811#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshrn, N = 2))]
50812#[cfg_attr(
50813    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50814    assert_instr(rshrn, N = 2)
50815)]
50816#[rustc_legacy_const_generics(1)]
50817#[cfg_attr(
50818    not(target_arch = "arm"),
50819    stable(feature = "neon_intrinsics", since = "1.59.0")
50820)]
50821#[cfg_attr(
50822    target_arch = "arm",
50823    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50824)]
50825pub fn vrshrn_n_u16<const N: i32>(a: uint16x8_t) -> uint8x8_t {
50826    static_assert!(N >= 1 && N <= 8);
50827    unsafe { transmute(vrshrn_n_s16::<N>(transmute(a))) }
50828}
50829#[doc = "Rounding shift right narrow"]
50830#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrn_n_u32)"]
50831#[inline]
50832#[target_feature(enable = "neon")]
50833#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50834#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshrn, N = 2))]
50835#[cfg_attr(
50836    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50837    assert_instr(rshrn, N = 2)
50838)]
50839#[rustc_legacy_const_generics(1)]
50840#[cfg_attr(
50841    not(target_arch = "arm"),
50842    stable(feature = "neon_intrinsics", since = "1.59.0")
50843)]
50844#[cfg_attr(
50845    target_arch = "arm",
50846    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50847)]
50848pub fn vrshrn_n_u32<const N: i32>(a: uint32x4_t) -> uint16x4_t {
50849    static_assert!(N >= 1 && N <= 16);
50850    unsafe { transmute(vrshrn_n_s32::<N>(transmute(a))) }
50851}
50852#[doc = "Rounding shift right narrow"]
50853#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrn_n_u64)"]
50854#[inline]
50855#[target_feature(enable = "neon")]
50856#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50857#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshrn, N = 2))]
50858#[cfg_attr(
50859    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50860    assert_instr(rshrn, N = 2)
50861)]
50862#[rustc_legacy_const_generics(1)]
50863#[cfg_attr(
50864    not(target_arch = "arm"),
50865    stable(feature = "neon_intrinsics", since = "1.59.0")
50866)]
50867#[cfg_attr(
50868    target_arch = "arm",
50869    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50870)]
50871pub fn vrshrn_n_u64<const N: i32>(a: uint64x2_t) -> uint32x2_t {
50872    static_assert!(N >= 1 && N <= 32);
50873    unsafe { transmute(vrshrn_n_s64::<N>(transmute(a))) }
50874}
50875#[doc = "Reciprocal square-root estimate."]
50876#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsqrte_f16)"]
50877#[inline]
50878#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
50879#[target_feature(enable = "neon,fp16")]
50880#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsqrte))]
50881#[cfg_attr(
50882    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50883    assert_instr(frsqrte)
50884)]
50885#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
50886#[cfg(not(target_arch = "arm64ec"))]
50887pub fn vrsqrte_f16(a: float16x4_t) -> float16x4_t {
50888    unsafe extern "unadjusted" {
50889        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsqrte.v4f16")]
50890        #[cfg_attr(
50891            any(target_arch = "aarch64", target_arch = "arm64ec"),
50892            link_name = "llvm.aarch64.neon.frsqrte.v4f16"
50893        )]
50894        fn _vrsqrte_f16(a: float16x4_t) -> float16x4_t;
50895    }
50896    unsafe { _vrsqrte_f16(a) }
50897}
50898#[doc = "Reciprocal square-root estimate."]
50899#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsqrteq_f16)"]
50900#[inline]
50901#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
50902#[target_feature(enable = "neon,fp16")]
50903#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsqrte))]
50904#[cfg_attr(
50905    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50906    assert_instr(frsqrte)
50907)]
50908#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
50909#[cfg(not(target_arch = "arm64ec"))]
50910pub fn vrsqrteq_f16(a: float16x8_t) -> float16x8_t {
50911    unsafe extern "unadjusted" {
50912        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsqrte.v8f16")]
50913        #[cfg_attr(
50914            any(target_arch = "aarch64", target_arch = "arm64ec"),
50915            link_name = "llvm.aarch64.neon.frsqrte.v8f16"
50916        )]
50917        fn _vrsqrteq_f16(a: float16x8_t) -> float16x8_t;
50918    }
50919    unsafe { _vrsqrteq_f16(a) }
50920}
50921#[doc = "Reciprocal square-root estimate."]
50922#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsqrte_f32)"]
50923#[inline]
50924#[target_feature(enable = "neon")]
50925#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50926#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsqrte))]
50927#[cfg_attr(
50928    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50929    assert_instr(frsqrte)
50930)]
50931#[cfg_attr(
50932    not(target_arch = "arm"),
50933    stable(feature = "neon_intrinsics", since = "1.59.0")
50934)]
50935#[cfg_attr(
50936    target_arch = "arm",
50937    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50938)]
50939pub fn vrsqrte_f32(a: float32x2_t) -> float32x2_t {
50940    unsafe extern "unadjusted" {
50941        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsqrte.v2f32")]
50942        #[cfg_attr(
50943            any(target_arch = "aarch64", target_arch = "arm64ec"),
50944            link_name = "llvm.aarch64.neon.frsqrte.v2f32"
50945        )]
50946        fn _vrsqrte_f32(a: float32x2_t) -> float32x2_t;
50947    }
50948    unsafe { _vrsqrte_f32(a) }
50949}
50950#[doc = "Reciprocal square-root estimate."]
50951#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsqrteq_f32)"]
50952#[inline]
50953#[target_feature(enable = "neon")]
50954#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50955#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsqrte))]
50956#[cfg_attr(
50957    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50958    assert_instr(frsqrte)
50959)]
50960#[cfg_attr(
50961    not(target_arch = "arm"),
50962    stable(feature = "neon_intrinsics", since = "1.59.0")
50963)]
50964#[cfg_attr(
50965    target_arch = "arm",
50966    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50967)]
50968pub fn vrsqrteq_f32(a: float32x4_t) -> float32x4_t {
50969    unsafe extern "unadjusted" {
50970        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsqrte.v4f32")]
50971        #[cfg_attr(
50972            any(target_arch = "aarch64", target_arch = "arm64ec"),
50973            link_name = "llvm.aarch64.neon.frsqrte.v4f32"
50974        )]
50975        fn _vrsqrteq_f32(a: float32x4_t) -> float32x4_t;
50976    }
50977    unsafe { _vrsqrteq_f32(a) }
50978}
50979#[doc = "Unsigned reciprocal square root estimate"]
50980#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsqrte_u32)"]
50981#[inline]
50982#[target_feature(enable = "neon")]
50983#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50984#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsqrte))]
50985#[cfg_attr(
50986    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50987    assert_instr(ursqrte)
50988)]
50989#[cfg_attr(
50990    not(target_arch = "arm"),
50991    stable(feature = "neon_intrinsics", since = "1.59.0")
50992)]
50993#[cfg_attr(
50994    target_arch = "arm",
50995    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50996)]
50997pub fn vrsqrte_u32(a: uint32x2_t) -> uint32x2_t {
50998    unsafe extern "unadjusted" {
50999        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsqrte.v2i32")]
51000        #[cfg_attr(
51001            any(target_arch = "aarch64", target_arch = "arm64ec"),
51002            link_name = "llvm.aarch64.neon.ursqrte.v2i32"
51003        )]
51004        fn _vrsqrte_u32(a: uint32x2_t) -> uint32x2_t;
51005    }
51006    unsafe { _vrsqrte_u32(a) }
51007}
51008#[doc = "Unsigned reciprocal square root estimate"]
51009#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsqrteq_u32)"]
51010#[inline]
51011#[target_feature(enable = "neon")]
51012#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51013#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsqrte))]
51014#[cfg_attr(
51015    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51016    assert_instr(ursqrte)
51017)]
51018#[cfg_attr(
51019    not(target_arch = "arm"),
51020    stable(feature = "neon_intrinsics", since = "1.59.0")
51021)]
51022#[cfg_attr(
51023    target_arch = "arm",
51024    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51025)]
51026pub fn vrsqrteq_u32(a: uint32x4_t) -> uint32x4_t {
51027    unsafe extern "unadjusted" {
51028        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsqrte.v4i32")]
51029        #[cfg_attr(
51030            any(target_arch = "aarch64", target_arch = "arm64ec"),
51031            link_name = "llvm.aarch64.neon.ursqrte.v4i32"
51032        )]
51033        fn _vrsqrteq_u32(a: uint32x4_t) -> uint32x4_t;
51034    }
51035    unsafe { _vrsqrteq_u32(a) }
51036}
51037#[doc = "Floating-point reciprocal square root step"]
51038#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsqrts_f16)"]
51039#[inline]
51040#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
51041#[target_feature(enable = "neon,fp16")]
51042#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsqrts))]
51043#[cfg_attr(
51044    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51045    assert_instr(frsqrts)
51046)]
51047#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
51048#[cfg(not(target_arch = "arm64ec"))]
51049pub fn vrsqrts_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t {
51050    unsafe extern "unadjusted" {
51051        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsqrts.v4f16")]
51052        #[cfg_attr(
51053            any(target_arch = "aarch64", target_arch = "arm64ec"),
51054            link_name = "llvm.aarch64.neon.frsqrts.v4f16"
51055        )]
51056        fn _vrsqrts_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t;
51057    }
51058    unsafe { _vrsqrts_f16(a, b) }
51059}
51060#[doc = "Floating-point reciprocal square root step"]
51061#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsqrtsq_f16)"]
51062#[inline]
51063#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
51064#[target_feature(enable = "neon,fp16")]
51065#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsqrts))]
51066#[cfg_attr(
51067    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51068    assert_instr(frsqrts)
51069)]
51070#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
51071#[cfg(not(target_arch = "arm64ec"))]
51072pub fn vrsqrtsq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t {
51073    unsafe extern "unadjusted" {
51074        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsqrts.v8f16")]
51075        #[cfg_attr(
51076            any(target_arch = "aarch64", target_arch = "arm64ec"),
51077            link_name = "llvm.aarch64.neon.frsqrts.v8f16"
51078        )]
51079        fn _vrsqrtsq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t;
51080    }
51081    unsafe { _vrsqrtsq_f16(a, b) }
51082}
51083#[doc = "Floating-point reciprocal square root step"]
51084#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsqrts_f32)"]
51085#[inline]
51086#[target_feature(enable = "neon")]
51087#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51088#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsqrts))]
51089#[cfg_attr(
51090    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51091    assert_instr(frsqrts)
51092)]
51093#[cfg_attr(
51094    not(target_arch = "arm"),
51095    stable(feature = "neon_intrinsics", since = "1.59.0")
51096)]
51097#[cfg_attr(
51098    target_arch = "arm",
51099    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51100)]
51101pub fn vrsqrts_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
51102    unsafe extern "unadjusted" {
51103        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsqrts.v2f32")]
51104        #[cfg_attr(
51105            any(target_arch = "aarch64", target_arch = "arm64ec"),
51106            link_name = "llvm.aarch64.neon.frsqrts.v2f32"
51107        )]
51108        fn _vrsqrts_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t;
51109    }
51110    unsafe { _vrsqrts_f32(a, b) }
51111}
51112#[doc = "Floating-point reciprocal square root step"]
51113#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsqrtsq_f32)"]
51114#[inline]
51115#[target_feature(enable = "neon")]
51116#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51117#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsqrts))]
51118#[cfg_attr(
51119    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51120    assert_instr(frsqrts)
51121)]
51122#[cfg_attr(
51123    not(target_arch = "arm"),
51124    stable(feature = "neon_intrinsics", since = "1.59.0")
51125)]
51126#[cfg_attr(
51127    target_arch = "arm",
51128    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51129)]
51130pub fn vrsqrtsq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t {
51131    unsafe extern "unadjusted" {
51132        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsqrts.v4f32")]
51133        #[cfg_attr(
51134            any(target_arch = "aarch64", target_arch = "arm64ec"),
51135            link_name = "llvm.aarch64.neon.frsqrts.v4f32"
51136        )]
51137        fn _vrsqrtsq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t;
51138    }
51139    unsafe { _vrsqrtsq_f32(a, b) }
51140}
51141#[doc = "Signed rounding shift right and accumulate"]
51142#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsra_n_s8)"]
51143#[inline]
51144#[target_feature(enable = "neon")]
51145#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51146#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
51147#[cfg_attr(
51148    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51149    assert_instr(srsra, N = 2)
51150)]
51151#[rustc_legacy_const_generics(2)]
51152#[cfg_attr(
51153    not(target_arch = "arm"),
51154    stable(feature = "neon_intrinsics", since = "1.59.0")
51155)]
51156#[cfg_attr(
51157    target_arch = "arm",
51158    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51159)]
51160pub fn vrsra_n_s8<const N: i32>(a: int8x8_t, b: int8x8_t) -> int8x8_t {
51161    static_assert!(N >= 1 && N <= 8);
51162    unsafe { simd_add(a, vrshr_n_s8::<N>(b)) }
51163}
51164#[doc = "Signed rounding shift right and accumulate"]
51165#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsraq_n_s8)"]
51166#[inline]
51167#[target_feature(enable = "neon")]
51168#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51169#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
51170#[cfg_attr(
51171    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51172    assert_instr(srsra, N = 2)
51173)]
51174#[rustc_legacy_const_generics(2)]
51175#[cfg_attr(
51176    not(target_arch = "arm"),
51177    stable(feature = "neon_intrinsics", since = "1.59.0")
51178)]
51179#[cfg_attr(
51180    target_arch = "arm",
51181    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51182)]
51183pub fn vrsraq_n_s8<const N: i32>(a: int8x16_t, b: int8x16_t) -> int8x16_t {
51184    static_assert!(N >= 1 && N <= 8);
51185    unsafe { simd_add(a, vrshrq_n_s8::<N>(b)) }
51186}
51187#[doc = "Signed rounding shift right and accumulate"]
51188#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsra_n_s16)"]
51189#[inline]
51190#[target_feature(enable = "neon")]
51191#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51192#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
51193#[cfg_attr(
51194    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51195    assert_instr(srsra, N = 2)
51196)]
51197#[rustc_legacy_const_generics(2)]
51198#[cfg_attr(
51199    not(target_arch = "arm"),
51200    stable(feature = "neon_intrinsics", since = "1.59.0")
51201)]
51202#[cfg_attr(
51203    target_arch = "arm",
51204    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51205)]
51206pub fn vrsra_n_s16<const N: i32>(a: int16x4_t, b: int16x4_t) -> int16x4_t {
51207    static_assert!(N >= 1 && N <= 16);
51208    unsafe { simd_add(a, vrshr_n_s16::<N>(b)) }
51209}
51210#[doc = "Signed rounding shift right and accumulate"]
51211#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsraq_n_s16)"]
51212#[inline]
51213#[target_feature(enable = "neon")]
51214#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51215#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
51216#[cfg_attr(
51217    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51218    assert_instr(srsra, N = 2)
51219)]
51220#[rustc_legacy_const_generics(2)]
51221#[cfg_attr(
51222    not(target_arch = "arm"),
51223    stable(feature = "neon_intrinsics", since = "1.59.0")
51224)]
51225#[cfg_attr(
51226    target_arch = "arm",
51227    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51228)]
51229pub fn vrsraq_n_s16<const N: i32>(a: int16x8_t, b: int16x8_t) -> int16x8_t {
51230    static_assert!(N >= 1 && N <= 16);
51231    unsafe { simd_add(a, vrshrq_n_s16::<N>(b)) }
51232}
51233#[doc = "Signed rounding shift right and accumulate"]
51234#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsra_n_s32)"]
51235#[inline]
51236#[target_feature(enable = "neon")]
51237#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51238#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
51239#[cfg_attr(
51240    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51241    assert_instr(srsra, N = 2)
51242)]
51243#[rustc_legacy_const_generics(2)]
51244#[cfg_attr(
51245    not(target_arch = "arm"),
51246    stable(feature = "neon_intrinsics", since = "1.59.0")
51247)]
51248#[cfg_attr(
51249    target_arch = "arm",
51250    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51251)]
51252pub fn vrsra_n_s32<const N: i32>(a: int32x2_t, b: int32x2_t) -> int32x2_t {
51253    static_assert!(N >= 1 && N <= 32);
51254    unsafe { simd_add(a, vrshr_n_s32::<N>(b)) }
51255}
51256#[doc = "Signed rounding shift right and accumulate"]
51257#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsraq_n_s32)"]
51258#[inline]
51259#[target_feature(enable = "neon")]
51260#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51261#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
51262#[cfg_attr(
51263    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51264    assert_instr(srsra, N = 2)
51265)]
51266#[rustc_legacy_const_generics(2)]
51267#[cfg_attr(
51268    not(target_arch = "arm"),
51269    stable(feature = "neon_intrinsics", since = "1.59.0")
51270)]
51271#[cfg_attr(
51272    target_arch = "arm",
51273    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51274)]
51275pub fn vrsraq_n_s32<const N: i32>(a: int32x4_t, b: int32x4_t) -> int32x4_t {
51276    static_assert!(N >= 1 && N <= 32);
51277    unsafe { simd_add(a, vrshrq_n_s32::<N>(b)) }
51278}
51279#[doc = "Signed rounding shift right and accumulate"]
51280#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsra_n_s64)"]
51281#[inline]
51282#[target_feature(enable = "neon")]
51283#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51284#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
51285#[cfg_attr(
51286    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51287    assert_instr(srsra, N = 2)
51288)]
51289#[rustc_legacy_const_generics(2)]
51290#[cfg_attr(
51291    not(target_arch = "arm"),
51292    stable(feature = "neon_intrinsics", since = "1.59.0")
51293)]
51294#[cfg_attr(
51295    target_arch = "arm",
51296    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51297)]
51298pub fn vrsra_n_s64<const N: i32>(a: int64x1_t, b: int64x1_t) -> int64x1_t {
51299    static_assert!(N >= 1 && N <= 64);
51300    unsafe { simd_add(a, vrshr_n_s64::<N>(b)) }
51301}
51302#[doc = "Signed rounding shift right and accumulate"]
51303#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsraq_n_s64)"]
51304#[inline]
51305#[target_feature(enable = "neon")]
51306#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51307#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
51308#[cfg_attr(
51309    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51310    assert_instr(srsra, N = 2)
51311)]
51312#[rustc_legacy_const_generics(2)]
51313#[cfg_attr(
51314    not(target_arch = "arm"),
51315    stable(feature = "neon_intrinsics", since = "1.59.0")
51316)]
51317#[cfg_attr(
51318    target_arch = "arm",
51319    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51320)]
51321pub fn vrsraq_n_s64<const N: i32>(a: int64x2_t, b: int64x2_t) -> int64x2_t {
51322    static_assert!(N >= 1 && N <= 64);
51323    unsafe { simd_add(a, vrshrq_n_s64::<N>(b)) }
51324}
51325#[doc = "Unsigned rounding shift right and accumulate"]
51326#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsra_n_u8)"]
51327#[inline]
51328#[target_feature(enable = "neon")]
51329#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51330#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
51331#[cfg_attr(
51332    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51333    assert_instr(ursra, N = 2)
51334)]
51335#[rustc_legacy_const_generics(2)]
51336#[cfg_attr(
51337    not(target_arch = "arm"),
51338    stable(feature = "neon_intrinsics", since = "1.59.0")
51339)]
51340#[cfg_attr(
51341    target_arch = "arm",
51342    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51343)]
51344pub fn vrsra_n_u8<const N: i32>(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
51345    static_assert!(N >= 1 && N <= 8);
51346    unsafe { simd_add(a, vrshr_n_u8::<N>(b)) }
51347}
51348#[doc = "Unsigned rounding shift right and accumulate"]
51349#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsraq_n_u8)"]
51350#[inline]
51351#[target_feature(enable = "neon")]
51352#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51353#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
51354#[cfg_attr(
51355    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51356    assert_instr(ursra, N = 2)
51357)]
51358#[rustc_legacy_const_generics(2)]
51359#[cfg_attr(
51360    not(target_arch = "arm"),
51361    stable(feature = "neon_intrinsics", since = "1.59.0")
51362)]
51363#[cfg_attr(
51364    target_arch = "arm",
51365    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51366)]
51367pub fn vrsraq_n_u8<const N: i32>(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
51368    static_assert!(N >= 1 && N <= 8);
51369    unsafe { simd_add(a, vrshrq_n_u8::<N>(b)) }
51370}
51371#[doc = "Unsigned rounding shift right and accumulate"]
51372#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsra_n_u16)"]
51373#[inline]
51374#[target_feature(enable = "neon")]
51375#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51376#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
51377#[cfg_attr(
51378    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51379    assert_instr(ursra, N = 2)
51380)]
51381#[rustc_legacy_const_generics(2)]
51382#[cfg_attr(
51383    not(target_arch = "arm"),
51384    stable(feature = "neon_intrinsics", since = "1.59.0")
51385)]
51386#[cfg_attr(
51387    target_arch = "arm",
51388    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51389)]
51390pub fn vrsra_n_u16<const N: i32>(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
51391    static_assert!(N >= 1 && N <= 16);
51392    unsafe { simd_add(a, vrshr_n_u16::<N>(b)) }
51393}
51394#[doc = "Unsigned rounding shift right and accumulate"]
51395#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsraq_n_u16)"]
51396#[inline]
51397#[target_feature(enable = "neon")]
51398#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51399#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
51400#[cfg_attr(
51401    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51402    assert_instr(ursra, N = 2)
51403)]
51404#[rustc_legacy_const_generics(2)]
51405#[cfg_attr(
51406    not(target_arch = "arm"),
51407    stable(feature = "neon_intrinsics", since = "1.59.0")
51408)]
51409#[cfg_attr(
51410    target_arch = "arm",
51411    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51412)]
51413pub fn vrsraq_n_u16<const N: i32>(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
51414    static_assert!(N >= 1 && N <= 16);
51415    unsafe { simd_add(a, vrshrq_n_u16::<N>(b)) }
51416}
51417#[doc = "Unsigned rounding shift right and accumulate"]
51418#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsra_n_u32)"]
51419#[inline]
51420#[target_feature(enable = "neon")]
51421#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51422#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
51423#[cfg_attr(
51424    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51425    assert_instr(ursra, N = 2)
51426)]
51427#[rustc_legacy_const_generics(2)]
51428#[cfg_attr(
51429    not(target_arch = "arm"),
51430    stable(feature = "neon_intrinsics", since = "1.59.0")
51431)]
51432#[cfg_attr(
51433    target_arch = "arm",
51434    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51435)]
51436pub fn vrsra_n_u32<const N: i32>(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
51437    static_assert!(N >= 1 && N <= 32);
51438    unsafe { simd_add(a, vrshr_n_u32::<N>(b)) }
51439}
51440#[doc = "Unsigned rounding shift right and accumulate"]
51441#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsraq_n_u32)"]
51442#[inline]
51443#[target_feature(enable = "neon")]
51444#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51445#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
51446#[cfg_attr(
51447    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51448    assert_instr(ursra, N = 2)
51449)]
51450#[rustc_legacy_const_generics(2)]
51451#[cfg_attr(
51452    not(target_arch = "arm"),
51453    stable(feature = "neon_intrinsics", since = "1.59.0")
51454)]
51455#[cfg_attr(
51456    target_arch = "arm",
51457    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51458)]
51459pub fn vrsraq_n_u32<const N: i32>(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
51460    static_assert!(N >= 1 && N <= 32);
51461    unsafe { simd_add(a, vrshrq_n_u32::<N>(b)) }
51462}
51463#[doc = "Unsigned rounding shift right and accumulate"]
51464#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsra_n_u64)"]
51465#[inline]
51466#[target_feature(enable = "neon")]
51467#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51468#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
51469#[cfg_attr(
51470    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51471    assert_instr(ursra, N = 2)
51472)]
51473#[rustc_legacy_const_generics(2)]
51474#[cfg_attr(
51475    not(target_arch = "arm"),
51476    stable(feature = "neon_intrinsics", since = "1.59.0")
51477)]
51478#[cfg_attr(
51479    target_arch = "arm",
51480    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51481)]
51482pub fn vrsra_n_u64<const N: i32>(a: uint64x1_t, b: uint64x1_t) -> uint64x1_t {
51483    static_assert!(N >= 1 && N <= 64);
51484    unsafe { simd_add(a, vrshr_n_u64::<N>(b)) }
51485}
51486#[doc = "Unsigned rounding shift right and accumulate"]
51487#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsraq_n_u64)"]
51488#[inline]
51489#[target_feature(enable = "neon")]
51490#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51491#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
51492#[cfg_attr(
51493    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51494    assert_instr(ursra, N = 2)
51495)]
51496#[rustc_legacy_const_generics(2)]
51497#[cfg_attr(
51498    not(target_arch = "arm"),
51499    stable(feature = "neon_intrinsics", since = "1.59.0")
51500)]
51501#[cfg_attr(
51502    target_arch = "arm",
51503    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51504)]
51505pub fn vrsraq_n_u64<const N: i32>(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
51506    static_assert!(N >= 1 && N <= 64);
51507    unsafe { simd_add(a, vrshrq_n_u64::<N>(b)) }
51508}
51509#[doc = "Rounding subtract returning high narrow"]
51510#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsubhn_s16)"]
51511#[inline]
51512#[target_feature(enable = "neon")]
51513#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51514#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsubhn))]
51515#[cfg_attr(
51516    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51517    assert_instr(rsubhn)
51518)]
51519#[cfg_attr(
51520    not(target_arch = "arm"),
51521    stable(feature = "neon_intrinsics", since = "1.59.0")
51522)]
51523#[cfg_attr(
51524    target_arch = "arm",
51525    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51526)]
51527pub fn vrsubhn_s16(a: int16x8_t, b: int16x8_t) -> int8x8_t {
51528    unsafe extern "unadjusted" {
51529        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsubhn.v8i8")]
51530        #[cfg_attr(
51531            any(target_arch = "aarch64", target_arch = "arm64ec"),
51532            link_name = "llvm.aarch64.neon.rsubhn.v8i8"
51533        )]
51534        fn _vrsubhn_s16(a: int16x8_t, b: int16x8_t) -> int8x8_t;
51535    }
51536    unsafe { _vrsubhn_s16(a, b) }
51537}
51538#[doc = "Rounding subtract returning high narrow"]
51539#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsubhn_s32)"]
51540#[inline]
51541#[target_feature(enable = "neon")]
51542#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51543#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsubhn))]
51544#[cfg_attr(
51545    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51546    assert_instr(rsubhn)
51547)]
51548#[cfg_attr(
51549    not(target_arch = "arm"),
51550    stable(feature = "neon_intrinsics", since = "1.59.0")
51551)]
51552#[cfg_attr(
51553    target_arch = "arm",
51554    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51555)]
51556pub fn vrsubhn_s32(a: int32x4_t, b: int32x4_t) -> int16x4_t {
51557    unsafe extern "unadjusted" {
51558        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsubhn.v4i16")]
51559        #[cfg_attr(
51560            any(target_arch = "aarch64", target_arch = "arm64ec"),
51561            link_name = "llvm.aarch64.neon.rsubhn.v4i16"
51562        )]
51563        fn _vrsubhn_s32(a: int32x4_t, b: int32x4_t) -> int16x4_t;
51564    }
51565    unsafe { _vrsubhn_s32(a, b) }
51566}
51567#[doc = "Rounding subtract returning high narrow"]
51568#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsubhn_s64)"]
51569#[inline]
51570#[target_feature(enable = "neon")]
51571#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51572#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsubhn))]
51573#[cfg_attr(
51574    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51575    assert_instr(rsubhn)
51576)]
51577#[cfg_attr(
51578    not(target_arch = "arm"),
51579    stable(feature = "neon_intrinsics", since = "1.59.0")
51580)]
51581#[cfg_attr(
51582    target_arch = "arm",
51583    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51584)]
51585pub fn vrsubhn_s64(a: int64x2_t, b: int64x2_t) -> int32x2_t {
51586    unsafe extern "unadjusted" {
51587        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsubhn.v2i32")]
51588        #[cfg_attr(
51589            any(target_arch = "aarch64", target_arch = "arm64ec"),
51590            link_name = "llvm.aarch64.neon.rsubhn.v2i32"
51591        )]
51592        fn _vrsubhn_s64(a: int64x2_t, b: int64x2_t) -> int32x2_t;
51593    }
51594    unsafe { _vrsubhn_s64(a, b) }
51595}
51596#[doc = "Rounding subtract returning high narrow"]
51597#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsubhn_u16)"]
51598#[inline]
51599#[cfg(target_endian = "little")]
51600#[target_feature(enable = "neon")]
51601#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51602#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsubhn))]
51603#[cfg_attr(
51604    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51605    assert_instr(rsubhn)
51606)]
51607#[cfg_attr(
51608    not(target_arch = "arm"),
51609    stable(feature = "neon_intrinsics", since = "1.59.0")
51610)]
51611#[cfg_attr(
51612    target_arch = "arm",
51613    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51614)]
51615pub fn vrsubhn_u16(a: uint16x8_t, b: uint16x8_t) -> uint8x8_t {
51616    unsafe { transmute(vrsubhn_s16(transmute(a), transmute(b))) }
51617}
51618#[doc = "Rounding subtract returning high narrow"]
51619#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsubhn_u16)"]
51620#[inline]
51621#[cfg(target_endian = "big")]
51622#[target_feature(enable = "neon")]
51623#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51624#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsubhn))]
51625#[cfg_attr(
51626    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51627    assert_instr(rsubhn)
51628)]
51629#[cfg_attr(
51630    not(target_arch = "arm"),
51631    stable(feature = "neon_intrinsics", since = "1.59.0")
51632)]
51633#[cfg_attr(
51634    target_arch = "arm",
51635    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51636)]
51637pub fn vrsubhn_u16(a: uint16x8_t, b: uint16x8_t) -> uint8x8_t {
51638    let a: uint16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
51639    let b: uint16x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
51640    unsafe {
51641        let ret_val: uint8x8_t = transmute(vrsubhn_s16(transmute(a), transmute(b)));
51642        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
51643    }
51644}
51645#[doc = "Rounding subtract returning high narrow"]
51646#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsubhn_u32)"]
51647#[inline]
51648#[cfg(target_endian = "little")]
51649#[target_feature(enable = "neon")]
51650#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51651#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsubhn))]
51652#[cfg_attr(
51653    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51654    assert_instr(rsubhn)
51655)]
51656#[cfg_attr(
51657    not(target_arch = "arm"),
51658    stable(feature = "neon_intrinsics", since = "1.59.0")
51659)]
51660#[cfg_attr(
51661    target_arch = "arm",
51662    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51663)]
51664pub fn vrsubhn_u32(a: uint32x4_t, b: uint32x4_t) -> uint16x4_t {
51665    unsafe { transmute(vrsubhn_s32(transmute(a), transmute(b))) }
51666}
51667#[doc = "Rounding subtract returning high narrow"]
51668#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsubhn_u32)"]
51669#[inline]
51670#[cfg(target_endian = "big")]
51671#[target_feature(enable = "neon")]
51672#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51673#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsubhn))]
51674#[cfg_attr(
51675    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51676    assert_instr(rsubhn)
51677)]
51678#[cfg_attr(
51679    not(target_arch = "arm"),
51680    stable(feature = "neon_intrinsics", since = "1.59.0")
51681)]
51682#[cfg_attr(
51683    target_arch = "arm",
51684    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51685)]
51686pub fn vrsubhn_u32(a: uint32x4_t, b: uint32x4_t) -> uint16x4_t {
51687    let a: uint32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
51688    let b: uint32x4_t = unsafe { simd_shuffle!(b, b, [3, 2, 1, 0]) };
51689    unsafe {
51690        let ret_val: uint16x4_t = transmute(vrsubhn_s32(transmute(a), transmute(b)));
51691        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
51692    }
51693}
51694#[doc = "Rounding subtract returning high narrow"]
51695#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsubhn_u64)"]
51696#[inline]
51697#[cfg(target_endian = "little")]
51698#[target_feature(enable = "neon")]
51699#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51700#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsubhn))]
51701#[cfg_attr(
51702    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51703    assert_instr(rsubhn)
51704)]
51705#[cfg_attr(
51706    not(target_arch = "arm"),
51707    stable(feature = "neon_intrinsics", since = "1.59.0")
51708)]
51709#[cfg_attr(
51710    target_arch = "arm",
51711    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51712)]
51713pub fn vrsubhn_u64(a: uint64x2_t, b: uint64x2_t) -> uint32x2_t {
51714    unsafe { transmute(vrsubhn_s64(transmute(a), transmute(b))) }
51715}
51716#[doc = "Rounding subtract returning high narrow"]
51717#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsubhn_u64)"]
51718#[inline]
51719#[cfg(target_endian = "big")]
51720#[target_feature(enable = "neon")]
51721#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51722#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsubhn))]
51723#[cfg_attr(
51724    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51725    assert_instr(rsubhn)
51726)]
51727#[cfg_attr(
51728    not(target_arch = "arm"),
51729    stable(feature = "neon_intrinsics", since = "1.59.0")
51730)]
51731#[cfg_attr(
51732    target_arch = "arm",
51733    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51734)]
51735pub fn vrsubhn_u64(a: uint64x2_t, b: uint64x2_t) -> uint32x2_t {
51736    let a: uint64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
51737    let b: uint64x2_t = unsafe { simd_shuffle!(b, b, [1, 0]) };
51738    unsafe {
51739        let ret_val: uint32x2_t = transmute(vrsubhn_s64(transmute(a), transmute(b)));
51740        simd_shuffle!(ret_val, ret_val, [1, 0])
51741    }
51742}
51743#[doc = "Insert vector element from another vector element"]
51744#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_f16)"]
51745#[inline]
51746#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
51747#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
51748#[cfg_attr(
51749    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51750    assert_instr(nop, LANE = 0)
51751)]
51752#[rustc_legacy_const_generics(2)]
51753#[target_feature(enable = "neon,fp16")]
51754#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
51755#[cfg(not(target_arch = "arm64ec"))]
51756pub fn vset_lane_f16<const LANE: i32>(a: f16, b: float16x4_t) -> float16x4_t {
51757    static_assert_uimm_bits!(LANE, 2);
51758    unsafe { simd_insert!(b, LANE as u32, a) }
51759}
51760#[doc = "Insert vector element from another vector element"]
51761#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_f16)"]
51762#[inline]
51763#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
51764#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
51765#[cfg_attr(
51766    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51767    assert_instr(nop, LANE = 0)
51768)]
51769#[rustc_legacy_const_generics(2)]
51770#[target_feature(enable = "neon,fp16")]
51771#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
51772#[cfg(not(target_arch = "arm64ec"))]
51773pub fn vsetq_lane_f16<const LANE: i32>(a: f16, b: float16x8_t) -> float16x8_t {
51774    static_assert_uimm_bits!(LANE, 3);
51775    unsafe { simd_insert!(b, LANE as u32, a) }
51776}
51777#[doc = "Insert vector element from another vector element"]
51778#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_f32)"]
51779#[inline]
51780#[target_feature(enable = "neon")]
51781#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51782#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
51783#[cfg_attr(
51784    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51785    assert_instr(nop, LANE = 0)
51786)]
51787#[rustc_legacy_const_generics(2)]
51788#[cfg_attr(
51789    not(target_arch = "arm"),
51790    stable(feature = "neon_intrinsics", since = "1.59.0")
51791)]
51792#[cfg_attr(
51793    target_arch = "arm",
51794    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51795)]
51796pub fn vset_lane_f32<const LANE: i32>(a: f32, b: float32x2_t) -> float32x2_t {
51797    static_assert_uimm_bits!(LANE, 1);
51798    unsafe { simd_insert!(b, LANE as u32, a) }
51799}
51800#[doc = "Insert vector element from another vector element"]
51801#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_f32)"]
51802#[inline]
51803#[target_feature(enable = "neon")]
51804#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51805#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
51806#[cfg_attr(
51807    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51808    assert_instr(nop, LANE = 0)
51809)]
51810#[rustc_legacy_const_generics(2)]
51811#[cfg_attr(
51812    not(target_arch = "arm"),
51813    stable(feature = "neon_intrinsics", since = "1.59.0")
51814)]
51815#[cfg_attr(
51816    target_arch = "arm",
51817    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51818)]
51819pub fn vsetq_lane_f32<const LANE: i32>(a: f32, b: float32x4_t) -> float32x4_t {
51820    static_assert_uimm_bits!(LANE, 2);
51821    unsafe { simd_insert!(b, LANE as u32, a) }
51822}
51823#[doc = "Insert vector element from another vector element"]
51824#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_s8)"]
51825#[inline]
51826#[target_feature(enable = "neon")]
51827#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51828#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
51829#[cfg_attr(
51830    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51831    assert_instr(nop, LANE = 0)
51832)]
51833#[rustc_legacy_const_generics(2)]
51834#[cfg_attr(
51835    not(target_arch = "arm"),
51836    stable(feature = "neon_intrinsics", since = "1.59.0")
51837)]
51838#[cfg_attr(
51839    target_arch = "arm",
51840    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51841)]
51842pub fn vset_lane_s8<const LANE: i32>(a: i8, b: int8x8_t) -> int8x8_t {
51843    static_assert_uimm_bits!(LANE, 3);
51844    unsafe { simd_insert!(b, LANE as u32, a) }
51845}
51846#[doc = "Insert vector element from another vector element"]
51847#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_s8)"]
51848#[inline]
51849#[target_feature(enable = "neon")]
51850#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51851#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
51852#[cfg_attr(
51853    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51854    assert_instr(nop, LANE = 0)
51855)]
51856#[rustc_legacy_const_generics(2)]
51857#[cfg_attr(
51858    not(target_arch = "arm"),
51859    stable(feature = "neon_intrinsics", since = "1.59.0")
51860)]
51861#[cfg_attr(
51862    target_arch = "arm",
51863    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51864)]
51865pub fn vsetq_lane_s8<const LANE: i32>(a: i8, b: int8x16_t) -> int8x16_t {
51866    static_assert_uimm_bits!(LANE, 4);
51867    unsafe { simd_insert!(b, LANE as u32, a) }
51868}
51869#[doc = "Insert vector element from another vector element"]
51870#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_s16)"]
51871#[inline]
51872#[target_feature(enable = "neon")]
51873#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51874#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
51875#[cfg_attr(
51876    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51877    assert_instr(nop, LANE = 0)
51878)]
51879#[rustc_legacy_const_generics(2)]
51880#[cfg_attr(
51881    not(target_arch = "arm"),
51882    stable(feature = "neon_intrinsics", since = "1.59.0")
51883)]
51884#[cfg_attr(
51885    target_arch = "arm",
51886    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51887)]
51888pub fn vset_lane_s16<const LANE: i32>(a: i16, b: int16x4_t) -> int16x4_t {
51889    static_assert_uimm_bits!(LANE, 2);
51890    unsafe { simd_insert!(b, LANE as u32, a) }
51891}
51892#[doc = "Insert vector element from another vector element"]
51893#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_s16)"]
51894#[inline]
51895#[target_feature(enable = "neon")]
51896#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51897#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
51898#[cfg_attr(
51899    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51900    assert_instr(nop, LANE = 0)
51901)]
51902#[rustc_legacy_const_generics(2)]
51903#[cfg_attr(
51904    not(target_arch = "arm"),
51905    stable(feature = "neon_intrinsics", since = "1.59.0")
51906)]
51907#[cfg_attr(
51908    target_arch = "arm",
51909    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51910)]
51911pub fn vsetq_lane_s16<const LANE: i32>(a: i16, b: int16x8_t) -> int16x8_t {
51912    static_assert_uimm_bits!(LANE, 3);
51913    unsafe { simd_insert!(b, LANE as u32, a) }
51914}
51915#[doc = "Insert vector element from another vector element"]
51916#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_s32)"]
51917#[inline]
51918#[target_feature(enable = "neon")]
51919#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51920#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
51921#[cfg_attr(
51922    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51923    assert_instr(nop, LANE = 0)
51924)]
51925#[rustc_legacy_const_generics(2)]
51926#[cfg_attr(
51927    not(target_arch = "arm"),
51928    stable(feature = "neon_intrinsics", since = "1.59.0")
51929)]
51930#[cfg_attr(
51931    target_arch = "arm",
51932    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51933)]
51934pub fn vset_lane_s32<const LANE: i32>(a: i32, b: int32x2_t) -> int32x2_t {
51935    static_assert_uimm_bits!(LANE, 1);
51936    unsafe { simd_insert!(b, LANE as u32, a) }
51937}
51938#[doc = "Insert vector element from another vector element"]
51939#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_s32)"]
51940#[inline]
51941#[target_feature(enable = "neon")]
51942#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51943#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
51944#[cfg_attr(
51945    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51946    assert_instr(nop, LANE = 0)
51947)]
51948#[rustc_legacy_const_generics(2)]
51949#[cfg_attr(
51950    not(target_arch = "arm"),
51951    stable(feature = "neon_intrinsics", since = "1.59.0")
51952)]
51953#[cfg_attr(
51954    target_arch = "arm",
51955    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51956)]
51957pub fn vsetq_lane_s32<const LANE: i32>(a: i32, b: int32x4_t) -> int32x4_t {
51958    static_assert_uimm_bits!(LANE, 2);
51959    unsafe { simd_insert!(b, LANE as u32, a) }
51960}
51961#[doc = "Insert vector element from another vector element"]
51962#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_s64)"]
51963#[inline]
51964#[target_feature(enable = "neon")]
51965#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51966#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
51967#[cfg_attr(
51968    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51969    assert_instr(nop, LANE = 0)
51970)]
51971#[rustc_legacy_const_generics(2)]
51972#[cfg_attr(
51973    not(target_arch = "arm"),
51974    stable(feature = "neon_intrinsics", since = "1.59.0")
51975)]
51976#[cfg_attr(
51977    target_arch = "arm",
51978    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51979)]
51980pub fn vsetq_lane_s64<const LANE: i32>(a: i64, b: int64x2_t) -> int64x2_t {
51981    static_assert_uimm_bits!(LANE, 1);
51982    unsafe { simd_insert!(b, LANE as u32, a) }
51983}
51984#[doc = "Insert vector element from another vector element"]
51985#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_u8)"]
51986#[inline]
51987#[target_feature(enable = "neon")]
51988#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51989#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
51990#[cfg_attr(
51991    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51992    assert_instr(nop, LANE = 0)
51993)]
51994#[rustc_legacy_const_generics(2)]
51995#[cfg_attr(
51996    not(target_arch = "arm"),
51997    stable(feature = "neon_intrinsics", since = "1.59.0")
51998)]
51999#[cfg_attr(
52000    target_arch = "arm",
52001    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52002)]
52003pub fn vset_lane_u8<const LANE: i32>(a: u8, b: uint8x8_t) -> uint8x8_t {
52004    static_assert_uimm_bits!(LANE, 3);
52005    unsafe { simd_insert!(b, LANE as u32, a) }
52006}
52007#[doc = "Insert vector element from another vector element"]
52008#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_u8)"]
52009#[inline]
52010#[target_feature(enable = "neon")]
52011#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52012#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
52013#[cfg_attr(
52014    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52015    assert_instr(nop, LANE = 0)
52016)]
52017#[rustc_legacy_const_generics(2)]
52018#[cfg_attr(
52019    not(target_arch = "arm"),
52020    stable(feature = "neon_intrinsics", since = "1.59.0")
52021)]
52022#[cfg_attr(
52023    target_arch = "arm",
52024    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52025)]
52026pub fn vsetq_lane_u8<const LANE: i32>(a: u8, b: uint8x16_t) -> uint8x16_t {
52027    static_assert_uimm_bits!(LANE, 4);
52028    unsafe { simd_insert!(b, LANE as u32, a) }
52029}
52030#[doc = "Insert vector element from another vector element"]
52031#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_u16)"]
52032#[inline]
52033#[target_feature(enable = "neon")]
52034#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52035#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
52036#[cfg_attr(
52037    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52038    assert_instr(nop, LANE = 0)
52039)]
52040#[rustc_legacy_const_generics(2)]
52041#[cfg_attr(
52042    not(target_arch = "arm"),
52043    stable(feature = "neon_intrinsics", since = "1.59.0")
52044)]
52045#[cfg_attr(
52046    target_arch = "arm",
52047    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52048)]
52049pub fn vset_lane_u16<const LANE: i32>(a: u16, b: uint16x4_t) -> uint16x4_t {
52050    static_assert_uimm_bits!(LANE, 2);
52051    unsafe { simd_insert!(b, LANE as u32, a) }
52052}
52053#[doc = "Insert vector element from another vector element"]
52054#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_u16)"]
52055#[inline]
52056#[target_feature(enable = "neon")]
52057#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52058#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
52059#[cfg_attr(
52060    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52061    assert_instr(nop, LANE = 0)
52062)]
52063#[rustc_legacy_const_generics(2)]
52064#[cfg_attr(
52065    not(target_arch = "arm"),
52066    stable(feature = "neon_intrinsics", since = "1.59.0")
52067)]
52068#[cfg_attr(
52069    target_arch = "arm",
52070    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52071)]
52072pub fn vsetq_lane_u16<const LANE: i32>(a: u16, b: uint16x8_t) -> uint16x8_t {
52073    static_assert_uimm_bits!(LANE, 3);
52074    unsafe { simd_insert!(b, LANE as u32, a) }
52075}
52076#[doc = "Insert vector element from another vector element"]
52077#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_u32)"]
52078#[inline]
52079#[target_feature(enable = "neon")]
52080#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52081#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
52082#[cfg_attr(
52083    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52084    assert_instr(nop, LANE = 0)
52085)]
52086#[rustc_legacy_const_generics(2)]
52087#[cfg_attr(
52088    not(target_arch = "arm"),
52089    stable(feature = "neon_intrinsics", since = "1.59.0")
52090)]
52091#[cfg_attr(
52092    target_arch = "arm",
52093    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52094)]
52095pub fn vset_lane_u32<const LANE: i32>(a: u32, b: uint32x2_t) -> uint32x2_t {
52096    static_assert_uimm_bits!(LANE, 1);
52097    unsafe { simd_insert!(b, LANE as u32, a) }
52098}
52099#[doc = "Insert vector element from another vector element"]
52100#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_u32)"]
52101#[inline]
52102#[target_feature(enable = "neon")]
52103#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52104#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
52105#[cfg_attr(
52106    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52107    assert_instr(nop, LANE = 0)
52108)]
52109#[rustc_legacy_const_generics(2)]
52110#[cfg_attr(
52111    not(target_arch = "arm"),
52112    stable(feature = "neon_intrinsics", since = "1.59.0")
52113)]
52114#[cfg_attr(
52115    target_arch = "arm",
52116    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52117)]
52118pub fn vsetq_lane_u32<const LANE: i32>(a: u32, b: uint32x4_t) -> uint32x4_t {
52119    static_assert_uimm_bits!(LANE, 2);
52120    unsafe { simd_insert!(b, LANE as u32, a) }
52121}
52122#[doc = "Insert vector element from another vector element"]
52123#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_u64)"]
52124#[inline]
52125#[target_feature(enable = "neon")]
52126#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52127#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
52128#[cfg_attr(
52129    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52130    assert_instr(nop, LANE = 0)
52131)]
52132#[rustc_legacy_const_generics(2)]
52133#[cfg_attr(
52134    not(target_arch = "arm"),
52135    stable(feature = "neon_intrinsics", since = "1.59.0")
52136)]
52137#[cfg_attr(
52138    target_arch = "arm",
52139    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52140)]
52141pub fn vsetq_lane_u64<const LANE: i32>(a: u64, b: uint64x2_t) -> uint64x2_t {
52142    static_assert_uimm_bits!(LANE, 1);
52143    unsafe { simd_insert!(b, LANE as u32, a) }
52144}
52145#[doc = "Insert vector element from another vector element"]
52146#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_p8)"]
52147#[inline]
52148#[target_feature(enable = "neon")]
52149#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52150#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
52151#[cfg_attr(
52152    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52153    assert_instr(nop, LANE = 0)
52154)]
52155#[rustc_legacy_const_generics(2)]
52156#[cfg_attr(
52157    not(target_arch = "arm"),
52158    stable(feature = "neon_intrinsics", since = "1.59.0")
52159)]
52160#[cfg_attr(
52161    target_arch = "arm",
52162    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52163)]
52164pub fn vset_lane_p8<const LANE: i32>(a: p8, b: poly8x8_t) -> poly8x8_t {
52165    static_assert_uimm_bits!(LANE, 3);
52166    unsafe { simd_insert!(b, LANE as u32, a) }
52167}
52168#[doc = "Insert vector element from another vector element"]
52169#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_p8)"]
52170#[inline]
52171#[target_feature(enable = "neon")]
52172#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52173#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
52174#[cfg_attr(
52175    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52176    assert_instr(nop, LANE = 0)
52177)]
52178#[rustc_legacy_const_generics(2)]
52179#[cfg_attr(
52180    not(target_arch = "arm"),
52181    stable(feature = "neon_intrinsics", since = "1.59.0")
52182)]
52183#[cfg_attr(
52184    target_arch = "arm",
52185    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52186)]
52187pub fn vsetq_lane_p8<const LANE: i32>(a: p8, b: poly8x16_t) -> poly8x16_t {
52188    static_assert_uimm_bits!(LANE, 4);
52189    unsafe { simd_insert!(b, LANE as u32, a) }
52190}
52191#[doc = "Insert vector element from another vector element"]
52192#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_p16)"]
52193#[inline]
52194#[target_feature(enable = "neon")]
52195#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52196#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
52197#[cfg_attr(
52198    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52199    assert_instr(nop, LANE = 0)
52200)]
52201#[rustc_legacy_const_generics(2)]
52202#[cfg_attr(
52203    not(target_arch = "arm"),
52204    stable(feature = "neon_intrinsics", since = "1.59.0")
52205)]
52206#[cfg_attr(
52207    target_arch = "arm",
52208    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52209)]
52210pub fn vset_lane_p16<const LANE: i32>(a: p16, b: poly16x4_t) -> poly16x4_t {
52211    static_assert_uimm_bits!(LANE, 2);
52212    unsafe { simd_insert!(b, LANE as u32, a) }
52213}
52214#[doc = "Insert vector element from another vector element"]
52215#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_p16)"]
52216#[inline]
52217#[target_feature(enable = "neon")]
52218#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52219#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
52220#[cfg_attr(
52221    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52222    assert_instr(nop, LANE = 0)
52223)]
52224#[rustc_legacy_const_generics(2)]
52225#[cfg_attr(
52226    not(target_arch = "arm"),
52227    stable(feature = "neon_intrinsics", since = "1.59.0")
52228)]
52229#[cfg_attr(
52230    target_arch = "arm",
52231    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52232)]
52233pub fn vsetq_lane_p16<const LANE: i32>(a: p16, b: poly16x8_t) -> poly16x8_t {
52234    static_assert_uimm_bits!(LANE, 3);
52235    unsafe { simd_insert!(b, LANE as u32, a) }
52236}
52237#[doc = "Insert vector element from another vector element"]
52238#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_p64)"]
52239#[inline]
52240#[target_feature(enable = "neon,aes")]
52241#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
52242#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
52243#[cfg_attr(
52244    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52245    assert_instr(nop, LANE = 0)
52246)]
52247#[rustc_legacy_const_generics(2)]
52248#[cfg_attr(
52249    not(target_arch = "arm"),
52250    stable(feature = "neon_intrinsics", since = "1.59.0")
52251)]
52252#[cfg_attr(
52253    target_arch = "arm",
52254    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52255)]
52256pub fn vset_lane_p64<const LANE: i32>(a: p64, b: poly64x1_t) -> poly64x1_t {
52257    static_assert!(LANE == 0);
52258    unsafe { simd_insert!(b, LANE as u32, a) }
52259}
52260#[doc = "Insert vector element from another vector element"]
52261#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_s64)"]
52262#[inline]
52263#[target_feature(enable = "neon")]
52264#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52265#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
52266#[cfg_attr(
52267    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52268    assert_instr(nop, LANE = 0)
52269)]
52270#[rustc_legacy_const_generics(2)]
52271#[cfg_attr(
52272    not(target_arch = "arm"),
52273    stable(feature = "neon_intrinsics", since = "1.59.0")
52274)]
52275#[cfg_attr(
52276    target_arch = "arm",
52277    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52278)]
52279pub fn vset_lane_s64<const LANE: i32>(a: i64, b: int64x1_t) -> int64x1_t {
52280    static_assert!(LANE == 0);
52281    unsafe { simd_insert!(b, LANE as u32, a) }
52282}
52283#[doc = "Insert vector element from another vector element"]
52284#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_u64)"]
52285#[inline]
52286#[target_feature(enable = "neon")]
52287#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52288#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
52289#[cfg_attr(
52290    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52291    assert_instr(nop, LANE = 0)
52292)]
52293#[rustc_legacy_const_generics(2)]
52294#[cfg_attr(
52295    not(target_arch = "arm"),
52296    stable(feature = "neon_intrinsics", since = "1.59.0")
52297)]
52298#[cfg_attr(
52299    target_arch = "arm",
52300    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52301)]
52302pub fn vset_lane_u64<const LANE: i32>(a: u64, b: uint64x1_t) -> uint64x1_t {
52303    static_assert!(LANE == 0);
52304    unsafe { simd_insert!(b, LANE as u32, a) }
52305}
52306#[doc = "Insert vector element from another vector element"]
52307#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_p64)"]
52308#[inline]
52309#[target_feature(enable = "neon,aes")]
52310#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
52311#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
52312#[cfg_attr(
52313    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52314    assert_instr(nop, LANE = 0)
52315)]
52316#[rustc_legacy_const_generics(2)]
52317#[cfg_attr(
52318    not(target_arch = "arm"),
52319    stable(feature = "neon_intrinsics", since = "1.59.0")
52320)]
52321#[cfg_attr(
52322    target_arch = "arm",
52323    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52324)]
52325pub fn vsetq_lane_p64<const LANE: i32>(a: p64, b: poly64x2_t) -> poly64x2_t {
52326    static_assert_uimm_bits!(LANE, 1);
52327    unsafe { simd_insert!(b, LANE as u32, a) }
52328}
52329#[doc = "SHA1 hash update accelerator, choose."]
52330#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsha1cq_u32)"]
52331#[inline]
52332#[target_feature(enable = "sha2")]
52333#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
52334#[cfg_attr(test, assert_instr(sha1c))]
52335#[cfg_attr(
52336    target_arch = "arm",
52337    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52338)]
52339#[cfg_attr(
52340    not(target_arch = "arm"),
52341    stable(feature = "aarch64_neon_crypto_intrinsics", since = "1.72.0")
52342)]
52343pub fn vsha1cq_u32(hash_abcd: uint32x4_t, hash_e: u32, wk: uint32x4_t) -> uint32x4_t {
52344    unsafe extern "unadjusted" {
52345        #[cfg_attr(
52346            any(target_arch = "aarch64", target_arch = "arm64ec"),
52347            link_name = "llvm.aarch64.crypto.sha1c"
52348        )]
52349        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.sha1c")]
52350        fn _vsha1cq_u32(hash_abcd: uint32x4_t, hash_e: u32, wk: uint32x4_t) -> uint32x4_t;
52351    }
52352    unsafe { _vsha1cq_u32(hash_abcd, hash_e, wk) }
52353}
52354#[doc = "SHA1 fixed rotate."]
52355#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsha1h_u32)"]
52356#[inline]
52357#[target_feature(enable = "sha2")]
52358#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
52359#[cfg_attr(test, assert_instr(sha1h))]
52360#[cfg_attr(
52361    target_arch = "arm",
52362    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52363)]
52364#[cfg_attr(
52365    not(target_arch = "arm"),
52366    stable(feature = "aarch64_neon_crypto_intrinsics", since = "1.72.0")
52367)]
52368pub fn vsha1h_u32(hash_e: u32) -> u32 {
52369    unsafe extern "unadjusted" {
52370        #[cfg_attr(
52371            any(target_arch = "aarch64", target_arch = "arm64ec"),
52372            link_name = "llvm.aarch64.crypto.sha1h"
52373        )]
52374        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.sha1h")]
52375        fn _vsha1h_u32(hash_e: u32) -> u32;
52376    }
52377    unsafe { _vsha1h_u32(hash_e) }
52378}
52379#[doc = "SHA1 hash update accelerator, majority"]
52380#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsha1mq_u32)"]
52381#[inline]
52382#[target_feature(enable = "sha2")]
52383#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
52384#[cfg_attr(test, assert_instr(sha1m))]
52385#[cfg_attr(
52386    target_arch = "arm",
52387    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52388)]
52389#[cfg_attr(
52390    not(target_arch = "arm"),
52391    stable(feature = "aarch64_neon_crypto_intrinsics", since = "1.72.0")
52392)]
52393pub fn vsha1mq_u32(hash_abcd: uint32x4_t, hash_e: u32, wk: uint32x4_t) -> uint32x4_t {
52394    unsafe extern "unadjusted" {
52395        #[cfg_attr(
52396            any(target_arch = "aarch64", target_arch = "arm64ec"),
52397            link_name = "llvm.aarch64.crypto.sha1m"
52398        )]
52399        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.sha1m")]
52400        fn _vsha1mq_u32(hash_abcd: uint32x4_t, hash_e: u32, wk: uint32x4_t) -> uint32x4_t;
52401    }
52402    unsafe { _vsha1mq_u32(hash_abcd, hash_e, wk) }
52403}
52404#[doc = "SHA1 hash update accelerator, parity"]
52405#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsha1pq_u32)"]
52406#[inline]
52407#[target_feature(enable = "sha2")]
52408#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
52409#[cfg_attr(test, assert_instr(sha1p))]
52410#[cfg_attr(
52411    target_arch = "arm",
52412    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52413)]
52414#[cfg_attr(
52415    not(target_arch = "arm"),
52416    stable(feature = "aarch64_neon_crypto_intrinsics", since = "1.72.0")
52417)]
52418pub fn vsha1pq_u32(hash_abcd: uint32x4_t, hash_e: u32, wk: uint32x4_t) -> uint32x4_t {
52419    unsafe extern "unadjusted" {
52420        #[cfg_attr(
52421            any(target_arch = "aarch64", target_arch = "arm64ec"),
52422            link_name = "llvm.aarch64.crypto.sha1p"
52423        )]
52424        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.sha1p")]
52425        fn _vsha1pq_u32(hash_abcd: uint32x4_t, hash_e: u32, wk: uint32x4_t) -> uint32x4_t;
52426    }
52427    unsafe { _vsha1pq_u32(hash_abcd, hash_e, wk) }
52428}
52429#[doc = "SHA1 schedule update accelerator, first part."]
52430#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsha1su0q_u32)"]
52431#[inline]
52432#[target_feature(enable = "sha2")]
52433#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
52434#[cfg_attr(test, assert_instr(sha1su0))]
52435#[cfg_attr(
52436    target_arch = "arm",
52437    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52438)]
52439#[cfg_attr(
52440    not(target_arch = "arm"),
52441    stable(feature = "aarch64_neon_crypto_intrinsics", since = "1.72.0")
52442)]
52443pub fn vsha1su0q_u32(w0_3: uint32x4_t, w4_7: uint32x4_t, w8_11: uint32x4_t) -> uint32x4_t {
52444    unsafe extern "unadjusted" {
52445        #[cfg_attr(
52446            any(target_arch = "aarch64", target_arch = "arm64ec"),
52447            link_name = "llvm.aarch64.crypto.sha1su0"
52448        )]
52449        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.sha1su0")]
52450        fn _vsha1su0q_u32(w0_3: uint32x4_t, w4_7: uint32x4_t, w8_11: uint32x4_t) -> uint32x4_t;
52451    }
52452    unsafe { _vsha1su0q_u32(w0_3, w4_7, w8_11) }
52453}
52454#[doc = "SHA1 schedule update accelerator, second part."]
52455#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsha1su1q_u32)"]
52456#[inline]
52457#[target_feature(enable = "sha2")]
52458#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
52459#[cfg_attr(test, assert_instr(sha1su1))]
52460#[cfg_attr(
52461    target_arch = "arm",
52462    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52463)]
52464#[cfg_attr(
52465    not(target_arch = "arm"),
52466    stable(feature = "aarch64_neon_crypto_intrinsics", since = "1.72.0")
52467)]
52468pub fn vsha1su1q_u32(tw0_3: uint32x4_t, w12_15: uint32x4_t) -> uint32x4_t {
52469    unsafe extern "unadjusted" {
52470        #[cfg_attr(
52471            any(target_arch = "aarch64", target_arch = "arm64ec"),
52472            link_name = "llvm.aarch64.crypto.sha1su1"
52473        )]
52474        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.sha1su1")]
52475        fn _vsha1su1q_u32(tw0_3: uint32x4_t, w12_15: uint32x4_t) -> uint32x4_t;
52476    }
52477    unsafe { _vsha1su1q_u32(tw0_3, w12_15) }
52478}
52479#[doc = "SHA1 schedule update accelerator, upper part."]
52480#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsha256h2q_u32)"]
52481#[inline]
52482#[target_feature(enable = "sha2")]
52483#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
52484#[cfg_attr(test, assert_instr(sha256h2))]
52485#[cfg_attr(
52486    target_arch = "arm",
52487    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52488)]
52489#[cfg_attr(
52490    not(target_arch = "arm"),
52491    stable(feature = "aarch64_neon_crypto_intrinsics", since = "1.72.0")
52492)]
52493pub fn vsha256h2q_u32(hash_abcd: uint32x4_t, hash_efgh: uint32x4_t, wk: uint32x4_t) -> uint32x4_t {
52494    unsafe extern "unadjusted" {
52495        #[cfg_attr(
52496            any(target_arch = "aarch64", target_arch = "arm64ec"),
52497            link_name = "llvm.aarch64.crypto.sha256h2"
52498        )]
52499        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.sha256h2")]
52500        fn _vsha256h2q_u32(
52501            hash_abcd: uint32x4_t,
52502            hash_efgh: uint32x4_t,
52503            wk: uint32x4_t,
52504        ) -> uint32x4_t;
52505    }
52506    unsafe { _vsha256h2q_u32(hash_abcd, hash_efgh, wk) }
52507}
52508#[doc = "SHA1 schedule update accelerator, first part."]
52509#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsha256hq_u32)"]
52510#[inline]
52511#[target_feature(enable = "sha2")]
52512#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
52513#[cfg_attr(test, assert_instr(sha256h))]
52514#[cfg_attr(
52515    target_arch = "arm",
52516    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52517)]
52518#[cfg_attr(
52519    not(target_arch = "arm"),
52520    stable(feature = "aarch64_neon_crypto_intrinsics", since = "1.72.0")
52521)]
52522pub fn vsha256hq_u32(hash_abcd: uint32x4_t, hash_efgh: uint32x4_t, wk: uint32x4_t) -> uint32x4_t {
52523    unsafe extern "unadjusted" {
52524        #[cfg_attr(
52525            any(target_arch = "aarch64", target_arch = "arm64ec"),
52526            link_name = "llvm.aarch64.crypto.sha256h"
52527        )]
52528        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.sha256h")]
52529        fn _vsha256hq_u32(
52530            hash_abcd: uint32x4_t,
52531            hash_efgh: uint32x4_t,
52532            wk: uint32x4_t,
52533        ) -> uint32x4_t;
52534    }
52535    unsafe { _vsha256hq_u32(hash_abcd, hash_efgh, wk) }
52536}
52537#[doc = "SHA256 schedule update accelerator, first part."]
52538#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsha256su0q_u32)"]
52539#[inline]
52540#[target_feature(enable = "sha2")]
52541#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
52542#[cfg_attr(test, assert_instr(sha256su0))]
52543#[cfg_attr(
52544    target_arch = "arm",
52545    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52546)]
52547#[cfg_attr(
52548    not(target_arch = "arm"),
52549    stable(feature = "aarch64_neon_crypto_intrinsics", since = "1.72.0")
52550)]
52551pub fn vsha256su0q_u32(w0_3: uint32x4_t, w4_7: uint32x4_t) -> uint32x4_t {
52552    unsafe extern "unadjusted" {
52553        #[cfg_attr(
52554            any(target_arch = "aarch64", target_arch = "arm64ec"),
52555            link_name = "llvm.aarch64.crypto.sha256su0"
52556        )]
52557        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.sha256su0")]
52558        fn _vsha256su0q_u32(w0_3: uint32x4_t, w4_7: uint32x4_t) -> uint32x4_t;
52559    }
52560    unsafe { _vsha256su0q_u32(w0_3, w4_7) }
52561}
52562#[doc = "SHA256 schedule update accelerator, second part."]
52563#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsha256su1q_u32)"]
52564#[inline]
52565#[target_feature(enable = "sha2")]
52566#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
52567#[cfg_attr(test, assert_instr(sha256su1))]
52568#[cfg_attr(
52569    target_arch = "arm",
52570    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52571)]
52572#[cfg_attr(
52573    not(target_arch = "arm"),
52574    stable(feature = "aarch64_neon_crypto_intrinsics", since = "1.72.0")
52575)]
52576pub fn vsha256su1q_u32(tw0_3: uint32x4_t, w8_11: uint32x4_t, w12_15: uint32x4_t) -> uint32x4_t {
52577    unsafe extern "unadjusted" {
52578        #[cfg_attr(
52579            any(target_arch = "aarch64", target_arch = "arm64ec"),
52580            link_name = "llvm.aarch64.crypto.sha256su1"
52581        )]
52582        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.sha256su1")]
52583        fn _vsha256su1q_u32(tw0_3: uint32x4_t, w8_11: uint32x4_t, w12_15: uint32x4_t)
52584            -> uint32x4_t;
52585    }
52586    unsafe { _vsha256su1q_u32(tw0_3, w8_11, w12_15) }
52587}
52588#[doc = "Shift Right and Insert (immediate)"]
52589#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshiftins_v16i8)"]
52590#[inline]
52591#[target_feature(enable = "neon")]
52592#[cfg(target_arch = "arm")]
52593#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52594#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
52595fn vshiftins_v16i8(a: int8x16_t, b: int8x16_t, c: int8x16_t) -> int8x16_t {
52596    unsafe extern "unadjusted" {
52597        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftins.v16i8")]
52598        fn _vshiftins_v16i8(a: int8x16_t, b: int8x16_t, c: int8x16_t) -> int8x16_t;
52599    }
52600    unsafe { _vshiftins_v16i8(a, b, c) }
52601}
52602#[doc = "Shift Right and Insert (immediate)"]
52603#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshiftins_v1i64)"]
52604#[inline]
52605#[target_feature(enable = "neon")]
52606#[cfg(target_arch = "arm")]
52607#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52608#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
52609fn vshiftins_v1i64(a: int64x1_t, b: int64x1_t, c: int64x1_t) -> int64x1_t {
52610    unsafe extern "unadjusted" {
52611        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftins.v1i64")]
52612        fn _vshiftins_v1i64(a: int64x1_t, b: int64x1_t, c: int64x1_t) -> int64x1_t;
52613    }
52614    unsafe { _vshiftins_v1i64(a, b, c) }
52615}
52616#[doc = "Shift Right and Insert (immediate)"]
52617#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshiftins_v2i32)"]
52618#[inline]
52619#[target_feature(enable = "neon")]
52620#[cfg(target_arch = "arm")]
52621#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52622#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
52623fn vshiftins_v2i32(a: int32x2_t, b: int32x2_t, c: int32x2_t) -> int32x2_t {
52624    unsafe extern "unadjusted" {
52625        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftins.v2i32")]
52626        fn _vshiftins_v2i32(a: int32x2_t, b: int32x2_t, c: int32x2_t) -> int32x2_t;
52627    }
52628    unsafe { _vshiftins_v2i32(a, b, c) }
52629}
52630#[doc = "Shift Right and Insert (immediate)"]
52631#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshiftins_v2i64)"]
52632#[inline]
52633#[target_feature(enable = "neon")]
52634#[cfg(target_arch = "arm")]
52635#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52636#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
52637fn vshiftins_v2i64(a: int64x2_t, b: int64x2_t, c: int64x2_t) -> int64x2_t {
52638    unsafe extern "unadjusted" {
52639        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftins.v2i64")]
52640        fn _vshiftins_v2i64(a: int64x2_t, b: int64x2_t, c: int64x2_t) -> int64x2_t;
52641    }
52642    unsafe { _vshiftins_v2i64(a, b, c) }
52643}
52644#[doc = "Shift Right and Insert (immediate)"]
52645#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshiftins_v4i16)"]
52646#[inline]
52647#[target_feature(enable = "neon")]
52648#[cfg(target_arch = "arm")]
52649#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52650#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
52651fn vshiftins_v4i16(a: int16x4_t, b: int16x4_t, c: int16x4_t) -> int16x4_t {
52652    unsafe extern "unadjusted" {
52653        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftins.v4i16")]
52654        fn _vshiftins_v4i16(a: int16x4_t, b: int16x4_t, c: int16x4_t) -> int16x4_t;
52655    }
52656    unsafe { _vshiftins_v4i16(a, b, c) }
52657}
52658#[doc = "Shift Right and Insert (immediate)"]
52659#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshiftins_v4i32)"]
52660#[inline]
52661#[target_feature(enable = "neon")]
52662#[cfg(target_arch = "arm")]
52663#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52664#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
52665fn vshiftins_v4i32(a: int32x4_t, b: int32x4_t, c: int32x4_t) -> int32x4_t {
52666    unsafe extern "unadjusted" {
52667        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftins.v4i32")]
52668        fn _vshiftins_v4i32(a: int32x4_t, b: int32x4_t, c: int32x4_t) -> int32x4_t;
52669    }
52670    unsafe { _vshiftins_v4i32(a, b, c) }
52671}
52672#[doc = "Shift Right and Insert (immediate)"]
52673#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshiftins_v8i16)"]
52674#[inline]
52675#[target_feature(enable = "neon")]
52676#[cfg(target_arch = "arm")]
52677#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52678#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
52679fn vshiftins_v8i16(a: int16x8_t, b: int16x8_t, c: int16x8_t) -> int16x8_t {
52680    unsafe extern "unadjusted" {
52681        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftins.v8i16")]
52682        fn _vshiftins_v8i16(a: int16x8_t, b: int16x8_t, c: int16x8_t) -> int16x8_t;
52683    }
52684    unsafe { _vshiftins_v8i16(a, b, c) }
52685}
52686#[doc = "Shift Right and Insert (immediate)"]
52687#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshiftins_v8i8)"]
52688#[inline]
52689#[target_feature(enable = "neon")]
52690#[cfg(target_arch = "arm")]
52691#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52692#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
52693fn vshiftins_v8i8(a: int8x8_t, b: int8x8_t, c: int8x8_t) -> int8x8_t {
52694    unsafe extern "unadjusted" {
52695        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftins.v8i8")]
52696        fn _vshiftins_v8i8(a: int8x8_t, b: int8x8_t, c: int8x8_t) -> int8x8_t;
52697    }
52698    unsafe { _vshiftins_v8i8(a, b, c) }
52699}
52700#[doc = "Shift left"]
52701#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_n_s8)"]
52702#[inline]
52703#[target_feature(enable = "neon")]
52704#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52705#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
52706#[cfg_attr(
52707    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52708    assert_instr(shl, N = 2)
52709)]
52710#[rustc_legacy_const_generics(1)]
52711#[cfg_attr(
52712    not(target_arch = "arm"),
52713    stable(feature = "neon_intrinsics", since = "1.59.0")
52714)]
52715#[cfg_attr(
52716    target_arch = "arm",
52717    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52718)]
52719pub fn vshl_n_s8<const N: i32>(a: int8x8_t) -> int8x8_t {
52720    static_assert_uimm_bits!(N, 3);
52721    unsafe { simd_shl(a, vdup_n_s8(N as _)) }
52722}
52723#[doc = "Shift left"]
52724#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_n_s8)"]
52725#[inline]
52726#[target_feature(enable = "neon")]
52727#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52728#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
52729#[cfg_attr(
52730    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52731    assert_instr(shl, N = 2)
52732)]
52733#[rustc_legacy_const_generics(1)]
52734#[cfg_attr(
52735    not(target_arch = "arm"),
52736    stable(feature = "neon_intrinsics", since = "1.59.0")
52737)]
52738#[cfg_attr(
52739    target_arch = "arm",
52740    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52741)]
52742pub fn vshlq_n_s8<const N: i32>(a: int8x16_t) -> int8x16_t {
52743    static_assert_uimm_bits!(N, 3);
52744    unsafe { simd_shl(a, vdupq_n_s8(N as _)) }
52745}
52746#[doc = "Shift left"]
52747#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_n_s16)"]
52748#[inline]
52749#[target_feature(enable = "neon")]
52750#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52751#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
52752#[cfg_attr(
52753    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52754    assert_instr(shl, N = 2)
52755)]
52756#[rustc_legacy_const_generics(1)]
52757#[cfg_attr(
52758    not(target_arch = "arm"),
52759    stable(feature = "neon_intrinsics", since = "1.59.0")
52760)]
52761#[cfg_attr(
52762    target_arch = "arm",
52763    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52764)]
52765pub fn vshl_n_s16<const N: i32>(a: int16x4_t) -> int16x4_t {
52766    static_assert_uimm_bits!(N, 4);
52767    unsafe { simd_shl(a, vdup_n_s16(N as _)) }
52768}
52769#[doc = "Shift left"]
52770#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_n_s16)"]
52771#[inline]
52772#[target_feature(enable = "neon")]
52773#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52774#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
52775#[cfg_attr(
52776    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52777    assert_instr(shl, N = 2)
52778)]
52779#[rustc_legacy_const_generics(1)]
52780#[cfg_attr(
52781    not(target_arch = "arm"),
52782    stable(feature = "neon_intrinsics", since = "1.59.0")
52783)]
52784#[cfg_attr(
52785    target_arch = "arm",
52786    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52787)]
52788pub fn vshlq_n_s16<const N: i32>(a: int16x8_t) -> int16x8_t {
52789    static_assert_uimm_bits!(N, 4);
52790    unsafe { simd_shl(a, vdupq_n_s16(N as _)) }
52791}
52792#[doc = "Shift left"]
52793#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_n_s32)"]
52794#[inline]
52795#[target_feature(enable = "neon")]
52796#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52797#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
52798#[cfg_attr(
52799    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52800    assert_instr(shl, N = 2)
52801)]
52802#[rustc_legacy_const_generics(1)]
52803#[cfg_attr(
52804    not(target_arch = "arm"),
52805    stable(feature = "neon_intrinsics", since = "1.59.0")
52806)]
52807#[cfg_attr(
52808    target_arch = "arm",
52809    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52810)]
52811pub fn vshl_n_s32<const N: i32>(a: int32x2_t) -> int32x2_t {
52812    static_assert_uimm_bits!(N, 5);
52813    unsafe { simd_shl(a, vdup_n_s32(N as _)) }
52814}
52815#[doc = "Shift left"]
52816#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_n_s32)"]
52817#[inline]
52818#[target_feature(enable = "neon")]
52819#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52820#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
52821#[cfg_attr(
52822    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52823    assert_instr(shl, N = 2)
52824)]
52825#[rustc_legacy_const_generics(1)]
52826#[cfg_attr(
52827    not(target_arch = "arm"),
52828    stable(feature = "neon_intrinsics", since = "1.59.0")
52829)]
52830#[cfg_attr(
52831    target_arch = "arm",
52832    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52833)]
52834pub fn vshlq_n_s32<const N: i32>(a: int32x4_t) -> int32x4_t {
52835    static_assert_uimm_bits!(N, 5);
52836    unsafe { simd_shl(a, vdupq_n_s32(N as _)) }
52837}
52838#[doc = "Shift left"]
52839#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_n_s64)"]
52840#[inline]
52841#[target_feature(enable = "neon")]
52842#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52843#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
52844#[cfg_attr(
52845    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52846    assert_instr(shl, N = 2)
52847)]
52848#[rustc_legacy_const_generics(1)]
52849#[cfg_attr(
52850    not(target_arch = "arm"),
52851    stable(feature = "neon_intrinsics", since = "1.59.0")
52852)]
52853#[cfg_attr(
52854    target_arch = "arm",
52855    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52856)]
52857pub fn vshl_n_s64<const N: i32>(a: int64x1_t) -> int64x1_t {
52858    static_assert_uimm_bits!(N, 6);
52859    unsafe { simd_shl(a, vdup_n_s64(N as _)) }
52860}
52861#[doc = "Shift left"]
52862#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_n_s64)"]
52863#[inline]
52864#[target_feature(enable = "neon")]
52865#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52866#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
52867#[cfg_attr(
52868    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52869    assert_instr(shl, N = 2)
52870)]
52871#[rustc_legacy_const_generics(1)]
52872#[cfg_attr(
52873    not(target_arch = "arm"),
52874    stable(feature = "neon_intrinsics", since = "1.59.0")
52875)]
52876#[cfg_attr(
52877    target_arch = "arm",
52878    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52879)]
52880pub fn vshlq_n_s64<const N: i32>(a: int64x2_t) -> int64x2_t {
52881    static_assert_uimm_bits!(N, 6);
52882    unsafe { simd_shl(a, vdupq_n_s64(N as _)) }
52883}
52884#[doc = "Shift left"]
52885#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_n_u8)"]
52886#[inline]
52887#[target_feature(enable = "neon")]
52888#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52889#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
52890#[cfg_attr(
52891    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52892    assert_instr(shl, N = 2)
52893)]
52894#[rustc_legacy_const_generics(1)]
52895#[cfg_attr(
52896    not(target_arch = "arm"),
52897    stable(feature = "neon_intrinsics", since = "1.59.0")
52898)]
52899#[cfg_attr(
52900    target_arch = "arm",
52901    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52902)]
52903pub fn vshl_n_u8<const N: i32>(a: uint8x8_t) -> uint8x8_t {
52904    static_assert_uimm_bits!(N, 3);
52905    unsafe { simd_shl(a, vdup_n_u8(N as _)) }
52906}
52907#[doc = "Shift left"]
52908#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_n_u8)"]
52909#[inline]
52910#[target_feature(enable = "neon")]
52911#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52912#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
52913#[cfg_attr(
52914    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52915    assert_instr(shl, N = 2)
52916)]
52917#[rustc_legacy_const_generics(1)]
52918#[cfg_attr(
52919    not(target_arch = "arm"),
52920    stable(feature = "neon_intrinsics", since = "1.59.0")
52921)]
52922#[cfg_attr(
52923    target_arch = "arm",
52924    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52925)]
52926pub fn vshlq_n_u8<const N: i32>(a: uint8x16_t) -> uint8x16_t {
52927    static_assert_uimm_bits!(N, 3);
52928    unsafe { simd_shl(a, vdupq_n_u8(N as _)) }
52929}
52930#[doc = "Shift left"]
52931#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_n_u16)"]
52932#[inline]
52933#[target_feature(enable = "neon")]
52934#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52935#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
52936#[cfg_attr(
52937    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52938    assert_instr(shl, N = 2)
52939)]
52940#[rustc_legacy_const_generics(1)]
52941#[cfg_attr(
52942    not(target_arch = "arm"),
52943    stable(feature = "neon_intrinsics", since = "1.59.0")
52944)]
52945#[cfg_attr(
52946    target_arch = "arm",
52947    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52948)]
52949pub fn vshl_n_u16<const N: i32>(a: uint16x4_t) -> uint16x4_t {
52950    static_assert_uimm_bits!(N, 4);
52951    unsafe { simd_shl(a, vdup_n_u16(N as _)) }
52952}
52953#[doc = "Shift left"]
52954#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_n_u16)"]
52955#[inline]
52956#[target_feature(enable = "neon")]
52957#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52958#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
52959#[cfg_attr(
52960    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52961    assert_instr(shl, N = 2)
52962)]
52963#[rustc_legacy_const_generics(1)]
52964#[cfg_attr(
52965    not(target_arch = "arm"),
52966    stable(feature = "neon_intrinsics", since = "1.59.0")
52967)]
52968#[cfg_attr(
52969    target_arch = "arm",
52970    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52971)]
52972pub fn vshlq_n_u16<const N: i32>(a: uint16x8_t) -> uint16x8_t {
52973    static_assert_uimm_bits!(N, 4);
52974    unsafe { simd_shl(a, vdupq_n_u16(N as _)) }
52975}
52976#[doc = "Shift left"]
52977#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_n_u32)"]
52978#[inline]
52979#[target_feature(enable = "neon")]
52980#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52981#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
52982#[cfg_attr(
52983    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52984    assert_instr(shl, N = 2)
52985)]
52986#[rustc_legacy_const_generics(1)]
52987#[cfg_attr(
52988    not(target_arch = "arm"),
52989    stable(feature = "neon_intrinsics", since = "1.59.0")
52990)]
52991#[cfg_attr(
52992    target_arch = "arm",
52993    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52994)]
52995pub fn vshl_n_u32<const N: i32>(a: uint32x2_t) -> uint32x2_t {
52996    static_assert_uimm_bits!(N, 5);
52997    unsafe { simd_shl(a, vdup_n_u32(N as _)) }
52998}
52999#[doc = "Shift left"]
53000#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_n_u32)"]
53001#[inline]
53002#[target_feature(enable = "neon")]
53003#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53004#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
53005#[cfg_attr(
53006    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53007    assert_instr(shl, N = 2)
53008)]
53009#[rustc_legacy_const_generics(1)]
53010#[cfg_attr(
53011    not(target_arch = "arm"),
53012    stable(feature = "neon_intrinsics", since = "1.59.0")
53013)]
53014#[cfg_attr(
53015    target_arch = "arm",
53016    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53017)]
53018pub fn vshlq_n_u32<const N: i32>(a: uint32x4_t) -> uint32x4_t {
53019    static_assert_uimm_bits!(N, 5);
53020    unsafe { simd_shl(a, vdupq_n_u32(N as _)) }
53021}
53022#[doc = "Shift left"]
53023#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_n_u64)"]
53024#[inline]
53025#[target_feature(enable = "neon")]
53026#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53027#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
53028#[cfg_attr(
53029    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53030    assert_instr(shl, N = 2)
53031)]
53032#[rustc_legacy_const_generics(1)]
53033#[cfg_attr(
53034    not(target_arch = "arm"),
53035    stable(feature = "neon_intrinsics", since = "1.59.0")
53036)]
53037#[cfg_attr(
53038    target_arch = "arm",
53039    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53040)]
53041pub fn vshl_n_u64<const N: i32>(a: uint64x1_t) -> uint64x1_t {
53042    static_assert_uimm_bits!(N, 6);
53043    unsafe { simd_shl(a, vdup_n_u64(N as _)) }
53044}
53045#[doc = "Shift left"]
53046#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_n_u64)"]
53047#[inline]
53048#[target_feature(enable = "neon")]
53049#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53050#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
53051#[cfg_attr(
53052    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53053    assert_instr(shl, N = 2)
53054)]
53055#[rustc_legacy_const_generics(1)]
53056#[cfg_attr(
53057    not(target_arch = "arm"),
53058    stable(feature = "neon_intrinsics", since = "1.59.0")
53059)]
53060#[cfg_attr(
53061    target_arch = "arm",
53062    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53063)]
53064pub fn vshlq_n_u64<const N: i32>(a: uint64x2_t) -> uint64x2_t {
53065    static_assert_uimm_bits!(N, 6);
53066    unsafe { simd_shl(a, vdupq_n_u64(N as _)) }
53067}
53068#[doc = "Signed Shift left"]
53069#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_s8)"]
53070#[inline]
53071#[target_feature(enable = "neon")]
53072#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53073#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
53074#[cfg_attr(
53075    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53076    assert_instr(sshl)
53077)]
53078#[cfg_attr(
53079    not(target_arch = "arm"),
53080    stable(feature = "neon_intrinsics", since = "1.59.0")
53081)]
53082#[cfg_attr(
53083    target_arch = "arm",
53084    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53085)]
53086pub fn vshl_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
53087    unsafe extern "unadjusted" {
53088        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshifts.v8i8")]
53089        #[cfg_attr(
53090            any(target_arch = "aarch64", target_arch = "arm64ec"),
53091            link_name = "llvm.aarch64.neon.sshl.v8i8"
53092        )]
53093        fn _vshl_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t;
53094    }
53095    unsafe { _vshl_s8(a, b) }
53096}
53097#[doc = "Signed Shift left"]
53098#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_s8)"]
53099#[inline]
53100#[target_feature(enable = "neon")]
53101#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53102#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
53103#[cfg_attr(
53104    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53105    assert_instr(sshl)
53106)]
53107#[cfg_attr(
53108    not(target_arch = "arm"),
53109    stable(feature = "neon_intrinsics", since = "1.59.0")
53110)]
53111#[cfg_attr(
53112    target_arch = "arm",
53113    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53114)]
53115pub fn vshlq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
53116    unsafe extern "unadjusted" {
53117        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshifts.v16i8")]
53118        #[cfg_attr(
53119            any(target_arch = "aarch64", target_arch = "arm64ec"),
53120            link_name = "llvm.aarch64.neon.sshl.v16i8"
53121        )]
53122        fn _vshlq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t;
53123    }
53124    unsafe { _vshlq_s8(a, b) }
53125}
53126#[doc = "Signed Shift left"]
53127#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_s16)"]
53128#[inline]
53129#[target_feature(enable = "neon")]
53130#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53131#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
53132#[cfg_attr(
53133    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53134    assert_instr(sshl)
53135)]
53136#[cfg_attr(
53137    not(target_arch = "arm"),
53138    stable(feature = "neon_intrinsics", since = "1.59.0")
53139)]
53140#[cfg_attr(
53141    target_arch = "arm",
53142    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53143)]
53144pub fn vshl_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
53145    unsafe extern "unadjusted" {
53146        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshifts.v4i16")]
53147        #[cfg_attr(
53148            any(target_arch = "aarch64", target_arch = "arm64ec"),
53149            link_name = "llvm.aarch64.neon.sshl.v4i16"
53150        )]
53151        fn _vshl_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t;
53152    }
53153    unsafe { _vshl_s16(a, b) }
53154}
53155#[doc = "Signed Shift left"]
53156#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_s16)"]
53157#[inline]
53158#[target_feature(enable = "neon")]
53159#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53160#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
53161#[cfg_attr(
53162    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53163    assert_instr(sshl)
53164)]
53165#[cfg_attr(
53166    not(target_arch = "arm"),
53167    stable(feature = "neon_intrinsics", since = "1.59.0")
53168)]
53169#[cfg_attr(
53170    target_arch = "arm",
53171    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53172)]
53173pub fn vshlq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
53174    unsafe extern "unadjusted" {
53175        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshifts.v8i16")]
53176        #[cfg_attr(
53177            any(target_arch = "aarch64", target_arch = "arm64ec"),
53178            link_name = "llvm.aarch64.neon.sshl.v8i16"
53179        )]
53180        fn _vshlq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t;
53181    }
53182    unsafe { _vshlq_s16(a, b) }
53183}
53184#[doc = "Signed Shift left"]
53185#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_s32)"]
53186#[inline]
53187#[target_feature(enable = "neon")]
53188#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53189#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
53190#[cfg_attr(
53191    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53192    assert_instr(sshl)
53193)]
53194#[cfg_attr(
53195    not(target_arch = "arm"),
53196    stable(feature = "neon_intrinsics", since = "1.59.0")
53197)]
53198#[cfg_attr(
53199    target_arch = "arm",
53200    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53201)]
53202pub fn vshl_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
53203    unsafe extern "unadjusted" {
53204        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshifts.v2i32")]
53205        #[cfg_attr(
53206            any(target_arch = "aarch64", target_arch = "arm64ec"),
53207            link_name = "llvm.aarch64.neon.sshl.v2i32"
53208        )]
53209        fn _vshl_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t;
53210    }
53211    unsafe { _vshl_s32(a, b) }
53212}
53213#[doc = "Signed Shift left"]
53214#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_s32)"]
53215#[inline]
53216#[target_feature(enable = "neon")]
53217#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53218#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
53219#[cfg_attr(
53220    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53221    assert_instr(sshl)
53222)]
53223#[cfg_attr(
53224    not(target_arch = "arm"),
53225    stable(feature = "neon_intrinsics", since = "1.59.0")
53226)]
53227#[cfg_attr(
53228    target_arch = "arm",
53229    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53230)]
53231pub fn vshlq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
53232    unsafe extern "unadjusted" {
53233        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshifts.v4i32")]
53234        #[cfg_attr(
53235            any(target_arch = "aarch64", target_arch = "arm64ec"),
53236            link_name = "llvm.aarch64.neon.sshl.v4i32"
53237        )]
53238        fn _vshlq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t;
53239    }
53240    unsafe { _vshlq_s32(a, b) }
53241}
53242#[doc = "Signed Shift left"]
53243#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_s64)"]
53244#[inline]
53245#[target_feature(enable = "neon")]
53246#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53247#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
53248#[cfg_attr(
53249    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53250    assert_instr(sshl)
53251)]
53252#[cfg_attr(
53253    not(target_arch = "arm"),
53254    stable(feature = "neon_intrinsics", since = "1.59.0")
53255)]
53256#[cfg_attr(
53257    target_arch = "arm",
53258    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53259)]
53260pub fn vshl_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t {
53261    unsafe extern "unadjusted" {
53262        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshifts.v1i64")]
53263        #[cfg_attr(
53264            any(target_arch = "aarch64", target_arch = "arm64ec"),
53265            link_name = "llvm.aarch64.neon.sshl.v1i64"
53266        )]
53267        fn _vshl_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t;
53268    }
53269    unsafe { _vshl_s64(a, b) }
53270}
53271#[doc = "Signed Shift left"]
53272#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_s64)"]
53273#[inline]
53274#[target_feature(enable = "neon")]
53275#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53276#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
53277#[cfg_attr(
53278    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53279    assert_instr(sshl)
53280)]
53281#[cfg_attr(
53282    not(target_arch = "arm"),
53283    stable(feature = "neon_intrinsics", since = "1.59.0")
53284)]
53285#[cfg_attr(
53286    target_arch = "arm",
53287    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53288)]
53289pub fn vshlq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t {
53290    unsafe extern "unadjusted" {
53291        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshifts.v2i64")]
53292        #[cfg_attr(
53293            any(target_arch = "aarch64", target_arch = "arm64ec"),
53294            link_name = "llvm.aarch64.neon.sshl.v2i64"
53295        )]
53296        fn _vshlq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t;
53297    }
53298    unsafe { _vshlq_s64(a, b) }
53299}
53300#[doc = "Unsigned Shift left"]
53301#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_u8)"]
53302#[inline]
53303#[target_feature(enable = "neon")]
53304#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53305#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
53306#[cfg_attr(
53307    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53308    assert_instr(ushl)
53309)]
53310#[cfg_attr(
53311    not(target_arch = "arm"),
53312    stable(feature = "neon_intrinsics", since = "1.59.0")
53313)]
53314#[cfg_attr(
53315    target_arch = "arm",
53316    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53317)]
53318pub fn vshl_u8(a: uint8x8_t, b: int8x8_t) -> uint8x8_t {
53319    unsafe extern "unadjusted" {
53320        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftu.v8i8")]
53321        #[cfg_attr(
53322            any(target_arch = "aarch64", target_arch = "arm64ec"),
53323            link_name = "llvm.aarch64.neon.ushl.v8i8"
53324        )]
53325        fn _vshl_u8(a: uint8x8_t, b: int8x8_t) -> uint8x8_t;
53326    }
53327    unsafe { _vshl_u8(a, b) }
53328}
53329#[doc = "Unsigned Shift left"]
53330#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_u8)"]
53331#[inline]
53332#[target_feature(enable = "neon")]
53333#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53334#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
53335#[cfg_attr(
53336    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53337    assert_instr(ushl)
53338)]
53339#[cfg_attr(
53340    not(target_arch = "arm"),
53341    stable(feature = "neon_intrinsics", since = "1.59.0")
53342)]
53343#[cfg_attr(
53344    target_arch = "arm",
53345    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53346)]
53347pub fn vshlq_u8(a: uint8x16_t, b: int8x16_t) -> uint8x16_t {
53348    unsafe extern "unadjusted" {
53349        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftu.v16i8")]
53350        #[cfg_attr(
53351            any(target_arch = "aarch64", target_arch = "arm64ec"),
53352            link_name = "llvm.aarch64.neon.ushl.v16i8"
53353        )]
53354        fn _vshlq_u8(a: uint8x16_t, b: int8x16_t) -> uint8x16_t;
53355    }
53356    unsafe { _vshlq_u8(a, b) }
53357}
53358#[doc = "Unsigned Shift left"]
53359#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_u16)"]
53360#[inline]
53361#[target_feature(enable = "neon")]
53362#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53363#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
53364#[cfg_attr(
53365    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53366    assert_instr(ushl)
53367)]
53368#[cfg_attr(
53369    not(target_arch = "arm"),
53370    stable(feature = "neon_intrinsics", since = "1.59.0")
53371)]
53372#[cfg_attr(
53373    target_arch = "arm",
53374    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53375)]
53376pub fn vshl_u16(a: uint16x4_t, b: int16x4_t) -> uint16x4_t {
53377    unsafe extern "unadjusted" {
53378        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftu.v4i16")]
53379        #[cfg_attr(
53380            any(target_arch = "aarch64", target_arch = "arm64ec"),
53381            link_name = "llvm.aarch64.neon.ushl.v4i16"
53382        )]
53383        fn _vshl_u16(a: uint16x4_t, b: int16x4_t) -> uint16x4_t;
53384    }
53385    unsafe { _vshl_u16(a, b) }
53386}
53387#[doc = "Unsigned Shift left"]
53388#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_u16)"]
53389#[inline]
53390#[target_feature(enable = "neon")]
53391#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53392#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
53393#[cfg_attr(
53394    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53395    assert_instr(ushl)
53396)]
53397#[cfg_attr(
53398    not(target_arch = "arm"),
53399    stable(feature = "neon_intrinsics", since = "1.59.0")
53400)]
53401#[cfg_attr(
53402    target_arch = "arm",
53403    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53404)]
53405pub fn vshlq_u16(a: uint16x8_t, b: int16x8_t) -> uint16x8_t {
53406    unsafe extern "unadjusted" {
53407        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftu.v8i16")]
53408        #[cfg_attr(
53409            any(target_arch = "aarch64", target_arch = "arm64ec"),
53410            link_name = "llvm.aarch64.neon.ushl.v8i16"
53411        )]
53412        fn _vshlq_u16(a: uint16x8_t, b: int16x8_t) -> uint16x8_t;
53413    }
53414    unsafe { _vshlq_u16(a, b) }
53415}
53416#[doc = "Unsigned Shift left"]
53417#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_u32)"]
53418#[inline]
53419#[target_feature(enable = "neon")]
53420#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53421#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
53422#[cfg_attr(
53423    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53424    assert_instr(ushl)
53425)]
53426#[cfg_attr(
53427    not(target_arch = "arm"),
53428    stable(feature = "neon_intrinsics", since = "1.59.0")
53429)]
53430#[cfg_attr(
53431    target_arch = "arm",
53432    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53433)]
53434pub fn vshl_u32(a: uint32x2_t, b: int32x2_t) -> uint32x2_t {
53435    unsafe extern "unadjusted" {
53436        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftu.v2i32")]
53437        #[cfg_attr(
53438            any(target_arch = "aarch64", target_arch = "arm64ec"),
53439            link_name = "llvm.aarch64.neon.ushl.v2i32"
53440        )]
53441        fn _vshl_u32(a: uint32x2_t, b: int32x2_t) -> uint32x2_t;
53442    }
53443    unsafe { _vshl_u32(a, b) }
53444}
53445#[doc = "Unsigned Shift left"]
53446#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_u32)"]
53447#[inline]
53448#[target_feature(enable = "neon")]
53449#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53450#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
53451#[cfg_attr(
53452    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53453    assert_instr(ushl)
53454)]
53455#[cfg_attr(
53456    not(target_arch = "arm"),
53457    stable(feature = "neon_intrinsics", since = "1.59.0")
53458)]
53459#[cfg_attr(
53460    target_arch = "arm",
53461    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53462)]
53463pub fn vshlq_u32(a: uint32x4_t, b: int32x4_t) -> uint32x4_t {
53464    unsafe extern "unadjusted" {
53465        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftu.v4i32")]
53466        #[cfg_attr(
53467            any(target_arch = "aarch64", target_arch = "arm64ec"),
53468            link_name = "llvm.aarch64.neon.ushl.v4i32"
53469        )]
53470        fn _vshlq_u32(a: uint32x4_t, b: int32x4_t) -> uint32x4_t;
53471    }
53472    unsafe { _vshlq_u32(a, b) }
53473}
53474#[doc = "Unsigned Shift left"]
53475#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_u64)"]
53476#[inline]
53477#[target_feature(enable = "neon")]
53478#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53479#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
53480#[cfg_attr(
53481    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53482    assert_instr(ushl)
53483)]
53484#[cfg_attr(
53485    not(target_arch = "arm"),
53486    stable(feature = "neon_intrinsics", since = "1.59.0")
53487)]
53488#[cfg_attr(
53489    target_arch = "arm",
53490    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53491)]
53492pub fn vshl_u64(a: uint64x1_t, b: int64x1_t) -> uint64x1_t {
53493    unsafe extern "unadjusted" {
53494        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftu.v1i64")]
53495        #[cfg_attr(
53496            any(target_arch = "aarch64", target_arch = "arm64ec"),
53497            link_name = "llvm.aarch64.neon.ushl.v1i64"
53498        )]
53499        fn _vshl_u64(a: uint64x1_t, b: int64x1_t) -> uint64x1_t;
53500    }
53501    unsafe { _vshl_u64(a, b) }
53502}
53503#[doc = "Unsigned Shift left"]
53504#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_u64)"]
53505#[inline]
53506#[target_feature(enable = "neon")]
53507#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53508#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
53509#[cfg_attr(
53510    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53511    assert_instr(ushl)
53512)]
53513#[cfg_attr(
53514    not(target_arch = "arm"),
53515    stable(feature = "neon_intrinsics", since = "1.59.0")
53516)]
53517#[cfg_attr(
53518    target_arch = "arm",
53519    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53520)]
53521pub fn vshlq_u64(a: uint64x2_t, b: int64x2_t) -> uint64x2_t {
53522    unsafe extern "unadjusted" {
53523        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftu.v2i64")]
53524        #[cfg_attr(
53525            any(target_arch = "aarch64", target_arch = "arm64ec"),
53526            link_name = "llvm.aarch64.neon.ushl.v2i64"
53527        )]
53528        fn _vshlq_u64(a: uint64x2_t, b: int64x2_t) -> uint64x2_t;
53529    }
53530    unsafe { _vshlq_u64(a, b) }
53531}
53532#[doc = "Signed shift left long"]
53533#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshll_n_s16)"]
53534#[inline]
53535#[target_feature(enable = "neon")]
53536#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53537#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshll.s16", N = 2))]
53538#[cfg_attr(
53539    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53540    assert_instr(sshll, N = 2)
53541)]
53542#[rustc_legacy_const_generics(1)]
53543#[cfg_attr(
53544    not(target_arch = "arm"),
53545    stable(feature = "neon_intrinsics", since = "1.59.0")
53546)]
53547#[cfg_attr(
53548    target_arch = "arm",
53549    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53550)]
53551pub fn vshll_n_s16<const N: i32>(a: int16x4_t) -> int32x4_t {
53552    static_assert!(N >= 0 && N <= 16);
53553    unsafe { simd_shl(simd_cast(a), vdupq_n_s32(N as _)) }
53554}
53555#[doc = "Signed shift left long"]
53556#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshll_n_s32)"]
53557#[inline]
53558#[target_feature(enable = "neon")]
53559#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53560#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshll.s32", N = 2))]
53561#[cfg_attr(
53562    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53563    assert_instr(sshll, N = 2)
53564)]
53565#[rustc_legacy_const_generics(1)]
53566#[cfg_attr(
53567    not(target_arch = "arm"),
53568    stable(feature = "neon_intrinsics", since = "1.59.0")
53569)]
53570#[cfg_attr(
53571    target_arch = "arm",
53572    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53573)]
53574pub fn vshll_n_s32<const N: i32>(a: int32x2_t) -> int64x2_t {
53575    static_assert!(N >= 0 && N <= 32);
53576    unsafe { simd_shl(simd_cast(a), vdupq_n_s64(N as _)) }
53577}
53578#[doc = "Signed shift left long"]
53579#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshll_n_s8)"]
53580#[inline]
53581#[target_feature(enable = "neon")]
53582#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53583#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshll.s8", N = 2))]
53584#[cfg_attr(
53585    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53586    assert_instr(sshll, N = 2)
53587)]
53588#[rustc_legacy_const_generics(1)]
53589#[cfg_attr(
53590    not(target_arch = "arm"),
53591    stable(feature = "neon_intrinsics", since = "1.59.0")
53592)]
53593#[cfg_attr(
53594    target_arch = "arm",
53595    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53596)]
53597pub fn vshll_n_s8<const N: i32>(a: int8x8_t) -> int16x8_t {
53598    static_assert!(N >= 0 && N <= 8);
53599    unsafe { simd_shl(simd_cast(a), vdupq_n_s16(N as _)) }
53600}
53601#[doc = "Signed shift left long"]
53602#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshll_n_u16)"]
53603#[inline]
53604#[target_feature(enable = "neon")]
53605#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53606#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshll.u16", N = 2))]
53607#[cfg_attr(
53608    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53609    assert_instr(ushll, N = 2)
53610)]
53611#[rustc_legacy_const_generics(1)]
53612#[cfg_attr(
53613    not(target_arch = "arm"),
53614    stable(feature = "neon_intrinsics", since = "1.59.0")
53615)]
53616#[cfg_attr(
53617    target_arch = "arm",
53618    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53619)]
53620pub fn vshll_n_u16<const N: i32>(a: uint16x4_t) -> uint32x4_t {
53621    static_assert!(N >= 0 && N <= 16);
53622    unsafe { simd_shl(simd_cast(a), vdupq_n_u32(N as _)) }
53623}
53624#[doc = "Signed shift left long"]
53625#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshll_n_u32)"]
53626#[inline]
53627#[target_feature(enable = "neon")]
53628#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53629#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshll.u32", N = 2))]
53630#[cfg_attr(
53631    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53632    assert_instr(ushll, N = 2)
53633)]
53634#[rustc_legacy_const_generics(1)]
53635#[cfg_attr(
53636    not(target_arch = "arm"),
53637    stable(feature = "neon_intrinsics", since = "1.59.0")
53638)]
53639#[cfg_attr(
53640    target_arch = "arm",
53641    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53642)]
53643pub fn vshll_n_u32<const N: i32>(a: uint32x2_t) -> uint64x2_t {
53644    static_assert!(N >= 0 && N <= 32);
53645    unsafe { simd_shl(simd_cast(a), vdupq_n_u64(N as _)) }
53646}
53647#[doc = "Signed shift left long"]
53648#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshll_n_u8)"]
53649#[inline]
53650#[target_feature(enable = "neon")]
53651#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53652#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshll.u8", N = 2))]
53653#[cfg_attr(
53654    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53655    assert_instr(ushll, N = 2)
53656)]
53657#[rustc_legacy_const_generics(1)]
53658#[cfg_attr(
53659    not(target_arch = "arm"),
53660    stable(feature = "neon_intrinsics", since = "1.59.0")
53661)]
53662#[cfg_attr(
53663    target_arch = "arm",
53664    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53665)]
53666pub fn vshll_n_u8<const N: i32>(a: uint8x8_t) -> uint16x8_t {
53667    static_assert!(N >= 0 && N <= 8);
53668    unsafe { simd_shl(simd_cast(a), vdupq_n_u16(N as _)) }
53669}
53670#[doc = "Shift right"]
53671#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshr_n_s8)"]
53672#[inline]
53673#[target_feature(enable = "neon")]
53674#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53675#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.s8", N = 2))]
53676#[cfg_attr(
53677    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53678    assert_instr(sshr, N = 2)
53679)]
53680#[rustc_legacy_const_generics(1)]
53681#[cfg_attr(
53682    not(target_arch = "arm"),
53683    stable(feature = "neon_intrinsics", since = "1.59.0")
53684)]
53685#[cfg_attr(
53686    target_arch = "arm",
53687    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53688)]
53689pub fn vshr_n_s8<const N: i32>(a: int8x8_t) -> int8x8_t {
53690    static_assert!(N >= 1 && N <= 8);
53691    let n: i32 = if N == 8 { 7 } else { N };
53692    unsafe { simd_shr(a, vdup_n_s8(n as _)) }
53693}
53694#[doc = "Shift right"]
53695#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrq_n_s8)"]
53696#[inline]
53697#[target_feature(enable = "neon")]
53698#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53699#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.s8", N = 2))]
53700#[cfg_attr(
53701    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53702    assert_instr(sshr, N = 2)
53703)]
53704#[rustc_legacy_const_generics(1)]
53705#[cfg_attr(
53706    not(target_arch = "arm"),
53707    stable(feature = "neon_intrinsics", since = "1.59.0")
53708)]
53709#[cfg_attr(
53710    target_arch = "arm",
53711    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53712)]
53713pub fn vshrq_n_s8<const N: i32>(a: int8x16_t) -> int8x16_t {
53714    static_assert!(N >= 1 && N <= 8);
53715    let n: i32 = if N == 8 { 7 } else { N };
53716    unsafe { simd_shr(a, vdupq_n_s8(n as _)) }
53717}
53718#[doc = "Shift right"]
53719#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshr_n_s16)"]
53720#[inline]
53721#[target_feature(enable = "neon")]
53722#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53723#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.s16", N = 2))]
53724#[cfg_attr(
53725    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53726    assert_instr(sshr, N = 2)
53727)]
53728#[rustc_legacy_const_generics(1)]
53729#[cfg_attr(
53730    not(target_arch = "arm"),
53731    stable(feature = "neon_intrinsics", since = "1.59.0")
53732)]
53733#[cfg_attr(
53734    target_arch = "arm",
53735    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53736)]
53737pub fn vshr_n_s16<const N: i32>(a: int16x4_t) -> int16x4_t {
53738    static_assert!(N >= 1 && N <= 16);
53739    let n: i32 = if N == 16 { 15 } else { N };
53740    unsafe { simd_shr(a, vdup_n_s16(n as _)) }
53741}
53742#[doc = "Shift right"]
53743#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrq_n_s16)"]
53744#[inline]
53745#[target_feature(enable = "neon")]
53746#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53747#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.s16", N = 2))]
53748#[cfg_attr(
53749    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53750    assert_instr(sshr, N = 2)
53751)]
53752#[rustc_legacy_const_generics(1)]
53753#[cfg_attr(
53754    not(target_arch = "arm"),
53755    stable(feature = "neon_intrinsics", since = "1.59.0")
53756)]
53757#[cfg_attr(
53758    target_arch = "arm",
53759    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53760)]
53761pub fn vshrq_n_s16<const N: i32>(a: int16x8_t) -> int16x8_t {
53762    static_assert!(N >= 1 && N <= 16);
53763    let n: i32 = if N == 16 { 15 } else { N };
53764    unsafe { simd_shr(a, vdupq_n_s16(n as _)) }
53765}
53766#[doc = "Shift right"]
53767#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshr_n_s32)"]
53768#[inline]
53769#[target_feature(enable = "neon")]
53770#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53771#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.s32", N = 2))]
53772#[cfg_attr(
53773    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53774    assert_instr(sshr, N = 2)
53775)]
53776#[rustc_legacy_const_generics(1)]
53777#[cfg_attr(
53778    not(target_arch = "arm"),
53779    stable(feature = "neon_intrinsics", since = "1.59.0")
53780)]
53781#[cfg_attr(
53782    target_arch = "arm",
53783    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53784)]
53785pub fn vshr_n_s32<const N: i32>(a: int32x2_t) -> int32x2_t {
53786    static_assert!(N >= 1 && N <= 32);
53787    let n: i32 = if N == 32 { 31 } else { N };
53788    unsafe { simd_shr(a, vdup_n_s32(n as _)) }
53789}
53790#[doc = "Shift right"]
53791#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrq_n_s32)"]
53792#[inline]
53793#[target_feature(enable = "neon")]
53794#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53795#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.s32", N = 2))]
53796#[cfg_attr(
53797    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53798    assert_instr(sshr, N = 2)
53799)]
53800#[rustc_legacy_const_generics(1)]
53801#[cfg_attr(
53802    not(target_arch = "arm"),
53803    stable(feature = "neon_intrinsics", since = "1.59.0")
53804)]
53805#[cfg_attr(
53806    target_arch = "arm",
53807    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53808)]
53809pub fn vshrq_n_s32<const N: i32>(a: int32x4_t) -> int32x4_t {
53810    static_assert!(N >= 1 && N <= 32);
53811    let n: i32 = if N == 32 { 31 } else { N };
53812    unsafe { simd_shr(a, vdupq_n_s32(n as _)) }
53813}
53814#[doc = "Shift right"]
53815#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshr_n_s64)"]
53816#[inline]
53817#[target_feature(enable = "neon")]
53818#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53819#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.s64", N = 2))]
53820#[cfg_attr(
53821    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53822    assert_instr(sshr, N = 2)
53823)]
53824#[rustc_legacy_const_generics(1)]
53825#[cfg_attr(
53826    not(target_arch = "arm"),
53827    stable(feature = "neon_intrinsics", since = "1.59.0")
53828)]
53829#[cfg_attr(
53830    target_arch = "arm",
53831    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53832)]
53833pub fn vshr_n_s64<const N: i32>(a: int64x1_t) -> int64x1_t {
53834    static_assert!(N >= 1 && N <= 64);
53835    let n: i32 = if N == 64 { 63 } else { N };
53836    unsafe { simd_shr(a, vdup_n_s64(n as _)) }
53837}
53838#[doc = "Shift right"]
53839#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrq_n_s64)"]
53840#[inline]
53841#[target_feature(enable = "neon")]
53842#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53843#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.s64", N = 2))]
53844#[cfg_attr(
53845    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53846    assert_instr(sshr, N = 2)
53847)]
53848#[rustc_legacy_const_generics(1)]
53849#[cfg_attr(
53850    not(target_arch = "arm"),
53851    stable(feature = "neon_intrinsics", since = "1.59.0")
53852)]
53853#[cfg_attr(
53854    target_arch = "arm",
53855    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53856)]
53857pub fn vshrq_n_s64<const N: i32>(a: int64x2_t) -> int64x2_t {
53858    static_assert!(N >= 1 && N <= 64);
53859    let n: i32 = if N == 64 { 63 } else { N };
53860    unsafe { simd_shr(a, vdupq_n_s64(n as _)) }
53861}
53862#[doc = "Shift right"]
53863#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshr_n_u8)"]
53864#[inline]
53865#[target_feature(enable = "neon")]
53866#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53867#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.u8", N = 2))]
53868#[cfg_attr(
53869    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53870    assert_instr(ushr, N = 2)
53871)]
53872#[rustc_legacy_const_generics(1)]
53873#[cfg_attr(
53874    not(target_arch = "arm"),
53875    stable(feature = "neon_intrinsics", since = "1.59.0")
53876)]
53877#[cfg_attr(
53878    target_arch = "arm",
53879    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53880)]
53881pub fn vshr_n_u8<const N: i32>(a: uint8x8_t) -> uint8x8_t {
53882    static_assert!(N >= 1 && N <= 8);
53883    let n: i32 = if N == 8 {
53884        return vdup_n_u8(0);
53885    } else {
53886        N
53887    };
53888    unsafe { simd_shr(a, vdup_n_u8(n as _)) }
53889}
53890#[doc = "Shift right"]
53891#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrq_n_u8)"]
53892#[inline]
53893#[target_feature(enable = "neon")]
53894#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53895#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.u8", N = 2))]
53896#[cfg_attr(
53897    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53898    assert_instr(ushr, N = 2)
53899)]
53900#[rustc_legacy_const_generics(1)]
53901#[cfg_attr(
53902    not(target_arch = "arm"),
53903    stable(feature = "neon_intrinsics", since = "1.59.0")
53904)]
53905#[cfg_attr(
53906    target_arch = "arm",
53907    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53908)]
53909pub fn vshrq_n_u8<const N: i32>(a: uint8x16_t) -> uint8x16_t {
53910    static_assert!(N >= 1 && N <= 8);
53911    let n: i32 = if N == 8 {
53912        return vdupq_n_u8(0);
53913    } else {
53914        N
53915    };
53916    unsafe { simd_shr(a, vdupq_n_u8(n as _)) }
53917}
53918#[doc = "Shift right"]
53919#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshr_n_u16)"]
53920#[inline]
53921#[target_feature(enable = "neon")]
53922#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53923#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.u16", N = 2))]
53924#[cfg_attr(
53925    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53926    assert_instr(ushr, N = 2)
53927)]
53928#[rustc_legacy_const_generics(1)]
53929#[cfg_attr(
53930    not(target_arch = "arm"),
53931    stable(feature = "neon_intrinsics", since = "1.59.0")
53932)]
53933#[cfg_attr(
53934    target_arch = "arm",
53935    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53936)]
53937pub fn vshr_n_u16<const N: i32>(a: uint16x4_t) -> uint16x4_t {
53938    static_assert!(N >= 1 && N <= 16);
53939    let n: i32 = if N == 16 {
53940        return vdup_n_u16(0);
53941    } else {
53942        N
53943    };
53944    unsafe { simd_shr(a, vdup_n_u16(n as _)) }
53945}
53946#[doc = "Shift right"]
53947#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrq_n_u16)"]
53948#[inline]
53949#[target_feature(enable = "neon")]
53950#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53951#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.u16", N = 2))]
53952#[cfg_attr(
53953    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53954    assert_instr(ushr, N = 2)
53955)]
53956#[rustc_legacy_const_generics(1)]
53957#[cfg_attr(
53958    not(target_arch = "arm"),
53959    stable(feature = "neon_intrinsics", since = "1.59.0")
53960)]
53961#[cfg_attr(
53962    target_arch = "arm",
53963    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53964)]
53965pub fn vshrq_n_u16<const N: i32>(a: uint16x8_t) -> uint16x8_t {
53966    static_assert!(N >= 1 && N <= 16);
53967    let n: i32 = if N == 16 {
53968        return vdupq_n_u16(0);
53969    } else {
53970        N
53971    };
53972    unsafe { simd_shr(a, vdupq_n_u16(n as _)) }
53973}
53974#[doc = "Shift right"]
53975#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshr_n_u32)"]
53976#[inline]
53977#[target_feature(enable = "neon")]
53978#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53979#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.u32", N = 2))]
53980#[cfg_attr(
53981    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53982    assert_instr(ushr, N = 2)
53983)]
53984#[rustc_legacy_const_generics(1)]
53985#[cfg_attr(
53986    not(target_arch = "arm"),
53987    stable(feature = "neon_intrinsics", since = "1.59.0")
53988)]
53989#[cfg_attr(
53990    target_arch = "arm",
53991    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53992)]
53993pub fn vshr_n_u32<const N: i32>(a: uint32x2_t) -> uint32x2_t {
53994    static_assert!(N >= 1 && N <= 32);
53995    let n: i32 = if N == 32 {
53996        return vdup_n_u32(0);
53997    } else {
53998        N
53999    };
54000    unsafe { simd_shr(a, vdup_n_u32(n as _)) }
54001}
54002#[doc = "Shift right"]
54003#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrq_n_u32)"]
54004#[inline]
54005#[target_feature(enable = "neon")]
54006#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54007#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.u32", N = 2))]
54008#[cfg_attr(
54009    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54010    assert_instr(ushr, N = 2)
54011)]
54012#[rustc_legacy_const_generics(1)]
54013#[cfg_attr(
54014    not(target_arch = "arm"),
54015    stable(feature = "neon_intrinsics", since = "1.59.0")
54016)]
54017#[cfg_attr(
54018    target_arch = "arm",
54019    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54020)]
54021pub fn vshrq_n_u32<const N: i32>(a: uint32x4_t) -> uint32x4_t {
54022    static_assert!(N >= 1 && N <= 32);
54023    let n: i32 = if N == 32 {
54024        return vdupq_n_u32(0);
54025    } else {
54026        N
54027    };
54028    unsafe { simd_shr(a, vdupq_n_u32(n as _)) }
54029}
54030#[doc = "Shift right"]
54031#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshr_n_u64)"]
54032#[inline]
54033#[target_feature(enable = "neon")]
54034#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54035#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.u64", N = 2))]
54036#[cfg_attr(
54037    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54038    assert_instr(ushr, N = 2)
54039)]
54040#[rustc_legacy_const_generics(1)]
54041#[cfg_attr(
54042    not(target_arch = "arm"),
54043    stable(feature = "neon_intrinsics", since = "1.59.0")
54044)]
54045#[cfg_attr(
54046    target_arch = "arm",
54047    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54048)]
54049pub fn vshr_n_u64<const N: i32>(a: uint64x1_t) -> uint64x1_t {
54050    static_assert!(N >= 1 && N <= 64);
54051    let n: i32 = if N == 64 {
54052        return vdup_n_u64(0);
54053    } else {
54054        N
54055    };
54056    unsafe { simd_shr(a, vdup_n_u64(n as _)) }
54057}
54058#[doc = "Shift right"]
54059#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrq_n_u64)"]
54060#[inline]
54061#[target_feature(enable = "neon")]
54062#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54063#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.u64", N = 2))]
54064#[cfg_attr(
54065    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54066    assert_instr(ushr, N = 2)
54067)]
54068#[rustc_legacy_const_generics(1)]
54069#[cfg_attr(
54070    not(target_arch = "arm"),
54071    stable(feature = "neon_intrinsics", since = "1.59.0")
54072)]
54073#[cfg_attr(
54074    target_arch = "arm",
54075    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54076)]
54077pub fn vshrq_n_u64<const N: i32>(a: uint64x2_t) -> uint64x2_t {
54078    static_assert!(N >= 1 && N <= 64);
54079    let n: i32 = if N == 64 {
54080        return vdupq_n_u64(0);
54081    } else {
54082        N
54083    };
54084    unsafe { simd_shr(a, vdupq_n_u64(n as _)) }
54085}
54086#[doc = "Shift right narrow"]
54087#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrn_n_s16)"]
54088#[inline]
54089#[target_feature(enable = "neon")]
54090#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54091#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshrn.i16", N = 2))]
54092#[cfg_attr(
54093    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54094    assert_instr(shrn, N = 2)
54095)]
54096#[rustc_legacy_const_generics(1)]
54097#[cfg_attr(
54098    not(target_arch = "arm"),
54099    stable(feature = "neon_intrinsics", since = "1.59.0")
54100)]
54101#[cfg_attr(
54102    target_arch = "arm",
54103    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54104)]
54105pub fn vshrn_n_s16<const N: i32>(a: int16x8_t) -> int8x8_t {
54106    static_assert!(N >= 1 && N <= 8);
54107    unsafe { simd_cast(simd_shr(a, vdupq_n_s16(N as _))) }
54108}
54109#[doc = "Shift right narrow"]
54110#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrn_n_s32)"]
54111#[inline]
54112#[target_feature(enable = "neon")]
54113#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54114#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshrn.i32", N = 2))]
54115#[cfg_attr(
54116    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54117    assert_instr(shrn, N = 2)
54118)]
54119#[rustc_legacy_const_generics(1)]
54120#[cfg_attr(
54121    not(target_arch = "arm"),
54122    stable(feature = "neon_intrinsics", since = "1.59.0")
54123)]
54124#[cfg_attr(
54125    target_arch = "arm",
54126    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54127)]
54128pub fn vshrn_n_s32<const N: i32>(a: int32x4_t) -> int16x4_t {
54129    static_assert!(N >= 1 && N <= 16);
54130    unsafe { simd_cast(simd_shr(a, vdupq_n_s32(N as _))) }
54131}
54132#[doc = "Shift right narrow"]
54133#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrn_n_s64)"]
54134#[inline]
54135#[target_feature(enable = "neon")]
54136#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54137#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshrn.i64", N = 2))]
54138#[cfg_attr(
54139    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54140    assert_instr(shrn, N = 2)
54141)]
54142#[rustc_legacy_const_generics(1)]
54143#[cfg_attr(
54144    not(target_arch = "arm"),
54145    stable(feature = "neon_intrinsics", since = "1.59.0")
54146)]
54147#[cfg_attr(
54148    target_arch = "arm",
54149    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54150)]
54151pub fn vshrn_n_s64<const N: i32>(a: int64x2_t) -> int32x2_t {
54152    static_assert!(N >= 1 && N <= 32);
54153    unsafe { simd_cast(simd_shr(a, vdupq_n_s64(N as _))) }
54154}
54155#[doc = "Shift right narrow"]
54156#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrn_n_u16)"]
54157#[inline]
54158#[target_feature(enable = "neon")]
54159#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54160#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshrn.i16", N = 2))]
54161#[cfg_attr(
54162    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54163    assert_instr(shrn, N = 2)
54164)]
54165#[rustc_legacy_const_generics(1)]
54166#[cfg_attr(
54167    not(target_arch = "arm"),
54168    stable(feature = "neon_intrinsics", since = "1.59.0")
54169)]
54170#[cfg_attr(
54171    target_arch = "arm",
54172    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54173)]
54174pub fn vshrn_n_u16<const N: i32>(a: uint16x8_t) -> uint8x8_t {
54175    static_assert!(N >= 1 && N <= 8);
54176    unsafe { simd_cast(simd_shr(a, vdupq_n_u16(N as _))) }
54177}
54178#[doc = "Shift right narrow"]
54179#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrn_n_u32)"]
54180#[inline]
54181#[target_feature(enable = "neon")]
54182#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54183#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshrn.i32", N = 2))]
54184#[cfg_attr(
54185    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54186    assert_instr(shrn, N = 2)
54187)]
54188#[rustc_legacy_const_generics(1)]
54189#[cfg_attr(
54190    not(target_arch = "arm"),
54191    stable(feature = "neon_intrinsics", since = "1.59.0")
54192)]
54193#[cfg_attr(
54194    target_arch = "arm",
54195    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54196)]
54197pub fn vshrn_n_u32<const N: i32>(a: uint32x4_t) -> uint16x4_t {
54198    static_assert!(N >= 1 && N <= 16);
54199    unsafe { simd_cast(simd_shr(a, vdupq_n_u32(N as _))) }
54200}
54201#[doc = "Shift right narrow"]
54202#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrn_n_u64)"]
54203#[inline]
54204#[target_feature(enable = "neon")]
54205#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54206#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshrn.i64", N = 2))]
54207#[cfg_attr(
54208    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54209    assert_instr(shrn, N = 2)
54210)]
54211#[rustc_legacy_const_generics(1)]
54212#[cfg_attr(
54213    not(target_arch = "arm"),
54214    stable(feature = "neon_intrinsics", since = "1.59.0")
54215)]
54216#[cfg_attr(
54217    target_arch = "arm",
54218    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54219)]
54220pub fn vshrn_n_u64<const N: i32>(a: uint64x2_t) -> uint32x2_t {
54221    static_assert!(N >= 1 && N <= 32);
54222    unsafe { simd_cast(simd_shr(a, vdupq_n_u64(N as _))) }
54223}
54224#[doc = "Shift Left and Insert (immediate)"]
54225#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsli_n_s8)"]
54226#[inline]
54227#[cfg(target_arch = "arm")]
54228#[target_feature(enable = "neon,v7")]
54229#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
54230#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.8", N = 1))]
54231#[rustc_legacy_const_generics(2)]
54232pub fn vsli_n_s8<const N: i32>(a: int8x8_t, b: int8x8_t) -> int8x8_t {
54233    static_assert_uimm_bits!(N, 3);
54234    vshiftins_v8i8(a, b, int8x8_t::splat(N as i8))
54235}
54236#[doc = "Shift Left and Insert (immediate)"]
54237#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsliq_n_s8)"]
54238#[inline]
54239#[cfg(target_arch = "arm")]
54240#[target_feature(enable = "neon,v7")]
54241#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
54242#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.8", N = 1))]
54243#[rustc_legacy_const_generics(2)]
54244pub fn vsliq_n_s8<const N: i32>(a: int8x16_t, b: int8x16_t) -> int8x16_t {
54245    static_assert_uimm_bits!(N, 3);
54246    vshiftins_v16i8(a, b, int8x16_t::splat(N as i8))
54247}
54248#[doc = "Shift Left and Insert (immediate)"]
54249#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsli_n_s16)"]
54250#[inline]
54251#[cfg(target_arch = "arm")]
54252#[target_feature(enable = "neon,v7")]
54253#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
54254#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.16", N = 1))]
54255#[rustc_legacy_const_generics(2)]
54256pub fn vsli_n_s16<const N: i32>(a: int16x4_t, b: int16x4_t) -> int16x4_t {
54257    static_assert_uimm_bits!(N, 4);
54258    vshiftins_v4i16(a, b, int16x4_t::splat(N as i16))
54259}
54260#[doc = "Shift Left and Insert (immediate)"]
54261#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsliq_n_s16)"]
54262#[inline]
54263#[cfg(target_arch = "arm")]
54264#[target_feature(enable = "neon,v7")]
54265#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
54266#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.16", N = 1))]
54267#[rustc_legacy_const_generics(2)]
54268pub fn vsliq_n_s16<const N: i32>(a: int16x8_t, b: int16x8_t) -> int16x8_t {
54269    static_assert_uimm_bits!(N, 4);
54270    vshiftins_v8i16(a, b, int16x8_t::splat(N as i16))
54271}
54272#[doc = "Shift Left and Insert (immediate)"]
54273#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsli_n_s32)"]
54274#[inline]
54275#[cfg(target_arch = "arm")]
54276#[target_feature(enable = "neon,v7")]
54277#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
54278#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.32", N = 1))]
54279#[rustc_legacy_const_generics(2)]
54280pub fn vsli_n_s32<const N: i32>(a: int32x2_t, b: int32x2_t) -> int32x2_t {
54281    static_assert!(N >= 0 && N <= 31);
54282    vshiftins_v2i32(a, b, int32x2_t::splat(N))
54283}
54284#[doc = "Shift Left and Insert (immediate)"]
54285#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsliq_n_s32)"]
54286#[inline]
54287#[cfg(target_arch = "arm")]
54288#[target_feature(enable = "neon,v7")]
54289#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
54290#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.32", N = 1))]
54291#[rustc_legacy_const_generics(2)]
54292pub fn vsliq_n_s32<const N: i32>(a: int32x4_t, b: int32x4_t) -> int32x4_t {
54293    static_assert!(N >= 0 && N <= 31);
54294    vshiftins_v4i32(a, b, int32x4_t::splat(N))
54295}
54296#[doc = "Shift Left and Insert (immediate)"]
54297#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsli_n_s64)"]
54298#[inline]
54299#[cfg(target_arch = "arm")]
54300#[target_feature(enable = "neon,v7")]
54301#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
54302#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.64", N = 1))]
54303#[rustc_legacy_const_generics(2)]
54304pub fn vsli_n_s64<const N: i32>(a: int64x1_t, b: int64x1_t) -> int64x1_t {
54305    static_assert!(N >= 0 && N <= 63);
54306    vshiftins_v1i64(a, b, int64x1_t::splat(N as i64))
54307}
54308#[doc = "Shift Left and Insert (immediate)"]
54309#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsliq_n_s64)"]
54310#[inline]
54311#[cfg(target_arch = "arm")]
54312#[target_feature(enable = "neon,v7")]
54313#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
54314#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.64", N = 1))]
54315#[rustc_legacy_const_generics(2)]
54316pub fn vsliq_n_s64<const N: i32>(a: int64x2_t, b: int64x2_t) -> int64x2_t {
54317    static_assert!(N >= 0 && N <= 63);
54318    vshiftins_v2i64(a, b, int64x2_t::splat(N as i64))
54319}
54320#[doc = "Shift Left and Insert (immediate)"]
54321#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsli_n_u8)"]
54322#[inline]
54323#[cfg(target_arch = "arm")]
54324#[target_feature(enable = "neon,v7")]
54325#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
54326#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.8", N = 1))]
54327#[rustc_legacy_const_generics(2)]
54328pub fn vsli_n_u8<const N: i32>(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
54329    static_assert_uimm_bits!(N, 3);
54330    unsafe {
54331        transmute(vshiftins_v8i8(
54332            transmute(a),
54333            transmute(b),
54334            int8x8_t::splat(N as i8),
54335        ))
54336    }
54337}
54338#[doc = "Shift Left and Insert (immediate)"]
54339#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsliq_n_u8)"]
54340#[inline]
54341#[cfg(target_arch = "arm")]
54342#[target_feature(enable = "neon,v7")]
54343#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
54344#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.8", N = 1))]
54345#[rustc_legacy_const_generics(2)]
54346pub fn vsliq_n_u8<const N: i32>(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
54347    static_assert_uimm_bits!(N, 3);
54348    unsafe {
54349        transmute(vshiftins_v16i8(
54350            transmute(a),
54351            transmute(b),
54352            int8x16_t::splat(N as i8),
54353        ))
54354    }
54355}
54356#[doc = "Shift Left and Insert (immediate)"]
54357#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsli_n_u16)"]
54358#[inline]
54359#[cfg(target_arch = "arm")]
54360#[target_feature(enable = "neon,v7")]
54361#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
54362#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.16", N = 1))]
54363#[rustc_legacy_const_generics(2)]
54364pub fn vsli_n_u16<const N: i32>(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
54365    static_assert_uimm_bits!(N, 4);
54366    unsafe {
54367        transmute(vshiftins_v4i16(
54368            transmute(a),
54369            transmute(b),
54370            int16x4_t::splat(N as i16),
54371        ))
54372    }
54373}
54374#[doc = "Shift Left and Insert (immediate)"]
54375#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsliq_n_u16)"]
54376#[inline]
54377#[cfg(target_arch = "arm")]
54378#[target_feature(enable = "neon,v7")]
54379#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
54380#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.16", N = 1))]
54381#[rustc_legacy_const_generics(2)]
54382pub fn vsliq_n_u16<const N: i32>(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
54383    static_assert_uimm_bits!(N, 4);
54384    unsafe {
54385        transmute(vshiftins_v8i16(
54386            transmute(a),
54387            transmute(b),
54388            int16x8_t::splat(N as i16),
54389        ))
54390    }
54391}
54392#[doc = "Shift Left and Insert (immediate)"]
54393#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsli_n_u32)"]
54394#[inline]
54395#[cfg(target_arch = "arm")]
54396#[target_feature(enable = "neon,v7")]
54397#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
54398#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.32", N = 1))]
54399#[rustc_legacy_const_generics(2)]
54400pub fn vsli_n_u32<const N: i32>(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
54401    static_assert!(N >= 0 && N <= 31);
54402    unsafe {
54403        transmute(vshiftins_v2i32(
54404            transmute(a),
54405            transmute(b),
54406            int32x2_t::splat(N),
54407        ))
54408    }
54409}
54410#[doc = "Shift Left and Insert (immediate)"]
54411#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsliq_n_u32)"]
54412#[inline]
54413#[cfg(target_arch = "arm")]
54414#[target_feature(enable = "neon,v7")]
54415#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
54416#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.32", N = 1))]
54417#[rustc_legacy_const_generics(2)]
54418pub fn vsliq_n_u32<const N: i32>(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
54419    static_assert!(N >= 0 && N <= 31);
54420    unsafe {
54421        transmute(vshiftins_v4i32(
54422            transmute(a),
54423            transmute(b),
54424            int32x4_t::splat(N),
54425        ))
54426    }
54427}
54428#[doc = "Shift Left and Insert (immediate)"]
54429#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsli_n_u64)"]
54430#[inline]
54431#[cfg(target_arch = "arm")]
54432#[target_feature(enable = "neon,v7")]
54433#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
54434#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.64", N = 1))]
54435#[rustc_legacy_const_generics(2)]
54436pub fn vsli_n_u64<const N: i32>(a: uint64x1_t, b: uint64x1_t) -> uint64x1_t {
54437    static_assert!(N >= 0 && N <= 63);
54438    unsafe {
54439        transmute(vshiftins_v1i64(
54440            transmute(a),
54441            transmute(b),
54442            int64x1_t::splat(N as i64),
54443        ))
54444    }
54445}
54446#[doc = "Shift Left and Insert (immediate)"]
54447#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsliq_n_u64)"]
54448#[inline]
54449#[cfg(target_arch = "arm")]
54450#[target_feature(enable = "neon,v7")]
54451#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
54452#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.64", N = 1))]
54453#[rustc_legacy_const_generics(2)]
54454pub fn vsliq_n_u64<const N: i32>(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
54455    static_assert!(N >= 0 && N <= 63);
54456    unsafe {
54457        transmute(vshiftins_v2i64(
54458            transmute(a),
54459            transmute(b),
54460            int64x2_t::splat(N as i64),
54461        ))
54462    }
54463}
54464#[doc = "Shift Left and Insert (immediate)"]
54465#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsli_n_p8)"]
54466#[inline]
54467#[cfg(target_arch = "arm")]
54468#[target_feature(enable = "neon,v7")]
54469#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
54470#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.8", N = 1))]
54471#[rustc_legacy_const_generics(2)]
54472pub fn vsli_n_p8<const N: i32>(a: poly8x8_t, b: poly8x8_t) -> poly8x8_t {
54473    static_assert_uimm_bits!(N, 3);
54474    unsafe {
54475        transmute(vshiftins_v8i8(
54476            transmute(a),
54477            transmute(b),
54478            int8x8_t::splat(N as i8),
54479        ))
54480    }
54481}
54482#[doc = "Shift Left and Insert (immediate)"]
54483#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsliq_n_p8)"]
54484#[inline]
54485#[cfg(target_arch = "arm")]
54486#[target_feature(enable = "neon,v7")]
54487#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
54488#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.8", N = 1))]
54489#[rustc_legacy_const_generics(2)]
54490pub fn vsliq_n_p8<const N: i32>(a: poly8x16_t, b: poly8x16_t) -> poly8x16_t {
54491    static_assert_uimm_bits!(N, 3);
54492    unsafe {
54493        transmute(vshiftins_v16i8(
54494            transmute(a),
54495            transmute(b),
54496            int8x16_t::splat(N as i8),
54497        ))
54498    }
54499}
54500#[doc = "Shift Left and Insert (immediate)"]
54501#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsli_n_p16)"]
54502#[inline]
54503#[cfg(target_arch = "arm")]
54504#[target_feature(enable = "neon,v7")]
54505#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
54506#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.16", N = 1))]
54507#[rustc_legacy_const_generics(2)]
54508pub fn vsli_n_p16<const N: i32>(a: poly16x4_t, b: poly16x4_t) -> poly16x4_t {
54509    static_assert_uimm_bits!(N, 4);
54510    unsafe {
54511        transmute(vshiftins_v4i16(
54512            transmute(a),
54513            transmute(b),
54514            int16x4_t::splat(N as i16),
54515        ))
54516    }
54517}
54518#[doc = "Shift Left and Insert (immediate)"]
54519#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsliq_n_p16)"]
54520#[inline]
54521#[cfg(target_arch = "arm")]
54522#[target_feature(enable = "neon,v7")]
54523#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
54524#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.16", N = 1))]
54525#[rustc_legacy_const_generics(2)]
54526pub fn vsliq_n_p16<const N: i32>(a: poly16x8_t, b: poly16x8_t) -> poly16x8_t {
54527    static_assert_uimm_bits!(N, 4);
54528    unsafe {
54529        transmute(vshiftins_v8i16(
54530            transmute(a),
54531            transmute(b),
54532            int16x8_t::splat(N as i16),
54533        ))
54534    }
54535}
54536#[doc = "Signed shift right and accumulate"]
54537#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsra_n_s8)"]
54538#[inline]
54539#[target_feature(enable = "neon")]
54540#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54541#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
54542#[cfg_attr(
54543    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54544    assert_instr(ssra, N = 2)
54545)]
54546#[rustc_legacy_const_generics(2)]
54547#[cfg_attr(
54548    not(target_arch = "arm"),
54549    stable(feature = "neon_intrinsics", since = "1.59.0")
54550)]
54551#[cfg_attr(
54552    target_arch = "arm",
54553    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54554)]
54555pub fn vsra_n_s8<const N: i32>(a: int8x8_t, b: int8x8_t) -> int8x8_t {
54556    static_assert!(N >= 1 && N <= 8);
54557    unsafe { simd_add(a, vshr_n_s8::<N>(b)) }
54558}
54559#[doc = "Signed shift right and accumulate"]
54560#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsraq_n_s8)"]
54561#[inline]
54562#[target_feature(enable = "neon")]
54563#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54564#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
54565#[cfg_attr(
54566    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54567    assert_instr(ssra, N = 2)
54568)]
54569#[rustc_legacy_const_generics(2)]
54570#[cfg_attr(
54571    not(target_arch = "arm"),
54572    stable(feature = "neon_intrinsics", since = "1.59.0")
54573)]
54574#[cfg_attr(
54575    target_arch = "arm",
54576    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54577)]
54578pub fn vsraq_n_s8<const N: i32>(a: int8x16_t, b: int8x16_t) -> int8x16_t {
54579    static_assert!(N >= 1 && N <= 8);
54580    unsafe { simd_add(a, vshrq_n_s8::<N>(b)) }
54581}
54582#[doc = "Signed shift right and accumulate"]
54583#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsra_n_s16)"]
54584#[inline]
54585#[target_feature(enable = "neon")]
54586#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54587#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
54588#[cfg_attr(
54589    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54590    assert_instr(ssra, N = 2)
54591)]
54592#[rustc_legacy_const_generics(2)]
54593#[cfg_attr(
54594    not(target_arch = "arm"),
54595    stable(feature = "neon_intrinsics", since = "1.59.0")
54596)]
54597#[cfg_attr(
54598    target_arch = "arm",
54599    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54600)]
54601pub fn vsra_n_s16<const N: i32>(a: int16x4_t, b: int16x4_t) -> int16x4_t {
54602    static_assert!(N >= 1 && N <= 16);
54603    unsafe { simd_add(a, vshr_n_s16::<N>(b)) }
54604}
54605#[doc = "Signed shift right and accumulate"]
54606#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsraq_n_s16)"]
54607#[inline]
54608#[target_feature(enable = "neon")]
54609#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54610#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
54611#[cfg_attr(
54612    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54613    assert_instr(ssra, N = 2)
54614)]
54615#[rustc_legacy_const_generics(2)]
54616#[cfg_attr(
54617    not(target_arch = "arm"),
54618    stable(feature = "neon_intrinsics", since = "1.59.0")
54619)]
54620#[cfg_attr(
54621    target_arch = "arm",
54622    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54623)]
54624pub fn vsraq_n_s16<const N: i32>(a: int16x8_t, b: int16x8_t) -> int16x8_t {
54625    static_assert!(N >= 1 && N <= 16);
54626    unsafe { simd_add(a, vshrq_n_s16::<N>(b)) }
54627}
54628#[doc = "Signed shift right and accumulate"]
54629#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsra_n_s32)"]
54630#[inline]
54631#[target_feature(enable = "neon")]
54632#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54633#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
54634#[cfg_attr(
54635    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54636    assert_instr(ssra, N = 2)
54637)]
54638#[rustc_legacy_const_generics(2)]
54639#[cfg_attr(
54640    not(target_arch = "arm"),
54641    stable(feature = "neon_intrinsics", since = "1.59.0")
54642)]
54643#[cfg_attr(
54644    target_arch = "arm",
54645    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54646)]
54647pub fn vsra_n_s32<const N: i32>(a: int32x2_t, b: int32x2_t) -> int32x2_t {
54648    static_assert!(N >= 1 && N <= 32);
54649    unsafe { simd_add(a, vshr_n_s32::<N>(b)) }
54650}
54651#[doc = "Signed shift right and accumulate"]
54652#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsraq_n_s32)"]
54653#[inline]
54654#[target_feature(enable = "neon")]
54655#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54656#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
54657#[cfg_attr(
54658    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54659    assert_instr(ssra, N = 2)
54660)]
54661#[rustc_legacy_const_generics(2)]
54662#[cfg_attr(
54663    not(target_arch = "arm"),
54664    stable(feature = "neon_intrinsics", since = "1.59.0")
54665)]
54666#[cfg_attr(
54667    target_arch = "arm",
54668    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54669)]
54670pub fn vsraq_n_s32<const N: i32>(a: int32x4_t, b: int32x4_t) -> int32x4_t {
54671    static_assert!(N >= 1 && N <= 32);
54672    unsafe { simd_add(a, vshrq_n_s32::<N>(b)) }
54673}
54674#[doc = "Signed shift right and accumulate"]
54675#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsra_n_s64)"]
54676#[inline]
54677#[target_feature(enable = "neon")]
54678#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54679#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
54680#[cfg_attr(
54681    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54682    assert_instr(ssra, N = 2)
54683)]
54684#[rustc_legacy_const_generics(2)]
54685#[cfg_attr(
54686    not(target_arch = "arm"),
54687    stable(feature = "neon_intrinsics", since = "1.59.0")
54688)]
54689#[cfg_attr(
54690    target_arch = "arm",
54691    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54692)]
54693pub fn vsra_n_s64<const N: i32>(a: int64x1_t, b: int64x1_t) -> int64x1_t {
54694    static_assert!(N >= 1 && N <= 64);
54695    unsafe { simd_add(a, vshr_n_s64::<N>(b)) }
54696}
54697#[doc = "Signed shift right and accumulate"]
54698#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsraq_n_s64)"]
54699#[inline]
54700#[target_feature(enable = "neon")]
54701#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54702#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
54703#[cfg_attr(
54704    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54705    assert_instr(ssra, N = 2)
54706)]
54707#[rustc_legacy_const_generics(2)]
54708#[cfg_attr(
54709    not(target_arch = "arm"),
54710    stable(feature = "neon_intrinsics", since = "1.59.0")
54711)]
54712#[cfg_attr(
54713    target_arch = "arm",
54714    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54715)]
54716pub fn vsraq_n_s64<const N: i32>(a: int64x2_t, b: int64x2_t) -> int64x2_t {
54717    static_assert!(N >= 1 && N <= 64);
54718    unsafe { simd_add(a, vshrq_n_s64::<N>(b)) }
54719}
54720#[doc = "Unsigned shift right and accumulate"]
54721#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsra_n_u8)"]
54722#[inline]
54723#[target_feature(enable = "neon")]
54724#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54725#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
54726#[cfg_attr(
54727    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54728    assert_instr(usra, N = 2)
54729)]
54730#[rustc_legacy_const_generics(2)]
54731#[cfg_attr(
54732    not(target_arch = "arm"),
54733    stable(feature = "neon_intrinsics", since = "1.59.0")
54734)]
54735#[cfg_attr(
54736    target_arch = "arm",
54737    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54738)]
54739pub fn vsra_n_u8<const N: i32>(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
54740    static_assert!(N >= 1 && N <= 8);
54741    unsafe { simd_add(a, vshr_n_u8::<N>(b)) }
54742}
54743#[doc = "Unsigned shift right and accumulate"]
54744#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsraq_n_u8)"]
54745#[inline]
54746#[target_feature(enable = "neon")]
54747#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54748#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
54749#[cfg_attr(
54750    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54751    assert_instr(usra, N = 2)
54752)]
54753#[rustc_legacy_const_generics(2)]
54754#[cfg_attr(
54755    not(target_arch = "arm"),
54756    stable(feature = "neon_intrinsics", since = "1.59.0")
54757)]
54758#[cfg_attr(
54759    target_arch = "arm",
54760    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54761)]
54762pub fn vsraq_n_u8<const N: i32>(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
54763    static_assert!(N >= 1 && N <= 8);
54764    unsafe { simd_add(a, vshrq_n_u8::<N>(b)) }
54765}
54766#[doc = "Unsigned shift right and accumulate"]
54767#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsra_n_u16)"]
54768#[inline]
54769#[target_feature(enable = "neon")]
54770#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54771#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
54772#[cfg_attr(
54773    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54774    assert_instr(usra, N = 2)
54775)]
54776#[rustc_legacy_const_generics(2)]
54777#[cfg_attr(
54778    not(target_arch = "arm"),
54779    stable(feature = "neon_intrinsics", since = "1.59.0")
54780)]
54781#[cfg_attr(
54782    target_arch = "arm",
54783    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54784)]
54785pub fn vsra_n_u16<const N: i32>(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
54786    static_assert!(N >= 1 && N <= 16);
54787    unsafe { simd_add(a, vshr_n_u16::<N>(b)) }
54788}
54789#[doc = "Unsigned shift right and accumulate"]
54790#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsraq_n_u16)"]
54791#[inline]
54792#[target_feature(enable = "neon")]
54793#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54794#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
54795#[cfg_attr(
54796    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54797    assert_instr(usra, N = 2)
54798)]
54799#[rustc_legacy_const_generics(2)]
54800#[cfg_attr(
54801    not(target_arch = "arm"),
54802    stable(feature = "neon_intrinsics", since = "1.59.0")
54803)]
54804#[cfg_attr(
54805    target_arch = "arm",
54806    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54807)]
54808pub fn vsraq_n_u16<const N: i32>(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
54809    static_assert!(N >= 1 && N <= 16);
54810    unsafe { simd_add(a, vshrq_n_u16::<N>(b)) }
54811}
54812#[doc = "Unsigned shift right and accumulate"]
54813#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsra_n_u32)"]
54814#[inline]
54815#[target_feature(enable = "neon")]
54816#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54817#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
54818#[cfg_attr(
54819    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54820    assert_instr(usra, N = 2)
54821)]
54822#[rustc_legacy_const_generics(2)]
54823#[cfg_attr(
54824    not(target_arch = "arm"),
54825    stable(feature = "neon_intrinsics", since = "1.59.0")
54826)]
54827#[cfg_attr(
54828    target_arch = "arm",
54829    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54830)]
54831pub fn vsra_n_u32<const N: i32>(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
54832    static_assert!(N >= 1 && N <= 32);
54833    unsafe { simd_add(a, vshr_n_u32::<N>(b)) }
54834}
54835#[doc = "Unsigned shift right and accumulate"]
54836#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsraq_n_u32)"]
54837#[inline]
54838#[target_feature(enable = "neon")]
54839#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54840#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
54841#[cfg_attr(
54842    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54843    assert_instr(usra, N = 2)
54844)]
54845#[rustc_legacy_const_generics(2)]
54846#[cfg_attr(
54847    not(target_arch = "arm"),
54848    stable(feature = "neon_intrinsics", since = "1.59.0")
54849)]
54850#[cfg_attr(
54851    target_arch = "arm",
54852    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54853)]
54854pub fn vsraq_n_u32<const N: i32>(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
54855    static_assert!(N >= 1 && N <= 32);
54856    unsafe { simd_add(a, vshrq_n_u32::<N>(b)) }
54857}
54858#[doc = "Unsigned shift right and accumulate"]
54859#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsra_n_u64)"]
54860#[inline]
54861#[target_feature(enable = "neon")]
54862#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54863#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
54864#[cfg_attr(
54865    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54866    assert_instr(usra, N = 2)
54867)]
54868#[rustc_legacy_const_generics(2)]
54869#[cfg_attr(
54870    not(target_arch = "arm"),
54871    stable(feature = "neon_intrinsics", since = "1.59.0")
54872)]
54873#[cfg_attr(
54874    target_arch = "arm",
54875    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54876)]
54877pub fn vsra_n_u64<const N: i32>(a: uint64x1_t, b: uint64x1_t) -> uint64x1_t {
54878    static_assert!(N >= 1 && N <= 64);
54879    unsafe { simd_add(a, vshr_n_u64::<N>(b)) }
54880}
54881#[doc = "Unsigned shift right and accumulate"]
54882#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsraq_n_u64)"]
54883#[inline]
54884#[target_feature(enable = "neon")]
54885#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54886#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
54887#[cfg_attr(
54888    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54889    assert_instr(usra, N = 2)
54890)]
54891#[rustc_legacy_const_generics(2)]
54892#[cfg_attr(
54893    not(target_arch = "arm"),
54894    stable(feature = "neon_intrinsics", since = "1.59.0")
54895)]
54896#[cfg_attr(
54897    target_arch = "arm",
54898    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54899)]
54900pub fn vsraq_n_u64<const N: i32>(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
54901    static_assert!(N >= 1 && N <= 64);
54902    unsafe { simd_add(a, vshrq_n_u64::<N>(b)) }
54903}
54904#[doc = "Shift Right and Insert (immediate)"]
54905#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsri_n_s8)"]
54906#[inline]
54907#[target_feature(enable = "neon,v7")]
54908#[cfg(target_arch = "arm")]
54909#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
54910#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.8", N = 1))]
54911#[rustc_legacy_const_generics(2)]
54912pub fn vsri_n_s8<const N: i32>(a: int8x8_t, b: int8x8_t) -> int8x8_t {
54913    static_assert!(1 <= N && N <= 8);
54914    vshiftins_v8i8(a, b, int8x8_t::splat(-N as i8))
54915}
54916#[doc = "Shift Right and Insert (immediate)"]
54917#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsriq_n_s8)"]
54918#[inline]
54919#[target_feature(enable = "neon,v7")]
54920#[cfg(target_arch = "arm")]
54921#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
54922#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.8", N = 1))]
54923#[rustc_legacy_const_generics(2)]
54924pub fn vsriq_n_s8<const N: i32>(a: int8x16_t, b: int8x16_t) -> int8x16_t {
54925    static_assert!(1 <= N && N <= 8);
54926    vshiftins_v16i8(a, b, int8x16_t::splat(-N as i8))
54927}
54928#[doc = "Shift Right and Insert (immediate)"]
54929#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsri_n_s16)"]
54930#[inline]
54931#[target_feature(enable = "neon,v7")]
54932#[cfg(target_arch = "arm")]
54933#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
54934#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.16", N = 1))]
54935#[rustc_legacy_const_generics(2)]
54936pub fn vsri_n_s16<const N: i32>(a: int16x4_t, b: int16x4_t) -> int16x4_t {
54937    static_assert!(1 <= N && N <= 16);
54938    vshiftins_v4i16(a, b, int16x4_t::splat(-N as i16))
54939}
54940#[doc = "Shift Right and Insert (immediate)"]
54941#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsriq_n_s16)"]
54942#[inline]
54943#[target_feature(enable = "neon,v7")]
54944#[cfg(target_arch = "arm")]
54945#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
54946#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.16", N = 1))]
54947#[rustc_legacy_const_generics(2)]
54948pub fn vsriq_n_s16<const N: i32>(a: int16x8_t, b: int16x8_t) -> int16x8_t {
54949    static_assert!(1 <= N && N <= 16);
54950    vshiftins_v8i16(a, b, int16x8_t::splat(-N as i16))
54951}
54952#[doc = "Shift Right and Insert (immediate)"]
54953#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsri_n_s32)"]
54954#[inline]
54955#[target_feature(enable = "neon,v7")]
54956#[cfg(target_arch = "arm")]
54957#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
54958#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.32", N = 1))]
54959#[rustc_legacy_const_generics(2)]
54960pub fn vsri_n_s32<const N: i32>(a: int32x2_t, b: int32x2_t) -> int32x2_t {
54961    static_assert!(1 <= N && N <= 32);
54962    vshiftins_v2i32(a, b, int32x2_t::splat(-N))
54963}
54964#[doc = "Shift Right and Insert (immediate)"]
54965#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsriq_n_s32)"]
54966#[inline]
54967#[target_feature(enable = "neon,v7")]
54968#[cfg(target_arch = "arm")]
54969#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
54970#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.32", N = 1))]
54971#[rustc_legacy_const_generics(2)]
54972pub fn vsriq_n_s32<const N: i32>(a: int32x4_t, b: int32x4_t) -> int32x4_t {
54973    static_assert!(1 <= N && N <= 32);
54974    vshiftins_v4i32(a, b, int32x4_t::splat(-N))
54975}
54976#[doc = "Shift Right and Insert (immediate)"]
54977#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsri_n_s64)"]
54978#[inline]
54979#[target_feature(enable = "neon,v7")]
54980#[cfg(target_arch = "arm")]
54981#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
54982#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.64", N = 1))]
54983#[rustc_legacy_const_generics(2)]
54984pub fn vsri_n_s64<const N: i32>(a: int64x1_t, b: int64x1_t) -> int64x1_t {
54985    static_assert!(1 <= N && N <= 64);
54986    vshiftins_v1i64(a, b, int64x1_t::splat(-N as i64))
54987}
54988#[doc = "Shift Right and Insert (immediate)"]
54989#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsriq_n_s64)"]
54990#[inline]
54991#[target_feature(enable = "neon,v7")]
54992#[cfg(target_arch = "arm")]
54993#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
54994#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.64", N = 1))]
54995#[rustc_legacy_const_generics(2)]
54996pub fn vsriq_n_s64<const N: i32>(a: int64x2_t, b: int64x2_t) -> int64x2_t {
54997    static_assert!(1 <= N && N <= 64);
54998    vshiftins_v2i64(a, b, int64x2_t::splat(-N as i64))
54999}
55000#[doc = "Shift Right and Insert (immediate)"]
55001#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsri_n_u8)"]
55002#[inline]
55003#[cfg(target_arch = "arm")]
55004#[target_feature(enable = "neon,v7")]
55005#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
55006#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.8", N = 1))]
55007#[rustc_legacy_const_generics(2)]
55008pub fn vsri_n_u8<const N: i32>(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
55009    static_assert!(1 <= N && N <= 8);
55010    unsafe {
55011        transmute(vshiftins_v8i8(
55012            transmute(a),
55013            transmute(b),
55014            int8x8_t::splat(-N as i8),
55015        ))
55016    }
55017}
55018#[doc = "Shift Right and Insert (immediate)"]
55019#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsriq_n_u8)"]
55020#[inline]
55021#[cfg(target_arch = "arm")]
55022#[target_feature(enable = "neon,v7")]
55023#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
55024#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.8", N = 1))]
55025#[rustc_legacy_const_generics(2)]
55026pub fn vsriq_n_u8<const N: i32>(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
55027    static_assert!(1 <= N && N <= 8);
55028    unsafe {
55029        transmute(vshiftins_v16i8(
55030            transmute(a),
55031            transmute(b),
55032            int8x16_t::splat(-N as i8),
55033        ))
55034    }
55035}
55036#[doc = "Shift Right and Insert (immediate)"]
55037#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsri_n_u16)"]
55038#[inline]
55039#[cfg(target_arch = "arm")]
55040#[target_feature(enable = "neon,v7")]
55041#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
55042#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.16", N = 1))]
55043#[rustc_legacy_const_generics(2)]
55044pub fn vsri_n_u16<const N: i32>(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
55045    static_assert!(1 <= N && N <= 16);
55046    unsafe {
55047        transmute(vshiftins_v4i16(
55048            transmute(a),
55049            transmute(b),
55050            int16x4_t::splat(-N as i16),
55051        ))
55052    }
55053}
55054#[doc = "Shift Right and Insert (immediate)"]
55055#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsriq_n_u16)"]
55056#[inline]
55057#[cfg(target_arch = "arm")]
55058#[target_feature(enable = "neon,v7")]
55059#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
55060#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.16", N = 1))]
55061#[rustc_legacy_const_generics(2)]
55062pub fn vsriq_n_u16<const N: i32>(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
55063    static_assert!(1 <= N && N <= 16);
55064    unsafe {
55065        transmute(vshiftins_v8i16(
55066            transmute(a),
55067            transmute(b),
55068            int16x8_t::splat(-N as i16),
55069        ))
55070    }
55071}
55072#[doc = "Shift Right and Insert (immediate)"]
55073#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsri_n_u32)"]
55074#[inline]
55075#[cfg(target_arch = "arm")]
55076#[target_feature(enable = "neon,v7")]
55077#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
55078#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.32", N = 1))]
55079#[rustc_legacy_const_generics(2)]
55080pub fn vsri_n_u32<const N: i32>(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
55081    static_assert!(1 <= N && N <= 32);
55082    unsafe {
55083        transmute(vshiftins_v2i32(
55084            transmute(a),
55085            transmute(b),
55086            int32x2_t::splat(-N),
55087        ))
55088    }
55089}
55090#[doc = "Shift Right and Insert (immediate)"]
55091#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsriq_n_u32)"]
55092#[inline]
55093#[cfg(target_arch = "arm")]
55094#[target_feature(enable = "neon,v7")]
55095#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
55096#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.32", N = 1))]
55097#[rustc_legacy_const_generics(2)]
55098pub fn vsriq_n_u32<const N: i32>(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
55099    static_assert!(1 <= N && N <= 32);
55100    unsafe {
55101        transmute(vshiftins_v4i32(
55102            transmute(a),
55103            transmute(b),
55104            int32x4_t::splat(-N),
55105        ))
55106    }
55107}
55108#[doc = "Shift Right and Insert (immediate)"]
55109#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsri_n_u64)"]
55110#[inline]
55111#[cfg(target_arch = "arm")]
55112#[target_feature(enable = "neon,v7")]
55113#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
55114#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.64", N = 1))]
55115#[rustc_legacy_const_generics(2)]
55116pub fn vsri_n_u64<const N: i32>(a: uint64x1_t, b: uint64x1_t) -> uint64x1_t {
55117    static_assert!(1 <= N && N <= 64);
55118    unsafe {
55119        transmute(vshiftins_v1i64(
55120            transmute(a),
55121            transmute(b),
55122            int64x1_t::splat(-N as i64),
55123        ))
55124    }
55125}
55126#[doc = "Shift Right and Insert (immediate)"]
55127#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsriq_n_u64)"]
55128#[inline]
55129#[cfg(target_arch = "arm")]
55130#[target_feature(enable = "neon,v7")]
55131#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
55132#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.64", N = 1))]
55133#[rustc_legacy_const_generics(2)]
55134pub fn vsriq_n_u64<const N: i32>(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
55135    static_assert!(1 <= N && N <= 64);
55136    unsafe {
55137        transmute(vshiftins_v2i64(
55138            transmute(a),
55139            transmute(b),
55140            int64x2_t::splat(-N as i64),
55141        ))
55142    }
55143}
55144#[doc = "Shift Right and Insert (immediate)"]
55145#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsri_n_p8)"]
55146#[inline]
55147#[cfg(target_arch = "arm")]
55148#[target_feature(enable = "neon,v7")]
55149#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
55150#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.8", N = 1))]
55151#[rustc_legacy_const_generics(2)]
55152pub fn vsri_n_p8<const N: i32>(a: poly8x8_t, b: poly8x8_t) -> poly8x8_t {
55153    static_assert!(1 <= N && N <= 8);
55154    unsafe {
55155        transmute(vshiftins_v8i8(
55156            transmute(a),
55157            transmute(b),
55158            int8x8_t::splat(-N as i8),
55159        ))
55160    }
55161}
55162#[doc = "Shift Right and Insert (immediate)"]
55163#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsriq_n_p8)"]
55164#[inline]
55165#[cfg(target_arch = "arm")]
55166#[target_feature(enable = "neon,v7")]
55167#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
55168#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.8", N = 1))]
55169#[rustc_legacy_const_generics(2)]
55170pub fn vsriq_n_p8<const N: i32>(a: poly8x16_t, b: poly8x16_t) -> poly8x16_t {
55171    static_assert!(1 <= N && N <= 8);
55172    unsafe {
55173        transmute(vshiftins_v16i8(
55174            transmute(a),
55175            transmute(b),
55176            int8x16_t::splat(-N as i8),
55177        ))
55178    }
55179}
55180#[doc = "Shift Right and Insert (immediate)"]
55181#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsri_n_p16)"]
55182#[inline]
55183#[cfg(target_arch = "arm")]
55184#[target_feature(enable = "neon,v7")]
55185#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
55186#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.16", N = 1))]
55187#[rustc_legacy_const_generics(2)]
55188pub fn vsri_n_p16<const N: i32>(a: poly16x4_t, b: poly16x4_t) -> poly16x4_t {
55189    static_assert!(1 <= N && N <= 16);
55190    unsafe {
55191        transmute(vshiftins_v4i16(
55192            transmute(a),
55193            transmute(b),
55194            int16x4_t::splat(-N as i16),
55195        ))
55196    }
55197}
55198#[doc = "Shift Right and Insert (immediate)"]
55199#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsriq_n_p16)"]
55200#[inline]
55201#[cfg(target_arch = "arm")]
55202#[target_feature(enable = "neon,v7")]
55203#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
55204#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.16", N = 1))]
55205#[rustc_legacy_const_generics(2)]
55206pub fn vsriq_n_p16<const N: i32>(a: poly16x8_t, b: poly16x8_t) -> poly16x8_t {
55207    static_assert!(1 <= N && N <= 16);
55208    unsafe {
55209        transmute(vshiftins_v8i16(
55210            transmute(a),
55211            transmute(b),
55212            int16x8_t::splat(-N as i16),
55213        ))
55214    }
55215}
55216#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
55217#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_f16)"]
55218#[doc = "## Safety"]
55219#[doc = "  * Neon instrinsic unsafe"]
55220#[inline]
55221#[cfg(target_arch = "arm")]
55222#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55223#[target_feature(enable = "neon,fp16")]
55224#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
55225#[cfg(not(target_arch = "arm64ec"))]
55226#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.16"))]
55227pub unsafe fn vst1_f16(ptr: *mut f16, a: float16x4_t) {
55228    vst1_v4f16(
55229        ptr as *const i8,
55230        transmute(a),
55231        crate::mem::align_of::<f16>() as i32,
55232    )
55233}
55234#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
55235#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_f16)"]
55236#[doc = "## Safety"]
55237#[doc = "  * Neon instrinsic unsafe"]
55238#[inline]
55239#[cfg(target_arch = "arm")]
55240#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55241#[target_feature(enable = "neon,fp16")]
55242#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
55243#[cfg(not(target_arch = "arm64ec"))]
55244#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.16"))]
55245pub unsafe fn vst1q_f16(ptr: *mut f16, a: float16x8_t) {
55246    vst1q_v8f16(
55247        ptr as *const i8,
55248        transmute(a),
55249        crate::mem::align_of::<f16>() as i32,
55250    )
55251}
55252#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
55253#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_f16_x2)"]
55254#[doc = "## Safety"]
55255#[doc = "  * Neon instrinsic unsafe"]
55256#[inline]
55257#[cfg(target_arch = "arm")]
55258#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55259#[cfg_attr(test, assert_instr(vst1))]
55260#[target_feature(enable = "neon,fp16")]
55261#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
55262#[cfg(not(target_arch = "arm64ec"))]
55263pub unsafe fn vst1_f16_x2(a: *mut f16, b: float16x4x2_t) {
55264    unsafe extern "unadjusted" {
55265        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x2.p0.v4f16")]
55266        fn _vst1_f16_x2(ptr: *mut f16, a: float16x4_t, b: float16x4_t);
55267    }
55268    _vst1_f16_x2(a, b.0, b.1)
55269}
55270#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
55271#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_f16_x2)"]
55272#[doc = "## Safety"]
55273#[doc = "  * Neon instrinsic unsafe"]
55274#[inline]
55275#[cfg(target_arch = "arm")]
55276#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55277#[cfg_attr(test, assert_instr(vst1))]
55278#[target_feature(enable = "neon,fp16")]
55279#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
55280#[cfg(not(target_arch = "arm64ec"))]
55281pub unsafe fn vst1q_f16_x2(a: *mut f16, b: float16x8x2_t) {
55282    unsafe extern "unadjusted" {
55283        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x2.p0.v8f16")]
55284        fn _vst1q_f16_x2(ptr: *mut f16, a: float16x8_t, b: float16x8_t);
55285    }
55286    _vst1q_f16_x2(a, b.0, b.1)
55287}
55288#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
55289#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_f16_x2)"]
55290#[doc = "## Safety"]
55291#[doc = "  * Neon instrinsic unsafe"]
55292#[inline]
55293#[cfg(not(target_arch = "arm"))]
55294#[cfg_attr(test, assert_instr(st1))]
55295#[target_feature(enable = "neon,fp16")]
55296#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
55297#[cfg(not(target_arch = "arm64ec"))]
55298pub unsafe fn vst1_f16_x2(a: *mut f16, b: float16x4x2_t) {
55299    unsafe extern "unadjusted" {
55300        #[cfg_attr(
55301            any(target_arch = "aarch64", target_arch = "arm64ec"),
55302            link_name = "llvm.aarch64.neon.st1x2.v4f16.p0"
55303        )]
55304        fn _vst1_f16_x2(a: float16x4_t, b: float16x4_t, ptr: *mut f16);
55305    }
55306    _vst1_f16_x2(b.0, b.1, a)
55307}
55308#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
55309#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_f16_x2)"]
55310#[doc = "## Safety"]
55311#[doc = "  * Neon instrinsic unsafe"]
55312#[inline]
55313#[cfg(not(target_arch = "arm"))]
55314#[cfg_attr(test, assert_instr(st1))]
55315#[target_feature(enable = "neon,fp16")]
55316#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
55317#[cfg(not(target_arch = "arm64ec"))]
55318pub unsafe fn vst1q_f16_x2(a: *mut f16, b: float16x8x2_t) {
55319    unsafe extern "unadjusted" {
55320        #[cfg_attr(
55321            any(target_arch = "aarch64", target_arch = "arm64ec"),
55322            link_name = "llvm.aarch64.neon.st1x2.v8f16.p0"
55323        )]
55324        fn _vst1q_f16_x2(a: float16x8_t, b: float16x8_t, ptr: *mut f16);
55325    }
55326    _vst1q_f16_x2(b.0, b.1, a)
55327}
55328#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
55329#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_f16_x3)"]
55330#[doc = "## Safety"]
55331#[doc = "  * Neon instrinsic unsafe"]
55332#[inline]
55333#[cfg(target_arch = "arm")]
55334#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55335#[cfg_attr(test, assert_instr(vst1))]
55336#[target_feature(enable = "neon,fp16")]
55337#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
55338#[cfg(not(target_arch = "arm64ec"))]
55339pub unsafe fn vst1_f16_x3(a: *mut f16, b: float16x4x3_t) {
55340    unsafe extern "unadjusted" {
55341        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x3.p0.v4f16")]
55342        fn _vst1_f16_x3(ptr: *mut f16, a: float16x4_t, b: float16x4_t, c: float16x4_t);
55343    }
55344    _vst1_f16_x3(a, b.0, b.1, b.2)
55345}
55346#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
55347#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_f16_x3)"]
55348#[doc = "## Safety"]
55349#[doc = "  * Neon instrinsic unsafe"]
55350#[inline]
55351#[cfg(target_arch = "arm")]
55352#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55353#[cfg_attr(test, assert_instr(vst1))]
55354#[target_feature(enable = "neon,fp16")]
55355#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
55356#[cfg(not(target_arch = "arm64ec"))]
55357pub unsafe fn vst1q_f16_x3(a: *mut f16, b: float16x8x3_t) {
55358    unsafe extern "unadjusted" {
55359        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x3.p0.v8f16")]
55360        fn _vst1q_f16_x3(ptr: *mut f16, a: float16x8_t, b: float16x8_t, c: float16x8_t);
55361    }
55362    _vst1q_f16_x3(a, b.0, b.1, b.2)
55363}
55364#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
55365#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_f16_x3)"]
55366#[doc = "## Safety"]
55367#[doc = "  * Neon instrinsic unsafe"]
55368#[inline]
55369#[cfg(not(target_arch = "arm"))]
55370#[cfg_attr(test, assert_instr(st1))]
55371#[target_feature(enable = "neon,fp16")]
55372#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
55373#[cfg(not(target_arch = "arm64ec"))]
55374pub unsafe fn vst1_f16_x3(a: *mut f16, b: float16x4x3_t) {
55375    unsafe extern "unadjusted" {
55376        #[cfg_attr(
55377            any(target_arch = "aarch64", target_arch = "arm64ec"),
55378            link_name = "llvm.aarch64.neon.st1x3.v4f16.p0"
55379        )]
55380        fn _vst1_f16_x3(a: float16x4_t, b: float16x4_t, c: float16x4_t, ptr: *mut f16);
55381    }
55382    _vst1_f16_x3(b.0, b.1, b.2, a)
55383}
55384#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
55385#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_f16_x3)"]
55386#[doc = "## Safety"]
55387#[doc = "  * Neon instrinsic unsafe"]
55388#[inline]
55389#[cfg(not(target_arch = "arm"))]
55390#[cfg_attr(test, assert_instr(st1))]
55391#[target_feature(enable = "neon,fp16")]
55392#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
55393#[cfg(not(target_arch = "arm64ec"))]
55394pub unsafe fn vst1q_f16_x3(a: *mut f16, b: float16x8x3_t) {
55395    unsafe extern "unadjusted" {
55396        #[cfg_attr(
55397            any(target_arch = "aarch64", target_arch = "arm64ec"),
55398            link_name = "llvm.aarch64.neon.st1x3.v8f16.p0"
55399        )]
55400        fn _vst1q_f16_x3(a: float16x8_t, b: float16x8_t, c: float16x8_t, ptr: *mut f16);
55401    }
55402    _vst1q_f16_x3(b.0, b.1, b.2, a)
55403}
55404#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
55405#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_f16_x4)"]
55406#[doc = "## Safety"]
55407#[doc = "  * Neon instrinsic unsafe"]
55408#[inline]
55409#[cfg(target_arch = "arm")]
55410#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55411#[target_feature(enable = "neon,fp16")]
55412#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
55413#[cfg(not(target_arch = "arm64ec"))]
55414#[cfg_attr(test, assert_instr(vst1))]
55415pub unsafe fn vst1_f16_x4(a: *mut f16, b: float16x4x4_t) {
55416    unsafe extern "unadjusted" {
55417        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x4.p0.v4f16")]
55418        fn _vst1_f16_x4(
55419            ptr: *mut f16,
55420            a: float16x4_t,
55421            b: float16x4_t,
55422            c: float16x4_t,
55423            d: float16x4_t,
55424        );
55425    }
55426    _vst1_f16_x4(a, b.0, b.1, b.2, b.3)
55427}
55428#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
55429#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_f16_x4)"]
55430#[doc = "## Safety"]
55431#[doc = "  * Neon instrinsic unsafe"]
55432#[inline]
55433#[cfg(target_arch = "arm")]
55434#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55435#[target_feature(enable = "neon,fp16")]
55436#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
55437#[cfg(not(target_arch = "arm64ec"))]
55438#[cfg_attr(test, assert_instr(vst1))]
55439pub unsafe fn vst1q_f16_x4(a: *mut f16, b: float16x8x4_t) {
55440    unsafe extern "unadjusted" {
55441        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x4.p0.v8f16")]
55442        fn _vst1q_f16_x4(
55443            ptr: *mut f16,
55444            a: float16x8_t,
55445            b: float16x8_t,
55446            c: float16x8_t,
55447            d: float16x8_t,
55448        );
55449    }
55450    _vst1q_f16_x4(a, b.0, b.1, b.2, b.3)
55451}
55452#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
55453#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_f16_x4)"]
55454#[doc = "## Safety"]
55455#[doc = "  * Neon instrinsic unsafe"]
55456#[inline]
55457#[cfg(not(target_arch = "arm"))]
55458#[cfg_attr(test, assert_instr(st1))]
55459#[target_feature(enable = "neon,fp16")]
55460#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
55461#[cfg(not(target_arch = "arm64ec"))]
55462pub unsafe fn vst1_f16_x4(a: *mut f16, b: float16x4x4_t) {
55463    unsafe extern "unadjusted" {
55464        #[cfg_attr(
55465            any(target_arch = "aarch64", target_arch = "arm64ec"),
55466            link_name = "llvm.aarch64.neon.st1x4.v4f16.p0"
55467        )]
55468        fn _vst1_f16_x4(
55469            a: float16x4_t,
55470            b: float16x4_t,
55471            c: float16x4_t,
55472            d: float16x4_t,
55473            ptr: *mut f16,
55474        );
55475    }
55476    _vst1_f16_x4(b.0, b.1, b.2, b.3, a)
55477}
55478#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
55479#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_f16_x4)"]
55480#[doc = "## Safety"]
55481#[doc = "  * Neon instrinsic unsafe"]
55482#[inline]
55483#[cfg(not(target_arch = "arm"))]
55484#[cfg_attr(test, assert_instr(st1))]
55485#[target_feature(enable = "neon,fp16")]
55486#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
55487#[cfg(not(target_arch = "arm64ec"))]
55488pub unsafe fn vst1q_f16_x4(a: *mut f16, b: float16x8x4_t) {
55489    unsafe extern "unadjusted" {
55490        #[cfg_attr(
55491            any(target_arch = "aarch64", target_arch = "arm64ec"),
55492            link_name = "llvm.aarch64.neon.st1x4.v8f16.p0"
55493        )]
55494        fn _vst1q_f16_x4(
55495            a: float16x8_t,
55496            b: float16x8_t,
55497            c: float16x8_t,
55498            d: float16x8_t,
55499            ptr: *mut f16,
55500        );
55501    }
55502    _vst1q_f16_x4(b.0, b.1, b.2, b.3, a)
55503}
55504#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
55505#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_f32)"]
55506#[doc = "## Safety"]
55507#[doc = "  * Neon instrinsic unsafe"]
55508#[inline]
55509#[target_feature(enable = "neon")]
55510#[cfg(target_arch = "arm")]
55511#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55512#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
55513#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.32"))]
55514pub unsafe fn vst1_f32(ptr: *mut f32, a: float32x2_t) {
55515    vst1_v2f32(
55516        ptr as *const i8,
55517        transmute(a),
55518        crate::mem::align_of::<f32>() as i32,
55519    )
55520}
55521#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
55522#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_f32)"]
55523#[doc = "## Safety"]
55524#[doc = "  * Neon instrinsic unsafe"]
55525#[inline]
55526#[target_feature(enable = "neon")]
55527#[cfg(target_arch = "arm")]
55528#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55529#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
55530#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.32"))]
55531pub unsafe fn vst1q_f32(ptr: *mut f32, a: float32x4_t) {
55532    vst1q_v4f32(
55533        ptr as *const i8,
55534        transmute(a),
55535        crate::mem::align_of::<f32>() as i32,
55536    )
55537}
55538#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
55539#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s8)"]
55540#[doc = "## Safety"]
55541#[doc = "  * Neon instrinsic unsafe"]
55542#[inline]
55543#[target_feature(enable = "neon")]
55544#[cfg(target_arch = "arm")]
55545#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55546#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
55547#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.8"))]
55548pub unsafe fn vst1_s8(ptr: *mut i8, a: int8x8_t) {
55549    vst1_v8i8(ptr as *const i8, a, crate::mem::align_of::<i8>() as i32)
55550}
55551#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
55552#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s8)"]
55553#[doc = "## Safety"]
55554#[doc = "  * Neon instrinsic unsafe"]
55555#[inline]
55556#[target_feature(enable = "neon")]
55557#[cfg(target_arch = "arm")]
55558#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55559#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
55560#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.8"))]
55561pub unsafe fn vst1q_s8(ptr: *mut i8, a: int8x16_t) {
55562    vst1q_v16i8(ptr as *const i8, a, crate::mem::align_of::<i8>() as i32)
55563}
55564#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
55565#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s16)"]
55566#[doc = "## Safety"]
55567#[doc = "  * Neon instrinsic unsafe"]
55568#[inline]
55569#[target_feature(enable = "neon")]
55570#[cfg(target_arch = "arm")]
55571#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55572#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
55573#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.16"))]
55574pub unsafe fn vst1_s16(ptr: *mut i16, a: int16x4_t) {
55575    vst1_v4i16(ptr as *const i8, a, crate::mem::align_of::<i16>() as i32)
55576}
55577#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
55578#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s16)"]
55579#[doc = "## Safety"]
55580#[doc = "  * Neon instrinsic unsafe"]
55581#[inline]
55582#[target_feature(enable = "neon")]
55583#[cfg(target_arch = "arm")]
55584#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55585#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
55586#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.16"))]
55587pub unsafe fn vst1q_s16(ptr: *mut i16, a: int16x8_t) {
55588    vst1q_v8i16(ptr as *const i8, a, crate::mem::align_of::<i16>() as i32)
55589}
55590#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
55591#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s32)"]
55592#[doc = "## Safety"]
55593#[doc = "  * Neon instrinsic unsafe"]
55594#[inline]
55595#[target_feature(enable = "neon")]
55596#[cfg(target_arch = "arm")]
55597#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55598#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
55599#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.32"))]
55600pub unsafe fn vst1_s32(ptr: *mut i32, a: int32x2_t) {
55601    vst1_v2i32(ptr as *const i8, a, crate::mem::align_of::<i32>() as i32)
55602}
55603#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
55604#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s32)"]
55605#[doc = "## Safety"]
55606#[doc = "  * Neon instrinsic unsafe"]
55607#[inline]
55608#[target_feature(enable = "neon")]
55609#[cfg(target_arch = "arm")]
55610#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55611#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
55612#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.32"))]
55613pub unsafe fn vst1q_s32(ptr: *mut i32, a: int32x4_t) {
55614    vst1q_v4i32(ptr as *const i8, a, crate::mem::align_of::<i32>() as i32)
55615}
55616#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
55617#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s64)"]
55618#[doc = "## Safety"]
55619#[doc = "  * Neon instrinsic unsafe"]
55620#[inline]
55621#[target_feature(enable = "neon")]
55622#[cfg(target_arch = "arm")]
55623#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55624#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
55625#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.64"))]
55626pub unsafe fn vst1_s64(ptr: *mut i64, a: int64x1_t) {
55627    vst1_v1i64(ptr as *const i8, a, crate::mem::align_of::<i64>() as i32)
55628}
55629#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
55630#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s64)"]
55631#[doc = "## Safety"]
55632#[doc = "  * Neon instrinsic unsafe"]
55633#[inline]
55634#[target_feature(enable = "neon")]
55635#[cfg(target_arch = "arm")]
55636#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55637#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
55638#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.64"))]
55639pub unsafe fn vst1q_s64(ptr: *mut i64, a: int64x2_t) {
55640    vst1q_v2i64(ptr as *const i8, a, crate::mem::align_of::<i64>() as i32)
55641}
55642#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
55643#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u8)"]
55644#[doc = "## Safety"]
55645#[doc = "  * Neon instrinsic unsafe"]
55646#[inline]
55647#[target_feature(enable = "neon")]
55648#[cfg(target_arch = "arm")]
55649#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55650#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
55651#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.8"))]
55652pub unsafe fn vst1_u8(ptr: *mut u8, a: uint8x8_t) {
55653    vst1_v8i8(
55654        ptr as *const i8,
55655        transmute(a),
55656        crate::mem::align_of::<u8>() as i32,
55657    )
55658}
55659#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
55660#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u8)"]
55661#[doc = "## Safety"]
55662#[doc = "  * Neon instrinsic unsafe"]
55663#[inline]
55664#[target_feature(enable = "neon")]
55665#[cfg(target_arch = "arm")]
55666#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55667#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
55668#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.8"))]
55669pub unsafe fn vst1q_u8(ptr: *mut u8, a: uint8x16_t) {
55670    vst1q_v16i8(
55671        ptr as *const i8,
55672        transmute(a),
55673        crate::mem::align_of::<u8>() as i32,
55674    )
55675}
55676#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
55677#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u16)"]
55678#[doc = "## Safety"]
55679#[doc = "  * Neon instrinsic unsafe"]
55680#[inline]
55681#[target_feature(enable = "neon")]
55682#[cfg(target_arch = "arm")]
55683#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55684#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
55685#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.16"))]
55686pub unsafe fn vst1_u16(ptr: *mut u16, a: uint16x4_t) {
55687    vst1_v4i16(
55688        ptr as *const i8,
55689        transmute(a),
55690        crate::mem::align_of::<u16>() as i32,
55691    )
55692}
55693#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
55694#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u16)"]
55695#[doc = "## Safety"]
55696#[doc = "  * Neon instrinsic unsafe"]
55697#[inline]
55698#[target_feature(enable = "neon")]
55699#[cfg(target_arch = "arm")]
55700#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55701#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
55702#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.16"))]
55703pub unsafe fn vst1q_u16(ptr: *mut u16, a: uint16x8_t) {
55704    vst1q_v8i16(
55705        ptr as *const i8,
55706        transmute(a),
55707        crate::mem::align_of::<u16>() as i32,
55708    )
55709}
55710#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
55711#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u32)"]
55712#[doc = "## Safety"]
55713#[doc = "  * Neon instrinsic unsafe"]
55714#[inline]
55715#[target_feature(enable = "neon")]
55716#[cfg(target_arch = "arm")]
55717#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55718#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
55719#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.32"))]
55720pub unsafe fn vst1_u32(ptr: *mut u32, a: uint32x2_t) {
55721    vst1_v2i32(
55722        ptr as *const i8,
55723        transmute(a),
55724        crate::mem::align_of::<u32>() as i32,
55725    )
55726}
55727#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
55728#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u32)"]
55729#[doc = "## Safety"]
55730#[doc = "  * Neon instrinsic unsafe"]
55731#[inline]
55732#[target_feature(enable = "neon")]
55733#[cfg(target_arch = "arm")]
55734#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55735#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
55736#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.32"))]
55737pub unsafe fn vst1q_u32(ptr: *mut u32, a: uint32x4_t) {
55738    vst1q_v4i32(
55739        ptr as *const i8,
55740        transmute(a),
55741        crate::mem::align_of::<u32>() as i32,
55742    )
55743}
55744#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
55745#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u64)"]
55746#[doc = "## Safety"]
55747#[doc = "  * Neon instrinsic unsafe"]
55748#[inline]
55749#[target_feature(enable = "neon")]
55750#[cfg(target_arch = "arm")]
55751#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55752#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
55753#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.64"))]
55754pub unsafe fn vst1_u64(ptr: *mut u64, a: uint64x1_t) {
55755    vst1_v1i64(
55756        ptr as *const i8,
55757        transmute(a),
55758        crate::mem::align_of::<u64>() as i32,
55759    )
55760}
55761#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
55762#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u64)"]
55763#[doc = "## Safety"]
55764#[doc = "  * Neon instrinsic unsafe"]
55765#[inline]
55766#[target_feature(enable = "neon")]
55767#[cfg(target_arch = "arm")]
55768#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55769#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
55770#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.64"))]
55771pub unsafe fn vst1q_u64(ptr: *mut u64, a: uint64x2_t) {
55772    vst1q_v2i64(
55773        ptr as *const i8,
55774        transmute(a),
55775        crate::mem::align_of::<u64>() as i32,
55776    )
55777}
55778#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
55779#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_p8)"]
55780#[doc = "## Safety"]
55781#[doc = "  * Neon instrinsic unsafe"]
55782#[inline]
55783#[target_feature(enable = "neon")]
55784#[cfg(target_arch = "arm")]
55785#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55786#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
55787#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.8"))]
55788pub unsafe fn vst1_p8(ptr: *mut p8, a: poly8x8_t) {
55789    vst1_v8i8(
55790        ptr as *const i8,
55791        transmute(a),
55792        crate::mem::align_of::<p8>() as i32,
55793    )
55794}
55795#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
55796#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_p8)"]
55797#[doc = "## Safety"]
55798#[doc = "  * Neon instrinsic unsafe"]
55799#[inline]
55800#[target_feature(enable = "neon")]
55801#[cfg(target_arch = "arm")]
55802#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55803#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
55804#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.8"))]
55805pub unsafe fn vst1q_p8(ptr: *mut p8, a: poly8x16_t) {
55806    vst1q_v16i8(
55807        ptr as *const i8,
55808        transmute(a),
55809        crate::mem::align_of::<p8>() as i32,
55810    )
55811}
55812#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
55813#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_p16)"]
55814#[doc = "## Safety"]
55815#[doc = "  * Neon instrinsic unsafe"]
55816#[inline]
55817#[target_feature(enable = "neon")]
55818#[cfg(target_arch = "arm")]
55819#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55820#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
55821#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.16"))]
55822pub unsafe fn vst1_p16(ptr: *mut p16, a: poly16x4_t) {
55823    vst1_v4i16(
55824        ptr as *const i8,
55825        transmute(a),
55826        crate::mem::align_of::<p16>() as i32,
55827    )
55828}
55829#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
55830#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_p16)"]
55831#[doc = "## Safety"]
55832#[doc = "  * Neon instrinsic unsafe"]
55833#[inline]
55834#[target_feature(enable = "neon")]
55835#[cfg(target_arch = "arm")]
55836#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55837#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
55838#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.16"))]
55839pub unsafe fn vst1q_p16(ptr: *mut p16, a: poly16x8_t) {
55840    vst1q_v8i16(
55841        ptr as *const i8,
55842        transmute(a),
55843        crate::mem::align_of::<p16>() as i32,
55844    )
55845}
55846#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
55847#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_p64)"]
55848#[doc = "## Safety"]
55849#[doc = "  * Neon instrinsic unsafe"]
55850#[inline]
55851#[target_feature(enable = "neon")]
55852#[cfg(target_arch = "arm")]
55853#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55854#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
55855#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.64"))]
55856pub unsafe fn vst1_p64(ptr: *mut p64, a: poly64x1_t) {
55857    vst1_v1i64(
55858        ptr as *const i8,
55859        transmute(a),
55860        crate::mem::align_of::<p64>() as i32,
55861    )
55862}
55863#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
55864#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_p64)"]
55865#[doc = "## Safety"]
55866#[doc = "  * Neon instrinsic unsafe"]
55867#[inline]
55868#[target_feature(enable = "neon")]
55869#[cfg(target_arch = "arm")]
55870#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55871#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
55872#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.64"))]
55873pub unsafe fn vst1q_p64(ptr: *mut p64, a: poly64x2_t) {
55874    vst1q_v2i64(
55875        ptr as *const i8,
55876        transmute(a),
55877        crate::mem::align_of::<p64>() as i32,
55878    )
55879}
55880#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
55881#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_f32_x2)"]
55882#[doc = "## Safety"]
55883#[doc = "  * Neon instrinsic unsafe"]
55884#[inline]
55885#[cfg(target_arch = "arm")]
55886#[target_feature(enable = "neon,v7")]
55887#[cfg_attr(test, assert_instr(vst1))]
55888#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
55889pub unsafe fn vst1_f32_x2(a: *mut f32, b: float32x2x2_t) {
55890    unsafe extern "unadjusted" {
55891        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x2.v2f32.p0")]
55892        fn _vst1_f32_x2(ptr: *mut f32, a: float32x2_t, b: float32x2_t);
55893    }
55894    _vst1_f32_x2(a, b.0, b.1)
55895}
55896#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
55897#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_f32_x2)"]
55898#[doc = "## Safety"]
55899#[doc = "  * Neon instrinsic unsafe"]
55900#[inline]
55901#[cfg(target_arch = "arm")]
55902#[target_feature(enable = "neon,v7")]
55903#[cfg_attr(test, assert_instr(vst1))]
55904#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
55905pub unsafe fn vst1q_f32_x2(a: *mut f32, b: float32x4x2_t) {
55906    unsafe extern "unadjusted" {
55907        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x2.v4f32.p0")]
55908        fn _vst1q_f32_x2(ptr: *mut f32, a: float32x4_t, b: float32x4_t);
55909    }
55910    _vst1q_f32_x2(a, b.0, b.1)
55911}
55912#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
55913#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_f32_x2)"]
55914#[doc = "## Safety"]
55915#[doc = "  * Neon instrinsic unsafe"]
55916#[inline]
55917#[target_feature(enable = "neon")]
55918#[cfg(not(target_arch = "arm"))]
55919#[cfg_attr(test, assert_instr(st1))]
55920#[stable(feature = "neon_intrinsics", since = "1.59.0")]
55921pub unsafe fn vst1_f32_x2(a: *mut f32, b: float32x2x2_t) {
55922    unsafe extern "unadjusted" {
55923        #[cfg_attr(
55924            any(target_arch = "aarch64", target_arch = "arm64ec"),
55925            link_name = "llvm.aarch64.neon.st1x2.v2f32.p0"
55926        )]
55927        fn _vst1_f32_x2(a: float32x2_t, b: float32x2_t, ptr: *mut f32);
55928    }
55929    _vst1_f32_x2(b.0, b.1, a)
55930}
55931#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
55932#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_f32_x2)"]
55933#[doc = "## Safety"]
55934#[doc = "  * Neon instrinsic unsafe"]
55935#[inline]
55936#[target_feature(enable = "neon")]
55937#[cfg(not(target_arch = "arm"))]
55938#[cfg_attr(test, assert_instr(st1))]
55939#[stable(feature = "neon_intrinsics", since = "1.59.0")]
55940pub unsafe fn vst1q_f32_x2(a: *mut f32, b: float32x4x2_t) {
55941    unsafe extern "unadjusted" {
55942        #[cfg_attr(
55943            any(target_arch = "aarch64", target_arch = "arm64ec"),
55944            link_name = "llvm.aarch64.neon.st1x2.v4f32.p0"
55945        )]
55946        fn _vst1q_f32_x2(a: float32x4_t, b: float32x4_t, ptr: *mut f32);
55947    }
55948    _vst1q_f32_x2(b.0, b.1, a)
55949}
55950#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
55951#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_f32_x3)"]
55952#[doc = "## Safety"]
55953#[doc = "  * Neon instrinsic unsafe"]
55954#[inline]
55955#[target_feature(enable = "neon")]
55956#[cfg(not(target_arch = "arm"))]
55957#[cfg_attr(test, assert_instr(st1))]
55958#[stable(feature = "neon_intrinsics", since = "1.59.0")]
55959pub unsafe fn vst1_f32_x3(a: *mut f32, b: float32x2x3_t) {
55960    unsafe extern "unadjusted" {
55961        #[cfg_attr(
55962            any(target_arch = "aarch64", target_arch = "arm64ec"),
55963            link_name = "llvm.aarch64.neon.st1x3.v2f32.p0"
55964        )]
55965        fn _vst1_f32_x3(a: float32x2_t, b: float32x2_t, c: float32x2_t, ptr: *mut f32);
55966    }
55967    _vst1_f32_x3(b.0, b.1, b.2, a)
55968}
55969#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
55970#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_f32_x3)"]
55971#[doc = "## Safety"]
55972#[doc = "  * Neon instrinsic unsafe"]
55973#[inline]
55974#[target_feature(enable = "neon")]
55975#[cfg(not(target_arch = "arm"))]
55976#[cfg_attr(test, assert_instr(st1))]
55977#[stable(feature = "neon_intrinsics", since = "1.59.0")]
55978pub unsafe fn vst1q_f32_x3(a: *mut f32, b: float32x4x3_t) {
55979    unsafe extern "unadjusted" {
55980        #[cfg_attr(
55981            any(target_arch = "aarch64", target_arch = "arm64ec"),
55982            link_name = "llvm.aarch64.neon.st1x3.v4f32.p0"
55983        )]
55984        fn _vst1q_f32_x3(a: float32x4_t, b: float32x4_t, c: float32x4_t, ptr: *mut f32);
55985    }
55986    _vst1q_f32_x3(b.0, b.1, b.2, a)
55987}
55988#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
55989#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_f32_x4)"]
55990#[doc = "## Safety"]
55991#[doc = "  * Neon instrinsic unsafe"]
55992#[inline]
55993#[cfg(target_arch = "arm")]
55994#[target_feature(enable = "neon,v7")]
55995#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
55996#[cfg_attr(test, assert_instr(vst1))]
55997pub unsafe fn vst1_f32_x4(a: *mut f32, b: float32x2x4_t) {
55998    unsafe extern "unadjusted" {
55999        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x4.p0.v2f32.p0")]
56000        fn _vst1_f32_x4(
56001            ptr: *mut f32,
56002            a: float32x2_t,
56003            b: float32x2_t,
56004            c: float32x2_t,
56005            d: float32x2_t,
56006        );
56007    }
56008    _vst1_f32_x4(a, b.0, b.1, b.2, b.3)
56009}
56010#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
56011#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_f32_x4)"]
56012#[doc = "## Safety"]
56013#[doc = "  * Neon instrinsic unsafe"]
56014#[inline]
56015#[cfg(target_arch = "arm")]
56016#[target_feature(enable = "neon,v7")]
56017#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
56018#[cfg_attr(test, assert_instr(vst1))]
56019pub unsafe fn vst1q_f32_x4(a: *mut f32, b: float32x4x4_t) {
56020    unsafe extern "unadjusted" {
56021        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x4.p0.v4f32.p0")]
56022        fn _vst1q_f32_x4(
56023            ptr: *mut f32,
56024            a: float32x4_t,
56025            b: float32x4_t,
56026            c: float32x4_t,
56027            d: float32x4_t,
56028        );
56029    }
56030    _vst1q_f32_x4(a, b.0, b.1, b.2, b.3)
56031}
56032#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
56033#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_f32_x4)"]
56034#[doc = "## Safety"]
56035#[doc = "  * Neon instrinsic unsafe"]
56036#[inline]
56037#[target_feature(enable = "neon")]
56038#[cfg(not(target_arch = "arm"))]
56039#[cfg_attr(test, assert_instr(st1))]
56040#[stable(feature = "neon_intrinsics", since = "1.59.0")]
56041pub unsafe fn vst1_f32_x4(a: *mut f32, b: float32x2x4_t) {
56042    unsafe extern "unadjusted" {
56043        #[cfg_attr(
56044            any(target_arch = "aarch64", target_arch = "arm64ec"),
56045            link_name = "llvm.aarch64.neon.st1x4.v2f32.p0"
56046        )]
56047        fn _vst1_f32_x4(
56048            a: float32x2_t,
56049            b: float32x2_t,
56050            c: float32x2_t,
56051            d: float32x2_t,
56052            ptr: *mut f32,
56053        );
56054    }
56055    _vst1_f32_x4(b.0, b.1, b.2, b.3, a)
56056}
56057#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
56058#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_f32_x4)"]
56059#[doc = "## Safety"]
56060#[doc = "  * Neon instrinsic unsafe"]
56061#[inline]
56062#[target_feature(enable = "neon")]
56063#[cfg(not(target_arch = "arm"))]
56064#[cfg_attr(test, assert_instr(st1))]
56065#[stable(feature = "neon_intrinsics", since = "1.59.0")]
56066pub unsafe fn vst1q_f32_x4(a: *mut f32, b: float32x4x4_t) {
56067    unsafe extern "unadjusted" {
56068        #[cfg_attr(
56069            any(target_arch = "aarch64", target_arch = "arm64ec"),
56070            link_name = "llvm.aarch64.neon.st1x4.v4f32.p0"
56071        )]
56072        fn _vst1q_f32_x4(
56073            a: float32x4_t,
56074            b: float32x4_t,
56075            c: float32x4_t,
56076            d: float32x4_t,
56077            ptr: *mut f32,
56078        );
56079    }
56080    _vst1q_f32_x4(b.0, b.1, b.2, b.3, a)
56081}
56082#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
56083#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_f16)"]
56084#[doc = "## Safety"]
56085#[doc = "  * Neon instrinsic unsafe"]
56086#[inline]
56087#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56088#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
56089#[cfg_attr(
56090    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56091    assert_instr(nop, LANE = 0)
56092)]
56093#[rustc_legacy_const_generics(2)]
56094#[target_feature(enable = "neon,fp16")]
56095#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
56096#[cfg(not(target_arch = "arm64ec"))]
56097pub unsafe fn vst1_lane_f16<const LANE: i32>(a: *mut f16, b: float16x4_t) {
56098    static_assert_uimm_bits!(LANE, 2);
56099    *a = simd_extract!(b, LANE as u32);
56100}
56101#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
56102#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_f16)"]
56103#[doc = "## Safety"]
56104#[doc = "  * Neon instrinsic unsafe"]
56105#[inline]
56106#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56107#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
56108#[cfg_attr(
56109    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56110    assert_instr(nop, LANE = 0)
56111)]
56112#[rustc_legacy_const_generics(2)]
56113#[target_feature(enable = "neon,fp16")]
56114#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
56115#[cfg(not(target_arch = "arm64ec"))]
56116pub unsafe fn vst1q_lane_f16<const LANE: i32>(a: *mut f16, b: float16x8_t) {
56117    static_assert_uimm_bits!(LANE, 3);
56118    *a = simd_extract!(b, LANE as u32);
56119}
56120#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
56121#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_f32)"]
56122#[doc = "## Safety"]
56123#[doc = "  * Neon instrinsic unsafe"]
56124#[inline]
56125#[target_feature(enable = "neon")]
56126#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56127#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
56128#[cfg_attr(
56129    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56130    assert_instr(nop, LANE = 0)
56131)]
56132#[rustc_legacy_const_generics(2)]
56133#[cfg_attr(
56134    not(target_arch = "arm"),
56135    stable(feature = "neon_intrinsics", since = "1.59.0")
56136)]
56137#[cfg_attr(
56138    target_arch = "arm",
56139    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56140)]
56141pub unsafe fn vst1_lane_f32<const LANE: i32>(a: *mut f32, b: float32x2_t) {
56142    static_assert_uimm_bits!(LANE, 1);
56143    *a = simd_extract!(b, LANE as u32);
56144}
56145#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
56146#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_f32)"]
56147#[doc = "## Safety"]
56148#[doc = "  * Neon instrinsic unsafe"]
56149#[inline]
56150#[target_feature(enable = "neon")]
56151#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56152#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
56153#[cfg_attr(
56154    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56155    assert_instr(nop, LANE = 0)
56156)]
56157#[rustc_legacy_const_generics(2)]
56158#[cfg_attr(
56159    not(target_arch = "arm"),
56160    stable(feature = "neon_intrinsics", since = "1.59.0")
56161)]
56162#[cfg_attr(
56163    target_arch = "arm",
56164    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56165)]
56166pub unsafe fn vst1q_lane_f32<const LANE: i32>(a: *mut f32, b: float32x4_t) {
56167    static_assert_uimm_bits!(LANE, 2);
56168    *a = simd_extract!(b, LANE as u32);
56169}
56170#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
56171#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_s8)"]
56172#[doc = "## Safety"]
56173#[doc = "  * Neon instrinsic unsafe"]
56174#[inline]
56175#[target_feature(enable = "neon")]
56176#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56177#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
56178#[cfg_attr(
56179    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56180    assert_instr(nop, LANE = 0)
56181)]
56182#[rustc_legacy_const_generics(2)]
56183#[cfg_attr(
56184    not(target_arch = "arm"),
56185    stable(feature = "neon_intrinsics", since = "1.59.0")
56186)]
56187#[cfg_attr(
56188    target_arch = "arm",
56189    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56190)]
56191pub unsafe fn vst1_lane_s8<const LANE: i32>(a: *mut i8, b: int8x8_t) {
56192    static_assert_uimm_bits!(LANE, 3);
56193    *a = simd_extract!(b, LANE as u32);
56194}
56195#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
56196#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_s8)"]
56197#[doc = "## Safety"]
56198#[doc = "  * Neon instrinsic unsafe"]
56199#[inline]
56200#[target_feature(enable = "neon")]
56201#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56202#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
56203#[cfg_attr(
56204    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56205    assert_instr(nop, LANE = 0)
56206)]
56207#[rustc_legacy_const_generics(2)]
56208#[cfg_attr(
56209    not(target_arch = "arm"),
56210    stable(feature = "neon_intrinsics", since = "1.59.0")
56211)]
56212#[cfg_attr(
56213    target_arch = "arm",
56214    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56215)]
56216pub unsafe fn vst1q_lane_s8<const LANE: i32>(a: *mut i8, b: int8x16_t) {
56217    static_assert_uimm_bits!(LANE, 4);
56218    *a = simd_extract!(b, LANE as u32);
56219}
56220#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
56221#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_s16)"]
56222#[doc = "## Safety"]
56223#[doc = "  * Neon instrinsic unsafe"]
56224#[inline]
56225#[target_feature(enable = "neon")]
56226#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56227#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
56228#[cfg_attr(
56229    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56230    assert_instr(nop, LANE = 0)
56231)]
56232#[rustc_legacy_const_generics(2)]
56233#[cfg_attr(
56234    not(target_arch = "arm"),
56235    stable(feature = "neon_intrinsics", since = "1.59.0")
56236)]
56237#[cfg_attr(
56238    target_arch = "arm",
56239    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56240)]
56241pub unsafe fn vst1_lane_s16<const LANE: i32>(a: *mut i16, b: int16x4_t) {
56242    static_assert_uimm_bits!(LANE, 2);
56243    *a = simd_extract!(b, LANE as u32);
56244}
56245#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
56246#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_s16)"]
56247#[doc = "## Safety"]
56248#[doc = "  * Neon instrinsic unsafe"]
56249#[inline]
56250#[target_feature(enable = "neon")]
56251#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56252#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
56253#[cfg_attr(
56254    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56255    assert_instr(nop, LANE = 0)
56256)]
56257#[rustc_legacy_const_generics(2)]
56258#[cfg_attr(
56259    not(target_arch = "arm"),
56260    stable(feature = "neon_intrinsics", since = "1.59.0")
56261)]
56262#[cfg_attr(
56263    target_arch = "arm",
56264    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56265)]
56266pub unsafe fn vst1q_lane_s16<const LANE: i32>(a: *mut i16, b: int16x8_t) {
56267    static_assert_uimm_bits!(LANE, 3);
56268    *a = simd_extract!(b, LANE as u32);
56269}
56270#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
56271#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_s32)"]
56272#[doc = "## Safety"]
56273#[doc = "  * Neon instrinsic unsafe"]
56274#[inline]
56275#[target_feature(enable = "neon")]
56276#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56277#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
56278#[cfg_attr(
56279    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56280    assert_instr(nop, LANE = 0)
56281)]
56282#[rustc_legacy_const_generics(2)]
56283#[cfg_attr(
56284    not(target_arch = "arm"),
56285    stable(feature = "neon_intrinsics", since = "1.59.0")
56286)]
56287#[cfg_attr(
56288    target_arch = "arm",
56289    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56290)]
56291pub unsafe fn vst1_lane_s32<const LANE: i32>(a: *mut i32, b: int32x2_t) {
56292    static_assert_uimm_bits!(LANE, 1);
56293    *a = simd_extract!(b, LANE as u32);
56294}
56295#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
56296#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_s32)"]
56297#[doc = "## Safety"]
56298#[doc = "  * Neon instrinsic unsafe"]
56299#[inline]
56300#[target_feature(enable = "neon")]
56301#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56302#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
56303#[cfg_attr(
56304    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56305    assert_instr(nop, LANE = 0)
56306)]
56307#[rustc_legacy_const_generics(2)]
56308#[cfg_attr(
56309    not(target_arch = "arm"),
56310    stable(feature = "neon_intrinsics", since = "1.59.0")
56311)]
56312#[cfg_attr(
56313    target_arch = "arm",
56314    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56315)]
56316pub unsafe fn vst1q_lane_s32<const LANE: i32>(a: *mut i32, b: int32x4_t) {
56317    static_assert_uimm_bits!(LANE, 2);
56318    *a = simd_extract!(b, LANE as u32);
56319}
56320#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
56321#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_s64)"]
56322#[doc = "## Safety"]
56323#[doc = "  * Neon instrinsic unsafe"]
56324#[inline]
56325#[target_feature(enable = "neon")]
56326#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56327#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
56328#[cfg_attr(
56329    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56330    assert_instr(nop, LANE = 0)
56331)]
56332#[rustc_legacy_const_generics(2)]
56333#[cfg_attr(
56334    not(target_arch = "arm"),
56335    stable(feature = "neon_intrinsics", since = "1.59.0")
56336)]
56337#[cfg_attr(
56338    target_arch = "arm",
56339    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56340)]
56341pub unsafe fn vst1q_lane_s64<const LANE: i32>(a: *mut i64, b: int64x2_t) {
56342    static_assert_uimm_bits!(LANE, 1);
56343    *a = simd_extract!(b, LANE as u32);
56344}
56345#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
56346#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_u8)"]
56347#[doc = "## Safety"]
56348#[doc = "  * Neon instrinsic unsafe"]
56349#[inline]
56350#[target_feature(enable = "neon")]
56351#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56352#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
56353#[cfg_attr(
56354    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56355    assert_instr(nop, LANE = 0)
56356)]
56357#[rustc_legacy_const_generics(2)]
56358#[cfg_attr(
56359    not(target_arch = "arm"),
56360    stable(feature = "neon_intrinsics", since = "1.59.0")
56361)]
56362#[cfg_attr(
56363    target_arch = "arm",
56364    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56365)]
56366pub unsafe fn vst1_lane_u8<const LANE: i32>(a: *mut u8, b: uint8x8_t) {
56367    static_assert_uimm_bits!(LANE, 3);
56368    *a = simd_extract!(b, LANE as u32);
56369}
56370#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
56371#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_u8)"]
56372#[doc = "## Safety"]
56373#[doc = "  * Neon instrinsic unsafe"]
56374#[inline]
56375#[target_feature(enable = "neon")]
56376#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56377#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
56378#[cfg_attr(
56379    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56380    assert_instr(nop, LANE = 0)
56381)]
56382#[rustc_legacy_const_generics(2)]
56383#[cfg_attr(
56384    not(target_arch = "arm"),
56385    stable(feature = "neon_intrinsics", since = "1.59.0")
56386)]
56387#[cfg_attr(
56388    target_arch = "arm",
56389    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56390)]
56391pub unsafe fn vst1q_lane_u8<const LANE: i32>(a: *mut u8, b: uint8x16_t) {
56392    static_assert_uimm_bits!(LANE, 4);
56393    *a = simd_extract!(b, LANE as u32);
56394}
56395#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
56396#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_u16)"]
56397#[doc = "## Safety"]
56398#[doc = "  * Neon instrinsic unsafe"]
56399#[inline]
56400#[target_feature(enable = "neon")]
56401#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56402#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
56403#[cfg_attr(
56404    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56405    assert_instr(nop, LANE = 0)
56406)]
56407#[rustc_legacy_const_generics(2)]
56408#[cfg_attr(
56409    not(target_arch = "arm"),
56410    stable(feature = "neon_intrinsics", since = "1.59.0")
56411)]
56412#[cfg_attr(
56413    target_arch = "arm",
56414    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56415)]
56416pub unsafe fn vst1_lane_u16<const LANE: i32>(a: *mut u16, b: uint16x4_t) {
56417    static_assert_uimm_bits!(LANE, 2);
56418    *a = simd_extract!(b, LANE as u32);
56419}
56420#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
56421#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_u16)"]
56422#[doc = "## Safety"]
56423#[doc = "  * Neon instrinsic unsafe"]
56424#[inline]
56425#[target_feature(enable = "neon")]
56426#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56427#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
56428#[cfg_attr(
56429    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56430    assert_instr(nop, LANE = 0)
56431)]
56432#[rustc_legacy_const_generics(2)]
56433#[cfg_attr(
56434    not(target_arch = "arm"),
56435    stable(feature = "neon_intrinsics", since = "1.59.0")
56436)]
56437#[cfg_attr(
56438    target_arch = "arm",
56439    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56440)]
56441pub unsafe fn vst1q_lane_u16<const LANE: i32>(a: *mut u16, b: uint16x8_t) {
56442    static_assert_uimm_bits!(LANE, 3);
56443    *a = simd_extract!(b, LANE as u32);
56444}
56445#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
56446#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_u32)"]
56447#[doc = "## Safety"]
56448#[doc = "  * Neon instrinsic unsafe"]
56449#[inline]
56450#[target_feature(enable = "neon")]
56451#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56452#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
56453#[cfg_attr(
56454    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56455    assert_instr(nop, LANE = 0)
56456)]
56457#[rustc_legacy_const_generics(2)]
56458#[cfg_attr(
56459    not(target_arch = "arm"),
56460    stable(feature = "neon_intrinsics", since = "1.59.0")
56461)]
56462#[cfg_attr(
56463    target_arch = "arm",
56464    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56465)]
56466pub unsafe fn vst1_lane_u32<const LANE: i32>(a: *mut u32, b: uint32x2_t) {
56467    static_assert_uimm_bits!(LANE, 1);
56468    *a = simd_extract!(b, LANE as u32);
56469}
56470#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
56471#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_u32)"]
56472#[doc = "## Safety"]
56473#[doc = "  * Neon instrinsic unsafe"]
56474#[inline]
56475#[target_feature(enable = "neon")]
56476#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56477#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
56478#[cfg_attr(
56479    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56480    assert_instr(nop, LANE = 0)
56481)]
56482#[rustc_legacy_const_generics(2)]
56483#[cfg_attr(
56484    not(target_arch = "arm"),
56485    stable(feature = "neon_intrinsics", since = "1.59.0")
56486)]
56487#[cfg_attr(
56488    target_arch = "arm",
56489    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56490)]
56491pub unsafe fn vst1q_lane_u32<const LANE: i32>(a: *mut u32, b: uint32x4_t) {
56492    static_assert_uimm_bits!(LANE, 2);
56493    *a = simd_extract!(b, LANE as u32);
56494}
56495#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
56496#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_u64)"]
56497#[doc = "## Safety"]
56498#[doc = "  * Neon instrinsic unsafe"]
56499#[inline]
56500#[target_feature(enable = "neon")]
56501#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56502#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
56503#[cfg_attr(
56504    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56505    assert_instr(nop, LANE = 0)
56506)]
56507#[rustc_legacy_const_generics(2)]
56508#[cfg_attr(
56509    not(target_arch = "arm"),
56510    stable(feature = "neon_intrinsics", since = "1.59.0")
56511)]
56512#[cfg_attr(
56513    target_arch = "arm",
56514    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56515)]
56516pub unsafe fn vst1q_lane_u64<const LANE: i32>(a: *mut u64, b: uint64x2_t) {
56517    static_assert_uimm_bits!(LANE, 1);
56518    *a = simd_extract!(b, LANE as u32);
56519}
56520#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
56521#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_p8)"]
56522#[doc = "## Safety"]
56523#[doc = "  * Neon instrinsic unsafe"]
56524#[inline]
56525#[target_feature(enable = "neon")]
56526#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56527#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
56528#[cfg_attr(
56529    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56530    assert_instr(nop, LANE = 0)
56531)]
56532#[rustc_legacy_const_generics(2)]
56533#[cfg_attr(
56534    not(target_arch = "arm"),
56535    stable(feature = "neon_intrinsics", since = "1.59.0")
56536)]
56537#[cfg_attr(
56538    target_arch = "arm",
56539    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56540)]
56541pub unsafe fn vst1_lane_p8<const LANE: i32>(a: *mut p8, b: poly8x8_t) {
56542    static_assert_uimm_bits!(LANE, 3);
56543    *a = simd_extract!(b, LANE as u32);
56544}
56545#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
56546#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_p8)"]
56547#[doc = "## Safety"]
56548#[doc = "  * Neon instrinsic unsafe"]
56549#[inline]
56550#[target_feature(enable = "neon")]
56551#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56552#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
56553#[cfg_attr(
56554    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56555    assert_instr(nop, LANE = 0)
56556)]
56557#[rustc_legacy_const_generics(2)]
56558#[cfg_attr(
56559    not(target_arch = "arm"),
56560    stable(feature = "neon_intrinsics", since = "1.59.0")
56561)]
56562#[cfg_attr(
56563    target_arch = "arm",
56564    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56565)]
56566pub unsafe fn vst1q_lane_p8<const LANE: i32>(a: *mut p8, b: poly8x16_t) {
56567    static_assert_uimm_bits!(LANE, 4);
56568    *a = simd_extract!(b, LANE as u32);
56569}
56570#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
56571#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_p16)"]
56572#[doc = "## Safety"]
56573#[doc = "  * Neon instrinsic unsafe"]
56574#[inline]
56575#[target_feature(enable = "neon")]
56576#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56577#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
56578#[cfg_attr(
56579    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56580    assert_instr(nop, LANE = 0)
56581)]
56582#[rustc_legacy_const_generics(2)]
56583#[cfg_attr(
56584    not(target_arch = "arm"),
56585    stable(feature = "neon_intrinsics", since = "1.59.0")
56586)]
56587#[cfg_attr(
56588    target_arch = "arm",
56589    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56590)]
56591pub unsafe fn vst1_lane_p16<const LANE: i32>(a: *mut p16, b: poly16x4_t) {
56592    static_assert_uimm_bits!(LANE, 2);
56593    *a = simd_extract!(b, LANE as u32);
56594}
56595#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
56596#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_p16)"]
56597#[doc = "## Safety"]
56598#[doc = "  * Neon instrinsic unsafe"]
56599#[inline]
56600#[target_feature(enable = "neon")]
56601#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56602#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
56603#[cfg_attr(
56604    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56605    assert_instr(nop, LANE = 0)
56606)]
56607#[rustc_legacy_const_generics(2)]
56608#[cfg_attr(
56609    not(target_arch = "arm"),
56610    stable(feature = "neon_intrinsics", since = "1.59.0")
56611)]
56612#[cfg_attr(
56613    target_arch = "arm",
56614    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56615)]
56616pub unsafe fn vst1q_lane_p16<const LANE: i32>(a: *mut p16, b: poly16x8_t) {
56617    static_assert_uimm_bits!(LANE, 3);
56618    *a = simd_extract!(b, LANE as u32);
56619}
56620#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
56621#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_p64)"]
56622#[doc = "## Safety"]
56623#[doc = "  * Neon instrinsic unsafe"]
56624#[inline]
56625#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
56626#[target_feature(enable = "neon,aes")]
56627#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
56628#[cfg_attr(
56629    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56630    assert_instr(nop, LANE = 0)
56631)]
56632#[rustc_legacy_const_generics(2)]
56633#[cfg_attr(
56634    not(target_arch = "arm"),
56635    stable(feature = "neon_intrinsics", since = "1.59.0")
56636)]
56637#[cfg_attr(
56638    target_arch = "arm",
56639    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56640)]
56641pub unsafe fn vst1_lane_p64<const LANE: i32>(a: *mut p64, b: poly64x1_t) {
56642    static_assert!(LANE == 0);
56643    *a = simd_extract!(b, LANE as u32);
56644}
56645#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
56646#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_s64)"]
56647#[doc = "## Safety"]
56648#[doc = "  * Neon instrinsic unsafe"]
56649#[inline]
56650#[target_feature(enable = "neon")]
56651#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56652#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
56653#[cfg_attr(
56654    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56655    assert_instr(nop, LANE = 0)
56656)]
56657#[rustc_legacy_const_generics(2)]
56658#[cfg_attr(
56659    not(target_arch = "arm"),
56660    stable(feature = "neon_intrinsics", since = "1.59.0")
56661)]
56662#[cfg_attr(
56663    target_arch = "arm",
56664    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56665)]
56666pub unsafe fn vst1_lane_s64<const LANE: i32>(a: *mut i64, b: int64x1_t) {
56667    static_assert!(LANE == 0);
56668    *a = simd_extract!(b, LANE as u32);
56669}
56670#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
56671#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_u64)"]
56672#[doc = "## Safety"]
56673#[doc = "  * Neon instrinsic unsafe"]
56674#[inline]
56675#[target_feature(enable = "neon")]
56676#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56677#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
56678#[cfg_attr(
56679    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56680    assert_instr(nop, LANE = 0)
56681)]
56682#[rustc_legacy_const_generics(2)]
56683#[cfg_attr(
56684    not(target_arch = "arm"),
56685    stable(feature = "neon_intrinsics", since = "1.59.0")
56686)]
56687#[cfg_attr(
56688    target_arch = "arm",
56689    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56690)]
56691pub unsafe fn vst1_lane_u64<const LANE: i32>(a: *mut u64, b: uint64x1_t) {
56692    static_assert!(LANE == 0);
56693    *a = simd_extract!(b, LANE as u32);
56694}
56695#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
56696#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_p64_x2)"]
56697#[doc = "## Safety"]
56698#[doc = "  * Neon instrinsic unsafe"]
56699#[inline]
56700#[target_feature(enable = "neon,aes")]
56701#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
56702#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
56703#[cfg_attr(
56704    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56705    assert_instr(st1)
56706)]
56707#[cfg_attr(
56708    not(target_arch = "arm"),
56709    stable(feature = "neon_intrinsics", since = "1.59.0")
56710)]
56711#[cfg_attr(
56712    target_arch = "arm",
56713    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56714)]
56715pub unsafe fn vst1_p64_x2(a: *mut p64, b: poly64x1x2_t) {
56716    vst1_s64_x2(transmute(a), transmute(b))
56717}
56718#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
56719#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_p64_x3)"]
56720#[doc = "## Safety"]
56721#[doc = "  * Neon instrinsic unsafe"]
56722#[inline]
56723#[target_feature(enable = "neon,aes")]
56724#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
56725#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
56726#[cfg_attr(
56727    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56728    assert_instr(st1)
56729)]
56730#[cfg_attr(
56731    not(target_arch = "arm"),
56732    stable(feature = "neon_intrinsics", since = "1.59.0")
56733)]
56734#[cfg_attr(
56735    target_arch = "arm",
56736    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56737)]
56738pub unsafe fn vst1_p64_x3(a: *mut p64, b: poly64x1x3_t) {
56739    vst1_s64_x3(transmute(a), transmute(b))
56740}
56741#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
56742#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_p64_x4)"]
56743#[doc = "## Safety"]
56744#[doc = "  * Neon instrinsic unsafe"]
56745#[inline]
56746#[target_feature(enable = "neon,aes")]
56747#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
56748#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
56749#[cfg_attr(
56750    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56751    assert_instr(st1)
56752)]
56753#[cfg_attr(
56754    not(target_arch = "arm"),
56755    stable(feature = "neon_intrinsics", since = "1.59.0")
56756)]
56757#[cfg_attr(
56758    target_arch = "arm",
56759    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56760)]
56761pub unsafe fn vst1_p64_x4(a: *mut p64, b: poly64x1x4_t) {
56762    vst1_s64_x4(transmute(a), transmute(b))
56763}
56764#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
56765#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_p64_x2)"]
56766#[doc = "## Safety"]
56767#[doc = "  * Neon instrinsic unsafe"]
56768#[inline]
56769#[target_feature(enable = "neon,aes")]
56770#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
56771#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
56772#[cfg_attr(
56773    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56774    assert_instr(st1)
56775)]
56776#[cfg_attr(
56777    not(target_arch = "arm"),
56778    stable(feature = "neon_intrinsics", since = "1.59.0")
56779)]
56780#[cfg_attr(
56781    target_arch = "arm",
56782    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56783)]
56784pub unsafe fn vst1q_p64_x2(a: *mut p64, b: poly64x2x2_t) {
56785    vst1q_s64_x2(transmute(a), transmute(b))
56786}
56787#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
56788#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_p64_x3)"]
56789#[doc = "## Safety"]
56790#[doc = "  * Neon instrinsic unsafe"]
56791#[inline]
56792#[target_feature(enable = "neon,aes")]
56793#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
56794#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
56795#[cfg_attr(
56796    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56797    assert_instr(st1)
56798)]
56799#[cfg_attr(
56800    not(target_arch = "arm"),
56801    stable(feature = "neon_intrinsics", since = "1.59.0")
56802)]
56803#[cfg_attr(
56804    target_arch = "arm",
56805    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56806)]
56807pub unsafe fn vst1q_p64_x3(a: *mut p64, b: poly64x2x3_t) {
56808    vst1q_s64_x3(transmute(a), transmute(b))
56809}
56810#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
56811#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_p64_x4)"]
56812#[doc = "## Safety"]
56813#[doc = "  * Neon instrinsic unsafe"]
56814#[inline]
56815#[target_feature(enable = "neon,aes")]
56816#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
56817#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
56818#[cfg_attr(
56819    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56820    assert_instr(st1)
56821)]
56822#[cfg_attr(
56823    not(target_arch = "arm"),
56824    stable(feature = "neon_intrinsics", since = "1.59.0")
56825)]
56826#[cfg_attr(
56827    target_arch = "arm",
56828    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56829)]
56830pub unsafe fn vst1q_p64_x4(a: *mut p64, b: poly64x2x4_t) {
56831    vst1q_s64_x4(transmute(a), transmute(b))
56832}
56833#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
56834#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s8_x2)"]
56835#[doc = "## Safety"]
56836#[doc = "  * Neon instrinsic unsafe"]
56837#[inline]
56838#[target_feature(enable = "neon")]
56839#[cfg(not(target_arch = "arm"))]
56840#[stable(feature = "neon_intrinsics", since = "1.59.0")]
56841#[cfg_attr(test, assert_instr(st1))]
56842pub unsafe fn vst1_s8_x2(a: *mut i8, b: int8x8x2_t) {
56843    unsafe extern "unadjusted" {
56844        #[cfg_attr(
56845            any(target_arch = "aarch64", target_arch = "arm64ec"),
56846            link_name = "llvm.aarch64.neon.st1x2.v8i8.p0"
56847        )]
56848        fn _vst1_s8_x2(a: int8x8_t, b: int8x8_t, ptr: *mut i8);
56849    }
56850    _vst1_s8_x2(b.0, b.1, a)
56851}
56852#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
56853#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s8_x2)"]
56854#[doc = "## Safety"]
56855#[doc = "  * Neon instrinsic unsafe"]
56856#[inline]
56857#[target_feature(enable = "neon")]
56858#[cfg(not(target_arch = "arm"))]
56859#[stable(feature = "neon_intrinsics", since = "1.59.0")]
56860#[cfg_attr(test, assert_instr(st1))]
56861pub unsafe fn vst1q_s8_x2(a: *mut i8, b: int8x16x2_t) {
56862    unsafe extern "unadjusted" {
56863        #[cfg_attr(
56864            any(target_arch = "aarch64", target_arch = "arm64ec"),
56865            link_name = "llvm.aarch64.neon.st1x2.v16i8.p0"
56866        )]
56867        fn _vst1q_s8_x2(a: int8x16_t, b: int8x16_t, ptr: *mut i8);
56868    }
56869    _vst1q_s8_x2(b.0, b.1, a)
56870}
56871#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
56872#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s16_x2)"]
56873#[doc = "## Safety"]
56874#[doc = "  * Neon instrinsic unsafe"]
56875#[inline]
56876#[target_feature(enable = "neon")]
56877#[cfg(not(target_arch = "arm"))]
56878#[stable(feature = "neon_intrinsics", since = "1.59.0")]
56879#[cfg_attr(test, assert_instr(st1))]
56880pub unsafe fn vst1_s16_x2(a: *mut i16, b: int16x4x2_t) {
56881    unsafe extern "unadjusted" {
56882        #[cfg_attr(
56883            any(target_arch = "aarch64", target_arch = "arm64ec"),
56884            link_name = "llvm.aarch64.neon.st1x2.v4i16.p0"
56885        )]
56886        fn _vst1_s16_x2(a: int16x4_t, b: int16x4_t, ptr: *mut i16);
56887    }
56888    _vst1_s16_x2(b.0, b.1, a)
56889}
56890#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
56891#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s16_x2)"]
56892#[doc = "## Safety"]
56893#[doc = "  * Neon instrinsic unsafe"]
56894#[inline]
56895#[target_feature(enable = "neon")]
56896#[cfg(not(target_arch = "arm"))]
56897#[stable(feature = "neon_intrinsics", since = "1.59.0")]
56898#[cfg_attr(test, assert_instr(st1))]
56899pub unsafe fn vst1q_s16_x2(a: *mut i16, b: int16x8x2_t) {
56900    unsafe extern "unadjusted" {
56901        #[cfg_attr(
56902            any(target_arch = "aarch64", target_arch = "arm64ec"),
56903            link_name = "llvm.aarch64.neon.st1x2.v8i16.p0"
56904        )]
56905        fn _vst1q_s16_x2(a: int16x8_t, b: int16x8_t, ptr: *mut i16);
56906    }
56907    _vst1q_s16_x2(b.0, b.1, a)
56908}
56909#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
56910#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s32_x2)"]
56911#[doc = "## Safety"]
56912#[doc = "  * Neon instrinsic unsafe"]
56913#[inline]
56914#[target_feature(enable = "neon")]
56915#[cfg(not(target_arch = "arm"))]
56916#[stable(feature = "neon_intrinsics", since = "1.59.0")]
56917#[cfg_attr(test, assert_instr(st1))]
56918pub unsafe fn vst1_s32_x2(a: *mut i32, b: int32x2x2_t) {
56919    unsafe extern "unadjusted" {
56920        #[cfg_attr(
56921            any(target_arch = "aarch64", target_arch = "arm64ec"),
56922            link_name = "llvm.aarch64.neon.st1x2.v2i32.p0"
56923        )]
56924        fn _vst1_s32_x2(a: int32x2_t, b: int32x2_t, ptr: *mut i32);
56925    }
56926    _vst1_s32_x2(b.0, b.1, a)
56927}
56928#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
56929#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s32_x2)"]
56930#[doc = "## Safety"]
56931#[doc = "  * Neon instrinsic unsafe"]
56932#[inline]
56933#[target_feature(enable = "neon")]
56934#[cfg(not(target_arch = "arm"))]
56935#[stable(feature = "neon_intrinsics", since = "1.59.0")]
56936#[cfg_attr(test, assert_instr(st1))]
56937pub unsafe fn vst1q_s32_x2(a: *mut i32, b: int32x4x2_t) {
56938    unsafe extern "unadjusted" {
56939        #[cfg_attr(
56940            any(target_arch = "aarch64", target_arch = "arm64ec"),
56941            link_name = "llvm.aarch64.neon.st1x2.v4i32.p0"
56942        )]
56943        fn _vst1q_s32_x2(a: int32x4_t, b: int32x4_t, ptr: *mut i32);
56944    }
56945    _vst1q_s32_x2(b.0, b.1, a)
56946}
56947#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
56948#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s64_x2)"]
56949#[doc = "## Safety"]
56950#[doc = "  * Neon instrinsic unsafe"]
56951#[inline]
56952#[target_feature(enable = "neon")]
56953#[cfg(not(target_arch = "arm"))]
56954#[stable(feature = "neon_intrinsics", since = "1.59.0")]
56955#[cfg_attr(test, assert_instr(st1))]
56956pub unsafe fn vst1_s64_x2(a: *mut i64, b: int64x1x2_t) {
56957    unsafe extern "unadjusted" {
56958        #[cfg_attr(
56959            any(target_arch = "aarch64", target_arch = "arm64ec"),
56960            link_name = "llvm.aarch64.neon.st1x2.v1i64.p0"
56961        )]
56962        fn _vst1_s64_x2(a: int64x1_t, b: int64x1_t, ptr: *mut i64);
56963    }
56964    _vst1_s64_x2(b.0, b.1, a)
56965}
56966#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
56967#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s64_x2)"]
56968#[doc = "## Safety"]
56969#[doc = "  * Neon instrinsic unsafe"]
56970#[inline]
56971#[target_feature(enable = "neon")]
56972#[cfg(not(target_arch = "arm"))]
56973#[stable(feature = "neon_intrinsics", since = "1.59.0")]
56974#[cfg_attr(test, assert_instr(st1))]
56975pub unsafe fn vst1q_s64_x2(a: *mut i64, b: int64x2x2_t) {
56976    unsafe extern "unadjusted" {
56977        #[cfg_attr(
56978            any(target_arch = "aarch64", target_arch = "arm64ec"),
56979            link_name = "llvm.aarch64.neon.st1x2.v2i64.p0"
56980        )]
56981        fn _vst1q_s64_x2(a: int64x2_t, b: int64x2_t, ptr: *mut i64);
56982    }
56983    _vst1q_s64_x2(b.0, b.1, a)
56984}
56985#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
56986#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s8_x2)"]
56987#[doc = "## Safety"]
56988#[doc = "  * Neon instrinsic unsafe"]
56989#[inline]
56990#[target_feature(enable = "neon,v7")]
56991#[cfg(target_arch = "arm")]
56992#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
56993#[cfg_attr(test, assert_instr(vst1))]
56994pub unsafe fn vst1_s8_x2(a: *mut i8, b: int8x8x2_t) {
56995    unsafe extern "unadjusted" {
56996        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x2.v8i8.p0")]
56997        fn _vst1_s8_x2(ptr: *mut i8, a: int8x8_t, b: int8x8_t);
56998    }
56999    _vst1_s8_x2(a, b.0, b.1)
57000}
57001#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
57002#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s8_x2)"]
57003#[doc = "## Safety"]
57004#[doc = "  * Neon instrinsic unsafe"]
57005#[inline]
57006#[target_feature(enable = "neon,v7")]
57007#[cfg(target_arch = "arm")]
57008#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
57009#[cfg_attr(test, assert_instr(vst1))]
57010pub unsafe fn vst1q_s8_x2(a: *mut i8, b: int8x16x2_t) {
57011    unsafe extern "unadjusted" {
57012        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x2.v16i8.p0")]
57013        fn _vst1q_s8_x2(ptr: *mut i8, a: int8x16_t, b: int8x16_t);
57014    }
57015    _vst1q_s8_x2(a, b.0, b.1)
57016}
57017#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
57018#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s16_x2)"]
57019#[doc = "## Safety"]
57020#[doc = "  * Neon instrinsic unsafe"]
57021#[inline]
57022#[target_feature(enable = "neon,v7")]
57023#[cfg(target_arch = "arm")]
57024#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
57025#[cfg_attr(test, assert_instr(vst1))]
57026pub unsafe fn vst1_s16_x2(a: *mut i16, b: int16x4x2_t) {
57027    unsafe extern "unadjusted" {
57028        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x2.v4i16.p0")]
57029        fn _vst1_s16_x2(ptr: *mut i16, a: int16x4_t, b: int16x4_t);
57030    }
57031    _vst1_s16_x2(a, b.0, b.1)
57032}
57033#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
57034#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s16_x2)"]
57035#[doc = "## Safety"]
57036#[doc = "  * Neon instrinsic unsafe"]
57037#[inline]
57038#[target_feature(enable = "neon,v7")]
57039#[cfg(target_arch = "arm")]
57040#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
57041#[cfg_attr(test, assert_instr(vst1))]
57042pub unsafe fn vst1q_s16_x2(a: *mut i16, b: int16x8x2_t) {
57043    unsafe extern "unadjusted" {
57044        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x2.v8i16.p0")]
57045        fn _vst1q_s16_x2(ptr: *mut i16, a: int16x8_t, b: int16x8_t);
57046    }
57047    _vst1q_s16_x2(a, b.0, b.1)
57048}
57049#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
57050#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s32_x2)"]
57051#[doc = "## Safety"]
57052#[doc = "  * Neon instrinsic unsafe"]
57053#[inline]
57054#[target_feature(enable = "neon,v7")]
57055#[cfg(target_arch = "arm")]
57056#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
57057#[cfg_attr(test, assert_instr(vst1))]
57058pub unsafe fn vst1_s32_x2(a: *mut i32, b: int32x2x2_t) {
57059    unsafe extern "unadjusted" {
57060        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x2.v2i32.p0")]
57061        fn _vst1_s32_x2(ptr: *mut i32, a: int32x2_t, b: int32x2_t);
57062    }
57063    _vst1_s32_x2(a, b.0, b.1)
57064}
57065#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
57066#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s32_x2)"]
57067#[doc = "## Safety"]
57068#[doc = "  * Neon instrinsic unsafe"]
57069#[inline]
57070#[target_feature(enable = "neon,v7")]
57071#[cfg(target_arch = "arm")]
57072#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
57073#[cfg_attr(test, assert_instr(vst1))]
57074pub unsafe fn vst1q_s32_x2(a: *mut i32, b: int32x4x2_t) {
57075    unsafe extern "unadjusted" {
57076        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x2.v4i32.p0")]
57077        fn _vst1q_s32_x2(ptr: *mut i32, a: int32x4_t, b: int32x4_t);
57078    }
57079    _vst1q_s32_x2(a, b.0, b.1)
57080}
57081#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
57082#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s64_x2)"]
57083#[doc = "## Safety"]
57084#[doc = "  * Neon instrinsic unsafe"]
57085#[inline]
57086#[target_feature(enable = "neon,v7")]
57087#[cfg(target_arch = "arm")]
57088#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
57089#[cfg_attr(test, assert_instr(vst1))]
57090pub unsafe fn vst1_s64_x2(a: *mut i64, b: int64x1x2_t) {
57091    unsafe extern "unadjusted" {
57092        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x2.v1i64.p0")]
57093        fn _vst1_s64_x2(ptr: *mut i64, a: int64x1_t, b: int64x1_t);
57094    }
57095    _vst1_s64_x2(a, b.0, b.1)
57096}
57097#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
57098#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s64_x2)"]
57099#[doc = "## Safety"]
57100#[doc = "  * Neon instrinsic unsafe"]
57101#[inline]
57102#[target_feature(enable = "neon,v7")]
57103#[cfg(target_arch = "arm")]
57104#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
57105#[cfg_attr(test, assert_instr(vst1))]
57106pub unsafe fn vst1q_s64_x2(a: *mut i64, b: int64x2x2_t) {
57107    unsafe extern "unadjusted" {
57108        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x2.v2i64.p0")]
57109        fn _vst1q_s64_x2(ptr: *mut i64, a: int64x2_t, b: int64x2_t);
57110    }
57111    _vst1q_s64_x2(a, b.0, b.1)
57112}
57113#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
57114#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s8_x3)"]
57115#[doc = "## Safety"]
57116#[doc = "  * Neon instrinsic unsafe"]
57117#[inline]
57118#[target_feature(enable = "neon")]
57119#[cfg(not(target_arch = "arm"))]
57120#[stable(feature = "neon_intrinsics", since = "1.59.0")]
57121#[cfg_attr(test, assert_instr(st1))]
57122pub unsafe fn vst1_s8_x3(a: *mut i8, b: int8x8x3_t) {
57123    unsafe extern "unadjusted" {
57124        #[cfg_attr(
57125            any(target_arch = "aarch64", target_arch = "arm64ec"),
57126            link_name = "llvm.aarch64.neon.st1x3.v8i8.p0"
57127        )]
57128        fn _vst1_s8_x3(a: int8x8_t, b: int8x8_t, c: int8x8_t, ptr: *mut i8);
57129    }
57130    _vst1_s8_x3(b.0, b.1, b.2, a)
57131}
57132#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
57133#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s8_x3)"]
57134#[doc = "## Safety"]
57135#[doc = "  * Neon instrinsic unsafe"]
57136#[inline]
57137#[target_feature(enable = "neon")]
57138#[cfg(not(target_arch = "arm"))]
57139#[stable(feature = "neon_intrinsics", since = "1.59.0")]
57140#[cfg_attr(test, assert_instr(st1))]
57141pub unsafe fn vst1q_s8_x3(a: *mut i8, b: int8x16x3_t) {
57142    unsafe extern "unadjusted" {
57143        #[cfg_attr(
57144            any(target_arch = "aarch64", target_arch = "arm64ec"),
57145            link_name = "llvm.aarch64.neon.st1x3.v16i8.p0"
57146        )]
57147        fn _vst1q_s8_x3(a: int8x16_t, b: int8x16_t, c: int8x16_t, ptr: *mut i8);
57148    }
57149    _vst1q_s8_x3(b.0, b.1, b.2, a)
57150}
57151#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
57152#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s16_x3)"]
57153#[doc = "## Safety"]
57154#[doc = "  * Neon instrinsic unsafe"]
57155#[inline]
57156#[target_feature(enable = "neon")]
57157#[cfg(not(target_arch = "arm"))]
57158#[stable(feature = "neon_intrinsics", since = "1.59.0")]
57159#[cfg_attr(test, assert_instr(st1))]
57160pub unsafe fn vst1_s16_x3(a: *mut i16, b: int16x4x3_t) {
57161    unsafe extern "unadjusted" {
57162        #[cfg_attr(
57163            any(target_arch = "aarch64", target_arch = "arm64ec"),
57164            link_name = "llvm.aarch64.neon.st1x3.v4i16.p0"
57165        )]
57166        fn _vst1_s16_x3(a: int16x4_t, b: int16x4_t, c: int16x4_t, ptr: *mut i16);
57167    }
57168    _vst1_s16_x3(b.0, b.1, b.2, a)
57169}
57170#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
57171#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s16_x3)"]
57172#[doc = "## Safety"]
57173#[doc = "  * Neon instrinsic unsafe"]
57174#[inline]
57175#[target_feature(enable = "neon")]
57176#[cfg(not(target_arch = "arm"))]
57177#[stable(feature = "neon_intrinsics", since = "1.59.0")]
57178#[cfg_attr(test, assert_instr(st1))]
57179pub unsafe fn vst1q_s16_x3(a: *mut i16, b: int16x8x3_t) {
57180    unsafe extern "unadjusted" {
57181        #[cfg_attr(
57182            any(target_arch = "aarch64", target_arch = "arm64ec"),
57183            link_name = "llvm.aarch64.neon.st1x3.v8i16.p0"
57184        )]
57185        fn _vst1q_s16_x3(a: int16x8_t, b: int16x8_t, c: int16x8_t, ptr: *mut i16);
57186    }
57187    _vst1q_s16_x3(b.0, b.1, b.2, a)
57188}
57189#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
57190#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s32_x3)"]
57191#[doc = "## Safety"]
57192#[doc = "  * Neon instrinsic unsafe"]
57193#[inline]
57194#[target_feature(enable = "neon")]
57195#[cfg(not(target_arch = "arm"))]
57196#[stable(feature = "neon_intrinsics", since = "1.59.0")]
57197#[cfg_attr(test, assert_instr(st1))]
57198pub unsafe fn vst1_s32_x3(a: *mut i32, b: int32x2x3_t) {
57199    unsafe extern "unadjusted" {
57200        #[cfg_attr(
57201            any(target_arch = "aarch64", target_arch = "arm64ec"),
57202            link_name = "llvm.aarch64.neon.st1x3.v2i32.p0"
57203        )]
57204        fn _vst1_s32_x3(a: int32x2_t, b: int32x2_t, c: int32x2_t, ptr: *mut i32);
57205    }
57206    _vst1_s32_x3(b.0, b.1, b.2, a)
57207}
57208#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
57209#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s32_x3)"]
57210#[doc = "## Safety"]
57211#[doc = "  * Neon instrinsic unsafe"]
57212#[inline]
57213#[target_feature(enable = "neon")]
57214#[cfg(not(target_arch = "arm"))]
57215#[stable(feature = "neon_intrinsics", since = "1.59.0")]
57216#[cfg_attr(test, assert_instr(st1))]
57217pub unsafe fn vst1q_s32_x3(a: *mut i32, b: int32x4x3_t) {
57218    unsafe extern "unadjusted" {
57219        #[cfg_attr(
57220            any(target_arch = "aarch64", target_arch = "arm64ec"),
57221            link_name = "llvm.aarch64.neon.st1x3.v4i32.p0"
57222        )]
57223        fn _vst1q_s32_x3(a: int32x4_t, b: int32x4_t, c: int32x4_t, ptr: *mut i32);
57224    }
57225    _vst1q_s32_x3(b.0, b.1, b.2, a)
57226}
57227#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
57228#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s64_x3)"]
57229#[doc = "## Safety"]
57230#[doc = "  * Neon instrinsic unsafe"]
57231#[inline]
57232#[target_feature(enable = "neon")]
57233#[cfg(not(target_arch = "arm"))]
57234#[stable(feature = "neon_intrinsics", since = "1.59.0")]
57235#[cfg_attr(test, assert_instr(st1))]
57236pub unsafe fn vst1_s64_x3(a: *mut i64, b: int64x1x3_t) {
57237    unsafe extern "unadjusted" {
57238        #[cfg_attr(
57239            any(target_arch = "aarch64", target_arch = "arm64ec"),
57240            link_name = "llvm.aarch64.neon.st1x3.v1i64.p0"
57241        )]
57242        fn _vst1_s64_x3(a: int64x1_t, b: int64x1_t, c: int64x1_t, ptr: *mut i64);
57243    }
57244    _vst1_s64_x3(b.0, b.1, b.2, a)
57245}
57246#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
57247#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s64_x3)"]
57248#[doc = "## Safety"]
57249#[doc = "  * Neon instrinsic unsafe"]
57250#[inline]
57251#[target_feature(enable = "neon")]
57252#[cfg(not(target_arch = "arm"))]
57253#[stable(feature = "neon_intrinsics", since = "1.59.0")]
57254#[cfg_attr(test, assert_instr(st1))]
57255pub unsafe fn vst1q_s64_x3(a: *mut i64, b: int64x2x3_t) {
57256    unsafe extern "unadjusted" {
57257        #[cfg_attr(
57258            any(target_arch = "aarch64", target_arch = "arm64ec"),
57259            link_name = "llvm.aarch64.neon.st1x3.v2i64.p0"
57260        )]
57261        fn _vst1q_s64_x3(a: int64x2_t, b: int64x2_t, c: int64x2_t, ptr: *mut i64);
57262    }
57263    _vst1q_s64_x3(b.0, b.1, b.2, a)
57264}
57265#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
57266#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s8_x3)"]
57267#[doc = "## Safety"]
57268#[doc = "  * Neon instrinsic unsafe"]
57269#[inline]
57270#[target_feature(enable = "neon,v7")]
57271#[cfg(target_arch = "arm")]
57272#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
57273#[cfg_attr(test, assert_instr(vst1))]
57274pub unsafe fn vst1_s8_x3(a: *mut i8, b: int8x8x3_t) {
57275    unsafe extern "unadjusted" {
57276        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x3.p0.v8i8.p0")]
57277        fn _vst1_s8_x3(ptr: *mut i8, a: int8x8_t, b: int8x8_t, c: int8x8_t);
57278    }
57279    _vst1_s8_x3(a, b.0, b.1, b.2)
57280}
57281#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
57282#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s8_x3)"]
57283#[doc = "## Safety"]
57284#[doc = "  * Neon instrinsic unsafe"]
57285#[inline]
57286#[target_feature(enable = "neon,v7")]
57287#[cfg(target_arch = "arm")]
57288#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
57289#[cfg_attr(test, assert_instr(vst1))]
57290pub unsafe fn vst1q_s8_x3(a: *mut i8, b: int8x16x3_t) {
57291    unsafe extern "unadjusted" {
57292        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x3.p0.v16i8.p0")]
57293        fn _vst1q_s8_x3(ptr: *mut i8, a: int8x16_t, b: int8x16_t, c: int8x16_t);
57294    }
57295    _vst1q_s8_x3(a, b.0, b.1, b.2)
57296}
57297#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
57298#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s16_x3)"]
57299#[doc = "## Safety"]
57300#[doc = "  * Neon instrinsic unsafe"]
57301#[inline]
57302#[target_feature(enable = "neon,v7")]
57303#[cfg(target_arch = "arm")]
57304#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
57305#[cfg_attr(test, assert_instr(vst1))]
57306pub unsafe fn vst1_s16_x3(a: *mut i16, b: int16x4x3_t) {
57307    unsafe extern "unadjusted" {
57308        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x3.p0.v4i16.p0")]
57309        fn _vst1_s16_x3(ptr: *mut i16, a: int16x4_t, b: int16x4_t, c: int16x4_t);
57310    }
57311    _vst1_s16_x3(a, b.0, b.1, b.2)
57312}
57313#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
57314#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s16_x3)"]
57315#[doc = "## Safety"]
57316#[doc = "  * Neon instrinsic unsafe"]
57317#[inline]
57318#[target_feature(enable = "neon,v7")]
57319#[cfg(target_arch = "arm")]
57320#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
57321#[cfg_attr(test, assert_instr(vst1))]
57322pub unsafe fn vst1q_s16_x3(a: *mut i16, b: int16x8x3_t) {
57323    unsafe extern "unadjusted" {
57324        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x3.p0.v8i16.p0")]
57325        fn _vst1q_s16_x3(ptr: *mut i16, a: int16x8_t, b: int16x8_t, c: int16x8_t);
57326    }
57327    _vst1q_s16_x3(a, b.0, b.1, b.2)
57328}
57329#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
57330#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s32_x3)"]
57331#[doc = "## Safety"]
57332#[doc = "  * Neon instrinsic unsafe"]
57333#[inline]
57334#[target_feature(enable = "neon,v7")]
57335#[cfg(target_arch = "arm")]
57336#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
57337#[cfg_attr(test, assert_instr(vst1))]
57338pub unsafe fn vst1_s32_x3(a: *mut i32, b: int32x2x3_t) {
57339    unsafe extern "unadjusted" {
57340        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x3.p0.v2i32.p0")]
57341        fn _vst1_s32_x3(ptr: *mut i32, a: int32x2_t, b: int32x2_t, c: int32x2_t);
57342    }
57343    _vst1_s32_x3(a, b.0, b.1, b.2)
57344}
57345#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
57346#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s32_x3)"]
57347#[doc = "## Safety"]
57348#[doc = "  * Neon instrinsic unsafe"]
57349#[inline]
57350#[target_feature(enable = "neon,v7")]
57351#[cfg(target_arch = "arm")]
57352#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
57353#[cfg_attr(test, assert_instr(vst1))]
57354pub unsafe fn vst1q_s32_x3(a: *mut i32, b: int32x4x3_t) {
57355    unsafe extern "unadjusted" {
57356        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x3.p0.v4i32.p0")]
57357        fn _vst1q_s32_x3(ptr: *mut i32, a: int32x4_t, b: int32x4_t, c: int32x4_t);
57358    }
57359    _vst1q_s32_x3(a, b.0, b.1, b.2)
57360}
57361#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
57362#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s64_x3)"]
57363#[doc = "## Safety"]
57364#[doc = "  * Neon instrinsic unsafe"]
57365#[inline]
57366#[target_feature(enable = "neon,v7")]
57367#[cfg(target_arch = "arm")]
57368#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
57369#[cfg_attr(test, assert_instr(vst1))]
57370pub unsafe fn vst1_s64_x3(a: *mut i64, b: int64x1x3_t) {
57371    unsafe extern "unadjusted" {
57372        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x3.p0.v1i64.p0")]
57373        fn _vst1_s64_x3(ptr: *mut i64, a: int64x1_t, b: int64x1_t, c: int64x1_t);
57374    }
57375    _vst1_s64_x3(a, b.0, b.1, b.2)
57376}
57377#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
57378#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s64_x3)"]
57379#[doc = "## Safety"]
57380#[doc = "  * Neon instrinsic unsafe"]
57381#[inline]
57382#[target_feature(enable = "neon,v7")]
57383#[cfg(target_arch = "arm")]
57384#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
57385#[cfg_attr(test, assert_instr(vst1))]
57386pub unsafe fn vst1q_s64_x3(a: *mut i64, b: int64x2x3_t) {
57387    unsafe extern "unadjusted" {
57388        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x3.p0.v2i64.p0")]
57389        fn _vst1q_s64_x3(ptr: *mut i64, a: int64x2_t, b: int64x2_t, c: int64x2_t);
57390    }
57391    _vst1q_s64_x3(a, b.0, b.1, b.2)
57392}
57393#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
57394#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s8_x4)"]
57395#[doc = "## Safety"]
57396#[doc = "  * Neon instrinsic unsafe"]
57397#[inline]
57398#[target_feature(enable = "neon")]
57399#[cfg(not(target_arch = "arm"))]
57400#[stable(feature = "neon_intrinsics", since = "1.59.0")]
57401#[cfg_attr(test, assert_instr(st1))]
57402pub unsafe fn vst1_s8_x4(a: *mut i8, b: int8x8x4_t) {
57403    unsafe extern "unadjusted" {
57404        #[cfg_attr(
57405            any(target_arch = "aarch64", target_arch = "arm64ec"),
57406            link_name = "llvm.aarch64.neon.st1x4.v8i8.p0"
57407        )]
57408        fn _vst1_s8_x4(a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t, ptr: *mut i8);
57409    }
57410    _vst1_s8_x4(b.0, b.1, b.2, b.3, a)
57411}
57412#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
57413#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s8_x4)"]
57414#[doc = "## Safety"]
57415#[doc = "  * Neon instrinsic unsafe"]
57416#[inline]
57417#[target_feature(enable = "neon")]
57418#[cfg(not(target_arch = "arm"))]
57419#[stable(feature = "neon_intrinsics", since = "1.59.0")]
57420#[cfg_attr(test, assert_instr(st1))]
57421pub unsafe fn vst1q_s8_x4(a: *mut i8, b: int8x16x4_t) {
57422    unsafe extern "unadjusted" {
57423        #[cfg_attr(
57424            any(target_arch = "aarch64", target_arch = "arm64ec"),
57425            link_name = "llvm.aarch64.neon.st1x4.v16i8.p0"
57426        )]
57427        fn _vst1q_s8_x4(a: int8x16_t, b: int8x16_t, c: int8x16_t, d: int8x16_t, ptr: *mut i8);
57428    }
57429    _vst1q_s8_x4(b.0, b.1, b.2, b.3, a)
57430}
57431#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
57432#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s16_x4)"]
57433#[doc = "## Safety"]
57434#[doc = "  * Neon instrinsic unsafe"]
57435#[inline]
57436#[target_feature(enable = "neon")]
57437#[cfg(not(target_arch = "arm"))]
57438#[stable(feature = "neon_intrinsics", since = "1.59.0")]
57439#[cfg_attr(test, assert_instr(st1))]
57440pub unsafe fn vst1_s16_x4(a: *mut i16, b: int16x4x4_t) {
57441    unsafe extern "unadjusted" {
57442        #[cfg_attr(
57443            any(target_arch = "aarch64", target_arch = "arm64ec"),
57444            link_name = "llvm.aarch64.neon.st1x4.v4i16.p0"
57445        )]
57446        fn _vst1_s16_x4(a: int16x4_t, b: int16x4_t, c: int16x4_t, d: int16x4_t, ptr: *mut i16);
57447    }
57448    _vst1_s16_x4(b.0, b.1, b.2, b.3, a)
57449}
57450#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
57451#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s16_x4)"]
57452#[doc = "## Safety"]
57453#[doc = "  * Neon instrinsic unsafe"]
57454#[inline]
57455#[target_feature(enable = "neon")]
57456#[cfg(not(target_arch = "arm"))]
57457#[stable(feature = "neon_intrinsics", since = "1.59.0")]
57458#[cfg_attr(test, assert_instr(st1))]
57459pub unsafe fn vst1q_s16_x4(a: *mut i16, b: int16x8x4_t) {
57460    unsafe extern "unadjusted" {
57461        #[cfg_attr(
57462            any(target_arch = "aarch64", target_arch = "arm64ec"),
57463            link_name = "llvm.aarch64.neon.st1x4.v8i16.p0"
57464        )]
57465        fn _vst1q_s16_x4(a: int16x8_t, b: int16x8_t, c: int16x8_t, d: int16x8_t, ptr: *mut i16);
57466    }
57467    _vst1q_s16_x4(b.0, b.1, b.2, b.3, a)
57468}
57469#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
57470#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s32_x4)"]
57471#[doc = "## Safety"]
57472#[doc = "  * Neon instrinsic unsafe"]
57473#[inline]
57474#[target_feature(enable = "neon")]
57475#[cfg(not(target_arch = "arm"))]
57476#[stable(feature = "neon_intrinsics", since = "1.59.0")]
57477#[cfg_attr(test, assert_instr(st1))]
57478pub unsafe fn vst1_s32_x4(a: *mut i32, b: int32x2x4_t) {
57479    unsafe extern "unadjusted" {
57480        #[cfg_attr(
57481            any(target_arch = "aarch64", target_arch = "arm64ec"),
57482            link_name = "llvm.aarch64.neon.st1x4.v2i32.p0"
57483        )]
57484        fn _vst1_s32_x4(a: int32x2_t, b: int32x2_t, c: int32x2_t, d: int32x2_t, ptr: *mut i32);
57485    }
57486    _vst1_s32_x4(b.0, b.1, b.2, b.3, a)
57487}
57488#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
57489#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s32_x4)"]
57490#[doc = "## Safety"]
57491#[doc = "  * Neon instrinsic unsafe"]
57492#[inline]
57493#[target_feature(enable = "neon")]
57494#[cfg(not(target_arch = "arm"))]
57495#[stable(feature = "neon_intrinsics", since = "1.59.0")]
57496#[cfg_attr(test, assert_instr(st1))]
57497pub unsafe fn vst1q_s32_x4(a: *mut i32, b: int32x4x4_t) {
57498    unsafe extern "unadjusted" {
57499        #[cfg_attr(
57500            any(target_arch = "aarch64", target_arch = "arm64ec"),
57501            link_name = "llvm.aarch64.neon.st1x4.v4i32.p0"
57502        )]
57503        fn _vst1q_s32_x4(a: int32x4_t, b: int32x4_t, c: int32x4_t, d: int32x4_t, ptr: *mut i32);
57504    }
57505    _vst1q_s32_x4(b.0, b.1, b.2, b.3, a)
57506}
57507#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
57508#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s64_x4)"]
57509#[doc = "## Safety"]
57510#[doc = "  * Neon instrinsic unsafe"]
57511#[inline]
57512#[target_feature(enable = "neon")]
57513#[cfg(not(target_arch = "arm"))]
57514#[stable(feature = "neon_intrinsics", since = "1.59.0")]
57515#[cfg_attr(test, assert_instr(st1))]
57516pub unsafe fn vst1_s64_x4(a: *mut i64, b: int64x1x4_t) {
57517    unsafe extern "unadjusted" {
57518        #[cfg_attr(
57519            any(target_arch = "aarch64", target_arch = "arm64ec"),
57520            link_name = "llvm.aarch64.neon.st1x4.v1i64.p0"
57521        )]
57522        fn _vst1_s64_x4(a: int64x1_t, b: int64x1_t, c: int64x1_t, d: int64x1_t, ptr: *mut i64);
57523    }
57524    _vst1_s64_x4(b.0, b.1, b.2, b.3, a)
57525}
57526#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
57527#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s64_x4)"]
57528#[doc = "## Safety"]
57529#[doc = "  * Neon instrinsic unsafe"]
57530#[inline]
57531#[target_feature(enable = "neon")]
57532#[cfg(not(target_arch = "arm"))]
57533#[stable(feature = "neon_intrinsics", since = "1.59.0")]
57534#[cfg_attr(test, assert_instr(st1))]
57535pub unsafe fn vst1q_s64_x4(a: *mut i64, b: int64x2x4_t) {
57536    unsafe extern "unadjusted" {
57537        #[cfg_attr(
57538            any(target_arch = "aarch64", target_arch = "arm64ec"),
57539            link_name = "llvm.aarch64.neon.st1x4.v2i64.p0"
57540        )]
57541        fn _vst1q_s64_x4(a: int64x2_t, b: int64x2_t, c: int64x2_t, d: int64x2_t, ptr: *mut i64);
57542    }
57543    _vst1q_s64_x4(b.0, b.1, b.2, b.3, a)
57544}
57545#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
57546#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s8_x4)"]
57547#[doc = "## Safety"]
57548#[doc = "  * Neon instrinsic unsafe"]
57549#[inline]
57550#[cfg(target_arch = "arm")]
57551#[target_feature(enable = "neon,v7")]
57552#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
57553#[cfg_attr(test, assert_instr(vst1))]
57554pub unsafe fn vst1_s8_x4(a: *mut i8, b: int8x8x4_t) {
57555    unsafe extern "unadjusted" {
57556        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x4.p0.v8i8.p0")]
57557        fn _vst1_s8_x4(ptr: *mut i8, a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t);
57558    }
57559    _vst1_s8_x4(a, b.0, b.1, b.2, b.3)
57560}
57561#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
57562#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s8_x4)"]
57563#[doc = "## Safety"]
57564#[doc = "  * Neon instrinsic unsafe"]
57565#[inline]
57566#[cfg(target_arch = "arm")]
57567#[target_feature(enable = "neon,v7")]
57568#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
57569#[cfg_attr(test, assert_instr(vst1))]
57570pub unsafe fn vst1q_s8_x4(a: *mut i8, b: int8x16x4_t) {
57571    unsafe extern "unadjusted" {
57572        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x4.p0.v16i8.p0")]
57573        fn _vst1q_s8_x4(ptr: *mut i8, a: int8x16_t, b: int8x16_t, c: int8x16_t, d: int8x16_t);
57574    }
57575    _vst1q_s8_x4(a, b.0, b.1, b.2, b.3)
57576}
57577#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
57578#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s16_x4)"]
57579#[doc = "## Safety"]
57580#[doc = "  * Neon instrinsic unsafe"]
57581#[inline]
57582#[cfg(target_arch = "arm")]
57583#[target_feature(enable = "neon,v7")]
57584#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
57585#[cfg_attr(test, assert_instr(vst1))]
57586pub unsafe fn vst1_s16_x4(a: *mut i16, b: int16x4x4_t) {
57587    unsafe extern "unadjusted" {
57588        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x4.p0.v4i16.p0")]
57589        fn _vst1_s16_x4(ptr: *mut i16, a: int16x4_t, b: int16x4_t, c: int16x4_t, d: int16x4_t);
57590    }
57591    _vst1_s16_x4(a, b.0, b.1, b.2, b.3)
57592}
57593#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
57594#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s16_x4)"]
57595#[doc = "## Safety"]
57596#[doc = "  * Neon instrinsic unsafe"]
57597#[inline]
57598#[cfg(target_arch = "arm")]
57599#[target_feature(enable = "neon,v7")]
57600#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
57601#[cfg_attr(test, assert_instr(vst1))]
57602pub unsafe fn vst1q_s16_x4(a: *mut i16, b: int16x8x4_t) {
57603    unsafe extern "unadjusted" {
57604        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x4.p0.v8i16.p0")]
57605        fn _vst1q_s16_x4(ptr: *mut i16, a: int16x8_t, b: int16x8_t, c: int16x8_t, d: int16x8_t);
57606    }
57607    _vst1q_s16_x4(a, b.0, b.1, b.2, b.3)
57608}
57609#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
57610#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s32_x4)"]
57611#[doc = "## Safety"]
57612#[doc = "  * Neon instrinsic unsafe"]
57613#[inline]
57614#[cfg(target_arch = "arm")]
57615#[target_feature(enable = "neon,v7")]
57616#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
57617#[cfg_attr(test, assert_instr(vst1))]
57618pub unsafe fn vst1_s32_x4(a: *mut i32, b: int32x2x4_t) {
57619    unsafe extern "unadjusted" {
57620        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x4.p0.v2i32.p0")]
57621        fn _vst1_s32_x4(ptr: *mut i32, a: int32x2_t, b: int32x2_t, c: int32x2_t, d: int32x2_t);
57622    }
57623    _vst1_s32_x4(a, b.0, b.1, b.2, b.3)
57624}
57625#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
57626#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s32_x4)"]
57627#[doc = "## Safety"]
57628#[doc = "  * Neon instrinsic unsafe"]
57629#[inline]
57630#[cfg(target_arch = "arm")]
57631#[target_feature(enable = "neon,v7")]
57632#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
57633#[cfg_attr(test, assert_instr(vst1))]
57634pub unsafe fn vst1q_s32_x4(a: *mut i32, b: int32x4x4_t) {
57635    unsafe extern "unadjusted" {
57636        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x4.p0.v4i32.p0")]
57637        fn _vst1q_s32_x4(ptr: *mut i32, a: int32x4_t, b: int32x4_t, c: int32x4_t, d: int32x4_t);
57638    }
57639    _vst1q_s32_x4(a, b.0, b.1, b.2, b.3)
57640}
57641#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
57642#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s64_x4)"]
57643#[doc = "## Safety"]
57644#[doc = "  * Neon instrinsic unsafe"]
57645#[inline]
57646#[cfg(target_arch = "arm")]
57647#[target_feature(enable = "neon,v7")]
57648#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
57649#[cfg_attr(test, assert_instr(vst1))]
57650pub unsafe fn vst1_s64_x4(a: *mut i64, b: int64x1x4_t) {
57651    unsafe extern "unadjusted" {
57652        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x4.p0.v1i64.p0")]
57653        fn _vst1_s64_x4(ptr: *mut i64, a: int64x1_t, b: int64x1_t, c: int64x1_t, d: int64x1_t);
57654    }
57655    _vst1_s64_x4(a, b.0, b.1, b.2, b.3)
57656}
57657#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
57658#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s64_x4)"]
57659#[doc = "## Safety"]
57660#[doc = "  * Neon instrinsic unsafe"]
57661#[inline]
57662#[cfg(target_arch = "arm")]
57663#[target_feature(enable = "neon,v7")]
57664#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
57665#[cfg_attr(test, assert_instr(vst1))]
57666pub unsafe fn vst1q_s64_x4(a: *mut i64, b: int64x2x4_t) {
57667    unsafe extern "unadjusted" {
57668        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x4.p0.v2i64.p0")]
57669        fn _vst1q_s64_x4(ptr: *mut i64, a: int64x2_t, b: int64x2_t, c: int64x2_t, d: int64x2_t);
57670    }
57671    _vst1q_s64_x4(a, b.0, b.1, b.2, b.3)
57672}
57673#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
57674#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u8_x2)"]
57675#[doc = "## Safety"]
57676#[doc = "  * Neon instrinsic unsafe"]
57677#[inline]
57678#[target_feature(enable = "neon")]
57679#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57680#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
57681#[cfg_attr(
57682    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57683    assert_instr(st1)
57684)]
57685#[cfg_attr(
57686    not(target_arch = "arm"),
57687    stable(feature = "neon_intrinsics", since = "1.59.0")
57688)]
57689#[cfg_attr(
57690    target_arch = "arm",
57691    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57692)]
57693pub unsafe fn vst1_u8_x2(a: *mut u8, b: uint8x8x2_t) {
57694    vst1_s8_x2(transmute(a), transmute(b))
57695}
57696#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
57697#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u8_x3)"]
57698#[doc = "## Safety"]
57699#[doc = "  * Neon instrinsic unsafe"]
57700#[inline]
57701#[target_feature(enable = "neon")]
57702#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57703#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
57704#[cfg_attr(
57705    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57706    assert_instr(st1)
57707)]
57708#[cfg_attr(
57709    not(target_arch = "arm"),
57710    stable(feature = "neon_intrinsics", since = "1.59.0")
57711)]
57712#[cfg_attr(
57713    target_arch = "arm",
57714    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57715)]
57716pub unsafe fn vst1_u8_x3(a: *mut u8, b: uint8x8x3_t) {
57717    vst1_s8_x3(transmute(a), transmute(b))
57718}
57719#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
57720#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u8_x4)"]
57721#[doc = "## Safety"]
57722#[doc = "  * Neon instrinsic unsafe"]
57723#[inline]
57724#[target_feature(enable = "neon")]
57725#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57726#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
57727#[cfg_attr(
57728    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57729    assert_instr(st1)
57730)]
57731#[cfg_attr(
57732    not(target_arch = "arm"),
57733    stable(feature = "neon_intrinsics", since = "1.59.0")
57734)]
57735#[cfg_attr(
57736    target_arch = "arm",
57737    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57738)]
57739pub unsafe fn vst1_u8_x4(a: *mut u8, b: uint8x8x4_t) {
57740    vst1_s8_x4(transmute(a), transmute(b))
57741}
57742#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
57743#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u8_x2)"]
57744#[doc = "## Safety"]
57745#[doc = "  * Neon instrinsic unsafe"]
57746#[inline]
57747#[target_feature(enable = "neon")]
57748#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57749#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
57750#[cfg_attr(
57751    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57752    assert_instr(st1)
57753)]
57754#[cfg_attr(
57755    not(target_arch = "arm"),
57756    stable(feature = "neon_intrinsics", since = "1.59.0")
57757)]
57758#[cfg_attr(
57759    target_arch = "arm",
57760    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57761)]
57762pub unsafe fn vst1q_u8_x2(a: *mut u8, b: uint8x16x2_t) {
57763    vst1q_s8_x2(transmute(a), transmute(b))
57764}
57765#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
57766#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u8_x3)"]
57767#[doc = "## Safety"]
57768#[doc = "  * Neon instrinsic unsafe"]
57769#[inline]
57770#[target_feature(enable = "neon")]
57771#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57772#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
57773#[cfg_attr(
57774    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57775    assert_instr(st1)
57776)]
57777#[cfg_attr(
57778    not(target_arch = "arm"),
57779    stable(feature = "neon_intrinsics", since = "1.59.0")
57780)]
57781#[cfg_attr(
57782    target_arch = "arm",
57783    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57784)]
57785pub unsafe fn vst1q_u8_x3(a: *mut u8, b: uint8x16x3_t) {
57786    vst1q_s8_x3(transmute(a), transmute(b))
57787}
57788#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
57789#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u8_x4)"]
57790#[doc = "## Safety"]
57791#[doc = "  * Neon instrinsic unsafe"]
57792#[inline]
57793#[target_feature(enable = "neon")]
57794#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57795#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
57796#[cfg_attr(
57797    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57798    assert_instr(st1)
57799)]
57800#[cfg_attr(
57801    not(target_arch = "arm"),
57802    stable(feature = "neon_intrinsics", since = "1.59.0")
57803)]
57804#[cfg_attr(
57805    target_arch = "arm",
57806    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57807)]
57808pub unsafe fn vst1q_u8_x4(a: *mut u8, b: uint8x16x4_t) {
57809    vst1q_s8_x4(transmute(a), transmute(b))
57810}
57811#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
57812#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u16_x2)"]
57813#[doc = "## Safety"]
57814#[doc = "  * Neon instrinsic unsafe"]
57815#[inline]
57816#[target_feature(enable = "neon")]
57817#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57818#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
57819#[cfg_attr(
57820    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57821    assert_instr(st1)
57822)]
57823#[cfg_attr(
57824    not(target_arch = "arm"),
57825    stable(feature = "neon_intrinsics", since = "1.59.0")
57826)]
57827#[cfg_attr(
57828    target_arch = "arm",
57829    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57830)]
57831pub unsafe fn vst1_u16_x2(a: *mut u16, b: uint16x4x2_t) {
57832    vst1_s16_x2(transmute(a), transmute(b))
57833}
57834#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
57835#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u16_x3)"]
57836#[doc = "## Safety"]
57837#[doc = "  * Neon instrinsic unsafe"]
57838#[inline]
57839#[target_feature(enable = "neon")]
57840#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57841#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
57842#[cfg_attr(
57843    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57844    assert_instr(st1)
57845)]
57846#[cfg_attr(
57847    not(target_arch = "arm"),
57848    stable(feature = "neon_intrinsics", since = "1.59.0")
57849)]
57850#[cfg_attr(
57851    target_arch = "arm",
57852    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57853)]
57854pub unsafe fn vst1_u16_x3(a: *mut u16, b: uint16x4x3_t) {
57855    vst1_s16_x3(transmute(a), transmute(b))
57856}
57857#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
57858#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u16_x4)"]
57859#[doc = "## Safety"]
57860#[doc = "  * Neon instrinsic unsafe"]
57861#[inline]
57862#[target_feature(enable = "neon")]
57863#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57864#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
57865#[cfg_attr(
57866    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57867    assert_instr(st1)
57868)]
57869#[cfg_attr(
57870    not(target_arch = "arm"),
57871    stable(feature = "neon_intrinsics", since = "1.59.0")
57872)]
57873#[cfg_attr(
57874    target_arch = "arm",
57875    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57876)]
57877pub unsafe fn vst1_u16_x4(a: *mut u16, b: uint16x4x4_t) {
57878    vst1_s16_x4(transmute(a), transmute(b))
57879}
57880#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
57881#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u16_x2)"]
57882#[doc = "## Safety"]
57883#[doc = "  * Neon instrinsic unsafe"]
57884#[inline]
57885#[target_feature(enable = "neon")]
57886#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57887#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
57888#[cfg_attr(
57889    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57890    assert_instr(st1)
57891)]
57892#[cfg_attr(
57893    not(target_arch = "arm"),
57894    stable(feature = "neon_intrinsics", since = "1.59.0")
57895)]
57896#[cfg_attr(
57897    target_arch = "arm",
57898    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57899)]
57900pub unsafe fn vst1q_u16_x2(a: *mut u16, b: uint16x8x2_t) {
57901    vst1q_s16_x2(transmute(a), transmute(b))
57902}
57903#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
57904#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u16_x3)"]
57905#[doc = "## Safety"]
57906#[doc = "  * Neon instrinsic unsafe"]
57907#[inline]
57908#[target_feature(enable = "neon")]
57909#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57910#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
57911#[cfg_attr(
57912    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57913    assert_instr(st1)
57914)]
57915#[cfg_attr(
57916    not(target_arch = "arm"),
57917    stable(feature = "neon_intrinsics", since = "1.59.0")
57918)]
57919#[cfg_attr(
57920    target_arch = "arm",
57921    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57922)]
57923pub unsafe fn vst1q_u16_x3(a: *mut u16, b: uint16x8x3_t) {
57924    vst1q_s16_x3(transmute(a), transmute(b))
57925}
57926#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
57927#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u16_x4)"]
57928#[doc = "## Safety"]
57929#[doc = "  * Neon instrinsic unsafe"]
57930#[inline]
57931#[target_feature(enable = "neon")]
57932#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57933#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
57934#[cfg_attr(
57935    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57936    assert_instr(st1)
57937)]
57938#[cfg_attr(
57939    not(target_arch = "arm"),
57940    stable(feature = "neon_intrinsics", since = "1.59.0")
57941)]
57942#[cfg_attr(
57943    target_arch = "arm",
57944    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57945)]
57946pub unsafe fn vst1q_u16_x4(a: *mut u16, b: uint16x8x4_t) {
57947    vst1q_s16_x4(transmute(a), transmute(b))
57948}
57949#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
57950#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u32_x2)"]
57951#[doc = "## Safety"]
57952#[doc = "  * Neon instrinsic unsafe"]
57953#[inline]
57954#[target_feature(enable = "neon")]
57955#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57956#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
57957#[cfg_attr(
57958    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57959    assert_instr(st1)
57960)]
57961#[cfg_attr(
57962    not(target_arch = "arm"),
57963    stable(feature = "neon_intrinsics", since = "1.59.0")
57964)]
57965#[cfg_attr(
57966    target_arch = "arm",
57967    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57968)]
57969pub unsafe fn vst1_u32_x2(a: *mut u32, b: uint32x2x2_t) {
57970    vst1_s32_x2(transmute(a), transmute(b))
57971}
57972#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
57973#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u32_x3)"]
57974#[doc = "## Safety"]
57975#[doc = "  * Neon instrinsic unsafe"]
57976#[inline]
57977#[target_feature(enable = "neon")]
57978#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57979#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
57980#[cfg_attr(
57981    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57982    assert_instr(st1)
57983)]
57984#[cfg_attr(
57985    not(target_arch = "arm"),
57986    stable(feature = "neon_intrinsics", since = "1.59.0")
57987)]
57988#[cfg_attr(
57989    target_arch = "arm",
57990    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57991)]
57992pub unsafe fn vst1_u32_x3(a: *mut u32, b: uint32x2x3_t) {
57993    vst1_s32_x3(transmute(a), transmute(b))
57994}
57995#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
57996#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u32_x4)"]
57997#[doc = "## Safety"]
57998#[doc = "  * Neon instrinsic unsafe"]
57999#[inline]
58000#[target_feature(enable = "neon")]
58001#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58002#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
58003#[cfg_attr(
58004    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58005    assert_instr(st1)
58006)]
58007#[cfg_attr(
58008    not(target_arch = "arm"),
58009    stable(feature = "neon_intrinsics", since = "1.59.0")
58010)]
58011#[cfg_attr(
58012    target_arch = "arm",
58013    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58014)]
58015pub unsafe fn vst1_u32_x4(a: *mut u32, b: uint32x2x4_t) {
58016    vst1_s32_x4(transmute(a), transmute(b))
58017}
58018#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
58019#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u32_x2)"]
58020#[doc = "## Safety"]
58021#[doc = "  * Neon instrinsic unsafe"]
58022#[inline]
58023#[target_feature(enable = "neon")]
58024#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58025#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
58026#[cfg_attr(
58027    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58028    assert_instr(st1)
58029)]
58030#[cfg_attr(
58031    not(target_arch = "arm"),
58032    stable(feature = "neon_intrinsics", since = "1.59.0")
58033)]
58034#[cfg_attr(
58035    target_arch = "arm",
58036    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58037)]
58038pub unsafe fn vst1q_u32_x2(a: *mut u32, b: uint32x4x2_t) {
58039    vst1q_s32_x2(transmute(a), transmute(b))
58040}
58041#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
58042#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u32_x3)"]
58043#[doc = "## Safety"]
58044#[doc = "  * Neon instrinsic unsafe"]
58045#[inline]
58046#[target_feature(enable = "neon")]
58047#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58048#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
58049#[cfg_attr(
58050    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58051    assert_instr(st1)
58052)]
58053#[cfg_attr(
58054    not(target_arch = "arm"),
58055    stable(feature = "neon_intrinsics", since = "1.59.0")
58056)]
58057#[cfg_attr(
58058    target_arch = "arm",
58059    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58060)]
58061pub unsafe fn vst1q_u32_x3(a: *mut u32, b: uint32x4x3_t) {
58062    vst1q_s32_x3(transmute(a), transmute(b))
58063}
58064#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
58065#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u32_x4)"]
58066#[doc = "## Safety"]
58067#[doc = "  * Neon instrinsic unsafe"]
58068#[inline]
58069#[target_feature(enable = "neon")]
58070#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58071#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
58072#[cfg_attr(
58073    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58074    assert_instr(st1)
58075)]
58076#[cfg_attr(
58077    not(target_arch = "arm"),
58078    stable(feature = "neon_intrinsics", since = "1.59.0")
58079)]
58080#[cfg_attr(
58081    target_arch = "arm",
58082    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58083)]
58084pub unsafe fn vst1q_u32_x4(a: *mut u32, b: uint32x4x4_t) {
58085    vst1q_s32_x4(transmute(a), transmute(b))
58086}
58087#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
58088#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u64_x2)"]
58089#[doc = "## Safety"]
58090#[doc = "  * Neon instrinsic unsafe"]
58091#[inline]
58092#[target_feature(enable = "neon")]
58093#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58094#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
58095#[cfg_attr(
58096    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58097    assert_instr(st1)
58098)]
58099#[cfg_attr(
58100    not(target_arch = "arm"),
58101    stable(feature = "neon_intrinsics", since = "1.59.0")
58102)]
58103#[cfg_attr(
58104    target_arch = "arm",
58105    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58106)]
58107pub unsafe fn vst1_u64_x2(a: *mut u64, b: uint64x1x2_t) {
58108    vst1_s64_x2(transmute(a), transmute(b))
58109}
58110#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
58111#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u64_x3)"]
58112#[doc = "## Safety"]
58113#[doc = "  * Neon instrinsic unsafe"]
58114#[inline]
58115#[target_feature(enable = "neon")]
58116#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58117#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
58118#[cfg_attr(
58119    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58120    assert_instr(st1)
58121)]
58122#[cfg_attr(
58123    not(target_arch = "arm"),
58124    stable(feature = "neon_intrinsics", since = "1.59.0")
58125)]
58126#[cfg_attr(
58127    target_arch = "arm",
58128    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58129)]
58130pub unsafe fn vst1_u64_x3(a: *mut u64, b: uint64x1x3_t) {
58131    vst1_s64_x3(transmute(a), transmute(b))
58132}
58133#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
58134#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u64_x4)"]
58135#[doc = "## Safety"]
58136#[doc = "  * Neon instrinsic unsafe"]
58137#[inline]
58138#[target_feature(enable = "neon")]
58139#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58140#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
58141#[cfg_attr(
58142    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58143    assert_instr(st1)
58144)]
58145#[cfg_attr(
58146    not(target_arch = "arm"),
58147    stable(feature = "neon_intrinsics", since = "1.59.0")
58148)]
58149#[cfg_attr(
58150    target_arch = "arm",
58151    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58152)]
58153pub unsafe fn vst1_u64_x4(a: *mut u64, b: uint64x1x4_t) {
58154    vst1_s64_x4(transmute(a), transmute(b))
58155}
58156#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
58157#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u64_x2)"]
58158#[doc = "## Safety"]
58159#[doc = "  * Neon instrinsic unsafe"]
58160#[inline]
58161#[target_feature(enable = "neon")]
58162#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58163#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
58164#[cfg_attr(
58165    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58166    assert_instr(st1)
58167)]
58168#[cfg_attr(
58169    not(target_arch = "arm"),
58170    stable(feature = "neon_intrinsics", since = "1.59.0")
58171)]
58172#[cfg_attr(
58173    target_arch = "arm",
58174    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58175)]
58176pub unsafe fn vst1q_u64_x2(a: *mut u64, b: uint64x2x2_t) {
58177    vst1q_s64_x2(transmute(a), transmute(b))
58178}
58179#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
58180#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u64_x3)"]
58181#[doc = "## Safety"]
58182#[doc = "  * Neon instrinsic unsafe"]
58183#[inline]
58184#[target_feature(enable = "neon")]
58185#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58186#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
58187#[cfg_attr(
58188    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58189    assert_instr(st1)
58190)]
58191#[cfg_attr(
58192    not(target_arch = "arm"),
58193    stable(feature = "neon_intrinsics", since = "1.59.0")
58194)]
58195#[cfg_attr(
58196    target_arch = "arm",
58197    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58198)]
58199pub unsafe fn vst1q_u64_x3(a: *mut u64, b: uint64x2x3_t) {
58200    vst1q_s64_x3(transmute(a), transmute(b))
58201}
58202#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
58203#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u64_x4)"]
58204#[doc = "## Safety"]
58205#[doc = "  * Neon instrinsic unsafe"]
58206#[inline]
58207#[target_feature(enable = "neon")]
58208#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58209#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
58210#[cfg_attr(
58211    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58212    assert_instr(st1)
58213)]
58214#[cfg_attr(
58215    not(target_arch = "arm"),
58216    stable(feature = "neon_intrinsics", since = "1.59.0")
58217)]
58218#[cfg_attr(
58219    target_arch = "arm",
58220    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58221)]
58222pub unsafe fn vst1q_u64_x4(a: *mut u64, b: uint64x2x4_t) {
58223    vst1q_s64_x4(transmute(a), transmute(b))
58224}
58225#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
58226#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_p8_x2)"]
58227#[doc = "## Safety"]
58228#[doc = "  * Neon instrinsic unsafe"]
58229#[inline]
58230#[target_feature(enable = "neon")]
58231#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58232#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
58233#[cfg_attr(
58234    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58235    assert_instr(st1)
58236)]
58237#[cfg_attr(
58238    not(target_arch = "arm"),
58239    stable(feature = "neon_intrinsics", since = "1.59.0")
58240)]
58241#[cfg_attr(
58242    target_arch = "arm",
58243    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58244)]
58245pub unsafe fn vst1_p8_x2(a: *mut p8, b: poly8x8x2_t) {
58246    vst1_s8_x2(transmute(a), transmute(b))
58247}
58248#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
58249#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_p8_x3)"]
58250#[doc = "## Safety"]
58251#[doc = "  * Neon instrinsic unsafe"]
58252#[inline]
58253#[target_feature(enable = "neon")]
58254#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58255#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
58256#[cfg_attr(
58257    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58258    assert_instr(st1)
58259)]
58260#[cfg_attr(
58261    not(target_arch = "arm"),
58262    stable(feature = "neon_intrinsics", since = "1.59.0")
58263)]
58264#[cfg_attr(
58265    target_arch = "arm",
58266    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58267)]
58268pub unsafe fn vst1_p8_x3(a: *mut p8, b: poly8x8x3_t) {
58269    vst1_s8_x3(transmute(a), transmute(b))
58270}
58271#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
58272#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_p8_x4)"]
58273#[doc = "## Safety"]
58274#[doc = "  * Neon instrinsic unsafe"]
58275#[inline]
58276#[target_feature(enable = "neon")]
58277#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58278#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
58279#[cfg_attr(
58280    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58281    assert_instr(st1)
58282)]
58283#[cfg_attr(
58284    not(target_arch = "arm"),
58285    stable(feature = "neon_intrinsics", since = "1.59.0")
58286)]
58287#[cfg_attr(
58288    target_arch = "arm",
58289    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58290)]
58291pub unsafe fn vst1_p8_x4(a: *mut p8, b: poly8x8x4_t) {
58292    vst1_s8_x4(transmute(a), transmute(b))
58293}
58294#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
58295#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_p8_x2)"]
58296#[doc = "## Safety"]
58297#[doc = "  * Neon instrinsic unsafe"]
58298#[inline]
58299#[target_feature(enable = "neon")]
58300#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58301#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
58302#[cfg_attr(
58303    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58304    assert_instr(st1)
58305)]
58306#[cfg_attr(
58307    not(target_arch = "arm"),
58308    stable(feature = "neon_intrinsics", since = "1.59.0")
58309)]
58310#[cfg_attr(
58311    target_arch = "arm",
58312    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58313)]
58314pub unsafe fn vst1q_p8_x2(a: *mut p8, b: poly8x16x2_t) {
58315    vst1q_s8_x2(transmute(a), transmute(b))
58316}
58317#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
58318#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_p8_x3)"]
58319#[doc = "## Safety"]
58320#[doc = "  * Neon instrinsic unsafe"]
58321#[inline]
58322#[target_feature(enable = "neon")]
58323#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58324#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
58325#[cfg_attr(
58326    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58327    assert_instr(st1)
58328)]
58329#[cfg_attr(
58330    not(target_arch = "arm"),
58331    stable(feature = "neon_intrinsics", since = "1.59.0")
58332)]
58333#[cfg_attr(
58334    target_arch = "arm",
58335    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58336)]
58337pub unsafe fn vst1q_p8_x3(a: *mut p8, b: poly8x16x3_t) {
58338    vst1q_s8_x3(transmute(a), transmute(b))
58339}
58340#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
58341#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_p8_x4)"]
58342#[doc = "## Safety"]
58343#[doc = "  * Neon instrinsic unsafe"]
58344#[inline]
58345#[target_feature(enable = "neon")]
58346#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58347#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
58348#[cfg_attr(
58349    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58350    assert_instr(st1)
58351)]
58352#[cfg_attr(
58353    not(target_arch = "arm"),
58354    stable(feature = "neon_intrinsics", since = "1.59.0")
58355)]
58356#[cfg_attr(
58357    target_arch = "arm",
58358    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58359)]
58360pub unsafe fn vst1q_p8_x4(a: *mut p8, b: poly8x16x4_t) {
58361    vst1q_s8_x4(transmute(a), transmute(b))
58362}
58363#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
58364#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_p16_x2)"]
58365#[doc = "## Safety"]
58366#[doc = "  * Neon instrinsic unsafe"]
58367#[inline]
58368#[target_feature(enable = "neon")]
58369#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58370#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
58371#[cfg_attr(
58372    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58373    assert_instr(st1)
58374)]
58375#[cfg_attr(
58376    not(target_arch = "arm"),
58377    stable(feature = "neon_intrinsics", since = "1.59.0")
58378)]
58379#[cfg_attr(
58380    target_arch = "arm",
58381    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58382)]
58383pub unsafe fn vst1_p16_x2(a: *mut p16, b: poly16x4x2_t) {
58384    vst1_s16_x2(transmute(a), transmute(b))
58385}
58386#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
58387#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_p16_x3)"]
58388#[doc = "## Safety"]
58389#[doc = "  * Neon instrinsic unsafe"]
58390#[inline]
58391#[target_feature(enable = "neon")]
58392#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58393#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
58394#[cfg_attr(
58395    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58396    assert_instr(st1)
58397)]
58398#[cfg_attr(
58399    not(target_arch = "arm"),
58400    stable(feature = "neon_intrinsics", since = "1.59.0")
58401)]
58402#[cfg_attr(
58403    target_arch = "arm",
58404    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58405)]
58406pub unsafe fn vst1_p16_x3(a: *mut p16, b: poly16x4x3_t) {
58407    vst1_s16_x3(transmute(a), transmute(b))
58408}
58409#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
58410#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_p16_x4)"]
58411#[doc = "## Safety"]
58412#[doc = "  * Neon instrinsic unsafe"]
58413#[inline]
58414#[target_feature(enable = "neon")]
58415#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58416#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
58417#[cfg_attr(
58418    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58419    assert_instr(st1)
58420)]
58421#[cfg_attr(
58422    not(target_arch = "arm"),
58423    stable(feature = "neon_intrinsics", since = "1.59.0")
58424)]
58425#[cfg_attr(
58426    target_arch = "arm",
58427    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58428)]
58429pub unsafe fn vst1_p16_x4(a: *mut p16, b: poly16x4x4_t) {
58430    vst1_s16_x4(transmute(a), transmute(b))
58431}
58432#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
58433#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_p16_x2)"]
58434#[doc = "## Safety"]
58435#[doc = "  * Neon instrinsic unsafe"]
58436#[inline]
58437#[target_feature(enable = "neon")]
58438#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58439#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
58440#[cfg_attr(
58441    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58442    assert_instr(st1)
58443)]
58444#[cfg_attr(
58445    not(target_arch = "arm"),
58446    stable(feature = "neon_intrinsics", since = "1.59.0")
58447)]
58448#[cfg_attr(
58449    target_arch = "arm",
58450    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58451)]
58452pub unsafe fn vst1q_p16_x2(a: *mut p16, b: poly16x8x2_t) {
58453    vst1q_s16_x2(transmute(a), transmute(b))
58454}
58455#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
58456#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_p16_x3)"]
58457#[doc = "## Safety"]
58458#[doc = "  * Neon instrinsic unsafe"]
58459#[inline]
58460#[target_feature(enable = "neon")]
58461#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58462#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
58463#[cfg_attr(
58464    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58465    assert_instr(st1)
58466)]
58467#[cfg_attr(
58468    not(target_arch = "arm"),
58469    stable(feature = "neon_intrinsics", since = "1.59.0")
58470)]
58471#[cfg_attr(
58472    target_arch = "arm",
58473    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58474)]
58475pub unsafe fn vst1q_p16_x3(a: *mut p16, b: poly16x8x3_t) {
58476    vst1q_s16_x3(transmute(a), transmute(b))
58477}
58478#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
58479#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_p16_x4)"]
58480#[doc = "## Safety"]
58481#[doc = "  * Neon instrinsic unsafe"]
58482#[inline]
58483#[target_feature(enable = "neon")]
58484#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58485#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
58486#[cfg_attr(
58487    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58488    assert_instr(st1)
58489)]
58490#[cfg_attr(
58491    not(target_arch = "arm"),
58492    stable(feature = "neon_intrinsics", since = "1.59.0")
58493)]
58494#[cfg_attr(
58495    target_arch = "arm",
58496    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58497)]
58498pub unsafe fn vst1q_p16_x4(a: *mut p16, b: poly16x8x4_t) {
58499    vst1q_s16_x4(transmute(a), transmute(b))
58500}
58501#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
58502#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_v1i64)"]
58503#[doc = "## Safety"]
58504#[doc = "  * Neon instrinsic unsafe"]
58505#[inline]
58506#[target_feature(enable = "neon")]
58507#[cfg(target_arch = "arm")]
58508#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58509#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
58510#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.64"))]
58511unsafe fn vst1_v1i64(addr: *const i8, val: int64x1_t, align: i32) {
58512    unsafe extern "unadjusted" {
58513        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1.v1i64.p0")]
58514        fn _vst1_v1i64(addr: *const i8, val: int64x1_t, align: i32);
58515    }
58516    _vst1_v1i64(addr, val, align)
58517}
58518#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
58519#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_v2f32)"]
58520#[doc = "## Safety"]
58521#[doc = "  * Neon instrinsic unsafe"]
58522#[inline]
58523#[target_feature(enable = "neon")]
58524#[cfg(target_arch = "arm")]
58525#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58526#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
58527#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.32"))]
58528unsafe fn vst1_v2f32(addr: *const i8, val: float32x2_t, align: i32) {
58529    unsafe extern "unadjusted" {
58530        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1.v2f32.p0")]
58531        fn _vst1_v2f32(addr: *const i8, val: float32x2_t, align: i32);
58532    }
58533    _vst1_v2f32(addr, val, align)
58534}
58535#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
58536#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_v2i32)"]
58537#[doc = "## Safety"]
58538#[doc = "  * Neon instrinsic unsafe"]
58539#[inline]
58540#[target_feature(enable = "neon")]
58541#[cfg(target_arch = "arm")]
58542#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58543#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
58544#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.32"))]
58545unsafe fn vst1_v2i32(addr: *const i8, val: int32x2_t, align: i32) {
58546    unsafe extern "unadjusted" {
58547        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1.v2i32.p0")]
58548        fn _vst1_v2i32(addr: *const i8, val: int32x2_t, align: i32);
58549    }
58550    _vst1_v2i32(addr, val, align)
58551}
58552#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
58553#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_v4i16)"]
58554#[doc = "## Safety"]
58555#[doc = "  * Neon instrinsic unsafe"]
58556#[inline]
58557#[target_feature(enable = "neon")]
58558#[cfg(target_arch = "arm")]
58559#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58560#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
58561#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.16"))]
58562unsafe fn vst1_v4i16(addr: *const i8, val: int16x4_t, align: i32) {
58563    unsafe extern "unadjusted" {
58564        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1.v4i16.p0")]
58565        fn _vst1_v4i16(addr: *const i8, val: int16x4_t, align: i32);
58566    }
58567    _vst1_v4i16(addr, val, align)
58568}
58569#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
58570#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_v8i8)"]
58571#[doc = "## Safety"]
58572#[doc = "  * Neon instrinsic unsafe"]
58573#[inline]
58574#[target_feature(enable = "neon")]
58575#[cfg(target_arch = "arm")]
58576#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58577#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
58578#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.8"))]
58579unsafe fn vst1_v8i8(addr: *const i8, val: int8x8_t, align: i32) {
58580    unsafe extern "unadjusted" {
58581        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1.v8i8.p0")]
58582        fn _vst1_v8i8(addr: *const i8, val: int8x8_t, align: i32);
58583    }
58584    _vst1_v8i8(addr, val, align)
58585}
58586#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
58587#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_v16i8)"]
58588#[doc = "## Safety"]
58589#[doc = "  * Neon instrinsic unsafe"]
58590#[inline]
58591#[target_feature(enable = "neon")]
58592#[cfg(target_arch = "arm")]
58593#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58594#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
58595#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.8"))]
58596unsafe fn vst1q_v16i8(addr: *const i8, val: int8x16_t, align: i32) {
58597    unsafe extern "unadjusted" {
58598        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1.v16i8.p0")]
58599        fn _vst1q_v16i8(addr: *const i8, val: int8x16_t, align: i32);
58600    }
58601    _vst1q_v16i8(addr, val, align)
58602}
58603#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
58604#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_v2i64)"]
58605#[doc = "## Safety"]
58606#[doc = "  * Neon instrinsic unsafe"]
58607#[inline]
58608#[target_feature(enable = "neon")]
58609#[cfg(target_arch = "arm")]
58610#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58611#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
58612#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.64"))]
58613unsafe fn vst1q_v2i64(addr: *const i8, val: int64x2_t, align: i32) {
58614    unsafe extern "unadjusted" {
58615        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1.v2i64.p0")]
58616        fn _vst1q_v2i64(addr: *const i8, val: int64x2_t, align: i32);
58617    }
58618    _vst1q_v2i64(addr, val, align)
58619}
58620#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
58621#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_v4f32)"]
58622#[doc = "## Safety"]
58623#[doc = "  * Neon instrinsic unsafe"]
58624#[inline]
58625#[target_feature(enable = "neon")]
58626#[cfg(target_arch = "arm")]
58627#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58628#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
58629#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.32"))]
58630unsafe fn vst1q_v4f32(addr: *const i8, val: float32x4_t, align: i32) {
58631    unsafe extern "unadjusted" {
58632        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1.v4f32.p0")]
58633        fn _vst1q_v4f32(addr: *const i8, val: float32x4_t, align: i32);
58634    }
58635    _vst1q_v4f32(addr, val, align)
58636}
58637#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
58638#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_v4i32)"]
58639#[doc = "## Safety"]
58640#[doc = "  * Neon instrinsic unsafe"]
58641#[inline]
58642#[target_feature(enable = "neon")]
58643#[cfg(target_arch = "arm")]
58644#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58645#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
58646#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.32"))]
58647unsafe fn vst1q_v4i32(addr: *const i8, val: int32x4_t, align: i32) {
58648    unsafe extern "unadjusted" {
58649        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1.v4i32.p0")]
58650        fn _vst1q_v4i32(addr: *const i8, val: int32x4_t, align: i32);
58651    }
58652    _vst1q_v4i32(addr, val, align)
58653}
58654#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
58655#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_v8i16)"]
58656#[doc = "## Safety"]
58657#[doc = "  * Neon instrinsic unsafe"]
58658#[inline]
58659#[target_feature(enable = "neon")]
58660#[cfg(target_arch = "arm")]
58661#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58662#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
58663#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.16"))]
58664unsafe fn vst1q_v8i16(addr: *const i8, val: int16x8_t, align: i32) {
58665    unsafe extern "unadjusted" {
58666        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1.v8i16.p0")]
58667        fn _vst1q_v8i16(addr: *const i8, val: int16x8_t, align: i32);
58668    }
58669    _vst1q_v8i16(addr, val, align)
58670}
58671#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
58672#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_v4f16)"]
58673#[doc = "## Safety"]
58674#[doc = "  * Neon instrinsic unsafe"]
58675#[inline]
58676#[cfg(target_arch = "arm")]
58677#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58678#[target_feature(enable = "neon,fp16")]
58679#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
58680#[cfg(not(target_arch = "arm64ec"))]
58681#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.16"))]
58682unsafe fn vst1_v4f16(addr: *const i8, val: float16x4_t, align: i32) {
58683    unsafe extern "unadjusted" {
58684        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1.v4f16.p0")]
58685        fn _vst1_v4f16(addr: *const i8, val: float16x4_t, align: i32);
58686    }
58687    _vst1_v4f16(addr, val, align)
58688}
58689#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
58690#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_v8f16)"]
58691#[doc = "## Safety"]
58692#[doc = "  * Neon instrinsic unsafe"]
58693#[inline]
58694#[cfg(target_arch = "arm")]
58695#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58696#[target_feature(enable = "neon,fp16")]
58697#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
58698#[cfg(not(target_arch = "arm64ec"))]
58699#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.16"))]
58700unsafe fn vst1q_v8f16(addr: *const i8, val: float16x8_t, align: i32) {
58701    unsafe extern "unadjusted" {
58702        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1.v8f16.p0")]
58703        fn _vst1q_v8f16(addr: *const i8, val: float16x8_t, align: i32);
58704    }
58705    _vst1q_v8f16(addr, val, align)
58706}
58707#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
58708#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_p64)"]
58709#[doc = "## Safety"]
58710#[doc = "  * Neon instrinsic unsafe"]
58711#[inline]
58712#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
58713#[target_feature(enable = "neon,aes")]
58714#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
58715#[cfg_attr(
58716    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58717    assert_instr(nop, LANE = 0)
58718)]
58719#[rustc_legacy_const_generics(2)]
58720#[cfg_attr(
58721    not(target_arch = "arm"),
58722    stable(feature = "neon_intrinsics", since = "1.59.0")
58723)]
58724#[cfg_attr(
58725    target_arch = "arm",
58726    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58727)]
58728pub unsafe fn vst1q_lane_p64<const LANE: i32>(a: *mut p64, b: poly64x2_t) {
58729    static_assert_uimm_bits!(LANE, 1);
58730    *a = simd_extract!(b, LANE as u32);
58731}
58732#[doc = "Store multiple 2-element structures from two registers"]
58733#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_f16)"]
58734#[doc = "## Safety"]
58735#[doc = "  * Neon instrinsic unsafe"]
58736#[inline]
58737#[cfg(not(target_arch = "arm"))]
58738#[target_feature(enable = "neon,fp16")]
58739#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
58740#[cfg(not(target_arch = "arm64ec"))]
58741#[cfg_attr(test, assert_instr(st2))]
58742pub unsafe fn vst2_f16(a: *mut f16, b: float16x4x2_t) {
58743    unsafe extern "unadjusted" {
58744        #[cfg_attr(
58745            any(target_arch = "aarch64", target_arch = "arm64ec"),
58746            link_name = "llvm.aarch64.neon.st2.v4f16.p0"
58747        )]
58748        fn _vst2_f16(a: float16x4_t, b: float16x4_t, ptr: *mut i8);
58749    }
58750    _vst2_f16(b.0, b.1, a as _)
58751}
58752#[doc = "Store multiple 2-element structures from two registers"]
58753#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_f16)"]
58754#[doc = "## Safety"]
58755#[doc = "  * Neon instrinsic unsafe"]
58756#[inline]
58757#[cfg(not(target_arch = "arm"))]
58758#[target_feature(enable = "neon,fp16")]
58759#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
58760#[cfg(not(target_arch = "arm64ec"))]
58761#[cfg_attr(test, assert_instr(st2))]
58762pub unsafe fn vst2q_f16(a: *mut f16, b: float16x8x2_t) {
58763    unsafe extern "unadjusted" {
58764        #[cfg_attr(
58765            any(target_arch = "aarch64", target_arch = "arm64ec"),
58766            link_name = "llvm.aarch64.neon.st2.v8f16.p0"
58767        )]
58768        fn _vst2q_f16(a: float16x8_t, b: float16x8_t, ptr: *mut i8);
58769    }
58770    _vst2q_f16(b.0, b.1, a as _)
58771}
58772#[doc = "Store multiple 2-element structures from two registers"]
58773#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_f16)"]
58774#[doc = "## Safety"]
58775#[doc = "  * Neon instrinsic unsafe"]
58776#[inline]
58777#[cfg(target_arch = "arm")]
58778#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58779#[target_feature(enable = "neon,fp16")]
58780#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
58781#[cfg(not(target_arch = "arm64ec"))]
58782#[cfg_attr(test, assert_instr(vst2))]
58783pub unsafe fn vst2_f16(a: *mut f16, b: float16x4x2_t) {
58784    unsafe extern "unadjusted" {
58785        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2.p0.v4f16")]
58786        fn _vst2_f16(ptr: *mut i8, a: float16x4_t, b: float16x4_t, size: i32);
58787    }
58788    _vst2_f16(a as _, b.0, b.1, 2)
58789}
58790#[doc = "Store multiple 2-element structures from two registers"]
58791#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_f16)"]
58792#[doc = "## Safety"]
58793#[doc = "  * Neon instrinsic unsafe"]
58794#[inline]
58795#[cfg(target_arch = "arm")]
58796#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58797#[target_feature(enable = "neon,fp16")]
58798#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
58799#[cfg(not(target_arch = "arm64ec"))]
58800#[cfg_attr(test, assert_instr(vst2))]
58801pub unsafe fn vst2q_f16(a: *mut f16, b: float16x8x2_t) {
58802    unsafe extern "unadjusted" {
58803        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2.p0.v8f16")]
58804        fn _vst2q_f16(ptr: *mut i8, a: float16x8_t, b: float16x8_t, size: i32);
58805    }
58806    _vst2q_f16(a as _, b.0, b.1, 2)
58807}
58808#[doc = "Store multiple 2-element structures from two registers"]
58809#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_f32)"]
58810#[doc = "## Safety"]
58811#[doc = "  * Neon instrinsic unsafe"]
58812#[inline]
58813#[target_feature(enable = "neon")]
58814#[cfg(not(target_arch = "arm"))]
58815#[stable(feature = "neon_intrinsics", since = "1.59.0")]
58816#[cfg_attr(test, assert_instr(st2))]
58817pub unsafe fn vst2_f32(a: *mut f32, b: float32x2x2_t) {
58818    unsafe extern "unadjusted" {
58819        #[cfg_attr(
58820            any(target_arch = "aarch64", target_arch = "arm64ec"),
58821            link_name = "llvm.aarch64.neon.st2.v2f32.p0"
58822        )]
58823        fn _vst2_f32(a: float32x2_t, b: float32x2_t, ptr: *mut i8);
58824    }
58825    _vst2_f32(b.0, b.1, a as _)
58826}
58827#[doc = "Store multiple 2-element structures from two registers"]
58828#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_f32)"]
58829#[doc = "## Safety"]
58830#[doc = "  * Neon instrinsic unsafe"]
58831#[inline]
58832#[target_feature(enable = "neon")]
58833#[cfg(not(target_arch = "arm"))]
58834#[stable(feature = "neon_intrinsics", since = "1.59.0")]
58835#[cfg_attr(test, assert_instr(st2))]
58836pub unsafe fn vst2q_f32(a: *mut f32, b: float32x4x2_t) {
58837    unsafe extern "unadjusted" {
58838        #[cfg_attr(
58839            any(target_arch = "aarch64", target_arch = "arm64ec"),
58840            link_name = "llvm.aarch64.neon.st2.v4f32.p0"
58841        )]
58842        fn _vst2q_f32(a: float32x4_t, b: float32x4_t, ptr: *mut i8);
58843    }
58844    _vst2q_f32(b.0, b.1, a as _)
58845}
58846#[doc = "Store multiple 2-element structures from two registers"]
58847#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_s8)"]
58848#[doc = "## Safety"]
58849#[doc = "  * Neon instrinsic unsafe"]
58850#[inline]
58851#[target_feature(enable = "neon")]
58852#[cfg(not(target_arch = "arm"))]
58853#[stable(feature = "neon_intrinsics", since = "1.59.0")]
58854#[cfg_attr(test, assert_instr(st2))]
58855pub unsafe fn vst2_s8(a: *mut i8, b: int8x8x2_t) {
58856    unsafe extern "unadjusted" {
58857        #[cfg_attr(
58858            any(target_arch = "aarch64", target_arch = "arm64ec"),
58859            link_name = "llvm.aarch64.neon.st2.v8i8.p0"
58860        )]
58861        fn _vst2_s8(a: int8x8_t, b: int8x8_t, ptr: *mut i8);
58862    }
58863    _vst2_s8(b.0, b.1, a as _)
58864}
58865#[doc = "Store multiple 2-element structures from two registers"]
58866#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_s8)"]
58867#[doc = "## Safety"]
58868#[doc = "  * Neon instrinsic unsafe"]
58869#[inline]
58870#[target_feature(enable = "neon")]
58871#[cfg(not(target_arch = "arm"))]
58872#[stable(feature = "neon_intrinsics", since = "1.59.0")]
58873#[cfg_attr(test, assert_instr(st2))]
58874pub unsafe fn vst2q_s8(a: *mut i8, b: int8x16x2_t) {
58875    unsafe extern "unadjusted" {
58876        #[cfg_attr(
58877            any(target_arch = "aarch64", target_arch = "arm64ec"),
58878            link_name = "llvm.aarch64.neon.st2.v16i8.p0"
58879        )]
58880        fn _vst2q_s8(a: int8x16_t, b: int8x16_t, ptr: *mut i8);
58881    }
58882    _vst2q_s8(b.0, b.1, a as _)
58883}
58884#[doc = "Store multiple 2-element structures from two registers"]
58885#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_s16)"]
58886#[doc = "## Safety"]
58887#[doc = "  * Neon instrinsic unsafe"]
58888#[inline]
58889#[target_feature(enable = "neon")]
58890#[cfg(not(target_arch = "arm"))]
58891#[stable(feature = "neon_intrinsics", since = "1.59.0")]
58892#[cfg_attr(test, assert_instr(st2))]
58893pub unsafe fn vst2_s16(a: *mut i16, b: int16x4x2_t) {
58894    unsafe extern "unadjusted" {
58895        #[cfg_attr(
58896            any(target_arch = "aarch64", target_arch = "arm64ec"),
58897            link_name = "llvm.aarch64.neon.st2.v4i16.p0"
58898        )]
58899        fn _vst2_s16(a: int16x4_t, b: int16x4_t, ptr: *mut i8);
58900    }
58901    _vst2_s16(b.0, b.1, a as _)
58902}
58903#[doc = "Store multiple 2-element structures from two registers"]
58904#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_s16)"]
58905#[doc = "## Safety"]
58906#[doc = "  * Neon instrinsic unsafe"]
58907#[inline]
58908#[target_feature(enable = "neon")]
58909#[cfg(not(target_arch = "arm"))]
58910#[stable(feature = "neon_intrinsics", since = "1.59.0")]
58911#[cfg_attr(test, assert_instr(st2))]
58912pub unsafe fn vst2q_s16(a: *mut i16, b: int16x8x2_t) {
58913    unsafe extern "unadjusted" {
58914        #[cfg_attr(
58915            any(target_arch = "aarch64", target_arch = "arm64ec"),
58916            link_name = "llvm.aarch64.neon.st2.v8i16.p0"
58917        )]
58918        fn _vst2q_s16(a: int16x8_t, b: int16x8_t, ptr: *mut i8);
58919    }
58920    _vst2q_s16(b.0, b.1, a as _)
58921}
58922#[doc = "Store multiple 2-element structures from two registers"]
58923#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_s32)"]
58924#[doc = "## Safety"]
58925#[doc = "  * Neon instrinsic unsafe"]
58926#[inline]
58927#[target_feature(enable = "neon")]
58928#[cfg(not(target_arch = "arm"))]
58929#[stable(feature = "neon_intrinsics", since = "1.59.0")]
58930#[cfg_attr(test, assert_instr(st2))]
58931pub unsafe fn vst2_s32(a: *mut i32, b: int32x2x2_t) {
58932    unsafe extern "unadjusted" {
58933        #[cfg_attr(
58934            any(target_arch = "aarch64", target_arch = "arm64ec"),
58935            link_name = "llvm.aarch64.neon.st2.v2i32.p0"
58936        )]
58937        fn _vst2_s32(a: int32x2_t, b: int32x2_t, ptr: *mut i8);
58938    }
58939    _vst2_s32(b.0, b.1, a as _)
58940}
58941#[doc = "Store multiple 2-element structures from two registers"]
58942#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_s32)"]
58943#[doc = "## Safety"]
58944#[doc = "  * Neon instrinsic unsafe"]
58945#[inline]
58946#[target_feature(enable = "neon")]
58947#[cfg(not(target_arch = "arm"))]
58948#[stable(feature = "neon_intrinsics", since = "1.59.0")]
58949#[cfg_attr(test, assert_instr(st2))]
58950pub unsafe fn vst2q_s32(a: *mut i32, b: int32x4x2_t) {
58951    unsafe extern "unadjusted" {
58952        #[cfg_attr(
58953            any(target_arch = "aarch64", target_arch = "arm64ec"),
58954            link_name = "llvm.aarch64.neon.st2.v4i32.p0"
58955        )]
58956        fn _vst2q_s32(a: int32x4_t, b: int32x4_t, ptr: *mut i8);
58957    }
58958    _vst2q_s32(b.0, b.1, a as _)
58959}
58960#[doc = "Store multiple 2-element structures from two registers"]
58961#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_f32)"]
58962#[doc = "## Safety"]
58963#[doc = "  * Neon instrinsic unsafe"]
58964#[inline]
58965#[cfg(target_arch = "arm")]
58966#[target_feature(enable = "neon,v7")]
58967#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
58968#[cfg_attr(test, assert_instr(vst2))]
58969pub unsafe fn vst2_f32(a: *mut f32, b: float32x2x2_t) {
58970    unsafe extern "unadjusted" {
58971        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2.v2f32.p0")]
58972        fn _vst2_f32(ptr: *mut i8, a: float32x2_t, b: float32x2_t, size: i32);
58973    }
58974    _vst2_f32(a as _, b.0, b.1, 4)
58975}
58976#[doc = "Store multiple 2-element structures from two registers"]
58977#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_f32)"]
58978#[doc = "## Safety"]
58979#[doc = "  * Neon instrinsic unsafe"]
58980#[inline]
58981#[cfg(target_arch = "arm")]
58982#[target_feature(enable = "neon,v7")]
58983#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
58984#[cfg_attr(test, assert_instr(vst2))]
58985pub unsafe fn vst2q_f32(a: *mut f32, b: float32x4x2_t) {
58986    unsafe extern "unadjusted" {
58987        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2.v4f32.p0")]
58988        fn _vst2q_f32(ptr: *mut i8, a: float32x4_t, b: float32x4_t, size: i32);
58989    }
58990    _vst2q_f32(a as _, b.0, b.1, 4)
58991}
58992#[doc = "Store multiple 2-element structures from two registers"]
58993#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_s8)"]
58994#[doc = "## Safety"]
58995#[doc = "  * Neon instrinsic unsafe"]
58996#[inline]
58997#[cfg(target_arch = "arm")]
58998#[target_feature(enable = "neon,v7")]
58999#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
59000#[cfg_attr(test, assert_instr(vst2))]
59001pub unsafe fn vst2_s8(a: *mut i8, b: int8x8x2_t) {
59002    unsafe extern "unadjusted" {
59003        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2.v8i8.p0")]
59004        fn _vst2_s8(ptr: *mut i8, a: int8x8_t, b: int8x8_t, size: i32);
59005    }
59006    _vst2_s8(a as _, b.0, b.1, 1)
59007}
59008#[doc = "Store multiple 2-element structures from two registers"]
59009#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_s8)"]
59010#[doc = "## Safety"]
59011#[doc = "  * Neon instrinsic unsafe"]
59012#[inline]
59013#[cfg(target_arch = "arm")]
59014#[target_feature(enable = "neon,v7")]
59015#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
59016#[cfg_attr(test, assert_instr(vst2))]
59017pub unsafe fn vst2q_s8(a: *mut i8, b: int8x16x2_t) {
59018    unsafe extern "unadjusted" {
59019        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2.v16i8.p0")]
59020        fn _vst2q_s8(ptr: *mut i8, a: int8x16_t, b: int8x16_t, size: i32);
59021    }
59022    _vst2q_s8(a as _, b.0, b.1, 1)
59023}
59024#[doc = "Store multiple 2-element structures from two registers"]
59025#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_s16)"]
59026#[doc = "## Safety"]
59027#[doc = "  * Neon instrinsic unsafe"]
59028#[inline]
59029#[cfg(target_arch = "arm")]
59030#[target_feature(enable = "neon,v7")]
59031#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
59032#[cfg_attr(test, assert_instr(vst2))]
59033pub unsafe fn vst2_s16(a: *mut i16, b: int16x4x2_t) {
59034    unsafe extern "unadjusted" {
59035        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2.v4i16.p0")]
59036        fn _vst2_s16(ptr: *mut i8, a: int16x4_t, b: int16x4_t, size: i32);
59037    }
59038    _vst2_s16(a as _, b.0, b.1, 2)
59039}
59040#[doc = "Store multiple 2-element structures from two registers"]
59041#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_s16)"]
59042#[doc = "## Safety"]
59043#[doc = "  * Neon instrinsic unsafe"]
59044#[inline]
59045#[cfg(target_arch = "arm")]
59046#[target_feature(enable = "neon,v7")]
59047#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
59048#[cfg_attr(test, assert_instr(vst2))]
59049pub unsafe fn vst2q_s16(a: *mut i16, b: int16x8x2_t) {
59050    unsafe extern "unadjusted" {
59051        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2.v8i16.p0")]
59052        fn _vst2q_s16(ptr: *mut i8, a: int16x8_t, b: int16x8_t, size: i32);
59053    }
59054    _vst2q_s16(a as _, b.0, b.1, 2)
59055}
59056#[doc = "Store multiple 2-element structures from two registers"]
59057#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_s32)"]
59058#[doc = "## Safety"]
59059#[doc = "  * Neon instrinsic unsafe"]
59060#[inline]
59061#[cfg(target_arch = "arm")]
59062#[target_feature(enable = "neon,v7")]
59063#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
59064#[cfg_attr(test, assert_instr(vst2))]
59065pub unsafe fn vst2_s32(a: *mut i32, b: int32x2x2_t) {
59066    unsafe extern "unadjusted" {
59067        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2.v2i32.p0")]
59068        fn _vst2_s32(ptr: *mut i8, a: int32x2_t, b: int32x2_t, size: i32);
59069    }
59070    _vst2_s32(a as _, b.0, b.1, 4)
59071}
59072#[doc = "Store multiple 2-element structures from two registers"]
59073#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_s32)"]
59074#[doc = "## Safety"]
59075#[doc = "  * Neon instrinsic unsafe"]
59076#[inline]
59077#[cfg(target_arch = "arm")]
59078#[target_feature(enable = "neon,v7")]
59079#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
59080#[cfg_attr(test, assert_instr(vst2))]
59081pub unsafe fn vst2q_s32(a: *mut i32, b: int32x4x2_t) {
59082    unsafe extern "unadjusted" {
59083        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2.v4i32.p0")]
59084        fn _vst2q_s32(ptr: *mut i8, a: int32x4_t, b: int32x4_t, size: i32);
59085    }
59086    _vst2q_s32(a as _, b.0, b.1, 4)
59087}
59088#[doc = "Store multiple 2-element structures from two registers"]
59089#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_f16)"]
59090#[doc = "## Safety"]
59091#[doc = "  * Neon instrinsic unsafe"]
59092#[inline]
59093#[cfg(not(target_arch = "arm"))]
59094#[rustc_legacy_const_generics(2)]
59095#[cfg_attr(test, assert_instr(st2, LANE = 0))]
59096#[target_feature(enable = "neon,fp16")]
59097#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
59098#[cfg(not(target_arch = "arm64ec"))]
59099pub unsafe fn vst2_lane_f16<const LANE: i32>(a: *mut f16, b: float16x4x2_t) {
59100    static_assert_uimm_bits!(LANE, 2);
59101    unsafe extern "unadjusted" {
59102        #[cfg_attr(
59103            any(target_arch = "aarch64", target_arch = "arm64ec"),
59104            link_name = "llvm.aarch64.neon.st2lane.v4f16.p0"
59105        )]
59106        fn _vst2_lane_f16(a: float16x4_t, b: float16x4_t, n: i64, ptr: *mut i8);
59107    }
59108    _vst2_lane_f16(b.0, b.1, LANE as i64, a as _)
59109}
59110#[doc = "Store multiple 2-element structures from two registers"]
59111#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_lane_f16)"]
59112#[doc = "## Safety"]
59113#[doc = "  * Neon instrinsic unsafe"]
59114#[inline]
59115#[cfg(not(target_arch = "arm"))]
59116#[rustc_legacy_const_generics(2)]
59117#[cfg_attr(test, assert_instr(st2, LANE = 0))]
59118#[target_feature(enable = "neon,fp16")]
59119#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
59120#[cfg(not(target_arch = "arm64ec"))]
59121pub unsafe fn vst2q_lane_f16<const LANE: i32>(a: *mut f16, b: float16x8x2_t) {
59122    static_assert_uimm_bits!(LANE, 3);
59123    unsafe extern "unadjusted" {
59124        #[cfg_attr(
59125            any(target_arch = "aarch64", target_arch = "arm64ec"),
59126            link_name = "llvm.aarch64.neon.st2lane.v8f16.p0"
59127        )]
59128        fn _vst2q_lane_f16(a: float16x8_t, b: float16x8_t, n: i64, ptr: *mut i8);
59129    }
59130    _vst2q_lane_f16(b.0, b.1, LANE as i64, a as _)
59131}
59132#[doc = "Store multiple 2-element structures from two registers"]
59133#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_f16)"]
59134#[doc = "## Safety"]
59135#[doc = "  * Neon instrinsic unsafe"]
59136#[inline]
59137#[cfg(target_arch = "arm")]
59138#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59139#[cfg_attr(test, assert_instr(vst2, LANE = 0))]
59140#[rustc_legacy_const_generics(2)]
59141#[target_feature(enable = "neon,fp16")]
59142#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
59143#[cfg(not(target_arch = "arm64ec"))]
59144pub unsafe fn vst2_lane_f16<const LANE: i32>(a: *mut f16, b: float16x4x2_t) {
59145    static_assert_uimm_bits!(LANE, 2);
59146    unsafe extern "unadjusted" {
59147        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2lane.p0.v4f16")]
59148        fn _vst2_lane_f16(ptr: *mut i8, a: float16x4_t, b: float16x4_t, n: i32, size: i32);
59149    }
59150    _vst2_lane_f16(a as _, b.0, b.1, LANE, 2)
59151}
59152#[doc = "Store multiple 2-element structures from two registers"]
59153#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_lane_f16)"]
59154#[doc = "## Safety"]
59155#[doc = "  * Neon instrinsic unsafe"]
59156#[inline]
59157#[cfg(target_arch = "arm")]
59158#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59159#[cfg_attr(test, assert_instr(vst2, LANE = 0))]
59160#[rustc_legacy_const_generics(2)]
59161#[target_feature(enable = "neon,fp16")]
59162#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
59163#[cfg(not(target_arch = "arm64ec"))]
59164pub unsafe fn vst2q_lane_f16<const LANE: i32>(a: *mut f16, b: float16x8x2_t) {
59165    static_assert_uimm_bits!(LANE, 1);
59166    unsafe extern "unadjusted" {
59167        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2lane.p0.v8f16")]
59168        fn _vst2q_lane_f16(ptr: *mut i8, a: float16x8_t, b: float16x8_t, n: i32, size: i32);
59169    }
59170    _vst2q_lane_f16(a as _, b.0, b.1, LANE, 2)
59171}
59172#[doc = "Store multiple 2-element structures from two registers"]
59173#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_f32)"]
59174#[doc = "## Safety"]
59175#[doc = "  * Neon instrinsic unsafe"]
59176#[inline]
59177#[target_feature(enable = "neon")]
59178#[cfg(not(target_arch = "arm"))]
59179#[rustc_legacy_const_generics(2)]
59180#[cfg_attr(test, assert_instr(st2, LANE = 0))]
59181#[stable(feature = "neon_intrinsics", since = "1.59.0")]
59182pub unsafe fn vst2_lane_f32<const LANE: i32>(a: *mut f32, b: float32x2x2_t) {
59183    static_assert_uimm_bits!(LANE, 1);
59184    unsafe extern "unadjusted" {
59185        #[cfg_attr(
59186            any(target_arch = "aarch64", target_arch = "arm64ec"),
59187            link_name = "llvm.aarch64.neon.st2lane.v2f32.p0"
59188        )]
59189        fn _vst2_lane_f32(a: float32x2_t, b: float32x2_t, n: i64, ptr: *mut i8);
59190    }
59191    _vst2_lane_f32(b.0, b.1, LANE as i64, a as _)
59192}
59193#[doc = "Store multiple 2-element structures from two registers"]
59194#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_lane_f32)"]
59195#[doc = "## Safety"]
59196#[doc = "  * Neon instrinsic unsafe"]
59197#[inline]
59198#[target_feature(enable = "neon")]
59199#[cfg(not(target_arch = "arm"))]
59200#[rustc_legacy_const_generics(2)]
59201#[cfg_attr(test, assert_instr(st2, LANE = 0))]
59202#[stable(feature = "neon_intrinsics", since = "1.59.0")]
59203pub unsafe fn vst2q_lane_f32<const LANE: i32>(a: *mut f32, b: float32x4x2_t) {
59204    static_assert_uimm_bits!(LANE, 2);
59205    unsafe extern "unadjusted" {
59206        #[cfg_attr(
59207            any(target_arch = "aarch64", target_arch = "arm64ec"),
59208            link_name = "llvm.aarch64.neon.st2lane.v4f32.p0"
59209        )]
59210        fn _vst2q_lane_f32(a: float32x4_t, b: float32x4_t, n: i64, ptr: *mut i8);
59211    }
59212    _vst2q_lane_f32(b.0, b.1, LANE as i64, a as _)
59213}
59214#[doc = "Store multiple 2-element structures from two registers"]
59215#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_s8)"]
59216#[doc = "## Safety"]
59217#[doc = "  * Neon instrinsic unsafe"]
59218#[inline]
59219#[target_feature(enable = "neon")]
59220#[cfg(not(target_arch = "arm"))]
59221#[rustc_legacy_const_generics(2)]
59222#[cfg_attr(test, assert_instr(st2, LANE = 0))]
59223#[stable(feature = "neon_intrinsics", since = "1.59.0")]
59224pub unsafe fn vst2_lane_s8<const LANE: i32>(a: *mut i8, b: int8x8x2_t) {
59225    static_assert_uimm_bits!(LANE, 3);
59226    unsafe extern "unadjusted" {
59227        #[cfg_attr(
59228            any(target_arch = "aarch64", target_arch = "arm64ec"),
59229            link_name = "llvm.aarch64.neon.st2lane.v8i8.p0"
59230        )]
59231        fn _vst2_lane_s8(a: int8x8_t, b: int8x8_t, n: i64, ptr: *mut i8);
59232    }
59233    _vst2_lane_s8(b.0, b.1, LANE as i64, a as _)
59234}
59235#[doc = "Store multiple 2-element structures from two registers"]
59236#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_s16)"]
59237#[doc = "## Safety"]
59238#[doc = "  * Neon instrinsic unsafe"]
59239#[inline]
59240#[target_feature(enable = "neon")]
59241#[cfg(not(target_arch = "arm"))]
59242#[rustc_legacy_const_generics(2)]
59243#[cfg_attr(test, assert_instr(st2, LANE = 0))]
59244#[stable(feature = "neon_intrinsics", since = "1.59.0")]
59245pub unsafe fn vst2_lane_s16<const LANE: i32>(a: *mut i16, b: int16x4x2_t) {
59246    static_assert_uimm_bits!(LANE, 2);
59247    unsafe extern "unadjusted" {
59248        #[cfg_attr(
59249            any(target_arch = "aarch64", target_arch = "arm64ec"),
59250            link_name = "llvm.aarch64.neon.st2lane.v4i16.p0"
59251        )]
59252        fn _vst2_lane_s16(a: int16x4_t, b: int16x4_t, n: i64, ptr: *mut i8);
59253    }
59254    _vst2_lane_s16(b.0, b.1, LANE as i64, a as _)
59255}
59256#[doc = "Store multiple 2-element structures from two registers"]
59257#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_lane_s16)"]
59258#[doc = "## Safety"]
59259#[doc = "  * Neon instrinsic unsafe"]
59260#[inline]
59261#[target_feature(enable = "neon")]
59262#[cfg(not(target_arch = "arm"))]
59263#[rustc_legacy_const_generics(2)]
59264#[cfg_attr(test, assert_instr(st2, LANE = 0))]
59265#[stable(feature = "neon_intrinsics", since = "1.59.0")]
59266pub unsafe fn vst2q_lane_s16<const LANE: i32>(a: *mut i16, b: int16x8x2_t) {
59267    static_assert_uimm_bits!(LANE, 3);
59268    unsafe extern "unadjusted" {
59269        #[cfg_attr(
59270            any(target_arch = "aarch64", target_arch = "arm64ec"),
59271            link_name = "llvm.aarch64.neon.st2lane.v8i16.p0"
59272        )]
59273        fn _vst2q_lane_s16(a: int16x8_t, b: int16x8_t, n: i64, ptr: *mut i8);
59274    }
59275    _vst2q_lane_s16(b.0, b.1, LANE as i64, a as _)
59276}
59277#[doc = "Store multiple 2-element structures from two registers"]
59278#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_s32)"]
59279#[doc = "## Safety"]
59280#[doc = "  * Neon instrinsic unsafe"]
59281#[inline]
59282#[target_feature(enable = "neon")]
59283#[cfg(not(target_arch = "arm"))]
59284#[rustc_legacy_const_generics(2)]
59285#[cfg_attr(test, assert_instr(st2, LANE = 0))]
59286#[stable(feature = "neon_intrinsics", since = "1.59.0")]
59287pub unsafe fn vst2_lane_s32<const LANE: i32>(a: *mut i32, b: int32x2x2_t) {
59288    static_assert_uimm_bits!(LANE, 1);
59289    unsafe extern "unadjusted" {
59290        #[cfg_attr(
59291            any(target_arch = "aarch64", target_arch = "arm64ec"),
59292            link_name = "llvm.aarch64.neon.st2lane.v2i32.p0"
59293        )]
59294        fn _vst2_lane_s32(a: int32x2_t, b: int32x2_t, n: i64, ptr: *mut i8);
59295    }
59296    _vst2_lane_s32(b.0, b.1, LANE as i64, a as _)
59297}
59298#[doc = "Store multiple 2-element structures from two registers"]
59299#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_lane_s32)"]
59300#[doc = "## Safety"]
59301#[doc = "  * Neon instrinsic unsafe"]
59302#[inline]
59303#[target_feature(enable = "neon")]
59304#[cfg(not(target_arch = "arm"))]
59305#[rustc_legacy_const_generics(2)]
59306#[cfg_attr(test, assert_instr(st2, LANE = 0))]
59307#[stable(feature = "neon_intrinsics", since = "1.59.0")]
59308pub unsafe fn vst2q_lane_s32<const LANE: i32>(a: *mut i32, b: int32x4x2_t) {
59309    static_assert_uimm_bits!(LANE, 2);
59310    unsafe extern "unadjusted" {
59311        #[cfg_attr(
59312            any(target_arch = "aarch64", target_arch = "arm64ec"),
59313            link_name = "llvm.aarch64.neon.st2lane.v4i32.p0"
59314        )]
59315        fn _vst2q_lane_s32(a: int32x4_t, b: int32x4_t, n: i64, ptr: *mut i8);
59316    }
59317    _vst2q_lane_s32(b.0, b.1, LANE as i64, a as _)
59318}
59319#[doc = "Store multiple 2-element structures from two registers"]
59320#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_f32)"]
59321#[doc = "## Safety"]
59322#[doc = "  * Neon instrinsic unsafe"]
59323#[inline]
59324#[cfg(target_arch = "arm")]
59325#[target_feature(enable = "neon,v7")]
59326#[cfg_attr(test, assert_instr(vst2, LANE = 0))]
59327#[rustc_legacy_const_generics(2)]
59328#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
59329pub unsafe fn vst2_lane_f32<const LANE: i32>(a: *mut f32, b: float32x2x2_t) {
59330    static_assert_uimm_bits!(LANE, 1);
59331    unsafe extern "unadjusted" {
59332        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2lane.v2f32.p0")]
59333        fn _vst2_lane_f32(ptr: *mut i8, a: float32x2_t, b: float32x2_t, n: i32, size: i32);
59334    }
59335    _vst2_lane_f32(a as _, b.0, b.1, LANE, 4)
59336}
59337#[doc = "Store multiple 2-element structures from two registers"]
59338#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_lane_f32)"]
59339#[doc = "## Safety"]
59340#[doc = "  * Neon instrinsic unsafe"]
59341#[inline]
59342#[cfg(target_arch = "arm")]
59343#[target_feature(enable = "neon,v7")]
59344#[cfg_attr(test, assert_instr(vst2, LANE = 0))]
59345#[rustc_legacy_const_generics(2)]
59346#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
59347pub unsafe fn vst2q_lane_f32<const LANE: i32>(a: *mut f32, b: float32x4x2_t) {
59348    static_assert_uimm_bits!(LANE, 2);
59349    unsafe extern "unadjusted" {
59350        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2lane.v4f32.p0")]
59351        fn _vst2q_lane_f32(ptr: *mut i8, a: float32x4_t, b: float32x4_t, n: i32, size: i32);
59352    }
59353    _vst2q_lane_f32(a as _, b.0, b.1, LANE, 4)
59354}
59355#[doc = "Store multiple 2-element structures from two registers"]
59356#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_s8)"]
59357#[doc = "## Safety"]
59358#[doc = "  * Neon instrinsic unsafe"]
59359#[inline]
59360#[cfg(target_arch = "arm")]
59361#[target_feature(enable = "neon,v7")]
59362#[cfg_attr(test, assert_instr(vst2, LANE = 0))]
59363#[rustc_legacy_const_generics(2)]
59364#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
59365pub unsafe fn vst2_lane_s8<const LANE: i32>(a: *mut i8, b: int8x8x2_t) {
59366    static_assert_uimm_bits!(LANE, 3);
59367    unsafe extern "unadjusted" {
59368        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2lane.v8i8.p0")]
59369        fn _vst2_lane_s8(ptr: *mut i8, a: int8x8_t, b: int8x8_t, n: i32, size: i32);
59370    }
59371    _vst2_lane_s8(a as _, b.0, b.1, LANE, 1)
59372}
59373#[doc = "Store multiple 2-element structures from two registers"]
59374#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_s16)"]
59375#[doc = "## Safety"]
59376#[doc = "  * Neon instrinsic unsafe"]
59377#[inline]
59378#[cfg(target_arch = "arm")]
59379#[target_feature(enable = "neon,v7")]
59380#[cfg_attr(test, assert_instr(vst2, LANE = 0))]
59381#[rustc_legacy_const_generics(2)]
59382#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
59383pub unsafe fn vst2_lane_s16<const LANE: i32>(a: *mut i16, b: int16x4x2_t) {
59384    static_assert_uimm_bits!(LANE, 2);
59385    unsafe extern "unadjusted" {
59386        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2lane.v4i16.p0")]
59387        fn _vst2_lane_s16(ptr: *mut i8, a: int16x4_t, b: int16x4_t, n: i32, size: i32);
59388    }
59389    _vst2_lane_s16(a as _, b.0, b.1, LANE, 2)
59390}
59391#[doc = "Store multiple 2-element structures from two registers"]
59392#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_lane_s16)"]
59393#[doc = "## Safety"]
59394#[doc = "  * Neon instrinsic unsafe"]
59395#[inline]
59396#[cfg(target_arch = "arm")]
59397#[target_feature(enable = "neon,v7")]
59398#[cfg_attr(test, assert_instr(vst2, LANE = 0))]
59399#[rustc_legacy_const_generics(2)]
59400#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
59401pub unsafe fn vst2q_lane_s16<const LANE: i32>(a: *mut i16, b: int16x8x2_t) {
59402    static_assert_uimm_bits!(LANE, 3);
59403    unsafe extern "unadjusted" {
59404        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2lane.v8i16.p0")]
59405        fn _vst2q_lane_s16(ptr: *mut i8, a: int16x8_t, b: int16x8_t, n: i32, size: i32);
59406    }
59407    _vst2q_lane_s16(a as _, b.0, b.1, LANE, 2)
59408}
59409#[doc = "Store multiple 2-element structures from two registers"]
59410#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_s32)"]
59411#[doc = "## Safety"]
59412#[doc = "  * Neon instrinsic unsafe"]
59413#[inline]
59414#[cfg(target_arch = "arm")]
59415#[target_feature(enable = "neon,v7")]
59416#[cfg_attr(test, assert_instr(vst2, LANE = 0))]
59417#[rustc_legacy_const_generics(2)]
59418#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
59419pub unsafe fn vst2_lane_s32<const LANE: i32>(a: *mut i32, b: int32x2x2_t) {
59420    static_assert_uimm_bits!(LANE, 1);
59421    unsafe extern "unadjusted" {
59422        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2lane.v2i32.p0")]
59423        fn _vst2_lane_s32(ptr: *mut i8, a: int32x2_t, b: int32x2_t, n: i32, size: i32);
59424    }
59425    _vst2_lane_s32(a as _, b.0, b.1, LANE, 4)
59426}
59427#[doc = "Store multiple 2-element structures from two registers"]
59428#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_lane_s32)"]
59429#[doc = "## Safety"]
59430#[doc = "  * Neon instrinsic unsafe"]
59431#[inline]
59432#[cfg(target_arch = "arm")]
59433#[target_feature(enable = "neon,v7")]
59434#[cfg_attr(test, assert_instr(vst2, LANE = 0))]
59435#[rustc_legacy_const_generics(2)]
59436#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
59437pub unsafe fn vst2q_lane_s32<const LANE: i32>(a: *mut i32, b: int32x4x2_t) {
59438    static_assert_uimm_bits!(LANE, 2);
59439    unsafe extern "unadjusted" {
59440        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2lane.v4i32.p0")]
59441        fn _vst2q_lane_s32(ptr: *mut i8, a: int32x4_t, b: int32x4_t, n: i32, size: i32);
59442    }
59443    _vst2q_lane_s32(a as _, b.0, b.1, LANE, 4)
59444}
59445#[doc = "Store multiple 2-element structures from two registers"]
59446#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_u8)"]
59447#[doc = "## Safety"]
59448#[doc = "  * Neon instrinsic unsafe"]
59449#[inline]
59450#[target_feature(enable = "neon")]
59451#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59452#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2, LANE = 0))]
59453#[cfg_attr(
59454    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59455    assert_instr(st2, LANE = 0)
59456)]
59457#[rustc_legacy_const_generics(2)]
59458#[cfg_attr(
59459    not(target_arch = "arm"),
59460    stable(feature = "neon_intrinsics", since = "1.59.0")
59461)]
59462#[cfg_attr(
59463    target_arch = "arm",
59464    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59465)]
59466pub unsafe fn vst2_lane_u8<const LANE: i32>(a: *mut u8, b: uint8x8x2_t) {
59467    static_assert_uimm_bits!(LANE, 3);
59468    vst2_lane_s8::<LANE>(transmute(a), transmute(b))
59469}
59470#[doc = "Store multiple 2-element structures from two registers"]
59471#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_u16)"]
59472#[doc = "## Safety"]
59473#[doc = "  * Neon instrinsic unsafe"]
59474#[inline]
59475#[target_feature(enable = "neon")]
59476#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59477#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2, LANE = 0))]
59478#[cfg_attr(
59479    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59480    assert_instr(st2, LANE = 0)
59481)]
59482#[rustc_legacy_const_generics(2)]
59483#[cfg_attr(
59484    not(target_arch = "arm"),
59485    stable(feature = "neon_intrinsics", since = "1.59.0")
59486)]
59487#[cfg_attr(
59488    target_arch = "arm",
59489    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59490)]
59491pub unsafe fn vst2_lane_u16<const LANE: i32>(a: *mut u16, b: uint16x4x2_t) {
59492    static_assert_uimm_bits!(LANE, 2);
59493    vst2_lane_s16::<LANE>(transmute(a), transmute(b))
59494}
59495#[doc = "Store multiple 2-element structures from two registers"]
59496#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_lane_u16)"]
59497#[doc = "## Safety"]
59498#[doc = "  * Neon instrinsic unsafe"]
59499#[inline]
59500#[target_feature(enable = "neon")]
59501#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59502#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2, LANE = 0))]
59503#[cfg_attr(
59504    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59505    assert_instr(st2, LANE = 0)
59506)]
59507#[rustc_legacy_const_generics(2)]
59508#[cfg_attr(
59509    not(target_arch = "arm"),
59510    stable(feature = "neon_intrinsics", since = "1.59.0")
59511)]
59512#[cfg_attr(
59513    target_arch = "arm",
59514    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59515)]
59516pub unsafe fn vst2q_lane_u16<const LANE: i32>(a: *mut u16, b: uint16x8x2_t) {
59517    static_assert_uimm_bits!(LANE, 3);
59518    vst2q_lane_s16::<LANE>(transmute(a), transmute(b))
59519}
59520#[doc = "Store multiple 2-element structures from two registers"]
59521#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_u32)"]
59522#[doc = "## Safety"]
59523#[doc = "  * Neon instrinsic unsafe"]
59524#[inline]
59525#[target_feature(enable = "neon")]
59526#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59527#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2, LANE = 0))]
59528#[cfg_attr(
59529    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59530    assert_instr(st2, LANE = 0)
59531)]
59532#[rustc_legacy_const_generics(2)]
59533#[cfg_attr(
59534    not(target_arch = "arm"),
59535    stable(feature = "neon_intrinsics", since = "1.59.0")
59536)]
59537#[cfg_attr(
59538    target_arch = "arm",
59539    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59540)]
59541pub unsafe fn vst2_lane_u32<const LANE: i32>(a: *mut u32, b: uint32x2x2_t) {
59542    static_assert_uimm_bits!(LANE, 1);
59543    vst2_lane_s32::<LANE>(transmute(a), transmute(b))
59544}
59545#[doc = "Store multiple 2-element structures from two registers"]
59546#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_lane_u32)"]
59547#[doc = "## Safety"]
59548#[doc = "  * Neon instrinsic unsafe"]
59549#[inline]
59550#[target_feature(enable = "neon")]
59551#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59552#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2, LANE = 0))]
59553#[cfg_attr(
59554    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59555    assert_instr(st2, LANE = 0)
59556)]
59557#[rustc_legacy_const_generics(2)]
59558#[cfg_attr(
59559    not(target_arch = "arm"),
59560    stable(feature = "neon_intrinsics", since = "1.59.0")
59561)]
59562#[cfg_attr(
59563    target_arch = "arm",
59564    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59565)]
59566pub unsafe fn vst2q_lane_u32<const LANE: i32>(a: *mut u32, b: uint32x4x2_t) {
59567    static_assert_uimm_bits!(LANE, 2);
59568    vst2q_lane_s32::<LANE>(transmute(a), transmute(b))
59569}
59570#[doc = "Store multiple 2-element structures from two registers"]
59571#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_p8)"]
59572#[doc = "## Safety"]
59573#[doc = "  * Neon instrinsic unsafe"]
59574#[inline]
59575#[target_feature(enable = "neon")]
59576#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59577#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2, LANE = 0))]
59578#[cfg_attr(
59579    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59580    assert_instr(st2, LANE = 0)
59581)]
59582#[rustc_legacy_const_generics(2)]
59583#[cfg_attr(
59584    not(target_arch = "arm"),
59585    stable(feature = "neon_intrinsics", since = "1.59.0")
59586)]
59587#[cfg_attr(
59588    target_arch = "arm",
59589    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59590)]
59591pub unsafe fn vst2_lane_p8<const LANE: i32>(a: *mut p8, b: poly8x8x2_t) {
59592    static_assert_uimm_bits!(LANE, 3);
59593    vst2_lane_s8::<LANE>(transmute(a), transmute(b))
59594}
59595#[doc = "Store multiple 2-element structures from two registers"]
59596#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_p16)"]
59597#[doc = "## Safety"]
59598#[doc = "  * Neon instrinsic unsafe"]
59599#[inline]
59600#[target_feature(enable = "neon")]
59601#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59602#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2, LANE = 0))]
59603#[cfg_attr(
59604    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59605    assert_instr(st2, LANE = 0)
59606)]
59607#[rustc_legacy_const_generics(2)]
59608#[cfg_attr(
59609    not(target_arch = "arm"),
59610    stable(feature = "neon_intrinsics", since = "1.59.0")
59611)]
59612#[cfg_attr(
59613    target_arch = "arm",
59614    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59615)]
59616pub unsafe fn vst2_lane_p16<const LANE: i32>(a: *mut p16, b: poly16x4x2_t) {
59617    static_assert_uimm_bits!(LANE, 2);
59618    vst2_lane_s16::<LANE>(transmute(a), transmute(b))
59619}
59620#[doc = "Store multiple 2-element structures from two registers"]
59621#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_lane_p16)"]
59622#[doc = "## Safety"]
59623#[doc = "  * Neon instrinsic unsafe"]
59624#[inline]
59625#[target_feature(enable = "neon")]
59626#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59627#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2, LANE = 0))]
59628#[cfg_attr(
59629    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59630    assert_instr(st2, LANE = 0)
59631)]
59632#[rustc_legacy_const_generics(2)]
59633#[cfg_attr(
59634    not(target_arch = "arm"),
59635    stable(feature = "neon_intrinsics", since = "1.59.0")
59636)]
59637#[cfg_attr(
59638    target_arch = "arm",
59639    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59640)]
59641pub unsafe fn vst2q_lane_p16<const LANE: i32>(a: *mut p16, b: poly16x8x2_t) {
59642    static_assert_uimm_bits!(LANE, 3);
59643    vst2q_lane_s16::<LANE>(transmute(a), transmute(b))
59644}
59645#[doc = "Store multiple 2-element structures from two registers"]
59646#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_p64)"]
59647#[doc = "## Safety"]
59648#[doc = "  * Neon instrinsic unsafe"]
59649#[inline]
59650#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
59651#[target_feature(enable = "neon,aes")]
59652#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
59653#[cfg_attr(
59654    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59655    assert_instr(nop)
59656)]
59657#[cfg_attr(
59658    not(target_arch = "arm"),
59659    stable(feature = "neon_intrinsics", since = "1.59.0")
59660)]
59661#[cfg_attr(
59662    target_arch = "arm",
59663    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59664)]
59665pub unsafe fn vst2_p64(a: *mut p64, b: poly64x1x2_t) {
59666    vst2_s64(transmute(a), transmute(b))
59667}
59668#[doc = "Store multiple 2-element structures from two registers"]
59669#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_s64)"]
59670#[doc = "## Safety"]
59671#[doc = "  * Neon instrinsic unsafe"]
59672#[inline]
59673#[cfg(target_arch = "arm")]
59674#[target_feature(enable = "neon,v7")]
59675#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
59676#[cfg_attr(test, assert_instr(nop))]
59677pub unsafe fn vst2_s64(a: *mut i64, b: int64x1x2_t) {
59678    unsafe extern "unadjusted" {
59679        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2.v1i64.p0")]
59680        fn _vst2_s64(ptr: *mut i8, a: int64x1_t, b: int64x1_t, size: i32);
59681    }
59682    _vst2_s64(a as _, b.0, b.1, 8)
59683}
59684#[doc = "Store multiple 2-element structures from two registers"]
59685#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_s64)"]
59686#[doc = "## Safety"]
59687#[doc = "  * Neon instrinsic unsafe"]
59688#[inline]
59689#[target_feature(enable = "neon")]
59690#[cfg(not(target_arch = "arm"))]
59691#[stable(feature = "neon_intrinsics", since = "1.59.0")]
59692#[cfg_attr(test, assert_instr(nop))]
59693pub unsafe fn vst2_s64(a: *mut i64, b: int64x1x2_t) {
59694    unsafe extern "unadjusted" {
59695        #[cfg_attr(
59696            any(target_arch = "aarch64", target_arch = "arm64ec"),
59697            link_name = "llvm.aarch64.neon.st2.v1i64.p0"
59698        )]
59699        fn _vst2_s64(a: int64x1_t, b: int64x1_t, ptr: *mut i8);
59700    }
59701    _vst2_s64(b.0, b.1, a as _)
59702}
59703#[doc = "Store multiple 2-element structures from two registers"]
59704#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_u64)"]
59705#[doc = "## Safety"]
59706#[doc = "  * Neon instrinsic unsafe"]
59707#[inline]
59708#[target_feature(enable = "neon")]
59709#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59710#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
59711#[cfg_attr(
59712    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59713    assert_instr(nop)
59714)]
59715#[cfg_attr(
59716    not(target_arch = "arm"),
59717    stable(feature = "neon_intrinsics", since = "1.59.0")
59718)]
59719#[cfg_attr(
59720    target_arch = "arm",
59721    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59722)]
59723pub unsafe fn vst2_u64(a: *mut u64, b: uint64x1x2_t) {
59724    vst2_s64(transmute(a), transmute(b))
59725}
59726#[doc = "Store multiple 2-element structures from two registers"]
59727#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_u8)"]
59728#[doc = "## Safety"]
59729#[doc = "  * Neon instrinsic unsafe"]
59730#[inline]
59731#[target_feature(enable = "neon")]
59732#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59733#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2))]
59734#[cfg_attr(
59735    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59736    assert_instr(st2)
59737)]
59738#[cfg_attr(
59739    not(target_arch = "arm"),
59740    stable(feature = "neon_intrinsics", since = "1.59.0")
59741)]
59742#[cfg_attr(
59743    target_arch = "arm",
59744    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59745)]
59746pub unsafe fn vst2_u8(a: *mut u8, b: uint8x8x2_t) {
59747    vst2_s8(transmute(a), transmute(b))
59748}
59749#[doc = "Store multiple 2-element structures from two registers"]
59750#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_u8)"]
59751#[doc = "## Safety"]
59752#[doc = "  * Neon instrinsic unsafe"]
59753#[inline]
59754#[target_feature(enable = "neon")]
59755#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59756#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2))]
59757#[cfg_attr(
59758    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59759    assert_instr(st2)
59760)]
59761#[cfg_attr(
59762    not(target_arch = "arm"),
59763    stable(feature = "neon_intrinsics", since = "1.59.0")
59764)]
59765#[cfg_attr(
59766    target_arch = "arm",
59767    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59768)]
59769pub unsafe fn vst2q_u8(a: *mut u8, b: uint8x16x2_t) {
59770    vst2q_s8(transmute(a), transmute(b))
59771}
59772#[doc = "Store multiple 2-element structures from two registers"]
59773#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_u16)"]
59774#[doc = "## Safety"]
59775#[doc = "  * Neon instrinsic unsafe"]
59776#[inline]
59777#[target_feature(enable = "neon")]
59778#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59779#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2))]
59780#[cfg_attr(
59781    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59782    assert_instr(st2)
59783)]
59784#[cfg_attr(
59785    not(target_arch = "arm"),
59786    stable(feature = "neon_intrinsics", since = "1.59.0")
59787)]
59788#[cfg_attr(
59789    target_arch = "arm",
59790    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59791)]
59792pub unsafe fn vst2_u16(a: *mut u16, b: uint16x4x2_t) {
59793    vst2_s16(transmute(a), transmute(b))
59794}
59795#[doc = "Store multiple 2-element structures from two registers"]
59796#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_u16)"]
59797#[doc = "## Safety"]
59798#[doc = "  * Neon instrinsic unsafe"]
59799#[inline]
59800#[target_feature(enable = "neon")]
59801#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59802#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2))]
59803#[cfg_attr(
59804    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59805    assert_instr(st2)
59806)]
59807#[cfg_attr(
59808    not(target_arch = "arm"),
59809    stable(feature = "neon_intrinsics", since = "1.59.0")
59810)]
59811#[cfg_attr(
59812    target_arch = "arm",
59813    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59814)]
59815pub unsafe fn vst2q_u16(a: *mut u16, b: uint16x8x2_t) {
59816    vst2q_s16(transmute(a), transmute(b))
59817}
59818#[doc = "Store multiple 2-element structures from two registers"]
59819#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_u32)"]
59820#[doc = "## Safety"]
59821#[doc = "  * Neon instrinsic unsafe"]
59822#[inline]
59823#[target_feature(enable = "neon")]
59824#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59825#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2))]
59826#[cfg_attr(
59827    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59828    assert_instr(st2)
59829)]
59830#[cfg_attr(
59831    not(target_arch = "arm"),
59832    stable(feature = "neon_intrinsics", since = "1.59.0")
59833)]
59834#[cfg_attr(
59835    target_arch = "arm",
59836    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59837)]
59838pub unsafe fn vst2_u32(a: *mut u32, b: uint32x2x2_t) {
59839    vst2_s32(transmute(a), transmute(b))
59840}
59841#[doc = "Store multiple 2-element structures from two registers"]
59842#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_u32)"]
59843#[doc = "## Safety"]
59844#[doc = "  * Neon instrinsic unsafe"]
59845#[inline]
59846#[target_feature(enable = "neon")]
59847#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59848#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2))]
59849#[cfg_attr(
59850    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59851    assert_instr(st2)
59852)]
59853#[cfg_attr(
59854    not(target_arch = "arm"),
59855    stable(feature = "neon_intrinsics", since = "1.59.0")
59856)]
59857#[cfg_attr(
59858    target_arch = "arm",
59859    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59860)]
59861pub unsafe fn vst2q_u32(a: *mut u32, b: uint32x4x2_t) {
59862    vst2q_s32(transmute(a), transmute(b))
59863}
59864#[doc = "Store multiple 2-element structures from two registers"]
59865#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_p8)"]
59866#[doc = "## Safety"]
59867#[doc = "  * Neon instrinsic unsafe"]
59868#[inline]
59869#[target_feature(enable = "neon")]
59870#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59871#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2))]
59872#[cfg_attr(
59873    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59874    assert_instr(st2)
59875)]
59876#[cfg_attr(
59877    not(target_arch = "arm"),
59878    stable(feature = "neon_intrinsics", since = "1.59.0")
59879)]
59880#[cfg_attr(
59881    target_arch = "arm",
59882    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59883)]
59884pub unsafe fn vst2_p8(a: *mut p8, b: poly8x8x2_t) {
59885    vst2_s8(transmute(a), transmute(b))
59886}
59887#[doc = "Store multiple 2-element structures from two registers"]
59888#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_p8)"]
59889#[doc = "## Safety"]
59890#[doc = "  * Neon instrinsic unsafe"]
59891#[inline]
59892#[target_feature(enable = "neon")]
59893#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59894#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2))]
59895#[cfg_attr(
59896    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59897    assert_instr(st2)
59898)]
59899#[cfg_attr(
59900    not(target_arch = "arm"),
59901    stable(feature = "neon_intrinsics", since = "1.59.0")
59902)]
59903#[cfg_attr(
59904    target_arch = "arm",
59905    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59906)]
59907pub unsafe fn vst2q_p8(a: *mut p8, b: poly8x16x2_t) {
59908    vst2q_s8(transmute(a), transmute(b))
59909}
59910#[doc = "Store multiple 2-element structures from two registers"]
59911#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_p16)"]
59912#[doc = "## Safety"]
59913#[doc = "  * Neon instrinsic unsafe"]
59914#[inline]
59915#[target_feature(enable = "neon")]
59916#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59917#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2))]
59918#[cfg_attr(
59919    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59920    assert_instr(st2)
59921)]
59922#[cfg_attr(
59923    not(target_arch = "arm"),
59924    stable(feature = "neon_intrinsics", since = "1.59.0")
59925)]
59926#[cfg_attr(
59927    target_arch = "arm",
59928    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59929)]
59930pub unsafe fn vst2_p16(a: *mut p16, b: poly16x4x2_t) {
59931    vst2_s16(transmute(a), transmute(b))
59932}
59933#[doc = "Store multiple 2-element structures from two registers"]
59934#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_p16)"]
59935#[doc = "## Safety"]
59936#[doc = "  * Neon instrinsic unsafe"]
59937#[inline]
59938#[target_feature(enable = "neon")]
59939#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59940#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2))]
59941#[cfg_attr(
59942    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59943    assert_instr(st2)
59944)]
59945#[cfg_attr(
59946    not(target_arch = "arm"),
59947    stable(feature = "neon_intrinsics", since = "1.59.0")
59948)]
59949#[cfg_attr(
59950    target_arch = "arm",
59951    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59952)]
59953pub unsafe fn vst2q_p16(a: *mut p16, b: poly16x8x2_t) {
59954    vst2q_s16(transmute(a), transmute(b))
59955}
59956#[doc = "Store multiple 3-element structures from three registers"]
59957#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_f16)"]
59958#[doc = "## Safety"]
59959#[doc = "  * Neon instrinsic unsafe"]
59960#[inline]
59961#[cfg(target_arch = "arm")]
59962#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59963#[target_feature(enable = "neon,fp16")]
59964#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
59965#[cfg(not(target_arch = "arm64ec"))]
59966#[cfg_attr(test, assert_instr(vst3))]
59967pub unsafe fn vst3_f16(a: *mut f16, b: float16x4x3_t) {
59968    unsafe extern "unadjusted" {
59969        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3.p0.v4f16")]
59970        fn _vst3_f16(ptr: *mut i8, a: float16x4_t, b: float16x4_t, c: float16x4_t, size: i32);
59971    }
59972    _vst3_f16(a as _, b.0, b.1, b.2, 2)
59973}
59974#[doc = "Store multiple 3-element structures from three registers"]
59975#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_f16)"]
59976#[doc = "## Safety"]
59977#[doc = "  * Neon instrinsic unsafe"]
59978#[inline]
59979#[cfg(target_arch = "arm")]
59980#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59981#[target_feature(enable = "neon,fp16")]
59982#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
59983#[cfg(not(target_arch = "arm64ec"))]
59984#[cfg_attr(test, assert_instr(vst3))]
59985pub unsafe fn vst3q_f16(a: *mut f16, b: float16x8x3_t) {
59986    unsafe extern "unadjusted" {
59987        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3.p0.v8f16")]
59988        fn _vst3q_f16(ptr: *mut i8, a: float16x8_t, b: float16x8_t, c: float16x8_t, size: i32);
59989    }
59990    _vst3q_f16(a as _, b.0, b.1, b.2, 2)
59991}
59992#[doc = "Store multiple 3-element structures from three registers"]
59993#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_f16)"]
59994#[doc = "## Safety"]
59995#[doc = "  * Neon instrinsic unsafe"]
59996#[inline]
59997#[cfg(not(target_arch = "arm"))]
59998#[target_feature(enable = "neon,fp16")]
59999#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
60000#[cfg(not(target_arch = "arm64ec"))]
60001#[cfg_attr(test, assert_instr(st3))]
60002pub unsafe fn vst3_f16(a: *mut f16, b: float16x4x3_t) {
60003    unsafe extern "unadjusted" {
60004        #[cfg_attr(
60005            any(target_arch = "aarch64", target_arch = "arm64ec"),
60006            link_name = "llvm.aarch64.neon.st3.v4f16.p0"
60007        )]
60008        fn _vst3_f16(a: float16x4_t, b: float16x4_t, c: float16x4_t, ptr: *mut i8);
60009    }
60010    _vst3_f16(b.0, b.1, b.2, a as _)
60011}
60012#[doc = "Store multiple 3-element structures from three registers"]
60013#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_f16)"]
60014#[doc = "## Safety"]
60015#[doc = "  * Neon instrinsic unsafe"]
60016#[inline]
60017#[cfg(not(target_arch = "arm"))]
60018#[target_feature(enable = "neon,fp16")]
60019#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
60020#[cfg(not(target_arch = "arm64ec"))]
60021#[cfg_attr(test, assert_instr(st3))]
60022pub unsafe fn vst3q_f16(a: *mut f16, b: float16x8x3_t) {
60023    unsafe extern "unadjusted" {
60024        #[cfg_attr(
60025            any(target_arch = "aarch64", target_arch = "arm64ec"),
60026            link_name = "llvm.aarch64.neon.st3.v8f16.p0"
60027        )]
60028        fn _vst3q_f16(a: float16x8_t, b: float16x8_t, c: float16x8_t, ptr: *mut i8);
60029    }
60030    _vst3q_f16(b.0, b.1, b.2, a as _)
60031}
60032#[doc = "Store multiple 3-element structures from three registers"]
60033#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_f32)"]
60034#[doc = "## Safety"]
60035#[doc = "  * Neon instrinsic unsafe"]
60036#[inline]
60037#[cfg(target_arch = "arm")]
60038#[target_feature(enable = "neon,v7")]
60039#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
60040#[cfg_attr(test, assert_instr(vst3))]
60041pub unsafe fn vst3_f32(a: *mut f32, b: float32x2x3_t) {
60042    unsafe extern "unadjusted" {
60043        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3.p0.v2f32")]
60044        fn _vst3_f32(ptr: *mut i8, a: float32x2_t, b: float32x2_t, c: float32x2_t, size: i32);
60045    }
60046    _vst3_f32(a as _, b.0, b.1, b.2, 4)
60047}
60048#[doc = "Store multiple 3-element structures from three registers"]
60049#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_f32)"]
60050#[doc = "## Safety"]
60051#[doc = "  * Neon instrinsic unsafe"]
60052#[inline]
60053#[cfg(target_arch = "arm")]
60054#[target_feature(enable = "neon,v7")]
60055#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
60056#[cfg_attr(test, assert_instr(vst3))]
60057pub unsafe fn vst3q_f32(a: *mut f32, b: float32x4x3_t) {
60058    unsafe extern "unadjusted" {
60059        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3.p0.v4f32")]
60060        fn _vst3q_f32(ptr: *mut i8, a: float32x4_t, b: float32x4_t, c: float32x4_t, size: i32);
60061    }
60062    _vst3q_f32(a as _, b.0, b.1, b.2, 4)
60063}
60064#[doc = "Store multiple 3-element structures from three registers"]
60065#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_s8)"]
60066#[doc = "## Safety"]
60067#[doc = "  * Neon instrinsic unsafe"]
60068#[inline]
60069#[cfg(target_arch = "arm")]
60070#[target_feature(enable = "neon,v7")]
60071#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
60072#[cfg_attr(test, assert_instr(vst3))]
60073pub unsafe fn vst3_s8(a: *mut i8, b: int8x8x3_t) {
60074    unsafe extern "unadjusted" {
60075        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3.p0.v8i8")]
60076        fn _vst3_s8(ptr: *mut i8, a: int8x8_t, b: int8x8_t, c: int8x8_t, size: i32);
60077    }
60078    _vst3_s8(a as _, b.0, b.1, b.2, 1)
60079}
60080#[doc = "Store multiple 3-element structures from three registers"]
60081#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_s8)"]
60082#[doc = "## Safety"]
60083#[doc = "  * Neon instrinsic unsafe"]
60084#[inline]
60085#[cfg(target_arch = "arm")]
60086#[target_feature(enable = "neon,v7")]
60087#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
60088#[cfg_attr(test, assert_instr(vst3))]
60089pub unsafe fn vst3q_s8(a: *mut i8, b: int8x16x3_t) {
60090    unsafe extern "unadjusted" {
60091        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3.p0.v16i8")]
60092        fn _vst3q_s8(ptr: *mut i8, a: int8x16_t, b: int8x16_t, c: int8x16_t, size: i32);
60093    }
60094    _vst3q_s8(a as _, b.0, b.1, b.2, 1)
60095}
60096#[doc = "Store multiple 3-element structures from three registers"]
60097#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_s16)"]
60098#[doc = "## Safety"]
60099#[doc = "  * Neon instrinsic unsafe"]
60100#[inline]
60101#[cfg(target_arch = "arm")]
60102#[target_feature(enable = "neon,v7")]
60103#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
60104#[cfg_attr(test, assert_instr(vst3))]
60105pub unsafe fn vst3_s16(a: *mut i16, b: int16x4x3_t) {
60106    unsafe extern "unadjusted" {
60107        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3.p0.v4i16")]
60108        fn _vst3_s16(ptr: *mut i8, a: int16x4_t, b: int16x4_t, c: int16x4_t, size: i32);
60109    }
60110    _vst3_s16(a as _, b.0, b.1, b.2, 2)
60111}
60112#[doc = "Store multiple 3-element structures from three registers"]
60113#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_s16)"]
60114#[doc = "## Safety"]
60115#[doc = "  * Neon instrinsic unsafe"]
60116#[inline]
60117#[cfg(target_arch = "arm")]
60118#[target_feature(enable = "neon,v7")]
60119#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
60120#[cfg_attr(test, assert_instr(vst3))]
60121pub unsafe fn vst3q_s16(a: *mut i16, b: int16x8x3_t) {
60122    unsafe extern "unadjusted" {
60123        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3.p0.v8i16")]
60124        fn _vst3q_s16(ptr: *mut i8, a: int16x8_t, b: int16x8_t, c: int16x8_t, size: i32);
60125    }
60126    _vst3q_s16(a as _, b.0, b.1, b.2, 2)
60127}
60128#[doc = "Store multiple 3-element structures from three registers"]
60129#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_s32)"]
60130#[doc = "## Safety"]
60131#[doc = "  * Neon instrinsic unsafe"]
60132#[inline]
60133#[cfg(target_arch = "arm")]
60134#[target_feature(enable = "neon,v7")]
60135#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
60136#[cfg_attr(test, assert_instr(vst3))]
60137pub unsafe fn vst3_s32(a: *mut i32, b: int32x2x3_t) {
60138    unsafe extern "unadjusted" {
60139        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3.p0.v2i32")]
60140        fn _vst3_s32(ptr: *mut i8, a: int32x2_t, b: int32x2_t, c: int32x2_t, size: i32);
60141    }
60142    _vst3_s32(a as _, b.0, b.1, b.2, 4)
60143}
60144#[doc = "Store multiple 3-element structures from three registers"]
60145#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_s32)"]
60146#[doc = "## Safety"]
60147#[doc = "  * Neon instrinsic unsafe"]
60148#[inline]
60149#[cfg(target_arch = "arm")]
60150#[target_feature(enable = "neon,v7")]
60151#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
60152#[cfg_attr(test, assert_instr(vst3))]
60153pub unsafe fn vst3q_s32(a: *mut i32, b: int32x4x3_t) {
60154    unsafe extern "unadjusted" {
60155        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3.p0.v4i32")]
60156        fn _vst3q_s32(ptr: *mut i8, a: int32x4_t, b: int32x4_t, c: int32x4_t, size: i32);
60157    }
60158    _vst3q_s32(a as _, b.0, b.1, b.2, 4)
60159}
60160#[doc = "Store multiple 3-element structures from three registers"]
60161#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_f32)"]
60162#[doc = "## Safety"]
60163#[doc = "  * Neon instrinsic unsafe"]
60164#[inline]
60165#[target_feature(enable = "neon")]
60166#[cfg(not(target_arch = "arm"))]
60167#[stable(feature = "neon_intrinsics", since = "1.59.0")]
60168#[cfg_attr(test, assert_instr(st3))]
60169pub unsafe fn vst3_f32(a: *mut f32, b: float32x2x3_t) {
60170    unsafe extern "unadjusted" {
60171        #[cfg_attr(
60172            any(target_arch = "aarch64", target_arch = "arm64ec"),
60173            link_name = "llvm.aarch64.neon.st3.v2f32.p0"
60174        )]
60175        fn _vst3_f32(a: float32x2_t, b: float32x2_t, c: float32x2_t, ptr: *mut i8);
60176    }
60177    _vst3_f32(b.0, b.1, b.2, a as _)
60178}
60179#[doc = "Store multiple 3-element structures from three registers"]
60180#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_f32)"]
60181#[doc = "## Safety"]
60182#[doc = "  * Neon instrinsic unsafe"]
60183#[inline]
60184#[target_feature(enable = "neon")]
60185#[cfg(not(target_arch = "arm"))]
60186#[stable(feature = "neon_intrinsics", since = "1.59.0")]
60187#[cfg_attr(test, assert_instr(st3))]
60188pub unsafe fn vst3q_f32(a: *mut f32, b: float32x4x3_t) {
60189    unsafe extern "unadjusted" {
60190        #[cfg_attr(
60191            any(target_arch = "aarch64", target_arch = "arm64ec"),
60192            link_name = "llvm.aarch64.neon.st3.v4f32.p0"
60193        )]
60194        fn _vst3q_f32(a: float32x4_t, b: float32x4_t, c: float32x4_t, ptr: *mut i8);
60195    }
60196    _vst3q_f32(b.0, b.1, b.2, a as _)
60197}
60198#[doc = "Store multiple 3-element structures from three registers"]
60199#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_s8)"]
60200#[doc = "## Safety"]
60201#[doc = "  * Neon instrinsic unsafe"]
60202#[inline]
60203#[target_feature(enable = "neon")]
60204#[cfg(not(target_arch = "arm"))]
60205#[stable(feature = "neon_intrinsics", since = "1.59.0")]
60206#[cfg_attr(test, assert_instr(st3))]
60207pub unsafe fn vst3_s8(a: *mut i8, b: int8x8x3_t) {
60208    unsafe extern "unadjusted" {
60209        #[cfg_attr(
60210            any(target_arch = "aarch64", target_arch = "arm64ec"),
60211            link_name = "llvm.aarch64.neon.st3.v8i8.p0"
60212        )]
60213        fn _vst3_s8(a: int8x8_t, b: int8x8_t, c: int8x8_t, ptr: *mut i8);
60214    }
60215    _vst3_s8(b.0, b.1, b.2, a as _)
60216}
60217#[doc = "Store multiple 3-element structures from three registers"]
60218#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_s8)"]
60219#[doc = "## Safety"]
60220#[doc = "  * Neon instrinsic unsafe"]
60221#[inline]
60222#[target_feature(enable = "neon")]
60223#[cfg(not(target_arch = "arm"))]
60224#[stable(feature = "neon_intrinsics", since = "1.59.0")]
60225#[cfg_attr(test, assert_instr(st3))]
60226pub unsafe fn vst3q_s8(a: *mut i8, b: int8x16x3_t) {
60227    unsafe extern "unadjusted" {
60228        #[cfg_attr(
60229            any(target_arch = "aarch64", target_arch = "arm64ec"),
60230            link_name = "llvm.aarch64.neon.st3.v16i8.p0"
60231        )]
60232        fn _vst3q_s8(a: int8x16_t, b: int8x16_t, c: int8x16_t, ptr: *mut i8);
60233    }
60234    _vst3q_s8(b.0, b.1, b.2, a as _)
60235}
60236#[doc = "Store multiple 3-element structures from three registers"]
60237#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_s16)"]
60238#[doc = "## Safety"]
60239#[doc = "  * Neon instrinsic unsafe"]
60240#[inline]
60241#[target_feature(enable = "neon")]
60242#[cfg(not(target_arch = "arm"))]
60243#[stable(feature = "neon_intrinsics", since = "1.59.0")]
60244#[cfg_attr(test, assert_instr(st3))]
60245pub unsafe fn vst3_s16(a: *mut i16, b: int16x4x3_t) {
60246    unsafe extern "unadjusted" {
60247        #[cfg_attr(
60248            any(target_arch = "aarch64", target_arch = "arm64ec"),
60249            link_name = "llvm.aarch64.neon.st3.v4i16.p0"
60250        )]
60251        fn _vst3_s16(a: int16x4_t, b: int16x4_t, c: int16x4_t, ptr: *mut i8);
60252    }
60253    _vst3_s16(b.0, b.1, b.2, a as _)
60254}
60255#[doc = "Store multiple 3-element structures from three registers"]
60256#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_s16)"]
60257#[doc = "## Safety"]
60258#[doc = "  * Neon instrinsic unsafe"]
60259#[inline]
60260#[target_feature(enable = "neon")]
60261#[cfg(not(target_arch = "arm"))]
60262#[stable(feature = "neon_intrinsics", since = "1.59.0")]
60263#[cfg_attr(test, assert_instr(st3))]
60264pub unsafe fn vst3q_s16(a: *mut i16, b: int16x8x3_t) {
60265    unsafe extern "unadjusted" {
60266        #[cfg_attr(
60267            any(target_arch = "aarch64", target_arch = "arm64ec"),
60268            link_name = "llvm.aarch64.neon.st3.v8i16.p0"
60269        )]
60270        fn _vst3q_s16(a: int16x8_t, b: int16x8_t, c: int16x8_t, ptr: *mut i8);
60271    }
60272    _vst3q_s16(b.0, b.1, b.2, a as _)
60273}
60274#[doc = "Store multiple 3-element structures from three registers"]
60275#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_s32)"]
60276#[doc = "## Safety"]
60277#[doc = "  * Neon instrinsic unsafe"]
60278#[inline]
60279#[target_feature(enable = "neon")]
60280#[cfg(not(target_arch = "arm"))]
60281#[stable(feature = "neon_intrinsics", since = "1.59.0")]
60282#[cfg_attr(test, assert_instr(st3))]
60283pub unsafe fn vst3_s32(a: *mut i32, b: int32x2x3_t) {
60284    unsafe extern "unadjusted" {
60285        #[cfg_attr(
60286            any(target_arch = "aarch64", target_arch = "arm64ec"),
60287            link_name = "llvm.aarch64.neon.st3.v2i32.p0"
60288        )]
60289        fn _vst3_s32(a: int32x2_t, b: int32x2_t, c: int32x2_t, ptr: *mut i8);
60290    }
60291    _vst3_s32(b.0, b.1, b.2, a as _)
60292}
60293#[doc = "Store multiple 3-element structures from three registers"]
60294#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_s32)"]
60295#[doc = "## Safety"]
60296#[doc = "  * Neon instrinsic unsafe"]
60297#[inline]
60298#[target_feature(enable = "neon")]
60299#[cfg(not(target_arch = "arm"))]
60300#[stable(feature = "neon_intrinsics", since = "1.59.0")]
60301#[cfg_attr(test, assert_instr(st3))]
60302pub unsafe fn vst3q_s32(a: *mut i32, b: int32x4x3_t) {
60303    unsafe extern "unadjusted" {
60304        #[cfg_attr(
60305            any(target_arch = "aarch64", target_arch = "arm64ec"),
60306            link_name = "llvm.aarch64.neon.st3.v4i32.p0"
60307        )]
60308        fn _vst3q_s32(a: int32x4_t, b: int32x4_t, c: int32x4_t, ptr: *mut i8);
60309    }
60310    _vst3q_s32(b.0, b.1, b.2, a as _)
60311}
60312#[doc = "Store multiple 3-element structures from three registers"]
60313#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_f16)"]
60314#[doc = "## Safety"]
60315#[doc = "  * Neon instrinsic unsafe"]
60316#[inline]
60317#[cfg(target_arch = "arm")]
60318#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60319#[cfg_attr(test, assert_instr(vst3, LANE = 0))]
60320#[rustc_legacy_const_generics(2)]
60321#[target_feature(enable = "neon,fp16")]
60322#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
60323#[cfg(not(target_arch = "arm64ec"))]
60324pub unsafe fn vst3_lane_f16<const LANE: i32>(a: *mut f16, b: float16x4x3_t) {
60325    static_assert_uimm_bits!(LANE, 2);
60326    unsafe extern "unadjusted" {
60327        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3lane.p0.v4f16")]
60328        fn _vst3_lane_f16(
60329            ptr: *mut i8,
60330            a: float16x4_t,
60331            b: float16x4_t,
60332            c: float16x4_t,
60333            n: i32,
60334            size: i32,
60335        );
60336    }
60337    _vst3_lane_f16(a as _, b.0, b.1, b.2, LANE, 4)
60338}
60339#[doc = "Store multiple 3-element structures from three registers"]
60340#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_lane_f16)"]
60341#[doc = "## Safety"]
60342#[doc = "  * Neon instrinsic unsafe"]
60343#[inline]
60344#[cfg(target_arch = "arm")]
60345#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60346#[cfg_attr(test, assert_instr(vst3, LANE = 0))]
60347#[rustc_legacy_const_generics(2)]
60348#[target_feature(enable = "neon,fp16")]
60349#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
60350#[cfg(not(target_arch = "arm64ec"))]
60351pub unsafe fn vst3q_lane_f16<const LANE: i32>(a: *mut f16, b: float16x8x3_t) {
60352    static_assert_uimm_bits!(LANE, 3);
60353    unsafe extern "unadjusted" {
60354        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3lane.p0.v8f16")]
60355        fn _vst3q_lane_f16(
60356            ptr: *mut i8,
60357            a: float16x8_t,
60358            b: float16x8_t,
60359            c: float16x8_t,
60360            n: i32,
60361            size: i32,
60362        );
60363    }
60364    _vst3q_lane_f16(a as _, b.0, b.1, b.2, LANE, 4)
60365}
60366#[doc = "Store multiple 3-element structures from three registers"]
60367#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_f16)"]
60368#[doc = "## Safety"]
60369#[doc = "  * Neon instrinsic unsafe"]
60370#[inline]
60371#[cfg(not(target_arch = "arm"))]
60372#[rustc_legacy_const_generics(2)]
60373#[cfg_attr(test, assert_instr(st3, LANE = 0))]
60374#[target_feature(enable = "neon,fp16")]
60375#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
60376#[cfg(not(target_arch = "arm64ec"))]
60377pub unsafe fn vst3_lane_f16<const LANE: i32>(a: *mut f16, b: float16x4x3_t) {
60378    static_assert_uimm_bits!(LANE, 2);
60379    unsafe extern "unadjusted" {
60380        #[cfg_attr(
60381            any(target_arch = "aarch64", target_arch = "arm64ec"),
60382            link_name = "llvm.aarch64.neon.st3lane.v4f16.p0"
60383        )]
60384        fn _vst3_lane_f16(a: float16x4_t, b: float16x4_t, c: float16x4_t, n: i64, ptr: *mut i8);
60385    }
60386    _vst3_lane_f16(b.0, b.1, b.2, LANE as i64, a as _)
60387}
60388#[doc = "Store multiple 3-element structures from three registers"]
60389#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_lane_f16)"]
60390#[doc = "## Safety"]
60391#[doc = "  * Neon instrinsic unsafe"]
60392#[inline]
60393#[cfg(not(target_arch = "arm"))]
60394#[rustc_legacy_const_generics(2)]
60395#[cfg_attr(test, assert_instr(st3, LANE = 0))]
60396#[target_feature(enable = "neon,fp16")]
60397#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
60398#[cfg(not(target_arch = "arm64ec"))]
60399pub unsafe fn vst3q_lane_f16<const LANE: i32>(a: *mut f16, b: float16x8x3_t) {
60400    static_assert_uimm_bits!(LANE, 3);
60401    unsafe extern "unadjusted" {
60402        #[cfg_attr(
60403            any(target_arch = "aarch64", target_arch = "arm64ec"),
60404            link_name = "llvm.aarch64.neon.st3lane.v8f16.p0"
60405        )]
60406        fn _vst3q_lane_f16(a: float16x8_t, b: float16x8_t, c: float16x8_t, n: i64, ptr: *mut i8);
60407    }
60408    _vst3q_lane_f16(b.0, b.1, b.2, LANE as i64, a as _)
60409}
60410#[doc = "Store multiple 3-element structures from three registers"]
60411#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_f32)"]
60412#[doc = "## Safety"]
60413#[doc = "  * Neon instrinsic unsafe"]
60414#[inline]
60415#[cfg(target_arch = "arm")]
60416#[target_feature(enable = "neon,v7")]
60417#[cfg_attr(test, assert_instr(vst3, LANE = 0))]
60418#[rustc_legacy_const_generics(2)]
60419#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
60420pub unsafe fn vst3_lane_f32<const LANE: i32>(a: *mut f32, b: float32x2x3_t) {
60421    static_assert_uimm_bits!(LANE, 1);
60422    unsafe extern "unadjusted" {
60423        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3lane.p0.v2f32")]
60424        fn _vst3_lane_f32(
60425            ptr: *mut i8,
60426            a: float32x2_t,
60427            b: float32x2_t,
60428            c: float32x2_t,
60429            n: i32,
60430            size: i32,
60431        );
60432    }
60433    _vst3_lane_f32(a as _, b.0, b.1, b.2, LANE, 4)
60434}
60435#[doc = "Store multiple 3-element structures from three registers"]
60436#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_lane_f32)"]
60437#[doc = "## Safety"]
60438#[doc = "  * Neon instrinsic unsafe"]
60439#[inline]
60440#[cfg(target_arch = "arm")]
60441#[target_feature(enable = "neon,v7")]
60442#[cfg_attr(test, assert_instr(vst3, LANE = 0))]
60443#[rustc_legacy_const_generics(2)]
60444#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
60445pub unsafe fn vst3q_lane_f32<const LANE: i32>(a: *mut f32, b: float32x4x3_t) {
60446    static_assert_uimm_bits!(LANE, 2);
60447    unsafe extern "unadjusted" {
60448        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3lane.p0.v4f32")]
60449        fn _vst3q_lane_f32(
60450            ptr: *mut i8,
60451            a: float32x4_t,
60452            b: float32x4_t,
60453            c: float32x4_t,
60454            n: i32,
60455            size: i32,
60456        );
60457    }
60458    _vst3q_lane_f32(a as _, b.0, b.1, b.2, LANE, 4)
60459}
60460#[doc = "Store multiple 3-element structures from three registers"]
60461#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_s8)"]
60462#[doc = "## Safety"]
60463#[doc = "  * Neon instrinsic unsafe"]
60464#[inline]
60465#[cfg(target_arch = "arm")]
60466#[target_feature(enable = "neon,v7")]
60467#[cfg_attr(test, assert_instr(vst3, LANE = 0))]
60468#[rustc_legacy_const_generics(2)]
60469#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
60470pub unsafe fn vst3_lane_s8<const LANE: i32>(a: *mut i8, b: int8x8x3_t) {
60471    static_assert_uimm_bits!(LANE, 3);
60472    unsafe extern "unadjusted" {
60473        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3lane.p0.v8i8")]
60474        fn _vst3_lane_s8(ptr: *mut i8, a: int8x8_t, b: int8x8_t, c: int8x8_t, n: i32, size: i32);
60475    }
60476    _vst3_lane_s8(a as _, b.0, b.1, b.2, LANE, 1)
60477}
60478#[doc = "Store multiple 3-element structures from three registers"]
60479#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_s16)"]
60480#[doc = "## Safety"]
60481#[doc = "  * Neon instrinsic unsafe"]
60482#[inline]
60483#[cfg(target_arch = "arm")]
60484#[target_feature(enable = "neon,v7")]
60485#[cfg_attr(test, assert_instr(vst3, LANE = 0))]
60486#[rustc_legacy_const_generics(2)]
60487#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
60488pub unsafe fn vst3_lane_s16<const LANE: i32>(a: *mut i16, b: int16x4x3_t) {
60489    static_assert_uimm_bits!(LANE, 2);
60490    unsafe extern "unadjusted" {
60491        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3lane.p0.v4i16")]
60492        fn _vst3_lane_s16(
60493            ptr: *mut i8,
60494            a: int16x4_t,
60495            b: int16x4_t,
60496            c: int16x4_t,
60497            n: i32,
60498            size: i32,
60499        );
60500    }
60501    _vst3_lane_s16(a as _, b.0, b.1, b.2, LANE, 2)
60502}
60503#[doc = "Store multiple 3-element structures from three registers"]
60504#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_lane_s16)"]
60505#[doc = "## Safety"]
60506#[doc = "  * Neon instrinsic unsafe"]
60507#[inline]
60508#[cfg(target_arch = "arm")]
60509#[target_feature(enable = "neon,v7")]
60510#[cfg_attr(test, assert_instr(vst3, LANE = 0))]
60511#[rustc_legacy_const_generics(2)]
60512#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
60513pub unsafe fn vst3q_lane_s16<const LANE: i32>(a: *mut i16, b: int16x8x3_t) {
60514    static_assert_uimm_bits!(LANE, 3);
60515    unsafe extern "unadjusted" {
60516        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3lane.p0.v8i16")]
60517        fn _vst3q_lane_s16(
60518            ptr: *mut i8,
60519            a: int16x8_t,
60520            b: int16x8_t,
60521            c: int16x8_t,
60522            n: i32,
60523            size: i32,
60524        );
60525    }
60526    _vst3q_lane_s16(a as _, b.0, b.1, b.2, LANE, 2)
60527}
60528#[doc = "Store multiple 3-element structures from three registers"]
60529#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_s32)"]
60530#[doc = "## Safety"]
60531#[doc = "  * Neon instrinsic unsafe"]
60532#[inline]
60533#[cfg(target_arch = "arm")]
60534#[target_feature(enable = "neon,v7")]
60535#[cfg_attr(test, assert_instr(vst3, LANE = 0))]
60536#[rustc_legacy_const_generics(2)]
60537#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
60538pub unsafe fn vst3_lane_s32<const LANE: i32>(a: *mut i32, b: int32x2x3_t) {
60539    static_assert_uimm_bits!(LANE, 1);
60540    unsafe extern "unadjusted" {
60541        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3lane.p0.v2i32")]
60542        fn _vst3_lane_s32(
60543            ptr: *mut i8,
60544            a: int32x2_t,
60545            b: int32x2_t,
60546            c: int32x2_t,
60547            n: i32,
60548            size: i32,
60549        );
60550    }
60551    _vst3_lane_s32(a as _, b.0, b.1, b.2, LANE, 4)
60552}
60553#[doc = "Store multiple 3-element structures from three registers"]
60554#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_lane_s32)"]
60555#[doc = "## Safety"]
60556#[doc = "  * Neon instrinsic unsafe"]
60557#[inline]
60558#[cfg(target_arch = "arm")]
60559#[target_feature(enable = "neon,v7")]
60560#[cfg_attr(test, assert_instr(vst3, LANE = 0))]
60561#[rustc_legacy_const_generics(2)]
60562#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
60563pub unsafe fn vst3q_lane_s32<const LANE: i32>(a: *mut i32, b: int32x4x3_t) {
60564    static_assert_uimm_bits!(LANE, 2);
60565    unsafe extern "unadjusted" {
60566        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3lane.p0.v4i32")]
60567        fn _vst3q_lane_s32(
60568            ptr: *mut i8,
60569            a: int32x4_t,
60570            b: int32x4_t,
60571            c: int32x4_t,
60572            n: i32,
60573            size: i32,
60574        );
60575    }
60576    _vst3q_lane_s32(a as _, b.0, b.1, b.2, LANE, 4)
60577}
60578#[doc = "Store multiple 3-element structures from three registers"]
60579#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_f32)"]
60580#[doc = "## Safety"]
60581#[doc = "  * Neon instrinsic unsafe"]
60582#[inline]
60583#[target_feature(enable = "neon")]
60584#[cfg(not(target_arch = "arm"))]
60585#[rustc_legacy_const_generics(2)]
60586#[cfg_attr(test, assert_instr(st3, LANE = 0))]
60587#[stable(feature = "neon_intrinsics", since = "1.59.0")]
60588pub unsafe fn vst3_lane_f32<const LANE: i32>(a: *mut f32, b: float32x2x3_t) {
60589    static_assert_uimm_bits!(LANE, 1);
60590    unsafe extern "unadjusted" {
60591        #[cfg_attr(
60592            any(target_arch = "aarch64", target_arch = "arm64ec"),
60593            link_name = "llvm.aarch64.neon.st3lane.v2f32.p0"
60594        )]
60595        fn _vst3_lane_f32(a: float32x2_t, b: float32x2_t, c: float32x2_t, n: i64, ptr: *mut i8);
60596    }
60597    _vst3_lane_f32(b.0, b.1, b.2, LANE as i64, a as _)
60598}
60599#[doc = "Store multiple 3-element structures from three registers"]
60600#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_lane_f32)"]
60601#[doc = "## Safety"]
60602#[doc = "  * Neon instrinsic unsafe"]
60603#[inline]
60604#[target_feature(enable = "neon")]
60605#[cfg(not(target_arch = "arm"))]
60606#[rustc_legacy_const_generics(2)]
60607#[cfg_attr(test, assert_instr(st3, LANE = 0))]
60608#[stable(feature = "neon_intrinsics", since = "1.59.0")]
60609pub unsafe fn vst3q_lane_f32<const LANE: i32>(a: *mut f32, b: float32x4x3_t) {
60610    static_assert_uimm_bits!(LANE, 2);
60611    unsafe extern "unadjusted" {
60612        #[cfg_attr(
60613            any(target_arch = "aarch64", target_arch = "arm64ec"),
60614            link_name = "llvm.aarch64.neon.st3lane.v4f32.p0"
60615        )]
60616        fn _vst3q_lane_f32(a: float32x4_t, b: float32x4_t, c: float32x4_t, n: i64, ptr: *mut i8);
60617    }
60618    _vst3q_lane_f32(b.0, b.1, b.2, LANE as i64, a as _)
60619}
60620#[doc = "Store multiple 3-element structures from three registers"]
60621#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_s8)"]
60622#[doc = "## Safety"]
60623#[doc = "  * Neon instrinsic unsafe"]
60624#[inline]
60625#[target_feature(enable = "neon")]
60626#[cfg(not(target_arch = "arm"))]
60627#[rustc_legacy_const_generics(2)]
60628#[cfg_attr(test, assert_instr(st3, LANE = 0))]
60629#[stable(feature = "neon_intrinsics", since = "1.59.0")]
60630pub unsafe fn vst3_lane_s8<const LANE: i32>(a: *mut i8, b: int8x8x3_t) {
60631    static_assert_uimm_bits!(LANE, 3);
60632    unsafe extern "unadjusted" {
60633        #[cfg_attr(
60634            any(target_arch = "aarch64", target_arch = "arm64ec"),
60635            link_name = "llvm.aarch64.neon.st3lane.v8i8.p0"
60636        )]
60637        fn _vst3_lane_s8(a: int8x8_t, b: int8x8_t, c: int8x8_t, n: i64, ptr: *mut i8);
60638    }
60639    _vst3_lane_s8(b.0, b.1, b.2, LANE as i64, a as _)
60640}
60641#[doc = "Store multiple 3-element structures from three registers"]
60642#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_s16)"]
60643#[doc = "## Safety"]
60644#[doc = "  * Neon instrinsic unsafe"]
60645#[inline]
60646#[target_feature(enable = "neon")]
60647#[cfg(not(target_arch = "arm"))]
60648#[rustc_legacy_const_generics(2)]
60649#[cfg_attr(test, assert_instr(st3, LANE = 0))]
60650#[stable(feature = "neon_intrinsics", since = "1.59.0")]
60651pub unsafe fn vst3_lane_s16<const LANE: i32>(a: *mut i16, b: int16x4x3_t) {
60652    static_assert_uimm_bits!(LANE, 2);
60653    unsafe extern "unadjusted" {
60654        #[cfg_attr(
60655            any(target_arch = "aarch64", target_arch = "arm64ec"),
60656            link_name = "llvm.aarch64.neon.st3lane.v4i16.p0"
60657        )]
60658        fn _vst3_lane_s16(a: int16x4_t, b: int16x4_t, c: int16x4_t, n: i64, ptr: *mut i8);
60659    }
60660    _vst3_lane_s16(b.0, b.1, b.2, LANE as i64, a as _)
60661}
60662#[doc = "Store multiple 3-element structures from three registers"]
60663#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_lane_s16)"]
60664#[doc = "## Safety"]
60665#[doc = "  * Neon instrinsic unsafe"]
60666#[inline]
60667#[target_feature(enable = "neon")]
60668#[cfg(not(target_arch = "arm"))]
60669#[rustc_legacy_const_generics(2)]
60670#[cfg_attr(test, assert_instr(st3, LANE = 0))]
60671#[stable(feature = "neon_intrinsics", since = "1.59.0")]
60672pub unsafe fn vst3q_lane_s16<const LANE: i32>(a: *mut i16, b: int16x8x3_t) {
60673    static_assert_uimm_bits!(LANE, 3);
60674    unsafe extern "unadjusted" {
60675        #[cfg_attr(
60676            any(target_arch = "aarch64", target_arch = "arm64ec"),
60677            link_name = "llvm.aarch64.neon.st3lane.v8i16.p0"
60678        )]
60679        fn _vst3q_lane_s16(a: int16x8_t, b: int16x8_t, c: int16x8_t, n: i64, ptr: *mut i8);
60680    }
60681    _vst3q_lane_s16(b.0, b.1, b.2, LANE as i64, a as _)
60682}
60683#[doc = "Store multiple 3-element structures from three registers"]
60684#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_s32)"]
60685#[doc = "## Safety"]
60686#[doc = "  * Neon instrinsic unsafe"]
60687#[inline]
60688#[target_feature(enable = "neon")]
60689#[cfg(not(target_arch = "arm"))]
60690#[rustc_legacy_const_generics(2)]
60691#[cfg_attr(test, assert_instr(st3, LANE = 0))]
60692#[stable(feature = "neon_intrinsics", since = "1.59.0")]
60693pub unsafe fn vst3_lane_s32<const LANE: i32>(a: *mut i32, b: int32x2x3_t) {
60694    static_assert_uimm_bits!(LANE, 1);
60695    unsafe extern "unadjusted" {
60696        #[cfg_attr(
60697            any(target_arch = "aarch64", target_arch = "arm64ec"),
60698            link_name = "llvm.aarch64.neon.st3lane.v2i32.p0"
60699        )]
60700        fn _vst3_lane_s32(a: int32x2_t, b: int32x2_t, c: int32x2_t, n: i64, ptr: *mut i8);
60701    }
60702    _vst3_lane_s32(b.0, b.1, b.2, LANE as i64, a as _)
60703}
60704#[doc = "Store multiple 3-element structures from three registers"]
60705#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_lane_s32)"]
60706#[doc = "## Safety"]
60707#[doc = "  * Neon instrinsic unsafe"]
60708#[inline]
60709#[target_feature(enable = "neon")]
60710#[cfg(not(target_arch = "arm"))]
60711#[rustc_legacy_const_generics(2)]
60712#[cfg_attr(test, assert_instr(st3, LANE = 0))]
60713#[stable(feature = "neon_intrinsics", since = "1.59.0")]
60714pub unsafe fn vst3q_lane_s32<const LANE: i32>(a: *mut i32, b: int32x4x3_t) {
60715    static_assert_uimm_bits!(LANE, 2);
60716    unsafe extern "unadjusted" {
60717        #[cfg_attr(
60718            any(target_arch = "aarch64", target_arch = "arm64ec"),
60719            link_name = "llvm.aarch64.neon.st3lane.v4i32.p0"
60720        )]
60721        fn _vst3q_lane_s32(a: int32x4_t, b: int32x4_t, c: int32x4_t, n: i64, ptr: *mut i8);
60722    }
60723    _vst3q_lane_s32(b.0, b.1, b.2, LANE as i64, a as _)
60724}
60725#[doc = "Store multiple 3-element structures from three registers"]
60726#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_u8)"]
60727#[doc = "## Safety"]
60728#[doc = "  * Neon instrinsic unsafe"]
60729#[inline]
60730#[target_feature(enable = "neon")]
60731#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60732#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3, LANE = 0))]
60733#[cfg_attr(
60734    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60735    assert_instr(st3, LANE = 0)
60736)]
60737#[rustc_legacy_const_generics(2)]
60738#[cfg_attr(
60739    not(target_arch = "arm"),
60740    stable(feature = "neon_intrinsics", since = "1.59.0")
60741)]
60742#[cfg_attr(
60743    target_arch = "arm",
60744    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60745)]
60746pub unsafe fn vst3_lane_u8<const LANE: i32>(a: *mut u8, b: uint8x8x3_t) {
60747    static_assert_uimm_bits!(LANE, 3);
60748    vst3_lane_s8::<LANE>(transmute(a), transmute(b))
60749}
60750#[doc = "Store multiple 3-element structures from three registers"]
60751#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_u16)"]
60752#[doc = "## Safety"]
60753#[doc = "  * Neon instrinsic unsafe"]
60754#[inline]
60755#[target_feature(enable = "neon")]
60756#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60757#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3, LANE = 0))]
60758#[cfg_attr(
60759    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60760    assert_instr(st3, LANE = 0)
60761)]
60762#[rustc_legacy_const_generics(2)]
60763#[cfg_attr(
60764    not(target_arch = "arm"),
60765    stable(feature = "neon_intrinsics", since = "1.59.0")
60766)]
60767#[cfg_attr(
60768    target_arch = "arm",
60769    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60770)]
60771pub unsafe fn vst3_lane_u16<const LANE: i32>(a: *mut u16, b: uint16x4x3_t) {
60772    static_assert_uimm_bits!(LANE, 2);
60773    vst3_lane_s16::<LANE>(transmute(a), transmute(b))
60774}
60775#[doc = "Store multiple 3-element structures from three registers"]
60776#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_lane_u16)"]
60777#[doc = "## Safety"]
60778#[doc = "  * Neon instrinsic unsafe"]
60779#[inline]
60780#[target_feature(enable = "neon")]
60781#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60782#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3, LANE = 0))]
60783#[cfg_attr(
60784    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60785    assert_instr(st3, LANE = 0)
60786)]
60787#[rustc_legacy_const_generics(2)]
60788#[cfg_attr(
60789    not(target_arch = "arm"),
60790    stable(feature = "neon_intrinsics", since = "1.59.0")
60791)]
60792#[cfg_attr(
60793    target_arch = "arm",
60794    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60795)]
60796pub unsafe fn vst3q_lane_u16<const LANE: i32>(a: *mut u16, b: uint16x8x3_t) {
60797    static_assert_uimm_bits!(LANE, 3);
60798    vst3q_lane_s16::<LANE>(transmute(a), transmute(b))
60799}
60800#[doc = "Store multiple 3-element structures from three registers"]
60801#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_u32)"]
60802#[doc = "## Safety"]
60803#[doc = "  * Neon instrinsic unsafe"]
60804#[inline]
60805#[target_feature(enable = "neon")]
60806#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60807#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3, LANE = 0))]
60808#[cfg_attr(
60809    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60810    assert_instr(st3, LANE = 0)
60811)]
60812#[rustc_legacy_const_generics(2)]
60813#[cfg_attr(
60814    not(target_arch = "arm"),
60815    stable(feature = "neon_intrinsics", since = "1.59.0")
60816)]
60817#[cfg_attr(
60818    target_arch = "arm",
60819    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60820)]
60821pub unsafe fn vst3_lane_u32<const LANE: i32>(a: *mut u32, b: uint32x2x3_t) {
60822    static_assert_uimm_bits!(LANE, 1);
60823    vst3_lane_s32::<LANE>(transmute(a), transmute(b))
60824}
60825#[doc = "Store multiple 3-element structures from three registers"]
60826#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_lane_u32)"]
60827#[doc = "## Safety"]
60828#[doc = "  * Neon instrinsic unsafe"]
60829#[inline]
60830#[target_feature(enable = "neon")]
60831#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60832#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3, LANE = 0))]
60833#[cfg_attr(
60834    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60835    assert_instr(st3, LANE = 0)
60836)]
60837#[rustc_legacy_const_generics(2)]
60838#[cfg_attr(
60839    not(target_arch = "arm"),
60840    stable(feature = "neon_intrinsics", since = "1.59.0")
60841)]
60842#[cfg_attr(
60843    target_arch = "arm",
60844    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60845)]
60846pub unsafe fn vst3q_lane_u32<const LANE: i32>(a: *mut u32, b: uint32x4x3_t) {
60847    static_assert_uimm_bits!(LANE, 2);
60848    vst3q_lane_s32::<LANE>(transmute(a), transmute(b))
60849}
60850#[doc = "Store multiple 3-element structures from three registers"]
60851#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_p8)"]
60852#[doc = "## Safety"]
60853#[doc = "  * Neon instrinsic unsafe"]
60854#[inline]
60855#[target_feature(enable = "neon")]
60856#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60857#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3, LANE = 0))]
60858#[cfg_attr(
60859    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60860    assert_instr(st3, LANE = 0)
60861)]
60862#[rustc_legacy_const_generics(2)]
60863#[cfg_attr(
60864    not(target_arch = "arm"),
60865    stable(feature = "neon_intrinsics", since = "1.59.0")
60866)]
60867#[cfg_attr(
60868    target_arch = "arm",
60869    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60870)]
60871pub unsafe fn vst3_lane_p8<const LANE: i32>(a: *mut p8, b: poly8x8x3_t) {
60872    static_assert_uimm_bits!(LANE, 3);
60873    vst3_lane_s8::<LANE>(transmute(a), transmute(b))
60874}
60875#[doc = "Store multiple 3-element structures from three registers"]
60876#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_p16)"]
60877#[doc = "## Safety"]
60878#[doc = "  * Neon instrinsic unsafe"]
60879#[inline]
60880#[target_feature(enable = "neon")]
60881#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60882#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3, LANE = 0))]
60883#[cfg_attr(
60884    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60885    assert_instr(st3, LANE = 0)
60886)]
60887#[rustc_legacy_const_generics(2)]
60888#[cfg_attr(
60889    not(target_arch = "arm"),
60890    stable(feature = "neon_intrinsics", since = "1.59.0")
60891)]
60892#[cfg_attr(
60893    target_arch = "arm",
60894    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60895)]
60896pub unsafe fn vst3_lane_p16<const LANE: i32>(a: *mut p16, b: poly16x4x3_t) {
60897    static_assert_uimm_bits!(LANE, 2);
60898    vst3_lane_s16::<LANE>(transmute(a), transmute(b))
60899}
60900#[doc = "Store multiple 3-element structures from three registers"]
60901#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_lane_p16)"]
60902#[doc = "## Safety"]
60903#[doc = "  * Neon instrinsic unsafe"]
60904#[inline]
60905#[target_feature(enable = "neon")]
60906#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60907#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3, LANE = 0))]
60908#[cfg_attr(
60909    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60910    assert_instr(st3, LANE = 0)
60911)]
60912#[rustc_legacy_const_generics(2)]
60913#[cfg_attr(
60914    not(target_arch = "arm"),
60915    stable(feature = "neon_intrinsics", since = "1.59.0")
60916)]
60917#[cfg_attr(
60918    target_arch = "arm",
60919    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60920)]
60921pub unsafe fn vst3q_lane_p16<const LANE: i32>(a: *mut p16, b: poly16x8x3_t) {
60922    static_assert_uimm_bits!(LANE, 3);
60923    vst3q_lane_s16::<LANE>(transmute(a), transmute(b))
60924}
60925#[doc = "Store multiple 3-element structures from three registers"]
60926#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_p64)"]
60927#[doc = "## Safety"]
60928#[doc = "  * Neon instrinsic unsafe"]
60929#[inline]
60930#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
60931#[target_feature(enable = "neon,aes")]
60932#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
60933#[cfg_attr(
60934    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60935    assert_instr(nop)
60936)]
60937#[cfg_attr(
60938    not(target_arch = "arm"),
60939    stable(feature = "neon_intrinsics", since = "1.59.0")
60940)]
60941#[cfg_attr(
60942    target_arch = "arm",
60943    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60944)]
60945pub unsafe fn vst3_p64(a: *mut p64, b: poly64x1x3_t) {
60946    vst3_s64(transmute(a), transmute(b))
60947}
60948#[doc = "Store multiple 3-element structures from three registers"]
60949#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_s64)"]
60950#[doc = "## Safety"]
60951#[doc = "  * Neon instrinsic unsafe"]
60952#[inline]
60953#[target_feature(enable = "neon")]
60954#[cfg(not(target_arch = "arm"))]
60955#[stable(feature = "neon_intrinsics", since = "1.59.0")]
60956#[cfg_attr(test, assert_instr(nop))]
60957pub unsafe fn vst3_s64(a: *mut i64, b: int64x1x3_t) {
60958    unsafe extern "unadjusted" {
60959        #[cfg_attr(
60960            any(target_arch = "aarch64", target_arch = "arm64ec"),
60961            link_name = "llvm.aarch64.neon.st3.v1i64.p0"
60962        )]
60963        fn _vst3_s64(a: int64x1_t, b: int64x1_t, c: int64x1_t, ptr: *mut i8);
60964    }
60965    _vst3_s64(b.0, b.1, b.2, a as _)
60966}
60967#[doc = "Store multiple 3-element structures from three registers"]
60968#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_s64)"]
60969#[doc = "## Safety"]
60970#[doc = "  * Neon instrinsic unsafe"]
60971#[inline]
60972#[cfg(target_arch = "arm")]
60973#[target_feature(enable = "neon,v7")]
60974#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
60975#[cfg_attr(test, assert_instr(nop))]
60976pub unsafe fn vst3_s64(a: *mut i64, b: int64x1x3_t) {
60977    unsafe extern "unadjusted" {
60978        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3.p0.v1i64")]
60979        fn _vst3_s64(ptr: *mut i8, a: int64x1_t, b: int64x1_t, c: int64x1_t, size: i32);
60980    }
60981    _vst3_s64(a as _, b.0, b.1, b.2, 8)
60982}
60983#[doc = "Store multiple 3-element structures from three registers"]
60984#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_u64)"]
60985#[doc = "## Safety"]
60986#[doc = "  * Neon instrinsic unsafe"]
60987#[inline]
60988#[target_feature(enable = "neon")]
60989#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60990#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
60991#[cfg_attr(
60992    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60993    assert_instr(nop)
60994)]
60995#[cfg_attr(
60996    not(target_arch = "arm"),
60997    stable(feature = "neon_intrinsics", since = "1.59.0")
60998)]
60999#[cfg_attr(
61000    target_arch = "arm",
61001    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61002)]
61003pub unsafe fn vst3_u64(a: *mut u64, b: uint64x1x3_t) {
61004    vst3_s64(transmute(a), transmute(b))
61005}
61006#[doc = "Store multiple 3-element structures from three registers"]
61007#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_u8)"]
61008#[doc = "## Safety"]
61009#[doc = "  * Neon instrinsic unsafe"]
61010#[inline]
61011#[target_feature(enable = "neon")]
61012#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61013#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3))]
61014#[cfg_attr(
61015    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61016    assert_instr(st3)
61017)]
61018#[cfg_attr(
61019    not(target_arch = "arm"),
61020    stable(feature = "neon_intrinsics", since = "1.59.0")
61021)]
61022#[cfg_attr(
61023    target_arch = "arm",
61024    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61025)]
61026pub unsafe fn vst3_u8(a: *mut u8, b: uint8x8x3_t) {
61027    vst3_s8(transmute(a), transmute(b))
61028}
61029#[doc = "Store multiple 3-element structures from three registers"]
61030#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_u8)"]
61031#[doc = "## Safety"]
61032#[doc = "  * Neon instrinsic unsafe"]
61033#[inline]
61034#[target_feature(enable = "neon")]
61035#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61036#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3))]
61037#[cfg_attr(
61038    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61039    assert_instr(st3)
61040)]
61041#[cfg_attr(
61042    not(target_arch = "arm"),
61043    stable(feature = "neon_intrinsics", since = "1.59.0")
61044)]
61045#[cfg_attr(
61046    target_arch = "arm",
61047    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61048)]
61049pub unsafe fn vst3q_u8(a: *mut u8, b: uint8x16x3_t) {
61050    vst3q_s8(transmute(a), transmute(b))
61051}
61052#[doc = "Store multiple 3-element structures from three registers"]
61053#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_u16)"]
61054#[doc = "## Safety"]
61055#[doc = "  * Neon instrinsic unsafe"]
61056#[inline]
61057#[target_feature(enable = "neon")]
61058#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61059#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3))]
61060#[cfg_attr(
61061    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61062    assert_instr(st3)
61063)]
61064#[cfg_attr(
61065    not(target_arch = "arm"),
61066    stable(feature = "neon_intrinsics", since = "1.59.0")
61067)]
61068#[cfg_attr(
61069    target_arch = "arm",
61070    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61071)]
61072pub unsafe fn vst3_u16(a: *mut u16, b: uint16x4x3_t) {
61073    vst3_s16(transmute(a), transmute(b))
61074}
61075#[doc = "Store multiple 3-element structures from three registers"]
61076#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_u16)"]
61077#[doc = "## Safety"]
61078#[doc = "  * Neon instrinsic unsafe"]
61079#[inline]
61080#[target_feature(enable = "neon")]
61081#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61082#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3))]
61083#[cfg_attr(
61084    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61085    assert_instr(st3)
61086)]
61087#[cfg_attr(
61088    not(target_arch = "arm"),
61089    stable(feature = "neon_intrinsics", since = "1.59.0")
61090)]
61091#[cfg_attr(
61092    target_arch = "arm",
61093    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61094)]
61095pub unsafe fn vst3q_u16(a: *mut u16, b: uint16x8x3_t) {
61096    vst3q_s16(transmute(a), transmute(b))
61097}
61098#[doc = "Store multiple 3-element structures from three registers"]
61099#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_u32)"]
61100#[doc = "## Safety"]
61101#[doc = "  * Neon instrinsic unsafe"]
61102#[inline]
61103#[target_feature(enable = "neon")]
61104#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61105#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3))]
61106#[cfg_attr(
61107    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61108    assert_instr(st3)
61109)]
61110#[cfg_attr(
61111    not(target_arch = "arm"),
61112    stable(feature = "neon_intrinsics", since = "1.59.0")
61113)]
61114#[cfg_attr(
61115    target_arch = "arm",
61116    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61117)]
61118pub unsafe fn vst3_u32(a: *mut u32, b: uint32x2x3_t) {
61119    vst3_s32(transmute(a), transmute(b))
61120}
61121#[doc = "Store multiple 3-element structures from three registers"]
61122#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_u32)"]
61123#[doc = "## Safety"]
61124#[doc = "  * Neon instrinsic unsafe"]
61125#[inline]
61126#[target_feature(enable = "neon")]
61127#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61128#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3))]
61129#[cfg_attr(
61130    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61131    assert_instr(st3)
61132)]
61133#[cfg_attr(
61134    not(target_arch = "arm"),
61135    stable(feature = "neon_intrinsics", since = "1.59.0")
61136)]
61137#[cfg_attr(
61138    target_arch = "arm",
61139    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61140)]
61141pub unsafe fn vst3q_u32(a: *mut u32, b: uint32x4x3_t) {
61142    vst3q_s32(transmute(a), transmute(b))
61143}
61144#[doc = "Store multiple 3-element structures from three registers"]
61145#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_p8)"]
61146#[doc = "## Safety"]
61147#[doc = "  * Neon instrinsic unsafe"]
61148#[inline]
61149#[target_feature(enable = "neon")]
61150#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61151#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3))]
61152#[cfg_attr(
61153    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61154    assert_instr(st3)
61155)]
61156#[cfg_attr(
61157    not(target_arch = "arm"),
61158    stable(feature = "neon_intrinsics", since = "1.59.0")
61159)]
61160#[cfg_attr(
61161    target_arch = "arm",
61162    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61163)]
61164pub unsafe fn vst3_p8(a: *mut p8, b: poly8x8x3_t) {
61165    vst3_s8(transmute(a), transmute(b))
61166}
61167#[doc = "Store multiple 3-element structures from three registers"]
61168#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_p8)"]
61169#[doc = "## Safety"]
61170#[doc = "  * Neon instrinsic unsafe"]
61171#[inline]
61172#[target_feature(enable = "neon")]
61173#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61174#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3))]
61175#[cfg_attr(
61176    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61177    assert_instr(st3)
61178)]
61179#[cfg_attr(
61180    not(target_arch = "arm"),
61181    stable(feature = "neon_intrinsics", since = "1.59.0")
61182)]
61183#[cfg_attr(
61184    target_arch = "arm",
61185    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61186)]
61187pub unsafe fn vst3q_p8(a: *mut p8, b: poly8x16x3_t) {
61188    vst3q_s8(transmute(a), transmute(b))
61189}
61190#[doc = "Store multiple 3-element structures from three registers"]
61191#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_p16)"]
61192#[doc = "## Safety"]
61193#[doc = "  * Neon instrinsic unsafe"]
61194#[inline]
61195#[target_feature(enable = "neon")]
61196#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61197#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3))]
61198#[cfg_attr(
61199    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61200    assert_instr(st3)
61201)]
61202#[cfg_attr(
61203    not(target_arch = "arm"),
61204    stable(feature = "neon_intrinsics", since = "1.59.0")
61205)]
61206#[cfg_attr(
61207    target_arch = "arm",
61208    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61209)]
61210pub unsafe fn vst3_p16(a: *mut p16, b: poly16x4x3_t) {
61211    vst3_s16(transmute(a), transmute(b))
61212}
61213#[doc = "Store multiple 3-element structures from three registers"]
61214#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_p16)"]
61215#[doc = "## Safety"]
61216#[doc = "  * Neon instrinsic unsafe"]
61217#[inline]
61218#[target_feature(enable = "neon")]
61219#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61220#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3))]
61221#[cfg_attr(
61222    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61223    assert_instr(st3)
61224)]
61225#[cfg_attr(
61226    not(target_arch = "arm"),
61227    stable(feature = "neon_intrinsics", since = "1.59.0")
61228)]
61229#[cfg_attr(
61230    target_arch = "arm",
61231    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61232)]
61233pub unsafe fn vst3q_p16(a: *mut p16, b: poly16x8x3_t) {
61234    vst3q_s16(transmute(a), transmute(b))
61235}
61236#[doc = "Store multiple 4-element structures from four registers"]
61237#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_f16)"]
61238#[doc = "## Safety"]
61239#[doc = "  * Neon instrinsic unsafe"]
61240#[inline]
61241#[cfg(target_arch = "arm")]
61242#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61243#[target_feature(enable = "neon,fp16")]
61244#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
61245#[cfg(not(target_arch = "arm64ec"))]
61246#[cfg_attr(test, assert_instr(vst4))]
61247pub unsafe fn vst4_f16(a: *mut f16, b: float16x4x4_t) {
61248    unsafe extern "unadjusted" {
61249        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4.p0.v4f16")]
61250        fn _vst4_f16(
61251            ptr: *mut i8,
61252            a: float16x4_t,
61253            b: float16x4_t,
61254            c: float16x4_t,
61255            d: float16x4_t,
61256            size: i32,
61257        );
61258    }
61259    _vst4_f16(a as _, b.0, b.1, b.2, b.3, 2)
61260}
61261#[doc = "Store multiple 4-element structures from four registers"]
61262#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_f16)"]
61263#[doc = "## Safety"]
61264#[doc = "  * Neon instrinsic unsafe"]
61265#[inline]
61266#[cfg(target_arch = "arm")]
61267#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61268#[target_feature(enable = "neon,fp16")]
61269#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
61270#[cfg(not(target_arch = "arm64ec"))]
61271#[cfg_attr(test, assert_instr(vst4))]
61272pub unsafe fn vst4q_f16(a: *mut f16, b: float16x8x4_t) {
61273    unsafe extern "unadjusted" {
61274        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4.p0.v8f16")]
61275        fn _vst4q_f16(
61276            ptr: *mut i8,
61277            a: float16x8_t,
61278            b: float16x8_t,
61279            c: float16x8_t,
61280            d: float16x8_t,
61281            size: i32,
61282        );
61283    }
61284    _vst4q_f16(a as _, b.0, b.1, b.2, b.3, 2)
61285}
61286#[doc = "Store multiple 4-element structures from four registers"]
61287#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_f16)"]
61288#[doc = "## Safety"]
61289#[doc = "  * Neon instrinsic unsafe"]
61290#[inline]
61291#[cfg(not(target_arch = "arm"))]
61292#[target_feature(enable = "neon,fp16")]
61293#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
61294#[cfg(not(target_arch = "arm64ec"))]
61295#[cfg_attr(test, assert_instr(st4))]
61296pub unsafe fn vst4_f16(a: *mut f16, b: float16x4x4_t) {
61297    unsafe extern "unadjusted" {
61298        #[cfg_attr(
61299            any(target_arch = "aarch64", target_arch = "arm64ec"),
61300            link_name = "llvm.aarch64.neon.st4.v4f16.p0"
61301        )]
61302        fn _vst4_f16(a: float16x4_t, b: float16x4_t, c: float16x4_t, d: float16x4_t, ptr: *mut i8);
61303    }
61304    _vst4_f16(b.0, b.1, b.2, b.3, a as _)
61305}
61306#[doc = "Store multiple 4-element structures from four registers"]
61307#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_f16)"]
61308#[doc = "## Safety"]
61309#[doc = "  * Neon instrinsic unsafe"]
61310#[inline]
61311#[cfg(not(target_arch = "arm"))]
61312#[target_feature(enable = "neon,fp16")]
61313#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
61314#[cfg(not(target_arch = "arm64ec"))]
61315#[cfg_attr(test, assert_instr(st4))]
61316pub unsafe fn vst4q_f16(a: *mut f16, b: float16x8x4_t) {
61317    unsafe extern "unadjusted" {
61318        #[cfg_attr(
61319            any(target_arch = "aarch64", target_arch = "arm64ec"),
61320            link_name = "llvm.aarch64.neon.st4.v8f16.p0"
61321        )]
61322        fn _vst4q_f16(a: float16x8_t, b: float16x8_t, c: float16x8_t, d: float16x8_t, ptr: *mut i8);
61323    }
61324    _vst4q_f16(b.0, b.1, b.2, b.3, a as _)
61325}
61326#[doc = "Store multiple 4-element structures from four registers"]
61327#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_f32)"]
61328#[doc = "## Safety"]
61329#[doc = "  * Neon instrinsic unsafe"]
61330#[inline]
61331#[cfg(target_arch = "arm")]
61332#[target_feature(enable = "neon,v7")]
61333#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
61334#[cfg_attr(test, assert_instr(vst4))]
61335pub unsafe fn vst4_f32(a: *mut f32, b: float32x2x4_t) {
61336    unsafe extern "unadjusted" {
61337        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4.p0.v2f32")]
61338        fn _vst4_f32(
61339            ptr: *mut i8,
61340            a: float32x2_t,
61341            b: float32x2_t,
61342            c: float32x2_t,
61343            d: float32x2_t,
61344            size: i32,
61345        );
61346    }
61347    _vst4_f32(a as _, b.0, b.1, b.2, b.3, 4)
61348}
61349#[doc = "Store multiple 4-element structures from four registers"]
61350#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_f32)"]
61351#[doc = "## Safety"]
61352#[doc = "  * Neon instrinsic unsafe"]
61353#[inline]
61354#[cfg(target_arch = "arm")]
61355#[target_feature(enable = "neon,v7")]
61356#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
61357#[cfg_attr(test, assert_instr(vst4))]
61358pub unsafe fn vst4q_f32(a: *mut f32, b: float32x4x4_t) {
61359    unsafe extern "unadjusted" {
61360        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4.p0.v4f32")]
61361        fn _vst4q_f32(
61362            ptr: *mut i8,
61363            a: float32x4_t,
61364            b: float32x4_t,
61365            c: float32x4_t,
61366            d: float32x4_t,
61367            size: i32,
61368        );
61369    }
61370    _vst4q_f32(a as _, b.0, b.1, b.2, b.3, 4)
61371}
61372#[doc = "Store multiple 4-element structures from four registers"]
61373#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_s8)"]
61374#[doc = "## Safety"]
61375#[doc = "  * Neon instrinsic unsafe"]
61376#[inline]
61377#[cfg(target_arch = "arm")]
61378#[target_feature(enable = "neon,v7")]
61379#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
61380#[cfg_attr(test, assert_instr(vst4))]
61381pub unsafe fn vst4_s8(a: *mut i8, b: int8x8x4_t) {
61382    unsafe extern "unadjusted" {
61383        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4.p0.v8i8")]
61384        fn _vst4_s8(ptr: *mut i8, a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t, size: i32);
61385    }
61386    _vst4_s8(a as _, b.0, b.1, b.2, b.3, 1)
61387}
61388#[doc = "Store multiple 4-element structures from four registers"]
61389#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_s8)"]
61390#[doc = "## Safety"]
61391#[doc = "  * Neon instrinsic unsafe"]
61392#[inline]
61393#[cfg(target_arch = "arm")]
61394#[target_feature(enable = "neon,v7")]
61395#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
61396#[cfg_attr(test, assert_instr(vst4))]
61397pub unsafe fn vst4q_s8(a: *mut i8, b: int8x16x4_t) {
61398    unsafe extern "unadjusted" {
61399        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4.p0.v16i8")]
61400        fn _vst4q_s8(
61401            ptr: *mut i8,
61402            a: int8x16_t,
61403            b: int8x16_t,
61404            c: int8x16_t,
61405            d: int8x16_t,
61406            size: i32,
61407        );
61408    }
61409    _vst4q_s8(a as _, b.0, b.1, b.2, b.3, 1)
61410}
61411#[doc = "Store multiple 4-element structures from four registers"]
61412#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_s16)"]
61413#[doc = "## Safety"]
61414#[doc = "  * Neon instrinsic unsafe"]
61415#[inline]
61416#[cfg(target_arch = "arm")]
61417#[target_feature(enable = "neon,v7")]
61418#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
61419#[cfg_attr(test, assert_instr(vst4))]
61420pub unsafe fn vst4_s16(a: *mut i16, b: int16x4x4_t) {
61421    unsafe extern "unadjusted" {
61422        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4.p0.v4i16")]
61423        fn _vst4_s16(
61424            ptr: *mut i8,
61425            a: int16x4_t,
61426            b: int16x4_t,
61427            c: int16x4_t,
61428            d: int16x4_t,
61429            size: i32,
61430        );
61431    }
61432    _vst4_s16(a as _, b.0, b.1, b.2, b.3, 2)
61433}
61434#[doc = "Store multiple 4-element structures from four registers"]
61435#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_s16)"]
61436#[doc = "## Safety"]
61437#[doc = "  * Neon instrinsic unsafe"]
61438#[inline]
61439#[cfg(target_arch = "arm")]
61440#[target_feature(enable = "neon,v7")]
61441#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
61442#[cfg_attr(test, assert_instr(vst4))]
61443pub unsafe fn vst4q_s16(a: *mut i16, b: int16x8x4_t) {
61444    unsafe extern "unadjusted" {
61445        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4.p0.v8i16")]
61446        fn _vst4q_s16(
61447            ptr: *mut i8,
61448            a: int16x8_t,
61449            b: int16x8_t,
61450            c: int16x8_t,
61451            d: int16x8_t,
61452            size: i32,
61453        );
61454    }
61455    _vst4q_s16(a as _, b.0, b.1, b.2, b.3, 2)
61456}
61457#[doc = "Store multiple 4-element structures from four registers"]
61458#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_s32)"]
61459#[doc = "## Safety"]
61460#[doc = "  * Neon instrinsic unsafe"]
61461#[inline]
61462#[cfg(target_arch = "arm")]
61463#[target_feature(enable = "neon,v7")]
61464#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
61465#[cfg_attr(test, assert_instr(vst4))]
61466pub unsafe fn vst4_s32(a: *mut i32, b: int32x2x4_t) {
61467    unsafe extern "unadjusted" {
61468        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4.p0.v2i32")]
61469        fn _vst4_s32(
61470            ptr: *mut i8,
61471            a: int32x2_t,
61472            b: int32x2_t,
61473            c: int32x2_t,
61474            d: int32x2_t,
61475            size: i32,
61476        );
61477    }
61478    _vst4_s32(a as _, b.0, b.1, b.2, b.3, 4)
61479}
61480#[doc = "Store multiple 4-element structures from four registers"]
61481#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_s32)"]
61482#[doc = "## Safety"]
61483#[doc = "  * Neon instrinsic unsafe"]
61484#[inline]
61485#[cfg(target_arch = "arm")]
61486#[target_feature(enable = "neon,v7")]
61487#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
61488#[cfg_attr(test, assert_instr(vst4))]
61489pub unsafe fn vst4q_s32(a: *mut i32, b: int32x4x4_t) {
61490    unsafe extern "unadjusted" {
61491        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4.p0.v4i32")]
61492        fn _vst4q_s32(
61493            ptr: *mut i8,
61494            a: int32x4_t,
61495            b: int32x4_t,
61496            c: int32x4_t,
61497            d: int32x4_t,
61498            size: i32,
61499        );
61500    }
61501    _vst4q_s32(a as _, b.0, b.1, b.2, b.3, 4)
61502}
61503#[doc = "Store multiple 4-element structures from four registers"]
61504#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_f32)"]
61505#[doc = "## Safety"]
61506#[doc = "  * Neon instrinsic unsafe"]
61507#[inline]
61508#[target_feature(enable = "neon")]
61509#[cfg(not(target_arch = "arm"))]
61510#[stable(feature = "neon_intrinsics", since = "1.59.0")]
61511#[cfg_attr(test, assert_instr(st4))]
61512pub unsafe fn vst4_f32(a: *mut f32, b: float32x2x4_t) {
61513    unsafe extern "unadjusted" {
61514        #[cfg_attr(
61515            any(target_arch = "aarch64", target_arch = "arm64ec"),
61516            link_name = "llvm.aarch64.neon.st4.v2f32.p0"
61517        )]
61518        fn _vst4_f32(a: float32x2_t, b: float32x2_t, c: float32x2_t, d: float32x2_t, ptr: *mut i8);
61519    }
61520    _vst4_f32(b.0, b.1, b.2, b.3, a as _)
61521}
61522#[doc = "Store multiple 4-element structures from four registers"]
61523#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_f32)"]
61524#[doc = "## Safety"]
61525#[doc = "  * Neon instrinsic unsafe"]
61526#[inline]
61527#[target_feature(enable = "neon")]
61528#[cfg(not(target_arch = "arm"))]
61529#[stable(feature = "neon_intrinsics", since = "1.59.0")]
61530#[cfg_attr(test, assert_instr(st4))]
61531pub unsafe fn vst4q_f32(a: *mut f32, b: float32x4x4_t) {
61532    unsafe extern "unadjusted" {
61533        #[cfg_attr(
61534            any(target_arch = "aarch64", target_arch = "arm64ec"),
61535            link_name = "llvm.aarch64.neon.st4.v4f32.p0"
61536        )]
61537        fn _vst4q_f32(a: float32x4_t, b: float32x4_t, c: float32x4_t, d: float32x4_t, ptr: *mut i8);
61538    }
61539    _vst4q_f32(b.0, b.1, b.2, b.3, a as _)
61540}
61541#[doc = "Store multiple 4-element structures from four registers"]
61542#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_s8)"]
61543#[doc = "## Safety"]
61544#[doc = "  * Neon instrinsic unsafe"]
61545#[inline]
61546#[target_feature(enable = "neon")]
61547#[cfg(not(target_arch = "arm"))]
61548#[stable(feature = "neon_intrinsics", since = "1.59.0")]
61549#[cfg_attr(test, assert_instr(st4))]
61550pub unsafe fn vst4_s8(a: *mut i8, b: int8x8x4_t) {
61551    unsafe extern "unadjusted" {
61552        #[cfg_attr(
61553            any(target_arch = "aarch64", target_arch = "arm64ec"),
61554            link_name = "llvm.aarch64.neon.st4.v8i8.p0"
61555        )]
61556        fn _vst4_s8(a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t, ptr: *mut i8);
61557    }
61558    _vst4_s8(b.0, b.1, b.2, b.3, a as _)
61559}
61560#[doc = "Store multiple 4-element structures from four registers"]
61561#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_s8)"]
61562#[doc = "## Safety"]
61563#[doc = "  * Neon instrinsic unsafe"]
61564#[inline]
61565#[target_feature(enable = "neon")]
61566#[cfg(not(target_arch = "arm"))]
61567#[stable(feature = "neon_intrinsics", since = "1.59.0")]
61568#[cfg_attr(test, assert_instr(st4))]
61569pub unsafe fn vst4q_s8(a: *mut i8, b: int8x16x4_t) {
61570    unsafe extern "unadjusted" {
61571        #[cfg_attr(
61572            any(target_arch = "aarch64", target_arch = "arm64ec"),
61573            link_name = "llvm.aarch64.neon.st4.v16i8.p0"
61574        )]
61575        fn _vst4q_s8(a: int8x16_t, b: int8x16_t, c: int8x16_t, d: int8x16_t, ptr: *mut i8);
61576    }
61577    _vst4q_s8(b.0, b.1, b.2, b.3, a as _)
61578}
61579#[doc = "Store multiple 4-element structures from four registers"]
61580#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_s16)"]
61581#[doc = "## Safety"]
61582#[doc = "  * Neon instrinsic unsafe"]
61583#[inline]
61584#[target_feature(enable = "neon")]
61585#[cfg(not(target_arch = "arm"))]
61586#[stable(feature = "neon_intrinsics", since = "1.59.0")]
61587#[cfg_attr(test, assert_instr(st4))]
61588pub unsafe fn vst4_s16(a: *mut i16, b: int16x4x4_t) {
61589    unsafe extern "unadjusted" {
61590        #[cfg_attr(
61591            any(target_arch = "aarch64", target_arch = "arm64ec"),
61592            link_name = "llvm.aarch64.neon.st4.v4i16.p0"
61593        )]
61594        fn _vst4_s16(a: int16x4_t, b: int16x4_t, c: int16x4_t, d: int16x4_t, ptr: *mut i8);
61595    }
61596    _vst4_s16(b.0, b.1, b.2, b.3, a as _)
61597}
61598#[doc = "Store multiple 4-element structures from four registers"]
61599#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_s16)"]
61600#[doc = "## Safety"]
61601#[doc = "  * Neon instrinsic unsafe"]
61602#[inline]
61603#[target_feature(enable = "neon")]
61604#[cfg(not(target_arch = "arm"))]
61605#[stable(feature = "neon_intrinsics", since = "1.59.0")]
61606#[cfg_attr(test, assert_instr(st4))]
61607pub unsafe fn vst4q_s16(a: *mut i16, b: int16x8x4_t) {
61608    unsafe extern "unadjusted" {
61609        #[cfg_attr(
61610            any(target_arch = "aarch64", target_arch = "arm64ec"),
61611            link_name = "llvm.aarch64.neon.st4.v8i16.p0"
61612        )]
61613        fn _vst4q_s16(a: int16x8_t, b: int16x8_t, c: int16x8_t, d: int16x8_t, ptr: *mut i8);
61614    }
61615    _vst4q_s16(b.0, b.1, b.2, b.3, a as _)
61616}
61617#[doc = "Store multiple 4-element structures from four registers"]
61618#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_s32)"]
61619#[doc = "## Safety"]
61620#[doc = "  * Neon instrinsic unsafe"]
61621#[inline]
61622#[target_feature(enable = "neon")]
61623#[cfg(not(target_arch = "arm"))]
61624#[stable(feature = "neon_intrinsics", since = "1.59.0")]
61625#[cfg_attr(test, assert_instr(st4))]
61626pub unsafe fn vst4_s32(a: *mut i32, b: int32x2x4_t) {
61627    unsafe extern "unadjusted" {
61628        #[cfg_attr(
61629            any(target_arch = "aarch64", target_arch = "arm64ec"),
61630            link_name = "llvm.aarch64.neon.st4.v2i32.p0"
61631        )]
61632        fn _vst4_s32(a: int32x2_t, b: int32x2_t, c: int32x2_t, d: int32x2_t, ptr: *mut i8);
61633    }
61634    _vst4_s32(b.0, b.1, b.2, b.3, a as _)
61635}
61636#[doc = "Store multiple 4-element structures from four registers"]
61637#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_s32)"]
61638#[doc = "## Safety"]
61639#[doc = "  * Neon instrinsic unsafe"]
61640#[inline]
61641#[target_feature(enable = "neon")]
61642#[cfg(not(target_arch = "arm"))]
61643#[stable(feature = "neon_intrinsics", since = "1.59.0")]
61644#[cfg_attr(test, assert_instr(st4))]
61645pub unsafe fn vst4q_s32(a: *mut i32, b: int32x4x4_t) {
61646    unsafe extern "unadjusted" {
61647        #[cfg_attr(
61648            any(target_arch = "aarch64", target_arch = "arm64ec"),
61649            link_name = "llvm.aarch64.neon.st4.v4i32.p0"
61650        )]
61651        fn _vst4q_s32(a: int32x4_t, b: int32x4_t, c: int32x4_t, d: int32x4_t, ptr: *mut i8);
61652    }
61653    _vst4q_s32(b.0, b.1, b.2, b.3, a as _)
61654}
61655#[doc = "Store multiple 4-element structures from four registers"]
61656#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_f16)"]
61657#[doc = "## Safety"]
61658#[doc = "  * Neon instrinsic unsafe"]
61659#[inline]
61660#[cfg(target_arch = "arm")]
61661#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61662#[cfg_attr(test, assert_instr(vst4, LANE = 0))]
61663#[rustc_legacy_const_generics(2)]
61664#[target_feature(enable = "neon,fp16")]
61665#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
61666#[cfg(not(target_arch = "arm64ec"))]
61667pub unsafe fn vst4_lane_f16<const LANE: i32>(a: *mut f16, b: float16x4x4_t) {
61668    static_assert_uimm_bits!(LANE, 2);
61669    unsafe extern "unadjusted" {
61670        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4lane.p0.v4f16")]
61671        fn _vst4_lane_f16(
61672            ptr: *mut i8,
61673            a: float16x4_t,
61674            b: float16x4_t,
61675            c: float16x4_t,
61676            d: float16x4_t,
61677            n: i32,
61678            size: i32,
61679        );
61680    }
61681    _vst4_lane_f16(a as _, b.0, b.1, b.2, b.3, LANE, 2)
61682}
61683#[doc = "Store multiple 4-element structures from four registers"]
61684#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_lane_f16)"]
61685#[doc = "## Safety"]
61686#[doc = "  * Neon instrinsic unsafe"]
61687#[inline]
61688#[cfg(target_arch = "arm")]
61689#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61690#[cfg_attr(test, assert_instr(vst4, LANE = 0))]
61691#[rustc_legacy_const_generics(2)]
61692#[target_feature(enable = "neon,fp16")]
61693#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
61694#[cfg(not(target_arch = "arm64ec"))]
61695pub unsafe fn vst4q_lane_f16<const LANE: i32>(a: *mut f16, b: float16x8x4_t) {
61696    static_assert_uimm_bits!(LANE, 3);
61697    unsafe extern "unadjusted" {
61698        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4lane.p0.v8f16")]
61699        fn _vst4q_lane_f16(
61700            ptr: *mut i8,
61701            a: float16x8_t,
61702            b: float16x8_t,
61703            c: float16x8_t,
61704            d: float16x8_t,
61705            n: i32,
61706            size: i32,
61707        );
61708    }
61709    _vst4q_lane_f16(a as _, b.0, b.1, b.2, b.3, LANE, 2)
61710}
61711#[doc = "Store multiple 4-element structures from four registers"]
61712#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_f16)"]
61713#[doc = "## Safety"]
61714#[doc = "  * Neon instrinsic unsafe"]
61715#[inline]
61716#[cfg(not(target_arch = "arm"))]
61717#[rustc_legacy_const_generics(2)]
61718#[cfg_attr(test, assert_instr(st4, LANE = 0))]
61719#[target_feature(enable = "neon,fp16")]
61720#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
61721#[cfg(not(target_arch = "arm64ec"))]
61722pub unsafe fn vst4_lane_f16<const LANE: i32>(a: *mut f16, b: float16x4x4_t) {
61723    static_assert_uimm_bits!(LANE, 2);
61724    unsafe extern "unadjusted" {
61725        #[cfg_attr(
61726            any(target_arch = "aarch64", target_arch = "arm64ec"),
61727            link_name = "llvm.aarch64.neon.st4lane.v4f16.p0"
61728        )]
61729        fn _vst4_lane_f16(
61730            a: float16x4_t,
61731            b: float16x4_t,
61732            c: float16x4_t,
61733            d: float16x4_t,
61734            n: i64,
61735            ptr: *mut i8,
61736        );
61737    }
61738    _vst4_lane_f16(b.0, b.1, b.2, b.3, LANE as i64, a as _)
61739}
61740#[doc = "Store multiple 4-element structures from four registers"]
61741#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_lane_f16)"]
61742#[doc = "## Safety"]
61743#[doc = "  * Neon instrinsic unsafe"]
61744#[inline]
61745#[cfg(not(target_arch = "arm"))]
61746#[rustc_legacy_const_generics(2)]
61747#[cfg_attr(test, assert_instr(st4, LANE = 0))]
61748#[target_feature(enable = "neon,fp16")]
61749#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
61750#[cfg(not(target_arch = "arm64ec"))]
61751pub unsafe fn vst4q_lane_f16<const LANE: i32>(a: *mut f16, b: float16x8x4_t) {
61752    static_assert_uimm_bits!(LANE, 3);
61753    unsafe extern "unadjusted" {
61754        #[cfg_attr(
61755            any(target_arch = "aarch64", target_arch = "arm64ec"),
61756            link_name = "llvm.aarch64.neon.st4lane.v8f16.p0"
61757        )]
61758        fn _vst4q_lane_f16(
61759            a: float16x8_t,
61760            b: float16x8_t,
61761            c: float16x8_t,
61762            d: float16x8_t,
61763            n: i64,
61764            ptr: *mut i8,
61765        );
61766    }
61767    _vst4q_lane_f16(b.0, b.1, b.2, b.3, LANE as i64, a as _)
61768}
61769#[doc = "Store multiple 4-element structures from four registers"]
61770#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_f32)"]
61771#[doc = "## Safety"]
61772#[doc = "  * Neon instrinsic unsafe"]
61773#[inline]
61774#[cfg(target_arch = "arm")]
61775#[target_feature(enable = "neon,v7")]
61776#[cfg_attr(test, assert_instr(vst4, LANE = 0))]
61777#[rustc_legacy_const_generics(2)]
61778#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
61779pub unsafe fn vst4_lane_f32<const LANE: i32>(a: *mut f32, b: float32x2x4_t) {
61780    static_assert_uimm_bits!(LANE, 1);
61781    unsafe extern "unadjusted" {
61782        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4lane.p0.v2f32")]
61783        fn _vst4_lane_f32(
61784            ptr: *mut i8,
61785            a: float32x2_t,
61786            b: float32x2_t,
61787            c: float32x2_t,
61788            d: float32x2_t,
61789            n: i32,
61790            size: i32,
61791        );
61792    }
61793    _vst4_lane_f32(a as _, b.0, b.1, b.2, b.3, LANE, 4)
61794}
61795#[doc = "Store multiple 4-element structures from four registers"]
61796#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_lane_f32)"]
61797#[doc = "## Safety"]
61798#[doc = "  * Neon instrinsic unsafe"]
61799#[inline]
61800#[cfg(target_arch = "arm")]
61801#[target_feature(enable = "neon,v7")]
61802#[cfg_attr(test, assert_instr(vst4, LANE = 0))]
61803#[rustc_legacy_const_generics(2)]
61804#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
61805pub unsafe fn vst4q_lane_f32<const LANE: i32>(a: *mut f32, b: float32x4x4_t) {
61806    static_assert_uimm_bits!(LANE, 2);
61807    unsafe extern "unadjusted" {
61808        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4lane.p0.v4f32")]
61809        fn _vst4q_lane_f32(
61810            ptr: *mut i8,
61811            a: float32x4_t,
61812            b: float32x4_t,
61813            c: float32x4_t,
61814            d: float32x4_t,
61815            n: i32,
61816            size: i32,
61817        );
61818    }
61819    _vst4q_lane_f32(a as _, b.0, b.1, b.2, b.3, LANE, 4)
61820}
61821#[doc = "Store multiple 4-element structures from four registers"]
61822#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_s8)"]
61823#[doc = "## Safety"]
61824#[doc = "  * Neon instrinsic unsafe"]
61825#[inline]
61826#[cfg(target_arch = "arm")]
61827#[target_feature(enable = "neon,v7")]
61828#[cfg_attr(test, assert_instr(vst4, LANE = 0))]
61829#[rustc_legacy_const_generics(2)]
61830#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
61831pub unsafe fn vst4_lane_s8<const LANE: i32>(a: *mut i8, b: int8x8x4_t) {
61832    static_assert_uimm_bits!(LANE, 3);
61833    unsafe extern "unadjusted" {
61834        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4lane.p0.v8i8")]
61835        fn _vst4_lane_s8(
61836            ptr: *mut i8,
61837            a: int8x8_t,
61838            b: int8x8_t,
61839            c: int8x8_t,
61840            d: int8x8_t,
61841            n: i32,
61842            size: i32,
61843        );
61844    }
61845    _vst4_lane_s8(a as _, b.0, b.1, b.2, b.3, LANE, 1)
61846}
61847#[doc = "Store multiple 4-element structures from four registers"]
61848#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_s16)"]
61849#[doc = "## Safety"]
61850#[doc = "  * Neon instrinsic unsafe"]
61851#[inline]
61852#[cfg(target_arch = "arm")]
61853#[target_feature(enable = "neon,v7")]
61854#[cfg_attr(test, assert_instr(vst4, LANE = 0))]
61855#[rustc_legacy_const_generics(2)]
61856#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
61857pub unsafe fn vst4_lane_s16<const LANE: i32>(a: *mut i16, b: int16x4x4_t) {
61858    static_assert_uimm_bits!(LANE, 2);
61859    unsafe extern "unadjusted" {
61860        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4lane.p0.v4i16")]
61861        fn _vst4_lane_s16(
61862            ptr: *mut i8,
61863            a: int16x4_t,
61864            b: int16x4_t,
61865            c: int16x4_t,
61866            d: int16x4_t,
61867            n: i32,
61868            size: i32,
61869        );
61870    }
61871    _vst4_lane_s16(a as _, b.0, b.1, b.2, b.3, LANE, 2)
61872}
61873#[doc = "Store multiple 4-element structures from four registers"]
61874#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_lane_s16)"]
61875#[doc = "## Safety"]
61876#[doc = "  * Neon instrinsic unsafe"]
61877#[inline]
61878#[cfg(target_arch = "arm")]
61879#[target_feature(enable = "neon,v7")]
61880#[cfg_attr(test, assert_instr(vst4, LANE = 0))]
61881#[rustc_legacy_const_generics(2)]
61882#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
61883pub unsafe fn vst4q_lane_s16<const LANE: i32>(a: *mut i16, b: int16x8x4_t) {
61884    static_assert_uimm_bits!(LANE, 3);
61885    unsafe extern "unadjusted" {
61886        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4lane.p0.v8i16")]
61887        fn _vst4q_lane_s16(
61888            ptr: *mut i8,
61889            a: int16x8_t,
61890            b: int16x8_t,
61891            c: int16x8_t,
61892            d: int16x8_t,
61893            n: i32,
61894            size: i32,
61895        );
61896    }
61897    _vst4q_lane_s16(a as _, b.0, b.1, b.2, b.3, LANE, 2)
61898}
61899#[doc = "Store multiple 4-element structures from four registers"]
61900#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_s32)"]
61901#[doc = "## Safety"]
61902#[doc = "  * Neon instrinsic unsafe"]
61903#[inline]
61904#[cfg(target_arch = "arm")]
61905#[target_feature(enable = "neon,v7")]
61906#[cfg_attr(test, assert_instr(vst4, LANE = 0))]
61907#[rustc_legacy_const_generics(2)]
61908#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
61909pub unsafe fn vst4_lane_s32<const LANE: i32>(a: *mut i32, b: int32x2x4_t) {
61910    static_assert_uimm_bits!(LANE, 1);
61911    unsafe extern "unadjusted" {
61912        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4lane.p0.v2i32")]
61913        fn _vst4_lane_s32(
61914            ptr: *mut i8,
61915            a: int32x2_t,
61916            b: int32x2_t,
61917            c: int32x2_t,
61918            d: int32x2_t,
61919            n: i32,
61920            size: i32,
61921        );
61922    }
61923    _vst4_lane_s32(a as _, b.0, b.1, b.2, b.3, LANE, 4)
61924}
61925#[doc = "Store multiple 4-element structures from four registers"]
61926#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_lane_s32)"]
61927#[doc = "## Safety"]
61928#[doc = "  * Neon instrinsic unsafe"]
61929#[inline]
61930#[cfg(target_arch = "arm")]
61931#[target_feature(enable = "neon,v7")]
61932#[cfg_attr(test, assert_instr(vst4, LANE = 0))]
61933#[rustc_legacy_const_generics(2)]
61934#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
61935pub unsafe fn vst4q_lane_s32<const LANE: i32>(a: *mut i32, b: int32x4x4_t) {
61936    static_assert_uimm_bits!(LANE, 2);
61937    unsafe extern "unadjusted" {
61938        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4lane.p0.v4i32")]
61939        fn _vst4q_lane_s32(
61940            ptr: *mut i8,
61941            a: int32x4_t,
61942            b: int32x4_t,
61943            c: int32x4_t,
61944            d: int32x4_t,
61945            n: i32,
61946            size: i32,
61947        );
61948    }
61949    _vst4q_lane_s32(a as _, b.0, b.1, b.2, b.3, LANE, 4)
61950}
61951#[doc = "Store multiple 4-element structures from four registers"]
61952#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_f32)"]
61953#[doc = "## Safety"]
61954#[doc = "  * Neon instrinsic unsafe"]
61955#[inline]
61956#[target_feature(enable = "neon")]
61957#[cfg(not(target_arch = "arm"))]
61958#[rustc_legacy_const_generics(2)]
61959#[cfg_attr(test, assert_instr(st4, LANE = 0))]
61960#[stable(feature = "neon_intrinsics", since = "1.59.0")]
61961pub unsafe fn vst4_lane_f32<const LANE: i32>(a: *mut f32, b: float32x2x4_t) {
61962    static_assert_uimm_bits!(LANE, 1);
61963    unsafe extern "unadjusted" {
61964        #[cfg_attr(
61965            any(target_arch = "aarch64", target_arch = "arm64ec"),
61966            link_name = "llvm.aarch64.neon.st4lane.v2f32.p0"
61967        )]
61968        fn _vst4_lane_f32(
61969            a: float32x2_t,
61970            b: float32x2_t,
61971            c: float32x2_t,
61972            d: float32x2_t,
61973            n: i64,
61974            ptr: *mut i8,
61975        );
61976    }
61977    _vst4_lane_f32(b.0, b.1, b.2, b.3, LANE as i64, a as _)
61978}
61979#[doc = "Store multiple 4-element structures from four registers"]
61980#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_lane_f32)"]
61981#[doc = "## Safety"]
61982#[doc = "  * Neon instrinsic unsafe"]
61983#[inline]
61984#[target_feature(enable = "neon")]
61985#[cfg(not(target_arch = "arm"))]
61986#[rustc_legacy_const_generics(2)]
61987#[cfg_attr(test, assert_instr(st4, LANE = 0))]
61988#[stable(feature = "neon_intrinsics", since = "1.59.0")]
61989pub unsafe fn vst4q_lane_f32<const LANE: i32>(a: *mut f32, b: float32x4x4_t) {
61990    static_assert_uimm_bits!(LANE, 2);
61991    unsafe extern "unadjusted" {
61992        #[cfg_attr(
61993            any(target_arch = "aarch64", target_arch = "arm64ec"),
61994            link_name = "llvm.aarch64.neon.st4lane.v4f32.p0"
61995        )]
61996        fn _vst4q_lane_f32(
61997            a: float32x4_t,
61998            b: float32x4_t,
61999            c: float32x4_t,
62000            d: float32x4_t,
62001            n: i64,
62002            ptr: *mut i8,
62003        );
62004    }
62005    _vst4q_lane_f32(b.0, b.1, b.2, b.3, LANE as i64, a as _)
62006}
62007#[doc = "Store multiple 4-element structures from four registers"]
62008#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_s8)"]
62009#[doc = "## Safety"]
62010#[doc = "  * Neon instrinsic unsafe"]
62011#[inline]
62012#[target_feature(enable = "neon")]
62013#[cfg(not(target_arch = "arm"))]
62014#[rustc_legacy_const_generics(2)]
62015#[cfg_attr(test, assert_instr(st4, LANE = 0))]
62016#[stable(feature = "neon_intrinsics", since = "1.59.0")]
62017pub unsafe fn vst4_lane_s8<const LANE: i32>(a: *mut i8, b: int8x8x4_t) {
62018    static_assert_uimm_bits!(LANE, 3);
62019    unsafe extern "unadjusted" {
62020        #[cfg_attr(
62021            any(target_arch = "aarch64", target_arch = "arm64ec"),
62022            link_name = "llvm.aarch64.neon.st4lane.v8i8.p0"
62023        )]
62024        fn _vst4_lane_s8(a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t, n: i64, ptr: *mut i8);
62025    }
62026    _vst4_lane_s8(b.0, b.1, b.2, b.3, LANE as i64, a as _)
62027}
62028#[doc = "Store multiple 4-element structures from four registers"]
62029#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_s16)"]
62030#[doc = "## Safety"]
62031#[doc = "  * Neon instrinsic unsafe"]
62032#[inline]
62033#[target_feature(enable = "neon")]
62034#[cfg(not(target_arch = "arm"))]
62035#[rustc_legacy_const_generics(2)]
62036#[cfg_attr(test, assert_instr(st4, LANE = 0))]
62037#[stable(feature = "neon_intrinsics", since = "1.59.0")]
62038pub unsafe fn vst4_lane_s16<const LANE: i32>(a: *mut i16, b: int16x4x4_t) {
62039    static_assert_uimm_bits!(LANE, 2);
62040    unsafe extern "unadjusted" {
62041        #[cfg_attr(
62042            any(target_arch = "aarch64", target_arch = "arm64ec"),
62043            link_name = "llvm.aarch64.neon.st4lane.v4i16.p0"
62044        )]
62045        fn _vst4_lane_s16(
62046            a: int16x4_t,
62047            b: int16x4_t,
62048            c: int16x4_t,
62049            d: int16x4_t,
62050            n: i64,
62051            ptr: *mut i8,
62052        );
62053    }
62054    _vst4_lane_s16(b.0, b.1, b.2, b.3, LANE as i64, a as _)
62055}
62056#[doc = "Store multiple 4-element structures from four registers"]
62057#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_lane_s16)"]
62058#[doc = "## Safety"]
62059#[doc = "  * Neon instrinsic unsafe"]
62060#[inline]
62061#[target_feature(enable = "neon")]
62062#[cfg(not(target_arch = "arm"))]
62063#[rustc_legacy_const_generics(2)]
62064#[cfg_attr(test, assert_instr(st4, LANE = 0))]
62065#[stable(feature = "neon_intrinsics", since = "1.59.0")]
62066pub unsafe fn vst4q_lane_s16<const LANE: i32>(a: *mut i16, b: int16x8x4_t) {
62067    static_assert_uimm_bits!(LANE, 3);
62068    unsafe extern "unadjusted" {
62069        #[cfg_attr(
62070            any(target_arch = "aarch64", target_arch = "arm64ec"),
62071            link_name = "llvm.aarch64.neon.st4lane.v8i16.p0"
62072        )]
62073        fn _vst4q_lane_s16(
62074            a: int16x8_t,
62075            b: int16x8_t,
62076            c: int16x8_t,
62077            d: int16x8_t,
62078            n: i64,
62079            ptr: *mut i8,
62080        );
62081    }
62082    _vst4q_lane_s16(b.0, b.1, b.2, b.3, LANE as i64, a as _)
62083}
62084#[doc = "Store multiple 4-element structures from four registers"]
62085#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_s32)"]
62086#[doc = "## Safety"]
62087#[doc = "  * Neon instrinsic unsafe"]
62088#[inline]
62089#[target_feature(enable = "neon")]
62090#[cfg(not(target_arch = "arm"))]
62091#[rustc_legacy_const_generics(2)]
62092#[cfg_attr(test, assert_instr(st4, LANE = 0))]
62093#[stable(feature = "neon_intrinsics", since = "1.59.0")]
62094pub unsafe fn vst4_lane_s32<const LANE: i32>(a: *mut i32, b: int32x2x4_t) {
62095    static_assert_uimm_bits!(LANE, 1);
62096    unsafe extern "unadjusted" {
62097        #[cfg_attr(
62098            any(target_arch = "aarch64", target_arch = "arm64ec"),
62099            link_name = "llvm.aarch64.neon.st4lane.v2i32.p0"
62100        )]
62101        fn _vst4_lane_s32(
62102            a: int32x2_t,
62103            b: int32x2_t,
62104            c: int32x2_t,
62105            d: int32x2_t,
62106            n: i64,
62107            ptr: *mut i8,
62108        );
62109    }
62110    _vst4_lane_s32(b.0, b.1, b.2, b.3, LANE as i64, a as _)
62111}
62112#[doc = "Store multiple 4-element structures from four registers"]
62113#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_lane_s32)"]
62114#[doc = "## Safety"]
62115#[doc = "  * Neon instrinsic unsafe"]
62116#[inline]
62117#[target_feature(enable = "neon")]
62118#[cfg(not(target_arch = "arm"))]
62119#[rustc_legacy_const_generics(2)]
62120#[cfg_attr(test, assert_instr(st4, LANE = 0))]
62121#[stable(feature = "neon_intrinsics", since = "1.59.0")]
62122pub unsafe fn vst4q_lane_s32<const LANE: i32>(a: *mut i32, b: int32x4x4_t) {
62123    static_assert_uimm_bits!(LANE, 2);
62124    unsafe extern "unadjusted" {
62125        #[cfg_attr(
62126            any(target_arch = "aarch64", target_arch = "arm64ec"),
62127            link_name = "llvm.aarch64.neon.st4lane.v4i32.p0"
62128        )]
62129        fn _vst4q_lane_s32(
62130            a: int32x4_t,
62131            b: int32x4_t,
62132            c: int32x4_t,
62133            d: int32x4_t,
62134            n: i64,
62135            ptr: *mut i8,
62136        );
62137    }
62138    _vst4q_lane_s32(b.0, b.1, b.2, b.3, LANE as i64, a as _)
62139}
62140#[doc = "Store multiple 4-element structures from four registers"]
62141#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_u8)"]
62142#[doc = "## Safety"]
62143#[doc = "  * Neon instrinsic unsafe"]
62144#[inline]
62145#[target_feature(enable = "neon")]
62146#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62147#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4, LANE = 0))]
62148#[cfg_attr(
62149    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62150    assert_instr(st4, LANE = 0)
62151)]
62152#[rustc_legacy_const_generics(2)]
62153#[cfg_attr(
62154    not(target_arch = "arm"),
62155    stable(feature = "neon_intrinsics", since = "1.59.0")
62156)]
62157#[cfg_attr(
62158    target_arch = "arm",
62159    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62160)]
62161pub unsafe fn vst4_lane_u8<const LANE: i32>(a: *mut u8, b: uint8x8x4_t) {
62162    static_assert_uimm_bits!(LANE, 3);
62163    vst4_lane_s8::<LANE>(transmute(a), transmute(b))
62164}
62165#[doc = "Store multiple 4-element structures from four registers"]
62166#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_u16)"]
62167#[doc = "## Safety"]
62168#[doc = "  * Neon instrinsic unsafe"]
62169#[inline]
62170#[target_feature(enable = "neon")]
62171#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62172#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4, LANE = 0))]
62173#[cfg_attr(
62174    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62175    assert_instr(st4, LANE = 0)
62176)]
62177#[rustc_legacy_const_generics(2)]
62178#[cfg_attr(
62179    not(target_arch = "arm"),
62180    stable(feature = "neon_intrinsics", since = "1.59.0")
62181)]
62182#[cfg_attr(
62183    target_arch = "arm",
62184    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62185)]
62186pub unsafe fn vst4_lane_u16<const LANE: i32>(a: *mut u16, b: uint16x4x4_t) {
62187    static_assert_uimm_bits!(LANE, 2);
62188    vst4_lane_s16::<LANE>(transmute(a), transmute(b))
62189}
62190#[doc = "Store multiple 4-element structures from four registers"]
62191#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_lane_u16)"]
62192#[doc = "## Safety"]
62193#[doc = "  * Neon instrinsic unsafe"]
62194#[inline]
62195#[target_feature(enable = "neon")]
62196#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62197#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4, LANE = 0))]
62198#[cfg_attr(
62199    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62200    assert_instr(st4, LANE = 0)
62201)]
62202#[rustc_legacy_const_generics(2)]
62203#[cfg_attr(
62204    not(target_arch = "arm"),
62205    stable(feature = "neon_intrinsics", since = "1.59.0")
62206)]
62207#[cfg_attr(
62208    target_arch = "arm",
62209    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62210)]
62211pub unsafe fn vst4q_lane_u16<const LANE: i32>(a: *mut u16, b: uint16x8x4_t) {
62212    static_assert_uimm_bits!(LANE, 3);
62213    vst4q_lane_s16::<LANE>(transmute(a), transmute(b))
62214}
62215#[doc = "Store multiple 4-element structures from four registers"]
62216#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_u32)"]
62217#[doc = "## Safety"]
62218#[doc = "  * Neon instrinsic unsafe"]
62219#[inline]
62220#[target_feature(enable = "neon")]
62221#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62222#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4, LANE = 0))]
62223#[cfg_attr(
62224    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62225    assert_instr(st4, LANE = 0)
62226)]
62227#[rustc_legacy_const_generics(2)]
62228#[cfg_attr(
62229    not(target_arch = "arm"),
62230    stable(feature = "neon_intrinsics", since = "1.59.0")
62231)]
62232#[cfg_attr(
62233    target_arch = "arm",
62234    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62235)]
62236pub unsafe fn vst4_lane_u32<const LANE: i32>(a: *mut u32, b: uint32x2x4_t) {
62237    static_assert_uimm_bits!(LANE, 1);
62238    vst4_lane_s32::<LANE>(transmute(a), transmute(b))
62239}
62240#[doc = "Store multiple 4-element structures from four registers"]
62241#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_lane_u32)"]
62242#[doc = "## Safety"]
62243#[doc = "  * Neon instrinsic unsafe"]
62244#[inline]
62245#[target_feature(enable = "neon")]
62246#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62247#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4, LANE = 0))]
62248#[cfg_attr(
62249    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62250    assert_instr(st4, LANE = 0)
62251)]
62252#[rustc_legacy_const_generics(2)]
62253#[cfg_attr(
62254    not(target_arch = "arm"),
62255    stable(feature = "neon_intrinsics", since = "1.59.0")
62256)]
62257#[cfg_attr(
62258    target_arch = "arm",
62259    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62260)]
62261pub unsafe fn vst4q_lane_u32<const LANE: i32>(a: *mut u32, b: uint32x4x4_t) {
62262    static_assert_uimm_bits!(LANE, 2);
62263    vst4q_lane_s32::<LANE>(transmute(a), transmute(b))
62264}
62265#[doc = "Store multiple 4-element structures from four registers"]
62266#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_p8)"]
62267#[doc = "## Safety"]
62268#[doc = "  * Neon instrinsic unsafe"]
62269#[inline]
62270#[target_feature(enable = "neon")]
62271#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62272#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4, LANE = 0))]
62273#[cfg_attr(
62274    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62275    assert_instr(st4, LANE = 0)
62276)]
62277#[rustc_legacy_const_generics(2)]
62278#[cfg_attr(
62279    not(target_arch = "arm"),
62280    stable(feature = "neon_intrinsics", since = "1.59.0")
62281)]
62282#[cfg_attr(
62283    target_arch = "arm",
62284    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62285)]
62286pub unsafe fn vst4_lane_p8<const LANE: i32>(a: *mut p8, b: poly8x8x4_t) {
62287    static_assert_uimm_bits!(LANE, 3);
62288    vst4_lane_s8::<LANE>(transmute(a), transmute(b))
62289}
62290#[doc = "Store multiple 4-element structures from four registers"]
62291#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_p16)"]
62292#[doc = "## Safety"]
62293#[doc = "  * Neon instrinsic unsafe"]
62294#[inline]
62295#[target_feature(enable = "neon")]
62296#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62297#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4, LANE = 0))]
62298#[cfg_attr(
62299    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62300    assert_instr(st4, LANE = 0)
62301)]
62302#[rustc_legacy_const_generics(2)]
62303#[cfg_attr(
62304    not(target_arch = "arm"),
62305    stable(feature = "neon_intrinsics", since = "1.59.0")
62306)]
62307#[cfg_attr(
62308    target_arch = "arm",
62309    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62310)]
62311pub unsafe fn vst4_lane_p16<const LANE: i32>(a: *mut p16, b: poly16x4x4_t) {
62312    static_assert_uimm_bits!(LANE, 2);
62313    vst4_lane_s16::<LANE>(transmute(a), transmute(b))
62314}
62315#[doc = "Store multiple 4-element structures from four registers"]
62316#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_lane_p16)"]
62317#[doc = "## Safety"]
62318#[doc = "  * Neon instrinsic unsafe"]
62319#[inline]
62320#[target_feature(enable = "neon")]
62321#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62322#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4, LANE = 0))]
62323#[cfg_attr(
62324    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62325    assert_instr(st4, LANE = 0)
62326)]
62327#[rustc_legacy_const_generics(2)]
62328#[cfg_attr(
62329    not(target_arch = "arm"),
62330    stable(feature = "neon_intrinsics", since = "1.59.0")
62331)]
62332#[cfg_attr(
62333    target_arch = "arm",
62334    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62335)]
62336pub unsafe fn vst4q_lane_p16<const LANE: i32>(a: *mut p16, b: poly16x8x4_t) {
62337    static_assert_uimm_bits!(LANE, 3);
62338    vst4q_lane_s16::<LANE>(transmute(a), transmute(b))
62339}
62340#[doc = "Store multiple 4-element structures from four registers"]
62341#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_p64)"]
62342#[doc = "## Safety"]
62343#[doc = "  * Neon instrinsic unsafe"]
62344#[inline]
62345#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
62346#[target_feature(enable = "neon,aes")]
62347#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
62348#[cfg_attr(
62349    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62350    assert_instr(nop)
62351)]
62352#[cfg_attr(
62353    not(target_arch = "arm"),
62354    stable(feature = "neon_intrinsics", since = "1.59.0")
62355)]
62356#[cfg_attr(
62357    target_arch = "arm",
62358    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62359)]
62360pub unsafe fn vst4_p64(a: *mut p64, b: poly64x1x4_t) {
62361    vst4_s64(transmute(a), transmute(b))
62362}
62363#[doc = "Store multiple 4-element structures from four registers"]
62364#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_s64)"]
62365#[doc = "## Safety"]
62366#[doc = "  * Neon instrinsic unsafe"]
62367#[inline]
62368#[cfg(target_arch = "arm")]
62369#[target_feature(enable = "neon,v7")]
62370#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62371#[cfg_attr(test, assert_instr(nop))]
62372pub unsafe fn vst4_s64(a: *mut i64, b: int64x1x4_t) {
62373    unsafe extern "unadjusted" {
62374        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4.p0.v1i64")]
62375        fn _vst4_s64(
62376            ptr: *mut i8,
62377            a: int64x1_t,
62378            b: int64x1_t,
62379            c: int64x1_t,
62380            d: int64x1_t,
62381            size: i32,
62382        );
62383    }
62384    _vst4_s64(a as _, b.0, b.1, b.2, b.3, 8)
62385}
62386#[doc = "Store multiple 4-element structures from four registers"]
62387#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_s64)"]
62388#[doc = "## Safety"]
62389#[doc = "  * Neon instrinsic unsafe"]
62390#[inline]
62391#[target_feature(enable = "neon")]
62392#[cfg(not(target_arch = "arm"))]
62393#[stable(feature = "neon_intrinsics", since = "1.59.0")]
62394#[cfg_attr(test, assert_instr(nop))]
62395pub unsafe fn vst4_s64(a: *mut i64, b: int64x1x4_t) {
62396    unsafe extern "unadjusted" {
62397        #[cfg_attr(
62398            any(target_arch = "aarch64", target_arch = "arm64ec"),
62399            link_name = "llvm.aarch64.neon.st4.v1i64.p0"
62400        )]
62401        fn _vst4_s64(a: int64x1_t, b: int64x1_t, c: int64x1_t, d: int64x1_t, ptr: *mut i8);
62402    }
62403    _vst4_s64(b.0, b.1, b.2, b.3, a as _)
62404}
62405#[doc = "Store multiple 4-element structures from four registers"]
62406#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_u64)"]
62407#[doc = "## Safety"]
62408#[doc = "  * Neon instrinsic unsafe"]
62409#[inline]
62410#[target_feature(enable = "neon")]
62411#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62412#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
62413#[cfg_attr(
62414    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62415    assert_instr(nop)
62416)]
62417#[cfg_attr(
62418    not(target_arch = "arm"),
62419    stable(feature = "neon_intrinsics", since = "1.59.0")
62420)]
62421#[cfg_attr(
62422    target_arch = "arm",
62423    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62424)]
62425pub unsafe fn vst4_u64(a: *mut u64, b: uint64x1x4_t) {
62426    vst4_s64(transmute(a), transmute(b))
62427}
62428#[doc = "Store multiple 4-element structures from four registers"]
62429#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_u8)"]
62430#[doc = "## Safety"]
62431#[doc = "  * Neon instrinsic unsafe"]
62432#[inline]
62433#[target_feature(enable = "neon")]
62434#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62435#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4))]
62436#[cfg_attr(
62437    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62438    assert_instr(st4)
62439)]
62440#[cfg_attr(
62441    not(target_arch = "arm"),
62442    stable(feature = "neon_intrinsics", since = "1.59.0")
62443)]
62444#[cfg_attr(
62445    target_arch = "arm",
62446    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62447)]
62448pub unsafe fn vst4_u8(a: *mut u8, b: uint8x8x4_t) {
62449    vst4_s8(transmute(a), transmute(b))
62450}
62451#[doc = "Store multiple 4-element structures from four registers"]
62452#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_u8)"]
62453#[doc = "## Safety"]
62454#[doc = "  * Neon instrinsic unsafe"]
62455#[inline]
62456#[target_feature(enable = "neon")]
62457#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62458#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4))]
62459#[cfg_attr(
62460    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62461    assert_instr(st4)
62462)]
62463#[cfg_attr(
62464    not(target_arch = "arm"),
62465    stable(feature = "neon_intrinsics", since = "1.59.0")
62466)]
62467#[cfg_attr(
62468    target_arch = "arm",
62469    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62470)]
62471pub unsafe fn vst4q_u8(a: *mut u8, b: uint8x16x4_t) {
62472    vst4q_s8(transmute(a), transmute(b))
62473}
62474#[doc = "Store multiple 4-element structures from four registers"]
62475#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_u16)"]
62476#[doc = "## Safety"]
62477#[doc = "  * Neon instrinsic unsafe"]
62478#[inline]
62479#[target_feature(enable = "neon")]
62480#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62481#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4))]
62482#[cfg_attr(
62483    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62484    assert_instr(st4)
62485)]
62486#[cfg_attr(
62487    not(target_arch = "arm"),
62488    stable(feature = "neon_intrinsics", since = "1.59.0")
62489)]
62490#[cfg_attr(
62491    target_arch = "arm",
62492    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62493)]
62494pub unsafe fn vst4_u16(a: *mut u16, b: uint16x4x4_t) {
62495    vst4_s16(transmute(a), transmute(b))
62496}
62497#[doc = "Store multiple 4-element structures from four registers"]
62498#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_u16)"]
62499#[doc = "## Safety"]
62500#[doc = "  * Neon instrinsic unsafe"]
62501#[inline]
62502#[target_feature(enable = "neon")]
62503#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62504#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4))]
62505#[cfg_attr(
62506    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62507    assert_instr(st4)
62508)]
62509#[cfg_attr(
62510    not(target_arch = "arm"),
62511    stable(feature = "neon_intrinsics", since = "1.59.0")
62512)]
62513#[cfg_attr(
62514    target_arch = "arm",
62515    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62516)]
62517pub unsafe fn vst4q_u16(a: *mut u16, b: uint16x8x4_t) {
62518    vst4q_s16(transmute(a), transmute(b))
62519}
62520#[doc = "Store multiple 4-element structures from four registers"]
62521#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_u32)"]
62522#[doc = "## Safety"]
62523#[doc = "  * Neon instrinsic unsafe"]
62524#[inline]
62525#[target_feature(enable = "neon")]
62526#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62527#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4))]
62528#[cfg_attr(
62529    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62530    assert_instr(st4)
62531)]
62532#[cfg_attr(
62533    not(target_arch = "arm"),
62534    stable(feature = "neon_intrinsics", since = "1.59.0")
62535)]
62536#[cfg_attr(
62537    target_arch = "arm",
62538    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62539)]
62540pub unsafe fn vst4_u32(a: *mut u32, b: uint32x2x4_t) {
62541    vst4_s32(transmute(a), transmute(b))
62542}
62543#[doc = "Store multiple 4-element structures from four registers"]
62544#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_u32)"]
62545#[doc = "## Safety"]
62546#[doc = "  * Neon instrinsic unsafe"]
62547#[inline]
62548#[target_feature(enable = "neon")]
62549#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62550#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4))]
62551#[cfg_attr(
62552    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62553    assert_instr(st4)
62554)]
62555#[cfg_attr(
62556    not(target_arch = "arm"),
62557    stable(feature = "neon_intrinsics", since = "1.59.0")
62558)]
62559#[cfg_attr(
62560    target_arch = "arm",
62561    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62562)]
62563pub unsafe fn vst4q_u32(a: *mut u32, b: uint32x4x4_t) {
62564    vst4q_s32(transmute(a), transmute(b))
62565}
62566#[doc = "Store multiple 4-element structures from four registers"]
62567#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_p8)"]
62568#[doc = "## Safety"]
62569#[doc = "  * Neon instrinsic unsafe"]
62570#[inline]
62571#[target_feature(enable = "neon")]
62572#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62573#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4))]
62574#[cfg_attr(
62575    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62576    assert_instr(st4)
62577)]
62578#[cfg_attr(
62579    not(target_arch = "arm"),
62580    stable(feature = "neon_intrinsics", since = "1.59.0")
62581)]
62582#[cfg_attr(
62583    target_arch = "arm",
62584    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62585)]
62586pub unsafe fn vst4_p8(a: *mut p8, b: poly8x8x4_t) {
62587    vst4_s8(transmute(a), transmute(b))
62588}
62589#[doc = "Store multiple 4-element structures from four registers"]
62590#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_p8)"]
62591#[doc = "## Safety"]
62592#[doc = "  * Neon instrinsic unsafe"]
62593#[inline]
62594#[target_feature(enable = "neon")]
62595#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62596#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4))]
62597#[cfg_attr(
62598    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62599    assert_instr(st4)
62600)]
62601#[cfg_attr(
62602    not(target_arch = "arm"),
62603    stable(feature = "neon_intrinsics", since = "1.59.0")
62604)]
62605#[cfg_attr(
62606    target_arch = "arm",
62607    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62608)]
62609pub unsafe fn vst4q_p8(a: *mut p8, b: poly8x16x4_t) {
62610    vst4q_s8(transmute(a), transmute(b))
62611}
62612#[doc = "Store multiple 4-element structures from four registers"]
62613#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_p16)"]
62614#[doc = "## Safety"]
62615#[doc = "  * Neon instrinsic unsafe"]
62616#[inline]
62617#[target_feature(enable = "neon")]
62618#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62619#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4))]
62620#[cfg_attr(
62621    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62622    assert_instr(st4)
62623)]
62624#[cfg_attr(
62625    not(target_arch = "arm"),
62626    stable(feature = "neon_intrinsics", since = "1.59.0")
62627)]
62628#[cfg_attr(
62629    target_arch = "arm",
62630    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62631)]
62632pub unsafe fn vst4_p16(a: *mut p16, b: poly16x4x4_t) {
62633    vst4_s16(transmute(a), transmute(b))
62634}
62635#[doc = "Store multiple 4-element structures from four registers"]
62636#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_p16)"]
62637#[doc = "## Safety"]
62638#[doc = "  * Neon instrinsic unsafe"]
62639#[inline]
62640#[target_feature(enable = "neon")]
62641#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62642#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4))]
62643#[cfg_attr(
62644    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62645    assert_instr(st4)
62646)]
62647#[cfg_attr(
62648    not(target_arch = "arm"),
62649    stable(feature = "neon_intrinsics", since = "1.59.0")
62650)]
62651#[cfg_attr(
62652    target_arch = "arm",
62653    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62654)]
62655pub unsafe fn vst4q_p16(a: *mut p16, b: poly16x8x4_t) {
62656    vst4q_s16(transmute(a), transmute(b))
62657}
62658#[doc = "Store SIMD&FP register (immediate offset)"]
62659#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vstrq_p128)"]
62660#[doc = "## Safety"]
62661#[doc = "  * Neon instrinsic unsafe"]
62662#[inline]
62663#[target_feature(enable = "neon")]
62664#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62665#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
62666#[cfg_attr(
62667    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62668    assert_instr(nop)
62669)]
62670#[cfg_attr(
62671    not(target_arch = "arm"),
62672    stable(feature = "neon_intrinsics", since = "1.59.0")
62673)]
62674#[cfg_attr(
62675    target_arch = "arm",
62676    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62677)]
62678pub unsafe fn vstrq_p128(a: *mut p128, b: p128) {
62679    *a = b
62680}
62681#[doc = "Subtract"]
62682#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsub_f16)"]
62683#[inline]
62684#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
62685#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.f16"))]
62686#[cfg_attr(
62687    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62688    assert_instr(fsub)
62689)]
62690#[target_feature(enable = "neon,fp16")]
62691#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
62692#[cfg(not(target_arch = "arm64ec"))]
62693pub fn vsub_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t {
62694    unsafe { simd_sub(a, b) }
62695}
62696#[doc = "Subtract"]
62697#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubq_f16)"]
62698#[inline]
62699#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
62700#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.f16"))]
62701#[cfg_attr(
62702    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62703    assert_instr(fsub)
62704)]
62705#[target_feature(enable = "neon,fp16")]
62706#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
62707#[cfg(not(target_arch = "arm64ec"))]
62708pub fn vsubq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t {
62709    unsafe { simd_sub(a, b) }
62710}
62711#[doc = "Subtract"]
62712#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsub_f32)"]
62713#[inline]
62714#[target_feature(enable = "neon")]
62715#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62716#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.f32"))]
62717#[cfg_attr(
62718    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62719    assert_instr(fsub)
62720)]
62721#[cfg_attr(
62722    not(target_arch = "arm"),
62723    stable(feature = "neon_intrinsics", since = "1.59.0")
62724)]
62725#[cfg_attr(
62726    target_arch = "arm",
62727    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62728)]
62729pub fn vsub_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
62730    unsafe { simd_sub(a, b) }
62731}
62732#[doc = "Subtract"]
62733#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubq_f32)"]
62734#[inline]
62735#[target_feature(enable = "neon")]
62736#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62737#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.f32"))]
62738#[cfg_attr(
62739    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62740    assert_instr(fsub)
62741)]
62742#[cfg_attr(
62743    not(target_arch = "arm"),
62744    stable(feature = "neon_intrinsics", since = "1.59.0")
62745)]
62746#[cfg_attr(
62747    target_arch = "arm",
62748    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62749)]
62750pub fn vsubq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t {
62751    unsafe { simd_sub(a, b) }
62752}
62753#[doc = "Subtract"]
62754#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsub_s16)"]
62755#[inline]
62756#[target_feature(enable = "neon")]
62757#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62758#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i16"))]
62759#[cfg_attr(
62760    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62761    assert_instr(sub)
62762)]
62763#[cfg_attr(
62764    not(target_arch = "arm"),
62765    stable(feature = "neon_intrinsics", since = "1.59.0")
62766)]
62767#[cfg_attr(
62768    target_arch = "arm",
62769    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62770)]
62771pub fn vsub_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
62772    unsafe { simd_sub(a, b) }
62773}
62774#[doc = "Subtract"]
62775#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubq_s16)"]
62776#[inline]
62777#[target_feature(enable = "neon")]
62778#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62779#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i16"))]
62780#[cfg_attr(
62781    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62782    assert_instr(sub)
62783)]
62784#[cfg_attr(
62785    not(target_arch = "arm"),
62786    stable(feature = "neon_intrinsics", since = "1.59.0")
62787)]
62788#[cfg_attr(
62789    target_arch = "arm",
62790    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62791)]
62792pub fn vsubq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
62793    unsafe { simd_sub(a, b) }
62794}
62795#[doc = "Subtract"]
62796#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsub_u16)"]
62797#[inline]
62798#[target_feature(enable = "neon")]
62799#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62800#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i16"))]
62801#[cfg_attr(
62802    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62803    assert_instr(sub)
62804)]
62805#[cfg_attr(
62806    not(target_arch = "arm"),
62807    stable(feature = "neon_intrinsics", since = "1.59.0")
62808)]
62809#[cfg_attr(
62810    target_arch = "arm",
62811    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62812)]
62813pub fn vsub_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
62814    unsafe { simd_sub(a, b) }
62815}
62816#[doc = "Subtract"]
62817#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubq_u16)"]
62818#[inline]
62819#[target_feature(enable = "neon")]
62820#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62821#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i16"))]
62822#[cfg_attr(
62823    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62824    assert_instr(sub)
62825)]
62826#[cfg_attr(
62827    not(target_arch = "arm"),
62828    stable(feature = "neon_intrinsics", since = "1.59.0")
62829)]
62830#[cfg_attr(
62831    target_arch = "arm",
62832    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62833)]
62834pub fn vsubq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
62835    unsafe { simd_sub(a, b) }
62836}
62837#[doc = "Subtract"]
62838#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsub_s32)"]
62839#[inline]
62840#[target_feature(enable = "neon")]
62841#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62842#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i32"))]
62843#[cfg_attr(
62844    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62845    assert_instr(sub)
62846)]
62847#[cfg_attr(
62848    not(target_arch = "arm"),
62849    stable(feature = "neon_intrinsics", since = "1.59.0")
62850)]
62851#[cfg_attr(
62852    target_arch = "arm",
62853    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62854)]
62855pub fn vsub_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
62856    unsafe { simd_sub(a, b) }
62857}
62858#[doc = "Subtract"]
62859#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubq_s32)"]
62860#[inline]
62861#[target_feature(enable = "neon")]
62862#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62863#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i32"))]
62864#[cfg_attr(
62865    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62866    assert_instr(sub)
62867)]
62868#[cfg_attr(
62869    not(target_arch = "arm"),
62870    stable(feature = "neon_intrinsics", since = "1.59.0")
62871)]
62872#[cfg_attr(
62873    target_arch = "arm",
62874    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62875)]
62876pub fn vsubq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
62877    unsafe { simd_sub(a, b) }
62878}
62879#[doc = "Subtract"]
62880#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsub_u32)"]
62881#[inline]
62882#[target_feature(enable = "neon")]
62883#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62884#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i32"))]
62885#[cfg_attr(
62886    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62887    assert_instr(sub)
62888)]
62889#[cfg_attr(
62890    not(target_arch = "arm"),
62891    stable(feature = "neon_intrinsics", since = "1.59.0")
62892)]
62893#[cfg_attr(
62894    target_arch = "arm",
62895    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62896)]
62897pub fn vsub_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
62898    unsafe { simd_sub(a, b) }
62899}
62900#[doc = "Subtract"]
62901#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubq_u32)"]
62902#[inline]
62903#[target_feature(enable = "neon")]
62904#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62905#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i32"))]
62906#[cfg_attr(
62907    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62908    assert_instr(sub)
62909)]
62910#[cfg_attr(
62911    not(target_arch = "arm"),
62912    stable(feature = "neon_intrinsics", since = "1.59.0")
62913)]
62914#[cfg_attr(
62915    target_arch = "arm",
62916    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62917)]
62918pub fn vsubq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
62919    unsafe { simd_sub(a, b) }
62920}
62921#[doc = "Subtract"]
62922#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsub_s64)"]
62923#[inline]
62924#[target_feature(enable = "neon")]
62925#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62926#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i64"))]
62927#[cfg_attr(
62928    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62929    assert_instr(sub)
62930)]
62931#[cfg_attr(
62932    not(target_arch = "arm"),
62933    stable(feature = "neon_intrinsics", since = "1.59.0")
62934)]
62935#[cfg_attr(
62936    target_arch = "arm",
62937    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62938)]
62939pub fn vsub_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t {
62940    unsafe { simd_sub(a, b) }
62941}
62942#[doc = "Subtract"]
62943#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubq_s64)"]
62944#[inline]
62945#[target_feature(enable = "neon")]
62946#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62947#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i64"))]
62948#[cfg_attr(
62949    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62950    assert_instr(sub)
62951)]
62952#[cfg_attr(
62953    not(target_arch = "arm"),
62954    stable(feature = "neon_intrinsics", since = "1.59.0")
62955)]
62956#[cfg_attr(
62957    target_arch = "arm",
62958    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62959)]
62960pub fn vsubq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t {
62961    unsafe { simd_sub(a, b) }
62962}
62963#[doc = "Subtract"]
62964#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsub_u64)"]
62965#[inline]
62966#[target_feature(enable = "neon")]
62967#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62968#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i64"))]
62969#[cfg_attr(
62970    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62971    assert_instr(sub)
62972)]
62973#[cfg_attr(
62974    not(target_arch = "arm"),
62975    stable(feature = "neon_intrinsics", since = "1.59.0")
62976)]
62977#[cfg_attr(
62978    target_arch = "arm",
62979    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62980)]
62981pub fn vsub_u64(a: uint64x1_t, b: uint64x1_t) -> uint64x1_t {
62982    unsafe { simd_sub(a, b) }
62983}
62984#[doc = "Subtract"]
62985#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubq_u64)"]
62986#[inline]
62987#[target_feature(enable = "neon")]
62988#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62989#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i64"))]
62990#[cfg_attr(
62991    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62992    assert_instr(sub)
62993)]
62994#[cfg_attr(
62995    not(target_arch = "arm"),
62996    stable(feature = "neon_intrinsics", since = "1.59.0")
62997)]
62998#[cfg_attr(
62999    target_arch = "arm",
63000    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63001)]
63002pub fn vsubq_u64(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
63003    unsafe { simd_sub(a, b) }
63004}
63005#[doc = "Subtract"]
63006#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsub_s8)"]
63007#[inline]
63008#[target_feature(enable = "neon")]
63009#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63010#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i8"))]
63011#[cfg_attr(
63012    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63013    assert_instr(sub)
63014)]
63015#[cfg_attr(
63016    not(target_arch = "arm"),
63017    stable(feature = "neon_intrinsics", since = "1.59.0")
63018)]
63019#[cfg_attr(
63020    target_arch = "arm",
63021    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63022)]
63023pub fn vsub_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
63024    unsafe { simd_sub(a, b) }
63025}
63026#[doc = "Subtract"]
63027#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubq_s8)"]
63028#[inline]
63029#[target_feature(enable = "neon")]
63030#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63031#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i8"))]
63032#[cfg_attr(
63033    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63034    assert_instr(sub)
63035)]
63036#[cfg_attr(
63037    not(target_arch = "arm"),
63038    stable(feature = "neon_intrinsics", since = "1.59.0")
63039)]
63040#[cfg_attr(
63041    target_arch = "arm",
63042    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63043)]
63044pub fn vsubq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
63045    unsafe { simd_sub(a, b) }
63046}
63047#[doc = "Subtract"]
63048#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsub_u8)"]
63049#[inline]
63050#[target_feature(enable = "neon")]
63051#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63052#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i8"))]
63053#[cfg_attr(
63054    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63055    assert_instr(sub)
63056)]
63057#[cfg_attr(
63058    not(target_arch = "arm"),
63059    stable(feature = "neon_intrinsics", since = "1.59.0")
63060)]
63061#[cfg_attr(
63062    target_arch = "arm",
63063    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63064)]
63065pub fn vsub_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
63066    unsafe { simd_sub(a, b) }
63067}
63068#[doc = "Subtract"]
63069#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubq_u8)"]
63070#[inline]
63071#[target_feature(enable = "neon")]
63072#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63073#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i8"))]
63074#[cfg_attr(
63075    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63076    assert_instr(sub)
63077)]
63078#[cfg_attr(
63079    not(target_arch = "arm"),
63080    stable(feature = "neon_intrinsics", since = "1.59.0")
63081)]
63082#[cfg_attr(
63083    target_arch = "arm",
63084    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63085)]
63086pub fn vsubq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
63087    unsafe { simd_sub(a, b) }
63088}
63089#[doc = "Subtract returning high narrow"]
63090#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubhn_high_s16)"]
63091#[inline]
63092#[target_feature(enable = "neon")]
63093#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63094#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubhn))]
63095#[cfg_attr(
63096    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63097    assert_instr(subhn2)
63098)]
63099#[cfg_attr(
63100    not(target_arch = "arm"),
63101    stable(feature = "neon_intrinsics", since = "1.59.0")
63102)]
63103#[cfg_attr(
63104    target_arch = "arm",
63105    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63106)]
63107pub fn vsubhn_high_s16(a: int8x8_t, b: int16x8_t, c: int16x8_t) -> int8x16_t {
63108    let d: int8x8_t = vsubhn_s16(b, c);
63109    unsafe { simd_shuffle!(a, d, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]) }
63110}
63111#[doc = "Subtract returning high narrow"]
63112#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubhn_high_s32)"]
63113#[inline]
63114#[target_feature(enable = "neon")]
63115#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63116#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubhn))]
63117#[cfg_attr(
63118    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63119    assert_instr(subhn2)
63120)]
63121#[cfg_attr(
63122    not(target_arch = "arm"),
63123    stable(feature = "neon_intrinsics", since = "1.59.0")
63124)]
63125#[cfg_attr(
63126    target_arch = "arm",
63127    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63128)]
63129pub fn vsubhn_high_s32(a: int16x4_t, b: int32x4_t, c: int32x4_t) -> int16x8_t {
63130    let d: int16x4_t = vsubhn_s32(b, c);
63131    unsafe { simd_shuffle!(a, d, [0, 1, 2, 3, 4, 5, 6, 7]) }
63132}
63133#[doc = "Subtract returning high narrow"]
63134#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubhn_high_s64)"]
63135#[inline]
63136#[target_feature(enable = "neon")]
63137#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63138#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubhn))]
63139#[cfg_attr(
63140    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63141    assert_instr(subhn2)
63142)]
63143#[cfg_attr(
63144    not(target_arch = "arm"),
63145    stable(feature = "neon_intrinsics", since = "1.59.0")
63146)]
63147#[cfg_attr(
63148    target_arch = "arm",
63149    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63150)]
63151pub fn vsubhn_high_s64(a: int32x2_t, b: int64x2_t, c: int64x2_t) -> int32x4_t {
63152    let d: int32x2_t = vsubhn_s64(b, c);
63153    unsafe { simd_shuffle!(a, d, [0, 1, 2, 3]) }
63154}
63155#[doc = "Subtract returning high narrow"]
63156#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubhn_high_u16)"]
63157#[inline]
63158#[target_feature(enable = "neon")]
63159#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63160#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubhn))]
63161#[cfg_attr(
63162    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63163    assert_instr(subhn2)
63164)]
63165#[cfg_attr(
63166    not(target_arch = "arm"),
63167    stable(feature = "neon_intrinsics", since = "1.59.0")
63168)]
63169#[cfg_attr(
63170    target_arch = "arm",
63171    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63172)]
63173pub fn vsubhn_high_u16(a: uint8x8_t, b: uint16x8_t, c: uint16x8_t) -> uint8x16_t {
63174    let d: uint8x8_t = vsubhn_u16(b, c);
63175    unsafe { simd_shuffle!(a, d, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]) }
63176}
63177#[doc = "Subtract returning high narrow"]
63178#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubhn_high_u32)"]
63179#[inline]
63180#[target_feature(enable = "neon")]
63181#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63182#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubhn))]
63183#[cfg_attr(
63184    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63185    assert_instr(subhn2)
63186)]
63187#[cfg_attr(
63188    not(target_arch = "arm"),
63189    stable(feature = "neon_intrinsics", since = "1.59.0")
63190)]
63191#[cfg_attr(
63192    target_arch = "arm",
63193    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63194)]
63195pub fn vsubhn_high_u32(a: uint16x4_t, b: uint32x4_t, c: uint32x4_t) -> uint16x8_t {
63196    let d: uint16x4_t = vsubhn_u32(b, c);
63197    unsafe { simd_shuffle!(a, d, [0, 1, 2, 3, 4, 5, 6, 7]) }
63198}
63199#[doc = "Subtract returning high narrow"]
63200#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubhn_high_u64)"]
63201#[inline]
63202#[target_feature(enable = "neon")]
63203#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63204#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubhn))]
63205#[cfg_attr(
63206    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63207    assert_instr(subhn2)
63208)]
63209#[cfg_attr(
63210    not(target_arch = "arm"),
63211    stable(feature = "neon_intrinsics", since = "1.59.0")
63212)]
63213#[cfg_attr(
63214    target_arch = "arm",
63215    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63216)]
63217pub fn vsubhn_high_u64(a: uint32x2_t, b: uint64x2_t, c: uint64x2_t) -> uint32x4_t {
63218    let d: uint32x2_t = vsubhn_u64(b, c);
63219    unsafe { simd_shuffle!(a, d, [0, 1, 2, 3]) }
63220}
63221#[doc = "Subtract returning high narrow"]
63222#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubhn_s16)"]
63223#[inline]
63224#[target_feature(enable = "neon")]
63225#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63226#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubhn))]
63227#[cfg_attr(
63228    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63229    assert_instr(subhn)
63230)]
63231#[cfg_attr(
63232    not(target_arch = "arm"),
63233    stable(feature = "neon_intrinsics", since = "1.59.0")
63234)]
63235#[cfg_attr(
63236    target_arch = "arm",
63237    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63238)]
63239pub fn vsubhn_s16(a: int16x8_t, b: int16x8_t) -> int8x8_t {
63240    let c: i16x8 = i16x8::new(8, 8, 8, 8, 8, 8, 8, 8);
63241    unsafe { simd_cast(simd_shr(simd_sub(a, b), transmute(c))) }
63242}
63243#[doc = "Subtract returning high narrow"]
63244#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubhn_s32)"]
63245#[inline]
63246#[target_feature(enable = "neon")]
63247#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63248#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubhn))]
63249#[cfg_attr(
63250    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63251    assert_instr(subhn)
63252)]
63253#[cfg_attr(
63254    not(target_arch = "arm"),
63255    stable(feature = "neon_intrinsics", since = "1.59.0")
63256)]
63257#[cfg_attr(
63258    target_arch = "arm",
63259    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63260)]
63261pub fn vsubhn_s32(a: int32x4_t, b: int32x4_t) -> int16x4_t {
63262    let c: i32x4 = i32x4::new(16, 16, 16, 16);
63263    unsafe { simd_cast(simd_shr(simd_sub(a, b), transmute(c))) }
63264}
63265#[doc = "Subtract returning high narrow"]
63266#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubhn_s64)"]
63267#[inline]
63268#[target_feature(enable = "neon")]
63269#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63270#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubhn))]
63271#[cfg_attr(
63272    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63273    assert_instr(subhn)
63274)]
63275#[cfg_attr(
63276    not(target_arch = "arm"),
63277    stable(feature = "neon_intrinsics", since = "1.59.0")
63278)]
63279#[cfg_attr(
63280    target_arch = "arm",
63281    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63282)]
63283pub fn vsubhn_s64(a: int64x2_t, b: int64x2_t) -> int32x2_t {
63284    let c: i64x2 = i64x2::new(32, 32);
63285    unsafe { simd_cast(simd_shr(simd_sub(a, b), transmute(c))) }
63286}
63287#[doc = "Subtract returning high narrow"]
63288#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubhn_u16)"]
63289#[inline]
63290#[target_feature(enable = "neon")]
63291#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63292#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubhn))]
63293#[cfg_attr(
63294    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63295    assert_instr(subhn)
63296)]
63297#[cfg_attr(
63298    not(target_arch = "arm"),
63299    stable(feature = "neon_intrinsics", since = "1.59.0")
63300)]
63301#[cfg_attr(
63302    target_arch = "arm",
63303    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63304)]
63305pub fn vsubhn_u16(a: uint16x8_t, b: uint16x8_t) -> uint8x8_t {
63306    let c: u16x8 = u16x8::new(8, 8, 8, 8, 8, 8, 8, 8);
63307    unsafe { simd_cast(simd_shr(simd_sub(a, b), transmute(c))) }
63308}
63309#[doc = "Subtract returning high narrow"]
63310#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubhn_u32)"]
63311#[inline]
63312#[target_feature(enable = "neon")]
63313#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63314#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubhn))]
63315#[cfg_attr(
63316    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63317    assert_instr(subhn)
63318)]
63319#[cfg_attr(
63320    not(target_arch = "arm"),
63321    stable(feature = "neon_intrinsics", since = "1.59.0")
63322)]
63323#[cfg_attr(
63324    target_arch = "arm",
63325    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63326)]
63327pub fn vsubhn_u32(a: uint32x4_t, b: uint32x4_t) -> uint16x4_t {
63328    let c: u32x4 = u32x4::new(16, 16, 16, 16);
63329    unsafe { simd_cast(simd_shr(simd_sub(a, b), transmute(c))) }
63330}
63331#[doc = "Subtract returning high narrow"]
63332#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubhn_u64)"]
63333#[inline]
63334#[target_feature(enable = "neon")]
63335#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63336#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubhn))]
63337#[cfg_attr(
63338    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63339    assert_instr(subhn)
63340)]
63341#[cfg_attr(
63342    not(target_arch = "arm"),
63343    stable(feature = "neon_intrinsics", since = "1.59.0")
63344)]
63345#[cfg_attr(
63346    target_arch = "arm",
63347    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63348)]
63349pub fn vsubhn_u64(a: uint64x2_t, b: uint64x2_t) -> uint32x2_t {
63350    let c: u64x2 = u64x2::new(32, 32);
63351    unsafe { simd_cast(simd_shr(simd_sub(a, b), transmute(c))) }
63352}
63353#[doc = "Signed Subtract Long"]
63354#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubl_s8)"]
63355#[inline]
63356#[target_feature(enable = "neon")]
63357#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63358#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubl))]
63359#[cfg_attr(
63360    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63361    assert_instr(ssubl)
63362)]
63363#[cfg_attr(
63364    not(target_arch = "arm"),
63365    stable(feature = "neon_intrinsics", since = "1.59.0")
63366)]
63367#[cfg_attr(
63368    target_arch = "arm",
63369    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63370)]
63371pub fn vsubl_s8(a: int8x8_t, b: int8x8_t) -> int16x8_t {
63372    unsafe {
63373        let c: int16x8_t = simd_cast(a);
63374        let d: int16x8_t = simd_cast(b);
63375        simd_sub(c, d)
63376    }
63377}
63378#[doc = "Signed Subtract Long"]
63379#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubl_s16)"]
63380#[inline]
63381#[target_feature(enable = "neon")]
63382#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63383#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubl))]
63384#[cfg_attr(
63385    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63386    assert_instr(ssubl)
63387)]
63388#[cfg_attr(
63389    not(target_arch = "arm"),
63390    stable(feature = "neon_intrinsics", since = "1.59.0")
63391)]
63392#[cfg_attr(
63393    target_arch = "arm",
63394    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63395)]
63396pub fn vsubl_s16(a: int16x4_t, b: int16x4_t) -> int32x4_t {
63397    unsafe {
63398        let c: int32x4_t = simd_cast(a);
63399        let d: int32x4_t = simd_cast(b);
63400        simd_sub(c, d)
63401    }
63402}
63403#[doc = "Signed Subtract Long"]
63404#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubl_s32)"]
63405#[inline]
63406#[target_feature(enable = "neon")]
63407#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63408#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubl))]
63409#[cfg_attr(
63410    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63411    assert_instr(ssubl)
63412)]
63413#[cfg_attr(
63414    not(target_arch = "arm"),
63415    stable(feature = "neon_intrinsics", since = "1.59.0")
63416)]
63417#[cfg_attr(
63418    target_arch = "arm",
63419    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63420)]
63421pub fn vsubl_s32(a: int32x2_t, b: int32x2_t) -> int64x2_t {
63422    unsafe {
63423        let c: int64x2_t = simd_cast(a);
63424        let d: int64x2_t = simd_cast(b);
63425        simd_sub(c, d)
63426    }
63427}
63428#[doc = "Unsigned Subtract Long"]
63429#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubl_u8)"]
63430#[inline]
63431#[target_feature(enable = "neon")]
63432#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63433#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubl))]
63434#[cfg_attr(
63435    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63436    assert_instr(usubl)
63437)]
63438#[cfg_attr(
63439    not(target_arch = "arm"),
63440    stable(feature = "neon_intrinsics", since = "1.59.0")
63441)]
63442#[cfg_attr(
63443    target_arch = "arm",
63444    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63445)]
63446pub fn vsubl_u8(a: uint8x8_t, b: uint8x8_t) -> uint16x8_t {
63447    unsafe {
63448        let c: uint16x8_t = simd_cast(a);
63449        let d: uint16x8_t = simd_cast(b);
63450        simd_sub(c, d)
63451    }
63452}
63453#[doc = "Unsigned Subtract Long"]
63454#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubl_u16)"]
63455#[inline]
63456#[target_feature(enable = "neon")]
63457#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63458#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubl))]
63459#[cfg_attr(
63460    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63461    assert_instr(usubl)
63462)]
63463#[cfg_attr(
63464    not(target_arch = "arm"),
63465    stable(feature = "neon_intrinsics", since = "1.59.0")
63466)]
63467#[cfg_attr(
63468    target_arch = "arm",
63469    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63470)]
63471pub fn vsubl_u16(a: uint16x4_t, b: uint16x4_t) -> uint32x4_t {
63472    unsafe {
63473        let c: uint32x4_t = simd_cast(a);
63474        let d: uint32x4_t = simd_cast(b);
63475        simd_sub(c, d)
63476    }
63477}
63478#[doc = "Unsigned Subtract Long"]
63479#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubl_u32)"]
63480#[inline]
63481#[target_feature(enable = "neon")]
63482#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63483#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubl))]
63484#[cfg_attr(
63485    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63486    assert_instr(usubl)
63487)]
63488#[cfg_attr(
63489    not(target_arch = "arm"),
63490    stable(feature = "neon_intrinsics", since = "1.59.0")
63491)]
63492#[cfg_attr(
63493    target_arch = "arm",
63494    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63495)]
63496pub fn vsubl_u32(a: uint32x2_t, b: uint32x2_t) -> uint64x2_t {
63497    unsafe {
63498        let c: uint64x2_t = simd_cast(a);
63499        let d: uint64x2_t = simd_cast(b);
63500        simd_sub(c, d)
63501    }
63502}
63503#[doc = "Signed Subtract Wide"]
63504#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubw_s8)"]
63505#[inline]
63506#[target_feature(enable = "neon")]
63507#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63508#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubw))]
63509#[cfg_attr(
63510    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63511    assert_instr(ssubw)
63512)]
63513#[cfg_attr(
63514    not(target_arch = "arm"),
63515    stable(feature = "neon_intrinsics", since = "1.59.0")
63516)]
63517#[cfg_attr(
63518    target_arch = "arm",
63519    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63520)]
63521pub fn vsubw_s8(a: int16x8_t, b: int8x8_t) -> int16x8_t {
63522    unsafe { simd_sub(a, simd_cast(b)) }
63523}
63524#[doc = "Signed Subtract Wide"]
63525#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubw_s16)"]
63526#[inline]
63527#[target_feature(enable = "neon")]
63528#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63529#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubw))]
63530#[cfg_attr(
63531    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63532    assert_instr(ssubw)
63533)]
63534#[cfg_attr(
63535    not(target_arch = "arm"),
63536    stable(feature = "neon_intrinsics", since = "1.59.0")
63537)]
63538#[cfg_attr(
63539    target_arch = "arm",
63540    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63541)]
63542pub fn vsubw_s16(a: int32x4_t, b: int16x4_t) -> int32x4_t {
63543    unsafe { simd_sub(a, simd_cast(b)) }
63544}
63545#[doc = "Signed Subtract Wide"]
63546#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubw_s32)"]
63547#[inline]
63548#[target_feature(enable = "neon")]
63549#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63550#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubw))]
63551#[cfg_attr(
63552    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63553    assert_instr(ssubw)
63554)]
63555#[cfg_attr(
63556    not(target_arch = "arm"),
63557    stable(feature = "neon_intrinsics", since = "1.59.0")
63558)]
63559#[cfg_attr(
63560    target_arch = "arm",
63561    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63562)]
63563pub fn vsubw_s32(a: int64x2_t, b: int32x2_t) -> int64x2_t {
63564    unsafe { simd_sub(a, simd_cast(b)) }
63565}
63566#[doc = "Unsigned Subtract Wide"]
63567#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubw_u8)"]
63568#[inline]
63569#[target_feature(enable = "neon")]
63570#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63571#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubw))]
63572#[cfg_attr(
63573    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63574    assert_instr(usubw)
63575)]
63576#[cfg_attr(
63577    not(target_arch = "arm"),
63578    stable(feature = "neon_intrinsics", since = "1.59.0")
63579)]
63580#[cfg_attr(
63581    target_arch = "arm",
63582    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63583)]
63584pub fn vsubw_u8(a: uint16x8_t, b: uint8x8_t) -> uint16x8_t {
63585    unsafe { simd_sub(a, simd_cast(b)) }
63586}
63587#[doc = "Unsigned Subtract Wide"]
63588#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubw_u16)"]
63589#[inline]
63590#[target_feature(enable = "neon")]
63591#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63592#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubw))]
63593#[cfg_attr(
63594    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63595    assert_instr(usubw)
63596)]
63597#[cfg_attr(
63598    not(target_arch = "arm"),
63599    stable(feature = "neon_intrinsics", since = "1.59.0")
63600)]
63601#[cfg_attr(
63602    target_arch = "arm",
63603    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63604)]
63605pub fn vsubw_u16(a: uint32x4_t, b: uint16x4_t) -> uint32x4_t {
63606    unsafe { simd_sub(a, simd_cast(b)) }
63607}
63608#[doc = "Unsigned Subtract Wide"]
63609#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubw_u32)"]
63610#[inline]
63611#[target_feature(enable = "neon")]
63612#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63613#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubw))]
63614#[cfg_attr(
63615    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63616    assert_instr(usubw)
63617)]
63618#[cfg_attr(
63619    not(target_arch = "arm"),
63620    stable(feature = "neon_intrinsics", since = "1.59.0")
63621)]
63622#[cfg_attr(
63623    target_arch = "arm",
63624    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63625)]
63626pub fn vsubw_u32(a: uint64x2_t, b: uint32x2_t) -> uint64x2_t {
63627    unsafe { simd_sub(a, simd_cast(b)) }
63628}
63629#[doc = "Dot product index form with signed and unsigned integers"]
63630#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsudot_lane_s32)"]
63631#[inline]
63632#[target_feature(enable = "neon,i8mm")]
63633#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
63634#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsudot, LANE = 0))]
63635#[cfg_attr(
63636    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63637    assert_instr(sudot, LANE = 0)
63638)]
63639#[rustc_legacy_const_generics(3)]
63640#[cfg_attr(
63641    not(target_arch = "arm"),
63642    unstable(feature = "stdarch_neon_i8mm", issue = "117223")
63643)]
63644#[cfg_attr(
63645    target_arch = "arm",
63646    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63647)]
63648pub fn vsudot_lane_s32<const LANE: i32>(a: int32x2_t, b: int8x8_t, c: uint8x8_t) -> int32x2_t {
63649    static_assert_uimm_bits!(LANE, 1);
63650    unsafe {
63651        let c: uint32x2_t = transmute(c);
63652        let c: uint32x2_t = simd_shuffle!(c, c, [LANE as u32, LANE as u32]);
63653        vusdot_s32(a, transmute(c), b)
63654    }
63655}
63656#[doc = "Dot product index form with signed and unsigned integers"]
63657#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsudotq_lane_s32)"]
63658#[inline]
63659#[target_feature(enable = "neon,i8mm")]
63660#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
63661#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsudot, LANE = 0))]
63662#[cfg_attr(
63663    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63664    assert_instr(sudot, LANE = 0)
63665)]
63666#[rustc_legacy_const_generics(3)]
63667#[cfg_attr(
63668    not(target_arch = "arm"),
63669    unstable(feature = "stdarch_neon_i8mm", issue = "117223")
63670)]
63671#[cfg_attr(
63672    target_arch = "arm",
63673    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63674)]
63675pub fn vsudotq_lane_s32<const LANE: i32>(a: int32x4_t, b: int8x16_t, c: uint8x8_t) -> int32x4_t {
63676    static_assert_uimm_bits!(LANE, 1);
63677    unsafe {
63678        let c: uint32x2_t = transmute(c);
63679        let c: uint32x4_t =
63680            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]);
63681        vusdotq_s32(a, transmute(c), b)
63682    }
63683}
63684#[doc = "Table look-up"]
63685#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl1)"]
63686#[inline]
63687#[target_feature(enable = "neon")]
63688#[cfg(target_arch = "arm")]
63689#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63690#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
63691#[cfg_attr(test, assert_instr(vtbl))]
63692fn vtbl1(a: int8x8_t, b: int8x8_t) -> int8x8_t {
63693    unsafe extern "unadjusted" {
63694        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vtbl1")]
63695        fn _vtbl1(a: int8x8_t, b: int8x8_t) -> int8x8_t;
63696    }
63697    unsafe { _vtbl1(a, b) }
63698}
63699#[doc = "Table look-up"]
63700#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl1_s8)"]
63701#[inline]
63702#[target_feature(enable = "neon")]
63703#[cfg(target_arch = "arm")]
63704#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63705#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
63706#[cfg_attr(test, assert_instr(vtbl))]
63707pub fn vtbl1_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
63708    vtbl1(a, b)
63709}
63710#[doc = "Table look-up"]
63711#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl1_u8)"]
63712#[inline]
63713#[cfg(target_endian = "little")]
63714#[target_feature(enable = "neon")]
63715#[cfg(target_arch = "arm")]
63716#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63717#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
63718#[cfg_attr(test, assert_instr(vtbl))]
63719pub fn vtbl1_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
63720    unsafe { transmute(vtbl1(transmute(a), transmute(b))) }
63721}
63722#[doc = "Table look-up"]
63723#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl1_u8)"]
63724#[inline]
63725#[cfg(target_endian = "big")]
63726#[target_feature(enable = "neon")]
63727#[cfg(target_arch = "arm")]
63728#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63729#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
63730#[cfg_attr(test, assert_instr(vtbl))]
63731pub fn vtbl1_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
63732    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
63733    let b: uint8x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
63734    unsafe {
63735        let ret_val: uint8x8_t = transmute(vtbl1(transmute(a), transmute(b)));
63736        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
63737    }
63738}
63739#[doc = "Table look-up"]
63740#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl1_p8)"]
63741#[inline]
63742#[cfg(target_endian = "little")]
63743#[target_feature(enable = "neon")]
63744#[cfg(target_arch = "arm")]
63745#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63746#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
63747#[cfg_attr(test, assert_instr(vtbl))]
63748pub fn vtbl1_p8(a: poly8x8_t, b: uint8x8_t) -> poly8x8_t {
63749    unsafe { transmute(vtbl1(transmute(a), transmute(b))) }
63750}
63751#[doc = "Table look-up"]
63752#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl1_p8)"]
63753#[inline]
63754#[cfg(target_endian = "big")]
63755#[target_feature(enable = "neon")]
63756#[cfg(target_arch = "arm")]
63757#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63758#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
63759#[cfg_attr(test, assert_instr(vtbl))]
63760pub fn vtbl1_p8(a: poly8x8_t, b: uint8x8_t) -> poly8x8_t {
63761    let a: poly8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
63762    let b: uint8x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
63763    unsafe {
63764        let ret_val: poly8x8_t = transmute(vtbl1(transmute(a), transmute(b)));
63765        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
63766    }
63767}
63768#[doc = "Table look-up"]
63769#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl2)"]
63770#[inline]
63771#[target_feature(enable = "neon")]
63772#[cfg(target_arch = "arm")]
63773#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63774#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
63775#[cfg_attr(test, assert_instr(vtbl))]
63776fn vtbl2(a: int8x8_t, b: int8x8_t, c: int8x8_t) -> int8x8_t {
63777    unsafe extern "unadjusted" {
63778        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vtbl2")]
63779        fn _vtbl2(a: int8x8_t, b: int8x8_t, c: int8x8_t) -> int8x8_t;
63780    }
63781    unsafe { _vtbl2(a, b, c) }
63782}
63783#[doc = "Table look-up"]
63784#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl2_s8)"]
63785#[inline]
63786#[target_feature(enable = "neon")]
63787#[cfg(target_arch = "arm")]
63788#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63789#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
63790#[cfg_attr(test, assert_instr(vtbl))]
63791pub fn vtbl2_s8(a: int8x8x2_t, b: int8x8_t) -> int8x8_t {
63792    vtbl2(a.0, a.1, b)
63793}
63794#[doc = "Table look-up"]
63795#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl2_u8)"]
63796#[inline]
63797#[cfg(target_endian = "little")]
63798#[target_feature(enable = "neon")]
63799#[cfg(target_arch = "arm")]
63800#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63801#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
63802#[cfg_attr(test, assert_instr(vtbl))]
63803pub fn vtbl2_u8(a: uint8x8x2_t, b: uint8x8_t) -> uint8x8_t {
63804    unsafe { transmute(vtbl2(transmute(a.0), transmute(a.1), transmute(b))) }
63805}
63806#[doc = "Table look-up"]
63807#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl2_u8)"]
63808#[inline]
63809#[cfg(target_endian = "big")]
63810#[target_feature(enable = "neon")]
63811#[cfg(target_arch = "arm")]
63812#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63813#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
63814#[cfg_attr(test, assert_instr(vtbl))]
63815pub fn vtbl2_u8(a: uint8x8x2_t, b: uint8x8_t) -> uint8x8_t {
63816    let mut a: uint8x8x2_t = a;
63817    a.0 = unsafe { simd_shuffle!(a.0, a.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
63818    a.1 = unsafe { simd_shuffle!(a.1, a.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
63819    let b: uint8x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
63820    unsafe {
63821        let ret_val: uint8x8_t = transmute(vtbl2(transmute(a.0), transmute(a.1), transmute(b)));
63822        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
63823    }
63824}
63825#[doc = "Table look-up"]
63826#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl2_p8)"]
63827#[inline]
63828#[cfg(target_endian = "little")]
63829#[target_feature(enable = "neon")]
63830#[cfg(target_arch = "arm")]
63831#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63832#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
63833#[cfg_attr(test, assert_instr(vtbl))]
63834pub fn vtbl2_p8(a: poly8x8x2_t, b: uint8x8_t) -> poly8x8_t {
63835    unsafe { transmute(vtbl2(transmute(a.0), transmute(a.1), transmute(b))) }
63836}
63837#[doc = "Table look-up"]
63838#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl2_p8)"]
63839#[inline]
63840#[cfg(target_endian = "big")]
63841#[target_feature(enable = "neon")]
63842#[cfg(target_arch = "arm")]
63843#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63844#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
63845#[cfg_attr(test, assert_instr(vtbl))]
63846pub fn vtbl2_p8(a: poly8x8x2_t, b: uint8x8_t) -> poly8x8_t {
63847    let mut a: poly8x8x2_t = a;
63848    a.0 = unsafe { simd_shuffle!(a.0, a.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
63849    a.1 = unsafe { simd_shuffle!(a.1, a.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
63850    let b: uint8x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
63851    unsafe {
63852        let ret_val: poly8x8_t = transmute(vtbl2(transmute(a.0), transmute(a.1), transmute(b)));
63853        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
63854    }
63855}
63856#[doc = "Table look-up"]
63857#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl3)"]
63858#[inline]
63859#[target_feature(enable = "neon")]
63860#[cfg(target_arch = "arm")]
63861#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63862#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
63863#[cfg_attr(test, assert_instr(vtbl))]
63864fn vtbl3(a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t) -> int8x8_t {
63865    unsafe extern "unadjusted" {
63866        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vtbl3")]
63867        fn _vtbl3(a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t) -> int8x8_t;
63868    }
63869    unsafe { _vtbl3(a, b, c, d) }
63870}
63871#[doc = "Table look-up"]
63872#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl3_s8)"]
63873#[inline]
63874#[target_feature(enable = "neon")]
63875#[cfg(target_arch = "arm")]
63876#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63877#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
63878#[cfg_attr(test, assert_instr(vtbl))]
63879pub fn vtbl3_s8(a: int8x8x3_t, b: int8x8_t) -> int8x8_t {
63880    vtbl3(a.0, a.1, a.2, b)
63881}
63882#[doc = "Table look-up"]
63883#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl3_u8)"]
63884#[inline]
63885#[cfg(target_endian = "little")]
63886#[target_feature(enable = "neon")]
63887#[cfg(target_arch = "arm")]
63888#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63889#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
63890#[cfg_attr(test, assert_instr(vtbl))]
63891pub fn vtbl3_u8(a: uint8x8x3_t, b: uint8x8_t) -> uint8x8_t {
63892    unsafe {
63893        transmute(vtbl3(
63894            transmute(a.0),
63895            transmute(a.1),
63896            transmute(a.2),
63897            transmute(b),
63898        ))
63899    }
63900}
63901#[doc = "Table look-up"]
63902#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl3_u8)"]
63903#[inline]
63904#[cfg(target_endian = "big")]
63905#[target_feature(enable = "neon")]
63906#[cfg(target_arch = "arm")]
63907#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63908#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
63909#[cfg_attr(test, assert_instr(vtbl))]
63910pub fn vtbl3_u8(a: uint8x8x3_t, b: uint8x8_t) -> uint8x8_t {
63911    let mut a: uint8x8x3_t = a;
63912    a.0 = unsafe { simd_shuffle!(a.0, a.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
63913    a.1 = unsafe { simd_shuffle!(a.1, a.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
63914    a.2 = unsafe { simd_shuffle!(a.2, a.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
63915    let b: uint8x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
63916    unsafe {
63917        let ret_val: uint8x8_t = transmute(vtbl3(
63918            transmute(a.0),
63919            transmute(a.1),
63920            transmute(a.2),
63921            transmute(b),
63922        ));
63923        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
63924    }
63925}
63926#[doc = "Table look-up"]
63927#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl3_p8)"]
63928#[inline]
63929#[cfg(target_endian = "little")]
63930#[target_feature(enable = "neon")]
63931#[cfg(target_arch = "arm")]
63932#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63933#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
63934#[cfg_attr(test, assert_instr(vtbl))]
63935pub fn vtbl3_p8(a: poly8x8x3_t, b: uint8x8_t) -> poly8x8_t {
63936    unsafe {
63937        transmute(vtbl3(
63938            transmute(a.0),
63939            transmute(a.1),
63940            transmute(a.2),
63941            transmute(b),
63942        ))
63943    }
63944}
63945#[doc = "Table look-up"]
63946#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl3_p8)"]
63947#[inline]
63948#[cfg(target_endian = "big")]
63949#[target_feature(enable = "neon")]
63950#[cfg(target_arch = "arm")]
63951#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63952#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
63953#[cfg_attr(test, assert_instr(vtbl))]
63954pub fn vtbl3_p8(a: poly8x8x3_t, b: uint8x8_t) -> poly8x8_t {
63955    let mut a: poly8x8x3_t = a;
63956    a.0 = unsafe { simd_shuffle!(a.0, a.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
63957    a.1 = unsafe { simd_shuffle!(a.1, a.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
63958    a.2 = unsafe { simd_shuffle!(a.2, a.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
63959    let b: uint8x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
63960    unsafe {
63961        let ret_val: poly8x8_t = transmute(vtbl3(
63962            transmute(a.0),
63963            transmute(a.1),
63964            transmute(a.2),
63965            transmute(b),
63966        ));
63967        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
63968    }
63969}
63970#[doc = "Table look-up"]
63971#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl4)"]
63972#[inline]
63973#[target_feature(enable = "neon")]
63974#[cfg(target_arch = "arm")]
63975#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63976#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
63977#[cfg_attr(test, assert_instr(vtbl))]
63978fn vtbl4(a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t, e: int8x8_t) -> int8x8_t {
63979    unsafe extern "unadjusted" {
63980        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vtbl4")]
63981        fn _vtbl4(a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t, e: int8x8_t) -> int8x8_t;
63982    }
63983    unsafe { _vtbl4(a, b, c, d, e) }
63984}
63985#[doc = "Table look-up"]
63986#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl4_s8)"]
63987#[inline]
63988#[target_feature(enable = "neon")]
63989#[cfg(target_arch = "arm")]
63990#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63991#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
63992#[cfg_attr(test, assert_instr(vtbl))]
63993pub fn vtbl4_s8(a: int8x8x4_t, b: int8x8_t) -> int8x8_t {
63994    vtbl4(a.0, a.1, a.2, a.3, b)
63995}
63996#[doc = "Table look-up"]
63997#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl4_u8)"]
63998#[inline]
63999#[cfg(target_endian = "little")]
64000#[target_feature(enable = "neon")]
64001#[cfg(target_arch = "arm")]
64002#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
64003#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64004#[cfg_attr(test, assert_instr(vtbl))]
64005pub fn vtbl4_u8(a: uint8x8x4_t, b: uint8x8_t) -> uint8x8_t {
64006    unsafe {
64007        transmute(vtbl4(
64008            transmute(a.0),
64009            transmute(a.1),
64010            transmute(a.2),
64011            transmute(a.3),
64012            transmute(b),
64013        ))
64014    }
64015}
64016#[doc = "Table look-up"]
64017#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl4_u8)"]
64018#[inline]
64019#[cfg(target_endian = "big")]
64020#[target_feature(enable = "neon")]
64021#[cfg(target_arch = "arm")]
64022#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
64023#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64024#[cfg_attr(test, assert_instr(vtbl))]
64025pub fn vtbl4_u8(a: uint8x8x4_t, b: uint8x8_t) -> uint8x8_t {
64026    let mut a: uint8x8x4_t = a;
64027    a.0 = unsafe { simd_shuffle!(a.0, a.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
64028    a.1 = unsafe { simd_shuffle!(a.1, a.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
64029    a.2 = unsafe { simd_shuffle!(a.2, a.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
64030    a.3 = unsafe { simd_shuffle!(a.3, a.3, [7, 6, 5, 4, 3, 2, 1, 0]) };
64031    let b: uint8x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
64032    unsafe {
64033        let ret_val: uint8x8_t = transmute(vtbl4(
64034            transmute(a.0),
64035            transmute(a.1),
64036            transmute(a.2),
64037            transmute(a.3),
64038            transmute(b),
64039        ));
64040        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
64041    }
64042}
64043#[doc = "Table look-up"]
64044#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl4_p8)"]
64045#[inline]
64046#[cfg(target_endian = "little")]
64047#[target_feature(enable = "neon")]
64048#[cfg(target_arch = "arm")]
64049#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
64050#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64051#[cfg_attr(test, assert_instr(vtbl))]
64052pub fn vtbl4_p8(a: poly8x8x4_t, b: uint8x8_t) -> poly8x8_t {
64053    unsafe {
64054        transmute(vtbl4(
64055            transmute(a.0),
64056            transmute(a.1),
64057            transmute(a.2),
64058            transmute(a.3),
64059            transmute(b),
64060        ))
64061    }
64062}
64063#[doc = "Table look-up"]
64064#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl4_p8)"]
64065#[inline]
64066#[cfg(target_endian = "big")]
64067#[target_feature(enable = "neon")]
64068#[cfg(target_arch = "arm")]
64069#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
64070#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64071#[cfg_attr(test, assert_instr(vtbl))]
64072pub fn vtbl4_p8(a: poly8x8x4_t, b: uint8x8_t) -> poly8x8_t {
64073    let mut a: poly8x8x4_t = a;
64074    a.0 = unsafe { simd_shuffle!(a.0, a.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
64075    a.1 = unsafe { simd_shuffle!(a.1, a.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
64076    a.2 = unsafe { simd_shuffle!(a.2, a.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
64077    a.3 = unsafe { simd_shuffle!(a.3, a.3, [7, 6, 5, 4, 3, 2, 1, 0]) };
64078    let b: uint8x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
64079    unsafe {
64080        let ret_val: poly8x8_t = transmute(vtbl4(
64081            transmute(a.0),
64082            transmute(a.1),
64083            transmute(a.2),
64084            transmute(a.3),
64085            transmute(b),
64086        ));
64087        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
64088    }
64089}
64090#[doc = "Extended table look-up"]
64091#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx1)"]
64092#[inline]
64093#[target_feature(enable = "neon,v7")]
64094#[cfg(target_arch = "arm")]
64095#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64096#[cfg_attr(test, assert_instr(vtbx))]
64097fn vtbx1(a: int8x8_t, b: int8x8_t, c: int8x8_t) -> int8x8_t {
64098    unsafe extern "unadjusted" {
64099        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vtbx1")]
64100        fn _vtbx1(a: int8x8_t, b: int8x8_t, c: int8x8_t) -> int8x8_t;
64101    }
64102    unsafe { _vtbx1(a, b, c) }
64103}
64104#[doc = "Extended table look-up"]
64105#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx1_s8)"]
64106#[inline]
64107#[target_feature(enable = "neon,v7")]
64108#[cfg(target_arch = "arm")]
64109#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64110#[cfg_attr(test, assert_instr(vtbx))]
64111pub fn vtbx1_s8(a: int8x8_t, b: int8x8_t, c: int8x8_t) -> int8x8_t {
64112    vtbx1(a, b, c)
64113}
64114#[doc = "Extended table look-up"]
64115#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx1_u8)"]
64116#[inline]
64117#[cfg(target_endian = "little")]
64118#[target_feature(enable = "neon,v7")]
64119#[cfg(target_arch = "arm")]
64120#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64121#[cfg_attr(test, assert_instr(vtbx))]
64122pub fn vtbx1_u8(a: uint8x8_t, b: uint8x8_t, c: uint8x8_t) -> uint8x8_t {
64123    unsafe { transmute(vtbx1(transmute(a), transmute(b), transmute(c))) }
64124}
64125#[doc = "Extended table look-up"]
64126#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx1_u8)"]
64127#[inline]
64128#[cfg(target_endian = "big")]
64129#[target_feature(enable = "neon,v7")]
64130#[cfg(target_arch = "arm")]
64131#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64132#[cfg_attr(test, assert_instr(vtbx))]
64133pub fn vtbx1_u8(a: uint8x8_t, b: uint8x8_t, c: uint8x8_t) -> uint8x8_t {
64134    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
64135    let b: uint8x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
64136    let c: uint8x8_t = unsafe { simd_shuffle!(c, c, [7, 6, 5, 4, 3, 2, 1, 0]) };
64137    unsafe {
64138        let ret_val: uint8x8_t = transmute(vtbx1(transmute(a), transmute(b), transmute(c)));
64139        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
64140    }
64141}
64142#[doc = "Extended table look-up"]
64143#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx1_p8)"]
64144#[inline]
64145#[cfg(target_endian = "little")]
64146#[target_feature(enable = "neon,v7")]
64147#[cfg(target_arch = "arm")]
64148#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64149#[cfg_attr(test, assert_instr(vtbx))]
64150pub fn vtbx1_p8(a: poly8x8_t, b: poly8x8_t, c: uint8x8_t) -> poly8x8_t {
64151    unsafe { transmute(vtbx1(transmute(a), transmute(b), transmute(c))) }
64152}
64153#[doc = "Extended table look-up"]
64154#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx1_p8)"]
64155#[inline]
64156#[cfg(target_endian = "big")]
64157#[target_feature(enable = "neon,v7")]
64158#[cfg(target_arch = "arm")]
64159#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64160#[cfg_attr(test, assert_instr(vtbx))]
64161pub fn vtbx1_p8(a: poly8x8_t, b: poly8x8_t, c: uint8x8_t) -> poly8x8_t {
64162    let a: poly8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
64163    let b: poly8x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
64164    let c: uint8x8_t = unsafe { simd_shuffle!(c, c, [7, 6, 5, 4, 3, 2, 1, 0]) };
64165    unsafe {
64166        let ret_val: poly8x8_t = transmute(vtbx1(transmute(a), transmute(b), transmute(c)));
64167        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
64168    }
64169}
64170#[doc = "Extended table look-up"]
64171#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx2)"]
64172#[inline]
64173#[target_feature(enable = "neon,v7")]
64174#[cfg(target_arch = "arm")]
64175#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64176#[cfg_attr(test, assert_instr(vtbx))]
64177fn vtbx2(a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t) -> int8x8_t {
64178    unsafe extern "unadjusted" {
64179        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vtbx2")]
64180        fn _vtbx2(a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t) -> int8x8_t;
64181    }
64182    unsafe { _vtbx2(a, b, c, d) }
64183}
64184#[doc = "Extended table look-up"]
64185#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx2_s8)"]
64186#[inline]
64187#[target_feature(enable = "neon,v7")]
64188#[cfg(target_arch = "arm")]
64189#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64190#[cfg_attr(test, assert_instr(vtbx))]
64191pub fn vtbx2_s8(a: int8x8_t, b: int8x8x2_t, c: int8x8_t) -> int8x8_t {
64192    vtbx2(a, b.0, b.1, c)
64193}
64194#[doc = "Extended table look-up"]
64195#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx2_u8)"]
64196#[inline]
64197#[cfg(target_endian = "little")]
64198#[target_feature(enable = "neon,v7")]
64199#[cfg(target_arch = "arm")]
64200#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64201#[cfg_attr(test, assert_instr(vtbx))]
64202pub fn vtbx2_u8(a: uint8x8_t, b: uint8x8x2_t, c: uint8x8_t) -> uint8x8_t {
64203    unsafe {
64204        transmute(vtbx2(
64205            transmute(a),
64206            transmute(b.0),
64207            transmute(b.1),
64208            transmute(c),
64209        ))
64210    }
64211}
64212#[doc = "Extended table look-up"]
64213#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx2_u8)"]
64214#[inline]
64215#[cfg(target_endian = "big")]
64216#[target_feature(enable = "neon,v7")]
64217#[cfg(target_arch = "arm")]
64218#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64219#[cfg_attr(test, assert_instr(vtbx))]
64220pub fn vtbx2_u8(a: uint8x8_t, b: uint8x8x2_t, c: uint8x8_t) -> uint8x8_t {
64221    let mut b: uint8x8x2_t = b;
64222    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
64223    b.0 = unsafe { simd_shuffle!(b.0, b.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
64224    b.1 = unsafe { simd_shuffle!(b.1, b.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
64225    let c: uint8x8_t = unsafe { simd_shuffle!(c, c, [7, 6, 5, 4, 3, 2, 1, 0]) };
64226    unsafe {
64227        let ret_val: uint8x8_t = transmute(vtbx2(
64228            transmute(a),
64229            transmute(b.0),
64230            transmute(b.1),
64231            transmute(c),
64232        ));
64233        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
64234    }
64235}
64236#[doc = "Extended table look-up"]
64237#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx2_p8)"]
64238#[inline]
64239#[cfg(target_endian = "little")]
64240#[target_feature(enable = "neon,v7")]
64241#[cfg(target_arch = "arm")]
64242#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64243#[cfg_attr(test, assert_instr(vtbx))]
64244pub fn vtbx2_p8(a: poly8x8_t, b: poly8x8x2_t, c: uint8x8_t) -> poly8x8_t {
64245    unsafe {
64246        transmute(vtbx2(
64247            transmute(a),
64248            transmute(b.0),
64249            transmute(b.1),
64250            transmute(c),
64251        ))
64252    }
64253}
64254#[doc = "Extended table look-up"]
64255#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx2_p8)"]
64256#[inline]
64257#[cfg(target_endian = "big")]
64258#[target_feature(enable = "neon,v7")]
64259#[cfg(target_arch = "arm")]
64260#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64261#[cfg_attr(test, assert_instr(vtbx))]
64262pub fn vtbx2_p8(a: poly8x8_t, b: poly8x8x2_t, c: uint8x8_t) -> poly8x8_t {
64263    let mut b: poly8x8x2_t = b;
64264    let a: poly8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
64265    b.0 = unsafe { simd_shuffle!(b.0, b.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
64266    b.1 = unsafe { simd_shuffle!(b.1, b.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
64267    let c: uint8x8_t = unsafe { simd_shuffle!(c, c, [7, 6, 5, 4, 3, 2, 1, 0]) };
64268    unsafe {
64269        let ret_val: poly8x8_t = transmute(vtbx2(
64270            transmute(a),
64271            transmute(b.0),
64272            transmute(b.1),
64273            transmute(c),
64274        ));
64275        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
64276    }
64277}
64278#[doc = "Extended table look-up"]
64279#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx3)"]
64280#[inline]
64281#[target_feature(enable = "neon,v7")]
64282#[cfg(target_arch = "arm")]
64283#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64284#[cfg_attr(test, assert_instr(vtbx))]
64285fn vtbx3(a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t, e: int8x8_t) -> int8x8_t {
64286    unsafe extern "unadjusted" {
64287        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vtbx3")]
64288        fn _vtbx3(a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t, e: int8x8_t) -> int8x8_t;
64289    }
64290    unsafe { _vtbx3(a, b, c, d, e) }
64291}
64292#[doc = "Extended table look-up"]
64293#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx3_s8)"]
64294#[inline]
64295#[target_feature(enable = "neon,v7")]
64296#[cfg(target_arch = "arm")]
64297#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64298#[cfg_attr(test, assert_instr(vtbx))]
64299pub fn vtbx3_s8(a: int8x8_t, b: int8x8x3_t, c: int8x8_t) -> int8x8_t {
64300    vtbx3(a, b.0, b.1, b.2, c)
64301}
64302#[doc = "Extended table look-up"]
64303#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx3_u8)"]
64304#[inline]
64305#[cfg(target_endian = "little")]
64306#[target_feature(enable = "neon,v7")]
64307#[cfg(target_arch = "arm")]
64308#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64309#[cfg_attr(test, assert_instr(vtbx))]
64310pub fn vtbx3_u8(a: uint8x8_t, b: uint8x8x3_t, c: uint8x8_t) -> uint8x8_t {
64311    unsafe {
64312        transmute(vtbx3(
64313            transmute(a),
64314            transmute(b.0),
64315            transmute(b.1),
64316            transmute(b.2),
64317            transmute(c),
64318        ))
64319    }
64320}
64321#[doc = "Extended table look-up"]
64322#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx3_u8)"]
64323#[inline]
64324#[cfg(target_endian = "big")]
64325#[target_feature(enable = "neon,v7")]
64326#[cfg(target_arch = "arm")]
64327#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64328#[cfg_attr(test, assert_instr(vtbx))]
64329pub fn vtbx3_u8(a: uint8x8_t, b: uint8x8x3_t, c: uint8x8_t) -> uint8x8_t {
64330    let mut b: uint8x8x3_t = b;
64331    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
64332    b.0 = unsafe { simd_shuffle!(b.0, b.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
64333    b.1 = unsafe { simd_shuffle!(b.1, b.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
64334    b.2 = unsafe { simd_shuffle!(b.2, b.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
64335    let c: uint8x8_t = unsafe { simd_shuffle!(c, c, [7, 6, 5, 4, 3, 2, 1, 0]) };
64336    unsafe {
64337        let ret_val: uint8x8_t = transmute(vtbx3(
64338            transmute(a),
64339            transmute(b.0),
64340            transmute(b.1),
64341            transmute(b.2),
64342            transmute(c),
64343        ));
64344        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
64345    }
64346}
64347#[doc = "Extended table look-up"]
64348#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx3_p8)"]
64349#[inline]
64350#[cfg(target_endian = "little")]
64351#[target_feature(enable = "neon,v7")]
64352#[cfg(target_arch = "arm")]
64353#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64354#[cfg_attr(test, assert_instr(vtbx))]
64355pub fn vtbx3_p8(a: poly8x8_t, b: poly8x8x3_t, c: uint8x8_t) -> poly8x8_t {
64356    unsafe {
64357        transmute(vtbx3(
64358            transmute(a),
64359            transmute(b.0),
64360            transmute(b.1),
64361            transmute(b.2),
64362            transmute(c),
64363        ))
64364    }
64365}
64366#[doc = "Extended table look-up"]
64367#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx3_p8)"]
64368#[inline]
64369#[cfg(target_endian = "big")]
64370#[target_feature(enable = "neon,v7")]
64371#[cfg(target_arch = "arm")]
64372#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64373#[cfg_attr(test, assert_instr(vtbx))]
64374pub fn vtbx3_p8(a: poly8x8_t, b: poly8x8x3_t, c: uint8x8_t) -> poly8x8_t {
64375    let mut b: poly8x8x3_t = b;
64376    let a: poly8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
64377    b.0 = unsafe { simd_shuffle!(b.0, b.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
64378    b.1 = unsafe { simd_shuffle!(b.1, b.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
64379    b.2 = unsafe { simd_shuffle!(b.2, b.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
64380    let c: uint8x8_t = unsafe { simd_shuffle!(c, c, [7, 6, 5, 4, 3, 2, 1, 0]) };
64381    unsafe {
64382        let ret_val: poly8x8_t = transmute(vtbx3(
64383            transmute(a),
64384            transmute(b.0),
64385            transmute(b.1),
64386            transmute(b.2),
64387            transmute(c),
64388        ));
64389        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
64390    }
64391}
64392#[doc = "Extended table look-up"]
64393#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx4)"]
64394#[inline]
64395#[target_feature(enable = "neon,v7")]
64396#[cfg(target_arch = "arm")]
64397#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64398#[cfg_attr(test, assert_instr(vtbx))]
64399fn vtbx4(a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t, e: int8x8_t, f: int8x8_t) -> int8x8_t {
64400    unsafe extern "unadjusted" {
64401        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vtbx4")]
64402        fn _vtbx4(
64403            a: int8x8_t,
64404            b: int8x8_t,
64405            c: int8x8_t,
64406            d: int8x8_t,
64407            e: int8x8_t,
64408            f: int8x8_t,
64409        ) -> int8x8_t;
64410    }
64411    unsafe { _vtbx4(a, b, c, d, e, f) }
64412}
64413#[doc = "Extended table look-up"]
64414#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx4_s8)"]
64415#[inline]
64416#[cfg(target_endian = "little")]
64417#[target_feature(enable = "neon,v7")]
64418#[cfg(target_arch = "arm")]
64419#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64420#[cfg_attr(test, assert_instr(vtbx))]
64421pub fn vtbx4_s8(a: int8x8_t, b: int8x8x4_t, c: int8x8_t) -> int8x8_t {
64422    unsafe {
64423        vtbx4(
64424            a,
64425            transmute(b.0),
64426            transmute(b.1),
64427            transmute(b.2),
64428            transmute(b.3),
64429            c,
64430        )
64431    }
64432}
64433#[doc = "Extended table look-up"]
64434#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx4_s8)"]
64435#[inline]
64436#[cfg(target_endian = "big")]
64437#[target_feature(enable = "neon,v7")]
64438#[cfg(target_arch = "arm")]
64439#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64440#[cfg_attr(test, assert_instr(vtbx))]
64441pub fn vtbx4_s8(a: int8x8_t, b: int8x8x4_t, c: int8x8_t) -> int8x8_t {
64442    let mut b: int8x8x4_t = b;
64443    let a: int8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
64444    b.0 = unsafe { simd_shuffle!(b.0, b.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
64445    b.1 = unsafe { simd_shuffle!(b.1, b.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
64446    b.2 = unsafe { simd_shuffle!(b.2, b.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
64447    b.3 = unsafe { simd_shuffle!(b.3, b.3, [7, 6, 5, 4, 3, 2, 1, 0]) };
64448    let c: int8x8_t = unsafe { simd_shuffle!(c, c, [7, 6, 5, 4, 3, 2, 1, 0]) };
64449    unsafe {
64450        let ret_val: int8x8_t = vtbx4(
64451            a,
64452            transmute(b.0),
64453            transmute(b.1),
64454            transmute(b.2),
64455            transmute(b.3),
64456            c,
64457        );
64458        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
64459    }
64460}
64461#[doc = "Extended table look-up"]
64462#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx4_u8)"]
64463#[inline]
64464#[cfg(target_endian = "little")]
64465#[target_feature(enable = "neon,v7")]
64466#[cfg(target_arch = "arm")]
64467#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64468#[cfg_attr(test, assert_instr(vtbx))]
64469pub fn vtbx4_u8(a: uint8x8_t, b: uint8x8x4_t, c: uint8x8_t) -> uint8x8_t {
64470    unsafe {
64471        transmute(vtbx4(
64472            transmute(a),
64473            transmute(b.0),
64474            transmute(b.1),
64475            transmute(b.2),
64476            transmute(b.3),
64477            transmute(c),
64478        ))
64479    }
64480}
64481#[doc = "Extended table look-up"]
64482#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx4_u8)"]
64483#[inline]
64484#[cfg(target_endian = "big")]
64485#[target_feature(enable = "neon,v7")]
64486#[cfg(target_arch = "arm")]
64487#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64488#[cfg_attr(test, assert_instr(vtbx))]
64489pub fn vtbx4_u8(a: uint8x8_t, b: uint8x8x4_t, c: uint8x8_t) -> uint8x8_t {
64490    let mut b: uint8x8x4_t = b;
64491    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
64492    b.0 = unsafe { simd_shuffle!(b.0, b.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
64493    b.1 = unsafe { simd_shuffle!(b.1, b.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
64494    b.2 = unsafe { simd_shuffle!(b.2, b.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
64495    b.3 = unsafe { simd_shuffle!(b.3, b.3, [7, 6, 5, 4, 3, 2, 1, 0]) };
64496    let c: uint8x8_t = unsafe { simd_shuffle!(c, c, [7, 6, 5, 4, 3, 2, 1, 0]) };
64497    unsafe {
64498        let ret_val: uint8x8_t = transmute(vtbx4(
64499            transmute(a),
64500            transmute(b.0),
64501            transmute(b.1),
64502            transmute(b.2),
64503            transmute(b.3),
64504            transmute(c),
64505        ));
64506        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
64507    }
64508}
64509#[doc = "Extended table look-up"]
64510#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx4_p8)"]
64511#[inline]
64512#[cfg(target_endian = "little")]
64513#[target_feature(enable = "neon,v7")]
64514#[cfg(target_arch = "arm")]
64515#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64516#[cfg_attr(test, assert_instr(vtbx))]
64517pub fn vtbx4_p8(a: poly8x8_t, b: poly8x8x4_t, c: uint8x8_t) -> poly8x8_t {
64518    unsafe {
64519        transmute(vtbx4(
64520            transmute(a),
64521            transmute(b.0),
64522            transmute(b.1),
64523            transmute(b.2),
64524            transmute(b.3),
64525            transmute(c),
64526        ))
64527    }
64528}
64529#[doc = "Extended table look-up"]
64530#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx4_p8)"]
64531#[inline]
64532#[cfg(target_endian = "big")]
64533#[target_feature(enable = "neon,v7")]
64534#[cfg(target_arch = "arm")]
64535#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64536#[cfg_attr(test, assert_instr(vtbx))]
64537pub fn vtbx4_p8(a: poly8x8_t, b: poly8x8x4_t, c: uint8x8_t) -> poly8x8_t {
64538    let mut b: poly8x8x4_t = b;
64539    let a: poly8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
64540    b.0 = unsafe { simd_shuffle!(b.0, b.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
64541    b.1 = unsafe { simd_shuffle!(b.1, b.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
64542    b.2 = unsafe { simd_shuffle!(b.2, b.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
64543    b.3 = unsafe { simd_shuffle!(b.3, b.3, [7, 6, 5, 4, 3, 2, 1, 0]) };
64544    let c: uint8x8_t = unsafe { simd_shuffle!(c, c, [7, 6, 5, 4, 3, 2, 1, 0]) };
64545    unsafe {
64546        let ret_val: poly8x8_t = transmute(vtbx4(
64547            transmute(a),
64548            transmute(b.0),
64549            transmute(b.1),
64550            transmute(b.2),
64551            transmute(b.3),
64552            transmute(c),
64553        ));
64554        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
64555    }
64556}
64557#[doc = "Transpose elements"]
64558#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrn_f16)"]
64559#[inline]
64560#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
64561#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
64562#[cfg_attr(
64563    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64564    assert_instr(trn1)
64565)]
64566#[cfg_attr(
64567    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64568    assert_instr(trn2)
64569)]
64570#[target_feature(enable = "neon,fp16")]
64571#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
64572#[cfg(not(target_arch = "arm64ec"))]
64573pub fn vtrn_f16(a: float16x4_t, b: float16x4_t) -> float16x4x2_t {
64574    unsafe {
64575        let a1: float16x4_t = simd_shuffle!(a, b, [0, 4, 2, 6]);
64576        let b1: float16x4_t = simd_shuffle!(a, b, [1, 5, 3, 7]);
64577        transmute((a1, b1))
64578    }
64579}
64580#[doc = "Transpose elements"]
64581#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrnq_f16)"]
64582#[inline]
64583#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
64584#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
64585#[cfg_attr(
64586    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64587    assert_instr(trn1)
64588)]
64589#[cfg_attr(
64590    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64591    assert_instr(trn2)
64592)]
64593#[target_feature(enable = "neon,fp16")]
64594#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
64595#[cfg(not(target_arch = "arm64ec"))]
64596pub fn vtrnq_f16(a: float16x8_t, b: float16x8_t) -> float16x8x2_t {
64597    unsafe {
64598        let a1: float16x8_t = simd_shuffle!(a, b, [0, 8, 2, 10, 4, 12, 6, 14]);
64599        let b1: float16x8_t = simd_shuffle!(a, b, [1, 9, 3, 11, 5, 13, 7, 15]);
64600        transmute((a1, b1))
64601    }
64602}
64603#[doc = "Transpose elements"]
64604#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrn_f32)"]
64605#[inline]
64606#[target_feature(enable = "neon")]
64607#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
64608#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
64609#[cfg_attr(
64610    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64611    assert_instr(zip1)
64612)]
64613#[cfg_attr(
64614    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64615    assert_instr(zip2)
64616)]
64617#[cfg_attr(
64618    not(target_arch = "arm"),
64619    stable(feature = "neon_intrinsics", since = "1.59.0")
64620)]
64621#[cfg_attr(
64622    target_arch = "arm",
64623    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
64624)]
64625pub fn vtrn_f32(a: float32x2_t, b: float32x2_t) -> float32x2x2_t {
64626    unsafe {
64627        let a1: float32x2_t = simd_shuffle!(a, b, [0, 2]);
64628        let b1: float32x2_t = simd_shuffle!(a, b, [1, 3]);
64629        transmute((a1, b1))
64630    }
64631}
64632#[doc = "Transpose elements"]
64633#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrn_s32)"]
64634#[inline]
64635#[target_feature(enable = "neon")]
64636#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
64637#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
64638#[cfg_attr(
64639    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64640    assert_instr(zip1)
64641)]
64642#[cfg_attr(
64643    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64644    assert_instr(zip2)
64645)]
64646#[cfg_attr(
64647    not(target_arch = "arm"),
64648    stable(feature = "neon_intrinsics", since = "1.59.0")
64649)]
64650#[cfg_attr(
64651    target_arch = "arm",
64652    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
64653)]
64654pub fn vtrn_s32(a: int32x2_t, b: int32x2_t) -> int32x2x2_t {
64655    unsafe {
64656        let a1: int32x2_t = simd_shuffle!(a, b, [0, 2]);
64657        let b1: int32x2_t = simd_shuffle!(a, b, [1, 3]);
64658        transmute((a1, b1))
64659    }
64660}
64661#[doc = "Transpose elements"]
64662#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrn_u32)"]
64663#[inline]
64664#[target_feature(enable = "neon")]
64665#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
64666#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
64667#[cfg_attr(
64668    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64669    assert_instr(zip1)
64670)]
64671#[cfg_attr(
64672    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64673    assert_instr(zip2)
64674)]
64675#[cfg_attr(
64676    not(target_arch = "arm"),
64677    stable(feature = "neon_intrinsics", since = "1.59.0")
64678)]
64679#[cfg_attr(
64680    target_arch = "arm",
64681    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
64682)]
64683pub fn vtrn_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2x2_t {
64684    unsafe {
64685        let a1: uint32x2_t = simd_shuffle!(a, b, [0, 2]);
64686        let b1: uint32x2_t = simd_shuffle!(a, b, [1, 3]);
64687        transmute((a1, b1))
64688    }
64689}
64690#[doc = "Transpose elements"]
64691#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrnq_f32)"]
64692#[inline]
64693#[target_feature(enable = "neon")]
64694#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
64695#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
64696#[cfg_attr(
64697    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64698    assert_instr(trn1)
64699)]
64700#[cfg_attr(
64701    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64702    assert_instr(trn2)
64703)]
64704#[cfg_attr(
64705    not(target_arch = "arm"),
64706    stable(feature = "neon_intrinsics", since = "1.59.0")
64707)]
64708#[cfg_attr(
64709    target_arch = "arm",
64710    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
64711)]
64712pub fn vtrnq_f32(a: float32x4_t, b: float32x4_t) -> float32x4x2_t {
64713    unsafe {
64714        let a1: float32x4_t = simd_shuffle!(a, b, [0, 4, 2, 6]);
64715        let b1: float32x4_t = simd_shuffle!(a, b, [1, 5, 3, 7]);
64716        transmute((a1, b1))
64717    }
64718}
64719#[doc = "Transpose elements"]
64720#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrn_s8)"]
64721#[inline]
64722#[target_feature(enable = "neon")]
64723#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
64724#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
64725#[cfg_attr(
64726    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64727    assert_instr(trn1)
64728)]
64729#[cfg_attr(
64730    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64731    assert_instr(trn2)
64732)]
64733#[cfg_attr(
64734    not(target_arch = "arm"),
64735    stable(feature = "neon_intrinsics", since = "1.59.0")
64736)]
64737#[cfg_attr(
64738    target_arch = "arm",
64739    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
64740)]
64741pub fn vtrn_s8(a: int8x8_t, b: int8x8_t) -> int8x8x2_t {
64742    unsafe {
64743        let a1: int8x8_t = simd_shuffle!(a, b, [0, 8, 2, 10, 4, 12, 6, 14]);
64744        let b1: int8x8_t = simd_shuffle!(a, b, [1, 9, 3, 11, 5, 13, 7, 15]);
64745        transmute((a1, b1))
64746    }
64747}
64748#[doc = "Transpose elements"]
64749#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrnq_s8)"]
64750#[inline]
64751#[target_feature(enable = "neon")]
64752#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
64753#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
64754#[cfg_attr(
64755    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64756    assert_instr(trn1)
64757)]
64758#[cfg_attr(
64759    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64760    assert_instr(trn2)
64761)]
64762#[cfg_attr(
64763    not(target_arch = "arm"),
64764    stable(feature = "neon_intrinsics", since = "1.59.0")
64765)]
64766#[cfg_attr(
64767    target_arch = "arm",
64768    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
64769)]
64770pub fn vtrnq_s8(a: int8x16_t, b: int8x16_t) -> int8x16x2_t {
64771    unsafe {
64772        let a1: int8x16_t = simd_shuffle!(
64773            a,
64774            b,
64775            [0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30]
64776        );
64777        let b1: int8x16_t = simd_shuffle!(
64778            a,
64779            b,
64780            [1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31]
64781        );
64782        transmute((a1, b1))
64783    }
64784}
64785#[doc = "Transpose elements"]
64786#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrn_s16)"]
64787#[inline]
64788#[target_feature(enable = "neon")]
64789#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
64790#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
64791#[cfg_attr(
64792    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64793    assert_instr(trn1)
64794)]
64795#[cfg_attr(
64796    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64797    assert_instr(trn2)
64798)]
64799#[cfg_attr(
64800    not(target_arch = "arm"),
64801    stable(feature = "neon_intrinsics", since = "1.59.0")
64802)]
64803#[cfg_attr(
64804    target_arch = "arm",
64805    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
64806)]
64807pub fn vtrn_s16(a: int16x4_t, b: int16x4_t) -> int16x4x2_t {
64808    unsafe {
64809        let a1: int16x4_t = simd_shuffle!(a, b, [0, 4, 2, 6]);
64810        let b1: int16x4_t = simd_shuffle!(a, b, [1, 5, 3, 7]);
64811        transmute((a1, b1))
64812    }
64813}
64814#[doc = "Transpose elements"]
64815#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrnq_s16)"]
64816#[inline]
64817#[target_feature(enable = "neon")]
64818#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
64819#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
64820#[cfg_attr(
64821    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64822    assert_instr(trn1)
64823)]
64824#[cfg_attr(
64825    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64826    assert_instr(trn2)
64827)]
64828#[cfg_attr(
64829    not(target_arch = "arm"),
64830    stable(feature = "neon_intrinsics", since = "1.59.0")
64831)]
64832#[cfg_attr(
64833    target_arch = "arm",
64834    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
64835)]
64836pub fn vtrnq_s16(a: int16x8_t, b: int16x8_t) -> int16x8x2_t {
64837    unsafe {
64838        let a1: int16x8_t = simd_shuffle!(a, b, [0, 8, 2, 10, 4, 12, 6, 14]);
64839        let b1: int16x8_t = simd_shuffle!(a, b, [1, 9, 3, 11, 5, 13, 7, 15]);
64840        transmute((a1, b1))
64841    }
64842}
64843#[doc = "Transpose elements"]
64844#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrnq_s32)"]
64845#[inline]
64846#[target_feature(enable = "neon")]
64847#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
64848#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
64849#[cfg_attr(
64850    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64851    assert_instr(trn1)
64852)]
64853#[cfg_attr(
64854    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64855    assert_instr(trn2)
64856)]
64857#[cfg_attr(
64858    not(target_arch = "arm"),
64859    stable(feature = "neon_intrinsics", since = "1.59.0")
64860)]
64861#[cfg_attr(
64862    target_arch = "arm",
64863    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
64864)]
64865pub fn vtrnq_s32(a: int32x4_t, b: int32x4_t) -> int32x4x2_t {
64866    unsafe {
64867        let a1: int32x4_t = simd_shuffle!(a, b, [0, 4, 2, 6]);
64868        let b1: int32x4_t = simd_shuffle!(a, b, [1, 5, 3, 7]);
64869        transmute((a1, b1))
64870    }
64871}
64872#[doc = "Transpose elements"]
64873#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrn_u8)"]
64874#[inline]
64875#[target_feature(enable = "neon")]
64876#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
64877#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
64878#[cfg_attr(
64879    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64880    assert_instr(trn1)
64881)]
64882#[cfg_attr(
64883    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64884    assert_instr(trn2)
64885)]
64886#[cfg_attr(
64887    not(target_arch = "arm"),
64888    stable(feature = "neon_intrinsics", since = "1.59.0")
64889)]
64890#[cfg_attr(
64891    target_arch = "arm",
64892    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
64893)]
64894pub fn vtrn_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8x2_t {
64895    unsafe {
64896        let a1: uint8x8_t = simd_shuffle!(a, b, [0, 8, 2, 10, 4, 12, 6, 14]);
64897        let b1: uint8x8_t = simd_shuffle!(a, b, [1, 9, 3, 11, 5, 13, 7, 15]);
64898        transmute((a1, b1))
64899    }
64900}
64901#[doc = "Transpose elements"]
64902#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrnq_u8)"]
64903#[inline]
64904#[target_feature(enable = "neon")]
64905#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
64906#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
64907#[cfg_attr(
64908    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64909    assert_instr(trn1)
64910)]
64911#[cfg_attr(
64912    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64913    assert_instr(trn2)
64914)]
64915#[cfg_attr(
64916    not(target_arch = "arm"),
64917    stable(feature = "neon_intrinsics", since = "1.59.0")
64918)]
64919#[cfg_attr(
64920    target_arch = "arm",
64921    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
64922)]
64923pub fn vtrnq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16x2_t {
64924    unsafe {
64925        let a1: uint8x16_t = simd_shuffle!(
64926            a,
64927            b,
64928            [0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30]
64929        );
64930        let b1: uint8x16_t = simd_shuffle!(
64931            a,
64932            b,
64933            [1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31]
64934        );
64935        transmute((a1, b1))
64936    }
64937}
64938#[doc = "Transpose elements"]
64939#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrn_u16)"]
64940#[inline]
64941#[target_feature(enable = "neon")]
64942#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
64943#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
64944#[cfg_attr(
64945    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64946    assert_instr(trn1)
64947)]
64948#[cfg_attr(
64949    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64950    assert_instr(trn2)
64951)]
64952#[cfg_attr(
64953    not(target_arch = "arm"),
64954    stable(feature = "neon_intrinsics", since = "1.59.0")
64955)]
64956#[cfg_attr(
64957    target_arch = "arm",
64958    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
64959)]
64960pub fn vtrn_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4x2_t {
64961    unsafe {
64962        let a1: uint16x4_t = simd_shuffle!(a, b, [0, 4, 2, 6]);
64963        let b1: uint16x4_t = simd_shuffle!(a, b, [1, 5, 3, 7]);
64964        transmute((a1, b1))
64965    }
64966}
64967#[doc = "Transpose elements"]
64968#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrnq_u16)"]
64969#[inline]
64970#[target_feature(enable = "neon")]
64971#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
64972#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
64973#[cfg_attr(
64974    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64975    assert_instr(trn1)
64976)]
64977#[cfg_attr(
64978    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64979    assert_instr(trn2)
64980)]
64981#[cfg_attr(
64982    not(target_arch = "arm"),
64983    stable(feature = "neon_intrinsics", since = "1.59.0")
64984)]
64985#[cfg_attr(
64986    target_arch = "arm",
64987    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
64988)]
64989pub fn vtrnq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8x2_t {
64990    unsafe {
64991        let a1: uint16x8_t = simd_shuffle!(a, b, [0, 8, 2, 10, 4, 12, 6, 14]);
64992        let b1: uint16x8_t = simd_shuffle!(a, b, [1, 9, 3, 11, 5, 13, 7, 15]);
64993        transmute((a1, b1))
64994    }
64995}
64996#[doc = "Transpose elements"]
64997#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrnq_u32)"]
64998#[inline]
64999#[target_feature(enable = "neon")]
65000#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65001#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
65002#[cfg_attr(
65003    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65004    assert_instr(trn1)
65005)]
65006#[cfg_attr(
65007    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65008    assert_instr(trn2)
65009)]
65010#[cfg_attr(
65011    not(target_arch = "arm"),
65012    stable(feature = "neon_intrinsics", since = "1.59.0")
65013)]
65014#[cfg_attr(
65015    target_arch = "arm",
65016    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65017)]
65018pub fn vtrnq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4x2_t {
65019    unsafe {
65020        let a1: uint32x4_t = simd_shuffle!(a, b, [0, 4, 2, 6]);
65021        let b1: uint32x4_t = simd_shuffle!(a, b, [1, 5, 3, 7]);
65022        transmute((a1, b1))
65023    }
65024}
65025#[doc = "Transpose elements"]
65026#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrn_p8)"]
65027#[inline]
65028#[target_feature(enable = "neon")]
65029#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65030#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
65031#[cfg_attr(
65032    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65033    assert_instr(trn1)
65034)]
65035#[cfg_attr(
65036    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65037    assert_instr(trn2)
65038)]
65039#[cfg_attr(
65040    not(target_arch = "arm"),
65041    stable(feature = "neon_intrinsics", since = "1.59.0")
65042)]
65043#[cfg_attr(
65044    target_arch = "arm",
65045    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65046)]
65047pub fn vtrn_p8(a: poly8x8_t, b: poly8x8_t) -> poly8x8x2_t {
65048    unsafe {
65049        let a1: poly8x8_t = simd_shuffle!(a, b, [0, 8, 2, 10, 4, 12, 6, 14]);
65050        let b1: poly8x8_t = simd_shuffle!(a, b, [1, 9, 3, 11, 5, 13, 7, 15]);
65051        transmute((a1, b1))
65052    }
65053}
65054#[doc = "Transpose elements"]
65055#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrnq_p8)"]
65056#[inline]
65057#[target_feature(enable = "neon")]
65058#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65059#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
65060#[cfg_attr(
65061    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65062    assert_instr(trn1)
65063)]
65064#[cfg_attr(
65065    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65066    assert_instr(trn2)
65067)]
65068#[cfg_attr(
65069    not(target_arch = "arm"),
65070    stable(feature = "neon_intrinsics", since = "1.59.0")
65071)]
65072#[cfg_attr(
65073    target_arch = "arm",
65074    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65075)]
65076pub fn vtrnq_p8(a: poly8x16_t, b: poly8x16_t) -> poly8x16x2_t {
65077    unsafe {
65078        let a1: poly8x16_t = simd_shuffle!(
65079            a,
65080            b,
65081            [0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30]
65082        );
65083        let b1: poly8x16_t = simd_shuffle!(
65084            a,
65085            b,
65086            [1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31]
65087        );
65088        transmute((a1, b1))
65089    }
65090}
65091#[doc = "Transpose elements"]
65092#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrn_p16)"]
65093#[inline]
65094#[target_feature(enable = "neon")]
65095#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65096#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
65097#[cfg_attr(
65098    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65099    assert_instr(trn1)
65100)]
65101#[cfg_attr(
65102    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65103    assert_instr(trn2)
65104)]
65105#[cfg_attr(
65106    not(target_arch = "arm"),
65107    stable(feature = "neon_intrinsics", since = "1.59.0")
65108)]
65109#[cfg_attr(
65110    target_arch = "arm",
65111    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65112)]
65113pub fn vtrn_p16(a: poly16x4_t, b: poly16x4_t) -> poly16x4x2_t {
65114    unsafe {
65115        let a1: poly16x4_t = simd_shuffle!(a, b, [0, 4, 2, 6]);
65116        let b1: poly16x4_t = simd_shuffle!(a, b, [1, 5, 3, 7]);
65117        transmute((a1, b1))
65118    }
65119}
65120#[doc = "Transpose elements"]
65121#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrnq_p16)"]
65122#[inline]
65123#[target_feature(enable = "neon")]
65124#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65125#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
65126#[cfg_attr(
65127    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65128    assert_instr(trn1)
65129)]
65130#[cfg_attr(
65131    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65132    assert_instr(trn2)
65133)]
65134#[cfg_attr(
65135    not(target_arch = "arm"),
65136    stable(feature = "neon_intrinsics", since = "1.59.0")
65137)]
65138#[cfg_attr(
65139    target_arch = "arm",
65140    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65141)]
65142pub fn vtrnq_p16(a: poly16x8_t, b: poly16x8_t) -> poly16x8x2_t {
65143    unsafe {
65144        let a1: poly16x8_t = simd_shuffle!(a, b, [0, 8, 2, 10, 4, 12, 6, 14]);
65145        let b1: poly16x8_t = simd_shuffle!(a, b, [1, 9, 3, 11, 5, 13, 7, 15]);
65146        transmute((a1, b1))
65147    }
65148}
65149#[doc = "Signed compare bitwise Test bits nonzero"]
65150#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtst_s8)"]
65151#[inline]
65152#[target_feature(enable = "neon")]
65153#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65154#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
65155#[cfg_attr(
65156    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65157    assert_instr(cmtst)
65158)]
65159#[cfg_attr(
65160    not(target_arch = "arm"),
65161    stable(feature = "neon_intrinsics", since = "1.59.0")
65162)]
65163#[cfg_attr(
65164    target_arch = "arm",
65165    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65166)]
65167pub fn vtst_s8(a: int8x8_t, b: int8x8_t) -> uint8x8_t {
65168    unsafe {
65169        let c: int8x8_t = simd_and(a, b);
65170        let d: i8x8 = i8x8::new(0, 0, 0, 0, 0, 0, 0, 0);
65171        simd_ne(c, transmute(d))
65172    }
65173}
65174#[doc = "Signed compare bitwise Test bits nonzero"]
65175#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtstq_s8)"]
65176#[inline]
65177#[target_feature(enable = "neon")]
65178#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65179#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
65180#[cfg_attr(
65181    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65182    assert_instr(cmtst)
65183)]
65184#[cfg_attr(
65185    not(target_arch = "arm"),
65186    stable(feature = "neon_intrinsics", since = "1.59.0")
65187)]
65188#[cfg_attr(
65189    target_arch = "arm",
65190    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65191)]
65192pub fn vtstq_s8(a: int8x16_t, b: int8x16_t) -> uint8x16_t {
65193    unsafe {
65194        let c: int8x16_t = simd_and(a, b);
65195        let d: i8x16 = i8x16::new(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
65196        simd_ne(c, transmute(d))
65197    }
65198}
65199#[doc = "Signed compare bitwise Test bits nonzero"]
65200#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtst_s16)"]
65201#[inline]
65202#[target_feature(enable = "neon")]
65203#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65204#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
65205#[cfg_attr(
65206    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65207    assert_instr(cmtst)
65208)]
65209#[cfg_attr(
65210    not(target_arch = "arm"),
65211    stable(feature = "neon_intrinsics", since = "1.59.0")
65212)]
65213#[cfg_attr(
65214    target_arch = "arm",
65215    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65216)]
65217pub fn vtst_s16(a: int16x4_t, b: int16x4_t) -> uint16x4_t {
65218    unsafe {
65219        let c: int16x4_t = simd_and(a, b);
65220        let d: i16x4 = i16x4::new(0, 0, 0, 0);
65221        simd_ne(c, transmute(d))
65222    }
65223}
65224#[doc = "Signed compare bitwise Test bits nonzero"]
65225#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtstq_s16)"]
65226#[inline]
65227#[target_feature(enable = "neon")]
65228#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65229#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
65230#[cfg_attr(
65231    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65232    assert_instr(cmtst)
65233)]
65234#[cfg_attr(
65235    not(target_arch = "arm"),
65236    stable(feature = "neon_intrinsics", since = "1.59.0")
65237)]
65238#[cfg_attr(
65239    target_arch = "arm",
65240    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65241)]
65242pub fn vtstq_s16(a: int16x8_t, b: int16x8_t) -> uint16x8_t {
65243    unsafe {
65244        let c: int16x8_t = simd_and(a, b);
65245        let d: i16x8 = i16x8::new(0, 0, 0, 0, 0, 0, 0, 0);
65246        simd_ne(c, transmute(d))
65247    }
65248}
65249#[doc = "Signed compare bitwise Test bits nonzero"]
65250#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtst_s32)"]
65251#[inline]
65252#[target_feature(enable = "neon")]
65253#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65254#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
65255#[cfg_attr(
65256    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65257    assert_instr(cmtst)
65258)]
65259#[cfg_attr(
65260    not(target_arch = "arm"),
65261    stable(feature = "neon_intrinsics", since = "1.59.0")
65262)]
65263#[cfg_attr(
65264    target_arch = "arm",
65265    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65266)]
65267pub fn vtst_s32(a: int32x2_t, b: int32x2_t) -> uint32x2_t {
65268    unsafe {
65269        let c: int32x2_t = simd_and(a, b);
65270        let d: i32x2 = i32x2::new(0, 0);
65271        simd_ne(c, transmute(d))
65272    }
65273}
65274#[doc = "Signed compare bitwise Test bits nonzero"]
65275#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtstq_s32)"]
65276#[inline]
65277#[target_feature(enable = "neon")]
65278#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65279#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
65280#[cfg_attr(
65281    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65282    assert_instr(cmtst)
65283)]
65284#[cfg_attr(
65285    not(target_arch = "arm"),
65286    stable(feature = "neon_intrinsics", since = "1.59.0")
65287)]
65288#[cfg_attr(
65289    target_arch = "arm",
65290    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65291)]
65292pub fn vtstq_s32(a: int32x4_t, b: int32x4_t) -> uint32x4_t {
65293    unsafe {
65294        let c: int32x4_t = simd_and(a, b);
65295        let d: i32x4 = i32x4::new(0, 0, 0, 0);
65296        simd_ne(c, transmute(d))
65297    }
65298}
65299#[doc = "Signed compare bitwise Test bits nonzero"]
65300#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtst_p8)"]
65301#[inline]
65302#[target_feature(enable = "neon")]
65303#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65304#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
65305#[cfg_attr(
65306    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65307    assert_instr(cmtst)
65308)]
65309#[cfg_attr(
65310    not(target_arch = "arm"),
65311    stable(feature = "neon_intrinsics", since = "1.59.0")
65312)]
65313#[cfg_attr(
65314    target_arch = "arm",
65315    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65316)]
65317pub fn vtst_p8(a: poly8x8_t, b: poly8x8_t) -> uint8x8_t {
65318    unsafe {
65319        let c: poly8x8_t = simd_and(a, b);
65320        let d: i8x8 = i8x8::new(0, 0, 0, 0, 0, 0, 0, 0);
65321        simd_ne(c, transmute(d))
65322    }
65323}
65324#[doc = "Signed compare bitwise Test bits nonzero"]
65325#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtstq_p8)"]
65326#[inline]
65327#[target_feature(enable = "neon")]
65328#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65329#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
65330#[cfg_attr(
65331    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65332    assert_instr(cmtst)
65333)]
65334#[cfg_attr(
65335    not(target_arch = "arm"),
65336    stable(feature = "neon_intrinsics", since = "1.59.0")
65337)]
65338#[cfg_attr(
65339    target_arch = "arm",
65340    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65341)]
65342pub fn vtstq_p8(a: poly8x16_t, b: poly8x16_t) -> uint8x16_t {
65343    unsafe {
65344        let c: poly8x16_t = simd_and(a, b);
65345        let d: i8x16 = i8x16::new(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
65346        simd_ne(c, transmute(d))
65347    }
65348}
65349#[doc = "Signed compare bitwise Test bits nonzero"]
65350#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtst_p16)"]
65351#[inline]
65352#[target_feature(enable = "neon")]
65353#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65354#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
65355#[cfg_attr(
65356    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65357    assert_instr(cmtst)
65358)]
65359#[cfg_attr(
65360    not(target_arch = "arm"),
65361    stable(feature = "neon_intrinsics", since = "1.59.0")
65362)]
65363#[cfg_attr(
65364    target_arch = "arm",
65365    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65366)]
65367pub fn vtst_p16(a: poly16x4_t, b: poly16x4_t) -> uint16x4_t {
65368    unsafe {
65369        let c: poly16x4_t = simd_and(a, b);
65370        let d: i16x4 = i16x4::new(0, 0, 0, 0);
65371        simd_ne(c, transmute(d))
65372    }
65373}
65374#[doc = "Signed compare bitwise Test bits nonzero"]
65375#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtstq_p16)"]
65376#[inline]
65377#[target_feature(enable = "neon")]
65378#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65379#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
65380#[cfg_attr(
65381    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65382    assert_instr(cmtst)
65383)]
65384#[cfg_attr(
65385    not(target_arch = "arm"),
65386    stable(feature = "neon_intrinsics", since = "1.59.0")
65387)]
65388#[cfg_attr(
65389    target_arch = "arm",
65390    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65391)]
65392pub fn vtstq_p16(a: poly16x8_t, b: poly16x8_t) -> uint16x8_t {
65393    unsafe {
65394        let c: poly16x8_t = simd_and(a, b);
65395        let d: i16x8 = i16x8::new(0, 0, 0, 0, 0, 0, 0, 0);
65396        simd_ne(c, transmute(d))
65397    }
65398}
65399#[doc = "Unsigned compare bitwise Test bits nonzero"]
65400#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtst_u8)"]
65401#[inline]
65402#[target_feature(enable = "neon")]
65403#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65404#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
65405#[cfg_attr(
65406    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65407    assert_instr(cmtst)
65408)]
65409#[cfg_attr(
65410    not(target_arch = "arm"),
65411    stable(feature = "neon_intrinsics", since = "1.59.0")
65412)]
65413#[cfg_attr(
65414    target_arch = "arm",
65415    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65416)]
65417pub fn vtst_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
65418    unsafe {
65419        let c: uint8x8_t = simd_and(a, b);
65420        let d: u8x8 = u8x8::new(0, 0, 0, 0, 0, 0, 0, 0);
65421        simd_ne(c, transmute(d))
65422    }
65423}
65424#[doc = "Unsigned compare bitwise Test bits nonzero"]
65425#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtstq_u8)"]
65426#[inline]
65427#[target_feature(enable = "neon")]
65428#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65429#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
65430#[cfg_attr(
65431    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65432    assert_instr(cmtst)
65433)]
65434#[cfg_attr(
65435    not(target_arch = "arm"),
65436    stable(feature = "neon_intrinsics", since = "1.59.0")
65437)]
65438#[cfg_attr(
65439    target_arch = "arm",
65440    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65441)]
65442pub fn vtstq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
65443    unsafe {
65444        let c: uint8x16_t = simd_and(a, b);
65445        let d: u8x16 = u8x16::new(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
65446        simd_ne(c, transmute(d))
65447    }
65448}
65449#[doc = "Unsigned compare bitwise Test bits nonzero"]
65450#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtst_u16)"]
65451#[inline]
65452#[target_feature(enable = "neon")]
65453#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65454#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
65455#[cfg_attr(
65456    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65457    assert_instr(cmtst)
65458)]
65459#[cfg_attr(
65460    not(target_arch = "arm"),
65461    stable(feature = "neon_intrinsics", since = "1.59.0")
65462)]
65463#[cfg_attr(
65464    target_arch = "arm",
65465    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65466)]
65467pub fn vtst_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
65468    unsafe {
65469        let c: uint16x4_t = simd_and(a, b);
65470        let d: u16x4 = u16x4::new(0, 0, 0, 0);
65471        simd_ne(c, transmute(d))
65472    }
65473}
65474#[doc = "Unsigned compare bitwise Test bits nonzero"]
65475#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtstq_u16)"]
65476#[inline]
65477#[target_feature(enable = "neon")]
65478#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65479#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
65480#[cfg_attr(
65481    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65482    assert_instr(cmtst)
65483)]
65484#[cfg_attr(
65485    not(target_arch = "arm"),
65486    stable(feature = "neon_intrinsics", since = "1.59.0")
65487)]
65488#[cfg_attr(
65489    target_arch = "arm",
65490    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65491)]
65492pub fn vtstq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
65493    unsafe {
65494        let c: uint16x8_t = simd_and(a, b);
65495        let d: u16x8 = u16x8::new(0, 0, 0, 0, 0, 0, 0, 0);
65496        simd_ne(c, transmute(d))
65497    }
65498}
65499#[doc = "Unsigned compare bitwise Test bits nonzero"]
65500#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtst_u32)"]
65501#[inline]
65502#[target_feature(enable = "neon")]
65503#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65504#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
65505#[cfg_attr(
65506    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65507    assert_instr(cmtst)
65508)]
65509#[cfg_attr(
65510    not(target_arch = "arm"),
65511    stable(feature = "neon_intrinsics", since = "1.59.0")
65512)]
65513#[cfg_attr(
65514    target_arch = "arm",
65515    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65516)]
65517pub fn vtst_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
65518    unsafe {
65519        let c: uint32x2_t = simd_and(a, b);
65520        let d: u32x2 = u32x2::new(0, 0);
65521        simd_ne(c, transmute(d))
65522    }
65523}
65524#[doc = "Unsigned compare bitwise Test bits nonzero"]
65525#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtstq_u32)"]
65526#[inline]
65527#[target_feature(enable = "neon")]
65528#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65529#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
65530#[cfg_attr(
65531    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65532    assert_instr(cmtst)
65533)]
65534#[cfg_attr(
65535    not(target_arch = "arm"),
65536    stable(feature = "neon_intrinsics", since = "1.59.0")
65537)]
65538#[cfg_attr(
65539    target_arch = "arm",
65540    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65541)]
65542pub fn vtstq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
65543    unsafe {
65544        let c: uint32x4_t = simd_and(a, b);
65545        let d: u32x4 = u32x4::new(0, 0, 0, 0);
65546        simd_ne(c, transmute(d))
65547    }
65548}
65549#[doc = "Dot product index form with unsigned and signed integers"]
65550#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vusdot_lane_s32)"]
65551#[inline]
65552#[target_feature(enable = "neon,i8mm")]
65553#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
65554#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vusdot, LANE = 0))]
65555#[cfg_attr(
65556    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65557    assert_instr(usdot, LANE = 0)
65558)]
65559#[rustc_legacy_const_generics(3)]
65560#[cfg_attr(
65561    not(target_arch = "arm"),
65562    unstable(feature = "stdarch_neon_i8mm", issue = "117223")
65563)]
65564#[cfg_attr(
65565    target_arch = "arm",
65566    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65567)]
65568pub fn vusdot_lane_s32<const LANE: i32>(a: int32x2_t, b: uint8x8_t, c: int8x8_t) -> int32x2_t {
65569    static_assert_uimm_bits!(LANE, 1);
65570    unsafe {
65571        let c: int32x2_t = transmute(c);
65572        let c: int32x2_t = simd_shuffle!(c, c, [LANE as u32, LANE as u32]);
65573        vusdot_s32(a, b, transmute(c))
65574    }
65575}
65576#[doc = "Dot product index form with unsigned and signed integers"]
65577#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vusdotq_lane_s32)"]
65578#[inline]
65579#[target_feature(enable = "neon,i8mm")]
65580#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
65581#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vusdot, LANE = 0))]
65582#[cfg_attr(
65583    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65584    assert_instr(usdot, LANE = 0)
65585)]
65586#[rustc_legacy_const_generics(3)]
65587#[cfg_attr(
65588    not(target_arch = "arm"),
65589    unstable(feature = "stdarch_neon_i8mm", issue = "117223")
65590)]
65591#[cfg_attr(
65592    target_arch = "arm",
65593    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65594)]
65595pub fn vusdotq_lane_s32<const LANE: i32>(a: int32x4_t, b: uint8x16_t, c: int8x8_t) -> int32x4_t {
65596    static_assert_uimm_bits!(LANE, 1);
65597    unsafe {
65598        let c: int32x2_t = transmute(c);
65599        let c: int32x4_t =
65600            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]);
65601        vusdotq_s32(a, b, transmute(c))
65602    }
65603}
65604#[doc = "Dot product vector form with unsigned and signed integers"]
65605#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vusdot_s32)"]
65606#[inline]
65607#[target_feature(enable = "neon,i8mm")]
65608#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
65609#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vusdot))]
65610#[cfg_attr(
65611    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65612    assert_instr(usdot)
65613)]
65614#[cfg_attr(
65615    not(target_arch = "arm"),
65616    unstable(feature = "stdarch_neon_i8mm", issue = "117223")
65617)]
65618#[cfg_attr(
65619    target_arch = "arm",
65620    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65621)]
65622pub fn vusdot_s32(a: int32x2_t, b: uint8x8_t, c: int8x8_t) -> int32x2_t {
65623    unsafe extern "unadjusted" {
65624        #[cfg_attr(
65625            any(target_arch = "aarch64", target_arch = "arm64ec"),
65626            link_name = "llvm.aarch64.neon.usdot.v2i32.v8i8"
65627        )]
65628        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.usdot.v2i32.v8i8")]
65629        fn _vusdot_s32(a: int32x2_t, b: uint8x8_t, c: int8x8_t) -> int32x2_t;
65630    }
65631    unsafe { _vusdot_s32(a, b, c) }
65632}
65633#[doc = "Dot product vector form with unsigned and signed integers"]
65634#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vusdotq_s32)"]
65635#[inline]
65636#[target_feature(enable = "neon,i8mm")]
65637#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
65638#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vusdot))]
65639#[cfg_attr(
65640    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65641    assert_instr(usdot)
65642)]
65643#[cfg_attr(
65644    not(target_arch = "arm"),
65645    unstable(feature = "stdarch_neon_i8mm", issue = "117223")
65646)]
65647#[cfg_attr(
65648    target_arch = "arm",
65649    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65650)]
65651pub fn vusdotq_s32(a: int32x4_t, b: uint8x16_t, c: int8x16_t) -> int32x4_t {
65652    unsafe extern "unadjusted" {
65653        #[cfg_attr(
65654            any(target_arch = "aarch64", target_arch = "arm64ec"),
65655            link_name = "llvm.aarch64.neon.usdot.v4i32.v16i8"
65656        )]
65657        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.usdot.v4i32.v16i8")]
65658        fn _vusdotq_s32(a: int32x4_t, b: uint8x16_t, c: int8x16_t) -> int32x4_t;
65659    }
65660    unsafe { _vusdotq_s32(a, b, c) }
65661}
65662#[doc = "Unsigned and signed 8-bit integer matrix multiply-accumulate"]
65663#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vusmmlaq_s32)"]
65664#[inline]
65665#[target_feature(enable = "neon,i8mm")]
65666#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
65667#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
65668#[cfg_attr(
65669    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65670    assert_instr(usmmla)
65671)]
65672#[cfg_attr(
65673    not(target_arch = "arm"),
65674    unstable(feature = "stdarch_neon_i8mm", issue = "117223")
65675)]
65676#[cfg_attr(
65677    target_arch = "arm",
65678    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65679)]
65680pub fn vusmmlaq_s32(a: int32x4_t, b: uint8x16_t, c: int8x16_t) -> int32x4_t {
65681    unsafe extern "unadjusted" {
65682        #[cfg_attr(
65683            any(target_arch = "aarch64", target_arch = "arm64ec"),
65684            link_name = "llvm.aarch64.neon.usmmla.v4i32.v16i8"
65685        )]
65686        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.usmmla.v4i32.v16i8")]
65687        fn _vusmmlaq_s32(a: int32x4_t, b: uint8x16_t, c: int8x16_t) -> int32x4_t;
65688    }
65689    unsafe { _vusmmlaq_s32(a, b, c) }
65690}
65691#[doc = "Unzip vectors"]
65692#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzp_f16)"]
65693#[inline]
65694#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65695#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
65696#[cfg_attr(
65697    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65698    assert_instr(uzp1)
65699)]
65700#[cfg_attr(
65701    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65702    assert_instr(uzp2)
65703)]
65704#[target_feature(enable = "neon,fp16")]
65705#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
65706#[cfg(not(target_arch = "arm64ec"))]
65707pub fn vuzp_f16(a: float16x4_t, b: float16x4_t) -> float16x4x2_t {
65708    unsafe {
65709        let a0: float16x4_t = simd_shuffle!(a, b, [0, 2, 4, 6]);
65710        let b0: float16x4_t = simd_shuffle!(a, b, [1, 3, 5, 7]);
65711        transmute((a0, b0))
65712    }
65713}
65714#[doc = "Unzip vectors"]
65715#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzpq_f16)"]
65716#[inline]
65717#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65718#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
65719#[cfg_attr(
65720    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65721    assert_instr(uzp1)
65722)]
65723#[cfg_attr(
65724    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65725    assert_instr(uzp2)
65726)]
65727#[target_feature(enable = "neon,fp16")]
65728#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
65729#[cfg(not(target_arch = "arm64ec"))]
65730pub fn vuzpq_f16(a: float16x8_t, b: float16x8_t) -> float16x8x2_t {
65731    unsafe {
65732        let a0: float16x8_t = simd_shuffle!(a, b, [0, 2, 4, 6, 8, 10, 12, 14]);
65733        let b0: float16x8_t = simd_shuffle!(a, b, [1, 3, 5, 7, 9, 11, 13, 15]);
65734        transmute((a0, b0))
65735    }
65736}
65737#[doc = "Unzip vectors"]
65738#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzp_f32)"]
65739#[inline]
65740#[target_feature(enable = "neon")]
65741#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65742#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
65743#[cfg_attr(
65744    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65745    assert_instr(zip1)
65746)]
65747#[cfg_attr(
65748    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65749    assert_instr(zip2)
65750)]
65751#[cfg_attr(
65752    not(target_arch = "arm"),
65753    stable(feature = "neon_intrinsics", since = "1.59.0")
65754)]
65755#[cfg_attr(
65756    target_arch = "arm",
65757    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65758)]
65759pub fn vuzp_f32(a: float32x2_t, b: float32x2_t) -> float32x2x2_t {
65760    unsafe {
65761        let a0: float32x2_t = simd_shuffle!(a, b, [0, 2]);
65762        let b0: float32x2_t = simd_shuffle!(a, b, [1, 3]);
65763        transmute((a0, b0))
65764    }
65765}
65766#[doc = "Unzip vectors"]
65767#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzp_s32)"]
65768#[inline]
65769#[target_feature(enable = "neon")]
65770#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65771#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
65772#[cfg_attr(
65773    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65774    assert_instr(zip1)
65775)]
65776#[cfg_attr(
65777    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65778    assert_instr(zip2)
65779)]
65780#[cfg_attr(
65781    not(target_arch = "arm"),
65782    stable(feature = "neon_intrinsics", since = "1.59.0")
65783)]
65784#[cfg_attr(
65785    target_arch = "arm",
65786    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65787)]
65788pub fn vuzp_s32(a: int32x2_t, b: int32x2_t) -> int32x2x2_t {
65789    unsafe {
65790        let a0: int32x2_t = simd_shuffle!(a, b, [0, 2]);
65791        let b0: int32x2_t = simd_shuffle!(a, b, [1, 3]);
65792        transmute((a0, b0))
65793    }
65794}
65795#[doc = "Unzip vectors"]
65796#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzp_u32)"]
65797#[inline]
65798#[target_feature(enable = "neon")]
65799#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65800#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
65801#[cfg_attr(
65802    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65803    assert_instr(zip1)
65804)]
65805#[cfg_attr(
65806    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65807    assert_instr(zip2)
65808)]
65809#[cfg_attr(
65810    not(target_arch = "arm"),
65811    stable(feature = "neon_intrinsics", since = "1.59.0")
65812)]
65813#[cfg_attr(
65814    target_arch = "arm",
65815    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65816)]
65817pub fn vuzp_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2x2_t {
65818    unsafe {
65819        let a0: uint32x2_t = simd_shuffle!(a, b, [0, 2]);
65820        let b0: uint32x2_t = simd_shuffle!(a, b, [1, 3]);
65821        transmute((a0, b0))
65822    }
65823}
65824#[doc = "Unzip vectors"]
65825#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzpq_f32)"]
65826#[inline]
65827#[target_feature(enable = "neon")]
65828#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65829#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
65830#[cfg_attr(
65831    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65832    assert_instr(uzp1)
65833)]
65834#[cfg_attr(
65835    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65836    assert_instr(uzp2)
65837)]
65838#[cfg_attr(
65839    not(target_arch = "arm"),
65840    stable(feature = "neon_intrinsics", since = "1.59.0")
65841)]
65842#[cfg_attr(
65843    target_arch = "arm",
65844    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65845)]
65846pub fn vuzpq_f32(a: float32x4_t, b: float32x4_t) -> float32x4x2_t {
65847    unsafe {
65848        let a0: float32x4_t = simd_shuffle!(a, b, [0, 2, 4, 6]);
65849        let b0: float32x4_t = simd_shuffle!(a, b, [1, 3, 5, 7]);
65850        transmute((a0, b0))
65851    }
65852}
65853#[doc = "Unzip vectors"]
65854#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzp_s8)"]
65855#[inline]
65856#[target_feature(enable = "neon")]
65857#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65858#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
65859#[cfg_attr(
65860    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65861    assert_instr(uzp1)
65862)]
65863#[cfg_attr(
65864    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65865    assert_instr(uzp2)
65866)]
65867#[cfg_attr(
65868    not(target_arch = "arm"),
65869    stable(feature = "neon_intrinsics", since = "1.59.0")
65870)]
65871#[cfg_attr(
65872    target_arch = "arm",
65873    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65874)]
65875pub fn vuzp_s8(a: int8x8_t, b: int8x8_t) -> int8x8x2_t {
65876    unsafe {
65877        let a0: int8x8_t = simd_shuffle!(a, b, [0, 2, 4, 6, 8, 10, 12, 14]);
65878        let b0: int8x8_t = simd_shuffle!(a, b, [1, 3, 5, 7, 9, 11, 13, 15]);
65879        transmute((a0, b0))
65880    }
65881}
65882#[doc = "Unzip vectors"]
65883#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzpq_s8)"]
65884#[inline]
65885#[target_feature(enable = "neon")]
65886#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65887#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
65888#[cfg_attr(
65889    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65890    assert_instr(uzp1)
65891)]
65892#[cfg_attr(
65893    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65894    assert_instr(uzp2)
65895)]
65896#[cfg_attr(
65897    not(target_arch = "arm"),
65898    stable(feature = "neon_intrinsics", since = "1.59.0")
65899)]
65900#[cfg_attr(
65901    target_arch = "arm",
65902    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65903)]
65904pub fn vuzpq_s8(a: int8x16_t, b: int8x16_t) -> int8x16x2_t {
65905    unsafe {
65906        let a0: int8x16_t = simd_shuffle!(
65907            a,
65908            b,
65909            [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30]
65910        );
65911        let b0: int8x16_t = simd_shuffle!(
65912            a,
65913            b,
65914            [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31]
65915        );
65916        transmute((a0, b0))
65917    }
65918}
65919#[doc = "Unzip vectors"]
65920#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzp_s16)"]
65921#[inline]
65922#[target_feature(enable = "neon")]
65923#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65924#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
65925#[cfg_attr(
65926    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65927    assert_instr(uzp1)
65928)]
65929#[cfg_attr(
65930    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65931    assert_instr(uzp2)
65932)]
65933#[cfg_attr(
65934    not(target_arch = "arm"),
65935    stable(feature = "neon_intrinsics", since = "1.59.0")
65936)]
65937#[cfg_attr(
65938    target_arch = "arm",
65939    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65940)]
65941pub fn vuzp_s16(a: int16x4_t, b: int16x4_t) -> int16x4x2_t {
65942    unsafe {
65943        let a0: int16x4_t = simd_shuffle!(a, b, [0, 2, 4, 6]);
65944        let b0: int16x4_t = simd_shuffle!(a, b, [1, 3, 5, 7]);
65945        transmute((a0, b0))
65946    }
65947}
65948#[doc = "Unzip vectors"]
65949#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzpq_s16)"]
65950#[inline]
65951#[target_feature(enable = "neon")]
65952#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65953#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
65954#[cfg_attr(
65955    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65956    assert_instr(uzp1)
65957)]
65958#[cfg_attr(
65959    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65960    assert_instr(uzp2)
65961)]
65962#[cfg_attr(
65963    not(target_arch = "arm"),
65964    stable(feature = "neon_intrinsics", since = "1.59.0")
65965)]
65966#[cfg_attr(
65967    target_arch = "arm",
65968    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65969)]
65970pub fn vuzpq_s16(a: int16x8_t, b: int16x8_t) -> int16x8x2_t {
65971    unsafe {
65972        let a0: int16x8_t = simd_shuffle!(a, b, [0, 2, 4, 6, 8, 10, 12, 14]);
65973        let b0: int16x8_t = simd_shuffle!(a, b, [1, 3, 5, 7, 9, 11, 13, 15]);
65974        transmute((a0, b0))
65975    }
65976}
65977#[doc = "Unzip vectors"]
65978#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzpq_s32)"]
65979#[inline]
65980#[target_feature(enable = "neon")]
65981#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65982#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
65983#[cfg_attr(
65984    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65985    assert_instr(uzp1)
65986)]
65987#[cfg_attr(
65988    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65989    assert_instr(uzp2)
65990)]
65991#[cfg_attr(
65992    not(target_arch = "arm"),
65993    stable(feature = "neon_intrinsics", since = "1.59.0")
65994)]
65995#[cfg_attr(
65996    target_arch = "arm",
65997    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65998)]
65999pub fn vuzpq_s32(a: int32x4_t, b: int32x4_t) -> int32x4x2_t {
66000    unsafe {
66001        let a0: int32x4_t = simd_shuffle!(a, b, [0, 2, 4, 6]);
66002        let b0: int32x4_t = simd_shuffle!(a, b, [1, 3, 5, 7]);
66003        transmute((a0, b0))
66004    }
66005}
66006#[doc = "Unzip vectors"]
66007#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzp_u8)"]
66008#[inline]
66009#[target_feature(enable = "neon")]
66010#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66011#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
66012#[cfg_attr(
66013    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66014    assert_instr(uzp1)
66015)]
66016#[cfg_attr(
66017    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66018    assert_instr(uzp2)
66019)]
66020#[cfg_attr(
66021    not(target_arch = "arm"),
66022    stable(feature = "neon_intrinsics", since = "1.59.0")
66023)]
66024#[cfg_attr(
66025    target_arch = "arm",
66026    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66027)]
66028pub fn vuzp_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8x2_t {
66029    unsafe {
66030        let a0: uint8x8_t = simd_shuffle!(a, b, [0, 2, 4, 6, 8, 10, 12, 14]);
66031        let b0: uint8x8_t = simd_shuffle!(a, b, [1, 3, 5, 7, 9, 11, 13, 15]);
66032        transmute((a0, b0))
66033    }
66034}
66035#[doc = "Unzip vectors"]
66036#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzpq_u8)"]
66037#[inline]
66038#[target_feature(enable = "neon")]
66039#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66040#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
66041#[cfg_attr(
66042    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66043    assert_instr(uzp1)
66044)]
66045#[cfg_attr(
66046    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66047    assert_instr(uzp2)
66048)]
66049#[cfg_attr(
66050    not(target_arch = "arm"),
66051    stable(feature = "neon_intrinsics", since = "1.59.0")
66052)]
66053#[cfg_attr(
66054    target_arch = "arm",
66055    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66056)]
66057pub fn vuzpq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16x2_t {
66058    unsafe {
66059        let a0: uint8x16_t = simd_shuffle!(
66060            a,
66061            b,
66062            [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30]
66063        );
66064        let b0: uint8x16_t = simd_shuffle!(
66065            a,
66066            b,
66067            [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31]
66068        );
66069        transmute((a0, b0))
66070    }
66071}
66072#[doc = "Unzip vectors"]
66073#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzp_u16)"]
66074#[inline]
66075#[target_feature(enable = "neon")]
66076#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66077#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
66078#[cfg_attr(
66079    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66080    assert_instr(uzp1)
66081)]
66082#[cfg_attr(
66083    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66084    assert_instr(uzp2)
66085)]
66086#[cfg_attr(
66087    not(target_arch = "arm"),
66088    stable(feature = "neon_intrinsics", since = "1.59.0")
66089)]
66090#[cfg_attr(
66091    target_arch = "arm",
66092    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66093)]
66094pub fn vuzp_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4x2_t {
66095    unsafe {
66096        let a0: uint16x4_t = simd_shuffle!(a, b, [0, 2, 4, 6]);
66097        let b0: uint16x4_t = simd_shuffle!(a, b, [1, 3, 5, 7]);
66098        transmute((a0, b0))
66099    }
66100}
66101#[doc = "Unzip vectors"]
66102#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzpq_u16)"]
66103#[inline]
66104#[target_feature(enable = "neon")]
66105#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66106#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
66107#[cfg_attr(
66108    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66109    assert_instr(uzp1)
66110)]
66111#[cfg_attr(
66112    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66113    assert_instr(uzp2)
66114)]
66115#[cfg_attr(
66116    not(target_arch = "arm"),
66117    stable(feature = "neon_intrinsics", since = "1.59.0")
66118)]
66119#[cfg_attr(
66120    target_arch = "arm",
66121    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66122)]
66123pub fn vuzpq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8x2_t {
66124    unsafe {
66125        let a0: uint16x8_t = simd_shuffle!(a, b, [0, 2, 4, 6, 8, 10, 12, 14]);
66126        let b0: uint16x8_t = simd_shuffle!(a, b, [1, 3, 5, 7, 9, 11, 13, 15]);
66127        transmute((a0, b0))
66128    }
66129}
66130#[doc = "Unzip vectors"]
66131#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzpq_u32)"]
66132#[inline]
66133#[target_feature(enable = "neon")]
66134#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66135#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
66136#[cfg_attr(
66137    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66138    assert_instr(uzp1)
66139)]
66140#[cfg_attr(
66141    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66142    assert_instr(uzp2)
66143)]
66144#[cfg_attr(
66145    not(target_arch = "arm"),
66146    stable(feature = "neon_intrinsics", since = "1.59.0")
66147)]
66148#[cfg_attr(
66149    target_arch = "arm",
66150    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66151)]
66152pub fn vuzpq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4x2_t {
66153    unsafe {
66154        let a0: uint32x4_t = simd_shuffle!(a, b, [0, 2, 4, 6]);
66155        let b0: uint32x4_t = simd_shuffle!(a, b, [1, 3, 5, 7]);
66156        transmute((a0, b0))
66157    }
66158}
66159#[doc = "Unzip vectors"]
66160#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzp_p8)"]
66161#[inline]
66162#[target_feature(enable = "neon")]
66163#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66164#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
66165#[cfg_attr(
66166    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66167    assert_instr(uzp1)
66168)]
66169#[cfg_attr(
66170    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66171    assert_instr(uzp2)
66172)]
66173#[cfg_attr(
66174    not(target_arch = "arm"),
66175    stable(feature = "neon_intrinsics", since = "1.59.0")
66176)]
66177#[cfg_attr(
66178    target_arch = "arm",
66179    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66180)]
66181pub fn vuzp_p8(a: poly8x8_t, b: poly8x8_t) -> poly8x8x2_t {
66182    unsafe {
66183        let a0: poly8x8_t = simd_shuffle!(a, b, [0, 2, 4, 6, 8, 10, 12, 14]);
66184        let b0: poly8x8_t = simd_shuffle!(a, b, [1, 3, 5, 7, 9, 11, 13, 15]);
66185        transmute((a0, b0))
66186    }
66187}
66188#[doc = "Unzip vectors"]
66189#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzpq_p8)"]
66190#[inline]
66191#[target_feature(enable = "neon")]
66192#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66193#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
66194#[cfg_attr(
66195    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66196    assert_instr(uzp1)
66197)]
66198#[cfg_attr(
66199    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66200    assert_instr(uzp2)
66201)]
66202#[cfg_attr(
66203    not(target_arch = "arm"),
66204    stable(feature = "neon_intrinsics", since = "1.59.0")
66205)]
66206#[cfg_attr(
66207    target_arch = "arm",
66208    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66209)]
66210pub fn vuzpq_p8(a: poly8x16_t, b: poly8x16_t) -> poly8x16x2_t {
66211    unsafe {
66212        let a0: poly8x16_t = simd_shuffle!(
66213            a,
66214            b,
66215            [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30]
66216        );
66217        let b0: poly8x16_t = simd_shuffle!(
66218            a,
66219            b,
66220            [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31]
66221        );
66222        transmute((a0, b0))
66223    }
66224}
66225#[doc = "Unzip vectors"]
66226#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzp_p16)"]
66227#[inline]
66228#[target_feature(enable = "neon")]
66229#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66230#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
66231#[cfg_attr(
66232    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66233    assert_instr(uzp1)
66234)]
66235#[cfg_attr(
66236    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66237    assert_instr(uzp2)
66238)]
66239#[cfg_attr(
66240    not(target_arch = "arm"),
66241    stable(feature = "neon_intrinsics", since = "1.59.0")
66242)]
66243#[cfg_attr(
66244    target_arch = "arm",
66245    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66246)]
66247pub fn vuzp_p16(a: poly16x4_t, b: poly16x4_t) -> poly16x4x2_t {
66248    unsafe {
66249        let a0: poly16x4_t = simd_shuffle!(a, b, [0, 2, 4, 6]);
66250        let b0: poly16x4_t = simd_shuffle!(a, b, [1, 3, 5, 7]);
66251        transmute((a0, b0))
66252    }
66253}
66254#[doc = "Unzip vectors"]
66255#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzpq_p16)"]
66256#[inline]
66257#[target_feature(enable = "neon")]
66258#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66259#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
66260#[cfg_attr(
66261    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66262    assert_instr(uzp1)
66263)]
66264#[cfg_attr(
66265    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66266    assert_instr(uzp2)
66267)]
66268#[cfg_attr(
66269    not(target_arch = "arm"),
66270    stable(feature = "neon_intrinsics", since = "1.59.0")
66271)]
66272#[cfg_attr(
66273    target_arch = "arm",
66274    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66275)]
66276pub fn vuzpq_p16(a: poly16x8_t, b: poly16x8_t) -> poly16x8x2_t {
66277    unsafe {
66278        let a0: poly16x8_t = simd_shuffle!(a, b, [0, 2, 4, 6, 8, 10, 12, 14]);
66279        let b0: poly16x8_t = simd_shuffle!(a, b, [1, 3, 5, 7, 9, 11, 13, 15]);
66280        transmute((a0, b0))
66281    }
66282}
66283#[doc = "Zip vectors"]
66284#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzip_f16)"]
66285#[inline]
66286#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66287#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vzip.16"))]
66288#[cfg_attr(
66289    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66290    assert_instr(zip1)
66291)]
66292#[cfg_attr(
66293    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66294    assert_instr(zip2)
66295)]
66296#[target_feature(enable = "neon,fp16")]
66297#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
66298#[cfg(not(target_arch = "arm64ec"))]
66299pub fn vzip_f16(a: float16x4_t, b: float16x4_t) -> float16x4x2_t {
66300    unsafe {
66301        let a0: float16x4_t = simd_shuffle!(a, b, [0, 4, 1, 5]);
66302        let b0: float16x4_t = simd_shuffle!(a, b, [2, 6, 3, 7]);
66303        transmute((a0, b0))
66304    }
66305}
66306#[doc = "Zip vectors"]
66307#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzipq_f16)"]
66308#[inline]
66309#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66310#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vzip.16"))]
66311#[cfg_attr(
66312    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66313    assert_instr(zip1)
66314)]
66315#[cfg_attr(
66316    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66317    assert_instr(zip2)
66318)]
66319#[target_feature(enable = "neon,fp16")]
66320#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
66321#[cfg(not(target_arch = "arm64ec"))]
66322pub fn vzipq_f16(a: float16x8_t, b: float16x8_t) -> float16x8x2_t {
66323    unsafe {
66324        let a0: float16x8_t = simd_shuffle!(a, b, [0, 8, 1, 9, 2, 10, 3, 11]);
66325        let b0: float16x8_t = simd_shuffle!(a, b, [4, 12, 5, 13, 6, 14, 7, 15]);
66326        transmute((a0, b0))
66327    }
66328}
66329#[doc = "Zip vectors"]
66330#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzip_f32)"]
66331#[inline]
66332#[target_feature(enable = "neon")]
66333#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66334#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
66335#[cfg_attr(
66336    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66337    assert_instr(zip1)
66338)]
66339#[cfg_attr(
66340    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66341    assert_instr(zip2)
66342)]
66343#[cfg_attr(
66344    not(target_arch = "arm"),
66345    stable(feature = "neon_intrinsics", since = "1.59.0")
66346)]
66347#[cfg_attr(
66348    target_arch = "arm",
66349    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66350)]
66351pub fn vzip_f32(a: float32x2_t, b: float32x2_t) -> float32x2x2_t {
66352    unsafe {
66353        let a0: float32x2_t = simd_shuffle!(a, b, [0, 2]);
66354        let b0: float32x2_t = simd_shuffle!(a, b, [1, 3]);
66355        transmute((a0, b0))
66356    }
66357}
66358#[doc = "Zip vectors"]
66359#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzip_s32)"]
66360#[inline]
66361#[target_feature(enable = "neon")]
66362#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66363#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
66364#[cfg_attr(
66365    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66366    assert_instr(zip1)
66367)]
66368#[cfg_attr(
66369    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66370    assert_instr(zip2)
66371)]
66372#[cfg_attr(
66373    not(target_arch = "arm"),
66374    stable(feature = "neon_intrinsics", since = "1.59.0")
66375)]
66376#[cfg_attr(
66377    target_arch = "arm",
66378    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66379)]
66380pub fn vzip_s32(a: int32x2_t, b: int32x2_t) -> int32x2x2_t {
66381    unsafe {
66382        let a0: int32x2_t = simd_shuffle!(a, b, [0, 2]);
66383        let b0: int32x2_t = simd_shuffle!(a, b, [1, 3]);
66384        transmute((a0, b0))
66385    }
66386}
66387#[doc = "Zip vectors"]
66388#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzip_u32)"]
66389#[inline]
66390#[target_feature(enable = "neon")]
66391#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66392#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
66393#[cfg_attr(
66394    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66395    assert_instr(zip1)
66396)]
66397#[cfg_attr(
66398    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66399    assert_instr(zip2)
66400)]
66401#[cfg_attr(
66402    not(target_arch = "arm"),
66403    stable(feature = "neon_intrinsics", since = "1.59.0")
66404)]
66405#[cfg_attr(
66406    target_arch = "arm",
66407    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66408)]
66409pub fn vzip_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2x2_t {
66410    unsafe {
66411        let a0: uint32x2_t = simd_shuffle!(a, b, [0, 2]);
66412        let b0: uint32x2_t = simd_shuffle!(a, b, [1, 3]);
66413        transmute((a0, b0))
66414    }
66415}
66416#[doc = "Zip vectors"]
66417#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzip_s8)"]
66418#[inline]
66419#[target_feature(enable = "neon")]
66420#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66421#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vzip))]
66422#[cfg_attr(
66423    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66424    assert_instr(zip1)
66425)]
66426#[cfg_attr(
66427    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66428    assert_instr(zip2)
66429)]
66430#[cfg_attr(
66431    not(target_arch = "arm"),
66432    stable(feature = "neon_intrinsics", since = "1.59.0")
66433)]
66434#[cfg_attr(
66435    target_arch = "arm",
66436    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66437)]
66438pub fn vzip_s8(a: int8x8_t, b: int8x8_t) -> int8x8x2_t {
66439    unsafe {
66440        let a0: int8x8_t = simd_shuffle!(a, b, [0, 8, 1, 9, 2, 10, 3, 11]);
66441        let b0: int8x8_t = simd_shuffle!(a, b, [4, 12, 5, 13, 6, 14, 7, 15]);
66442        transmute((a0, b0))
66443    }
66444}
66445#[doc = "Zip vectors"]
66446#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzip_s16)"]
66447#[inline]
66448#[target_feature(enable = "neon")]
66449#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66450#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vzip))]
66451#[cfg_attr(
66452    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66453    assert_instr(zip1)
66454)]
66455#[cfg_attr(
66456    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66457    assert_instr(zip2)
66458)]
66459#[cfg_attr(
66460    not(target_arch = "arm"),
66461    stable(feature = "neon_intrinsics", since = "1.59.0")
66462)]
66463#[cfg_attr(
66464    target_arch = "arm",
66465    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66466)]
66467pub fn vzip_s16(a: int16x4_t, b: int16x4_t) -> int16x4x2_t {
66468    unsafe {
66469        let a0: int16x4_t = simd_shuffle!(a, b, [0, 4, 1, 5]);
66470        let b0: int16x4_t = simd_shuffle!(a, b, [2, 6, 3, 7]);
66471        transmute((a0, b0))
66472    }
66473}
66474#[doc = "Zip vectors"]
66475#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzip_u8)"]
66476#[inline]
66477#[target_feature(enable = "neon")]
66478#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66479#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vzip))]
66480#[cfg_attr(
66481    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66482    assert_instr(zip1)
66483)]
66484#[cfg_attr(
66485    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66486    assert_instr(zip2)
66487)]
66488#[cfg_attr(
66489    not(target_arch = "arm"),
66490    stable(feature = "neon_intrinsics", since = "1.59.0")
66491)]
66492#[cfg_attr(
66493    target_arch = "arm",
66494    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66495)]
66496pub fn vzip_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8x2_t {
66497    unsafe {
66498        let a0: uint8x8_t = simd_shuffle!(a, b, [0, 8, 1, 9, 2, 10, 3, 11]);
66499        let b0: uint8x8_t = simd_shuffle!(a, b, [4, 12, 5, 13, 6, 14, 7, 15]);
66500        transmute((a0, b0))
66501    }
66502}
66503#[doc = "Zip vectors"]
66504#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzip_u16)"]
66505#[inline]
66506#[target_feature(enable = "neon")]
66507#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66508#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vzip))]
66509#[cfg_attr(
66510    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66511    assert_instr(zip1)
66512)]
66513#[cfg_attr(
66514    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66515    assert_instr(zip2)
66516)]
66517#[cfg_attr(
66518    not(target_arch = "arm"),
66519    stable(feature = "neon_intrinsics", since = "1.59.0")
66520)]
66521#[cfg_attr(
66522    target_arch = "arm",
66523    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66524)]
66525pub fn vzip_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4x2_t {
66526    unsafe {
66527        let a0: uint16x4_t = simd_shuffle!(a, b, [0, 4, 1, 5]);
66528        let b0: uint16x4_t = simd_shuffle!(a, b, [2, 6, 3, 7]);
66529        transmute((a0, b0))
66530    }
66531}
66532#[doc = "Zip vectors"]
66533#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzip_p8)"]
66534#[inline]
66535#[target_feature(enable = "neon")]
66536#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66537#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vzip))]
66538#[cfg_attr(
66539    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66540    assert_instr(zip1)
66541)]
66542#[cfg_attr(
66543    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66544    assert_instr(zip2)
66545)]
66546#[cfg_attr(
66547    not(target_arch = "arm"),
66548    stable(feature = "neon_intrinsics", since = "1.59.0")
66549)]
66550#[cfg_attr(
66551    target_arch = "arm",
66552    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66553)]
66554pub fn vzip_p8(a: poly8x8_t, b: poly8x8_t) -> poly8x8x2_t {
66555    unsafe {
66556        let a0: poly8x8_t = simd_shuffle!(a, b, [0, 8, 1, 9, 2, 10, 3, 11]);
66557        let b0: poly8x8_t = simd_shuffle!(a, b, [4, 12, 5, 13, 6, 14, 7, 15]);
66558        transmute((a0, b0))
66559    }
66560}
66561#[doc = "Zip vectors"]
66562#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzip_p16)"]
66563#[inline]
66564#[target_feature(enable = "neon")]
66565#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66566#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vzip))]
66567#[cfg_attr(
66568    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66569    assert_instr(zip1)
66570)]
66571#[cfg_attr(
66572    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66573    assert_instr(zip2)
66574)]
66575#[cfg_attr(
66576    not(target_arch = "arm"),
66577    stable(feature = "neon_intrinsics", since = "1.59.0")
66578)]
66579#[cfg_attr(
66580    target_arch = "arm",
66581    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66582)]
66583pub fn vzip_p16(a: poly16x4_t, b: poly16x4_t) -> poly16x4x2_t {
66584    unsafe {
66585        let a0: poly16x4_t = simd_shuffle!(a, b, [0, 4, 1, 5]);
66586        let b0: poly16x4_t = simd_shuffle!(a, b, [2, 6, 3, 7]);
66587        transmute((a0, b0))
66588    }
66589}
66590#[doc = "Zip vectors"]
66591#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzipq_f32)"]
66592#[inline]
66593#[target_feature(enable = "neon")]
66594#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66595#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
66596#[cfg_attr(
66597    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66598    assert_instr(zip1)
66599)]
66600#[cfg_attr(
66601    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66602    assert_instr(zip2)
66603)]
66604#[cfg_attr(
66605    not(target_arch = "arm"),
66606    stable(feature = "neon_intrinsics", since = "1.59.0")
66607)]
66608#[cfg_attr(
66609    target_arch = "arm",
66610    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66611)]
66612pub fn vzipq_f32(a: float32x4_t, b: float32x4_t) -> float32x4x2_t {
66613    unsafe {
66614        let a0: float32x4_t = simd_shuffle!(a, b, [0, 4, 1, 5]);
66615        let b0: float32x4_t = simd_shuffle!(a, b, [2, 6, 3, 7]);
66616        transmute((a0, b0))
66617    }
66618}
66619#[doc = "Zip vectors"]
66620#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzipq_s8)"]
66621#[inline]
66622#[target_feature(enable = "neon")]
66623#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66624#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
66625#[cfg_attr(
66626    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66627    assert_instr(zip1)
66628)]
66629#[cfg_attr(
66630    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66631    assert_instr(zip2)
66632)]
66633#[cfg_attr(
66634    not(target_arch = "arm"),
66635    stable(feature = "neon_intrinsics", since = "1.59.0")
66636)]
66637#[cfg_attr(
66638    target_arch = "arm",
66639    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66640)]
66641pub fn vzipq_s8(a: int8x16_t, b: int8x16_t) -> int8x16x2_t {
66642    unsafe {
66643        let a0: int8x16_t = simd_shuffle!(
66644            a,
66645            b,
66646            [0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23]
66647        );
66648        let b0: int8x16_t = simd_shuffle!(
66649            a,
66650            b,
66651            [8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31]
66652        );
66653        transmute((a0, b0))
66654    }
66655}
66656#[doc = "Zip vectors"]
66657#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzipq_s16)"]
66658#[inline]
66659#[target_feature(enable = "neon")]
66660#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66661#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
66662#[cfg_attr(
66663    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66664    assert_instr(zip1)
66665)]
66666#[cfg_attr(
66667    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66668    assert_instr(zip2)
66669)]
66670#[cfg_attr(
66671    not(target_arch = "arm"),
66672    stable(feature = "neon_intrinsics", since = "1.59.0")
66673)]
66674#[cfg_attr(
66675    target_arch = "arm",
66676    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66677)]
66678pub fn vzipq_s16(a: int16x8_t, b: int16x8_t) -> int16x8x2_t {
66679    unsafe {
66680        let a0: int16x8_t = simd_shuffle!(a, b, [0, 8, 1, 9, 2, 10, 3, 11]);
66681        let b0: int16x8_t = simd_shuffle!(a, b, [4, 12, 5, 13, 6, 14, 7, 15]);
66682        transmute((a0, b0))
66683    }
66684}
66685#[doc = "Zip vectors"]
66686#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzipq_s32)"]
66687#[inline]
66688#[target_feature(enable = "neon")]
66689#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66690#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
66691#[cfg_attr(
66692    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66693    assert_instr(zip1)
66694)]
66695#[cfg_attr(
66696    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66697    assert_instr(zip2)
66698)]
66699#[cfg_attr(
66700    not(target_arch = "arm"),
66701    stable(feature = "neon_intrinsics", since = "1.59.0")
66702)]
66703#[cfg_attr(
66704    target_arch = "arm",
66705    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66706)]
66707pub fn vzipq_s32(a: int32x4_t, b: int32x4_t) -> int32x4x2_t {
66708    unsafe {
66709        let a0: int32x4_t = simd_shuffle!(a, b, [0, 4, 1, 5]);
66710        let b0: int32x4_t = simd_shuffle!(a, b, [2, 6, 3, 7]);
66711        transmute((a0, b0))
66712    }
66713}
66714#[doc = "Zip vectors"]
66715#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzipq_u8)"]
66716#[inline]
66717#[target_feature(enable = "neon")]
66718#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66719#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
66720#[cfg_attr(
66721    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66722    assert_instr(zip1)
66723)]
66724#[cfg_attr(
66725    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66726    assert_instr(zip2)
66727)]
66728#[cfg_attr(
66729    not(target_arch = "arm"),
66730    stable(feature = "neon_intrinsics", since = "1.59.0")
66731)]
66732#[cfg_attr(
66733    target_arch = "arm",
66734    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66735)]
66736pub fn vzipq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16x2_t {
66737    unsafe {
66738        let a0: uint8x16_t = simd_shuffle!(
66739            a,
66740            b,
66741            [0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23]
66742        );
66743        let b0: uint8x16_t = simd_shuffle!(
66744            a,
66745            b,
66746            [8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31]
66747        );
66748        transmute((a0, b0))
66749    }
66750}
66751#[doc = "Zip vectors"]
66752#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzipq_u16)"]
66753#[inline]
66754#[target_feature(enable = "neon")]
66755#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66756#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
66757#[cfg_attr(
66758    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66759    assert_instr(zip1)
66760)]
66761#[cfg_attr(
66762    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66763    assert_instr(zip2)
66764)]
66765#[cfg_attr(
66766    not(target_arch = "arm"),
66767    stable(feature = "neon_intrinsics", since = "1.59.0")
66768)]
66769#[cfg_attr(
66770    target_arch = "arm",
66771    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66772)]
66773pub fn vzipq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8x2_t {
66774    unsafe {
66775        let a0: uint16x8_t = simd_shuffle!(a, b, [0, 8, 1, 9, 2, 10, 3, 11]);
66776        let b0: uint16x8_t = simd_shuffle!(a, b, [4, 12, 5, 13, 6, 14, 7, 15]);
66777        transmute((a0, b0))
66778    }
66779}
66780#[doc = "Zip vectors"]
66781#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzipq_u32)"]
66782#[inline]
66783#[target_feature(enable = "neon")]
66784#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66785#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
66786#[cfg_attr(
66787    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66788    assert_instr(zip1)
66789)]
66790#[cfg_attr(
66791    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66792    assert_instr(zip2)
66793)]
66794#[cfg_attr(
66795    not(target_arch = "arm"),
66796    stable(feature = "neon_intrinsics", since = "1.59.0")
66797)]
66798#[cfg_attr(
66799    target_arch = "arm",
66800    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66801)]
66802pub fn vzipq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4x2_t {
66803    unsafe {
66804        let a0: uint32x4_t = simd_shuffle!(a, b, [0, 4, 1, 5]);
66805        let b0: uint32x4_t = simd_shuffle!(a, b, [2, 6, 3, 7]);
66806        transmute((a0, b0))
66807    }
66808}
66809#[doc = "Zip vectors"]
66810#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzipq_p8)"]
66811#[inline]
66812#[target_feature(enable = "neon")]
66813#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66814#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
66815#[cfg_attr(
66816    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66817    assert_instr(zip1)
66818)]
66819#[cfg_attr(
66820    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66821    assert_instr(zip2)
66822)]
66823#[cfg_attr(
66824    not(target_arch = "arm"),
66825    stable(feature = "neon_intrinsics", since = "1.59.0")
66826)]
66827#[cfg_attr(
66828    target_arch = "arm",
66829    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66830)]
66831pub fn vzipq_p8(a: poly8x16_t, b: poly8x16_t) -> poly8x16x2_t {
66832    unsafe {
66833        let a0: poly8x16_t = simd_shuffle!(
66834            a,
66835            b,
66836            [0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23]
66837        );
66838        let b0: poly8x16_t = simd_shuffle!(
66839            a,
66840            b,
66841            [8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31]
66842        );
66843        transmute((a0, b0))
66844    }
66845}
66846#[doc = "Zip vectors"]
66847#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzipq_p16)"]
66848#[inline]
66849#[target_feature(enable = "neon")]
66850#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66851#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
66852#[cfg_attr(
66853    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66854    assert_instr(zip1)
66855)]
66856#[cfg_attr(
66857    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66858    assert_instr(zip2)
66859)]
66860#[cfg_attr(
66861    not(target_arch = "arm"),
66862    stable(feature = "neon_intrinsics", since = "1.59.0")
66863)]
66864#[cfg_attr(
66865    target_arch = "arm",
66866    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66867)]
66868pub fn vzipq_p16(a: poly16x8_t, b: poly16x8_t) -> poly16x8x2_t {
66869    unsafe {
66870        let a0: poly16x8_t = simd_shuffle!(a, b, [0, 8, 1, 9, 2, 10, 3, 11]);
66871        let b0: poly16x8_t = simd_shuffle!(a, b, [4, 12, 5, 13, 6, 14, 7, 15]);
66872        transmute((a0, b0))
66873    }
66874}