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#[cfg_attr(
823    not(target_arch = "arm"),
824    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
825)]
826#[cfg_attr(
827    target_arch = "arm",
828    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
829)]
830#[cfg(not(target_arch = "arm64ec"))]
831pub fn vabd_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t {
832    unsafe extern "unadjusted" {
833        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vabds.v4f16")]
834        #[cfg_attr(
835            any(target_arch = "aarch64", target_arch = "arm64ec"),
836            link_name = "llvm.aarch64.neon.fabd.v4f16"
837        )]
838        fn _vabd_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t;
839    }
840    unsafe { _vabd_f16(a, b) }
841}
842#[doc = "Absolute difference between the arguments of Floating"]
843#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabdq_f16)"]
844#[inline]
845#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
846#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabd.f16"))]
847#[cfg_attr(
848    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
849    assert_instr(fabd)
850)]
851#[target_feature(enable = "neon,fp16")]
852#[cfg_attr(
853    not(target_arch = "arm"),
854    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
855)]
856#[cfg_attr(
857    target_arch = "arm",
858    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
859)]
860#[cfg(not(target_arch = "arm64ec"))]
861pub fn vabdq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t {
862    unsafe extern "unadjusted" {
863        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vabds.v8f16")]
864        #[cfg_attr(
865            any(target_arch = "aarch64", target_arch = "arm64ec"),
866            link_name = "llvm.aarch64.neon.fabd.v8f16"
867        )]
868        fn _vabdq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t;
869    }
870    unsafe { _vabdq_f16(a, b) }
871}
872#[doc = "Absolute difference between the arguments of Floating"]
873#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabd_f32)"]
874#[inline]
875#[target_feature(enable = "neon")]
876#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
877#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabd.f32"))]
878#[cfg_attr(
879    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
880    assert_instr(fabd)
881)]
882#[cfg_attr(
883    not(target_arch = "arm"),
884    stable(feature = "neon_intrinsics", since = "1.59.0")
885)]
886#[cfg_attr(
887    target_arch = "arm",
888    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
889)]
890pub fn vabd_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
891    unsafe extern "unadjusted" {
892        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vabds.v2f32")]
893        #[cfg_attr(
894            any(target_arch = "aarch64", target_arch = "arm64ec"),
895            link_name = "llvm.aarch64.neon.fabd.v2f32"
896        )]
897        fn _vabd_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t;
898    }
899    unsafe { _vabd_f32(a, b) }
900}
901#[doc = "Absolute difference between the arguments of Floating"]
902#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabdq_f32)"]
903#[inline]
904#[target_feature(enable = "neon")]
905#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
906#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabd.f32"))]
907#[cfg_attr(
908    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
909    assert_instr(fabd)
910)]
911#[cfg_attr(
912    not(target_arch = "arm"),
913    stable(feature = "neon_intrinsics", since = "1.59.0")
914)]
915#[cfg_attr(
916    target_arch = "arm",
917    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
918)]
919pub fn vabdq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t {
920    unsafe extern "unadjusted" {
921        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vabds.v4f32")]
922        #[cfg_attr(
923            any(target_arch = "aarch64", target_arch = "arm64ec"),
924            link_name = "llvm.aarch64.neon.fabd.v4f32"
925        )]
926        fn _vabdq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t;
927    }
928    unsafe { _vabdq_f32(a, b) }
929}
930#[doc = "Absolute difference between the arguments"]
931#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabd_s8)"]
932#[inline]
933#[target_feature(enable = "neon")]
934#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
935#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabd.s8"))]
936#[cfg_attr(
937    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
938    assert_instr(sabd)
939)]
940#[cfg_attr(
941    not(target_arch = "arm"),
942    stable(feature = "neon_intrinsics", since = "1.59.0")
943)]
944#[cfg_attr(
945    target_arch = "arm",
946    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
947)]
948pub fn vabd_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
949    unsafe extern "unadjusted" {
950        #[cfg_attr(
951            any(target_arch = "aarch64", target_arch = "arm64ec"),
952            link_name = "llvm.aarch64.neon.sabd.v8i8"
953        )]
954        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vabds.v8i8")]
955        fn _vabd_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t;
956    }
957    unsafe { _vabd_s8(a, b) }
958}
959#[doc = "Absolute difference between the arguments"]
960#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabdq_s8)"]
961#[inline]
962#[target_feature(enable = "neon")]
963#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
964#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabd.s8"))]
965#[cfg_attr(
966    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
967    assert_instr(sabd)
968)]
969#[cfg_attr(
970    not(target_arch = "arm"),
971    stable(feature = "neon_intrinsics", since = "1.59.0")
972)]
973#[cfg_attr(
974    target_arch = "arm",
975    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
976)]
977pub fn vabdq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
978    unsafe extern "unadjusted" {
979        #[cfg_attr(
980            any(target_arch = "aarch64", target_arch = "arm64ec"),
981            link_name = "llvm.aarch64.neon.sabd.v16i8"
982        )]
983        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vabds.v16i8")]
984        fn _vabdq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t;
985    }
986    unsafe { _vabdq_s8(a, b) }
987}
988#[doc = "Absolute difference between the arguments"]
989#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabd_s16)"]
990#[inline]
991#[target_feature(enable = "neon")]
992#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
993#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabd.s16"))]
994#[cfg_attr(
995    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
996    assert_instr(sabd)
997)]
998#[cfg_attr(
999    not(target_arch = "arm"),
1000    stable(feature = "neon_intrinsics", since = "1.59.0")
1001)]
1002#[cfg_attr(
1003    target_arch = "arm",
1004    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1005)]
1006pub fn vabd_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
1007    unsafe extern "unadjusted" {
1008        #[cfg_attr(
1009            any(target_arch = "aarch64", target_arch = "arm64ec"),
1010            link_name = "llvm.aarch64.neon.sabd.v4i16"
1011        )]
1012        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vabds.v4i16")]
1013        fn _vabd_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t;
1014    }
1015    unsafe { _vabd_s16(a, b) }
1016}
1017#[doc = "Absolute difference between the arguments"]
1018#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabdq_s16)"]
1019#[inline]
1020#[target_feature(enable = "neon")]
1021#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1022#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabd.s16"))]
1023#[cfg_attr(
1024    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1025    assert_instr(sabd)
1026)]
1027#[cfg_attr(
1028    not(target_arch = "arm"),
1029    stable(feature = "neon_intrinsics", since = "1.59.0")
1030)]
1031#[cfg_attr(
1032    target_arch = "arm",
1033    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1034)]
1035pub fn vabdq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
1036    unsafe extern "unadjusted" {
1037        #[cfg_attr(
1038            any(target_arch = "aarch64", target_arch = "arm64ec"),
1039            link_name = "llvm.aarch64.neon.sabd.v8i16"
1040        )]
1041        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vabds.v8i16")]
1042        fn _vabdq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t;
1043    }
1044    unsafe { _vabdq_s16(a, b) }
1045}
1046#[doc = "Absolute difference between the arguments"]
1047#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabd_s32)"]
1048#[inline]
1049#[target_feature(enable = "neon")]
1050#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1051#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabd.s32"))]
1052#[cfg_attr(
1053    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1054    assert_instr(sabd)
1055)]
1056#[cfg_attr(
1057    not(target_arch = "arm"),
1058    stable(feature = "neon_intrinsics", since = "1.59.0")
1059)]
1060#[cfg_attr(
1061    target_arch = "arm",
1062    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1063)]
1064pub fn vabd_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
1065    unsafe extern "unadjusted" {
1066        #[cfg_attr(
1067            any(target_arch = "aarch64", target_arch = "arm64ec"),
1068            link_name = "llvm.aarch64.neon.sabd.v2i32"
1069        )]
1070        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vabds.v2i32")]
1071        fn _vabd_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t;
1072    }
1073    unsafe { _vabd_s32(a, b) }
1074}
1075#[doc = "Absolute difference between the arguments"]
1076#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabdq_s32)"]
1077#[inline]
1078#[target_feature(enable = "neon")]
1079#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1080#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabd.s32"))]
1081#[cfg_attr(
1082    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1083    assert_instr(sabd)
1084)]
1085#[cfg_attr(
1086    not(target_arch = "arm"),
1087    stable(feature = "neon_intrinsics", since = "1.59.0")
1088)]
1089#[cfg_attr(
1090    target_arch = "arm",
1091    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1092)]
1093pub fn vabdq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
1094    unsafe extern "unadjusted" {
1095        #[cfg_attr(
1096            any(target_arch = "aarch64", target_arch = "arm64ec"),
1097            link_name = "llvm.aarch64.neon.sabd.v4i32"
1098        )]
1099        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vabds.v4i32")]
1100        fn _vabdq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t;
1101    }
1102    unsafe { _vabdq_s32(a, b) }
1103}
1104#[doc = "Absolute difference between the arguments"]
1105#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabd_u8)"]
1106#[inline]
1107#[target_feature(enable = "neon")]
1108#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1109#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabd.u8"))]
1110#[cfg_attr(
1111    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1112    assert_instr(uabd)
1113)]
1114#[cfg_attr(
1115    not(target_arch = "arm"),
1116    stable(feature = "neon_intrinsics", since = "1.59.0")
1117)]
1118#[cfg_attr(
1119    target_arch = "arm",
1120    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1121)]
1122pub fn vabd_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
1123    unsafe extern "unadjusted" {
1124        #[cfg_attr(
1125            any(target_arch = "aarch64", target_arch = "arm64ec"),
1126            link_name = "llvm.aarch64.neon.uabd.v8i8"
1127        )]
1128        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vabdu.v8i8")]
1129        fn _vabd_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t;
1130    }
1131    unsafe { _vabd_u8(a, b) }
1132}
1133#[doc = "Absolute difference between the arguments"]
1134#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabdq_u8)"]
1135#[inline]
1136#[target_feature(enable = "neon")]
1137#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1138#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabd.u8"))]
1139#[cfg_attr(
1140    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1141    assert_instr(uabd)
1142)]
1143#[cfg_attr(
1144    not(target_arch = "arm"),
1145    stable(feature = "neon_intrinsics", since = "1.59.0")
1146)]
1147#[cfg_attr(
1148    target_arch = "arm",
1149    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1150)]
1151pub fn vabdq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
1152    unsafe extern "unadjusted" {
1153        #[cfg_attr(
1154            any(target_arch = "aarch64", target_arch = "arm64ec"),
1155            link_name = "llvm.aarch64.neon.uabd.v16i8"
1156        )]
1157        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vabdu.v16i8")]
1158        fn _vabdq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t;
1159    }
1160    unsafe { _vabdq_u8(a, b) }
1161}
1162#[doc = "Absolute difference between the arguments"]
1163#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabd_u16)"]
1164#[inline]
1165#[target_feature(enable = "neon")]
1166#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1167#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabd.u16"))]
1168#[cfg_attr(
1169    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1170    assert_instr(uabd)
1171)]
1172#[cfg_attr(
1173    not(target_arch = "arm"),
1174    stable(feature = "neon_intrinsics", since = "1.59.0")
1175)]
1176#[cfg_attr(
1177    target_arch = "arm",
1178    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1179)]
1180pub fn vabd_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
1181    unsafe extern "unadjusted" {
1182        #[cfg_attr(
1183            any(target_arch = "aarch64", target_arch = "arm64ec"),
1184            link_name = "llvm.aarch64.neon.uabd.v4i16"
1185        )]
1186        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vabdu.v4i16")]
1187        fn _vabd_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t;
1188    }
1189    unsafe { _vabd_u16(a, b) }
1190}
1191#[doc = "Absolute difference between the arguments"]
1192#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabdq_u16)"]
1193#[inline]
1194#[target_feature(enable = "neon")]
1195#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1196#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabd.u16"))]
1197#[cfg_attr(
1198    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1199    assert_instr(uabd)
1200)]
1201#[cfg_attr(
1202    not(target_arch = "arm"),
1203    stable(feature = "neon_intrinsics", since = "1.59.0")
1204)]
1205#[cfg_attr(
1206    target_arch = "arm",
1207    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1208)]
1209pub fn vabdq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
1210    unsafe extern "unadjusted" {
1211        #[cfg_attr(
1212            any(target_arch = "aarch64", target_arch = "arm64ec"),
1213            link_name = "llvm.aarch64.neon.uabd.v8i16"
1214        )]
1215        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vabdu.v8i16")]
1216        fn _vabdq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t;
1217    }
1218    unsafe { _vabdq_u16(a, b) }
1219}
1220#[doc = "Absolute difference between the arguments"]
1221#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabd_u32)"]
1222#[inline]
1223#[target_feature(enable = "neon")]
1224#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1225#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabd.u32"))]
1226#[cfg_attr(
1227    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1228    assert_instr(uabd)
1229)]
1230#[cfg_attr(
1231    not(target_arch = "arm"),
1232    stable(feature = "neon_intrinsics", since = "1.59.0")
1233)]
1234#[cfg_attr(
1235    target_arch = "arm",
1236    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1237)]
1238pub fn vabd_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
1239    unsafe extern "unadjusted" {
1240        #[cfg_attr(
1241            any(target_arch = "aarch64", target_arch = "arm64ec"),
1242            link_name = "llvm.aarch64.neon.uabd.v2i32"
1243        )]
1244        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vabdu.v2i32")]
1245        fn _vabd_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t;
1246    }
1247    unsafe { _vabd_u32(a, b) }
1248}
1249#[doc = "Absolute difference between the arguments"]
1250#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabdq_u32)"]
1251#[inline]
1252#[target_feature(enable = "neon")]
1253#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1254#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabd.u32"))]
1255#[cfg_attr(
1256    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1257    assert_instr(uabd)
1258)]
1259#[cfg_attr(
1260    not(target_arch = "arm"),
1261    stable(feature = "neon_intrinsics", since = "1.59.0")
1262)]
1263#[cfg_attr(
1264    target_arch = "arm",
1265    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1266)]
1267pub fn vabdq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
1268    unsafe extern "unadjusted" {
1269        #[cfg_attr(
1270            any(target_arch = "aarch64", target_arch = "arm64ec"),
1271            link_name = "llvm.aarch64.neon.uabd.v4i32"
1272        )]
1273        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vabdu.v4i32")]
1274        fn _vabdq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t;
1275    }
1276    unsafe { _vabdq_u32(a, b) }
1277}
1278#[doc = "Signed Absolute difference Long"]
1279#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabdl_s8)"]
1280#[inline]
1281#[target_feature(enable = "neon")]
1282#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1283#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabdl.s8"))]
1284#[cfg_attr(
1285    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1286    assert_instr(sabdl)
1287)]
1288#[cfg_attr(
1289    not(target_arch = "arm"),
1290    stable(feature = "neon_intrinsics", since = "1.59.0")
1291)]
1292#[cfg_attr(
1293    target_arch = "arm",
1294    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1295)]
1296pub fn vabdl_s8(a: int8x8_t, b: int8x8_t) -> int16x8_t {
1297    unsafe {
1298        let c: uint8x8_t = simd_cast(vabd_s8(a, b));
1299        simd_cast(c)
1300    }
1301}
1302#[doc = "Signed Absolute difference Long"]
1303#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabdl_s16)"]
1304#[inline]
1305#[target_feature(enable = "neon")]
1306#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1307#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabdl.s16"))]
1308#[cfg_attr(
1309    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1310    assert_instr(sabdl)
1311)]
1312#[cfg_attr(
1313    not(target_arch = "arm"),
1314    stable(feature = "neon_intrinsics", since = "1.59.0")
1315)]
1316#[cfg_attr(
1317    target_arch = "arm",
1318    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1319)]
1320pub fn vabdl_s16(a: int16x4_t, b: int16x4_t) -> int32x4_t {
1321    unsafe {
1322        let c: uint16x4_t = simd_cast(vabd_s16(a, b));
1323        simd_cast(c)
1324    }
1325}
1326#[doc = "Signed Absolute difference Long"]
1327#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabdl_s32)"]
1328#[inline]
1329#[target_feature(enable = "neon")]
1330#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1331#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabdl.s32"))]
1332#[cfg_attr(
1333    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1334    assert_instr(sabdl)
1335)]
1336#[cfg_attr(
1337    not(target_arch = "arm"),
1338    stable(feature = "neon_intrinsics", since = "1.59.0")
1339)]
1340#[cfg_attr(
1341    target_arch = "arm",
1342    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1343)]
1344pub fn vabdl_s32(a: int32x2_t, b: int32x2_t) -> int64x2_t {
1345    unsafe {
1346        let c: uint32x2_t = simd_cast(vabd_s32(a, b));
1347        simd_cast(c)
1348    }
1349}
1350#[doc = "Unsigned Absolute difference Long"]
1351#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabdl_u8)"]
1352#[inline]
1353#[target_feature(enable = "neon")]
1354#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1355#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabdl.u8"))]
1356#[cfg_attr(
1357    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1358    assert_instr(uabdl)
1359)]
1360#[cfg_attr(
1361    not(target_arch = "arm"),
1362    stable(feature = "neon_intrinsics", since = "1.59.0")
1363)]
1364#[cfg_attr(
1365    target_arch = "arm",
1366    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1367)]
1368pub fn vabdl_u8(a: uint8x8_t, b: uint8x8_t) -> uint16x8_t {
1369    unsafe { simd_cast(vabd_u8(a, b)) }
1370}
1371#[doc = "Unsigned Absolute difference Long"]
1372#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabdl_u16)"]
1373#[inline]
1374#[target_feature(enable = "neon")]
1375#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1376#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabdl.u16"))]
1377#[cfg_attr(
1378    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1379    assert_instr(uabdl)
1380)]
1381#[cfg_attr(
1382    not(target_arch = "arm"),
1383    stable(feature = "neon_intrinsics", since = "1.59.0")
1384)]
1385#[cfg_attr(
1386    target_arch = "arm",
1387    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1388)]
1389pub fn vabdl_u16(a: uint16x4_t, b: uint16x4_t) -> uint32x4_t {
1390    unsafe { simd_cast(vabd_u16(a, b)) }
1391}
1392#[doc = "Unsigned Absolute difference Long"]
1393#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabdl_u32)"]
1394#[inline]
1395#[target_feature(enable = "neon")]
1396#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1397#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabdl.u32"))]
1398#[cfg_attr(
1399    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1400    assert_instr(uabdl)
1401)]
1402#[cfg_attr(
1403    not(target_arch = "arm"),
1404    stable(feature = "neon_intrinsics", since = "1.59.0")
1405)]
1406#[cfg_attr(
1407    target_arch = "arm",
1408    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1409)]
1410pub fn vabdl_u32(a: uint32x2_t, b: uint32x2_t) -> uint64x2_t {
1411    unsafe { simd_cast(vabd_u32(a, b)) }
1412}
1413#[doc = "Floating-point absolute value"]
1414#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabs_f16)"]
1415#[inline]
1416#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
1417#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vabs))]
1418#[cfg_attr(
1419    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1420    assert_instr(fabs)
1421)]
1422#[target_feature(enable = "neon,fp16")]
1423#[cfg_attr(
1424    not(target_arch = "arm"),
1425    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
1426)]
1427#[cfg_attr(
1428    target_arch = "arm",
1429    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1430)]
1431#[cfg(not(target_arch = "arm64ec"))]
1432pub fn vabs_f16(a: float16x4_t) -> float16x4_t {
1433    unsafe { simd_fabs(a) }
1434}
1435#[doc = "Floating-point absolute value"]
1436#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabsq_f16)"]
1437#[inline]
1438#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
1439#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vabs))]
1440#[cfg_attr(
1441    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1442    assert_instr(fabs)
1443)]
1444#[target_feature(enable = "neon,fp16")]
1445#[cfg_attr(
1446    not(target_arch = "arm"),
1447    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
1448)]
1449#[cfg_attr(
1450    target_arch = "arm",
1451    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1452)]
1453#[cfg(not(target_arch = "arm64ec"))]
1454pub fn vabsq_f16(a: float16x8_t) -> float16x8_t {
1455    unsafe { simd_fabs(a) }
1456}
1457#[doc = "Floating-point absolute value"]
1458#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabs_f32)"]
1459#[inline]
1460#[target_feature(enable = "neon")]
1461#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1462#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vabs))]
1463#[cfg_attr(
1464    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1465    assert_instr(fabs)
1466)]
1467#[cfg_attr(
1468    not(target_arch = "arm"),
1469    stable(feature = "neon_intrinsics", since = "1.59.0")
1470)]
1471#[cfg_attr(
1472    target_arch = "arm",
1473    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1474)]
1475pub fn vabs_f32(a: float32x2_t) -> float32x2_t {
1476    unsafe { simd_fabs(a) }
1477}
1478#[doc = "Floating-point absolute value"]
1479#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabsq_f32)"]
1480#[inline]
1481#[target_feature(enable = "neon")]
1482#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1483#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vabs))]
1484#[cfg_attr(
1485    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1486    assert_instr(fabs)
1487)]
1488#[cfg_attr(
1489    not(target_arch = "arm"),
1490    stable(feature = "neon_intrinsics", since = "1.59.0")
1491)]
1492#[cfg_attr(
1493    target_arch = "arm",
1494    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1495)]
1496pub fn vabsq_f32(a: float32x4_t) -> float32x4_t {
1497    unsafe { simd_fabs(a) }
1498}
1499#[doc = "Absolute value (wrapping)."]
1500#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabs_s8)"]
1501#[inline]
1502#[target_feature(enable = "neon")]
1503#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1504#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vabs))]
1505#[cfg_attr(
1506    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1507    assert_instr(abs)
1508)]
1509#[cfg_attr(
1510    not(target_arch = "arm"),
1511    stable(feature = "neon_intrinsics", since = "1.59.0")
1512)]
1513#[cfg_attr(
1514    target_arch = "arm",
1515    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1516)]
1517pub fn vabs_s8(a: int8x8_t) -> int8x8_t {
1518    unsafe {
1519        let neg: int8x8_t = simd_neg(a);
1520        let mask: int8x8_t = simd_ge(a, neg);
1521        simd_select(mask, a, neg)
1522    }
1523}
1524#[doc = "Absolute value (wrapping)."]
1525#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabsq_s8)"]
1526#[inline]
1527#[target_feature(enable = "neon")]
1528#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1529#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vabs))]
1530#[cfg_attr(
1531    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1532    assert_instr(abs)
1533)]
1534#[cfg_attr(
1535    not(target_arch = "arm"),
1536    stable(feature = "neon_intrinsics", since = "1.59.0")
1537)]
1538#[cfg_attr(
1539    target_arch = "arm",
1540    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1541)]
1542pub fn vabsq_s8(a: int8x16_t) -> int8x16_t {
1543    unsafe {
1544        let neg: int8x16_t = simd_neg(a);
1545        let mask: int8x16_t = simd_ge(a, neg);
1546        simd_select(mask, a, neg)
1547    }
1548}
1549#[doc = "Absolute value (wrapping)."]
1550#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabs_s16)"]
1551#[inline]
1552#[target_feature(enable = "neon")]
1553#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1554#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vabs))]
1555#[cfg_attr(
1556    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1557    assert_instr(abs)
1558)]
1559#[cfg_attr(
1560    not(target_arch = "arm"),
1561    stable(feature = "neon_intrinsics", since = "1.59.0")
1562)]
1563#[cfg_attr(
1564    target_arch = "arm",
1565    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1566)]
1567pub fn vabs_s16(a: int16x4_t) -> int16x4_t {
1568    unsafe {
1569        let neg: int16x4_t = simd_neg(a);
1570        let mask: int16x4_t = simd_ge(a, neg);
1571        simd_select(mask, a, neg)
1572    }
1573}
1574#[doc = "Absolute value (wrapping)."]
1575#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabsq_s16)"]
1576#[inline]
1577#[target_feature(enable = "neon")]
1578#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1579#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vabs))]
1580#[cfg_attr(
1581    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1582    assert_instr(abs)
1583)]
1584#[cfg_attr(
1585    not(target_arch = "arm"),
1586    stable(feature = "neon_intrinsics", since = "1.59.0")
1587)]
1588#[cfg_attr(
1589    target_arch = "arm",
1590    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1591)]
1592pub fn vabsq_s16(a: int16x8_t) -> int16x8_t {
1593    unsafe {
1594        let neg: int16x8_t = simd_neg(a);
1595        let mask: int16x8_t = simd_ge(a, neg);
1596        simd_select(mask, a, neg)
1597    }
1598}
1599#[doc = "Absolute value (wrapping)."]
1600#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabs_s32)"]
1601#[inline]
1602#[target_feature(enable = "neon")]
1603#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1604#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vabs))]
1605#[cfg_attr(
1606    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1607    assert_instr(abs)
1608)]
1609#[cfg_attr(
1610    not(target_arch = "arm"),
1611    stable(feature = "neon_intrinsics", since = "1.59.0")
1612)]
1613#[cfg_attr(
1614    target_arch = "arm",
1615    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1616)]
1617pub fn vabs_s32(a: int32x2_t) -> int32x2_t {
1618    unsafe {
1619        let neg: int32x2_t = simd_neg(a);
1620        let mask: int32x2_t = simd_ge(a, neg);
1621        simd_select(mask, a, neg)
1622    }
1623}
1624#[doc = "Absolute value (wrapping)."]
1625#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabsq_s32)"]
1626#[inline]
1627#[target_feature(enable = "neon")]
1628#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1629#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vabs))]
1630#[cfg_attr(
1631    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1632    assert_instr(abs)
1633)]
1634#[cfg_attr(
1635    not(target_arch = "arm"),
1636    stable(feature = "neon_intrinsics", since = "1.59.0")
1637)]
1638#[cfg_attr(
1639    target_arch = "arm",
1640    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1641)]
1642pub fn vabsq_s32(a: int32x4_t) -> int32x4_t {
1643    unsafe {
1644        let neg: int32x4_t = simd_neg(a);
1645        let mask: int32x4_t = simd_ge(a, neg);
1646        simd_select(mask, a, neg)
1647    }
1648}
1649#[doc = "Floating-point absolute value"]
1650#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabsh_f16)"]
1651#[inline]
1652#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
1653#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vabs))]
1654#[cfg_attr(
1655    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1656    assert_instr(fabs)
1657)]
1658#[target_feature(enable = "neon,fp16")]
1659#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
1660#[cfg(not(target_arch = "arm64ec"))]
1661pub fn vabsh_f16(a: f16) -> f16 {
1662    unsafe { simd_extract!(vabs_f16(vdup_n_f16(a)), 0) }
1663}
1664#[doc = "Floating-point Add (vector)."]
1665#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vadd_f16)"]
1666#[inline]
1667#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
1668#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vadd.f16"))]
1669#[cfg_attr(
1670    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1671    assert_instr(fadd)
1672)]
1673#[target_feature(enable = "neon,fp16")]
1674#[cfg_attr(
1675    not(target_arch = "arm"),
1676    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
1677)]
1678#[cfg_attr(
1679    target_arch = "arm",
1680    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1681)]
1682#[cfg(not(target_arch = "arm64ec"))]
1683pub fn vadd_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t {
1684    unsafe { simd_add(a, b) }
1685}
1686#[doc = "Floating-point Add (vector)."]
1687#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddq_f16)"]
1688#[inline]
1689#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
1690#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vadd.f16"))]
1691#[cfg_attr(
1692    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
1693    assert_instr(fadd)
1694)]
1695#[target_feature(enable = "neon,fp16")]
1696#[cfg_attr(
1697    not(target_arch = "arm"),
1698    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
1699)]
1700#[cfg_attr(
1701    target_arch = "arm",
1702    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1703)]
1704#[cfg(not(target_arch = "arm64ec"))]
1705pub fn vaddq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_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_f32)"]
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(fadd)
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_f32(a: float32x2_t, b: float32x2_t) -> float32x2_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_s16)"]
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_s16(a: int16x4_t, b: int16x4_t) -> int16x4_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_s32)"]
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_s32(a: int32x2_t, b: int32x2_t) -> int32x2_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_s8)"]
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_s8(a: int8x8_t, b: int8x8_t) -> int8x8_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_u16)"]
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_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_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/vadd_u32)"]
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(add)
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 vadd_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_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/vadd_u8)"]
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 vadd_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_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_f32)"]
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(fadd)
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_f32(a: float32x4_t, b: float32x4_t) -> float32x4_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_s16)"]
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_s16(a: int16x8_t, b: int16x8_t) -> int16x8_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_s32)"]
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_s32(a: int32x4_t, b: int32x4_t) -> int32x4_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_s64)"]
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_s64(a: int64x2_t, b: int64x2_t) -> int64x2_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_s8)"]
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_s8(a: int8x16_t, b: int8x16_t) -> int8x16_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_u16)"]
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_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_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_u32)"]
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_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
2000    unsafe { simd_add(a, b) }
2001}
2002#[doc = "Vector add."]
2003#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddq_u64)"]
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(vadd))]
2008#[cfg_attr(
2009    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2010    assert_instr(add)
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 vaddq_u64(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
2021    unsafe { simd_add(a, b) }
2022}
2023#[doc = "Vector add."]
2024#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddq_u8)"]
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(vadd))]
2029#[cfg_attr(
2030    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2031    assert_instr(add)
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_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
2042    unsafe { simd_add(a, b) }
2043}
2044#[doc = "Bitwise exclusive OR"]
2045#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vadd_p8)"]
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_p8(a: poly8x8_t, b: poly8x8_t) -> poly8x8_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_p8)"]
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_p8(a: poly8x16_t, b: poly8x16_t) -> poly8x16_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_p16)"]
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_p16(a: poly16x4_t, b: poly16x4_t) -> poly16x4_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_p16)"]
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_p16(a: poly16x8_t, b: poly16x8_t) -> poly16x8_t {
2126    unsafe { simd_xor(a, b) }
2127}
2128#[doc = "Bitwise exclusive OR"]
2129#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vadd_p64)"]
2130#[inline]
2131#[target_feature(enable = "neon")]
2132#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2133#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
2134#[cfg_attr(
2135    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2136    assert_instr(nop)
2137)]
2138#[cfg_attr(
2139    not(target_arch = "arm"),
2140    stable(feature = "neon_intrinsics", since = "1.59.0")
2141)]
2142#[cfg_attr(
2143    target_arch = "arm",
2144    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2145)]
2146pub fn vadd_p64(a: poly64x1_t, b: poly64x1_t) -> poly64x1_t {
2147    unsafe { simd_xor(a, b) }
2148}
2149#[doc = "Bitwise exclusive OR"]
2150#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddq_p64)"]
2151#[inline]
2152#[target_feature(enable = "neon")]
2153#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2154#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
2155#[cfg_attr(
2156    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2157    assert_instr(nop)
2158)]
2159#[cfg_attr(
2160    not(target_arch = "arm"),
2161    stable(feature = "neon_intrinsics", since = "1.59.0")
2162)]
2163#[cfg_attr(
2164    target_arch = "arm",
2165    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2166)]
2167pub fn vaddq_p64(a: poly64x2_t, b: poly64x2_t) -> poly64x2_t {
2168    unsafe { simd_xor(a, b) }
2169}
2170#[doc = "Add"]
2171#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddh_f16)"]
2172#[inline]
2173#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
2174#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vadd.f16"))]
2175#[cfg_attr(
2176    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2177    assert_instr(fadd)
2178)]
2179#[target_feature(enable = "neon,fp16")]
2180#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
2181#[cfg(not(target_arch = "arm64ec"))]
2182pub fn vaddh_f16(a: f16, b: f16) -> f16 {
2183    a + b
2184}
2185#[doc = "Add returning High Narrow (high half)."]
2186#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddhn_high_s16)"]
2187#[inline]
2188#[target_feature(enable = "neon")]
2189#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2190#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddhn))]
2191#[cfg_attr(
2192    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2193    assert_instr(addhn2)
2194)]
2195#[cfg_attr(
2196    not(target_arch = "arm"),
2197    stable(feature = "neon_intrinsics", since = "1.59.0")
2198)]
2199#[cfg_attr(
2200    target_arch = "arm",
2201    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2202)]
2203pub fn vaddhn_high_s16(r: int8x8_t, a: int16x8_t, b: int16x8_t) -> int8x16_t {
2204    unsafe {
2205        let x = simd_cast(simd_shr(simd_add(a, b), int16x8_t::splat(8)));
2206        simd_shuffle!(r, x, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15])
2207    }
2208}
2209#[doc = "Add returning High Narrow (high half)."]
2210#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddhn_high_s32)"]
2211#[inline]
2212#[target_feature(enable = "neon")]
2213#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2214#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddhn))]
2215#[cfg_attr(
2216    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2217    assert_instr(addhn2)
2218)]
2219#[cfg_attr(
2220    not(target_arch = "arm"),
2221    stable(feature = "neon_intrinsics", since = "1.59.0")
2222)]
2223#[cfg_attr(
2224    target_arch = "arm",
2225    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2226)]
2227pub fn vaddhn_high_s32(r: int16x4_t, a: int32x4_t, b: int32x4_t) -> int16x8_t {
2228    unsafe {
2229        let x = simd_cast(simd_shr(simd_add(a, b), int32x4_t::splat(16)));
2230        simd_shuffle!(r, x, [0, 1, 2, 3, 4, 5, 6, 7])
2231    }
2232}
2233#[doc = "Add returning High Narrow (high half)."]
2234#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddhn_high_s64)"]
2235#[inline]
2236#[target_feature(enable = "neon")]
2237#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2238#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddhn))]
2239#[cfg_attr(
2240    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2241    assert_instr(addhn2)
2242)]
2243#[cfg_attr(
2244    not(target_arch = "arm"),
2245    stable(feature = "neon_intrinsics", since = "1.59.0")
2246)]
2247#[cfg_attr(
2248    target_arch = "arm",
2249    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2250)]
2251pub fn vaddhn_high_s64(r: int32x2_t, a: int64x2_t, b: int64x2_t) -> int32x4_t {
2252    unsafe {
2253        let x = simd_cast(simd_shr(simd_add(a, b), int64x2_t::splat(32)));
2254        simd_shuffle!(r, x, [0, 1, 2, 3])
2255    }
2256}
2257#[doc = "Add returning High Narrow (high half)."]
2258#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddhn_high_u16)"]
2259#[inline]
2260#[target_feature(enable = "neon")]
2261#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2262#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddhn))]
2263#[cfg_attr(
2264    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2265    assert_instr(addhn2)
2266)]
2267#[cfg_attr(
2268    not(target_arch = "arm"),
2269    stable(feature = "neon_intrinsics", since = "1.59.0")
2270)]
2271#[cfg_attr(
2272    target_arch = "arm",
2273    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2274)]
2275pub fn vaddhn_high_u16(r: uint8x8_t, a: uint16x8_t, b: uint16x8_t) -> uint8x16_t {
2276    unsafe {
2277        let x = simd_cast(simd_shr(simd_add(a, b), uint16x8_t::splat(8)));
2278        simd_shuffle!(r, x, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15])
2279    }
2280}
2281#[doc = "Add returning High Narrow (high half)."]
2282#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddhn_high_u32)"]
2283#[inline]
2284#[target_feature(enable = "neon")]
2285#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2286#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddhn))]
2287#[cfg_attr(
2288    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2289    assert_instr(addhn2)
2290)]
2291#[cfg_attr(
2292    not(target_arch = "arm"),
2293    stable(feature = "neon_intrinsics", since = "1.59.0")
2294)]
2295#[cfg_attr(
2296    target_arch = "arm",
2297    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2298)]
2299pub fn vaddhn_high_u32(r: uint16x4_t, a: uint32x4_t, b: uint32x4_t) -> uint16x8_t {
2300    unsafe {
2301        let x = simd_cast(simd_shr(simd_add(a, b), uint32x4_t::splat(16)));
2302        simd_shuffle!(r, x, [0, 1, 2, 3, 4, 5, 6, 7])
2303    }
2304}
2305#[doc = "Add returning High Narrow (high half)."]
2306#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddhn_high_u64)"]
2307#[inline]
2308#[target_feature(enable = "neon")]
2309#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2310#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddhn))]
2311#[cfg_attr(
2312    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2313    assert_instr(addhn2)
2314)]
2315#[cfg_attr(
2316    not(target_arch = "arm"),
2317    stable(feature = "neon_intrinsics", since = "1.59.0")
2318)]
2319#[cfg_attr(
2320    target_arch = "arm",
2321    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2322)]
2323pub fn vaddhn_high_u64(r: uint32x2_t, a: uint64x2_t, b: uint64x2_t) -> uint32x4_t {
2324    unsafe {
2325        let x = simd_cast(simd_shr(simd_add(a, b), uint64x2_t::splat(32)));
2326        simd_shuffle!(r, x, [0, 1, 2, 3])
2327    }
2328}
2329#[doc = "Add returning High Narrow."]
2330#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddhn_s16)"]
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_s16(a: int16x8_t, b: int16x8_t) -> int8x8_t {
2348    unsafe { simd_cast(simd_shr(simd_add(a, b), int16x8_t::splat(8))) }
2349}
2350#[doc = "Add returning High Narrow."]
2351#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddhn_s32)"]
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_s32(a: int32x4_t, b: int32x4_t) -> int16x4_t {
2369    unsafe { simd_cast(simd_shr(simd_add(a, b), int32x4_t::splat(16))) }
2370}
2371#[doc = "Add returning High Narrow."]
2372#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddhn_s64)"]
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_s64(a: int64x2_t, b: int64x2_t) -> int32x2_t {
2390    unsafe { simd_cast(simd_shr(simd_add(a, b), int64x2_t::splat(32))) }
2391}
2392#[doc = "Add returning High Narrow."]
2393#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddhn_u16)"]
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_u16(a: uint16x8_t, b: uint16x8_t) -> uint8x8_t {
2411    unsafe { simd_cast(simd_shr(simd_add(a, b), uint16x8_t::splat(8))) }
2412}
2413#[doc = "Add returning High Narrow."]
2414#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddhn_u32)"]
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(vaddhn))]
2419#[cfg_attr(
2420    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2421    assert_instr(addhn)
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 vaddhn_u32(a: uint32x4_t, b: uint32x4_t) -> uint16x4_t {
2432    unsafe { simd_cast(simd_shr(simd_add(a, b), uint32x4_t::splat(16))) }
2433}
2434#[doc = "Add returning High Narrow."]
2435#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddhn_u64)"]
2436#[inline]
2437#[target_feature(enable = "neon")]
2438#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2439#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddhn))]
2440#[cfg_attr(
2441    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2442    assert_instr(addhn)
2443)]
2444#[cfg_attr(
2445    not(target_arch = "arm"),
2446    stable(feature = "neon_intrinsics", since = "1.59.0")
2447)]
2448#[cfg_attr(
2449    target_arch = "arm",
2450    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2451)]
2452pub fn vaddhn_u64(a: uint64x2_t, b: uint64x2_t) -> uint32x2_t {
2453    unsafe { simd_cast(simd_shr(simd_add(a, b), uint64x2_t::splat(32))) }
2454}
2455#[doc = "Signed Add Long (vector, high half)."]
2456#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddl_high_s16)"]
2457#[inline]
2458#[target_feature(enable = "neon")]
2459#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2460#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddl))]
2461#[cfg_attr(
2462    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2463    assert_instr(saddl2)
2464)]
2465#[cfg_attr(
2466    not(target_arch = "arm"),
2467    stable(feature = "neon_intrinsics", since = "1.59.0")
2468)]
2469#[cfg_attr(
2470    target_arch = "arm",
2471    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2472)]
2473pub fn vaddl_high_s16(a: int16x8_t, b: int16x8_t) -> int32x4_t {
2474    unsafe {
2475        let a: int16x4_t = simd_shuffle!(a, a, [4, 5, 6, 7]);
2476        let b: int16x4_t = simd_shuffle!(b, b, [4, 5, 6, 7]);
2477        let a: int32x4_t = simd_cast(a);
2478        let b: int32x4_t = simd_cast(b);
2479        simd_add(a, b)
2480    }
2481}
2482#[doc = "Signed Add Long (vector, high half)."]
2483#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddl_high_s32)"]
2484#[inline]
2485#[target_feature(enable = "neon")]
2486#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2487#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddl))]
2488#[cfg_attr(
2489    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2490    assert_instr(saddl2)
2491)]
2492#[cfg_attr(
2493    not(target_arch = "arm"),
2494    stable(feature = "neon_intrinsics", since = "1.59.0")
2495)]
2496#[cfg_attr(
2497    target_arch = "arm",
2498    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2499)]
2500pub fn vaddl_high_s32(a: int32x4_t, b: int32x4_t) -> int64x2_t {
2501    unsafe {
2502        let a: int32x2_t = simd_shuffle!(a, a, [2, 3]);
2503        let b: int32x2_t = simd_shuffle!(b, b, [2, 3]);
2504        let a: int64x2_t = simd_cast(a);
2505        let b: int64x2_t = simd_cast(b);
2506        simd_add(a, b)
2507    }
2508}
2509#[doc = "Signed Add Long (vector, high half)."]
2510#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddl_high_s8)"]
2511#[inline]
2512#[target_feature(enable = "neon")]
2513#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2514#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddl))]
2515#[cfg_attr(
2516    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2517    assert_instr(saddl2)
2518)]
2519#[cfg_attr(
2520    not(target_arch = "arm"),
2521    stable(feature = "neon_intrinsics", since = "1.59.0")
2522)]
2523#[cfg_attr(
2524    target_arch = "arm",
2525    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2526)]
2527pub fn vaddl_high_s8(a: int8x16_t, b: int8x16_t) -> int16x8_t {
2528    unsafe {
2529        let a: int8x8_t = simd_shuffle!(a, a, [8, 9, 10, 11, 12, 13, 14, 15]);
2530        let b: int8x8_t = simd_shuffle!(b, b, [8, 9, 10, 11, 12, 13, 14, 15]);
2531        let a: int16x8_t = simd_cast(a);
2532        let b: int16x8_t = simd_cast(b);
2533        simd_add(a, b)
2534    }
2535}
2536#[doc = "Signed Add Long (vector, high half)."]
2537#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddl_high_u16)"]
2538#[inline]
2539#[target_feature(enable = "neon")]
2540#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2541#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddl))]
2542#[cfg_attr(
2543    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2544    assert_instr(uaddl2)
2545)]
2546#[cfg_attr(
2547    not(target_arch = "arm"),
2548    stable(feature = "neon_intrinsics", since = "1.59.0")
2549)]
2550#[cfg_attr(
2551    target_arch = "arm",
2552    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2553)]
2554pub fn vaddl_high_u16(a: uint16x8_t, b: uint16x8_t) -> uint32x4_t {
2555    unsafe {
2556        let a: uint16x4_t = simd_shuffle!(a, a, [4, 5, 6, 7]);
2557        let b: uint16x4_t = simd_shuffle!(b, b, [4, 5, 6, 7]);
2558        let a: uint32x4_t = simd_cast(a);
2559        let b: uint32x4_t = simd_cast(b);
2560        simd_add(a, b)
2561    }
2562}
2563#[doc = "Signed Add Long (vector, high half)."]
2564#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddl_high_u32)"]
2565#[inline]
2566#[target_feature(enable = "neon")]
2567#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2568#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddl))]
2569#[cfg_attr(
2570    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2571    assert_instr(uaddl2)
2572)]
2573#[cfg_attr(
2574    not(target_arch = "arm"),
2575    stable(feature = "neon_intrinsics", since = "1.59.0")
2576)]
2577#[cfg_attr(
2578    target_arch = "arm",
2579    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2580)]
2581pub fn vaddl_high_u32(a: uint32x4_t, b: uint32x4_t) -> uint64x2_t {
2582    unsafe {
2583        let a: uint32x2_t = simd_shuffle!(a, a, [2, 3]);
2584        let b: uint32x2_t = simd_shuffle!(b, b, [2, 3]);
2585        let a: uint64x2_t = simd_cast(a);
2586        let b: uint64x2_t = simd_cast(b);
2587        simd_add(a, b)
2588    }
2589}
2590#[doc = "Signed Add Long (vector, high half)."]
2591#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddl_high_u8)"]
2592#[inline]
2593#[target_feature(enable = "neon")]
2594#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2595#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddl))]
2596#[cfg_attr(
2597    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2598    assert_instr(uaddl2)
2599)]
2600#[cfg_attr(
2601    not(target_arch = "arm"),
2602    stable(feature = "neon_intrinsics", since = "1.59.0")
2603)]
2604#[cfg_attr(
2605    target_arch = "arm",
2606    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2607)]
2608pub fn vaddl_high_u8(a: uint8x16_t, b: uint8x16_t) -> uint16x8_t {
2609    unsafe {
2610        let a: uint8x8_t = simd_shuffle!(a, a, [8, 9, 10, 11, 12, 13, 14, 15]);
2611        let b: uint8x8_t = simd_shuffle!(b, b, [8, 9, 10, 11, 12, 13, 14, 15]);
2612        let a: uint16x8_t = simd_cast(a);
2613        let b: uint16x8_t = simd_cast(b);
2614        simd_add(a, b)
2615    }
2616}
2617#[doc = "Add Long (vector)."]
2618#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddl_s16)"]
2619#[inline]
2620#[target_feature(enable = "neon")]
2621#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2622#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddl))]
2623#[cfg_attr(
2624    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2625    assert_instr(saddl)
2626)]
2627#[cfg_attr(
2628    not(target_arch = "arm"),
2629    stable(feature = "neon_intrinsics", since = "1.59.0")
2630)]
2631#[cfg_attr(
2632    target_arch = "arm",
2633    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2634)]
2635pub fn vaddl_s16(a: int16x4_t, b: int16x4_t) -> int32x4_t {
2636    unsafe {
2637        let a: int32x4_t = simd_cast(a);
2638        let b: int32x4_t = simd_cast(b);
2639        simd_add(a, b)
2640    }
2641}
2642#[doc = "Add Long (vector)."]
2643#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddl_s32)"]
2644#[inline]
2645#[target_feature(enable = "neon")]
2646#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2647#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddl))]
2648#[cfg_attr(
2649    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2650    assert_instr(saddl)
2651)]
2652#[cfg_attr(
2653    not(target_arch = "arm"),
2654    stable(feature = "neon_intrinsics", since = "1.59.0")
2655)]
2656#[cfg_attr(
2657    target_arch = "arm",
2658    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2659)]
2660pub fn vaddl_s32(a: int32x2_t, b: int32x2_t) -> int64x2_t {
2661    unsafe {
2662        let a: int64x2_t = simd_cast(a);
2663        let b: int64x2_t = simd_cast(b);
2664        simd_add(a, b)
2665    }
2666}
2667#[doc = "Add Long (vector)."]
2668#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddl_s8)"]
2669#[inline]
2670#[target_feature(enable = "neon")]
2671#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2672#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddl))]
2673#[cfg_attr(
2674    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2675    assert_instr(saddl)
2676)]
2677#[cfg_attr(
2678    not(target_arch = "arm"),
2679    stable(feature = "neon_intrinsics", since = "1.59.0")
2680)]
2681#[cfg_attr(
2682    target_arch = "arm",
2683    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2684)]
2685pub fn vaddl_s8(a: int8x8_t, b: int8x8_t) -> int16x8_t {
2686    unsafe {
2687        let a: int16x8_t = simd_cast(a);
2688        let b: int16x8_t = simd_cast(b);
2689        simd_add(a, b)
2690    }
2691}
2692#[doc = "Add Long (vector)."]
2693#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddl_u16)"]
2694#[inline]
2695#[target_feature(enable = "neon")]
2696#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2697#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddl))]
2698#[cfg_attr(
2699    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2700    assert_instr(uaddl)
2701)]
2702#[cfg_attr(
2703    not(target_arch = "arm"),
2704    stable(feature = "neon_intrinsics", since = "1.59.0")
2705)]
2706#[cfg_attr(
2707    target_arch = "arm",
2708    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2709)]
2710pub fn vaddl_u16(a: uint16x4_t, b: uint16x4_t) -> uint32x4_t {
2711    unsafe {
2712        let a: uint32x4_t = simd_cast(a);
2713        let b: uint32x4_t = simd_cast(b);
2714        simd_add(a, b)
2715    }
2716}
2717#[doc = "Add Long (vector)."]
2718#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddl_u32)"]
2719#[inline]
2720#[target_feature(enable = "neon")]
2721#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2722#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddl))]
2723#[cfg_attr(
2724    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2725    assert_instr(uaddl)
2726)]
2727#[cfg_attr(
2728    not(target_arch = "arm"),
2729    stable(feature = "neon_intrinsics", since = "1.59.0")
2730)]
2731#[cfg_attr(
2732    target_arch = "arm",
2733    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2734)]
2735pub fn vaddl_u32(a: uint32x2_t, b: uint32x2_t) -> uint64x2_t {
2736    unsafe {
2737        let a: uint64x2_t = simd_cast(a);
2738        let b: uint64x2_t = simd_cast(b);
2739        simd_add(a, b)
2740    }
2741}
2742#[doc = "Add Long (vector)."]
2743#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddl_u8)"]
2744#[inline]
2745#[target_feature(enable = "neon")]
2746#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2747#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddl))]
2748#[cfg_attr(
2749    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2750    assert_instr(uaddl)
2751)]
2752#[cfg_attr(
2753    not(target_arch = "arm"),
2754    stable(feature = "neon_intrinsics", since = "1.59.0")
2755)]
2756#[cfg_attr(
2757    target_arch = "arm",
2758    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2759)]
2760pub fn vaddl_u8(a: uint8x8_t, b: uint8x8_t) -> uint16x8_t {
2761    unsafe {
2762        let a: uint16x8_t = simd_cast(a);
2763        let b: uint16x8_t = simd_cast(b);
2764        simd_add(a, b)
2765    }
2766}
2767#[doc = "Bitwise exclusive OR"]
2768#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddq_p128)"]
2769#[inline]
2770#[target_feature(enable = "neon")]
2771#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2772#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
2773#[cfg_attr(
2774    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2775    assert_instr(nop)
2776)]
2777#[cfg_attr(
2778    not(target_arch = "arm"),
2779    stable(feature = "neon_intrinsics", since = "1.59.0")
2780)]
2781#[cfg_attr(
2782    target_arch = "arm",
2783    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2784)]
2785pub fn vaddq_p128(a: p128, b: p128) -> p128 {
2786    a ^ b
2787}
2788#[doc = "Add Wide (high half)."]
2789#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddw_high_s16)"]
2790#[inline]
2791#[target_feature(enable = "neon")]
2792#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2793#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddw))]
2794#[cfg_attr(
2795    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2796    assert_instr(saddw2)
2797)]
2798#[cfg_attr(
2799    not(target_arch = "arm"),
2800    stable(feature = "neon_intrinsics", since = "1.59.0")
2801)]
2802#[cfg_attr(
2803    target_arch = "arm",
2804    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2805)]
2806pub fn vaddw_high_s16(a: int32x4_t, b: int16x8_t) -> int32x4_t {
2807    unsafe {
2808        let b: int16x4_t = simd_shuffle!(b, b, [4, 5, 6, 7]);
2809        let b: int32x4_t = simd_cast(b);
2810        simd_add(a, b)
2811    }
2812}
2813#[doc = "Add Wide (high half)."]
2814#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddw_high_s32)"]
2815#[inline]
2816#[target_feature(enable = "neon")]
2817#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2818#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddw))]
2819#[cfg_attr(
2820    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2821    assert_instr(saddw2)
2822)]
2823#[cfg_attr(
2824    not(target_arch = "arm"),
2825    stable(feature = "neon_intrinsics", since = "1.59.0")
2826)]
2827#[cfg_attr(
2828    target_arch = "arm",
2829    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2830)]
2831pub fn vaddw_high_s32(a: int64x2_t, b: int32x4_t) -> int64x2_t {
2832    unsafe {
2833        let b: int32x2_t = simd_shuffle!(b, b, [2, 3]);
2834        let b: int64x2_t = simd_cast(b);
2835        simd_add(a, b)
2836    }
2837}
2838#[doc = "Add Wide (high half)."]
2839#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddw_high_s8)"]
2840#[inline]
2841#[target_feature(enable = "neon")]
2842#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2843#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddw))]
2844#[cfg_attr(
2845    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2846    assert_instr(saddw2)
2847)]
2848#[cfg_attr(
2849    not(target_arch = "arm"),
2850    stable(feature = "neon_intrinsics", since = "1.59.0")
2851)]
2852#[cfg_attr(
2853    target_arch = "arm",
2854    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2855)]
2856pub fn vaddw_high_s8(a: int16x8_t, b: int8x16_t) -> int16x8_t {
2857    unsafe {
2858        let b: int8x8_t = simd_shuffle!(b, b, [8, 9, 10, 11, 12, 13, 14, 15]);
2859        let b: int16x8_t = simd_cast(b);
2860        simd_add(a, b)
2861    }
2862}
2863#[doc = "Add Wide (high half)."]
2864#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddw_high_u16)"]
2865#[inline]
2866#[target_feature(enable = "neon")]
2867#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2868#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddw))]
2869#[cfg_attr(
2870    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2871    assert_instr(uaddw2)
2872)]
2873#[cfg_attr(
2874    not(target_arch = "arm"),
2875    stable(feature = "neon_intrinsics", since = "1.59.0")
2876)]
2877#[cfg_attr(
2878    target_arch = "arm",
2879    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2880)]
2881pub fn vaddw_high_u16(a: uint32x4_t, b: uint16x8_t) -> uint32x4_t {
2882    unsafe {
2883        let b: uint16x4_t = simd_shuffle!(b, b, [4, 5, 6, 7]);
2884        let b: uint32x4_t = simd_cast(b);
2885        simd_add(a, b)
2886    }
2887}
2888#[doc = "Add Wide (high half)."]
2889#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddw_high_u32)"]
2890#[inline]
2891#[target_feature(enable = "neon")]
2892#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2893#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddw))]
2894#[cfg_attr(
2895    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2896    assert_instr(uaddw2)
2897)]
2898#[cfg_attr(
2899    not(target_arch = "arm"),
2900    stable(feature = "neon_intrinsics", since = "1.59.0")
2901)]
2902#[cfg_attr(
2903    target_arch = "arm",
2904    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2905)]
2906pub fn vaddw_high_u32(a: uint64x2_t, b: uint32x4_t) -> uint64x2_t {
2907    unsafe {
2908        let b: uint32x2_t = simd_shuffle!(b, b, [2, 3]);
2909        let b: uint64x2_t = simd_cast(b);
2910        simd_add(a, b)
2911    }
2912}
2913#[doc = "Add Wide (high half)."]
2914#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddw_high_u8)"]
2915#[inline]
2916#[target_feature(enable = "neon")]
2917#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2918#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddw))]
2919#[cfg_attr(
2920    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2921    assert_instr(uaddw2)
2922)]
2923#[cfg_attr(
2924    not(target_arch = "arm"),
2925    stable(feature = "neon_intrinsics", since = "1.59.0")
2926)]
2927#[cfg_attr(
2928    target_arch = "arm",
2929    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2930)]
2931pub fn vaddw_high_u8(a: uint16x8_t, b: uint8x16_t) -> uint16x8_t {
2932    unsafe {
2933        let b: uint8x8_t = simd_shuffle!(b, b, [8, 9, 10, 11, 12, 13, 14, 15]);
2934        let b: uint16x8_t = simd_cast(b);
2935        simd_add(a, b)
2936    }
2937}
2938#[doc = "Add Wide"]
2939#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddw_s16)"]
2940#[inline]
2941#[target_feature(enable = "neon")]
2942#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2943#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddw))]
2944#[cfg_attr(
2945    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2946    assert_instr(saddw)
2947)]
2948#[cfg_attr(
2949    not(target_arch = "arm"),
2950    stable(feature = "neon_intrinsics", since = "1.59.0")
2951)]
2952#[cfg_attr(
2953    target_arch = "arm",
2954    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2955)]
2956pub fn vaddw_s16(a: int32x4_t, b: int16x4_t) -> int32x4_t {
2957    unsafe {
2958        let b: int32x4_t = simd_cast(b);
2959        simd_add(a, b)
2960    }
2961}
2962#[doc = "Add Wide"]
2963#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddw_s32)"]
2964#[inline]
2965#[target_feature(enable = "neon")]
2966#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2967#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddw))]
2968#[cfg_attr(
2969    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2970    assert_instr(saddw)
2971)]
2972#[cfg_attr(
2973    not(target_arch = "arm"),
2974    stable(feature = "neon_intrinsics", since = "1.59.0")
2975)]
2976#[cfg_attr(
2977    target_arch = "arm",
2978    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
2979)]
2980pub fn vaddw_s32(a: int64x2_t, b: int32x2_t) -> int64x2_t {
2981    unsafe {
2982        let b: int64x2_t = simd_cast(b);
2983        simd_add(a, b)
2984    }
2985}
2986#[doc = "Add Wide"]
2987#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddw_s8)"]
2988#[inline]
2989#[target_feature(enable = "neon")]
2990#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2991#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddw))]
2992#[cfg_attr(
2993    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
2994    assert_instr(saddw)
2995)]
2996#[cfg_attr(
2997    not(target_arch = "arm"),
2998    stable(feature = "neon_intrinsics", since = "1.59.0")
2999)]
3000#[cfg_attr(
3001    target_arch = "arm",
3002    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3003)]
3004pub fn vaddw_s8(a: int16x8_t, b: int8x8_t) -> int16x8_t {
3005    unsafe {
3006        let b: int16x8_t = simd_cast(b);
3007        simd_add(a, b)
3008    }
3009}
3010#[doc = "Add Wide"]
3011#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddw_u16)"]
3012#[inline]
3013#[target_feature(enable = "neon")]
3014#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3015#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddw))]
3016#[cfg_attr(
3017    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3018    assert_instr(uaddw)
3019)]
3020#[cfg_attr(
3021    not(target_arch = "arm"),
3022    stable(feature = "neon_intrinsics", since = "1.59.0")
3023)]
3024#[cfg_attr(
3025    target_arch = "arm",
3026    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3027)]
3028pub fn vaddw_u16(a: uint32x4_t, b: uint16x4_t) -> uint32x4_t {
3029    unsafe {
3030        let b: uint32x4_t = simd_cast(b);
3031        simd_add(a, b)
3032    }
3033}
3034#[doc = "Add Wide"]
3035#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddw_u32)"]
3036#[inline]
3037#[target_feature(enable = "neon")]
3038#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3039#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddw))]
3040#[cfg_attr(
3041    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3042    assert_instr(uaddw)
3043)]
3044#[cfg_attr(
3045    not(target_arch = "arm"),
3046    stable(feature = "neon_intrinsics", since = "1.59.0")
3047)]
3048#[cfg_attr(
3049    target_arch = "arm",
3050    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3051)]
3052pub fn vaddw_u32(a: uint64x2_t, b: uint32x2_t) -> uint64x2_t {
3053    unsafe {
3054        let b: uint64x2_t = simd_cast(b);
3055        simd_add(a, b)
3056    }
3057}
3058#[doc = "Add Wide"]
3059#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddw_u8)"]
3060#[inline]
3061#[target_feature(enable = "neon")]
3062#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3063#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vaddw))]
3064#[cfg_attr(
3065    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3066    assert_instr(uaddw)
3067)]
3068#[cfg_attr(
3069    not(target_arch = "arm"),
3070    stable(feature = "neon_intrinsics", since = "1.59.0")
3071)]
3072#[cfg_attr(
3073    target_arch = "arm",
3074    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3075)]
3076pub fn vaddw_u8(a: uint16x8_t, b: uint8x8_t) -> uint16x8_t {
3077    unsafe {
3078        let b: uint16x8_t = simd_cast(b);
3079        simd_add(a, b)
3080    }
3081}
3082#[doc = "AES single round encryption."]
3083#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaesdq_u8)"]
3084#[inline]
3085#[target_feature(enable = "aes")]
3086#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
3087#[cfg_attr(test, assert_instr(aesd))]
3088#[cfg_attr(
3089    target_arch = "arm",
3090    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3091)]
3092#[cfg_attr(
3093    not(target_arch = "arm"),
3094    stable(feature = "aarch64_neon_crypto_intrinsics", since = "1.72.0")
3095)]
3096pub fn vaesdq_u8(data: uint8x16_t, key: uint8x16_t) -> uint8x16_t {
3097    unsafe extern "unadjusted" {
3098        #[cfg_attr(
3099            any(target_arch = "aarch64", target_arch = "arm64ec"),
3100            link_name = "llvm.aarch64.crypto.aesd"
3101        )]
3102        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.aesd")]
3103        fn _vaesdq_u8(data: uint8x16_t, key: uint8x16_t) -> uint8x16_t;
3104    }
3105    unsafe { _vaesdq_u8(data, key) }
3106}
3107#[doc = "AES single round encryption."]
3108#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaeseq_u8)"]
3109#[inline]
3110#[target_feature(enable = "aes")]
3111#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
3112#[cfg_attr(test, assert_instr(aese))]
3113#[cfg_attr(
3114    target_arch = "arm",
3115    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3116)]
3117#[cfg_attr(
3118    not(target_arch = "arm"),
3119    stable(feature = "aarch64_neon_crypto_intrinsics", since = "1.72.0")
3120)]
3121pub fn vaeseq_u8(data: uint8x16_t, key: uint8x16_t) -> uint8x16_t {
3122    unsafe extern "unadjusted" {
3123        #[cfg_attr(
3124            any(target_arch = "aarch64", target_arch = "arm64ec"),
3125            link_name = "llvm.aarch64.crypto.aese"
3126        )]
3127        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.aese")]
3128        fn _vaeseq_u8(data: uint8x16_t, key: uint8x16_t) -> uint8x16_t;
3129    }
3130    unsafe { _vaeseq_u8(data, key) }
3131}
3132#[doc = "AES inverse mix columns."]
3133#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaesimcq_u8)"]
3134#[inline]
3135#[target_feature(enable = "aes")]
3136#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
3137#[cfg_attr(test, assert_instr(aesimc))]
3138#[cfg_attr(
3139    target_arch = "arm",
3140    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3141)]
3142#[cfg_attr(
3143    not(target_arch = "arm"),
3144    stable(feature = "aarch64_neon_crypto_intrinsics", since = "1.72.0")
3145)]
3146pub fn vaesimcq_u8(data: uint8x16_t) -> uint8x16_t {
3147    unsafe extern "unadjusted" {
3148        #[cfg_attr(
3149            any(target_arch = "aarch64", target_arch = "arm64ec"),
3150            link_name = "llvm.aarch64.crypto.aesimc"
3151        )]
3152        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.aesimc")]
3153        fn _vaesimcq_u8(data: uint8x16_t) -> uint8x16_t;
3154    }
3155    unsafe { _vaesimcq_u8(data) }
3156}
3157#[doc = "AES mix columns."]
3158#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaesmcq_u8)"]
3159#[inline]
3160#[target_feature(enable = "aes")]
3161#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
3162#[cfg_attr(test, assert_instr(aesmc))]
3163#[cfg_attr(
3164    target_arch = "arm",
3165    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3166)]
3167#[cfg_attr(
3168    not(target_arch = "arm"),
3169    stable(feature = "aarch64_neon_crypto_intrinsics", since = "1.72.0")
3170)]
3171pub fn vaesmcq_u8(data: uint8x16_t) -> uint8x16_t {
3172    unsafe extern "unadjusted" {
3173        #[cfg_attr(
3174            any(target_arch = "aarch64", target_arch = "arm64ec"),
3175            link_name = "llvm.aarch64.crypto.aesmc"
3176        )]
3177        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.aesmc")]
3178        fn _vaesmcq_u8(data: uint8x16_t) -> uint8x16_t;
3179    }
3180    unsafe { _vaesmcq_u8(data) }
3181}
3182#[doc = "Vector bitwise and"]
3183#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vand_s8)"]
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_s8(a: int8x8_t, b: int8x8_t) -> int8x8_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_s8)"]
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_s8(a: int8x16_t, b: int8x16_t) -> int8x16_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_s16)"]
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_s16(a: int16x4_t, b: int16x4_t) -> int16x4_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_s16)"]
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_s16(a: int16x8_t, b: int16x8_t) -> int16x8_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_s32)"]
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_s32(a: int32x2_t, b: int32x2_t) -> int32x2_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_s32)"]
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_s32(a: int32x4_t, b: int32x4_t) -> int32x4_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_s64)"]
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_s64(a: int64x1_t, b: int64x1_t) -> int64x1_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_s64)"]
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_s64(a: int64x2_t, b: int64x2_t) -> int64x2_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_u8)"]
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_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_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_u8)"]
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_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_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_u16)"]
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_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_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_u16)"]
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_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_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_u32)"]
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_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_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_u32)"]
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_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
3474    unsafe { simd_and(a, b) }
3475}
3476#[doc = "Vector bitwise and"]
3477#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vand_u64)"]
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(vand))]
3482#[cfg_attr(
3483    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3484    assert_instr(and)
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 vand_u64(a: uint64x1_t, b: uint64x1_t) -> uint64x1_t {
3495    unsafe { simd_and(a, b) }
3496}
3497#[doc = "Vector bitwise and"]
3498#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vandq_u64)"]
3499#[inline]
3500#[target_feature(enable = "neon")]
3501#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3502#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vand))]
3503#[cfg_attr(
3504    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3505    assert_instr(and)
3506)]
3507#[cfg_attr(
3508    not(target_arch = "arm"),
3509    stable(feature = "neon_intrinsics", since = "1.59.0")
3510)]
3511#[cfg_attr(
3512    target_arch = "arm",
3513    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3514)]
3515pub fn vandq_u64(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
3516    unsafe { simd_and(a, b) }
3517}
3518#[doc = "Vector bitwise bit clear."]
3519#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbic_s16)"]
3520#[inline]
3521#[target_feature(enable = "neon")]
3522#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3523#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbic))]
3524#[cfg_attr(
3525    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3526    assert_instr(bic)
3527)]
3528#[cfg_attr(
3529    not(target_arch = "arm"),
3530    stable(feature = "neon_intrinsics", since = "1.59.0")
3531)]
3532#[cfg_attr(
3533    target_arch = "arm",
3534    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3535)]
3536pub fn vbic_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
3537    let c = int16x4_t::splat(-1);
3538    unsafe { simd_and(simd_xor(b, c), a) }
3539}
3540#[doc = "Vector bitwise bit clear."]
3541#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbic_s32)"]
3542#[inline]
3543#[target_feature(enable = "neon")]
3544#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3545#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbic))]
3546#[cfg_attr(
3547    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3548    assert_instr(bic)
3549)]
3550#[cfg_attr(
3551    not(target_arch = "arm"),
3552    stable(feature = "neon_intrinsics", since = "1.59.0")
3553)]
3554#[cfg_attr(
3555    target_arch = "arm",
3556    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3557)]
3558pub fn vbic_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
3559    let c = int32x2_t::splat(-1);
3560    unsafe { simd_and(simd_xor(b, c), a) }
3561}
3562#[doc = "Vector bitwise bit clear."]
3563#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbic_s64)"]
3564#[inline]
3565#[target_feature(enable = "neon")]
3566#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3567#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbic))]
3568#[cfg_attr(
3569    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3570    assert_instr(bic)
3571)]
3572#[cfg_attr(
3573    not(target_arch = "arm"),
3574    stable(feature = "neon_intrinsics", since = "1.59.0")
3575)]
3576#[cfg_attr(
3577    target_arch = "arm",
3578    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3579)]
3580pub fn vbic_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t {
3581    let c = int64x1_t::splat(-1);
3582    unsafe { simd_and(simd_xor(b, c), a) }
3583}
3584#[doc = "Vector bitwise bit clear."]
3585#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbic_s8)"]
3586#[inline]
3587#[target_feature(enable = "neon")]
3588#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3589#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbic))]
3590#[cfg_attr(
3591    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3592    assert_instr(bic)
3593)]
3594#[cfg_attr(
3595    not(target_arch = "arm"),
3596    stable(feature = "neon_intrinsics", since = "1.59.0")
3597)]
3598#[cfg_attr(
3599    target_arch = "arm",
3600    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3601)]
3602pub fn vbic_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
3603    let c = int8x8_t::splat(-1);
3604    unsafe { simd_and(simd_xor(b, c), a) }
3605}
3606#[doc = "Vector bitwise bit clear."]
3607#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbicq_s16)"]
3608#[inline]
3609#[target_feature(enable = "neon")]
3610#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3611#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbic))]
3612#[cfg_attr(
3613    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3614    assert_instr(bic)
3615)]
3616#[cfg_attr(
3617    not(target_arch = "arm"),
3618    stable(feature = "neon_intrinsics", since = "1.59.0")
3619)]
3620#[cfg_attr(
3621    target_arch = "arm",
3622    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3623)]
3624pub fn vbicq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
3625    let c = int16x8_t::splat(-1);
3626    unsafe { simd_and(simd_xor(b, c), a) }
3627}
3628#[doc = "Vector bitwise bit clear."]
3629#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbicq_s32)"]
3630#[inline]
3631#[target_feature(enable = "neon")]
3632#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3633#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbic))]
3634#[cfg_attr(
3635    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3636    assert_instr(bic)
3637)]
3638#[cfg_attr(
3639    not(target_arch = "arm"),
3640    stable(feature = "neon_intrinsics", since = "1.59.0")
3641)]
3642#[cfg_attr(
3643    target_arch = "arm",
3644    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3645)]
3646pub fn vbicq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
3647    let c = int32x4_t::splat(-1);
3648    unsafe { simd_and(simd_xor(b, c), a) }
3649}
3650#[doc = "Vector bitwise bit clear."]
3651#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbicq_s64)"]
3652#[inline]
3653#[target_feature(enable = "neon")]
3654#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3655#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbic))]
3656#[cfg_attr(
3657    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3658    assert_instr(bic)
3659)]
3660#[cfg_attr(
3661    not(target_arch = "arm"),
3662    stable(feature = "neon_intrinsics", since = "1.59.0")
3663)]
3664#[cfg_attr(
3665    target_arch = "arm",
3666    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3667)]
3668pub fn vbicq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t {
3669    let c = int64x2_t::splat(-1);
3670    unsafe { simd_and(simd_xor(b, c), a) }
3671}
3672#[doc = "Vector bitwise bit clear."]
3673#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbicq_s8)"]
3674#[inline]
3675#[target_feature(enable = "neon")]
3676#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3677#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbic))]
3678#[cfg_attr(
3679    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3680    assert_instr(bic)
3681)]
3682#[cfg_attr(
3683    not(target_arch = "arm"),
3684    stable(feature = "neon_intrinsics", since = "1.59.0")
3685)]
3686#[cfg_attr(
3687    target_arch = "arm",
3688    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3689)]
3690pub fn vbicq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
3691    let c = int8x16_t::splat(-1);
3692    unsafe { simd_and(simd_xor(b, c), a) }
3693}
3694#[doc = "Vector bitwise bit clear."]
3695#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbic_u16)"]
3696#[inline]
3697#[target_feature(enable = "neon")]
3698#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3699#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbic))]
3700#[cfg_attr(
3701    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3702    assert_instr(bic)
3703)]
3704#[cfg_attr(
3705    not(target_arch = "arm"),
3706    stable(feature = "neon_intrinsics", since = "1.59.0")
3707)]
3708#[cfg_attr(
3709    target_arch = "arm",
3710    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3711)]
3712pub fn vbic_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
3713    let c = int16x4_t::splat(-1);
3714    unsafe { simd_and(simd_xor(b, transmute(c)), a) }
3715}
3716#[doc = "Vector bitwise bit clear."]
3717#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbic_u32)"]
3718#[inline]
3719#[target_feature(enable = "neon")]
3720#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3721#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbic))]
3722#[cfg_attr(
3723    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3724    assert_instr(bic)
3725)]
3726#[cfg_attr(
3727    not(target_arch = "arm"),
3728    stable(feature = "neon_intrinsics", since = "1.59.0")
3729)]
3730#[cfg_attr(
3731    target_arch = "arm",
3732    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3733)]
3734pub fn vbic_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
3735    let c = int32x2_t::splat(-1);
3736    unsafe { simd_and(simd_xor(b, transmute(c)), a) }
3737}
3738#[doc = "Vector bitwise bit clear."]
3739#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbic_u64)"]
3740#[inline]
3741#[target_feature(enable = "neon")]
3742#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3743#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbic))]
3744#[cfg_attr(
3745    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3746    assert_instr(bic)
3747)]
3748#[cfg_attr(
3749    not(target_arch = "arm"),
3750    stable(feature = "neon_intrinsics", since = "1.59.0")
3751)]
3752#[cfg_attr(
3753    target_arch = "arm",
3754    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3755)]
3756pub fn vbic_u64(a: uint64x1_t, b: uint64x1_t) -> uint64x1_t {
3757    let c = int64x1_t::splat(-1);
3758    unsafe { simd_and(simd_xor(b, transmute(c)), a) }
3759}
3760#[doc = "Vector bitwise bit clear."]
3761#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbic_u8)"]
3762#[inline]
3763#[target_feature(enable = "neon")]
3764#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3765#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbic))]
3766#[cfg_attr(
3767    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3768    assert_instr(bic)
3769)]
3770#[cfg_attr(
3771    not(target_arch = "arm"),
3772    stable(feature = "neon_intrinsics", since = "1.59.0")
3773)]
3774#[cfg_attr(
3775    target_arch = "arm",
3776    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3777)]
3778pub fn vbic_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
3779    let c = int8x8_t::splat(-1);
3780    unsafe { simd_and(simd_xor(b, transmute(c)), a) }
3781}
3782#[doc = "Vector bitwise bit clear."]
3783#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbicq_u16)"]
3784#[inline]
3785#[target_feature(enable = "neon")]
3786#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3787#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbic))]
3788#[cfg_attr(
3789    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3790    assert_instr(bic)
3791)]
3792#[cfg_attr(
3793    not(target_arch = "arm"),
3794    stable(feature = "neon_intrinsics", since = "1.59.0")
3795)]
3796#[cfg_attr(
3797    target_arch = "arm",
3798    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3799)]
3800pub fn vbicq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
3801    let c = int16x8_t::splat(-1);
3802    unsafe { simd_and(simd_xor(b, transmute(c)), a) }
3803}
3804#[doc = "Vector bitwise bit clear."]
3805#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbicq_u32)"]
3806#[inline]
3807#[target_feature(enable = "neon")]
3808#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3809#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbic))]
3810#[cfg_attr(
3811    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3812    assert_instr(bic)
3813)]
3814#[cfg_attr(
3815    not(target_arch = "arm"),
3816    stable(feature = "neon_intrinsics", since = "1.59.0")
3817)]
3818#[cfg_attr(
3819    target_arch = "arm",
3820    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3821)]
3822pub fn vbicq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
3823    let c = int32x4_t::splat(-1);
3824    unsafe { simd_and(simd_xor(b, transmute(c)), a) }
3825}
3826#[doc = "Vector bitwise bit clear."]
3827#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbicq_u64)"]
3828#[inline]
3829#[target_feature(enable = "neon")]
3830#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3831#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbic))]
3832#[cfg_attr(
3833    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3834    assert_instr(bic)
3835)]
3836#[cfg_attr(
3837    not(target_arch = "arm"),
3838    stable(feature = "neon_intrinsics", since = "1.59.0")
3839)]
3840#[cfg_attr(
3841    target_arch = "arm",
3842    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3843)]
3844pub fn vbicq_u64(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
3845    let c = int64x2_t::splat(-1);
3846    unsafe { simd_and(simd_xor(b, transmute(c)), a) }
3847}
3848#[doc = "Vector bitwise bit clear."]
3849#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbicq_u8)"]
3850#[inline]
3851#[target_feature(enable = "neon")]
3852#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3853#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbic))]
3854#[cfg_attr(
3855    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3856    assert_instr(bic)
3857)]
3858#[cfg_attr(
3859    not(target_arch = "arm"),
3860    stable(feature = "neon_intrinsics", since = "1.59.0")
3861)]
3862#[cfg_attr(
3863    target_arch = "arm",
3864    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3865)]
3866pub fn vbicq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
3867    let c = int8x16_t::splat(-1);
3868    unsafe { simd_and(simd_xor(b, transmute(c)), a) }
3869}
3870#[doc = "Bitwise Select."]
3871#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbsl_f16)"]
3872#[inline]
3873#[target_feature(enable = "neon,fp16")]
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 = "stdarch_neon_fp16", since = "1.94.0")
3883)]
3884#[cfg_attr(
3885    target_arch = "arm",
3886    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3887)]
3888#[cfg(not(target_arch = "arm64ec"))]
3889pub fn vbsl_f16(a: uint16x4_t, b: float16x4_t, c: float16x4_t) -> float16x4_t {
3890    let not = int16x4_t::splat(-1);
3891    unsafe {
3892        transmute(simd_or(
3893            simd_and(a, transmute(b)),
3894            simd_and(simd_xor(a, transmute(not)), transmute(c)),
3895        ))
3896    }
3897}
3898#[doc = "Bitwise Select."]
3899#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbslq_f16)"]
3900#[inline]
3901#[target_feature(enable = "neon,fp16")]
3902#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3903#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbsl))]
3904#[cfg_attr(
3905    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3906    assert_instr(bsl)
3907)]
3908#[cfg_attr(
3909    not(target_arch = "arm"),
3910    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
3911)]
3912#[cfg_attr(
3913    target_arch = "arm",
3914    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3915)]
3916#[cfg(not(target_arch = "arm64ec"))]
3917pub fn vbslq_f16(a: uint16x8_t, b: float16x8_t, c: float16x8_t) -> float16x8_t {
3918    let not = int16x8_t::splat(-1);
3919    unsafe {
3920        transmute(simd_or(
3921            simd_and(a, transmute(b)),
3922            simd_and(simd_xor(a, transmute(not)), transmute(c)),
3923        ))
3924    }
3925}
3926#[doc = "Bitwise Select."]
3927#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbsl_f32)"]
3928#[inline]
3929#[target_feature(enable = "neon")]
3930#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3931#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbsl))]
3932#[cfg_attr(
3933    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3934    assert_instr(bsl)
3935)]
3936#[cfg_attr(
3937    not(target_arch = "arm"),
3938    stable(feature = "neon_intrinsics", since = "1.59.0")
3939)]
3940#[cfg_attr(
3941    target_arch = "arm",
3942    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3943)]
3944pub fn vbsl_f32(a: uint32x2_t, b: float32x2_t, c: float32x2_t) -> float32x2_t {
3945    let not = int32x2_t::splat(-1);
3946    unsafe {
3947        transmute(simd_or(
3948            simd_and(a, transmute(b)),
3949            simd_and(simd_xor(a, transmute(not)), transmute(c)),
3950        ))
3951    }
3952}
3953#[doc = "Bitwise Select."]
3954#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbsl_p16)"]
3955#[inline]
3956#[target_feature(enable = "neon")]
3957#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3958#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbsl))]
3959#[cfg_attr(
3960    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3961    assert_instr(bsl)
3962)]
3963#[cfg_attr(
3964    not(target_arch = "arm"),
3965    stable(feature = "neon_intrinsics", since = "1.59.0")
3966)]
3967#[cfg_attr(
3968    target_arch = "arm",
3969    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3970)]
3971pub fn vbsl_p16(a: uint16x4_t, b: poly16x4_t, c: poly16x4_t) -> poly16x4_t {
3972    let not = int16x4_t::splat(-1);
3973    unsafe {
3974        transmute(simd_or(
3975            simd_and(a, transmute(b)),
3976            simd_and(simd_xor(a, transmute(not)), transmute(c)),
3977        ))
3978    }
3979}
3980#[doc = "Bitwise Select."]
3981#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbsl_p8)"]
3982#[inline]
3983#[target_feature(enable = "neon")]
3984#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3985#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbsl))]
3986#[cfg_attr(
3987    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
3988    assert_instr(bsl)
3989)]
3990#[cfg_attr(
3991    not(target_arch = "arm"),
3992    stable(feature = "neon_intrinsics", since = "1.59.0")
3993)]
3994#[cfg_attr(
3995    target_arch = "arm",
3996    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
3997)]
3998pub fn vbsl_p8(a: uint8x8_t, b: poly8x8_t, c: poly8x8_t) -> poly8x8_t {
3999    let not = int8x8_t::splat(-1);
4000    unsafe {
4001        transmute(simd_or(
4002            simd_and(a, transmute(b)),
4003            simd_and(simd_xor(a, transmute(not)), transmute(c)),
4004        ))
4005    }
4006}
4007#[doc = "Bitwise Select."]
4008#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbsl_s16)"]
4009#[inline]
4010#[target_feature(enable = "neon")]
4011#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4012#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbsl))]
4013#[cfg_attr(
4014    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4015    assert_instr(bsl)
4016)]
4017#[cfg_attr(
4018    not(target_arch = "arm"),
4019    stable(feature = "neon_intrinsics", since = "1.59.0")
4020)]
4021#[cfg_attr(
4022    target_arch = "arm",
4023    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4024)]
4025pub fn vbsl_s16(a: uint16x4_t, b: int16x4_t, c: int16x4_t) -> int16x4_t {
4026    let not = int16x4_t::splat(-1);
4027    unsafe {
4028        transmute(simd_or(
4029            simd_and(a, transmute(b)),
4030            simd_and(simd_xor(a, transmute(not)), transmute(c)),
4031        ))
4032    }
4033}
4034#[doc = "Bitwise Select."]
4035#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbsl_s32)"]
4036#[inline]
4037#[target_feature(enable = "neon")]
4038#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4039#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbsl))]
4040#[cfg_attr(
4041    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4042    assert_instr(bsl)
4043)]
4044#[cfg_attr(
4045    not(target_arch = "arm"),
4046    stable(feature = "neon_intrinsics", since = "1.59.0")
4047)]
4048#[cfg_attr(
4049    target_arch = "arm",
4050    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4051)]
4052pub fn vbsl_s32(a: uint32x2_t, b: int32x2_t, c: int32x2_t) -> int32x2_t {
4053    let not = int32x2_t::splat(-1);
4054    unsafe {
4055        transmute(simd_or(
4056            simd_and(a, transmute(b)),
4057            simd_and(simd_xor(a, transmute(not)), transmute(c)),
4058        ))
4059    }
4060}
4061#[doc = "Bitwise Select."]
4062#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbsl_s64)"]
4063#[inline]
4064#[target_feature(enable = "neon")]
4065#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4066#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbsl))]
4067#[cfg_attr(
4068    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4069    assert_instr(bsl)
4070)]
4071#[cfg_attr(
4072    not(target_arch = "arm"),
4073    stable(feature = "neon_intrinsics", since = "1.59.0")
4074)]
4075#[cfg_attr(
4076    target_arch = "arm",
4077    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4078)]
4079pub fn vbsl_s64(a: uint64x1_t, b: int64x1_t, c: int64x1_t) -> int64x1_t {
4080    let not = int64x1_t::splat(-1);
4081    unsafe {
4082        transmute(simd_or(
4083            simd_and(a, transmute(b)),
4084            simd_and(simd_xor(a, transmute(not)), transmute(c)),
4085        ))
4086    }
4087}
4088#[doc = "Bitwise Select."]
4089#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbsl_s8)"]
4090#[inline]
4091#[target_feature(enable = "neon")]
4092#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4093#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbsl))]
4094#[cfg_attr(
4095    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4096    assert_instr(bsl)
4097)]
4098#[cfg_attr(
4099    not(target_arch = "arm"),
4100    stable(feature = "neon_intrinsics", since = "1.59.0")
4101)]
4102#[cfg_attr(
4103    target_arch = "arm",
4104    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4105)]
4106pub fn vbsl_s8(a: uint8x8_t, b: int8x8_t, c: int8x8_t) -> int8x8_t {
4107    let not = int8x8_t::splat(-1);
4108    unsafe {
4109        transmute(simd_or(
4110            simd_and(a, transmute(b)),
4111            simd_and(simd_xor(a, transmute(not)), transmute(c)),
4112        ))
4113    }
4114}
4115#[doc = "Bitwise Select."]
4116#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbslq_f32)"]
4117#[inline]
4118#[target_feature(enable = "neon")]
4119#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4120#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbsl))]
4121#[cfg_attr(
4122    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4123    assert_instr(bsl)
4124)]
4125#[cfg_attr(
4126    not(target_arch = "arm"),
4127    stable(feature = "neon_intrinsics", since = "1.59.0")
4128)]
4129#[cfg_attr(
4130    target_arch = "arm",
4131    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4132)]
4133pub fn vbslq_f32(a: uint32x4_t, b: float32x4_t, c: float32x4_t) -> float32x4_t {
4134    let not = int32x4_t::splat(-1);
4135    unsafe {
4136        transmute(simd_or(
4137            simd_and(a, transmute(b)),
4138            simd_and(simd_xor(a, transmute(not)), transmute(c)),
4139        ))
4140    }
4141}
4142#[doc = "Bitwise Select."]
4143#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbslq_p16)"]
4144#[inline]
4145#[target_feature(enable = "neon")]
4146#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4147#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbsl))]
4148#[cfg_attr(
4149    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4150    assert_instr(bsl)
4151)]
4152#[cfg_attr(
4153    not(target_arch = "arm"),
4154    stable(feature = "neon_intrinsics", since = "1.59.0")
4155)]
4156#[cfg_attr(
4157    target_arch = "arm",
4158    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4159)]
4160pub fn vbslq_p16(a: uint16x8_t, b: poly16x8_t, c: poly16x8_t) -> poly16x8_t {
4161    let not = int16x8_t::splat(-1);
4162    unsafe {
4163        transmute(simd_or(
4164            simd_and(a, transmute(b)),
4165            simd_and(simd_xor(a, transmute(not)), transmute(c)),
4166        ))
4167    }
4168}
4169#[doc = "Bitwise Select."]
4170#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbslq_p8)"]
4171#[inline]
4172#[target_feature(enable = "neon")]
4173#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4174#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbsl))]
4175#[cfg_attr(
4176    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4177    assert_instr(bsl)
4178)]
4179#[cfg_attr(
4180    not(target_arch = "arm"),
4181    stable(feature = "neon_intrinsics", since = "1.59.0")
4182)]
4183#[cfg_attr(
4184    target_arch = "arm",
4185    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4186)]
4187pub fn vbslq_p8(a: uint8x16_t, b: poly8x16_t, c: poly8x16_t) -> poly8x16_t {
4188    let not = int8x16_t::splat(-1);
4189    unsafe {
4190        transmute(simd_or(
4191            simd_and(a, transmute(b)),
4192            simd_and(simd_xor(a, transmute(not)), transmute(c)),
4193        ))
4194    }
4195}
4196#[doc = "Bitwise Select."]
4197#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbslq_s16)"]
4198#[inline]
4199#[target_feature(enable = "neon")]
4200#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4201#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbsl))]
4202#[cfg_attr(
4203    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4204    assert_instr(bsl)
4205)]
4206#[cfg_attr(
4207    not(target_arch = "arm"),
4208    stable(feature = "neon_intrinsics", since = "1.59.0")
4209)]
4210#[cfg_attr(
4211    target_arch = "arm",
4212    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4213)]
4214pub fn vbslq_s16(a: uint16x8_t, b: int16x8_t, c: int16x8_t) -> int16x8_t {
4215    let not = int16x8_t::splat(-1);
4216    unsafe {
4217        transmute(simd_or(
4218            simd_and(a, transmute(b)),
4219            simd_and(simd_xor(a, transmute(not)), transmute(c)),
4220        ))
4221    }
4222}
4223#[doc = "Bitwise Select."]
4224#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbslq_s32)"]
4225#[inline]
4226#[target_feature(enable = "neon")]
4227#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4228#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbsl))]
4229#[cfg_attr(
4230    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4231    assert_instr(bsl)
4232)]
4233#[cfg_attr(
4234    not(target_arch = "arm"),
4235    stable(feature = "neon_intrinsics", since = "1.59.0")
4236)]
4237#[cfg_attr(
4238    target_arch = "arm",
4239    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4240)]
4241pub fn vbslq_s32(a: uint32x4_t, b: int32x4_t, c: int32x4_t) -> int32x4_t {
4242    let not = int32x4_t::splat(-1);
4243    unsafe {
4244        transmute(simd_or(
4245            simd_and(a, transmute(b)),
4246            simd_and(simd_xor(a, transmute(not)), transmute(c)),
4247        ))
4248    }
4249}
4250#[doc = "Bitwise Select."]
4251#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbslq_s64)"]
4252#[inline]
4253#[target_feature(enable = "neon")]
4254#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4255#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbsl))]
4256#[cfg_attr(
4257    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4258    assert_instr(bsl)
4259)]
4260#[cfg_attr(
4261    not(target_arch = "arm"),
4262    stable(feature = "neon_intrinsics", since = "1.59.0")
4263)]
4264#[cfg_attr(
4265    target_arch = "arm",
4266    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4267)]
4268pub fn vbslq_s64(a: uint64x2_t, b: int64x2_t, c: int64x2_t) -> int64x2_t {
4269    let not = int64x2_t::splat(-1);
4270    unsafe {
4271        transmute(simd_or(
4272            simd_and(a, transmute(b)),
4273            simd_and(simd_xor(a, transmute(not)), transmute(c)),
4274        ))
4275    }
4276}
4277#[doc = "Bitwise Select."]
4278#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbslq_s8)"]
4279#[inline]
4280#[target_feature(enable = "neon")]
4281#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4282#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbsl))]
4283#[cfg_attr(
4284    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4285    assert_instr(bsl)
4286)]
4287#[cfg_attr(
4288    not(target_arch = "arm"),
4289    stable(feature = "neon_intrinsics", since = "1.59.0")
4290)]
4291#[cfg_attr(
4292    target_arch = "arm",
4293    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4294)]
4295pub fn vbslq_s8(a: uint8x16_t, b: int8x16_t, c: int8x16_t) -> int8x16_t {
4296    let not = int8x16_t::splat(-1);
4297    unsafe {
4298        transmute(simd_or(
4299            simd_and(a, transmute(b)),
4300            simd_and(simd_xor(a, transmute(not)), transmute(c)),
4301        ))
4302    }
4303}
4304#[doc = "Bitwise Select."]
4305#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbsl_u16)"]
4306#[inline]
4307#[target_feature(enable = "neon")]
4308#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4309#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbsl))]
4310#[cfg_attr(
4311    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4312    assert_instr(bsl)
4313)]
4314#[cfg_attr(
4315    not(target_arch = "arm"),
4316    stable(feature = "neon_intrinsics", since = "1.59.0")
4317)]
4318#[cfg_attr(
4319    target_arch = "arm",
4320    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4321)]
4322pub fn vbsl_u16(a: uint16x4_t, b: uint16x4_t, c: uint16x4_t) -> uint16x4_t {
4323    let not = int16x4_t::splat(-1);
4324    unsafe {
4325        transmute(simd_or(
4326            simd_and(a, b),
4327            simd_and(simd_xor(a, transmute(not)), c),
4328        ))
4329    }
4330}
4331#[doc = "Bitwise Select."]
4332#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbsl_u32)"]
4333#[inline]
4334#[target_feature(enable = "neon")]
4335#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4336#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbsl))]
4337#[cfg_attr(
4338    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4339    assert_instr(bsl)
4340)]
4341#[cfg_attr(
4342    not(target_arch = "arm"),
4343    stable(feature = "neon_intrinsics", since = "1.59.0")
4344)]
4345#[cfg_attr(
4346    target_arch = "arm",
4347    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4348)]
4349pub fn vbsl_u32(a: uint32x2_t, b: uint32x2_t, c: uint32x2_t) -> uint32x2_t {
4350    let not = int32x2_t::splat(-1);
4351    unsafe {
4352        transmute(simd_or(
4353            simd_and(a, b),
4354            simd_and(simd_xor(a, transmute(not)), c),
4355        ))
4356    }
4357}
4358#[doc = "Bitwise Select."]
4359#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbsl_u64)"]
4360#[inline]
4361#[target_feature(enable = "neon")]
4362#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4363#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbsl))]
4364#[cfg_attr(
4365    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4366    assert_instr(bsl)
4367)]
4368#[cfg_attr(
4369    not(target_arch = "arm"),
4370    stable(feature = "neon_intrinsics", since = "1.59.0")
4371)]
4372#[cfg_attr(
4373    target_arch = "arm",
4374    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4375)]
4376pub fn vbsl_u64(a: uint64x1_t, b: uint64x1_t, c: uint64x1_t) -> uint64x1_t {
4377    let not = int64x1_t::splat(-1);
4378    unsafe {
4379        transmute(simd_or(
4380            simd_and(a, b),
4381            simd_and(simd_xor(a, transmute(not)), c),
4382        ))
4383    }
4384}
4385#[doc = "Bitwise Select."]
4386#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbsl_u8)"]
4387#[inline]
4388#[target_feature(enable = "neon")]
4389#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4390#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbsl))]
4391#[cfg_attr(
4392    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4393    assert_instr(bsl)
4394)]
4395#[cfg_attr(
4396    not(target_arch = "arm"),
4397    stable(feature = "neon_intrinsics", since = "1.59.0")
4398)]
4399#[cfg_attr(
4400    target_arch = "arm",
4401    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4402)]
4403pub fn vbsl_u8(a: uint8x8_t, b: uint8x8_t, c: uint8x8_t) -> uint8x8_t {
4404    let not = int8x8_t::splat(-1);
4405    unsafe {
4406        transmute(simd_or(
4407            simd_and(a, b),
4408            simd_and(simd_xor(a, transmute(not)), c),
4409        ))
4410    }
4411}
4412#[doc = "Bitwise Select."]
4413#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbslq_u16)"]
4414#[inline]
4415#[target_feature(enable = "neon")]
4416#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4417#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbsl))]
4418#[cfg_attr(
4419    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4420    assert_instr(bsl)
4421)]
4422#[cfg_attr(
4423    not(target_arch = "arm"),
4424    stable(feature = "neon_intrinsics", since = "1.59.0")
4425)]
4426#[cfg_attr(
4427    target_arch = "arm",
4428    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4429)]
4430pub fn vbslq_u16(a: uint16x8_t, b: uint16x8_t, c: uint16x8_t) -> uint16x8_t {
4431    let not = int16x8_t::splat(-1);
4432    unsafe {
4433        transmute(simd_or(
4434            simd_and(a, b),
4435            simd_and(simd_xor(a, transmute(not)), c),
4436        ))
4437    }
4438}
4439#[doc = "Bitwise Select."]
4440#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbslq_u32)"]
4441#[inline]
4442#[target_feature(enable = "neon")]
4443#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4444#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbsl))]
4445#[cfg_attr(
4446    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4447    assert_instr(bsl)
4448)]
4449#[cfg_attr(
4450    not(target_arch = "arm"),
4451    stable(feature = "neon_intrinsics", since = "1.59.0")
4452)]
4453#[cfg_attr(
4454    target_arch = "arm",
4455    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4456)]
4457pub fn vbslq_u32(a: uint32x4_t, b: uint32x4_t, c: uint32x4_t) -> uint32x4_t {
4458    let not = int32x4_t::splat(-1);
4459    unsafe {
4460        transmute(simd_or(
4461            simd_and(a, b),
4462            simd_and(simd_xor(a, transmute(not)), c),
4463        ))
4464    }
4465}
4466#[doc = "Bitwise Select."]
4467#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbslq_u64)"]
4468#[inline]
4469#[target_feature(enable = "neon")]
4470#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4471#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbsl))]
4472#[cfg_attr(
4473    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4474    assert_instr(bsl)
4475)]
4476#[cfg_attr(
4477    not(target_arch = "arm"),
4478    stable(feature = "neon_intrinsics", since = "1.59.0")
4479)]
4480#[cfg_attr(
4481    target_arch = "arm",
4482    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4483)]
4484pub fn vbslq_u64(a: uint64x2_t, b: uint64x2_t, c: uint64x2_t) -> uint64x2_t {
4485    let not = int64x2_t::splat(-1);
4486    unsafe {
4487        transmute(simd_or(
4488            simd_and(a, b),
4489            simd_and(simd_xor(a, transmute(not)), c),
4490        ))
4491    }
4492}
4493#[doc = "Bitwise Select."]
4494#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbslq_u8)"]
4495#[inline]
4496#[target_feature(enable = "neon")]
4497#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4498#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vbsl))]
4499#[cfg_attr(
4500    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4501    assert_instr(bsl)
4502)]
4503#[cfg_attr(
4504    not(target_arch = "arm"),
4505    stable(feature = "neon_intrinsics", since = "1.59.0")
4506)]
4507#[cfg_attr(
4508    target_arch = "arm",
4509    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4510)]
4511pub fn vbslq_u8(a: uint8x16_t, b: uint8x16_t, c: uint8x16_t) -> uint8x16_t {
4512    let not = int8x16_t::splat(-1);
4513    unsafe {
4514        transmute(simd_or(
4515            simd_and(a, b),
4516            simd_and(simd_xor(a, transmute(not)), c),
4517        ))
4518    }
4519}
4520#[doc = "Floating-point absolute compare greater than or equal"]
4521#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcage_f16)"]
4522#[inline]
4523#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
4524#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vacge.f16"))]
4525#[cfg_attr(
4526    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4527    assert_instr(facge)
4528)]
4529#[target_feature(enable = "neon,fp16")]
4530#[cfg_attr(
4531    not(target_arch = "arm"),
4532    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
4533)]
4534#[cfg_attr(
4535    target_arch = "arm",
4536    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4537)]
4538#[cfg(not(target_arch = "arm64ec"))]
4539pub fn vcage_f16(a: float16x4_t, b: float16x4_t) -> uint16x4_t {
4540    unsafe extern "unadjusted" {
4541        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vacge.v4i16.v4f16")]
4542        #[cfg_attr(
4543            any(target_arch = "aarch64", target_arch = "arm64ec"),
4544            link_name = "llvm.aarch64.neon.facge.v4i16.v4f16"
4545        )]
4546        fn _vcage_f16(a: float16x4_t, b: float16x4_t) -> uint16x4_t;
4547    }
4548    unsafe { _vcage_f16(a, b) }
4549}
4550#[doc = "Floating-point absolute compare greater than or equal"]
4551#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcageq_f16)"]
4552#[inline]
4553#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
4554#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vacge.f16"))]
4555#[cfg_attr(
4556    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4557    assert_instr(facge)
4558)]
4559#[target_feature(enable = "neon,fp16")]
4560#[cfg_attr(
4561    not(target_arch = "arm"),
4562    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
4563)]
4564#[cfg_attr(
4565    target_arch = "arm",
4566    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4567)]
4568#[cfg(not(target_arch = "arm64ec"))]
4569pub fn vcageq_f16(a: float16x8_t, b: float16x8_t) -> uint16x8_t {
4570    unsafe extern "unadjusted" {
4571        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vacge.v8i16.v8f16")]
4572        #[cfg_attr(
4573            any(target_arch = "aarch64", target_arch = "arm64ec"),
4574            link_name = "llvm.aarch64.neon.facge.v8i16.v8f16"
4575        )]
4576        fn _vcageq_f16(a: float16x8_t, b: float16x8_t) -> uint16x8_t;
4577    }
4578    unsafe { _vcageq_f16(a, b) }
4579}
4580#[doc = "Floating-point absolute compare greater than or equal"]
4581#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcage_f32)"]
4582#[inline]
4583#[target_feature(enable = "neon")]
4584#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4585#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vacge.f32"))]
4586#[cfg_attr(
4587    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4588    assert_instr(facge)
4589)]
4590#[cfg_attr(
4591    not(target_arch = "arm"),
4592    stable(feature = "neon_intrinsics", since = "1.59.0")
4593)]
4594#[cfg_attr(
4595    target_arch = "arm",
4596    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4597)]
4598pub fn vcage_f32(a: float32x2_t, b: float32x2_t) -> uint32x2_t {
4599    unsafe extern "unadjusted" {
4600        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vacge.v2i32.v2f32")]
4601        #[cfg_attr(
4602            any(target_arch = "aarch64", target_arch = "arm64ec"),
4603            link_name = "llvm.aarch64.neon.facge.v2i32.v2f32"
4604        )]
4605        fn _vcage_f32(a: float32x2_t, b: float32x2_t) -> uint32x2_t;
4606    }
4607    unsafe { _vcage_f32(a, b) }
4608}
4609#[doc = "Floating-point absolute compare greater than or equal"]
4610#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcageq_f32)"]
4611#[inline]
4612#[target_feature(enable = "neon")]
4613#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4614#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vacge.f32"))]
4615#[cfg_attr(
4616    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4617    assert_instr(facge)
4618)]
4619#[cfg_attr(
4620    not(target_arch = "arm"),
4621    stable(feature = "neon_intrinsics", since = "1.59.0")
4622)]
4623#[cfg_attr(
4624    target_arch = "arm",
4625    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4626)]
4627pub fn vcageq_f32(a: float32x4_t, b: float32x4_t) -> uint32x4_t {
4628    unsafe extern "unadjusted" {
4629        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vacge.v4i32.v4f32")]
4630        #[cfg_attr(
4631            any(target_arch = "aarch64", target_arch = "arm64ec"),
4632            link_name = "llvm.aarch64.neon.facge.v4i32.v4f32"
4633        )]
4634        fn _vcageq_f32(a: float32x4_t, b: float32x4_t) -> uint32x4_t;
4635    }
4636    unsafe { _vcageq_f32(a, b) }
4637}
4638#[doc = "Floating-point absolute compare greater than"]
4639#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcagt_f16)"]
4640#[inline]
4641#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
4642#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vacgt.f16"))]
4643#[cfg_attr(
4644    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4645    assert_instr(facgt)
4646)]
4647#[target_feature(enable = "neon,fp16")]
4648#[cfg_attr(
4649    not(target_arch = "arm"),
4650    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
4651)]
4652#[cfg_attr(
4653    target_arch = "arm",
4654    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4655)]
4656#[cfg(not(target_arch = "arm64ec"))]
4657pub fn vcagt_f16(a: float16x4_t, b: float16x4_t) -> uint16x4_t {
4658    unsafe extern "unadjusted" {
4659        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vacgt.v4i16.v4f16")]
4660        #[cfg_attr(
4661            any(target_arch = "aarch64", target_arch = "arm64ec"),
4662            link_name = "llvm.aarch64.neon.facgt.v4i16.v4f16"
4663        )]
4664        fn _vcagt_f16(a: float16x4_t, b: float16x4_t) -> uint16x4_t;
4665    }
4666    unsafe { _vcagt_f16(a, b) }
4667}
4668#[doc = "Floating-point absolute compare greater than"]
4669#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcagtq_f16)"]
4670#[inline]
4671#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
4672#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vacgt.f16"))]
4673#[cfg_attr(
4674    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4675    assert_instr(facgt)
4676)]
4677#[target_feature(enable = "neon,fp16")]
4678#[cfg_attr(
4679    not(target_arch = "arm"),
4680    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
4681)]
4682#[cfg_attr(
4683    target_arch = "arm",
4684    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4685)]
4686#[cfg(not(target_arch = "arm64ec"))]
4687pub fn vcagtq_f16(a: float16x8_t, b: float16x8_t) -> uint16x8_t {
4688    unsafe extern "unadjusted" {
4689        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vacgt.v8i16.v8f16")]
4690        #[cfg_attr(
4691            any(target_arch = "aarch64", target_arch = "arm64ec"),
4692            link_name = "llvm.aarch64.neon.facgt.v8i16.v8f16"
4693        )]
4694        fn _vcagtq_f16(a: float16x8_t, b: float16x8_t) -> uint16x8_t;
4695    }
4696    unsafe { _vcagtq_f16(a, b) }
4697}
4698#[doc = "Floating-point absolute compare greater than"]
4699#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcagt_f32)"]
4700#[inline]
4701#[target_feature(enable = "neon")]
4702#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4703#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vacgt.f32"))]
4704#[cfg_attr(
4705    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4706    assert_instr(facgt)
4707)]
4708#[cfg_attr(
4709    not(target_arch = "arm"),
4710    stable(feature = "neon_intrinsics", since = "1.59.0")
4711)]
4712#[cfg_attr(
4713    target_arch = "arm",
4714    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4715)]
4716pub fn vcagt_f32(a: float32x2_t, b: float32x2_t) -> uint32x2_t {
4717    unsafe extern "unadjusted" {
4718        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vacgt.v2i32.v2f32")]
4719        #[cfg_attr(
4720            any(target_arch = "aarch64", target_arch = "arm64ec"),
4721            link_name = "llvm.aarch64.neon.facgt.v2i32.v2f32"
4722        )]
4723        fn _vcagt_f32(a: float32x2_t, b: float32x2_t) -> uint32x2_t;
4724    }
4725    unsafe { _vcagt_f32(a, b) }
4726}
4727#[doc = "Floating-point absolute compare greater than"]
4728#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcagtq_f32)"]
4729#[inline]
4730#[target_feature(enable = "neon")]
4731#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4732#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vacgt.f32"))]
4733#[cfg_attr(
4734    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4735    assert_instr(facgt)
4736)]
4737#[cfg_attr(
4738    not(target_arch = "arm"),
4739    stable(feature = "neon_intrinsics", since = "1.59.0")
4740)]
4741#[cfg_attr(
4742    target_arch = "arm",
4743    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4744)]
4745pub fn vcagtq_f32(a: float32x4_t, b: float32x4_t) -> uint32x4_t {
4746    unsafe extern "unadjusted" {
4747        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vacgt.v4i32.v4f32")]
4748        #[cfg_attr(
4749            any(target_arch = "aarch64", target_arch = "arm64ec"),
4750            link_name = "llvm.aarch64.neon.facgt.v4i32.v4f32"
4751        )]
4752        fn _vcagtq_f32(a: float32x4_t, b: float32x4_t) -> uint32x4_t;
4753    }
4754    unsafe { _vcagtq_f32(a, b) }
4755}
4756#[doc = "Floating-point absolute compare less than or equal"]
4757#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcale_f16)"]
4758#[inline]
4759#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
4760#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vacge.f16"))]
4761#[cfg_attr(
4762    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4763    assert_instr(facge)
4764)]
4765#[target_feature(enable = "neon,fp16")]
4766#[cfg_attr(
4767    not(target_arch = "arm"),
4768    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
4769)]
4770#[cfg_attr(
4771    target_arch = "arm",
4772    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4773)]
4774#[cfg(not(target_arch = "arm64ec"))]
4775pub fn vcale_f16(a: float16x4_t, b: float16x4_t) -> uint16x4_t {
4776    vcage_f16(b, a)
4777}
4778#[doc = "Floating-point absolute compare less than or equal"]
4779#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcaleq_f16)"]
4780#[inline]
4781#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
4782#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vacge.f16"))]
4783#[cfg_attr(
4784    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4785    assert_instr(facge)
4786)]
4787#[target_feature(enable = "neon,fp16")]
4788#[cfg_attr(
4789    not(target_arch = "arm"),
4790    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
4791)]
4792#[cfg_attr(
4793    target_arch = "arm",
4794    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4795)]
4796#[cfg(not(target_arch = "arm64ec"))]
4797pub fn vcaleq_f16(a: float16x8_t, b: float16x8_t) -> uint16x8_t {
4798    vcageq_f16(b, a)
4799}
4800#[doc = "Floating-point absolute compare less than or equal"]
4801#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcale_f32)"]
4802#[inline]
4803#[target_feature(enable = "neon")]
4804#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4805#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vacge.f32"))]
4806#[cfg_attr(
4807    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4808    assert_instr(facge)
4809)]
4810#[cfg_attr(
4811    not(target_arch = "arm"),
4812    stable(feature = "neon_intrinsics", since = "1.59.0")
4813)]
4814#[cfg_attr(
4815    target_arch = "arm",
4816    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4817)]
4818pub fn vcale_f32(a: float32x2_t, b: float32x2_t) -> uint32x2_t {
4819    vcage_f32(b, a)
4820}
4821#[doc = "Floating-point absolute compare less than or equal"]
4822#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcaleq_f32)"]
4823#[inline]
4824#[target_feature(enable = "neon")]
4825#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4826#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vacge.f32"))]
4827#[cfg_attr(
4828    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4829    assert_instr(facge)
4830)]
4831#[cfg_attr(
4832    not(target_arch = "arm"),
4833    stable(feature = "neon_intrinsics", since = "1.59.0")
4834)]
4835#[cfg_attr(
4836    target_arch = "arm",
4837    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4838)]
4839pub fn vcaleq_f32(a: float32x4_t, b: float32x4_t) -> uint32x4_t {
4840    vcageq_f32(b, a)
4841}
4842#[doc = "Floating-point absolute compare less than"]
4843#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcalt_f16)"]
4844#[inline]
4845#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
4846#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vacgt.f16"))]
4847#[cfg_attr(
4848    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4849    assert_instr(facgt)
4850)]
4851#[target_feature(enable = "neon,fp16")]
4852#[cfg_attr(
4853    not(target_arch = "arm"),
4854    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
4855)]
4856#[cfg_attr(
4857    target_arch = "arm",
4858    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4859)]
4860#[cfg(not(target_arch = "arm64ec"))]
4861pub fn vcalt_f16(a: float16x4_t, b: float16x4_t) -> uint16x4_t {
4862    vcagt_f16(b, a)
4863}
4864#[doc = "Floating-point absolute compare less than"]
4865#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcaltq_f16)"]
4866#[inline]
4867#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
4868#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vacgt.f16"))]
4869#[cfg_attr(
4870    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4871    assert_instr(facgt)
4872)]
4873#[target_feature(enable = "neon,fp16")]
4874#[cfg_attr(
4875    not(target_arch = "arm"),
4876    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
4877)]
4878#[cfg_attr(
4879    target_arch = "arm",
4880    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4881)]
4882#[cfg(not(target_arch = "arm64ec"))]
4883pub fn vcaltq_f16(a: float16x8_t, b: float16x8_t) -> uint16x8_t {
4884    vcagtq_f16(b, a)
4885}
4886#[doc = "Floating-point absolute compare less than"]
4887#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcalt_f32)"]
4888#[inline]
4889#[target_feature(enable = "neon")]
4890#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4891#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vacgt.f32"))]
4892#[cfg_attr(
4893    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4894    assert_instr(facgt)
4895)]
4896#[cfg_attr(
4897    not(target_arch = "arm"),
4898    stable(feature = "neon_intrinsics", since = "1.59.0")
4899)]
4900#[cfg_attr(
4901    target_arch = "arm",
4902    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4903)]
4904pub fn vcalt_f32(a: float32x2_t, b: float32x2_t) -> uint32x2_t {
4905    vcagt_f32(b, a)
4906}
4907#[doc = "Floating-point absolute compare less than"]
4908#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcaltq_f32)"]
4909#[inline]
4910#[target_feature(enable = "neon")]
4911#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4912#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vacgt.f32"))]
4913#[cfg_attr(
4914    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4915    assert_instr(facgt)
4916)]
4917#[cfg_attr(
4918    not(target_arch = "arm"),
4919    stable(feature = "neon_intrinsics", since = "1.59.0")
4920)]
4921#[cfg_attr(
4922    target_arch = "arm",
4923    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4924)]
4925pub fn vcaltq_f32(a: float32x4_t, b: float32x4_t) -> uint32x4_t {
4926    vcagtq_f32(b, a)
4927}
4928#[doc = "Floating-point compare equal"]
4929#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vceq_f16)"]
4930#[inline]
4931#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
4932#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vceq.f16"))]
4933#[cfg_attr(
4934    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4935    assert_instr(fcmeq)
4936)]
4937#[target_feature(enable = "neon,fp16")]
4938#[cfg_attr(
4939    not(target_arch = "arm"),
4940    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
4941)]
4942#[cfg_attr(
4943    target_arch = "arm",
4944    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4945)]
4946#[cfg(not(target_arch = "arm64ec"))]
4947pub fn vceq_f16(a: float16x4_t, b: float16x4_t) -> uint16x4_t {
4948    unsafe { simd_eq(a, b) }
4949}
4950#[doc = "Floating-point compare equal"]
4951#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vceqq_f16)"]
4952#[inline]
4953#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
4954#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vceq.f16"))]
4955#[cfg_attr(
4956    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4957    assert_instr(fcmeq)
4958)]
4959#[target_feature(enable = "neon,fp16")]
4960#[cfg_attr(
4961    not(target_arch = "arm"),
4962    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
4963)]
4964#[cfg_attr(
4965    target_arch = "arm",
4966    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
4967)]
4968#[cfg(not(target_arch = "arm64ec"))]
4969pub fn vceqq_f16(a: float16x8_t, b: float16x8_t) -> uint16x8_t {
4970    unsafe { simd_eq(a, b) }
4971}
4972#[doc = "Floating-point compare equal"]
4973#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vceq_f32)"]
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.f32"))]
4978#[cfg_attr(
4979    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
4980    assert_instr(fcmeq)
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_f32(a: float32x2_t, b: float32x2_t) -> uint32x2_t {
4991    unsafe { simd_eq(a, b) }
4992}
4993#[doc = "Floating-point compare equal"]
4994#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vceqq_f32)"]
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.f32"))]
4999#[cfg_attr(
5000    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5001    assert_instr(fcmeq)
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_f32(a: float32x4_t, b: float32x4_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_s8)"]
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_s8(a: int8x8_t, b: int8x8_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_s8)"]
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_s8(a: int8x16_t, b: int8x16_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_s16)"]
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_s16(a: int16x4_t, b: int16x4_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_s16)"]
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_s16(a: int16x8_t, b: int16x8_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_s32)"]
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_s32(a: int32x2_t, b: int32x2_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_s32)"]
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_s32(a: int32x4_t, b: int32x4_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_u8)"]
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_u8(a: uint8x8_t, b: uint8x8_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_u8)"]
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_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
5180    unsafe { simd_eq(a, b) }
5181}
5182#[doc = "Compare bitwise Equal (vector)"]
5183#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vceq_u16)"]
5184#[inline]
5185#[target_feature(enable = "neon")]
5186#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5187#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vceq.i16"))]
5188#[cfg_attr(
5189    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5190    assert_instr(cmeq)
5191)]
5192#[cfg_attr(
5193    not(target_arch = "arm"),
5194    stable(feature = "neon_intrinsics", since = "1.59.0")
5195)]
5196#[cfg_attr(
5197    target_arch = "arm",
5198    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5199)]
5200pub fn vceq_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
5201    unsafe { simd_eq(a, b) }
5202}
5203#[doc = "Compare bitwise Equal (vector)"]
5204#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vceqq_u16)"]
5205#[inline]
5206#[target_feature(enable = "neon")]
5207#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5208#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vceq.i16"))]
5209#[cfg_attr(
5210    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5211    assert_instr(cmeq)
5212)]
5213#[cfg_attr(
5214    not(target_arch = "arm"),
5215    stable(feature = "neon_intrinsics", since = "1.59.0")
5216)]
5217#[cfg_attr(
5218    target_arch = "arm",
5219    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5220)]
5221pub fn vceqq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
5222    unsafe { simd_eq(a, b) }
5223}
5224#[doc = "Compare bitwise Equal (vector)"]
5225#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vceq_u32)"]
5226#[inline]
5227#[target_feature(enable = "neon")]
5228#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5229#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vceq.i32"))]
5230#[cfg_attr(
5231    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5232    assert_instr(cmeq)
5233)]
5234#[cfg_attr(
5235    not(target_arch = "arm"),
5236    stable(feature = "neon_intrinsics", since = "1.59.0")
5237)]
5238#[cfg_attr(
5239    target_arch = "arm",
5240    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5241)]
5242pub fn vceq_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
5243    unsafe { simd_eq(a, b) }
5244}
5245#[doc = "Compare bitwise Equal (vector)"]
5246#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vceqq_u32)"]
5247#[inline]
5248#[target_feature(enable = "neon")]
5249#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5250#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vceq.i32"))]
5251#[cfg_attr(
5252    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5253    assert_instr(cmeq)
5254)]
5255#[cfg_attr(
5256    not(target_arch = "arm"),
5257    stable(feature = "neon_intrinsics", since = "1.59.0")
5258)]
5259#[cfg_attr(
5260    target_arch = "arm",
5261    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5262)]
5263pub fn vceqq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
5264    unsafe { simd_eq(a, b) }
5265}
5266#[doc = "Compare bitwise Equal (vector)"]
5267#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vceq_p8)"]
5268#[inline]
5269#[target_feature(enable = "neon")]
5270#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5271#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vceq.i8"))]
5272#[cfg_attr(
5273    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5274    assert_instr(cmeq)
5275)]
5276#[cfg_attr(
5277    not(target_arch = "arm"),
5278    stable(feature = "neon_intrinsics", since = "1.59.0")
5279)]
5280#[cfg_attr(
5281    target_arch = "arm",
5282    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5283)]
5284pub fn vceq_p8(a: poly8x8_t, b: poly8x8_t) -> uint8x8_t {
5285    unsafe { simd_eq(a, b) }
5286}
5287#[doc = "Compare bitwise Equal (vector)"]
5288#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vceqq_p8)"]
5289#[inline]
5290#[target_feature(enable = "neon")]
5291#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5292#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vceq.i8"))]
5293#[cfg_attr(
5294    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5295    assert_instr(cmeq)
5296)]
5297#[cfg_attr(
5298    not(target_arch = "arm"),
5299    stable(feature = "neon_intrinsics", since = "1.59.0")
5300)]
5301#[cfg_attr(
5302    target_arch = "arm",
5303    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5304)]
5305pub fn vceqq_p8(a: poly8x16_t, b: poly8x16_t) -> uint8x16_t {
5306    unsafe { simd_eq(a, b) }
5307}
5308#[doc = "Floating-point compare greater than or equal"]
5309#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcge_f16)"]
5310#[inline]
5311#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
5312#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.f16"))]
5313#[cfg_attr(
5314    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5315    assert_instr(fcmge)
5316)]
5317#[target_feature(enable = "neon,fp16")]
5318#[cfg_attr(
5319    not(target_arch = "arm"),
5320    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
5321)]
5322#[cfg_attr(
5323    target_arch = "arm",
5324    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5325)]
5326#[cfg(not(target_arch = "arm64ec"))]
5327pub fn vcge_f16(a: float16x4_t, b: float16x4_t) -> uint16x4_t {
5328    unsafe { simd_ge(a, b) }
5329}
5330#[doc = "Floating-point compare greater than or equal"]
5331#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgeq_f16)"]
5332#[inline]
5333#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
5334#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.f16"))]
5335#[cfg_attr(
5336    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5337    assert_instr(fcmge)
5338)]
5339#[target_feature(enable = "neon,fp16")]
5340#[cfg_attr(
5341    not(target_arch = "arm"),
5342    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
5343)]
5344#[cfg_attr(
5345    target_arch = "arm",
5346    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5347)]
5348#[cfg(not(target_arch = "arm64ec"))]
5349pub fn vcgeq_f16(a: float16x8_t, b: float16x8_t) -> uint16x8_t {
5350    unsafe { simd_ge(a, b) }
5351}
5352#[doc = "Floating-point compare greater than or equal"]
5353#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcge_f32)"]
5354#[inline]
5355#[target_feature(enable = "neon")]
5356#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5357#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.f32"))]
5358#[cfg_attr(
5359    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5360    assert_instr(fcmge)
5361)]
5362#[cfg_attr(
5363    not(target_arch = "arm"),
5364    stable(feature = "neon_intrinsics", since = "1.59.0")
5365)]
5366#[cfg_attr(
5367    target_arch = "arm",
5368    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5369)]
5370pub fn vcge_f32(a: float32x2_t, b: float32x2_t) -> uint32x2_t {
5371    unsafe { simd_ge(a, b) }
5372}
5373#[doc = "Floating-point compare greater than or equal"]
5374#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgeq_f32)"]
5375#[inline]
5376#[target_feature(enable = "neon")]
5377#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5378#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.f32"))]
5379#[cfg_attr(
5380    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5381    assert_instr(fcmge)
5382)]
5383#[cfg_attr(
5384    not(target_arch = "arm"),
5385    stable(feature = "neon_intrinsics", since = "1.59.0")
5386)]
5387#[cfg_attr(
5388    target_arch = "arm",
5389    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5390)]
5391pub fn vcgeq_f32(a: float32x4_t, b: float32x4_t) -> uint32x4_t {
5392    unsafe { simd_ge(a, b) }
5393}
5394#[doc = "Compare signed greater than or equal"]
5395#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcge_s8)"]
5396#[inline]
5397#[target_feature(enable = "neon")]
5398#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5399#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.s8"))]
5400#[cfg_attr(
5401    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5402    assert_instr(cmge)
5403)]
5404#[cfg_attr(
5405    not(target_arch = "arm"),
5406    stable(feature = "neon_intrinsics", since = "1.59.0")
5407)]
5408#[cfg_attr(
5409    target_arch = "arm",
5410    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5411)]
5412pub fn vcge_s8(a: int8x8_t, b: int8x8_t) -> uint8x8_t {
5413    unsafe { simd_ge(a, b) }
5414}
5415#[doc = "Compare signed greater than or equal"]
5416#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgeq_s8)"]
5417#[inline]
5418#[target_feature(enable = "neon")]
5419#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5420#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.s8"))]
5421#[cfg_attr(
5422    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5423    assert_instr(cmge)
5424)]
5425#[cfg_attr(
5426    not(target_arch = "arm"),
5427    stable(feature = "neon_intrinsics", since = "1.59.0")
5428)]
5429#[cfg_attr(
5430    target_arch = "arm",
5431    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5432)]
5433pub fn vcgeq_s8(a: int8x16_t, b: int8x16_t) -> uint8x16_t {
5434    unsafe { simd_ge(a, b) }
5435}
5436#[doc = "Compare signed greater than or equal"]
5437#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcge_s16)"]
5438#[inline]
5439#[target_feature(enable = "neon")]
5440#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5441#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.s16"))]
5442#[cfg_attr(
5443    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5444    assert_instr(cmge)
5445)]
5446#[cfg_attr(
5447    not(target_arch = "arm"),
5448    stable(feature = "neon_intrinsics", since = "1.59.0")
5449)]
5450#[cfg_attr(
5451    target_arch = "arm",
5452    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5453)]
5454pub fn vcge_s16(a: int16x4_t, b: int16x4_t) -> uint16x4_t {
5455    unsafe { simd_ge(a, b) }
5456}
5457#[doc = "Compare signed greater than or equal"]
5458#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgeq_s16)"]
5459#[inline]
5460#[target_feature(enable = "neon")]
5461#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5462#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.s16"))]
5463#[cfg_attr(
5464    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5465    assert_instr(cmge)
5466)]
5467#[cfg_attr(
5468    not(target_arch = "arm"),
5469    stable(feature = "neon_intrinsics", since = "1.59.0")
5470)]
5471#[cfg_attr(
5472    target_arch = "arm",
5473    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5474)]
5475pub fn vcgeq_s16(a: int16x8_t, b: int16x8_t) -> uint16x8_t {
5476    unsafe { simd_ge(a, b) }
5477}
5478#[doc = "Compare signed greater than or equal"]
5479#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcge_s32)"]
5480#[inline]
5481#[target_feature(enable = "neon")]
5482#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5483#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.s32"))]
5484#[cfg_attr(
5485    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5486    assert_instr(cmge)
5487)]
5488#[cfg_attr(
5489    not(target_arch = "arm"),
5490    stable(feature = "neon_intrinsics", since = "1.59.0")
5491)]
5492#[cfg_attr(
5493    target_arch = "arm",
5494    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5495)]
5496pub fn vcge_s32(a: int32x2_t, b: int32x2_t) -> uint32x2_t {
5497    unsafe { simd_ge(a, b) }
5498}
5499#[doc = "Compare signed greater than or equal"]
5500#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgeq_s32)"]
5501#[inline]
5502#[target_feature(enable = "neon")]
5503#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5504#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.s32"))]
5505#[cfg_attr(
5506    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5507    assert_instr(cmge)
5508)]
5509#[cfg_attr(
5510    not(target_arch = "arm"),
5511    stable(feature = "neon_intrinsics", since = "1.59.0")
5512)]
5513#[cfg_attr(
5514    target_arch = "arm",
5515    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5516)]
5517pub fn vcgeq_s32(a: int32x4_t, b: int32x4_t) -> uint32x4_t {
5518    unsafe { simd_ge(a, b) }
5519}
5520#[doc = "Compare unsigned greater than or equal"]
5521#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcge_u8)"]
5522#[inline]
5523#[target_feature(enable = "neon")]
5524#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5525#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.u8"))]
5526#[cfg_attr(
5527    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5528    assert_instr(cmhs)
5529)]
5530#[cfg_attr(
5531    not(target_arch = "arm"),
5532    stable(feature = "neon_intrinsics", since = "1.59.0")
5533)]
5534#[cfg_attr(
5535    target_arch = "arm",
5536    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5537)]
5538pub fn vcge_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
5539    unsafe { simd_ge(a, b) }
5540}
5541#[doc = "Compare unsigned greater than or equal"]
5542#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgeq_u8)"]
5543#[inline]
5544#[target_feature(enable = "neon")]
5545#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5546#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.u8"))]
5547#[cfg_attr(
5548    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5549    assert_instr(cmhs)
5550)]
5551#[cfg_attr(
5552    not(target_arch = "arm"),
5553    stable(feature = "neon_intrinsics", since = "1.59.0")
5554)]
5555#[cfg_attr(
5556    target_arch = "arm",
5557    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5558)]
5559pub fn vcgeq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
5560    unsafe { simd_ge(a, b) }
5561}
5562#[doc = "Compare unsigned greater than or equal"]
5563#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcge_u16)"]
5564#[inline]
5565#[target_feature(enable = "neon")]
5566#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5567#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.u16"))]
5568#[cfg_attr(
5569    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5570    assert_instr(cmhs)
5571)]
5572#[cfg_attr(
5573    not(target_arch = "arm"),
5574    stable(feature = "neon_intrinsics", since = "1.59.0")
5575)]
5576#[cfg_attr(
5577    target_arch = "arm",
5578    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5579)]
5580pub fn vcge_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
5581    unsafe { simd_ge(a, b) }
5582}
5583#[doc = "Compare unsigned greater than or equal"]
5584#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgeq_u16)"]
5585#[inline]
5586#[target_feature(enable = "neon")]
5587#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5588#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.u16"))]
5589#[cfg_attr(
5590    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5591    assert_instr(cmhs)
5592)]
5593#[cfg_attr(
5594    not(target_arch = "arm"),
5595    stable(feature = "neon_intrinsics", since = "1.59.0")
5596)]
5597#[cfg_attr(
5598    target_arch = "arm",
5599    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5600)]
5601pub fn vcgeq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
5602    unsafe { simd_ge(a, b) }
5603}
5604#[doc = "Compare unsigned greater than or equal"]
5605#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcge_u32)"]
5606#[inline]
5607#[target_feature(enable = "neon")]
5608#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5609#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.u32"))]
5610#[cfg_attr(
5611    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5612    assert_instr(cmhs)
5613)]
5614#[cfg_attr(
5615    not(target_arch = "arm"),
5616    stable(feature = "neon_intrinsics", since = "1.59.0")
5617)]
5618#[cfg_attr(
5619    target_arch = "arm",
5620    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5621)]
5622pub fn vcge_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
5623    unsafe { simd_ge(a, b) }
5624}
5625#[doc = "Compare unsigned greater than or equal"]
5626#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgeq_u32)"]
5627#[inline]
5628#[target_feature(enable = "neon")]
5629#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5630#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.u32"))]
5631#[cfg_attr(
5632    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5633    assert_instr(cmhs)
5634)]
5635#[cfg_attr(
5636    not(target_arch = "arm"),
5637    stable(feature = "neon_intrinsics", since = "1.59.0")
5638)]
5639#[cfg_attr(
5640    target_arch = "arm",
5641    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5642)]
5643pub fn vcgeq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
5644    unsafe { simd_ge(a, b) }
5645}
5646#[doc = "Floating-point compare greater than or equal to zero"]
5647#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgez_f16)"]
5648#[inline]
5649#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
5650#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.f16"))]
5651#[cfg_attr(
5652    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5653    assert_instr(fcmge)
5654)]
5655#[target_feature(enable = "neon,fp16")]
5656#[cfg_attr(
5657    not(target_arch = "arm"),
5658    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
5659)]
5660#[cfg_attr(
5661    target_arch = "arm",
5662    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5663)]
5664#[cfg(not(target_arch = "arm64ec"))]
5665pub fn vcgez_f16(a: float16x4_t) -> uint16x4_t {
5666    let b: f16x4 = f16x4::new(0.0, 0.0, 0.0, 0.0);
5667    unsafe { simd_ge(a, transmute(b)) }
5668}
5669#[doc = "Floating-point compare greater than or equal to zero"]
5670#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgezq_f16)"]
5671#[inline]
5672#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
5673#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.f16"))]
5674#[cfg_attr(
5675    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5676    assert_instr(fcmge)
5677)]
5678#[target_feature(enable = "neon,fp16")]
5679#[cfg_attr(
5680    not(target_arch = "arm"),
5681    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
5682)]
5683#[cfg_attr(
5684    target_arch = "arm",
5685    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5686)]
5687#[cfg(not(target_arch = "arm64ec"))]
5688pub fn vcgezq_f16(a: float16x8_t) -> uint16x8_t {
5689    let b: f16x8 = f16x8::new(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
5690    unsafe { simd_ge(a, transmute(b)) }
5691}
5692#[doc = "Floating-point compare greater than"]
5693#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgt_f16)"]
5694#[inline]
5695#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
5696#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.f16"))]
5697#[cfg_attr(
5698    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5699    assert_instr(fcmgt)
5700)]
5701#[target_feature(enable = "neon,fp16")]
5702#[cfg_attr(
5703    not(target_arch = "arm"),
5704    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
5705)]
5706#[cfg_attr(
5707    target_arch = "arm",
5708    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5709)]
5710#[cfg(not(target_arch = "arm64ec"))]
5711pub fn vcgt_f16(a: float16x4_t, b: float16x4_t) -> uint16x4_t {
5712    unsafe { simd_gt(a, b) }
5713}
5714#[doc = "Floating-point compare greater than"]
5715#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgtq_f16)"]
5716#[inline]
5717#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
5718#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.f16"))]
5719#[cfg_attr(
5720    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5721    assert_instr(fcmgt)
5722)]
5723#[target_feature(enable = "neon,fp16")]
5724#[cfg_attr(
5725    not(target_arch = "arm"),
5726    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
5727)]
5728#[cfg_attr(
5729    target_arch = "arm",
5730    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5731)]
5732#[cfg(not(target_arch = "arm64ec"))]
5733pub fn vcgtq_f16(a: float16x8_t, b: float16x8_t) -> uint16x8_t {
5734    unsafe { simd_gt(a, b) }
5735}
5736#[doc = "Floating-point compare greater than"]
5737#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgt_f32)"]
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.f32"))]
5742#[cfg_attr(
5743    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5744    assert_instr(fcmgt)
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_f32(a: float32x2_t, b: float32x2_t) -> uint32x2_t {
5755    unsafe { simd_gt(a, b) }
5756}
5757#[doc = "Floating-point compare greater than"]
5758#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgtq_f32)"]
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.f32"))]
5763#[cfg_attr(
5764    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5765    assert_instr(fcmgt)
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_f32(a: float32x4_t, b: float32x4_t) -> uint32x4_t {
5776    unsafe { simd_gt(a, b) }
5777}
5778#[doc = "Compare signed greater than"]
5779#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgt_s8)"]
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.s8"))]
5784#[cfg_attr(
5785    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5786    assert_instr(cmgt)
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_s8(a: int8x8_t, b: int8x8_t) -> uint8x8_t {
5797    unsafe { simd_gt(a, b) }
5798}
5799#[doc = "Compare signed greater than"]
5800#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgtq_s8)"]
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.s8"))]
5805#[cfg_attr(
5806    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5807    assert_instr(cmgt)
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_s8(a: int8x16_t, b: int8x16_t) -> uint8x16_t {
5818    unsafe { simd_gt(a, b) }
5819}
5820#[doc = "Compare signed greater than"]
5821#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgt_s16)"]
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.s16"))]
5826#[cfg_attr(
5827    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5828    assert_instr(cmgt)
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_s16(a: int16x4_t, b: int16x4_t) -> uint16x4_t {
5839    unsafe { simd_gt(a, b) }
5840}
5841#[doc = "Compare signed greater than"]
5842#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgtq_s16)"]
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.s16"))]
5847#[cfg_attr(
5848    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5849    assert_instr(cmgt)
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_s16(a: int16x8_t, b: int16x8_t) -> uint16x8_t {
5860    unsafe { simd_gt(a, b) }
5861}
5862#[doc = "Compare signed greater than"]
5863#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgt_s32)"]
5864#[inline]
5865#[target_feature(enable = "neon")]
5866#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5867#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.s32"))]
5868#[cfg_attr(
5869    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5870    assert_instr(cmgt)
5871)]
5872#[cfg_attr(
5873    not(target_arch = "arm"),
5874    stable(feature = "neon_intrinsics", since = "1.59.0")
5875)]
5876#[cfg_attr(
5877    target_arch = "arm",
5878    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5879)]
5880pub fn vcgt_s32(a: int32x2_t, b: int32x2_t) -> uint32x2_t {
5881    unsafe { simd_gt(a, b) }
5882}
5883#[doc = "Compare signed greater than"]
5884#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgtq_s32)"]
5885#[inline]
5886#[target_feature(enable = "neon")]
5887#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5888#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.s32"))]
5889#[cfg_attr(
5890    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5891    assert_instr(cmgt)
5892)]
5893#[cfg_attr(
5894    not(target_arch = "arm"),
5895    stable(feature = "neon_intrinsics", since = "1.59.0")
5896)]
5897#[cfg_attr(
5898    target_arch = "arm",
5899    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5900)]
5901pub fn vcgtq_s32(a: int32x4_t, b: int32x4_t) -> uint32x4_t {
5902    unsafe { simd_gt(a, b) }
5903}
5904#[doc = "Compare unsigned greater than"]
5905#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgt_u8)"]
5906#[inline]
5907#[target_feature(enable = "neon")]
5908#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5909#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.u8"))]
5910#[cfg_attr(
5911    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5912    assert_instr(cmhi)
5913)]
5914#[cfg_attr(
5915    not(target_arch = "arm"),
5916    stable(feature = "neon_intrinsics", since = "1.59.0")
5917)]
5918#[cfg_attr(
5919    target_arch = "arm",
5920    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5921)]
5922pub fn vcgt_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
5923    unsafe { simd_gt(a, b) }
5924}
5925#[doc = "Compare unsigned greater than"]
5926#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgtq_u8)"]
5927#[inline]
5928#[target_feature(enable = "neon")]
5929#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5930#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.u8"))]
5931#[cfg_attr(
5932    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5933    assert_instr(cmhi)
5934)]
5935#[cfg_attr(
5936    not(target_arch = "arm"),
5937    stable(feature = "neon_intrinsics", since = "1.59.0")
5938)]
5939#[cfg_attr(
5940    target_arch = "arm",
5941    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5942)]
5943pub fn vcgtq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
5944    unsafe { simd_gt(a, b) }
5945}
5946#[doc = "Compare unsigned greater than"]
5947#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgt_u16)"]
5948#[inline]
5949#[target_feature(enable = "neon")]
5950#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5951#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.u16"))]
5952#[cfg_attr(
5953    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5954    assert_instr(cmhi)
5955)]
5956#[cfg_attr(
5957    not(target_arch = "arm"),
5958    stable(feature = "neon_intrinsics", since = "1.59.0")
5959)]
5960#[cfg_attr(
5961    target_arch = "arm",
5962    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5963)]
5964pub fn vcgt_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
5965    unsafe { simd_gt(a, b) }
5966}
5967#[doc = "Compare unsigned greater than"]
5968#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgtq_u16)"]
5969#[inline]
5970#[target_feature(enable = "neon")]
5971#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5972#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.u16"))]
5973#[cfg_attr(
5974    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5975    assert_instr(cmhi)
5976)]
5977#[cfg_attr(
5978    not(target_arch = "arm"),
5979    stable(feature = "neon_intrinsics", since = "1.59.0")
5980)]
5981#[cfg_attr(
5982    target_arch = "arm",
5983    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
5984)]
5985pub fn vcgtq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
5986    unsafe { simd_gt(a, b) }
5987}
5988#[doc = "Compare unsigned greater than"]
5989#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgt_u32)"]
5990#[inline]
5991#[target_feature(enable = "neon")]
5992#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5993#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.u32"))]
5994#[cfg_attr(
5995    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
5996    assert_instr(cmhi)
5997)]
5998#[cfg_attr(
5999    not(target_arch = "arm"),
6000    stable(feature = "neon_intrinsics", since = "1.59.0")
6001)]
6002#[cfg_attr(
6003    target_arch = "arm",
6004    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6005)]
6006pub fn vcgt_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
6007    unsafe { simd_gt(a, b) }
6008}
6009#[doc = "Compare unsigned greater than"]
6010#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgtq_u32)"]
6011#[inline]
6012#[target_feature(enable = "neon")]
6013#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6014#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.u32"))]
6015#[cfg_attr(
6016    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6017    assert_instr(cmhi)
6018)]
6019#[cfg_attr(
6020    not(target_arch = "arm"),
6021    stable(feature = "neon_intrinsics", since = "1.59.0")
6022)]
6023#[cfg_attr(
6024    target_arch = "arm",
6025    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6026)]
6027pub fn vcgtq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
6028    unsafe { simd_gt(a, b) }
6029}
6030#[doc = "Floating-point compare greater than zero"]
6031#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgtz_f16)"]
6032#[inline]
6033#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
6034#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.f16"))]
6035#[cfg_attr(
6036    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6037    assert_instr(fcmgt)
6038)]
6039#[target_feature(enable = "neon,fp16")]
6040#[cfg_attr(
6041    not(target_arch = "arm"),
6042    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
6043)]
6044#[cfg_attr(
6045    target_arch = "arm",
6046    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6047)]
6048#[cfg(not(target_arch = "arm64ec"))]
6049pub fn vcgtz_f16(a: float16x4_t) -> uint16x4_t {
6050    let b: f16x4 = f16x4::new(0.0, 0.0, 0.0, 0.0);
6051    unsafe { simd_gt(a, transmute(b)) }
6052}
6053#[doc = "Floating-point compare greater than zero"]
6054#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgtzq_f16)"]
6055#[inline]
6056#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
6057#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.f16"))]
6058#[cfg_attr(
6059    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6060    assert_instr(fcmgt)
6061)]
6062#[target_feature(enable = "neon,fp16")]
6063#[cfg_attr(
6064    not(target_arch = "arm"),
6065    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
6066)]
6067#[cfg_attr(
6068    target_arch = "arm",
6069    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6070)]
6071#[cfg(not(target_arch = "arm64ec"))]
6072pub fn vcgtzq_f16(a: float16x8_t) -> uint16x8_t {
6073    let b: f16x8 = f16x8::new(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
6074    unsafe { simd_gt(a, transmute(b)) }
6075}
6076#[doc = "Floating-point compare less than or equal"]
6077#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcle_f16)"]
6078#[inline]
6079#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
6080#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.f16"))]
6081#[cfg_attr(
6082    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6083    assert_instr(fcmge)
6084)]
6085#[target_feature(enable = "neon,fp16")]
6086#[cfg_attr(
6087    not(target_arch = "arm"),
6088    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
6089)]
6090#[cfg_attr(
6091    target_arch = "arm",
6092    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6093)]
6094#[cfg(not(target_arch = "arm64ec"))]
6095pub fn vcle_f16(a: float16x4_t, b: float16x4_t) -> uint16x4_t {
6096    unsafe { simd_le(a, b) }
6097}
6098#[doc = "Floating-point compare less than or equal"]
6099#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcleq_f16)"]
6100#[inline]
6101#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
6102#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.f16"))]
6103#[cfg_attr(
6104    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6105    assert_instr(fcmge)
6106)]
6107#[target_feature(enable = "neon,fp16")]
6108#[cfg_attr(
6109    not(target_arch = "arm"),
6110    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
6111)]
6112#[cfg_attr(
6113    target_arch = "arm",
6114    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6115)]
6116#[cfg(not(target_arch = "arm64ec"))]
6117pub fn vcleq_f16(a: float16x8_t, b: float16x8_t) -> uint16x8_t {
6118    unsafe { simd_le(a, b) }
6119}
6120#[doc = "Floating-point compare less than or equal"]
6121#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcle_f32)"]
6122#[inline]
6123#[target_feature(enable = "neon")]
6124#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6125#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.f32"))]
6126#[cfg_attr(
6127    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6128    assert_instr(fcmge)
6129)]
6130#[cfg_attr(
6131    not(target_arch = "arm"),
6132    stable(feature = "neon_intrinsics", since = "1.59.0")
6133)]
6134#[cfg_attr(
6135    target_arch = "arm",
6136    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6137)]
6138pub fn vcle_f32(a: float32x2_t, b: float32x2_t) -> uint32x2_t {
6139    unsafe { simd_le(a, b) }
6140}
6141#[doc = "Floating-point compare less than or equal"]
6142#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcleq_f32)"]
6143#[inline]
6144#[target_feature(enable = "neon")]
6145#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6146#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.f32"))]
6147#[cfg_attr(
6148    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6149    assert_instr(fcmge)
6150)]
6151#[cfg_attr(
6152    not(target_arch = "arm"),
6153    stable(feature = "neon_intrinsics", since = "1.59.0")
6154)]
6155#[cfg_attr(
6156    target_arch = "arm",
6157    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6158)]
6159pub fn vcleq_f32(a: float32x4_t, b: float32x4_t) -> uint32x4_t {
6160    unsafe { simd_le(a, b) }
6161}
6162#[doc = "Compare signed less than or equal"]
6163#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcle_s8)"]
6164#[inline]
6165#[target_feature(enable = "neon")]
6166#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6167#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.s8"))]
6168#[cfg_attr(
6169    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6170    assert_instr(cmge)
6171)]
6172#[cfg_attr(
6173    not(target_arch = "arm"),
6174    stable(feature = "neon_intrinsics", since = "1.59.0")
6175)]
6176#[cfg_attr(
6177    target_arch = "arm",
6178    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6179)]
6180pub fn vcle_s8(a: int8x8_t, b: int8x8_t) -> uint8x8_t {
6181    unsafe { simd_le(a, b) }
6182}
6183#[doc = "Compare signed less than or equal"]
6184#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcleq_s8)"]
6185#[inline]
6186#[target_feature(enable = "neon")]
6187#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6188#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.s8"))]
6189#[cfg_attr(
6190    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6191    assert_instr(cmge)
6192)]
6193#[cfg_attr(
6194    not(target_arch = "arm"),
6195    stable(feature = "neon_intrinsics", since = "1.59.0")
6196)]
6197#[cfg_attr(
6198    target_arch = "arm",
6199    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6200)]
6201pub fn vcleq_s8(a: int8x16_t, b: int8x16_t) -> uint8x16_t {
6202    unsafe { simd_le(a, b) }
6203}
6204#[doc = "Compare signed less than or equal"]
6205#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcle_s16)"]
6206#[inline]
6207#[target_feature(enable = "neon")]
6208#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6209#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.s16"))]
6210#[cfg_attr(
6211    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6212    assert_instr(cmge)
6213)]
6214#[cfg_attr(
6215    not(target_arch = "arm"),
6216    stable(feature = "neon_intrinsics", since = "1.59.0")
6217)]
6218#[cfg_attr(
6219    target_arch = "arm",
6220    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6221)]
6222pub fn vcle_s16(a: int16x4_t, b: int16x4_t) -> uint16x4_t {
6223    unsafe { simd_le(a, b) }
6224}
6225#[doc = "Compare signed less than or equal"]
6226#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcleq_s16)"]
6227#[inline]
6228#[target_feature(enable = "neon")]
6229#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6230#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.s16"))]
6231#[cfg_attr(
6232    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6233    assert_instr(cmge)
6234)]
6235#[cfg_attr(
6236    not(target_arch = "arm"),
6237    stable(feature = "neon_intrinsics", since = "1.59.0")
6238)]
6239#[cfg_attr(
6240    target_arch = "arm",
6241    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6242)]
6243pub fn vcleq_s16(a: int16x8_t, b: int16x8_t) -> uint16x8_t {
6244    unsafe { simd_le(a, b) }
6245}
6246#[doc = "Compare signed less than or equal"]
6247#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcle_s32)"]
6248#[inline]
6249#[target_feature(enable = "neon")]
6250#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6251#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.s32"))]
6252#[cfg_attr(
6253    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6254    assert_instr(cmge)
6255)]
6256#[cfg_attr(
6257    not(target_arch = "arm"),
6258    stable(feature = "neon_intrinsics", since = "1.59.0")
6259)]
6260#[cfg_attr(
6261    target_arch = "arm",
6262    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6263)]
6264pub fn vcle_s32(a: int32x2_t, b: int32x2_t) -> uint32x2_t {
6265    unsafe { simd_le(a, b) }
6266}
6267#[doc = "Compare signed less than or equal"]
6268#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcleq_s32)"]
6269#[inline]
6270#[target_feature(enable = "neon")]
6271#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6272#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.s32"))]
6273#[cfg_attr(
6274    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6275    assert_instr(cmge)
6276)]
6277#[cfg_attr(
6278    not(target_arch = "arm"),
6279    stable(feature = "neon_intrinsics", since = "1.59.0")
6280)]
6281#[cfg_attr(
6282    target_arch = "arm",
6283    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6284)]
6285pub fn vcleq_s32(a: int32x4_t, b: int32x4_t) -> uint32x4_t {
6286    unsafe { simd_le(a, b) }
6287}
6288#[doc = "Compare unsigned less than or equal"]
6289#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcle_u8)"]
6290#[inline]
6291#[target_feature(enable = "neon")]
6292#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6293#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.u8"))]
6294#[cfg_attr(
6295    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6296    assert_instr(cmhs)
6297)]
6298#[cfg_attr(
6299    not(target_arch = "arm"),
6300    stable(feature = "neon_intrinsics", since = "1.59.0")
6301)]
6302#[cfg_attr(
6303    target_arch = "arm",
6304    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6305)]
6306pub fn vcle_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
6307    unsafe { simd_le(a, b) }
6308}
6309#[doc = "Compare unsigned less than or equal"]
6310#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcleq_u8)"]
6311#[inline]
6312#[target_feature(enable = "neon")]
6313#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6314#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.u8"))]
6315#[cfg_attr(
6316    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6317    assert_instr(cmhs)
6318)]
6319#[cfg_attr(
6320    not(target_arch = "arm"),
6321    stable(feature = "neon_intrinsics", since = "1.59.0")
6322)]
6323#[cfg_attr(
6324    target_arch = "arm",
6325    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6326)]
6327pub fn vcleq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
6328    unsafe { simd_le(a, b) }
6329}
6330#[doc = "Compare unsigned less than or equal"]
6331#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcle_u16)"]
6332#[inline]
6333#[target_feature(enable = "neon")]
6334#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6335#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.u16"))]
6336#[cfg_attr(
6337    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6338    assert_instr(cmhs)
6339)]
6340#[cfg_attr(
6341    not(target_arch = "arm"),
6342    stable(feature = "neon_intrinsics", since = "1.59.0")
6343)]
6344#[cfg_attr(
6345    target_arch = "arm",
6346    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6347)]
6348pub fn vcle_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
6349    unsafe { simd_le(a, b) }
6350}
6351#[doc = "Compare unsigned less than or equal"]
6352#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcleq_u16)"]
6353#[inline]
6354#[target_feature(enable = "neon")]
6355#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6356#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.u16"))]
6357#[cfg_attr(
6358    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6359    assert_instr(cmhs)
6360)]
6361#[cfg_attr(
6362    not(target_arch = "arm"),
6363    stable(feature = "neon_intrinsics", since = "1.59.0")
6364)]
6365#[cfg_attr(
6366    target_arch = "arm",
6367    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6368)]
6369pub fn vcleq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
6370    unsafe { simd_le(a, b) }
6371}
6372#[doc = "Compare unsigned less than or equal"]
6373#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcle_u32)"]
6374#[inline]
6375#[target_feature(enable = "neon")]
6376#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6377#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.u32"))]
6378#[cfg_attr(
6379    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6380    assert_instr(cmhs)
6381)]
6382#[cfg_attr(
6383    not(target_arch = "arm"),
6384    stable(feature = "neon_intrinsics", since = "1.59.0")
6385)]
6386#[cfg_attr(
6387    target_arch = "arm",
6388    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6389)]
6390pub fn vcle_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
6391    unsafe { simd_le(a, b) }
6392}
6393#[doc = "Compare unsigned less than or equal"]
6394#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcleq_u32)"]
6395#[inline]
6396#[target_feature(enable = "neon")]
6397#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6398#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.u32"))]
6399#[cfg_attr(
6400    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6401    assert_instr(cmhs)
6402)]
6403#[cfg_attr(
6404    not(target_arch = "arm"),
6405    stable(feature = "neon_intrinsics", since = "1.59.0")
6406)]
6407#[cfg_attr(
6408    target_arch = "arm",
6409    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6410)]
6411pub fn vcleq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
6412    unsafe { simd_le(a, b) }
6413}
6414#[doc = "Floating-point compare less than or equal to zero"]
6415#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclez_f16)"]
6416#[inline]
6417#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
6418#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcle.f16"))]
6419#[cfg_attr(
6420    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6421    assert_instr(fcmle)
6422)]
6423#[target_feature(enable = "neon,fp16")]
6424#[cfg_attr(
6425    not(target_arch = "arm"),
6426    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
6427)]
6428#[cfg_attr(
6429    target_arch = "arm",
6430    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6431)]
6432#[cfg(not(target_arch = "arm64ec"))]
6433pub fn vclez_f16(a: float16x4_t) -> uint16x4_t {
6434    let b: f16x4 = f16x4::new(0.0, 0.0, 0.0, 0.0);
6435    unsafe { simd_le(a, transmute(b)) }
6436}
6437#[doc = "Floating-point compare less than or equal to zero"]
6438#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclezq_f16)"]
6439#[inline]
6440#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
6441#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcle.f16"))]
6442#[cfg_attr(
6443    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6444    assert_instr(fcmle)
6445)]
6446#[target_feature(enable = "neon,fp16")]
6447#[cfg_attr(
6448    not(target_arch = "arm"),
6449    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
6450)]
6451#[cfg_attr(
6452    target_arch = "arm",
6453    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6454)]
6455#[cfg(not(target_arch = "arm64ec"))]
6456pub fn vclezq_f16(a: float16x8_t) -> uint16x8_t {
6457    let b: f16x8 = f16x8::new(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
6458    unsafe { simd_le(a, transmute(b)) }
6459}
6460#[doc = "Count leading sign bits"]
6461#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcls_s8)"]
6462#[inline]
6463#[target_feature(enable = "neon")]
6464#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6465#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcls.s8"))]
6466#[cfg_attr(
6467    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6468    assert_instr(cls)
6469)]
6470#[cfg_attr(
6471    not(target_arch = "arm"),
6472    stable(feature = "neon_intrinsics", since = "1.59.0")
6473)]
6474#[cfg_attr(
6475    target_arch = "arm",
6476    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6477)]
6478pub fn vcls_s8(a: int8x8_t) -> int8x8_t {
6479    unsafe extern "unadjusted" {
6480        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vcls.v8i8")]
6481        #[cfg_attr(
6482            any(target_arch = "aarch64", target_arch = "arm64ec"),
6483            link_name = "llvm.aarch64.neon.cls.v8i8"
6484        )]
6485        fn _vcls_s8(a: int8x8_t) -> int8x8_t;
6486    }
6487    unsafe { _vcls_s8(a) }
6488}
6489#[doc = "Count leading sign bits"]
6490#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclsq_s8)"]
6491#[inline]
6492#[target_feature(enable = "neon")]
6493#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6494#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcls.s8"))]
6495#[cfg_attr(
6496    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6497    assert_instr(cls)
6498)]
6499#[cfg_attr(
6500    not(target_arch = "arm"),
6501    stable(feature = "neon_intrinsics", since = "1.59.0")
6502)]
6503#[cfg_attr(
6504    target_arch = "arm",
6505    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6506)]
6507pub fn vclsq_s8(a: int8x16_t) -> int8x16_t {
6508    unsafe extern "unadjusted" {
6509        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vcls.v16i8")]
6510        #[cfg_attr(
6511            any(target_arch = "aarch64", target_arch = "arm64ec"),
6512            link_name = "llvm.aarch64.neon.cls.v16i8"
6513        )]
6514        fn _vclsq_s8(a: int8x16_t) -> int8x16_t;
6515    }
6516    unsafe { _vclsq_s8(a) }
6517}
6518#[doc = "Count leading sign bits"]
6519#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcls_s16)"]
6520#[inline]
6521#[target_feature(enable = "neon")]
6522#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6523#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcls.s16"))]
6524#[cfg_attr(
6525    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6526    assert_instr(cls)
6527)]
6528#[cfg_attr(
6529    not(target_arch = "arm"),
6530    stable(feature = "neon_intrinsics", since = "1.59.0")
6531)]
6532#[cfg_attr(
6533    target_arch = "arm",
6534    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6535)]
6536pub fn vcls_s16(a: int16x4_t) -> int16x4_t {
6537    unsafe extern "unadjusted" {
6538        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vcls.v4i16")]
6539        #[cfg_attr(
6540            any(target_arch = "aarch64", target_arch = "arm64ec"),
6541            link_name = "llvm.aarch64.neon.cls.v4i16"
6542        )]
6543        fn _vcls_s16(a: int16x4_t) -> int16x4_t;
6544    }
6545    unsafe { _vcls_s16(a) }
6546}
6547#[doc = "Count leading sign bits"]
6548#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclsq_s16)"]
6549#[inline]
6550#[target_feature(enable = "neon")]
6551#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6552#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcls.s16"))]
6553#[cfg_attr(
6554    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6555    assert_instr(cls)
6556)]
6557#[cfg_attr(
6558    not(target_arch = "arm"),
6559    stable(feature = "neon_intrinsics", since = "1.59.0")
6560)]
6561#[cfg_attr(
6562    target_arch = "arm",
6563    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6564)]
6565pub fn vclsq_s16(a: int16x8_t) -> int16x8_t {
6566    unsafe extern "unadjusted" {
6567        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vcls.v8i16")]
6568        #[cfg_attr(
6569            any(target_arch = "aarch64", target_arch = "arm64ec"),
6570            link_name = "llvm.aarch64.neon.cls.v8i16"
6571        )]
6572        fn _vclsq_s16(a: int16x8_t) -> int16x8_t;
6573    }
6574    unsafe { _vclsq_s16(a) }
6575}
6576#[doc = "Count leading sign bits"]
6577#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcls_s32)"]
6578#[inline]
6579#[target_feature(enable = "neon")]
6580#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6581#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcls.s32"))]
6582#[cfg_attr(
6583    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6584    assert_instr(cls)
6585)]
6586#[cfg_attr(
6587    not(target_arch = "arm"),
6588    stable(feature = "neon_intrinsics", since = "1.59.0")
6589)]
6590#[cfg_attr(
6591    target_arch = "arm",
6592    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6593)]
6594pub fn vcls_s32(a: int32x2_t) -> int32x2_t {
6595    unsafe extern "unadjusted" {
6596        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vcls.v2i32")]
6597        #[cfg_attr(
6598            any(target_arch = "aarch64", target_arch = "arm64ec"),
6599            link_name = "llvm.aarch64.neon.cls.v2i32"
6600        )]
6601        fn _vcls_s32(a: int32x2_t) -> int32x2_t;
6602    }
6603    unsafe { _vcls_s32(a) }
6604}
6605#[doc = "Count leading sign bits"]
6606#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclsq_s32)"]
6607#[inline]
6608#[target_feature(enable = "neon")]
6609#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6610#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcls.s32"))]
6611#[cfg_attr(
6612    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6613    assert_instr(cls)
6614)]
6615#[cfg_attr(
6616    not(target_arch = "arm"),
6617    stable(feature = "neon_intrinsics", since = "1.59.0")
6618)]
6619#[cfg_attr(
6620    target_arch = "arm",
6621    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6622)]
6623pub fn vclsq_s32(a: int32x4_t) -> int32x4_t {
6624    unsafe extern "unadjusted" {
6625        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vcls.v4i32")]
6626        #[cfg_attr(
6627            any(target_arch = "aarch64", target_arch = "arm64ec"),
6628            link_name = "llvm.aarch64.neon.cls.v4i32"
6629        )]
6630        fn _vclsq_s32(a: int32x4_t) -> int32x4_t;
6631    }
6632    unsafe { _vclsq_s32(a) }
6633}
6634#[doc = "Count leading sign bits"]
6635#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcls_u8)"]
6636#[inline]
6637#[target_feature(enable = "neon")]
6638#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6639#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcls))]
6640#[cfg_attr(
6641    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6642    assert_instr(cls)
6643)]
6644#[cfg_attr(
6645    not(target_arch = "arm"),
6646    stable(feature = "neon_intrinsics", since = "1.59.0")
6647)]
6648#[cfg_attr(
6649    target_arch = "arm",
6650    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6651)]
6652pub fn vcls_u8(a: uint8x8_t) -> int8x8_t {
6653    unsafe { vcls_s8(transmute(a)) }
6654}
6655#[doc = "Count leading sign bits"]
6656#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclsq_u8)"]
6657#[inline]
6658#[target_feature(enable = "neon")]
6659#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6660#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcls))]
6661#[cfg_attr(
6662    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6663    assert_instr(cls)
6664)]
6665#[cfg_attr(
6666    not(target_arch = "arm"),
6667    stable(feature = "neon_intrinsics", since = "1.59.0")
6668)]
6669#[cfg_attr(
6670    target_arch = "arm",
6671    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6672)]
6673pub fn vclsq_u8(a: uint8x16_t) -> int8x16_t {
6674    unsafe { vclsq_s8(transmute(a)) }
6675}
6676#[doc = "Count leading sign bits"]
6677#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcls_u16)"]
6678#[inline]
6679#[target_feature(enable = "neon")]
6680#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6681#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcls))]
6682#[cfg_attr(
6683    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6684    assert_instr(cls)
6685)]
6686#[cfg_attr(
6687    not(target_arch = "arm"),
6688    stable(feature = "neon_intrinsics", since = "1.59.0")
6689)]
6690#[cfg_attr(
6691    target_arch = "arm",
6692    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6693)]
6694pub fn vcls_u16(a: uint16x4_t) -> int16x4_t {
6695    unsafe { vcls_s16(transmute(a)) }
6696}
6697#[doc = "Count leading sign bits"]
6698#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclsq_u16)"]
6699#[inline]
6700#[target_feature(enable = "neon")]
6701#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6702#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcls))]
6703#[cfg_attr(
6704    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6705    assert_instr(cls)
6706)]
6707#[cfg_attr(
6708    not(target_arch = "arm"),
6709    stable(feature = "neon_intrinsics", since = "1.59.0")
6710)]
6711#[cfg_attr(
6712    target_arch = "arm",
6713    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6714)]
6715pub fn vclsq_u16(a: uint16x8_t) -> int16x8_t {
6716    unsafe { vclsq_s16(transmute(a)) }
6717}
6718#[doc = "Count leading sign bits"]
6719#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcls_u32)"]
6720#[inline]
6721#[target_feature(enable = "neon")]
6722#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6723#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcls))]
6724#[cfg_attr(
6725    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6726    assert_instr(cls)
6727)]
6728#[cfg_attr(
6729    not(target_arch = "arm"),
6730    stable(feature = "neon_intrinsics", since = "1.59.0")
6731)]
6732#[cfg_attr(
6733    target_arch = "arm",
6734    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6735)]
6736pub fn vcls_u32(a: uint32x2_t) -> int32x2_t {
6737    unsafe { vcls_s32(transmute(a)) }
6738}
6739#[doc = "Count leading sign bits"]
6740#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclsq_u32)"]
6741#[inline]
6742#[target_feature(enable = "neon")]
6743#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6744#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcls))]
6745#[cfg_attr(
6746    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6747    assert_instr(cls)
6748)]
6749#[cfg_attr(
6750    not(target_arch = "arm"),
6751    stable(feature = "neon_intrinsics", since = "1.59.0")
6752)]
6753#[cfg_attr(
6754    target_arch = "arm",
6755    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6756)]
6757pub fn vclsq_u32(a: uint32x4_t) -> int32x4_t {
6758    unsafe { vclsq_s32(transmute(a)) }
6759}
6760#[doc = "Floating-point compare less than"]
6761#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclt_f16)"]
6762#[inline]
6763#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
6764#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.f16"))]
6765#[cfg_attr(
6766    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6767    assert_instr(fcmgt)
6768)]
6769#[target_feature(enable = "neon,fp16")]
6770#[cfg_attr(
6771    not(target_arch = "arm"),
6772    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
6773)]
6774#[cfg_attr(
6775    target_arch = "arm",
6776    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6777)]
6778#[cfg(not(target_arch = "arm64ec"))]
6779pub fn vclt_f16(a: float16x4_t, b: float16x4_t) -> uint16x4_t {
6780    unsafe { simd_lt(a, b) }
6781}
6782#[doc = "Floating-point compare less than"]
6783#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcltq_f16)"]
6784#[inline]
6785#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
6786#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.f16"))]
6787#[cfg_attr(
6788    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6789    assert_instr(fcmgt)
6790)]
6791#[target_feature(enable = "neon,fp16")]
6792#[cfg_attr(
6793    not(target_arch = "arm"),
6794    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
6795)]
6796#[cfg_attr(
6797    target_arch = "arm",
6798    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6799)]
6800#[cfg(not(target_arch = "arm64ec"))]
6801pub fn vcltq_f16(a: float16x8_t, b: float16x8_t) -> uint16x8_t {
6802    unsafe { simd_lt(a, b) }
6803}
6804#[doc = "Floating-point compare less than"]
6805#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclt_f32)"]
6806#[inline]
6807#[target_feature(enable = "neon")]
6808#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6809#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.f32"))]
6810#[cfg_attr(
6811    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6812    assert_instr(fcmgt)
6813)]
6814#[cfg_attr(
6815    not(target_arch = "arm"),
6816    stable(feature = "neon_intrinsics", since = "1.59.0")
6817)]
6818#[cfg_attr(
6819    target_arch = "arm",
6820    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6821)]
6822pub fn vclt_f32(a: float32x2_t, b: float32x2_t) -> uint32x2_t {
6823    unsafe { simd_lt(a, b) }
6824}
6825#[doc = "Floating-point compare less than"]
6826#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcltq_f32)"]
6827#[inline]
6828#[target_feature(enable = "neon")]
6829#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6830#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.f32"))]
6831#[cfg_attr(
6832    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6833    assert_instr(fcmgt)
6834)]
6835#[cfg_attr(
6836    not(target_arch = "arm"),
6837    stable(feature = "neon_intrinsics", since = "1.59.0")
6838)]
6839#[cfg_attr(
6840    target_arch = "arm",
6841    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6842)]
6843pub fn vcltq_f32(a: float32x4_t, b: float32x4_t) -> uint32x4_t {
6844    unsafe { simd_lt(a, b) }
6845}
6846#[doc = "Compare signed less than"]
6847#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclt_s8)"]
6848#[inline]
6849#[target_feature(enable = "neon")]
6850#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6851#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.s8"))]
6852#[cfg_attr(
6853    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6854    assert_instr(cmgt)
6855)]
6856#[cfg_attr(
6857    not(target_arch = "arm"),
6858    stable(feature = "neon_intrinsics", since = "1.59.0")
6859)]
6860#[cfg_attr(
6861    target_arch = "arm",
6862    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6863)]
6864pub fn vclt_s8(a: int8x8_t, b: int8x8_t) -> uint8x8_t {
6865    unsafe { simd_lt(a, b) }
6866}
6867#[doc = "Compare signed less than"]
6868#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcltq_s8)"]
6869#[inline]
6870#[target_feature(enable = "neon")]
6871#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6872#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.s8"))]
6873#[cfg_attr(
6874    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6875    assert_instr(cmgt)
6876)]
6877#[cfg_attr(
6878    not(target_arch = "arm"),
6879    stable(feature = "neon_intrinsics", since = "1.59.0")
6880)]
6881#[cfg_attr(
6882    target_arch = "arm",
6883    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6884)]
6885pub fn vcltq_s8(a: int8x16_t, b: int8x16_t) -> uint8x16_t {
6886    unsafe { simd_lt(a, b) }
6887}
6888#[doc = "Compare signed less than"]
6889#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclt_s16)"]
6890#[inline]
6891#[target_feature(enable = "neon")]
6892#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6893#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.s16"))]
6894#[cfg_attr(
6895    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6896    assert_instr(cmgt)
6897)]
6898#[cfg_attr(
6899    not(target_arch = "arm"),
6900    stable(feature = "neon_intrinsics", since = "1.59.0")
6901)]
6902#[cfg_attr(
6903    target_arch = "arm",
6904    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6905)]
6906pub fn vclt_s16(a: int16x4_t, b: int16x4_t) -> uint16x4_t {
6907    unsafe { simd_lt(a, b) }
6908}
6909#[doc = "Compare signed less than"]
6910#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcltq_s16)"]
6911#[inline]
6912#[target_feature(enable = "neon")]
6913#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6914#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.s16"))]
6915#[cfg_attr(
6916    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6917    assert_instr(cmgt)
6918)]
6919#[cfg_attr(
6920    not(target_arch = "arm"),
6921    stable(feature = "neon_intrinsics", since = "1.59.0")
6922)]
6923#[cfg_attr(
6924    target_arch = "arm",
6925    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6926)]
6927pub fn vcltq_s16(a: int16x8_t, b: int16x8_t) -> uint16x8_t {
6928    unsafe { simd_lt(a, b) }
6929}
6930#[doc = "Compare signed less than"]
6931#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclt_s32)"]
6932#[inline]
6933#[target_feature(enable = "neon")]
6934#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6935#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.s32"))]
6936#[cfg_attr(
6937    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6938    assert_instr(cmgt)
6939)]
6940#[cfg_attr(
6941    not(target_arch = "arm"),
6942    stable(feature = "neon_intrinsics", since = "1.59.0")
6943)]
6944#[cfg_attr(
6945    target_arch = "arm",
6946    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6947)]
6948pub fn vclt_s32(a: int32x2_t, b: int32x2_t) -> uint32x2_t {
6949    unsafe { simd_lt(a, b) }
6950}
6951#[doc = "Compare signed less than"]
6952#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcltq_s32)"]
6953#[inline]
6954#[target_feature(enable = "neon")]
6955#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6956#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.s32"))]
6957#[cfg_attr(
6958    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6959    assert_instr(cmgt)
6960)]
6961#[cfg_attr(
6962    not(target_arch = "arm"),
6963    stable(feature = "neon_intrinsics", since = "1.59.0")
6964)]
6965#[cfg_attr(
6966    target_arch = "arm",
6967    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6968)]
6969pub fn vcltq_s32(a: int32x4_t, b: int32x4_t) -> uint32x4_t {
6970    unsafe { simd_lt(a, b) }
6971}
6972#[doc = "Compare unsigned less than"]
6973#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclt_u8)"]
6974#[inline]
6975#[target_feature(enable = "neon")]
6976#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6977#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.u8"))]
6978#[cfg_attr(
6979    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
6980    assert_instr(cmhi)
6981)]
6982#[cfg_attr(
6983    not(target_arch = "arm"),
6984    stable(feature = "neon_intrinsics", since = "1.59.0")
6985)]
6986#[cfg_attr(
6987    target_arch = "arm",
6988    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
6989)]
6990pub fn vclt_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
6991    unsafe { simd_lt(a, b) }
6992}
6993#[doc = "Compare unsigned less than"]
6994#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcltq_u8)"]
6995#[inline]
6996#[target_feature(enable = "neon")]
6997#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6998#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.u8"))]
6999#[cfg_attr(
7000    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7001    assert_instr(cmhi)
7002)]
7003#[cfg_attr(
7004    not(target_arch = "arm"),
7005    stable(feature = "neon_intrinsics", since = "1.59.0")
7006)]
7007#[cfg_attr(
7008    target_arch = "arm",
7009    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7010)]
7011pub fn vcltq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
7012    unsafe { simd_lt(a, b) }
7013}
7014#[doc = "Compare unsigned less than"]
7015#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclt_u16)"]
7016#[inline]
7017#[target_feature(enable = "neon")]
7018#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7019#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.u16"))]
7020#[cfg_attr(
7021    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7022    assert_instr(cmhi)
7023)]
7024#[cfg_attr(
7025    not(target_arch = "arm"),
7026    stable(feature = "neon_intrinsics", since = "1.59.0")
7027)]
7028#[cfg_attr(
7029    target_arch = "arm",
7030    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7031)]
7032pub fn vclt_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
7033    unsafe { simd_lt(a, b) }
7034}
7035#[doc = "Compare unsigned less than"]
7036#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcltq_u16)"]
7037#[inline]
7038#[target_feature(enable = "neon")]
7039#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7040#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.u16"))]
7041#[cfg_attr(
7042    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7043    assert_instr(cmhi)
7044)]
7045#[cfg_attr(
7046    not(target_arch = "arm"),
7047    stable(feature = "neon_intrinsics", since = "1.59.0")
7048)]
7049#[cfg_attr(
7050    target_arch = "arm",
7051    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7052)]
7053pub fn vcltq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
7054    unsafe { simd_lt(a, b) }
7055}
7056#[doc = "Compare unsigned less than"]
7057#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclt_u32)"]
7058#[inline]
7059#[target_feature(enable = "neon")]
7060#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7061#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.u32"))]
7062#[cfg_attr(
7063    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7064    assert_instr(cmhi)
7065)]
7066#[cfg_attr(
7067    not(target_arch = "arm"),
7068    stable(feature = "neon_intrinsics", since = "1.59.0")
7069)]
7070#[cfg_attr(
7071    target_arch = "arm",
7072    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7073)]
7074pub fn vclt_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
7075    unsafe { simd_lt(a, b) }
7076}
7077#[doc = "Compare unsigned less than"]
7078#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcltq_u32)"]
7079#[inline]
7080#[target_feature(enable = "neon")]
7081#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7082#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.u32"))]
7083#[cfg_attr(
7084    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7085    assert_instr(cmhi)
7086)]
7087#[cfg_attr(
7088    not(target_arch = "arm"),
7089    stable(feature = "neon_intrinsics", since = "1.59.0")
7090)]
7091#[cfg_attr(
7092    target_arch = "arm",
7093    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7094)]
7095pub fn vcltq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
7096    unsafe { simd_lt(a, b) }
7097}
7098#[doc = "Floating-point compare less than"]
7099#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcltz_f16)"]
7100#[inline]
7101#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
7102#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vclt.f16"))]
7103#[cfg_attr(
7104    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7105    assert_instr(fcmlt)
7106)]
7107#[target_feature(enable = "neon,fp16")]
7108#[cfg_attr(
7109    not(target_arch = "arm"),
7110    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
7111)]
7112#[cfg_attr(
7113    target_arch = "arm",
7114    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7115)]
7116#[cfg(not(target_arch = "arm64ec"))]
7117pub fn vcltz_f16(a: float16x4_t) -> uint16x4_t {
7118    let b: f16x4 = f16x4::new(0.0, 0.0, 0.0, 0.0);
7119    unsafe { simd_lt(a, transmute(b)) }
7120}
7121#[doc = "Floating-point compare less than"]
7122#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcltzq_f16)"]
7123#[inline]
7124#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
7125#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vclt.f16"))]
7126#[cfg_attr(
7127    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7128    assert_instr(fcmlt)
7129)]
7130#[target_feature(enable = "neon,fp16")]
7131#[cfg_attr(
7132    not(target_arch = "arm"),
7133    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
7134)]
7135#[cfg_attr(
7136    target_arch = "arm",
7137    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7138)]
7139#[cfg(not(target_arch = "arm64ec"))]
7140pub fn vcltzq_f16(a: float16x8_t) -> uint16x8_t {
7141    let b: f16x8 = f16x8::new(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
7142    unsafe { simd_lt(a, transmute(b)) }
7143}
7144#[doc = "Count leading zero bits"]
7145#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclz_s8)"]
7146#[inline]
7147#[target_feature(enable = "neon")]
7148#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7149#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vclz.i8"))]
7150#[cfg_attr(
7151    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7152    assert_instr(clz)
7153)]
7154#[cfg_attr(
7155    not(target_arch = "arm"),
7156    stable(feature = "neon_intrinsics", since = "1.59.0")
7157)]
7158#[cfg_attr(
7159    target_arch = "arm",
7160    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7161)]
7162pub fn vclz_s8(a: int8x8_t) -> int8x8_t {
7163    unsafe { simd_ctlz(a) }
7164}
7165#[doc = "Count leading zero bits"]
7166#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclzq_s8)"]
7167#[inline]
7168#[target_feature(enable = "neon")]
7169#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7170#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vclz.i8"))]
7171#[cfg_attr(
7172    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7173    assert_instr(clz)
7174)]
7175#[cfg_attr(
7176    not(target_arch = "arm"),
7177    stable(feature = "neon_intrinsics", since = "1.59.0")
7178)]
7179#[cfg_attr(
7180    target_arch = "arm",
7181    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7182)]
7183pub fn vclzq_s8(a: int8x16_t) -> int8x16_t {
7184    unsafe { simd_ctlz(a) }
7185}
7186#[doc = "Count leading zero bits"]
7187#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclz_s16)"]
7188#[inline]
7189#[target_feature(enable = "neon")]
7190#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7191#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vclz.i16"))]
7192#[cfg_attr(
7193    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7194    assert_instr(clz)
7195)]
7196#[cfg_attr(
7197    not(target_arch = "arm"),
7198    stable(feature = "neon_intrinsics", since = "1.59.0")
7199)]
7200#[cfg_attr(
7201    target_arch = "arm",
7202    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7203)]
7204pub fn vclz_s16(a: int16x4_t) -> int16x4_t {
7205    unsafe { simd_ctlz(a) }
7206}
7207#[doc = "Count leading zero bits"]
7208#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclzq_s16)"]
7209#[inline]
7210#[target_feature(enable = "neon")]
7211#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7212#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vclz.i16"))]
7213#[cfg_attr(
7214    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7215    assert_instr(clz)
7216)]
7217#[cfg_attr(
7218    not(target_arch = "arm"),
7219    stable(feature = "neon_intrinsics", since = "1.59.0")
7220)]
7221#[cfg_attr(
7222    target_arch = "arm",
7223    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7224)]
7225pub fn vclzq_s16(a: int16x8_t) -> int16x8_t {
7226    unsafe { simd_ctlz(a) }
7227}
7228#[doc = "Count leading zero bits"]
7229#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclz_s32)"]
7230#[inline]
7231#[target_feature(enable = "neon")]
7232#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7233#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vclz.i32"))]
7234#[cfg_attr(
7235    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7236    assert_instr(clz)
7237)]
7238#[cfg_attr(
7239    not(target_arch = "arm"),
7240    stable(feature = "neon_intrinsics", since = "1.59.0")
7241)]
7242#[cfg_attr(
7243    target_arch = "arm",
7244    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7245)]
7246pub fn vclz_s32(a: int32x2_t) -> int32x2_t {
7247    unsafe { simd_ctlz(a) }
7248}
7249#[doc = "Count leading zero bits"]
7250#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclzq_s32)"]
7251#[inline]
7252#[target_feature(enable = "neon")]
7253#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7254#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vclz.i32"))]
7255#[cfg_attr(
7256    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7257    assert_instr(clz)
7258)]
7259#[cfg_attr(
7260    not(target_arch = "arm"),
7261    stable(feature = "neon_intrinsics", since = "1.59.0")
7262)]
7263#[cfg_attr(
7264    target_arch = "arm",
7265    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7266)]
7267pub fn vclzq_s32(a: int32x4_t) -> int32x4_t {
7268    unsafe { simd_ctlz(a) }
7269}
7270#[doc = "Count leading zero bits"]
7271#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclz_u16)"]
7272#[inline]
7273#[cfg(target_endian = "little")]
7274#[target_feature(enable = "neon")]
7275#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7276#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vclz.i16"))]
7277#[cfg_attr(
7278    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7279    assert_instr(clz)
7280)]
7281#[cfg_attr(
7282    not(target_arch = "arm"),
7283    stable(feature = "neon_intrinsics", since = "1.59.0")
7284)]
7285#[cfg_attr(
7286    target_arch = "arm",
7287    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7288)]
7289pub fn vclz_u16(a: uint16x4_t) -> uint16x4_t {
7290    unsafe { transmute(vclz_s16(transmute(a))) }
7291}
7292#[doc = "Count leading zero bits"]
7293#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclz_u16)"]
7294#[inline]
7295#[cfg(target_endian = "big")]
7296#[target_feature(enable = "neon")]
7297#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7298#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vclz.i16"))]
7299#[cfg_attr(
7300    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7301    assert_instr(clz)
7302)]
7303#[cfg_attr(
7304    not(target_arch = "arm"),
7305    stable(feature = "neon_intrinsics", since = "1.59.0")
7306)]
7307#[cfg_attr(
7308    target_arch = "arm",
7309    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7310)]
7311pub fn vclz_u16(a: uint16x4_t) -> uint16x4_t {
7312    let a: uint16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
7313    unsafe {
7314        let ret_val: uint16x4_t = transmute(vclz_s16(transmute(a)));
7315        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
7316    }
7317}
7318#[doc = "Count leading zero bits"]
7319#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclzq_u16)"]
7320#[inline]
7321#[cfg(target_endian = "little")]
7322#[target_feature(enable = "neon")]
7323#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7324#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vclz.i16"))]
7325#[cfg_attr(
7326    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7327    assert_instr(clz)
7328)]
7329#[cfg_attr(
7330    not(target_arch = "arm"),
7331    stable(feature = "neon_intrinsics", since = "1.59.0")
7332)]
7333#[cfg_attr(
7334    target_arch = "arm",
7335    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7336)]
7337pub fn vclzq_u16(a: uint16x8_t) -> uint16x8_t {
7338    unsafe { transmute(vclzq_s16(transmute(a))) }
7339}
7340#[doc = "Count leading zero bits"]
7341#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclzq_u16)"]
7342#[inline]
7343#[cfg(target_endian = "big")]
7344#[target_feature(enable = "neon")]
7345#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7346#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vclz.i16"))]
7347#[cfg_attr(
7348    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7349    assert_instr(clz)
7350)]
7351#[cfg_attr(
7352    not(target_arch = "arm"),
7353    stable(feature = "neon_intrinsics", since = "1.59.0")
7354)]
7355#[cfg_attr(
7356    target_arch = "arm",
7357    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7358)]
7359pub fn vclzq_u16(a: uint16x8_t) -> uint16x8_t {
7360    let a: uint16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
7361    unsafe {
7362        let ret_val: uint16x8_t = transmute(vclzq_s16(transmute(a)));
7363        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
7364    }
7365}
7366#[doc = "Count leading zero bits"]
7367#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclz_u32)"]
7368#[inline]
7369#[cfg(target_endian = "little")]
7370#[target_feature(enable = "neon")]
7371#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7372#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vclz.i32"))]
7373#[cfg_attr(
7374    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7375    assert_instr(clz)
7376)]
7377#[cfg_attr(
7378    not(target_arch = "arm"),
7379    stable(feature = "neon_intrinsics", since = "1.59.0")
7380)]
7381#[cfg_attr(
7382    target_arch = "arm",
7383    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7384)]
7385pub fn vclz_u32(a: uint32x2_t) -> uint32x2_t {
7386    unsafe { transmute(vclz_s32(transmute(a))) }
7387}
7388#[doc = "Count leading zero bits"]
7389#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclz_u32)"]
7390#[inline]
7391#[cfg(target_endian = "big")]
7392#[target_feature(enable = "neon")]
7393#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7394#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vclz.i32"))]
7395#[cfg_attr(
7396    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7397    assert_instr(clz)
7398)]
7399#[cfg_attr(
7400    not(target_arch = "arm"),
7401    stable(feature = "neon_intrinsics", since = "1.59.0")
7402)]
7403#[cfg_attr(
7404    target_arch = "arm",
7405    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7406)]
7407pub fn vclz_u32(a: uint32x2_t) -> uint32x2_t {
7408    let a: uint32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
7409    unsafe {
7410        let ret_val: uint32x2_t = transmute(vclz_s32(transmute(a)));
7411        simd_shuffle!(ret_val, ret_val, [1, 0])
7412    }
7413}
7414#[doc = "Count leading zero bits"]
7415#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclzq_u32)"]
7416#[inline]
7417#[cfg(target_endian = "little")]
7418#[target_feature(enable = "neon")]
7419#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7420#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vclz.i32"))]
7421#[cfg_attr(
7422    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7423    assert_instr(clz)
7424)]
7425#[cfg_attr(
7426    not(target_arch = "arm"),
7427    stable(feature = "neon_intrinsics", since = "1.59.0")
7428)]
7429#[cfg_attr(
7430    target_arch = "arm",
7431    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7432)]
7433pub fn vclzq_u32(a: uint32x4_t) -> uint32x4_t {
7434    unsafe { transmute(vclzq_s32(transmute(a))) }
7435}
7436#[doc = "Count leading zero bits"]
7437#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclzq_u32)"]
7438#[inline]
7439#[cfg(target_endian = "big")]
7440#[target_feature(enable = "neon")]
7441#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7442#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vclz.i32"))]
7443#[cfg_attr(
7444    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7445    assert_instr(clz)
7446)]
7447#[cfg_attr(
7448    not(target_arch = "arm"),
7449    stable(feature = "neon_intrinsics", since = "1.59.0")
7450)]
7451#[cfg_attr(
7452    target_arch = "arm",
7453    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7454)]
7455pub fn vclzq_u32(a: uint32x4_t) -> uint32x4_t {
7456    let a: uint32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
7457    unsafe {
7458        let ret_val: uint32x4_t = transmute(vclzq_s32(transmute(a)));
7459        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
7460    }
7461}
7462#[doc = "Count leading zero bits"]
7463#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclz_u8)"]
7464#[inline]
7465#[cfg(target_endian = "little")]
7466#[target_feature(enable = "neon")]
7467#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7468#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vclz.i8"))]
7469#[cfg_attr(
7470    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7471    assert_instr(clz)
7472)]
7473#[cfg_attr(
7474    not(target_arch = "arm"),
7475    stable(feature = "neon_intrinsics", since = "1.59.0")
7476)]
7477#[cfg_attr(
7478    target_arch = "arm",
7479    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7480)]
7481pub fn vclz_u8(a: uint8x8_t) -> uint8x8_t {
7482    unsafe { transmute(vclz_s8(transmute(a))) }
7483}
7484#[doc = "Count leading zero bits"]
7485#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclz_u8)"]
7486#[inline]
7487#[cfg(target_endian = "big")]
7488#[target_feature(enable = "neon")]
7489#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7490#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vclz.i8"))]
7491#[cfg_attr(
7492    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7493    assert_instr(clz)
7494)]
7495#[cfg_attr(
7496    not(target_arch = "arm"),
7497    stable(feature = "neon_intrinsics", since = "1.59.0")
7498)]
7499#[cfg_attr(
7500    target_arch = "arm",
7501    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7502)]
7503pub fn vclz_u8(a: uint8x8_t) -> uint8x8_t {
7504    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
7505    unsafe {
7506        let ret_val: uint8x8_t = transmute(vclz_s8(transmute(a)));
7507        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
7508    }
7509}
7510#[doc = "Count leading zero bits"]
7511#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclzq_u8)"]
7512#[inline]
7513#[cfg(target_endian = "little")]
7514#[target_feature(enable = "neon")]
7515#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7516#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vclz.i8"))]
7517#[cfg_attr(
7518    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7519    assert_instr(clz)
7520)]
7521#[cfg_attr(
7522    not(target_arch = "arm"),
7523    stable(feature = "neon_intrinsics", since = "1.59.0")
7524)]
7525#[cfg_attr(
7526    target_arch = "arm",
7527    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7528)]
7529pub fn vclzq_u8(a: uint8x16_t) -> uint8x16_t {
7530    unsafe { transmute(vclzq_s8(transmute(a))) }
7531}
7532#[doc = "Count leading zero bits"]
7533#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclzq_u8)"]
7534#[inline]
7535#[cfg(target_endian = "big")]
7536#[target_feature(enable = "neon")]
7537#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7538#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vclz.i8"))]
7539#[cfg_attr(
7540    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7541    assert_instr(clz)
7542)]
7543#[cfg_attr(
7544    not(target_arch = "arm"),
7545    stable(feature = "neon_intrinsics", since = "1.59.0")
7546)]
7547#[cfg_attr(
7548    target_arch = "arm",
7549    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7550)]
7551pub fn vclzq_u8(a: uint8x16_t) -> uint8x16_t {
7552    let a: uint8x16_t =
7553        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
7554    unsafe {
7555        let ret_val: uint8x16_t = transmute(vclzq_s8(transmute(a)));
7556        simd_shuffle!(
7557            ret_val,
7558            ret_val,
7559            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
7560        )
7561    }
7562}
7563#[doc = "Population count per byte."]
7564#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcnt_s8)"]
7565#[inline]
7566#[target_feature(enable = "neon")]
7567#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7568#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcnt))]
7569#[cfg_attr(
7570    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7571    assert_instr(cnt)
7572)]
7573#[cfg_attr(
7574    not(target_arch = "arm"),
7575    stable(feature = "neon_intrinsics", since = "1.59.0")
7576)]
7577#[cfg_attr(
7578    target_arch = "arm",
7579    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7580)]
7581pub fn vcnt_s8(a: int8x8_t) -> int8x8_t {
7582    unsafe { simd_ctpop(a) }
7583}
7584#[doc = "Population count per byte."]
7585#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcntq_s8)"]
7586#[inline]
7587#[target_feature(enable = "neon")]
7588#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7589#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcnt))]
7590#[cfg_attr(
7591    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7592    assert_instr(cnt)
7593)]
7594#[cfg_attr(
7595    not(target_arch = "arm"),
7596    stable(feature = "neon_intrinsics", since = "1.59.0")
7597)]
7598#[cfg_attr(
7599    target_arch = "arm",
7600    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7601)]
7602pub fn vcntq_s8(a: int8x16_t) -> int8x16_t {
7603    unsafe { simd_ctpop(a) }
7604}
7605#[doc = "Population count per byte."]
7606#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcnt_u8)"]
7607#[inline]
7608#[cfg(target_endian = "little")]
7609#[target_feature(enable = "neon")]
7610#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7611#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcnt))]
7612#[cfg_attr(
7613    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7614    assert_instr(cnt)
7615)]
7616#[cfg_attr(
7617    not(target_arch = "arm"),
7618    stable(feature = "neon_intrinsics", since = "1.59.0")
7619)]
7620#[cfg_attr(
7621    target_arch = "arm",
7622    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7623)]
7624pub fn vcnt_u8(a: uint8x8_t) -> uint8x8_t {
7625    unsafe { transmute(vcnt_s8(transmute(a))) }
7626}
7627#[doc = "Population count per byte."]
7628#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcnt_u8)"]
7629#[inline]
7630#[cfg(target_endian = "big")]
7631#[target_feature(enable = "neon")]
7632#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7633#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcnt))]
7634#[cfg_attr(
7635    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7636    assert_instr(cnt)
7637)]
7638#[cfg_attr(
7639    not(target_arch = "arm"),
7640    stable(feature = "neon_intrinsics", since = "1.59.0")
7641)]
7642#[cfg_attr(
7643    target_arch = "arm",
7644    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7645)]
7646pub fn vcnt_u8(a: uint8x8_t) -> uint8x8_t {
7647    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
7648    unsafe {
7649        let ret_val: uint8x8_t = transmute(vcnt_s8(transmute(a)));
7650        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
7651    }
7652}
7653#[doc = "Population count per byte."]
7654#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcntq_u8)"]
7655#[inline]
7656#[cfg(target_endian = "little")]
7657#[target_feature(enable = "neon")]
7658#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7659#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcnt))]
7660#[cfg_attr(
7661    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7662    assert_instr(cnt)
7663)]
7664#[cfg_attr(
7665    not(target_arch = "arm"),
7666    stable(feature = "neon_intrinsics", since = "1.59.0")
7667)]
7668#[cfg_attr(
7669    target_arch = "arm",
7670    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7671)]
7672pub fn vcntq_u8(a: uint8x16_t) -> uint8x16_t {
7673    unsafe { transmute(vcntq_s8(transmute(a))) }
7674}
7675#[doc = "Population count per byte."]
7676#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcntq_u8)"]
7677#[inline]
7678#[cfg(target_endian = "big")]
7679#[target_feature(enable = "neon")]
7680#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7681#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcnt))]
7682#[cfg_attr(
7683    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7684    assert_instr(cnt)
7685)]
7686#[cfg_attr(
7687    not(target_arch = "arm"),
7688    stable(feature = "neon_intrinsics", since = "1.59.0")
7689)]
7690#[cfg_attr(
7691    target_arch = "arm",
7692    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7693)]
7694pub fn vcntq_u8(a: uint8x16_t) -> uint8x16_t {
7695    let a: uint8x16_t =
7696        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
7697    unsafe {
7698        let ret_val: uint8x16_t = transmute(vcntq_s8(transmute(a)));
7699        simd_shuffle!(
7700            ret_val,
7701            ret_val,
7702            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
7703        )
7704    }
7705}
7706#[doc = "Population count per byte."]
7707#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcnt_p8)"]
7708#[inline]
7709#[cfg(target_endian = "little")]
7710#[target_feature(enable = "neon")]
7711#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7712#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcnt))]
7713#[cfg_attr(
7714    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7715    assert_instr(cnt)
7716)]
7717#[cfg_attr(
7718    not(target_arch = "arm"),
7719    stable(feature = "neon_intrinsics", since = "1.59.0")
7720)]
7721#[cfg_attr(
7722    target_arch = "arm",
7723    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7724)]
7725pub fn vcnt_p8(a: poly8x8_t) -> poly8x8_t {
7726    unsafe { transmute(vcnt_s8(transmute(a))) }
7727}
7728#[doc = "Population count per byte."]
7729#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcnt_p8)"]
7730#[inline]
7731#[cfg(target_endian = "big")]
7732#[target_feature(enable = "neon")]
7733#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7734#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcnt))]
7735#[cfg_attr(
7736    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7737    assert_instr(cnt)
7738)]
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 vcnt_p8(a: poly8x8_t) -> poly8x8_t {
7748    let a: poly8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
7749    unsafe {
7750        let ret_val: poly8x8_t = transmute(vcnt_s8(transmute(a)));
7751        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
7752    }
7753}
7754#[doc = "Population count per byte."]
7755#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcntq_p8)"]
7756#[inline]
7757#[cfg(target_endian = "little")]
7758#[target_feature(enable = "neon")]
7759#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7760#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcnt))]
7761#[cfg_attr(
7762    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7763    assert_instr(cnt)
7764)]
7765#[cfg_attr(
7766    not(target_arch = "arm"),
7767    stable(feature = "neon_intrinsics", since = "1.59.0")
7768)]
7769#[cfg_attr(
7770    target_arch = "arm",
7771    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7772)]
7773pub fn vcntq_p8(a: poly8x16_t) -> poly8x16_t {
7774    unsafe { transmute(vcntq_s8(transmute(a))) }
7775}
7776#[doc = "Population count per byte."]
7777#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcntq_p8)"]
7778#[inline]
7779#[cfg(target_endian = "big")]
7780#[target_feature(enable = "neon")]
7781#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7782#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcnt))]
7783#[cfg_attr(
7784    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
7785    assert_instr(cnt)
7786)]
7787#[cfg_attr(
7788    not(target_arch = "arm"),
7789    stable(feature = "neon_intrinsics", since = "1.59.0")
7790)]
7791#[cfg_attr(
7792    target_arch = "arm",
7793    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7794)]
7795pub fn vcntq_p8(a: poly8x16_t) -> poly8x16_t {
7796    let a: poly8x16_t =
7797        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
7798    unsafe {
7799        let ret_val: poly8x16_t = transmute(vcntq_s8(transmute(a)));
7800        simd_shuffle!(
7801            ret_val,
7802            ret_val,
7803            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
7804        )
7805    }
7806}
7807#[doc = "Join two smaller vectors into a single larger vector"]
7808#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcombine_f16)"]
7809#[inline]
7810#[target_feature(enable = "neon")]
7811#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7812#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
7813#[cfg_attr(
7814    not(target_arch = "arm"),
7815    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
7816)]
7817#[cfg_attr(
7818    target_arch = "arm",
7819    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7820)]
7821#[cfg(not(target_arch = "arm64ec"))]
7822#[cfg_attr(test, assert_instr(nop))]
7823pub fn vcombine_f16(a: float16x4_t, b: float16x4_t) -> float16x8_t {
7824    unsafe { simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7]) }
7825}
7826#[doc = "Join two smaller vectors into a single larger vector"]
7827#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcombine_f32)"]
7828#[inline]
7829#[target_feature(enable = "neon")]
7830#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7831#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
7832#[cfg_attr(
7833    not(target_arch = "arm"),
7834    stable(feature = "neon_intrinsics", since = "1.59.0")
7835)]
7836#[cfg_attr(
7837    target_arch = "arm",
7838    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7839)]
7840pub fn vcombine_f32(a: float32x2_t, b: float32x2_t) -> float32x4_t {
7841    unsafe { simd_shuffle!(a, b, [0, 1, 2, 3]) }
7842}
7843#[doc = "Join two smaller vectors into a single larger vector"]
7844#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcombine_s8)"]
7845#[inline]
7846#[target_feature(enable = "neon")]
7847#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7848#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
7849#[cfg_attr(
7850    not(target_arch = "arm"),
7851    stable(feature = "neon_intrinsics", since = "1.59.0")
7852)]
7853#[cfg_attr(
7854    target_arch = "arm",
7855    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7856)]
7857pub fn vcombine_s8(a: int8x8_t, b: int8x8_t) -> int8x16_t {
7858    unsafe { simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]) }
7859}
7860#[doc = "Join two smaller vectors into a single larger vector"]
7861#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcombine_s16)"]
7862#[inline]
7863#[target_feature(enable = "neon")]
7864#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7865#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
7866#[cfg_attr(
7867    not(target_arch = "arm"),
7868    stable(feature = "neon_intrinsics", since = "1.59.0")
7869)]
7870#[cfg_attr(
7871    target_arch = "arm",
7872    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7873)]
7874pub fn vcombine_s16(a: int16x4_t, b: int16x4_t) -> int16x8_t {
7875    unsafe { simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7]) }
7876}
7877#[doc = "Join two smaller vectors into a single larger vector"]
7878#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcombine_s32)"]
7879#[inline]
7880#[target_feature(enable = "neon")]
7881#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7882#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
7883#[cfg_attr(
7884    not(target_arch = "arm"),
7885    stable(feature = "neon_intrinsics", since = "1.59.0")
7886)]
7887#[cfg_attr(
7888    target_arch = "arm",
7889    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7890)]
7891pub fn vcombine_s32(a: int32x2_t, b: int32x2_t) -> int32x4_t {
7892    unsafe { simd_shuffle!(a, b, [0, 1, 2, 3]) }
7893}
7894#[doc = "Join two smaller vectors into a single larger vector"]
7895#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcombine_s64)"]
7896#[inline]
7897#[target_feature(enable = "neon")]
7898#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7899#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
7900#[cfg_attr(
7901    not(target_arch = "arm"),
7902    stable(feature = "neon_intrinsics", since = "1.59.0")
7903)]
7904#[cfg_attr(
7905    target_arch = "arm",
7906    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7907)]
7908pub fn vcombine_s64(a: int64x1_t, b: int64x1_t) -> int64x2_t {
7909    unsafe { simd_shuffle!(a, b, [0, 1]) }
7910}
7911#[doc = "Join two smaller vectors into a single larger vector"]
7912#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcombine_u8)"]
7913#[inline]
7914#[target_feature(enable = "neon")]
7915#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7916#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
7917#[cfg_attr(
7918    not(target_arch = "arm"),
7919    stable(feature = "neon_intrinsics", since = "1.59.0")
7920)]
7921#[cfg_attr(
7922    target_arch = "arm",
7923    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7924)]
7925pub fn vcombine_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x16_t {
7926    unsafe { simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]) }
7927}
7928#[doc = "Join two smaller vectors into a single larger vector"]
7929#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcombine_u16)"]
7930#[inline]
7931#[target_feature(enable = "neon")]
7932#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7933#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
7934#[cfg_attr(
7935    not(target_arch = "arm"),
7936    stable(feature = "neon_intrinsics", since = "1.59.0")
7937)]
7938#[cfg_attr(
7939    target_arch = "arm",
7940    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7941)]
7942pub fn vcombine_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x8_t {
7943    unsafe { simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7]) }
7944}
7945#[doc = "Join two smaller vectors into a single larger vector"]
7946#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcombine_u32)"]
7947#[inline]
7948#[target_feature(enable = "neon")]
7949#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7950#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
7951#[cfg_attr(
7952    not(target_arch = "arm"),
7953    stable(feature = "neon_intrinsics", since = "1.59.0")
7954)]
7955#[cfg_attr(
7956    target_arch = "arm",
7957    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7958)]
7959pub fn vcombine_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x4_t {
7960    unsafe { simd_shuffle!(a, b, [0, 1, 2, 3]) }
7961}
7962#[doc = "Join two smaller vectors into a single larger vector"]
7963#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcombine_u64)"]
7964#[inline]
7965#[target_feature(enable = "neon")]
7966#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7967#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
7968#[cfg_attr(
7969    not(target_arch = "arm"),
7970    stable(feature = "neon_intrinsics", since = "1.59.0")
7971)]
7972#[cfg_attr(
7973    target_arch = "arm",
7974    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7975)]
7976pub fn vcombine_u64(a: uint64x1_t, b: uint64x1_t) -> uint64x2_t {
7977    unsafe { simd_shuffle!(a, b, [0, 1]) }
7978}
7979#[doc = "Join two smaller vectors into a single larger vector"]
7980#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcombine_p8)"]
7981#[inline]
7982#[target_feature(enable = "neon")]
7983#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7984#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
7985#[cfg_attr(
7986    not(target_arch = "arm"),
7987    stable(feature = "neon_intrinsics", since = "1.59.0")
7988)]
7989#[cfg_attr(
7990    target_arch = "arm",
7991    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
7992)]
7993pub fn vcombine_p8(a: poly8x8_t, b: poly8x8_t) -> poly8x16_t {
7994    unsafe { simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]) }
7995}
7996#[doc = "Join two smaller vectors into a single larger vector"]
7997#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcombine_p16)"]
7998#[inline]
7999#[target_feature(enable = "neon")]
8000#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8001#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
8002#[cfg_attr(
8003    not(target_arch = "arm"),
8004    stable(feature = "neon_intrinsics", since = "1.59.0")
8005)]
8006#[cfg_attr(
8007    target_arch = "arm",
8008    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
8009)]
8010pub fn vcombine_p16(a: poly16x4_t, b: poly16x4_t) -> poly16x8_t {
8011    unsafe { simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7]) }
8012}
8013#[doc = "Join two smaller vectors into a single larger vector"]
8014#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcombine_p64)"]
8015#[inline]
8016#[target_feature(enable = "neon")]
8017#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8018#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
8019#[cfg_attr(
8020    not(target_arch = "arm"),
8021    stable(feature = "neon_intrinsics", since = "1.59.0")
8022)]
8023#[cfg_attr(
8024    target_arch = "arm",
8025    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
8026)]
8027pub fn vcombine_p64(a: poly64x1_t, b: poly64x1_t) -> poly64x2_t {
8028    unsafe { simd_shuffle!(a, b, [0, 1]) }
8029}
8030#[doc = "Insert vector element from another vector element"]
8031#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcreate_f16)"]
8032#[inline]
8033#[cfg(target_endian = "little")]
8034#[target_feature(enable = "neon")]
8035#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8036#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
8037#[cfg_attr(
8038    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8039    assert_instr(nop)
8040)]
8041#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
8042#[cfg_attr(
8043    not(target_arch = "arm"),
8044    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
8045)]
8046#[cfg_attr(
8047    target_arch = "arm",
8048    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
8049)]
8050#[cfg(not(target_arch = "arm64ec"))]
8051pub fn vcreate_f16(a: u64) -> float16x4_t {
8052    unsafe { transmute(a) }
8053}
8054#[doc = "Insert vector element from another vector element"]
8055#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcreate_f16)"]
8056#[inline]
8057#[cfg(target_endian = "big")]
8058#[target_feature(enable = "neon")]
8059#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8060#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
8061#[cfg_attr(
8062    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8063    assert_instr(nop)
8064)]
8065#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
8066#[cfg_attr(
8067    not(target_arch = "arm"),
8068    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
8069)]
8070#[cfg_attr(
8071    target_arch = "arm",
8072    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
8073)]
8074#[cfg(not(target_arch = "arm64ec"))]
8075pub fn vcreate_f16(a: u64) -> float16x4_t {
8076    unsafe {
8077        let ret_val: float16x4_t = transmute(a);
8078        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
8079    }
8080}
8081#[doc = "Insert vector element from another vector element"]
8082#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcreate_f32)"]
8083#[inline]
8084#[cfg(target_endian = "little")]
8085#[target_feature(enable = "neon")]
8086#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8087#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
8088#[cfg_attr(
8089    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8090    assert_instr(nop)
8091)]
8092#[cfg_attr(
8093    not(target_arch = "arm"),
8094    stable(feature = "neon_intrinsics", since = "1.59.0")
8095)]
8096#[cfg_attr(
8097    target_arch = "arm",
8098    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
8099)]
8100pub fn vcreate_f32(a: u64) -> float32x2_t {
8101    unsafe { transmute(a) }
8102}
8103#[doc = "Insert vector element from another vector element"]
8104#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcreate_f32)"]
8105#[inline]
8106#[cfg(target_endian = "big")]
8107#[target_feature(enable = "neon")]
8108#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8109#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
8110#[cfg_attr(
8111    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8112    assert_instr(nop)
8113)]
8114#[cfg_attr(
8115    not(target_arch = "arm"),
8116    stable(feature = "neon_intrinsics", since = "1.59.0")
8117)]
8118#[cfg_attr(
8119    target_arch = "arm",
8120    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
8121)]
8122pub fn vcreate_f32(a: u64) -> float32x2_t {
8123    unsafe {
8124        let ret_val: float32x2_t = transmute(a);
8125        simd_shuffle!(ret_val, ret_val, [1, 0])
8126    }
8127}
8128#[doc = "Insert vector element from another vector element"]
8129#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcreate_s8)"]
8130#[inline]
8131#[cfg(target_endian = "little")]
8132#[target_feature(enable = "neon")]
8133#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8134#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
8135#[cfg_attr(
8136    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8137    assert_instr(nop)
8138)]
8139#[cfg_attr(
8140    not(target_arch = "arm"),
8141    stable(feature = "neon_intrinsics", since = "1.59.0")
8142)]
8143#[cfg_attr(
8144    target_arch = "arm",
8145    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
8146)]
8147pub fn vcreate_s8(a: u64) -> int8x8_t {
8148    unsafe { transmute(a) }
8149}
8150#[doc = "Insert vector element from another vector element"]
8151#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcreate_s8)"]
8152#[inline]
8153#[cfg(target_endian = "big")]
8154#[target_feature(enable = "neon")]
8155#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8156#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
8157#[cfg_attr(
8158    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8159    assert_instr(nop)
8160)]
8161#[cfg_attr(
8162    not(target_arch = "arm"),
8163    stable(feature = "neon_intrinsics", since = "1.59.0")
8164)]
8165#[cfg_attr(
8166    target_arch = "arm",
8167    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
8168)]
8169pub fn vcreate_s8(a: u64) -> int8x8_t {
8170    unsafe {
8171        let ret_val: int8x8_t = transmute(a);
8172        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
8173    }
8174}
8175#[doc = "Insert vector element from another vector element"]
8176#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcreate_s16)"]
8177#[inline]
8178#[cfg(target_endian = "little")]
8179#[target_feature(enable = "neon")]
8180#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8181#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
8182#[cfg_attr(
8183    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8184    assert_instr(nop)
8185)]
8186#[cfg_attr(
8187    not(target_arch = "arm"),
8188    stable(feature = "neon_intrinsics", since = "1.59.0")
8189)]
8190#[cfg_attr(
8191    target_arch = "arm",
8192    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
8193)]
8194pub fn vcreate_s16(a: u64) -> int16x4_t {
8195    unsafe { transmute(a) }
8196}
8197#[doc = "Insert vector element from another vector element"]
8198#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcreate_s16)"]
8199#[inline]
8200#[cfg(target_endian = "big")]
8201#[target_feature(enable = "neon")]
8202#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8203#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
8204#[cfg_attr(
8205    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8206    assert_instr(nop)
8207)]
8208#[cfg_attr(
8209    not(target_arch = "arm"),
8210    stable(feature = "neon_intrinsics", since = "1.59.0")
8211)]
8212#[cfg_attr(
8213    target_arch = "arm",
8214    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
8215)]
8216pub fn vcreate_s16(a: u64) -> int16x4_t {
8217    unsafe {
8218        let ret_val: int16x4_t = transmute(a);
8219        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
8220    }
8221}
8222#[doc = "Insert vector element from another vector element"]
8223#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcreate_s32)"]
8224#[inline]
8225#[cfg(target_endian = "little")]
8226#[target_feature(enable = "neon")]
8227#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8228#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
8229#[cfg_attr(
8230    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8231    assert_instr(nop)
8232)]
8233#[cfg_attr(
8234    not(target_arch = "arm"),
8235    stable(feature = "neon_intrinsics", since = "1.59.0")
8236)]
8237#[cfg_attr(
8238    target_arch = "arm",
8239    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
8240)]
8241pub fn vcreate_s32(a: u64) -> int32x2_t {
8242    unsafe { transmute(a) }
8243}
8244#[doc = "Insert vector element from another vector element"]
8245#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcreate_s32)"]
8246#[inline]
8247#[cfg(target_endian = "big")]
8248#[target_feature(enable = "neon")]
8249#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8250#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
8251#[cfg_attr(
8252    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8253    assert_instr(nop)
8254)]
8255#[cfg_attr(
8256    not(target_arch = "arm"),
8257    stable(feature = "neon_intrinsics", since = "1.59.0")
8258)]
8259#[cfg_attr(
8260    target_arch = "arm",
8261    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
8262)]
8263pub fn vcreate_s32(a: u64) -> int32x2_t {
8264    unsafe {
8265        let ret_val: int32x2_t = transmute(a);
8266        simd_shuffle!(ret_val, ret_val, [1, 0])
8267    }
8268}
8269#[doc = "Insert vector element from another vector element"]
8270#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcreate_s64)"]
8271#[inline]
8272#[target_feature(enable = "neon")]
8273#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8274#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
8275#[cfg_attr(
8276    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8277    assert_instr(nop)
8278)]
8279#[cfg_attr(
8280    not(target_arch = "arm"),
8281    stable(feature = "neon_intrinsics", since = "1.59.0")
8282)]
8283#[cfg_attr(
8284    target_arch = "arm",
8285    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
8286)]
8287pub fn vcreate_s64(a: u64) -> int64x1_t {
8288    unsafe { transmute(a) }
8289}
8290#[doc = "Insert vector element from another vector element"]
8291#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcreate_u8)"]
8292#[inline]
8293#[cfg(target_endian = "little")]
8294#[target_feature(enable = "neon")]
8295#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8296#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
8297#[cfg_attr(
8298    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8299    assert_instr(nop)
8300)]
8301#[cfg_attr(
8302    not(target_arch = "arm"),
8303    stable(feature = "neon_intrinsics", since = "1.59.0")
8304)]
8305#[cfg_attr(
8306    target_arch = "arm",
8307    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
8308)]
8309pub fn vcreate_u8(a: u64) -> uint8x8_t {
8310    unsafe { transmute(a) }
8311}
8312#[doc = "Insert vector element from another vector element"]
8313#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcreate_u8)"]
8314#[inline]
8315#[cfg(target_endian = "big")]
8316#[target_feature(enable = "neon")]
8317#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8318#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
8319#[cfg_attr(
8320    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8321    assert_instr(nop)
8322)]
8323#[cfg_attr(
8324    not(target_arch = "arm"),
8325    stable(feature = "neon_intrinsics", since = "1.59.0")
8326)]
8327#[cfg_attr(
8328    target_arch = "arm",
8329    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
8330)]
8331pub fn vcreate_u8(a: u64) -> uint8x8_t {
8332    unsafe {
8333        let ret_val: uint8x8_t = transmute(a);
8334        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
8335    }
8336}
8337#[doc = "Insert vector element from another vector element"]
8338#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcreate_u16)"]
8339#[inline]
8340#[cfg(target_endian = "little")]
8341#[target_feature(enable = "neon")]
8342#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8343#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
8344#[cfg_attr(
8345    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8346    assert_instr(nop)
8347)]
8348#[cfg_attr(
8349    not(target_arch = "arm"),
8350    stable(feature = "neon_intrinsics", since = "1.59.0")
8351)]
8352#[cfg_attr(
8353    target_arch = "arm",
8354    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
8355)]
8356pub fn vcreate_u16(a: u64) -> uint16x4_t {
8357    unsafe { transmute(a) }
8358}
8359#[doc = "Insert vector element from another vector element"]
8360#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcreate_u16)"]
8361#[inline]
8362#[cfg(target_endian = "big")]
8363#[target_feature(enable = "neon")]
8364#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8365#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
8366#[cfg_attr(
8367    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8368    assert_instr(nop)
8369)]
8370#[cfg_attr(
8371    not(target_arch = "arm"),
8372    stable(feature = "neon_intrinsics", since = "1.59.0")
8373)]
8374#[cfg_attr(
8375    target_arch = "arm",
8376    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
8377)]
8378pub fn vcreate_u16(a: u64) -> uint16x4_t {
8379    unsafe {
8380        let ret_val: uint16x4_t = transmute(a);
8381        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
8382    }
8383}
8384#[doc = "Insert vector element from another vector element"]
8385#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcreate_u32)"]
8386#[inline]
8387#[cfg(target_endian = "little")]
8388#[target_feature(enable = "neon")]
8389#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8390#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
8391#[cfg_attr(
8392    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8393    assert_instr(nop)
8394)]
8395#[cfg_attr(
8396    not(target_arch = "arm"),
8397    stable(feature = "neon_intrinsics", since = "1.59.0")
8398)]
8399#[cfg_attr(
8400    target_arch = "arm",
8401    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
8402)]
8403pub fn vcreate_u32(a: u64) -> uint32x2_t {
8404    unsafe { transmute(a) }
8405}
8406#[doc = "Insert vector element from another vector element"]
8407#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcreate_u32)"]
8408#[inline]
8409#[cfg(target_endian = "big")]
8410#[target_feature(enable = "neon")]
8411#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8412#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
8413#[cfg_attr(
8414    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8415    assert_instr(nop)
8416)]
8417#[cfg_attr(
8418    not(target_arch = "arm"),
8419    stable(feature = "neon_intrinsics", since = "1.59.0")
8420)]
8421#[cfg_attr(
8422    target_arch = "arm",
8423    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
8424)]
8425pub fn vcreate_u32(a: u64) -> uint32x2_t {
8426    unsafe {
8427        let ret_val: uint32x2_t = transmute(a);
8428        simd_shuffle!(ret_val, ret_val, [1, 0])
8429    }
8430}
8431#[doc = "Insert vector element from another vector element"]
8432#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcreate_u64)"]
8433#[inline]
8434#[target_feature(enable = "neon")]
8435#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8436#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
8437#[cfg_attr(
8438    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8439    assert_instr(nop)
8440)]
8441#[cfg_attr(
8442    not(target_arch = "arm"),
8443    stable(feature = "neon_intrinsics", since = "1.59.0")
8444)]
8445#[cfg_attr(
8446    target_arch = "arm",
8447    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
8448)]
8449pub fn vcreate_u64(a: u64) -> uint64x1_t {
8450    unsafe { transmute(a) }
8451}
8452#[doc = "Insert vector element from another vector element"]
8453#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcreate_p8)"]
8454#[inline]
8455#[cfg(target_endian = "little")]
8456#[target_feature(enable = "neon")]
8457#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8458#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
8459#[cfg_attr(
8460    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8461    assert_instr(nop)
8462)]
8463#[cfg_attr(
8464    not(target_arch = "arm"),
8465    stable(feature = "neon_intrinsics", since = "1.59.0")
8466)]
8467#[cfg_attr(
8468    target_arch = "arm",
8469    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
8470)]
8471pub fn vcreate_p8(a: u64) -> poly8x8_t {
8472    unsafe { transmute(a) }
8473}
8474#[doc = "Insert vector element from another vector element"]
8475#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcreate_p8)"]
8476#[inline]
8477#[cfg(target_endian = "big")]
8478#[target_feature(enable = "neon")]
8479#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8480#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
8481#[cfg_attr(
8482    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8483    assert_instr(nop)
8484)]
8485#[cfg_attr(
8486    not(target_arch = "arm"),
8487    stable(feature = "neon_intrinsics", since = "1.59.0")
8488)]
8489#[cfg_attr(
8490    target_arch = "arm",
8491    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
8492)]
8493pub fn vcreate_p8(a: u64) -> poly8x8_t {
8494    unsafe {
8495        let ret_val: poly8x8_t = transmute(a);
8496        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
8497    }
8498}
8499#[doc = "Insert vector element from another vector element"]
8500#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcreate_p16)"]
8501#[inline]
8502#[cfg(target_endian = "little")]
8503#[target_feature(enable = "neon")]
8504#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8505#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
8506#[cfg_attr(
8507    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8508    assert_instr(nop)
8509)]
8510#[cfg_attr(
8511    not(target_arch = "arm"),
8512    stable(feature = "neon_intrinsics", since = "1.59.0")
8513)]
8514#[cfg_attr(
8515    target_arch = "arm",
8516    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
8517)]
8518pub fn vcreate_p16(a: u64) -> poly16x4_t {
8519    unsafe { transmute(a) }
8520}
8521#[doc = "Insert vector element from another vector element"]
8522#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcreate_p16)"]
8523#[inline]
8524#[cfg(target_endian = "big")]
8525#[target_feature(enable = "neon")]
8526#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8527#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
8528#[cfg_attr(
8529    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8530    assert_instr(nop)
8531)]
8532#[cfg_attr(
8533    not(target_arch = "arm"),
8534    stable(feature = "neon_intrinsics", since = "1.59.0")
8535)]
8536#[cfg_attr(
8537    target_arch = "arm",
8538    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
8539)]
8540pub fn vcreate_p16(a: u64) -> poly16x4_t {
8541    unsafe {
8542        let ret_val: poly16x4_t = transmute(a);
8543        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
8544    }
8545}
8546#[doc = "Insert vector element from another vector element"]
8547#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcreate_p64)"]
8548#[inline]
8549#[target_feature(enable = "neon,aes")]
8550#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
8551#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
8552#[cfg_attr(
8553    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8554    assert_instr(nop)
8555)]
8556#[cfg_attr(
8557    not(target_arch = "arm"),
8558    stable(feature = "neon_intrinsics", since = "1.59.0")
8559)]
8560#[cfg_attr(
8561    target_arch = "arm",
8562    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
8563)]
8564pub fn vcreate_p64(a: u64) -> poly64x1_t {
8565    unsafe { transmute(a) }
8566}
8567#[doc = "Floating-point convert to lower precision narrow"]
8568#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvt_f16_f32)"]
8569#[inline]
8570#[target_feature(enable = "neon")]
8571#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8572#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcvt))]
8573#[cfg_attr(
8574    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8575    assert_instr(fcvtn)
8576)]
8577#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
8578#[cfg_attr(
8579    not(target_arch = "arm"),
8580    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
8581)]
8582#[cfg_attr(
8583    target_arch = "arm",
8584    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
8585)]
8586#[cfg(not(target_arch = "arm64ec"))]
8587pub fn vcvt_f16_f32(a: float32x4_t) -> float16x4_t {
8588    unsafe { simd_cast(a) }
8589}
8590#[doc = "Fixed-point convert to floating-point"]
8591#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvt_f16_s16)"]
8592#[inline]
8593#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8594#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcvt))]
8595#[cfg_attr(
8596    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8597    assert_instr(scvtf)
8598)]
8599#[target_feature(enable = "neon,fp16")]
8600#[cfg_attr(
8601    not(target_arch = "arm"),
8602    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
8603)]
8604#[cfg_attr(
8605    target_arch = "arm",
8606    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
8607)]
8608#[cfg(not(target_arch = "arm64ec"))]
8609pub fn vcvt_f16_s16(a: int16x4_t) -> float16x4_t {
8610    unsafe { simd_cast(a) }
8611}
8612#[doc = "Fixed-point convert to floating-point"]
8613#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvtq_f16_s16)"]
8614#[inline]
8615#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8616#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcvt))]
8617#[cfg_attr(
8618    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8619    assert_instr(scvtf)
8620)]
8621#[target_feature(enable = "neon,fp16")]
8622#[cfg_attr(
8623    not(target_arch = "arm"),
8624    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
8625)]
8626#[cfg_attr(
8627    target_arch = "arm",
8628    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
8629)]
8630#[cfg(not(target_arch = "arm64ec"))]
8631pub fn vcvtq_f16_s16(a: int16x8_t) -> float16x8_t {
8632    unsafe { simd_cast(a) }
8633}
8634#[doc = "Fixed-point convert to floating-point"]
8635#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvt_f16_u16)"]
8636#[inline]
8637#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8638#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcvt))]
8639#[cfg_attr(
8640    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8641    assert_instr(ucvtf)
8642)]
8643#[target_feature(enable = "neon,fp16")]
8644#[cfg_attr(
8645    not(target_arch = "arm"),
8646    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
8647)]
8648#[cfg_attr(
8649    target_arch = "arm",
8650    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
8651)]
8652#[cfg(not(target_arch = "arm64ec"))]
8653pub fn vcvt_f16_u16(a: uint16x4_t) -> float16x4_t {
8654    unsafe { simd_cast(a) }
8655}
8656#[doc = "Fixed-point convert to floating-point"]
8657#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvtq_f16_u16)"]
8658#[inline]
8659#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8660#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcvt))]
8661#[cfg_attr(
8662    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8663    assert_instr(ucvtf)
8664)]
8665#[target_feature(enable = "neon,fp16")]
8666#[cfg_attr(
8667    not(target_arch = "arm"),
8668    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
8669)]
8670#[cfg_attr(
8671    target_arch = "arm",
8672    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
8673)]
8674#[cfg(not(target_arch = "arm64ec"))]
8675pub fn vcvtq_f16_u16(a: uint16x8_t) -> float16x8_t {
8676    unsafe { simd_cast(a) }
8677}
8678#[doc = "Floating-point convert to higher precision long"]
8679#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvt_f32_f16)"]
8680#[inline]
8681#[target_feature(enable = "neon")]
8682#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8683#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcvt))]
8684#[cfg_attr(
8685    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8686    assert_instr(fcvtl)
8687)]
8688#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
8689#[cfg_attr(
8690    not(target_arch = "arm"),
8691    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
8692)]
8693#[cfg_attr(
8694    target_arch = "arm",
8695    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
8696)]
8697#[cfg(not(target_arch = "arm64ec"))]
8698pub fn vcvt_f32_f16(a: float16x4_t) -> float32x4_t {
8699    unsafe { simd_cast(a) }
8700}
8701#[doc = "Fixed-point convert to floating-point"]
8702#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvt_f32_s32)"]
8703#[inline]
8704#[target_feature(enable = "neon")]
8705#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8706#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcvt))]
8707#[cfg_attr(
8708    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8709    assert_instr(scvtf)
8710)]
8711#[cfg_attr(
8712    not(target_arch = "arm"),
8713    stable(feature = "neon_intrinsics", since = "1.59.0")
8714)]
8715#[cfg_attr(
8716    target_arch = "arm",
8717    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
8718)]
8719pub fn vcvt_f32_s32(a: int32x2_t) -> float32x2_t {
8720    unsafe { simd_cast(a) }
8721}
8722#[doc = "Fixed-point convert to floating-point"]
8723#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvtq_f32_s32)"]
8724#[inline]
8725#[target_feature(enable = "neon")]
8726#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8727#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcvt))]
8728#[cfg_attr(
8729    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8730    assert_instr(scvtf)
8731)]
8732#[cfg_attr(
8733    not(target_arch = "arm"),
8734    stable(feature = "neon_intrinsics", since = "1.59.0")
8735)]
8736#[cfg_attr(
8737    target_arch = "arm",
8738    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
8739)]
8740pub fn vcvtq_f32_s32(a: int32x4_t) -> float32x4_t {
8741    unsafe { simd_cast(a) }
8742}
8743#[doc = "Fixed-point convert to floating-point"]
8744#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvt_f32_u32)"]
8745#[inline]
8746#[target_feature(enable = "neon")]
8747#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8748#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcvt))]
8749#[cfg_attr(
8750    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8751    assert_instr(ucvtf)
8752)]
8753#[cfg_attr(
8754    not(target_arch = "arm"),
8755    stable(feature = "neon_intrinsics", since = "1.59.0")
8756)]
8757#[cfg_attr(
8758    target_arch = "arm",
8759    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
8760)]
8761pub fn vcvt_f32_u32(a: uint32x2_t) -> float32x2_t {
8762    unsafe { simd_cast(a) }
8763}
8764#[doc = "Fixed-point convert to floating-point"]
8765#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvtq_f32_u32)"]
8766#[inline]
8767#[target_feature(enable = "neon")]
8768#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8769#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcvt))]
8770#[cfg_attr(
8771    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8772    assert_instr(ucvtf)
8773)]
8774#[cfg_attr(
8775    not(target_arch = "arm"),
8776    stable(feature = "neon_intrinsics", since = "1.59.0")
8777)]
8778#[cfg_attr(
8779    target_arch = "arm",
8780    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
8781)]
8782pub fn vcvtq_f32_u32(a: uint32x4_t) -> float32x4_t {
8783    unsafe { simd_cast(a) }
8784}
8785#[doc = "Fixed-point convert to floating-point"]
8786#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvt_n_f16_s16)"]
8787#[inline]
8788#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
8789#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcvt", N = 1))]
8790#[cfg_attr(
8791    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8792    assert_instr(scvtf, N = 1)
8793)]
8794#[rustc_legacy_const_generics(1)]
8795#[target_feature(enable = "neon,fp16")]
8796#[cfg_attr(
8797    not(target_arch = "arm"),
8798    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
8799)]
8800#[cfg_attr(
8801    target_arch = "arm",
8802    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
8803)]
8804#[cfg(not(target_arch = "arm64ec"))]
8805pub fn vcvt_n_f16_s16<const N: i32>(a: int16x4_t) -> float16x4_t {
8806    static_assert!(N >= 1 && N <= 16);
8807    unsafe extern "unadjusted" {
8808        #[cfg_attr(
8809            target_arch = "arm",
8810            link_name = "llvm.arm.neon.vcvtfxs2fp.v4f16.v4i16"
8811        )]
8812        #[cfg_attr(
8813            any(target_arch = "aarch64", target_arch = "arm64ec"),
8814            link_name = "llvm.aarch64.neon.vcvtfxs2fp.v4f16.v4i16"
8815        )]
8816        fn _vcvt_n_f16_s16(a: int16x4_t, n: i32) -> float16x4_t;
8817    }
8818    unsafe { _vcvt_n_f16_s16(a, N) }
8819}
8820#[doc = "Fixed-point convert to floating-point"]
8821#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvtq_n_f16_s16)"]
8822#[inline]
8823#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
8824#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcvt", N = 1))]
8825#[cfg_attr(
8826    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8827    assert_instr(scvtf, N = 1)
8828)]
8829#[rustc_legacy_const_generics(1)]
8830#[target_feature(enable = "neon,fp16")]
8831#[cfg_attr(
8832    not(target_arch = "arm"),
8833    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
8834)]
8835#[cfg_attr(
8836    target_arch = "arm",
8837    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
8838)]
8839#[cfg(not(target_arch = "arm64ec"))]
8840pub fn vcvtq_n_f16_s16<const N: i32>(a: int16x8_t) -> float16x8_t {
8841    static_assert!(N >= 1 && N <= 16);
8842    unsafe extern "unadjusted" {
8843        #[cfg_attr(
8844            target_arch = "arm",
8845            link_name = "llvm.arm.neon.vcvtfxs2fp.v8f16.v8i16"
8846        )]
8847        #[cfg_attr(
8848            any(target_arch = "aarch64", target_arch = "arm64ec"),
8849            link_name = "llvm.aarch64.neon.vcvtfxs2fp.v8f16.v8i16"
8850        )]
8851        fn _vcvtq_n_f16_s16(a: int16x8_t, n: i32) -> float16x8_t;
8852    }
8853    unsafe { _vcvtq_n_f16_s16(a, N) }
8854}
8855#[doc = "Fixed-point convert to floating-point"]
8856#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvt_n_f16_u16)"]
8857#[inline]
8858#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
8859#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcvt", N = 1))]
8860#[cfg_attr(
8861    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8862    assert_instr(ucvtf, N = 1)
8863)]
8864#[rustc_legacy_const_generics(1)]
8865#[target_feature(enable = "neon,fp16")]
8866#[cfg_attr(
8867    not(target_arch = "arm"),
8868    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
8869)]
8870#[cfg_attr(
8871    target_arch = "arm",
8872    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
8873)]
8874#[cfg(not(target_arch = "arm64ec"))]
8875pub fn vcvt_n_f16_u16<const N: i32>(a: uint16x4_t) -> float16x4_t {
8876    static_assert!(N >= 1 && N <= 16);
8877    unsafe extern "unadjusted" {
8878        #[cfg_attr(
8879            target_arch = "arm",
8880            link_name = "llvm.arm.neon.vcvtfxu2fp.v4f16.v4i16"
8881        )]
8882        #[cfg_attr(
8883            any(target_arch = "aarch64", target_arch = "arm64ec"),
8884            link_name = "llvm.aarch64.neon.vcvtfxu2fp.v4f16.v4i16"
8885        )]
8886        fn _vcvt_n_f16_u16(a: uint16x4_t, n: i32) -> float16x4_t;
8887    }
8888    unsafe { _vcvt_n_f16_u16(a, N) }
8889}
8890#[doc = "Fixed-point convert to floating-point"]
8891#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvtq_n_f16_u16)"]
8892#[inline]
8893#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
8894#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcvt", N = 1))]
8895#[cfg_attr(
8896    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
8897    assert_instr(ucvtf, N = 1)
8898)]
8899#[rustc_legacy_const_generics(1)]
8900#[target_feature(enable = "neon,fp16")]
8901#[cfg_attr(
8902    not(target_arch = "arm"),
8903    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
8904)]
8905#[cfg_attr(
8906    target_arch = "arm",
8907    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
8908)]
8909#[cfg(not(target_arch = "arm64ec"))]
8910pub fn vcvtq_n_f16_u16<const N: i32>(a: uint16x8_t) -> float16x8_t {
8911    static_assert!(N >= 1 && N <= 16);
8912    unsafe extern "unadjusted" {
8913        #[cfg_attr(
8914            target_arch = "arm",
8915            link_name = "llvm.arm.neon.vcvtfxu2fp.v8f16.v8i16"
8916        )]
8917        #[cfg_attr(
8918            any(target_arch = "aarch64", target_arch = "arm64ec"),
8919            link_name = "llvm.aarch64.neon.vcvtfxu2fp.v8f16.v8i16"
8920        )]
8921        fn _vcvtq_n_f16_u16(a: uint16x8_t, n: i32) -> float16x8_t;
8922    }
8923    unsafe { _vcvtq_n_f16_u16(a, N) }
8924}
8925#[doc = "Fixed-point convert to floating-point"]
8926#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvt_n_f32_s32)"]
8927#[inline]
8928#[cfg(target_arch = "arm")]
8929#[target_feature(enable = "neon,v7")]
8930#[cfg_attr(test, assert_instr(vcvt, N = 2))]
8931#[rustc_legacy_const_generics(1)]
8932#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
8933pub fn vcvt_n_f32_s32<const N: i32>(a: int32x2_t) -> float32x2_t {
8934    static_assert!(N >= 1 && N <= 32);
8935    unsafe extern "unadjusted" {
8936        #[cfg_attr(
8937            target_arch = "arm",
8938            link_name = "llvm.arm.neon.vcvtfxs2fp.v2f32.v2i32"
8939        )]
8940        fn _vcvt_n_f32_s32(a: int32x2_t, n: i32) -> float32x2_t;
8941    }
8942    unsafe { _vcvt_n_f32_s32(a, N) }
8943}
8944#[doc = "Fixed-point convert to floating-point"]
8945#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvtq_n_f32_s32)"]
8946#[inline]
8947#[cfg(target_arch = "arm")]
8948#[target_feature(enable = "neon,v7")]
8949#[cfg_attr(test, assert_instr(vcvt, N = 2))]
8950#[rustc_legacy_const_generics(1)]
8951#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
8952pub fn vcvtq_n_f32_s32<const N: i32>(a: int32x4_t) -> float32x4_t {
8953    static_assert!(N >= 1 && N <= 32);
8954    unsafe extern "unadjusted" {
8955        #[cfg_attr(
8956            target_arch = "arm",
8957            link_name = "llvm.arm.neon.vcvtfxs2fp.v4f32.v4i32"
8958        )]
8959        fn _vcvtq_n_f32_s32(a: int32x4_t, n: i32) -> float32x4_t;
8960    }
8961    unsafe { _vcvtq_n_f32_s32(a, N) }
8962}
8963#[doc = "Fixed-point convert to floating-point"]
8964#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvt_n_f32_s32)"]
8965#[inline]
8966#[target_feature(enable = "neon")]
8967#[cfg(not(target_arch = "arm"))]
8968#[cfg_attr(test, assert_instr(scvtf, N = 2))]
8969#[rustc_legacy_const_generics(1)]
8970#[stable(feature = "neon_intrinsics", since = "1.59.0")]
8971pub fn vcvt_n_f32_s32<const N: i32>(a: int32x2_t) -> float32x2_t {
8972    static_assert!(N >= 1 && N <= 32);
8973    unsafe extern "unadjusted" {
8974        #[cfg_attr(
8975            any(target_arch = "aarch64", target_arch = "arm64ec"),
8976            link_name = "llvm.aarch64.neon.vcvtfxs2fp.v2f32.v2i32"
8977        )]
8978        fn _vcvt_n_f32_s32(a: int32x2_t, n: i32) -> float32x2_t;
8979    }
8980    unsafe { _vcvt_n_f32_s32(a, N) }
8981}
8982#[doc = "Fixed-point convert to floating-point"]
8983#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvtq_n_f32_s32)"]
8984#[inline]
8985#[target_feature(enable = "neon")]
8986#[cfg(not(target_arch = "arm"))]
8987#[cfg_attr(test, assert_instr(scvtf, N = 2))]
8988#[rustc_legacy_const_generics(1)]
8989#[stable(feature = "neon_intrinsics", since = "1.59.0")]
8990pub fn vcvtq_n_f32_s32<const N: i32>(a: int32x4_t) -> float32x4_t {
8991    static_assert!(N >= 1 && N <= 32);
8992    unsafe extern "unadjusted" {
8993        #[cfg_attr(
8994            any(target_arch = "aarch64", target_arch = "arm64ec"),
8995            link_name = "llvm.aarch64.neon.vcvtfxs2fp.v4f32.v4i32"
8996        )]
8997        fn _vcvtq_n_f32_s32(a: int32x4_t, n: i32) -> float32x4_t;
8998    }
8999    unsafe { _vcvtq_n_f32_s32(a, N) }
9000}
9001#[doc = "Fixed-point convert to floating-point"]
9002#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvt_n_f32_u32)"]
9003#[inline]
9004#[cfg(target_arch = "arm")]
9005#[target_feature(enable = "neon,v7")]
9006#[cfg_attr(test, assert_instr(vcvt, N = 2))]
9007#[rustc_legacy_const_generics(1)]
9008#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
9009pub fn vcvt_n_f32_u32<const N: i32>(a: uint32x2_t) -> float32x2_t {
9010    static_assert!(N >= 1 && N <= 32);
9011    unsafe extern "unadjusted" {
9012        #[cfg_attr(
9013            target_arch = "arm",
9014            link_name = "llvm.arm.neon.vcvtfxu2fp.v2f32.v2i32"
9015        )]
9016        fn _vcvt_n_f32_u32(a: uint32x2_t, n: i32) -> float32x2_t;
9017    }
9018    unsafe { _vcvt_n_f32_u32(a, N) }
9019}
9020#[doc = "Fixed-point convert to floating-point"]
9021#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvtq_n_f32_u32)"]
9022#[inline]
9023#[cfg(target_arch = "arm")]
9024#[target_feature(enable = "neon,v7")]
9025#[cfg_attr(test, assert_instr(vcvt, N = 2))]
9026#[rustc_legacy_const_generics(1)]
9027#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
9028pub fn vcvtq_n_f32_u32<const N: i32>(a: uint32x4_t) -> float32x4_t {
9029    static_assert!(N >= 1 && N <= 32);
9030    unsafe extern "unadjusted" {
9031        #[cfg_attr(
9032            target_arch = "arm",
9033            link_name = "llvm.arm.neon.vcvtfxu2fp.v4f32.v4i32"
9034        )]
9035        fn _vcvtq_n_f32_u32(a: uint32x4_t, n: i32) -> float32x4_t;
9036    }
9037    unsafe { _vcvtq_n_f32_u32(a, N) }
9038}
9039#[doc = "Fixed-point convert to floating-point"]
9040#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvt_n_f32_u32)"]
9041#[inline]
9042#[target_feature(enable = "neon")]
9043#[cfg(not(target_arch = "arm"))]
9044#[cfg_attr(test, assert_instr(ucvtf, N = 2))]
9045#[rustc_legacy_const_generics(1)]
9046#[stable(feature = "neon_intrinsics", since = "1.59.0")]
9047pub fn vcvt_n_f32_u32<const N: i32>(a: uint32x2_t) -> float32x2_t {
9048    static_assert!(N >= 1 && N <= 32);
9049    unsafe extern "unadjusted" {
9050        #[cfg_attr(
9051            any(target_arch = "aarch64", target_arch = "arm64ec"),
9052            link_name = "llvm.aarch64.neon.vcvtfxu2fp.v2f32.v2i32"
9053        )]
9054        fn _vcvt_n_f32_u32(a: uint32x2_t, n: i32) -> float32x2_t;
9055    }
9056    unsafe { _vcvt_n_f32_u32(a, N) }
9057}
9058#[doc = "Fixed-point convert to floating-point"]
9059#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvtq_n_f32_u32)"]
9060#[inline]
9061#[target_feature(enable = "neon")]
9062#[cfg(not(target_arch = "arm"))]
9063#[cfg_attr(test, assert_instr(ucvtf, N = 2))]
9064#[rustc_legacy_const_generics(1)]
9065#[stable(feature = "neon_intrinsics", since = "1.59.0")]
9066pub fn vcvtq_n_f32_u32<const N: i32>(a: uint32x4_t) -> float32x4_t {
9067    static_assert!(N >= 1 && N <= 32);
9068    unsafe extern "unadjusted" {
9069        #[cfg_attr(
9070            any(target_arch = "aarch64", target_arch = "arm64ec"),
9071            link_name = "llvm.aarch64.neon.vcvtfxu2fp.v4f32.v4i32"
9072        )]
9073        fn _vcvtq_n_f32_u32(a: uint32x4_t, n: i32) -> float32x4_t;
9074    }
9075    unsafe { _vcvtq_n_f32_u32(a, N) }
9076}
9077#[doc = "Floating-point convert to signed fixed-point"]
9078#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvt_n_s16_f16)"]
9079#[inline]
9080#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
9081#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcvt", N = 1))]
9082#[cfg_attr(
9083    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9084    assert_instr(fcvtzs, N = 1)
9085)]
9086#[rustc_legacy_const_generics(1)]
9087#[target_feature(enable = "neon,fp16")]
9088#[cfg_attr(
9089    not(target_arch = "arm"),
9090    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
9091)]
9092#[cfg_attr(
9093    target_arch = "arm",
9094    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
9095)]
9096#[cfg(not(target_arch = "arm64ec"))]
9097pub fn vcvt_n_s16_f16<const N: i32>(a: float16x4_t) -> int16x4_t {
9098    static_assert!(N >= 1 && N <= 16);
9099    unsafe extern "unadjusted" {
9100        #[cfg_attr(
9101            target_arch = "arm",
9102            link_name = "llvm.arm.neon.vcvtfp2fxs.v4i16.v4f16"
9103        )]
9104        #[cfg_attr(
9105            any(target_arch = "aarch64", target_arch = "arm64ec"),
9106            link_name = "llvm.aarch64.neon.vcvtfp2fxs.v4i16.v4f16"
9107        )]
9108        fn _vcvt_n_s16_f16(a: float16x4_t, n: i32) -> int16x4_t;
9109    }
9110    unsafe { _vcvt_n_s16_f16(a, N) }
9111}
9112#[doc = "Floating-point convert to signed fixed-point"]
9113#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvtq_n_s16_f16)"]
9114#[inline]
9115#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
9116#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcvt", N = 1))]
9117#[cfg_attr(
9118    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9119    assert_instr(fcvtzs, N = 1)
9120)]
9121#[rustc_legacy_const_generics(1)]
9122#[target_feature(enable = "neon,fp16")]
9123#[cfg_attr(
9124    not(target_arch = "arm"),
9125    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
9126)]
9127#[cfg_attr(
9128    target_arch = "arm",
9129    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
9130)]
9131#[cfg(not(target_arch = "arm64ec"))]
9132pub fn vcvtq_n_s16_f16<const N: i32>(a: float16x8_t) -> int16x8_t {
9133    static_assert!(N >= 1 && N <= 16);
9134    unsafe extern "unadjusted" {
9135        #[cfg_attr(
9136            target_arch = "arm",
9137            link_name = "llvm.arm.neon.vcvtfp2fxs.v8i16.v8f16"
9138        )]
9139        #[cfg_attr(
9140            any(target_arch = "aarch64", target_arch = "arm64ec"),
9141            link_name = "llvm.aarch64.neon.vcvtfp2fxs.v8i16.v8f16"
9142        )]
9143        fn _vcvtq_n_s16_f16(a: float16x8_t, n: i32) -> int16x8_t;
9144    }
9145    unsafe { _vcvtq_n_s16_f16(a, N) }
9146}
9147#[doc = "Floating-point convert to fixed-point, rounding toward zero"]
9148#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvt_n_s32_f32)"]
9149#[inline]
9150#[cfg(target_arch = "arm")]
9151#[target_feature(enable = "neon,v7")]
9152#[cfg_attr(test, assert_instr(vcvt, N = 2))]
9153#[rustc_legacy_const_generics(1)]
9154#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
9155pub fn vcvt_n_s32_f32<const N: i32>(a: float32x2_t) -> int32x2_t {
9156    static_assert!(N >= 1 && N <= 32);
9157    unsafe extern "unadjusted" {
9158        #[cfg_attr(
9159            target_arch = "arm",
9160            link_name = "llvm.arm.neon.vcvtfp2fxs.v2i32.v2f32"
9161        )]
9162        fn _vcvt_n_s32_f32(a: float32x2_t, n: i32) -> int32x2_t;
9163    }
9164    unsafe { _vcvt_n_s32_f32(a, N) }
9165}
9166#[doc = "Floating-point convert to fixed-point, rounding toward zero"]
9167#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvtq_n_s32_f32)"]
9168#[inline]
9169#[cfg(target_arch = "arm")]
9170#[target_feature(enable = "neon,v7")]
9171#[cfg_attr(test, assert_instr(vcvt, N = 2))]
9172#[rustc_legacy_const_generics(1)]
9173#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
9174pub fn vcvtq_n_s32_f32<const N: i32>(a: float32x4_t) -> int32x4_t {
9175    static_assert!(N >= 1 && N <= 32);
9176    unsafe extern "unadjusted" {
9177        #[cfg_attr(
9178            target_arch = "arm",
9179            link_name = "llvm.arm.neon.vcvtfp2fxs.v4i32.v4f32"
9180        )]
9181        fn _vcvtq_n_s32_f32(a: float32x4_t, n: i32) -> int32x4_t;
9182    }
9183    unsafe { _vcvtq_n_s32_f32(a, N) }
9184}
9185#[doc = "Floating-point convert to fixed-point, rounding toward zero"]
9186#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvt_n_s32_f32)"]
9187#[inline]
9188#[target_feature(enable = "neon")]
9189#[cfg(not(target_arch = "arm"))]
9190#[cfg_attr(test, assert_instr(fcvtzs, N = 2))]
9191#[rustc_legacy_const_generics(1)]
9192#[stable(feature = "neon_intrinsics", since = "1.59.0")]
9193pub fn vcvt_n_s32_f32<const N: i32>(a: float32x2_t) -> int32x2_t {
9194    static_assert!(N >= 1 && N <= 32);
9195    unsafe extern "unadjusted" {
9196        #[cfg_attr(
9197            any(target_arch = "aarch64", target_arch = "arm64ec"),
9198            link_name = "llvm.aarch64.neon.vcvtfp2fxs.v2i32.v2f32"
9199        )]
9200        fn _vcvt_n_s32_f32(a: float32x2_t, n: i32) -> int32x2_t;
9201    }
9202    unsafe { _vcvt_n_s32_f32(a, N) }
9203}
9204#[doc = "Floating-point convert to fixed-point, rounding toward zero"]
9205#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvtq_n_s32_f32)"]
9206#[inline]
9207#[target_feature(enable = "neon")]
9208#[cfg(not(target_arch = "arm"))]
9209#[cfg_attr(test, assert_instr(fcvtzs, N = 2))]
9210#[rustc_legacy_const_generics(1)]
9211#[stable(feature = "neon_intrinsics", since = "1.59.0")]
9212pub fn vcvtq_n_s32_f32<const N: i32>(a: float32x4_t) -> int32x4_t {
9213    static_assert!(N >= 1 && N <= 32);
9214    unsafe extern "unadjusted" {
9215        #[cfg_attr(
9216            any(target_arch = "aarch64", target_arch = "arm64ec"),
9217            link_name = "llvm.aarch64.neon.vcvtfp2fxs.v4i32.v4f32"
9218        )]
9219        fn _vcvtq_n_s32_f32(a: float32x4_t, n: i32) -> int32x4_t;
9220    }
9221    unsafe { _vcvtq_n_s32_f32(a, N) }
9222}
9223#[doc = "Fixed-point convert to unsigned fixed-point, rounding toward zero"]
9224#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvt_n_u16_f16)"]
9225#[inline]
9226#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
9227#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcvt", N = 1))]
9228#[cfg_attr(
9229    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9230    assert_instr(fcvtzu, N = 1)
9231)]
9232#[rustc_legacy_const_generics(1)]
9233#[target_feature(enable = "neon,fp16")]
9234#[cfg_attr(
9235    not(target_arch = "arm"),
9236    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
9237)]
9238#[cfg_attr(
9239    target_arch = "arm",
9240    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
9241)]
9242#[cfg(not(target_arch = "arm64ec"))]
9243pub fn vcvt_n_u16_f16<const N: i32>(a: float16x4_t) -> uint16x4_t {
9244    static_assert!(N >= 1 && N <= 16);
9245    unsafe extern "unadjusted" {
9246        #[cfg_attr(
9247            target_arch = "arm",
9248            link_name = "llvm.arm.neon.vcvtfp2fxu.v4i16.v4f16"
9249        )]
9250        #[cfg_attr(
9251            any(target_arch = "aarch64", target_arch = "arm64ec"),
9252            link_name = "llvm.aarch64.neon.vcvtfp2fxu.v4i16.v4f16"
9253        )]
9254        fn _vcvt_n_u16_f16(a: float16x4_t, n: i32) -> uint16x4_t;
9255    }
9256    unsafe { _vcvt_n_u16_f16(a, N) }
9257}
9258#[doc = "Fixed-point convert to unsigned fixed-point, rounding toward zero"]
9259#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvtq_n_u16_f16)"]
9260#[inline]
9261#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
9262#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcvt", N = 1))]
9263#[cfg_attr(
9264    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9265    assert_instr(fcvtzu, N = 1)
9266)]
9267#[rustc_legacy_const_generics(1)]
9268#[target_feature(enable = "neon,fp16")]
9269#[cfg_attr(
9270    not(target_arch = "arm"),
9271    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
9272)]
9273#[cfg_attr(
9274    target_arch = "arm",
9275    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
9276)]
9277#[cfg(not(target_arch = "arm64ec"))]
9278pub fn vcvtq_n_u16_f16<const N: i32>(a: float16x8_t) -> uint16x8_t {
9279    static_assert!(N >= 1 && N <= 16);
9280    unsafe extern "unadjusted" {
9281        #[cfg_attr(
9282            target_arch = "arm",
9283            link_name = "llvm.arm.neon.vcvtfp2fxu.v8i16.v8f16"
9284        )]
9285        #[cfg_attr(
9286            any(target_arch = "aarch64", target_arch = "arm64ec"),
9287            link_name = "llvm.aarch64.neon.vcvtfp2fxu.v8i16.v8f16"
9288        )]
9289        fn _vcvtq_n_u16_f16(a: float16x8_t, n: i32) -> uint16x8_t;
9290    }
9291    unsafe { _vcvtq_n_u16_f16(a, N) }
9292}
9293#[doc = "Floating-point convert to fixed-point, rounding toward zero"]
9294#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvt_n_u32_f32)"]
9295#[inline]
9296#[cfg(target_arch = "arm")]
9297#[target_feature(enable = "neon,v7")]
9298#[cfg_attr(test, assert_instr(vcvt, N = 2))]
9299#[rustc_legacy_const_generics(1)]
9300#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
9301pub fn vcvt_n_u32_f32<const N: i32>(a: float32x2_t) -> uint32x2_t {
9302    static_assert!(N >= 1 && N <= 32);
9303    unsafe extern "unadjusted" {
9304        #[cfg_attr(
9305            target_arch = "arm",
9306            link_name = "llvm.arm.neon.vcvtfp2fxu.v2i32.v2f32"
9307        )]
9308        fn _vcvt_n_u32_f32(a: float32x2_t, n: i32) -> uint32x2_t;
9309    }
9310    unsafe { _vcvt_n_u32_f32(a, N) }
9311}
9312#[doc = "Floating-point convert to fixed-point, rounding toward zero"]
9313#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvtq_n_u32_f32)"]
9314#[inline]
9315#[cfg(target_arch = "arm")]
9316#[target_feature(enable = "neon,v7")]
9317#[cfg_attr(test, assert_instr(vcvt, N = 2))]
9318#[rustc_legacy_const_generics(1)]
9319#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
9320pub fn vcvtq_n_u32_f32<const N: i32>(a: float32x4_t) -> uint32x4_t {
9321    static_assert!(N >= 1 && N <= 32);
9322    unsafe extern "unadjusted" {
9323        #[cfg_attr(
9324            target_arch = "arm",
9325            link_name = "llvm.arm.neon.vcvtfp2fxu.v4i32.v4f32"
9326        )]
9327        fn _vcvtq_n_u32_f32(a: float32x4_t, n: i32) -> uint32x4_t;
9328    }
9329    unsafe { _vcvtq_n_u32_f32(a, N) }
9330}
9331#[doc = "Floating-point convert to fixed-point, rounding toward zero"]
9332#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvt_n_u32_f32)"]
9333#[inline]
9334#[target_feature(enable = "neon")]
9335#[cfg(not(target_arch = "arm"))]
9336#[cfg_attr(test, assert_instr(fcvtzu, N = 2))]
9337#[rustc_legacy_const_generics(1)]
9338#[stable(feature = "neon_intrinsics", since = "1.59.0")]
9339pub fn vcvt_n_u32_f32<const N: i32>(a: float32x2_t) -> uint32x2_t {
9340    static_assert!(N >= 1 && N <= 32);
9341    unsafe extern "unadjusted" {
9342        #[cfg_attr(
9343            any(target_arch = "aarch64", target_arch = "arm64ec"),
9344            link_name = "llvm.aarch64.neon.vcvtfp2fxu.v2i32.v2f32"
9345        )]
9346        fn _vcvt_n_u32_f32(a: float32x2_t, n: i32) -> uint32x2_t;
9347    }
9348    unsafe { _vcvt_n_u32_f32(a, N) }
9349}
9350#[doc = "Floating-point convert to fixed-point, rounding toward zero"]
9351#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvtq_n_u32_f32)"]
9352#[inline]
9353#[target_feature(enable = "neon")]
9354#[cfg(not(target_arch = "arm"))]
9355#[cfg_attr(test, assert_instr(fcvtzu, N = 2))]
9356#[rustc_legacy_const_generics(1)]
9357#[stable(feature = "neon_intrinsics", since = "1.59.0")]
9358pub fn vcvtq_n_u32_f32<const N: i32>(a: float32x4_t) -> uint32x4_t {
9359    static_assert!(N >= 1 && N <= 32);
9360    unsafe extern "unadjusted" {
9361        #[cfg_attr(
9362            any(target_arch = "aarch64", target_arch = "arm64ec"),
9363            link_name = "llvm.aarch64.neon.vcvtfp2fxu.v4i32.v4f32"
9364        )]
9365        fn _vcvtq_n_u32_f32(a: float32x4_t, n: i32) -> uint32x4_t;
9366    }
9367    unsafe { _vcvtq_n_u32_f32(a, N) }
9368}
9369#[doc = "Floating-point convert to signed fixed-point, rounding toward zero"]
9370#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvt_s16_f16)"]
9371#[inline]
9372#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9373#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcvt))]
9374#[cfg_attr(
9375    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9376    assert_instr(fcvtzs)
9377)]
9378#[target_feature(enable = "neon,fp16")]
9379#[cfg_attr(
9380    not(target_arch = "arm"),
9381    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
9382)]
9383#[cfg_attr(
9384    target_arch = "arm",
9385    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
9386)]
9387#[cfg(not(target_arch = "arm64ec"))]
9388pub fn vcvt_s16_f16(a: float16x4_t) -> int16x4_t {
9389    unsafe { simd_cast(a) }
9390}
9391#[doc = "Floating-point convert to signed fixed-point, rounding toward zero"]
9392#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvtq_s16_f16)"]
9393#[inline]
9394#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9395#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcvt))]
9396#[cfg_attr(
9397    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9398    assert_instr(fcvtzs)
9399)]
9400#[target_feature(enable = "neon,fp16")]
9401#[cfg_attr(
9402    not(target_arch = "arm"),
9403    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
9404)]
9405#[cfg_attr(
9406    target_arch = "arm",
9407    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
9408)]
9409#[cfg(not(target_arch = "arm64ec"))]
9410pub fn vcvtq_s16_f16(a: float16x8_t) -> int16x8_t {
9411    unsafe { simd_cast(a) }
9412}
9413#[doc = "Floating-point convert to signed fixed-point, rounding toward zero"]
9414#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvt_s32_f32)"]
9415#[inline]
9416#[target_feature(enable = "neon")]
9417#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9418#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcvt))]
9419#[cfg_attr(
9420    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9421    assert_instr(fcvtzs)
9422)]
9423#[cfg_attr(
9424    not(target_arch = "arm"),
9425    stable(feature = "neon_intrinsics", since = "1.59.0")
9426)]
9427#[cfg_attr(
9428    target_arch = "arm",
9429    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
9430)]
9431pub fn vcvt_s32_f32(a: float32x2_t) -> int32x2_t {
9432    unsafe extern "unadjusted" {
9433        #[cfg_attr(target_arch = "arm", link_name = "llvm.fptosi.sat.v2i32.v2f32")]
9434        #[cfg_attr(
9435            any(target_arch = "aarch64", target_arch = "arm64ec"),
9436            link_name = "llvm.fptosi.sat.v2i32.v2f32"
9437        )]
9438        fn _vcvt_s32_f32(a: float32x2_t) -> int32x2_t;
9439    }
9440    unsafe { _vcvt_s32_f32(a) }
9441}
9442#[doc = "Floating-point convert to signed fixed-point, rounding toward zero"]
9443#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvtq_s32_f32)"]
9444#[inline]
9445#[target_feature(enable = "neon")]
9446#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9447#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcvt))]
9448#[cfg_attr(
9449    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9450    assert_instr(fcvtzs)
9451)]
9452#[cfg_attr(
9453    not(target_arch = "arm"),
9454    stable(feature = "neon_intrinsics", since = "1.59.0")
9455)]
9456#[cfg_attr(
9457    target_arch = "arm",
9458    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
9459)]
9460pub fn vcvtq_s32_f32(a: float32x4_t) -> int32x4_t {
9461    unsafe extern "unadjusted" {
9462        #[cfg_attr(target_arch = "arm", link_name = "llvm.fptosi.sat.v4i32.v4f32")]
9463        #[cfg_attr(
9464            any(target_arch = "aarch64", target_arch = "arm64ec"),
9465            link_name = "llvm.fptosi.sat.v4i32.v4f32"
9466        )]
9467        fn _vcvtq_s32_f32(a: float32x4_t) -> int32x4_t;
9468    }
9469    unsafe { _vcvtq_s32_f32(a) }
9470}
9471#[doc = "Floating-point convert to unsigned fixed-point, rounding toward zero"]
9472#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvt_u16_f16)"]
9473#[inline]
9474#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
9475#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcvt))]
9476#[cfg_attr(
9477    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9478    assert_instr(fcvtzu)
9479)]
9480#[target_feature(enable = "neon,fp16")]
9481#[cfg_attr(
9482    not(target_arch = "arm"),
9483    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
9484)]
9485#[cfg_attr(
9486    target_arch = "arm",
9487    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
9488)]
9489#[cfg(not(target_arch = "arm64ec"))]
9490pub fn vcvt_u16_f16(a: float16x4_t) -> uint16x4_t {
9491    unsafe { simd_cast(a) }
9492}
9493#[doc = "Floating-point convert to unsigned fixed-point, rounding toward zero"]
9494#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvtq_u16_f16)"]
9495#[inline]
9496#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
9497#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcvt))]
9498#[cfg_attr(
9499    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9500    assert_instr(fcvtzu)
9501)]
9502#[target_feature(enable = "neon,fp16")]
9503#[cfg_attr(
9504    not(target_arch = "arm"),
9505    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
9506)]
9507#[cfg_attr(
9508    target_arch = "arm",
9509    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
9510)]
9511#[cfg(not(target_arch = "arm64ec"))]
9512pub fn vcvtq_u16_f16(a: float16x8_t) -> uint16x8_t {
9513    unsafe { simd_cast(a) }
9514}
9515#[doc = "Floating-point convert to unsigned fixed-point, rounding toward zero"]
9516#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvt_u32_f32)"]
9517#[inline]
9518#[target_feature(enable = "neon")]
9519#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9520#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcvt))]
9521#[cfg_attr(
9522    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9523    assert_instr(fcvtzu)
9524)]
9525#[cfg_attr(
9526    not(target_arch = "arm"),
9527    stable(feature = "neon_intrinsics", since = "1.59.0")
9528)]
9529#[cfg_attr(
9530    target_arch = "arm",
9531    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
9532)]
9533pub fn vcvt_u32_f32(a: float32x2_t) -> uint32x2_t {
9534    unsafe extern "unadjusted" {
9535        #[cfg_attr(target_arch = "arm", link_name = "llvm.fptoui.sat.v2i32.v2f32")]
9536        #[cfg_attr(
9537            any(target_arch = "aarch64", target_arch = "arm64ec"),
9538            link_name = "llvm.fptoui.sat.v2i32.v2f32"
9539        )]
9540        fn _vcvt_u32_f32(a: float32x2_t) -> uint32x2_t;
9541    }
9542    unsafe { _vcvt_u32_f32(a) }
9543}
9544#[doc = "Floating-point convert to unsigned fixed-point, rounding toward zero"]
9545#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvtq_u32_f32)"]
9546#[inline]
9547#[target_feature(enable = "neon")]
9548#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9549#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcvt))]
9550#[cfg_attr(
9551    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9552    assert_instr(fcvtzu)
9553)]
9554#[cfg_attr(
9555    not(target_arch = "arm"),
9556    stable(feature = "neon_intrinsics", since = "1.59.0")
9557)]
9558#[cfg_attr(
9559    target_arch = "arm",
9560    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
9561)]
9562pub fn vcvtq_u32_f32(a: float32x4_t) -> uint32x4_t {
9563    unsafe extern "unadjusted" {
9564        #[cfg_attr(target_arch = "arm", link_name = "llvm.fptoui.sat.v4i32.v4f32")]
9565        #[cfg_attr(
9566            any(target_arch = "aarch64", target_arch = "arm64ec"),
9567            link_name = "llvm.fptoui.sat.v4i32.v4f32"
9568        )]
9569        fn _vcvtq_u32_f32(a: float32x4_t) -> uint32x4_t;
9570    }
9571    unsafe { _vcvtq_u32_f32(a) }
9572}
9573#[doc = "Dot product arithmetic (indexed)"]
9574#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdot_lane_s32)"]
9575#[inline]
9576#[cfg(target_endian = "little")]
9577#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
9578#[target_feature(enable = "neon,dotprod")]
9579#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsdot, LANE = 0))]
9580#[cfg_attr(
9581    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9582    assert_instr(sdot, LANE = 0)
9583)]
9584#[rustc_legacy_const_generics(3)]
9585#[cfg_attr(
9586    not(target_arch = "arm"),
9587    unstable(feature = "stdarch_neon_dotprod", issue = "117224")
9588)]
9589#[cfg_attr(
9590    target_arch = "arm",
9591    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
9592)]
9593pub fn vdot_lane_s32<const LANE: i32>(a: int32x2_t, b: int8x8_t, c: int8x8_t) -> int32x2_t {
9594    static_assert_uimm_bits!(LANE, 1);
9595    unsafe {
9596        let c: int32x2_t = transmute(c);
9597        let c: int32x2_t = simd_shuffle!(c, c, [LANE as u32, LANE as u32]);
9598        vdot_s32(a, b, transmute(c))
9599    }
9600}
9601#[doc = "Dot product arithmetic (indexed)"]
9602#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdot_lane_s32)"]
9603#[inline]
9604#[cfg(target_endian = "big")]
9605#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
9606#[target_feature(enable = "neon,dotprod")]
9607#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsdot, LANE = 0))]
9608#[cfg_attr(
9609    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9610    assert_instr(sdot, LANE = 0)
9611)]
9612#[rustc_legacy_const_generics(3)]
9613#[cfg_attr(
9614    not(target_arch = "arm"),
9615    unstable(feature = "stdarch_neon_dotprod", issue = "117224")
9616)]
9617#[cfg_attr(
9618    target_arch = "arm",
9619    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
9620)]
9621pub fn vdot_lane_s32<const LANE: i32>(a: int32x2_t, b: int8x8_t, c: int8x8_t) -> int32x2_t {
9622    static_assert_uimm_bits!(LANE, 1);
9623    let a: int32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
9624    let b: int8x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
9625    let c: int8x8_t = unsafe { simd_shuffle!(c, c, [7, 6, 5, 4, 3, 2, 1, 0]) };
9626    unsafe {
9627        let c: int32x2_t = transmute(c);
9628        let c: int32x2_t = simd_shuffle!(c, c, [LANE as u32, LANE as u32]);
9629        let ret_val: int32x2_t = vdot_s32(a, b, transmute(c));
9630        simd_shuffle!(ret_val, ret_val, [1, 0])
9631    }
9632}
9633#[doc = "Dot product arithmetic (indexed)"]
9634#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdotq_lane_s32)"]
9635#[inline]
9636#[cfg(target_endian = "little")]
9637#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
9638#[target_feature(enable = "neon,dotprod")]
9639#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsdot, LANE = 0))]
9640#[cfg_attr(
9641    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9642    assert_instr(sdot, LANE = 0)
9643)]
9644#[rustc_legacy_const_generics(3)]
9645#[cfg_attr(
9646    not(target_arch = "arm"),
9647    unstable(feature = "stdarch_neon_dotprod", issue = "117224")
9648)]
9649#[cfg_attr(
9650    target_arch = "arm",
9651    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
9652)]
9653pub fn vdotq_lane_s32<const LANE: i32>(a: int32x4_t, b: int8x16_t, c: int8x8_t) -> int32x4_t {
9654    static_assert_uimm_bits!(LANE, 1);
9655    unsafe {
9656        let c: int32x2_t = transmute(c);
9657        let c: int32x4_t =
9658            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]);
9659        vdotq_s32(a, b, transmute(c))
9660    }
9661}
9662#[doc = "Dot product arithmetic (indexed)"]
9663#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdotq_lane_s32)"]
9664#[inline]
9665#[cfg(target_endian = "big")]
9666#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
9667#[target_feature(enable = "neon,dotprod")]
9668#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsdot, LANE = 0))]
9669#[cfg_attr(
9670    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9671    assert_instr(sdot, LANE = 0)
9672)]
9673#[rustc_legacy_const_generics(3)]
9674#[cfg_attr(
9675    not(target_arch = "arm"),
9676    unstable(feature = "stdarch_neon_dotprod", issue = "117224")
9677)]
9678#[cfg_attr(
9679    target_arch = "arm",
9680    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
9681)]
9682pub fn vdotq_lane_s32<const LANE: i32>(a: int32x4_t, b: int8x16_t, c: int8x8_t) -> int32x4_t {
9683    static_assert_uimm_bits!(LANE, 1);
9684    let a: int32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
9685    let b: int8x16_t =
9686        unsafe { simd_shuffle!(b, b, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
9687    let c: int8x8_t = unsafe { simd_shuffle!(c, c, [7, 6, 5, 4, 3, 2, 1, 0]) };
9688    unsafe {
9689        let c: int32x2_t = transmute(c);
9690        let c: int32x4_t =
9691            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]);
9692        let ret_val: int32x4_t = vdotq_s32(a, b, transmute(c));
9693        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
9694    }
9695}
9696#[doc = "Dot product arithmetic (indexed)"]
9697#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdot_lane_u32)"]
9698#[inline]
9699#[cfg(target_endian = "little")]
9700#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
9701#[target_feature(enable = "neon,dotprod")]
9702#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vudot, LANE = 0))]
9703#[cfg_attr(
9704    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9705    assert_instr(udot, LANE = 0)
9706)]
9707#[rustc_legacy_const_generics(3)]
9708#[cfg_attr(
9709    not(target_arch = "arm"),
9710    unstable(feature = "stdarch_neon_dotprod", issue = "117224")
9711)]
9712#[cfg_attr(
9713    target_arch = "arm",
9714    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
9715)]
9716pub fn vdot_lane_u32<const LANE: i32>(a: uint32x2_t, b: uint8x8_t, c: uint8x8_t) -> uint32x2_t {
9717    static_assert_uimm_bits!(LANE, 1);
9718    unsafe {
9719        let c: uint32x2_t = transmute(c);
9720        let c: uint32x2_t = simd_shuffle!(c, c, [LANE as u32, LANE as u32]);
9721        vdot_u32(a, b, transmute(c))
9722    }
9723}
9724#[doc = "Dot product arithmetic (indexed)"]
9725#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdot_lane_u32)"]
9726#[inline]
9727#[cfg(target_endian = "big")]
9728#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
9729#[target_feature(enable = "neon,dotprod")]
9730#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vudot, LANE = 0))]
9731#[cfg_attr(
9732    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9733    assert_instr(udot, LANE = 0)
9734)]
9735#[rustc_legacy_const_generics(3)]
9736#[cfg_attr(
9737    not(target_arch = "arm"),
9738    unstable(feature = "stdarch_neon_dotprod", issue = "117224")
9739)]
9740#[cfg_attr(
9741    target_arch = "arm",
9742    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
9743)]
9744pub fn vdot_lane_u32<const LANE: i32>(a: uint32x2_t, b: uint8x8_t, c: uint8x8_t) -> uint32x2_t {
9745    static_assert_uimm_bits!(LANE, 1);
9746    let a: uint32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
9747    let b: uint8x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
9748    let c: uint8x8_t = unsafe { simd_shuffle!(c, c, [7, 6, 5, 4, 3, 2, 1, 0]) };
9749    unsafe {
9750        let c: uint32x2_t = transmute(c);
9751        let c: uint32x2_t = simd_shuffle!(c, c, [LANE as u32, LANE as u32]);
9752        let ret_val: uint32x2_t = vdot_u32(a, b, transmute(c));
9753        simd_shuffle!(ret_val, ret_val, [1, 0])
9754    }
9755}
9756#[doc = "Dot product arithmetic (indexed)"]
9757#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdotq_lane_u32)"]
9758#[inline]
9759#[cfg(target_endian = "little")]
9760#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
9761#[target_feature(enable = "neon,dotprod")]
9762#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vudot, LANE = 0))]
9763#[cfg_attr(
9764    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9765    assert_instr(udot, LANE = 0)
9766)]
9767#[rustc_legacy_const_generics(3)]
9768#[cfg_attr(
9769    not(target_arch = "arm"),
9770    unstable(feature = "stdarch_neon_dotprod", issue = "117224")
9771)]
9772#[cfg_attr(
9773    target_arch = "arm",
9774    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
9775)]
9776pub fn vdotq_lane_u32<const LANE: i32>(a: uint32x4_t, b: uint8x16_t, c: uint8x8_t) -> uint32x4_t {
9777    static_assert_uimm_bits!(LANE, 1);
9778    unsafe {
9779        let c: uint32x2_t = transmute(c);
9780        let c: uint32x4_t =
9781            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]);
9782        vdotq_u32(a, b, transmute(c))
9783    }
9784}
9785#[doc = "Dot product arithmetic (indexed)"]
9786#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdotq_lane_u32)"]
9787#[inline]
9788#[cfg(target_endian = "big")]
9789#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
9790#[target_feature(enable = "neon,dotprod")]
9791#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vudot, LANE = 0))]
9792#[cfg_attr(
9793    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9794    assert_instr(udot, LANE = 0)
9795)]
9796#[rustc_legacy_const_generics(3)]
9797#[cfg_attr(
9798    not(target_arch = "arm"),
9799    unstable(feature = "stdarch_neon_dotprod", issue = "117224")
9800)]
9801#[cfg_attr(
9802    target_arch = "arm",
9803    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
9804)]
9805pub fn vdotq_lane_u32<const LANE: i32>(a: uint32x4_t, b: uint8x16_t, c: uint8x8_t) -> uint32x4_t {
9806    static_assert_uimm_bits!(LANE, 1);
9807    let a: uint32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
9808    let b: uint8x16_t =
9809        unsafe { simd_shuffle!(b, b, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
9810    let c: uint8x8_t = unsafe { simd_shuffle!(c, c, [7, 6, 5, 4, 3, 2, 1, 0]) };
9811    unsafe {
9812        let c: uint32x2_t = transmute(c);
9813        let c: uint32x4_t =
9814            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]);
9815        let ret_val: uint32x4_t = vdotq_u32(a, b, transmute(c));
9816        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
9817    }
9818}
9819#[doc = "Dot product arithmetic (vector)"]
9820#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdot_s32)"]
9821#[inline]
9822#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
9823#[target_feature(enable = "neon,dotprod")]
9824#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsdot))]
9825#[cfg_attr(
9826    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9827    assert_instr(sdot)
9828)]
9829#[cfg_attr(
9830    not(target_arch = "arm"),
9831    unstable(feature = "stdarch_neon_dotprod", issue = "117224")
9832)]
9833#[cfg_attr(
9834    target_arch = "arm",
9835    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
9836)]
9837pub fn vdot_s32(a: int32x2_t, b: int8x8_t, c: int8x8_t) -> int32x2_t {
9838    unsafe extern "unadjusted" {
9839        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.sdot.v2i32.v8i8")]
9840        #[cfg_attr(
9841            any(target_arch = "aarch64", target_arch = "arm64ec"),
9842            link_name = "llvm.aarch64.neon.sdot.v2i32.v8i8"
9843        )]
9844        fn _vdot_s32(a: int32x2_t, b: int8x8_t, c: int8x8_t) -> int32x2_t;
9845    }
9846    unsafe { _vdot_s32(a, b, c) }
9847}
9848#[doc = "Dot product arithmetic (vector)"]
9849#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdotq_s32)"]
9850#[inline]
9851#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
9852#[target_feature(enable = "neon,dotprod")]
9853#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsdot))]
9854#[cfg_attr(
9855    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9856    assert_instr(sdot)
9857)]
9858#[cfg_attr(
9859    not(target_arch = "arm"),
9860    unstable(feature = "stdarch_neon_dotprod", issue = "117224")
9861)]
9862#[cfg_attr(
9863    target_arch = "arm",
9864    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
9865)]
9866pub fn vdotq_s32(a: int32x4_t, b: int8x16_t, c: int8x16_t) -> int32x4_t {
9867    unsafe extern "unadjusted" {
9868        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.sdot.v4i32.v16i8")]
9869        #[cfg_attr(
9870            any(target_arch = "aarch64", target_arch = "arm64ec"),
9871            link_name = "llvm.aarch64.neon.sdot.v4i32.v16i8"
9872        )]
9873        fn _vdotq_s32(a: int32x4_t, b: int8x16_t, c: int8x16_t) -> int32x4_t;
9874    }
9875    unsafe { _vdotq_s32(a, b, c) }
9876}
9877#[doc = "Dot product arithmetic (vector)"]
9878#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdot_u32)"]
9879#[inline]
9880#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
9881#[target_feature(enable = "neon,dotprod")]
9882#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vudot))]
9883#[cfg_attr(
9884    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9885    assert_instr(udot)
9886)]
9887#[cfg_attr(
9888    not(target_arch = "arm"),
9889    unstable(feature = "stdarch_neon_dotprod", issue = "117224")
9890)]
9891#[cfg_attr(
9892    target_arch = "arm",
9893    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
9894)]
9895pub fn vdot_u32(a: uint32x2_t, b: uint8x8_t, c: uint8x8_t) -> uint32x2_t {
9896    unsafe extern "unadjusted" {
9897        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.udot.v2i32.v8i8")]
9898        #[cfg_attr(
9899            any(target_arch = "aarch64", target_arch = "arm64ec"),
9900            link_name = "llvm.aarch64.neon.udot.v2i32.v8i8"
9901        )]
9902        fn _vdot_u32(a: uint32x2_t, b: uint8x8_t, c: uint8x8_t) -> uint32x2_t;
9903    }
9904    unsafe { _vdot_u32(a, b, c) }
9905}
9906#[doc = "Dot product arithmetic (vector)"]
9907#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdotq_u32)"]
9908#[inline]
9909#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
9910#[target_feature(enable = "neon,dotprod")]
9911#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vudot))]
9912#[cfg_attr(
9913    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9914    assert_instr(udot)
9915)]
9916#[cfg_attr(
9917    not(target_arch = "arm"),
9918    unstable(feature = "stdarch_neon_dotprod", issue = "117224")
9919)]
9920#[cfg_attr(
9921    target_arch = "arm",
9922    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
9923)]
9924pub fn vdotq_u32(a: uint32x4_t, b: uint8x16_t, c: uint8x16_t) -> uint32x4_t {
9925    unsafe extern "unadjusted" {
9926        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.udot.v4i32.v16i8")]
9927        #[cfg_attr(
9928            any(target_arch = "aarch64", target_arch = "arm64ec"),
9929            link_name = "llvm.aarch64.neon.udot.v4i32.v16i8"
9930        )]
9931        fn _vdotq_u32(a: uint32x4_t, b: uint8x16_t, c: uint8x16_t) -> uint32x4_t;
9932    }
9933    unsafe { _vdotq_u32(a, b, c) }
9934}
9935#[doc = "Set all vector lanes to the same value"]
9936#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_lane_f16)"]
9937#[inline]
9938#[target_feature(enable = "neon")]
9939#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9940#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 2))]
9941#[cfg_attr(
9942    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9943    assert_instr(dup, N = 2)
9944)]
9945#[rustc_legacy_const_generics(1)]
9946#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
9947#[cfg_attr(
9948    not(target_arch = "arm"),
9949    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
9950)]
9951#[cfg_attr(
9952    target_arch = "arm",
9953    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
9954)]
9955#[cfg(not(target_arch = "arm64ec"))]
9956pub fn vdup_lane_f16<const N: i32>(a: float16x4_t) -> float16x4_t {
9957    static_assert_uimm_bits!(N, 2);
9958    unsafe { simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32]) }
9959}
9960#[doc = "Set all vector lanes to the same value"]
9961#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_lane_f16)"]
9962#[inline]
9963#[target_feature(enable = "neon")]
9964#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9965#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 2))]
9966#[cfg_attr(
9967    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9968    assert_instr(dup, N = 2)
9969)]
9970#[rustc_legacy_const_generics(1)]
9971#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
9972#[cfg_attr(
9973    not(target_arch = "arm"),
9974    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
9975)]
9976#[cfg_attr(
9977    target_arch = "arm",
9978    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
9979)]
9980#[cfg(not(target_arch = "arm64ec"))]
9981pub fn vdupq_lane_f16<const N: i32>(a: float16x4_t) -> float16x8_t {
9982    static_assert_uimm_bits!(N, 2);
9983    unsafe {
9984        simd_shuffle!(
9985            a,
9986            a,
9987            [N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32]
9988        )
9989    }
9990}
9991#[doc = "Set all vector lanes to the same value"]
9992#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_lane_f32)"]
9993#[inline]
9994#[target_feature(enable = "neon")]
9995#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9996#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32", N = 1))]
9997#[cfg_attr(
9998    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9999    assert_instr(dup, N = 1)
10000)]
10001#[rustc_legacy_const_generics(1)]
10002#[cfg_attr(
10003    not(target_arch = "arm"),
10004    stable(feature = "neon_intrinsics", since = "1.59.0")
10005)]
10006#[cfg_attr(
10007    target_arch = "arm",
10008    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10009)]
10010pub fn vdup_lane_f32<const N: i32>(a: float32x2_t) -> float32x2_t {
10011    static_assert_uimm_bits!(N, 1);
10012    unsafe { simd_shuffle!(a, a, [N as u32, N as u32]) }
10013}
10014#[doc = "Set all vector lanes to the same value"]
10015#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_lane_s32)"]
10016#[inline]
10017#[target_feature(enable = "neon")]
10018#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10019#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32", N = 1))]
10020#[cfg_attr(
10021    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10022    assert_instr(dup, N = 1)
10023)]
10024#[rustc_legacy_const_generics(1)]
10025#[cfg_attr(
10026    not(target_arch = "arm"),
10027    stable(feature = "neon_intrinsics", since = "1.59.0")
10028)]
10029#[cfg_attr(
10030    target_arch = "arm",
10031    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10032)]
10033pub fn vdup_lane_s32<const N: i32>(a: int32x2_t) -> int32x2_t {
10034    static_assert_uimm_bits!(N, 1);
10035    unsafe { simd_shuffle!(a, a, [N as u32, N as u32]) }
10036}
10037#[doc = "Set all vector lanes to the same value"]
10038#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_lane_u32)"]
10039#[inline]
10040#[target_feature(enable = "neon")]
10041#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10042#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32", N = 1))]
10043#[cfg_attr(
10044    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10045    assert_instr(dup, N = 1)
10046)]
10047#[rustc_legacy_const_generics(1)]
10048#[cfg_attr(
10049    not(target_arch = "arm"),
10050    stable(feature = "neon_intrinsics", since = "1.59.0")
10051)]
10052#[cfg_attr(
10053    target_arch = "arm",
10054    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10055)]
10056pub fn vdup_lane_u32<const N: i32>(a: uint32x2_t) -> uint32x2_t {
10057    static_assert_uimm_bits!(N, 1);
10058    unsafe { simd_shuffle!(a, a, [N as u32, N as u32]) }
10059}
10060#[doc = "Set all vector lanes to the same value"]
10061#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_lane_f32)"]
10062#[inline]
10063#[target_feature(enable = "neon")]
10064#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10065#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32", N = 1))]
10066#[cfg_attr(
10067    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10068    assert_instr(dup, N = 1)
10069)]
10070#[rustc_legacy_const_generics(1)]
10071#[cfg_attr(
10072    not(target_arch = "arm"),
10073    stable(feature = "neon_intrinsics", since = "1.59.0")
10074)]
10075#[cfg_attr(
10076    target_arch = "arm",
10077    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10078)]
10079pub fn vdupq_lane_f32<const N: i32>(a: float32x2_t) -> float32x4_t {
10080    static_assert_uimm_bits!(N, 1);
10081    unsafe { simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32]) }
10082}
10083#[doc = "Set all vector lanes to the same value"]
10084#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_lane_s32)"]
10085#[inline]
10086#[target_feature(enable = "neon")]
10087#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10088#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32", N = 1))]
10089#[cfg_attr(
10090    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10091    assert_instr(dup, N = 1)
10092)]
10093#[rustc_legacy_const_generics(1)]
10094#[cfg_attr(
10095    not(target_arch = "arm"),
10096    stable(feature = "neon_intrinsics", since = "1.59.0")
10097)]
10098#[cfg_attr(
10099    target_arch = "arm",
10100    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10101)]
10102pub fn vdupq_lane_s32<const N: i32>(a: int32x2_t) -> int32x4_t {
10103    static_assert_uimm_bits!(N, 1);
10104    unsafe { simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32]) }
10105}
10106#[doc = "Set all vector lanes to the same value"]
10107#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_lane_u32)"]
10108#[inline]
10109#[target_feature(enable = "neon")]
10110#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10111#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32", N = 1))]
10112#[cfg_attr(
10113    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10114    assert_instr(dup, N = 1)
10115)]
10116#[rustc_legacy_const_generics(1)]
10117#[cfg_attr(
10118    not(target_arch = "arm"),
10119    stable(feature = "neon_intrinsics", since = "1.59.0")
10120)]
10121#[cfg_attr(
10122    target_arch = "arm",
10123    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10124)]
10125pub fn vdupq_lane_u32<const N: i32>(a: uint32x2_t) -> uint32x4_t {
10126    static_assert_uimm_bits!(N, 1);
10127    unsafe { simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32]) }
10128}
10129#[doc = "Set all vector lanes to the same value"]
10130#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_lane_p16)"]
10131#[inline]
10132#[target_feature(enable = "neon")]
10133#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10134#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 2))]
10135#[cfg_attr(
10136    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10137    assert_instr(dup, N = 2)
10138)]
10139#[rustc_legacy_const_generics(1)]
10140#[cfg_attr(
10141    not(target_arch = "arm"),
10142    stable(feature = "neon_intrinsics", since = "1.59.0")
10143)]
10144#[cfg_attr(
10145    target_arch = "arm",
10146    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10147)]
10148pub fn vdup_lane_p16<const N: i32>(a: poly16x4_t) -> poly16x4_t {
10149    static_assert_uimm_bits!(N, 2);
10150    unsafe { simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32]) }
10151}
10152#[doc = "Set all vector lanes to the same value"]
10153#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_lane_s16)"]
10154#[inline]
10155#[target_feature(enable = "neon")]
10156#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10157#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 2))]
10158#[cfg_attr(
10159    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10160    assert_instr(dup, N = 2)
10161)]
10162#[rustc_legacy_const_generics(1)]
10163#[cfg_attr(
10164    not(target_arch = "arm"),
10165    stable(feature = "neon_intrinsics", since = "1.59.0")
10166)]
10167#[cfg_attr(
10168    target_arch = "arm",
10169    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10170)]
10171pub fn vdup_lane_s16<const N: i32>(a: int16x4_t) -> int16x4_t {
10172    static_assert_uimm_bits!(N, 2);
10173    unsafe { simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32]) }
10174}
10175#[doc = "Set all vector lanes to the same value"]
10176#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_lane_u16)"]
10177#[inline]
10178#[target_feature(enable = "neon")]
10179#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10180#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 2))]
10181#[cfg_attr(
10182    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10183    assert_instr(dup, N = 2)
10184)]
10185#[rustc_legacy_const_generics(1)]
10186#[cfg_attr(
10187    not(target_arch = "arm"),
10188    stable(feature = "neon_intrinsics", since = "1.59.0")
10189)]
10190#[cfg_attr(
10191    target_arch = "arm",
10192    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10193)]
10194pub fn vdup_lane_u16<const N: i32>(a: uint16x4_t) -> uint16x4_t {
10195    static_assert_uimm_bits!(N, 2);
10196    unsafe { simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32]) }
10197}
10198#[doc = "Set all vector lanes to the same value"]
10199#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_lane_p16)"]
10200#[inline]
10201#[target_feature(enable = "neon")]
10202#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10203#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 2))]
10204#[cfg_attr(
10205    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10206    assert_instr(dup, N = 2)
10207)]
10208#[rustc_legacy_const_generics(1)]
10209#[cfg_attr(
10210    not(target_arch = "arm"),
10211    stable(feature = "neon_intrinsics", since = "1.59.0")
10212)]
10213#[cfg_attr(
10214    target_arch = "arm",
10215    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10216)]
10217pub fn vdupq_lane_p16<const N: i32>(a: poly16x4_t) -> poly16x8_t {
10218    static_assert_uimm_bits!(N, 2);
10219    unsafe {
10220        simd_shuffle!(
10221            a,
10222            a,
10223            [N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32]
10224        )
10225    }
10226}
10227#[doc = "Set all vector lanes to the same value"]
10228#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_lane_s16)"]
10229#[inline]
10230#[target_feature(enable = "neon")]
10231#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10232#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 2))]
10233#[cfg_attr(
10234    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10235    assert_instr(dup, N = 2)
10236)]
10237#[rustc_legacy_const_generics(1)]
10238#[cfg_attr(
10239    not(target_arch = "arm"),
10240    stable(feature = "neon_intrinsics", since = "1.59.0")
10241)]
10242#[cfg_attr(
10243    target_arch = "arm",
10244    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10245)]
10246pub fn vdupq_lane_s16<const N: i32>(a: int16x4_t) -> int16x8_t {
10247    static_assert_uimm_bits!(N, 2);
10248    unsafe {
10249        simd_shuffle!(
10250            a,
10251            a,
10252            [N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32]
10253        )
10254    }
10255}
10256#[doc = "Set all vector lanes to the same value"]
10257#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_lane_u16)"]
10258#[inline]
10259#[target_feature(enable = "neon")]
10260#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10261#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 2))]
10262#[cfg_attr(
10263    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10264    assert_instr(dup, N = 2)
10265)]
10266#[rustc_legacy_const_generics(1)]
10267#[cfg_attr(
10268    not(target_arch = "arm"),
10269    stable(feature = "neon_intrinsics", since = "1.59.0")
10270)]
10271#[cfg_attr(
10272    target_arch = "arm",
10273    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10274)]
10275pub fn vdupq_lane_u16<const N: i32>(a: uint16x4_t) -> uint16x8_t {
10276    static_assert_uimm_bits!(N, 2);
10277    unsafe {
10278        simd_shuffle!(
10279            a,
10280            a,
10281            [N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32]
10282        )
10283    }
10284}
10285#[doc = "Set all vector lanes to the same value"]
10286#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_lane_p8)"]
10287#[inline]
10288#[target_feature(enable = "neon")]
10289#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10290#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8", N = 4))]
10291#[cfg_attr(
10292    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10293    assert_instr(dup, N = 4)
10294)]
10295#[rustc_legacy_const_generics(1)]
10296#[cfg_attr(
10297    not(target_arch = "arm"),
10298    stable(feature = "neon_intrinsics", since = "1.59.0")
10299)]
10300#[cfg_attr(
10301    target_arch = "arm",
10302    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10303)]
10304pub fn vdup_lane_p8<const N: i32>(a: poly8x8_t) -> poly8x8_t {
10305    static_assert_uimm_bits!(N, 3);
10306    unsafe {
10307        simd_shuffle!(
10308            a,
10309            a,
10310            [N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32]
10311        )
10312    }
10313}
10314#[doc = "Set all vector lanes to the same value"]
10315#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_lane_s8)"]
10316#[inline]
10317#[target_feature(enable = "neon")]
10318#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10319#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8", N = 4))]
10320#[cfg_attr(
10321    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10322    assert_instr(dup, N = 4)
10323)]
10324#[rustc_legacy_const_generics(1)]
10325#[cfg_attr(
10326    not(target_arch = "arm"),
10327    stable(feature = "neon_intrinsics", since = "1.59.0")
10328)]
10329#[cfg_attr(
10330    target_arch = "arm",
10331    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10332)]
10333pub fn vdup_lane_s8<const N: i32>(a: int8x8_t) -> int8x8_t {
10334    static_assert_uimm_bits!(N, 3);
10335    unsafe {
10336        simd_shuffle!(
10337            a,
10338            a,
10339            [N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32]
10340        )
10341    }
10342}
10343#[doc = "Set all vector lanes to the same value"]
10344#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_lane_u8)"]
10345#[inline]
10346#[target_feature(enable = "neon")]
10347#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10348#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8", N = 4))]
10349#[cfg_attr(
10350    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10351    assert_instr(dup, N = 4)
10352)]
10353#[rustc_legacy_const_generics(1)]
10354#[cfg_attr(
10355    not(target_arch = "arm"),
10356    stable(feature = "neon_intrinsics", since = "1.59.0")
10357)]
10358#[cfg_attr(
10359    target_arch = "arm",
10360    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10361)]
10362pub fn vdup_lane_u8<const N: i32>(a: uint8x8_t) -> uint8x8_t {
10363    static_assert_uimm_bits!(N, 3);
10364    unsafe {
10365        simd_shuffle!(
10366            a,
10367            a,
10368            [N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32]
10369        )
10370    }
10371}
10372#[doc = "Set all vector lanes to the same value"]
10373#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_lane_p8)"]
10374#[inline]
10375#[target_feature(enable = "neon")]
10376#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10377#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8", N = 4))]
10378#[cfg_attr(
10379    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10380    assert_instr(dup, N = 4)
10381)]
10382#[rustc_legacy_const_generics(1)]
10383#[cfg_attr(
10384    not(target_arch = "arm"),
10385    stable(feature = "neon_intrinsics", since = "1.59.0")
10386)]
10387#[cfg_attr(
10388    target_arch = "arm",
10389    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10390)]
10391pub fn vdupq_lane_p8<const N: i32>(a: poly8x8_t) -> poly8x16_t {
10392    static_assert_uimm_bits!(N, 3);
10393    unsafe {
10394        simd_shuffle!(
10395            a,
10396            a,
10397            [
10398                N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32,
10399                N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32
10400            ]
10401        )
10402    }
10403}
10404#[doc = "Set all vector lanes to the same value"]
10405#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_lane_s8)"]
10406#[inline]
10407#[target_feature(enable = "neon")]
10408#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10409#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8", N = 4))]
10410#[cfg_attr(
10411    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10412    assert_instr(dup, N = 4)
10413)]
10414#[rustc_legacy_const_generics(1)]
10415#[cfg_attr(
10416    not(target_arch = "arm"),
10417    stable(feature = "neon_intrinsics", since = "1.59.0")
10418)]
10419#[cfg_attr(
10420    target_arch = "arm",
10421    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10422)]
10423pub fn vdupq_lane_s8<const N: i32>(a: int8x8_t) -> int8x16_t {
10424    static_assert_uimm_bits!(N, 3);
10425    unsafe {
10426        simd_shuffle!(
10427            a,
10428            a,
10429            [
10430                N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32,
10431                N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32
10432            ]
10433        )
10434    }
10435}
10436#[doc = "Set all vector lanes to the same value"]
10437#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_lane_u8)"]
10438#[inline]
10439#[target_feature(enable = "neon")]
10440#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10441#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8", N = 4))]
10442#[cfg_attr(
10443    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10444    assert_instr(dup, N = 4)
10445)]
10446#[rustc_legacy_const_generics(1)]
10447#[cfg_attr(
10448    not(target_arch = "arm"),
10449    stable(feature = "neon_intrinsics", since = "1.59.0")
10450)]
10451#[cfg_attr(
10452    target_arch = "arm",
10453    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10454)]
10455pub fn vdupq_lane_u8<const N: i32>(a: uint8x8_t) -> uint8x16_t {
10456    static_assert_uimm_bits!(N, 3);
10457    unsafe {
10458        simd_shuffle!(
10459            a,
10460            a,
10461            [
10462                N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32,
10463                N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32
10464            ]
10465        )
10466    }
10467}
10468#[doc = "Set all vector lanes to the same value"]
10469#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_lane_s64)"]
10470#[inline]
10471#[target_feature(enable = "neon")]
10472#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10473#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, N = 0))]
10474#[cfg_attr(
10475    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10476    assert_instr(nop, N = 0)
10477)]
10478#[rustc_legacy_const_generics(1)]
10479#[cfg_attr(
10480    not(target_arch = "arm"),
10481    stable(feature = "neon_intrinsics", since = "1.59.0")
10482)]
10483#[cfg_attr(
10484    target_arch = "arm",
10485    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10486)]
10487pub fn vdup_lane_s64<const N: i32>(a: int64x1_t) -> int64x1_t {
10488    static_assert!(N == 0);
10489    a
10490}
10491#[doc = "Set all vector lanes to the same value"]
10492#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_lane_u64)"]
10493#[inline]
10494#[target_feature(enable = "neon")]
10495#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10496#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, N = 0))]
10497#[cfg_attr(
10498    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10499    assert_instr(nop, N = 0)
10500)]
10501#[rustc_legacy_const_generics(1)]
10502#[cfg_attr(
10503    not(target_arch = "arm"),
10504    stable(feature = "neon_intrinsics", since = "1.59.0")
10505)]
10506#[cfg_attr(
10507    target_arch = "arm",
10508    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10509)]
10510pub fn vdup_lane_u64<const N: i32>(a: uint64x1_t) -> uint64x1_t {
10511    static_assert!(N == 0);
10512    a
10513}
10514#[doc = "Set all vector lanes to the same value"]
10515#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_laneq_f16)"]
10516#[inline]
10517#[target_feature(enable = "neon")]
10518#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10519#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 4))]
10520#[cfg_attr(
10521    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10522    assert_instr(dup, N = 4)
10523)]
10524#[rustc_legacy_const_generics(1)]
10525#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
10526#[cfg_attr(
10527    not(target_arch = "arm"),
10528    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
10529)]
10530#[cfg_attr(
10531    target_arch = "arm",
10532    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10533)]
10534#[cfg(not(target_arch = "arm64ec"))]
10535pub fn vdup_laneq_f16<const N: i32>(a: float16x8_t) -> float16x4_t {
10536    static_assert_uimm_bits!(N, 3);
10537    unsafe { simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32]) }
10538}
10539#[doc = "Set all vector lanes to the same value"]
10540#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_laneq_f16)"]
10541#[inline]
10542#[target_feature(enable = "neon")]
10543#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10544#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 4))]
10545#[cfg_attr(
10546    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10547    assert_instr(dup, N = 4)
10548)]
10549#[rustc_legacy_const_generics(1)]
10550#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
10551#[cfg_attr(
10552    not(target_arch = "arm"),
10553    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
10554)]
10555#[cfg_attr(
10556    target_arch = "arm",
10557    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10558)]
10559#[cfg(not(target_arch = "arm64ec"))]
10560pub fn vdupq_laneq_f16<const N: i32>(a: float16x8_t) -> float16x8_t {
10561    static_assert_uimm_bits!(N, 3);
10562    unsafe {
10563        simd_shuffle!(
10564            a,
10565            a,
10566            [N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32]
10567        )
10568    }
10569}
10570#[doc = "Set all vector lanes to the same value"]
10571#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_laneq_f32)"]
10572#[inline]
10573#[target_feature(enable = "neon")]
10574#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10575#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32", N = 2))]
10576#[cfg_attr(
10577    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10578    assert_instr(dup, N = 2)
10579)]
10580#[rustc_legacy_const_generics(1)]
10581#[cfg_attr(
10582    not(target_arch = "arm"),
10583    stable(feature = "neon_intrinsics", since = "1.59.0")
10584)]
10585#[cfg_attr(
10586    target_arch = "arm",
10587    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10588)]
10589pub fn vdup_laneq_f32<const N: i32>(a: float32x4_t) -> float32x2_t {
10590    static_assert_uimm_bits!(N, 2);
10591    unsafe { simd_shuffle!(a, a, [N as u32, N as u32]) }
10592}
10593#[doc = "Set all vector lanes to the same value"]
10594#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_laneq_s32)"]
10595#[inline]
10596#[target_feature(enable = "neon")]
10597#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10598#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32", N = 2))]
10599#[cfg_attr(
10600    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10601    assert_instr(dup, N = 2)
10602)]
10603#[rustc_legacy_const_generics(1)]
10604#[cfg_attr(
10605    not(target_arch = "arm"),
10606    stable(feature = "neon_intrinsics", since = "1.59.0")
10607)]
10608#[cfg_attr(
10609    target_arch = "arm",
10610    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10611)]
10612pub fn vdup_laneq_s32<const N: i32>(a: int32x4_t) -> int32x2_t {
10613    static_assert_uimm_bits!(N, 2);
10614    unsafe { simd_shuffle!(a, a, [N as u32, N as u32]) }
10615}
10616#[doc = "Set all vector lanes to the same value"]
10617#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_laneq_u32)"]
10618#[inline]
10619#[target_feature(enable = "neon")]
10620#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10621#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32", N = 2))]
10622#[cfg_attr(
10623    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10624    assert_instr(dup, N = 2)
10625)]
10626#[rustc_legacy_const_generics(1)]
10627#[cfg_attr(
10628    not(target_arch = "arm"),
10629    stable(feature = "neon_intrinsics", since = "1.59.0")
10630)]
10631#[cfg_attr(
10632    target_arch = "arm",
10633    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10634)]
10635pub fn vdup_laneq_u32<const N: i32>(a: uint32x4_t) -> uint32x2_t {
10636    static_assert_uimm_bits!(N, 2);
10637    unsafe { simd_shuffle!(a, a, [N as u32, N as u32]) }
10638}
10639#[doc = "Set all vector lanes to the same value"]
10640#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_laneq_f32)"]
10641#[inline]
10642#[target_feature(enable = "neon")]
10643#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10644#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32", N = 2))]
10645#[cfg_attr(
10646    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10647    assert_instr(dup, N = 2)
10648)]
10649#[rustc_legacy_const_generics(1)]
10650#[cfg_attr(
10651    not(target_arch = "arm"),
10652    stable(feature = "neon_intrinsics", since = "1.59.0")
10653)]
10654#[cfg_attr(
10655    target_arch = "arm",
10656    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10657)]
10658pub fn vdupq_laneq_f32<const N: i32>(a: float32x4_t) -> float32x4_t {
10659    static_assert_uimm_bits!(N, 2);
10660    unsafe { simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32]) }
10661}
10662#[doc = "Set all vector lanes to the same value"]
10663#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_laneq_s32)"]
10664#[inline]
10665#[target_feature(enable = "neon")]
10666#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10667#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32", N = 2))]
10668#[cfg_attr(
10669    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10670    assert_instr(dup, N = 2)
10671)]
10672#[rustc_legacy_const_generics(1)]
10673#[cfg_attr(
10674    not(target_arch = "arm"),
10675    stable(feature = "neon_intrinsics", since = "1.59.0")
10676)]
10677#[cfg_attr(
10678    target_arch = "arm",
10679    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10680)]
10681pub fn vdupq_laneq_s32<const N: i32>(a: int32x4_t) -> int32x4_t {
10682    static_assert_uimm_bits!(N, 2);
10683    unsafe { simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32]) }
10684}
10685#[doc = "Set all vector lanes to the same value"]
10686#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_laneq_u32)"]
10687#[inline]
10688#[target_feature(enable = "neon")]
10689#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10690#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32", N = 2))]
10691#[cfg_attr(
10692    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10693    assert_instr(dup, N = 2)
10694)]
10695#[rustc_legacy_const_generics(1)]
10696#[cfg_attr(
10697    not(target_arch = "arm"),
10698    stable(feature = "neon_intrinsics", since = "1.59.0")
10699)]
10700#[cfg_attr(
10701    target_arch = "arm",
10702    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10703)]
10704pub fn vdupq_laneq_u32<const N: i32>(a: uint32x4_t) -> uint32x4_t {
10705    static_assert_uimm_bits!(N, 2);
10706    unsafe { simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32]) }
10707}
10708#[doc = "Set all vector lanes to the same value"]
10709#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_laneq_p16)"]
10710#[inline]
10711#[target_feature(enable = "neon")]
10712#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10713#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 4))]
10714#[cfg_attr(
10715    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10716    assert_instr(dup, N = 4)
10717)]
10718#[rustc_legacy_const_generics(1)]
10719#[cfg_attr(
10720    not(target_arch = "arm"),
10721    stable(feature = "neon_intrinsics", since = "1.59.0")
10722)]
10723#[cfg_attr(
10724    target_arch = "arm",
10725    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10726)]
10727pub fn vdup_laneq_p16<const N: i32>(a: poly16x8_t) -> poly16x4_t {
10728    static_assert_uimm_bits!(N, 3);
10729    unsafe { simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32]) }
10730}
10731#[doc = "Set all vector lanes to the same value"]
10732#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_laneq_s16)"]
10733#[inline]
10734#[target_feature(enable = "neon")]
10735#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10736#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 4))]
10737#[cfg_attr(
10738    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10739    assert_instr(dup, N = 4)
10740)]
10741#[rustc_legacy_const_generics(1)]
10742#[cfg_attr(
10743    not(target_arch = "arm"),
10744    stable(feature = "neon_intrinsics", since = "1.59.0")
10745)]
10746#[cfg_attr(
10747    target_arch = "arm",
10748    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10749)]
10750pub fn vdup_laneq_s16<const N: i32>(a: int16x8_t) -> int16x4_t {
10751    static_assert_uimm_bits!(N, 3);
10752    unsafe { simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32]) }
10753}
10754#[doc = "Set all vector lanes to the same value"]
10755#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_laneq_u16)"]
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("vdup.16", N = 4))]
10760#[cfg_attr(
10761    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10762    assert_instr(dup, N = 4)
10763)]
10764#[rustc_legacy_const_generics(1)]
10765#[cfg_attr(
10766    not(target_arch = "arm"),
10767    stable(feature = "neon_intrinsics", since = "1.59.0")
10768)]
10769#[cfg_attr(
10770    target_arch = "arm",
10771    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10772)]
10773pub fn vdup_laneq_u16<const N: i32>(a: uint16x8_t) -> uint16x4_t {
10774    static_assert_uimm_bits!(N, 3);
10775    unsafe { simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32]) }
10776}
10777#[doc = "Set all vector lanes to the same value"]
10778#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_laneq_p16)"]
10779#[inline]
10780#[target_feature(enable = "neon")]
10781#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10782#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 4))]
10783#[cfg_attr(
10784    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10785    assert_instr(dup, N = 4)
10786)]
10787#[rustc_legacy_const_generics(1)]
10788#[cfg_attr(
10789    not(target_arch = "arm"),
10790    stable(feature = "neon_intrinsics", since = "1.59.0")
10791)]
10792#[cfg_attr(
10793    target_arch = "arm",
10794    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10795)]
10796pub fn vdupq_laneq_p16<const N: i32>(a: poly16x8_t) -> poly16x8_t {
10797    static_assert_uimm_bits!(N, 3);
10798    unsafe {
10799        simd_shuffle!(
10800            a,
10801            a,
10802            [N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32]
10803        )
10804    }
10805}
10806#[doc = "Set all vector lanes to the same value"]
10807#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_laneq_s16)"]
10808#[inline]
10809#[target_feature(enable = "neon")]
10810#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10811#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 4))]
10812#[cfg_attr(
10813    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10814    assert_instr(dup, N = 4)
10815)]
10816#[rustc_legacy_const_generics(1)]
10817#[cfg_attr(
10818    not(target_arch = "arm"),
10819    stable(feature = "neon_intrinsics", since = "1.59.0")
10820)]
10821#[cfg_attr(
10822    target_arch = "arm",
10823    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10824)]
10825pub fn vdupq_laneq_s16<const N: i32>(a: int16x8_t) -> int16x8_t {
10826    static_assert_uimm_bits!(N, 3);
10827    unsafe {
10828        simd_shuffle!(
10829            a,
10830            a,
10831            [N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32]
10832        )
10833    }
10834}
10835#[doc = "Set all vector lanes to the same value"]
10836#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_laneq_u16)"]
10837#[inline]
10838#[target_feature(enable = "neon")]
10839#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10840#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 4))]
10841#[cfg_attr(
10842    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10843    assert_instr(dup, N = 4)
10844)]
10845#[rustc_legacy_const_generics(1)]
10846#[cfg_attr(
10847    not(target_arch = "arm"),
10848    stable(feature = "neon_intrinsics", since = "1.59.0")
10849)]
10850#[cfg_attr(
10851    target_arch = "arm",
10852    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10853)]
10854pub fn vdupq_laneq_u16<const N: i32>(a: uint16x8_t) -> uint16x8_t {
10855    static_assert_uimm_bits!(N, 3);
10856    unsafe {
10857        simd_shuffle!(
10858            a,
10859            a,
10860            [N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32]
10861        )
10862    }
10863}
10864#[doc = "Set all vector lanes to the same value"]
10865#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_laneq_p8)"]
10866#[inline]
10867#[target_feature(enable = "neon")]
10868#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10869#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8", N = 8))]
10870#[cfg_attr(
10871    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10872    assert_instr(dup, N = 8)
10873)]
10874#[rustc_legacy_const_generics(1)]
10875#[cfg_attr(
10876    not(target_arch = "arm"),
10877    stable(feature = "neon_intrinsics", since = "1.59.0")
10878)]
10879#[cfg_attr(
10880    target_arch = "arm",
10881    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10882)]
10883pub fn vdup_laneq_p8<const N: i32>(a: poly8x16_t) -> poly8x8_t {
10884    static_assert_uimm_bits!(N, 4);
10885    unsafe {
10886        simd_shuffle!(
10887            a,
10888            a,
10889            [N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32]
10890        )
10891    }
10892}
10893#[doc = "Set all vector lanes to the same value"]
10894#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_laneq_s8)"]
10895#[inline]
10896#[target_feature(enable = "neon")]
10897#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10898#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8", N = 8))]
10899#[cfg_attr(
10900    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10901    assert_instr(dup, N = 8)
10902)]
10903#[rustc_legacy_const_generics(1)]
10904#[cfg_attr(
10905    not(target_arch = "arm"),
10906    stable(feature = "neon_intrinsics", since = "1.59.0")
10907)]
10908#[cfg_attr(
10909    target_arch = "arm",
10910    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10911)]
10912pub fn vdup_laneq_s8<const N: i32>(a: int8x16_t) -> int8x8_t {
10913    static_assert_uimm_bits!(N, 4);
10914    unsafe {
10915        simd_shuffle!(
10916            a,
10917            a,
10918            [N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32]
10919        )
10920    }
10921}
10922#[doc = "Set all vector lanes to the same value"]
10923#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_laneq_u8)"]
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", N = 8))]
10928#[cfg_attr(
10929    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10930    assert_instr(dup, N = 8)
10931)]
10932#[rustc_legacy_const_generics(1)]
10933#[cfg_attr(
10934    not(target_arch = "arm"),
10935    stable(feature = "neon_intrinsics", since = "1.59.0")
10936)]
10937#[cfg_attr(
10938    target_arch = "arm",
10939    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10940)]
10941pub fn vdup_laneq_u8<const N: i32>(a: uint8x16_t) -> uint8x8_t {
10942    static_assert_uimm_bits!(N, 4);
10943    unsafe {
10944        simd_shuffle!(
10945            a,
10946            a,
10947            [N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32]
10948        )
10949    }
10950}
10951#[doc = "Set all vector lanes to the same value"]
10952#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_laneq_p8)"]
10953#[inline]
10954#[target_feature(enable = "neon")]
10955#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10956#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8", N = 8))]
10957#[cfg_attr(
10958    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10959    assert_instr(dup, N = 8)
10960)]
10961#[rustc_legacy_const_generics(1)]
10962#[cfg_attr(
10963    not(target_arch = "arm"),
10964    stable(feature = "neon_intrinsics", since = "1.59.0")
10965)]
10966#[cfg_attr(
10967    target_arch = "arm",
10968    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10969)]
10970pub fn vdupq_laneq_p8<const N: i32>(a: poly8x16_t) -> poly8x16_t {
10971    static_assert_uimm_bits!(N, 4);
10972    unsafe {
10973        simd_shuffle!(
10974            a,
10975            a,
10976            [
10977                N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32,
10978                N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32
10979            ]
10980        )
10981    }
10982}
10983#[doc = "Set all vector lanes to the same value"]
10984#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_laneq_s8)"]
10985#[inline]
10986#[target_feature(enable = "neon")]
10987#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10988#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8", N = 8))]
10989#[cfg_attr(
10990    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10991    assert_instr(dup, N = 8)
10992)]
10993#[rustc_legacy_const_generics(1)]
10994#[cfg_attr(
10995    not(target_arch = "arm"),
10996    stable(feature = "neon_intrinsics", since = "1.59.0")
10997)]
10998#[cfg_attr(
10999    target_arch = "arm",
11000    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11001)]
11002pub fn vdupq_laneq_s8<const N: i32>(a: int8x16_t) -> int8x16_t {
11003    static_assert_uimm_bits!(N, 4);
11004    unsafe {
11005        simd_shuffle!(
11006            a,
11007            a,
11008            [
11009                N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32,
11010                N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32
11011            ]
11012        )
11013    }
11014}
11015#[doc = "Set all vector lanes to the same value"]
11016#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_laneq_u8)"]
11017#[inline]
11018#[target_feature(enable = "neon")]
11019#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11020#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8", N = 8))]
11021#[cfg_attr(
11022    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11023    assert_instr(dup, N = 8)
11024)]
11025#[rustc_legacy_const_generics(1)]
11026#[cfg_attr(
11027    not(target_arch = "arm"),
11028    stable(feature = "neon_intrinsics", since = "1.59.0")
11029)]
11030#[cfg_attr(
11031    target_arch = "arm",
11032    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11033)]
11034pub fn vdupq_laneq_u8<const N: i32>(a: uint8x16_t) -> uint8x16_t {
11035    static_assert_uimm_bits!(N, 4);
11036    unsafe {
11037        simd_shuffle!(
11038            a,
11039            a,
11040            [
11041                N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32,
11042                N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32
11043            ]
11044        )
11045    }
11046}
11047#[doc = "Set all vector lanes to the same value"]
11048#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_laneq_s64)"]
11049#[inline]
11050#[target_feature(enable = "neon")]
11051#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11052#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmov, N = 1))]
11053#[cfg_attr(
11054    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11055    assert_instr(nop, N = 1)
11056)]
11057#[rustc_legacy_const_generics(1)]
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)]
11066pub fn vdup_laneq_s64<const N: i32>(a: int64x2_t) -> int64x1_t {
11067    static_assert_uimm_bits!(N, 1);
11068    unsafe { transmute::<i64, _>(simd_extract!(a, N as u32)) }
11069}
11070#[doc = "Set all vector lanes to the same value"]
11071#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_laneq_u64)"]
11072#[inline]
11073#[target_feature(enable = "neon")]
11074#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11075#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmov, N = 1))]
11076#[cfg_attr(
11077    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11078    assert_instr(nop, N = 1)
11079)]
11080#[rustc_legacy_const_generics(1)]
11081#[cfg_attr(
11082    not(target_arch = "arm"),
11083    stable(feature = "neon_intrinsics", since = "1.59.0")
11084)]
11085#[cfg_attr(
11086    target_arch = "arm",
11087    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11088)]
11089pub fn vdup_laneq_u64<const N: i32>(a: uint64x2_t) -> uint64x1_t {
11090    static_assert_uimm_bits!(N, 1);
11091    unsafe { transmute::<u64, _>(simd_extract!(a, N as u32)) }
11092}
11093#[doc = "Create a new vector with all lanes set to a value"]
11094#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_n_f16)"]
11095#[inline]
11096#[target_feature(enable = "neon")]
11097#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11098#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
11099#[cfg_attr(
11100    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11101    assert_instr(dup)
11102)]
11103#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
11104#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
11105#[cfg(not(target_arch = "arm64ec"))]
11106pub fn vdup_n_f16(a: f16) -> float16x4_t {
11107    float16x4_t::splat(a)
11108}
11109#[doc = "Create a new vector with all lanes set to a value"]
11110#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_n_f16)"]
11111#[inline]
11112#[target_feature(enable = "neon")]
11113#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11114#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
11115#[cfg_attr(
11116    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11117    assert_instr(dup)
11118)]
11119#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
11120#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
11121#[cfg(not(target_arch = "arm64ec"))]
11122pub fn vdupq_n_f16(a: f16) -> float16x8_t {
11123    float16x8_t::splat(a)
11124}
11125#[doc = "Duplicate vector element to vector or scalar"]
11126#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_n_f32)"]
11127#[inline]
11128#[target_feature(enable = "neon")]
11129#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11130#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32"))]
11131#[cfg_attr(
11132    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11133    assert_instr(dup)
11134)]
11135#[cfg_attr(
11136    not(target_arch = "arm"),
11137    stable(feature = "neon_intrinsics", since = "1.59.0")
11138)]
11139#[cfg_attr(
11140    target_arch = "arm",
11141    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11142)]
11143pub fn vdup_n_f32(value: f32) -> float32x2_t {
11144    float32x2_t::splat(value)
11145}
11146#[doc = "Duplicate vector element to vector or scalar"]
11147#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_n_p16)"]
11148#[inline]
11149#[target_feature(enable = "neon")]
11150#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11151#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
11152#[cfg_attr(
11153    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11154    assert_instr(dup)
11155)]
11156#[cfg_attr(
11157    not(target_arch = "arm"),
11158    stable(feature = "neon_intrinsics", since = "1.59.0")
11159)]
11160#[cfg_attr(
11161    target_arch = "arm",
11162    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11163)]
11164pub fn vdup_n_p16(value: p16) -> poly16x4_t {
11165    poly16x4_t::splat(value)
11166}
11167#[doc = "Duplicate vector element to vector or scalar"]
11168#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_n_p8)"]
11169#[inline]
11170#[target_feature(enable = "neon")]
11171#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11172#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8"))]
11173#[cfg_attr(
11174    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11175    assert_instr(dup)
11176)]
11177#[cfg_attr(
11178    not(target_arch = "arm"),
11179    stable(feature = "neon_intrinsics", since = "1.59.0")
11180)]
11181#[cfg_attr(
11182    target_arch = "arm",
11183    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11184)]
11185pub fn vdup_n_p8(value: p8) -> poly8x8_t {
11186    poly8x8_t::splat(value)
11187}
11188#[doc = "Duplicate vector element to vector or scalar"]
11189#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_n_s16)"]
11190#[inline]
11191#[target_feature(enable = "neon")]
11192#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11193#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
11194#[cfg_attr(
11195    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11196    assert_instr(dup)
11197)]
11198#[cfg_attr(
11199    not(target_arch = "arm"),
11200    stable(feature = "neon_intrinsics", since = "1.59.0")
11201)]
11202#[cfg_attr(
11203    target_arch = "arm",
11204    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11205)]
11206pub fn vdup_n_s16(value: i16) -> int16x4_t {
11207    int16x4_t::splat(value)
11208}
11209#[doc = "Duplicate vector element to vector or scalar"]
11210#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_n_s32)"]
11211#[inline]
11212#[target_feature(enable = "neon")]
11213#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11214#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32"))]
11215#[cfg_attr(
11216    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11217    assert_instr(dup)
11218)]
11219#[cfg_attr(
11220    not(target_arch = "arm"),
11221    stable(feature = "neon_intrinsics", since = "1.59.0")
11222)]
11223#[cfg_attr(
11224    target_arch = "arm",
11225    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11226)]
11227pub fn vdup_n_s32(value: i32) -> int32x2_t {
11228    int32x2_t::splat(value)
11229}
11230#[doc = "Duplicate vector element to vector or scalar"]
11231#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_n_s64)"]
11232#[inline]
11233#[target_feature(enable = "neon")]
11234#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11235#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
11236#[cfg_attr(
11237    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11238    assert_instr(fmov)
11239)]
11240#[cfg_attr(
11241    not(target_arch = "arm"),
11242    stable(feature = "neon_intrinsics", since = "1.59.0")
11243)]
11244#[cfg_attr(
11245    target_arch = "arm",
11246    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11247)]
11248pub fn vdup_n_s64(value: i64) -> int64x1_t {
11249    int64x1_t::splat(value)
11250}
11251#[doc = "Duplicate vector element to vector or scalar"]
11252#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_n_s8)"]
11253#[inline]
11254#[target_feature(enable = "neon")]
11255#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11256#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8"))]
11257#[cfg_attr(
11258    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11259    assert_instr(dup)
11260)]
11261#[cfg_attr(
11262    not(target_arch = "arm"),
11263    stable(feature = "neon_intrinsics", since = "1.59.0")
11264)]
11265#[cfg_attr(
11266    target_arch = "arm",
11267    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11268)]
11269pub fn vdup_n_s8(value: i8) -> int8x8_t {
11270    int8x8_t::splat(value)
11271}
11272#[doc = "Duplicate vector element to vector or scalar"]
11273#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_n_u16)"]
11274#[inline]
11275#[target_feature(enable = "neon")]
11276#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11277#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
11278#[cfg_attr(
11279    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11280    assert_instr(dup)
11281)]
11282#[cfg_attr(
11283    not(target_arch = "arm"),
11284    stable(feature = "neon_intrinsics", since = "1.59.0")
11285)]
11286#[cfg_attr(
11287    target_arch = "arm",
11288    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11289)]
11290pub fn vdup_n_u16(value: u16) -> uint16x4_t {
11291    uint16x4_t::splat(value)
11292}
11293#[doc = "Duplicate vector element to vector or scalar"]
11294#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_n_u32)"]
11295#[inline]
11296#[target_feature(enable = "neon")]
11297#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11298#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32"))]
11299#[cfg_attr(
11300    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11301    assert_instr(dup)
11302)]
11303#[cfg_attr(
11304    not(target_arch = "arm"),
11305    stable(feature = "neon_intrinsics", since = "1.59.0")
11306)]
11307#[cfg_attr(
11308    target_arch = "arm",
11309    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11310)]
11311pub fn vdup_n_u32(value: u32) -> uint32x2_t {
11312    uint32x2_t::splat(value)
11313}
11314#[doc = "Duplicate vector element to vector or scalar"]
11315#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_n_u64)"]
11316#[inline]
11317#[target_feature(enable = "neon")]
11318#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11319#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
11320#[cfg_attr(
11321    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11322    assert_instr(fmov)
11323)]
11324#[cfg_attr(
11325    not(target_arch = "arm"),
11326    stable(feature = "neon_intrinsics", since = "1.59.0")
11327)]
11328#[cfg_attr(
11329    target_arch = "arm",
11330    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11331)]
11332pub fn vdup_n_u64(value: u64) -> uint64x1_t {
11333    uint64x1_t::splat(value)
11334}
11335#[doc = "Duplicate vector element to vector or scalar"]
11336#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_n_u8)"]
11337#[inline]
11338#[target_feature(enable = "neon")]
11339#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11340#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8"))]
11341#[cfg_attr(
11342    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11343    assert_instr(dup)
11344)]
11345#[cfg_attr(
11346    not(target_arch = "arm"),
11347    stable(feature = "neon_intrinsics", since = "1.59.0")
11348)]
11349#[cfg_attr(
11350    target_arch = "arm",
11351    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11352)]
11353pub fn vdup_n_u8(value: u8) -> uint8x8_t {
11354    uint8x8_t::splat(value)
11355}
11356#[doc = "Duplicate vector element to vector or scalar"]
11357#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_n_f32)"]
11358#[inline]
11359#[target_feature(enable = "neon")]
11360#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11361#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32"))]
11362#[cfg_attr(
11363    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11364    assert_instr(dup)
11365)]
11366#[cfg_attr(
11367    not(target_arch = "arm"),
11368    stable(feature = "neon_intrinsics", since = "1.59.0")
11369)]
11370#[cfg_attr(
11371    target_arch = "arm",
11372    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11373)]
11374pub fn vdupq_n_f32(value: f32) -> float32x4_t {
11375    float32x4_t::splat(value)
11376}
11377#[doc = "Duplicate vector element to vector or scalar"]
11378#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_n_p16)"]
11379#[inline]
11380#[target_feature(enable = "neon")]
11381#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11382#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
11383#[cfg_attr(
11384    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11385    assert_instr(dup)
11386)]
11387#[cfg_attr(
11388    not(target_arch = "arm"),
11389    stable(feature = "neon_intrinsics", since = "1.59.0")
11390)]
11391#[cfg_attr(
11392    target_arch = "arm",
11393    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11394)]
11395pub fn vdupq_n_p16(value: p16) -> poly16x8_t {
11396    poly16x8_t::splat(value)
11397}
11398#[doc = "Duplicate vector element to vector or scalar"]
11399#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_n_p8)"]
11400#[inline]
11401#[target_feature(enable = "neon")]
11402#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11403#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8"))]
11404#[cfg_attr(
11405    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11406    assert_instr(dup)
11407)]
11408#[cfg_attr(
11409    not(target_arch = "arm"),
11410    stable(feature = "neon_intrinsics", since = "1.59.0")
11411)]
11412#[cfg_attr(
11413    target_arch = "arm",
11414    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11415)]
11416pub fn vdupq_n_p8(value: p8) -> poly8x16_t {
11417    poly8x16_t::splat(value)
11418}
11419#[doc = "Duplicate vector element to vector or scalar"]
11420#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_n_s16)"]
11421#[inline]
11422#[target_feature(enable = "neon")]
11423#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11424#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
11425#[cfg_attr(
11426    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11427    assert_instr(dup)
11428)]
11429#[cfg_attr(
11430    not(target_arch = "arm"),
11431    stable(feature = "neon_intrinsics", since = "1.59.0")
11432)]
11433#[cfg_attr(
11434    target_arch = "arm",
11435    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11436)]
11437pub fn vdupq_n_s16(value: i16) -> int16x8_t {
11438    int16x8_t::splat(value)
11439}
11440#[doc = "Duplicate vector element to vector or scalar"]
11441#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_n_s32)"]
11442#[inline]
11443#[target_feature(enable = "neon")]
11444#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11445#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32"))]
11446#[cfg_attr(
11447    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11448    assert_instr(dup)
11449)]
11450#[cfg_attr(
11451    not(target_arch = "arm"),
11452    stable(feature = "neon_intrinsics", since = "1.59.0")
11453)]
11454#[cfg_attr(
11455    target_arch = "arm",
11456    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11457)]
11458pub fn vdupq_n_s32(value: i32) -> int32x4_t {
11459    int32x4_t::splat(value)
11460}
11461#[doc = "Duplicate vector element to vector or scalar"]
11462#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_n_s64)"]
11463#[inline]
11464#[target_feature(enable = "neon")]
11465#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11466#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
11467#[cfg_attr(
11468    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11469    assert_instr(dup)
11470)]
11471#[cfg_attr(
11472    not(target_arch = "arm"),
11473    stable(feature = "neon_intrinsics", since = "1.59.0")
11474)]
11475#[cfg_attr(
11476    target_arch = "arm",
11477    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11478)]
11479pub fn vdupq_n_s64(value: i64) -> int64x2_t {
11480    int64x2_t::splat(value)
11481}
11482#[doc = "Duplicate vector element to vector or scalar"]
11483#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_n_s8)"]
11484#[inline]
11485#[target_feature(enable = "neon")]
11486#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11487#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8"))]
11488#[cfg_attr(
11489    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11490    assert_instr(dup)
11491)]
11492#[cfg_attr(
11493    not(target_arch = "arm"),
11494    stable(feature = "neon_intrinsics", since = "1.59.0")
11495)]
11496#[cfg_attr(
11497    target_arch = "arm",
11498    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11499)]
11500pub fn vdupq_n_s8(value: i8) -> int8x16_t {
11501    int8x16_t::splat(value)
11502}
11503#[doc = "Duplicate vector element to vector or scalar"]
11504#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_n_u16)"]
11505#[inline]
11506#[target_feature(enable = "neon")]
11507#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11508#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
11509#[cfg_attr(
11510    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11511    assert_instr(dup)
11512)]
11513#[cfg_attr(
11514    not(target_arch = "arm"),
11515    stable(feature = "neon_intrinsics", since = "1.59.0")
11516)]
11517#[cfg_attr(
11518    target_arch = "arm",
11519    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11520)]
11521pub fn vdupq_n_u16(value: u16) -> uint16x8_t {
11522    uint16x8_t::splat(value)
11523}
11524#[doc = "Duplicate vector element to vector or scalar"]
11525#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_n_u32)"]
11526#[inline]
11527#[target_feature(enable = "neon")]
11528#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11529#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32"))]
11530#[cfg_attr(
11531    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11532    assert_instr(dup)
11533)]
11534#[cfg_attr(
11535    not(target_arch = "arm"),
11536    stable(feature = "neon_intrinsics", since = "1.59.0")
11537)]
11538#[cfg_attr(
11539    target_arch = "arm",
11540    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11541)]
11542pub fn vdupq_n_u32(value: u32) -> uint32x4_t {
11543    uint32x4_t::splat(value)
11544}
11545#[doc = "Duplicate vector element to vector or scalar"]
11546#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_n_u64)"]
11547#[inline]
11548#[target_feature(enable = "neon")]
11549#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11550#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
11551#[cfg_attr(
11552    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11553    assert_instr(dup)
11554)]
11555#[cfg_attr(
11556    not(target_arch = "arm"),
11557    stable(feature = "neon_intrinsics", since = "1.59.0")
11558)]
11559#[cfg_attr(
11560    target_arch = "arm",
11561    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11562)]
11563pub fn vdupq_n_u64(value: u64) -> uint64x2_t {
11564    uint64x2_t::splat(value)
11565}
11566#[doc = "Duplicate vector element to vector or scalar"]
11567#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_n_u8)"]
11568#[inline]
11569#[target_feature(enable = "neon")]
11570#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11571#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8"))]
11572#[cfg_attr(
11573    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11574    assert_instr(dup)
11575)]
11576#[cfg_attr(
11577    not(target_arch = "arm"),
11578    stable(feature = "neon_intrinsics", since = "1.59.0")
11579)]
11580#[cfg_attr(
11581    target_arch = "arm",
11582    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11583)]
11584pub fn vdupq_n_u8(value: u8) -> uint8x16_t {
11585    uint8x16_t::splat(value)
11586}
11587#[doc = "Duplicate vector element to vector or scalar"]
11588#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_n_f32_vfp4)"]
11589#[inline]
11590#[target_feature(enable = "neon")]
11591#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
11592#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32"))]
11593#[cfg_attr(
11594    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11595    assert_instr(dup)
11596)]
11597#[cfg_attr(
11598    not(target_arch = "arm"),
11599    stable(feature = "neon_intrinsics", since = "1.59.0")
11600)]
11601#[cfg_attr(
11602    target_arch = "arm",
11603    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11604)]
11605fn vdup_n_f32_vfp4(value: f32) -> float32x2_t {
11606    float32x2_t::splat(value)
11607}
11608#[doc = "Duplicate vector element to vector or scalar"]
11609#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_n_f32_vfp4)"]
11610#[inline]
11611#[target_feature(enable = "neon")]
11612#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
11613#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32"))]
11614#[cfg_attr(
11615    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11616    assert_instr(dup)
11617)]
11618#[cfg_attr(
11619    not(target_arch = "arm"),
11620    stable(feature = "neon_intrinsics", since = "1.59.0")
11621)]
11622#[cfg_attr(
11623    target_arch = "arm",
11624    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11625)]
11626fn vdupq_n_f32_vfp4(value: f32) -> float32x4_t {
11627    float32x4_t::splat(value)
11628}
11629#[doc = "Set all vector lanes to the same value"]
11630#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_lane_s64)"]
11631#[inline]
11632#[target_feature(enable = "neon")]
11633#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11634#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmov, N = 0))]
11635#[cfg_attr(
11636    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11637    assert_instr(dup, N = 0)
11638)]
11639#[rustc_legacy_const_generics(1)]
11640#[cfg_attr(
11641    not(target_arch = "arm"),
11642    stable(feature = "neon_intrinsics", since = "1.59.0")
11643)]
11644#[cfg_attr(
11645    target_arch = "arm",
11646    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11647)]
11648pub fn vdupq_lane_s64<const N: i32>(a: int64x1_t) -> int64x2_t {
11649    static_assert!(N == 0);
11650    unsafe { simd_shuffle!(a, a, [N as u32, N as u32]) }
11651}
11652#[doc = "Set all vector lanes to the same value"]
11653#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_lane_u64)"]
11654#[inline]
11655#[target_feature(enable = "neon")]
11656#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11657#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmov, N = 0))]
11658#[cfg_attr(
11659    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11660    assert_instr(dup, N = 0)
11661)]
11662#[rustc_legacy_const_generics(1)]
11663#[cfg_attr(
11664    not(target_arch = "arm"),
11665    stable(feature = "neon_intrinsics", since = "1.59.0")
11666)]
11667#[cfg_attr(
11668    target_arch = "arm",
11669    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11670)]
11671pub fn vdupq_lane_u64<const N: i32>(a: uint64x1_t) -> uint64x2_t {
11672    static_assert!(N == 0);
11673    unsafe { simd_shuffle!(a, a, [N as u32, N as u32]) }
11674}
11675#[doc = "Set all vector lanes to the same value"]
11676#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_laneq_s64)"]
11677#[inline]
11678#[target_feature(enable = "neon")]
11679#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11680#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmov, N = 1))]
11681#[cfg_attr(
11682    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11683    assert_instr(dup, N = 1)
11684)]
11685#[rustc_legacy_const_generics(1)]
11686#[cfg_attr(
11687    not(target_arch = "arm"),
11688    stable(feature = "neon_intrinsics", since = "1.59.0")
11689)]
11690#[cfg_attr(
11691    target_arch = "arm",
11692    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11693)]
11694pub fn vdupq_laneq_s64<const N: i32>(a: int64x2_t) -> int64x2_t {
11695    static_assert_uimm_bits!(N, 1);
11696    unsafe { simd_shuffle!(a, a, [N as u32, N as u32]) }
11697}
11698#[doc = "Set all vector lanes to the same value"]
11699#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_laneq_u64)"]
11700#[inline]
11701#[target_feature(enable = "neon")]
11702#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11703#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmov, N = 1))]
11704#[cfg_attr(
11705    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11706    assert_instr(dup, N = 1)
11707)]
11708#[rustc_legacy_const_generics(1)]
11709#[cfg_attr(
11710    not(target_arch = "arm"),
11711    stable(feature = "neon_intrinsics", since = "1.59.0")
11712)]
11713#[cfg_attr(
11714    target_arch = "arm",
11715    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11716)]
11717pub fn vdupq_laneq_u64<const N: i32>(a: uint64x2_t) -> uint64x2_t {
11718    static_assert_uimm_bits!(N, 1);
11719    unsafe { simd_shuffle!(a, a, [N as u32, N as u32]) }
11720}
11721#[doc = "Vector bitwise exclusive or (vector)"]
11722#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veor_s8)"]
11723#[inline]
11724#[target_feature(enable = "neon")]
11725#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11726#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
11727#[cfg_attr(
11728    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11729    assert_instr(eor)
11730)]
11731#[cfg_attr(
11732    not(target_arch = "arm"),
11733    stable(feature = "neon_intrinsics", since = "1.59.0")
11734)]
11735#[cfg_attr(
11736    target_arch = "arm",
11737    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11738)]
11739pub fn veor_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
11740    unsafe { simd_xor(a, b) }
11741}
11742#[doc = "Vector bitwise exclusive or (vector)"]
11743#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veorq_s8)"]
11744#[inline]
11745#[target_feature(enable = "neon")]
11746#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11747#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
11748#[cfg_attr(
11749    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11750    assert_instr(eor)
11751)]
11752#[cfg_attr(
11753    not(target_arch = "arm"),
11754    stable(feature = "neon_intrinsics", since = "1.59.0")
11755)]
11756#[cfg_attr(
11757    target_arch = "arm",
11758    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11759)]
11760pub fn veorq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
11761    unsafe { simd_xor(a, b) }
11762}
11763#[doc = "Vector bitwise exclusive or (vector)"]
11764#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veor_s16)"]
11765#[inline]
11766#[target_feature(enable = "neon")]
11767#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11768#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
11769#[cfg_attr(
11770    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11771    assert_instr(eor)
11772)]
11773#[cfg_attr(
11774    not(target_arch = "arm"),
11775    stable(feature = "neon_intrinsics", since = "1.59.0")
11776)]
11777#[cfg_attr(
11778    target_arch = "arm",
11779    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11780)]
11781pub fn veor_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
11782    unsafe { simd_xor(a, b) }
11783}
11784#[doc = "Vector bitwise exclusive or (vector)"]
11785#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veorq_s16)"]
11786#[inline]
11787#[target_feature(enable = "neon")]
11788#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11789#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
11790#[cfg_attr(
11791    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11792    assert_instr(eor)
11793)]
11794#[cfg_attr(
11795    not(target_arch = "arm"),
11796    stable(feature = "neon_intrinsics", since = "1.59.0")
11797)]
11798#[cfg_attr(
11799    target_arch = "arm",
11800    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11801)]
11802pub fn veorq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
11803    unsafe { simd_xor(a, b) }
11804}
11805#[doc = "Vector bitwise exclusive or (vector)"]
11806#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veor_s32)"]
11807#[inline]
11808#[target_feature(enable = "neon")]
11809#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11810#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
11811#[cfg_attr(
11812    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11813    assert_instr(eor)
11814)]
11815#[cfg_attr(
11816    not(target_arch = "arm"),
11817    stable(feature = "neon_intrinsics", since = "1.59.0")
11818)]
11819#[cfg_attr(
11820    target_arch = "arm",
11821    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11822)]
11823pub fn veor_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
11824    unsafe { simd_xor(a, b) }
11825}
11826#[doc = "Vector bitwise exclusive or (vector)"]
11827#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veorq_s32)"]
11828#[inline]
11829#[target_feature(enable = "neon")]
11830#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11831#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
11832#[cfg_attr(
11833    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11834    assert_instr(eor)
11835)]
11836#[cfg_attr(
11837    not(target_arch = "arm"),
11838    stable(feature = "neon_intrinsics", since = "1.59.0")
11839)]
11840#[cfg_attr(
11841    target_arch = "arm",
11842    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11843)]
11844pub fn veorq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
11845    unsafe { simd_xor(a, b) }
11846}
11847#[doc = "Vector bitwise exclusive or (vector)"]
11848#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veor_s64)"]
11849#[inline]
11850#[target_feature(enable = "neon")]
11851#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11852#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
11853#[cfg_attr(
11854    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11855    assert_instr(eor)
11856)]
11857#[cfg_attr(
11858    not(target_arch = "arm"),
11859    stable(feature = "neon_intrinsics", since = "1.59.0")
11860)]
11861#[cfg_attr(
11862    target_arch = "arm",
11863    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11864)]
11865pub fn veor_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t {
11866    unsafe { simd_xor(a, b) }
11867}
11868#[doc = "Vector bitwise exclusive or (vector)"]
11869#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veorq_s64)"]
11870#[inline]
11871#[target_feature(enable = "neon")]
11872#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11873#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
11874#[cfg_attr(
11875    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11876    assert_instr(eor)
11877)]
11878#[cfg_attr(
11879    not(target_arch = "arm"),
11880    stable(feature = "neon_intrinsics", since = "1.59.0")
11881)]
11882#[cfg_attr(
11883    target_arch = "arm",
11884    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11885)]
11886pub fn veorq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t {
11887    unsafe { simd_xor(a, b) }
11888}
11889#[doc = "Vector bitwise exclusive or (vector)"]
11890#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veor_u8)"]
11891#[inline]
11892#[target_feature(enable = "neon")]
11893#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11894#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
11895#[cfg_attr(
11896    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11897    assert_instr(eor)
11898)]
11899#[cfg_attr(
11900    not(target_arch = "arm"),
11901    stable(feature = "neon_intrinsics", since = "1.59.0")
11902)]
11903#[cfg_attr(
11904    target_arch = "arm",
11905    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11906)]
11907pub fn veor_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
11908    unsafe { simd_xor(a, b) }
11909}
11910#[doc = "Vector bitwise exclusive or (vector)"]
11911#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veorq_u8)"]
11912#[inline]
11913#[target_feature(enable = "neon")]
11914#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11915#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
11916#[cfg_attr(
11917    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11918    assert_instr(eor)
11919)]
11920#[cfg_attr(
11921    not(target_arch = "arm"),
11922    stable(feature = "neon_intrinsics", since = "1.59.0")
11923)]
11924#[cfg_attr(
11925    target_arch = "arm",
11926    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11927)]
11928pub fn veorq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
11929    unsafe { simd_xor(a, b) }
11930}
11931#[doc = "Vector bitwise exclusive or (vector)"]
11932#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veor_u16)"]
11933#[inline]
11934#[target_feature(enable = "neon")]
11935#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11936#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
11937#[cfg_attr(
11938    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11939    assert_instr(eor)
11940)]
11941#[cfg_attr(
11942    not(target_arch = "arm"),
11943    stable(feature = "neon_intrinsics", since = "1.59.0")
11944)]
11945#[cfg_attr(
11946    target_arch = "arm",
11947    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11948)]
11949pub fn veor_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
11950    unsafe { simd_xor(a, b) }
11951}
11952#[doc = "Vector bitwise exclusive or (vector)"]
11953#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veorq_u16)"]
11954#[inline]
11955#[target_feature(enable = "neon")]
11956#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11957#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
11958#[cfg_attr(
11959    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11960    assert_instr(eor)
11961)]
11962#[cfg_attr(
11963    not(target_arch = "arm"),
11964    stable(feature = "neon_intrinsics", since = "1.59.0")
11965)]
11966#[cfg_attr(
11967    target_arch = "arm",
11968    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11969)]
11970pub fn veorq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
11971    unsafe { simd_xor(a, b) }
11972}
11973#[doc = "Vector bitwise exclusive or (vector)"]
11974#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veor_u32)"]
11975#[inline]
11976#[target_feature(enable = "neon")]
11977#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11978#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
11979#[cfg_attr(
11980    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11981    assert_instr(eor)
11982)]
11983#[cfg_attr(
11984    not(target_arch = "arm"),
11985    stable(feature = "neon_intrinsics", since = "1.59.0")
11986)]
11987#[cfg_attr(
11988    target_arch = "arm",
11989    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11990)]
11991pub fn veor_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
11992    unsafe { simd_xor(a, b) }
11993}
11994#[doc = "Vector bitwise exclusive or (vector)"]
11995#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veorq_u32)"]
11996#[inline]
11997#[target_feature(enable = "neon")]
11998#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11999#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
12000#[cfg_attr(
12001    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12002    assert_instr(eor)
12003)]
12004#[cfg_attr(
12005    not(target_arch = "arm"),
12006    stable(feature = "neon_intrinsics", since = "1.59.0")
12007)]
12008#[cfg_attr(
12009    target_arch = "arm",
12010    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12011)]
12012pub fn veorq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
12013    unsafe { simd_xor(a, b) }
12014}
12015#[doc = "Vector bitwise exclusive or (vector)"]
12016#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veor_u64)"]
12017#[inline]
12018#[target_feature(enable = "neon")]
12019#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12020#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
12021#[cfg_attr(
12022    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12023    assert_instr(eor)
12024)]
12025#[cfg_attr(
12026    not(target_arch = "arm"),
12027    stable(feature = "neon_intrinsics", since = "1.59.0")
12028)]
12029#[cfg_attr(
12030    target_arch = "arm",
12031    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12032)]
12033pub fn veor_u64(a: uint64x1_t, b: uint64x1_t) -> uint64x1_t {
12034    unsafe { simd_xor(a, b) }
12035}
12036#[doc = "Vector bitwise exclusive or (vector)"]
12037#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veorq_u64)"]
12038#[inline]
12039#[target_feature(enable = "neon")]
12040#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12041#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
12042#[cfg_attr(
12043    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12044    assert_instr(eor)
12045)]
12046#[cfg_attr(
12047    not(target_arch = "arm"),
12048    stable(feature = "neon_intrinsics", since = "1.59.0")
12049)]
12050#[cfg_attr(
12051    target_arch = "arm",
12052    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12053)]
12054pub fn veorq_u64(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
12055    unsafe { simd_xor(a, b) }
12056}
12057#[doc = "Extract vector from pair of vectors"]
12058#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vext_f16)"]
12059#[inline]
12060#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12061#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 3))]
12062#[cfg_attr(
12063    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12064    assert_instr(ext, N = 3)
12065)]
12066#[rustc_legacy_const_generics(2)]
12067#[target_feature(enable = "neon,fp16")]
12068#[cfg_attr(
12069    not(target_arch = "arm"),
12070    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
12071)]
12072#[cfg_attr(
12073    target_arch = "arm",
12074    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12075)]
12076#[cfg(not(target_arch = "arm64ec"))]
12077pub fn vext_f16<const N: i32>(a: float16x4_t, b: float16x4_t) -> float16x4_t {
12078    static_assert_uimm_bits!(N, 2);
12079    unsafe {
12080        match N & 0b11 {
12081            0 => simd_shuffle!(a, b, [0, 1, 2, 3]),
12082            1 => simd_shuffle!(a, b, [1, 2, 3, 4]),
12083            2 => simd_shuffle!(a, b, [2, 3, 4, 5]),
12084            3 => simd_shuffle!(a, b, [3, 4, 5, 6]),
12085            _ => unreachable_unchecked(),
12086        }
12087    }
12088}
12089#[doc = "Extract vector from pair of vectors"]
12090#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vext_f32)"]
12091#[inline]
12092#[target_feature(enable = "neon")]
12093#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12094#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 1))]
12095#[cfg_attr(
12096    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12097    assert_instr(ext, N = 1)
12098)]
12099#[rustc_legacy_const_generics(2)]
12100#[cfg_attr(
12101    not(target_arch = "arm"),
12102    stable(feature = "neon_intrinsics", since = "1.59.0")
12103)]
12104#[cfg_attr(
12105    target_arch = "arm",
12106    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12107)]
12108pub fn vext_f32<const N: i32>(a: float32x2_t, b: float32x2_t) -> float32x2_t {
12109    static_assert_uimm_bits!(N, 1);
12110    unsafe {
12111        match N & 0b1 {
12112            0 => simd_shuffle!(a, b, [0, 1]),
12113            1 => simd_shuffle!(a, b, [1, 2]),
12114            _ => unreachable_unchecked(),
12115        }
12116    }
12117}
12118#[doc = "Extract vector from pair of vectors"]
12119#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vext_s32)"]
12120#[inline]
12121#[target_feature(enable = "neon")]
12122#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12123#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 1))]
12124#[cfg_attr(
12125    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12126    assert_instr(ext, N = 1)
12127)]
12128#[rustc_legacy_const_generics(2)]
12129#[cfg_attr(
12130    not(target_arch = "arm"),
12131    stable(feature = "neon_intrinsics", since = "1.59.0")
12132)]
12133#[cfg_attr(
12134    target_arch = "arm",
12135    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12136)]
12137pub fn vext_s32<const N: i32>(a: int32x2_t, b: int32x2_t) -> int32x2_t {
12138    static_assert_uimm_bits!(N, 1);
12139    unsafe {
12140        match N & 0b1 {
12141            0 => simd_shuffle!(a, b, [0, 1]),
12142            1 => simd_shuffle!(a, b, [1, 2]),
12143            _ => unreachable_unchecked(),
12144        }
12145    }
12146}
12147#[doc = "Extract vector from pair of vectors"]
12148#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vext_u32)"]
12149#[inline]
12150#[target_feature(enable = "neon")]
12151#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12152#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 1))]
12153#[cfg_attr(
12154    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12155    assert_instr(ext, N = 1)
12156)]
12157#[rustc_legacy_const_generics(2)]
12158#[cfg_attr(
12159    not(target_arch = "arm"),
12160    stable(feature = "neon_intrinsics", since = "1.59.0")
12161)]
12162#[cfg_attr(
12163    target_arch = "arm",
12164    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12165)]
12166pub fn vext_u32<const N: i32>(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
12167    static_assert_uimm_bits!(N, 1);
12168    unsafe {
12169        match N & 0b1 {
12170            0 => simd_shuffle!(a, b, [0, 1]),
12171            1 => simd_shuffle!(a, b, [1, 2]),
12172            _ => unreachable_unchecked(),
12173        }
12174    }
12175}
12176#[doc = "Extract vector from pair of vectors"]
12177#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vext_s64)"]
12178#[doc = "## Safety"]
12179#[doc = "  * Neon instrinsic unsafe"]
12180#[inline]
12181#[target_feature(enable = "neon")]
12182#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12183#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, N = 0))]
12184#[cfg_attr(
12185    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12186    assert_instr(nop, N = 0)
12187)]
12188#[rustc_legacy_const_generics(2)]
12189#[cfg_attr(
12190    not(target_arch = "arm"),
12191    stable(feature = "neon_intrinsics", since = "1.59.0")
12192)]
12193#[cfg_attr(
12194    target_arch = "arm",
12195    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12196)]
12197pub unsafe fn vext_s64<const N: i32>(a: int64x1_t, _b: int64x1_t) -> int64x1_t {
12198    static_assert!(N == 0);
12199    a
12200}
12201#[doc = "Extract vector from pair of vectors"]
12202#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vext_u64)"]
12203#[doc = "## Safety"]
12204#[doc = "  * Neon instrinsic unsafe"]
12205#[inline]
12206#[target_feature(enable = "neon")]
12207#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12208#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, N = 0))]
12209#[cfg_attr(
12210    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12211    assert_instr(nop, N = 0)
12212)]
12213#[rustc_legacy_const_generics(2)]
12214#[cfg_attr(
12215    not(target_arch = "arm"),
12216    stable(feature = "neon_intrinsics", since = "1.59.0")
12217)]
12218#[cfg_attr(
12219    target_arch = "arm",
12220    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12221)]
12222pub unsafe fn vext_u64<const N: i32>(a: uint64x1_t, _b: uint64x1_t) -> uint64x1_t {
12223    static_assert!(N == 0);
12224    a
12225}
12226#[doc = "Extract vector from pair of vectors"]
12227#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vext_s8)"]
12228#[inline]
12229#[target_feature(enable = "neon")]
12230#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12231#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 7))]
12232#[cfg_attr(
12233    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12234    assert_instr(ext, N = 7)
12235)]
12236#[rustc_legacy_const_generics(2)]
12237#[cfg_attr(
12238    not(target_arch = "arm"),
12239    stable(feature = "neon_intrinsics", since = "1.59.0")
12240)]
12241#[cfg_attr(
12242    target_arch = "arm",
12243    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12244)]
12245pub fn vext_s8<const N: i32>(a: int8x8_t, b: int8x8_t) -> int8x8_t {
12246    static_assert_uimm_bits!(N, 3);
12247    unsafe {
12248        match N & 0b111 {
12249            0 => simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7]),
12250            1 => simd_shuffle!(a, b, [1, 2, 3, 4, 5, 6, 7, 8]),
12251            2 => simd_shuffle!(a, b, [2, 3, 4, 5, 6, 7, 8, 9]),
12252            3 => simd_shuffle!(a, b, [3, 4, 5, 6, 7, 8, 9, 10]),
12253            4 => simd_shuffle!(a, b, [4, 5, 6, 7, 8, 9, 10, 11]),
12254            5 => simd_shuffle!(a, b, [5, 6, 7, 8, 9, 10, 11, 12]),
12255            6 => simd_shuffle!(a, b, [6, 7, 8, 9, 10, 11, 12, 13]),
12256            7 => simd_shuffle!(a, b, [7, 8, 9, 10, 11, 12, 13, 14]),
12257            _ => unreachable_unchecked(),
12258        }
12259    }
12260}
12261#[doc = "Extract vector from pair of vectors"]
12262#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vextq_s16)"]
12263#[inline]
12264#[target_feature(enable = "neon")]
12265#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12266#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 7))]
12267#[cfg_attr(
12268    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12269    assert_instr(ext, N = 7)
12270)]
12271#[rustc_legacy_const_generics(2)]
12272#[cfg_attr(
12273    not(target_arch = "arm"),
12274    stable(feature = "neon_intrinsics", since = "1.59.0")
12275)]
12276#[cfg_attr(
12277    target_arch = "arm",
12278    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12279)]
12280pub fn vextq_s16<const N: i32>(a: int16x8_t, b: int16x8_t) -> int16x8_t {
12281    static_assert_uimm_bits!(N, 3);
12282    unsafe {
12283        match N & 0b111 {
12284            0 => simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7]),
12285            1 => simd_shuffle!(a, b, [1, 2, 3, 4, 5, 6, 7, 8]),
12286            2 => simd_shuffle!(a, b, [2, 3, 4, 5, 6, 7, 8, 9]),
12287            3 => simd_shuffle!(a, b, [3, 4, 5, 6, 7, 8, 9, 10]),
12288            4 => simd_shuffle!(a, b, [4, 5, 6, 7, 8, 9, 10, 11]),
12289            5 => simd_shuffle!(a, b, [5, 6, 7, 8, 9, 10, 11, 12]),
12290            6 => simd_shuffle!(a, b, [6, 7, 8, 9, 10, 11, 12, 13]),
12291            7 => simd_shuffle!(a, b, [7, 8, 9, 10, 11, 12, 13, 14]),
12292            _ => unreachable_unchecked(),
12293        }
12294    }
12295}
12296#[doc = "Extract vector from pair of vectors"]
12297#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vext_u8)"]
12298#[inline]
12299#[target_feature(enable = "neon")]
12300#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12301#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 7))]
12302#[cfg_attr(
12303    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12304    assert_instr(ext, N = 7)
12305)]
12306#[rustc_legacy_const_generics(2)]
12307#[cfg_attr(
12308    not(target_arch = "arm"),
12309    stable(feature = "neon_intrinsics", since = "1.59.0")
12310)]
12311#[cfg_attr(
12312    target_arch = "arm",
12313    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12314)]
12315pub fn vext_u8<const N: i32>(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
12316    static_assert_uimm_bits!(N, 3);
12317    unsafe {
12318        match N & 0b111 {
12319            0 => simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7]),
12320            1 => simd_shuffle!(a, b, [1, 2, 3, 4, 5, 6, 7, 8]),
12321            2 => simd_shuffle!(a, b, [2, 3, 4, 5, 6, 7, 8, 9]),
12322            3 => simd_shuffle!(a, b, [3, 4, 5, 6, 7, 8, 9, 10]),
12323            4 => simd_shuffle!(a, b, [4, 5, 6, 7, 8, 9, 10, 11]),
12324            5 => simd_shuffle!(a, b, [5, 6, 7, 8, 9, 10, 11, 12]),
12325            6 => simd_shuffle!(a, b, [6, 7, 8, 9, 10, 11, 12, 13]),
12326            7 => simd_shuffle!(a, b, [7, 8, 9, 10, 11, 12, 13, 14]),
12327            _ => unreachable_unchecked(),
12328        }
12329    }
12330}
12331#[doc = "Extract vector from pair of vectors"]
12332#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vextq_u16)"]
12333#[inline]
12334#[target_feature(enable = "neon")]
12335#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12336#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 7))]
12337#[cfg_attr(
12338    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12339    assert_instr(ext, N = 7)
12340)]
12341#[rustc_legacy_const_generics(2)]
12342#[cfg_attr(
12343    not(target_arch = "arm"),
12344    stable(feature = "neon_intrinsics", since = "1.59.0")
12345)]
12346#[cfg_attr(
12347    target_arch = "arm",
12348    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12349)]
12350pub fn vextq_u16<const N: i32>(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
12351    static_assert_uimm_bits!(N, 3);
12352    unsafe {
12353        match N & 0b111 {
12354            0 => simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7]),
12355            1 => simd_shuffle!(a, b, [1, 2, 3, 4, 5, 6, 7, 8]),
12356            2 => simd_shuffle!(a, b, [2, 3, 4, 5, 6, 7, 8, 9]),
12357            3 => simd_shuffle!(a, b, [3, 4, 5, 6, 7, 8, 9, 10]),
12358            4 => simd_shuffle!(a, b, [4, 5, 6, 7, 8, 9, 10, 11]),
12359            5 => simd_shuffle!(a, b, [5, 6, 7, 8, 9, 10, 11, 12]),
12360            6 => simd_shuffle!(a, b, [6, 7, 8, 9, 10, 11, 12, 13]),
12361            7 => simd_shuffle!(a, b, [7, 8, 9, 10, 11, 12, 13, 14]),
12362            _ => unreachable_unchecked(),
12363        }
12364    }
12365}
12366#[doc = "Extract vector from pair of vectors"]
12367#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vext_p8)"]
12368#[inline]
12369#[target_feature(enable = "neon")]
12370#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12371#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 7))]
12372#[cfg_attr(
12373    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12374    assert_instr(ext, N = 7)
12375)]
12376#[rustc_legacy_const_generics(2)]
12377#[cfg_attr(
12378    not(target_arch = "arm"),
12379    stable(feature = "neon_intrinsics", since = "1.59.0")
12380)]
12381#[cfg_attr(
12382    target_arch = "arm",
12383    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12384)]
12385pub fn vext_p8<const N: i32>(a: poly8x8_t, b: poly8x8_t) -> poly8x8_t {
12386    static_assert_uimm_bits!(N, 3);
12387    unsafe {
12388        match N & 0b111 {
12389            0 => simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7]),
12390            1 => simd_shuffle!(a, b, [1, 2, 3, 4, 5, 6, 7, 8]),
12391            2 => simd_shuffle!(a, b, [2, 3, 4, 5, 6, 7, 8, 9]),
12392            3 => simd_shuffle!(a, b, [3, 4, 5, 6, 7, 8, 9, 10]),
12393            4 => simd_shuffle!(a, b, [4, 5, 6, 7, 8, 9, 10, 11]),
12394            5 => simd_shuffle!(a, b, [5, 6, 7, 8, 9, 10, 11, 12]),
12395            6 => simd_shuffle!(a, b, [6, 7, 8, 9, 10, 11, 12, 13]),
12396            7 => simd_shuffle!(a, b, [7, 8, 9, 10, 11, 12, 13, 14]),
12397            _ => unreachable_unchecked(),
12398        }
12399    }
12400}
12401#[doc = "Extract vector from pair of vectors"]
12402#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vextq_p16)"]
12403#[inline]
12404#[target_feature(enable = "neon")]
12405#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12406#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 7))]
12407#[cfg_attr(
12408    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12409    assert_instr(ext, N = 7)
12410)]
12411#[rustc_legacy_const_generics(2)]
12412#[cfg_attr(
12413    not(target_arch = "arm"),
12414    stable(feature = "neon_intrinsics", since = "1.59.0")
12415)]
12416#[cfg_attr(
12417    target_arch = "arm",
12418    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12419)]
12420pub fn vextq_p16<const N: i32>(a: poly16x8_t, b: poly16x8_t) -> poly16x8_t {
12421    static_assert_uimm_bits!(N, 3);
12422    unsafe {
12423        match N & 0b111 {
12424            0 => simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7]),
12425            1 => simd_shuffle!(a, b, [1, 2, 3, 4, 5, 6, 7, 8]),
12426            2 => simd_shuffle!(a, b, [2, 3, 4, 5, 6, 7, 8, 9]),
12427            3 => simd_shuffle!(a, b, [3, 4, 5, 6, 7, 8, 9, 10]),
12428            4 => simd_shuffle!(a, b, [4, 5, 6, 7, 8, 9, 10, 11]),
12429            5 => simd_shuffle!(a, b, [5, 6, 7, 8, 9, 10, 11, 12]),
12430            6 => simd_shuffle!(a, b, [6, 7, 8, 9, 10, 11, 12, 13]),
12431            7 => simd_shuffle!(a, b, [7, 8, 9, 10, 11, 12, 13, 14]),
12432            _ => unreachable_unchecked(),
12433        }
12434    }
12435}
12436#[doc = "Extract vector from pair of vectors"]
12437#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vextq_f16)"]
12438#[inline]
12439#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12440#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 7))]
12441#[cfg_attr(
12442    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12443    assert_instr(ext, N = 7)
12444)]
12445#[rustc_legacy_const_generics(2)]
12446#[target_feature(enable = "neon,fp16")]
12447#[cfg_attr(
12448    not(target_arch = "arm"),
12449    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
12450)]
12451#[cfg_attr(
12452    target_arch = "arm",
12453    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12454)]
12455#[cfg(not(target_arch = "arm64ec"))]
12456pub fn vextq_f16<const N: i32>(a: float16x8_t, b: float16x8_t) -> float16x8_t {
12457    static_assert_uimm_bits!(N, 3);
12458    unsafe {
12459        match N & 0b111 {
12460            0 => simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7]),
12461            1 => simd_shuffle!(a, b, [1, 2, 3, 4, 5, 6, 7, 8]),
12462            2 => simd_shuffle!(a, b, [2, 3, 4, 5, 6, 7, 8, 9]),
12463            3 => simd_shuffle!(a, b, [3, 4, 5, 6, 7, 8, 9, 10]),
12464            4 => simd_shuffle!(a, b, [4, 5, 6, 7, 8, 9, 10, 11]),
12465            5 => simd_shuffle!(a, b, [5, 6, 7, 8, 9, 10, 11, 12]),
12466            6 => simd_shuffle!(a, b, [6, 7, 8, 9, 10, 11, 12, 13]),
12467            7 => simd_shuffle!(a, b, [7, 8, 9, 10, 11, 12, 13, 14]),
12468            _ => unreachable_unchecked(),
12469        }
12470    }
12471}
12472#[doc = "Extract vector from pair of vectors"]
12473#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vextq_f32)"]
12474#[inline]
12475#[target_feature(enable = "neon")]
12476#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12477#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 3))]
12478#[cfg_attr(
12479    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12480    assert_instr(ext, N = 3)
12481)]
12482#[rustc_legacy_const_generics(2)]
12483#[cfg_attr(
12484    not(target_arch = "arm"),
12485    stable(feature = "neon_intrinsics", since = "1.59.0")
12486)]
12487#[cfg_attr(
12488    target_arch = "arm",
12489    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12490)]
12491pub fn vextq_f32<const N: i32>(a: float32x4_t, b: float32x4_t) -> float32x4_t {
12492    static_assert_uimm_bits!(N, 2);
12493    unsafe {
12494        match N & 0b11 {
12495            0 => simd_shuffle!(a, b, [0, 1, 2, 3]),
12496            1 => simd_shuffle!(a, b, [1, 2, 3, 4]),
12497            2 => simd_shuffle!(a, b, [2, 3, 4, 5]),
12498            3 => simd_shuffle!(a, b, [3, 4, 5, 6]),
12499            _ => unreachable_unchecked(),
12500        }
12501    }
12502}
12503#[doc = "Extract vector from pair of vectors"]
12504#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vext_s16)"]
12505#[inline]
12506#[target_feature(enable = "neon")]
12507#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12508#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 3))]
12509#[cfg_attr(
12510    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12511    assert_instr(ext, N = 3)
12512)]
12513#[rustc_legacy_const_generics(2)]
12514#[cfg_attr(
12515    not(target_arch = "arm"),
12516    stable(feature = "neon_intrinsics", since = "1.59.0")
12517)]
12518#[cfg_attr(
12519    target_arch = "arm",
12520    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12521)]
12522pub fn vext_s16<const N: i32>(a: int16x4_t, b: int16x4_t) -> int16x4_t {
12523    static_assert_uimm_bits!(N, 2);
12524    unsafe {
12525        match N & 0b11 {
12526            0 => simd_shuffle!(a, b, [0, 1, 2, 3]),
12527            1 => simd_shuffle!(a, b, [1, 2, 3, 4]),
12528            2 => simd_shuffle!(a, b, [2, 3, 4, 5]),
12529            3 => simd_shuffle!(a, b, [3, 4, 5, 6]),
12530            _ => unreachable_unchecked(),
12531        }
12532    }
12533}
12534#[doc = "Extract vector from pair of vectors"]
12535#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vextq_s32)"]
12536#[inline]
12537#[target_feature(enable = "neon")]
12538#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12539#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 3))]
12540#[cfg_attr(
12541    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12542    assert_instr(ext, N = 3)
12543)]
12544#[rustc_legacy_const_generics(2)]
12545#[cfg_attr(
12546    not(target_arch = "arm"),
12547    stable(feature = "neon_intrinsics", since = "1.59.0")
12548)]
12549#[cfg_attr(
12550    target_arch = "arm",
12551    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12552)]
12553pub fn vextq_s32<const N: i32>(a: int32x4_t, b: int32x4_t) -> int32x4_t {
12554    static_assert_uimm_bits!(N, 2);
12555    unsafe {
12556        match N & 0b11 {
12557            0 => simd_shuffle!(a, b, [0, 1, 2, 3]),
12558            1 => simd_shuffle!(a, b, [1, 2, 3, 4]),
12559            2 => simd_shuffle!(a, b, [2, 3, 4, 5]),
12560            3 => simd_shuffle!(a, b, [3, 4, 5, 6]),
12561            _ => unreachable_unchecked(),
12562        }
12563    }
12564}
12565#[doc = "Extract vector from pair of vectors"]
12566#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vext_u16)"]
12567#[inline]
12568#[target_feature(enable = "neon")]
12569#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12570#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 3))]
12571#[cfg_attr(
12572    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12573    assert_instr(ext, N = 3)
12574)]
12575#[rustc_legacy_const_generics(2)]
12576#[cfg_attr(
12577    not(target_arch = "arm"),
12578    stable(feature = "neon_intrinsics", since = "1.59.0")
12579)]
12580#[cfg_attr(
12581    target_arch = "arm",
12582    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12583)]
12584pub fn vext_u16<const N: i32>(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
12585    static_assert_uimm_bits!(N, 2);
12586    unsafe {
12587        match N & 0b11 {
12588            0 => simd_shuffle!(a, b, [0, 1, 2, 3]),
12589            1 => simd_shuffle!(a, b, [1, 2, 3, 4]),
12590            2 => simd_shuffle!(a, b, [2, 3, 4, 5]),
12591            3 => simd_shuffle!(a, b, [3, 4, 5, 6]),
12592            _ => unreachable_unchecked(),
12593        }
12594    }
12595}
12596#[doc = "Extract vector from pair of vectors"]
12597#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vextq_u32)"]
12598#[inline]
12599#[target_feature(enable = "neon")]
12600#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12601#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 3))]
12602#[cfg_attr(
12603    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12604    assert_instr(ext, N = 3)
12605)]
12606#[rustc_legacy_const_generics(2)]
12607#[cfg_attr(
12608    not(target_arch = "arm"),
12609    stable(feature = "neon_intrinsics", since = "1.59.0")
12610)]
12611#[cfg_attr(
12612    target_arch = "arm",
12613    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12614)]
12615pub fn vextq_u32<const N: i32>(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
12616    static_assert_uimm_bits!(N, 2);
12617    unsafe {
12618        match N & 0b11 {
12619            0 => simd_shuffle!(a, b, [0, 1, 2, 3]),
12620            1 => simd_shuffle!(a, b, [1, 2, 3, 4]),
12621            2 => simd_shuffle!(a, b, [2, 3, 4, 5]),
12622            3 => simd_shuffle!(a, b, [3, 4, 5, 6]),
12623            _ => unreachable_unchecked(),
12624        }
12625    }
12626}
12627#[doc = "Extract vector from pair of vectors"]
12628#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vext_p16)"]
12629#[inline]
12630#[target_feature(enable = "neon")]
12631#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12632#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 3))]
12633#[cfg_attr(
12634    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12635    assert_instr(ext, N = 3)
12636)]
12637#[rustc_legacy_const_generics(2)]
12638#[cfg_attr(
12639    not(target_arch = "arm"),
12640    stable(feature = "neon_intrinsics", since = "1.59.0")
12641)]
12642#[cfg_attr(
12643    target_arch = "arm",
12644    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12645)]
12646pub fn vext_p16<const N: i32>(a: poly16x4_t, b: poly16x4_t) -> poly16x4_t {
12647    static_assert_uimm_bits!(N, 2);
12648    unsafe {
12649        match N & 0b11 {
12650            0 => simd_shuffle!(a, b, [0, 1, 2, 3]),
12651            1 => simd_shuffle!(a, b, [1, 2, 3, 4]),
12652            2 => simd_shuffle!(a, b, [2, 3, 4, 5]),
12653            3 => simd_shuffle!(a, b, [3, 4, 5, 6]),
12654            _ => unreachable_unchecked(),
12655        }
12656    }
12657}
12658#[doc = "Extract vector from pair of vectors"]
12659#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vextq_s64)"]
12660#[inline]
12661#[target_feature(enable = "neon")]
12662#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12663#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmov, N = 1))]
12664#[cfg_attr(
12665    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12666    assert_instr(ext, N = 1)
12667)]
12668#[rustc_legacy_const_generics(2)]
12669#[cfg_attr(
12670    not(target_arch = "arm"),
12671    stable(feature = "neon_intrinsics", since = "1.59.0")
12672)]
12673#[cfg_attr(
12674    target_arch = "arm",
12675    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12676)]
12677pub fn vextq_s64<const N: i32>(a: int64x2_t, b: int64x2_t) -> int64x2_t {
12678    static_assert_uimm_bits!(N, 1);
12679    unsafe {
12680        match N & 0b1 {
12681            0 => simd_shuffle!(a, b, [0, 1]),
12682            1 => simd_shuffle!(a, b, [1, 2]),
12683            _ => unreachable_unchecked(),
12684        }
12685    }
12686}
12687#[doc = "Extract vector from pair of vectors"]
12688#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vextq_u64)"]
12689#[inline]
12690#[target_feature(enable = "neon")]
12691#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12692#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmov, N = 1))]
12693#[cfg_attr(
12694    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12695    assert_instr(ext, N = 1)
12696)]
12697#[rustc_legacy_const_generics(2)]
12698#[cfg_attr(
12699    not(target_arch = "arm"),
12700    stable(feature = "neon_intrinsics", since = "1.59.0")
12701)]
12702#[cfg_attr(
12703    target_arch = "arm",
12704    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12705)]
12706pub fn vextq_u64<const N: i32>(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
12707    static_assert_uimm_bits!(N, 1);
12708    unsafe {
12709        match N & 0b1 {
12710            0 => simd_shuffle!(a, b, [0, 1]),
12711            1 => simd_shuffle!(a, b, [1, 2]),
12712            _ => unreachable_unchecked(),
12713        }
12714    }
12715}
12716#[doc = "Extract vector from pair of vectors"]
12717#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vextq_s8)"]
12718#[inline]
12719#[target_feature(enable = "neon")]
12720#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12721#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 15))]
12722#[cfg_attr(
12723    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12724    assert_instr(ext, N = 15)
12725)]
12726#[rustc_legacy_const_generics(2)]
12727#[cfg_attr(
12728    not(target_arch = "arm"),
12729    stable(feature = "neon_intrinsics", since = "1.59.0")
12730)]
12731#[cfg_attr(
12732    target_arch = "arm",
12733    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12734)]
12735pub fn vextq_s8<const N: i32>(a: int8x16_t, b: int8x16_t) -> int8x16_t {
12736    static_assert_uimm_bits!(N, 4);
12737    unsafe {
12738        match N & 0b1111 {
12739            0 => simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]),
12740            1 => simd_shuffle!(
12741                a,
12742                b,
12743                [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
12744            ),
12745            2 => simd_shuffle!(
12746                a,
12747                b,
12748                [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]
12749            ),
12750            3 => simd_shuffle!(
12751                a,
12752                b,
12753                [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]
12754            ),
12755            4 => simd_shuffle!(
12756                a,
12757                b,
12758                [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
12759            ),
12760            5 => simd_shuffle!(
12761                a,
12762                b,
12763                [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
12764            ),
12765            6 => simd_shuffle!(
12766                a,
12767                b,
12768                [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21]
12769            ),
12770            7 => simd_shuffle!(
12771                a,
12772                b,
12773                [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22]
12774            ),
12775            8 => simd_shuffle!(
12776                a,
12777                b,
12778                [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]
12779            ),
12780            9 => simd_shuffle!(
12781                a,
12782                b,
12783                [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24]
12784            ),
12785            10 => simd_shuffle!(
12786                a,
12787                b,
12788                [10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25]
12789            ),
12790            11 => simd_shuffle!(
12791                a,
12792                b,
12793                [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]
12794            ),
12795            12 => simd_shuffle!(
12796                a,
12797                b,
12798                [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27]
12799            ),
12800            13 => simd_shuffle!(
12801                a,
12802                b,
12803                [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28]
12804            ),
12805            14 => simd_shuffle!(
12806                a,
12807                b,
12808                [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]
12809            ),
12810            15 => simd_shuffle!(
12811                a,
12812                b,
12813                [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]
12814            ),
12815            _ => unreachable_unchecked(),
12816        }
12817    }
12818}
12819#[doc = "Extract vector from pair of vectors"]
12820#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vextq_u8)"]
12821#[inline]
12822#[target_feature(enable = "neon")]
12823#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12824#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 15))]
12825#[cfg_attr(
12826    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12827    assert_instr(ext, N = 15)
12828)]
12829#[rustc_legacy_const_generics(2)]
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 vextq_u8<const N: i32>(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
12839    static_assert_uimm_bits!(N, 4);
12840    unsafe {
12841        match N & 0b1111 {
12842            0 => simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]),
12843            1 => simd_shuffle!(
12844                a,
12845                b,
12846                [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
12847            ),
12848            2 => simd_shuffle!(
12849                a,
12850                b,
12851                [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]
12852            ),
12853            3 => simd_shuffle!(
12854                a,
12855                b,
12856                [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]
12857            ),
12858            4 => simd_shuffle!(
12859                a,
12860                b,
12861                [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
12862            ),
12863            5 => simd_shuffle!(
12864                a,
12865                b,
12866                [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
12867            ),
12868            6 => simd_shuffle!(
12869                a,
12870                b,
12871                [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21]
12872            ),
12873            7 => simd_shuffle!(
12874                a,
12875                b,
12876                [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22]
12877            ),
12878            8 => simd_shuffle!(
12879                a,
12880                b,
12881                [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]
12882            ),
12883            9 => simd_shuffle!(
12884                a,
12885                b,
12886                [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24]
12887            ),
12888            10 => simd_shuffle!(
12889                a,
12890                b,
12891                [10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25]
12892            ),
12893            11 => simd_shuffle!(
12894                a,
12895                b,
12896                [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]
12897            ),
12898            12 => simd_shuffle!(
12899                a,
12900                b,
12901                [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27]
12902            ),
12903            13 => simd_shuffle!(
12904                a,
12905                b,
12906                [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28]
12907            ),
12908            14 => simd_shuffle!(
12909                a,
12910                b,
12911                [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]
12912            ),
12913            15 => simd_shuffle!(
12914                a,
12915                b,
12916                [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]
12917            ),
12918            _ => unreachable_unchecked(),
12919        }
12920    }
12921}
12922#[doc = "Extract vector from pair of vectors"]
12923#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vextq_p8)"]
12924#[inline]
12925#[target_feature(enable = "neon")]
12926#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12927#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 15))]
12928#[cfg_attr(
12929    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12930    assert_instr(ext, N = 15)
12931)]
12932#[rustc_legacy_const_generics(2)]
12933#[cfg_attr(
12934    not(target_arch = "arm"),
12935    stable(feature = "neon_intrinsics", since = "1.59.0")
12936)]
12937#[cfg_attr(
12938    target_arch = "arm",
12939    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12940)]
12941pub fn vextq_p8<const N: i32>(a: poly8x16_t, b: poly8x16_t) -> poly8x16_t {
12942    static_assert_uimm_bits!(N, 4);
12943    unsafe {
12944        match N & 0b1111 {
12945            0 => simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]),
12946            1 => simd_shuffle!(
12947                a,
12948                b,
12949                [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
12950            ),
12951            2 => simd_shuffle!(
12952                a,
12953                b,
12954                [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]
12955            ),
12956            3 => simd_shuffle!(
12957                a,
12958                b,
12959                [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]
12960            ),
12961            4 => simd_shuffle!(
12962                a,
12963                b,
12964                [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
12965            ),
12966            5 => simd_shuffle!(
12967                a,
12968                b,
12969                [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
12970            ),
12971            6 => simd_shuffle!(
12972                a,
12973                b,
12974                [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21]
12975            ),
12976            7 => simd_shuffle!(
12977                a,
12978                b,
12979                [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22]
12980            ),
12981            8 => simd_shuffle!(
12982                a,
12983                b,
12984                [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]
12985            ),
12986            9 => simd_shuffle!(
12987                a,
12988                b,
12989                [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24]
12990            ),
12991            10 => simd_shuffle!(
12992                a,
12993                b,
12994                [10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25]
12995            ),
12996            11 => simd_shuffle!(
12997                a,
12998                b,
12999                [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]
13000            ),
13001            12 => simd_shuffle!(
13002                a,
13003                b,
13004                [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27]
13005            ),
13006            13 => simd_shuffle!(
13007                a,
13008                b,
13009                [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28]
13010            ),
13011            14 => simd_shuffle!(
13012                a,
13013                b,
13014                [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]
13015            ),
13016            15 => simd_shuffle!(
13017                a,
13018                b,
13019                [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]
13020            ),
13021            _ => unreachable_unchecked(),
13022        }
13023    }
13024}
13025#[doc = "Floating-point fused Multiply-Add to accumulator (vector)"]
13026#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfma_f16)"]
13027#[inline]
13028#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
13029#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vfma))]
13030#[cfg_attr(
13031    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13032    assert_instr(fmla)
13033)]
13034#[target_feature(enable = "neon,fp16")]
13035#[cfg_attr(
13036    not(target_arch = "arm"),
13037    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
13038)]
13039#[cfg_attr(
13040    target_arch = "arm",
13041    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13042)]
13043#[cfg(not(target_arch = "arm64ec"))]
13044pub fn vfma_f16(a: float16x4_t, b: float16x4_t, c: float16x4_t) -> float16x4_t {
13045    unsafe { simd_fma(b, c, a) }
13046}
13047#[doc = "Floating-point fused Multiply-Add to accumulator (vector)"]
13048#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfmaq_f16)"]
13049#[inline]
13050#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
13051#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vfma))]
13052#[cfg_attr(
13053    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13054    assert_instr(fmla)
13055)]
13056#[target_feature(enable = "neon,fp16")]
13057#[cfg_attr(
13058    not(target_arch = "arm"),
13059    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
13060)]
13061#[cfg_attr(
13062    target_arch = "arm",
13063    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13064)]
13065#[cfg(not(target_arch = "arm64ec"))]
13066pub fn vfmaq_f16(a: float16x8_t, b: float16x8_t, c: float16x8_t) -> float16x8_t {
13067    unsafe { simd_fma(b, c, a) }
13068}
13069#[doc = "Floating-point fused Multiply-Add to accumulator(vector)"]
13070#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfma_f32)"]
13071#[inline]
13072#[target_feature(enable = "neon")]
13073#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
13074#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vfma))]
13075#[cfg_attr(
13076    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13077    assert_instr(fmla)
13078)]
13079#[cfg_attr(
13080    not(target_arch = "arm"),
13081    stable(feature = "neon_intrinsics", since = "1.59.0")
13082)]
13083#[cfg_attr(
13084    target_arch = "arm",
13085    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13086)]
13087pub fn vfma_f32(a: float32x2_t, b: float32x2_t, c: float32x2_t) -> float32x2_t {
13088    unsafe { simd_fma(b, c, a) }
13089}
13090#[doc = "Floating-point fused Multiply-Add to accumulator(vector)"]
13091#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfmaq_f32)"]
13092#[inline]
13093#[target_feature(enable = "neon")]
13094#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
13095#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vfma))]
13096#[cfg_attr(
13097    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13098    assert_instr(fmla)
13099)]
13100#[cfg_attr(
13101    not(target_arch = "arm"),
13102    stable(feature = "neon_intrinsics", since = "1.59.0")
13103)]
13104#[cfg_attr(
13105    target_arch = "arm",
13106    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13107)]
13108pub fn vfmaq_f32(a: float32x4_t, b: float32x4_t, c: float32x4_t) -> float32x4_t {
13109    unsafe { simd_fma(b, c, a) }
13110}
13111#[doc = "Floating-point fused Multiply-Add to accumulator(vector)"]
13112#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfma_n_f32)"]
13113#[inline]
13114#[target_feature(enable = "neon")]
13115#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
13116#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vfma))]
13117#[cfg_attr(
13118    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13119    assert_instr(fmla)
13120)]
13121#[cfg_attr(
13122    not(target_arch = "arm"),
13123    stable(feature = "neon_intrinsics", since = "1.59.0")
13124)]
13125#[cfg_attr(
13126    target_arch = "arm",
13127    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13128)]
13129pub fn vfma_n_f32(a: float32x2_t, b: float32x2_t, c: f32) -> float32x2_t {
13130    vfma_f32(a, b, vdup_n_f32_vfp4(c))
13131}
13132#[doc = "Floating-point fused Multiply-Add to accumulator(vector)"]
13133#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfmaq_n_f32)"]
13134#[inline]
13135#[target_feature(enable = "neon")]
13136#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
13137#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vfma))]
13138#[cfg_attr(
13139    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13140    assert_instr(fmla)
13141)]
13142#[cfg_attr(
13143    not(target_arch = "arm"),
13144    stable(feature = "neon_intrinsics", since = "1.59.0")
13145)]
13146#[cfg_attr(
13147    target_arch = "arm",
13148    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13149)]
13150pub fn vfmaq_n_f32(a: float32x4_t, b: float32x4_t, c: f32) -> float32x4_t {
13151    vfmaq_f32(a, b, vdupq_n_f32_vfp4(c))
13152}
13153#[doc = "Floating-point fused multiply-subtract from accumulator"]
13154#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfms_f16)"]
13155#[inline]
13156#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
13157#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
13158#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
13159#[cfg_attr(
13160    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13161    assert_instr(fmls)
13162)]
13163#[target_feature(enable = "neon,fp16")]
13164#[cfg_attr(
13165    not(target_arch = "arm"),
13166    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
13167)]
13168#[cfg_attr(
13169    target_arch = "arm",
13170    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13171)]
13172#[cfg(not(target_arch = "arm64ec"))]
13173pub fn vfms_f16(a: float16x4_t, b: float16x4_t, c: float16x4_t) -> float16x4_t {
13174    unsafe {
13175        let b: float16x4_t = simd_neg(b);
13176        vfma_f16(a, b, c)
13177    }
13178}
13179#[doc = "Floating-point fused multiply-subtract from accumulator"]
13180#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfmsq_f16)"]
13181#[inline]
13182#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
13183#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
13184#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
13185#[cfg_attr(
13186    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13187    assert_instr(fmls)
13188)]
13189#[target_feature(enable = "neon,fp16")]
13190#[cfg_attr(
13191    not(target_arch = "arm"),
13192    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
13193)]
13194#[cfg_attr(
13195    target_arch = "arm",
13196    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13197)]
13198#[cfg(not(target_arch = "arm64ec"))]
13199pub fn vfmsq_f16(a: float16x8_t, b: float16x8_t, c: float16x8_t) -> float16x8_t {
13200    unsafe {
13201        let b: float16x8_t = simd_neg(b);
13202        vfmaq_f16(a, b, c)
13203    }
13204}
13205#[doc = "Floating-point fused multiply-subtract from accumulator"]
13206#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfms_f32)"]
13207#[inline]
13208#[target_feature(enable = "neon")]
13209#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
13210#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vfms))]
13211#[cfg_attr(
13212    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13213    assert_instr(fmls)
13214)]
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 vfms_f32(a: float32x2_t, b: float32x2_t, c: float32x2_t) -> float32x2_t {
13224    unsafe {
13225        let b: float32x2_t = simd_neg(b);
13226        vfma_f32(a, b, c)
13227    }
13228}
13229#[doc = "Floating-point fused multiply-subtract from accumulator"]
13230#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfmsq_f32)"]
13231#[inline]
13232#[target_feature(enable = "neon")]
13233#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
13234#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vfms))]
13235#[cfg_attr(
13236    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13237    assert_instr(fmls)
13238)]
13239#[cfg_attr(
13240    not(target_arch = "arm"),
13241    stable(feature = "neon_intrinsics", since = "1.59.0")
13242)]
13243#[cfg_attr(
13244    target_arch = "arm",
13245    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13246)]
13247pub fn vfmsq_f32(a: float32x4_t, b: float32x4_t, c: float32x4_t) -> float32x4_t {
13248    unsafe {
13249        let b: float32x4_t = simd_neg(b);
13250        vfmaq_f32(a, b, c)
13251    }
13252}
13253#[doc = "Floating-point fused Multiply-subtract to accumulator(vector)"]
13254#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfms_n_f32)"]
13255#[inline]
13256#[target_feature(enable = "neon")]
13257#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
13258#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vfms))]
13259#[cfg_attr(
13260    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13261    assert_instr(fmls)
13262)]
13263#[cfg_attr(
13264    not(target_arch = "arm"),
13265    stable(feature = "neon_intrinsics", since = "1.59.0")
13266)]
13267#[cfg_attr(
13268    target_arch = "arm",
13269    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13270)]
13271pub fn vfms_n_f32(a: float32x2_t, b: float32x2_t, c: f32) -> float32x2_t {
13272    vfms_f32(a, b, vdup_n_f32_vfp4(c))
13273}
13274#[doc = "Floating-point fused Multiply-subtract to accumulator(vector)"]
13275#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfmsq_n_f32)"]
13276#[inline]
13277#[target_feature(enable = "neon")]
13278#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
13279#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vfms))]
13280#[cfg_attr(
13281    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13282    assert_instr(fmls)
13283)]
13284#[cfg_attr(
13285    not(target_arch = "arm"),
13286    stable(feature = "neon_intrinsics", since = "1.59.0")
13287)]
13288#[cfg_attr(
13289    target_arch = "arm",
13290    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13291)]
13292pub fn vfmsq_n_f32(a: float32x4_t, b: float32x4_t, c: f32) -> float32x4_t {
13293    vfmsq_f32(a, b, vdupq_n_f32_vfp4(c))
13294}
13295#[doc = "Duplicate vector element to vector"]
13296#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_high_f16)"]
13297#[inline]
13298#[target_feature(enable = "neon")]
13299#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13300#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
13301#[cfg_attr(
13302    not(target_arch = "arm"),
13303    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
13304)]
13305#[cfg_attr(
13306    target_arch = "arm",
13307    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13308)]
13309#[cfg(not(target_arch = "arm64ec"))]
13310#[cfg_attr(test, assert_instr(nop))]
13311pub fn vget_high_f16(a: float16x8_t) -> float16x4_t {
13312    unsafe { simd_shuffle!(a, a, [4, 5, 6, 7]) }
13313}
13314#[doc = "Duplicate vector element to vector"]
13315#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_low_f16)"]
13316#[inline]
13317#[target_feature(enable = "neon")]
13318#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13319#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
13320#[cfg_attr(
13321    not(target_arch = "arm"),
13322    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
13323)]
13324#[cfg_attr(
13325    target_arch = "arm",
13326    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13327)]
13328#[cfg(not(target_arch = "arm64ec"))]
13329#[cfg_attr(test, assert_instr(nop))]
13330pub fn vget_low_f16(a: float16x8_t) -> float16x4_t {
13331    unsafe { simd_shuffle!(a, a, [0, 1, 2, 3]) }
13332}
13333#[doc = "Duplicate vector element to vector or scalar"]
13334#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_high_f32)"]
13335#[inline]
13336#[target_feature(enable = "neon")]
13337#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13338#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
13339#[cfg_attr(
13340    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13341    assert_instr(ext)
13342)]
13343#[cfg_attr(
13344    not(target_arch = "arm"),
13345    stable(feature = "neon_intrinsics", since = "1.59.0")
13346)]
13347#[cfg_attr(
13348    target_arch = "arm",
13349    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13350)]
13351pub fn vget_high_f32(a: float32x4_t) -> float32x2_t {
13352    unsafe { simd_shuffle!(a, a, [2, 3]) }
13353}
13354#[doc = "Duplicate vector element to vector or scalar"]
13355#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_high_p16)"]
13356#[inline]
13357#[target_feature(enable = "neon")]
13358#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13359#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
13360#[cfg_attr(
13361    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13362    assert_instr(ext)
13363)]
13364#[cfg_attr(
13365    not(target_arch = "arm"),
13366    stable(feature = "neon_intrinsics", since = "1.59.0")
13367)]
13368#[cfg_attr(
13369    target_arch = "arm",
13370    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13371)]
13372pub fn vget_high_p16(a: poly16x8_t) -> poly16x4_t {
13373    unsafe { simd_shuffle!(a, a, [4, 5, 6, 7]) }
13374}
13375#[doc = "Duplicate vector element to vector or scalar"]
13376#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_high_p8)"]
13377#[inline]
13378#[target_feature(enable = "neon")]
13379#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13380#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
13381#[cfg_attr(
13382    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13383    assert_instr(ext)
13384)]
13385#[cfg_attr(
13386    not(target_arch = "arm"),
13387    stable(feature = "neon_intrinsics", since = "1.59.0")
13388)]
13389#[cfg_attr(
13390    target_arch = "arm",
13391    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13392)]
13393pub fn vget_high_p8(a: poly8x16_t) -> poly8x8_t {
13394    unsafe { simd_shuffle!(a, a, [8, 9, 10, 11, 12, 13, 14, 15]) }
13395}
13396#[doc = "Duplicate vector element to vector or scalar"]
13397#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_high_s16)"]
13398#[inline]
13399#[target_feature(enable = "neon")]
13400#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13401#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
13402#[cfg_attr(
13403    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13404    assert_instr(ext)
13405)]
13406#[cfg_attr(
13407    not(target_arch = "arm"),
13408    stable(feature = "neon_intrinsics", since = "1.59.0")
13409)]
13410#[cfg_attr(
13411    target_arch = "arm",
13412    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13413)]
13414pub fn vget_high_s16(a: int16x8_t) -> int16x4_t {
13415    unsafe { simd_shuffle!(a, a, [4, 5, 6, 7]) }
13416}
13417#[doc = "Duplicate vector element to vector or scalar"]
13418#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_high_s32)"]
13419#[inline]
13420#[target_feature(enable = "neon")]
13421#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13422#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
13423#[cfg_attr(
13424    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13425    assert_instr(ext)
13426)]
13427#[cfg_attr(
13428    not(target_arch = "arm"),
13429    stable(feature = "neon_intrinsics", since = "1.59.0")
13430)]
13431#[cfg_attr(
13432    target_arch = "arm",
13433    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13434)]
13435pub fn vget_high_s32(a: int32x4_t) -> int32x2_t {
13436    unsafe { simd_shuffle!(a, a, [2, 3]) }
13437}
13438#[doc = "Duplicate vector element to vector or scalar"]
13439#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_high_s8)"]
13440#[inline]
13441#[target_feature(enable = "neon")]
13442#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13443#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
13444#[cfg_attr(
13445    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13446    assert_instr(ext)
13447)]
13448#[cfg_attr(
13449    not(target_arch = "arm"),
13450    stable(feature = "neon_intrinsics", since = "1.59.0")
13451)]
13452#[cfg_attr(
13453    target_arch = "arm",
13454    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13455)]
13456pub fn vget_high_s8(a: int8x16_t) -> int8x8_t {
13457    unsafe { simd_shuffle!(a, a, [8, 9, 10, 11, 12, 13, 14, 15]) }
13458}
13459#[doc = "Duplicate vector element to vector or scalar"]
13460#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_high_u16)"]
13461#[inline]
13462#[target_feature(enable = "neon")]
13463#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13464#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
13465#[cfg_attr(
13466    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13467    assert_instr(ext)
13468)]
13469#[cfg_attr(
13470    not(target_arch = "arm"),
13471    stable(feature = "neon_intrinsics", since = "1.59.0")
13472)]
13473#[cfg_attr(
13474    target_arch = "arm",
13475    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13476)]
13477pub fn vget_high_u16(a: uint16x8_t) -> uint16x4_t {
13478    unsafe { simd_shuffle!(a, a, [4, 5, 6, 7]) }
13479}
13480#[doc = "Duplicate vector element to vector or scalar"]
13481#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_high_u32)"]
13482#[inline]
13483#[target_feature(enable = "neon")]
13484#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13485#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
13486#[cfg_attr(
13487    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13488    assert_instr(ext)
13489)]
13490#[cfg_attr(
13491    not(target_arch = "arm"),
13492    stable(feature = "neon_intrinsics", since = "1.59.0")
13493)]
13494#[cfg_attr(
13495    target_arch = "arm",
13496    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13497)]
13498pub fn vget_high_u32(a: uint32x4_t) -> uint32x2_t {
13499    unsafe { simd_shuffle!(a, a, [2, 3]) }
13500}
13501#[doc = "Duplicate vector element to vector or scalar"]
13502#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_high_u8)"]
13503#[inline]
13504#[target_feature(enable = "neon")]
13505#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13506#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
13507#[cfg_attr(
13508    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13509    assert_instr(ext)
13510)]
13511#[cfg_attr(
13512    not(target_arch = "arm"),
13513    stable(feature = "neon_intrinsics", since = "1.59.0")
13514)]
13515#[cfg_attr(
13516    target_arch = "arm",
13517    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13518)]
13519pub fn vget_high_u8(a: uint8x16_t) -> uint8x8_t {
13520    unsafe { simd_shuffle!(a, a, [8, 9, 10, 11, 12, 13, 14, 15]) }
13521}
13522#[doc = "Duplicate vector element to vector or scalar"]
13523#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_high_s64)"]
13524#[inline]
13525#[target_feature(enable = "neon")]
13526#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13527#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
13528#[cfg_attr(
13529    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13530    assert_instr(ext)
13531)]
13532#[cfg_attr(
13533    not(target_arch = "arm"),
13534    stable(feature = "neon_intrinsics", since = "1.59.0")
13535)]
13536#[cfg_attr(
13537    target_arch = "arm",
13538    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13539)]
13540pub fn vget_high_s64(a: int64x2_t) -> int64x1_t {
13541    unsafe { int64x1_t([simd_extract!(a, 1)]) }
13542}
13543#[doc = "Duplicate vector element to vector or scalar"]
13544#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_high_u64)"]
13545#[inline]
13546#[target_feature(enable = "neon")]
13547#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13548#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
13549#[cfg_attr(
13550    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13551    assert_instr(ext)
13552)]
13553#[cfg_attr(
13554    not(target_arch = "arm"),
13555    stable(feature = "neon_intrinsics", since = "1.59.0")
13556)]
13557#[cfg_attr(
13558    target_arch = "arm",
13559    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13560)]
13561pub fn vget_high_u64(a: uint64x2_t) -> uint64x1_t {
13562    unsafe { uint64x1_t([simd_extract!(a, 1)]) }
13563}
13564#[doc = "Duplicate vector element to scalar"]
13565#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_lane_f16)"]
13566#[inline]
13567#[target_feature(enable = "neon")]
13568#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13569#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
13570#[cfg_attr(
13571    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13572    assert_instr(nop, LANE = 0)
13573)]
13574#[rustc_legacy_const_generics(1)]
13575#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
13576#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
13577#[cfg(not(target_arch = "arm64ec"))]
13578pub fn vget_lane_f16<const LANE: i32>(a: float16x4_t) -> f16 {
13579    static_assert_uimm_bits!(LANE, 2);
13580    unsafe { simd_extract!(a, LANE as u32) }
13581}
13582#[doc = "Duplicate vector element to scalar"]
13583#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vgetq_lane_f16)"]
13584#[inline]
13585#[target_feature(enable = "neon")]
13586#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13587#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
13588#[cfg_attr(
13589    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13590    assert_instr(nop, LANE = 0)
13591)]
13592#[rustc_legacy_const_generics(1)]
13593#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
13594#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
13595#[cfg(not(target_arch = "arm64ec"))]
13596pub fn vgetq_lane_f16<const LANE: i32>(a: float16x8_t) -> f16 {
13597    static_assert_uimm_bits!(LANE, 3);
13598    unsafe { simd_extract!(a, LANE as u32) }
13599}
13600#[doc = "Move vector element to general-purpose register"]
13601#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_lane_f32)"]
13602#[inline]
13603#[target_feature(enable = "neon")]
13604#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13605#[rustc_legacy_const_generics(1)]
13606#[cfg_attr(test, assert_instr(nop, IMM5 = 1))]
13607#[cfg_attr(
13608    not(target_arch = "arm"),
13609    stable(feature = "neon_intrinsics", since = "1.59.0")
13610)]
13611#[cfg_attr(
13612    target_arch = "arm",
13613    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13614)]
13615pub fn vget_lane_f32<const IMM5: i32>(v: float32x2_t) -> f32 {
13616    static_assert_uimm_bits!(IMM5, 1);
13617    unsafe { simd_extract!(v, IMM5 as u32) }
13618}
13619#[doc = "Move vector element to general-purpose register"]
13620#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_lane_p16)"]
13621#[inline]
13622#[target_feature(enable = "neon")]
13623#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13624#[rustc_legacy_const_generics(1)]
13625#[cfg_attr(test, assert_instr(nop, IMM5 = 2))]
13626#[cfg_attr(
13627    not(target_arch = "arm"),
13628    stable(feature = "neon_intrinsics", since = "1.59.0")
13629)]
13630#[cfg_attr(
13631    target_arch = "arm",
13632    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13633)]
13634pub fn vget_lane_p16<const IMM5: i32>(v: poly16x4_t) -> p16 {
13635    static_assert_uimm_bits!(IMM5, 2);
13636    unsafe { simd_extract!(v, IMM5 as u32) }
13637}
13638#[doc = "Move vector element to general-purpose register"]
13639#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_lane_p8)"]
13640#[inline]
13641#[target_feature(enable = "neon")]
13642#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13643#[rustc_legacy_const_generics(1)]
13644#[cfg_attr(test, assert_instr(nop, IMM5 = 2))]
13645#[cfg_attr(
13646    not(target_arch = "arm"),
13647    stable(feature = "neon_intrinsics", since = "1.59.0")
13648)]
13649#[cfg_attr(
13650    target_arch = "arm",
13651    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13652)]
13653pub fn vget_lane_p8<const IMM5: i32>(v: poly8x8_t) -> p8 {
13654    static_assert_uimm_bits!(IMM5, 3);
13655    unsafe { simd_extract!(v, IMM5 as u32) }
13656}
13657#[doc = "Move vector element to general-purpose register"]
13658#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_lane_s16)"]
13659#[inline]
13660#[target_feature(enable = "neon")]
13661#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13662#[rustc_legacy_const_generics(1)]
13663#[cfg_attr(test, assert_instr(nop, IMM5 = 2))]
13664#[cfg_attr(
13665    not(target_arch = "arm"),
13666    stable(feature = "neon_intrinsics", since = "1.59.0")
13667)]
13668#[cfg_attr(
13669    target_arch = "arm",
13670    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13671)]
13672pub fn vget_lane_s16<const IMM5: i32>(v: int16x4_t) -> i16 {
13673    static_assert_uimm_bits!(IMM5, 2);
13674    unsafe { simd_extract!(v, IMM5 as u32) }
13675}
13676#[doc = "Move vector element to general-purpose register"]
13677#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_lane_s32)"]
13678#[inline]
13679#[target_feature(enable = "neon")]
13680#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13681#[rustc_legacy_const_generics(1)]
13682#[cfg_attr(test, assert_instr(nop, IMM5 = 1))]
13683#[cfg_attr(
13684    not(target_arch = "arm"),
13685    stable(feature = "neon_intrinsics", since = "1.59.0")
13686)]
13687#[cfg_attr(
13688    target_arch = "arm",
13689    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13690)]
13691pub fn vget_lane_s32<const IMM5: i32>(v: int32x2_t) -> i32 {
13692    static_assert_uimm_bits!(IMM5, 1);
13693    unsafe { simd_extract!(v, IMM5 as u32) }
13694}
13695#[doc = "Move vector element to general-purpose register"]
13696#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_lane_s8)"]
13697#[inline]
13698#[target_feature(enable = "neon")]
13699#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13700#[rustc_legacy_const_generics(1)]
13701#[cfg_attr(test, assert_instr(nop, IMM5 = 2))]
13702#[cfg_attr(
13703    not(target_arch = "arm"),
13704    stable(feature = "neon_intrinsics", since = "1.59.0")
13705)]
13706#[cfg_attr(
13707    target_arch = "arm",
13708    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13709)]
13710pub fn vget_lane_s8<const IMM5: i32>(v: int8x8_t) -> i8 {
13711    static_assert_uimm_bits!(IMM5, 3);
13712    unsafe { simd_extract!(v, IMM5 as u32) }
13713}
13714#[doc = "Move vector element to general-purpose register"]
13715#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_lane_u16)"]
13716#[inline]
13717#[target_feature(enable = "neon")]
13718#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13719#[rustc_legacy_const_generics(1)]
13720#[cfg_attr(test, assert_instr(nop, IMM5 = 2))]
13721#[cfg_attr(
13722    not(target_arch = "arm"),
13723    stable(feature = "neon_intrinsics", since = "1.59.0")
13724)]
13725#[cfg_attr(
13726    target_arch = "arm",
13727    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13728)]
13729pub fn vget_lane_u16<const IMM5: i32>(v: uint16x4_t) -> u16 {
13730    static_assert_uimm_bits!(IMM5, 2);
13731    unsafe { simd_extract!(v, IMM5 as u32) }
13732}
13733#[doc = "Move vector element to general-purpose register"]
13734#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_lane_u32)"]
13735#[inline]
13736#[target_feature(enable = "neon")]
13737#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13738#[rustc_legacy_const_generics(1)]
13739#[cfg_attr(test, assert_instr(nop, IMM5 = 1))]
13740#[cfg_attr(
13741    not(target_arch = "arm"),
13742    stable(feature = "neon_intrinsics", since = "1.59.0")
13743)]
13744#[cfg_attr(
13745    target_arch = "arm",
13746    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13747)]
13748pub fn vget_lane_u32<const IMM5: i32>(v: uint32x2_t) -> u32 {
13749    static_assert_uimm_bits!(IMM5, 1);
13750    unsafe { simd_extract!(v, IMM5 as u32) }
13751}
13752#[doc = "Move vector element to general-purpose register"]
13753#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_lane_u8)"]
13754#[inline]
13755#[target_feature(enable = "neon")]
13756#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13757#[rustc_legacy_const_generics(1)]
13758#[cfg_attr(test, assert_instr(nop, IMM5 = 2))]
13759#[cfg_attr(
13760    not(target_arch = "arm"),
13761    stable(feature = "neon_intrinsics", since = "1.59.0")
13762)]
13763#[cfg_attr(
13764    target_arch = "arm",
13765    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13766)]
13767pub fn vget_lane_u8<const IMM5: i32>(v: uint8x8_t) -> u8 {
13768    static_assert_uimm_bits!(IMM5, 3);
13769    unsafe { simd_extract!(v, IMM5 as u32) }
13770}
13771#[doc = "Move vector element to general-purpose register"]
13772#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vgetq_lane_f32)"]
13773#[inline]
13774#[target_feature(enable = "neon")]
13775#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13776#[rustc_legacy_const_generics(1)]
13777#[cfg_attr(test, assert_instr(nop, IMM5 = 1))]
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 vgetq_lane_f32<const IMM5: i32>(v: float32x4_t) -> f32 {
13787    static_assert_uimm_bits!(IMM5, 2);
13788    unsafe { simd_extract!(v, IMM5 as u32) }
13789}
13790#[doc = "Move vector element to general-purpose register"]
13791#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vgetq_lane_p16)"]
13792#[inline]
13793#[target_feature(enable = "neon")]
13794#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13795#[rustc_legacy_const_generics(1)]
13796#[cfg_attr(test, assert_instr(nop, IMM5 = 2))]
13797#[cfg_attr(
13798    not(target_arch = "arm"),
13799    stable(feature = "neon_intrinsics", since = "1.59.0")
13800)]
13801#[cfg_attr(
13802    target_arch = "arm",
13803    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13804)]
13805pub fn vgetq_lane_p16<const IMM5: i32>(v: poly16x8_t) -> p16 {
13806    static_assert_uimm_bits!(IMM5, 3);
13807    unsafe { simd_extract!(v, IMM5 as u32) }
13808}
13809#[doc = "Move vector element to general-purpose register"]
13810#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vgetq_lane_p64)"]
13811#[inline]
13812#[target_feature(enable = "neon")]
13813#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13814#[rustc_legacy_const_generics(1)]
13815#[cfg_attr(test, assert_instr(nop, IMM5 = 1))]
13816#[cfg_attr(
13817    not(target_arch = "arm"),
13818    stable(feature = "neon_intrinsics", since = "1.59.0")
13819)]
13820#[cfg_attr(
13821    target_arch = "arm",
13822    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13823)]
13824pub fn vgetq_lane_p64<const IMM5: i32>(v: poly64x2_t) -> p64 {
13825    static_assert_uimm_bits!(IMM5, 1);
13826    unsafe { simd_extract!(v, IMM5 as u32) }
13827}
13828#[doc = "Move vector element to general-purpose register"]
13829#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vgetq_lane_p8)"]
13830#[inline]
13831#[target_feature(enable = "neon")]
13832#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13833#[rustc_legacy_const_generics(1)]
13834#[cfg_attr(test, assert_instr(nop, IMM5 = 2))]
13835#[cfg_attr(
13836    not(target_arch = "arm"),
13837    stable(feature = "neon_intrinsics", since = "1.59.0")
13838)]
13839#[cfg_attr(
13840    target_arch = "arm",
13841    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13842)]
13843pub fn vgetq_lane_p8<const IMM5: i32>(v: poly8x16_t) -> p8 {
13844    static_assert_uimm_bits!(IMM5, 4);
13845    unsafe { simd_extract!(v, IMM5 as u32) }
13846}
13847#[doc = "Move vector element to general-purpose register"]
13848#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vgetq_lane_s16)"]
13849#[inline]
13850#[target_feature(enable = "neon")]
13851#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13852#[rustc_legacy_const_generics(1)]
13853#[cfg_attr(test, assert_instr(nop, IMM5 = 2))]
13854#[cfg_attr(
13855    not(target_arch = "arm"),
13856    stable(feature = "neon_intrinsics", since = "1.59.0")
13857)]
13858#[cfg_attr(
13859    target_arch = "arm",
13860    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13861)]
13862pub fn vgetq_lane_s16<const IMM5: i32>(v: int16x8_t) -> i16 {
13863    static_assert_uimm_bits!(IMM5, 3);
13864    unsafe { simd_extract!(v, IMM5 as u32) }
13865}
13866#[doc = "Move vector element to general-purpose register"]
13867#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vgetq_lane_s32)"]
13868#[inline]
13869#[target_feature(enable = "neon")]
13870#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13871#[rustc_legacy_const_generics(1)]
13872#[cfg_attr(test, assert_instr(nop, IMM5 = 2))]
13873#[cfg_attr(
13874    not(target_arch = "arm"),
13875    stable(feature = "neon_intrinsics", since = "1.59.0")
13876)]
13877#[cfg_attr(
13878    target_arch = "arm",
13879    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13880)]
13881pub fn vgetq_lane_s32<const IMM5: i32>(v: int32x4_t) -> i32 {
13882    static_assert_uimm_bits!(IMM5, 2);
13883    unsafe { simd_extract!(v, IMM5 as u32) }
13884}
13885#[doc = "Move vector element to general-purpose register"]
13886#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vgetq_lane_s64)"]
13887#[inline]
13888#[target_feature(enable = "neon")]
13889#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13890#[rustc_legacy_const_generics(1)]
13891#[cfg_attr(test, assert_instr(nop, IMM5 = 1))]
13892#[cfg_attr(
13893    not(target_arch = "arm"),
13894    stable(feature = "neon_intrinsics", since = "1.59.0")
13895)]
13896#[cfg_attr(
13897    target_arch = "arm",
13898    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13899)]
13900pub fn vgetq_lane_s64<const IMM5: i32>(v: int64x2_t) -> i64 {
13901    static_assert_uimm_bits!(IMM5, 1);
13902    unsafe { simd_extract!(v, IMM5 as u32) }
13903}
13904#[doc = "Move vector element to general-purpose register"]
13905#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vgetq_lane_s8)"]
13906#[inline]
13907#[target_feature(enable = "neon")]
13908#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13909#[rustc_legacy_const_generics(1)]
13910#[cfg_attr(test, assert_instr(nop, IMM5 = 2))]
13911#[cfg_attr(
13912    not(target_arch = "arm"),
13913    stable(feature = "neon_intrinsics", since = "1.59.0")
13914)]
13915#[cfg_attr(
13916    target_arch = "arm",
13917    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13918)]
13919pub fn vgetq_lane_s8<const IMM5: i32>(v: int8x16_t) -> i8 {
13920    static_assert_uimm_bits!(IMM5, 4);
13921    unsafe { simd_extract!(v, IMM5 as u32) }
13922}
13923#[doc = "Move vector element to general-purpose register"]
13924#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vgetq_lane_u16)"]
13925#[inline]
13926#[target_feature(enable = "neon")]
13927#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13928#[rustc_legacy_const_generics(1)]
13929#[cfg_attr(test, assert_instr(nop, IMM5 = 2))]
13930#[cfg_attr(
13931    not(target_arch = "arm"),
13932    stable(feature = "neon_intrinsics", since = "1.59.0")
13933)]
13934#[cfg_attr(
13935    target_arch = "arm",
13936    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13937)]
13938pub fn vgetq_lane_u16<const IMM5: i32>(v: uint16x8_t) -> u16 {
13939    static_assert_uimm_bits!(IMM5, 3);
13940    unsafe { simd_extract!(v, IMM5 as u32) }
13941}
13942#[doc = "Move vector element to general-purpose register"]
13943#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vgetq_lane_u32)"]
13944#[inline]
13945#[target_feature(enable = "neon")]
13946#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13947#[rustc_legacy_const_generics(1)]
13948#[cfg_attr(test, assert_instr(nop, IMM5 = 2))]
13949#[cfg_attr(
13950    not(target_arch = "arm"),
13951    stable(feature = "neon_intrinsics", since = "1.59.0")
13952)]
13953#[cfg_attr(
13954    target_arch = "arm",
13955    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13956)]
13957pub fn vgetq_lane_u32<const IMM5: i32>(v: uint32x4_t) -> u32 {
13958    static_assert_uimm_bits!(IMM5, 2);
13959    unsafe { simd_extract!(v, IMM5 as u32) }
13960}
13961#[doc = "Move vector element to general-purpose register"]
13962#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vgetq_lane_u64)"]
13963#[inline]
13964#[target_feature(enable = "neon")]
13965#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13966#[rustc_legacy_const_generics(1)]
13967#[cfg_attr(test, assert_instr(nop, IMM5 = 1))]
13968#[cfg_attr(
13969    not(target_arch = "arm"),
13970    stable(feature = "neon_intrinsics", since = "1.59.0")
13971)]
13972#[cfg_attr(
13973    target_arch = "arm",
13974    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13975)]
13976pub fn vgetq_lane_u64<const IMM5: i32>(v: uint64x2_t) -> u64 {
13977    static_assert_uimm_bits!(IMM5, 2);
13978    unsafe { simd_extract!(v, IMM5 as u32) }
13979}
13980#[doc = "Move vector element to general-purpose register"]
13981#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vgetq_lane_u8)"]
13982#[inline]
13983#[target_feature(enable = "neon")]
13984#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13985#[rustc_legacy_const_generics(1)]
13986#[cfg_attr(test, assert_instr(nop, IMM5 = 2))]
13987#[cfg_attr(
13988    not(target_arch = "arm"),
13989    stable(feature = "neon_intrinsics", since = "1.59.0")
13990)]
13991#[cfg_attr(
13992    target_arch = "arm",
13993    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13994)]
13995pub fn vgetq_lane_u8<const IMM5: i32>(v: uint8x16_t) -> u8 {
13996    static_assert_uimm_bits!(IMM5, 4);
13997    unsafe { simd_extract!(v, IMM5 as u32) }
13998}
13999#[doc = "Move vector element to general-purpose register"]
14000#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_lane_p64)"]
14001#[inline]
14002#[target_feature(enable = "neon")]
14003#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14004#[rustc_legacy_const_generics(1)]
14005#[cfg_attr(test, assert_instr(nop, IMM5 = 0))]
14006#[cfg_attr(
14007    not(target_arch = "arm"),
14008    stable(feature = "neon_intrinsics", since = "1.59.0")
14009)]
14010#[cfg_attr(
14011    target_arch = "arm",
14012    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14013)]
14014pub fn vget_lane_p64<const IMM5: i32>(v: poly64x1_t) -> p64 {
14015    static_assert!(IMM5 == 0);
14016    unsafe { simd_extract!(v, IMM5 as u32) }
14017}
14018#[doc = "Move vector element to general-purpose register"]
14019#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_lane_s64)"]
14020#[inline]
14021#[target_feature(enable = "neon")]
14022#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14023#[rustc_legacy_const_generics(1)]
14024#[cfg_attr(test, assert_instr(nop, IMM5 = 0))]
14025#[cfg_attr(
14026    not(target_arch = "arm"),
14027    stable(feature = "neon_intrinsics", since = "1.59.0")
14028)]
14029#[cfg_attr(
14030    target_arch = "arm",
14031    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14032)]
14033pub fn vget_lane_s64<const IMM5: i32>(v: int64x1_t) -> i64 {
14034    static_assert!(IMM5 == 0);
14035    unsafe { simd_extract!(v, IMM5 as u32) }
14036}
14037#[doc = "Move vector element to general-purpose register"]
14038#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_lane_u64)"]
14039#[inline]
14040#[target_feature(enable = "neon")]
14041#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14042#[rustc_legacy_const_generics(1)]
14043#[cfg_attr(test, assert_instr(nop, IMM5 = 0))]
14044#[cfg_attr(
14045    not(target_arch = "arm"),
14046    stable(feature = "neon_intrinsics", since = "1.59.0")
14047)]
14048#[cfg_attr(
14049    target_arch = "arm",
14050    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14051)]
14052pub fn vget_lane_u64<const IMM5: i32>(v: uint64x1_t) -> u64 {
14053    static_assert!(IMM5 == 0);
14054    unsafe { simd_extract!(v, 0) }
14055}
14056#[doc = "Duplicate vector element to vector or scalar"]
14057#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_low_f32)"]
14058#[inline]
14059#[target_feature(enable = "neon")]
14060#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14061#[cfg_attr(test, assert_instr(nop))]
14062#[cfg_attr(
14063    not(target_arch = "arm"),
14064    stable(feature = "neon_intrinsics", since = "1.59.0")
14065)]
14066#[cfg_attr(
14067    target_arch = "arm",
14068    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14069)]
14070pub fn vget_low_f32(a: float32x4_t) -> float32x2_t {
14071    unsafe { simd_shuffle!(a, a, [0, 1]) }
14072}
14073#[doc = "Duplicate vector element to vector or scalar"]
14074#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_low_p16)"]
14075#[inline]
14076#[target_feature(enable = "neon")]
14077#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14078#[cfg_attr(test, assert_instr(nop))]
14079#[cfg_attr(
14080    not(target_arch = "arm"),
14081    stable(feature = "neon_intrinsics", since = "1.59.0")
14082)]
14083#[cfg_attr(
14084    target_arch = "arm",
14085    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14086)]
14087pub fn vget_low_p16(a: poly16x8_t) -> poly16x4_t {
14088    unsafe { simd_shuffle!(a, a, [0, 1, 2, 3]) }
14089}
14090#[doc = "Duplicate vector element to vector or scalar"]
14091#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_low_p8)"]
14092#[inline]
14093#[target_feature(enable = "neon")]
14094#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14095#[cfg_attr(test, assert_instr(nop))]
14096#[cfg_attr(
14097    not(target_arch = "arm"),
14098    stable(feature = "neon_intrinsics", since = "1.59.0")
14099)]
14100#[cfg_attr(
14101    target_arch = "arm",
14102    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14103)]
14104pub fn vget_low_p8(a: poly8x16_t) -> poly8x8_t {
14105    unsafe { simd_shuffle!(a, a, [0, 1, 2, 3, 4, 5, 6, 7]) }
14106}
14107#[doc = "Duplicate vector element to vector or scalar"]
14108#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_low_s16)"]
14109#[inline]
14110#[target_feature(enable = "neon")]
14111#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14112#[cfg_attr(test, assert_instr(nop))]
14113#[cfg_attr(
14114    not(target_arch = "arm"),
14115    stable(feature = "neon_intrinsics", since = "1.59.0")
14116)]
14117#[cfg_attr(
14118    target_arch = "arm",
14119    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14120)]
14121pub fn vget_low_s16(a: int16x8_t) -> int16x4_t {
14122    unsafe { simd_shuffle!(a, a, [0, 1, 2, 3]) }
14123}
14124#[doc = "Duplicate vector element to vector or scalar"]
14125#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_low_s32)"]
14126#[inline]
14127#[target_feature(enable = "neon")]
14128#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14129#[cfg_attr(test, assert_instr(nop))]
14130#[cfg_attr(
14131    not(target_arch = "arm"),
14132    stable(feature = "neon_intrinsics", since = "1.59.0")
14133)]
14134#[cfg_attr(
14135    target_arch = "arm",
14136    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14137)]
14138pub fn vget_low_s32(a: int32x4_t) -> int32x2_t {
14139    unsafe { simd_shuffle!(a, a, [0, 1]) }
14140}
14141#[doc = "Duplicate vector element to vector or scalar"]
14142#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_low_s8)"]
14143#[inline]
14144#[target_feature(enable = "neon")]
14145#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14146#[cfg_attr(test, assert_instr(nop))]
14147#[cfg_attr(
14148    not(target_arch = "arm"),
14149    stable(feature = "neon_intrinsics", since = "1.59.0")
14150)]
14151#[cfg_attr(
14152    target_arch = "arm",
14153    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14154)]
14155pub fn vget_low_s8(a: int8x16_t) -> int8x8_t {
14156    unsafe { simd_shuffle!(a, a, [0, 1, 2, 3, 4, 5, 6, 7]) }
14157}
14158#[doc = "Duplicate vector element to vector or scalar"]
14159#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_low_u16)"]
14160#[inline]
14161#[target_feature(enable = "neon")]
14162#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14163#[cfg_attr(test, assert_instr(nop))]
14164#[cfg_attr(
14165    not(target_arch = "arm"),
14166    stable(feature = "neon_intrinsics", since = "1.59.0")
14167)]
14168#[cfg_attr(
14169    target_arch = "arm",
14170    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14171)]
14172pub fn vget_low_u16(a: uint16x8_t) -> uint16x4_t {
14173    unsafe { simd_shuffle!(a, a, [0, 1, 2, 3]) }
14174}
14175#[doc = "Duplicate vector element to vector or scalar"]
14176#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_low_u32)"]
14177#[inline]
14178#[target_feature(enable = "neon")]
14179#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14180#[cfg_attr(test, assert_instr(nop))]
14181#[cfg_attr(
14182    not(target_arch = "arm"),
14183    stable(feature = "neon_intrinsics", since = "1.59.0")
14184)]
14185#[cfg_attr(
14186    target_arch = "arm",
14187    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14188)]
14189pub fn vget_low_u32(a: uint32x4_t) -> uint32x2_t {
14190    unsafe { simd_shuffle!(a, a, [0, 1]) }
14191}
14192#[doc = "Duplicate vector element to vector or scalar"]
14193#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_low_u8)"]
14194#[inline]
14195#[target_feature(enable = "neon")]
14196#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14197#[cfg_attr(test, assert_instr(nop))]
14198#[cfg_attr(
14199    not(target_arch = "arm"),
14200    stable(feature = "neon_intrinsics", since = "1.59.0")
14201)]
14202#[cfg_attr(
14203    target_arch = "arm",
14204    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14205)]
14206pub fn vget_low_u8(a: uint8x16_t) -> uint8x8_t {
14207    unsafe { simd_shuffle!(a, a, [0, 1, 2, 3, 4, 5, 6, 7]) }
14208}
14209#[doc = "Duplicate vector element to vector or scalar"]
14210#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_low_s64)"]
14211#[inline]
14212#[target_feature(enable = "neon")]
14213#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14214#[cfg_attr(test, assert_instr(nop))]
14215#[cfg_attr(
14216    not(target_arch = "arm"),
14217    stable(feature = "neon_intrinsics", since = "1.59.0")
14218)]
14219#[cfg_attr(
14220    target_arch = "arm",
14221    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14222)]
14223pub fn vget_low_s64(a: int64x2_t) -> int64x1_t {
14224    unsafe { int64x1_t([simd_extract!(a, 0)]) }
14225}
14226#[doc = "Duplicate vector element to vector or scalar"]
14227#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_low_u64)"]
14228#[inline]
14229#[target_feature(enable = "neon")]
14230#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14231#[cfg_attr(test, assert_instr(nop))]
14232#[cfg_attr(
14233    not(target_arch = "arm"),
14234    stable(feature = "neon_intrinsics", since = "1.59.0")
14235)]
14236#[cfg_attr(
14237    target_arch = "arm",
14238    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14239)]
14240pub fn vget_low_u64(a: uint64x2_t) -> uint64x1_t {
14241    unsafe { uint64x1_t([simd_extract!(a, 0)]) }
14242}
14243#[doc = "Halving add"]
14244#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhadd_s8)"]
14245#[inline]
14246#[target_feature(enable = "neon")]
14247#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14248#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhadd.s8"))]
14249#[cfg_attr(
14250    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14251    assert_instr(shadd)
14252)]
14253#[cfg_attr(
14254    not(target_arch = "arm"),
14255    stable(feature = "neon_intrinsics", since = "1.59.0")
14256)]
14257#[cfg_attr(
14258    target_arch = "arm",
14259    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14260)]
14261pub fn vhadd_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
14262    unsafe extern "unadjusted" {
14263        #[cfg_attr(
14264            any(target_arch = "aarch64", target_arch = "arm64ec"),
14265            link_name = "llvm.aarch64.neon.shadd.v8i8"
14266        )]
14267        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhadds.v8i8")]
14268        fn _vhadd_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t;
14269    }
14270    unsafe { _vhadd_s8(a, b) }
14271}
14272#[doc = "Halving add"]
14273#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhaddq_s8)"]
14274#[inline]
14275#[target_feature(enable = "neon")]
14276#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14277#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhadd.s8"))]
14278#[cfg_attr(
14279    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14280    assert_instr(shadd)
14281)]
14282#[cfg_attr(
14283    not(target_arch = "arm"),
14284    stable(feature = "neon_intrinsics", since = "1.59.0")
14285)]
14286#[cfg_attr(
14287    target_arch = "arm",
14288    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14289)]
14290pub fn vhaddq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
14291    unsafe extern "unadjusted" {
14292        #[cfg_attr(
14293            any(target_arch = "aarch64", target_arch = "arm64ec"),
14294            link_name = "llvm.aarch64.neon.shadd.v16i8"
14295        )]
14296        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhadds.v16i8")]
14297        fn _vhaddq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t;
14298    }
14299    unsafe { _vhaddq_s8(a, b) }
14300}
14301#[doc = "Halving add"]
14302#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhadd_s16)"]
14303#[inline]
14304#[target_feature(enable = "neon")]
14305#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14306#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhadd.s16"))]
14307#[cfg_attr(
14308    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14309    assert_instr(shadd)
14310)]
14311#[cfg_attr(
14312    not(target_arch = "arm"),
14313    stable(feature = "neon_intrinsics", since = "1.59.0")
14314)]
14315#[cfg_attr(
14316    target_arch = "arm",
14317    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14318)]
14319pub fn vhadd_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
14320    unsafe extern "unadjusted" {
14321        #[cfg_attr(
14322            any(target_arch = "aarch64", target_arch = "arm64ec"),
14323            link_name = "llvm.aarch64.neon.shadd.v4i16"
14324        )]
14325        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhadds.v4i16")]
14326        fn _vhadd_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t;
14327    }
14328    unsafe { _vhadd_s16(a, b) }
14329}
14330#[doc = "Halving add"]
14331#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhaddq_s16)"]
14332#[inline]
14333#[target_feature(enable = "neon")]
14334#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14335#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhadd.s16"))]
14336#[cfg_attr(
14337    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14338    assert_instr(shadd)
14339)]
14340#[cfg_attr(
14341    not(target_arch = "arm"),
14342    stable(feature = "neon_intrinsics", since = "1.59.0")
14343)]
14344#[cfg_attr(
14345    target_arch = "arm",
14346    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14347)]
14348pub fn vhaddq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
14349    unsafe extern "unadjusted" {
14350        #[cfg_attr(
14351            any(target_arch = "aarch64", target_arch = "arm64ec"),
14352            link_name = "llvm.aarch64.neon.shadd.v8i16"
14353        )]
14354        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhadds.v8i16")]
14355        fn _vhaddq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t;
14356    }
14357    unsafe { _vhaddq_s16(a, b) }
14358}
14359#[doc = "Halving add"]
14360#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhadd_s32)"]
14361#[inline]
14362#[target_feature(enable = "neon")]
14363#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14364#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhadd.s32"))]
14365#[cfg_attr(
14366    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14367    assert_instr(shadd)
14368)]
14369#[cfg_attr(
14370    not(target_arch = "arm"),
14371    stable(feature = "neon_intrinsics", since = "1.59.0")
14372)]
14373#[cfg_attr(
14374    target_arch = "arm",
14375    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14376)]
14377pub fn vhadd_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
14378    unsafe extern "unadjusted" {
14379        #[cfg_attr(
14380            any(target_arch = "aarch64", target_arch = "arm64ec"),
14381            link_name = "llvm.aarch64.neon.shadd.v2i32"
14382        )]
14383        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhadds.v2i32")]
14384        fn _vhadd_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t;
14385    }
14386    unsafe { _vhadd_s32(a, b) }
14387}
14388#[doc = "Halving add"]
14389#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhaddq_s32)"]
14390#[inline]
14391#[target_feature(enable = "neon")]
14392#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14393#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhadd.s32"))]
14394#[cfg_attr(
14395    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14396    assert_instr(shadd)
14397)]
14398#[cfg_attr(
14399    not(target_arch = "arm"),
14400    stable(feature = "neon_intrinsics", since = "1.59.0")
14401)]
14402#[cfg_attr(
14403    target_arch = "arm",
14404    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14405)]
14406pub fn vhaddq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
14407    unsafe extern "unadjusted" {
14408        #[cfg_attr(
14409            any(target_arch = "aarch64", target_arch = "arm64ec"),
14410            link_name = "llvm.aarch64.neon.shadd.v4i32"
14411        )]
14412        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhadds.v4i32")]
14413        fn _vhaddq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t;
14414    }
14415    unsafe { _vhaddq_s32(a, b) }
14416}
14417#[doc = "Halving add"]
14418#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhadd_u8)"]
14419#[inline]
14420#[target_feature(enable = "neon")]
14421#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14422#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhadd.u8"))]
14423#[cfg_attr(
14424    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14425    assert_instr(uhadd)
14426)]
14427#[cfg_attr(
14428    not(target_arch = "arm"),
14429    stable(feature = "neon_intrinsics", since = "1.59.0")
14430)]
14431#[cfg_attr(
14432    target_arch = "arm",
14433    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14434)]
14435pub fn vhadd_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
14436    unsafe extern "unadjusted" {
14437        #[cfg_attr(
14438            any(target_arch = "aarch64", target_arch = "arm64ec"),
14439            link_name = "llvm.aarch64.neon.uhadd.v8i8"
14440        )]
14441        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhaddu.v8i8")]
14442        fn _vhadd_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t;
14443    }
14444    unsafe { _vhadd_u8(a, b) }
14445}
14446#[doc = "Halving add"]
14447#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhaddq_u8)"]
14448#[inline]
14449#[target_feature(enable = "neon")]
14450#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14451#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhadd.u8"))]
14452#[cfg_attr(
14453    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14454    assert_instr(uhadd)
14455)]
14456#[cfg_attr(
14457    not(target_arch = "arm"),
14458    stable(feature = "neon_intrinsics", since = "1.59.0")
14459)]
14460#[cfg_attr(
14461    target_arch = "arm",
14462    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14463)]
14464pub fn vhaddq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
14465    unsafe extern "unadjusted" {
14466        #[cfg_attr(
14467            any(target_arch = "aarch64", target_arch = "arm64ec"),
14468            link_name = "llvm.aarch64.neon.uhadd.v16i8"
14469        )]
14470        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhaddu.v16i8")]
14471        fn _vhaddq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t;
14472    }
14473    unsafe { _vhaddq_u8(a, b) }
14474}
14475#[doc = "Halving add"]
14476#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhadd_u16)"]
14477#[inline]
14478#[target_feature(enable = "neon")]
14479#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14480#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhadd.u16"))]
14481#[cfg_attr(
14482    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14483    assert_instr(uhadd)
14484)]
14485#[cfg_attr(
14486    not(target_arch = "arm"),
14487    stable(feature = "neon_intrinsics", since = "1.59.0")
14488)]
14489#[cfg_attr(
14490    target_arch = "arm",
14491    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14492)]
14493pub fn vhadd_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
14494    unsafe extern "unadjusted" {
14495        #[cfg_attr(
14496            any(target_arch = "aarch64", target_arch = "arm64ec"),
14497            link_name = "llvm.aarch64.neon.uhadd.v4i16"
14498        )]
14499        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhaddu.v4i16")]
14500        fn _vhadd_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t;
14501    }
14502    unsafe { _vhadd_u16(a, b) }
14503}
14504#[doc = "Halving add"]
14505#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhaddq_u16)"]
14506#[inline]
14507#[target_feature(enable = "neon")]
14508#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14509#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhadd.u16"))]
14510#[cfg_attr(
14511    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14512    assert_instr(uhadd)
14513)]
14514#[cfg_attr(
14515    not(target_arch = "arm"),
14516    stable(feature = "neon_intrinsics", since = "1.59.0")
14517)]
14518#[cfg_attr(
14519    target_arch = "arm",
14520    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14521)]
14522pub fn vhaddq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
14523    unsafe extern "unadjusted" {
14524        #[cfg_attr(
14525            any(target_arch = "aarch64", target_arch = "arm64ec"),
14526            link_name = "llvm.aarch64.neon.uhadd.v8i16"
14527        )]
14528        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhaddu.v8i16")]
14529        fn _vhaddq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t;
14530    }
14531    unsafe { _vhaddq_u16(a, b) }
14532}
14533#[doc = "Halving add"]
14534#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhadd_u32)"]
14535#[inline]
14536#[target_feature(enable = "neon")]
14537#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14538#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhadd.u32"))]
14539#[cfg_attr(
14540    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14541    assert_instr(uhadd)
14542)]
14543#[cfg_attr(
14544    not(target_arch = "arm"),
14545    stable(feature = "neon_intrinsics", since = "1.59.0")
14546)]
14547#[cfg_attr(
14548    target_arch = "arm",
14549    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14550)]
14551pub fn vhadd_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
14552    unsafe extern "unadjusted" {
14553        #[cfg_attr(
14554            any(target_arch = "aarch64", target_arch = "arm64ec"),
14555            link_name = "llvm.aarch64.neon.uhadd.v2i32"
14556        )]
14557        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhaddu.v2i32")]
14558        fn _vhadd_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t;
14559    }
14560    unsafe { _vhadd_u32(a, b) }
14561}
14562#[doc = "Halving add"]
14563#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhaddq_u32)"]
14564#[inline]
14565#[target_feature(enable = "neon")]
14566#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14567#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhadd.u32"))]
14568#[cfg_attr(
14569    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14570    assert_instr(uhadd)
14571)]
14572#[cfg_attr(
14573    not(target_arch = "arm"),
14574    stable(feature = "neon_intrinsics", since = "1.59.0")
14575)]
14576#[cfg_attr(
14577    target_arch = "arm",
14578    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14579)]
14580pub fn vhaddq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
14581    unsafe extern "unadjusted" {
14582        #[cfg_attr(
14583            any(target_arch = "aarch64", target_arch = "arm64ec"),
14584            link_name = "llvm.aarch64.neon.uhadd.v4i32"
14585        )]
14586        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhaddu.v4i32")]
14587        fn _vhaddq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t;
14588    }
14589    unsafe { _vhaddq_u32(a, b) }
14590}
14591#[doc = "Signed halving subtract"]
14592#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhsub_s16)"]
14593#[inline]
14594#[target_feature(enable = "neon")]
14595#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14596#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhsub.s16"))]
14597#[cfg_attr(
14598    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14599    assert_instr(shsub)
14600)]
14601#[cfg_attr(
14602    not(target_arch = "arm"),
14603    stable(feature = "neon_intrinsics", since = "1.59.0")
14604)]
14605#[cfg_attr(
14606    target_arch = "arm",
14607    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14608)]
14609pub fn vhsub_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
14610    unsafe extern "unadjusted" {
14611        #[cfg_attr(
14612            any(target_arch = "aarch64", target_arch = "arm64ec"),
14613            link_name = "llvm.aarch64.neon.shsub.v4i16"
14614        )]
14615        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhsubs.v4i16")]
14616        fn _vhsub_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t;
14617    }
14618    unsafe { _vhsub_s16(a, b) }
14619}
14620#[doc = "Signed halving subtract"]
14621#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhsubq_s16)"]
14622#[inline]
14623#[target_feature(enable = "neon")]
14624#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14625#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhsub.s16"))]
14626#[cfg_attr(
14627    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14628    assert_instr(shsub)
14629)]
14630#[cfg_attr(
14631    not(target_arch = "arm"),
14632    stable(feature = "neon_intrinsics", since = "1.59.0")
14633)]
14634#[cfg_attr(
14635    target_arch = "arm",
14636    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14637)]
14638pub fn vhsubq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
14639    unsafe extern "unadjusted" {
14640        #[cfg_attr(
14641            any(target_arch = "aarch64", target_arch = "arm64ec"),
14642            link_name = "llvm.aarch64.neon.shsub.v8i16"
14643        )]
14644        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhsubs.v8i16")]
14645        fn _vhsubq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t;
14646    }
14647    unsafe { _vhsubq_s16(a, b) }
14648}
14649#[doc = "Signed halving subtract"]
14650#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhsub_s32)"]
14651#[inline]
14652#[target_feature(enable = "neon")]
14653#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14654#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhsub.s32"))]
14655#[cfg_attr(
14656    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14657    assert_instr(shsub)
14658)]
14659#[cfg_attr(
14660    not(target_arch = "arm"),
14661    stable(feature = "neon_intrinsics", since = "1.59.0")
14662)]
14663#[cfg_attr(
14664    target_arch = "arm",
14665    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14666)]
14667pub fn vhsub_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
14668    unsafe extern "unadjusted" {
14669        #[cfg_attr(
14670            any(target_arch = "aarch64", target_arch = "arm64ec"),
14671            link_name = "llvm.aarch64.neon.shsub.v2i32"
14672        )]
14673        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhsubs.v2i32")]
14674        fn _vhsub_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t;
14675    }
14676    unsafe { _vhsub_s32(a, b) }
14677}
14678#[doc = "Signed halving subtract"]
14679#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhsubq_s32)"]
14680#[inline]
14681#[target_feature(enable = "neon")]
14682#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14683#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhsub.s32"))]
14684#[cfg_attr(
14685    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14686    assert_instr(shsub)
14687)]
14688#[cfg_attr(
14689    not(target_arch = "arm"),
14690    stable(feature = "neon_intrinsics", since = "1.59.0")
14691)]
14692#[cfg_attr(
14693    target_arch = "arm",
14694    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14695)]
14696pub fn vhsubq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
14697    unsafe extern "unadjusted" {
14698        #[cfg_attr(
14699            any(target_arch = "aarch64", target_arch = "arm64ec"),
14700            link_name = "llvm.aarch64.neon.shsub.v4i32"
14701        )]
14702        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhsubs.v4i32")]
14703        fn _vhsubq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t;
14704    }
14705    unsafe { _vhsubq_s32(a, b) }
14706}
14707#[doc = "Signed halving subtract"]
14708#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhsub_s8)"]
14709#[inline]
14710#[target_feature(enable = "neon")]
14711#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14712#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhsub.s8"))]
14713#[cfg_attr(
14714    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14715    assert_instr(shsub)
14716)]
14717#[cfg_attr(
14718    not(target_arch = "arm"),
14719    stable(feature = "neon_intrinsics", since = "1.59.0")
14720)]
14721#[cfg_attr(
14722    target_arch = "arm",
14723    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14724)]
14725pub fn vhsub_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
14726    unsafe extern "unadjusted" {
14727        #[cfg_attr(
14728            any(target_arch = "aarch64", target_arch = "arm64ec"),
14729            link_name = "llvm.aarch64.neon.shsub.v8i8"
14730        )]
14731        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhsubs.v8i8")]
14732        fn _vhsub_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t;
14733    }
14734    unsafe { _vhsub_s8(a, b) }
14735}
14736#[doc = "Signed halving subtract"]
14737#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhsubq_s8)"]
14738#[inline]
14739#[target_feature(enable = "neon")]
14740#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14741#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhsub.s8"))]
14742#[cfg_attr(
14743    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14744    assert_instr(shsub)
14745)]
14746#[cfg_attr(
14747    not(target_arch = "arm"),
14748    stable(feature = "neon_intrinsics", since = "1.59.0")
14749)]
14750#[cfg_attr(
14751    target_arch = "arm",
14752    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14753)]
14754pub fn vhsubq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
14755    unsafe extern "unadjusted" {
14756        #[cfg_attr(
14757            any(target_arch = "aarch64", target_arch = "arm64ec"),
14758            link_name = "llvm.aarch64.neon.shsub.v16i8"
14759        )]
14760        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhsubs.v16i8")]
14761        fn _vhsubq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t;
14762    }
14763    unsafe { _vhsubq_s8(a, b) }
14764}
14765#[doc = "Signed halving subtract"]
14766#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhsub_u8)"]
14767#[inline]
14768#[target_feature(enable = "neon")]
14769#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14770#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhsub.u8"))]
14771#[cfg_attr(
14772    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14773    assert_instr(uhsub)
14774)]
14775#[cfg_attr(
14776    not(target_arch = "arm"),
14777    stable(feature = "neon_intrinsics", since = "1.59.0")
14778)]
14779#[cfg_attr(
14780    target_arch = "arm",
14781    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14782)]
14783pub fn vhsub_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
14784    unsafe extern "unadjusted" {
14785        #[cfg_attr(
14786            any(target_arch = "aarch64", target_arch = "arm64ec"),
14787            link_name = "llvm.aarch64.neon.uhsub.v8i8"
14788        )]
14789        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhsubu.v8i8")]
14790        fn _vhsub_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t;
14791    }
14792    unsafe { _vhsub_u8(a, b) }
14793}
14794#[doc = "Signed halving subtract"]
14795#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhsubq_u8)"]
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("vhsub.u8"))]
14800#[cfg_attr(
14801    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14802    assert_instr(uhsub)
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 fn vhsubq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
14813    unsafe extern "unadjusted" {
14814        #[cfg_attr(
14815            any(target_arch = "aarch64", target_arch = "arm64ec"),
14816            link_name = "llvm.aarch64.neon.uhsub.v16i8"
14817        )]
14818        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhsubu.v16i8")]
14819        fn _vhsubq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t;
14820    }
14821    unsafe { _vhsubq_u8(a, b) }
14822}
14823#[doc = "Signed halving subtract"]
14824#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhsub_u16)"]
14825#[inline]
14826#[target_feature(enable = "neon")]
14827#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14828#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhsub.u16"))]
14829#[cfg_attr(
14830    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14831    assert_instr(uhsub)
14832)]
14833#[cfg_attr(
14834    not(target_arch = "arm"),
14835    stable(feature = "neon_intrinsics", since = "1.59.0")
14836)]
14837#[cfg_attr(
14838    target_arch = "arm",
14839    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14840)]
14841pub fn vhsub_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
14842    unsafe extern "unadjusted" {
14843        #[cfg_attr(
14844            any(target_arch = "aarch64", target_arch = "arm64ec"),
14845            link_name = "llvm.aarch64.neon.uhsub.v4i16"
14846        )]
14847        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhsubu.v4i16")]
14848        fn _vhsub_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t;
14849    }
14850    unsafe { _vhsub_u16(a, b) }
14851}
14852#[doc = "Signed halving subtract"]
14853#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhsubq_u16)"]
14854#[inline]
14855#[target_feature(enable = "neon")]
14856#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14857#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhsub.u16"))]
14858#[cfg_attr(
14859    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14860    assert_instr(uhsub)
14861)]
14862#[cfg_attr(
14863    not(target_arch = "arm"),
14864    stable(feature = "neon_intrinsics", since = "1.59.0")
14865)]
14866#[cfg_attr(
14867    target_arch = "arm",
14868    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14869)]
14870pub fn vhsubq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
14871    unsafe extern "unadjusted" {
14872        #[cfg_attr(
14873            any(target_arch = "aarch64", target_arch = "arm64ec"),
14874            link_name = "llvm.aarch64.neon.uhsub.v8i16"
14875        )]
14876        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhsubu.v8i16")]
14877        fn _vhsubq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t;
14878    }
14879    unsafe { _vhsubq_u16(a, b) }
14880}
14881#[doc = "Signed halving subtract"]
14882#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhsub_u32)"]
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("vhsub.u32"))]
14887#[cfg_attr(
14888    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14889    assert_instr(uhsub)
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 fn vhsub_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
14900    unsafe extern "unadjusted" {
14901        #[cfg_attr(
14902            any(target_arch = "aarch64", target_arch = "arm64ec"),
14903            link_name = "llvm.aarch64.neon.uhsub.v2i32"
14904        )]
14905        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhsubu.v2i32")]
14906        fn _vhsub_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t;
14907    }
14908    unsafe { _vhsub_u32(a, b) }
14909}
14910#[doc = "Signed halving subtract"]
14911#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhsubq_u32)"]
14912#[inline]
14913#[target_feature(enable = "neon")]
14914#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14915#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhsub.u32"))]
14916#[cfg_attr(
14917    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14918    assert_instr(uhsub)
14919)]
14920#[cfg_attr(
14921    not(target_arch = "arm"),
14922    stable(feature = "neon_intrinsics", since = "1.59.0")
14923)]
14924#[cfg_attr(
14925    target_arch = "arm",
14926    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14927)]
14928pub fn vhsubq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
14929    unsafe extern "unadjusted" {
14930        #[cfg_attr(
14931            any(target_arch = "aarch64", target_arch = "arm64ec"),
14932            link_name = "llvm.aarch64.neon.uhsub.v4i32"
14933        )]
14934        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhsubu.v4i32")]
14935        fn _vhsubq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t;
14936    }
14937    unsafe { _vhsubq_u32(a, b) }
14938}
14939#[doc = "Load one single-element structure and replicate to all lanes of one register"]
14940#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_f16)"]
14941#[doc = "## Safety"]
14942#[doc = "  * Neon instrinsic unsafe"]
14943#[inline]
14944#[target_feature(enable = "neon")]
14945#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14946#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
14947#[cfg_attr(
14948    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14949    assert_instr(ld1r)
14950)]
14951#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
14952#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
14953#[cfg(not(target_arch = "arm64ec"))]
14954pub unsafe fn vld1_dup_f16(ptr: *const f16) -> float16x4_t {
14955    let x: float16x4_t = vld1_lane_f16::<0>(ptr, transmute(f16x4::splat(0.0)));
14956    simd_shuffle!(x, x, [0, 0, 0, 0])
14957}
14958#[doc = "Load one single-element structure and replicate to all lanes of one register"]
14959#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_f16)"]
14960#[doc = "## Safety"]
14961#[doc = "  * Neon instrinsic unsafe"]
14962#[inline]
14963#[target_feature(enable = "neon")]
14964#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14965#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
14966#[cfg_attr(
14967    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14968    assert_instr(ld1r)
14969)]
14970#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
14971#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
14972#[cfg(not(target_arch = "arm64ec"))]
14973pub unsafe fn vld1q_dup_f16(ptr: *const f16) -> float16x8_t {
14974    let x: float16x8_t = vld1q_lane_f16::<0>(ptr, transmute(f16x8::splat(0.0)));
14975    simd_shuffle!(x, x, [0, 0, 0, 0, 0, 0, 0, 0])
14976}
14977#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
14978#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_f32)"]
14979#[doc = "## Safety"]
14980#[doc = "  * Neon instrinsic unsafe"]
14981#[inline]
14982#[target_feature(enable = "neon")]
14983#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14984#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.32"))]
14985#[cfg_attr(
14986    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14987    assert_instr(ld1r)
14988)]
14989#[cfg_attr(
14990    not(target_arch = "arm"),
14991    stable(feature = "neon_intrinsics", since = "1.59.0")
14992)]
14993#[cfg_attr(
14994    target_arch = "arm",
14995    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14996)]
14997pub unsafe fn vld1_dup_f32(ptr: *const f32) -> float32x2_t {
14998    transmute(f32x2::splat(*ptr))
14999}
15000#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
15001#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_p16)"]
15002#[doc = "## Safety"]
15003#[doc = "  * Neon instrinsic unsafe"]
15004#[inline]
15005#[target_feature(enable = "neon")]
15006#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15007#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
15008#[cfg_attr(
15009    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15010    assert_instr(ld1r)
15011)]
15012#[cfg_attr(
15013    not(target_arch = "arm"),
15014    stable(feature = "neon_intrinsics", since = "1.59.0")
15015)]
15016#[cfg_attr(
15017    target_arch = "arm",
15018    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15019)]
15020pub unsafe fn vld1_dup_p16(ptr: *const p16) -> poly16x4_t {
15021    transmute(u16x4::splat(*ptr))
15022}
15023#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
15024#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_p8)"]
15025#[doc = "## Safety"]
15026#[doc = "  * Neon instrinsic unsafe"]
15027#[inline]
15028#[target_feature(enable = "neon")]
15029#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15030#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8"))]
15031#[cfg_attr(
15032    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15033    assert_instr(ld1r)
15034)]
15035#[cfg_attr(
15036    not(target_arch = "arm"),
15037    stable(feature = "neon_intrinsics", since = "1.59.0")
15038)]
15039#[cfg_attr(
15040    target_arch = "arm",
15041    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15042)]
15043pub unsafe fn vld1_dup_p8(ptr: *const p8) -> poly8x8_t {
15044    transmute(u8x8::splat(*ptr))
15045}
15046#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
15047#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_s16)"]
15048#[doc = "## Safety"]
15049#[doc = "  * Neon instrinsic unsafe"]
15050#[inline]
15051#[target_feature(enable = "neon")]
15052#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15053#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
15054#[cfg_attr(
15055    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15056    assert_instr(ld1r)
15057)]
15058#[cfg_attr(
15059    not(target_arch = "arm"),
15060    stable(feature = "neon_intrinsics", since = "1.59.0")
15061)]
15062#[cfg_attr(
15063    target_arch = "arm",
15064    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15065)]
15066pub unsafe fn vld1_dup_s16(ptr: *const i16) -> int16x4_t {
15067    transmute(i16x4::splat(*ptr))
15068}
15069#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
15070#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_s32)"]
15071#[doc = "## Safety"]
15072#[doc = "  * Neon instrinsic unsafe"]
15073#[inline]
15074#[target_feature(enable = "neon")]
15075#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15076#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.32"))]
15077#[cfg_attr(
15078    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15079    assert_instr(ld1r)
15080)]
15081#[cfg_attr(
15082    not(target_arch = "arm"),
15083    stable(feature = "neon_intrinsics", since = "1.59.0")
15084)]
15085#[cfg_attr(
15086    target_arch = "arm",
15087    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15088)]
15089pub unsafe fn vld1_dup_s32(ptr: *const i32) -> int32x2_t {
15090    transmute(i32x2::splat(*ptr))
15091}
15092#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
15093#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_s8)"]
15094#[doc = "## Safety"]
15095#[doc = "  * Neon instrinsic unsafe"]
15096#[inline]
15097#[target_feature(enable = "neon")]
15098#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15099#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8"))]
15100#[cfg_attr(
15101    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15102    assert_instr(ld1r)
15103)]
15104#[cfg_attr(
15105    not(target_arch = "arm"),
15106    stable(feature = "neon_intrinsics", since = "1.59.0")
15107)]
15108#[cfg_attr(
15109    target_arch = "arm",
15110    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15111)]
15112pub unsafe fn vld1_dup_s8(ptr: *const i8) -> int8x8_t {
15113    transmute(i8x8::splat(*ptr))
15114}
15115#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
15116#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_u16)"]
15117#[doc = "## Safety"]
15118#[doc = "  * Neon instrinsic unsafe"]
15119#[inline]
15120#[target_feature(enable = "neon")]
15121#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15122#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
15123#[cfg_attr(
15124    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15125    assert_instr(ld1r)
15126)]
15127#[cfg_attr(
15128    not(target_arch = "arm"),
15129    stable(feature = "neon_intrinsics", since = "1.59.0")
15130)]
15131#[cfg_attr(
15132    target_arch = "arm",
15133    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15134)]
15135pub unsafe fn vld1_dup_u16(ptr: *const u16) -> uint16x4_t {
15136    transmute(u16x4::splat(*ptr))
15137}
15138#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
15139#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_u32)"]
15140#[doc = "## Safety"]
15141#[doc = "  * Neon instrinsic unsafe"]
15142#[inline]
15143#[target_feature(enable = "neon")]
15144#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15145#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.32"))]
15146#[cfg_attr(
15147    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15148    assert_instr(ld1r)
15149)]
15150#[cfg_attr(
15151    not(target_arch = "arm"),
15152    stable(feature = "neon_intrinsics", since = "1.59.0")
15153)]
15154#[cfg_attr(
15155    target_arch = "arm",
15156    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15157)]
15158pub unsafe fn vld1_dup_u32(ptr: *const u32) -> uint32x2_t {
15159    transmute(u32x2::splat(*ptr))
15160}
15161#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
15162#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_u8)"]
15163#[doc = "## Safety"]
15164#[doc = "  * Neon instrinsic unsafe"]
15165#[inline]
15166#[target_feature(enable = "neon")]
15167#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15168#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8"))]
15169#[cfg_attr(
15170    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15171    assert_instr(ld1r)
15172)]
15173#[cfg_attr(
15174    not(target_arch = "arm"),
15175    stable(feature = "neon_intrinsics", since = "1.59.0")
15176)]
15177#[cfg_attr(
15178    target_arch = "arm",
15179    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15180)]
15181pub unsafe fn vld1_dup_u8(ptr: *const u8) -> uint8x8_t {
15182    transmute(u8x8::splat(*ptr))
15183}
15184#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
15185#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_f32)"]
15186#[doc = "## Safety"]
15187#[doc = "  * Neon instrinsic unsafe"]
15188#[inline]
15189#[target_feature(enable = "neon")]
15190#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15191#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.32"))]
15192#[cfg_attr(
15193    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15194    assert_instr(ld1r)
15195)]
15196#[cfg_attr(
15197    not(target_arch = "arm"),
15198    stable(feature = "neon_intrinsics", since = "1.59.0")
15199)]
15200#[cfg_attr(
15201    target_arch = "arm",
15202    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15203)]
15204pub unsafe fn vld1q_dup_f32(ptr: *const f32) -> float32x4_t {
15205    transmute(f32x4::splat(*ptr))
15206}
15207#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
15208#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_p16)"]
15209#[doc = "## Safety"]
15210#[doc = "  * Neon instrinsic unsafe"]
15211#[inline]
15212#[target_feature(enable = "neon")]
15213#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15214#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
15215#[cfg_attr(
15216    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15217    assert_instr(ld1r)
15218)]
15219#[cfg_attr(
15220    not(target_arch = "arm"),
15221    stable(feature = "neon_intrinsics", since = "1.59.0")
15222)]
15223#[cfg_attr(
15224    target_arch = "arm",
15225    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15226)]
15227pub unsafe fn vld1q_dup_p16(ptr: *const p16) -> poly16x8_t {
15228    transmute(u16x8::splat(*ptr))
15229}
15230#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
15231#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_p8)"]
15232#[doc = "## Safety"]
15233#[doc = "  * Neon instrinsic unsafe"]
15234#[inline]
15235#[target_feature(enable = "neon")]
15236#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15237#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8"))]
15238#[cfg_attr(
15239    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15240    assert_instr(ld1r)
15241)]
15242#[cfg_attr(
15243    not(target_arch = "arm"),
15244    stable(feature = "neon_intrinsics", since = "1.59.0")
15245)]
15246#[cfg_attr(
15247    target_arch = "arm",
15248    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15249)]
15250pub unsafe fn vld1q_dup_p8(ptr: *const p8) -> poly8x16_t {
15251    transmute(u8x16::splat(*ptr))
15252}
15253#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
15254#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_s16)"]
15255#[doc = "## Safety"]
15256#[doc = "  * Neon instrinsic unsafe"]
15257#[inline]
15258#[target_feature(enable = "neon")]
15259#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15260#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
15261#[cfg_attr(
15262    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15263    assert_instr(ld1r)
15264)]
15265#[cfg_attr(
15266    not(target_arch = "arm"),
15267    stable(feature = "neon_intrinsics", since = "1.59.0")
15268)]
15269#[cfg_attr(
15270    target_arch = "arm",
15271    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15272)]
15273pub unsafe fn vld1q_dup_s16(ptr: *const i16) -> int16x8_t {
15274    transmute(i16x8::splat(*ptr))
15275}
15276#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
15277#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_s32)"]
15278#[doc = "## Safety"]
15279#[doc = "  * Neon instrinsic unsafe"]
15280#[inline]
15281#[target_feature(enable = "neon")]
15282#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15283#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.32"))]
15284#[cfg_attr(
15285    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15286    assert_instr(ld1r)
15287)]
15288#[cfg_attr(
15289    not(target_arch = "arm"),
15290    stable(feature = "neon_intrinsics", since = "1.59.0")
15291)]
15292#[cfg_attr(
15293    target_arch = "arm",
15294    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15295)]
15296pub unsafe fn vld1q_dup_s32(ptr: *const i32) -> int32x4_t {
15297    transmute(i32x4::splat(*ptr))
15298}
15299#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
15300#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_s64)"]
15301#[doc = "## Safety"]
15302#[doc = "  * Neon instrinsic unsafe"]
15303#[inline]
15304#[target_feature(enable = "neon")]
15305#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15306#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vldr"))]
15307#[cfg_attr(
15308    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15309    assert_instr(ld1r)
15310)]
15311#[cfg_attr(
15312    not(target_arch = "arm"),
15313    stable(feature = "neon_intrinsics", since = "1.59.0")
15314)]
15315#[cfg_attr(
15316    target_arch = "arm",
15317    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15318)]
15319pub unsafe fn vld1q_dup_s64(ptr: *const i64) -> int64x2_t {
15320    transmute(i64x2::splat(*ptr))
15321}
15322#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
15323#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_s8)"]
15324#[doc = "## Safety"]
15325#[doc = "  * Neon instrinsic unsafe"]
15326#[inline]
15327#[target_feature(enable = "neon")]
15328#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15329#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8"))]
15330#[cfg_attr(
15331    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15332    assert_instr(ld1r)
15333)]
15334#[cfg_attr(
15335    not(target_arch = "arm"),
15336    stable(feature = "neon_intrinsics", since = "1.59.0")
15337)]
15338#[cfg_attr(
15339    target_arch = "arm",
15340    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15341)]
15342pub unsafe fn vld1q_dup_s8(ptr: *const i8) -> int8x16_t {
15343    transmute(i8x16::splat(*ptr))
15344}
15345#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
15346#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_u16)"]
15347#[doc = "## Safety"]
15348#[doc = "  * Neon instrinsic unsafe"]
15349#[inline]
15350#[target_feature(enable = "neon")]
15351#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15352#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
15353#[cfg_attr(
15354    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15355    assert_instr(ld1r)
15356)]
15357#[cfg_attr(
15358    not(target_arch = "arm"),
15359    stable(feature = "neon_intrinsics", since = "1.59.0")
15360)]
15361#[cfg_attr(
15362    target_arch = "arm",
15363    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15364)]
15365pub unsafe fn vld1q_dup_u16(ptr: *const u16) -> uint16x8_t {
15366    transmute(u16x8::splat(*ptr))
15367}
15368#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
15369#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_u32)"]
15370#[doc = "## Safety"]
15371#[doc = "  * Neon instrinsic unsafe"]
15372#[inline]
15373#[target_feature(enable = "neon")]
15374#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15375#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.32"))]
15376#[cfg_attr(
15377    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15378    assert_instr(ld1r)
15379)]
15380#[cfg_attr(
15381    not(target_arch = "arm"),
15382    stable(feature = "neon_intrinsics", since = "1.59.0")
15383)]
15384#[cfg_attr(
15385    target_arch = "arm",
15386    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15387)]
15388pub unsafe fn vld1q_dup_u32(ptr: *const u32) -> uint32x4_t {
15389    transmute(u32x4::splat(*ptr))
15390}
15391#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
15392#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_u64)"]
15393#[doc = "## Safety"]
15394#[doc = "  * Neon instrinsic unsafe"]
15395#[inline]
15396#[target_feature(enable = "neon")]
15397#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15398#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vldr"))]
15399#[cfg_attr(
15400    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15401    assert_instr(ld1r)
15402)]
15403#[cfg_attr(
15404    not(target_arch = "arm"),
15405    stable(feature = "neon_intrinsics", since = "1.59.0")
15406)]
15407#[cfg_attr(
15408    target_arch = "arm",
15409    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15410)]
15411pub unsafe fn vld1q_dup_u64(ptr: *const u64) -> uint64x2_t {
15412    transmute(u64x2::splat(*ptr))
15413}
15414#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
15415#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_u8)"]
15416#[doc = "## Safety"]
15417#[doc = "  * Neon instrinsic unsafe"]
15418#[inline]
15419#[target_feature(enable = "neon")]
15420#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15421#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8"))]
15422#[cfg_attr(
15423    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15424    assert_instr(ld1r)
15425)]
15426#[cfg_attr(
15427    not(target_arch = "arm"),
15428    stable(feature = "neon_intrinsics", since = "1.59.0")
15429)]
15430#[cfg_attr(
15431    target_arch = "arm",
15432    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15433)]
15434pub unsafe fn vld1q_dup_u8(ptr: *const u8) -> uint8x16_t {
15435    transmute(u8x16::splat(*ptr))
15436}
15437#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
15438#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_p64)"]
15439#[doc = "## Safety"]
15440#[doc = "  * Neon instrinsic unsafe"]
15441#[inline]
15442#[target_feature(enable = "neon,aes")]
15443#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15444#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr))]
15445#[cfg_attr(
15446    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15447    assert_instr(ldr)
15448)]
15449#[cfg_attr(
15450    not(target_arch = "arm"),
15451    stable(feature = "neon_intrinsics", since = "1.59.0")
15452)]
15453#[cfg_attr(
15454    target_arch = "arm",
15455    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15456)]
15457pub unsafe fn vld1_dup_p64(ptr: *const p64) -> poly64x1_t {
15458    let x: poly64x1_t;
15459    #[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
15460    {
15461        x = crate::core_arch::aarch64::vld1_p64(ptr);
15462    }
15463    #[cfg(target_arch = "arm")]
15464    {
15465        x = crate::core_arch::arm::vld1_p64(ptr);
15466    };
15467    x
15468}
15469#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
15470#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_s64)"]
15471#[doc = "## Safety"]
15472#[doc = "  * Neon instrinsic unsafe"]
15473#[inline]
15474#[target_feature(enable = "neon")]
15475#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15476#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr))]
15477#[cfg_attr(
15478    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15479    assert_instr(ldr)
15480)]
15481#[cfg_attr(
15482    not(target_arch = "arm"),
15483    stable(feature = "neon_intrinsics", since = "1.59.0")
15484)]
15485#[cfg_attr(
15486    target_arch = "arm",
15487    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15488)]
15489pub unsafe fn vld1_dup_s64(ptr: *const i64) -> int64x1_t {
15490    let x: int64x1_t;
15491    #[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
15492    {
15493        x = crate::core_arch::aarch64::vld1_s64(ptr);
15494    }
15495    #[cfg(target_arch = "arm")]
15496    {
15497        x = crate::core_arch::arm::vld1_s64(ptr);
15498    };
15499    x
15500}
15501#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
15502#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_u64)"]
15503#[doc = "## Safety"]
15504#[doc = "  * Neon instrinsic unsafe"]
15505#[inline]
15506#[target_feature(enable = "neon")]
15507#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15508#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr))]
15509#[cfg_attr(
15510    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15511    assert_instr(ldr)
15512)]
15513#[cfg_attr(
15514    not(target_arch = "arm"),
15515    stable(feature = "neon_intrinsics", since = "1.59.0")
15516)]
15517#[cfg_attr(
15518    target_arch = "arm",
15519    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15520)]
15521pub unsafe fn vld1_dup_u64(ptr: *const u64) -> uint64x1_t {
15522    let x: uint64x1_t;
15523    #[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
15524    {
15525        x = crate::core_arch::aarch64::vld1_u64(ptr);
15526    }
15527    #[cfg(target_arch = "arm")]
15528    {
15529        x = crate::core_arch::arm::vld1_u64(ptr);
15530    };
15531    x
15532}
15533#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15534#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_f16)"]
15535#[doc = "## Safety"]
15536#[doc = "  * Neon instrinsic unsafe"]
15537#[inline]
15538#[cfg(target_endian = "little")]
15539#[cfg(target_arch = "arm")]
15540#[target_feature(enable = "neon,v7")]
15541#[target_feature(enable = "neon,fp16")]
15542#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
15543#[cfg(not(target_arch = "arm64ec"))]
15544#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
15545pub unsafe fn vld1_f16(ptr: *const f16) -> float16x4_t {
15546    transmute(vld1_v4f16(
15547        ptr as *const i8,
15548        crate::mem::align_of::<f16>() as i32,
15549    ))
15550}
15551#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15552#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_f16)"]
15553#[doc = "## Safety"]
15554#[doc = "  * Neon instrinsic unsafe"]
15555#[inline]
15556#[cfg(target_endian = "big")]
15557#[cfg(target_arch = "arm")]
15558#[target_feature(enable = "neon,v7")]
15559#[target_feature(enable = "neon,fp16")]
15560#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
15561#[cfg(not(target_arch = "arm64ec"))]
15562#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
15563pub unsafe fn vld1_f16(ptr: *const f16) -> float16x4_t {
15564    let ret_val: float16x4_t = transmute(vld1_v4f16(
15565        ptr as *const i8,
15566        crate::mem::align_of::<f16>() as i32,
15567    ));
15568    simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
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_f16)"]
15572#[doc = "## Safety"]
15573#[doc = "  * Neon instrinsic unsafe"]
15574#[inline]
15575#[cfg(target_endian = "little")]
15576#[cfg(target_arch = "arm")]
15577#[target_feature(enable = "neon,v7")]
15578#[target_feature(enable = "neon,fp16")]
15579#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
15580#[cfg(not(target_arch = "arm64ec"))]
15581#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
15582pub unsafe fn vld1q_f16(ptr: *const f16) -> float16x8_t {
15583    transmute(vld1q_v8f16(
15584        ptr as *const i8,
15585        crate::mem::align_of::<f16>() as i32,
15586    ))
15587}
15588#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15589#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_f16)"]
15590#[doc = "## Safety"]
15591#[doc = "  * Neon instrinsic unsafe"]
15592#[inline]
15593#[cfg(target_endian = "big")]
15594#[cfg(target_arch = "arm")]
15595#[target_feature(enable = "neon,v7")]
15596#[target_feature(enable = "neon,fp16")]
15597#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
15598#[cfg(not(target_arch = "arm64ec"))]
15599#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
15600pub unsafe fn vld1q_f16(ptr: *const f16) -> float16x8_t {
15601    let ret_val: float16x8_t = transmute(vld1q_v8f16(
15602        ptr as *const i8,
15603        crate::mem::align_of::<f16>() as i32,
15604    ));
15605    simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
15606}
15607#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
15608#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_f16_x2)"]
15609#[doc = "## Safety"]
15610#[doc = "  * Neon instrinsic unsafe"]
15611#[inline]
15612#[target_feature(enable = "neon")]
15613#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15614#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
15615#[cfg_attr(
15616    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15617    assert_instr(ld1)
15618)]
15619#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
15620#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
15621#[cfg(not(target_arch = "arm64ec"))]
15622pub unsafe fn vld1_f16_x2(a: *const f16) -> float16x4x2_t {
15623    unsafe extern "unadjusted" {
15624        #[cfg_attr(
15625            any(target_arch = "aarch64", target_arch = "arm64ec"),
15626            link_name = "llvm.aarch64.neon.ld1x2.v4f16.p0"
15627        )]
15628        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x2.v4f16.p0")]
15629        fn _vld1_f16_x2(a: *const f16) -> float16x4x2_t;
15630    }
15631    _vld1_f16_x2(a)
15632}
15633#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
15634#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_f16_x3)"]
15635#[doc = "## Safety"]
15636#[doc = "  * Neon instrinsic unsafe"]
15637#[inline]
15638#[target_feature(enable = "neon")]
15639#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15640#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
15641#[cfg_attr(
15642    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15643    assert_instr(ld1)
15644)]
15645#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
15646#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
15647#[cfg(not(target_arch = "arm64ec"))]
15648pub unsafe fn vld1_f16_x3(a: *const f16) -> float16x4x3_t {
15649    unsafe extern "unadjusted" {
15650        #[cfg_attr(
15651            any(target_arch = "aarch64", target_arch = "arm64ec"),
15652            link_name = "llvm.aarch64.neon.ld1x3.v4f16.p0"
15653        )]
15654        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x3.v4f16.p0")]
15655        fn _vld1_f16_x3(a: *const f16) -> float16x4x3_t;
15656    }
15657    _vld1_f16_x3(a)
15658}
15659#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
15660#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_f16_x4)"]
15661#[doc = "## Safety"]
15662#[doc = "  * Neon instrinsic unsafe"]
15663#[inline]
15664#[target_feature(enable = "neon")]
15665#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15666#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
15667#[cfg_attr(
15668    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15669    assert_instr(ld1)
15670)]
15671#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
15672#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
15673#[cfg(not(target_arch = "arm64ec"))]
15674pub unsafe fn vld1_f16_x4(a: *const f16) -> float16x4x4_t {
15675    unsafe extern "unadjusted" {
15676        #[cfg_attr(
15677            any(target_arch = "aarch64", target_arch = "arm64ec"),
15678            link_name = "llvm.aarch64.neon.ld1x4.v4f16.p0"
15679        )]
15680        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x4.v4f16.p0")]
15681        fn _vld1_f16_x4(a: *const f16) -> float16x4x4_t;
15682    }
15683    _vld1_f16_x4(a)
15684}
15685#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
15686#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_f16_x2)"]
15687#[doc = "## Safety"]
15688#[doc = "  * Neon instrinsic unsafe"]
15689#[inline]
15690#[target_feature(enable = "neon")]
15691#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15692#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
15693#[cfg_attr(
15694    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15695    assert_instr(ld1)
15696)]
15697#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
15698#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
15699#[cfg(not(target_arch = "arm64ec"))]
15700pub unsafe fn vld1q_f16_x2(a: *const f16) -> float16x8x2_t {
15701    unsafe extern "unadjusted" {
15702        #[cfg_attr(
15703            any(target_arch = "aarch64", target_arch = "arm64ec"),
15704            link_name = "llvm.aarch64.neon.ld1x2.v8f16.p0"
15705        )]
15706        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x2.v8f16.p0")]
15707        fn _vld1q_f16_x2(a: *const f16) -> float16x8x2_t;
15708    }
15709    _vld1q_f16_x2(a)
15710}
15711#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
15712#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_f16_x3)"]
15713#[doc = "## Safety"]
15714#[doc = "  * Neon instrinsic unsafe"]
15715#[inline]
15716#[target_feature(enable = "neon")]
15717#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15718#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
15719#[cfg_attr(
15720    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15721    assert_instr(ld1)
15722)]
15723#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
15724#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
15725#[cfg(not(target_arch = "arm64ec"))]
15726pub unsafe fn vld1q_f16_x3(a: *const f16) -> float16x8x3_t {
15727    unsafe extern "unadjusted" {
15728        #[cfg_attr(
15729            any(target_arch = "aarch64", target_arch = "arm64ec"),
15730            link_name = "llvm.aarch64.neon.ld1x3.v8f16.p0"
15731        )]
15732        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x3.v8f16.p0")]
15733        fn _vld1q_f16_x3(a: *const f16) -> float16x8x3_t;
15734    }
15735    _vld1q_f16_x3(a)
15736}
15737#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
15738#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_f16_x4)"]
15739#[doc = "## Safety"]
15740#[doc = "  * Neon instrinsic unsafe"]
15741#[inline]
15742#[target_feature(enable = "neon")]
15743#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15744#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
15745#[cfg_attr(
15746    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15747    assert_instr(ld1)
15748)]
15749#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
15750#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
15751#[cfg(not(target_arch = "arm64ec"))]
15752pub unsafe fn vld1q_f16_x4(a: *const f16) -> float16x8x4_t {
15753    unsafe extern "unadjusted" {
15754        #[cfg_attr(
15755            any(target_arch = "aarch64", target_arch = "arm64ec"),
15756            link_name = "llvm.aarch64.neon.ld1x4.v8f16.p0"
15757        )]
15758        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x4.v8f16.p0")]
15759        fn _vld1q_f16_x4(a: *const f16) -> float16x8x4_t;
15760    }
15761    _vld1q_f16_x4(a)
15762}
15763#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15764#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_f32)"]
15765#[doc = "## Safety"]
15766#[doc = "  * Neon instrinsic unsafe"]
15767#[inline]
15768#[cfg(target_arch = "arm")]
15769#[target_feature(enable = "neon,v7")]
15770#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15771#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr))]
15772pub unsafe fn vld1_f32(ptr: *const f32) -> float32x2_t {
15773    const ALIGN: i32 = crate::mem::align_of::<f32>() as i32;
15774    transmute(vld1_v2f32::<ALIGN>(ptr as *const i8))
15775}
15776#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15777#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_f32)"]
15778#[doc = "## Safety"]
15779#[doc = "  * Neon instrinsic unsafe"]
15780#[inline]
15781#[cfg(target_arch = "arm")]
15782#[target_feature(enable = "neon,v7")]
15783#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15784#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.32"))]
15785pub unsafe fn vld1q_f32(ptr: *const f32) -> float32x4_t {
15786    const ALIGN: i32 = crate::mem::align_of::<f32>() as i32;
15787    transmute(vld1q_v4f32::<ALIGN>(ptr as *const i8))
15788}
15789#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15790#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u8)"]
15791#[doc = "## Safety"]
15792#[doc = "  * Neon instrinsic unsafe"]
15793#[inline]
15794#[cfg(target_arch = "arm")]
15795#[target_feature(enable = "neon,v7")]
15796#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15797#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8"))]
15798pub unsafe fn vld1_u8(ptr: *const u8) -> uint8x8_t {
15799    const ALIGN: i32 = crate::mem::align_of::<u8>() as i32;
15800    transmute(vld1_v8i8::<ALIGN>(ptr as *const i8))
15801}
15802#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15803#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u8)"]
15804#[doc = "## Safety"]
15805#[doc = "  * Neon instrinsic unsafe"]
15806#[inline]
15807#[cfg(target_arch = "arm")]
15808#[target_feature(enable = "neon,v7")]
15809#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15810#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8"))]
15811pub unsafe fn vld1q_u8(ptr: *const u8) -> uint8x16_t {
15812    const ALIGN: i32 = crate::mem::align_of::<u8>() as i32;
15813    transmute(vld1q_v16i8::<ALIGN>(ptr as *const i8))
15814}
15815#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15816#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u16)"]
15817#[doc = "## Safety"]
15818#[doc = "  * Neon instrinsic unsafe"]
15819#[inline]
15820#[cfg(target_arch = "arm")]
15821#[target_feature(enable = "neon,v7")]
15822#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15823#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
15824pub unsafe fn vld1_u16(ptr: *const u16) -> uint16x4_t {
15825    const ALIGN: i32 = crate::mem::align_of::<u16>() as i32;
15826    transmute(vld1_v4i16::<ALIGN>(ptr as *const i8))
15827}
15828#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15829#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u16)"]
15830#[doc = "## Safety"]
15831#[doc = "  * Neon instrinsic unsafe"]
15832#[inline]
15833#[cfg(target_arch = "arm")]
15834#[target_feature(enable = "neon,v7")]
15835#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15836#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
15837pub unsafe fn vld1q_u16(ptr: *const u16) -> uint16x8_t {
15838    const ALIGN: i32 = crate::mem::align_of::<u16>() as i32;
15839    transmute(vld1q_v8i16::<ALIGN>(ptr as *const i8))
15840}
15841#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15842#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u32)"]
15843#[doc = "## Safety"]
15844#[doc = "  * Neon instrinsic unsafe"]
15845#[inline]
15846#[cfg(target_arch = "arm")]
15847#[target_feature(enable = "neon,v7")]
15848#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15849#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr))]
15850pub unsafe fn vld1_u32(ptr: *const u32) -> uint32x2_t {
15851    const ALIGN: i32 = crate::mem::align_of::<u32>() as i32;
15852    transmute(vld1_v2i32::<ALIGN>(ptr as *const i8))
15853}
15854#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15855#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u32)"]
15856#[doc = "## Safety"]
15857#[doc = "  * Neon instrinsic unsafe"]
15858#[inline]
15859#[cfg(target_arch = "arm")]
15860#[target_feature(enable = "neon,v7")]
15861#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15862#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.32"))]
15863pub unsafe fn vld1q_u32(ptr: *const u32) -> uint32x4_t {
15864    const ALIGN: i32 = crate::mem::align_of::<u32>() as i32;
15865    transmute(vld1q_v4i32::<ALIGN>(ptr as *const i8))
15866}
15867#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15868#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u64)"]
15869#[doc = "## Safety"]
15870#[doc = "  * Neon instrinsic unsafe"]
15871#[inline]
15872#[cfg(target_arch = "arm")]
15873#[target_feature(enable = "neon,v7")]
15874#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15875#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr))]
15876pub unsafe fn vld1_u64(ptr: *const u64) -> uint64x1_t {
15877    const ALIGN: i32 = crate::mem::align_of::<u64>() as i32;
15878    transmute(vld1_v1i64::<ALIGN>(ptr as *const i8))
15879}
15880#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15881#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u64)"]
15882#[doc = "## Safety"]
15883#[doc = "  * Neon instrinsic unsafe"]
15884#[inline]
15885#[cfg(target_arch = "arm")]
15886#[target_feature(enable = "neon,v7")]
15887#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15888#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.64"))]
15889pub unsafe fn vld1q_u64(ptr: *const u64) -> uint64x2_t {
15890    const ALIGN: i32 = crate::mem::align_of::<u64>() as i32;
15891    transmute(vld1q_v2i64::<ALIGN>(ptr as *const i8))
15892}
15893#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15894#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p8)"]
15895#[doc = "## Safety"]
15896#[doc = "  * Neon instrinsic unsafe"]
15897#[inline]
15898#[cfg(target_arch = "arm")]
15899#[target_feature(enable = "neon,v7")]
15900#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15901#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8"))]
15902pub unsafe fn vld1_p8(ptr: *const p8) -> poly8x8_t {
15903    const ALIGN: i32 = crate::mem::align_of::<p8>() as i32;
15904    transmute(vld1_v8i8::<ALIGN>(ptr as *const i8))
15905}
15906#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15907#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p8)"]
15908#[doc = "## Safety"]
15909#[doc = "  * Neon instrinsic unsafe"]
15910#[inline]
15911#[cfg(target_arch = "arm")]
15912#[target_feature(enable = "neon,v7")]
15913#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15914#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8"))]
15915pub unsafe fn vld1q_p8(ptr: *const p8) -> poly8x16_t {
15916    const ALIGN: i32 = crate::mem::align_of::<p8>() as i32;
15917    transmute(vld1q_v16i8::<ALIGN>(ptr as *const i8))
15918}
15919#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15920#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p16)"]
15921#[doc = "## Safety"]
15922#[doc = "  * Neon instrinsic unsafe"]
15923#[inline]
15924#[cfg(target_arch = "arm")]
15925#[target_feature(enable = "neon,v7")]
15926#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15927#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
15928pub unsafe fn vld1_p16(ptr: *const p16) -> poly16x4_t {
15929    const ALIGN: i32 = crate::mem::align_of::<p16>() as i32;
15930    transmute(vld1_v4i16::<ALIGN>(ptr as *const i8))
15931}
15932#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15933#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p16)"]
15934#[doc = "## Safety"]
15935#[doc = "  * Neon instrinsic unsafe"]
15936#[inline]
15937#[cfg(target_arch = "arm")]
15938#[target_feature(enable = "neon,v7")]
15939#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15940#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
15941pub unsafe fn vld1q_p16(ptr: *const p16) -> poly16x8_t {
15942    const ALIGN: i32 = crate::mem::align_of::<p16>() as i32;
15943    transmute(vld1q_v8i16::<ALIGN>(ptr as *const i8))
15944}
15945#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15946#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p64)"]
15947#[doc = "## Safety"]
15948#[doc = "  * Neon instrinsic unsafe"]
15949#[inline]
15950#[cfg(target_arch = "arm")]
15951#[target_feature(enable = "neon,aes")]
15952#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15953#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.64"))]
15954pub unsafe fn vld1q_p64(ptr: *const p64) -> poly64x2_t {
15955    const ALIGN: i32 = crate::mem::align_of::<p64>() as i32;
15956    transmute(vld1q_v2i64::<ALIGN>(ptr as *const i8))
15957}
15958#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
15959#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_f32_x2)"]
15960#[doc = "## Safety"]
15961#[doc = "  * Neon instrinsic unsafe"]
15962#[inline]
15963#[target_feature(enable = "neon")]
15964#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15965#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
15966#[cfg_attr(
15967    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15968    assert_instr(ld1)
15969)]
15970#[cfg_attr(
15971    not(target_arch = "arm"),
15972    stable(feature = "neon_intrinsics", since = "1.59.0")
15973)]
15974#[cfg_attr(
15975    target_arch = "arm",
15976    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15977)]
15978pub unsafe fn vld1_f32_x2(a: *const f32) -> float32x2x2_t {
15979    unsafe extern "unadjusted" {
15980        #[cfg_attr(
15981            any(target_arch = "aarch64", target_arch = "arm64ec"),
15982            link_name = "llvm.aarch64.neon.ld1x2.v2f32.p0"
15983        )]
15984        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x2.v2f32.p0")]
15985        fn _vld1_f32_x2(a: *const f32) -> float32x2x2_t;
15986    }
15987    _vld1_f32_x2(a)
15988}
15989#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
15990#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_f32_x3)"]
15991#[doc = "## Safety"]
15992#[doc = "  * Neon instrinsic unsafe"]
15993#[inline]
15994#[target_feature(enable = "neon")]
15995#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15996#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
15997#[cfg_attr(
15998    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15999    assert_instr(ld1)
16000)]
16001#[cfg_attr(
16002    not(target_arch = "arm"),
16003    stable(feature = "neon_intrinsics", since = "1.59.0")
16004)]
16005#[cfg_attr(
16006    target_arch = "arm",
16007    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16008)]
16009pub unsafe fn vld1_f32_x3(a: *const f32) -> float32x2x3_t {
16010    unsafe extern "unadjusted" {
16011        #[cfg_attr(
16012            any(target_arch = "aarch64", target_arch = "arm64ec"),
16013            link_name = "llvm.aarch64.neon.ld1x3.v2f32.p0"
16014        )]
16015        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x3.v2f32.p0")]
16016        fn _vld1_f32_x3(a: *const f32) -> float32x2x3_t;
16017    }
16018    _vld1_f32_x3(a)
16019}
16020#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
16021#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_f32_x4)"]
16022#[doc = "## Safety"]
16023#[doc = "  * Neon instrinsic unsafe"]
16024#[inline]
16025#[target_feature(enable = "neon")]
16026#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16027#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
16028#[cfg_attr(
16029    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16030    assert_instr(ld1)
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_f32_x4(a: *const f32) -> float32x2x4_t {
16041    unsafe extern "unadjusted" {
16042        #[cfg_attr(
16043            any(target_arch = "aarch64", target_arch = "arm64ec"),
16044            link_name = "llvm.aarch64.neon.ld1x4.v2f32.p0"
16045        )]
16046        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x4.v2f32.p0")]
16047        fn _vld1_f32_x4(a: *const f32) -> float32x2x4_t;
16048    }
16049    _vld1_f32_x4(a)
16050}
16051#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
16052#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_f32_x2)"]
16053#[doc = "## Safety"]
16054#[doc = "  * Neon instrinsic unsafe"]
16055#[inline]
16056#[target_feature(enable = "neon")]
16057#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16058#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
16059#[cfg_attr(
16060    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16061    assert_instr(ld1)
16062)]
16063#[cfg_attr(
16064    not(target_arch = "arm"),
16065    stable(feature = "neon_intrinsics", since = "1.59.0")
16066)]
16067#[cfg_attr(
16068    target_arch = "arm",
16069    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16070)]
16071pub unsafe fn vld1q_f32_x2(a: *const f32) -> float32x4x2_t {
16072    unsafe extern "unadjusted" {
16073        #[cfg_attr(
16074            any(target_arch = "aarch64", target_arch = "arm64ec"),
16075            link_name = "llvm.aarch64.neon.ld1x2.v4f32.p0"
16076        )]
16077        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x2.v4f32.p0")]
16078        fn _vld1q_f32_x2(a: *const f32) -> float32x4x2_t;
16079    }
16080    _vld1q_f32_x2(a)
16081}
16082#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
16083#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_f32_x3)"]
16084#[doc = "## Safety"]
16085#[doc = "  * Neon instrinsic unsafe"]
16086#[inline]
16087#[target_feature(enable = "neon")]
16088#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16089#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
16090#[cfg_attr(
16091    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16092    assert_instr(ld1)
16093)]
16094#[cfg_attr(
16095    not(target_arch = "arm"),
16096    stable(feature = "neon_intrinsics", since = "1.59.0")
16097)]
16098#[cfg_attr(
16099    target_arch = "arm",
16100    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16101)]
16102pub unsafe fn vld1q_f32_x3(a: *const f32) -> float32x4x3_t {
16103    unsafe extern "unadjusted" {
16104        #[cfg_attr(
16105            any(target_arch = "aarch64", target_arch = "arm64ec"),
16106            link_name = "llvm.aarch64.neon.ld1x3.v4f32.p0"
16107        )]
16108        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x3.v4f32.p0")]
16109        fn _vld1q_f32_x3(a: *const f32) -> float32x4x3_t;
16110    }
16111    _vld1q_f32_x3(a)
16112}
16113#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
16114#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_f32_x4)"]
16115#[doc = "## Safety"]
16116#[doc = "  * Neon instrinsic unsafe"]
16117#[inline]
16118#[target_feature(enable = "neon")]
16119#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16120#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
16121#[cfg_attr(
16122    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16123    assert_instr(ld1)
16124)]
16125#[cfg_attr(
16126    not(target_arch = "arm"),
16127    stable(feature = "neon_intrinsics", since = "1.59.0")
16128)]
16129#[cfg_attr(
16130    target_arch = "arm",
16131    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16132)]
16133pub unsafe fn vld1q_f32_x4(a: *const f32) -> float32x4x4_t {
16134    unsafe extern "unadjusted" {
16135        #[cfg_attr(
16136            any(target_arch = "aarch64", target_arch = "arm64ec"),
16137            link_name = "llvm.aarch64.neon.ld1x4.v4f32.p0"
16138        )]
16139        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x4.v4f32.p0")]
16140        fn _vld1q_f32_x4(a: *const f32) -> float32x4x4_t;
16141    }
16142    _vld1q_f32_x4(a)
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/vld1_lane_f16)"]
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#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1, LANE = 0))]
16152#[cfg_attr(
16153    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16154    assert_instr(ld1, LANE = 0)
16155)]
16156#[rustc_legacy_const_generics(2)]
16157#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
16158#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
16159#[cfg(not(target_arch = "arm64ec"))]
16160pub unsafe fn vld1_lane_f16<const LANE: i32>(ptr: *const f16, src: float16x4_t) -> float16x4_t {
16161    static_assert_uimm_bits!(LANE, 2);
16162    simd_insert!(src, LANE as u32, *ptr)
16163}
16164#[doc = "Load one single-element structure to one lane of one register"]
16165#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_lane_f16)"]
16166#[doc = "## Safety"]
16167#[doc = "  * Neon instrinsic unsafe"]
16168#[inline]
16169#[target_feature(enable = "neon")]
16170#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16171#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1, LANE = 0))]
16172#[cfg_attr(
16173    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16174    assert_instr(ld1, LANE = 0)
16175)]
16176#[rustc_legacy_const_generics(2)]
16177#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
16178#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
16179#[cfg(not(target_arch = "arm64ec"))]
16180pub unsafe fn vld1q_lane_f16<const LANE: i32>(ptr: *const f16, src: float16x8_t) -> float16x8_t {
16181    static_assert_uimm_bits!(LANE, 3);
16182    simd_insert!(src, LANE as u32, *ptr)
16183}
16184#[doc = "Load one single-element structure to one lane of one register."]
16185#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_lane_f32)"]
16186#[doc = "## Safety"]
16187#[doc = "  * Neon instrinsic unsafe"]
16188#[inline]
16189#[target_feature(enable = "neon")]
16190#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16191#[rustc_legacy_const_generics(2)]
16192#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.32", LANE = 1))]
16193#[cfg_attr(
16194    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16195    assert_instr(ld1, LANE = 1)
16196)]
16197#[cfg_attr(
16198    not(target_arch = "arm"),
16199    stable(feature = "neon_intrinsics", since = "1.59.0")
16200)]
16201#[cfg_attr(
16202    target_arch = "arm",
16203    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16204)]
16205pub unsafe fn vld1_lane_f32<const LANE: i32>(ptr: *const f32, src: float32x2_t) -> float32x2_t {
16206    static_assert_uimm_bits!(LANE, 1);
16207    simd_insert!(src, LANE as u32, *ptr)
16208}
16209#[doc = "Load one single-element structure to one lane of one register."]
16210#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_lane_p16)"]
16211#[doc = "## Safety"]
16212#[doc = "  * Neon instrinsic unsafe"]
16213#[inline]
16214#[target_feature(enable = "neon")]
16215#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16216#[rustc_legacy_const_generics(2)]
16217#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16", LANE = 3))]
16218#[cfg_attr(
16219    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16220    assert_instr(ld1, LANE = 3)
16221)]
16222#[cfg_attr(
16223    not(target_arch = "arm"),
16224    stable(feature = "neon_intrinsics", since = "1.59.0")
16225)]
16226#[cfg_attr(
16227    target_arch = "arm",
16228    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16229)]
16230pub unsafe fn vld1_lane_p16<const LANE: i32>(ptr: *const p16, src: poly16x4_t) -> poly16x4_t {
16231    static_assert_uimm_bits!(LANE, 2);
16232    simd_insert!(src, LANE as u32, *ptr)
16233}
16234#[doc = "Load one single-element structure to one lane of one register."]
16235#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_lane_p8)"]
16236#[doc = "## Safety"]
16237#[doc = "  * Neon instrinsic unsafe"]
16238#[inline]
16239#[target_feature(enable = "neon")]
16240#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16241#[rustc_legacy_const_generics(2)]
16242#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8", LANE = 7))]
16243#[cfg_attr(
16244    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16245    assert_instr(ld1, LANE = 7)
16246)]
16247#[cfg_attr(
16248    not(target_arch = "arm"),
16249    stable(feature = "neon_intrinsics", since = "1.59.0")
16250)]
16251#[cfg_attr(
16252    target_arch = "arm",
16253    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16254)]
16255pub unsafe fn vld1_lane_p8<const LANE: i32>(ptr: *const p8, src: poly8x8_t) -> poly8x8_t {
16256    static_assert_uimm_bits!(LANE, 3);
16257    simd_insert!(src, LANE as u32, *ptr)
16258}
16259#[doc = "Load one single-element structure to one lane of one register."]
16260#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_lane_s16)"]
16261#[doc = "## Safety"]
16262#[doc = "  * Neon instrinsic unsafe"]
16263#[inline]
16264#[target_feature(enable = "neon")]
16265#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16266#[rustc_legacy_const_generics(2)]
16267#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16", LANE = 3))]
16268#[cfg_attr(
16269    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16270    assert_instr(ld1, LANE = 3)
16271)]
16272#[cfg_attr(
16273    not(target_arch = "arm"),
16274    stable(feature = "neon_intrinsics", since = "1.59.0")
16275)]
16276#[cfg_attr(
16277    target_arch = "arm",
16278    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16279)]
16280pub unsafe fn vld1_lane_s16<const LANE: i32>(ptr: *const i16, src: int16x4_t) -> int16x4_t {
16281    static_assert_uimm_bits!(LANE, 2);
16282    simd_insert!(src, LANE as u32, *ptr)
16283}
16284#[doc = "Load one single-element structure to one lane of one register."]
16285#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_lane_s32)"]
16286#[doc = "## Safety"]
16287#[doc = "  * Neon instrinsic unsafe"]
16288#[inline]
16289#[target_feature(enable = "neon")]
16290#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16291#[rustc_legacy_const_generics(2)]
16292#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.32", LANE = 1))]
16293#[cfg_attr(
16294    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16295    assert_instr(ld1, LANE = 1)
16296)]
16297#[cfg_attr(
16298    not(target_arch = "arm"),
16299    stable(feature = "neon_intrinsics", since = "1.59.0")
16300)]
16301#[cfg_attr(
16302    target_arch = "arm",
16303    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16304)]
16305pub unsafe fn vld1_lane_s32<const LANE: i32>(ptr: *const i32, src: int32x2_t) -> int32x2_t {
16306    static_assert_uimm_bits!(LANE, 1);
16307    simd_insert!(src, LANE as u32, *ptr)
16308}
16309#[doc = "Load one single-element structure to one lane of one register."]
16310#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_lane_s64)"]
16311#[doc = "## Safety"]
16312#[doc = "  * Neon instrinsic unsafe"]
16313#[inline]
16314#[target_feature(enable = "neon")]
16315#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16316#[rustc_legacy_const_generics(2)]
16317#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr, LANE = 0))]
16318#[cfg_attr(
16319    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16320    assert_instr(ldr, LANE = 0)
16321)]
16322#[cfg_attr(
16323    not(target_arch = "arm"),
16324    stable(feature = "neon_intrinsics", since = "1.59.0")
16325)]
16326#[cfg_attr(
16327    target_arch = "arm",
16328    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16329)]
16330pub unsafe fn vld1_lane_s64<const LANE: i32>(ptr: *const i64, src: int64x1_t) -> int64x1_t {
16331    static_assert!(LANE == 0);
16332    simd_insert!(src, LANE as u32, *ptr)
16333}
16334#[doc = "Load one single-element structure to one lane of one register."]
16335#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_lane_s8)"]
16336#[doc = "## Safety"]
16337#[doc = "  * Neon instrinsic unsafe"]
16338#[inline]
16339#[target_feature(enable = "neon")]
16340#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16341#[rustc_legacy_const_generics(2)]
16342#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8", LANE = 7))]
16343#[cfg_attr(
16344    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16345    assert_instr(ld1, LANE = 7)
16346)]
16347#[cfg_attr(
16348    not(target_arch = "arm"),
16349    stable(feature = "neon_intrinsics", since = "1.59.0")
16350)]
16351#[cfg_attr(
16352    target_arch = "arm",
16353    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16354)]
16355pub unsafe fn vld1_lane_s8<const LANE: i32>(ptr: *const i8, src: int8x8_t) -> int8x8_t {
16356    static_assert_uimm_bits!(LANE, 3);
16357    simd_insert!(src, LANE as u32, *ptr)
16358}
16359#[doc = "Load one single-element structure to one lane of one register."]
16360#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_lane_u16)"]
16361#[doc = "## Safety"]
16362#[doc = "  * Neon instrinsic unsafe"]
16363#[inline]
16364#[target_feature(enable = "neon")]
16365#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16366#[rustc_legacy_const_generics(2)]
16367#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16", LANE = 3))]
16368#[cfg_attr(
16369    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16370    assert_instr(ld1, LANE = 3)
16371)]
16372#[cfg_attr(
16373    not(target_arch = "arm"),
16374    stable(feature = "neon_intrinsics", since = "1.59.0")
16375)]
16376#[cfg_attr(
16377    target_arch = "arm",
16378    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16379)]
16380pub unsafe fn vld1_lane_u16<const LANE: i32>(ptr: *const u16, src: uint16x4_t) -> uint16x4_t {
16381    static_assert_uimm_bits!(LANE, 2);
16382    simd_insert!(src, LANE as u32, *ptr)
16383}
16384#[doc = "Load one single-element structure to one lane of one register."]
16385#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_lane_u32)"]
16386#[doc = "## Safety"]
16387#[doc = "  * Neon instrinsic unsafe"]
16388#[inline]
16389#[target_feature(enable = "neon")]
16390#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16391#[rustc_legacy_const_generics(2)]
16392#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.32", LANE = 1))]
16393#[cfg_attr(
16394    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16395    assert_instr(ld1, LANE = 1)
16396)]
16397#[cfg_attr(
16398    not(target_arch = "arm"),
16399    stable(feature = "neon_intrinsics", since = "1.59.0")
16400)]
16401#[cfg_attr(
16402    target_arch = "arm",
16403    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16404)]
16405pub unsafe fn vld1_lane_u32<const LANE: i32>(ptr: *const u32, src: uint32x2_t) -> uint32x2_t {
16406    static_assert_uimm_bits!(LANE, 1);
16407    simd_insert!(src, LANE as u32, *ptr)
16408}
16409#[doc = "Load one single-element structure to one lane of one register."]
16410#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_lane_u64)"]
16411#[doc = "## Safety"]
16412#[doc = "  * Neon instrinsic unsafe"]
16413#[inline]
16414#[target_feature(enable = "neon")]
16415#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16416#[rustc_legacy_const_generics(2)]
16417#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr, LANE = 0))]
16418#[cfg_attr(
16419    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16420    assert_instr(ldr, LANE = 0)
16421)]
16422#[cfg_attr(
16423    not(target_arch = "arm"),
16424    stable(feature = "neon_intrinsics", since = "1.59.0")
16425)]
16426#[cfg_attr(
16427    target_arch = "arm",
16428    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16429)]
16430pub unsafe fn vld1_lane_u64<const LANE: i32>(ptr: *const u64, src: uint64x1_t) -> uint64x1_t {
16431    static_assert!(LANE == 0);
16432    simd_insert!(src, LANE as u32, *ptr)
16433}
16434#[doc = "Load one single-element structure to one lane of one register."]
16435#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_lane_u8)"]
16436#[doc = "## Safety"]
16437#[doc = "  * Neon instrinsic unsafe"]
16438#[inline]
16439#[target_feature(enable = "neon")]
16440#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16441#[rustc_legacy_const_generics(2)]
16442#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8", LANE = 7))]
16443#[cfg_attr(
16444    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16445    assert_instr(ld1, LANE = 7)
16446)]
16447#[cfg_attr(
16448    not(target_arch = "arm"),
16449    stable(feature = "neon_intrinsics", since = "1.59.0")
16450)]
16451#[cfg_attr(
16452    target_arch = "arm",
16453    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16454)]
16455pub unsafe fn vld1_lane_u8<const LANE: i32>(ptr: *const u8, src: uint8x8_t) -> uint8x8_t {
16456    static_assert_uimm_bits!(LANE, 3);
16457    simd_insert!(src, LANE as u32, *ptr)
16458}
16459#[doc = "Load one single-element structure to one lane of one register."]
16460#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_lane_f32)"]
16461#[doc = "## Safety"]
16462#[doc = "  * Neon instrinsic unsafe"]
16463#[inline]
16464#[target_feature(enable = "neon")]
16465#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16466#[rustc_legacy_const_generics(2)]
16467#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.32", LANE = 3))]
16468#[cfg_attr(
16469    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16470    assert_instr(ld1, LANE = 3)
16471)]
16472#[cfg_attr(
16473    not(target_arch = "arm"),
16474    stable(feature = "neon_intrinsics", since = "1.59.0")
16475)]
16476#[cfg_attr(
16477    target_arch = "arm",
16478    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16479)]
16480pub unsafe fn vld1q_lane_f32<const LANE: i32>(ptr: *const f32, src: float32x4_t) -> float32x4_t {
16481    static_assert_uimm_bits!(LANE, 2);
16482    simd_insert!(src, LANE as u32, *ptr)
16483}
16484#[doc = "Load one single-element structure to one lane of one register."]
16485#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_lane_p16)"]
16486#[doc = "## Safety"]
16487#[doc = "  * Neon instrinsic unsafe"]
16488#[inline]
16489#[target_feature(enable = "neon")]
16490#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16491#[rustc_legacy_const_generics(2)]
16492#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16", LANE = 7))]
16493#[cfg_attr(
16494    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16495    assert_instr(ld1, LANE = 7)
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 vld1q_lane_p16<const LANE: i32>(ptr: *const p16, src: poly16x8_t) -> poly16x8_t {
16506    static_assert_uimm_bits!(LANE, 3);
16507    simd_insert!(src, LANE as u32, *ptr)
16508}
16509#[doc = "Load one single-element structure to one lane of one register."]
16510#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_lane_p8)"]
16511#[doc = "## Safety"]
16512#[doc = "  * Neon instrinsic unsafe"]
16513#[inline]
16514#[target_feature(enable = "neon")]
16515#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16516#[rustc_legacy_const_generics(2)]
16517#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8", LANE = 15))]
16518#[cfg_attr(
16519    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16520    assert_instr(ld1, LANE = 15)
16521)]
16522#[cfg_attr(
16523    not(target_arch = "arm"),
16524    stable(feature = "neon_intrinsics", since = "1.59.0")
16525)]
16526#[cfg_attr(
16527    target_arch = "arm",
16528    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16529)]
16530pub unsafe fn vld1q_lane_p8<const LANE: i32>(ptr: *const p8, src: poly8x16_t) -> poly8x16_t {
16531    static_assert_uimm_bits!(LANE, 4);
16532    simd_insert!(src, LANE as u32, *ptr)
16533}
16534#[doc = "Load one single-element structure to one lane of one register."]
16535#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_lane_s16)"]
16536#[doc = "## Safety"]
16537#[doc = "  * Neon instrinsic unsafe"]
16538#[inline]
16539#[target_feature(enable = "neon")]
16540#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16541#[rustc_legacy_const_generics(2)]
16542#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16", LANE = 7))]
16543#[cfg_attr(
16544    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16545    assert_instr(ld1, LANE = 7)
16546)]
16547#[cfg_attr(
16548    not(target_arch = "arm"),
16549    stable(feature = "neon_intrinsics", since = "1.59.0")
16550)]
16551#[cfg_attr(
16552    target_arch = "arm",
16553    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16554)]
16555pub unsafe fn vld1q_lane_s16<const LANE: i32>(ptr: *const i16, src: int16x8_t) -> int16x8_t {
16556    static_assert_uimm_bits!(LANE, 3);
16557    simd_insert!(src, LANE as u32, *ptr)
16558}
16559#[doc = "Load one single-element structure to one lane of one register."]
16560#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_lane_s32)"]
16561#[doc = "## Safety"]
16562#[doc = "  * Neon instrinsic unsafe"]
16563#[inline]
16564#[target_feature(enable = "neon")]
16565#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16566#[rustc_legacy_const_generics(2)]
16567#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.32", LANE = 3))]
16568#[cfg_attr(
16569    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16570    assert_instr(ld1, LANE = 3)
16571)]
16572#[cfg_attr(
16573    not(target_arch = "arm"),
16574    stable(feature = "neon_intrinsics", since = "1.59.0")
16575)]
16576#[cfg_attr(
16577    target_arch = "arm",
16578    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16579)]
16580pub unsafe fn vld1q_lane_s32<const LANE: i32>(ptr: *const i32, src: int32x4_t) -> int32x4_t {
16581    static_assert_uimm_bits!(LANE, 2);
16582    simd_insert!(src, LANE as u32, *ptr)
16583}
16584#[doc = "Load one single-element structure to one lane of one register."]
16585#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_lane_s64)"]
16586#[doc = "## Safety"]
16587#[doc = "  * Neon instrinsic unsafe"]
16588#[inline]
16589#[target_feature(enable = "neon")]
16590#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16591#[rustc_legacy_const_generics(2)]
16592#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr, LANE = 1))]
16593#[cfg_attr(
16594    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16595    assert_instr(ld1, LANE = 1)
16596)]
16597#[cfg_attr(
16598    not(target_arch = "arm"),
16599    stable(feature = "neon_intrinsics", since = "1.59.0")
16600)]
16601#[cfg_attr(
16602    target_arch = "arm",
16603    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16604)]
16605pub unsafe fn vld1q_lane_s64<const LANE: i32>(ptr: *const i64, src: int64x2_t) -> int64x2_t {
16606    static_assert_uimm_bits!(LANE, 1);
16607    simd_insert!(src, LANE as u32, *ptr)
16608}
16609#[doc = "Load one single-element structure to one lane of one register."]
16610#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_lane_s8)"]
16611#[doc = "## Safety"]
16612#[doc = "  * Neon instrinsic unsafe"]
16613#[inline]
16614#[target_feature(enable = "neon")]
16615#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16616#[rustc_legacy_const_generics(2)]
16617#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8", LANE = 15))]
16618#[cfg_attr(
16619    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16620    assert_instr(ld1, LANE = 15)
16621)]
16622#[cfg_attr(
16623    not(target_arch = "arm"),
16624    stable(feature = "neon_intrinsics", since = "1.59.0")
16625)]
16626#[cfg_attr(
16627    target_arch = "arm",
16628    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16629)]
16630pub unsafe fn vld1q_lane_s8<const LANE: i32>(ptr: *const i8, src: int8x16_t) -> int8x16_t {
16631    static_assert_uimm_bits!(LANE, 4);
16632    simd_insert!(src, LANE as u32, *ptr)
16633}
16634#[doc = "Load one single-element structure to one lane of one register."]
16635#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_lane_u16)"]
16636#[doc = "## Safety"]
16637#[doc = "  * Neon instrinsic unsafe"]
16638#[inline]
16639#[target_feature(enable = "neon")]
16640#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16641#[rustc_legacy_const_generics(2)]
16642#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16", LANE = 7))]
16643#[cfg_attr(
16644    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16645    assert_instr(ld1, LANE = 7)
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_lane_u16<const LANE: i32>(ptr: *const u16, src: uint16x8_t) -> uint16x8_t {
16656    static_assert_uimm_bits!(LANE, 3);
16657    simd_insert!(src, LANE as u32, *ptr)
16658}
16659#[doc = "Load one single-element structure to one lane of one register."]
16660#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_lane_u32)"]
16661#[doc = "## Safety"]
16662#[doc = "  * Neon instrinsic unsafe"]
16663#[inline]
16664#[target_feature(enable = "neon")]
16665#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16666#[rustc_legacy_const_generics(2)]
16667#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.32", LANE = 3))]
16668#[cfg_attr(
16669    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16670    assert_instr(ld1, LANE = 3)
16671)]
16672#[cfg_attr(
16673    not(target_arch = "arm"),
16674    stable(feature = "neon_intrinsics", since = "1.59.0")
16675)]
16676#[cfg_attr(
16677    target_arch = "arm",
16678    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16679)]
16680pub unsafe fn vld1q_lane_u32<const LANE: i32>(ptr: *const u32, src: uint32x4_t) -> uint32x4_t {
16681    static_assert_uimm_bits!(LANE, 2);
16682    simd_insert!(src, LANE as u32, *ptr)
16683}
16684#[doc = "Load one single-element structure to one lane of one register."]
16685#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_lane_u64)"]
16686#[doc = "## Safety"]
16687#[doc = "  * Neon instrinsic unsafe"]
16688#[inline]
16689#[target_feature(enable = "neon")]
16690#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16691#[rustc_legacy_const_generics(2)]
16692#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr, LANE = 1))]
16693#[cfg_attr(
16694    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16695    assert_instr(ld1, LANE = 1)
16696)]
16697#[cfg_attr(
16698    not(target_arch = "arm"),
16699    stable(feature = "neon_intrinsics", since = "1.59.0")
16700)]
16701#[cfg_attr(
16702    target_arch = "arm",
16703    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16704)]
16705pub unsafe fn vld1q_lane_u64<const LANE: i32>(ptr: *const u64, src: uint64x2_t) -> uint64x2_t {
16706    static_assert_uimm_bits!(LANE, 1);
16707    simd_insert!(src, LANE as u32, *ptr)
16708}
16709#[doc = "Load one single-element structure to one lane of one register."]
16710#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_lane_u8)"]
16711#[doc = "## Safety"]
16712#[doc = "  * Neon instrinsic unsafe"]
16713#[inline]
16714#[target_feature(enable = "neon")]
16715#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16716#[rustc_legacy_const_generics(2)]
16717#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8", LANE = 15))]
16718#[cfg_attr(
16719    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16720    assert_instr(ld1, LANE = 15)
16721)]
16722#[cfg_attr(
16723    not(target_arch = "arm"),
16724    stable(feature = "neon_intrinsics", since = "1.59.0")
16725)]
16726#[cfg_attr(
16727    target_arch = "arm",
16728    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16729)]
16730pub unsafe fn vld1q_lane_u8<const LANE: i32>(ptr: *const u8, src: uint8x16_t) -> uint8x16_t {
16731    static_assert_uimm_bits!(LANE, 4);
16732    simd_insert!(src, LANE as u32, *ptr)
16733}
16734#[doc = "Load one single-element structure to one lane of one register."]
16735#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_lane_p64)"]
16736#[doc = "## Safety"]
16737#[doc = "  * Neon instrinsic unsafe"]
16738#[inline]
16739#[target_feature(enable = "neon,aes")]
16740#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16741#[rustc_legacy_const_generics(2)]
16742#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr, LANE = 0))]
16743#[cfg_attr(
16744    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16745    assert_instr(ldr, LANE = 0)
16746)]
16747#[cfg_attr(
16748    not(target_arch = "arm"),
16749    stable(feature = "neon_intrinsics", since = "1.59.0")
16750)]
16751#[cfg_attr(
16752    target_arch = "arm",
16753    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16754)]
16755pub unsafe fn vld1_lane_p64<const LANE: i32>(ptr: *const p64, src: poly64x1_t) -> poly64x1_t {
16756    static_assert!(LANE == 0);
16757    simd_insert!(src, LANE as u32, *ptr)
16758}
16759#[doc = "Load one single-element structure to one lane of one register."]
16760#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_lane_p64)"]
16761#[doc = "## Safety"]
16762#[doc = "  * Neon instrinsic unsafe"]
16763#[inline]
16764#[target_feature(enable = "neon,aes")]
16765#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16766#[rustc_legacy_const_generics(2)]
16767#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr, LANE = 1))]
16768#[cfg_attr(
16769    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16770    assert_instr(ld1, LANE = 1)
16771)]
16772#[cfg_attr(
16773    not(target_arch = "arm"),
16774    stable(feature = "neon_intrinsics", since = "1.59.0")
16775)]
16776#[cfg_attr(
16777    target_arch = "arm",
16778    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16779)]
16780pub unsafe fn vld1q_lane_p64<const LANE: i32>(ptr: *const p64, src: poly64x2_t) -> poly64x2_t {
16781    static_assert_uimm_bits!(LANE, 1);
16782    simd_insert!(src, LANE as u32, *ptr)
16783}
16784#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
16785#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p64)"]
16786#[doc = "## Safety"]
16787#[doc = "  * Neon instrinsic unsafe"]
16788#[inline]
16789#[cfg(target_arch = "arm")]
16790#[target_feature(enable = "neon,aes")]
16791#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
16792#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr))]
16793pub unsafe fn vld1_p64(ptr: *const p64) -> poly64x1_t {
16794    let a: *const i8 = ptr as *const i8;
16795    let b: i32 = crate::mem::align_of::<p64>() as i32;
16796    unsafe extern "unadjusted" {
16797        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1.v1i64")]
16798        fn _vld1_v1i64(a: *const i8, b: i32) -> int64x1_t;
16799    }
16800    transmute(_vld1_v1i64(a, b))
16801}
16802#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
16803#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p64_x2)"]
16804#[doc = "## Safety"]
16805#[doc = "  * Neon instrinsic unsafe"]
16806#[inline]
16807#[target_feature(enable = "neon,aes")]
16808#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
16809#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
16810#[cfg_attr(
16811    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16812    assert_instr(ld1)
16813)]
16814#[cfg_attr(
16815    not(target_arch = "arm"),
16816    stable(feature = "neon_intrinsics", since = "1.59.0")
16817)]
16818#[cfg_attr(
16819    target_arch = "arm",
16820    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16821)]
16822pub unsafe fn vld1_p64_x2(a: *const p64) -> poly64x1x2_t {
16823    transmute(vld1_s64_x2(transmute(a)))
16824}
16825#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
16826#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p64_x3)"]
16827#[doc = "## Safety"]
16828#[doc = "  * Neon instrinsic unsafe"]
16829#[inline]
16830#[target_feature(enable = "neon,aes")]
16831#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
16832#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
16833#[cfg_attr(
16834    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16835    assert_instr(ld1)
16836)]
16837#[cfg_attr(
16838    not(target_arch = "arm"),
16839    stable(feature = "neon_intrinsics", since = "1.59.0")
16840)]
16841#[cfg_attr(
16842    target_arch = "arm",
16843    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16844)]
16845pub unsafe fn vld1_p64_x3(a: *const p64) -> poly64x1x3_t {
16846    transmute(vld1_s64_x3(transmute(a)))
16847}
16848#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
16849#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p64_x4)"]
16850#[doc = "## Safety"]
16851#[doc = "  * Neon instrinsic unsafe"]
16852#[inline]
16853#[target_feature(enable = "neon,aes")]
16854#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
16855#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
16856#[cfg_attr(
16857    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16858    assert_instr(ld1)
16859)]
16860#[cfg_attr(
16861    not(target_arch = "arm"),
16862    stable(feature = "neon_intrinsics", since = "1.59.0")
16863)]
16864#[cfg_attr(
16865    target_arch = "arm",
16866    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16867)]
16868pub unsafe fn vld1_p64_x4(a: *const p64) -> poly64x1x4_t {
16869    transmute(vld1_s64_x4(transmute(a)))
16870}
16871#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
16872#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p64_x2)"]
16873#[doc = "## Safety"]
16874#[doc = "  * Neon instrinsic unsafe"]
16875#[inline]
16876#[cfg(target_endian = "little")]
16877#[target_feature(enable = "neon,aes")]
16878#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
16879#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
16880#[cfg_attr(
16881    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16882    assert_instr(ld1)
16883)]
16884#[cfg_attr(
16885    not(target_arch = "arm"),
16886    stable(feature = "neon_intrinsics", since = "1.59.0")
16887)]
16888#[cfg_attr(
16889    target_arch = "arm",
16890    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16891)]
16892pub unsafe fn vld1q_p64_x2(a: *const p64) -> poly64x2x2_t {
16893    transmute(vld1q_s64_x2(transmute(a)))
16894}
16895#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
16896#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p64_x2)"]
16897#[doc = "## Safety"]
16898#[doc = "  * Neon instrinsic unsafe"]
16899#[inline]
16900#[cfg(target_endian = "big")]
16901#[target_feature(enable = "neon,aes")]
16902#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
16903#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
16904#[cfg_attr(
16905    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16906    assert_instr(ld1)
16907)]
16908#[cfg_attr(
16909    not(target_arch = "arm"),
16910    stable(feature = "neon_intrinsics", since = "1.59.0")
16911)]
16912#[cfg_attr(
16913    target_arch = "arm",
16914    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16915)]
16916pub unsafe fn vld1q_p64_x2(a: *const p64) -> poly64x2x2_t {
16917    let mut ret_val: poly64x2x2_t = transmute(vld1q_s64_x2(transmute(a)));
16918    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [1, 0]) };
16919    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [1, 0]) };
16920    ret_val
16921}
16922#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
16923#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p64_x3)"]
16924#[doc = "## Safety"]
16925#[doc = "  * Neon instrinsic unsafe"]
16926#[inline]
16927#[cfg(target_endian = "little")]
16928#[target_feature(enable = "neon,aes")]
16929#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
16930#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
16931#[cfg_attr(
16932    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16933    assert_instr(ld1)
16934)]
16935#[cfg_attr(
16936    not(target_arch = "arm"),
16937    stable(feature = "neon_intrinsics", since = "1.59.0")
16938)]
16939#[cfg_attr(
16940    target_arch = "arm",
16941    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16942)]
16943pub unsafe fn vld1q_p64_x3(a: *const p64) -> poly64x2x3_t {
16944    transmute(vld1q_s64_x3(transmute(a)))
16945}
16946#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
16947#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p64_x3)"]
16948#[doc = "## Safety"]
16949#[doc = "  * Neon instrinsic unsafe"]
16950#[inline]
16951#[cfg(target_endian = "big")]
16952#[target_feature(enable = "neon,aes")]
16953#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
16954#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
16955#[cfg_attr(
16956    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16957    assert_instr(ld1)
16958)]
16959#[cfg_attr(
16960    not(target_arch = "arm"),
16961    stable(feature = "neon_intrinsics", since = "1.59.0")
16962)]
16963#[cfg_attr(
16964    target_arch = "arm",
16965    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16966)]
16967pub unsafe fn vld1q_p64_x3(a: *const p64) -> poly64x2x3_t {
16968    let mut ret_val: poly64x2x3_t = transmute(vld1q_s64_x3(transmute(a)));
16969    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [1, 0]) };
16970    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [1, 0]) };
16971    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [1, 0]) };
16972    ret_val
16973}
16974#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
16975#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p64_x4)"]
16976#[doc = "## Safety"]
16977#[doc = "  * Neon instrinsic unsafe"]
16978#[inline]
16979#[cfg(target_endian = "little")]
16980#[target_feature(enable = "neon,aes")]
16981#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
16982#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
16983#[cfg_attr(
16984    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16985    assert_instr(ld1)
16986)]
16987#[cfg_attr(
16988    not(target_arch = "arm"),
16989    stable(feature = "neon_intrinsics", since = "1.59.0")
16990)]
16991#[cfg_attr(
16992    target_arch = "arm",
16993    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16994)]
16995pub unsafe fn vld1q_p64_x4(a: *const p64) -> poly64x2x4_t {
16996    transmute(vld1q_s64_x4(transmute(a)))
16997}
16998#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
16999#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p64_x4)"]
17000#[doc = "## Safety"]
17001#[doc = "  * Neon instrinsic unsafe"]
17002#[inline]
17003#[cfg(target_endian = "big")]
17004#[target_feature(enable = "neon,aes")]
17005#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
17006#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
17007#[cfg_attr(
17008    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17009    assert_instr(ld1)
17010)]
17011#[cfg_attr(
17012    not(target_arch = "arm"),
17013    stable(feature = "neon_intrinsics", since = "1.59.0")
17014)]
17015#[cfg_attr(
17016    target_arch = "arm",
17017    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17018)]
17019pub unsafe fn vld1q_p64_x4(a: *const p64) -> poly64x2x4_t {
17020    let mut ret_val: poly64x2x4_t = transmute(vld1q_s64_x4(transmute(a)));
17021    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [1, 0]) };
17022    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [1, 0]) };
17023    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [1, 0]) };
17024    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [1, 0]) };
17025    ret_val
17026}
17027#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
17028#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s8)"]
17029#[doc = "## Safety"]
17030#[doc = "  * Neon instrinsic unsafe"]
17031#[inline]
17032#[cfg(target_arch = "arm")]
17033#[target_feature(enable = "neon,v7")]
17034#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
17035#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8"))]
17036pub unsafe fn vld1_s8(ptr: *const i8) -> int8x8_t {
17037    const ALIGN: i32 = crate::mem::align_of::<i8>() as i32;
17038    vld1_v8i8::<ALIGN>(ptr as *const i8)
17039}
17040#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
17041#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s8)"]
17042#[doc = "## Safety"]
17043#[doc = "  * Neon instrinsic unsafe"]
17044#[inline]
17045#[cfg(target_arch = "arm")]
17046#[target_feature(enable = "neon,v7")]
17047#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
17048#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8"))]
17049pub unsafe fn vld1q_s8(ptr: *const i8) -> int8x16_t {
17050    const ALIGN: i32 = crate::mem::align_of::<i8>() as i32;
17051    vld1q_v16i8::<ALIGN>(ptr as *const i8)
17052}
17053#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
17054#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s16)"]
17055#[doc = "## Safety"]
17056#[doc = "  * Neon instrinsic unsafe"]
17057#[inline]
17058#[cfg(target_arch = "arm")]
17059#[target_feature(enable = "neon,v7")]
17060#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
17061#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
17062pub unsafe fn vld1_s16(ptr: *const i16) -> int16x4_t {
17063    const ALIGN: i32 = crate::mem::align_of::<i16>() as i32;
17064    vld1_v4i16::<ALIGN>(ptr as *const i8)
17065}
17066#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
17067#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s16)"]
17068#[doc = "## Safety"]
17069#[doc = "  * Neon instrinsic unsafe"]
17070#[inline]
17071#[cfg(target_arch = "arm")]
17072#[target_feature(enable = "neon,v7")]
17073#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
17074#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
17075pub unsafe fn vld1q_s16(ptr: *const i16) -> int16x8_t {
17076    const ALIGN: i32 = crate::mem::align_of::<i16>() as i32;
17077    vld1q_v8i16::<ALIGN>(ptr as *const i8)
17078}
17079#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
17080#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s32)"]
17081#[doc = "## Safety"]
17082#[doc = "  * Neon instrinsic unsafe"]
17083#[inline]
17084#[cfg(target_arch = "arm")]
17085#[target_feature(enable = "neon,v7")]
17086#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
17087#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr))]
17088pub unsafe fn vld1_s32(ptr: *const i32) -> int32x2_t {
17089    const ALIGN: i32 = crate::mem::align_of::<i32>() as i32;
17090    vld1_v2i32::<ALIGN>(ptr as *const i8)
17091}
17092#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
17093#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s32)"]
17094#[doc = "## Safety"]
17095#[doc = "  * Neon instrinsic unsafe"]
17096#[inline]
17097#[cfg(target_arch = "arm")]
17098#[target_feature(enable = "neon,v7")]
17099#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
17100#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.32"))]
17101pub unsafe fn vld1q_s32(ptr: *const i32) -> int32x4_t {
17102    const ALIGN: i32 = crate::mem::align_of::<i32>() as i32;
17103    vld1q_v4i32::<ALIGN>(ptr as *const i8)
17104}
17105#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
17106#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s64)"]
17107#[doc = "## Safety"]
17108#[doc = "  * Neon instrinsic unsafe"]
17109#[inline]
17110#[cfg(target_arch = "arm")]
17111#[target_feature(enable = "neon,v7")]
17112#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
17113#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr))]
17114pub unsafe fn vld1_s64(ptr: *const i64) -> int64x1_t {
17115    const ALIGN: i32 = crate::mem::align_of::<i64>() as i32;
17116    vld1_v1i64::<ALIGN>(ptr as *const i8)
17117}
17118#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
17119#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s64)"]
17120#[doc = "## Safety"]
17121#[doc = "  * Neon instrinsic unsafe"]
17122#[inline]
17123#[cfg(target_arch = "arm")]
17124#[target_feature(enable = "neon,v7")]
17125#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
17126#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.64"))]
17127pub unsafe fn vld1q_s64(ptr: *const i64) -> int64x2_t {
17128    const ALIGN: i32 = crate::mem::align_of::<i64>() as i32;
17129    vld1q_v2i64::<ALIGN>(ptr as *const i8)
17130}
17131#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17132#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s8_x2)"]
17133#[doc = "## Safety"]
17134#[doc = "  * Neon instrinsic unsafe"]
17135#[inline]
17136#[target_feature(enable = "neon")]
17137#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17138#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17139#[cfg_attr(
17140    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17141    assert_instr(ld1)
17142)]
17143#[cfg_attr(
17144    not(target_arch = "arm"),
17145    stable(feature = "neon_intrinsics", since = "1.59.0")
17146)]
17147#[cfg_attr(
17148    target_arch = "arm",
17149    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17150)]
17151pub unsafe fn vld1_s8_x2(a: *const i8) -> int8x8x2_t {
17152    unsafe extern "unadjusted" {
17153        #[cfg_attr(
17154            any(target_arch = "aarch64", target_arch = "arm64ec"),
17155            link_name = "llvm.aarch64.neon.ld1x2.v8i8.p0"
17156        )]
17157        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x2.v8i8.p0")]
17158        fn _vld1_s8_x2(a: *const i8) -> int8x8x2_t;
17159    }
17160    _vld1_s8_x2(a)
17161}
17162#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17163#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s8_x3)"]
17164#[doc = "## Safety"]
17165#[doc = "  * Neon instrinsic unsafe"]
17166#[inline]
17167#[target_feature(enable = "neon")]
17168#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17169#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17170#[cfg_attr(
17171    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17172    assert_instr(ld1)
17173)]
17174#[cfg_attr(
17175    not(target_arch = "arm"),
17176    stable(feature = "neon_intrinsics", since = "1.59.0")
17177)]
17178#[cfg_attr(
17179    target_arch = "arm",
17180    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17181)]
17182pub unsafe fn vld1_s8_x3(a: *const i8) -> int8x8x3_t {
17183    unsafe extern "unadjusted" {
17184        #[cfg_attr(
17185            any(target_arch = "aarch64", target_arch = "arm64ec"),
17186            link_name = "llvm.aarch64.neon.ld1x3.v8i8.p0"
17187        )]
17188        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x3.v8i8.p0")]
17189        fn _vld1_s8_x3(a: *const i8) -> int8x8x3_t;
17190    }
17191    _vld1_s8_x3(a)
17192}
17193#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17194#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s8_x4)"]
17195#[doc = "## Safety"]
17196#[doc = "  * Neon instrinsic unsafe"]
17197#[inline]
17198#[target_feature(enable = "neon")]
17199#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17200#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17201#[cfg_attr(
17202    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17203    assert_instr(ld1)
17204)]
17205#[cfg_attr(
17206    not(target_arch = "arm"),
17207    stable(feature = "neon_intrinsics", since = "1.59.0")
17208)]
17209#[cfg_attr(
17210    target_arch = "arm",
17211    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17212)]
17213pub unsafe fn vld1_s8_x4(a: *const i8) -> int8x8x4_t {
17214    unsafe extern "unadjusted" {
17215        #[cfg_attr(
17216            any(target_arch = "aarch64", target_arch = "arm64ec"),
17217            link_name = "llvm.aarch64.neon.ld1x4.v8i8.p0"
17218        )]
17219        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x4.v8i8.p0")]
17220        fn _vld1_s8_x4(a: *const i8) -> int8x8x4_t;
17221    }
17222    _vld1_s8_x4(a)
17223}
17224#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17225#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s8_x2)"]
17226#[doc = "## Safety"]
17227#[doc = "  * Neon instrinsic unsafe"]
17228#[inline]
17229#[target_feature(enable = "neon")]
17230#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17231#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17232#[cfg_attr(
17233    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17234    assert_instr(ld1)
17235)]
17236#[cfg_attr(
17237    not(target_arch = "arm"),
17238    stable(feature = "neon_intrinsics", since = "1.59.0")
17239)]
17240#[cfg_attr(
17241    target_arch = "arm",
17242    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17243)]
17244pub unsafe fn vld1q_s8_x2(a: *const i8) -> int8x16x2_t {
17245    unsafe extern "unadjusted" {
17246        #[cfg_attr(
17247            any(target_arch = "aarch64", target_arch = "arm64ec"),
17248            link_name = "llvm.aarch64.neon.ld1x2.v16i8.p0"
17249        )]
17250        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x2.v16i8.p0")]
17251        fn _vld1q_s8_x2(a: *const i8) -> int8x16x2_t;
17252    }
17253    _vld1q_s8_x2(a)
17254}
17255#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17256#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s8_x3)"]
17257#[doc = "## Safety"]
17258#[doc = "  * Neon instrinsic unsafe"]
17259#[inline]
17260#[target_feature(enable = "neon")]
17261#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17262#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17263#[cfg_attr(
17264    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17265    assert_instr(ld1)
17266)]
17267#[cfg_attr(
17268    not(target_arch = "arm"),
17269    stable(feature = "neon_intrinsics", since = "1.59.0")
17270)]
17271#[cfg_attr(
17272    target_arch = "arm",
17273    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17274)]
17275pub unsafe fn vld1q_s8_x3(a: *const i8) -> int8x16x3_t {
17276    unsafe extern "unadjusted" {
17277        #[cfg_attr(
17278            any(target_arch = "aarch64", target_arch = "arm64ec"),
17279            link_name = "llvm.aarch64.neon.ld1x3.v16i8.p0"
17280        )]
17281        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x3.v16i8.p0")]
17282        fn _vld1q_s8_x3(a: *const i8) -> int8x16x3_t;
17283    }
17284    _vld1q_s8_x3(a)
17285}
17286#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17287#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s8_x4)"]
17288#[doc = "## Safety"]
17289#[doc = "  * Neon instrinsic unsafe"]
17290#[inline]
17291#[target_feature(enable = "neon")]
17292#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17293#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17294#[cfg_attr(
17295    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17296    assert_instr(ld1)
17297)]
17298#[cfg_attr(
17299    not(target_arch = "arm"),
17300    stable(feature = "neon_intrinsics", since = "1.59.0")
17301)]
17302#[cfg_attr(
17303    target_arch = "arm",
17304    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17305)]
17306pub unsafe fn vld1q_s8_x4(a: *const i8) -> int8x16x4_t {
17307    unsafe extern "unadjusted" {
17308        #[cfg_attr(
17309            any(target_arch = "aarch64", target_arch = "arm64ec"),
17310            link_name = "llvm.aarch64.neon.ld1x4.v16i8.p0"
17311        )]
17312        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x4.v16i8.p0")]
17313        fn _vld1q_s8_x4(a: *const i8) -> int8x16x4_t;
17314    }
17315    _vld1q_s8_x4(a)
17316}
17317#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17318#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s16_x2)"]
17319#[doc = "## Safety"]
17320#[doc = "  * Neon instrinsic unsafe"]
17321#[inline]
17322#[target_feature(enable = "neon")]
17323#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17324#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17325#[cfg_attr(
17326    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17327    assert_instr(ld1)
17328)]
17329#[cfg_attr(
17330    not(target_arch = "arm"),
17331    stable(feature = "neon_intrinsics", since = "1.59.0")
17332)]
17333#[cfg_attr(
17334    target_arch = "arm",
17335    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17336)]
17337pub unsafe fn vld1_s16_x2(a: *const i16) -> int16x4x2_t {
17338    unsafe extern "unadjusted" {
17339        #[cfg_attr(
17340            any(target_arch = "aarch64", target_arch = "arm64ec"),
17341            link_name = "llvm.aarch64.neon.ld1x2.v4i16.p0"
17342        )]
17343        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x2.v4i16.p0")]
17344        fn _vld1_s16_x2(a: *const i16) -> int16x4x2_t;
17345    }
17346    _vld1_s16_x2(a)
17347}
17348#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17349#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s16_x3)"]
17350#[doc = "## Safety"]
17351#[doc = "  * Neon instrinsic unsafe"]
17352#[inline]
17353#[target_feature(enable = "neon")]
17354#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17355#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17356#[cfg_attr(
17357    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17358    assert_instr(ld1)
17359)]
17360#[cfg_attr(
17361    not(target_arch = "arm"),
17362    stable(feature = "neon_intrinsics", since = "1.59.0")
17363)]
17364#[cfg_attr(
17365    target_arch = "arm",
17366    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17367)]
17368pub unsafe fn vld1_s16_x3(a: *const i16) -> int16x4x3_t {
17369    unsafe extern "unadjusted" {
17370        #[cfg_attr(
17371            any(target_arch = "aarch64", target_arch = "arm64ec"),
17372            link_name = "llvm.aarch64.neon.ld1x3.v4i16.p0"
17373        )]
17374        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x3.v4i16.p0")]
17375        fn _vld1_s16_x3(a: *const i16) -> int16x4x3_t;
17376    }
17377    _vld1_s16_x3(a)
17378}
17379#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17380#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s16_x4)"]
17381#[doc = "## Safety"]
17382#[doc = "  * Neon instrinsic unsafe"]
17383#[inline]
17384#[target_feature(enable = "neon")]
17385#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17386#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17387#[cfg_attr(
17388    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17389    assert_instr(ld1)
17390)]
17391#[cfg_attr(
17392    not(target_arch = "arm"),
17393    stable(feature = "neon_intrinsics", since = "1.59.0")
17394)]
17395#[cfg_attr(
17396    target_arch = "arm",
17397    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17398)]
17399pub unsafe fn vld1_s16_x4(a: *const i16) -> int16x4x4_t {
17400    unsafe extern "unadjusted" {
17401        #[cfg_attr(
17402            any(target_arch = "aarch64", target_arch = "arm64ec"),
17403            link_name = "llvm.aarch64.neon.ld1x4.v4i16.p0"
17404        )]
17405        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x4.v4i16.p0")]
17406        fn _vld1_s16_x4(a: *const i16) -> int16x4x4_t;
17407    }
17408    _vld1_s16_x4(a)
17409}
17410#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17411#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s16_x2)"]
17412#[doc = "## Safety"]
17413#[doc = "  * Neon instrinsic unsafe"]
17414#[inline]
17415#[target_feature(enable = "neon")]
17416#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17417#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17418#[cfg_attr(
17419    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17420    assert_instr(ld1)
17421)]
17422#[cfg_attr(
17423    not(target_arch = "arm"),
17424    stable(feature = "neon_intrinsics", since = "1.59.0")
17425)]
17426#[cfg_attr(
17427    target_arch = "arm",
17428    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17429)]
17430pub unsafe fn vld1q_s16_x2(a: *const i16) -> int16x8x2_t {
17431    unsafe extern "unadjusted" {
17432        #[cfg_attr(
17433            any(target_arch = "aarch64", target_arch = "arm64ec"),
17434            link_name = "llvm.aarch64.neon.ld1x2.v8i16.p0"
17435        )]
17436        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x2.v8i16.p0")]
17437        fn _vld1q_s16_x2(a: *const i16) -> int16x8x2_t;
17438    }
17439    _vld1q_s16_x2(a)
17440}
17441#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17442#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s16_x3)"]
17443#[doc = "## Safety"]
17444#[doc = "  * Neon instrinsic unsafe"]
17445#[inline]
17446#[target_feature(enable = "neon")]
17447#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17448#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17449#[cfg_attr(
17450    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17451    assert_instr(ld1)
17452)]
17453#[cfg_attr(
17454    not(target_arch = "arm"),
17455    stable(feature = "neon_intrinsics", since = "1.59.0")
17456)]
17457#[cfg_attr(
17458    target_arch = "arm",
17459    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17460)]
17461pub unsafe fn vld1q_s16_x3(a: *const i16) -> int16x8x3_t {
17462    unsafe extern "unadjusted" {
17463        #[cfg_attr(
17464            any(target_arch = "aarch64", target_arch = "arm64ec"),
17465            link_name = "llvm.aarch64.neon.ld1x3.v8i16.p0"
17466        )]
17467        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x3.v8i16.p0")]
17468        fn _vld1q_s16_x3(a: *const i16) -> int16x8x3_t;
17469    }
17470    _vld1q_s16_x3(a)
17471}
17472#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17473#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s16_x4)"]
17474#[doc = "## Safety"]
17475#[doc = "  * Neon instrinsic unsafe"]
17476#[inline]
17477#[target_feature(enable = "neon")]
17478#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17479#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17480#[cfg_attr(
17481    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17482    assert_instr(ld1)
17483)]
17484#[cfg_attr(
17485    not(target_arch = "arm"),
17486    stable(feature = "neon_intrinsics", since = "1.59.0")
17487)]
17488#[cfg_attr(
17489    target_arch = "arm",
17490    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17491)]
17492pub unsafe fn vld1q_s16_x4(a: *const i16) -> int16x8x4_t {
17493    unsafe extern "unadjusted" {
17494        #[cfg_attr(
17495            any(target_arch = "aarch64", target_arch = "arm64ec"),
17496            link_name = "llvm.aarch64.neon.ld1x4.v8i16.p0"
17497        )]
17498        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x4.v8i16.p0")]
17499        fn _vld1q_s16_x4(a: *const i16) -> int16x8x4_t;
17500    }
17501    _vld1q_s16_x4(a)
17502}
17503#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17504#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s32_x2)"]
17505#[doc = "## Safety"]
17506#[doc = "  * Neon instrinsic unsafe"]
17507#[inline]
17508#[target_feature(enable = "neon")]
17509#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17510#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17511#[cfg_attr(
17512    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17513    assert_instr(ld1)
17514)]
17515#[cfg_attr(
17516    not(target_arch = "arm"),
17517    stable(feature = "neon_intrinsics", since = "1.59.0")
17518)]
17519#[cfg_attr(
17520    target_arch = "arm",
17521    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17522)]
17523pub unsafe fn vld1_s32_x2(a: *const i32) -> int32x2x2_t {
17524    unsafe extern "unadjusted" {
17525        #[cfg_attr(
17526            any(target_arch = "aarch64", target_arch = "arm64ec"),
17527            link_name = "llvm.aarch64.neon.ld1x2.v2i32.p0"
17528        )]
17529        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x2.v2i32.p0")]
17530        fn _vld1_s32_x2(a: *const i32) -> int32x2x2_t;
17531    }
17532    _vld1_s32_x2(a)
17533}
17534#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17535#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s32_x3)"]
17536#[doc = "## Safety"]
17537#[doc = "  * Neon instrinsic unsafe"]
17538#[inline]
17539#[target_feature(enable = "neon")]
17540#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17541#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17542#[cfg_attr(
17543    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17544    assert_instr(ld1)
17545)]
17546#[cfg_attr(
17547    not(target_arch = "arm"),
17548    stable(feature = "neon_intrinsics", since = "1.59.0")
17549)]
17550#[cfg_attr(
17551    target_arch = "arm",
17552    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17553)]
17554pub unsafe fn vld1_s32_x3(a: *const i32) -> int32x2x3_t {
17555    unsafe extern "unadjusted" {
17556        #[cfg_attr(
17557            any(target_arch = "aarch64", target_arch = "arm64ec"),
17558            link_name = "llvm.aarch64.neon.ld1x3.v2i32.p0"
17559        )]
17560        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x3.v2i32.p0")]
17561        fn _vld1_s32_x3(a: *const i32) -> int32x2x3_t;
17562    }
17563    _vld1_s32_x3(a)
17564}
17565#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17566#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s32_x4)"]
17567#[doc = "## Safety"]
17568#[doc = "  * Neon instrinsic unsafe"]
17569#[inline]
17570#[target_feature(enable = "neon")]
17571#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17572#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17573#[cfg_attr(
17574    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17575    assert_instr(ld1)
17576)]
17577#[cfg_attr(
17578    not(target_arch = "arm"),
17579    stable(feature = "neon_intrinsics", since = "1.59.0")
17580)]
17581#[cfg_attr(
17582    target_arch = "arm",
17583    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17584)]
17585pub unsafe fn vld1_s32_x4(a: *const i32) -> int32x2x4_t {
17586    unsafe extern "unadjusted" {
17587        #[cfg_attr(
17588            any(target_arch = "aarch64", target_arch = "arm64ec"),
17589            link_name = "llvm.aarch64.neon.ld1x4.v2i32.p0"
17590        )]
17591        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x4.v2i32.p0")]
17592        fn _vld1_s32_x4(a: *const i32) -> int32x2x4_t;
17593    }
17594    _vld1_s32_x4(a)
17595}
17596#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17597#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s32_x2)"]
17598#[doc = "## Safety"]
17599#[doc = "  * Neon instrinsic unsafe"]
17600#[inline]
17601#[target_feature(enable = "neon")]
17602#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17603#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17604#[cfg_attr(
17605    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17606    assert_instr(ld1)
17607)]
17608#[cfg_attr(
17609    not(target_arch = "arm"),
17610    stable(feature = "neon_intrinsics", since = "1.59.0")
17611)]
17612#[cfg_attr(
17613    target_arch = "arm",
17614    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17615)]
17616pub unsafe fn vld1q_s32_x2(a: *const i32) -> int32x4x2_t {
17617    unsafe extern "unadjusted" {
17618        #[cfg_attr(
17619            any(target_arch = "aarch64", target_arch = "arm64ec"),
17620            link_name = "llvm.aarch64.neon.ld1x2.v4i32.p0"
17621        )]
17622        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x2.v4i32.p0")]
17623        fn _vld1q_s32_x2(a: *const i32) -> int32x4x2_t;
17624    }
17625    _vld1q_s32_x2(a)
17626}
17627#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17628#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s32_x3)"]
17629#[doc = "## Safety"]
17630#[doc = "  * Neon instrinsic unsafe"]
17631#[inline]
17632#[target_feature(enable = "neon")]
17633#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17634#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17635#[cfg_attr(
17636    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17637    assert_instr(ld1)
17638)]
17639#[cfg_attr(
17640    not(target_arch = "arm"),
17641    stable(feature = "neon_intrinsics", since = "1.59.0")
17642)]
17643#[cfg_attr(
17644    target_arch = "arm",
17645    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17646)]
17647pub unsafe fn vld1q_s32_x3(a: *const i32) -> int32x4x3_t {
17648    unsafe extern "unadjusted" {
17649        #[cfg_attr(
17650            any(target_arch = "aarch64", target_arch = "arm64ec"),
17651            link_name = "llvm.aarch64.neon.ld1x3.v4i32.p0"
17652        )]
17653        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x3.v4i32.p0")]
17654        fn _vld1q_s32_x3(a: *const i32) -> int32x4x3_t;
17655    }
17656    _vld1q_s32_x3(a)
17657}
17658#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17659#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s32_x4)"]
17660#[doc = "## Safety"]
17661#[doc = "  * Neon instrinsic unsafe"]
17662#[inline]
17663#[target_feature(enable = "neon")]
17664#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17665#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17666#[cfg_attr(
17667    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17668    assert_instr(ld1)
17669)]
17670#[cfg_attr(
17671    not(target_arch = "arm"),
17672    stable(feature = "neon_intrinsics", since = "1.59.0")
17673)]
17674#[cfg_attr(
17675    target_arch = "arm",
17676    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17677)]
17678pub unsafe fn vld1q_s32_x4(a: *const i32) -> int32x4x4_t {
17679    unsafe extern "unadjusted" {
17680        #[cfg_attr(
17681            any(target_arch = "aarch64", target_arch = "arm64ec"),
17682            link_name = "llvm.aarch64.neon.ld1x4.v4i32.p0"
17683        )]
17684        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x4.v4i32.p0")]
17685        fn _vld1q_s32_x4(a: *const i32) -> int32x4x4_t;
17686    }
17687    _vld1q_s32_x4(a)
17688}
17689#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17690#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s64_x2)"]
17691#[doc = "## Safety"]
17692#[doc = "  * Neon instrinsic unsafe"]
17693#[inline]
17694#[target_feature(enable = "neon")]
17695#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17696#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17697#[cfg_attr(
17698    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17699    assert_instr(ld1)
17700)]
17701#[cfg_attr(
17702    not(target_arch = "arm"),
17703    stable(feature = "neon_intrinsics", since = "1.59.0")
17704)]
17705#[cfg_attr(
17706    target_arch = "arm",
17707    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17708)]
17709pub unsafe fn vld1_s64_x2(a: *const i64) -> int64x1x2_t {
17710    unsafe extern "unadjusted" {
17711        #[cfg_attr(
17712            any(target_arch = "aarch64", target_arch = "arm64ec"),
17713            link_name = "llvm.aarch64.neon.ld1x2.v1i64.p0"
17714        )]
17715        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x2.v1i64.p0")]
17716        fn _vld1_s64_x2(a: *const i64) -> int64x1x2_t;
17717    }
17718    _vld1_s64_x2(a)
17719}
17720#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17721#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s64_x3)"]
17722#[doc = "## Safety"]
17723#[doc = "  * Neon instrinsic unsafe"]
17724#[inline]
17725#[target_feature(enable = "neon")]
17726#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17727#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17728#[cfg_attr(
17729    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17730    assert_instr(ld1)
17731)]
17732#[cfg_attr(
17733    not(target_arch = "arm"),
17734    stable(feature = "neon_intrinsics", since = "1.59.0")
17735)]
17736#[cfg_attr(
17737    target_arch = "arm",
17738    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17739)]
17740pub unsafe fn vld1_s64_x3(a: *const i64) -> int64x1x3_t {
17741    unsafe extern "unadjusted" {
17742        #[cfg_attr(
17743            any(target_arch = "aarch64", target_arch = "arm64ec"),
17744            link_name = "llvm.aarch64.neon.ld1x3.v1i64.p0"
17745        )]
17746        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x3.v1i64.p0")]
17747        fn _vld1_s64_x3(a: *const i64) -> int64x1x3_t;
17748    }
17749    _vld1_s64_x3(a)
17750}
17751#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17752#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s64_x4)"]
17753#[doc = "## Safety"]
17754#[doc = "  * Neon instrinsic unsafe"]
17755#[inline]
17756#[target_feature(enable = "neon")]
17757#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17758#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17759#[cfg_attr(
17760    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17761    assert_instr(ld1)
17762)]
17763#[cfg_attr(
17764    not(target_arch = "arm"),
17765    stable(feature = "neon_intrinsics", since = "1.59.0")
17766)]
17767#[cfg_attr(
17768    target_arch = "arm",
17769    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17770)]
17771pub unsafe fn vld1_s64_x4(a: *const i64) -> int64x1x4_t {
17772    unsafe extern "unadjusted" {
17773        #[cfg_attr(
17774            any(target_arch = "aarch64", target_arch = "arm64ec"),
17775            link_name = "llvm.aarch64.neon.ld1x4.v1i64.p0"
17776        )]
17777        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x4.v1i64.p0")]
17778        fn _vld1_s64_x4(a: *const i64) -> int64x1x4_t;
17779    }
17780    _vld1_s64_x4(a)
17781}
17782#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17783#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s64_x2)"]
17784#[doc = "## Safety"]
17785#[doc = "  * Neon instrinsic unsafe"]
17786#[inline]
17787#[target_feature(enable = "neon")]
17788#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17789#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17790#[cfg_attr(
17791    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17792    assert_instr(ld1)
17793)]
17794#[cfg_attr(
17795    not(target_arch = "arm"),
17796    stable(feature = "neon_intrinsics", since = "1.59.0")
17797)]
17798#[cfg_attr(
17799    target_arch = "arm",
17800    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17801)]
17802pub unsafe fn vld1q_s64_x2(a: *const i64) -> int64x2x2_t {
17803    unsafe extern "unadjusted" {
17804        #[cfg_attr(
17805            any(target_arch = "aarch64", target_arch = "arm64ec"),
17806            link_name = "llvm.aarch64.neon.ld1x2.v2i64.p0"
17807        )]
17808        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x2.v2i64.p0")]
17809        fn _vld1q_s64_x2(a: *const i64) -> int64x2x2_t;
17810    }
17811    _vld1q_s64_x2(a)
17812}
17813#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17814#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s64_x3)"]
17815#[doc = "## Safety"]
17816#[doc = "  * Neon instrinsic unsafe"]
17817#[inline]
17818#[target_feature(enable = "neon")]
17819#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17820#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17821#[cfg_attr(
17822    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17823    assert_instr(ld1)
17824)]
17825#[cfg_attr(
17826    not(target_arch = "arm"),
17827    stable(feature = "neon_intrinsics", since = "1.59.0")
17828)]
17829#[cfg_attr(
17830    target_arch = "arm",
17831    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17832)]
17833pub unsafe fn vld1q_s64_x3(a: *const i64) -> int64x2x3_t {
17834    unsafe extern "unadjusted" {
17835        #[cfg_attr(
17836            any(target_arch = "aarch64", target_arch = "arm64ec"),
17837            link_name = "llvm.aarch64.neon.ld1x3.v2i64.p0"
17838        )]
17839        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x3.v2i64.p0")]
17840        fn _vld1q_s64_x3(a: *const i64) -> int64x2x3_t;
17841    }
17842    _vld1q_s64_x3(a)
17843}
17844#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17845#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s64_x4)"]
17846#[doc = "## Safety"]
17847#[doc = "  * Neon instrinsic unsafe"]
17848#[inline]
17849#[target_feature(enable = "neon")]
17850#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17851#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17852#[cfg_attr(
17853    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17854    assert_instr(ld1)
17855)]
17856#[cfg_attr(
17857    not(target_arch = "arm"),
17858    stable(feature = "neon_intrinsics", since = "1.59.0")
17859)]
17860#[cfg_attr(
17861    target_arch = "arm",
17862    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17863)]
17864pub unsafe fn vld1q_s64_x4(a: *const i64) -> int64x2x4_t {
17865    unsafe extern "unadjusted" {
17866        #[cfg_attr(
17867            any(target_arch = "aarch64", target_arch = "arm64ec"),
17868            link_name = "llvm.aarch64.neon.ld1x4.v2i64.p0"
17869        )]
17870        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x4.v2i64.p0")]
17871        fn _vld1q_s64_x4(a: *const i64) -> int64x2x4_t;
17872    }
17873    _vld1q_s64_x4(a)
17874}
17875#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17876#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u8_x2)"]
17877#[doc = "## Safety"]
17878#[doc = "  * Neon instrinsic unsafe"]
17879#[inline]
17880#[cfg(target_endian = "little")]
17881#[target_feature(enable = "neon")]
17882#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17883#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17884#[cfg_attr(
17885    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17886    assert_instr(ld1)
17887)]
17888#[cfg_attr(
17889    not(target_arch = "arm"),
17890    stable(feature = "neon_intrinsics", since = "1.59.0")
17891)]
17892#[cfg_attr(
17893    target_arch = "arm",
17894    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17895)]
17896pub unsafe fn vld1_u8_x2(a: *const u8) -> uint8x8x2_t {
17897    transmute(vld1_s8_x2(transmute(a)))
17898}
17899#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17900#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u8_x2)"]
17901#[doc = "## Safety"]
17902#[doc = "  * Neon instrinsic unsafe"]
17903#[inline]
17904#[cfg(target_endian = "big")]
17905#[target_feature(enable = "neon")]
17906#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17907#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17908#[cfg_attr(
17909    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17910    assert_instr(ld1)
17911)]
17912#[cfg_attr(
17913    not(target_arch = "arm"),
17914    stable(feature = "neon_intrinsics", since = "1.59.0")
17915)]
17916#[cfg_attr(
17917    target_arch = "arm",
17918    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17919)]
17920pub unsafe fn vld1_u8_x2(a: *const u8) -> uint8x8x2_t {
17921    let mut ret_val: uint8x8x2_t = transmute(vld1_s8_x2(transmute(a)));
17922    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
17923    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
17924    ret_val
17925}
17926#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17927#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u8_x3)"]
17928#[doc = "## Safety"]
17929#[doc = "  * Neon instrinsic unsafe"]
17930#[inline]
17931#[cfg(target_endian = "little")]
17932#[target_feature(enable = "neon")]
17933#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17934#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17935#[cfg_attr(
17936    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17937    assert_instr(ld1)
17938)]
17939#[cfg_attr(
17940    not(target_arch = "arm"),
17941    stable(feature = "neon_intrinsics", since = "1.59.0")
17942)]
17943#[cfg_attr(
17944    target_arch = "arm",
17945    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17946)]
17947pub unsafe fn vld1_u8_x3(a: *const u8) -> uint8x8x3_t {
17948    transmute(vld1_s8_x3(transmute(a)))
17949}
17950#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17951#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u8_x3)"]
17952#[doc = "## Safety"]
17953#[doc = "  * Neon instrinsic unsafe"]
17954#[inline]
17955#[cfg(target_endian = "big")]
17956#[target_feature(enable = "neon")]
17957#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17958#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17959#[cfg_attr(
17960    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17961    assert_instr(ld1)
17962)]
17963#[cfg_attr(
17964    not(target_arch = "arm"),
17965    stable(feature = "neon_intrinsics", since = "1.59.0")
17966)]
17967#[cfg_attr(
17968    target_arch = "arm",
17969    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17970)]
17971pub unsafe fn vld1_u8_x3(a: *const u8) -> uint8x8x3_t {
17972    let mut ret_val: uint8x8x3_t = transmute(vld1_s8_x3(transmute(a)));
17973    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
17974    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
17975    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
17976    ret_val
17977}
17978#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17979#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u8_x4)"]
17980#[doc = "## Safety"]
17981#[doc = "  * Neon instrinsic unsafe"]
17982#[inline]
17983#[cfg(target_endian = "little")]
17984#[target_feature(enable = "neon")]
17985#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17986#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
17987#[cfg_attr(
17988    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17989    assert_instr(ld1)
17990)]
17991#[cfg_attr(
17992    not(target_arch = "arm"),
17993    stable(feature = "neon_intrinsics", since = "1.59.0")
17994)]
17995#[cfg_attr(
17996    target_arch = "arm",
17997    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17998)]
17999pub unsafe fn vld1_u8_x4(a: *const u8) -> uint8x8x4_t {
18000    transmute(vld1_s8_x4(transmute(a)))
18001}
18002#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18003#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u8_x4)"]
18004#[doc = "## Safety"]
18005#[doc = "  * Neon instrinsic unsafe"]
18006#[inline]
18007#[cfg(target_endian = "big")]
18008#[target_feature(enable = "neon")]
18009#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18010#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18011#[cfg_attr(
18012    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18013    assert_instr(ld1)
18014)]
18015#[cfg_attr(
18016    not(target_arch = "arm"),
18017    stable(feature = "neon_intrinsics", since = "1.59.0")
18018)]
18019#[cfg_attr(
18020    target_arch = "arm",
18021    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18022)]
18023pub unsafe fn vld1_u8_x4(a: *const u8) -> uint8x8x4_t {
18024    let mut ret_val: uint8x8x4_t = transmute(vld1_s8_x4(transmute(a)));
18025    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
18026    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
18027    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
18028    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [7, 6, 5, 4, 3, 2, 1, 0]) };
18029    ret_val
18030}
18031#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18032#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u8_x2)"]
18033#[doc = "## Safety"]
18034#[doc = "  * Neon instrinsic unsafe"]
18035#[inline]
18036#[cfg(target_endian = "little")]
18037#[target_feature(enable = "neon")]
18038#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18039#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18040#[cfg_attr(
18041    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18042    assert_instr(ld1)
18043)]
18044#[cfg_attr(
18045    not(target_arch = "arm"),
18046    stable(feature = "neon_intrinsics", since = "1.59.0")
18047)]
18048#[cfg_attr(
18049    target_arch = "arm",
18050    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18051)]
18052pub unsafe fn vld1q_u8_x2(a: *const u8) -> uint8x16x2_t {
18053    transmute(vld1q_s8_x2(transmute(a)))
18054}
18055#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18056#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u8_x2)"]
18057#[doc = "## Safety"]
18058#[doc = "  * Neon instrinsic unsafe"]
18059#[inline]
18060#[cfg(target_endian = "big")]
18061#[target_feature(enable = "neon")]
18062#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18063#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18064#[cfg_attr(
18065    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18066    assert_instr(ld1)
18067)]
18068#[cfg_attr(
18069    not(target_arch = "arm"),
18070    stable(feature = "neon_intrinsics", since = "1.59.0")
18071)]
18072#[cfg_attr(
18073    target_arch = "arm",
18074    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18075)]
18076pub unsafe fn vld1q_u8_x2(a: *const u8) -> uint8x16x2_t {
18077    let mut ret_val: uint8x16x2_t = transmute(vld1q_s8_x2(transmute(a)));
18078    ret_val.0 = unsafe {
18079        simd_shuffle!(
18080            ret_val.0,
18081            ret_val.0,
18082            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
18083        )
18084    };
18085    ret_val.1 = unsafe {
18086        simd_shuffle!(
18087            ret_val.1,
18088            ret_val.1,
18089            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
18090        )
18091    };
18092    ret_val
18093}
18094#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18095#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u8_x3)"]
18096#[doc = "## Safety"]
18097#[doc = "  * Neon instrinsic unsafe"]
18098#[inline]
18099#[cfg(target_endian = "little")]
18100#[target_feature(enable = "neon")]
18101#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18102#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18103#[cfg_attr(
18104    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18105    assert_instr(ld1)
18106)]
18107#[cfg_attr(
18108    not(target_arch = "arm"),
18109    stable(feature = "neon_intrinsics", since = "1.59.0")
18110)]
18111#[cfg_attr(
18112    target_arch = "arm",
18113    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18114)]
18115pub unsafe fn vld1q_u8_x3(a: *const u8) -> uint8x16x3_t {
18116    transmute(vld1q_s8_x3(transmute(a)))
18117}
18118#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18119#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u8_x3)"]
18120#[doc = "## Safety"]
18121#[doc = "  * Neon instrinsic unsafe"]
18122#[inline]
18123#[cfg(target_endian = "big")]
18124#[target_feature(enable = "neon")]
18125#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18126#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18127#[cfg_attr(
18128    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18129    assert_instr(ld1)
18130)]
18131#[cfg_attr(
18132    not(target_arch = "arm"),
18133    stable(feature = "neon_intrinsics", since = "1.59.0")
18134)]
18135#[cfg_attr(
18136    target_arch = "arm",
18137    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18138)]
18139pub unsafe fn vld1q_u8_x3(a: *const u8) -> uint8x16x3_t {
18140    let mut ret_val: uint8x16x3_t = transmute(vld1q_s8_x3(transmute(a)));
18141    ret_val.0 = unsafe {
18142        simd_shuffle!(
18143            ret_val.0,
18144            ret_val.0,
18145            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
18146        )
18147    };
18148    ret_val.1 = unsafe {
18149        simd_shuffle!(
18150            ret_val.1,
18151            ret_val.1,
18152            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
18153        )
18154    };
18155    ret_val.2 = unsafe {
18156        simd_shuffle!(
18157            ret_val.2,
18158            ret_val.2,
18159            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
18160        )
18161    };
18162    ret_val
18163}
18164#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18165#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u8_x4)"]
18166#[doc = "## Safety"]
18167#[doc = "  * Neon instrinsic unsafe"]
18168#[inline]
18169#[cfg(target_endian = "little")]
18170#[target_feature(enable = "neon")]
18171#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18172#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18173#[cfg_attr(
18174    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18175    assert_instr(ld1)
18176)]
18177#[cfg_attr(
18178    not(target_arch = "arm"),
18179    stable(feature = "neon_intrinsics", since = "1.59.0")
18180)]
18181#[cfg_attr(
18182    target_arch = "arm",
18183    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18184)]
18185pub unsafe fn vld1q_u8_x4(a: *const u8) -> uint8x16x4_t {
18186    transmute(vld1q_s8_x4(transmute(a)))
18187}
18188#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18189#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u8_x4)"]
18190#[doc = "## Safety"]
18191#[doc = "  * Neon instrinsic unsafe"]
18192#[inline]
18193#[cfg(target_endian = "big")]
18194#[target_feature(enable = "neon")]
18195#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18196#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18197#[cfg_attr(
18198    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18199    assert_instr(ld1)
18200)]
18201#[cfg_attr(
18202    not(target_arch = "arm"),
18203    stable(feature = "neon_intrinsics", since = "1.59.0")
18204)]
18205#[cfg_attr(
18206    target_arch = "arm",
18207    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18208)]
18209pub unsafe fn vld1q_u8_x4(a: *const u8) -> uint8x16x4_t {
18210    let mut ret_val: uint8x16x4_t = transmute(vld1q_s8_x4(transmute(a)));
18211    ret_val.0 = unsafe {
18212        simd_shuffle!(
18213            ret_val.0,
18214            ret_val.0,
18215            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
18216        )
18217    };
18218    ret_val.1 = unsafe {
18219        simd_shuffle!(
18220            ret_val.1,
18221            ret_val.1,
18222            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
18223        )
18224    };
18225    ret_val.2 = unsafe {
18226        simd_shuffle!(
18227            ret_val.2,
18228            ret_val.2,
18229            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
18230        )
18231    };
18232    ret_val.3 = unsafe {
18233        simd_shuffle!(
18234            ret_val.3,
18235            ret_val.3,
18236            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
18237        )
18238    };
18239    ret_val
18240}
18241#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18242#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u16_x2)"]
18243#[doc = "## Safety"]
18244#[doc = "  * Neon instrinsic unsafe"]
18245#[inline]
18246#[cfg(target_endian = "little")]
18247#[target_feature(enable = "neon")]
18248#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18249#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18250#[cfg_attr(
18251    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18252    assert_instr(ld1)
18253)]
18254#[cfg_attr(
18255    not(target_arch = "arm"),
18256    stable(feature = "neon_intrinsics", since = "1.59.0")
18257)]
18258#[cfg_attr(
18259    target_arch = "arm",
18260    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18261)]
18262pub unsafe fn vld1_u16_x2(a: *const u16) -> uint16x4x2_t {
18263    transmute(vld1_s16_x2(transmute(a)))
18264}
18265#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18266#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u16_x2)"]
18267#[doc = "## Safety"]
18268#[doc = "  * Neon instrinsic unsafe"]
18269#[inline]
18270#[cfg(target_endian = "big")]
18271#[target_feature(enable = "neon")]
18272#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18273#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18274#[cfg_attr(
18275    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18276    assert_instr(ld1)
18277)]
18278#[cfg_attr(
18279    not(target_arch = "arm"),
18280    stable(feature = "neon_intrinsics", since = "1.59.0")
18281)]
18282#[cfg_attr(
18283    target_arch = "arm",
18284    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18285)]
18286pub unsafe fn vld1_u16_x2(a: *const u16) -> uint16x4x2_t {
18287    let mut ret_val: uint16x4x2_t = transmute(vld1_s16_x2(transmute(a)));
18288    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
18289    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
18290    ret_val
18291}
18292#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18293#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u16_x3)"]
18294#[doc = "## Safety"]
18295#[doc = "  * Neon instrinsic unsafe"]
18296#[inline]
18297#[cfg(target_endian = "little")]
18298#[target_feature(enable = "neon")]
18299#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18300#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18301#[cfg_attr(
18302    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18303    assert_instr(ld1)
18304)]
18305#[cfg_attr(
18306    not(target_arch = "arm"),
18307    stable(feature = "neon_intrinsics", since = "1.59.0")
18308)]
18309#[cfg_attr(
18310    target_arch = "arm",
18311    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18312)]
18313pub unsafe fn vld1_u16_x3(a: *const u16) -> uint16x4x3_t {
18314    transmute(vld1_s16_x3(transmute(a)))
18315}
18316#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18317#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u16_x3)"]
18318#[doc = "## Safety"]
18319#[doc = "  * Neon instrinsic unsafe"]
18320#[inline]
18321#[cfg(target_endian = "big")]
18322#[target_feature(enable = "neon")]
18323#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18324#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18325#[cfg_attr(
18326    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18327    assert_instr(ld1)
18328)]
18329#[cfg_attr(
18330    not(target_arch = "arm"),
18331    stable(feature = "neon_intrinsics", since = "1.59.0")
18332)]
18333#[cfg_attr(
18334    target_arch = "arm",
18335    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18336)]
18337pub unsafe fn vld1_u16_x3(a: *const u16) -> uint16x4x3_t {
18338    let mut ret_val: uint16x4x3_t = transmute(vld1_s16_x3(transmute(a)));
18339    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
18340    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
18341    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [3, 2, 1, 0]) };
18342    ret_val
18343}
18344#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18345#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u16_x4)"]
18346#[doc = "## Safety"]
18347#[doc = "  * Neon instrinsic unsafe"]
18348#[inline]
18349#[cfg(target_endian = "little")]
18350#[target_feature(enable = "neon")]
18351#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18352#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18353#[cfg_attr(
18354    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18355    assert_instr(ld1)
18356)]
18357#[cfg_attr(
18358    not(target_arch = "arm"),
18359    stable(feature = "neon_intrinsics", since = "1.59.0")
18360)]
18361#[cfg_attr(
18362    target_arch = "arm",
18363    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18364)]
18365pub unsafe fn vld1_u16_x4(a: *const u16) -> uint16x4x4_t {
18366    transmute(vld1_s16_x4(transmute(a)))
18367}
18368#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18369#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u16_x4)"]
18370#[doc = "## Safety"]
18371#[doc = "  * Neon instrinsic unsafe"]
18372#[inline]
18373#[cfg(target_endian = "big")]
18374#[target_feature(enable = "neon")]
18375#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18376#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18377#[cfg_attr(
18378    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18379    assert_instr(ld1)
18380)]
18381#[cfg_attr(
18382    not(target_arch = "arm"),
18383    stable(feature = "neon_intrinsics", since = "1.59.0")
18384)]
18385#[cfg_attr(
18386    target_arch = "arm",
18387    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18388)]
18389pub unsafe fn vld1_u16_x4(a: *const u16) -> uint16x4x4_t {
18390    let mut ret_val: uint16x4x4_t = transmute(vld1_s16_x4(transmute(a)));
18391    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
18392    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
18393    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [3, 2, 1, 0]) };
18394    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [3, 2, 1, 0]) };
18395    ret_val
18396}
18397#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18398#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u16_x2)"]
18399#[doc = "## Safety"]
18400#[doc = "  * Neon instrinsic unsafe"]
18401#[inline]
18402#[cfg(target_endian = "little")]
18403#[target_feature(enable = "neon")]
18404#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18405#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18406#[cfg_attr(
18407    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18408    assert_instr(ld1)
18409)]
18410#[cfg_attr(
18411    not(target_arch = "arm"),
18412    stable(feature = "neon_intrinsics", since = "1.59.0")
18413)]
18414#[cfg_attr(
18415    target_arch = "arm",
18416    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18417)]
18418pub unsafe fn vld1q_u16_x2(a: *const u16) -> uint16x8x2_t {
18419    transmute(vld1q_s16_x2(transmute(a)))
18420}
18421#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18422#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u16_x2)"]
18423#[doc = "## Safety"]
18424#[doc = "  * Neon instrinsic unsafe"]
18425#[inline]
18426#[cfg(target_endian = "big")]
18427#[target_feature(enable = "neon")]
18428#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18429#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18430#[cfg_attr(
18431    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18432    assert_instr(ld1)
18433)]
18434#[cfg_attr(
18435    not(target_arch = "arm"),
18436    stable(feature = "neon_intrinsics", since = "1.59.0")
18437)]
18438#[cfg_attr(
18439    target_arch = "arm",
18440    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18441)]
18442pub unsafe fn vld1q_u16_x2(a: *const u16) -> uint16x8x2_t {
18443    let mut ret_val: uint16x8x2_t = transmute(vld1q_s16_x2(transmute(a)));
18444    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
18445    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
18446    ret_val
18447}
18448#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18449#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u16_x3)"]
18450#[doc = "## Safety"]
18451#[doc = "  * Neon instrinsic unsafe"]
18452#[inline]
18453#[cfg(target_endian = "little")]
18454#[target_feature(enable = "neon")]
18455#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18456#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18457#[cfg_attr(
18458    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18459    assert_instr(ld1)
18460)]
18461#[cfg_attr(
18462    not(target_arch = "arm"),
18463    stable(feature = "neon_intrinsics", since = "1.59.0")
18464)]
18465#[cfg_attr(
18466    target_arch = "arm",
18467    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18468)]
18469pub unsafe fn vld1q_u16_x3(a: *const u16) -> uint16x8x3_t {
18470    transmute(vld1q_s16_x3(transmute(a)))
18471}
18472#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18473#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u16_x3)"]
18474#[doc = "## Safety"]
18475#[doc = "  * Neon instrinsic unsafe"]
18476#[inline]
18477#[cfg(target_endian = "big")]
18478#[target_feature(enable = "neon")]
18479#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18480#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18481#[cfg_attr(
18482    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18483    assert_instr(ld1)
18484)]
18485#[cfg_attr(
18486    not(target_arch = "arm"),
18487    stable(feature = "neon_intrinsics", since = "1.59.0")
18488)]
18489#[cfg_attr(
18490    target_arch = "arm",
18491    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18492)]
18493pub unsafe fn vld1q_u16_x3(a: *const u16) -> uint16x8x3_t {
18494    let mut ret_val: uint16x8x3_t = transmute(vld1q_s16_x3(transmute(a)));
18495    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
18496    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
18497    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
18498    ret_val
18499}
18500#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18501#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u16_x4)"]
18502#[doc = "## Safety"]
18503#[doc = "  * Neon instrinsic unsafe"]
18504#[inline]
18505#[cfg(target_endian = "little")]
18506#[target_feature(enable = "neon")]
18507#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18508#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18509#[cfg_attr(
18510    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18511    assert_instr(ld1)
18512)]
18513#[cfg_attr(
18514    not(target_arch = "arm"),
18515    stable(feature = "neon_intrinsics", since = "1.59.0")
18516)]
18517#[cfg_attr(
18518    target_arch = "arm",
18519    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18520)]
18521pub unsafe fn vld1q_u16_x4(a: *const u16) -> uint16x8x4_t {
18522    transmute(vld1q_s16_x4(transmute(a)))
18523}
18524#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18525#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u16_x4)"]
18526#[doc = "## Safety"]
18527#[doc = "  * Neon instrinsic unsafe"]
18528#[inline]
18529#[cfg(target_endian = "big")]
18530#[target_feature(enable = "neon")]
18531#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18532#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18533#[cfg_attr(
18534    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18535    assert_instr(ld1)
18536)]
18537#[cfg_attr(
18538    not(target_arch = "arm"),
18539    stable(feature = "neon_intrinsics", since = "1.59.0")
18540)]
18541#[cfg_attr(
18542    target_arch = "arm",
18543    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18544)]
18545pub unsafe fn vld1q_u16_x4(a: *const u16) -> uint16x8x4_t {
18546    let mut ret_val: uint16x8x4_t = transmute(vld1q_s16_x4(transmute(a)));
18547    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
18548    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
18549    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
18550    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [7, 6, 5, 4, 3, 2, 1, 0]) };
18551    ret_val
18552}
18553#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18554#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u32_x2)"]
18555#[doc = "## Safety"]
18556#[doc = "  * Neon instrinsic unsafe"]
18557#[inline]
18558#[cfg(target_endian = "little")]
18559#[target_feature(enable = "neon")]
18560#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18561#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18562#[cfg_attr(
18563    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18564    assert_instr(ld1)
18565)]
18566#[cfg_attr(
18567    not(target_arch = "arm"),
18568    stable(feature = "neon_intrinsics", since = "1.59.0")
18569)]
18570#[cfg_attr(
18571    target_arch = "arm",
18572    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18573)]
18574pub unsafe fn vld1_u32_x2(a: *const u32) -> uint32x2x2_t {
18575    transmute(vld1_s32_x2(transmute(a)))
18576}
18577#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18578#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u32_x2)"]
18579#[doc = "## Safety"]
18580#[doc = "  * Neon instrinsic unsafe"]
18581#[inline]
18582#[cfg(target_endian = "big")]
18583#[target_feature(enable = "neon")]
18584#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18585#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18586#[cfg_attr(
18587    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18588    assert_instr(ld1)
18589)]
18590#[cfg_attr(
18591    not(target_arch = "arm"),
18592    stable(feature = "neon_intrinsics", since = "1.59.0")
18593)]
18594#[cfg_attr(
18595    target_arch = "arm",
18596    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18597)]
18598pub unsafe fn vld1_u32_x2(a: *const u32) -> uint32x2x2_t {
18599    let mut ret_val: uint32x2x2_t = transmute(vld1_s32_x2(transmute(a)));
18600    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [1, 0]) };
18601    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [1, 0]) };
18602    ret_val
18603}
18604#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18605#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u32_x3)"]
18606#[doc = "## Safety"]
18607#[doc = "  * Neon instrinsic unsafe"]
18608#[inline]
18609#[cfg(target_endian = "little")]
18610#[target_feature(enable = "neon")]
18611#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18612#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18613#[cfg_attr(
18614    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18615    assert_instr(ld1)
18616)]
18617#[cfg_attr(
18618    not(target_arch = "arm"),
18619    stable(feature = "neon_intrinsics", since = "1.59.0")
18620)]
18621#[cfg_attr(
18622    target_arch = "arm",
18623    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18624)]
18625pub unsafe fn vld1_u32_x3(a: *const u32) -> uint32x2x3_t {
18626    transmute(vld1_s32_x3(transmute(a)))
18627}
18628#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18629#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u32_x3)"]
18630#[doc = "## Safety"]
18631#[doc = "  * Neon instrinsic unsafe"]
18632#[inline]
18633#[cfg(target_endian = "big")]
18634#[target_feature(enable = "neon")]
18635#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18636#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18637#[cfg_attr(
18638    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18639    assert_instr(ld1)
18640)]
18641#[cfg_attr(
18642    not(target_arch = "arm"),
18643    stable(feature = "neon_intrinsics", since = "1.59.0")
18644)]
18645#[cfg_attr(
18646    target_arch = "arm",
18647    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18648)]
18649pub unsafe fn vld1_u32_x3(a: *const u32) -> uint32x2x3_t {
18650    let mut ret_val: uint32x2x3_t = transmute(vld1_s32_x3(transmute(a)));
18651    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [1, 0]) };
18652    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [1, 0]) };
18653    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [1, 0]) };
18654    ret_val
18655}
18656#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18657#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u32_x4)"]
18658#[doc = "## Safety"]
18659#[doc = "  * Neon instrinsic unsafe"]
18660#[inline]
18661#[cfg(target_endian = "little")]
18662#[target_feature(enable = "neon")]
18663#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18664#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18665#[cfg_attr(
18666    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18667    assert_instr(ld1)
18668)]
18669#[cfg_attr(
18670    not(target_arch = "arm"),
18671    stable(feature = "neon_intrinsics", since = "1.59.0")
18672)]
18673#[cfg_attr(
18674    target_arch = "arm",
18675    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18676)]
18677pub unsafe fn vld1_u32_x4(a: *const u32) -> uint32x2x4_t {
18678    transmute(vld1_s32_x4(transmute(a)))
18679}
18680#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18681#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u32_x4)"]
18682#[doc = "## Safety"]
18683#[doc = "  * Neon instrinsic unsafe"]
18684#[inline]
18685#[cfg(target_endian = "big")]
18686#[target_feature(enable = "neon")]
18687#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18688#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18689#[cfg_attr(
18690    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18691    assert_instr(ld1)
18692)]
18693#[cfg_attr(
18694    not(target_arch = "arm"),
18695    stable(feature = "neon_intrinsics", since = "1.59.0")
18696)]
18697#[cfg_attr(
18698    target_arch = "arm",
18699    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18700)]
18701pub unsafe fn vld1_u32_x4(a: *const u32) -> uint32x2x4_t {
18702    let mut ret_val: uint32x2x4_t = transmute(vld1_s32_x4(transmute(a)));
18703    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [1, 0]) };
18704    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [1, 0]) };
18705    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [1, 0]) };
18706    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [1, 0]) };
18707    ret_val
18708}
18709#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18710#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u32_x2)"]
18711#[doc = "## Safety"]
18712#[doc = "  * Neon instrinsic unsafe"]
18713#[inline]
18714#[cfg(target_endian = "little")]
18715#[target_feature(enable = "neon")]
18716#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18717#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18718#[cfg_attr(
18719    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18720    assert_instr(ld1)
18721)]
18722#[cfg_attr(
18723    not(target_arch = "arm"),
18724    stable(feature = "neon_intrinsics", since = "1.59.0")
18725)]
18726#[cfg_attr(
18727    target_arch = "arm",
18728    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18729)]
18730pub unsafe fn vld1q_u32_x2(a: *const u32) -> uint32x4x2_t {
18731    transmute(vld1q_s32_x2(transmute(a)))
18732}
18733#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18734#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u32_x2)"]
18735#[doc = "## Safety"]
18736#[doc = "  * Neon instrinsic unsafe"]
18737#[inline]
18738#[cfg(target_endian = "big")]
18739#[target_feature(enable = "neon")]
18740#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18741#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18742#[cfg_attr(
18743    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18744    assert_instr(ld1)
18745)]
18746#[cfg_attr(
18747    not(target_arch = "arm"),
18748    stable(feature = "neon_intrinsics", since = "1.59.0")
18749)]
18750#[cfg_attr(
18751    target_arch = "arm",
18752    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18753)]
18754pub unsafe fn vld1q_u32_x2(a: *const u32) -> uint32x4x2_t {
18755    let mut ret_val: uint32x4x2_t = transmute(vld1q_s32_x2(transmute(a)));
18756    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
18757    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
18758    ret_val
18759}
18760#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18761#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u32_x3)"]
18762#[doc = "## Safety"]
18763#[doc = "  * Neon instrinsic unsafe"]
18764#[inline]
18765#[cfg(target_endian = "little")]
18766#[target_feature(enable = "neon")]
18767#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18768#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18769#[cfg_attr(
18770    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18771    assert_instr(ld1)
18772)]
18773#[cfg_attr(
18774    not(target_arch = "arm"),
18775    stable(feature = "neon_intrinsics", since = "1.59.0")
18776)]
18777#[cfg_attr(
18778    target_arch = "arm",
18779    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18780)]
18781pub unsafe fn vld1q_u32_x3(a: *const u32) -> uint32x4x3_t {
18782    transmute(vld1q_s32_x3(transmute(a)))
18783}
18784#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18785#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u32_x3)"]
18786#[doc = "## Safety"]
18787#[doc = "  * Neon instrinsic unsafe"]
18788#[inline]
18789#[cfg(target_endian = "big")]
18790#[target_feature(enable = "neon")]
18791#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18792#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18793#[cfg_attr(
18794    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18795    assert_instr(ld1)
18796)]
18797#[cfg_attr(
18798    not(target_arch = "arm"),
18799    stable(feature = "neon_intrinsics", since = "1.59.0")
18800)]
18801#[cfg_attr(
18802    target_arch = "arm",
18803    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18804)]
18805pub unsafe fn vld1q_u32_x3(a: *const u32) -> uint32x4x3_t {
18806    let mut ret_val: uint32x4x3_t = transmute(vld1q_s32_x3(transmute(a)));
18807    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
18808    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
18809    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [3, 2, 1, 0]) };
18810    ret_val
18811}
18812#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18813#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u32_x4)"]
18814#[doc = "## Safety"]
18815#[doc = "  * Neon instrinsic unsafe"]
18816#[inline]
18817#[cfg(target_endian = "little")]
18818#[target_feature(enable = "neon")]
18819#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18820#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18821#[cfg_attr(
18822    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18823    assert_instr(ld1)
18824)]
18825#[cfg_attr(
18826    not(target_arch = "arm"),
18827    stable(feature = "neon_intrinsics", since = "1.59.0")
18828)]
18829#[cfg_attr(
18830    target_arch = "arm",
18831    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18832)]
18833pub unsafe fn vld1q_u32_x4(a: *const u32) -> uint32x4x4_t {
18834    transmute(vld1q_s32_x4(transmute(a)))
18835}
18836#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18837#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u32_x4)"]
18838#[doc = "## Safety"]
18839#[doc = "  * Neon instrinsic unsafe"]
18840#[inline]
18841#[cfg(target_endian = "big")]
18842#[target_feature(enable = "neon")]
18843#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18844#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18845#[cfg_attr(
18846    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18847    assert_instr(ld1)
18848)]
18849#[cfg_attr(
18850    not(target_arch = "arm"),
18851    stable(feature = "neon_intrinsics", since = "1.59.0")
18852)]
18853#[cfg_attr(
18854    target_arch = "arm",
18855    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18856)]
18857pub unsafe fn vld1q_u32_x4(a: *const u32) -> uint32x4x4_t {
18858    let mut ret_val: uint32x4x4_t = transmute(vld1q_s32_x4(transmute(a)));
18859    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
18860    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
18861    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [3, 2, 1, 0]) };
18862    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [3, 2, 1, 0]) };
18863    ret_val
18864}
18865#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18866#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u64_x2)"]
18867#[doc = "## Safety"]
18868#[doc = "  * Neon instrinsic unsafe"]
18869#[inline]
18870#[target_feature(enable = "neon")]
18871#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18872#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18873#[cfg_attr(
18874    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18875    assert_instr(ld1)
18876)]
18877#[cfg_attr(
18878    not(target_arch = "arm"),
18879    stable(feature = "neon_intrinsics", since = "1.59.0")
18880)]
18881#[cfg_attr(
18882    target_arch = "arm",
18883    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18884)]
18885pub unsafe fn vld1_u64_x2(a: *const u64) -> uint64x1x2_t {
18886    transmute(vld1_s64_x2(transmute(a)))
18887}
18888#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18889#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u64_x3)"]
18890#[doc = "## Safety"]
18891#[doc = "  * Neon instrinsic unsafe"]
18892#[inline]
18893#[target_feature(enable = "neon")]
18894#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18895#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18896#[cfg_attr(
18897    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18898    assert_instr(ld1)
18899)]
18900#[cfg_attr(
18901    not(target_arch = "arm"),
18902    stable(feature = "neon_intrinsics", since = "1.59.0")
18903)]
18904#[cfg_attr(
18905    target_arch = "arm",
18906    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18907)]
18908pub unsafe fn vld1_u64_x3(a: *const u64) -> uint64x1x3_t {
18909    transmute(vld1_s64_x3(transmute(a)))
18910}
18911#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18912#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u64_x4)"]
18913#[doc = "## Safety"]
18914#[doc = "  * Neon instrinsic unsafe"]
18915#[inline]
18916#[target_feature(enable = "neon")]
18917#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18918#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18919#[cfg_attr(
18920    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18921    assert_instr(ld1)
18922)]
18923#[cfg_attr(
18924    not(target_arch = "arm"),
18925    stable(feature = "neon_intrinsics", since = "1.59.0")
18926)]
18927#[cfg_attr(
18928    target_arch = "arm",
18929    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18930)]
18931pub unsafe fn vld1_u64_x4(a: *const u64) -> uint64x1x4_t {
18932    transmute(vld1_s64_x4(transmute(a)))
18933}
18934#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18935#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u64_x2)"]
18936#[doc = "## Safety"]
18937#[doc = "  * Neon instrinsic unsafe"]
18938#[inline]
18939#[cfg(target_endian = "little")]
18940#[target_feature(enable = "neon")]
18941#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18942#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18943#[cfg_attr(
18944    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18945    assert_instr(ld1)
18946)]
18947#[cfg_attr(
18948    not(target_arch = "arm"),
18949    stable(feature = "neon_intrinsics", since = "1.59.0")
18950)]
18951#[cfg_attr(
18952    target_arch = "arm",
18953    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18954)]
18955pub unsafe fn vld1q_u64_x2(a: *const u64) -> uint64x2x2_t {
18956    transmute(vld1q_s64_x2(transmute(a)))
18957}
18958#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18959#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u64_x2)"]
18960#[doc = "## Safety"]
18961#[doc = "  * Neon instrinsic unsafe"]
18962#[inline]
18963#[cfg(target_endian = "big")]
18964#[target_feature(enable = "neon")]
18965#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18966#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
18967#[cfg_attr(
18968    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18969    assert_instr(ld1)
18970)]
18971#[cfg_attr(
18972    not(target_arch = "arm"),
18973    stable(feature = "neon_intrinsics", since = "1.59.0")
18974)]
18975#[cfg_attr(
18976    target_arch = "arm",
18977    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18978)]
18979pub unsafe fn vld1q_u64_x2(a: *const u64) -> uint64x2x2_t {
18980    let mut ret_val: uint64x2x2_t = transmute(vld1q_s64_x2(transmute(a)));
18981    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [1, 0]) };
18982    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [1, 0]) };
18983    ret_val
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_u64_x3)"]
18987#[doc = "## Safety"]
18988#[doc = "  * Neon instrinsic unsafe"]
18989#[inline]
18990#[cfg(target_endian = "little")]
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_u64_x3(a: *const u64) -> uint64x2x3_t {
19007    transmute(vld1q_s64_x3(transmute(a)))
19008}
19009#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
19010#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u64_x3)"]
19011#[doc = "## Safety"]
19012#[doc = "  * Neon instrinsic unsafe"]
19013#[inline]
19014#[cfg(target_endian = "big")]
19015#[target_feature(enable = "neon")]
19016#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19017#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
19018#[cfg_attr(
19019    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19020    assert_instr(ld1)
19021)]
19022#[cfg_attr(
19023    not(target_arch = "arm"),
19024    stable(feature = "neon_intrinsics", since = "1.59.0")
19025)]
19026#[cfg_attr(
19027    target_arch = "arm",
19028    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19029)]
19030pub unsafe fn vld1q_u64_x3(a: *const u64) -> uint64x2x3_t {
19031    let mut ret_val: uint64x2x3_t = transmute(vld1q_s64_x3(transmute(a)));
19032    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [1, 0]) };
19033    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [1, 0]) };
19034    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [1, 0]) };
19035    ret_val
19036}
19037#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
19038#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u64_x4)"]
19039#[doc = "## Safety"]
19040#[doc = "  * Neon instrinsic unsafe"]
19041#[inline]
19042#[cfg(target_endian = "little")]
19043#[target_feature(enable = "neon")]
19044#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19045#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
19046#[cfg_attr(
19047    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19048    assert_instr(ld1)
19049)]
19050#[cfg_attr(
19051    not(target_arch = "arm"),
19052    stable(feature = "neon_intrinsics", since = "1.59.0")
19053)]
19054#[cfg_attr(
19055    target_arch = "arm",
19056    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19057)]
19058pub unsafe fn vld1q_u64_x4(a: *const u64) -> uint64x2x4_t {
19059    transmute(vld1q_s64_x4(transmute(a)))
19060}
19061#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
19062#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u64_x4)"]
19063#[doc = "## Safety"]
19064#[doc = "  * Neon instrinsic unsafe"]
19065#[inline]
19066#[cfg(target_endian = "big")]
19067#[target_feature(enable = "neon")]
19068#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19069#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
19070#[cfg_attr(
19071    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19072    assert_instr(ld1)
19073)]
19074#[cfg_attr(
19075    not(target_arch = "arm"),
19076    stable(feature = "neon_intrinsics", since = "1.59.0")
19077)]
19078#[cfg_attr(
19079    target_arch = "arm",
19080    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19081)]
19082pub unsafe fn vld1q_u64_x4(a: *const u64) -> uint64x2x4_t {
19083    let mut ret_val: uint64x2x4_t = transmute(vld1q_s64_x4(transmute(a)));
19084    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [1, 0]) };
19085    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [1, 0]) };
19086    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [1, 0]) };
19087    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [1, 0]) };
19088    ret_val
19089}
19090#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
19091#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p8_x2)"]
19092#[doc = "## Safety"]
19093#[doc = "  * Neon instrinsic unsafe"]
19094#[inline]
19095#[cfg(target_endian = "little")]
19096#[target_feature(enable = "neon")]
19097#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19098#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
19099#[cfg_attr(
19100    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19101    assert_instr(ld1)
19102)]
19103#[cfg_attr(
19104    not(target_arch = "arm"),
19105    stable(feature = "neon_intrinsics", since = "1.59.0")
19106)]
19107#[cfg_attr(
19108    target_arch = "arm",
19109    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19110)]
19111pub unsafe fn vld1_p8_x2(a: *const p8) -> poly8x8x2_t {
19112    transmute(vld1_s8_x2(transmute(a)))
19113}
19114#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
19115#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p8_x2)"]
19116#[doc = "## Safety"]
19117#[doc = "  * Neon instrinsic unsafe"]
19118#[inline]
19119#[cfg(target_endian = "big")]
19120#[target_feature(enable = "neon")]
19121#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19122#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
19123#[cfg_attr(
19124    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19125    assert_instr(ld1)
19126)]
19127#[cfg_attr(
19128    not(target_arch = "arm"),
19129    stable(feature = "neon_intrinsics", since = "1.59.0")
19130)]
19131#[cfg_attr(
19132    target_arch = "arm",
19133    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19134)]
19135pub unsafe fn vld1_p8_x2(a: *const p8) -> poly8x8x2_t {
19136    let mut ret_val: poly8x8x2_t = transmute(vld1_s8_x2(transmute(a)));
19137    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
19138    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
19139    ret_val
19140}
19141#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
19142#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p8_x3)"]
19143#[doc = "## Safety"]
19144#[doc = "  * Neon instrinsic unsafe"]
19145#[inline]
19146#[cfg(target_endian = "little")]
19147#[target_feature(enable = "neon")]
19148#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19149#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
19150#[cfg_attr(
19151    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19152    assert_instr(ld1)
19153)]
19154#[cfg_attr(
19155    not(target_arch = "arm"),
19156    stable(feature = "neon_intrinsics", since = "1.59.0")
19157)]
19158#[cfg_attr(
19159    target_arch = "arm",
19160    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19161)]
19162pub unsafe fn vld1_p8_x3(a: *const p8) -> poly8x8x3_t {
19163    transmute(vld1_s8_x3(transmute(a)))
19164}
19165#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
19166#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p8_x3)"]
19167#[doc = "## Safety"]
19168#[doc = "  * Neon instrinsic unsafe"]
19169#[inline]
19170#[cfg(target_endian = "big")]
19171#[target_feature(enable = "neon")]
19172#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19173#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
19174#[cfg_attr(
19175    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19176    assert_instr(ld1)
19177)]
19178#[cfg_attr(
19179    not(target_arch = "arm"),
19180    stable(feature = "neon_intrinsics", since = "1.59.0")
19181)]
19182#[cfg_attr(
19183    target_arch = "arm",
19184    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19185)]
19186pub unsafe fn vld1_p8_x3(a: *const p8) -> poly8x8x3_t {
19187    let mut ret_val: poly8x8x3_t = transmute(vld1_s8_x3(transmute(a)));
19188    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
19189    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
19190    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
19191    ret_val
19192}
19193#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
19194#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p8_x4)"]
19195#[doc = "## Safety"]
19196#[doc = "  * Neon instrinsic unsafe"]
19197#[inline]
19198#[cfg(target_endian = "little")]
19199#[target_feature(enable = "neon")]
19200#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19201#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
19202#[cfg_attr(
19203    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19204    assert_instr(ld1)
19205)]
19206#[cfg_attr(
19207    not(target_arch = "arm"),
19208    stable(feature = "neon_intrinsics", since = "1.59.0")
19209)]
19210#[cfg_attr(
19211    target_arch = "arm",
19212    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19213)]
19214pub unsafe fn vld1_p8_x4(a: *const p8) -> poly8x8x4_t {
19215    transmute(vld1_s8_x4(transmute(a)))
19216}
19217#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
19218#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p8_x4)"]
19219#[doc = "## Safety"]
19220#[doc = "  * Neon instrinsic unsafe"]
19221#[inline]
19222#[cfg(target_endian = "big")]
19223#[target_feature(enable = "neon")]
19224#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19225#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
19226#[cfg_attr(
19227    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19228    assert_instr(ld1)
19229)]
19230#[cfg_attr(
19231    not(target_arch = "arm"),
19232    stable(feature = "neon_intrinsics", since = "1.59.0")
19233)]
19234#[cfg_attr(
19235    target_arch = "arm",
19236    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19237)]
19238pub unsafe fn vld1_p8_x4(a: *const p8) -> poly8x8x4_t {
19239    let mut ret_val: poly8x8x4_t = transmute(vld1_s8_x4(transmute(a)));
19240    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
19241    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
19242    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
19243    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [7, 6, 5, 4, 3, 2, 1, 0]) };
19244    ret_val
19245}
19246#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
19247#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p8_x2)"]
19248#[doc = "## Safety"]
19249#[doc = "  * Neon instrinsic unsafe"]
19250#[inline]
19251#[cfg(target_endian = "little")]
19252#[target_feature(enable = "neon")]
19253#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19254#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
19255#[cfg_attr(
19256    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19257    assert_instr(ld1)
19258)]
19259#[cfg_attr(
19260    not(target_arch = "arm"),
19261    stable(feature = "neon_intrinsics", since = "1.59.0")
19262)]
19263#[cfg_attr(
19264    target_arch = "arm",
19265    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19266)]
19267pub unsafe fn vld1q_p8_x2(a: *const p8) -> poly8x16x2_t {
19268    transmute(vld1q_s8_x2(transmute(a)))
19269}
19270#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
19271#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p8_x2)"]
19272#[doc = "## Safety"]
19273#[doc = "  * Neon instrinsic unsafe"]
19274#[inline]
19275#[cfg(target_endian = "big")]
19276#[target_feature(enable = "neon")]
19277#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19278#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
19279#[cfg_attr(
19280    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19281    assert_instr(ld1)
19282)]
19283#[cfg_attr(
19284    not(target_arch = "arm"),
19285    stable(feature = "neon_intrinsics", since = "1.59.0")
19286)]
19287#[cfg_attr(
19288    target_arch = "arm",
19289    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19290)]
19291pub unsafe fn vld1q_p8_x2(a: *const p8) -> poly8x16x2_t {
19292    let mut ret_val: poly8x16x2_t = transmute(vld1q_s8_x2(transmute(a)));
19293    ret_val.0 = unsafe {
19294        simd_shuffle!(
19295            ret_val.0,
19296            ret_val.0,
19297            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
19298        )
19299    };
19300    ret_val.1 = unsafe {
19301        simd_shuffle!(
19302            ret_val.1,
19303            ret_val.1,
19304            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
19305        )
19306    };
19307    ret_val
19308}
19309#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
19310#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p8_x3)"]
19311#[doc = "## Safety"]
19312#[doc = "  * Neon instrinsic unsafe"]
19313#[inline]
19314#[cfg(target_endian = "little")]
19315#[target_feature(enable = "neon")]
19316#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19317#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
19318#[cfg_attr(
19319    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19320    assert_instr(ld1)
19321)]
19322#[cfg_attr(
19323    not(target_arch = "arm"),
19324    stable(feature = "neon_intrinsics", since = "1.59.0")
19325)]
19326#[cfg_attr(
19327    target_arch = "arm",
19328    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19329)]
19330pub unsafe fn vld1q_p8_x3(a: *const p8) -> poly8x16x3_t {
19331    transmute(vld1q_s8_x3(transmute(a)))
19332}
19333#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
19334#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p8_x3)"]
19335#[doc = "## Safety"]
19336#[doc = "  * Neon instrinsic unsafe"]
19337#[inline]
19338#[cfg(target_endian = "big")]
19339#[target_feature(enable = "neon")]
19340#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19341#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
19342#[cfg_attr(
19343    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19344    assert_instr(ld1)
19345)]
19346#[cfg_attr(
19347    not(target_arch = "arm"),
19348    stable(feature = "neon_intrinsics", since = "1.59.0")
19349)]
19350#[cfg_attr(
19351    target_arch = "arm",
19352    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19353)]
19354pub unsafe fn vld1q_p8_x3(a: *const p8) -> poly8x16x3_t {
19355    let mut ret_val: poly8x16x3_t = transmute(vld1q_s8_x3(transmute(a)));
19356    ret_val.0 = unsafe {
19357        simd_shuffle!(
19358            ret_val.0,
19359            ret_val.0,
19360            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
19361        )
19362    };
19363    ret_val.1 = unsafe {
19364        simd_shuffle!(
19365            ret_val.1,
19366            ret_val.1,
19367            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
19368        )
19369    };
19370    ret_val.2 = unsafe {
19371        simd_shuffle!(
19372            ret_val.2,
19373            ret_val.2,
19374            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
19375        )
19376    };
19377    ret_val
19378}
19379#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
19380#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p8_x4)"]
19381#[doc = "## Safety"]
19382#[doc = "  * Neon instrinsic unsafe"]
19383#[inline]
19384#[cfg(target_endian = "little")]
19385#[target_feature(enable = "neon")]
19386#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19387#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
19388#[cfg_attr(
19389    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19390    assert_instr(ld1)
19391)]
19392#[cfg_attr(
19393    not(target_arch = "arm"),
19394    stable(feature = "neon_intrinsics", since = "1.59.0")
19395)]
19396#[cfg_attr(
19397    target_arch = "arm",
19398    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19399)]
19400pub unsafe fn vld1q_p8_x4(a: *const p8) -> poly8x16x4_t {
19401    transmute(vld1q_s8_x4(transmute(a)))
19402}
19403#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
19404#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p8_x4)"]
19405#[doc = "## Safety"]
19406#[doc = "  * Neon instrinsic unsafe"]
19407#[inline]
19408#[cfg(target_endian = "big")]
19409#[target_feature(enable = "neon")]
19410#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19411#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
19412#[cfg_attr(
19413    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19414    assert_instr(ld1)
19415)]
19416#[cfg_attr(
19417    not(target_arch = "arm"),
19418    stable(feature = "neon_intrinsics", since = "1.59.0")
19419)]
19420#[cfg_attr(
19421    target_arch = "arm",
19422    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19423)]
19424pub unsafe fn vld1q_p8_x4(a: *const p8) -> poly8x16x4_t {
19425    let mut ret_val: poly8x16x4_t = transmute(vld1q_s8_x4(transmute(a)));
19426    ret_val.0 = unsafe {
19427        simd_shuffle!(
19428            ret_val.0,
19429            ret_val.0,
19430            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
19431        )
19432    };
19433    ret_val.1 = unsafe {
19434        simd_shuffle!(
19435            ret_val.1,
19436            ret_val.1,
19437            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
19438        )
19439    };
19440    ret_val.2 = unsafe {
19441        simd_shuffle!(
19442            ret_val.2,
19443            ret_val.2,
19444            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
19445        )
19446    };
19447    ret_val.3 = unsafe {
19448        simd_shuffle!(
19449            ret_val.3,
19450            ret_val.3,
19451            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
19452        )
19453    };
19454    ret_val
19455}
19456#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
19457#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p16_x2)"]
19458#[doc = "## Safety"]
19459#[doc = "  * Neon instrinsic unsafe"]
19460#[inline]
19461#[cfg(target_endian = "little")]
19462#[target_feature(enable = "neon")]
19463#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19464#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
19465#[cfg_attr(
19466    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19467    assert_instr(ld1)
19468)]
19469#[cfg_attr(
19470    not(target_arch = "arm"),
19471    stable(feature = "neon_intrinsics", since = "1.59.0")
19472)]
19473#[cfg_attr(
19474    target_arch = "arm",
19475    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19476)]
19477pub unsafe fn vld1_p16_x2(a: *const p16) -> poly16x4x2_t {
19478    transmute(vld1_s16_x2(transmute(a)))
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_p16_x2)"]
19482#[doc = "## Safety"]
19483#[doc = "  * Neon instrinsic unsafe"]
19484#[inline]
19485#[cfg(target_endian = "big")]
19486#[target_feature(enable = "neon")]
19487#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19488#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
19489#[cfg_attr(
19490    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19491    assert_instr(ld1)
19492)]
19493#[cfg_attr(
19494    not(target_arch = "arm"),
19495    stable(feature = "neon_intrinsics", since = "1.59.0")
19496)]
19497#[cfg_attr(
19498    target_arch = "arm",
19499    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19500)]
19501pub unsafe fn vld1_p16_x2(a: *const p16) -> poly16x4x2_t {
19502    let mut ret_val: poly16x4x2_t = transmute(vld1_s16_x2(transmute(a)));
19503    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
19504    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
19505    ret_val
19506}
19507#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
19508#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p16_x3)"]
19509#[doc = "## Safety"]
19510#[doc = "  * Neon instrinsic unsafe"]
19511#[inline]
19512#[cfg(target_endian = "little")]
19513#[target_feature(enable = "neon")]
19514#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19515#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
19516#[cfg_attr(
19517    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19518    assert_instr(ld1)
19519)]
19520#[cfg_attr(
19521    not(target_arch = "arm"),
19522    stable(feature = "neon_intrinsics", since = "1.59.0")
19523)]
19524#[cfg_attr(
19525    target_arch = "arm",
19526    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19527)]
19528pub unsafe fn vld1_p16_x3(a: *const p16) -> poly16x4x3_t {
19529    transmute(vld1_s16_x3(transmute(a)))
19530}
19531#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
19532#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p16_x3)"]
19533#[doc = "## Safety"]
19534#[doc = "  * Neon instrinsic unsafe"]
19535#[inline]
19536#[cfg(target_endian = "big")]
19537#[target_feature(enable = "neon")]
19538#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19539#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
19540#[cfg_attr(
19541    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19542    assert_instr(ld1)
19543)]
19544#[cfg_attr(
19545    not(target_arch = "arm"),
19546    stable(feature = "neon_intrinsics", since = "1.59.0")
19547)]
19548#[cfg_attr(
19549    target_arch = "arm",
19550    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19551)]
19552pub unsafe fn vld1_p16_x3(a: *const p16) -> poly16x4x3_t {
19553    let mut ret_val: poly16x4x3_t = transmute(vld1_s16_x3(transmute(a)));
19554    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
19555    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
19556    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [3, 2, 1, 0]) };
19557    ret_val
19558}
19559#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
19560#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p16_x4)"]
19561#[doc = "## Safety"]
19562#[doc = "  * Neon instrinsic unsafe"]
19563#[inline]
19564#[cfg(target_endian = "little")]
19565#[target_feature(enable = "neon")]
19566#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19567#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
19568#[cfg_attr(
19569    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19570    assert_instr(ld1)
19571)]
19572#[cfg_attr(
19573    not(target_arch = "arm"),
19574    stable(feature = "neon_intrinsics", since = "1.59.0")
19575)]
19576#[cfg_attr(
19577    target_arch = "arm",
19578    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19579)]
19580pub unsafe fn vld1_p16_x4(a: *const p16) -> poly16x4x4_t {
19581    transmute(vld1_s16_x4(transmute(a)))
19582}
19583#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
19584#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p16_x4)"]
19585#[doc = "## Safety"]
19586#[doc = "  * Neon instrinsic unsafe"]
19587#[inline]
19588#[cfg(target_endian = "big")]
19589#[target_feature(enable = "neon")]
19590#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19591#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
19592#[cfg_attr(
19593    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19594    assert_instr(ld1)
19595)]
19596#[cfg_attr(
19597    not(target_arch = "arm"),
19598    stable(feature = "neon_intrinsics", since = "1.59.0")
19599)]
19600#[cfg_attr(
19601    target_arch = "arm",
19602    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19603)]
19604pub unsafe fn vld1_p16_x4(a: *const p16) -> poly16x4x4_t {
19605    let mut ret_val: poly16x4x4_t = transmute(vld1_s16_x4(transmute(a)));
19606    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
19607    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
19608    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [3, 2, 1, 0]) };
19609    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [3, 2, 1, 0]) };
19610    ret_val
19611}
19612#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
19613#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p16_x2)"]
19614#[doc = "## Safety"]
19615#[doc = "  * Neon instrinsic unsafe"]
19616#[inline]
19617#[cfg(target_endian = "little")]
19618#[target_feature(enable = "neon")]
19619#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19620#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
19621#[cfg_attr(
19622    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19623    assert_instr(ld1)
19624)]
19625#[cfg_attr(
19626    not(target_arch = "arm"),
19627    stable(feature = "neon_intrinsics", since = "1.59.0")
19628)]
19629#[cfg_attr(
19630    target_arch = "arm",
19631    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19632)]
19633pub unsafe fn vld1q_p16_x2(a: *const p16) -> poly16x8x2_t {
19634    transmute(vld1q_s16_x2(transmute(a)))
19635}
19636#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
19637#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p16_x2)"]
19638#[doc = "## Safety"]
19639#[doc = "  * Neon instrinsic unsafe"]
19640#[inline]
19641#[cfg(target_endian = "big")]
19642#[target_feature(enable = "neon")]
19643#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19644#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
19645#[cfg_attr(
19646    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19647    assert_instr(ld1)
19648)]
19649#[cfg_attr(
19650    not(target_arch = "arm"),
19651    stable(feature = "neon_intrinsics", since = "1.59.0")
19652)]
19653#[cfg_attr(
19654    target_arch = "arm",
19655    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19656)]
19657pub unsafe fn vld1q_p16_x2(a: *const p16) -> poly16x8x2_t {
19658    let mut ret_val: poly16x8x2_t = transmute(vld1q_s16_x2(transmute(a)));
19659    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
19660    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
19661    ret_val
19662}
19663#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
19664#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p16_x3)"]
19665#[doc = "## Safety"]
19666#[doc = "  * Neon instrinsic unsafe"]
19667#[inline]
19668#[cfg(target_endian = "little")]
19669#[target_feature(enable = "neon")]
19670#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19671#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
19672#[cfg_attr(
19673    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19674    assert_instr(ld1)
19675)]
19676#[cfg_attr(
19677    not(target_arch = "arm"),
19678    stable(feature = "neon_intrinsics", since = "1.59.0")
19679)]
19680#[cfg_attr(
19681    target_arch = "arm",
19682    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19683)]
19684pub unsafe fn vld1q_p16_x3(a: *const p16) -> poly16x8x3_t {
19685    transmute(vld1q_s16_x3(transmute(a)))
19686}
19687#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
19688#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p16_x3)"]
19689#[doc = "## Safety"]
19690#[doc = "  * Neon instrinsic unsafe"]
19691#[inline]
19692#[cfg(target_endian = "big")]
19693#[target_feature(enable = "neon")]
19694#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19695#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
19696#[cfg_attr(
19697    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19698    assert_instr(ld1)
19699)]
19700#[cfg_attr(
19701    not(target_arch = "arm"),
19702    stable(feature = "neon_intrinsics", since = "1.59.0")
19703)]
19704#[cfg_attr(
19705    target_arch = "arm",
19706    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19707)]
19708pub unsafe fn vld1q_p16_x3(a: *const p16) -> poly16x8x3_t {
19709    let mut ret_val: poly16x8x3_t = transmute(vld1q_s16_x3(transmute(a)));
19710    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
19711    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
19712    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
19713    ret_val
19714}
19715#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
19716#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p16_x4)"]
19717#[doc = "## Safety"]
19718#[doc = "  * Neon instrinsic unsafe"]
19719#[inline]
19720#[cfg(target_endian = "little")]
19721#[target_feature(enable = "neon")]
19722#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19723#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
19724#[cfg_attr(
19725    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19726    assert_instr(ld1)
19727)]
19728#[cfg_attr(
19729    not(target_arch = "arm"),
19730    stable(feature = "neon_intrinsics", since = "1.59.0")
19731)]
19732#[cfg_attr(
19733    target_arch = "arm",
19734    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19735)]
19736pub unsafe fn vld1q_p16_x4(a: *const p16) -> poly16x8x4_t {
19737    transmute(vld1q_s16_x4(transmute(a)))
19738}
19739#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
19740#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p16_x4)"]
19741#[doc = "## Safety"]
19742#[doc = "  * Neon instrinsic unsafe"]
19743#[inline]
19744#[cfg(target_endian = "big")]
19745#[target_feature(enable = "neon")]
19746#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19747#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
19748#[cfg_attr(
19749    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19750    assert_instr(ld1)
19751)]
19752#[cfg_attr(
19753    not(target_arch = "arm"),
19754    stable(feature = "neon_intrinsics", since = "1.59.0")
19755)]
19756#[cfg_attr(
19757    target_arch = "arm",
19758    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19759)]
19760pub unsafe fn vld1q_p16_x4(a: *const p16) -> poly16x8x4_t {
19761    let mut ret_val: poly16x8x4_t = transmute(vld1q_s16_x4(transmute(a)));
19762    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
19763    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
19764    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
19765    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [7, 6, 5, 4, 3, 2, 1, 0]) };
19766    ret_val
19767}
19768#[inline]
19769#[rustc_legacy_const_generics(1)]
19770#[cfg(target_arch = "arm")]
19771#[target_feature(enable = "neon,v7")]
19772#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8", ALIGN = 0))]
19773#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
19774unsafe fn vld1_v1i64<const ALIGN: i32>(a: *const i8) -> int64x1_t {
19775    unsafe extern "unadjusted" {
19776        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1.v1i64")]
19777        fn _vld1_v1i64(a: *const i8, b: i32) -> int64x1_t;
19778    }
19779    _vld1_v1i64(a, ALIGN)
19780}
19781#[inline]
19782#[rustc_legacy_const_generics(1)]
19783#[cfg(target_arch = "arm")]
19784#[target_feature(enable = "neon,v7")]
19785#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8", ALIGN = 0))]
19786#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
19787unsafe fn vld1_v2f32<const ALIGN: i32>(a: *const i8) -> float32x2_t {
19788    unsafe extern "unadjusted" {
19789        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1.v2f32")]
19790        fn _vld1_v2f32(a: *const i8, b: i32) -> float32x2_t;
19791    }
19792    _vld1_v2f32(a, ALIGN)
19793}
19794#[inline]
19795#[rustc_legacy_const_generics(1)]
19796#[cfg(target_arch = "arm")]
19797#[target_feature(enable = "neon,v7")]
19798#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8", ALIGN = 0))]
19799#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
19800unsafe fn vld1_v2i32<const ALIGN: i32>(a: *const i8) -> int32x2_t {
19801    unsafe extern "unadjusted" {
19802        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1.v2i32")]
19803        fn _vld1_v2i32(a: *const i8, b: i32) -> int32x2_t;
19804    }
19805    _vld1_v2i32(a, ALIGN)
19806}
19807#[inline]
19808#[rustc_legacy_const_generics(1)]
19809#[cfg(target_arch = "arm")]
19810#[target_feature(enable = "neon,v7")]
19811#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8", ALIGN = 0))]
19812#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
19813unsafe fn vld1_v4i16<const ALIGN: i32>(a: *const i8) -> int16x4_t {
19814    unsafe extern "unadjusted" {
19815        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1.v4i16")]
19816        fn _vld1_v4i16(a: *const i8, b: i32) -> int16x4_t;
19817    }
19818    _vld1_v4i16(a, ALIGN)
19819}
19820#[inline]
19821#[rustc_legacy_const_generics(1)]
19822#[cfg(target_arch = "arm")]
19823#[target_feature(enable = "neon,v7")]
19824#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8", ALIGN = 0))]
19825#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
19826unsafe fn vld1_v8i8<const ALIGN: i32>(a: *const i8) -> int8x8_t {
19827    unsafe extern "unadjusted" {
19828        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1.v8i8")]
19829        fn _vld1_v8i8(a: *const i8, b: i32) -> int8x8_t;
19830    }
19831    _vld1_v8i8(a, ALIGN)
19832}
19833#[inline]
19834#[rustc_legacy_const_generics(1)]
19835#[cfg(target_arch = "arm")]
19836#[target_feature(enable = "neon,v7")]
19837#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8", ALIGN = 0))]
19838#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
19839unsafe fn vld1q_v16i8<const ALIGN: i32>(a: *const i8) -> int8x16_t {
19840    unsafe extern "unadjusted" {
19841        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1.v16i8")]
19842        fn _vld1q_v16i8(a: *const i8, b: i32) -> int8x16_t;
19843    }
19844    _vld1q_v16i8(a, ALIGN)
19845}
19846#[inline]
19847#[rustc_legacy_const_generics(1)]
19848#[cfg(target_arch = "arm")]
19849#[target_feature(enable = "neon,v7")]
19850#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8", ALIGN = 0))]
19851#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
19852unsafe fn vld1q_v2i64<const ALIGN: i32>(a: *const i8) -> int64x2_t {
19853    unsafe extern "unadjusted" {
19854        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1.v2i64")]
19855        fn _vld1q_v2i64(a: *const i8, b: i32) -> int64x2_t;
19856    }
19857    _vld1q_v2i64(a, ALIGN)
19858}
19859#[inline]
19860#[rustc_legacy_const_generics(1)]
19861#[cfg(target_arch = "arm")]
19862#[target_feature(enable = "neon,v7")]
19863#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8", ALIGN = 0))]
19864#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
19865unsafe fn vld1q_v4f32<const ALIGN: i32>(a: *const i8) -> float32x4_t {
19866    unsafe extern "unadjusted" {
19867        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1.v4f32")]
19868        fn _vld1q_v4f32(a: *const i8, b: i32) -> float32x4_t;
19869    }
19870    _vld1q_v4f32(a, ALIGN)
19871}
19872#[inline]
19873#[rustc_legacy_const_generics(1)]
19874#[cfg(target_arch = "arm")]
19875#[target_feature(enable = "neon,v7")]
19876#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8", ALIGN = 0))]
19877#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
19878unsafe fn vld1q_v4i32<const ALIGN: i32>(a: *const i8) -> int32x4_t {
19879    unsafe extern "unadjusted" {
19880        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1.v4i32")]
19881        fn _vld1q_v4i32(a: *const i8, b: i32) -> int32x4_t;
19882    }
19883    _vld1q_v4i32(a, ALIGN)
19884}
19885#[inline]
19886#[rustc_legacy_const_generics(1)]
19887#[cfg(target_arch = "arm")]
19888#[target_feature(enable = "neon,v7")]
19889#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8", ALIGN = 0))]
19890#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
19891unsafe fn vld1q_v8i16<const ALIGN: i32>(a: *const i8) -> int16x8_t {
19892    unsafe extern "unadjusted" {
19893        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1.v8i16")]
19894        fn _vld1q_v8i16(a: *const i8, b: i32) -> int16x8_t;
19895    }
19896    _vld1q_v8i16(a, ALIGN)
19897}
19898#[inline]
19899#[cfg(target_arch = "arm")]
19900#[target_feature(enable = "neon,v7")]
19901#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
19902#[target_feature(enable = "neon,fp16")]
19903#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
19904#[cfg(not(target_arch = "arm64ec"))]
19905unsafe fn vld1_v4f16(a: *const i8, b: i32) -> float16x4_t {
19906    unsafe extern "unadjusted" {
19907        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1.v4f16")]
19908        fn _vld1_v4f16(a: *const i8, b: i32) -> float16x4_t;
19909    }
19910    _vld1_v4f16(a, b)
19911}
19912#[inline]
19913#[cfg(target_arch = "arm")]
19914#[target_feature(enable = "neon,v7")]
19915#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
19916#[target_feature(enable = "neon,fp16")]
19917#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
19918#[cfg(not(target_arch = "arm64ec"))]
19919unsafe fn vld1q_v8f16(a: *const i8, b: i32) -> float16x8_t {
19920    unsafe extern "unadjusted" {
19921        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1.v8f16")]
19922        fn _vld1q_v8f16(a: *const i8, b: i32) -> float16x8_t;
19923    }
19924    _vld1q_v8f16(a, b)
19925}
19926#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
19927#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_p64)"]
19928#[doc = "## Safety"]
19929#[doc = "  * Neon instrinsic unsafe"]
19930#[inline]
19931#[target_feature(enable = "neon,aes")]
19932#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19933#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr))]
19934#[cfg_attr(
19935    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19936    assert_instr(ld1r)
19937)]
19938#[cfg_attr(
19939    not(target_arch = "arm"),
19940    stable(feature = "neon_intrinsics", since = "1.59.0")
19941)]
19942#[cfg_attr(
19943    target_arch = "arm",
19944    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19945)]
19946pub unsafe fn vld1q_dup_p64(ptr: *const p64) -> poly64x2_t {
19947    let x = vld1q_lane_p64::<0>(ptr, transmute(u64x2::splat(0)));
19948    simd_shuffle!(x, x, [0, 0])
19949}
19950#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19951#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_f16)"]
19952#[doc = "## Safety"]
19953#[doc = "  * Neon instrinsic unsafe"]
19954#[inline]
19955#[target_feature(enable = "neon")]
19956#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19957#[cfg(target_arch = "arm")]
19958#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
19959#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
19960#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
19961#[cfg(not(target_arch = "arm64ec"))]
19962pub unsafe fn vld2_dup_f16(a: *const f16) -> float16x4x2_t {
19963    unsafe extern "unadjusted" {
19964        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2dup.v4f16.p0")]
19965        fn _vld2_dup_f16(ptr: *const f16, size: i32) -> float16x4x2_t;
19966    }
19967    _vld2_dup_f16(a as _, 2)
19968}
19969#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19970#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_f16)"]
19971#[doc = "## Safety"]
19972#[doc = "  * Neon instrinsic unsafe"]
19973#[inline]
19974#[target_feature(enable = "neon")]
19975#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19976#[cfg(target_arch = "arm")]
19977#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
19978#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
19979#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
19980#[cfg(not(target_arch = "arm64ec"))]
19981pub unsafe fn vld2q_dup_f16(a: *const f16) -> float16x8x2_t {
19982    unsafe extern "unadjusted" {
19983        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2dup.v8f16.p0")]
19984        fn _vld2q_dup_f16(ptr: *const f16, size: i32) -> float16x8x2_t;
19985    }
19986    _vld2q_dup_f16(a as _, 2)
19987}
19988#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19989#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_f16)"]
19990#[doc = "## Safety"]
19991#[doc = "  * Neon instrinsic unsafe"]
19992#[inline]
19993#[target_feature(enable = "neon")]
19994#[cfg(not(target_arch = "arm"))]
19995#[cfg_attr(
19996    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19997    assert_instr(ld2r)
19998)]
19999#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
20000#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
20001#[cfg(not(target_arch = "arm64ec"))]
20002pub unsafe fn vld2_dup_f16(a: *const f16) -> float16x4x2_t {
20003    unsafe extern "unadjusted" {
20004        #[cfg_attr(
20005            any(target_arch = "aarch64", target_arch = "arm64ec"),
20006            link_name = "llvm.aarch64.neon.ld2r.v4f16.p0"
20007        )]
20008        fn _vld2_dup_f16(ptr: *const f16) -> float16x4x2_t;
20009    }
20010    _vld2_dup_f16(a as _)
20011}
20012#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20013#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_f16)"]
20014#[doc = "## Safety"]
20015#[doc = "  * Neon instrinsic unsafe"]
20016#[inline]
20017#[target_feature(enable = "neon")]
20018#[cfg(not(target_arch = "arm"))]
20019#[cfg_attr(
20020    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20021    assert_instr(ld2r)
20022)]
20023#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
20024#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
20025#[cfg(not(target_arch = "arm64ec"))]
20026pub unsafe fn vld2q_dup_f16(a: *const f16) -> float16x8x2_t {
20027    unsafe extern "unadjusted" {
20028        #[cfg_attr(
20029            any(target_arch = "aarch64", target_arch = "arm64ec"),
20030            link_name = "llvm.aarch64.neon.ld2r.v8f16.p0"
20031        )]
20032        fn _vld2q_dup_f16(ptr: *const f16) -> float16x8x2_t;
20033    }
20034    _vld2q_dup_f16(a as _)
20035}
20036#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20037#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_f32)"]
20038#[doc = "## Safety"]
20039#[doc = "  * Neon instrinsic unsafe"]
20040#[inline]
20041#[target_feature(enable = "neon,v7")]
20042#[cfg(target_arch = "arm")]
20043#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
20044#[cfg_attr(test, assert_instr(vld2))]
20045pub unsafe fn vld2_dup_f32(a: *const f32) -> float32x2x2_t {
20046    unsafe extern "unadjusted" {
20047        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2dup.v2f32.p0")]
20048        fn _vld2_dup_f32(ptr: *const i8, size: i32) -> float32x2x2_t;
20049    }
20050    _vld2_dup_f32(a as *const i8, 4)
20051}
20052#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20053#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_f32)"]
20054#[doc = "## Safety"]
20055#[doc = "  * Neon instrinsic unsafe"]
20056#[inline]
20057#[target_feature(enable = "neon,v7")]
20058#[cfg(target_arch = "arm")]
20059#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
20060#[cfg_attr(test, assert_instr(vld2))]
20061pub unsafe fn vld2q_dup_f32(a: *const f32) -> float32x4x2_t {
20062    unsafe extern "unadjusted" {
20063        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2dup.v4f32.p0")]
20064        fn _vld2q_dup_f32(ptr: *const i8, size: i32) -> float32x4x2_t;
20065    }
20066    _vld2q_dup_f32(a as *const i8, 4)
20067}
20068#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20069#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_s8)"]
20070#[doc = "## Safety"]
20071#[doc = "  * Neon instrinsic unsafe"]
20072#[inline]
20073#[target_feature(enable = "neon,v7")]
20074#[cfg(target_arch = "arm")]
20075#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
20076#[cfg_attr(test, assert_instr(vld2))]
20077pub unsafe fn vld2_dup_s8(a: *const i8) -> int8x8x2_t {
20078    unsafe extern "unadjusted" {
20079        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2dup.v8i8.p0")]
20080        fn _vld2_dup_s8(ptr: *const i8, size: i32) -> int8x8x2_t;
20081    }
20082    _vld2_dup_s8(a as *const i8, 1)
20083}
20084#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20085#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_s8)"]
20086#[doc = "## Safety"]
20087#[doc = "  * Neon instrinsic unsafe"]
20088#[inline]
20089#[target_feature(enable = "neon,v7")]
20090#[cfg(target_arch = "arm")]
20091#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
20092#[cfg_attr(test, assert_instr(vld2))]
20093pub unsafe fn vld2q_dup_s8(a: *const i8) -> int8x16x2_t {
20094    unsafe extern "unadjusted" {
20095        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2dup.v16i8.p0")]
20096        fn _vld2q_dup_s8(ptr: *const i8, size: i32) -> int8x16x2_t;
20097    }
20098    _vld2q_dup_s8(a as *const i8, 1)
20099}
20100#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20101#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_s16)"]
20102#[doc = "## Safety"]
20103#[doc = "  * Neon instrinsic unsafe"]
20104#[inline]
20105#[target_feature(enable = "neon,v7")]
20106#[cfg(target_arch = "arm")]
20107#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
20108#[cfg_attr(test, assert_instr(vld2))]
20109pub unsafe fn vld2_dup_s16(a: *const i16) -> int16x4x2_t {
20110    unsafe extern "unadjusted" {
20111        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2dup.v4i16.p0")]
20112        fn _vld2_dup_s16(ptr: *const i8, size: i32) -> int16x4x2_t;
20113    }
20114    _vld2_dup_s16(a as *const i8, 2)
20115}
20116#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20117#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_s16)"]
20118#[doc = "## Safety"]
20119#[doc = "  * Neon instrinsic unsafe"]
20120#[inline]
20121#[target_feature(enable = "neon,v7")]
20122#[cfg(target_arch = "arm")]
20123#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
20124#[cfg_attr(test, assert_instr(vld2))]
20125pub unsafe fn vld2q_dup_s16(a: *const i16) -> int16x8x2_t {
20126    unsafe extern "unadjusted" {
20127        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2dup.v8i16.p0")]
20128        fn _vld2q_dup_s16(ptr: *const i8, size: i32) -> int16x8x2_t;
20129    }
20130    _vld2q_dup_s16(a as *const i8, 2)
20131}
20132#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20133#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_s32)"]
20134#[doc = "## Safety"]
20135#[doc = "  * Neon instrinsic unsafe"]
20136#[inline]
20137#[target_feature(enable = "neon,v7")]
20138#[cfg(target_arch = "arm")]
20139#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
20140#[cfg_attr(test, assert_instr(vld2))]
20141pub unsafe fn vld2_dup_s32(a: *const i32) -> int32x2x2_t {
20142    unsafe extern "unadjusted" {
20143        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2dup.v2i32.p0")]
20144        fn _vld2_dup_s32(ptr: *const i8, size: i32) -> int32x2x2_t;
20145    }
20146    _vld2_dup_s32(a as *const i8, 4)
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_s32)"]
20150#[doc = "## Safety"]
20151#[doc = "  * Neon instrinsic unsafe"]
20152#[inline]
20153#[target_feature(enable = "neon,v7")]
20154#[cfg(target_arch = "arm")]
20155#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
20156#[cfg_attr(test, assert_instr(vld2))]
20157pub unsafe fn vld2q_dup_s32(a: *const i32) -> int32x4x2_t {
20158    unsafe extern "unadjusted" {
20159        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2dup.v4i32.p0")]
20160        fn _vld2q_dup_s32(ptr: *const i8, size: i32) -> int32x4x2_t;
20161    }
20162    _vld2q_dup_s32(a as *const i8, 4)
20163}
20164#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20165#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_f32)"]
20166#[doc = "## Safety"]
20167#[doc = "  * Neon instrinsic unsafe"]
20168#[inline]
20169#[target_feature(enable = "neon")]
20170#[cfg(not(target_arch = "arm"))]
20171#[stable(feature = "neon_intrinsics", since = "1.59.0")]
20172#[cfg_attr(test, assert_instr(ld2r))]
20173pub unsafe fn vld2_dup_f32(a: *const f32) -> float32x2x2_t {
20174    unsafe extern "unadjusted" {
20175        #[cfg_attr(
20176            any(target_arch = "aarch64", target_arch = "arm64ec"),
20177            link_name = "llvm.aarch64.neon.ld2r.v2f32.p0"
20178        )]
20179        fn _vld2_dup_f32(ptr: *const f32) -> float32x2x2_t;
20180    }
20181    _vld2_dup_f32(a as _)
20182}
20183#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20184#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_f32)"]
20185#[doc = "## Safety"]
20186#[doc = "  * Neon instrinsic unsafe"]
20187#[inline]
20188#[target_feature(enable = "neon")]
20189#[cfg(not(target_arch = "arm"))]
20190#[stable(feature = "neon_intrinsics", since = "1.59.0")]
20191#[cfg_attr(test, assert_instr(ld2r))]
20192pub unsafe fn vld2q_dup_f32(a: *const f32) -> float32x4x2_t {
20193    unsafe extern "unadjusted" {
20194        #[cfg_attr(
20195            any(target_arch = "aarch64", target_arch = "arm64ec"),
20196            link_name = "llvm.aarch64.neon.ld2r.v4f32.p0"
20197        )]
20198        fn _vld2q_dup_f32(ptr: *const f32) -> float32x4x2_t;
20199    }
20200    _vld2q_dup_f32(a as _)
20201}
20202#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20203#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_s8)"]
20204#[doc = "## Safety"]
20205#[doc = "  * Neon instrinsic unsafe"]
20206#[inline]
20207#[target_feature(enable = "neon")]
20208#[cfg(not(target_arch = "arm"))]
20209#[stable(feature = "neon_intrinsics", since = "1.59.0")]
20210#[cfg_attr(test, assert_instr(ld2r))]
20211pub unsafe fn vld2_dup_s8(a: *const i8) -> int8x8x2_t {
20212    unsafe extern "unadjusted" {
20213        #[cfg_attr(
20214            any(target_arch = "aarch64", target_arch = "arm64ec"),
20215            link_name = "llvm.aarch64.neon.ld2r.v8i8.p0"
20216        )]
20217        fn _vld2_dup_s8(ptr: *const i8) -> int8x8x2_t;
20218    }
20219    _vld2_dup_s8(a as _)
20220}
20221#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20222#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_s8)"]
20223#[doc = "## Safety"]
20224#[doc = "  * Neon instrinsic unsafe"]
20225#[inline]
20226#[target_feature(enable = "neon")]
20227#[cfg(not(target_arch = "arm"))]
20228#[stable(feature = "neon_intrinsics", since = "1.59.0")]
20229#[cfg_attr(test, assert_instr(ld2r))]
20230pub unsafe fn vld2q_dup_s8(a: *const i8) -> int8x16x2_t {
20231    unsafe extern "unadjusted" {
20232        #[cfg_attr(
20233            any(target_arch = "aarch64", target_arch = "arm64ec"),
20234            link_name = "llvm.aarch64.neon.ld2r.v16i8.p0"
20235        )]
20236        fn _vld2q_dup_s8(ptr: *const i8) -> int8x16x2_t;
20237    }
20238    _vld2q_dup_s8(a as _)
20239}
20240#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20241#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_s16)"]
20242#[doc = "## Safety"]
20243#[doc = "  * Neon instrinsic unsafe"]
20244#[inline]
20245#[target_feature(enable = "neon")]
20246#[cfg(not(target_arch = "arm"))]
20247#[stable(feature = "neon_intrinsics", since = "1.59.0")]
20248#[cfg_attr(test, assert_instr(ld2r))]
20249pub unsafe fn vld2_dup_s16(a: *const i16) -> int16x4x2_t {
20250    unsafe extern "unadjusted" {
20251        #[cfg_attr(
20252            any(target_arch = "aarch64", target_arch = "arm64ec"),
20253            link_name = "llvm.aarch64.neon.ld2r.v4i16.p0"
20254        )]
20255        fn _vld2_dup_s16(ptr: *const i16) -> int16x4x2_t;
20256    }
20257    _vld2_dup_s16(a as _)
20258}
20259#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20260#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_s16)"]
20261#[doc = "## Safety"]
20262#[doc = "  * Neon instrinsic unsafe"]
20263#[inline]
20264#[target_feature(enable = "neon")]
20265#[cfg(not(target_arch = "arm"))]
20266#[stable(feature = "neon_intrinsics", since = "1.59.0")]
20267#[cfg_attr(test, assert_instr(ld2r))]
20268pub unsafe fn vld2q_dup_s16(a: *const i16) -> int16x8x2_t {
20269    unsafe extern "unadjusted" {
20270        #[cfg_attr(
20271            any(target_arch = "aarch64", target_arch = "arm64ec"),
20272            link_name = "llvm.aarch64.neon.ld2r.v8i16.p0"
20273        )]
20274        fn _vld2q_dup_s16(ptr: *const i16) -> int16x8x2_t;
20275    }
20276    _vld2q_dup_s16(a as _)
20277}
20278#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20279#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_s32)"]
20280#[doc = "## Safety"]
20281#[doc = "  * Neon instrinsic unsafe"]
20282#[inline]
20283#[target_feature(enable = "neon")]
20284#[cfg(not(target_arch = "arm"))]
20285#[stable(feature = "neon_intrinsics", since = "1.59.0")]
20286#[cfg_attr(test, assert_instr(ld2r))]
20287pub unsafe fn vld2_dup_s32(a: *const i32) -> int32x2x2_t {
20288    unsafe extern "unadjusted" {
20289        #[cfg_attr(
20290            any(target_arch = "aarch64", target_arch = "arm64ec"),
20291            link_name = "llvm.aarch64.neon.ld2r.v2i32.p0"
20292        )]
20293        fn _vld2_dup_s32(ptr: *const i32) -> int32x2x2_t;
20294    }
20295    _vld2_dup_s32(a as _)
20296}
20297#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20298#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_s32)"]
20299#[doc = "## Safety"]
20300#[doc = "  * Neon instrinsic unsafe"]
20301#[inline]
20302#[target_feature(enable = "neon")]
20303#[cfg(not(target_arch = "arm"))]
20304#[stable(feature = "neon_intrinsics", since = "1.59.0")]
20305#[cfg_attr(test, assert_instr(ld2r))]
20306pub unsafe fn vld2q_dup_s32(a: *const i32) -> int32x4x2_t {
20307    unsafe extern "unadjusted" {
20308        #[cfg_attr(
20309            any(target_arch = "aarch64", target_arch = "arm64ec"),
20310            link_name = "llvm.aarch64.neon.ld2r.v4i32.p0"
20311        )]
20312        fn _vld2q_dup_s32(ptr: *const i32) -> int32x4x2_t;
20313    }
20314    _vld2q_dup_s32(a as _)
20315}
20316#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20317#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_p64)"]
20318#[doc = "## Safety"]
20319#[doc = "  * Neon instrinsic unsafe"]
20320#[inline]
20321#[target_feature(enable = "neon,aes")]
20322#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
20323#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
20324#[cfg_attr(
20325    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20326    assert_instr(ld2r)
20327)]
20328#[cfg_attr(
20329    not(target_arch = "arm"),
20330    stable(feature = "neon_intrinsics", since = "1.59.0")
20331)]
20332#[cfg_attr(
20333    target_arch = "arm",
20334    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20335)]
20336pub unsafe fn vld2_dup_p64(a: *const p64) -> poly64x1x2_t {
20337    transmute(vld2_dup_s64(transmute(a)))
20338}
20339#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20340#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_s64)"]
20341#[doc = "## Safety"]
20342#[doc = "  * Neon instrinsic unsafe"]
20343#[inline]
20344#[target_feature(enable = "neon,v7")]
20345#[cfg(target_arch = "arm")]
20346#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
20347#[cfg_attr(test, assert_instr(nop))]
20348pub unsafe fn vld2_dup_s64(a: *const i64) -> int64x1x2_t {
20349    unsafe extern "unadjusted" {
20350        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2dup.v1i64.p0")]
20351        fn _vld2_dup_s64(ptr: *const i8, size: i32) -> int64x1x2_t;
20352    }
20353    _vld2_dup_s64(a as *const i8, 8)
20354}
20355#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20356#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_s64)"]
20357#[doc = "## Safety"]
20358#[doc = "  * Neon instrinsic unsafe"]
20359#[inline]
20360#[target_feature(enable = "neon")]
20361#[cfg(not(target_arch = "arm"))]
20362#[stable(feature = "neon_intrinsics", since = "1.59.0")]
20363#[cfg_attr(test, assert_instr(ld2r))]
20364pub unsafe fn vld2_dup_s64(a: *const i64) -> int64x1x2_t {
20365    unsafe extern "unadjusted" {
20366        #[cfg_attr(
20367            any(target_arch = "aarch64", target_arch = "arm64ec"),
20368            link_name = "llvm.aarch64.neon.ld2r.v1i64.p0"
20369        )]
20370        fn _vld2_dup_s64(ptr: *const i64) -> int64x1x2_t;
20371    }
20372    _vld2_dup_s64(a as _)
20373}
20374#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20375#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_u64)"]
20376#[doc = "## Safety"]
20377#[doc = "  * Neon instrinsic unsafe"]
20378#[inline]
20379#[target_feature(enable = "neon")]
20380#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20381#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
20382#[cfg_attr(
20383    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20384    assert_instr(ld2r)
20385)]
20386#[cfg_attr(
20387    not(target_arch = "arm"),
20388    stable(feature = "neon_intrinsics", since = "1.59.0")
20389)]
20390#[cfg_attr(
20391    target_arch = "arm",
20392    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20393)]
20394pub unsafe fn vld2_dup_u64(a: *const u64) -> uint64x1x2_t {
20395    transmute(vld2_dup_s64(transmute(a)))
20396}
20397#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20398#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_u8)"]
20399#[doc = "## Safety"]
20400#[doc = "  * Neon instrinsic unsafe"]
20401#[inline]
20402#[cfg(target_endian = "little")]
20403#[target_feature(enable = "neon")]
20404#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20405#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
20406#[cfg_attr(
20407    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20408    assert_instr(ld2r)
20409)]
20410#[cfg_attr(
20411    not(target_arch = "arm"),
20412    stable(feature = "neon_intrinsics", since = "1.59.0")
20413)]
20414#[cfg_attr(
20415    target_arch = "arm",
20416    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20417)]
20418pub unsafe fn vld2_dup_u8(a: *const u8) -> uint8x8x2_t {
20419    transmute(vld2_dup_s8(transmute(a)))
20420}
20421#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20422#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_u8)"]
20423#[doc = "## Safety"]
20424#[doc = "  * Neon instrinsic unsafe"]
20425#[inline]
20426#[cfg(target_endian = "big")]
20427#[target_feature(enable = "neon")]
20428#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20429#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
20430#[cfg_attr(
20431    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20432    assert_instr(ld2r)
20433)]
20434#[cfg_attr(
20435    not(target_arch = "arm"),
20436    stable(feature = "neon_intrinsics", since = "1.59.0")
20437)]
20438#[cfg_attr(
20439    target_arch = "arm",
20440    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20441)]
20442pub unsafe fn vld2_dup_u8(a: *const u8) -> uint8x8x2_t {
20443    let mut ret_val: uint8x8x2_t = transmute(vld2_dup_s8(transmute(a)));
20444    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
20445    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
20446    ret_val
20447}
20448#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20449#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_u8)"]
20450#[doc = "## Safety"]
20451#[doc = "  * Neon instrinsic unsafe"]
20452#[inline]
20453#[cfg(target_endian = "little")]
20454#[target_feature(enable = "neon")]
20455#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20456#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
20457#[cfg_attr(
20458    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20459    assert_instr(ld2r)
20460)]
20461#[cfg_attr(
20462    not(target_arch = "arm"),
20463    stable(feature = "neon_intrinsics", since = "1.59.0")
20464)]
20465#[cfg_attr(
20466    target_arch = "arm",
20467    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20468)]
20469pub unsafe fn vld2q_dup_u8(a: *const u8) -> uint8x16x2_t {
20470    transmute(vld2q_dup_s8(transmute(a)))
20471}
20472#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20473#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_u8)"]
20474#[doc = "## Safety"]
20475#[doc = "  * Neon instrinsic unsafe"]
20476#[inline]
20477#[cfg(target_endian = "big")]
20478#[target_feature(enable = "neon")]
20479#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20480#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
20481#[cfg_attr(
20482    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20483    assert_instr(ld2r)
20484)]
20485#[cfg_attr(
20486    not(target_arch = "arm"),
20487    stable(feature = "neon_intrinsics", since = "1.59.0")
20488)]
20489#[cfg_attr(
20490    target_arch = "arm",
20491    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20492)]
20493pub unsafe fn vld2q_dup_u8(a: *const u8) -> uint8x16x2_t {
20494    let mut ret_val: uint8x16x2_t = transmute(vld2q_dup_s8(transmute(a)));
20495    ret_val.0 = unsafe {
20496        simd_shuffle!(
20497            ret_val.0,
20498            ret_val.0,
20499            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
20500        )
20501    };
20502    ret_val.1 = unsafe {
20503        simd_shuffle!(
20504            ret_val.1,
20505            ret_val.1,
20506            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
20507        )
20508    };
20509    ret_val
20510}
20511#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20512#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_u16)"]
20513#[doc = "## Safety"]
20514#[doc = "  * Neon instrinsic unsafe"]
20515#[inline]
20516#[cfg(target_endian = "little")]
20517#[target_feature(enable = "neon")]
20518#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20519#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
20520#[cfg_attr(
20521    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20522    assert_instr(ld2r)
20523)]
20524#[cfg_attr(
20525    not(target_arch = "arm"),
20526    stable(feature = "neon_intrinsics", since = "1.59.0")
20527)]
20528#[cfg_attr(
20529    target_arch = "arm",
20530    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20531)]
20532pub unsafe fn vld2_dup_u16(a: *const u16) -> uint16x4x2_t {
20533    transmute(vld2_dup_s16(transmute(a)))
20534}
20535#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20536#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_u16)"]
20537#[doc = "## Safety"]
20538#[doc = "  * Neon instrinsic unsafe"]
20539#[inline]
20540#[cfg(target_endian = "big")]
20541#[target_feature(enable = "neon")]
20542#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20543#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
20544#[cfg_attr(
20545    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20546    assert_instr(ld2r)
20547)]
20548#[cfg_attr(
20549    not(target_arch = "arm"),
20550    stable(feature = "neon_intrinsics", since = "1.59.0")
20551)]
20552#[cfg_attr(
20553    target_arch = "arm",
20554    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20555)]
20556pub unsafe fn vld2_dup_u16(a: *const u16) -> uint16x4x2_t {
20557    let mut ret_val: uint16x4x2_t = transmute(vld2_dup_s16(transmute(a)));
20558    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
20559    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
20560    ret_val
20561}
20562#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20563#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_u16)"]
20564#[doc = "## Safety"]
20565#[doc = "  * Neon instrinsic unsafe"]
20566#[inline]
20567#[cfg(target_endian = "little")]
20568#[target_feature(enable = "neon")]
20569#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20570#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
20571#[cfg_attr(
20572    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20573    assert_instr(ld2r)
20574)]
20575#[cfg_attr(
20576    not(target_arch = "arm"),
20577    stable(feature = "neon_intrinsics", since = "1.59.0")
20578)]
20579#[cfg_attr(
20580    target_arch = "arm",
20581    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20582)]
20583pub unsafe fn vld2q_dup_u16(a: *const u16) -> uint16x8x2_t {
20584    transmute(vld2q_dup_s16(transmute(a)))
20585}
20586#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20587#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_u16)"]
20588#[doc = "## Safety"]
20589#[doc = "  * Neon instrinsic unsafe"]
20590#[inline]
20591#[cfg(target_endian = "big")]
20592#[target_feature(enable = "neon")]
20593#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20594#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
20595#[cfg_attr(
20596    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20597    assert_instr(ld2r)
20598)]
20599#[cfg_attr(
20600    not(target_arch = "arm"),
20601    stable(feature = "neon_intrinsics", since = "1.59.0")
20602)]
20603#[cfg_attr(
20604    target_arch = "arm",
20605    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20606)]
20607pub unsafe fn vld2q_dup_u16(a: *const u16) -> uint16x8x2_t {
20608    let mut ret_val: uint16x8x2_t = transmute(vld2q_dup_s16(transmute(a)));
20609    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
20610    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
20611    ret_val
20612}
20613#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20614#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_u32)"]
20615#[doc = "## Safety"]
20616#[doc = "  * Neon instrinsic unsafe"]
20617#[inline]
20618#[cfg(target_endian = "little")]
20619#[target_feature(enable = "neon")]
20620#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20621#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
20622#[cfg_attr(
20623    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20624    assert_instr(ld2r)
20625)]
20626#[cfg_attr(
20627    not(target_arch = "arm"),
20628    stable(feature = "neon_intrinsics", since = "1.59.0")
20629)]
20630#[cfg_attr(
20631    target_arch = "arm",
20632    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20633)]
20634pub unsafe fn vld2_dup_u32(a: *const u32) -> uint32x2x2_t {
20635    transmute(vld2_dup_s32(transmute(a)))
20636}
20637#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20638#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_u32)"]
20639#[doc = "## Safety"]
20640#[doc = "  * Neon instrinsic unsafe"]
20641#[inline]
20642#[cfg(target_endian = "big")]
20643#[target_feature(enable = "neon")]
20644#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20645#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
20646#[cfg_attr(
20647    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20648    assert_instr(ld2r)
20649)]
20650#[cfg_attr(
20651    not(target_arch = "arm"),
20652    stable(feature = "neon_intrinsics", since = "1.59.0")
20653)]
20654#[cfg_attr(
20655    target_arch = "arm",
20656    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20657)]
20658pub unsafe fn vld2_dup_u32(a: *const u32) -> uint32x2x2_t {
20659    let mut ret_val: uint32x2x2_t = transmute(vld2_dup_s32(transmute(a)));
20660    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [1, 0]) };
20661    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [1, 0]) };
20662    ret_val
20663}
20664#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20665#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_u32)"]
20666#[doc = "## Safety"]
20667#[doc = "  * Neon instrinsic unsafe"]
20668#[inline]
20669#[cfg(target_endian = "little")]
20670#[target_feature(enable = "neon")]
20671#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20672#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
20673#[cfg_attr(
20674    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20675    assert_instr(ld2r)
20676)]
20677#[cfg_attr(
20678    not(target_arch = "arm"),
20679    stable(feature = "neon_intrinsics", since = "1.59.0")
20680)]
20681#[cfg_attr(
20682    target_arch = "arm",
20683    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20684)]
20685pub unsafe fn vld2q_dup_u32(a: *const u32) -> uint32x4x2_t {
20686    transmute(vld2q_dup_s32(transmute(a)))
20687}
20688#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20689#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_u32)"]
20690#[doc = "## Safety"]
20691#[doc = "  * Neon instrinsic unsafe"]
20692#[inline]
20693#[cfg(target_endian = "big")]
20694#[target_feature(enable = "neon")]
20695#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20696#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
20697#[cfg_attr(
20698    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20699    assert_instr(ld2r)
20700)]
20701#[cfg_attr(
20702    not(target_arch = "arm"),
20703    stable(feature = "neon_intrinsics", since = "1.59.0")
20704)]
20705#[cfg_attr(
20706    target_arch = "arm",
20707    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20708)]
20709pub unsafe fn vld2q_dup_u32(a: *const u32) -> uint32x4x2_t {
20710    let mut ret_val: uint32x4x2_t = transmute(vld2q_dup_s32(transmute(a)));
20711    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
20712    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
20713    ret_val
20714}
20715#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20716#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_p8)"]
20717#[doc = "## Safety"]
20718#[doc = "  * Neon instrinsic unsafe"]
20719#[inline]
20720#[cfg(target_endian = "little")]
20721#[target_feature(enable = "neon")]
20722#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20723#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
20724#[cfg_attr(
20725    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20726    assert_instr(ld2r)
20727)]
20728#[cfg_attr(
20729    not(target_arch = "arm"),
20730    stable(feature = "neon_intrinsics", since = "1.59.0")
20731)]
20732#[cfg_attr(
20733    target_arch = "arm",
20734    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20735)]
20736pub unsafe fn vld2_dup_p8(a: *const p8) -> poly8x8x2_t {
20737    transmute(vld2_dup_s8(transmute(a)))
20738}
20739#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20740#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_p8)"]
20741#[doc = "## Safety"]
20742#[doc = "  * Neon instrinsic unsafe"]
20743#[inline]
20744#[cfg(target_endian = "big")]
20745#[target_feature(enable = "neon")]
20746#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20747#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
20748#[cfg_attr(
20749    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20750    assert_instr(ld2r)
20751)]
20752#[cfg_attr(
20753    not(target_arch = "arm"),
20754    stable(feature = "neon_intrinsics", since = "1.59.0")
20755)]
20756#[cfg_attr(
20757    target_arch = "arm",
20758    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20759)]
20760pub unsafe fn vld2_dup_p8(a: *const p8) -> poly8x8x2_t {
20761    let mut ret_val: poly8x8x2_t = transmute(vld2_dup_s8(transmute(a)));
20762    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
20763    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
20764    ret_val
20765}
20766#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20767#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_p8)"]
20768#[doc = "## Safety"]
20769#[doc = "  * Neon instrinsic unsafe"]
20770#[inline]
20771#[cfg(target_endian = "little")]
20772#[target_feature(enable = "neon")]
20773#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20774#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
20775#[cfg_attr(
20776    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20777    assert_instr(ld2r)
20778)]
20779#[cfg_attr(
20780    not(target_arch = "arm"),
20781    stable(feature = "neon_intrinsics", since = "1.59.0")
20782)]
20783#[cfg_attr(
20784    target_arch = "arm",
20785    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20786)]
20787pub unsafe fn vld2q_dup_p8(a: *const p8) -> poly8x16x2_t {
20788    transmute(vld2q_dup_s8(transmute(a)))
20789}
20790#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20791#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_p8)"]
20792#[doc = "## Safety"]
20793#[doc = "  * Neon instrinsic unsafe"]
20794#[inline]
20795#[cfg(target_endian = "big")]
20796#[target_feature(enable = "neon")]
20797#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20798#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
20799#[cfg_attr(
20800    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20801    assert_instr(ld2r)
20802)]
20803#[cfg_attr(
20804    not(target_arch = "arm"),
20805    stable(feature = "neon_intrinsics", since = "1.59.0")
20806)]
20807#[cfg_attr(
20808    target_arch = "arm",
20809    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20810)]
20811pub unsafe fn vld2q_dup_p8(a: *const p8) -> poly8x16x2_t {
20812    let mut ret_val: poly8x16x2_t = transmute(vld2q_dup_s8(transmute(a)));
20813    ret_val.0 = unsafe {
20814        simd_shuffle!(
20815            ret_val.0,
20816            ret_val.0,
20817            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
20818        )
20819    };
20820    ret_val.1 = unsafe {
20821        simd_shuffle!(
20822            ret_val.1,
20823            ret_val.1,
20824            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
20825        )
20826    };
20827    ret_val
20828}
20829#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20830#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_p16)"]
20831#[doc = "## Safety"]
20832#[doc = "  * Neon instrinsic unsafe"]
20833#[inline]
20834#[cfg(target_endian = "little")]
20835#[target_feature(enable = "neon")]
20836#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20837#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
20838#[cfg_attr(
20839    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20840    assert_instr(ld2r)
20841)]
20842#[cfg_attr(
20843    not(target_arch = "arm"),
20844    stable(feature = "neon_intrinsics", since = "1.59.0")
20845)]
20846#[cfg_attr(
20847    target_arch = "arm",
20848    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20849)]
20850pub unsafe fn vld2_dup_p16(a: *const p16) -> poly16x4x2_t {
20851    transmute(vld2_dup_s16(transmute(a)))
20852}
20853#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20854#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_p16)"]
20855#[doc = "## Safety"]
20856#[doc = "  * Neon instrinsic unsafe"]
20857#[inline]
20858#[cfg(target_endian = "big")]
20859#[target_feature(enable = "neon")]
20860#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20861#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
20862#[cfg_attr(
20863    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20864    assert_instr(ld2r)
20865)]
20866#[cfg_attr(
20867    not(target_arch = "arm"),
20868    stable(feature = "neon_intrinsics", since = "1.59.0")
20869)]
20870#[cfg_attr(
20871    target_arch = "arm",
20872    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20873)]
20874pub unsafe fn vld2_dup_p16(a: *const p16) -> poly16x4x2_t {
20875    let mut ret_val: poly16x4x2_t = transmute(vld2_dup_s16(transmute(a)));
20876    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
20877    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
20878    ret_val
20879}
20880#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20881#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_p16)"]
20882#[doc = "## Safety"]
20883#[doc = "  * Neon instrinsic unsafe"]
20884#[inline]
20885#[cfg(target_endian = "little")]
20886#[target_feature(enable = "neon")]
20887#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20888#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
20889#[cfg_attr(
20890    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20891    assert_instr(ld2r)
20892)]
20893#[cfg_attr(
20894    not(target_arch = "arm"),
20895    stable(feature = "neon_intrinsics", since = "1.59.0")
20896)]
20897#[cfg_attr(
20898    target_arch = "arm",
20899    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20900)]
20901pub unsafe fn vld2q_dup_p16(a: *const p16) -> poly16x8x2_t {
20902    transmute(vld2q_dup_s16(transmute(a)))
20903}
20904#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20905#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_p16)"]
20906#[doc = "## Safety"]
20907#[doc = "  * Neon instrinsic unsafe"]
20908#[inline]
20909#[cfg(target_endian = "big")]
20910#[target_feature(enable = "neon")]
20911#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20912#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
20913#[cfg_attr(
20914    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20915    assert_instr(ld2r)
20916)]
20917#[cfg_attr(
20918    not(target_arch = "arm"),
20919    stable(feature = "neon_intrinsics", since = "1.59.0")
20920)]
20921#[cfg_attr(
20922    target_arch = "arm",
20923    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20924)]
20925pub unsafe fn vld2q_dup_p16(a: *const p16) -> poly16x8x2_t {
20926    let mut ret_val: poly16x8x2_t = transmute(vld2q_dup_s16(transmute(a)));
20927    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
20928    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
20929    ret_val
20930}
20931#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20932#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_f16)"]
20933#[doc = "## Safety"]
20934#[doc = "  * Neon instrinsic unsafe"]
20935#[inline]
20936#[target_feature(enable = "neon")]
20937#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20938#[cfg(target_arch = "arm")]
20939#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
20940#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
20941#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
20942#[cfg(not(target_arch = "arm64ec"))]
20943pub unsafe fn vld2_f16(a: *const f16) -> float16x4x2_t {
20944    unsafe extern "unadjusted" {
20945        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2.v4f16.p0")]
20946        fn _vld2_f16(ptr: *const f16, size: i32) -> float16x4x2_t;
20947    }
20948    _vld2_f16(a as _, 2)
20949}
20950#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20951#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_f16)"]
20952#[doc = "## Safety"]
20953#[doc = "  * Neon instrinsic unsafe"]
20954#[inline]
20955#[target_feature(enable = "neon")]
20956#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20957#[cfg(target_arch = "arm")]
20958#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
20959#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
20960#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
20961#[cfg(not(target_arch = "arm64ec"))]
20962pub unsafe fn vld2q_f16(a: *const f16) -> float16x8x2_t {
20963    unsafe extern "unadjusted" {
20964        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2.v8f16.p0")]
20965        fn _vld2q_f16(ptr: *const f16, size: i32) -> float16x8x2_t;
20966    }
20967    _vld2q_f16(a as _, 2)
20968}
20969#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20970#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_f16)"]
20971#[doc = "## Safety"]
20972#[doc = "  * Neon instrinsic unsafe"]
20973#[inline]
20974#[target_feature(enable = "neon")]
20975#[cfg(not(target_arch = "arm"))]
20976#[cfg_attr(
20977    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20978    assert_instr(ld2)
20979)]
20980#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
20981#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
20982#[cfg(not(target_arch = "arm64ec"))]
20983pub unsafe fn vld2_f16(a: *const f16) -> float16x4x2_t {
20984    unsafe extern "unadjusted" {
20985        #[cfg_attr(
20986            any(target_arch = "aarch64", target_arch = "arm64ec"),
20987            link_name = "llvm.aarch64.neon.ld2.v4f16.p0"
20988        )]
20989        fn _vld2_f16(ptr: *const f16) -> float16x4x2_t;
20990    }
20991    _vld2_f16(a as _)
20992}
20993#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
20994#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_f16)"]
20995#[doc = "## Safety"]
20996#[doc = "  * Neon instrinsic unsafe"]
20997#[inline]
20998#[target_feature(enable = "neon")]
20999#[cfg(not(target_arch = "arm"))]
21000#[cfg_attr(
21001    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21002    assert_instr(ld2)
21003)]
21004#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
21005#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
21006#[cfg(not(target_arch = "arm64ec"))]
21007pub unsafe fn vld2q_f16(a: *const f16) -> float16x8x2_t {
21008    unsafe extern "unadjusted" {
21009        #[cfg_attr(
21010            any(target_arch = "aarch64", target_arch = "arm64ec"),
21011            link_name = "llvm.aarch64.neon.ld2.v8f16.p0"
21012        )]
21013        fn _vld2q_f16(ptr: *const f16) -> float16x8x2_t;
21014    }
21015    _vld2q_f16(a as _)
21016}
21017#[doc = "Load multiple 2-element structures to two registers"]
21018#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_f32)"]
21019#[doc = "## Safety"]
21020#[doc = "  * Neon instrinsic unsafe"]
21021#[inline]
21022#[target_feature(enable = "neon,v7")]
21023#[cfg(target_arch = "arm")]
21024#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
21025#[cfg_attr(test, assert_instr(vld2))]
21026pub unsafe fn vld2_f32(a: *const f32) -> float32x2x2_t {
21027    unsafe extern "unadjusted" {
21028        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2.v2f32")]
21029        fn _vld2_f32(ptr: *const i8, size: i32) -> float32x2x2_t;
21030    }
21031    _vld2_f32(a as *const i8, 4)
21032}
21033#[doc = "Load multiple 2-element structures to two registers"]
21034#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_f32)"]
21035#[doc = "## Safety"]
21036#[doc = "  * Neon instrinsic unsafe"]
21037#[inline]
21038#[target_feature(enable = "neon,v7")]
21039#[cfg(target_arch = "arm")]
21040#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
21041#[cfg_attr(test, assert_instr(vld2))]
21042pub unsafe fn vld2q_f32(a: *const f32) -> float32x4x2_t {
21043    unsafe extern "unadjusted" {
21044        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2.v4f32")]
21045        fn _vld2q_f32(ptr: *const i8, size: i32) -> float32x4x2_t;
21046    }
21047    _vld2q_f32(a as *const i8, 4)
21048}
21049#[doc = "Load multiple 2-element structures to two registers"]
21050#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_s8)"]
21051#[doc = "## Safety"]
21052#[doc = "  * Neon instrinsic unsafe"]
21053#[inline]
21054#[target_feature(enable = "neon,v7")]
21055#[cfg(target_arch = "arm")]
21056#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
21057#[cfg_attr(test, assert_instr(vld2))]
21058pub unsafe fn vld2_s8(a: *const i8) -> int8x8x2_t {
21059    unsafe extern "unadjusted" {
21060        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2.v8i8")]
21061        fn _vld2_s8(ptr: *const i8, size: i32) -> int8x8x2_t;
21062    }
21063    _vld2_s8(a as *const i8, 1)
21064}
21065#[doc = "Load multiple 2-element structures to two registers"]
21066#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_s8)"]
21067#[doc = "## Safety"]
21068#[doc = "  * Neon instrinsic unsafe"]
21069#[inline]
21070#[target_feature(enable = "neon,v7")]
21071#[cfg(target_arch = "arm")]
21072#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
21073#[cfg_attr(test, assert_instr(vld2))]
21074pub unsafe fn vld2q_s8(a: *const i8) -> int8x16x2_t {
21075    unsafe extern "unadjusted" {
21076        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2.v16i8")]
21077        fn _vld2q_s8(ptr: *const i8, size: i32) -> int8x16x2_t;
21078    }
21079    _vld2q_s8(a as *const i8, 1)
21080}
21081#[doc = "Load multiple 2-element structures to two registers"]
21082#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_s16)"]
21083#[doc = "## Safety"]
21084#[doc = "  * Neon instrinsic unsafe"]
21085#[inline]
21086#[target_feature(enable = "neon,v7")]
21087#[cfg(target_arch = "arm")]
21088#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
21089#[cfg_attr(test, assert_instr(vld2))]
21090pub unsafe fn vld2_s16(a: *const i16) -> int16x4x2_t {
21091    unsafe extern "unadjusted" {
21092        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2.v4i16")]
21093        fn _vld2_s16(ptr: *const i8, size: i32) -> int16x4x2_t;
21094    }
21095    _vld2_s16(a as *const i8, 2)
21096}
21097#[doc = "Load multiple 2-element structures to two registers"]
21098#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_s16)"]
21099#[doc = "## Safety"]
21100#[doc = "  * Neon instrinsic unsafe"]
21101#[inline]
21102#[target_feature(enable = "neon,v7")]
21103#[cfg(target_arch = "arm")]
21104#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
21105#[cfg_attr(test, assert_instr(vld2))]
21106pub unsafe fn vld2q_s16(a: *const i16) -> int16x8x2_t {
21107    unsafe extern "unadjusted" {
21108        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2.v8i16")]
21109        fn _vld2q_s16(ptr: *const i8, size: i32) -> int16x8x2_t;
21110    }
21111    _vld2q_s16(a as *const i8, 2)
21112}
21113#[doc = "Load multiple 2-element structures to two registers"]
21114#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_s32)"]
21115#[doc = "## Safety"]
21116#[doc = "  * Neon instrinsic unsafe"]
21117#[inline]
21118#[target_feature(enable = "neon,v7")]
21119#[cfg(target_arch = "arm")]
21120#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
21121#[cfg_attr(test, assert_instr(vld2))]
21122pub unsafe fn vld2_s32(a: *const i32) -> int32x2x2_t {
21123    unsafe extern "unadjusted" {
21124        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2.v2i32")]
21125        fn _vld2_s32(ptr: *const i8, size: i32) -> int32x2x2_t;
21126    }
21127    _vld2_s32(a as *const i8, 4)
21128}
21129#[doc = "Load multiple 2-element structures to two registers"]
21130#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_s32)"]
21131#[doc = "## Safety"]
21132#[doc = "  * Neon instrinsic unsafe"]
21133#[inline]
21134#[target_feature(enable = "neon,v7")]
21135#[cfg(target_arch = "arm")]
21136#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
21137#[cfg_attr(test, assert_instr(vld2))]
21138pub unsafe fn vld2q_s32(a: *const i32) -> int32x4x2_t {
21139    unsafe extern "unadjusted" {
21140        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2.v4i32")]
21141        fn _vld2q_s32(ptr: *const i8, size: i32) -> int32x4x2_t;
21142    }
21143    _vld2q_s32(a as *const i8, 4)
21144}
21145#[doc = "Load multiple 2-element structures to two registers"]
21146#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_f32)"]
21147#[doc = "## Safety"]
21148#[doc = "  * Neon instrinsic unsafe"]
21149#[inline]
21150#[target_feature(enable = "neon")]
21151#[cfg(not(target_arch = "arm"))]
21152#[stable(feature = "neon_intrinsics", since = "1.59.0")]
21153#[cfg_attr(test, assert_instr(ld2))]
21154pub unsafe fn vld2_f32(a: *const f32) -> float32x2x2_t {
21155    unsafe extern "unadjusted" {
21156        #[cfg_attr(
21157            any(target_arch = "aarch64", target_arch = "arm64ec"),
21158            link_name = "llvm.aarch64.neon.ld2.v2f32.p0"
21159        )]
21160        fn _vld2_f32(ptr: *const float32x2_t) -> float32x2x2_t;
21161    }
21162    _vld2_f32(a as _)
21163}
21164#[doc = "Load multiple 2-element structures to two registers"]
21165#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_f32)"]
21166#[doc = "## Safety"]
21167#[doc = "  * Neon instrinsic unsafe"]
21168#[inline]
21169#[target_feature(enable = "neon")]
21170#[cfg(not(target_arch = "arm"))]
21171#[stable(feature = "neon_intrinsics", since = "1.59.0")]
21172#[cfg_attr(test, assert_instr(ld2))]
21173pub unsafe fn vld2q_f32(a: *const f32) -> float32x4x2_t {
21174    unsafe extern "unadjusted" {
21175        #[cfg_attr(
21176            any(target_arch = "aarch64", target_arch = "arm64ec"),
21177            link_name = "llvm.aarch64.neon.ld2.v4f32.p0"
21178        )]
21179        fn _vld2q_f32(ptr: *const float32x4_t) -> float32x4x2_t;
21180    }
21181    _vld2q_f32(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_s8)"]
21185#[doc = "## Safety"]
21186#[doc = "  * Neon instrinsic unsafe"]
21187#[inline]
21188#[target_feature(enable = "neon")]
21189#[cfg(not(target_arch = "arm"))]
21190#[stable(feature = "neon_intrinsics", since = "1.59.0")]
21191#[cfg_attr(test, assert_instr(ld2))]
21192pub unsafe fn vld2_s8(a: *const i8) -> int8x8x2_t {
21193    unsafe extern "unadjusted" {
21194        #[cfg_attr(
21195            any(target_arch = "aarch64", target_arch = "arm64ec"),
21196            link_name = "llvm.aarch64.neon.ld2.v8i8.p0"
21197        )]
21198        fn _vld2_s8(ptr: *const int8x8_t) -> int8x8x2_t;
21199    }
21200    _vld2_s8(a as _)
21201}
21202#[doc = "Load multiple 2-element structures to two registers"]
21203#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_s8)"]
21204#[doc = "## Safety"]
21205#[doc = "  * Neon instrinsic unsafe"]
21206#[inline]
21207#[target_feature(enable = "neon")]
21208#[cfg(not(target_arch = "arm"))]
21209#[stable(feature = "neon_intrinsics", since = "1.59.0")]
21210#[cfg_attr(test, assert_instr(ld2))]
21211pub unsafe fn vld2q_s8(a: *const i8) -> int8x16x2_t {
21212    unsafe extern "unadjusted" {
21213        #[cfg_attr(
21214            any(target_arch = "aarch64", target_arch = "arm64ec"),
21215            link_name = "llvm.aarch64.neon.ld2.v16i8.p0"
21216        )]
21217        fn _vld2q_s8(ptr: *const int8x16_t) -> int8x16x2_t;
21218    }
21219    _vld2q_s8(a as _)
21220}
21221#[doc = "Load multiple 2-element structures to two registers"]
21222#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_s16)"]
21223#[doc = "## Safety"]
21224#[doc = "  * Neon instrinsic unsafe"]
21225#[inline]
21226#[target_feature(enable = "neon")]
21227#[cfg(not(target_arch = "arm"))]
21228#[stable(feature = "neon_intrinsics", since = "1.59.0")]
21229#[cfg_attr(test, assert_instr(ld2))]
21230pub unsafe fn vld2_s16(a: *const i16) -> int16x4x2_t {
21231    unsafe extern "unadjusted" {
21232        #[cfg_attr(
21233            any(target_arch = "aarch64", target_arch = "arm64ec"),
21234            link_name = "llvm.aarch64.neon.ld2.v4i16.p0"
21235        )]
21236        fn _vld2_s16(ptr: *const int16x4_t) -> int16x4x2_t;
21237    }
21238    _vld2_s16(a as _)
21239}
21240#[doc = "Load multiple 2-element structures to two registers"]
21241#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_s16)"]
21242#[doc = "## Safety"]
21243#[doc = "  * Neon instrinsic unsafe"]
21244#[inline]
21245#[target_feature(enable = "neon")]
21246#[cfg(not(target_arch = "arm"))]
21247#[stable(feature = "neon_intrinsics", since = "1.59.0")]
21248#[cfg_attr(test, assert_instr(ld2))]
21249pub unsafe fn vld2q_s16(a: *const i16) -> int16x8x2_t {
21250    unsafe extern "unadjusted" {
21251        #[cfg_attr(
21252            any(target_arch = "aarch64", target_arch = "arm64ec"),
21253            link_name = "llvm.aarch64.neon.ld2.v8i16.p0"
21254        )]
21255        fn _vld2q_s16(ptr: *const int16x8_t) -> int16x8x2_t;
21256    }
21257    _vld2q_s16(a as _)
21258}
21259#[doc = "Load multiple 2-element structures to two registers"]
21260#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_s32)"]
21261#[doc = "## Safety"]
21262#[doc = "  * Neon instrinsic unsafe"]
21263#[inline]
21264#[target_feature(enable = "neon")]
21265#[cfg(not(target_arch = "arm"))]
21266#[stable(feature = "neon_intrinsics", since = "1.59.0")]
21267#[cfg_attr(test, assert_instr(ld2))]
21268pub unsafe fn vld2_s32(a: *const i32) -> int32x2x2_t {
21269    unsafe extern "unadjusted" {
21270        #[cfg_attr(
21271            any(target_arch = "aarch64", target_arch = "arm64ec"),
21272            link_name = "llvm.aarch64.neon.ld2.v2i32.p0"
21273        )]
21274        fn _vld2_s32(ptr: *const int32x2_t) -> int32x2x2_t;
21275    }
21276    _vld2_s32(a as _)
21277}
21278#[doc = "Load multiple 2-element structures to two registers"]
21279#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_s32)"]
21280#[doc = "## Safety"]
21281#[doc = "  * Neon instrinsic unsafe"]
21282#[inline]
21283#[target_feature(enable = "neon")]
21284#[cfg(not(target_arch = "arm"))]
21285#[stable(feature = "neon_intrinsics", since = "1.59.0")]
21286#[cfg_attr(test, assert_instr(ld2))]
21287pub unsafe fn vld2q_s32(a: *const i32) -> int32x4x2_t {
21288    unsafe extern "unadjusted" {
21289        #[cfg_attr(
21290            any(target_arch = "aarch64", target_arch = "arm64ec"),
21291            link_name = "llvm.aarch64.neon.ld2.v4i32.p0"
21292        )]
21293        fn _vld2q_s32(ptr: *const int32x4_t) -> int32x4x2_t;
21294    }
21295    _vld2q_s32(a as _)
21296}
21297#[doc = "Load multiple 2-element structures to two registers"]
21298#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_f16)"]
21299#[doc = "## Safety"]
21300#[doc = "  * Neon instrinsic unsafe"]
21301#[inline]
21302#[target_feature(enable = "neon,v7")]
21303#[cfg(target_arch = "arm")]
21304#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2, LANE = 0))]
21305#[rustc_legacy_const_generics(2)]
21306#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
21307#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
21308#[cfg(not(target_arch = "arm64ec"))]
21309pub unsafe fn vld2_lane_f16<const LANE: i32>(a: *const f16, b: float16x4x2_t) -> float16x4x2_t {
21310    static_assert_uimm_bits!(LANE, 2);
21311    unsafe extern "unadjusted" {
21312        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2lane.v4f16.p0")]
21313        fn _vld2_lane_f16(
21314            ptr: *const f16,
21315            a: float16x4_t,
21316            b: float16x4_t,
21317            n: i32,
21318            size: i32,
21319        ) -> float16x4x2_t;
21320    }
21321    _vld2_lane_f16(a as _, b.0, b.1, LANE, 2)
21322}
21323#[doc = "Load multiple 2-element structures to two registers"]
21324#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_lane_f16)"]
21325#[doc = "## Safety"]
21326#[doc = "  * Neon instrinsic unsafe"]
21327#[inline]
21328#[target_feature(enable = "neon,v7")]
21329#[cfg(target_arch = "arm")]
21330#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2, LANE = 0))]
21331#[rustc_legacy_const_generics(2)]
21332#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
21333#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
21334#[cfg(not(target_arch = "arm64ec"))]
21335pub unsafe fn vld2q_lane_f16<const LANE: i32>(a: *const f16, b: float16x8x2_t) -> float16x8x2_t {
21336    static_assert_uimm_bits!(LANE, 3);
21337    unsafe extern "unadjusted" {
21338        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2lane.v8f16.p0")]
21339        fn _vld2q_lane_f16(
21340            ptr: *const f16,
21341            a: float16x8_t,
21342            b: float16x8_t,
21343            n: i32,
21344            size: i32,
21345        ) -> float16x8x2_t;
21346    }
21347    _vld2q_lane_f16(a as _, b.0, b.1, LANE, 2)
21348}
21349#[doc = "Load multiple 2-element structures to two registers"]
21350#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_f16)"]
21351#[doc = "## Safety"]
21352#[doc = "  * Neon instrinsic unsafe"]
21353#[inline]
21354#[target_feature(enable = "neon")]
21355#[cfg(not(target_arch = "arm"))]
21356#[cfg_attr(
21357    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21358    assert_instr(ld2, LANE = 0)
21359)]
21360#[rustc_legacy_const_generics(2)]
21361#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
21362#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
21363#[cfg(not(target_arch = "arm64ec"))]
21364pub unsafe fn vld2_lane_f16<const LANE: i32>(a: *const f16, b: float16x4x2_t) -> float16x4x2_t {
21365    static_assert_uimm_bits!(LANE, 2);
21366    unsafe extern "unadjusted" {
21367        #[cfg_attr(
21368            any(target_arch = "aarch64", target_arch = "arm64ec"),
21369            link_name = "llvm.aarch64.neon.ld2lane.v4f16.p0"
21370        )]
21371        fn _vld2_lane_f16(a: float16x4_t, b: float16x4_t, n: i64, ptr: *const f16)
21372            -> float16x4x2_t;
21373    }
21374    _vld2_lane_f16(b.0, b.1, LANE as i64, a as _)
21375}
21376#[doc = "Load multiple 2-element structures to two registers"]
21377#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_lane_f16)"]
21378#[doc = "## Safety"]
21379#[doc = "  * Neon instrinsic unsafe"]
21380#[inline]
21381#[target_feature(enable = "neon")]
21382#[cfg(not(target_arch = "arm"))]
21383#[cfg_attr(
21384    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21385    assert_instr(ld2, LANE = 0)
21386)]
21387#[rustc_legacy_const_generics(2)]
21388#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
21389#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
21390#[cfg(not(target_arch = "arm64ec"))]
21391pub unsafe fn vld2q_lane_f16<const LANE: i32>(a: *const f16, b: float16x8x2_t) -> float16x8x2_t {
21392    static_assert_uimm_bits!(LANE, 3);
21393    unsafe extern "unadjusted" {
21394        #[cfg_attr(
21395            any(target_arch = "aarch64", target_arch = "arm64ec"),
21396            link_name = "llvm.aarch64.neon.ld2lane.v8f16.p0"
21397        )]
21398        fn _vld2q_lane_f16(
21399            a: float16x8_t,
21400            b: float16x8_t,
21401            n: i64,
21402            ptr: *const f16,
21403        ) -> float16x8x2_t;
21404    }
21405    _vld2q_lane_f16(b.0, b.1, LANE as i64, a as _)
21406}
21407#[doc = "Load multiple 2-element structures to two registers"]
21408#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_f32)"]
21409#[doc = "## Safety"]
21410#[doc = "  * Neon instrinsic unsafe"]
21411#[inline]
21412#[target_feature(enable = "neon")]
21413#[cfg(not(target_arch = "arm"))]
21414#[cfg_attr(test, assert_instr(ld2, LANE = 0))]
21415#[rustc_legacy_const_generics(2)]
21416#[stable(feature = "neon_intrinsics", since = "1.59.0")]
21417pub unsafe fn vld2_lane_f32<const LANE: i32>(a: *const f32, b: float32x2x2_t) -> float32x2x2_t {
21418    static_assert_uimm_bits!(LANE, 2);
21419    unsafe extern "unadjusted" {
21420        #[cfg_attr(
21421            any(target_arch = "aarch64", target_arch = "arm64ec"),
21422            link_name = "llvm.aarch64.neon.ld2lane.v2f32.p0"
21423        )]
21424        fn _vld2_lane_f32(a: float32x2_t, b: float32x2_t, n: i64, ptr: *const i8) -> float32x2x2_t;
21425    }
21426    _vld2_lane_f32(b.0, b.1, LANE as i64, a as _)
21427}
21428#[doc = "Load multiple 2-element structures to two registers"]
21429#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_lane_f32)"]
21430#[doc = "## Safety"]
21431#[doc = "  * Neon instrinsic unsafe"]
21432#[inline]
21433#[target_feature(enable = "neon")]
21434#[cfg(not(target_arch = "arm"))]
21435#[cfg_attr(test, assert_instr(ld2, LANE = 0))]
21436#[rustc_legacy_const_generics(2)]
21437#[stable(feature = "neon_intrinsics", since = "1.59.0")]
21438pub unsafe fn vld2q_lane_f32<const LANE: i32>(a: *const f32, b: float32x4x2_t) -> float32x4x2_t {
21439    static_assert_uimm_bits!(LANE, 2);
21440    unsafe extern "unadjusted" {
21441        #[cfg_attr(
21442            any(target_arch = "aarch64", target_arch = "arm64ec"),
21443            link_name = "llvm.aarch64.neon.ld2lane.v4f32.p0"
21444        )]
21445        fn _vld2q_lane_f32(a: float32x4_t, b: float32x4_t, n: i64, ptr: *const i8)
21446            -> float32x4x2_t;
21447    }
21448    _vld2q_lane_f32(b.0, b.1, LANE as i64, a as _)
21449}
21450#[doc = "Load multiple 2-element structures to two registers"]
21451#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_s8)"]
21452#[doc = "## Safety"]
21453#[doc = "  * Neon instrinsic unsafe"]
21454#[inline]
21455#[target_feature(enable = "neon")]
21456#[cfg(not(target_arch = "arm"))]
21457#[cfg_attr(test, assert_instr(ld2, LANE = 0))]
21458#[rustc_legacy_const_generics(2)]
21459#[stable(feature = "neon_intrinsics", since = "1.59.0")]
21460pub unsafe fn vld2_lane_s8<const LANE: i32>(a: *const i8, b: int8x8x2_t) -> int8x8x2_t {
21461    static_assert_uimm_bits!(LANE, 3);
21462    unsafe extern "unadjusted" {
21463        #[cfg_attr(
21464            any(target_arch = "aarch64", target_arch = "arm64ec"),
21465            link_name = "llvm.aarch64.neon.ld2lane.v8i8.p0"
21466        )]
21467        fn _vld2_lane_s8(a: int8x8_t, b: int8x8_t, n: i64, ptr: *const i8) -> int8x8x2_t;
21468    }
21469    _vld2_lane_s8(b.0, b.1, LANE as i64, a as _)
21470}
21471#[doc = "Load multiple 2-element structures to two registers"]
21472#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_s16)"]
21473#[doc = "## Safety"]
21474#[doc = "  * Neon instrinsic unsafe"]
21475#[inline]
21476#[target_feature(enable = "neon")]
21477#[cfg(not(target_arch = "arm"))]
21478#[cfg_attr(test, assert_instr(ld2, LANE = 0))]
21479#[rustc_legacy_const_generics(2)]
21480#[stable(feature = "neon_intrinsics", since = "1.59.0")]
21481pub unsafe fn vld2_lane_s16<const LANE: i32>(a: *const i16, b: int16x4x2_t) -> int16x4x2_t {
21482    static_assert_uimm_bits!(LANE, 2);
21483    unsafe extern "unadjusted" {
21484        #[cfg_attr(
21485            any(target_arch = "aarch64", target_arch = "arm64ec"),
21486            link_name = "llvm.aarch64.neon.ld2lane.v4i16.p0"
21487        )]
21488        fn _vld2_lane_s16(a: int16x4_t, b: int16x4_t, n: i64, ptr: *const i8) -> int16x4x2_t;
21489    }
21490    _vld2_lane_s16(b.0, b.1, LANE as i64, a as _)
21491}
21492#[doc = "Load multiple 2-element structures to two registers"]
21493#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_lane_s16)"]
21494#[doc = "## Safety"]
21495#[doc = "  * Neon instrinsic unsafe"]
21496#[inline]
21497#[target_feature(enable = "neon")]
21498#[cfg(not(target_arch = "arm"))]
21499#[cfg_attr(test, assert_instr(ld2, LANE = 0))]
21500#[rustc_legacy_const_generics(2)]
21501#[stable(feature = "neon_intrinsics", since = "1.59.0")]
21502pub unsafe fn vld2q_lane_s16<const LANE: i32>(a: *const i16, b: int16x8x2_t) -> int16x8x2_t {
21503    static_assert_uimm_bits!(LANE, 3);
21504    unsafe extern "unadjusted" {
21505        #[cfg_attr(
21506            any(target_arch = "aarch64", target_arch = "arm64ec"),
21507            link_name = "llvm.aarch64.neon.ld2lane.v8i16.p0"
21508        )]
21509        fn _vld2q_lane_s16(a: int16x8_t, b: int16x8_t, n: i64, ptr: *const i8) -> int16x8x2_t;
21510    }
21511    _vld2q_lane_s16(b.0, b.1, LANE as i64, a as _)
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_s32)"]
21515#[doc = "## Safety"]
21516#[doc = "  * Neon instrinsic unsafe"]
21517#[inline]
21518#[target_feature(enable = "neon")]
21519#[cfg(not(target_arch = "arm"))]
21520#[cfg_attr(test, assert_instr(ld2, LANE = 0))]
21521#[rustc_legacy_const_generics(2)]
21522#[stable(feature = "neon_intrinsics", since = "1.59.0")]
21523pub unsafe fn vld2_lane_s32<const LANE: i32>(a: *const i32, b: int32x2x2_t) -> int32x2x2_t {
21524    static_assert_uimm_bits!(LANE, 1);
21525    unsafe extern "unadjusted" {
21526        #[cfg_attr(
21527            any(target_arch = "aarch64", target_arch = "arm64ec"),
21528            link_name = "llvm.aarch64.neon.ld2lane.v2i32.p0"
21529        )]
21530        fn _vld2_lane_s32(a: int32x2_t, b: int32x2_t, n: i64, ptr: *const i8) -> int32x2x2_t;
21531    }
21532    _vld2_lane_s32(b.0, b.1, LANE as i64, a as _)
21533}
21534#[doc = "Load multiple 2-element structures to two registers"]
21535#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_lane_s32)"]
21536#[doc = "## Safety"]
21537#[doc = "  * Neon instrinsic unsafe"]
21538#[inline]
21539#[target_feature(enable = "neon")]
21540#[cfg(not(target_arch = "arm"))]
21541#[cfg_attr(test, assert_instr(ld2, LANE = 0))]
21542#[rustc_legacy_const_generics(2)]
21543#[stable(feature = "neon_intrinsics", since = "1.59.0")]
21544pub unsafe fn vld2q_lane_s32<const LANE: i32>(a: *const i32, b: int32x4x2_t) -> int32x4x2_t {
21545    static_assert_uimm_bits!(LANE, 2);
21546    unsafe extern "unadjusted" {
21547        #[cfg_attr(
21548            any(target_arch = "aarch64", target_arch = "arm64ec"),
21549            link_name = "llvm.aarch64.neon.ld2lane.v4i32.p0"
21550        )]
21551        fn _vld2q_lane_s32(a: int32x4_t, b: int32x4_t, n: i64, ptr: *const i8) -> int32x4x2_t;
21552    }
21553    _vld2q_lane_s32(b.0, b.1, LANE as i64, a as _)
21554}
21555#[doc = "Load multiple 2-element structures to two registers"]
21556#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_f32)"]
21557#[doc = "## Safety"]
21558#[doc = "  * Neon instrinsic unsafe"]
21559#[inline]
21560#[target_feature(enable = "neon,v7")]
21561#[cfg(target_arch = "arm")]
21562#[cfg_attr(test, assert_instr(vld2, LANE = 0))]
21563#[rustc_legacy_const_generics(2)]
21564#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
21565pub unsafe fn vld2_lane_f32<const LANE: i32>(a: *const f32, b: float32x2x2_t) -> float32x2x2_t {
21566    static_assert_uimm_bits!(LANE, 1);
21567    unsafe extern "unadjusted" {
21568        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2lane.v2f32.p0")]
21569        fn _vld2_lane_f32(
21570            ptr: *const i8,
21571            a: float32x2_t,
21572            b: float32x2_t,
21573            n: i32,
21574            size: i32,
21575        ) -> float32x2x2_t;
21576    }
21577    _vld2_lane_f32(a as _, b.0, b.1, LANE, 4)
21578}
21579#[doc = "Load multiple 2-element structures to two registers"]
21580#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_lane_f32)"]
21581#[doc = "## Safety"]
21582#[doc = "  * Neon instrinsic unsafe"]
21583#[inline]
21584#[target_feature(enable = "neon,v7")]
21585#[cfg(target_arch = "arm")]
21586#[cfg_attr(test, assert_instr(vld2, LANE = 0))]
21587#[rustc_legacy_const_generics(2)]
21588#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
21589pub unsafe fn vld2q_lane_f32<const LANE: i32>(a: *const f32, b: float32x4x2_t) -> float32x4x2_t {
21590    static_assert_uimm_bits!(LANE, 2);
21591    unsafe extern "unadjusted" {
21592        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2lane.v4f32.p0")]
21593        fn _vld2q_lane_f32(
21594            ptr: *const i8,
21595            a: float32x4_t,
21596            b: float32x4_t,
21597            n: i32,
21598            size: i32,
21599        ) -> float32x4x2_t;
21600    }
21601    _vld2q_lane_f32(a as _, b.0, b.1, LANE, 4)
21602}
21603#[doc = "Load multiple 2-element structures to two registers"]
21604#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_lane_s16)"]
21605#[doc = "## Safety"]
21606#[doc = "  * Neon instrinsic unsafe"]
21607#[inline]
21608#[target_feature(enable = "neon,v7")]
21609#[cfg(target_arch = "arm")]
21610#[cfg_attr(test, assert_instr(vld2, LANE = 0))]
21611#[rustc_legacy_const_generics(2)]
21612#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
21613pub unsafe fn vld2q_lane_s16<const LANE: i32>(a: *const i16, b: int16x8x2_t) -> int16x8x2_t {
21614    static_assert_uimm_bits!(LANE, 3);
21615    unsafe extern "unadjusted" {
21616        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2lane.v8i16.p0")]
21617        fn _vld2q_lane_s16(
21618            ptr: *const i8,
21619            a: int16x8_t,
21620            b: int16x8_t,
21621            n: i32,
21622            size: i32,
21623        ) -> int16x8x2_t;
21624    }
21625    _vld2q_lane_s16(a as _, b.0, b.1, LANE, 2)
21626}
21627#[doc = "Load multiple 2-element structures to two registers"]
21628#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_lane_s32)"]
21629#[doc = "## Safety"]
21630#[doc = "  * Neon instrinsic unsafe"]
21631#[inline]
21632#[target_feature(enable = "neon,v7")]
21633#[cfg(target_arch = "arm")]
21634#[cfg_attr(test, assert_instr(vld2, LANE = 0))]
21635#[rustc_legacy_const_generics(2)]
21636#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
21637pub unsafe fn vld2q_lane_s32<const LANE: i32>(a: *const i32, b: int32x4x2_t) -> int32x4x2_t {
21638    static_assert_uimm_bits!(LANE, 2);
21639    unsafe extern "unadjusted" {
21640        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2lane.v4i32.p0")]
21641        fn _vld2q_lane_s32(
21642            ptr: *const i8,
21643            a: int32x4_t,
21644            b: int32x4_t,
21645            n: i32,
21646            size: i32,
21647        ) -> int32x4x2_t;
21648    }
21649    _vld2q_lane_s32(a as _, b.0, b.1, LANE, 4)
21650}
21651#[doc = "Load multiple 2-element structures to two registers"]
21652#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_s8)"]
21653#[doc = "## Safety"]
21654#[doc = "  * Neon instrinsic unsafe"]
21655#[inline]
21656#[target_feature(enable = "neon,v7")]
21657#[cfg(target_arch = "arm")]
21658#[cfg_attr(test, assert_instr(vld2, LANE = 0))]
21659#[rustc_legacy_const_generics(2)]
21660#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
21661pub unsafe fn vld2_lane_s8<const LANE: i32>(a: *const i8, b: int8x8x2_t) -> int8x8x2_t {
21662    static_assert_uimm_bits!(LANE, 3);
21663    unsafe extern "unadjusted" {
21664        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2lane.v8i8.p0")]
21665        fn _vld2_lane_s8(ptr: *const i8, a: int8x8_t, b: int8x8_t, n: i32, size: i32)
21666            -> int8x8x2_t;
21667    }
21668    _vld2_lane_s8(a as _, b.0, b.1, LANE, 1)
21669}
21670#[doc = "Load multiple 2-element structures to two registers"]
21671#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_s16)"]
21672#[doc = "## Safety"]
21673#[doc = "  * Neon instrinsic unsafe"]
21674#[inline]
21675#[target_feature(enable = "neon,v7")]
21676#[cfg(target_arch = "arm")]
21677#[cfg_attr(test, assert_instr(vld2, LANE = 0))]
21678#[rustc_legacy_const_generics(2)]
21679#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
21680pub unsafe fn vld2_lane_s16<const LANE: i32>(a: *const i16, b: int16x4x2_t) -> int16x4x2_t {
21681    static_assert_uimm_bits!(LANE, 2);
21682    unsafe extern "unadjusted" {
21683        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2lane.v4i16.p0")]
21684        fn _vld2_lane_s16(
21685            ptr: *const i8,
21686            a: int16x4_t,
21687            b: int16x4_t,
21688            n: i32,
21689            size: i32,
21690        ) -> int16x4x2_t;
21691    }
21692    _vld2_lane_s16(a as _, b.0, b.1, LANE, 2)
21693}
21694#[doc = "Load multiple 2-element structures to two registers"]
21695#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_s32)"]
21696#[doc = "## Safety"]
21697#[doc = "  * Neon instrinsic unsafe"]
21698#[inline]
21699#[target_feature(enable = "neon,v7")]
21700#[cfg(target_arch = "arm")]
21701#[cfg_attr(test, assert_instr(vld2, LANE = 0))]
21702#[rustc_legacy_const_generics(2)]
21703#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
21704pub unsafe fn vld2_lane_s32<const LANE: i32>(a: *const i32, b: int32x2x2_t) -> int32x2x2_t {
21705    static_assert_uimm_bits!(LANE, 1);
21706    unsafe extern "unadjusted" {
21707        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2lane.v2i32.p0")]
21708        fn _vld2_lane_s32(
21709            ptr: *const i8,
21710            a: int32x2_t,
21711            b: int32x2_t,
21712            n: i32,
21713            size: i32,
21714        ) -> int32x2x2_t;
21715    }
21716    _vld2_lane_s32(a as _, b.0, b.1, LANE, 4)
21717}
21718#[doc = "Load multiple 2-element structures to two registers"]
21719#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_u8)"]
21720#[doc = "## Safety"]
21721#[doc = "  * Neon instrinsic unsafe"]
21722#[inline]
21723#[target_feature(enable = "neon")]
21724#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21725#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2, LANE = 0))]
21726#[cfg_attr(
21727    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21728    assert_instr(ld2, LANE = 0)
21729)]
21730#[rustc_legacy_const_generics(2)]
21731#[cfg_attr(
21732    not(target_arch = "arm"),
21733    stable(feature = "neon_intrinsics", since = "1.59.0")
21734)]
21735#[cfg_attr(
21736    target_arch = "arm",
21737    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21738)]
21739pub unsafe fn vld2_lane_u8<const LANE: i32>(a: *const u8, b: uint8x8x2_t) -> uint8x8x2_t {
21740    static_assert_uimm_bits!(LANE, 3);
21741    transmute(vld2_lane_s8::<LANE>(transmute(a), transmute(b)))
21742}
21743#[doc = "Load multiple 2-element structures to two registers"]
21744#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_u16)"]
21745#[doc = "## Safety"]
21746#[doc = "  * Neon instrinsic unsafe"]
21747#[inline]
21748#[target_feature(enable = "neon")]
21749#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21750#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2, LANE = 0))]
21751#[cfg_attr(
21752    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21753    assert_instr(ld2, LANE = 0)
21754)]
21755#[rustc_legacy_const_generics(2)]
21756#[cfg_attr(
21757    not(target_arch = "arm"),
21758    stable(feature = "neon_intrinsics", since = "1.59.0")
21759)]
21760#[cfg_attr(
21761    target_arch = "arm",
21762    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21763)]
21764pub unsafe fn vld2_lane_u16<const LANE: i32>(a: *const u16, b: uint16x4x2_t) -> uint16x4x2_t {
21765    static_assert_uimm_bits!(LANE, 2);
21766    transmute(vld2_lane_s16::<LANE>(transmute(a), transmute(b)))
21767}
21768#[doc = "Load multiple 2-element structures to two registers"]
21769#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_lane_u16)"]
21770#[doc = "## Safety"]
21771#[doc = "  * Neon instrinsic unsafe"]
21772#[inline]
21773#[target_feature(enable = "neon")]
21774#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21775#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2, LANE = 0))]
21776#[cfg_attr(
21777    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21778    assert_instr(ld2, LANE = 0)
21779)]
21780#[rustc_legacy_const_generics(2)]
21781#[cfg_attr(
21782    not(target_arch = "arm"),
21783    stable(feature = "neon_intrinsics", since = "1.59.0")
21784)]
21785#[cfg_attr(
21786    target_arch = "arm",
21787    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21788)]
21789pub unsafe fn vld2q_lane_u16<const LANE: i32>(a: *const u16, b: uint16x8x2_t) -> uint16x8x2_t {
21790    static_assert_uimm_bits!(LANE, 3);
21791    transmute(vld2q_lane_s16::<LANE>(transmute(a), transmute(b)))
21792}
21793#[doc = "Load multiple 2-element structures to two registers"]
21794#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_u32)"]
21795#[doc = "## Safety"]
21796#[doc = "  * Neon instrinsic unsafe"]
21797#[inline]
21798#[target_feature(enable = "neon")]
21799#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21800#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2, LANE = 0))]
21801#[cfg_attr(
21802    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21803    assert_instr(ld2, LANE = 0)
21804)]
21805#[rustc_legacy_const_generics(2)]
21806#[cfg_attr(
21807    not(target_arch = "arm"),
21808    stable(feature = "neon_intrinsics", since = "1.59.0")
21809)]
21810#[cfg_attr(
21811    target_arch = "arm",
21812    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21813)]
21814pub unsafe fn vld2_lane_u32<const LANE: i32>(a: *const u32, b: uint32x2x2_t) -> uint32x2x2_t {
21815    static_assert_uimm_bits!(LANE, 1);
21816    transmute(vld2_lane_s32::<LANE>(transmute(a), transmute(b)))
21817}
21818#[doc = "Load multiple 2-element structures to two registers"]
21819#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_lane_u32)"]
21820#[doc = "## Safety"]
21821#[doc = "  * Neon instrinsic unsafe"]
21822#[inline]
21823#[target_feature(enable = "neon")]
21824#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21825#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2, LANE = 0))]
21826#[cfg_attr(
21827    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21828    assert_instr(ld2, LANE = 0)
21829)]
21830#[rustc_legacy_const_generics(2)]
21831#[cfg_attr(
21832    not(target_arch = "arm"),
21833    stable(feature = "neon_intrinsics", since = "1.59.0")
21834)]
21835#[cfg_attr(
21836    target_arch = "arm",
21837    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21838)]
21839pub unsafe fn vld2q_lane_u32<const LANE: i32>(a: *const u32, b: uint32x4x2_t) -> uint32x4x2_t {
21840    static_assert_uimm_bits!(LANE, 2);
21841    transmute(vld2q_lane_s32::<LANE>(transmute(a), transmute(b)))
21842}
21843#[doc = "Load multiple 2-element structures to two registers"]
21844#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_p8)"]
21845#[doc = "## Safety"]
21846#[doc = "  * Neon instrinsic unsafe"]
21847#[inline]
21848#[target_feature(enable = "neon")]
21849#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21850#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2, LANE = 0))]
21851#[cfg_attr(
21852    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21853    assert_instr(ld2, LANE = 0)
21854)]
21855#[rustc_legacy_const_generics(2)]
21856#[cfg_attr(
21857    not(target_arch = "arm"),
21858    stable(feature = "neon_intrinsics", since = "1.59.0")
21859)]
21860#[cfg_attr(
21861    target_arch = "arm",
21862    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21863)]
21864pub unsafe fn vld2_lane_p8<const LANE: i32>(a: *const p8, b: poly8x8x2_t) -> poly8x8x2_t {
21865    static_assert_uimm_bits!(LANE, 3);
21866    transmute(vld2_lane_s8::<LANE>(transmute(a), transmute(b)))
21867}
21868#[doc = "Load multiple 2-element structures to two registers"]
21869#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_p16)"]
21870#[doc = "## Safety"]
21871#[doc = "  * Neon instrinsic unsafe"]
21872#[inline]
21873#[target_feature(enable = "neon")]
21874#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21875#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2, LANE = 0))]
21876#[cfg_attr(
21877    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21878    assert_instr(ld2, LANE = 0)
21879)]
21880#[rustc_legacy_const_generics(2)]
21881#[cfg_attr(
21882    not(target_arch = "arm"),
21883    stable(feature = "neon_intrinsics", since = "1.59.0")
21884)]
21885#[cfg_attr(
21886    target_arch = "arm",
21887    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21888)]
21889pub unsafe fn vld2_lane_p16<const LANE: i32>(a: *const p16, b: poly16x4x2_t) -> poly16x4x2_t {
21890    static_assert_uimm_bits!(LANE, 2);
21891    transmute(vld2_lane_s16::<LANE>(transmute(a), transmute(b)))
21892}
21893#[doc = "Load multiple 2-element structures to two registers"]
21894#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_lane_p16)"]
21895#[doc = "## Safety"]
21896#[doc = "  * Neon instrinsic unsafe"]
21897#[inline]
21898#[target_feature(enable = "neon")]
21899#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21900#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2, LANE = 0))]
21901#[cfg_attr(
21902    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21903    assert_instr(ld2, LANE = 0)
21904)]
21905#[rustc_legacy_const_generics(2)]
21906#[cfg_attr(
21907    not(target_arch = "arm"),
21908    stable(feature = "neon_intrinsics", since = "1.59.0")
21909)]
21910#[cfg_attr(
21911    target_arch = "arm",
21912    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21913)]
21914pub unsafe fn vld2q_lane_p16<const LANE: i32>(a: *const p16, b: poly16x8x2_t) -> poly16x8x2_t {
21915    static_assert_uimm_bits!(LANE, 3);
21916    transmute(vld2q_lane_s16::<LANE>(transmute(a), transmute(b)))
21917}
21918#[doc = "Load multiple 2-element structures to two registers"]
21919#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_p64)"]
21920#[doc = "## Safety"]
21921#[doc = "  * Neon instrinsic unsafe"]
21922#[inline]
21923#[target_feature(enable = "neon,aes")]
21924#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
21925#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
21926#[cfg_attr(
21927    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21928    assert_instr(nop)
21929)]
21930#[cfg_attr(
21931    not(target_arch = "arm"),
21932    stable(feature = "neon_intrinsics", since = "1.59.0")
21933)]
21934#[cfg_attr(
21935    target_arch = "arm",
21936    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21937)]
21938pub unsafe fn vld2_p64(a: *const p64) -> poly64x1x2_t {
21939    transmute(vld2_s64(transmute(a)))
21940}
21941#[doc = "Load multiple 2-element structures to two registers"]
21942#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_s64)"]
21943#[doc = "## Safety"]
21944#[doc = "  * Neon instrinsic unsafe"]
21945#[inline]
21946#[target_feature(enable = "neon,v7")]
21947#[cfg(target_arch = "arm")]
21948#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
21949#[cfg_attr(test, assert_instr(nop))]
21950pub unsafe fn vld2_s64(a: *const i64) -> int64x1x2_t {
21951    unsafe extern "unadjusted" {
21952        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2.v1i64")]
21953        fn _vld2_s64(ptr: *const i8, size: i32) -> int64x1x2_t;
21954    }
21955    _vld2_s64(a as *const i8, 8)
21956}
21957#[doc = "Load multiple 2-element structures to two registers"]
21958#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_s64)"]
21959#[doc = "## Safety"]
21960#[doc = "  * Neon instrinsic unsafe"]
21961#[inline]
21962#[target_feature(enable = "neon")]
21963#[cfg(not(target_arch = "arm"))]
21964#[stable(feature = "neon_intrinsics", since = "1.59.0")]
21965#[cfg_attr(test, assert_instr(nop))]
21966pub unsafe fn vld2_s64(a: *const i64) -> int64x1x2_t {
21967    unsafe extern "unadjusted" {
21968        #[cfg_attr(
21969            any(target_arch = "aarch64", target_arch = "arm64ec"),
21970            link_name = "llvm.aarch64.neon.ld2.v1i64.p0"
21971        )]
21972        fn _vld2_s64(ptr: *const int64x1_t) -> int64x1x2_t;
21973    }
21974    _vld2_s64(a as _)
21975}
21976#[doc = "Load multiple 2-element structures to two registers"]
21977#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_u64)"]
21978#[doc = "## Safety"]
21979#[doc = "  * Neon instrinsic unsafe"]
21980#[inline]
21981#[target_feature(enable = "neon")]
21982#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21983#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
21984#[cfg_attr(
21985    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21986    assert_instr(nop)
21987)]
21988#[cfg_attr(
21989    not(target_arch = "arm"),
21990    stable(feature = "neon_intrinsics", since = "1.59.0")
21991)]
21992#[cfg_attr(
21993    target_arch = "arm",
21994    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21995)]
21996pub unsafe fn vld2_u64(a: *const u64) -> uint64x1x2_t {
21997    transmute(vld2_s64(transmute(a)))
21998}
21999#[doc = "Load multiple 2-element structures to two registers"]
22000#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_u8)"]
22001#[doc = "## Safety"]
22002#[doc = "  * Neon instrinsic unsafe"]
22003#[inline]
22004#[cfg(target_endian = "little")]
22005#[target_feature(enable = "neon")]
22006#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22007#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
22008#[cfg_attr(
22009    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22010    assert_instr(ld2)
22011)]
22012#[cfg_attr(
22013    not(target_arch = "arm"),
22014    stable(feature = "neon_intrinsics", since = "1.59.0")
22015)]
22016#[cfg_attr(
22017    target_arch = "arm",
22018    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22019)]
22020pub unsafe fn vld2_u8(a: *const u8) -> uint8x8x2_t {
22021    transmute(vld2_s8(transmute(a)))
22022}
22023#[doc = "Load multiple 2-element structures to two registers"]
22024#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_u8)"]
22025#[doc = "## Safety"]
22026#[doc = "  * Neon instrinsic unsafe"]
22027#[inline]
22028#[cfg(target_endian = "big")]
22029#[target_feature(enable = "neon")]
22030#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22031#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
22032#[cfg_attr(
22033    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22034    assert_instr(ld2)
22035)]
22036#[cfg_attr(
22037    not(target_arch = "arm"),
22038    stable(feature = "neon_intrinsics", since = "1.59.0")
22039)]
22040#[cfg_attr(
22041    target_arch = "arm",
22042    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22043)]
22044pub unsafe fn vld2_u8(a: *const u8) -> uint8x8x2_t {
22045    let mut ret_val: uint8x8x2_t = transmute(vld2_s8(transmute(a)));
22046    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
22047    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
22048    ret_val
22049}
22050#[doc = "Load multiple 2-element structures to two registers"]
22051#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_u8)"]
22052#[doc = "## Safety"]
22053#[doc = "  * Neon instrinsic unsafe"]
22054#[inline]
22055#[cfg(target_endian = "little")]
22056#[target_feature(enable = "neon")]
22057#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22058#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
22059#[cfg_attr(
22060    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22061    assert_instr(ld2)
22062)]
22063#[cfg_attr(
22064    not(target_arch = "arm"),
22065    stable(feature = "neon_intrinsics", since = "1.59.0")
22066)]
22067#[cfg_attr(
22068    target_arch = "arm",
22069    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22070)]
22071pub unsafe fn vld2q_u8(a: *const u8) -> uint8x16x2_t {
22072    transmute(vld2q_s8(transmute(a)))
22073}
22074#[doc = "Load multiple 2-element structures to two registers"]
22075#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_u8)"]
22076#[doc = "## Safety"]
22077#[doc = "  * Neon instrinsic unsafe"]
22078#[inline]
22079#[cfg(target_endian = "big")]
22080#[target_feature(enable = "neon")]
22081#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22082#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
22083#[cfg_attr(
22084    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22085    assert_instr(ld2)
22086)]
22087#[cfg_attr(
22088    not(target_arch = "arm"),
22089    stable(feature = "neon_intrinsics", since = "1.59.0")
22090)]
22091#[cfg_attr(
22092    target_arch = "arm",
22093    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22094)]
22095pub unsafe fn vld2q_u8(a: *const u8) -> uint8x16x2_t {
22096    let mut ret_val: uint8x16x2_t = transmute(vld2q_s8(transmute(a)));
22097    ret_val.0 = unsafe {
22098        simd_shuffle!(
22099            ret_val.0,
22100            ret_val.0,
22101            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
22102        )
22103    };
22104    ret_val.1 = unsafe {
22105        simd_shuffle!(
22106            ret_val.1,
22107            ret_val.1,
22108            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
22109        )
22110    };
22111    ret_val
22112}
22113#[doc = "Load multiple 2-element structures to two registers"]
22114#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_u16)"]
22115#[doc = "## Safety"]
22116#[doc = "  * Neon instrinsic unsafe"]
22117#[inline]
22118#[cfg(target_endian = "little")]
22119#[target_feature(enable = "neon")]
22120#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22121#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
22122#[cfg_attr(
22123    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22124    assert_instr(ld2)
22125)]
22126#[cfg_attr(
22127    not(target_arch = "arm"),
22128    stable(feature = "neon_intrinsics", since = "1.59.0")
22129)]
22130#[cfg_attr(
22131    target_arch = "arm",
22132    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22133)]
22134pub unsafe fn vld2_u16(a: *const u16) -> uint16x4x2_t {
22135    transmute(vld2_s16(transmute(a)))
22136}
22137#[doc = "Load multiple 2-element structures to two registers"]
22138#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_u16)"]
22139#[doc = "## Safety"]
22140#[doc = "  * Neon instrinsic unsafe"]
22141#[inline]
22142#[cfg(target_endian = "big")]
22143#[target_feature(enable = "neon")]
22144#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22145#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
22146#[cfg_attr(
22147    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22148    assert_instr(ld2)
22149)]
22150#[cfg_attr(
22151    not(target_arch = "arm"),
22152    stable(feature = "neon_intrinsics", since = "1.59.0")
22153)]
22154#[cfg_attr(
22155    target_arch = "arm",
22156    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22157)]
22158pub unsafe fn vld2_u16(a: *const u16) -> uint16x4x2_t {
22159    let mut ret_val: uint16x4x2_t = transmute(vld2_s16(transmute(a)));
22160    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
22161    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
22162    ret_val
22163}
22164#[doc = "Load multiple 2-element structures to two registers"]
22165#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_u16)"]
22166#[doc = "## Safety"]
22167#[doc = "  * Neon instrinsic unsafe"]
22168#[inline]
22169#[cfg(target_endian = "little")]
22170#[target_feature(enable = "neon")]
22171#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22172#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
22173#[cfg_attr(
22174    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22175    assert_instr(ld2)
22176)]
22177#[cfg_attr(
22178    not(target_arch = "arm"),
22179    stable(feature = "neon_intrinsics", since = "1.59.0")
22180)]
22181#[cfg_attr(
22182    target_arch = "arm",
22183    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22184)]
22185pub unsafe fn vld2q_u16(a: *const u16) -> uint16x8x2_t {
22186    transmute(vld2q_s16(transmute(a)))
22187}
22188#[doc = "Load multiple 2-element structures to two registers"]
22189#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_u16)"]
22190#[doc = "## Safety"]
22191#[doc = "  * Neon instrinsic unsafe"]
22192#[inline]
22193#[cfg(target_endian = "big")]
22194#[target_feature(enable = "neon")]
22195#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22196#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
22197#[cfg_attr(
22198    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22199    assert_instr(ld2)
22200)]
22201#[cfg_attr(
22202    not(target_arch = "arm"),
22203    stable(feature = "neon_intrinsics", since = "1.59.0")
22204)]
22205#[cfg_attr(
22206    target_arch = "arm",
22207    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22208)]
22209pub unsafe fn vld2q_u16(a: *const u16) -> uint16x8x2_t {
22210    let mut ret_val: uint16x8x2_t = transmute(vld2q_s16(transmute(a)));
22211    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
22212    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
22213    ret_val
22214}
22215#[doc = "Load multiple 2-element structures to two registers"]
22216#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_u32)"]
22217#[doc = "## Safety"]
22218#[doc = "  * Neon instrinsic unsafe"]
22219#[inline]
22220#[cfg(target_endian = "little")]
22221#[target_feature(enable = "neon")]
22222#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22223#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
22224#[cfg_attr(
22225    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22226    assert_instr(ld2)
22227)]
22228#[cfg_attr(
22229    not(target_arch = "arm"),
22230    stable(feature = "neon_intrinsics", since = "1.59.0")
22231)]
22232#[cfg_attr(
22233    target_arch = "arm",
22234    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22235)]
22236pub unsafe fn vld2_u32(a: *const u32) -> uint32x2x2_t {
22237    transmute(vld2_s32(transmute(a)))
22238}
22239#[doc = "Load multiple 2-element structures to two registers"]
22240#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_u32)"]
22241#[doc = "## Safety"]
22242#[doc = "  * Neon instrinsic unsafe"]
22243#[inline]
22244#[cfg(target_endian = "big")]
22245#[target_feature(enable = "neon")]
22246#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22247#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
22248#[cfg_attr(
22249    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22250    assert_instr(ld2)
22251)]
22252#[cfg_attr(
22253    not(target_arch = "arm"),
22254    stable(feature = "neon_intrinsics", since = "1.59.0")
22255)]
22256#[cfg_attr(
22257    target_arch = "arm",
22258    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22259)]
22260pub unsafe fn vld2_u32(a: *const u32) -> uint32x2x2_t {
22261    let mut ret_val: uint32x2x2_t = transmute(vld2_s32(transmute(a)));
22262    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [1, 0]) };
22263    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [1, 0]) };
22264    ret_val
22265}
22266#[doc = "Load multiple 2-element structures to two registers"]
22267#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_u32)"]
22268#[doc = "## Safety"]
22269#[doc = "  * Neon instrinsic unsafe"]
22270#[inline]
22271#[cfg(target_endian = "little")]
22272#[target_feature(enable = "neon")]
22273#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22274#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
22275#[cfg_attr(
22276    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22277    assert_instr(ld2)
22278)]
22279#[cfg_attr(
22280    not(target_arch = "arm"),
22281    stable(feature = "neon_intrinsics", since = "1.59.0")
22282)]
22283#[cfg_attr(
22284    target_arch = "arm",
22285    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22286)]
22287pub unsafe fn vld2q_u32(a: *const u32) -> uint32x4x2_t {
22288    transmute(vld2q_s32(transmute(a)))
22289}
22290#[doc = "Load multiple 2-element structures to two registers"]
22291#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_u32)"]
22292#[doc = "## Safety"]
22293#[doc = "  * Neon instrinsic unsafe"]
22294#[inline]
22295#[cfg(target_endian = "big")]
22296#[target_feature(enable = "neon")]
22297#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22298#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
22299#[cfg_attr(
22300    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22301    assert_instr(ld2)
22302)]
22303#[cfg_attr(
22304    not(target_arch = "arm"),
22305    stable(feature = "neon_intrinsics", since = "1.59.0")
22306)]
22307#[cfg_attr(
22308    target_arch = "arm",
22309    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22310)]
22311pub unsafe fn vld2q_u32(a: *const u32) -> uint32x4x2_t {
22312    let mut ret_val: uint32x4x2_t = transmute(vld2q_s32(transmute(a)));
22313    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
22314    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
22315    ret_val
22316}
22317#[doc = "Load multiple 2-element structures to two registers"]
22318#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_p8)"]
22319#[doc = "## Safety"]
22320#[doc = "  * Neon instrinsic unsafe"]
22321#[inline]
22322#[cfg(target_endian = "little")]
22323#[target_feature(enable = "neon")]
22324#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22325#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
22326#[cfg_attr(
22327    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22328    assert_instr(ld2)
22329)]
22330#[cfg_attr(
22331    not(target_arch = "arm"),
22332    stable(feature = "neon_intrinsics", since = "1.59.0")
22333)]
22334#[cfg_attr(
22335    target_arch = "arm",
22336    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22337)]
22338pub unsafe fn vld2_p8(a: *const p8) -> poly8x8x2_t {
22339    transmute(vld2_s8(transmute(a)))
22340}
22341#[doc = "Load multiple 2-element structures to two registers"]
22342#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_p8)"]
22343#[doc = "## Safety"]
22344#[doc = "  * Neon instrinsic unsafe"]
22345#[inline]
22346#[cfg(target_endian = "big")]
22347#[target_feature(enable = "neon")]
22348#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22349#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
22350#[cfg_attr(
22351    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22352    assert_instr(ld2)
22353)]
22354#[cfg_attr(
22355    not(target_arch = "arm"),
22356    stable(feature = "neon_intrinsics", since = "1.59.0")
22357)]
22358#[cfg_attr(
22359    target_arch = "arm",
22360    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22361)]
22362pub unsafe fn vld2_p8(a: *const p8) -> poly8x8x2_t {
22363    let mut ret_val: poly8x8x2_t = transmute(vld2_s8(transmute(a)));
22364    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
22365    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
22366    ret_val
22367}
22368#[doc = "Load multiple 2-element structures to two registers"]
22369#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_p8)"]
22370#[doc = "## Safety"]
22371#[doc = "  * Neon instrinsic unsafe"]
22372#[inline]
22373#[cfg(target_endian = "little")]
22374#[target_feature(enable = "neon")]
22375#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22376#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
22377#[cfg_attr(
22378    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22379    assert_instr(ld2)
22380)]
22381#[cfg_attr(
22382    not(target_arch = "arm"),
22383    stable(feature = "neon_intrinsics", since = "1.59.0")
22384)]
22385#[cfg_attr(
22386    target_arch = "arm",
22387    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22388)]
22389pub unsafe fn vld2q_p8(a: *const p8) -> poly8x16x2_t {
22390    transmute(vld2q_s8(transmute(a)))
22391}
22392#[doc = "Load multiple 2-element structures to two registers"]
22393#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_p8)"]
22394#[doc = "## Safety"]
22395#[doc = "  * Neon instrinsic unsafe"]
22396#[inline]
22397#[cfg(target_endian = "big")]
22398#[target_feature(enable = "neon")]
22399#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22400#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
22401#[cfg_attr(
22402    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22403    assert_instr(ld2)
22404)]
22405#[cfg_attr(
22406    not(target_arch = "arm"),
22407    stable(feature = "neon_intrinsics", since = "1.59.0")
22408)]
22409#[cfg_attr(
22410    target_arch = "arm",
22411    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22412)]
22413pub unsafe fn vld2q_p8(a: *const p8) -> poly8x16x2_t {
22414    let mut ret_val: poly8x16x2_t = transmute(vld2q_s8(transmute(a)));
22415    ret_val.0 = unsafe {
22416        simd_shuffle!(
22417            ret_val.0,
22418            ret_val.0,
22419            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
22420        )
22421    };
22422    ret_val.1 = unsafe {
22423        simd_shuffle!(
22424            ret_val.1,
22425            ret_val.1,
22426            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
22427        )
22428    };
22429    ret_val
22430}
22431#[doc = "Load multiple 2-element structures to two registers"]
22432#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_p16)"]
22433#[doc = "## Safety"]
22434#[doc = "  * Neon instrinsic unsafe"]
22435#[inline]
22436#[cfg(target_endian = "little")]
22437#[target_feature(enable = "neon")]
22438#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22439#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
22440#[cfg_attr(
22441    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22442    assert_instr(ld2)
22443)]
22444#[cfg_attr(
22445    not(target_arch = "arm"),
22446    stable(feature = "neon_intrinsics", since = "1.59.0")
22447)]
22448#[cfg_attr(
22449    target_arch = "arm",
22450    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22451)]
22452pub unsafe fn vld2_p16(a: *const p16) -> poly16x4x2_t {
22453    transmute(vld2_s16(transmute(a)))
22454}
22455#[doc = "Load multiple 2-element structures to two registers"]
22456#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_p16)"]
22457#[doc = "## Safety"]
22458#[doc = "  * Neon instrinsic unsafe"]
22459#[inline]
22460#[cfg(target_endian = "big")]
22461#[target_feature(enable = "neon")]
22462#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22463#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
22464#[cfg_attr(
22465    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22466    assert_instr(ld2)
22467)]
22468#[cfg_attr(
22469    not(target_arch = "arm"),
22470    stable(feature = "neon_intrinsics", since = "1.59.0")
22471)]
22472#[cfg_attr(
22473    target_arch = "arm",
22474    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22475)]
22476pub unsafe fn vld2_p16(a: *const p16) -> poly16x4x2_t {
22477    let mut ret_val: poly16x4x2_t = transmute(vld2_s16(transmute(a)));
22478    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
22479    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
22480    ret_val
22481}
22482#[doc = "Load multiple 2-element structures to two registers"]
22483#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_p16)"]
22484#[doc = "## Safety"]
22485#[doc = "  * Neon instrinsic unsafe"]
22486#[inline]
22487#[cfg(target_endian = "little")]
22488#[target_feature(enable = "neon")]
22489#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22490#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
22491#[cfg_attr(
22492    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22493    assert_instr(ld2)
22494)]
22495#[cfg_attr(
22496    not(target_arch = "arm"),
22497    stable(feature = "neon_intrinsics", since = "1.59.0")
22498)]
22499#[cfg_attr(
22500    target_arch = "arm",
22501    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22502)]
22503pub unsafe fn vld2q_p16(a: *const p16) -> poly16x8x2_t {
22504    transmute(vld2q_s16(transmute(a)))
22505}
22506#[doc = "Load multiple 2-element structures to two registers"]
22507#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_p16)"]
22508#[doc = "## Safety"]
22509#[doc = "  * Neon instrinsic unsafe"]
22510#[inline]
22511#[cfg(target_endian = "big")]
22512#[target_feature(enable = "neon")]
22513#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22514#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
22515#[cfg_attr(
22516    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22517    assert_instr(ld2)
22518)]
22519#[cfg_attr(
22520    not(target_arch = "arm"),
22521    stable(feature = "neon_intrinsics", since = "1.59.0")
22522)]
22523#[cfg_attr(
22524    target_arch = "arm",
22525    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22526)]
22527pub unsafe fn vld2q_p16(a: *const p16) -> poly16x8x2_t {
22528    let mut ret_val: poly16x8x2_t = transmute(vld2q_s16(transmute(a)));
22529    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
22530    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
22531    ret_val
22532}
22533#[doc = "Load single 3-element structure and replicate to all lanes of two registers"]
22534#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_f16)"]
22535#[doc = "## Safety"]
22536#[doc = "  * Neon instrinsic unsafe"]
22537#[inline]
22538#[target_feature(enable = "neon")]
22539#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22540#[cfg(target_arch = "arm")]
22541#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
22542#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
22543#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
22544#[cfg(not(target_arch = "arm64ec"))]
22545pub unsafe fn vld3_dup_f16(a: *const f16) -> float16x4x3_t {
22546    unsafe extern "unadjusted" {
22547        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3dup.v4f16.p0")]
22548        fn _vld3_dup_f16(ptr: *const f16, size: i32) -> float16x4x3_t;
22549    }
22550    _vld3_dup_f16(a as _, 2)
22551}
22552#[doc = "Load single 3-element structure and replicate to all lanes of two registers"]
22553#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_f16)"]
22554#[doc = "## Safety"]
22555#[doc = "  * Neon instrinsic unsafe"]
22556#[inline]
22557#[target_feature(enable = "neon")]
22558#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22559#[cfg(target_arch = "arm")]
22560#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
22561#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
22562#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
22563#[cfg(not(target_arch = "arm64ec"))]
22564pub unsafe fn vld3q_dup_f16(a: *const f16) -> float16x8x3_t {
22565    unsafe extern "unadjusted" {
22566        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3dup.v8f16.p0")]
22567        fn _vld3q_dup_f16(ptr: *const f16, size: i32) -> float16x8x3_t;
22568    }
22569    _vld3q_dup_f16(a as _, 2)
22570}
22571#[doc = "Load single 3-element structure and replicate to all lanes of two registers"]
22572#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_f16)"]
22573#[doc = "## Safety"]
22574#[doc = "  * Neon instrinsic unsafe"]
22575#[inline]
22576#[target_feature(enable = "neon")]
22577#[cfg(not(target_arch = "arm"))]
22578#[cfg_attr(
22579    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22580    assert_instr(ld3r)
22581)]
22582#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
22583#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
22584#[cfg(not(target_arch = "arm64ec"))]
22585pub unsafe fn vld3_dup_f16(a: *const f16) -> float16x4x3_t {
22586    unsafe extern "unadjusted" {
22587        #[cfg_attr(
22588            any(target_arch = "aarch64", target_arch = "arm64ec"),
22589            link_name = "llvm.aarch64.neon.ld3r.v4f16.p0"
22590        )]
22591        fn _vld3_dup_f16(ptr: *const f16) -> float16x4x3_t;
22592    }
22593    _vld3_dup_f16(a as _)
22594}
22595#[doc = "Load single 3-element structure and replicate to all lanes of two registers"]
22596#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_f16)"]
22597#[doc = "## Safety"]
22598#[doc = "  * Neon instrinsic unsafe"]
22599#[inline]
22600#[target_feature(enable = "neon")]
22601#[cfg(not(target_arch = "arm"))]
22602#[cfg_attr(
22603    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22604    assert_instr(ld3r)
22605)]
22606#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
22607#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
22608#[cfg(not(target_arch = "arm64ec"))]
22609pub unsafe fn vld3q_dup_f16(a: *const f16) -> float16x8x3_t {
22610    unsafe extern "unadjusted" {
22611        #[cfg_attr(
22612            any(target_arch = "aarch64", target_arch = "arm64ec"),
22613            link_name = "llvm.aarch64.neon.ld3r.v8f16.p0"
22614        )]
22615        fn _vld3q_dup_f16(ptr: *const f16) -> float16x8x3_t;
22616    }
22617    _vld3q_dup_f16(a as _)
22618}
22619#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
22620#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_f32)"]
22621#[doc = "## Safety"]
22622#[doc = "  * Neon instrinsic unsafe"]
22623#[inline]
22624#[target_feature(enable = "neon")]
22625#[cfg(not(target_arch = "arm"))]
22626#[stable(feature = "neon_intrinsics", since = "1.59.0")]
22627#[cfg_attr(test, assert_instr(ld3r))]
22628pub unsafe fn vld3_dup_f32(a: *const f32) -> float32x2x3_t {
22629    unsafe extern "unadjusted" {
22630        #[cfg_attr(
22631            any(target_arch = "aarch64", target_arch = "arm64ec"),
22632            link_name = "llvm.aarch64.neon.ld3r.v2f32.p0"
22633        )]
22634        fn _vld3_dup_f32(ptr: *const f32) -> float32x2x3_t;
22635    }
22636    _vld3_dup_f32(a as _)
22637}
22638#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
22639#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_f32)"]
22640#[doc = "## Safety"]
22641#[doc = "  * Neon instrinsic unsafe"]
22642#[inline]
22643#[target_feature(enable = "neon")]
22644#[cfg(not(target_arch = "arm"))]
22645#[stable(feature = "neon_intrinsics", since = "1.59.0")]
22646#[cfg_attr(test, assert_instr(ld3r))]
22647pub unsafe fn vld3q_dup_f32(a: *const f32) -> float32x4x3_t {
22648    unsafe extern "unadjusted" {
22649        #[cfg_attr(
22650            any(target_arch = "aarch64", target_arch = "arm64ec"),
22651            link_name = "llvm.aarch64.neon.ld3r.v4f32.p0"
22652        )]
22653        fn _vld3q_dup_f32(ptr: *const f32) -> float32x4x3_t;
22654    }
22655    _vld3q_dup_f32(a as _)
22656}
22657#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
22658#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_s8)"]
22659#[doc = "## Safety"]
22660#[doc = "  * Neon instrinsic unsafe"]
22661#[inline]
22662#[target_feature(enable = "neon")]
22663#[cfg(not(target_arch = "arm"))]
22664#[stable(feature = "neon_intrinsics", since = "1.59.0")]
22665#[cfg_attr(test, assert_instr(ld3r))]
22666pub unsafe fn vld3_dup_s8(a: *const i8) -> int8x8x3_t {
22667    unsafe extern "unadjusted" {
22668        #[cfg_attr(
22669            any(target_arch = "aarch64", target_arch = "arm64ec"),
22670            link_name = "llvm.aarch64.neon.ld3r.v8i8.p0"
22671        )]
22672        fn _vld3_dup_s8(ptr: *const i8) -> int8x8x3_t;
22673    }
22674    _vld3_dup_s8(a as _)
22675}
22676#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
22677#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_s8)"]
22678#[doc = "## Safety"]
22679#[doc = "  * Neon instrinsic unsafe"]
22680#[inline]
22681#[target_feature(enable = "neon")]
22682#[cfg(not(target_arch = "arm"))]
22683#[stable(feature = "neon_intrinsics", since = "1.59.0")]
22684#[cfg_attr(test, assert_instr(ld3r))]
22685pub unsafe fn vld3q_dup_s8(a: *const i8) -> int8x16x3_t {
22686    unsafe extern "unadjusted" {
22687        #[cfg_attr(
22688            any(target_arch = "aarch64", target_arch = "arm64ec"),
22689            link_name = "llvm.aarch64.neon.ld3r.v16i8.p0"
22690        )]
22691        fn _vld3q_dup_s8(ptr: *const i8) -> int8x16x3_t;
22692    }
22693    _vld3q_dup_s8(a as _)
22694}
22695#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
22696#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_s16)"]
22697#[doc = "## Safety"]
22698#[doc = "  * Neon instrinsic unsafe"]
22699#[inline]
22700#[target_feature(enable = "neon")]
22701#[cfg(not(target_arch = "arm"))]
22702#[stable(feature = "neon_intrinsics", since = "1.59.0")]
22703#[cfg_attr(test, assert_instr(ld3r))]
22704pub unsafe fn vld3_dup_s16(a: *const i16) -> int16x4x3_t {
22705    unsafe extern "unadjusted" {
22706        #[cfg_attr(
22707            any(target_arch = "aarch64", target_arch = "arm64ec"),
22708            link_name = "llvm.aarch64.neon.ld3r.v4i16.p0"
22709        )]
22710        fn _vld3_dup_s16(ptr: *const i16) -> int16x4x3_t;
22711    }
22712    _vld3_dup_s16(a as _)
22713}
22714#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
22715#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_s16)"]
22716#[doc = "## Safety"]
22717#[doc = "  * Neon instrinsic unsafe"]
22718#[inline]
22719#[target_feature(enable = "neon")]
22720#[cfg(not(target_arch = "arm"))]
22721#[stable(feature = "neon_intrinsics", since = "1.59.0")]
22722#[cfg_attr(test, assert_instr(ld3r))]
22723pub unsafe fn vld3q_dup_s16(a: *const i16) -> int16x8x3_t {
22724    unsafe extern "unadjusted" {
22725        #[cfg_attr(
22726            any(target_arch = "aarch64", target_arch = "arm64ec"),
22727            link_name = "llvm.aarch64.neon.ld3r.v8i16.p0"
22728        )]
22729        fn _vld3q_dup_s16(ptr: *const i16) -> int16x8x3_t;
22730    }
22731    _vld3q_dup_s16(a as _)
22732}
22733#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
22734#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_s32)"]
22735#[doc = "## Safety"]
22736#[doc = "  * Neon instrinsic unsafe"]
22737#[inline]
22738#[target_feature(enable = "neon")]
22739#[cfg(not(target_arch = "arm"))]
22740#[stable(feature = "neon_intrinsics", since = "1.59.0")]
22741#[cfg_attr(test, assert_instr(ld3r))]
22742pub unsafe fn vld3_dup_s32(a: *const i32) -> int32x2x3_t {
22743    unsafe extern "unadjusted" {
22744        #[cfg_attr(
22745            any(target_arch = "aarch64", target_arch = "arm64ec"),
22746            link_name = "llvm.aarch64.neon.ld3r.v2i32.p0"
22747        )]
22748        fn _vld3_dup_s32(ptr: *const i32) -> int32x2x3_t;
22749    }
22750    _vld3_dup_s32(a as _)
22751}
22752#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
22753#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_s32)"]
22754#[doc = "## Safety"]
22755#[doc = "  * Neon instrinsic unsafe"]
22756#[inline]
22757#[target_feature(enable = "neon")]
22758#[cfg(not(target_arch = "arm"))]
22759#[stable(feature = "neon_intrinsics", since = "1.59.0")]
22760#[cfg_attr(test, assert_instr(ld3r))]
22761pub unsafe fn vld3q_dup_s32(a: *const i32) -> int32x4x3_t {
22762    unsafe extern "unadjusted" {
22763        #[cfg_attr(
22764            any(target_arch = "aarch64", target_arch = "arm64ec"),
22765            link_name = "llvm.aarch64.neon.ld3r.v4i32.p0"
22766        )]
22767        fn _vld3q_dup_s32(ptr: *const i32) -> int32x4x3_t;
22768    }
22769    _vld3q_dup_s32(a as _)
22770}
22771#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
22772#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_s64)"]
22773#[doc = "## Safety"]
22774#[doc = "  * Neon instrinsic unsafe"]
22775#[inline]
22776#[target_feature(enable = "neon")]
22777#[cfg(not(target_arch = "arm"))]
22778#[stable(feature = "neon_intrinsics", since = "1.59.0")]
22779#[cfg_attr(test, assert_instr(ld3r))]
22780pub unsafe fn vld3_dup_s64(a: *const i64) -> int64x1x3_t {
22781    unsafe extern "unadjusted" {
22782        #[cfg_attr(
22783            any(target_arch = "aarch64", target_arch = "arm64ec"),
22784            link_name = "llvm.aarch64.neon.ld3r.v1i64.p0"
22785        )]
22786        fn _vld3_dup_s64(ptr: *const i64) -> int64x1x3_t;
22787    }
22788    _vld3_dup_s64(a as _)
22789}
22790#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
22791#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_f32)"]
22792#[doc = "## Safety"]
22793#[doc = "  * Neon instrinsic unsafe"]
22794#[inline]
22795#[target_feature(enable = "neon,v7")]
22796#[cfg(target_arch = "arm")]
22797#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
22798#[cfg_attr(test, assert_instr(vld3))]
22799pub unsafe fn vld3_dup_f32(a: *const f32) -> float32x2x3_t {
22800    unsafe extern "unadjusted" {
22801        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3dup.v2f32.p0")]
22802        fn _vld3_dup_f32(ptr: *const i8, size: i32) -> float32x2x3_t;
22803    }
22804    _vld3_dup_f32(a as *const i8, 4)
22805}
22806#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
22807#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_f32)"]
22808#[doc = "## Safety"]
22809#[doc = "  * Neon instrinsic unsafe"]
22810#[inline]
22811#[target_feature(enable = "neon,v7")]
22812#[cfg(target_arch = "arm")]
22813#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
22814#[cfg_attr(test, assert_instr(vld3))]
22815pub unsafe fn vld3q_dup_f32(a: *const f32) -> float32x4x3_t {
22816    unsafe extern "unadjusted" {
22817        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3dup.v4f32.p0")]
22818        fn _vld3q_dup_f32(ptr: *const i8, size: i32) -> float32x4x3_t;
22819    }
22820    _vld3q_dup_f32(a as *const i8, 4)
22821}
22822#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
22823#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_s8)"]
22824#[doc = "## Safety"]
22825#[doc = "  * Neon instrinsic unsafe"]
22826#[inline]
22827#[target_feature(enable = "neon,v7")]
22828#[cfg(target_arch = "arm")]
22829#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
22830#[cfg_attr(test, assert_instr(vld3))]
22831pub unsafe fn vld3_dup_s8(a: *const i8) -> int8x8x3_t {
22832    unsafe extern "unadjusted" {
22833        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3dup.v8i8.p0")]
22834        fn _vld3_dup_s8(ptr: *const i8, size: i32) -> int8x8x3_t;
22835    }
22836    _vld3_dup_s8(a as *const i8, 1)
22837}
22838#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
22839#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_s8)"]
22840#[doc = "## Safety"]
22841#[doc = "  * Neon instrinsic unsafe"]
22842#[inline]
22843#[target_feature(enable = "neon,v7")]
22844#[cfg(target_arch = "arm")]
22845#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
22846#[cfg_attr(test, assert_instr(vld3))]
22847pub unsafe fn vld3q_dup_s8(a: *const i8) -> int8x16x3_t {
22848    unsafe extern "unadjusted" {
22849        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3dup.v16i8.p0")]
22850        fn _vld3q_dup_s8(ptr: *const i8, size: i32) -> int8x16x3_t;
22851    }
22852    _vld3q_dup_s8(a as *const i8, 1)
22853}
22854#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
22855#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_s16)"]
22856#[doc = "## Safety"]
22857#[doc = "  * Neon instrinsic unsafe"]
22858#[inline]
22859#[target_feature(enable = "neon,v7")]
22860#[cfg(target_arch = "arm")]
22861#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
22862#[cfg_attr(test, assert_instr(vld3))]
22863pub unsafe fn vld3_dup_s16(a: *const i16) -> int16x4x3_t {
22864    unsafe extern "unadjusted" {
22865        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3dup.v4i16.p0")]
22866        fn _vld3_dup_s16(ptr: *const i8, size: i32) -> int16x4x3_t;
22867    }
22868    _vld3_dup_s16(a as *const i8, 2)
22869}
22870#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
22871#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_s16)"]
22872#[doc = "## Safety"]
22873#[doc = "  * Neon instrinsic unsafe"]
22874#[inline]
22875#[target_feature(enable = "neon,v7")]
22876#[cfg(target_arch = "arm")]
22877#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
22878#[cfg_attr(test, assert_instr(vld3))]
22879pub unsafe fn vld3q_dup_s16(a: *const i16) -> int16x8x3_t {
22880    unsafe extern "unadjusted" {
22881        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3dup.v8i16.p0")]
22882        fn _vld3q_dup_s16(ptr: *const i8, size: i32) -> int16x8x3_t;
22883    }
22884    _vld3q_dup_s16(a as *const i8, 2)
22885}
22886#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
22887#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_s32)"]
22888#[doc = "## Safety"]
22889#[doc = "  * Neon instrinsic unsafe"]
22890#[inline]
22891#[target_feature(enable = "neon,v7")]
22892#[cfg(target_arch = "arm")]
22893#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
22894#[cfg_attr(test, assert_instr(vld3))]
22895pub unsafe fn vld3_dup_s32(a: *const i32) -> int32x2x3_t {
22896    unsafe extern "unadjusted" {
22897        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3dup.v2i32.p0")]
22898        fn _vld3_dup_s32(ptr: *const i8, size: i32) -> int32x2x3_t;
22899    }
22900    _vld3_dup_s32(a as *const i8, 4)
22901}
22902#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
22903#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_s32)"]
22904#[doc = "## Safety"]
22905#[doc = "  * Neon instrinsic unsafe"]
22906#[inline]
22907#[target_feature(enable = "neon,v7")]
22908#[cfg(target_arch = "arm")]
22909#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
22910#[cfg_attr(test, assert_instr(vld3))]
22911pub unsafe fn vld3q_dup_s32(a: *const i32) -> int32x4x3_t {
22912    unsafe extern "unadjusted" {
22913        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3dup.v4i32.p0")]
22914        fn _vld3q_dup_s32(ptr: *const i8, size: i32) -> int32x4x3_t;
22915    }
22916    _vld3q_dup_s32(a as *const i8, 4)
22917}
22918#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
22919#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_p64)"]
22920#[doc = "## Safety"]
22921#[doc = "  * Neon instrinsic unsafe"]
22922#[inline]
22923#[target_feature(enable = "neon,aes")]
22924#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
22925#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
22926#[cfg_attr(
22927    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22928    assert_instr(ld3r)
22929)]
22930#[cfg_attr(
22931    not(target_arch = "arm"),
22932    stable(feature = "neon_intrinsics", since = "1.59.0")
22933)]
22934#[cfg_attr(
22935    target_arch = "arm",
22936    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22937)]
22938pub unsafe fn vld3_dup_p64(a: *const p64) -> poly64x1x3_t {
22939    transmute(vld3_dup_s64(transmute(a)))
22940}
22941#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
22942#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_s64)"]
22943#[doc = "## Safety"]
22944#[doc = "  * Neon instrinsic unsafe"]
22945#[inline]
22946#[cfg(target_arch = "arm")]
22947#[target_feature(enable = "neon,v7")]
22948#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
22949#[cfg_attr(test, assert_instr(nop))]
22950pub unsafe fn vld3_dup_s64(a: *const i64) -> int64x1x3_t {
22951    unsafe extern "unadjusted" {
22952        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3dup.v1i64.p0")]
22953        fn _vld3_dup_s64(ptr: *const i8, size: i32) -> int64x1x3_t;
22954    }
22955    _vld3_dup_s64(a as *const i8, 8)
22956}
22957#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
22958#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_u64)"]
22959#[doc = "## Safety"]
22960#[doc = "  * Neon instrinsic unsafe"]
22961#[inline]
22962#[target_feature(enable = "neon")]
22963#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22964#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
22965#[cfg_attr(
22966    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22967    assert_instr(ld3r)
22968)]
22969#[cfg_attr(
22970    not(target_arch = "arm"),
22971    stable(feature = "neon_intrinsics", since = "1.59.0")
22972)]
22973#[cfg_attr(
22974    target_arch = "arm",
22975    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22976)]
22977pub unsafe fn vld3_dup_u64(a: *const u64) -> uint64x1x3_t {
22978    transmute(vld3_dup_s64(transmute(a)))
22979}
22980#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
22981#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_u8)"]
22982#[doc = "## Safety"]
22983#[doc = "  * Neon instrinsic unsafe"]
22984#[inline]
22985#[cfg(target_endian = "little")]
22986#[target_feature(enable = "neon")]
22987#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22988#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
22989#[cfg_attr(
22990    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22991    assert_instr(ld3r)
22992)]
22993#[cfg_attr(
22994    not(target_arch = "arm"),
22995    stable(feature = "neon_intrinsics", since = "1.59.0")
22996)]
22997#[cfg_attr(
22998    target_arch = "arm",
22999    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23000)]
23001pub unsafe fn vld3_dup_u8(a: *const u8) -> uint8x8x3_t {
23002    transmute(vld3_dup_s8(transmute(a)))
23003}
23004#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
23005#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_u8)"]
23006#[doc = "## Safety"]
23007#[doc = "  * Neon instrinsic unsafe"]
23008#[inline]
23009#[cfg(target_endian = "big")]
23010#[target_feature(enable = "neon")]
23011#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23012#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
23013#[cfg_attr(
23014    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23015    assert_instr(ld3r)
23016)]
23017#[cfg_attr(
23018    not(target_arch = "arm"),
23019    stable(feature = "neon_intrinsics", since = "1.59.0")
23020)]
23021#[cfg_attr(
23022    target_arch = "arm",
23023    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23024)]
23025pub unsafe fn vld3_dup_u8(a: *const u8) -> uint8x8x3_t {
23026    let mut ret_val: uint8x8x3_t = transmute(vld3_dup_s8(transmute(a)));
23027    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
23028    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
23029    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
23030    ret_val
23031}
23032#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
23033#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_u8)"]
23034#[doc = "## Safety"]
23035#[doc = "  * Neon instrinsic unsafe"]
23036#[inline]
23037#[cfg(target_endian = "little")]
23038#[target_feature(enable = "neon")]
23039#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23040#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
23041#[cfg_attr(
23042    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23043    assert_instr(ld3r)
23044)]
23045#[cfg_attr(
23046    not(target_arch = "arm"),
23047    stable(feature = "neon_intrinsics", since = "1.59.0")
23048)]
23049#[cfg_attr(
23050    target_arch = "arm",
23051    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23052)]
23053pub unsafe fn vld3q_dup_u8(a: *const u8) -> uint8x16x3_t {
23054    transmute(vld3q_dup_s8(transmute(a)))
23055}
23056#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
23057#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_u8)"]
23058#[doc = "## Safety"]
23059#[doc = "  * Neon instrinsic unsafe"]
23060#[inline]
23061#[cfg(target_endian = "big")]
23062#[target_feature(enable = "neon")]
23063#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23064#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
23065#[cfg_attr(
23066    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23067    assert_instr(ld3r)
23068)]
23069#[cfg_attr(
23070    not(target_arch = "arm"),
23071    stable(feature = "neon_intrinsics", since = "1.59.0")
23072)]
23073#[cfg_attr(
23074    target_arch = "arm",
23075    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23076)]
23077pub unsafe fn vld3q_dup_u8(a: *const u8) -> uint8x16x3_t {
23078    let mut ret_val: uint8x16x3_t = transmute(vld3q_dup_s8(transmute(a)));
23079    ret_val.0 = unsafe {
23080        simd_shuffle!(
23081            ret_val.0,
23082            ret_val.0,
23083            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
23084        )
23085    };
23086    ret_val.1 = unsafe {
23087        simd_shuffle!(
23088            ret_val.1,
23089            ret_val.1,
23090            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
23091        )
23092    };
23093    ret_val.2 = unsafe {
23094        simd_shuffle!(
23095            ret_val.2,
23096            ret_val.2,
23097            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
23098        )
23099    };
23100    ret_val
23101}
23102#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
23103#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_u16)"]
23104#[doc = "## Safety"]
23105#[doc = "  * Neon instrinsic unsafe"]
23106#[inline]
23107#[cfg(target_endian = "little")]
23108#[target_feature(enable = "neon")]
23109#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23110#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
23111#[cfg_attr(
23112    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23113    assert_instr(ld3r)
23114)]
23115#[cfg_attr(
23116    not(target_arch = "arm"),
23117    stable(feature = "neon_intrinsics", since = "1.59.0")
23118)]
23119#[cfg_attr(
23120    target_arch = "arm",
23121    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23122)]
23123pub unsafe fn vld3_dup_u16(a: *const u16) -> uint16x4x3_t {
23124    transmute(vld3_dup_s16(transmute(a)))
23125}
23126#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
23127#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_u16)"]
23128#[doc = "## Safety"]
23129#[doc = "  * Neon instrinsic unsafe"]
23130#[inline]
23131#[cfg(target_endian = "big")]
23132#[target_feature(enable = "neon")]
23133#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23134#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
23135#[cfg_attr(
23136    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23137    assert_instr(ld3r)
23138)]
23139#[cfg_attr(
23140    not(target_arch = "arm"),
23141    stable(feature = "neon_intrinsics", since = "1.59.0")
23142)]
23143#[cfg_attr(
23144    target_arch = "arm",
23145    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23146)]
23147pub unsafe fn vld3_dup_u16(a: *const u16) -> uint16x4x3_t {
23148    let mut ret_val: uint16x4x3_t = transmute(vld3_dup_s16(transmute(a)));
23149    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
23150    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
23151    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [3, 2, 1, 0]) };
23152    ret_val
23153}
23154#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
23155#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_u16)"]
23156#[doc = "## Safety"]
23157#[doc = "  * Neon instrinsic unsafe"]
23158#[inline]
23159#[cfg(target_endian = "little")]
23160#[target_feature(enable = "neon")]
23161#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23162#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
23163#[cfg_attr(
23164    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23165    assert_instr(ld3r)
23166)]
23167#[cfg_attr(
23168    not(target_arch = "arm"),
23169    stable(feature = "neon_intrinsics", since = "1.59.0")
23170)]
23171#[cfg_attr(
23172    target_arch = "arm",
23173    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23174)]
23175pub unsafe fn vld3q_dup_u16(a: *const u16) -> uint16x8x3_t {
23176    transmute(vld3q_dup_s16(transmute(a)))
23177}
23178#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
23179#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_u16)"]
23180#[doc = "## Safety"]
23181#[doc = "  * Neon instrinsic unsafe"]
23182#[inline]
23183#[cfg(target_endian = "big")]
23184#[target_feature(enable = "neon")]
23185#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23186#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
23187#[cfg_attr(
23188    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23189    assert_instr(ld3r)
23190)]
23191#[cfg_attr(
23192    not(target_arch = "arm"),
23193    stable(feature = "neon_intrinsics", since = "1.59.0")
23194)]
23195#[cfg_attr(
23196    target_arch = "arm",
23197    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23198)]
23199pub unsafe fn vld3q_dup_u16(a: *const u16) -> uint16x8x3_t {
23200    let mut ret_val: uint16x8x3_t = transmute(vld3q_dup_s16(transmute(a)));
23201    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
23202    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
23203    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
23204    ret_val
23205}
23206#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
23207#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_u32)"]
23208#[doc = "## Safety"]
23209#[doc = "  * Neon instrinsic unsafe"]
23210#[inline]
23211#[cfg(target_endian = "little")]
23212#[target_feature(enable = "neon")]
23213#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23214#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
23215#[cfg_attr(
23216    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23217    assert_instr(ld3r)
23218)]
23219#[cfg_attr(
23220    not(target_arch = "arm"),
23221    stable(feature = "neon_intrinsics", since = "1.59.0")
23222)]
23223#[cfg_attr(
23224    target_arch = "arm",
23225    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23226)]
23227pub unsafe fn vld3_dup_u32(a: *const u32) -> uint32x2x3_t {
23228    transmute(vld3_dup_s32(transmute(a)))
23229}
23230#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
23231#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_u32)"]
23232#[doc = "## Safety"]
23233#[doc = "  * Neon instrinsic unsafe"]
23234#[inline]
23235#[cfg(target_endian = "big")]
23236#[target_feature(enable = "neon")]
23237#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23238#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
23239#[cfg_attr(
23240    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23241    assert_instr(ld3r)
23242)]
23243#[cfg_attr(
23244    not(target_arch = "arm"),
23245    stable(feature = "neon_intrinsics", since = "1.59.0")
23246)]
23247#[cfg_attr(
23248    target_arch = "arm",
23249    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23250)]
23251pub unsafe fn vld3_dup_u32(a: *const u32) -> uint32x2x3_t {
23252    let mut ret_val: uint32x2x3_t = transmute(vld3_dup_s32(transmute(a)));
23253    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [1, 0]) };
23254    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [1, 0]) };
23255    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [1, 0]) };
23256    ret_val
23257}
23258#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
23259#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_u32)"]
23260#[doc = "## Safety"]
23261#[doc = "  * Neon instrinsic unsafe"]
23262#[inline]
23263#[cfg(target_endian = "little")]
23264#[target_feature(enable = "neon")]
23265#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23266#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
23267#[cfg_attr(
23268    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23269    assert_instr(ld3r)
23270)]
23271#[cfg_attr(
23272    not(target_arch = "arm"),
23273    stable(feature = "neon_intrinsics", since = "1.59.0")
23274)]
23275#[cfg_attr(
23276    target_arch = "arm",
23277    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23278)]
23279pub unsafe fn vld3q_dup_u32(a: *const u32) -> uint32x4x3_t {
23280    transmute(vld3q_dup_s32(transmute(a)))
23281}
23282#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
23283#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_u32)"]
23284#[doc = "## Safety"]
23285#[doc = "  * Neon instrinsic unsafe"]
23286#[inline]
23287#[cfg(target_endian = "big")]
23288#[target_feature(enable = "neon")]
23289#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23290#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
23291#[cfg_attr(
23292    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23293    assert_instr(ld3r)
23294)]
23295#[cfg_attr(
23296    not(target_arch = "arm"),
23297    stable(feature = "neon_intrinsics", since = "1.59.0")
23298)]
23299#[cfg_attr(
23300    target_arch = "arm",
23301    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23302)]
23303pub unsafe fn vld3q_dup_u32(a: *const u32) -> uint32x4x3_t {
23304    let mut ret_val: uint32x4x3_t = transmute(vld3q_dup_s32(transmute(a)));
23305    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
23306    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
23307    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [3, 2, 1, 0]) };
23308    ret_val
23309}
23310#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
23311#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_p8)"]
23312#[doc = "## Safety"]
23313#[doc = "  * Neon instrinsic unsafe"]
23314#[inline]
23315#[cfg(target_endian = "little")]
23316#[target_feature(enable = "neon")]
23317#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23318#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
23319#[cfg_attr(
23320    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23321    assert_instr(ld3r)
23322)]
23323#[cfg_attr(
23324    not(target_arch = "arm"),
23325    stable(feature = "neon_intrinsics", since = "1.59.0")
23326)]
23327#[cfg_attr(
23328    target_arch = "arm",
23329    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23330)]
23331pub unsafe fn vld3_dup_p8(a: *const p8) -> poly8x8x3_t {
23332    transmute(vld3_dup_s8(transmute(a)))
23333}
23334#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
23335#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_p8)"]
23336#[doc = "## Safety"]
23337#[doc = "  * Neon instrinsic unsafe"]
23338#[inline]
23339#[cfg(target_endian = "big")]
23340#[target_feature(enable = "neon")]
23341#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23342#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
23343#[cfg_attr(
23344    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23345    assert_instr(ld3r)
23346)]
23347#[cfg_attr(
23348    not(target_arch = "arm"),
23349    stable(feature = "neon_intrinsics", since = "1.59.0")
23350)]
23351#[cfg_attr(
23352    target_arch = "arm",
23353    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23354)]
23355pub unsafe fn vld3_dup_p8(a: *const p8) -> poly8x8x3_t {
23356    let mut ret_val: poly8x8x3_t = transmute(vld3_dup_s8(transmute(a)));
23357    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
23358    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
23359    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
23360    ret_val
23361}
23362#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
23363#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_p8)"]
23364#[doc = "## Safety"]
23365#[doc = "  * Neon instrinsic unsafe"]
23366#[inline]
23367#[cfg(target_endian = "little")]
23368#[target_feature(enable = "neon")]
23369#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23370#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
23371#[cfg_attr(
23372    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23373    assert_instr(ld3r)
23374)]
23375#[cfg_attr(
23376    not(target_arch = "arm"),
23377    stable(feature = "neon_intrinsics", since = "1.59.0")
23378)]
23379#[cfg_attr(
23380    target_arch = "arm",
23381    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23382)]
23383pub unsafe fn vld3q_dup_p8(a: *const p8) -> poly8x16x3_t {
23384    transmute(vld3q_dup_s8(transmute(a)))
23385}
23386#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
23387#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_p8)"]
23388#[doc = "## Safety"]
23389#[doc = "  * Neon instrinsic unsafe"]
23390#[inline]
23391#[cfg(target_endian = "big")]
23392#[target_feature(enable = "neon")]
23393#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23394#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
23395#[cfg_attr(
23396    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23397    assert_instr(ld3r)
23398)]
23399#[cfg_attr(
23400    not(target_arch = "arm"),
23401    stable(feature = "neon_intrinsics", since = "1.59.0")
23402)]
23403#[cfg_attr(
23404    target_arch = "arm",
23405    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23406)]
23407pub unsafe fn vld3q_dup_p8(a: *const p8) -> poly8x16x3_t {
23408    let mut ret_val: poly8x16x3_t = transmute(vld3q_dup_s8(transmute(a)));
23409    ret_val.0 = unsafe {
23410        simd_shuffle!(
23411            ret_val.0,
23412            ret_val.0,
23413            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
23414        )
23415    };
23416    ret_val.1 = unsafe {
23417        simd_shuffle!(
23418            ret_val.1,
23419            ret_val.1,
23420            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
23421        )
23422    };
23423    ret_val.2 = unsafe {
23424        simd_shuffle!(
23425            ret_val.2,
23426            ret_val.2,
23427            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
23428        )
23429    };
23430    ret_val
23431}
23432#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
23433#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_p16)"]
23434#[doc = "## Safety"]
23435#[doc = "  * Neon instrinsic unsafe"]
23436#[inline]
23437#[cfg(target_endian = "little")]
23438#[target_feature(enable = "neon")]
23439#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23440#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
23441#[cfg_attr(
23442    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23443    assert_instr(ld3r)
23444)]
23445#[cfg_attr(
23446    not(target_arch = "arm"),
23447    stable(feature = "neon_intrinsics", since = "1.59.0")
23448)]
23449#[cfg_attr(
23450    target_arch = "arm",
23451    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23452)]
23453pub unsafe fn vld3_dup_p16(a: *const p16) -> poly16x4x3_t {
23454    transmute(vld3_dup_s16(transmute(a)))
23455}
23456#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
23457#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_p16)"]
23458#[doc = "## Safety"]
23459#[doc = "  * Neon instrinsic unsafe"]
23460#[inline]
23461#[cfg(target_endian = "big")]
23462#[target_feature(enable = "neon")]
23463#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23464#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
23465#[cfg_attr(
23466    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23467    assert_instr(ld3r)
23468)]
23469#[cfg_attr(
23470    not(target_arch = "arm"),
23471    stable(feature = "neon_intrinsics", since = "1.59.0")
23472)]
23473#[cfg_attr(
23474    target_arch = "arm",
23475    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23476)]
23477pub unsafe fn vld3_dup_p16(a: *const p16) -> poly16x4x3_t {
23478    let mut ret_val: poly16x4x3_t = transmute(vld3_dup_s16(transmute(a)));
23479    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
23480    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
23481    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [3, 2, 1, 0]) };
23482    ret_val
23483}
23484#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
23485#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_p16)"]
23486#[doc = "## Safety"]
23487#[doc = "  * Neon instrinsic unsafe"]
23488#[inline]
23489#[cfg(target_endian = "little")]
23490#[target_feature(enable = "neon")]
23491#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23492#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
23493#[cfg_attr(
23494    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23495    assert_instr(ld3r)
23496)]
23497#[cfg_attr(
23498    not(target_arch = "arm"),
23499    stable(feature = "neon_intrinsics", since = "1.59.0")
23500)]
23501#[cfg_attr(
23502    target_arch = "arm",
23503    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23504)]
23505pub unsafe fn vld3q_dup_p16(a: *const p16) -> poly16x8x3_t {
23506    transmute(vld3q_dup_s16(transmute(a)))
23507}
23508#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
23509#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_p16)"]
23510#[doc = "## Safety"]
23511#[doc = "  * Neon instrinsic unsafe"]
23512#[inline]
23513#[cfg(target_endian = "big")]
23514#[target_feature(enable = "neon")]
23515#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23516#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
23517#[cfg_attr(
23518    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23519    assert_instr(ld3r)
23520)]
23521#[cfg_attr(
23522    not(target_arch = "arm"),
23523    stable(feature = "neon_intrinsics", since = "1.59.0")
23524)]
23525#[cfg_attr(
23526    target_arch = "arm",
23527    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23528)]
23529pub unsafe fn vld3q_dup_p16(a: *const p16) -> poly16x8x3_t {
23530    let mut ret_val: poly16x8x3_t = transmute(vld3q_dup_s16(transmute(a)));
23531    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
23532    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
23533    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
23534    ret_val
23535}
23536#[doc = "Load single 3-element structure and replicate to all lanes of two registers"]
23537#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_f16)"]
23538#[doc = "## Safety"]
23539#[doc = "  * Neon instrinsic unsafe"]
23540#[inline]
23541#[target_feature(enable = "neon")]
23542#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23543#[cfg(target_arch = "arm")]
23544#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
23545#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
23546#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
23547#[cfg(not(target_arch = "arm64ec"))]
23548pub unsafe fn vld3_f16(a: *const f16) -> float16x4x3_t {
23549    unsafe extern "unadjusted" {
23550        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3.v4f16.p0")]
23551        fn _vld3_f16(ptr: *const f16, size: i32) -> float16x4x3_t;
23552    }
23553    _vld3_f16(a as _, 2)
23554}
23555#[doc = "Load single 3-element structure and replicate to all lanes of two registers"]
23556#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_f16)"]
23557#[doc = "## Safety"]
23558#[doc = "  * Neon instrinsic unsafe"]
23559#[inline]
23560#[target_feature(enable = "neon")]
23561#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23562#[cfg(target_arch = "arm")]
23563#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
23564#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
23565#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
23566#[cfg(not(target_arch = "arm64ec"))]
23567pub unsafe fn vld3q_f16(a: *const f16) -> float16x8x3_t {
23568    unsafe extern "unadjusted" {
23569        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3.v8f16.p0")]
23570        fn _vld3q_f16(ptr: *const f16, size: i32) -> float16x8x3_t;
23571    }
23572    _vld3q_f16(a as _, 2)
23573}
23574#[doc = "Load single 3-element structure and replicate to all lanes of two registers"]
23575#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_f16)"]
23576#[doc = "## Safety"]
23577#[doc = "  * Neon instrinsic unsafe"]
23578#[inline]
23579#[target_feature(enable = "neon")]
23580#[cfg(not(target_arch = "arm"))]
23581#[cfg_attr(
23582    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23583    assert_instr(ld3)
23584)]
23585#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
23586#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
23587#[cfg(not(target_arch = "arm64ec"))]
23588pub unsafe fn vld3_f16(a: *const f16) -> float16x4x3_t {
23589    unsafe extern "unadjusted" {
23590        #[cfg_attr(
23591            any(target_arch = "aarch64", target_arch = "arm64ec"),
23592            link_name = "llvm.aarch64.neon.ld3.v4f16.p0"
23593        )]
23594        fn _vld3_f16(ptr: *const f16) -> float16x4x3_t;
23595    }
23596    _vld3_f16(a as _)
23597}
23598#[doc = "Load single 3-element structure and replicate to all lanes of two registers"]
23599#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_f16)"]
23600#[doc = "## Safety"]
23601#[doc = "  * Neon instrinsic unsafe"]
23602#[inline]
23603#[target_feature(enable = "neon")]
23604#[cfg(not(target_arch = "arm"))]
23605#[cfg_attr(
23606    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23607    assert_instr(ld3)
23608)]
23609#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
23610#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
23611#[cfg(not(target_arch = "arm64ec"))]
23612pub unsafe fn vld3q_f16(a: *const f16) -> float16x8x3_t {
23613    unsafe extern "unadjusted" {
23614        #[cfg_attr(
23615            any(target_arch = "aarch64", target_arch = "arm64ec"),
23616            link_name = "llvm.aarch64.neon.ld3.v8f16.p0"
23617        )]
23618        fn _vld3q_f16(ptr: *const f16) -> float16x8x3_t;
23619    }
23620    _vld3q_f16(a as _)
23621}
23622#[doc = "Load multiple 3-element structures to three registers"]
23623#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_f32)"]
23624#[doc = "## Safety"]
23625#[doc = "  * Neon instrinsic unsafe"]
23626#[inline]
23627#[target_feature(enable = "neon")]
23628#[stable(feature = "neon_intrinsics", since = "1.59.0")]
23629#[cfg(not(target_arch = "arm"))]
23630#[cfg_attr(test, assert_instr(ld3))]
23631pub unsafe fn vld3_f32(a: *const f32) -> float32x2x3_t {
23632    unsafe extern "unadjusted" {
23633        #[cfg_attr(
23634            any(target_arch = "aarch64", target_arch = "arm64ec"),
23635            link_name = "llvm.aarch64.neon.ld3.v2f32.p0"
23636        )]
23637        fn _vld3_f32(ptr: *const float32x2_t) -> float32x2x3_t;
23638    }
23639    _vld3_f32(a as _)
23640}
23641#[doc = "Load multiple 3-element structures to three registers"]
23642#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_f32)"]
23643#[doc = "## Safety"]
23644#[doc = "  * Neon instrinsic unsafe"]
23645#[inline]
23646#[target_feature(enable = "neon")]
23647#[stable(feature = "neon_intrinsics", since = "1.59.0")]
23648#[cfg(not(target_arch = "arm"))]
23649#[cfg_attr(test, assert_instr(ld3))]
23650pub unsafe fn vld3q_f32(a: *const f32) -> float32x4x3_t {
23651    unsafe extern "unadjusted" {
23652        #[cfg_attr(
23653            any(target_arch = "aarch64", target_arch = "arm64ec"),
23654            link_name = "llvm.aarch64.neon.ld3.v4f32.p0"
23655        )]
23656        fn _vld3q_f32(ptr: *const float32x4_t) -> float32x4x3_t;
23657    }
23658    _vld3q_f32(a as _)
23659}
23660#[doc = "Load multiple 3-element structures to three registers"]
23661#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_s8)"]
23662#[doc = "## Safety"]
23663#[doc = "  * Neon instrinsic unsafe"]
23664#[inline]
23665#[target_feature(enable = "neon")]
23666#[stable(feature = "neon_intrinsics", since = "1.59.0")]
23667#[cfg(not(target_arch = "arm"))]
23668#[cfg_attr(test, assert_instr(ld3))]
23669pub unsafe fn vld3_s8(a: *const i8) -> int8x8x3_t {
23670    unsafe extern "unadjusted" {
23671        #[cfg_attr(
23672            any(target_arch = "aarch64", target_arch = "arm64ec"),
23673            link_name = "llvm.aarch64.neon.ld3.v8i8.p0"
23674        )]
23675        fn _vld3_s8(ptr: *const int8x8_t) -> int8x8x3_t;
23676    }
23677    _vld3_s8(a as _)
23678}
23679#[doc = "Load multiple 3-element structures to three registers"]
23680#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_s8)"]
23681#[doc = "## Safety"]
23682#[doc = "  * Neon instrinsic unsafe"]
23683#[inline]
23684#[target_feature(enable = "neon")]
23685#[stable(feature = "neon_intrinsics", since = "1.59.0")]
23686#[cfg(not(target_arch = "arm"))]
23687#[cfg_attr(test, assert_instr(ld3))]
23688pub unsafe fn vld3q_s8(a: *const i8) -> int8x16x3_t {
23689    unsafe extern "unadjusted" {
23690        #[cfg_attr(
23691            any(target_arch = "aarch64", target_arch = "arm64ec"),
23692            link_name = "llvm.aarch64.neon.ld3.v16i8.p0"
23693        )]
23694        fn _vld3q_s8(ptr: *const int8x16_t) -> int8x16x3_t;
23695    }
23696    _vld3q_s8(a as _)
23697}
23698#[doc = "Load multiple 3-element structures to three registers"]
23699#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_s16)"]
23700#[doc = "## Safety"]
23701#[doc = "  * Neon instrinsic unsafe"]
23702#[inline]
23703#[target_feature(enable = "neon")]
23704#[stable(feature = "neon_intrinsics", since = "1.59.0")]
23705#[cfg(not(target_arch = "arm"))]
23706#[cfg_attr(test, assert_instr(ld3))]
23707pub unsafe fn vld3_s16(a: *const i16) -> int16x4x3_t {
23708    unsafe extern "unadjusted" {
23709        #[cfg_attr(
23710            any(target_arch = "aarch64", target_arch = "arm64ec"),
23711            link_name = "llvm.aarch64.neon.ld3.v4i16.p0"
23712        )]
23713        fn _vld3_s16(ptr: *const int16x4_t) -> int16x4x3_t;
23714    }
23715    _vld3_s16(a as _)
23716}
23717#[doc = "Load multiple 3-element structures to three registers"]
23718#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_s16)"]
23719#[doc = "## Safety"]
23720#[doc = "  * Neon instrinsic unsafe"]
23721#[inline]
23722#[target_feature(enable = "neon")]
23723#[stable(feature = "neon_intrinsics", since = "1.59.0")]
23724#[cfg(not(target_arch = "arm"))]
23725#[cfg_attr(test, assert_instr(ld3))]
23726pub unsafe fn vld3q_s16(a: *const i16) -> int16x8x3_t {
23727    unsafe extern "unadjusted" {
23728        #[cfg_attr(
23729            any(target_arch = "aarch64", target_arch = "arm64ec"),
23730            link_name = "llvm.aarch64.neon.ld3.v8i16.p0"
23731        )]
23732        fn _vld3q_s16(ptr: *const int16x8_t) -> int16x8x3_t;
23733    }
23734    _vld3q_s16(a as _)
23735}
23736#[doc = "Load multiple 3-element structures to three registers"]
23737#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_s32)"]
23738#[doc = "## Safety"]
23739#[doc = "  * Neon instrinsic unsafe"]
23740#[inline]
23741#[target_feature(enable = "neon")]
23742#[stable(feature = "neon_intrinsics", since = "1.59.0")]
23743#[cfg(not(target_arch = "arm"))]
23744#[cfg_attr(test, assert_instr(ld3))]
23745pub unsafe fn vld3_s32(a: *const i32) -> int32x2x3_t {
23746    unsafe extern "unadjusted" {
23747        #[cfg_attr(
23748            any(target_arch = "aarch64", target_arch = "arm64ec"),
23749            link_name = "llvm.aarch64.neon.ld3.v2i32.p0"
23750        )]
23751        fn _vld3_s32(ptr: *const int32x2_t) -> int32x2x3_t;
23752    }
23753    _vld3_s32(a as _)
23754}
23755#[doc = "Load multiple 3-element structures to three registers"]
23756#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_s32)"]
23757#[doc = "## Safety"]
23758#[doc = "  * Neon instrinsic unsafe"]
23759#[inline]
23760#[target_feature(enable = "neon")]
23761#[stable(feature = "neon_intrinsics", since = "1.59.0")]
23762#[cfg(not(target_arch = "arm"))]
23763#[cfg_attr(test, assert_instr(ld3))]
23764pub unsafe fn vld3q_s32(a: *const i32) -> int32x4x3_t {
23765    unsafe extern "unadjusted" {
23766        #[cfg_attr(
23767            any(target_arch = "aarch64", target_arch = "arm64ec"),
23768            link_name = "llvm.aarch64.neon.ld3.v4i32.p0"
23769        )]
23770        fn _vld3q_s32(ptr: *const int32x4_t) -> int32x4x3_t;
23771    }
23772    _vld3q_s32(a as _)
23773}
23774#[doc = "Load multiple 3-element structures to three registers"]
23775#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_f32)"]
23776#[doc = "## Safety"]
23777#[doc = "  * Neon instrinsic unsafe"]
23778#[inline]
23779#[cfg(target_arch = "arm")]
23780#[target_feature(enable = "neon,v7")]
23781#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
23782#[cfg_attr(test, assert_instr(vld3))]
23783pub unsafe fn vld3_f32(a: *const f32) -> float32x2x3_t {
23784    unsafe extern "unadjusted" {
23785        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3.v2f32.p0")]
23786        fn _vld3_f32(ptr: *const i8, size: i32) -> float32x2x3_t;
23787    }
23788    _vld3_f32(a as *const i8, 4)
23789}
23790#[doc = "Load multiple 3-element structures to three registers"]
23791#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_f32)"]
23792#[doc = "## Safety"]
23793#[doc = "  * Neon instrinsic unsafe"]
23794#[inline]
23795#[cfg(target_arch = "arm")]
23796#[target_feature(enable = "neon,v7")]
23797#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
23798#[cfg_attr(test, assert_instr(vld3))]
23799pub unsafe fn vld3q_f32(a: *const f32) -> float32x4x3_t {
23800    unsafe extern "unadjusted" {
23801        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3.v4f32.p0")]
23802        fn _vld3q_f32(ptr: *const i8, size: i32) -> float32x4x3_t;
23803    }
23804    _vld3q_f32(a as *const i8, 4)
23805}
23806#[doc = "Load multiple 3-element structures to three registers"]
23807#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_s8)"]
23808#[doc = "## Safety"]
23809#[doc = "  * Neon instrinsic unsafe"]
23810#[inline]
23811#[cfg(target_arch = "arm")]
23812#[target_feature(enable = "neon,v7")]
23813#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
23814#[cfg_attr(test, assert_instr(vld3))]
23815pub unsafe fn vld3_s8(a: *const i8) -> int8x8x3_t {
23816    unsafe extern "unadjusted" {
23817        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3.v8i8.p0")]
23818        fn _vld3_s8(ptr: *const i8, size: i32) -> int8x8x3_t;
23819    }
23820    _vld3_s8(a as *const i8, 1)
23821}
23822#[doc = "Load multiple 3-element structures to three registers"]
23823#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_s8)"]
23824#[doc = "## Safety"]
23825#[doc = "  * Neon instrinsic unsafe"]
23826#[inline]
23827#[cfg(target_arch = "arm")]
23828#[target_feature(enable = "neon,v7")]
23829#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
23830#[cfg_attr(test, assert_instr(vld3))]
23831pub unsafe fn vld3q_s8(a: *const i8) -> int8x16x3_t {
23832    unsafe extern "unadjusted" {
23833        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3.v16i8.p0")]
23834        fn _vld3q_s8(ptr: *const i8, size: i32) -> int8x16x3_t;
23835    }
23836    _vld3q_s8(a as *const i8, 1)
23837}
23838#[doc = "Load multiple 3-element structures to three registers"]
23839#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_s16)"]
23840#[doc = "## Safety"]
23841#[doc = "  * Neon instrinsic unsafe"]
23842#[inline]
23843#[cfg(target_arch = "arm")]
23844#[target_feature(enable = "neon,v7")]
23845#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
23846#[cfg_attr(test, assert_instr(vld3))]
23847pub unsafe fn vld3_s16(a: *const i16) -> int16x4x3_t {
23848    unsafe extern "unadjusted" {
23849        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3.v4i16.p0")]
23850        fn _vld3_s16(ptr: *const i8, size: i32) -> int16x4x3_t;
23851    }
23852    _vld3_s16(a as *const i8, 2)
23853}
23854#[doc = "Load multiple 3-element structures to three registers"]
23855#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_s16)"]
23856#[doc = "## Safety"]
23857#[doc = "  * Neon instrinsic unsafe"]
23858#[inline]
23859#[cfg(target_arch = "arm")]
23860#[target_feature(enable = "neon,v7")]
23861#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
23862#[cfg_attr(test, assert_instr(vld3))]
23863pub unsafe fn vld3q_s16(a: *const i16) -> int16x8x3_t {
23864    unsafe extern "unadjusted" {
23865        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3.v8i16.p0")]
23866        fn _vld3q_s16(ptr: *const i8, size: i32) -> int16x8x3_t;
23867    }
23868    _vld3q_s16(a as *const i8, 2)
23869}
23870#[doc = "Load multiple 3-element structures to three registers"]
23871#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_s32)"]
23872#[doc = "## Safety"]
23873#[doc = "  * Neon instrinsic unsafe"]
23874#[inline]
23875#[cfg(target_arch = "arm")]
23876#[target_feature(enable = "neon,v7")]
23877#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
23878#[cfg_attr(test, assert_instr(vld3))]
23879pub unsafe fn vld3_s32(a: *const i32) -> int32x2x3_t {
23880    unsafe extern "unadjusted" {
23881        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3.v2i32.p0")]
23882        fn _vld3_s32(ptr: *const i8, size: i32) -> int32x2x3_t;
23883    }
23884    _vld3_s32(a as *const i8, 4)
23885}
23886#[doc = "Load multiple 3-element structures to three registers"]
23887#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_s32)"]
23888#[doc = "## Safety"]
23889#[doc = "  * Neon instrinsic unsafe"]
23890#[inline]
23891#[cfg(target_arch = "arm")]
23892#[target_feature(enable = "neon,v7")]
23893#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
23894#[cfg_attr(test, assert_instr(vld3))]
23895pub unsafe fn vld3q_s32(a: *const i32) -> int32x4x3_t {
23896    unsafe extern "unadjusted" {
23897        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3.v4i32.p0")]
23898        fn _vld3q_s32(ptr: *const i8, size: i32) -> int32x4x3_t;
23899    }
23900    _vld3q_s32(a as *const i8, 4)
23901}
23902#[doc = "Load multiple 3-element structures to two registers"]
23903#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_f16)"]
23904#[doc = "## Safety"]
23905#[doc = "  * Neon instrinsic unsafe"]
23906#[inline]
23907#[target_feature(enable = "neon,v7")]
23908#[cfg(target_arch = "arm")]
23909#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3, LANE = 0))]
23910#[rustc_legacy_const_generics(2)]
23911#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
23912#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
23913#[cfg(not(target_arch = "arm64ec"))]
23914pub unsafe fn vld3_lane_f16<const LANE: i32>(a: *const f16, b: float16x4x3_t) -> float16x4x3_t {
23915    static_assert_uimm_bits!(LANE, 2);
23916    unsafe extern "unadjusted" {
23917        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3lane.v4f16.p0")]
23918        fn _vld3_lane_f16(
23919            ptr: *const f16,
23920            a: float16x4_t,
23921            b: float16x4_t,
23922            c: float16x4_t,
23923            n: i32,
23924            size: i32,
23925        ) -> float16x4x3_t;
23926    }
23927    _vld3_lane_f16(a as _, b.0, b.1, b.2, LANE, 2)
23928}
23929#[doc = "Load multiple 3-element structures to two registers"]
23930#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_lane_f16)"]
23931#[doc = "## Safety"]
23932#[doc = "  * Neon instrinsic unsafe"]
23933#[inline]
23934#[target_feature(enable = "neon,v7")]
23935#[cfg(target_arch = "arm")]
23936#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3, LANE = 0))]
23937#[rustc_legacy_const_generics(2)]
23938#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
23939#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
23940#[cfg(not(target_arch = "arm64ec"))]
23941pub unsafe fn vld3q_lane_f16<const LANE: i32>(a: *const f16, b: float16x8x3_t) -> float16x8x3_t {
23942    static_assert_uimm_bits!(LANE, 3);
23943    unsafe extern "unadjusted" {
23944        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3lane.v8f16.p0")]
23945        fn _vld3q_lane_f16(
23946            ptr: *const f16,
23947            a: float16x8_t,
23948            b: float16x8_t,
23949            c: float16x8_t,
23950            n: i32,
23951            size: i32,
23952        ) -> float16x8x3_t;
23953    }
23954    _vld3q_lane_f16(a as _, b.0, b.1, b.2, LANE, 2)
23955}
23956#[doc = "Load multiple 3-element structures to two registers"]
23957#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_f16)"]
23958#[doc = "## Safety"]
23959#[doc = "  * Neon instrinsic unsafe"]
23960#[inline]
23961#[target_feature(enable = "neon")]
23962#[cfg(not(target_arch = "arm"))]
23963#[cfg_attr(
23964    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23965    assert_instr(ld3, LANE = 0)
23966)]
23967#[rustc_legacy_const_generics(2)]
23968#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
23969#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
23970#[cfg(not(target_arch = "arm64ec"))]
23971pub unsafe fn vld3_lane_f16<const LANE: i32>(a: *const f16, b: float16x4x3_t) -> float16x4x3_t {
23972    static_assert_uimm_bits!(LANE, 2);
23973    unsafe extern "unadjusted" {
23974        #[cfg_attr(
23975            any(target_arch = "aarch64", target_arch = "arm64ec"),
23976            link_name = "llvm.aarch64.neon.ld3lane.v4f16.p0"
23977        )]
23978        fn _vld3_lane_f16(
23979            a: float16x4_t,
23980            b: float16x4_t,
23981            c: float16x4_t,
23982            n: i64,
23983            ptr: *const f16,
23984        ) -> float16x4x3_t;
23985    }
23986    _vld3_lane_f16(b.0, b.1, b.2, LANE as i64, a as _)
23987}
23988#[doc = "Load multiple 3-element structures to two registers"]
23989#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_lane_f16)"]
23990#[doc = "## Safety"]
23991#[doc = "  * Neon instrinsic unsafe"]
23992#[inline]
23993#[target_feature(enable = "neon")]
23994#[cfg(not(target_arch = "arm"))]
23995#[cfg_attr(
23996    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23997    assert_instr(ld3, LANE = 0)
23998)]
23999#[rustc_legacy_const_generics(2)]
24000#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
24001#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
24002#[cfg(not(target_arch = "arm64ec"))]
24003pub unsafe fn vld3q_lane_f16<const LANE: i32>(a: *const f16, b: float16x8x3_t) -> float16x8x3_t {
24004    static_assert_uimm_bits!(LANE, 3);
24005    unsafe extern "unadjusted" {
24006        #[cfg_attr(
24007            any(target_arch = "aarch64", target_arch = "arm64ec"),
24008            link_name = "llvm.aarch64.neon.ld3lane.v8f16.p0"
24009        )]
24010        fn _vld3q_lane_f16(
24011            a: float16x8_t,
24012            b: float16x8_t,
24013            c: float16x8_t,
24014            n: i64,
24015            ptr: *const f16,
24016        ) -> float16x8x3_t;
24017    }
24018    _vld3q_lane_f16(b.0, b.1, b.2, LANE as i64, a as _)
24019}
24020#[doc = "Load multiple 3-element structures to three registers"]
24021#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_f32)"]
24022#[doc = "## Safety"]
24023#[doc = "  * Neon instrinsic unsafe"]
24024#[inline]
24025#[target_feature(enable = "neon")]
24026#[cfg(not(target_arch = "arm"))]
24027#[cfg_attr(test, assert_instr(ld3, LANE = 0))]
24028#[rustc_legacy_const_generics(2)]
24029#[stable(feature = "neon_intrinsics", since = "1.59.0")]
24030pub unsafe fn vld3_lane_f32<const LANE: i32>(a: *const f32, b: float32x2x3_t) -> float32x2x3_t {
24031    static_assert_uimm_bits!(LANE, 1);
24032    unsafe extern "unadjusted" {
24033        #[cfg_attr(
24034            any(target_arch = "aarch64", target_arch = "arm64ec"),
24035            link_name = "llvm.aarch64.neon.ld3lane.v2f32.p0"
24036        )]
24037        fn _vld3_lane_f32(
24038            a: float32x2_t,
24039            b: float32x2_t,
24040            c: float32x2_t,
24041            n: i64,
24042            ptr: *const i8,
24043        ) -> float32x2x3_t;
24044    }
24045    _vld3_lane_f32(b.0, b.1, b.2, LANE as i64, a as _)
24046}
24047#[doc = "Load multiple 3-element structures to three registers"]
24048#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_lane_f32)"]
24049#[doc = "## Safety"]
24050#[doc = "  * Neon instrinsic unsafe"]
24051#[inline]
24052#[target_feature(enable = "neon")]
24053#[cfg(not(target_arch = "arm"))]
24054#[cfg_attr(test, assert_instr(ld3, LANE = 0))]
24055#[rustc_legacy_const_generics(2)]
24056#[stable(feature = "neon_intrinsics", since = "1.59.0")]
24057pub unsafe fn vld3q_lane_f32<const LANE: i32>(a: *const f32, b: float32x4x3_t) -> float32x4x3_t {
24058    static_assert_uimm_bits!(LANE, 2);
24059    unsafe extern "unadjusted" {
24060        #[cfg_attr(
24061            any(target_arch = "aarch64", target_arch = "arm64ec"),
24062            link_name = "llvm.aarch64.neon.ld3lane.v4f32.p0"
24063        )]
24064        fn _vld3q_lane_f32(
24065            a: float32x4_t,
24066            b: float32x4_t,
24067            c: float32x4_t,
24068            n: i64,
24069            ptr: *const i8,
24070        ) -> float32x4x3_t;
24071    }
24072    _vld3q_lane_f32(b.0, b.1, b.2, LANE as i64, a as _)
24073}
24074#[doc = "Load multiple 3-element structures to three registers"]
24075#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_f32)"]
24076#[doc = "## Safety"]
24077#[doc = "  * Neon instrinsic unsafe"]
24078#[inline]
24079#[cfg(target_arch = "arm")]
24080#[target_feature(enable = "neon,v7")]
24081#[cfg_attr(test, assert_instr(vld3, LANE = 0))]
24082#[rustc_legacy_const_generics(2)]
24083#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
24084pub unsafe fn vld3_lane_f32<const LANE: i32>(a: *const f32, b: float32x2x3_t) -> float32x2x3_t {
24085    static_assert_uimm_bits!(LANE, 1);
24086    unsafe extern "unadjusted" {
24087        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3lane.v2f32.p0")]
24088        fn _vld3_lane_f32(
24089            ptr: *const i8,
24090            a: float32x2_t,
24091            b: float32x2_t,
24092            c: float32x2_t,
24093            n: i32,
24094            size: i32,
24095        ) -> float32x2x3_t;
24096    }
24097    _vld3_lane_f32(a as _, b.0, b.1, b.2, LANE, 4)
24098}
24099#[doc = "Load multiple 3-element structures to two registers"]
24100#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_s8)"]
24101#[doc = "## Safety"]
24102#[doc = "  * Neon instrinsic unsafe"]
24103#[inline]
24104#[target_feature(enable = "neon")]
24105#[cfg(not(target_arch = "arm"))]
24106#[cfg_attr(test, assert_instr(ld3, LANE = 0))]
24107#[rustc_legacy_const_generics(2)]
24108#[stable(feature = "neon_intrinsics", since = "1.59.0")]
24109pub unsafe fn vld3_lane_s8<const LANE: i32>(a: *const i8, b: int8x8x3_t) -> int8x8x3_t {
24110    static_assert_uimm_bits!(LANE, 3);
24111    unsafe extern "unadjusted" {
24112        #[cfg_attr(
24113            any(target_arch = "aarch64", target_arch = "arm64ec"),
24114            link_name = "llvm.aarch64.neon.ld3lane.v8i8.p0"
24115        )]
24116        fn _vld3_lane_s8(
24117            a: int8x8_t,
24118            b: int8x8_t,
24119            c: int8x8_t,
24120            n: i64,
24121            ptr: *const i8,
24122        ) -> int8x8x3_t;
24123    }
24124    _vld3_lane_s8(b.0, b.1, b.2, LANE as i64, a as _)
24125}
24126#[doc = "Load multiple 3-element structures to two registers"]
24127#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_s16)"]
24128#[doc = "## Safety"]
24129#[doc = "  * Neon instrinsic unsafe"]
24130#[inline]
24131#[target_feature(enable = "neon")]
24132#[cfg(not(target_arch = "arm"))]
24133#[cfg_attr(test, assert_instr(ld3, LANE = 0))]
24134#[rustc_legacy_const_generics(2)]
24135#[stable(feature = "neon_intrinsics", since = "1.59.0")]
24136pub unsafe fn vld3_lane_s16<const LANE: i32>(a: *const i16, b: int16x4x3_t) -> int16x4x3_t {
24137    static_assert_uimm_bits!(LANE, 2);
24138    unsafe extern "unadjusted" {
24139        #[cfg_attr(
24140            any(target_arch = "aarch64", target_arch = "arm64ec"),
24141            link_name = "llvm.aarch64.neon.ld3lane.v4i16.p0"
24142        )]
24143        fn _vld3_lane_s16(
24144            a: int16x4_t,
24145            b: int16x4_t,
24146            c: int16x4_t,
24147            n: i64,
24148            ptr: *const i8,
24149        ) -> int16x4x3_t;
24150    }
24151    _vld3_lane_s16(b.0, b.1, b.2, LANE as i64, a as _)
24152}
24153#[doc = "Load multiple 3-element structures to two registers"]
24154#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_lane_s16)"]
24155#[doc = "## Safety"]
24156#[doc = "  * Neon instrinsic unsafe"]
24157#[inline]
24158#[target_feature(enable = "neon")]
24159#[cfg(not(target_arch = "arm"))]
24160#[cfg_attr(test, assert_instr(ld3, LANE = 0))]
24161#[rustc_legacy_const_generics(2)]
24162#[stable(feature = "neon_intrinsics", since = "1.59.0")]
24163pub unsafe fn vld3q_lane_s16<const LANE: i32>(a: *const i16, b: int16x8x3_t) -> int16x8x3_t {
24164    static_assert_uimm_bits!(LANE, 4);
24165    unsafe extern "unadjusted" {
24166        #[cfg_attr(
24167            any(target_arch = "aarch64", target_arch = "arm64ec"),
24168            link_name = "llvm.aarch64.neon.ld3lane.v8i16.p0"
24169        )]
24170        fn _vld3q_lane_s16(
24171            a: int16x8_t,
24172            b: int16x8_t,
24173            c: int16x8_t,
24174            n: i64,
24175            ptr: *const i8,
24176        ) -> int16x8x3_t;
24177    }
24178    _vld3q_lane_s16(b.0, b.1, b.2, LANE as i64, a as _)
24179}
24180#[doc = "Load multiple 3-element structures to two registers"]
24181#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_s32)"]
24182#[doc = "## Safety"]
24183#[doc = "  * Neon instrinsic unsafe"]
24184#[inline]
24185#[target_feature(enable = "neon")]
24186#[cfg(not(target_arch = "arm"))]
24187#[cfg_attr(test, assert_instr(ld3, LANE = 0))]
24188#[rustc_legacy_const_generics(2)]
24189#[stable(feature = "neon_intrinsics", since = "1.59.0")]
24190pub unsafe fn vld3_lane_s32<const LANE: i32>(a: *const i32, b: int32x2x3_t) -> int32x2x3_t {
24191    static_assert_uimm_bits!(LANE, 1);
24192    unsafe extern "unadjusted" {
24193        #[cfg_attr(
24194            any(target_arch = "aarch64", target_arch = "arm64ec"),
24195            link_name = "llvm.aarch64.neon.ld3lane.v2i32.p0"
24196        )]
24197        fn _vld3_lane_s32(
24198            a: int32x2_t,
24199            b: int32x2_t,
24200            c: int32x2_t,
24201            n: i64,
24202            ptr: *const i8,
24203        ) -> int32x2x3_t;
24204    }
24205    _vld3_lane_s32(b.0, b.1, b.2, LANE as i64, a as _)
24206}
24207#[doc = "Load multiple 3-element structures to two registers"]
24208#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_lane_s32)"]
24209#[doc = "## Safety"]
24210#[doc = "  * Neon instrinsic unsafe"]
24211#[inline]
24212#[target_feature(enable = "neon")]
24213#[cfg(not(target_arch = "arm"))]
24214#[cfg_attr(test, assert_instr(ld3, LANE = 0))]
24215#[rustc_legacy_const_generics(2)]
24216#[stable(feature = "neon_intrinsics", since = "1.59.0")]
24217pub unsafe fn vld3q_lane_s32<const LANE: i32>(a: *const i32, b: int32x4x3_t) -> int32x4x3_t {
24218    static_assert_uimm_bits!(LANE, 2);
24219    unsafe extern "unadjusted" {
24220        #[cfg_attr(
24221            any(target_arch = "aarch64", target_arch = "arm64ec"),
24222            link_name = "llvm.aarch64.neon.ld3lane.v4i32.p0"
24223        )]
24224        fn _vld3q_lane_s32(
24225            a: int32x4_t,
24226            b: int32x4_t,
24227            c: int32x4_t,
24228            n: i64,
24229            ptr: *const i8,
24230        ) -> int32x4x3_t;
24231    }
24232    _vld3q_lane_s32(b.0, b.1, b.2, LANE as i64, a as _)
24233}
24234#[doc = "Load multiple 3-element structures to two registers"]
24235#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_s8)"]
24236#[doc = "## Safety"]
24237#[doc = "  * Neon instrinsic unsafe"]
24238#[inline]
24239#[cfg(target_arch = "arm")]
24240#[target_feature(enable = "neon,v7")]
24241#[cfg_attr(test, assert_instr(vld3, LANE = 0))]
24242#[rustc_legacy_const_generics(2)]
24243#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
24244pub unsafe fn vld3_lane_s8<const LANE: i32>(a: *const i8, b: int8x8x3_t) -> int8x8x3_t {
24245    static_assert_uimm_bits!(LANE, 3);
24246    unsafe extern "unadjusted" {
24247        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3lane.v8i8.p0")]
24248        fn _vld3_lane_s8(
24249            ptr: *const i8,
24250            a: int8x8_t,
24251            b: int8x8_t,
24252            c: int8x8_t,
24253            n: i32,
24254            size: i32,
24255        ) -> int8x8x3_t;
24256    }
24257    _vld3_lane_s8(a as _, b.0, b.1, b.2, LANE, 1)
24258}
24259#[doc = "Load multiple 3-element structures to two registers"]
24260#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_s16)"]
24261#[doc = "## Safety"]
24262#[doc = "  * Neon instrinsic unsafe"]
24263#[inline]
24264#[cfg(target_arch = "arm")]
24265#[target_feature(enable = "neon,v7")]
24266#[cfg_attr(test, assert_instr(vld3, LANE = 0))]
24267#[rustc_legacy_const_generics(2)]
24268#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
24269pub unsafe fn vld3_lane_s16<const LANE: i32>(a: *const i16, b: int16x4x3_t) -> int16x4x3_t {
24270    static_assert_uimm_bits!(LANE, 2);
24271    unsafe extern "unadjusted" {
24272        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3lane.v4i16.p0")]
24273        fn _vld3_lane_s16(
24274            ptr: *const i8,
24275            a: int16x4_t,
24276            b: int16x4_t,
24277            c: int16x4_t,
24278            n: i32,
24279            size: i32,
24280        ) -> int16x4x3_t;
24281    }
24282    _vld3_lane_s16(a as _, b.0, b.1, b.2, LANE, 2)
24283}
24284#[doc = "Load multiple 3-element structures to two registers"]
24285#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_lane_s16)"]
24286#[doc = "## Safety"]
24287#[doc = "  * Neon instrinsic unsafe"]
24288#[inline]
24289#[cfg(target_arch = "arm")]
24290#[target_feature(enable = "neon,v7")]
24291#[cfg_attr(test, assert_instr(vld3, LANE = 0))]
24292#[rustc_legacy_const_generics(2)]
24293#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
24294pub unsafe fn vld3q_lane_s16<const LANE: i32>(a: *const i16, b: int16x8x3_t) -> int16x8x3_t {
24295    static_assert_uimm_bits!(LANE, 3);
24296    unsafe extern "unadjusted" {
24297        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3lane.v8i16.p0")]
24298        fn _vld3q_lane_s16(
24299            ptr: *const i8,
24300            a: int16x8_t,
24301            b: int16x8_t,
24302            c: int16x8_t,
24303            n: i32,
24304            size: i32,
24305        ) -> int16x8x3_t;
24306    }
24307    _vld3q_lane_s16(a as _, b.0, b.1, b.2, LANE, 2)
24308}
24309#[doc = "Load multiple 3-element structures to two registers"]
24310#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_s32)"]
24311#[doc = "## Safety"]
24312#[doc = "  * Neon instrinsic unsafe"]
24313#[inline]
24314#[cfg(target_arch = "arm")]
24315#[target_feature(enable = "neon,v7")]
24316#[cfg_attr(test, assert_instr(vld3, LANE = 0))]
24317#[rustc_legacy_const_generics(2)]
24318#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
24319pub unsafe fn vld3_lane_s32<const LANE: i32>(a: *const i32, b: int32x2x3_t) -> int32x2x3_t {
24320    static_assert_uimm_bits!(LANE, 1);
24321    unsafe extern "unadjusted" {
24322        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3lane.v2i32.p0")]
24323        fn _vld3_lane_s32(
24324            ptr: *const i8,
24325            a: int32x2_t,
24326            b: int32x2_t,
24327            c: int32x2_t,
24328            n: i32,
24329            size: i32,
24330        ) -> int32x2x3_t;
24331    }
24332    _vld3_lane_s32(a as _, b.0, b.1, b.2, LANE, 4)
24333}
24334#[doc = "Load multiple 3-element structures to two registers"]
24335#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_lane_s32)"]
24336#[doc = "## Safety"]
24337#[doc = "  * Neon instrinsic unsafe"]
24338#[inline]
24339#[cfg(target_arch = "arm")]
24340#[target_feature(enable = "neon,v7")]
24341#[cfg_attr(test, assert_instr(vld3, LANE = 0))]
24342#[rustc_legacy_const_generics(2)]
24343#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
24344pub unsafe fn vld3q_lane_s32<const LANE: i32>(a: *const i32, b: int32x4x3_t) -> int32x4x3_t {
24345    static_assert_uimm_bits!(LANE, 2);
24346    unsafe extern "unadjusted" {
24347        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3lane.v4i32.p0")]
24348        fn _vld3q_lane_s32(
24349            ptr: *const i8,
24350            a: int32x4_t,
24351            b: int32x4_t,
24352            c: int32x4_t,
24353            n: i32,
24354            size: i32,
24355        ) -> int32x4x3_t;
24356    }
24357    _vld3q_lane_s32(a as _, b.0, b.1, b.2, LANE, 4)
24358}
24359#[doc = "Load multiple 3-element structures to three registers"]
24360#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_u8)"]
24361#[doc = "## Safety"]
24362#[doc = "  * Neon instrinsic unsafe"]
24363#[inline]
24364#[target_feature(enable = "neon")]
24365#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24366#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3, LANE = 0))]
24367#[cfg_attr(
24368    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24369    assert_instr(ld3, LANE = 0)
24370)]
24371#[rustc_legacy_const_generics(2)]
24372#[cfg_attr(
24373    not(target_arch = "arm"),
24374    stable(feature = "neon_intrinsics", since = "1.59.0")
24375)]
24376#[cfg_attr(
24377    target_arch = "arm",
24378    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24379)]
24380pub unsafe fn vld3_lane_u8<const LANE: i32>(a: *const u8, b: uint8x8x3_t) -> uint8x8x3_t {
24381    static_assert_uimm_bits!(LANE, 3);
24382    transmute(vld3_lane_s8::<LANE>(transmute(a), transmute(b)))
24383}
24384#[doc = "Load multiple 3-element structures to three registers"]
24385#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_u16)"]
24386#[doc = "## Safety"]
24387#[doc = "  * Neon instrinsic unsafe"]
24388#[inline]
24389#[target_feature(enable = "neon")]
24390#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24391#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3, LANE = 0))]
24392#[cfg_attr(
24393    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24394    assert_instr(ld3, LANE = 0)
24395)]
24396#[rustc_legacy_const_generics(2)]
24397#[cfg_attr(
24398    not(target_arch = "arm"),
24399    stable(feature = "neon_intrinsics", since = "1.59.0")
24400)]
24401#[cfg_attr(
24402    target_arch = "arm",
24403    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24404)]
24405pub unsafe fn vld3_lane_u16<const LANE: i32>(a: *const u16, b: uint16x4x3_t) -> uint16x4x3_t {
24406    static_assert_uimm_bits!(LANE, 2);
24407    transmute(vld3_lane_s16::<LANE>(transmute(a), transmute(b)))
24408}
24409#[doc = "Load multiple 3-element structures to three registers"]
24410#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_lane_u16)"]
24411#[doc = "## Safety"]
24412#[doc = "  * Neon instrinsic unsafe"]
24413#[inline]
24414#[target_feature(enable = "neon")]
24415#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24416#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3, LANE = 0))]
24417#[cfg_attr(
24418    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24419    assert_instr(ld3, LANE = 0)
24420)]
24421#[rustc_legacy_const_generics(2)]
24422#[cfg_attr(
24423    not(target_arch = "arm"),
24424    stable(feature = "neon_intrinsics", since = "1.59.0")
24425)]
24426#[cfg_attr(
24427    target_arch = "arm",
24428    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24429)]
24430pub unsafe fn vld3q_lane_u16<const LANE: i32>(a: *const u16, b: uint16x8x3_t) -> uint16x8x3_t {
24431    static_assert_uimm_bits!(LANE, 3);
24432    transmute(vld3q_lane_s16::<LANE>(transmute(a), transmute(b)))
24433}
24434#[doc = "Load multiple 3-element structures to three registers"]
24435#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_u32)"]
24436#[doc = "## Safety"]
24437#[doc = "  * Neon instrinsic unsafe"]
24438#[inline]
24439#[target_feature(enable = "neon")]
24440#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24441#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3, LANE = 0))]
24442#[cfg_attr(
24443    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24444    assert_instr(ld3, LANE = 0)
24445)]
24446#[rustc_legacy_const_generics(2)]
24447#[cfg_attr(
24448    not(target_arch = "arm"),
24449    stable(feature = "neon_intrinsics", since = "1.59.0")
24450)]
24451#[cfg_attr(
24452    target_arch = "arm",
24453    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24454)]
24455pub unsafe fn vld3_lane_u32<const LANE: i32>(a: *const u32, b: uint32x2x3_t) -> uint32x2x3_t {
24456    static_assert_uimm_bits!(LANE, 1);
24457    transmute(vld3_lane_s32::<LANE>(transmute(a), transmute(b)))
24458}
24459#[doc = "Load multiple 3-element structures to three registers"]
24460#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_lane_u32)"]
24461#[doc = "## Safety"]
24462#[doc = "  * Neon instrinsic unsafe"]
24463#[inline]
24464#[target_feature(enable = "neon")]
24465#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24466#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3, LANE = 0))]
24467#[cfg_attr(
24468    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24469    assert_instr(ld3, LANE = 0)
24470)]
24471#[rustc_legacy_const_generics(2)]
24472#[cfg_attr(
24473    not(target_arch = "arm"),
24474    stable(feature = "neon_intrinsics", since = "1.59.0")
24475)]
24476#[cfg_attr(
24477    target_arch = "arm",
24478    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24479)]
24480pub unsafe fn vld3q_lane_u32<const LANE: i32>(a: *const u32, b: uint32x4x3_t) -> uint32x4x3_t {
24481    static_assert_uimm_bits!(LANE, 2);
24482    transmute(vld3q_lane_s32::<LANE>(transmute(a), transmute(b)))
24483}
24484#[doc = "Load multiple 3-element structures to three registers"]
24485#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_p8)"]
24486#[doc = "## Safety"]
24487#[doc = "  * Neon instrinsic unsafe"]
24488#[inline]
24489#[target_feature(enable = "neon")]
24490#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24491#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3, LANE = 0))]
24492#[cfg_attr(
24493    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24494    assert_instr(ld3, LANE = 0)
24495)]
24496#[rustc_legacy_const_generics(2)]
24497#[cfg_attr(
24498    not(target_arch = "arm"),
24499    stable(feature = "neon_intrinsics", since = "1.59.0")
24500)]
24501#[cfg_attr(
24502    target_arch = "arm",
24503    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24504)]
24505pub unsafe fn vld3_lane_p8<const LANE: i32>(a: *const p8, b: poly8x8x3_t) -> poly8x8x3_t {
24506    static_assert_uimm_bits!(LANE, 3);
24507    transmute(vld3_lane_s8::<LANE>(transmute(a), transmute(b)))
24508}
24509#[doc = "Load multiple 3-element structures to three registers"]
24510#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_p16)"]
24511#[doc = "## Safety"]
24512#[doc = "  * Neon instrinsic unsafe"]
24513#[inline]
24514#[target_feature(enable = "neon")]
24515#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24516#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3, LANE = 0))]
24517#[cfg_attr(
24518    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24519    assert_instr(ld3, LANE = 0)
24520)]
24521#[rustc_legacy_const_generics(2)]
24522#[cfg_attr(
24523    not(target_arch = "arm"),
24524    stable(feature = "neon_intrinsics", since = "1.59.0")
24525)]
24526#[cfg_attr(
24527    target_arch = "arm",
24528    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24529)]
24530pub unsafe fn vld3_lane_p16<const LANE: i32>(a: *const p16, b: poly16x4x3_t) -> poly16x4x3_t {
24531    static_assert_uimm_bits!(LANE, 2);
24532    transmute(vld3_lane_s16::<LANE>(transmute(a), transmute(b)))
24533}
24534#[doc = "Load multiple 3-element structures to three registers"]
24535#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_lane_p16)"]
24536#[doc = "## Safety"]
24537#[doc = "  * Neon instrinsic unsafe"]
24538#[inline]
24539#[target_feature(enable = "neon")]
24540#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24541#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3, LANE = 0))]
24542#[cfg_attr(
24543    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24544    assert_instr(ld3, LANE = 0)
24545)]
24546#[rustc_legacy_const_generics(2)]
24547#[cfg_attr(
24548    not(target_arch = "arm"),
24549    stable(feature = "neon_intrinsics", since = "1.59.0")
24550)]
24551#[cfg_attr(
24552    target_arch = "arm",
24553    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24554)]
24555pub unsafe fn vld3q_lane_p16<const LANE: i32>(a: *const p16, b: poly16x8x3_t) -> poly16x8x3_t {
24556    static_assert_uimm_bits!(LANE, 3);
24557    transmute(vld3q_lane_s16::<LANE>(transmute(a), transmute(b)))
24558}
24559#[doc = "Load multiple 3-element structures to three registers"]
24560#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_p64)"]
24561#[doc = "## Safety"]
24562#[doc = "  * Neon instrinsic unsafe"]
24563#[inline]
24564#[target_feature(enable = "neon,aes")]
24565#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
24566#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24567#[cfg_attr(
24568    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24569    assert_instr(nop)
24570)]
24571#[cfg_attr(
24572    not(target_arch = "arm"),
24573    stable(feature = "neon_intrinsics", since = "1.59.0")
24574)]
24575#[cfg_attr(
24576    target_arch = "arm",
24577    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24578)]
24579pub unsafe fn vld3_p64(a: *const p64) -> poly64x1x3_t {
24580    transmute(vld3_s64(transmute(a)))
24581}
24582#[doc = "Load multiple 3-element structures to three registers"]
24583#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_s64)"]
24584#[doc = "## Safety"]
24585#[doc = "  * Neon instrinsic unsafe"]
24586#[inline]
24587#[target_feature(enable = "neon")]
24588#[stable(feature = "neon_intrinsics", since = "1.59.0")]
24589#[cfg(not(target_arch = "arm"))]
24590#[cfg_attr(test, assert_instr(nop))]
24591pub unsafe fn vld3_s64(a: *const i64) -> int64x1x3_t {
24592    unsafe extern "unadjusted" {
24593        #[cfg_attr(
24594            any(target_arch = "aarch64", target_arch = "arm64ec"),
24595            link_name = "llvm.aarch64.neon.ld3.v1i64.p0"
24596        )]
24597        fn _vld3_s64(ptr: *const int64x1_t) -> int64x1x3_t;
24598    }
24599    _vld3_s64(a as _)
24600}
24601#[doc = "Load multiple 3-element structures to three registers"]
24602#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_s64)"]
24603#[doc = "## Safety"]
24604#[doc = "  * Neon instrinsic unsafe"]
24605#[inline]
24606#[cfg(target_arch = "arm")]
24607#[target_feature(enable = "neon,v7")]
24608#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
24609#[cfg_attr(test, assert_instr(nop))]
24610pub unsafe fn vld3_s64(a: *const i64) -> int64x1x3_t {
24611    unsafe extern "unadjusted" {
24612        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3.v1i64.p0")]
24613        fn _vld3_s64(ptr: *const i8, size: i32) -> int64x1x3_t;
24614    }
24615    _vld3_s64(a as *const i8, 8)
24616}
24617#[doc = "Load multiple 3-element structures to three registers"]
24618#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_u64)"]
24619#[doc = "## Safety"]
24620#[doc = "  * Neon instrinsic unsafe"]
24621#[inline]
24622#[target_feature(enable = "neon")]
24623#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24624#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24625#[cfg_attr(
24626    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24627    assert_instr(nop)
24628)]
24629#[cfg_attr(
24630    not(target_arch = "arm"),
24631    stable(feature = "neon_intrinsics", since = "1.59.0")
24632)]
24633#[cfg_attr(
24634    target_arch = "arm",
24635    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24636)]
24637pub unsafe fn vld3_u64(a: *const u64) -> uint64x1x3_t {
24638    transmute(vld3_s64(transmute(a)))
24639}
24640#[doc = "Load multiple 3-element structures to three registers"]
24641#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_u8)"]
24642#[doc = "## Safety"]
24643#[doc = "  * Neon instrinsic unsafe"]
24644#[inline]
24645#[cfg(target_endian = "little")]
24646#[target_feature(enable = "neon")]
24647#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24648#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
24649#[cfg_attr(
24650    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24651    assert_instr(ld3)
24652)]
24653#[cfg_attr(
24654    not(target_arch = "arm"),
24655    stable(feature = "neon_intrinsics", since = "1.59.0")
24656)]
24657#[cfg_attr(
24658    target_arch = "arm",
24659    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24660)]
24661pub unsafe fn vld3_u8(a: *const u8) -> uint8x8x3_t {
24662    transmute(vld3_s8(transmute(a)))
24663}
24664#[doc = "Load multiple 3-element structures to three registers"]
24665#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_u8)"]
24666#[doc = "## Safety"]
24667#[doc = "  * Neon instrinsic unsafe"]
24668#[inline]
24669#[cfg(target_endian = "big")]
24670#[target_feature(enable = "neon")]
24671#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24672#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
24673#[cfg_attr(
24674    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24675    assert_instr(ld3)
24676)]
24677#[cfg_attr(
24678    not(target_arch = "arm"),
24679    stable(feature = "neon_intrinsics", since = "1.59.0")
24680)]
24681#[cfg_attr(
24682    target_arch = "arm",
24683    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24684)]
24685pub unsafe fn vld3_u8(a: *const u8) -> uint8x8x3_t {
24686    let mut ret_val: uint8x8x3_t = transmute(vld3_s8(transmute(a)));
24687    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
24688    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
24689    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
24690    ret_val
24691}
24692#[doc = "Load multiple 3-element structures to three registers"]
24693#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_u8)"]
24694#[doc = "## Safety"]
24695#[doc = "  * Neon instrinsic unsafe"]
24696#[inline]
24697#[cfg(target_endian = "little")]
24698#[target_feature(enable = "neon")]
24699#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24700#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
24701#[cfg_attr(
24702    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24703    assert_instr(ld3)
24704)]
24705#[cfg_attr(
24706    not(target_arch = "arm"),
24707    stable(feature = "neon_intrinsics", since = "1.59.0")
24708)]
24709#[cfg_attr(
24710    target_arch = "arm",
24711    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24712)]
24713pub unsafe fn vld3q_u8(a: *const u8) -> uint8x16x3_t {
24714    transmute(vld3q_s8(transmute(a)))
24715}
24716#[doc = "Load multiple 3-element structures to three registers"]
24717#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_u8)"]
24718#[doc = "## Safety"]
24719#[doc = "  * Neon instrinsic unsafe"]
24720#[inline]
24721#[cfg(target_endian = "big")]
24722#[target_feature(enable = "neon")]
24723#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24724#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
24725#[cfg_attr(
24726    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24727    assert_instr(ld3)
24728)]
24729#[cfg_attr(
24730    not(target_arch = "arm"),
24731    stable(feature = "neon_intrinsics", since = "1.59.0")
24732)]
24733#[cfg_attr(
24734    target_arch = "arm",
24735    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24736)]
24737pub unsafe fn vld3q_u8(a: *const u8) -> uint8x16x3_t {
24738    let mut ret_val: uint8x16x3_t = transmute(vld3q_s8(transmute(a)));
24739    ret_val.0 = unsafe {
24740        simd_shuffle!(
24741            ret_val.0,
24742            ret_val.0,
24743            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
24744        )
24745    };
24746    ret_val.1 = unsafe {
24747        simd_shuffle!(
24748            ret_val.1,
24749            ret_val.1,
24750            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
24751        )
24752    };
24753    ret_val.2 = unsafe {
24754        simd_shuffle!(
24755            ret_val.2,
24756            ret_val.2,
24757            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
24758        )
24759    };
24760    ret_val
24761}
24762#[doc = "Load multiple 3-element structures to three registers"]
24763#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_u16)"]
24764#[doc = "## Safety"]
24765#[doc = "  * Neon instrinsic unsafe"]
24766#[inline]
24767#[cfg(target_endian = "little")]
24768#[target_feature(enable = "neon")]
24769#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24770#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
24771#[cfg_attr(
24772    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24773    assert_instr(ld3)
24774)]
24775#[cfg_attr(
24776    not(target_arch = "arm"),
24777    stable(feature = "neon_intrinsics", since = "1.59.0")
24778)]
24779#[cfg_attr(
24780    target_arch = "arm",
24781    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24782)]
24783pub unsafe fn vld3_u16(a: *const u16) -> uint16x4x3_t {
24784    transmute(vld3_s16(transmute(a)))
24785}
24786#[doc = "Load multiple 3-element structures to three registers"]
24787#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_u16)"]
24788#[doc = "## Safety"]
24789#[doc = "  * Neon instrinsic unsafe"]
24790#[inline]
24791#[cfg(target_endian = "big")]
24792#[target_feature(enable = "neon")]
24793#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24794#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
24795#[cfg_attr(
24796    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24797    assert_instr(ld3)
24798)]
24799#[cfg_attr(
24800    not(target_arch = "arm"),
24801    stable(feature = "neon_intrinsics", since = "1.59.0")
24802)]
24803#[cfg_attr(
24804    target_arch = "arm",
24805    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24806)]
24807pub unsafe fn vld3_u16(a: *const u16) -> uint16x4x3_t {
24808    let mut ret_val: uint16x4x3_t = transmute(vld3_s16(transmute(a)));
24809    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
24810    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
24811    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [3, 2, 1, 0]) };
24812    ret_val
24813}
24814#[doc = "Load multiple 3-element structures to three registers"]
24815#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_u16)"]
24816#[doc = "## Safety"]
24817#[doc = "  * Neon instrinsic unsafe"]
24818#[inline]
24819#[cfg(target_endian = "little")]
24820#[target_feature(enable = "neon")]
24821#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24822#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
24823#[cfg_attr(
24824    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24825    assert_instr(ld3)
24826)]
24827#[cfg_attr(
24828    not(target_arch = "arm"),
24829    stable(feature = "neon_intrinsics", since = "1.59.0")
24830)]
24831#[cfg_attr(
24832    target_arch = "arm",
24833    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24834)]
24835pub unsafe fn vld3q_u16(a: *const u16) -> uint16x8x3_t {
24836    transmute(vld3q_s16(transmute(a)))
24837}
24838#[doc = "Load multiple 3-element structures to three registers"]
24839#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_u16)"]
24840#[doc = "## Safety"]
24841#[doc = "  * Neon instrinsic unsafe"]
24842#[inline]
24843#[cfg(target_endian = "big")]
24844#[target_feature(enable = "neon")]
24845#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24846#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
24847#[cfg_attr(
24848    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24849    assert_instr(ld3)
24850)]
24851#[cfg_attr(
24852    not(target_arch = "arm"),
24853    stable(feature = "neon_intrinsics", since = "1.59.0")
24854)]
24855#[cfg_attr(
24856    target_arch = "arm",
24857    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24858)]
24859pub unsafe fn vld3q_u16(a: *const u16) -> uint16x8x3_t {
24860    let mut ret_val: uint16x8x3_t = transmute(vld3q_s16(transmute(a)));
24861    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
24862    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
24863    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
24864    ret_val
24865}
24866#[doc = "Load multiple 3-element structures to three registers"]
24867#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_u32)"]
24868#[doc = "## Safety"]
24869#[doc = "  * Neon instrinsic unsafe"]
24870#[inline]
24871#[cfg(target_endian = "little")]
24872#[target_feature(enable = "neon")]
24873#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24874#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
24875#[cfg_attr(
24876    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24877    assert_instr(ld3)
24878)]
24879#[cfg_attr(
24880    not(target_arch = "arm"),
24881    stable(feature = "neon_intrinsics", since = "1.59.0")
24882)]
24883#[cfg_attr(
24884    target_arch = "arm",
24885    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24886)]
24887pub unsafe fn vld3_u32(a: *const u32) -> uint32x2x3_t {
24888    transmute(vld3_s32(transmute(a)))
24889}
24890#[doc = "Load multiple 3-element structures to three registers"]
24891#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_u32)"]
24892#[doc = "## Safety"]
24893#[doc = "  * Neon instrinsic unsafe"]
24894#[inline]
24895#[cfg(target_endian = "big")]
24896#[target_feature(enable = "neon")]
24897#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24898#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
24899#[cfg_attr(
24900    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24901    assert_instr(ld3)
24902)]
24903#[cfg_attr(
24904    not(target_arch = "arm"),
24905    stable(feature = "neon_intrinsics", since = "1.59.0")
24906)]
24907#[cfg_attr(
24908    target_arch = "arm",
24909    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24910)]
24911pub unsafe fn vld3_u32(a: *const u32) -> uint32x2x3_t {
24912    let mut ret_val: uint32x2x3_t = transmute(vld3_s32(transmute(a)));
24913    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [1, 0]) };
24914    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [1, 0]) };
24915    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [1, 0]) };
24916    ret_val
24917}
24918#[doc = "Load multiple 3-element structures to three registers"]
24919#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_u32)"]
24920#[doc = "## Safety"]
24921#[doc = "  * Neon instrinsic unsafe"]
24922#[inline]
24923#[cfg(target_endian = "little")]
24924#[target_feature(enable = "neon")]
24925#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24926#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
24927#[cfg_attr(
24928    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24929    assert_instr(ld3)
24930)]
24931#[cfg_attr(
24932    not(target_arch = "arm"),
24933    stable(feature = "neon_intrinsics", since = "1.59.0")
24934)]
24935#[cfg_attr(
24936    target_arch = "arm",
24937    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24938)]
24939pub unsafe fn vld3q_u32(a: *const u32) -> uint32x4x3_t {
24940    transmute(vld3q_s32(transmute(a)))
24941}
24942#[doc = "Load multiple 3-element structures to three registers"]
24943#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_u32)"]
24944#[doc = "## Safety"]
24945#[doc = "  * Neon instrinsic unsafe"]
24946#[inline]
24947#[cfg(target_endian = "big")]
24948#[target_feature(enable = "neon")]
24949#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24950#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
24951#[cfg_attr(
24952    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24953    assert_instr(ld3)
24954)]
24955#[cfg_attr(
24956    not(target_arch = "arm"),
24957    stable(feature = "neon_intrinsics", since = "1.59.0")
24958)]
24959#[cfg_attr(
24960    target_arch = "arm",
24961    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24962)]
24963pub unsafe fn vld3q_u32(a: *const u32) -> uint32x4x3_t {
24964    let mut ret_val: uint32x4x3_t = transmute(vld3q_s32(transmute(a)));
24965    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
24966    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
24967    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [3, 2, 1, 0]) };
24968    ret_val
24969}
24970#[doc = "Load multiple 3-element structures to three registers"]
24971#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_p8)"]
24972#[doc = "## Safety"]
24973#[doc = "  * Neon instrinsic unsafe"]
24974#[inline]
24975#[cfg(target_endian = "little")]
24976#[target_feature(enable = "neon")]
24977#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24978#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
24979#[cfg_attr(
24980    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24981    assert_instr(ld3)
24982)]
24983#[cfg_attr(
24984    not(target_arch = "arm"),
24985    stable(feature = "neon_intrinsics", since = "1.59.0")
24986)]
24987#[cfg_attr(
24988    target_arch = "arm",
24989    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24990)]
24991pub unsafe fn vld3_p8(a: *const p8) -> poly8x8x3_t {
24992    transmute(vld3_s8(transmute(a)))
24993}
24994#[doc = "Load multiple 3-element structures to three registers"]
24995#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_p8)"]
24996#[doc = "## Safety"]
24997#[doc = "  * Neon instrinsic unsafe"]
24998#[inline]
24999#[cfg(target_endian = "big")]
25000#[target_feature(enable = "neon")]
25001#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25002#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
25003#[cfg_attr(
25004    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25005    assert_instr(ld3)
25006)]
25007#[cfg_attr(
25008    not(target_arch = "arm"),
25009    stable(feature = "neon_intrinsics", since = "1.59.0")
25010)]
25011#[cfg_attr(
25012    target_arch = "arm",
25013    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25014)]
25015pub unsafe fn vld3_p8(a: *const p8) -> poly8x8x3_t {
25016    let mut ret_val: poly8x8x3_t = transmute(vld3_s8(transmute(a)));
25017    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
25018    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
25019    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
25020    ret_val
25021}
25022#[doc = "Load multiple 3-element structures to three registers"]
25023#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_p8)"]
25024#[doc = "## Safety"]
25025#[doc = "  * Neon instrinsic unsafe"]
25026#[inline]
25027#[cfg(target_endian = "little")]
25028#[target_feature(enable = "neon")]
25029#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25030#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
25031#[cfg_attr(
25032    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25033    assert_instr(ld3)
25034)]
25035#[cfg_attr(
25036    not(target_arch = "arm"),
25037    stable(feature = "neon_intrinsics", since = "1.59.0")
25038)]
25039#[cfg_attr(
25040    target_arch = "arm",
25041    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25042)]
25043pub unsafe fn vld3q_p8(a: *const p8) -> poly8x16x3_t {
25044    transmute(vld3q_s8(transmute(a)))
25045}
25046#[doc = "Load multiple 3-element structures to three registers"]
25047#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_p8)"]
25048#[doc = "## Safety"]
25049#[doc = "  * Neon instrinsic unsafe"]
25050#[inline]
25051#[cfg(target_endian = "big")]
25052#[target_feature(enable = "neon")]
25053#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25054#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
25055#[cfg_attr(
25056    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25057    assert_instr(ld3)
25058)]
25059#[cfg_attr(
25060    not(target_arch = "arm"),
25061    stable(feature = "neon_intrinsics", since = "1.59.0")
25062)]
25063#[cfg_attr(
25064    target_arch = "arm",
25065    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25066)]
25067pub unsafe fn vld3q_p8(a: *const p8) -> poly8x16x3_t {
25068    let mut ret_val: poly8x16x3_t = transmute(vld3q_s8(transmute(a)));
25069    ret_val.0 = unsafe {
25070        simd_shuffle!(
25071            ret_val.0,
25072            ret_val.0,
25073            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
25074        )
25075    };
25076    ret_val.1 = unsafe {
25077        simd_shuffle!(
25078            ret_val.1,
25079            ret_val.1,
25080            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
25081        )
25082    };
25083    ret_val.2 = unsafe {
25084        simd_shuffle!(
25085            ret_val.2,
25086            ret_val.2,
25087            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
25088        )
25089    };
25090    ret_val
25091}
25092#[doc = "Load multiple 3-element structures to three registers"]
25093#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_p16)"]
25094#[doc = "## Safety"]
25095#[doc = "  * Neon instrinsic unsafe"]
25096#[inline]
25097#[cfg(target_endian = "little")]
25098#[target_feature(enable = "neon")]
25099#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25100#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
25101#[cfg_attr(
25102    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25103    assert_instr(ld3)
25104)]
25105#[cfg_attr(
25106    not(target_arch = "arm"),
25107    stable(feature = "neon_intrinsics", since = "1.59.0")
25108)]
25109#[cfg_attr(
25110    target_arch = "arm",
25111    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25112)]
25113pub unsafe fn vld3_p16(a: *const p16) -> poly16x4x3_t {
25114    transmute(vld3_s16(transmute(a)))
25115}
25116#[doc = "Load multiple 3-element structures to three registers"]
25117#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_p16)"]
25118#[doc = "## Safety"]
25119#[doc = "  * Neon instrinsic unsafe"]
25120#[inline]
25121#[cfg(target_endian = "big")]
25122#[target_feature(enable = "neon")]
25123#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25124#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
25125#[cfg_attr(
25126    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25127    assert_instr(ld3)
25128)]
25129#[cfg_attr(
25130    not(target_arch = "arm"),
25131    stable(feature = "neon_intrinsics", since = "1.59.0")
25132)]
25133#[cfg_attr(
25134    target_arch = "arm",
25135    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25136)]
25137pub unsafe fn vld3_p16(a: *const p16) -> poly16x4x3_t {
25138    let mut ret_val: poly16x4x3_t = transmute(vld3_s16(transmute(a)));
25139    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
25140    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
25141    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [3, 2, 1, 0]) };
25142    ret_val
25143}
25144#[doc = "Load multiple 3-element structures to three registers"]
25145#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_p16)"]
25146#[doc = "## Safety"]
25147#[doc = "  * Neon instrinsic unsafe"]
25148#[inline]
25149#[cfg(target_endian = "little")]
25150#[target_feature(enable = "neon")]
25151#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25152#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
25153#[cfg_attr(
25154    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25155    assert_instr(ld3)
25156)]
25157#[cfg_attr(
25158    not(target_arch = "arm"),
25159    stable(feature = "neon_intrinsics", since = "1.59.0")
25160)]
25161#[cfg_attr(
25162    target_arch = "arm",
25163    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25164)]
25165pub unsafe fn vld3q_p16(a: *const p16) -> poly16x8x3_t {
25166    transmute(vld3q_s16(transmute(a)))
25167}
25168#[doc = "Load multiple 3-element structures to three registers"]
25169#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_p16)"]
25170#[doc = "## Safety"]
25171#[doc = "  * Neon instrinsic unsafe"]
25172#[inline]
25173#[cfg(target_endian = "big")]
25174#[target_feature(enable = "neon")]
25175#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25176#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
25177#[cfg_attr(
25178    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25179    assert_instr(ld3)
25180)]
25181#[cfg_attr(
25182    not(target_arch = "arm"),
25183    stable(feature = "neon_intrinsics", since = "1.59.0")
25184)]
25185#[cfg_attr(
25186    target_arch = "arm",
25187    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25188)]
25189pub unsafe fn vld3q_p16(a: *const p16) -> poly16x8x3_t {
25190    let mut ret_val: poly16x8x3_t = transmute(vld3q_s16(transmute(a)));
25191    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
25192    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
25193    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
25194    ret_val
25195}
25196#[doc = "Load multiple 3-element structures to three registers"]
25197#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_lane_f32)"]
25198#[doc = "## Safety"]
25199#[doc = "  * Neon instrinsic unsafe"]
25200#[inline]
25201#[cfg(target_arch = "arm")]
25202#[target_feature(enable = "neon,v7")]
25203#[cfg_attr(test, assert_instr(vld3, LANE = 0))]
25204#[rustc_legacy_const_generics(2)]
25205#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
25206pub unsafe fn vld3q_lane_f32<const LANE: i32>(a: *const f32, b: float32x4x3_t) -> float32x4x3_t {
25207    static_assert_uimm_bits!(LANE, 2);
25208    unsafe extern "unadjusted" {
25209        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3lane.v4f32.p0")]
25210        fn _vld3q_lane_f32(
25211            ptr: *const i8,
25212            a: float32x4_t,
25213            b: float32x4_t,
25214            c: float32x4_t,
25215            n: i32,
25216            size: i32,
25217        ) -> float32x4x3_t;
25218    }
25219    _vld3q_lane_f32(a as _, b.0, b.1, b.2, LANE, 4)
25220}
25221#[doc = "Load single 4-element structure and replicate to all lanes of two registers"]
25222#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_f16)"]
25223#[doc = "## Safety"]
25224#[doc = "  * Neon instrinsic unsafe"]
25225#[inline]
25226#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25227#[cfg(target_arch = "arm")]
25228#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
25229#[target_feature(enable = "neon,fp16")]
25230#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
25231#[cfg(not(target_arch = "arm64ec"))]
25232pub unsafe fn vld4_dup_f16(a: *const f16) -> float16x4x4_t {
25233    unsafe extern "unadjusted" {
25234        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4dup.v4f16.p0")]
25235        fn _vld4_dup_f16(ptr: *const f16, size: i32) -> float16x4x4_t;
25236    }
25237    _vld4_dup_f16(a as _, 2)
25238}
25239#[doc = "Load single 4-element structure and replicate to all lanes of two registers"]
25240#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_f16)"]
25241#[doc = "## Safety"]
25242#[doc = "  * Neon instrinsic unsafe"]
25243#[inline]
25244#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25245#[cfg(target_arch = "arm")]
25246#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
25247#[target_feature(enable = "neon,fp16")]
25248#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
25249#[cfg(not(target_arch = "arm64ec"))]
25250pub unsafe fn vld4q_dup_f16(a: *const f16) -> float16x8x4_t {
25251    unsafe extern "unadjusted" {
25252        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4dup.v8f16.p0")]
25253        fn _vld4q_dup_f16(ptr: *const f16, size: i32) -> float16x8x4_t;
25254    }
25255    _vld4q_dup_f16(a as _, 2)
25256}
25257#[doc = "Load single 4-element structure and replicate to all lanes of two registers"]
25258#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_f16)"]
25259#[doc = "## Safety"]
25260#[doc = "  * Neon instrinsic unsafe"]
25261#[inline]
25262#[cfg(not(target_arch = "arm"))]
25263#[cfg_attr(
25264    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25265    assert_instr(ld4r)
25266)]
25267#[target_feature(enable = "neon,fp16")]
25268#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
25269#[cfg(not(target_arch = "arm64ec"))]
25270pub unsafe fn vld4_dup_f16(a: *const f16) -> float16x4x4_t {
25271    unsafe extern "unadjusted" {
25272        #[cfg_attr(
25273            any(target_arch = "aarch64", target_arch = "arm64ec"),
25274            link_name = "llvm.aarch64.neon.ld4r.v4f16.p0"
25275        )]
25276        fn _vld4_dup_f16(ptr: *const f16) -> float16x4x4_t;
25277    }
25278    _vld4_dup_f16(a as _)
25279}
25280#[doc = "Load single 4-element structure and replicate to all lanes of two registers"]
25281#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_f16)"]
25282#[doc = "## Safety"]
25283#[doc = "  * Neon instrinsic unsafe"]
25284#[inline]
25285#[cfg(not(target_arch = "arm"))]
25286#[cfg_attr(
25287    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25288    assert_instr(ld4r)
25289)]
25290#[target_feature(enable = "neon,fp16")]
25291#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
25292#[cfg(not(target_arch = "arm64ec"))]
25293pub unsafe fn vld4q_dup_f16(a: *const f16) -> float16x8x4_t {
25294    unsafe extern "unadjusted" {
25295        #[cfg_attr(
25296            any(target_arch = "aarch64", target_arch = "arm64ec"),
25297            link_name = "llvm.aarch64.neon.ld4r.v8f16.p0"
25298        )]
25299        fn _vld4q_dup_f16(ptr: *const f16) -> float16x8x4_t;
25300    }
25301    _vld4q_dup_f16(a as _)
25302}
25303#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25304#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_f32)"]
25305#[doc = "## Safety"]
25306#[doc = "  * Neon instrinsic unsafe"]
25307#[inline]
25308#[cfg(target_arch = "arm")]
25309#[target_feature(enable = "neon,v7")]
25310#[cfg_attr(test, assert_instr(vld4))]
25311#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
25312pub unsafe fn vld4_dup_f32(a: *const f32) -> float32x2x4_t {
25313    unsafe extern "unadjusted" {
25314        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4dup.v2f32.p0")]
25315        fn _vld4_dup_f32(ptr: *const i8, size: i32) -> float32x2x4_t;
25316    }
25317    _vld4_dup_f32(a as *const i8, 4)
25318}
25319#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25320#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_f32)"]
25321#[doc = "## Safety"]
25322#[doc = "  * Neon instrinsic unsafe"]
25323#[inline]
25324#[cfg(target_arch = "arm")]
25325#[target_feature(enable = "neon,v7")]
25326#[cfg_attr(test, assert_instr(vld4))]
25327#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
25328pub unsafe fn vld4q_dup_f32(a: *const f32) -> float32x4x4_t {
25329    unsafe extern "unadjusted" {
25330        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4dup.v4f32.p0")]
25331        fn _vld4q_dup_f32(ptr: *const i8, size: i32) -> float32x4x4_t;
25332    }
25333    _vld4q_dup_f32(a as *const i8, 4)
25334}
25335#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25336#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_s8)"]
25337#[doc = "## Safety"]
25338#[doc = "  * Neon instrinsic unsafe"]
25339#[inline]
25340#[cfg(target_arch = "arm")]
25341#[target_feature(enable = "neon,v7")]
25342#[cfg_attr(test, assert_instr(vld4))]
25343#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
25344pub unsafe fn vld4_dup_s8(a: *const i8) -> int8x8x4_t {
25345    unsafe extern "unadjusted" {
25346        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4dup.v8i8.p0")]
25347        fn _vld4_dup_s8(ptr: *const i8, size: i32) -> int8x8x4_t;
25348    }
25349    _vld4_dup_s8(a as *const i8, 1)
25350}
25351#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25352#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_s8)"]
25353#[doc = "## Safety"]
25354#[doc = "  * Neon instrinsic unsafe"]
25355#[inline]
25356#[cfg(target_arch = "arm")]
25357#[target_feature(enable = "neon,v7")]
25358#[cfg_attr(test, assert_instr(vld4))]
25359#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
25360pub unsafe fn vld4q_dup_s8(a: *const i8) -> int8x16x4_t {
25361    unsafe extern "unadjusted" {
25362        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4dup.v16i8.p0")]
25363        fn _vld4q_dup_s8(ptr: *const i8, size: i32) -> int8x16x4_t;
25364    }
25365    _vld4q_dup_s8(a as *const i8, 1)
25366}
25367#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25368#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_s16)"]
25369#[doc = "## Safety"]
25370#[doc = "  * Neon instrinsic unsafe"]
25371#[inline]
25372#[cfg(target_arch = "arm")]
25373#[target_feature(enable = "neon,v7")]
25374#[cfg_attr(test, assert_instr(vld4))]
25375#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
25376pub unsafe fn vld4_dup_s16(a: *const i16) -> int16x4x4_t {
25377    unsafe extern "unadjusted" {
25378        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4dup.v4i16.p0")]
25379        fn _vld4_dup_s16(ptr: *const i8, size: i32) -> int16x4x4_t;
25380    }
25381    _vld4_dup_s16(a as *const i8, 2)
25382}
25383#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25384#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_s16)"]
25385#[doc = "## Safety"]
25386#[doc = "  * Neon instrinsic unsafe"]
25387#[inline]
25388#[cfg(target_arch = "arm")]
25389#[target_feature(enable = "neon,v7")]
25390#[cfg_attr(test, assert_instr(vld4))]
25391#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
25392pub unsafe fn vld4q_dup_s16(a: *const i16) -> int16x8x4_t {
25393    unsafe extern "unadjusted" {
25394        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4dup.v8i16.p0")]
25395        fn _vld4q_dup_s16(ptr: *const i8, size: i32) -> int16x8x4_t;
25396    }
25397    _vld4q_dup_s16(a as *const i8, 2)
25398}
25399#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25400#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_s32)"]
25401#[doc = "## Safety"]
25402#[doc = "  * Neon instrinsic unsafe"]
25403#[inline]
25404#[cfg(target_arch = "arm")]
25405#[target_feature(enable = "neon,v7")]
25406#[cfg_attr(test, assert_instr(vld4))]
25407#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
25408pub unsafe fn vld4_dup_s32(a: *const i32) -> int32x2x4_t {
25409    unsafe extern "unadjusted" {
25410        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4dup.v2i32.p0")]
25411        fn _vld4_dup_s32(ptr: *const i8, size: i32) -> int32x2x4_t;
25412    }
25413    _vld4_dup_s32(a as *const i8, 4)
25414}
25415#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25416#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_s32)"]
25417#[doc = "## Safety"]
25418#[doc = "  * Neon instrinsic unsafe"]
25419#[inline]
25420#[cfg(target_arch = "arm")]
25421#[target_feature(enable = "neon,v7")]
25422#[cfg_attr(test, assert_instr(vld4))]
25423#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
25424pub unsafe fn vld4q_dup_s32(a: *const i32) -> int32x4x4_t {
25425    unsafe extern "unadjusted" {
25426        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4dup.v4i32.p0")]
25427        fn _vld4q_dup_s32(ptr: *const i8, size: i32) -> int32x4x4_t;
25428    }
25429    _vld4q_dup_s32(a as *const i8, 4)
25430}
25431#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25432#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_f32)"]
25433#[doc = "## Safety"]
25434#[doc = "  * Neon instrinsic unsafe"]
25435#[inline]
25436#[target_feature(enable = "neon")]
25437#[cfg(not(target_arch = "arm"))]
25438#[cfg_attr(test, assert_instr(ld4r))]
25439#[stable(feature = "neon_intrinsics", since = "1.59.0")]
25440pub unsafe fn vld4_dup_f32(a: *const f32) -> float32x2x4_t {
25441    unsafe extern "unadjusted" {
25442        #[cfg_attr(
25443            any(target_arch = "aarch64", target_arch = "arm64ec"),
25444            link_name = "llvm.aarch64.neon.ld4r.v2f32.p0.p0"
25445        )]
25446        fn _vld4_dup_f32(ptr: *const f32) -> float32x2x4_t;
25447    }
25448    _vld4_dup_f32(a as _)
25449}
25450#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25451#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_f32)"]
25452#[doc = "## Safety"]
25453#[doc = "  * Neon instrinsic unsafe"]
25454#[inline]
25455#[target_feature(enable = "neon")]
25456#[cfg(not(target_arch = "arm"))]
25457#[cfg_attr(test, assert_instr(ld4r))]
25458#[stable(feature = "neon_intrinsics", since = "1.59.0")]
25459pub unsafe fn vld4q_dup_f32(a: *const f32) -> float32x4x4_t {
25460    unsafe extern "unadjusted" {
25461        #[cfg_attr(
25462            any(target_arch = "aarch64", target_arch = "arm64ec"),
25463            link_name = "llvm.aarch64.neon.ld4r.v4f32.p0.p0"
25464        )]
25465        fn _vld4q_dup_f32(ptr: *const f32) -> float32x4x4_t;
25466    }
25467    _vld4q_dup_f32(a as _)
25468}
25469#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25470#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_s8)"]
25471#[doc = "## Safety"]
25472#[doc = "  * Neon instrinsic unsafe"]
25473#[inline]
25474#[target_feature(enable = "neon")]
25475#[cfg(not(target_arch = "arm"))]
25476#[cfg_attr(test, assert_instr(ld4r))]
25477#[stable(feature = "neon_intrinsics", since = "1.59.0")]
25478pub unsafe fn vld4_dup_s8(a: *const i8) -> int8x8x4_t {
25479    unsafe extern "unadjusted" {
25480        #[cfg_attr(
25481            any(target_arch = "aarch64", target_arch = "arm64ec"),
25482            link_name = "llvm.aarch64.neon.ld4r.v8i8.p0.p0"
25483        )]
25484        fn _vld4_dup_s8(ptr: *const i8) -> int8x8x4_t;
25485    }
25486    _vld4_dup_s8(a as _)
25487}
25488#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25489#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_s8)"]
25490#[doc = "## Safety"]
25491#[doc = "  * Neon instrinsic unsafe"]
25492#[inline]
25493#[target_feature(enable = "neon")]
25494#[cfg(not(target_arch = "arm"))]
25495#[cfg_attr(test, assert_instr(ld4r))]
25496#[stable(feature = "neon_intrinsics", since = "1.59.0")]
25497pub unsafe fn vld4q_dup_s8(a: *const i8) -> int8x16x4_t {
25498    unsafe extern "unadjusted" {
25499        #[cfg_attr(
25500            any(target_arch = "aarch64", target_arch = "arm64ec"),
25501            link_name = "llvm.aarch64.neon.ld4r.v16i8.p0.p0"
25502        )]
25503        fn _vld4q_dup_s8(ptr: *const i8) -> int8x16x4_t;
25504    }
25505    _vld4q_dup_s8(a as _)
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/vld4_dup_s16)"]
25509#[doc = "## Safety"]
25510#[doc = "  * Neon instrinsic unsafe"]
25511#[inline]
25512#[target_feature(enable = "neon")]
25513#[cfg(not(target_arch = "arm"))]
25514#[cfg_attr(test, assert_instr(ld4r))]
25515#[stable(feature = "neon_intrinsics", since = "1.59.0")]
25516pub unsafe fn vld4_dup_s16(a: *const i16) -> int16x4x4_t {
25517    unsafe extern "unadjusted" {
25518        #[cfg_attr(
25519            any(target_arch = "aarch64", target_arch = "arm64ec"),
25520            link_name = "llvm.aarch64.neon.ld4r.v4i16.p0.p0"
25521        )]
25522        fn _vld4_dup_s16(ptr: *const i16) -> int16x4x4_t;
25523    }
25524    _vld4_dup_s16(a as _)
25525}
25526#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25527#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_s16)"]
25528#[doc = "## Safety"]
25529#[doc = "  * Neon instrinsic unsafe"]
25530#[inline]
25531#[target_feature(enable = "neon")]
25532#[cfg(not(target_arch = "arm"))]
25533#[cfg_attr(test, assert_instr(ld4r))]
25534#[stable(feature = "neon_intrinsics", since = "1.59.0")]
25535pub unsafe fn vld4q_dup_s16(a: *const i16) -> int16x8x4_t {
25536    unsafe extern "unadjusted" {
25537        #[cfg_attr(
25538            any(target_arch = "aarch64", target_arch = "arm64ec"),
25539            link_name = "llvm.aarch64.neon.ld4r.v8i16.p0.p0"
25540        )]
25541        fn _vld4q_dup_s16(ptr: *const i16) -> int16x8x4_t;
25542    }
25543    _vld4q_dup_s16(a as _)
25544}
25545#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25546#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_s32)"]
25547#[doc = "## Safety"]
25548#[doc = "  * Neon instrinsic unsafe"]
25549#[inline]
25550#[target_feature(enable = "neon")]
25551#[cfg(not(target_arch = "arm"))]
25552#[cfg_attr(test, assert_instr(ld4r))]
25553#[stable(feature = "neon_intrinsics", since = "1.59.0")]
25554pub unsafe fn vld4_dup_s32(a: *const i32) -> int32x2x4_t {
25555    unsafe extern "unadjusted" {
25556        #[cfg_attr(
25557            any(target_arch = "aarch64", target_arch = "arm64ec"),
25558            link_name = "llvm.aarch64.neon.ld4r.v2i32.p0.p0"
25559        )]
25560        fn _vld4_dup_s32(ptr: *const i32) -> int32x2x4_t;
25561    }
25562    _vld4_dup_s32(a as _)
25563}
25564#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25565#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_s32)"]
25566#[doc = "## Safety"]
25567#[doc = "  * Neon instrinsic unsafe"]
25568#[inline]
25569#[target_feature(enable = "neon")]
25570#[cfg(not(target_arch = "arm"))]
25571#[cfg_attr(test, assert_instr(ld4r))]
25572#[stable(feature = "neon_intrinsics", since = "1.59.0")]
25573pub unsafe fn vld4q_dup_s32(a: *const i32) -> int32x4x4_t {
25574    unsafe extern "unadjusted" {
25575        #[cfg_attr(
25576            any(target_arch = "aarch64", target_arch = "arm64ec"),
25577            link_name = "llvm.aarch64.neon.ld4r.v4i32.p0.p0"
25578        )]
25579        fn _vld4q_dup_s32(ptr: *const i32) -> int32x4x4_t;
25580    }
25581    _vld4q_dup_s32(a as _)
25582}
25583#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25584#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_s64)"]
25585#[doc = "## Safety"]
25586#[doc = "  * Neon instrinsic unsafe"]
25587#[inline]
25588#[target_feature(enable = "neon")]
25589#[cfg(not(target_arch = "arm"))]
25590#[cfg_attr(test, assert_instr(ld4r))]
25591#[stable(feature = "neon_intrinsics", since = "1.59.0")]
25592pub unsafe fn vld4_dup_s64(a: *const i64) -> int64x1x4_t {
25593    unsafe extern "unadjusted" {
25594        #[cfg_attr(
25595            any(target_arch = "aarch64", target_arch = "arm64ec"),
25596            link_name = "llvm.aarch64.neon.ld4r.v1i64.p0.p0"
25597        )]
25598        fn _vld4_dup_s64(ptr: *const i64) -> int64x1x4_t;
25599    }
25600    _vld4_dup_s64(a as _)
25601}
25602#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25603#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_p64)"]
25604#[doc = "## Safety"]
25605#[doc = "  * Neon instrinsic unsafe"]
25606#[inline]
25607#[target_feature(enable = "neon,aes")]
25608#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
25609#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25610#[cfg_attr(
25611    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25612    assert_instr(ld4r)
25613)]
25614#[cfg_attr(
25615    not(target_arch = "arm"),
25616    stable(feature = "neon_intrinsics", since = "1.59.0")
25617)]
25618#[cfg_attr(
25619    target_arch = "arm",
25620    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25621)]
25622pub unsafe fn vld4_dup_p64(a: *const p64) -> poly64x1x4_t {
25623    transmute(vld4_dup_s64(transmute(a)))
25624}
25625#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25626#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_s64)"]
25627#[doc = "## Safety"]
25628#[doc = "  * Neon instrinsic unsafe"]
25629#[inline]
25630#[cfg(target_arch = "arm")]
25631#[target_feature(enable = "neon,v7")]
25632#[cfg_attr(test, assert_instr(nop))]
25633#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
25634pub unsafe fn vld4_dup_s64(a: *const i64) -> int64x1x4_t {
25635    unsafe extern "unadjusted" {
25636        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4dup.v1i64.p0")]
25637        fn _vld4_dup_s64(ptr: *const i8, size: i32) -> int64x1x4_t;
25638    }
25639    _vld4_dup_s64(a as *const i8, 8)
25640}
25641#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25642#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_u64)"]
25643#[doc = "## Safety"]
25644#[doc = "  * Neon instrinsic unsafe"]
25645#[inline]
25646#[target_feature(enable = "neon")]
25647#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25648#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25649#[cfg_attr(
25650    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25651    assert_instr(ld4r)
25652)]
25653#[cfg_attr(
25654    not(target_arch = "arm"),
25655    stable(feature = "neon_intrinsics", since = "1.59.0")
25656)]
25657#[cfg_attr(
25658    target_arch = "arm",
25659    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25660)]
25661pub unsafe fn vld4_dup_u64(a: *const u64) -> uint64x1x4_t {
25662    transmute(vld4_dup_s64(transmute(a)))
25663}
25664#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25665#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_u8)"]
25666#[doc = "## Safety"]
25667#[doc = "  * Neon instrinsic unsafe"]
25668#[inline]
25669#[cfg(target_endian = "little")]
25670#[target_feature(enable = "neon")]
25671#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25672#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
25673#[cfg_attr(
25674    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25675    assert_instr(ld4r)
25676)]
25677#[cfg_attr(
25678    not(target_arch = "arm"),
25679    stable(feature = "neon_intrinsics", since = "1.59.0")
25680)]
25681#[cfg_attr(
25682    target_arch = "arm",
25683    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25684)]
25685pub unsafe fn vld4_dup_u8(a: *const u8) -> uint8x8x4_t {
25686    transmute(vld4_dup_s8(transmute(a)))
25687}
25688#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25689#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_u8)"]
25690#[doc = "## Safety"]
25691#[doc = "  * Neon instrinsic unsafe"]
25692#[inline]
25693#[cfg(target_endian = "big")]
25694#[target_feature(enable = "neon")]
25695#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25696#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
25697#[cfg_attr(
25698    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25699    assert_instr(ld4r)
25700)]
25701#[cfg_attr(
25702    not(target_arch = "arm"),
25703    stable(feature = "neon_intrinsics", since = "1.59.0")
25704)]
25705#[cfg_attr(
25706    target_arch = "arm",
25707    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25708)]
25709pub unsafe fn vld4_dup_u8(a: *const u8) -> uint8x8x4_t {
25710    let mut ret_val: uint8x8x4_t = transmute(vld4_dup_s8(transmute(a)));
25711    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
25712    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
25713    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
25714    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [7, 6, 5, 4, 3, 2, 1, 0]) };
25715    ret_val
25716}
25717#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25718#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_u8)"]
25719#[doc = "## Safety"]
25720#[doc = "  * Neon instrinsic unsafe"]
25721#[inline]
25722#[cfg(target_endian = "little")]
25723#[target_feature(enable = "neon")]
25724#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25725#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
25726#[cfg_attr(
25727    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25728    assert_instr(ld4r)
25729)]
25730#[cfg_attr(
25731    not(target_arch = "arm"),
25732    stable(feature = "neon_intrinsics", since = "1.59.0")
25733)]
25734#[cfg_attr(
25735    target_arch = "arm",
25736    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25737)]
25738pub unsafe fn vld4q_dup_u8(a: *const u8) -> uint8x16x4_t {
25739    transmute(vld4q_dup_s8(transmute(a)))
25740}
25741#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25742#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_u8)"]
25743#[doc = "## Safety"]
25744#[doc = "  * Neon instrinsic unsafe"]
25745#[inline]
25746#[cfg(target_endian = "big")]
25747#[target_feature(enable = "neon")]
25748#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25749#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
25750#[cfg_attr(
25751    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25752    assert_instr(ld4r)
25753)]
25754#[cfg_attr(
25755    not(target_arch = "arm"),
25756    stable(feature = "neon_intrinsics", since = "1.59.0")
25757)]
25758#[cfg_attr(
25759    target_arch = "arm",
25760    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25761)]
25762pub unsafe fn vld4q_dup_u8(a: *const u8) -> uint8x16x4_t {
25763    let mut ret_val: uint8x16x4_t = transmute(vld4q_dup_s8(transmute(a)));
25764    ret_val.0 = unsafe {
25765        simd_shuffle!(
25766            ret_val.0,
25767            ret_val.0,
25768            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
25769        )
25770    };
25771    ret_val.1 = unsafe {
25772        simd_shuffle!(
25773            ret_val.1,
25774            ret_val.1,
25775            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
25776        )
25777    };
25778    ret_val.2 = unsafe {
25779        simd_shuffle!(
25780            ret_val.2,
25781            ret_val.2,
25782            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
25783        )
25784    };
25785    ret_val.3 = unsafe {
25786        simd_shuffle!(
25787            ret_val.3,
25788            ret_val.3,
25789            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
25790        )
25791    };
25792    ret_val
25793}
25794#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25795#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_u16)"]
25796#[doc = "## Safety"]
25797#[doc = "  * Neon instrinsic unsafe"]
25798#[inline]
25799#[cfg(target_endian = "little")]
25800#[target_feature(enable = "neon")]
25801#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25802#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
25803#[cfg_attr(
25804    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25805    assert_instr(ld4r)
25806)]
25807#[cfg_attr(
25808    not(target_arch = "arm"),
25809    stable(feature = "neon_intrinsics", since = "1.59.0")
25810)]
25811#[cfg_attr(
25812    target_arch = "arm",
25813    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25814)]
25815pub unsafe fn vld4_dup_u16(a: *const u16) -> uint16x4x4_t {
25816    transmute(vld4_dup_s16(transmute(a)))
25817}
25818#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25819#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_u16)"]
25820#[doc = "## Safety"]
25821#[doc = "  * Neon instrinsic unsafe"]
25822#[inline]
25823#[cfg(target_endian = "big")]
25824#[target_feature(enable = "neon")]
25825#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25826#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
25827#[cfg_attr(
25828    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25829    assert_instr(ld4r)
25830)]
25831#[cfg_attr(
25832    not(target_arch = "arm"),
25833    stable(feature = "neon_intrinsics", since = "1.59.0")
25834)]
25835#[cfg_attr(
25836    target_arch = "arm",
25837    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25838)]
25839pub unsafe fn vld4_dup_u16(a: *const u16) -> uint16x4x4_t {
25840    let mut ret_val: uint16x4x4_t = transmute(vld4_dup_s16(transmute(a)));
25841    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
25842    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
25843    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [3, 2, 1, 0]) };
25844    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [3, 2, 1, 0]) };
25845    ret_val
25846}
25847#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25848#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_u16)"]
25849#[doc = "## Safety"]
25850#[doc = "  * Neon instrinsic unsafe"]
25851#[inline]
25852#[cfg(target_endian = "little")]
25853#[target_feature(enable = "neon")]
25854#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25855#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
25856#[cfg_attr(
25857    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25858    assert_instr(ld4r)
25859)]
25860#[cfg_attr(
25861    not(target_arch = "arm"),
25862    stable(feature = "neon_intrinsics", since = "1.59.0")
25863)]
25864#[cfg_attr(
25865    target_arch = "arm",
25866    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25867)]
25868pub unsafe fn vld4q_dup_u16(a: *const u16) -> uint16x8x4_t {
25869    transmute(vld4q_dup_s16(transmute(a)))
25870}
25871#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25872#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_u16)"]
25873#[doc = "## Safety"]
25874#[doc = "  * Neon instrinsic unsafe"]
25875#[inline]
25876#[cfg(target_endian = "big")]
25877#[target_feature(enable = "neon")]
25878#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25879#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
25880#[cfg_attr(
25881    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25882    assert_instr(ld4r)
25883)]
25884#[cfg_attr(
25885    not(target_arch = "arm"),
25886    stable(feature = "neon_intrinsics", since = "1.59.0")
25887)]
25888#[cfg_attr(
25889    target_arch = "arm",
25890    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25891)]
25892pub unsafe fn vld4q_dup_u16(a: *const u16) -> uint16x8x4_t {
25893    let mut ret_val: uint16x8x4_t = transmute(vld4q_dup_s16(transmute(a)));
25894    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
25895    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
25896    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
25897    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [7, 6, 5, 4, 3, 2, 1, 0]) };
25898    ret_val
25899}
25900#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25901#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_u32)"]
25902#[doc = "## Safety"]
25903#[doc = "  * Neon instrinsic unsafe"]
25904#[inline]
25905#[cfg(target_endian = "little")]
25906#[target_feature(enable = "neon")]
25907#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25908#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
25909#[cfg_attr(
25910    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25911    assert_instr(ld4r)
25912)]
25913#[cfg_attr(
25914    not(target_arch = "arm"),
25915    stable(feature = "neon_intrinsics", since = "1.59.0")
25916)]
25917#[cfg_attr(
25918    target_arch = "arm",
25919    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25920)]
25921pub unsafe fn vld4_dup_u32(a: *const u32) -> uint32x2x4_t {
25922    transmute(vld4_dup_s32(transmute(a)))
25923}
25924#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25925#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_u32)"]
25926#[doc = "## Safety"]
25927#[doc = "  * Neon instrinsic unsafe"]
25928#[inline]
25929#[cfg(target_endian = "big")]
25930#[target_feature(enable = "neon")]
25931#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25932#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
25933#[cfg_attr(
25934    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25935    assert_instr(ld4r)
25936)]
25937#[cfg_attr(
25938    not(target_arch = "arm"),
25939    stable(feature = "neon_intrinsics", since = "1.59.0")
25940)]
25941#[cfg_attr(
25942    target_arch = "arm",
25943    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25944)]
25945pub unsafe fn vld4_dup_u32(a: *const u32) -> uint32x2x4_t {
25946    let mut ret_val: uint32x2x4_t = transmute(vld4_dup_s32(transmute(a)));
25947    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [1, 0]) };
25948    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [1, 0]) };
25949    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [1, 0]) };
25950    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [1, 0]) };
25951    ret_val
25952}
25953#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25954#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_u32)"]
25955#[doc = "## Safety"]
25956#[doc = "  * Neon instrinsic unsafe"]
25957#[inline]
25958#[cfg(target_endian = "little")]
25959#[target_feature(enable = "neon")]
25960#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25961#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
25962#[cfg_attr(
25963    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25964    assert_instr(ld4r)
25965)]
25966#[cfg_attr(
25967    not(target_arch = "arm"),
25968    stable(feature = "neon_intrinsics", since = "1.59.0")
25969)]
25970#[cfg_attr(
25971    target_arch = "arm",
25972    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25973)]
25974pub unsafe fn vld4q_dup_u32(a: *const u32) -> uint32x4x4_t {
25975    transmute(vld4q_dup_s32(transmute(a)))
25976}
25977#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
25978#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_u32)"]
25979#[doc = "## Safety"]
25980#[doc = "  * Neon instrinsic unsafe"]
25981#[inline]
25982#[cfg(target_endian = "big")]
25983#[target_feature(enable = "neon")]
25984#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25985#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
25986#[cfg_attr(
25987    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25988    assert_instr(ld4r)
25989)]
25990#[cfg_attr(
25991    not(target_arch = "arm"),
25992    stable(feature = "neon_intrinsics", since = "1.59.0")
25993)]
25994#[cfg_attr(
25995    target_arch = "arm",
25996    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25997)]
25998pub unsafe fn vld4q_dup_u32(a: *const u32) -> uint32x4x4_t {
25999    let mut ret_val: uint32x4x4_t = transmute(vld4q_dup_s32(transmute(a)));
26000    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
26001    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
26002    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [3, 2, 1, 0]) };
26003    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [3, 2, 1, 0]) };
26004    ret_val
26005}
26006#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
26007#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_p8)"]
26008#[doc = "## Safety"]
26009#[doc = "  * Neon instrinsic unsafe"]
26010#[inline]
26011#[cfg(target_endian = "little")]
26012#[target_feature(enable = "neon")]
26013#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26014#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
26015#[cfg_attr(
26016    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26017    assert_instr(ld4r)
26018)]
26019#[cfg_attr(
26020    not(target_arch = "arm"),
26021    stable(feature = "neon_intrinsics", since = "1.59.0")
26022)]
26023#[cfg_attr(
26024    target_arch = "arm",
26025    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26026)]
26027pub unsafe fn vld4_dup_p8(a: *const p8) -> poly8x8x4_t {
26028    transmute(vld4_dup_s8(transmute(a)))
26029}
26030#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
26031#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_p8)"]
26032#[doc = "## Safety"]
26033#[doc = "  * Neon instrinsic unsafe"]
26034#[inline]
26035#[cfg(target_endian = "big")]
26036#[target_feature(enable = "neon")]
26037#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26038#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
26039#[cfg_attr(
26040    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26041    assert_instr(ld4r)
26042)]
26043#[cfg_attr(
26044    not(target_arch = "arm"),
26045    stable(feature = "neon_intrinsics", since = "1.59.0")
26046)]
26047#[cfg_attr(
26048    target_arch = "arm",
26049    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26050)]
26051pub unsafe fn vld4_dup_p8(a: *const p8) -> poly8x8x4_t {
26052    let mut ret_val: poly8x8x4_t = transmute(vld4_dup_s8(transmute(a)));
26053    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
26054    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
26055    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
26056    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [7, 6, 5, 4, 3, 2, 1, 0]) };
26057    ret_val
26058}
26059#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
26060#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_p8)"]
26061#[doc = "## Safety"]
26062#[doc = "  * Neon instrinsic unsafe"]
26063#[inline]
26064#[cfg(target_endian = "little")]
26065#[target_feature(enable = "neon")]
26066#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26067#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
26068#[cfg_attr(
26069    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26070    assert_instr(ld4r)
26071)]
26072#[cfg_attr(
26073    not(target_arch = "arm"),
26074    stable(feature = "neon_intrinsics", since = "1.59.0")
26075)]
26076#[cfg_attr(
26077    target_arch = "arm",
26078    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26079)]
26080pub unsafe fn vld4q_dup_p8(a: *const p8) -> poly8x16x4_t {
26081    transmute(vld4q_dup_s8(transmute(a)))
26082}
26083#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
26084#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_p8)"]
26085#[doc = "## Safety"]
26086#[doc = "  * Neon instrinsic unsafe"]
26087#[inline]
26088#[cfg(target_endian = "big")]
26089#[target_feature(enable = "neon")]
26090#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26091#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
26092#[cfg_attr(
26093    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26094    assert_instr(ld4r)
26095)]
26096#[cfg_attr(
26097    not(target_arch = "arm"),
26098    stable(feature = "neon_intrinsics", since = "1.59.0")
26099)]
26100#[cfg_attr(
26101    target_arch = "arm",
26102    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26103)]
26104pub unsafe fn vld4q_dup_p8(a: *const p8) -> poly8x16x4_t {
26105    let mut ret_val: poly8x16x4_t = transmute(vld4q_dup_s8(transmute(a)));
26106    ret_val.0 = unsafe {
26107        simd_shuffle!(
26108            ret_val.0,
26109            ret_val.0,
26110            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
26111        )
26112    };
26113    ret_val.1 = unsafe {
26114        simd_shuffle!(
26115            ret_val.1,
26116            ret_val.1,
26117            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
26118        )
26119    };
26120    ret_val.2 = unsafe {
26121        simd_shuffle!(
26122            ret_val.2,
26123            ret_val.2,
26124            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
26125        )
26126    };
26127    ret_val.3 = unsafe {
26128        simd_shuffle!(
26129            ret_val.3,
26130            ret_val.3,
26131            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
26132        )
26133    };
26134    ret_val
26135}
26136#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
26137#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_p16)"]
26138#[doc = "## Safety"]
26139#[doc = "  * Neon instrinsic unsafe"]
26140#[inline]
26141#[cfg(target_endian = "little")]
26142#[target_feature(enable = "neon")]
26143#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26144#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
26145#[cfg_attr(
26146    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26147    assert_instr(ld4r)
26148)]
26149#[cfg_attr(
26150    not(target_arch = "arm"),
26151    stable(feature = "neon_intrinsics", since = "1.59.0")
26152)]
26153#[cfg_attr(
26154    target_arch = "arm",
26155    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26156)]
26157pub unsafe fn vld4_dup_p16(a: *const p16) -> poly16x4x4_t {
26158    transmute(vld4_dup_s16(transmute(a)))
26159}
26160#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
26161#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_p16)"]
26162#[doc = "## Safety"]
26163#[doc = "  * Neon instrinsic unsafe"]
26164#[inline]
26165#[cfg(target_endian = "big")]
26166#[target_feature(enable = "neon")]
26167#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26168#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
26169#[cfg_attr(
26170    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26171    assert_instr(ld4r)
26172)]
26173#[cfg_attr(
26174    not(target_arch = "arm"),
26175    stable(feature = "neon_intrinsics", since = "1.59.0")
26176)]
26177#[cfg_attr(
26178    target_arch = "arm",
26179    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26180)]
26181pub unsafe fn vld4_dup_p16(a: *const p16) -> poly16x4x4_t {
26182    let mut ret_val: poly16x4x4_t = transmute(vld4_dup_s16(transmute(a)));
26183    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
26184    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
26185    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [3, 2, 1, 0]) };
26186    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [3, 2, 1, 0]) };
26187    ret_val
26188}
26189#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
26190#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_p16)"]
26191#[doc = "## Safety"]
26192#[doc = "  * Neon instrinsic unsafe"]
26193#[inline]
26194#[cfg(target_endian = "little")]
26195#[target_feature(enable = "neon")]
26196#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26197#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
26198#[cfg_attr(
26199    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26200    assert_instr(ld4r)
26201)]
26202#[cfg_attr(
26203    not(target_arch = "arm"),
26204    stable(feature = "neon_intrinsics", since = "1.59.0")
26205)]
26206#[cfg_attr(
26207    target_arch = "arm",
26208    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26209)]
26210pub unsafe fn vld4q_dup_p16(a: *const p16) -> poly16x8x4_t {
26211    transmute(vld4q_dup_s16(transmute(a)))
26212}
26213#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
26214#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_p16)"]
26215#[doc = "## Safety"]
26216#[doc = "  * Neon instrinsic unsafe"]
26217#[inline]
26218#[cfg(target_endian = "big")]
26219#[target_feature(enable = "neon")]
26220#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26221#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
26222#[cfg_attr(
26223    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26224    assert_instr(ld4r)
26225)]
26226#[cfg_attr(
26227    not(target_arch = "arm"),
26228    stable(feature = "neon_intrinsics", since = "1.59.0")
26229)]
26230#[cfg_attr(
26231    target_arch = "arm",
26232    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26233)]
26234pub unsafe fn vld4q_dup_p16(a: *const p16) -> poly16x8x4_t {
26235    let mut ret_val: poly16x8x4_t = transmute(vld4q_dup_s16(transmute(a)));
26236    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
26237    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
26238    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
26239    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [7, 6, 5, 4, 3, 2, 1, 0]) };
26240    ret_val
26241}
26242#[doc = "Load single 4-element structure and replicate to all lanes of two registers"]
26243#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_f16)"]
26244#[doc = "## Safety"]
26245#[doc = "  * Neon instrinsic unsafe"]
26246#[inline]
26247#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26248#[cfg(target_arch = "arm")]
26249#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
26250#[target_feature(enable = "neon,fp16")]
26251#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
26252#[cfg(not(target_arch = "arm64ec"))]
26253pub unsafe fn vld4_f16(a: *const f16) -> float16x4x4_t {
26254    unsafe extern "unadjusted" {
26255        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4.v4f16.p0")]
26256        fn _vld4_f16(ptr: *const f16, size: i32) -> float16x4x4_t;
26257    }
26258    _vld4_f16(a as _, 2)
26259}
26260#[doc = "Load single 4-element structure and replicate to all lanes of two registers"]
26261#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_f16)"]
26262#[doc = "## Safety"]
26263#[doc = "  * Neon instrinsic unsafe"]
26264#[inline]
26265#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26266#[cfg(target_arch = "arm")]
26267#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
26268#[target_feature(enable = "neon,fp16")]
26269#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
26270#[cfg(not(target_arch = "arm64ec"))]
26271pub unsafe fn vld4q_f16(a: *const f16) -> float16x8x4_t {
26272    unsafe extern "unadjusted" {
26273        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4.v8f16.p0")]
26274        fn _vld4q_f16(ptr: *const f16, size: i32) -> float16x8x4_t;
26275    }
26276    _vld4q_f16(a as _, 2)
26277}
26278#[doc = "Load single 4-element structure and replicate to all lanes of two registers"]
26279#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_f16)"]
26280#[doc = "## Safety"]
26281#[doc = "  * Neon instrinsic unsafe"]
26282#[inline]
26283#[cfg(not(target_arch = "arm"))]
26284#[cfg_attr(
26285    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26286    assert_instr(ld4)
26287)]
26288#[target_feature(enable = "neon,fp16")]
26289#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
26290#[cfg(not(target_arch = "arm64ec"))]
26291pub unsafe fn vld4_f16(a: *const f16) -> float16x4x4_t {
26292    unsafe extern "unadjusted" {
26293        #[cfg_attr(
26294            any(target_arch = "aarch64", target_arch = "arm64ec"),
26295            link_name = "llvm.aarch64.neon.ld4.v4f16.p0"
26296        )]
26297        fn _vld4_f16(ptr: *const f16) -> float16x4x4_t;
26298    }
26299    _vld4_f16(a as _)
26300}
26301#[doc = "Load single 4-element structure and replicate to all lanes of two registers"]
26302#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_f16)"]
26303#[doc = "## Safety"]
26304#[doc = "  * Neon instrinsic unsafe"]
26305#[inline]
26306#[cfg(not(target_arch = "arm"))]
26307#[cfg_attr(
26308    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26309    assert_instr(ld4)
26310)]
26311#[target_feature(enable = "neon,fp16")]
26312#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
26313#[cfg(not(target_arch = "arm64ec"))]
26314pub unsafe fn vld4q_f16(a: *const f16) -> float16x8x4_t {
26315    unsafe extern "unadjusted" {
26316        #[cfg_attr(
26317            any(target_arch = "aarch64", target_arch = "arm64ec"),
26318            link_name = "llvm.aarch64.neon.ld4.v8f16.p0"
26319        )]
26320        fn _vld4q_f16(ptr: *const f16) -> float16x8x4_t;
26321    }
26322    _vld4q_f16(a as _)
26323}
26324#[doc = "Load multiple 4-element structures to four registers"]
26325#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_f32)"]
26326#[doc = "## Safety"]
26327#[doc = "  * Neon instrinsic unsafe"]
26328#[inline]
26329#[target_feature(enable = "neon")]
26330#[cfg(not(target_arch = "arm"))]
26331#[stable(feature = "neon_intrinsics", since = "1.59.0")]
26332#[cfg_attr(test, assert_instr(ld4))]
26333pub unsafe fn vld4_f32(a: *const f32) -> float32x2x4_t {
26334    unsafe extern "unadjusted" {
26335        #[cfg_attr(
26336            any(target_arch = "aarch64", target_arch = "arm64ec"),
26337            link_name = "llvm.aarch64.neon.ld4.v2f32.p0"
26338        )]
26339        fn _vld4_f32(ptr: *const float32x2_t) -> float32x2x4_t;
26340    }
26341    _vld4_f32(a as _)
26342}
26343#[doc = "Load multiple 4-element structures to four registers"]
26344#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_f32)"]
26345#[doc = "## Safety"]
26346#[doc = "  * Neon instrinsic unsafe"]
26347#[inline]
26348#[target_feature(enable = "neon")]
26349#[cfg(not(target_arch = "arm"))]
26350#[stable(feature = "neon_intrinsics", since = "1.59.0")]
26351#[cfg_attr(test, assert_instr(ld4))]
26352pub unsafe fn vld4q_f32(a: *const f32) -> float32x4x4_t {
26353    unsafe extern "unadjusted" {
26354        #[cfg_attr(
26355            any(target_arch = "aarch64", target_arch = "arm64ec"),
26356            link_name = "llvm.aarch64.neon.ld4.v4f32.p0"
26357        )]
26358        fn _vld4q_f32(ptr: *const float32x4_t) -> float32x4x4_t;
26359    }
26360    _vld4q_f32(a as _)
26361}
26362#[doc = "Load multiple 4-element structures to four registers"]
26363#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_s8)"]
26364#[doc = "## Safety"]
26365#[doc = "  * Neon instrinsic unsafe"]
26366#[inline]
26367#[target_feature(enable = "neon")]
26368#[cfg(not(target_arch = "arm"))]
26369#[stable(feature = "neon_intrinsics", since = "1.59.0")]
26370#[cfg_attr(test, assert_instr(ld4))]
26371pub unsafe fn vld4_s8(a: *const i8) -> int8x8x4_t {
26372    unsafe extern "unadjusted" {
26373        #[cfg_attr(
26374            any(target_arch = "aarch64", target_arch = "arm64ec"),
26375            link_name = "llvm.aarch64.neon.ld4.v8i8.p0"
26376        )]
26377        fn _vld4_s8(ptr: *const int8x8_t) -> int8x8x4_t;
26378    }
26379    _vld4_s8(a as _)
26380}
26381#[doc = "Load multiple 4-element structures to four registers"]
26382#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_s8)"]
26383#[doc = "## Safety"]
26384#[doc = "  * Neon instrinsic unsafe"]
26385#[inline]
26386#[target_feature(enable = "neon")]
26387#[cfg(not(target_arch = "arm"))]
26388#[stable(feature = "neon_intrinsics", since = "1.59.0")]
26389#[cfg_attr(test, assert_instr(ld4))]
26390pub unsafe fn vld4q_s8(a: *const i8) -> int8x16x4_t {
26391    unsafe extern "unadjusted" {
26392        #[cfg_attr(
26393            any(target_arch = "aarch64", target_arch = "arm64ec"),
26394            link_name = "llvm.aarch64.neon.ld4.v16i8.p0"
26395        )]
26396        fn _vld4q_s8(ptr: *const int8x16_t) -> int8x16x4_t;
26397    }
26398    _vld4q_s8(a as _)
26399}
26400#[doc = "Load multiple 4-element structures to four registers"]
26401#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_s16)"]
26402#[doc = "## Safety"]
26403#[doc = "  * Neon instrinsic unsafe"]
26404#[inline]
26405#[target_feature(enable = "neon")]
26406#[cfg(not(target_arch = "arm"))]
26407#[stable(feature = "neon_intrinsics", since = "1.59.0")]
26408#[cfg_attr(test, assert_instr(ld4))]
26409pub unsafe fn vld4_s16(a: *const i16) -> int16x4x4_t {
26410    unsafe extern "unadjusted" {
26411        #[cfg_attr(
26412            any(target_arch = "aarch64", target_arch = "arm64ec"),
26413            link_name = "llvm.aarch64.neon.ld4.v4i16.p0"
26414        )]
26415        fn _vld4_s16(ptr: *const int16x4_t) -> int16x4x4_t;
26416    }
26417    _vld4_s16(a as _)
26418}
26419#[doc = "Load multiple 4-element structures to four registers"]
26420#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_s16)"]
26421#[doc = "## Safety"]
26422#[doc = "  * Neon instrinsic unsafe"]
26423#[inline]
26424#[target_feature(enable = "neon")]
26425#[cfg(not(target_arch = "arm"))]
26426#[stable(feature = "neon_intrinsics", since = "1.59.0")]
26427#[cfg_attr(test, assert_instr(ld4))]
26428pub unsafe fn vld4q_s16(a: *const i16) -> int16x8x4_t {
26429    unsafe extern "unadjusted" {
26430        #[cfg_attr(
26431            any(target_arch = "aarch64", target_arch = "arm64ec"),
26432            link_name = "llvm.aarch64.neon.ld4.v8i16.p0"
26433        )]
26434        fn _vld4q_s16(ptr: *const int16x8_t) -> int16x8x4_t;
26435    }
26436    _vld4q_s16(a as _)
26437}
26438#[doc = "Load multiple 4-element structures to four registers"]
26439#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_s32)"]
26440#[doc = "## Safety"]
26441#[doc = "  * Neon instrinsic unsafe"]
26442#[inline]
26443#[target_feature(enable = "neon")]
26444#[cfg(not(target_arch = "arm"))]
26445#[stable(feature = "neon_intrinsics", since = "1.59.0")]
26446#[cfg_attr(test, assert_instr(ld4))]
26447pub unsafe fn vld4_s32(a: *const i32) -> int32x2x4_t {
26448    unsafe extern "unadjusted" {
26449        #[cfg_attr(
26450            any(target_arch = "aarch64", target_arch = "arm64ec"),
26451            link_name = "llvm.aarch64.neon.ld4.v2i32.p0"
26452        )]
26453        fn _vld4_s32(ptr: *const int32x2_t) -> int32x2x4_t;
26454    }
26455    _vld4_s32(a as _)
26456}
26457#[doc = "Load multiple 4-element structures to four registers"]
26458#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_s32)"]
26459#[doc = "## Safety"]
26460#[doc = "  * Neon instrinsic unsafe"]
26461#[inline]
26462#[target_feature(enable = "neon")]
26463#[cfg(not(target_arch = "arm"))]
26464#[stable(feature = "neon_intrinsics", since = "1.59.0")]
26465#[cfg_attr(test, assert_instr(ld4))]
26466pub unsafe fn vld4q_s32(a: *const i32) -> int32x4x4_t {
26467    unsafe extern "unadjusted" {
26468        #[cfg_attr(
26469            any(target_arch = "aarch64", target_arch = "arm64ec"),
26470            link_name = "llvm.aarch64.neon.ld4.v4i32.p0"
26471        )]
26472        fn _vld4q_s32(ptr: *const int32x4_t) -> int32x4x4_t;
26473    }
26474    _vld4q_s32(a as _)
26475}
26476#[doc = "Load multiple 4-element structures to four registers"]
26477#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_f32)"]
26478#[doc = "## Safety"]
26479#[doc = "  * Neon instrinsic unsafe"]
26480#[inline]
26481#[target_feature(enable = "neon,v7")]
26482#[cfg(target_arch = "arm")]
26483#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
26484#[cfg_attr(test, assert_instr(vld4))]
26485pub unsafe fn vld4_f32(a: *const f32) -> float32x2x4_t {
26486    unsafe extern "unadjusted" {
26487        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4.v2f32.p0")]
26488        fn _vld4_f32(ptr: *const i8, size: i32) -> float32x2x4_t;
26489    }
26490    _vld4_f32(a as *const i8, 4)
26491}
26492#[doc = "Load multiple 4-element structures to four registers"]
26493#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_f32)"]
26494#[doc = "## Safety"]
26495#[doc = "  * Neon instrinsic unsafe"]
26496#[inline]
26497#[target_feature(enable = "neon,v7")]
26498#[cfg(target_arch = "arm")]
26499#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
26500#[cfg_attr(test, assert_instr(vld4))]
26501pub unsafe fn vld4q_f32(a: *const f32) -> float32x4x4_t {
26502    unsafe extern "unadjusted" {
26503        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4.v4f32.p0")]
26504        fn _vld4q_f32(ptr: *const i8, size: i32) -> float32x4x4_t;
26505    }
26506    _vld4q_f32(a as *const i8, 4)
26507}
26508#[doc = "Load multiple 4-element structures to four registers"]
26509#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_s8)"]
26510#[doc = "## Safety"]
26511#[doc = "  * Neon instrinsic unsafe"]
26512#[inline]
26513#[target_feature(enable = "neon,v7")]
26514#[cfg(target_arch = "arm")]
26515#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
26516#[cfg_attr(test, assert_instr(vld4))]
26517pub unsafe fn vld4_s8(a: *const i8) -> int8x8x4_t {
26518    unsafe extern "unadjusted" {
26519        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4.v8i8.p0")]
26520        fn _vld4_s8(ptr: *const i8, size: i32) -> int8x8x4_t;
26521    }
26522    _vld4_s8(a as *const i8, 1)
26523}
26524#[doc = "Load multiple 4-element structures to four registers"]
26525#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_s8)"]
26526#[doc = "## Safety"]
26527#[doc = "  * Neon instrinsic unsafe"]
26528#[inline]
26529#[target_feature(enable = "neon,v7")]
26530#[cfg(target_arch = "arm")]
26531#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
26532#[cfg_attr(test, assert_instr(vld4))]
26533pub unsafe fn vld4q_s8(a: *const i8) -> int8x16x4_t {
26534    unsafe extern "unadjusted" {
26535        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4.v16i8.p0")]
26536        fn _vld4q_s8(ptr: *const i8, size: i32) -> int8x16x4_t;
26537    }
26538    _vld4q_s8(a as *const i8, 1)
26539}
26540#[doc = "Load multiple 4-element structures to four registers"]
26541#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_s16)"]
26542#[doc = "## Safety"]
26543#[doc = "  * Neon instrinsic unsafe"]
26544#[inline]
26545#[target_feature(enable = "neon,v7")]
26546#[cfg(target_arch = "arm")]
26547#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
26548#[cfg_attr(test, assert_instr(vld4))]
26549pub unsafe fn vld4_s16(a: *const i16) -> int16x4x4_t {
26550    unsafe extern "unadjusted" {
26551        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4.v4i16.p0")]
26552        fn _vld4_s16(ptr: *const i8, size: i32) -> int16x4x4_t;
26553    }
26554    _vld4_s16(a as *const i8, 2)
26555}
26556#[doc = "Load multiple 4-element structures to four registers"]
26557#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_s16)"]
26558#[doc = "## Safety"]
26559#[doc = "  * Neon instrinsic unsafe"]
26560#[inline]
26561#[target_feature(enable = "neon,v7")]
26562#[cfg(target_arch = "arm")]
26563#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
26564#[cfg_attr(test, assert_instr(vld4))]
26565pub unsafe fn vld4q_s16(a: *const i16) -> int16x8x4_t {
26566    unsafe extern "unadjusted" {
26567        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4.v8i16.p0")]
26568        fn _vld4q_s16(ptr: *const i8, size: i32) -> int16x8x4_t;
26569    }
26570    _vld4q_s16(a as *const i8, 2)
26571}
26572#[doc = "Load multiple 4-element structures to four registers"]
26573#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_s32)"]
26574#[doc = "## Safety"]
26575#[doc = "  * Neon instrinsic unsafe"]
26576#[inline]
26577#[target_feature(enable = "neon,v7")]
26578#[cfg(target_arch = "arm")]
26579#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
26580#[cfg_attr(test, assert_instr(vld4))]
26581pub unsafe fn vld4_s32(a: *const i32) -> int32x2x4_t {
26582    unsafe extern "unadjusted" {
26583        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4.v2i32.p0")]
26584        fn _vld4_s32(ptr: *const i8, size: i32) -> int32x2x4_t;
26585    }
26586    _vld4_s32(a as *const i8, 4)
26587}
26588#[doc = "Load multiple 4-element structures to four registers"]
26589#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_s32)"]
26590#[doc = "## Safety"]
26591#[doc = "  * Neon instrinsic unsafe"]
26592#[inline]
26593#[target_feature(enable = "neon,v7")]
26594#[cfg(target_arch = "arm")]
26595#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
26596#[cfg_attr(test, assert_instr(vld4))]
26597pub unsafe fn vld4q_s32(a: *const i32) -> int32x4x4_t {
26598    unsafe extern "unadjusted" {
26599        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4.v4i32.p0")]
26600        fn _vld4q_s32(ptr: *const i8, size: i32) -> int32x4x4_t;
26601    }
26602    _vld4q_s32(a as *const i8, 4)
26603}
26604#[doc = "Load multiple 4-element structures to two registers"]
26605#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_f16)"]
26606#[doc = "## Safety"]
26607#[doc = "  * Neon instrinsic unsafe"]
26608#[inline]
26609#[target_feature(enable = "neon,v7")]
26610#[cfg(target_arch = "arm")]
26611#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4, LANE = 0))]
26612#[rustc_legacy_const_generics(2)]
26613#[target_feature(enable = "neon,fp16")]
26614#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
26615#[cfg(not(target_arch = "arm64ec"))]
26616pub unsafe fn vld4_lane_f16<const LANE: i32>(a: *const f16, b: float16x4x4_t) -> float16x4x4_t {
26617    static_assert_uimm_bits!(LANE, 2);
26618    unsafe extern "unadjusted" {
26619        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4lane.v4f16.p0")]
26620        fn _vld4_lane_f16(
26621            ptr: *const f16,
26622            a: float16x4_t,
26623            b: float16x4_t,
26624            c: float16x4_t,
26625            d: float16x4_t,
26626            n: i32,
26627            size: i32,
26628        ) -> float16x4x4_t;
26629    }
26630    _vld4_lane_f16(a as _, b.0, b.1, b.2, b.3, LANE, 2)
26631}
26632#[doc = "Load multiple 4-element structures to two registers"]
26633#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_lane_f16)"]
26634#[doc = "## Safety"]
26635#[doc = "  * Neon instrinsic unsafe"]
26636#[inline]
26637#[target_feature(enable = "neon,v7")]
26638#[cfg(target_arch = "arm")]
26639#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4, LANE = 0))]
26640#[rustc_legacy_const_generics(2)]
26641#[target_feature(enable = "neon,fp16")]
26642#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
26643#[cfg(not(target_arch = "arm64ec"))]
26644pub unsafe fn vld4q_lane_f16<const LANE: i32>(a: *const f16, b: float16x8x4_t) -> float16x8x4_t {
26645    static_assert_uimm_bits!(LANE, 3);
26646    unsafe extern "unadjusted" {
26647        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4lane.v8f16.p0")]
26648        fn _vld4q_lane_f16(
26649            ptr: *const f16,
26650            a: float16x8_t,
26651            b: float16x8_t,
26652            c: float16x8_t,
26653            d: float16x8_t,
26654            n: i32,
26655            size: i32,
26656        ) -> float16x8x4_t;
26657    }
26658    _vld4q_lane_f16(a as _, b.0, b.1, b.2, b.3, LANE, 2)
26659}
26660#[doc = "Load multiple 4-element structures to two registers"]
26661#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_f16)"]
26662#[doc = "## Safety"]
26663#[doc = "  * Neon instrinsic unsafe"]
26664#[inline]
26665#[cfg(not(target_arch = "arm"))]
26666#[cfg_attr(
26667    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26668    assert_instr(ld4, LANE = 0)
26669)]
26670#[rustc_legacy_const_generics(2)]
26671#[target_feature(enable = "neon,fp16")]
26672#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
26673#[cfg(not(target_arch = "arm64ec"))]
26674pub unsafe fn vld4_lane_f16<const LANE: i32>(a: *const f16, b: float16x4x4_t) -> float16x4x4_t {
26675    static_assert_uimm_bits!(LANE, 2);
26676    unsafe extern "unadjusted" {
26677        #[cfg_attr(
26678            any(target_arch = "aarch64", target_arch = "arm64ec"),
26679            link_name = "llvm.aarch64.neon.ld4lane.v4f16.p0"
26680        )]
26681        fn _vld4_lane_f16(
26682            a: float16x4_t,
26683            b: float16x4_t,
26684            c: float16x4_t,
26685            d: float16x4_t,
26686            n: i64,
26687            ptr: *const f16,
26688        ) -> float16x4x4_t;
26689    }
26690    _vld4_lane_f16(b.0, b.1, b.2, b.3, LANE as i64, a as _)
26691}
26692#[doc = "Load multiple 4-element structures to two registers"]
26693#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_lane_f16)"]
26694#[doc = "## Safety"]
26695#[doc = "  * Neon instrinsic unsafe"]
26696#[inline]
26697#[cfg(not(target_arch = "arm"))]
26698#[cfg_attr(
26699    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26700    assert_instr(ld4, LANE = 0)
26701)]
26702#[rustc_legacy_const_generics(2)]
26703#[target_feature(enable = "neon,fp16")]
26704#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
26705#[cfg(not(target_arch = "arm64ec"))]
26706pub unsafe fn vld4q_lane_f16<const LANE: i32>(a: *const f16, b: float16x8x4_t) -> float16x8x4_t {
26707    static_assert_uimm_bits!(LANE, 3);
26708    unsafe extern "unadjusted" {
26709        #[cfg_attr(
26710            any(target_arch = "aarch64", target_arch = "arm64ec"),
26711            link_name = "llvm.aarch64.neon.ld4lane.v8f16.p0"
26712        )]
26713        fn _vld4q_lane_f16(
26714            a: float16x8_t,
26715            b: float16x8_t,
26716            c: float16x8_t,
26717            d: float16x8_t,
26718            n: i64,
26719            ptr: *const f16,
26720        ) -> float16x8x4_t;
26721    }
26722    _vld4q_lane_f16(b.0, b.1, b.2, b.3, LANE as i64, a as _)
26723}
26724#[doc = "Load multiple 4-element structures to four registers"]
26725#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_f32)"]
26726#[doc = "## Safety"]
26727#[doc = "  * Neon instrinsic unsafe"]
26728#[inline]
26729#[target_feature(enable = "neon")]
26730#[cfg(not(target_arch = "arm"))]
26731#[cfg_attr(test, assert_instr(ld4, LANE = 0))]
26732#[rustc_legacy_const_generics(2)]
26733#[stable(feature = "neon_intrinsics", since = "1.59.0")]
26734pub unsafe fn vld4_lane_f32<const LANE: i32>(a: *const f32, b: float32x2x4_t) -> float32x2x4_t {
26735    static_assert_uimm_bits!(LANE, 1);
26736    unsafe extern "unadjusted" {
26737        #[cfg_attr(
26738            any(target_arch = "aarch64", target_arch = "arm64ec"),
26739            link_name = "llvm.aarch64.neon.ld4lane.v2f32.p0"
26740        )]
26741        fn _vld4_lane_f32(
26742            a: float32x2_t,
26743            b: float32x2_t,
26744            c: float32x2_t,
26745            d: float32x2_t,
26746            n: i64,
26747            ptr: *const i8,
26748        ) -> float32x2x4_t;
26749    }
26750    _vld4_lane_f32(b.0, b.1, b.2, b.3, LANE as i64, a as _)
26751}
26752#[doc = "Load multiple 4-element structures to four registers"]
26753#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_lane_f32)"]
26754#[doc = "## Safety"]
26755#[doc = "  * Neon instrinsic unsafe"]
26756#[inline]
26757#[target_feature(enable = "neon")]
26758#[cfg(not(target_arch = "arm"))]
26759#[cfg_attr(test, assert_instr(ld4, LANE = 0))]
26760#[rustc_legacy_const_generics(2)]
26761#[stable(feature = "neon_intrinsics", since = "1.59.0")]
26762pub unsafe fn vld4q_lane_f32<const LANE: i32>(a: *const f32, b: float32x4x4_t) -> float32x4x4_t {
26763    static_assert_uimm_bits!(LANE, 2);
26764    unsafe extern "unadjusted" {
26765        #[cfg_attr(
26766            any(target_arch = "aarch64", target_arch = "arm64ec"),
26767            link_name = "llvm.aarch64.neon.ld4lane.v4f32.p0"
26768        )]
26769        fn _vld4q_lane_f32(
26770            a: float32x4_t,
26771            b: float32x4_t,
26772            c: float32x4_t,
26773            d: float32x4_t,
26774            n: i64,
26775            ptr: *const i8,
26776        ) -> float32x4x4_t;
26777    }
26778    _vld4q_lane_f32(b.0, b.1, b.2, b.3, LANE as i64, a as _)
26779}
26780#[doc = "Load multiple 4-element structures to four registers"]
26781#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_s8)"]
26782#[doc = "## Safety"]
26783#[doc = "  * Neon instrinsic unsafe"]
26784#[inline]
26785#[target_feature(enable = "neon")]
26786#[cfg(not(target_arch = "arm"))]
26787#[cfg_attr(test, assert_instr(ld4, LANE = 0))]
26788#[rustc_legacy_const_generics(2)]
26789#[stable(feature = "neon_intrinsics", since = "1.59.0")]
26790pub unsafe fn vld4_lane_s8<const LANE: i32>(a: *const i8, b: int8x8x4_t) -> int8x8x4_t {
26791    static_assert_uimm_bits!(LANE, 3);
26792    unsafe extern "unadjusted" {
26793        #[cfg_attr(
26794            any(target_arch = "aarch64", target_arch = "arm64ec"),
26795            link_name = "llvm.aarch64.neon.ld4lane.v8i8.p0"
26796        )]
26797        fn _vld4_lane_s8(
26798            a: int8x8_t,
26799            b: int8x8_t,
26800            c: int8x8_t,
26801            d: int8x8_t,
26802            n: i64,
26803            ptr: *const i8,
26804        ) -> int8x8x4_t;
26805    }
26806    _vld4_lane_s8(b.0, b.1, b.2, b.3, LANE as i64, a as _)
26807}
26808#[doc = "Load multiple 4-element structures to four registers"]
26809#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_s16)"]
26810#[doc = "## Safety"]
26811#[doc = "  * Neon instrinsic unsafe"]
26812#[inline]
26813#[target_feature(enable = "neon")]
26814#[cfg(not(target_arch = "arm"))]
26815#[cfg_attr(test, assert_instr(ld4, LANE = 0))]
26816#[rustc_legacy_const_generics(2)]
26817#[stable(feature = "neon_intrinsics", since = "1.59.0")]
26818pub unsafe fn vld4_lane_s16<const LANE: i32>(a: *const i16, b: int16x4x4_t) -> int16x4x4_t {
26819    static_assert_uimm_bits!(LANE, 2);
26820    unsafe extern "unadjusted" {
26821        #[cfg_attr(
26822            any(target_arch = "aarch64", target_arch = "arm64ec"),
26823            link_name = "llvm.aarch64.neon.ld4lane.v4i16.p0"
26824        )]
26825        fn _vld4_lane_s16(
26826            a: int16x4_t,
26827            b: int16x4_t,
26828            c: int16x4_t,
26829            d: int16x4_t,
26830            n: i64,
26831            ptr: *const i8,
26832        ) -> int16x4x4_t;
26833    }
26834    _vld4_lane_s16(b.0, b.1, b.2, b.3, LANE as i64, a as _)
26835}
26836#[doc = "Load multiple 4-element structures to four registers"]
26837#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_lane_s16)"]
26838#[doc = "## Safety"]
26839#[doc = "  * Neon instrinsic unsafe"]
26840#[inline]
26841#[target_feature(enable = "neon")]
26842#[cfg(not(target_arch = "arm"))]
26843#[cfg_attr(test, assert_instr(ld4, LANE = 0))]
26844#[rustc_legacy_const_generics(2)]
26845#[stable(feature = "neon_intrinsics", since = "1.59.0")]
26846pub unsafe fn vld4q_lane_s16<const LANE: i32>(a: *const i16, b: int16x8x4_t) -> int16x8x4_t {
26847    static_assert_uimm_bits!(LANE, 3);
26848    unsafe extern "unadjusted" {
26849        #[cfg_attr(
26850            any(target_arch = "aarch64", target_arch = "arm64ec"),
26851            link_name = "llvm.aarch64.neon.ld4lane.v8i16.p0"
26852        )]
26853        fn _vld4q_lane_s16(
26854            a: int16x8_t,
26855            b: int16x8_t,
26856            c: int16x8_t,
26857            d: int16x8_t,
26858            n: i64,
26859            ptr: *const i8,
26860        ) -> int16x8x4_t;
26861    }
26862    _vld4q_lane_s16(b.0, b.1, b.2, b.3, LANE as i64, a as _)
26863}
26864#[doc = "Load multiple 4-element structures to four registers"]
26865#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_s32)"]
26866#[doc = "## Safety"]
26867#[doc = "  * Neon instrinsic unsafe"]
26868#[inline]
26869#[target_feature(enable = "neon")]
26870#[cfg(not(target_arch = "arm"))]
26871#[cfg_attr(test, assert_instr(ld4, LANE = 0))]
26872#[rustc_legacy_const_generics(2)]
26873#[stable(feature = "neon_intrinsics", since = "1.59.0")]
26874pub unsafe fn vld4_lane_s32<const LANE: i32>(a: *const i32, b: int32x2x4_t) -> int32x2x4_t {
26875    static_assert_uimm_bits!(LANE, 1);
26876    unsafe extern "unadjusted" {
26877        #[cfg_attr(
26878            any(target_arch = "aarch64", target_arch = "arm64ec"),
26879            link_name = "llvm.aarch64.neon.ld4lane.v2i32.p0"
26880        )]
26881        fn _vld4_lane_s32(
26882            a: int32x2_t,
26883            b: int32x2_t,
26884            c: int32x2_t,
26885            d: int32x2_t,
26886            n: i64,
26887            ptr: *const i8,
26888        ) -> int32x2x4_t;
26889    }
26890    _vld4_lane_s32(b.0, b.1, b.2, b.3, LANE as i64, a as _)
26891}
26892#[doc = "Load multiple 4-element structures to four registers"]
26893#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_lane_s32)"]
26894#[doc = "## Safety"]
26895#[doc = "  * Neon instrinsic unsafe"]
26896#[inline]
26897#[target_feature(enable = "neon")]
26898#[cfg(not(target_arch = "arm"))]
26899#[cfg_attr(test, assert_instr(ld4, LANE = 0))]
26900#[rustc_legacy_const_generics(2)]
26901#[stable(feature = "neon_intrinsics", since = "1.59.0")]
26902pub unsafe fn vld4q_lane_s32<const LANE: i32>(a: *const i32, b: int32x4x4_t) -> int32x4x4_t {
26903    static_assert_uimm_bits!(LANE, 2);
26904    unsafe extern "unadjusted" {
26905        #[cfg_attr(
26906            any(target_arch = "aarch64", target_arch = "arm64ec"),
26907            link_name = "llvm.aarch64.neon.ld4lane.v4i32.p0"
26908        )]
26909        fn _vld4q_lane_s32(
26910            a: int32x4_t,
26911            b: int32x4_t,
26912            c: int32x4_t,
26913            d: int32x4_t,
26914            n: i64,
26915            ptr: *const i8,
26916        ) -> int32x4x4_t;
26917    }
26918    _vld4q_lane_s32(b.0, b.1, b.2, b.3, LANE as i64, a as _)
26919}
26920#[doc = "Load multiple 4-element structures to four registers"]
26921#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_f32)"]
26922#[doc = "## Safety"]
26923#[doc = "  * Neon instrinsic unsafe"]
26924#[inline]
26925#[target_feature(enable = "neon,v7")]
26926#[cfg(target_arch = "arm")]
26927#[cfg_attr(test, assert_instr(vld4, LANE = 0))]
26928#[rustc_legacy_const_generics(2)]
26929#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
26930pub unsafe fn vld4_lane_f32<const LANE: i32>(a: *const f32, b: float32x2x4_t) -> float32x2x4_t {
26931    static_assert_uimm_bits!(LANE, 1);
26932    unsafe extern "unadjusted" {
26933        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4lane.v2f32.p0")]
26934        fn _vld4_lane_f32(
26935            ptr: *const i8,
26936            a: float32x2_t,
26937            b: float32x2_t,
26938            c: float32x2_t,
26939            d: float32x2_t,
26940            n: i32,
26941            size: i32,
26942        ) -> float32x2x4_t;
26943    }
26944    _vld4_lane_f32(a as _, b.0, b.1, b.2, b.3, LANE, 4)
26945}
26946#[doc = "Load multiple 4-element structures to four registers"]
26947#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_lane_f32)"]
26948#[doc = "## Safety"]
26949#[doc = "  * Neon instrinsic unsafe"]
26950#[inline]
26951#[target_feature(enable = "neon,v7")]
26952#[cfg(target_arch = "arm")]
26953#[cfg_attr(test, assert_instr(vld4, LANE = 0))]
26954#[rustc_legacy_const_generics(2)]
26955#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
26956pub unsafe fn vld4q_lane_f32<const LANE: i32>(a: *const f32, b: float32x4x4_t) -> float32x4x4_t {
26957    static_assert_uimm_bits!(LANE, 2);
26958    unsafe extern "unadjusted" {
26959        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4lane.v4f32.p0")]
26960        fn _vld4q_lane_f32(
26961            ptr: *const i8,
26962            a: float32x4_t,
26963            b: float32x4_t,
26964            c: float32x4_t,
26965            d: float32x4_t,
26966            n: i32,
26967            size: i32,
26968        ) -> float32x4x4_t;
26969    }
26970    _vld4q_lane_f32(a as _, b.0, b.1, b.2, b.3, LANE, 4)
26971}
26972#[doc = "Load multiple 4-element structures to four registers"]
26973#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_s8)"]
26974#[doc = "## Safety"]
26975#[doc = "  * Neon instrinsic unsafe"]
26976#[inline]
26977#[target_feature(enable = "neon,v7")]
26978#[cfg(target_arch = "arm")]
26979#[cfg_attr(test, assert_instr(vld4, LANE = 0))]
26980#[rustc_legacy_const_generics(2)]
26981#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
26982pub unsafe fn vld4_lane_s8<const LANE: i32>(a: *const i8, b: int8x8x4_t) -> int8x8x4_t {
26983    static_assert_uimm_bits!(LANE, 3);
26984    unsafe extern "unadjusted" {
26985        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4lane.v8i8.p0")]
26986        fn _vld4_lane_s8(
26987            ptr: *const i8,
26988            a: int8x8_t,
26989            b: int8x8_t,
26990            c: int8x8_t,
26991            d: int8x8_t,
26992            n: i32,
26993            size: i32,
26994        ) -> int8x8x4_t;
26995    }
26996    _vld4_lane_s8(a as _, b.0, b.1, b.2, b.3, LANE, 1)
26997}
26998#[doc = "Load multiple 4-element structures to four registers"]
26999#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_s16)"]
27000#[doc = "## Safety"]
27001#[doc = "  * Neon instrinsic unsafe"]
27002#[inline]
27003#[target_feature(enable = "neon,v7")]
27004#[cfg(target_arch = "arm")]
27005#[cfg_attr(test, assert_instr(vld4, LANE = 0))]
27006#[rustc_legacy_const_generics(2)]
27007#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
27008pub unsafe fn vld4_lane_s16<const LANE: i32>(a: *const i16, b: int16x4x4_t) -> int16x4x4_t {
27009    static_assert_uimm_bits!(LANE, 2);
27010    unsafe extern "unadjusted" {
27011        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4lane.v4i16.p0")]
27012        fn _vld4_lane_s16(
27013            ptr: *const i8,
27014            a: int16x4_t,
27015            b: int16x4_t,
27016            c: int16x4_t,
27017            d: int16x4_t,
27018            n: i32,
27019            size: i32,
27020        ) -> int16x4x4_t;
27021    }
27022    _vld4_lane_s16(a as _, b.0, b.1, b.2, b.3, LANE, 2)
27023}
27024#[doc = "Load multiple 4-element structures to four registers"]
27025#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_lane_s16)"]
27026#[doc = "## Safety"]
27027#[doc = "  * Neon instrinsic unsafe"]
27028#[inline]
27029#[target_feature(enable = "neon,v7")]
27030#[cfg(target_arch = "arm")]
27031#[cfg_attr(test, assert_instr(vld4, LANE = 0))]
27032#[rustc_legacy_const_generics(2)]
27033#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
27034pub unsafe fn vld4q_lane_s16<const LANE: i32>(a: *const i16, b: int16x8x4_t) -> int16x8x4_t {
27035    static_assert_uimm_bits!(LANE, 3);
27036    unsafe extern "unadjusted" {
27037        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4lane.v8i16.p0")]
27038        fn _vld4q_lane_s16(
27039            ptr: *const i8,
27040            a: int16x8_t,
27041            b: int16x8_t,
27042            c: int16x8_t,
27043            d: int16x8_t,
27044            n: i32,
27045            size: i32,
27046        ) -> int16x8x4_t;
27047    }
27048    _vld4q_lane_s16(a as _, b.0, b.1, b.2, b.3, LANE, 2)
27049}
27050#[doc = "Load multiple 4-element structures to four registers"]
27051#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_s32)"]
27052#[doc = "## Safety"]
27053#[doc = "  * Neon instrinsic unsafe"]
27054#[inline]
27055#[target_feature(enable = "neon,v7")]
27056#[cfg(target_arch = "arm")]
27057#[cfg_attr(test, assert_instr(vld4, LANE = 0))]
27058#[rustc_legacy_const_generics(2)]
27059#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
27060pub unsafe fn vld4_lane_s32<const LANE: i32>(a: *const i32, b: int32x2x4_t) -> int32x2x4_t {
27061    static_assert_uimm_bits!(LANE, 1);
27062    unsafe extern "unadjusted" {
27063        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4lane.v2i32.p0")]
27064        fn _vld4_lane_s32(
27065            ptr: *const i8,
27066            a: int32x2_t,
27067            b: int32x2_t,
27068            c: int32x2_t,
27069            d: int32x2_t,
27070            n: i32,
27071            size: i32,
27072        ) -> int32x2x4_t;
27073    }
27074    _vld4_lane_s32(a as _, b.0, b.1, b.2, b.3, LANE, 4)
27075}
27076#[doc = "Load multiple 4-element structures to four registers"]
27077#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_lane_s32)"]
27078#[doc = "## Safety"]
27079#[doc = "  * Neon instrinsic unsafe"]
27080#[inline]
27081#[target_feature(enable = "neon,v7")]
27082#[cfg(target_arch = "arm")]
27083#[cfg_attr(test, assert_instr(vld4, LANE = 0))]
27084#[rustc_legacy_const_generics(2)]
27085#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
27086pub unsafe fn vld4q_lane_s32<const LANE: i32>(a: *const i32, b: int32x4x4_t) -> int32x4x4_t {
27087    static_assert_uimm_bits!(LANE, 2);
27088    unsafe extern "unadjusted" {
27089        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4lane.v4i32.p0")]
27090        fn _vld4q_lane_s32(
27091            ptr: *const i8,
27092            a: int32x4_t,
27093            b: int32x4_t,
27094            c: int32x4_t,
27095            d: int32x4_t,
27096            n: i32,
27097            size: i32,
27098        ) -> int32x4x4_t;
27099    }
27100    _vld4q_lane_s32(a as _, b.0, b.1, b.2, b.3, LANE, 4)
27101}
27102#[doc = "Load multiple 4-element structures to four registers"]
27103#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_u8)"]
27104#[doc = "## Safety"]
27105#[doc = "  * Neon instrinsic unsafe"]
27106#[inline]
27107#[target_feature(enable = "neon")]
27108#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27109#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4, LANE = 0))]
27110#[cfg_attr(
27111    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27112    assert_instr(ld4, LANE = 0)
27113)]
27114#[rustc_legacy_const_generics(2)]
27115#[cfg_attr(
27116    not(target_arch = "arm"),
27117    stable(feature = "neon_intrinsics", since = "1.59.0")
27118)]
27119#[cfg_attr(
27120    target_arch = "arm",
27121    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27122)]
27123pub unsafe fn vld4_lane_u8<const LANE: i32>(a: *const u8, b: uint8x8x4_t) -> uint8x8x4_t {
27124    static_assert_uimm_bits!(LANE, 3);
27125    transmute(vld4_lane_s8::<LANE>(transmute(a), transmute(b)))
27126}
27127#[doc = "Load multiple 4-element structures to four registers"]
27128#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_u16)"]
27129#[doc = "## Safety"]
27130#[doc = "  * Neon instrinsic unsafe"]
27131#[inline]
27132#[target_feature(enable = "neon")]
27133#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27134#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4, LANE = 0))]
27135#[cfg_attr(
27136    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27137    assert_instr(ld4, LANE = 0)
27138)]
27139#[rustc_legacy_const_generics(2)]
27140#[cfg_attr(
27141    not(target_arch = "arm"),
27142    stable(feature = "neon_intrinsics", since = "1.59.0")
27143)]
27144#[cfg_attr(
27145    target_arch = "arm",
27146    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27147)]
27148pub unsafe fn vld4_lane_u16<const LANE: i32>(a: *const u16, b: uint16x4x4_t) -> uint16x4x4_t {
27149    static_assert_uimm_bits!(LANE, 2);
27150    transmute(vld4_lane_s16::<LANE>(transmute(a), transmute(b)))
27151}
27152#[doc = "Load multiple 4-element structures to four registers"]
27153#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_lane_u16)"]
27154#[doc = "## Safety"]
27155#[doc = "  * Neon instrinsic unsafe"]
27156#[inline]
27157#[target_feature(enable = "neon")]
27158#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27159#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4, LANE = 0))]
27160#[cfg_attr(
27161    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27162    assert_instr(ld4, LANE = 0)
27163)]
27164#[rustc_legacy_const_generics(2)]
27165#[cfg_attr(
27166    not(target_arch = "arm"),
27167    stable(feature = "neon_intrinsics", since = "1.59.0")
27168)]
27169#[cfg_attr(
27170    target_arch = "arm",
27171    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27172)]
27173pub unsafe fn vld4q_lane_u16<const LANE: i32>(a: *const u16, b: uint16x8x4_t) -> uint16x8x4_t {
27174    static_assert_uimm_bits!(LANE, 3);
27175    transmute(vld4q_lane_s16::<LANE>(transmute(a), transmute(b)))
27176}
27177#[doc = "Load multiple 4-element structures to four registers"]
27178#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_u32)"]
27179#[doc = "## Safety"]
27180#[doc = "  * Neon instrinsic unsafe"]
27181#[inline]
27182#[target_feature(enable = "neon")]
27183#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27184#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4, LANE = 0))]
27185#[cfg_attr(
27186    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27187    assert_instr(ld4, LANE = 0)
27188)]
27189#[rustc_legacy_const_generics(2)]
27190#[cfg_attr(
27191    not(target_arch = "arm"),
27192    stable(feature = "neon_intrinsics", since = "1.59.0")
27193)]
27194#[cfg_attr(
27195    target_arch = "arm",
27196    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27197)]
27198pub unsafe fn vld4_lane_u32<const LANE: i32>(a: *const u32, b: uint32x2x4_t) -> uint32x2x4_t {
27199    static_assert_uimm_bits!(LANE, 1);
27200    transmute(vld4_lane_s32::<LANE>(transmute(a), transmute(b)))
27201}
27202#[doc = "Load multiple 4-element structures to four registers"]
27203#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_lane_u32)"]
27204#[doc = "## Safety"]
27205#[doc = "  * Neon instrinsic unsafe"]
27206#[inline]
27207#[target_feature(enable = "neon")]
27208#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27209#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4, LANE = 0))]
27210#[cfg_attr(
27211    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27212    assert_instr(ld4, LANE = 0)
27213)]
27214#[rustc_legacy_const_generics(2)]
27215#[cfg_attr(
27216    not(target_arch = "arm"),
27217    stable(feature = "neon_intrinsics", since = "1.59.0")
27218)]
27219#[cfg_attr(
27220    target_arch = "arm",
27221    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27222)]
27223pub unsafe fn vld4q_lane_u32<const LANE: i32>(a: *const u32, b: uint32x4x4_t) -> uint32x4x4_t {
27224    static_assert_uimm_bits!(LANE, 2);
27225    transmute(vld4q_lane_s32::<LANE>(transmute(a), transmute(b)))
27226}
27227#[doc = "Load multiple 4-element structures to four registers"]
27228#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_p8)"]
27229#[doc = "## Safety"]
27230#[doc = "  * Neon instrinsic unsafe"]
27231#[inline]
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, LANE = 0))]
27235#[cfg_attr(
27236    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27237    assert_instr(ld4, LANE = 0)
27238)]
27239#[rustc_legacy_const_generics(2)]
27240#[cfg_attr(
27241    not(target_arch = "arm"),
27242    stable(feature = "neon_intrinsics", since = "1.59.0")
27243)]
27244#[cfg_attr(
27245    target_arch = "arm",
27246    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27247)]
27248pub unsafe fn vld4_lane_p8<const LANE: i32>(a: *const p8, b: poly8x8x4_t) -> poly8x8x4_t {
27249    static_assert_uimm_bits!(LANE, 3);
27250    transmute(vld4_lane_s8::<LANE>(transmute(a), transmute(b)))
27251}
27252#[doc = "Load multiple 4-element structures to four registers"]
27253#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_p16)"]
27254#[doc = "## Safety"]
27255#[doc = "  * Neon instrinsic unsafe"]
27256#[inline]
27257#[target_feature(enable = "neon")]
27258#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27259#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4, LANE = 0))]
27260#[cfg_attr(
27261    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27262    assert_instr(ld4, LANE = 0)
27263)]
27264#[rustc_legacy_const_generics(2)]
27265#[cfg_attr(
27266    not(target_arch = "arm"),
27267    stable(feature = "neon_intrinsics", since = "1.59.0")
27268)]
27269#[cfg_attr(
27270    target_arch = "arm",
27271    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27272)]
27273pub unsafe fn vld4_lane_p16<const LANE: i32>(a: *const p16, b: poly16x4x4_t) -> poly16x4x4_t {
27274    static_assert_uimm_bits!(LANE, 2);
27275    transmute(vld4_lane_s16::<LANE>(transmute(a), transmute(b)))
27276}
27277#[doc = "Load multiple 4-element structures to four registers"]
27278#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_lane_p16)"]
27279#[doc = "## Safety"]
27280#[doc = "  * Neon instrinsic unsafe"]
27281#[inline]
27282#[target_feature(enable = "neon")]
27283#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27284#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4, LANE = 0))]
27285#[cfg_attr(
27286    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27287    assert_instr(ld4, LANE = 0)
27288)]
27289#[rustc_legacy_const_generics(2)]
27290#[cfg_attr(
27291    not(target_arch = "arm"),
27292    stable(feature = "neon_intrinsics", since = "1.59.0")
27293)]
27294#[cfg_attr(
27295    target_arch = "arm",
27296    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27297)]
27298pub unsafe fn vld4q_lane_p16<const LANE: i32>(a: *const p16, b: poly16x8x4_t) -> poly16x8x4_t {
27299    static_assert_uimm_bits!(LANE, 3);
27300    transmute(vld4q_lane_s16::<LANE>(transmute(a), transmute(b)))
27301}
27302#[doc = "Load multiple 4-element structures to four registers"]
27303#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_p64)"]
27304#[doc = "## Safety"]
27305#[doc = "  * Neon instrinsic unsafe"]
27306#[inline]
27307#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
27308#[target_feature(enable = "neon,aes")]
27309#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
27310#[cfg_attr(
27311    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27312    assert_instr(nop)
27313)]
27314#[cfg_attr(
27315    not(target_arch = "arm"),
27316    stable(feature = "neon_intrinsics", since = "1.59.0")
27317)]
27318#[cfg_attr(
27319    target_arch = "arm",
27320    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27321)]
27322pub unsafe fn vld4_p64(a: *const p64) -> poly64x1x4_t {
27323    transmute(vld4_s64(transmute(a)))
27324}
27325#[doc = "Load multiple 4-element structures to four registers"]
27326#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_s64)"]
27327#[doc = "## Safety"]
27328#[doc = "  * Neon instrinsic unsafe"]
27329#[inline]
27330#[target_feature(enable = "neon")]
27331#[cfg(not(target_arch = "arm"))]
27332#[stable(feature = "neon_intrinsics", since = "1.59.0")]
27333#[cfg_attr(test, assert_instr(nop))]
27334pub unsafe fn vld4_s64(a: *const i64) -> int64x1x4_t {
27335    unsafe extern "unadjusted" {
27336        #[cfg_attr(
27337            any(target_arch = "aarch64", target_arch = "arm64ec"),
27338            link_name = "llvm.aarch64.neon.ld4.v1i64.p0"
27339        )]
27340        fn _vld4_s64(ptr: *const int64x1_t) -> int64x1x4_t;
27341    }
27342    _vld4_s64(a as _)
27343}
27344#[doc = "Load multiple 4-element structures to four registers"]
27345#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_s64)"]
27346#[doc = "## Safety"]
27347#[doc = "  * Neon instrinsic unsafe"]
27348#[inline]
27349#[target_feature(enable = "neon,v7")]
27350#[cfg(target_arch = "arm")]
27351#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
27352#[cfg_attr(test, assert_instr(nop))]
27353pub unsafe fn vld4_s64(a: *const i64) -> int64x1x4_t {
27354    unsafe extern "unadjusted" {
27355        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4.v1i64.p0")]
27356        fn _vld4_s64(ptr: *const i8, size: i32) -> int64x1x4_t;
27357    }
27358    _vld4_s64(a as *const i8, 8)
27359}
27360#[doc = "Load multiple 4-element structures to four registers"]
27361#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_u64)"]
27362#[doc = "## Safety"]
27363#[doc = "  * Neon instrinsic unsafe"]
27364#[inline]
27365#[target_feature(enable = "neon")]
27366#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27367#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
27368#[cfg_attr(
27369    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27370    assert_instr(nop)
27371)]
27372#[cfg_attr(
27373    not(target_arch = "arm"),
27374    stable(feature = "neon_intrinsics", since = "1.59.0")
27375)]
27376#[cfg_attr(
27377    target_arch = "arm",
27378    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27379)]
27380pub unsafe fn vld4_u64(a: *const u64) -> uint64x1x4_t {
27381    transmute(vld4_s64(transmute(a)))
27382}
27383#[doc = "Load multiple 4-element structures to four registers"]
27384#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_u8)"]
27385#[doc = "## Safety"]
27386#[doc = "  * Neon instrinsic unsafe"]
27387#[inline]
27388#[cfg(target_endian = "little")]
27389#[target_feature(enable = "neon")]
27390#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27391#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
27392#[cfg_attr(
27393    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27394    assert_instr(ld4)
27395)]
27396#[cfg_attr(
27397    not(target_arch = "arm"),
27398    stable(feature = "neon_intrinsics", since = "1.59.0")
27399)]
27400#[cfg_attr(
27401    target_arch = "arm",
27402    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27403)]
27404pub unsafe fn vld4_u8(a: *const u8) -> uint8x8x4_t {
27405    transmute(vld4_s8(transmute(a)))
27406}
27407#[doc = "Load multiple 4-element structures to four registers"]
27408#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_u8)"]
27409#[doc = "## Safety"]
27410#[doc = "  * Neon instrinsic unsafe"]
27411#[inline]
27412#[cfg(target_endian = "big")]
27413#[target_feature(enable = "neon")]
27414#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27415#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
27416#[cfg_attr(
27417    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27418    assert_instr(ld4)
27419)]
27420#[cfg_attr(
27421    not(target_arch = "arm"),
27422    stable(feature = "neon_intrinsics", since = "1.59.0")
27423)]
27424#[cfg_attr(
27425    target_arch = "arm",
27426    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27427)]
27428pub unsafe fn vld4_u8(a: *const u8) -> uint8x8x4_t {
27429    let mut ret_val: uint8x8x4_t = transmute(vld4_s8(transmute(a)));
27430    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
27431    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
27432    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
27433    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [7, 6, 5, 4, 3, 2, 1, 0]) };
27434    ret_val
27435}
27436#[doc = "Load multiple 4-element structures to four registers"]
27437#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_u8)"]
27438#[doc = "## Safety"]
27439#[doc = "  * Neon instrinsic unsafe"]
27440#[inline]
27441#[cfg(target_endian = "little")]
27442#[target_feature(enable = "neon")]
27443#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27444#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
27445#[cfg_attr(
27446    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27447    assert_instr(ld4)
27448)]
27449#[cfg_attr(
27450    not(target_arch = "arm"),
27451    stable(feature = "neon_intrinsics", since = "1.59.0")
27452)]
27453#[cfg_attr(
27454    target_arch = "arm",
27455    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27456)]
27457pub unsafe fn vld4q_u8(a: *const u8) -> uint8x16x4_t {
27458    transmute(vld4q_s8(transmute(a)))
27459}
27460#[doc = "Load multiple 4-element structures to four registers"]
27461#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_u8)"]
27462#[doc = "## Safety"]
27463#[doc = "  * Neon instrinsic unsafe"]
27464#[inline]
27465#[cfg(target_endian = "big")]
27466#[target_feature(enable = "neon")]
27467#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27468#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
27469#[cfg_attr(
27470    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27471    assert_instr(ld4)
27472)]
27473#[cfg_attr(
27474    not(target_arch = "arm"),
27475    stable(feature = "neon_intrinsics", since = "1.59.0")
27476)]
27477#[cfg_attr(
27478    target_arch = "arm",
27479    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27480)]
27481pub unsafe fn vld4q_u8(a: *const u8) -> uint8x16x4_t {
27482    let mut ret_val: uint8x16x4_t = transmute(vld4q_s8(transmute(a)));
27483    ret_val.0 = unsafe {
27484        simd_shuffle!(
27485            ret_val.0,
27486            ret_val.0,
27487            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
27488        )
27489    };
27490    ret_val.1 = unsafe {
27491        simd_shuffle!(
27492            ret_val.1,
27493            ret_val.1,
27494            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
27495        )
27496    };
27497    ret_val.2 = unsafe {
27498        simd_shuffle!(
27499            ret_val.2,
27500            ret_val.2,
27501            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
27502        )
27503    };
27504    ret_val.3 = unsafe {
27505        simd_shuffle!(
27506            ret_val.3,
27507            ret_val.3,
27508            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
27509        )
27510    };
27511    ret_val
27512}
27513#[doc = "Load multiple 4-element structures to four registers"]
27514#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_u16)"]
27515#[doc = "## Safety"]
27516#[doc = "  * Neon instrinsic unsafe"]
27517#[inline]
27518#[cfg(target_endian = "little")]
27519#[target_feature(enable = "neon")]
27520#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27521#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
27522#[cfg_attr(
27523    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27524    assert_instr(ld4)
27525)]
27526#[cfg_attr(
27527    not(target_arch = "arm"),
27528    stable(feature = "neon_intrinsics", since = "1.59.0")
27529)]
27530#[cfg_attr(
27531    target_arch = "arm",
27532    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27533)]
27534pub unsafe fn vld4_u16(a: *const u16) -> uint16x4x4_t {
27535    transmute(vld4_s16(transmute(a)))
27536}
27537#[doc = "Load multiple 4-element structures to four registers"]
27538#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_u16)"]
27539#[doc = "## Safety"]
27540#[doc = "  * Neon instrinsic unsafe"]
27541#[inline]
27542#[cfg(target_endian = "big")]
27543#[target_feature(enable = "neon")]
27544#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27545#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
27546#[cfg_attr(
27547    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27548    assert_instr(ld4)
27549)]
27550#[cfg_attr(
27551    not(target_arch = "arm"),
27552    stable(feature = "neon_intrinsics", since = "1.59.0")
27553)]
27554#[cfg_attr(
27555    target_arch = "arm",
27556    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27557)]
27558pub unsafe fn vld4_u16(a: *const u16) -> uint16x4x4_t {
27559    let mut ret_val: uint16x4x4_t = transmute(vld4_s16(transmute(a)));
27560    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
27561    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
27562    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [3, 2, 1, 0]) };
27563    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [3, 2, 1, 0]) };
27564    ret_val
27565}
27566#[doc = "Load multiple 4-element structures to four registers"]
27567#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_u16)"]
27568#[doc = "## Safety"]
27569#[doc = "  * Neon instrinsic unsafe"]
27570#[inline]
27571#[cfg(target_endian = "little")]
27572#[target_feature(enable = "neon")]
27573#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27574#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
27575#[cfg_attr(
27576    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27577    assert_instr(ld4)
27578)]
27579#[cfg_attr(
27580    not(target_arch = "arm"),
27581    stable(feature = "neon_intrinsics", since = "1.59.0")
27582)]
27583#[cfg_attr(
27584    target_arch = "arm",
27585    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27586)]
27587pub unsafe fn vld4q_u16(a: *const u16) -> uint16x8x4_t {
27588    transmute(vld4q_s16(transmute(a)))
27589}
27590#[doc = "Load multiple 4-element structures to four registers"]
27591#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_u16)"]
27592#[doc = "## Safety"]
27593#[doc = "  * Neon instrinsic unsafe"]
27594#[inline]
27595#[cfg(target_endian = "big")]
27596#[target_feature(enable = "neon")]
27597#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27598#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
27599#[cfg_attr(
27600    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27601    assert_instr(ld4)
27602)]
27603#[cfg_attr(
27604    not(target_arch = "arm"),
27605    stable(feature = "neon_intrinsics", since = "1.59.0")
27606)]
27607#[cfg_attr(
27608    target_arch = "arm",
27609    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27610)]
27611pub unsafe fn vld4q_u16(a: *const u16) -> uint16x8x4_t {
27612    let mut ret_val: uint16x8x4_t = transmute(vld4q_s16(transmute(a)));
27613    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
27614    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
27615    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
27616    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [7, 6, 5, 4, 3, 2, 1, 0]) };
27617    ret_val
27618}
27619#[doc = "Load multiple 4-element structures to four registers"]
27620#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_u32)"]
27621#[doc = "## Safety"]
27622#[doc = "  * Neon instrinsic unsafe"]
27623#[inline]
27624#[cfg(target_endian = "little")]
27625#[target_feature(enable = "neon")]
27626#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27627#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
27628#[cfg_attr(
27629    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27630    assert_instr(ld4)
27631)]
27632#[cfg_attr(
27633    not(target_arch = "arm"),
27634    stable(feature = "neon_intrinsics", since = "1.59.0")
27635)]
27636#[cfg_attr(
27637    target_arch = "arm",
27638    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27639)]
27640pub unsafe fn vld4_u32(a: *const u32) -> uint32x2x4_t {
27641    transmute(vld4_s32(transmute(a)))
27642}
27643#[doc = "Load multiple 4-element structures to four registers"]
27644#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_u32)"]
27645#[doc = "## Safety"]
27646#[doc = "  * Neon instrinsic unsafe"]
27647#[inline]
27648#[cfg(target_endian = "big")]
27649#[target_feature(enable = "neon")]
27650#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27651#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
27652#[cfg_attr(
27653    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27654    assert_instr(ld4)
27655)]
27656#[cfg_attr(
27657    not(target_arch = "arm"),
27658    stable(feature = "neon_intrinsics", since = "1.59.0")
27659)]
27660#[cfg_attr(
27661    target_arch = "arm",
27662    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27663)]
27664pub unsafe fn vld4_u32(a: *const u32) -> uint32x2x4_t {
27665    let mut ret_val: uint32x2x4_t = transmute(vld4_s32(transmute(a)));
27666    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [1, 0]) };
27667    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [1, 0]) };
27668    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [1, 0]) };
27669    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [1, 0]) };
27670    ret_val
27671}
27672#[doc = "Load multiple 4-element structures to four registers"]
27673#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_u32)"]
27674#[doc = "## Safety"]
27675#[doc = "  * Neon instrinsic unsafe"]
27676#[inline]
27677#[cfg(target_endian = "little")]
27678#[target_feature(enable = "neon")]
27679#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27680#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
27681#[cfg_attr(
27682    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27683    assert_instr(ld4)
27684)]
27685#[cfg_attr(
27686    not(target_arch = "arm"),
27687    stable(feature = "neon_intrinsics", since = "1.59.0")
27688)]
27689#[cfg_attr(
27690    target_arch = "arm",
27691    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27692)]
27693pub unsafe fn vld4q_u32(a: *const u32) -> uint32x4x4_t {
27694    transmute(vld4q_s32(transmute(a)))
27695}
27696#[doc = "Load multiple 4-element structures to four registers"]
27697#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_u32)"]
27698#[doc = "## Safety"]
27699#[doc = "  * Neon instrinsic unsafe"]
27700#[inline]
27701#[cfg(target_endian = "big")]
27702#[target_feature(enable = "neon")]
27703#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27704#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
27705#[cfg_attr(
27706    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27707    assert_instr(ld4)
27708)]
27709#[cfg_attr(
27710    not(target_arch = "arm"),
27711    stable(feature = "neon_intrinsics", since = "1.59.0")
27712)]
27713#[cfg_attr(
27714    target_arch = "arm",
27715    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27716)]
27717pub unsafe fn vld4q_u32(a: *const u32) -> uint32x4x4_t {
27718    let mut ret_val: uint32x4x4_t = transmute(vld4q_s32(transmute(a)));
27719    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
27720    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
27721    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [3, 2, 1, 0]) };
27722    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [3, 2, 1, 0]) };
27723    ret_val
27724}
27725#[doc = "Load multiple 4-element structures to four registers"]
27726#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_p8)"]
27727#[doc = "## Safety"]
27728#[doc = "  * Neon instrinsic unsafe"]
27729#[inline]
27730#[cfg(target_endian = "little")]
27731#[target_feature(enable = "neon")]
27732#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27733#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
27734#[cfg_attr(
27735    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27736    assert_instr(ld4)
27737)]
27738#[cfg_attr(
27739    not(target_arch = "arm"),
27740    stable(feature = "neon_intrinsics", since = "1.59.0")
27741)]
27742#[cfg_attr(
27743    target_arch = "arm",
27744    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27745)]
27746pub unsafe fn vld4_p8(a: *const p8) -> poly8x8x4_t {
27747    transmute(vld4_s8(transmute(a)))
27748}
27749#[doc = "Load multiple 4-element structures to four registers"]
27750#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_p8)"]
27751#[doc = "## Safety"]
27752#[doc = "  * Neon instrinsic unsafe"]
27753#[inline]
27754#[cfg(target_endian = "big")]
27755#[target_feature(enable = "neon")]
27756#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27757#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
27758#[cfg_attr(
27759    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27760    assert_instr(ld4)
27761)]
27762#[cfg_attr(
27763    not(target_arch = "arm"),
27764    stable(feature = "neon_intrinsics", since = "1.59.0")
27765)]
27766#[cfg_attr(
27767    target_arch = "arm",
27768    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27769)]
27770pub unsafe fn vld4_p8(a: *const p8) -> poly8x8x4_t {
27771    let mut ret_val: poly8x8x4_t = transmute(vld4_s8(transmute(a)));
27772    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
27773    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
27774    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
27775    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [7, 6, 5, 4, 3, 2, 1, 0]) };
27776    ret_val
27777}
27778#[doc = "Load multiple 4-element structures to four registers"]
27779#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_p8)"]
27780#[doc = "## Safety"]
27781#[doc = "  * Neon instrinsic unsafe"]
27782#[inline]
27783#[cfg(target_endian = "little")]
27784#[target_feature(enable = "neon")]
27785#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27786#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
27787#[cfg_attr(
27788    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27789    assert_instr(ld4)
27790)]
27791#[cfg_attr(
27792    not(target_arch = "arm"),
27793    stable(feature = "neon_intrinsics", since = "1.59.0")
27794)]
27795#[cfg_attr(
27796    target_arch = "arm",
27797    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27798)]
27799pub unsafe fn vld4q_p8(a: *const p8) -> poly8x16x4_t {
27800    transmute(vld4q_s8(transmute(a)))
27801}
27802#[doc = "Load multiple 4-element structures to four registers"]
27803#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_p8)"]
27804#[doc = "## Safety"]
27805#[doc = "  * Neon instrinsic unsafe"]
27806#[inline]
27807#[cfg(target_endian = "big")]
27808#[target_feature(enable = "neon")]
27809#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27810#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
27811#[cfg_attr(
27812    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27813    assert_instr(ld4)
27814)]
27815#[cfg_attr(
27816    not(target_arch = "arm"),
27817    stable(feature = "neon_intrinsics", since = "1.59.0")
27818)]
27819#[cfg_attr(
27820    target_arch = "arm",
27821    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27822)]
27823pub unsafe fn vld4q_p8(a: *const p8) -> poly8x16x4_t {
27824    let mut ret_val: poly8x16x4_t = transmute(vld4q_s8(transmute(a)));
27825    ret_val.0 = unsafe {
27826        simd_shuffle!(
27827            ret_val.0,
27828            ret_val.0,
27829            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
27830        )
27831    };
27832    ret_val.1 = unsafe {
27833        simd_shuffle!(
27834            ret_val.1,
27835            ret_val.1,
27836            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
27837        )
27838    };
27839    ret_val.2 = unsafe {
27840        simd_shuffle!(
27841            ret_val.2,
27842            ret_val.2,
27843            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
27844        )
27845    };
27846    ret_val.3 = unsafe {
27847        simd_shuffle!(
27848            ret_val.3,
27849            ret_val.3,
27850            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
27851        )
27852    };
27853    ret_val
27854}
27855#[doc = "Load multiple 4-element structures to four registers"]
27856#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_p16)"]
27857#[doc = "## Safety"]
27858#[doc = "  * Neon instrinsic unsafe"]
27859#[inline]
27860#[cfg(target_endian = "little")]
27861#[target_feature(enable = "neon")]
27862#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27863#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
27864#[cfg_attr(
27865    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27866    assert_instr(ld4)
27867)]
27868#[cfg_attr(
27869    not(target_arch = "arm"),
27870    stable(feature = "neon_intrinsics", since = "1.59.0")
27871)]
27872#[cfg_attr(
27873    target_arch = "arm",
27874    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27875)]
27876pub unsafe fn vld4_p16(a: *const p16) -> poly16x4x4_t {
27877    transmute(vld4_s16(transmute(a)))
27878}
27879#[doc = "Load multiple 4-element structures to four registers"]
27880#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_p16)"]
27881#[doc = "## Safety"]
27882#[doc = "  * Neon instrinsic unsafe"]
27883#[inline]
27884#[cfg(target_endian = "big")]
27885#[target_feature(enable = "neon")]
27886#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27887#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
27888#[cfg_attr(
27889    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27890    assert_instr(ld4)
27891)]
27892#[cfg_attr(
27893    not(target_arch = "arm"),
27894    stable(feature = "neon_intrinsics", since = "1.59.0")
27895)]
27896#[cfg_attr(
27897    target_arch = "arm",
27898    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27899)]
27900pub unsafe fn vld4_p16(a: *const p16) -> poly16x4x4_t {
27901    let mut ret_val: poly16x4x4_t = transmute(vld4_s16(transmute(a)));
27902    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
27903    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
27904    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [3, 2, 1, 0]) };
27905    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [3, 2, 1, 0]) };
27906    ret_val
27907}
27908#[doc = "Load multiple 4-element structures to four registers"]
27909#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_p16)"]
27910#[doc = "## Safety"]
27911#[doc = "  * Neon instrinsic unsafe"]
27912#[inline]
27913#[cfg(target_endian = "little")]
27914#[target_feature(enable = "neon")]
27915#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27916#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
27917#[cfg_attr(
27918    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27919    assert_instr(ld4)
27920)]
27921#[cfg_attr(
27922    not(target_arch = "arm"),
27923    stable(feature = "neon_intrinsics", since = "1.59.0")
27924)]
27925#[cfg_attr(
27926    target_arch = "arm",
27927    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27928)]
27929pub unsafe fn vld4q_p16(a: *const p16) -> poly16x8x4_t {
27930    transmute(vld4q_s16(transmute(a)))
27931}
27932#[doc = "Load multiple 4-element structures to four registers"]
27933#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_p16)"]
27934#[doc = "## Safety"]
27935#[doc = "  * Neon instrinsic unsafe"]
27936#[inline]
27937#[cfg(target_endian = "big")]
27938#[target_feature(enable = "neon")]
27939#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27940#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
27941#[cfg_attr(
27942    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27943    assert_instr(ld4)
27944)]
27945#[cfg_attr(
27946    not(target_arch = "arm"),
27947    stable(feature = "neon_intrinsics", since = "1.59.0")
27948)]
27949#[cfg_attr(
27950    target_arch = "arm",
27951    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27952)]
27953pub unsafe fn vld4q_p16(a: *const p16) -> poly16x8x4_t {
27954    let mut ret_val: poly16x8x4_t = transmute(vld4q_s16(transmute(a)));
27955    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
27956    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
27957    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
27958    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [7, 6, 5, 4, 3, 2, 1, 0]) };
27959    ret_val
27960}
27961#[doc = "Store SIMD&FP register (immediate offset)"]
27962#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vldrq_p128)"]
27963#[doc = "## Safety"]
27964#[doc = "  * Neon instrinsic unsafe"]
27965#[inline]
27966#[target_feature(enable = "neon")]
27967#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27968#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
27969#[cfg_attr(
27970    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27971    assert_instr(nop)
27972)]
27973#[cfg_attr(
27974    not(target_arch = "arm"),
27975    stable(feature = "neon_intrinsics", since = "1.59.0")
27976)]
27977#[cfg_attr(
27978    target_arch = "arm",
27979    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27980)]
27981pub unsafe fn vldrq_p128(a: *const p128) -> p128 {
27982    *a
27983}
27984#[doc = "Maximum (vector)"]
27985#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmax_f16)"]
27986#[inline]
27987#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
27988#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
27989#[cfg_attr(
27990    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27991    assert_instr(fmax)
27992)]
27993#[target_feature(enable = "neon,fp16")]
27994#[cfg_attr(
27995    not(target_arch = "arm"),
27996    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
27997)]
27998#[cfg_attr(
27999    target_arch = "arm",
28000    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28001)]
28002#[cfg(not(target_arch = "arm64ec"))]
28003pub fn vmax_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t {
28004    unsafe extern "unadjusted" {
28005        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmaxs.v4f16")]
28006        #[cfg_attr(
28007            any(target_arch = "aarch64", target_arch = "arm64ec"),
28008            link_name = "llvm.aarch64.neon.fmax.v4f16"
28009        )]
28010        fn _vmax_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t;
28011    }
28012    unsafe { _vmax_f16(a, b) }
28013}
28014#[doc = "Maximum (vector)"]
28015#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxq_f16)"]
28016#[inline]
28017#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
28018#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
28019#[cfg_attr(
28020    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28021    assert_instr(fmax)
28022)]
28023#[target_feature(enable = "neon,fp16")]
28024#[cfg_attr(
28025    not(target_arch = "arm"),
28026    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
28027)]
28028#[cfg_attr(
28029    target_arch = "arm",
28030    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28031)]
28032#[cfg(not(target_arch = "arm64ec"))]
28033pub fn vmaxq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t {
28034    unsafe extern "unadjusted" {
28035        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmaxs.v8f16")]
28036        #[cfg_attr(
28037            any(target_arch = "aarch64", target_arch = "arm64ec"),
28038            link_name = "llvm.aarch64.neon.fmax.v8f16"
28039        )]
28040        fn _vmaxq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t;
28041    }
28042    unsafe { _vmaxq_f16(a, b) }
28043}
28044#[doc = "Maximum (vector)"]
28045#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmax_f32)"]
28046#[inline]
28047#[target_feature(enable = "neon")]
28048#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28049#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
28050#[cfg_attr(
28051    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28052    assert_instr(fmax)
28053)]
28054#[cfg_attr(
28055    not(target_arch = "arm"),
28056    stable(feature = "neon_intrinsics", since = "1.59.0")
28057)]
28058#[cfg_attr(
28059    target_arch = "arm",
28060    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28061)]
28062pub fn vmax_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
28063    unsafe extern "unadjusted" {
28064        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmaxs.v2f32")]
28065        #[cfg_attr(
28066            any(target_arch = "aarch64", target_arch = "arm64ec"),
28067            link_name = "llvm.aarch64.neon.fmax.v2f32"
28068        )]
28069        fn _vmax_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t;
28070    }
28071    unsafe { _vmax_f32(a, b) }
28072}
28073#[doc = "Maximum (vector)"]
28074#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxq_f32)"]
28075#[inline]
28076#[target_feature(enable = "neon")]
28077#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28078#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
28079#[cfg_attr(
28080    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28081    assert_instr(fmax)
28082)]
28083#[cfg_attr(
28084    not(target_arch = "arm"),
28085    stable(feature = "neon_intrinsics", since = "1.59.0")
28086)]
28087#[cfg_attr(
28088    target_arch = "arm",
28089    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28090)]
28091pub fn vmaxq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t {
28092    unsafe extern "unadjusted" {
28093        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmaxs.v4f32")]
28094        #[cfg_attr(
28095            any(target_arch = "aarch64", target_arch = "arm64ec"),
28096            link_name = "llvm.aarch64.neon.fmax.v4f32"
28097        )]
28098        fn _vmaxq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t;
28099    }
28100    unsafe { _vmaxq_f32(a, b) }
28101}
28102#[doc = "Maximum (vector)"]
28103#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmax_s8)"]
28104#[inline]
28105#[target_feature(enable = "neon")]
28106#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28107#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
28108#[cfg_attr(
28109    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28110    assert_instr(smax)
28111)]
28112#[cfg_attr(
28113    not(target_arch = "arm"),
28114    stable(feature = "neon_intrinsics", since = "1.59.0")
28115)]
28116#[cfg_attr(
28117    target_arch = "arm",
28118    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28119)]
28120pub fn vmax_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
28121    unsafe {
28122        let mask: int8x8_t = simd_ge(a, b);
28123        simd_select(mask, a, b)
28124    }
28125}
28126#[doc = "Maximum (vector)"]
28127#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxq_s8)"]
28128#[inline]
28129#[target_feature(enable = "neon")]
28130#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28131#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
28132#[cfg_attr(
28133    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28134    assert_instr(smax)
28135)]
28136#[cfg_attr(
28137    not(target_arch = "arm"),
28138    stable(feature = "neon_intrinsics", since = "1.59.0")
28139)]
28140#[cfg_attr(
28141    target_arch = "arm",
28142    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28143)]
28144pub fn vmaxq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
28145    unsafe {
28146        let mask: int8x16_t = simd_ge(a, b);
28147        simd_select(mask, a, b)
28148    }
28149}
28150#[doc = "Maximum (vector)"]
28151#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmax_s16)"]
28152#[inline]
28153#[target_feature(enable = "neon")]
28154#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28155#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
28156#[cfg_attr(
28157    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28158    assert_instr(smax)
28159)]
28160#[cfg_attr(
28161    not(target_arch = "arm"),
28162    stable(feature = "neon_intrinsics", since = "1.59.0")
28163)]
28164#[cfg_attr(
28165    target_arch = "arm",
28166    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28167)]
28168pub fn vmax_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
28169    unsafe {
28170        let mask: int16x4_t = simd_ge(a, b);
28171        simd_select(mask, a, b)
28172    }
28173}
28174#[doc = "Maximum (vector)"]
28175#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxq_s16)"]
28176#[inline]
28177#[target_feature(enable = "neon")]
28178#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28179#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
28180#[cfg_attr(
28181    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28182    assert_instr(smax)
28183)]
28184#[cfg_attr(
28185    not(target_arch = "arm"),
28186    stable(feature = "neon_intrinsics", since = "1.59.0")
28187)]
28188#[cfg_attr(
28189    target_arch = "arm",
28190    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28191)]
28192pub fn vmaxq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
28193    unsafe {
28194        let mask: int16x8_t = simd_ge(a, b);
28195        simd_select(mask, a, b)
28196    }
28197}
28198#[doc = "Maximum (vector)"]
28199#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmax_s32)"]
28200#[inline]
28201#[target_feature(enable = "neon")]
28202#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28203#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
28204#[cfg_attr(
28205    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28206    assert_instr(smax)
28207)]
28208#[cfg_attr(
28209    not(target_arch = "arm"),
28210    stable(feature = "neon_intrinsics", since = "1.59.0")
28211)]
28212#[cfg_attr(
28213    target_arch = "arm",
28214    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28215)]
28216pub fn vmax_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
28217    unsafe {
28218        let mask: int32x2_t = simd_ge(a, b);
28219        simd_select(mask, a, b)
28220    }
28221}
28222#[doc = "Maximum (vector)"]
28223#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxq_s32)"]
28224#[inline]
28225#[target_feature(enable = "neon")]
28226#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28227#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
28228#[cfg_attr(
28229    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28230    assert_instr(smax)
28231)]
28232#[cfg_attr(
28233    not(target_arch = "arm"),
28234    stable(feature = "neon_intrinsics", since = "1.59.0")
28235)]
28236#[cfg_attr(
28237    target_arch = "arm",
28238    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28239)]
28240pub fn vmaxq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
28241    unsafe {
28242        let mask: int32x4_t = simd_ge(a, b);
28243        simd_select(mask, a, b)
28244    }
28245}
28246#[doc = "Maximum (vector)"]
28247#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmax_u8)"]
28248#[inline]
28249#[target_feature(enable = "neon")]
28250#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28251#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
28252#[cfg_attr(
28253    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28254    assert_instr(umax)
28255)]
28256#[cfg_attr(
28257    not(target_arch = "arm"),
28258    stable(feature = "neon_intrinsics", since = "1.59.0")
28259)]
28260#[cfg_attr(
28261    target_arch = "arm",
28262    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28263)]
28264pub fn vmax_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
28265    unsafe {
28266        let mask: uint8x8_t = simd_ge(a, b);
28267        simd_select(mask, a, b)
28268    }
28269}
28270#[doc = "Maximum (vector)"]
28271#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxq_u8)"]
28272#[inline]
28273#[target_feature(enable = "neon")]
28274#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28275#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
28276#[cfg_attr(
28277    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28278    assert_instr(umax)
28279)]
28280#[cfg_attr(
28281    not(target_arch = "arm"),
28282    stable(feature = "neon_intrinsics", since = "1.59.0")
28283)]
28284#[cfg_attr(
28285    target_arch = "arm",
28286    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28287)]
28288pub fn vmaxq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
28289    unsafe {
28290        let mask: uint8x16_t = simd_ge(a, b);
28291        simd_select(mask, a, b)
28292    }
28293}
28294#[doc = "Maximum (vector)"]
28295#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmax_u16)"]
28296#[inline]
28297#[target_feature(enable = "neon")]
28298#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28299#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
28300#[cfg_attr(
28301    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28302    assert_instr(umax)
28303)]
28304#[cfg_attr(
28305    not(target_arch = "arm"),
28306    stable(feature = "neon_intrinsics", since = "1.59.0")
28307)]
28308#[cfg_attr(
28309    target_arch = "arm",
28310    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28311)]
28312pub fn vmax_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
28313    unsafe {
28314        let mask: uint16x4_t = simd_ge(a, b);
28315        simd_select(mask, a, b)
28316    }
28317}
28318#[doc = "Maximum (vector)"]
28319#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxq_u16)"]
28320#[inline]
28321#[target_feature(enable = "neon")]
28322#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28323#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
28324#[cfg_attr(
28325    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28326    assert_instr(umax)
28327)]
28328#[cfg_attr(
28329    not(target_arch = "arm"),
28330    stable(feature = "neon_intrinsics", since = "1.59.0")
28331)]
28332#[cfg_attr(
28333    target_arch = "arm",
28334    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28335)]
28336pub fn vmaxq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
28337    unsafe {
28338        let mask: uint16x8_t = simd_ge(a, b);
28339        simd_select(mask, a, b)
28340    }
28341}
28342#[doc = "Maximum (vector)"]
28343#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmax_u32)"]
28344#[inline]
28345#[target_feature(enable = "neon")]
28346#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28347#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
28348#[cfg_attr(
28349    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28350    assert_instr(umax)
28351)]
28352#[cfg_attr(
28353    not(target_arch = "arm"),
28354    stable(feature = "neon_intrinsics", since = "1.59.0")
28355)]
28356#[cfg_attr(
28357    target_arch = "arm",
28358    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28359)]
28360pub fn vmax_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
28361    unsafe {
28362        let mask: uint32x2_t = simd_ge(a, b);
28363        simd_select(mask, a, b)
28364    }
28365}
28366#[doc = "Maximum (vector)"]
28367#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxq_u32)"]
28368#[inline]
28369#[target_feature(enable = "neon")]
28370#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28371#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
28372#[cfg_attr(
28373    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28374    assert_instr(umax)
28375)]
28376#[cfg_attr(
28377    not(target_arch = "arm"),
28378    stable(feature = "neon_intrinsics", since = "1.59.0")
28379)]
28380#[cfg_attr(
28381    target_arch = "arm",
28382    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28383)]
28384pub fn vmaxq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
28385    unsafe {
28386        let mask: uint32x4_t = simd_ge(a, b);
28387        simd_select(mask, a, b)
28388    }
28389}
28390#[doc = "Floating-point Maximum Number (vector)"]
28391#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxnm_f16)"]
28392#[inline]
28393#[cfg_attr(target_arch = "arm", target_feature(enable = "fp-armv8,v8"))]
28394#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmaxnm))]
28395#[cfg_attr(
28396    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28397    assert_instr(fmaxnm)
28398)]
28399#[target_feature(enable = "neon,fp16")]
28400#[cfg_attr(
28401    not(target_arch = "arm"),
28402    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
28403)]
28404#[cfg_attr(
28405    target_arch = "arm",
28406    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28407)]
28408#[cfg(not(target_arch = "arm64ec"))]
28409pub fn vmaxnm_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t {
28410    unsafe { simd_fmax(a, b) }
28411}
28412#[doc = "Floating-point Maximum Number (vector)"]
28413#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxnmq_f16)"]
28414#[inline]
28415#[cfg_attr(target_arch = "arm", target_feature(enable = "fp-armv8,v8"))]
28416#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmaxnm))]
28417#[cfg_attr(
28418    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28419    assert_instr(fmaxnm)
28420)]
28421#[target_feature(enable = "neon,fp16")]
28422#[cfg_attr(
28423    not(target_arch = "arm"),
28424    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
28425)]
28426#[cfg_attr(
28427    target_arch = "arm",
28428    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28429)]
28430#[cfg(not(target_arch = "arm64ec"))]
28431pub fn vmaxnmq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t {
28432    unsafe { simd_fmax(a, b) }
28433}
28434#[doc = "Floating-point Maximum Number (vector)"]
28435#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxnm_f32)"]
28436#[inline]
28437#[target_feature(enable = "neon")]
28438#[cfg_attr(target_arch = "arm", target_feature(enable = "fp-armv8,v8"))]
28439#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmaxnm))]
28440#[cfg_attr(
28441    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28442    assert_instr(fmaxnm)
28443)]
28444#[cfg_attr(
28445    not(target_arch = "arm"),
28446    stable(feature = "neon_intrinsics", since = "1.59.0")
28447)]
28448#[cfg_attr(
28449    target_arch = "arm",
28450    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28451)]
28452pub fn vmaxnm_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
28453    unsafe { simd_fmax(a, b) }
28454}
28455#[doc = "Floating-point Maximum Number (vector)"]
28456#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxnmq_f32)"]
28457#[inline]
28458#[target_feature(enable = "neon")]
28459#[cfg_attr(target_arch = "arm", target_feature(enable = "fp-armv8,v8"))]
28460#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmaxnm))]
28461#[cfg_attr(
28462    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28463    assert_instr(fmaxnm)
28464)]
28465#[cfg_attr(
28466    not(target_arch = "arm"),
28467    stable(feature = "neon_intrinsics", since = "1.59.0")
28468)]
28469#[cfg_attr(
28470    target_arch = "arm",
28471    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28472)]
28473pub fn vmaxnmq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t {
28474    unsafe { simd_fmax(a, b) }
28475}
28476#[doc = "Minimum (vector)"]
28477#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmin_f16)"]
28478#[inline]
28479#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
28480#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
28481#[cfg_attr(
28482    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28483    assert_instr(fmin)
28484)]
28485#[target_feature(enable = "neon,fp16")]
28486#[cfg_attr(
28487    not(target_arch = "arm"),
28488    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
28489)]
28490#[cfg_attr(
28491    target_arch = "arm",
28492    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28493)]
28494#[cfg(not(target_arch = "arm64ec"))]
28495pub fn vmin_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t {
28496    unsafe extern "unadjusted" {
28497        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmins.v4f16")]
28498        #[cfg_attr(
28499            any(target_arch = "aarch64", target_arch = "arm64ec"),
28500            link_name = "llvm.aarch64.neon.fmin.v4f16"
28501        )]
28502        fn _vmin_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t;
28503    }
28504    unsafe { _vmin_f16(a, b) }
28505}
28506#[doc = "Minimum (vector)"]
28507#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminq_f16)"]
28508#[inline]
28509#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
28510#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
28511#[cfg_attr(
28512    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28513    assert_instr(fmin)
28514)]
28515#[target_feature(enable = "neon,fp16")]
28516#[cfg_attr(
28517    not(target_arch = "arm"),
28518    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
28519)]
28520#[cfg_attr(
28521    target_arch = "arm",
28522    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28523)]
28524#[cfg(not(target_arch = "arm64ec"))]
28525pub fn vminq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t {
28526    unsafe extern "unadjusted" {
28527        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmins.v8f16")]
28528        #[cfg_attr(
28529            any(target_arch = "aarch64", target_arch = "arm64ec"),
28530            link_name = "llvm.aarch64.neon.fmin.v8f16"
28531        )]
28532        fn _vminq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t;
28533    }
28534    unsafe { _vminq_f16(a, b) }
28535}
28536#[doc = "Minimum (vector)"]
28537#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmin_f32)"]
28538#[inline]
28539#[target_feature(enable = "neon")]
28540#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28541#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
28542#[cfg_attr(
28543    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28544    assert_instr(fmin)
28545)]
28546#[cfg_attr(
28547    not(target_arch = "arm"),
28548    stable(feature = "neon_intrinsics", since = "1.59.0")
28549)]
28550#[cfg_attr(
28551    target_arch = "arm",
28552    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28553)]
28554pub fn vmin_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
28555    unsafe extern "unadjusted" {
28556        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmins.v2f32")]
28557        #[cfg_attr(
28558            any(target_arch = "aarch64", target_arch = "arm64ec"),
28559            link_name = "llvm.aarch64.neon.fmin.v2f32"
28560        )]
28561        fn _vmin_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t;
28562    }
28563    unsafe { _vmin_f32(a, b) }
28564}
28565#[doc = "Minimum (vector)"]
28566#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminq_f32)"]
28567#[inline]
28568#[target_feature(enable = "neon")]
28569#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28570#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
28571#[cfg_attr(
28572    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28573    assert_instr(fmin)
28574)]
28575#[cfg_attr(
28576    not(target_arch = "arm"),
28577    stable(feature = "neon_intrinsics", since = "1.59.0")
28578)]
28579#[cfg_attr(
28580    target_arch = "arm",
28581    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28582)]
28583pub fn vminq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t {
28584    unsafe extern "unadjusted" {
28585        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmins.v4f32")]
28586        #[cfg_attr(
28587            any(target_arch = "aarch64", target_arch = "arm64ec"),
28588            link_name = "llvm.aarch64.neon.fmin.v4f32"
28589        )]
28590        fn _vminq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t;
28591    }
28592    unsafe { _vminq_f32(a, b) }
28593}
28594#[doc = "Minimum (vector)"]
28595#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmin_s8)"]
28596#[inline]
28597#[target_feature(enable = "neon")]
28598#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28599#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
28600#[cfg_attr(
28601    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28602    assert_instr(smin)
28603)]
28604#[cfg_attr(
28605    not(target_arch = "arm"),
28606    stable(feature = "neon_intrinsics", since = "1.59.0")
28607)]
28608#[cfg_attr(
28609    target_arch = "arm",
28610    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28611)]
28612pub fn vmin_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
28613    unsafe {
28614        let mask: int8x8_t = simd_le(a, b);
28615        simd_select(mask, a, b)
28616    }
28617}
28618#[doc = "Minimum (vector)"]
28619#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminq_s8)"]
28620#[inline]
28621#[target_feature(enable = "neon")]
28622#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28623#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
28624#[cfg_attr(
28625    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28626    assert_instr(smin)
28627)]
28628#[cfg_attr(
28629    not(target_arch = "arm"),
28630    stable(feature = "neon_intrinsics", since = "1.59.0")
28631)]
28632#[cfg_attr(
28633    target_arch = "arm",
28634    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28635)]
28636pub fn vminq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
28637    unsafe {
28638        let mask: int8x16_t = simd_le(a, b);
28639        simd_select(mask, a, b)
28640    }
28641}
28642#[doc = "Minimum (vector)"]
28643#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmin_s16)"]
28644#[inline]
28645#[target_feature(enable = "neon")]
28646#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28647#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
28648#[cfg_attr(
28649    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28650    assert_instr(smin)
28651)]
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 vmin_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
28661    unsafe {
28662        let mask: int16x4_t = simd_le(a, b);
28663        simd_select(mask, a, b)
28664    }
28665}
28666#[doc = "Minimum (vector)"]
28667#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminq_s16)"]
28668#[inline]
28669#[target_feature(enable = "neon")]
28670#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28671#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
28672#[cfg_attr(
28673    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28674    assert_instr(smin)
28675)]
28676#[cfg_attr(
28677    not(target_arch = "arm"),
28678    stable(feature = "neon_intrinsics", since = "1.59.0")
28679)]
28680#[cfg_attr(
28681    target_arch = "arm",
28682    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28683)]
28684pub fn vminq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
28685    unsafe {
28686        let mask: int16x8_t = simd_le(a, b);
28687        simd_select(mask, a, b)
28688    }
28689}
28690#[doc = "Minimum (vector)"]
28691#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmin_s32)"]
28692#[inline]
28693#[target_feature(enable = "neon")]
28694#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28695#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
28696#[cfg_attr(
28697    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28698    assert_instr(smin)
28699)]
28700#[cfg_attr(
28701    not(target_arch = "arm"),
28702    stable(feature = "neon_intrinsics", since = "1.59.0")
28703)]
28704#[cfg_attr(
28705    target_arch = "arm",
28706    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28707)]
28708pub fn vmin_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
28709    unsafe {
28710        let mask: int32x2_t = simd_le(a, b);
28711        simd_select(mask, a, b)
28712    }
28713}
28714#[doc = "Minimum (vector)"]
28715#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminq_s32)"]
28716#[inline]
28717#[target_feature(enable = "neon")]
28718#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28719#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
28720#[cfg_attr(
28721    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28722    assert_instr(smin)
28723)]
28724#[cfg_attr(
28725    not(target_arch = "arm"),
28726    stable(feature = "neon_intrinsics", since = "1.59.0")
28727)]
28728#[cfg_attr(
28729    target_arch = "arm",
28730    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28731)]
28732pub fn vminq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
28733    unsafe {
28734        let mask: int32x4_t = simd_le(a, b);
28735        simd_select(mask, a, b)
28736    }
28737}
28738#[doc = "Minimum (vector)"]
28739#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmin_u8)"]
28740#[inline]
28741#[target_feature(enable = "neon")]
28742#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28743#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
28744#[cfg_attr(
28745    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28746    assert_instr(umin)
28747)]
28748#[cfg_attr(
28749    not(target_arch = "arm"),
28750    stable(feature = "neon_intrinsics", since = "1.59.0")
28751)]
28752#[cfg_attr(
28753    target_arch = "arm",
28754    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28755)]
28756pub fn vmin_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
28757    unsafe {
28758        let mask: uint8x8_t = simd_le(a, b);
28759        simd_select(mask, a, b)
28760    }
28761}
28762#[doc = "Minimum (vector)"]
28763#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminq_u8)"]
28764#[inline]
28765#[target_feature(enable = "neon")]
28766#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28767#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
28768#[cfg_attr(
28769    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28770    assert_instr(umin)
28771)]
28772#[cfg_attr(
28773    not(target_arch = "arm"),
28774    stable(feature = "neon_intrinsics", since = "1.59.0")
28775)]
28776#[cfg_attr(
28777    target_arch = "arm",
28778    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28779)]
28780pub fn vminq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
28781    unsafe {
28782        let mask: uint8x16_t = simd_le(a, b);
28783        simd_select(mask, a, b)
28784    }
28785}
28786#[doc = "Minimum (vector)"]
28787#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmin_u16)"]
28788#[inline]
28789#[target_feature(enable = "neon")]
28790#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28791#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
28792#[cfg_attr(
28793    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28794    assert_instr(umin)
28795)]
28796#[cfg_attr(
28797    not(target_arch = "arm"),
28798    stable(feature = "neon_intrinsics", since = "1.59.0")
28799)]
28800#[cfg_attr(
28801    target_arch = "arm",
28802    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28803)]
28804pub fn vmin_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
28805    unsafe {
28806        let mask: uint16x4_t = simd_le(a, b);
28807        simd_select(mask, a, b)
28808    }
28809}
28810#[doc = "Minimum (vector)"]
28811#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminq_u16)"]
28812#[inline]
28813#[target_feature(enable = "neon")]
28814#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28815#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
28816#[cfg_attr(
28817    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28818    assert_instr(umin)
28819)]
28820#[cfg_attr(
28821    not(target_arch = "arm"),
28822    stable(feature = "neon_intrinsics", since = "1.59.0")
28823)]
28824#[cfg_attr(
28825    target_arch = "arm",
28826    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28827)]
28828pub fn vminq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
28829    unsafe {
28830        let mask: uint16x8_t = simd_le(a, b);
28831        simd_select(mask, a, b)
28832    }
28833}
28834#[doc = "Minimum (vector)"]
28835#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmin_u32)"]
28836#[inline]
28837#[target_feature(enable = "neon")]
28838#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28839#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
28840#[cfg_attr(
28841    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28842    assert_instr(umin)
28843)]
28844#[cfg_attr(
28845    not(target_arch = "arm"),
28846    stable(feature = "neon_intrinsics", since = "1.59.0")
28847)]
28848#[cfg_attr(
28849    target_arch = "arm",
28850    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28851)]
28852pub fn vmin_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
28853    unsafe {
28854        let mask: uint32x2_t = simd_le(a, b);
28855        simd_select(mask, a, b)
28856    }
28857}
28858#[doc = "Minimum (vector)"]
28859#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminq_u32)"]
28860#[inline]
28861#[target_feature(enable = "neon")]
28862#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28863#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
28864#[cfg_attr(
28865    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28866    assert_instr(umin)
28867)]
28868#[cfg_attr(
28869    not(target_arch = "arm"),
28870    stable(feature = "neon_intrinsics", since = "1.59.0")
28871)]
28872#[cfg_attr(
28873    target_arch = "arm",
28874    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28875)]
28876pub fn vminq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
28877    unsafe {
28878        let mask: uint32x4_t = simd_le(a, b);
28879        simd_select(mask, a, b)
28880    }
28881}
28882#[doc = "Floating-point Minimum Number (vector)"]
28883#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminnm_f16)"]
28884#[inline]
28885#[cfg_attr(target_arch = "arm", target_feature(enable = "fp-armv8,v8"))]
28886#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vminnm))]
28887#[cfg_attr(
28888    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28889    assert_instr(fminnm)
28890)]
28891#[target_feature(enable = "neon,fp16")]
28892#[cfg_attr(
28893    not(target_arch = "arm"),
28894    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
28895)]
28896#[cfg_attr(
28897    target_arch = "arm",
28898    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28899)]
28900#[cfg(not(target_arch = "arm64ec"))]
28901pub fn vminnm_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t {
28902    unsafe { simd_fmin(a, b) }
28903}
28904#[doc = "Floating-point Minimum Number (vector)"]
28905#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminnmq_f16)"]
28906#[inline]
28907#[cfg_attr(target_arch = "arm", target_feature(enable = "fp-armv8,v8"))]
28908#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vminnm))]
28909#[cfg_attr(
28910    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28911    assert_instr(fminnm)
28912)]
28913#[target_feature(enable = "neon,fp16")]
28914#[cfg_attr(
28915    not(target_arch = "arm"),
28916    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
28917)]
28918#[cfg_attr(
28919    target_arch = "arm",
28920    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28921)]
28922#[cfg(not(target_arch = "arm64ec"))]
28923pub fn vminnmq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t {
28924    unsafe { simd_fmin(a, b) }
28925}
28926#[doc = "Floating-point Minimum Number (vector)"]
28927#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminnm_f32)"]
28928#[inline]
28929#[target_feature(enable = "neon")]
28930#[cfg_attr(target_arch = "arm", target_feature(enable = "fp-armv8,v8"))]
28931#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vminnm))]
28932#[cfg_attr(
28933    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28934    assert_instr(fminnm)
28935)]
28936#[cfg_attr(
28937    not(target_arch = "arm"),
28938    stable(feature = "neon_intrinsics", since = "1.59.0")
28939)]
28940#[cfg_attr(
28941    target_arch = "arm",
28942    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28943)]
28944pub fn vminnm_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
28945    unsafe { simd_fmin(a, b) }
28946}
28947#[doc = "Floating-point Minimum Number (vector)"]
28948#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminnmq_f32)"]
28949#[inline]
28950#[target_feature(enable = "neon")]
28951#[cfg_attr(target_arch = "arm", target_feature(enable = "fp-armv8,v8"))]
28952#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vminnm))]
28953#[cfg_attr(
28954    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28955    assert_instr(fminnm)
28956)]
28957#[cfg_attr(
28958    not(target_arch = "arm"),
28959    stable(feature = "neon_intrinsics", since = "1.59.0")
28960)]
28961#[cfg_attr(
28962    target_arch = "arm",
28963    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28964)]
28965pub fn vminnmq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t {
28966    unsafe { simd_fmin(a, b) }
28967}
28968#[doc = "Floating-point multiply-add to accumulator"]
28969#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_f32)"]
28970#[inline]
28971#[target_feature(enable = "neon")]
28972#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28973#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.f32"))]
28974#[cfg_attr(
28975    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28976    assert_instr(fmul)
28977)]
28978#[cfg_attr(
28979    not(target_arch = "arm"),
28980    stable(feature = "neon_intrinsics", since = "1.59.0")
28981)]
28982#[cfg_attr(
28983    target_arch = "arm",
28984    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28985)]
28986pub fn vmla_f32(a: float32x2_t, b: float32x2_t, c: float32x2_t) -> float32x2_t {
28987    unsafe { simd_add(a, simd_mul(b, c)) }
28988}
28989#[doc = "Floating-point multiply-add to accumulator"]
28990#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_f32)"]
28991#[inline]
28992#[target_feature(enable = "neon")]
28993#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28994#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.f32"))]
28995#[cfg_attr(
28996    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28997    assert_instr(fmul)
28998)]
28999#[cfg_attr(
29000    not(target_arch = "arm"),
29001    stable(feature = "neon_intrinsics", since = "1.59.0")
29002)]
29003#[cfg_attr(
29004    target_arch = "arm",
29005    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29006)]
29007pub fn vmlaq_f32(a: float32x4_t, b: float32x4_t, c: float32x4_t) -> float32x4_t {
29008    unsafe { simd_add(a, simd_mul(b, c)) }
29009}
29010#[doc = "Vector multiply accumulate with scalar"]
29011#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_lane_f32)"]
29012#[inline]
29013#[target_feature(enable = "neon")]
29014#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29015#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.f32", LANE = 1))]
29016#[cfg_attr(
29017    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29018    assert_instr(fmul, LANE = 1)
29019)]
29020#[rustc_legacy_const_generics(3)]
29021#[cfg_attr(
29022    not(target_arch = "arm"),
29023    stable(feature = "neon_intrinsics", since = "1.59.0")
29024)]
29025#[cfg_attr(
29026    target_arch = "arm",
29027    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29028)]
29029pub fn vmla_lane_f32<const LANE: i32>(
29030    a: float32x2_t,
29031    b: float32x2_t,
29032    c: float32x2_t,
29033) -> float32x2_t {
29034    static_assert_uimm_bits!(LANE, 1);
29035    unsafe { vmla_f32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
29036}
29037#[doc = "Vector multiply accumulate with scalar"]
29038#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_laneq_f32)"]
29039#[inline]
29040#[target_feature(enable = "neon")]
29041#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29042#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.f32", LANE = 1))]
29043#[cfg_attr(
29044    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29045    assert_instr(fmul, LANE = 1)
29046)]
29047#[rustc_legacy_const_generics(3)]
29048#[cfg_attr(
29049    not(target_arch = "arm"),
29050    stable(feature = "neon_intrinsics", since = "1.59.0")
29051)]
29052#[cfg_attr(
29053    target_arch = "arm",
29054    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29055)]
29056pub fn vmla_laneq_f32<const LANE: i32>(
29057    a: float32x2_t,
29058    b: float32x2_t,
29059    c: float32x4_t,
29060) -> float32x2_t {
29061    static_assert_uimm_bits!(LANE, 2);
29062    unsafe { vmla_f32(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/vmlaq_lane_f32)"]
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.f32", LANE = 1))]
29070#[cfg_attr(
29071    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29072    assert_instr(fmul, 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 vmlaq_lane_f32<const LANE: i32>(
29084    a: float32x4_t,
29085    b: float32x4_t,
29086    c: float32x2_t,
29087) -> float32x4_t {
29088    static_assert_uimm_bits!(LANE, 1);
29089    unsafe {
29090        vmlaq_f32(
29091            a,
29092            b,
29093            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
29094        )
29095    }
29096}
29097#[doc = "Vector multiply accumulate with scalar"]
29098#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_laneq_f32)"]
29099#[inline]
29100#[target_feature(enable = "neon")]
29101#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29102#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.f32", LANE = 1))]
29103#[cfg_attr(
29104    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29105    assert_instr(fmul, LANE = 1)
29106)]
29107#[rustc_legacy_const_generics(3)]
29108#[cfg_attr(
29109    not(target_arch = "arm"),
29110    stable(feature = "neon_intrinsics", since = "1.59.0")
29111)]
29112#[cfg_attr(
29113    target_arch = "arm",
29114    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29115)]
29116pub fn vmlaq_laneq_f32<const LANE: i32>(
29117    a: float32x4_t,
29118    b: float32x4_t,
29119    c: float32x4_t,
29120) -> float32x4_t {
29121    static_assert_uimm_bits!(LANE, 2);
29122    unsafe {
29123        vmlaq_f32(
29124            a,
29125            b,
29126            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
29127        )
29128    }
29129}
29130#[doc = "Vector multiply accumulate with scalar"]
29131#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_lane_s16)"]
29132#[inline]
29133#[target_feature(enable = "neon")]
29134#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29135#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16", LANE = 1))]
29136#[cfg_attr(
29137    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29138    assert_instr(mla, LANE = 1)
29139)]
29140#[rustc_legacy_const_generics(3)]
29141#[cfg_attr(
29142    not(target_arch = "arm"),
29143    stable(feature = "neon_intrinsics", since = "1.59.0")
29144)]
29145#[cfg_attr(
29146    target_arch = "arm",
29147    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29148)]
29149pub fn vmla_lane_s16<const LANE: i32>(a: int16x4_t, b: int16x4_t, c: int16x4_t) -> int16x4_t {
29150    static_assert_uimm_bits!(LANE, 2);
29151    unsafe {
29152        vmla_s16(
29153            a,
29154            b,
29155            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
29156        )
29157    }
29158}
29159#[doc = "Vector multiply accumulate with scalar"]
29160#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_lane_u16)"]
29161#[inline]
29162#[target_feature(enable = "neon")]
29163#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29164#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16", LANE = 1))]
29165#[cfg_attr(
29166    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29167    assert_instr(mla, LANE = 1)
29168)]
29169#[rustc_legacy_const_generics(3)]
29170#[cfg_attr(
29171    not(target_arch = "arm"),
29172    stable(feature = "neon_intrinsics", since = "1.59.0")
29173)]
29174#[cfg_attr(
29175    target_arch = "arm",
29176    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29177)]
29178pub fn vmla_lane_u16<const LANE: i32>(a: uint16x4_t, b: uint16x4_t, c: uint16x4_t) -> uint16x4_t {
29179    static_assert_uimm_bits!(LANE, 2);
29180    unsafe {
29181        vmla_u16(
29182            a,
29183            b,
29184            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
29185        )
29186    }
29187}
29188#[doc = "Vector multiply accumulate with scalar"]
29189#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_laneq_s16)"]
29190#[inline]
29191#[target_feature(enable = "neon")]
29192#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29193#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16", LANE = 1))]
29194#[cfg_attr(
29195    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29196    assert_instr(mla, LANE = 1)
29197)]
29198#[rustc_legacy_const_generics(3)]
29199#[cfg_attr(
29200    not(target_arch = "arm"),
29201    stable(feature = "neon_intrinsics", since = "1.59.0")
29202)]
29203#[cfg_attr(
29204    target_arch = "arm",
29205    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29206)]
29207pub fn vmla_laneq_s16<const LANE: i32>(a: int16x4_t, b: int16x4_t, c: int16x8_t) -> int16x4_t {
29208    static_assert_uimm_bits!(LANE, 3);
29209    unsafe {
29210        vmla_s16(
29211            a,
29212            b,
29213            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
29214        )
29215    }
29216}
29217#[doc = "Vector multiply accumulate with scalar"]
29218#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_laneq_u16)"]
29219#[inline]
29220#[target_feature(enable = "neon")]
29221#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29222#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16", LANE = 1))]
29223#[cfg_attr(
29224    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29225    assert_instr(mla, LANE = 1)
29226)]
29227#[rustc_legacy_const_generics(3)]
29228#[cfg_attr(
29229    not(target_arch = "arm"),
29230    stable(feature = "neon_intrinsics", since = "1.59.0")
29231)]
29232#[cfg_attr(
29233    target_arch = "arm",
29234    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29235)]
29236pub fn vmla_laneq_u16<const LANE: i32>(a: uint16x4_t, b: uint16x4_t, c: uint16x8_t) -> uint16x4_t {
29237    static_assert_uimm_bits!(LANE, 3);
29238    unsafe {
29239        vmla_u16(
29240            a,
29241            b,
29242            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
29243        )
29244    }
29245}
29246#[doc = "Vector multiply accumulate with scalar"]
29247#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_lane_s16)"]
29248#[inline]
29249#[target_feature(enable = "neon")]
29250#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29251#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16", LANE = 1))]
29252#[cfg_attr(
29253    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29254    assert_instr(mla, LANE = 1)
29255)]
29256#[rustc_legacy_const_generics(3)]
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_lane_s16<const LANE: i32>(a: int16x8_t, b: int16x8_t, c: int16x4_t) -> int16x8_t {
29266    static_assert_uimm_bits!(LANE, 2);
29267    unsafe {
29268        vmlaq_s16(
29269            a,
29270            b,
29271            simd_shuffle!(
29272                c,
29273                c,
29274                [
29275                    LANE as u32,
29276                    LANE as u32,
29277                    LANE as u32,
29278                    LANE as u32,
29279                    LANE as u32,
29280                    LANE as u32,
29281                    LANE as u32,
29282                    LANE as u32
29283                ]
29284            ),
29285        )
29286    }
29287}
29288#[doc = "Vector multiply accumulate with scalar"]
29289#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_lane_u16)"]
29290#[inline]
29291#[target_feature(enable = "neon")]
29292#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29293#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16", LANE = 1))]
29294#[cfg_attr(
29295    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29296    assert_instr(mla, LANE = 1)
29297)]
29298#[rustc_legacy_const_generics(3)]
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_lane_u16<const LANE: i32>(a: uint16x8_t, b: uint16x8_t, c: uint16x4_t) -> uint16x8_t {
29308    static_assert_uimm_bits!(LANE, 2);
29309    unsafe {
29310        vmlaq_u16(
29311            a,
29312            b,
29313            simd_shuffle!(
29314                c,
29315                c,
29316                [
29317                    LANE as u32,
29318                    LANE as u32,
29319                    LANE as u32,
29320                    LANE as u32,
29321                    LANE as u32,
29322                    LANE as u32,
29323                    LANE as u32,
29324                    LANE as u32
29325                ]
29326            ),
29327        )
29328    }
29329}
29330#[doc = "Vector multiply accumulate with scalar"]
29331#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_laneq_s16)"]
29332#[inline]
29333#[target_feature(enable = "neon")]
29334#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29335#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16", LANE = 1))]
29336#[cfg_attr(
29337    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29338    assert_instr(mla, LANE = 1)
29339)]
29340#[rustc_legacy_const_generics(3)]
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_laneq_s16<const LANE: i32>(a: int16x8_t, b: int16x8_t, c: int16x8_t) -> int16x8_t {
29350    static_assert_uimm_bits!(LANE, 3);
29351    unsafe {
29352        vmlaq_s16(
29353            a,
29354            b,
29355            simd_shuffle!(
29356                c,
29357                c,
29358                [
29359                    LANE as u32,
29360                    LANE as u32,
29361                    LANE as u32,
29362                    LANE as u32,
29363                    LANE as u32,
29364                    LANE as u32,
29365                    LANE as u32,
29366                    LANE as u32
29367                ]
29368            ),
29369        )
29370    }
29371}
29372#[doc = "Vector multiply accumulate with scalar"]
29373#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_laneq_u16)"]
29374#[inline]
29375#[target_feature(enable = "neon")]
29376#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29377#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16", LANE = 1))]
29378#[cfg_attr(
29379    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29380    assert_instr(mla, LANE = 1)
29381)]
29382#[rustc_legacy_const_generics(3)]
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_laneq_u16<const LANE: i32>(a: uint16x8_t, b: uint16x8_t, c: uint16x8_t) -> uint16x8_t {
29392    static_assert_uimm_bits!(LANE, 3);
29393    unsafe {
29394        vmlaq_u16(
29395            a,
29396            b,
29397            simd_shuffle!(
29398                c,
29399                c,
29400                [
29401                    LANE as u32,
29402                    LANE as u32,
29403                    LANE as u32,
29404                    LANE as u32,
29405                    LANE as u32,
29406                    LANE as u32,
29407                    LANE as u32,
29408                    LANE as u32
29409                ]
29410            ),
29411        )
29412    }
29413}
29414#[doc = "Vector multiply accumulate with scalar"]
29415#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_lane_s32)"]
29416#[inline]
29417#[target_feature(enable = "neon")]
29418#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29419#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32", LANE = 1))]
29420#[cfg_attr(
29421    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29422    assert_instr(mla, LANE = 1)
29423)]
29424#[rustc_legacy_const_generics(3)]
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 vmla_lane_s32<const LANE: i32>(a: int32x2_t, b: int32x2_t, c: int32x2_t) -> int32x2_t {
29434    static_assert_uimm_bits!(LANE, 1);
29435    unsafe { vmla_s32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
29436}
29437#[doc = "Vector multiply accumulate with scalar"]
29438#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_lane_u32)"]
29439#[inline]
29440#[target_feature(enable = "neon")]
29441#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29442#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32", LANE = 1))]
29443#[cfg_attr(
29444    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29445    assert_instr(mla, LANE = 1)
29446)]
29447#[rustc_legacy_const_generics(3)]
29448#[cfg_attr(
29449    not(target_arch = "arm"),
29450    stable(feature = "neon_intrinsics", since = "1.59.0")
29451)]
29452#[cfg_attr(
29453    target_arch = "arm",
29454    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29455)]
29456pub fn vmla_lane_u32<const LANE: i32>(a: uint32x2_t, b: uint32x2_t, c: uint32x2_t) -> uint32x2_t {
29457    static_assert_uimm_bits!(LANE, 1);
29458    unsafe { vmla_u32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
29459}
29460#[doc = "Vector multiply accumulate with scalar"]
29461#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_laneq_s32)"]
29462#[inline]
29463#[target_feature(enable = "neon")]
29464#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29465#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32", LANE = 1))]
29466#[cfg_attr(
29467    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29468    assert_instr(mla, LANE = 1)
29469)]
29470#[rustc_legacy_const_generics(3)]
29471#[cfg_attr(
29472    not(target_arch = "arm"),
29473    stable(feature = "neon_intrinsics", since = "1.59.0")
29474)]
29475#[cfg_attr(
29476    target_arch = "arm",
29477    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29478)]
29479pub fn vmla_laneq_s32<const LANE: i32>(a: int32x2_t, b: int32x2_t, c: int32x4_t) -> int32x2_t {
29480    static_assert_uimm_bits!(LANE, 2);
29481    unsafe { vmla_s32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
29482}
29483#[doc = "Vector multiply accumulate with scalar"]
29484#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_laneq_u32)"]
29485#[inline]
29486#[target_feature(enable = "neon")]
29487#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29488#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32", LANE = 1))]
29489#[cfg_attr(
29490    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29491    assert_instr(mla, LANE = 1)
29492)]
29493#[rustc_legacy_const_generics(3)]
29494#[cfg_attr(
29495    not(target_arch = "arm"),
29496    stable(feature = "neon_intrinsics", since = "1.59.0")
29497)]
29498#[cfg_attr(
29499    target_arch = "arm",
29500    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29501)]
29502pub fn vmla_laneq_u32<const LANE: i32>(a: uint32x2_t, b: uint32x2_t, c: uint32x4_t) -> uint32x2_t {
29503    static_assert_uimm_bits!(LANE, 2);
29504    unsafe { vmla_u32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
29505}
29506#[doc = "Vector multiply accumulate with scalar"]
29507#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_lane_s32)"]
29508#[inline]
29509#[target_feature(enable = "neon")]
29510#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29511#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32", LANE = 1))]
29512#[cfg_attr(
29513    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29514    assert_instr(mla, LANE = 1)
29515)]
29516#[rustc_legacy_const_generics(3)]
29517#[cfg_attr(
29518    not(target_arch = "arm"),
29519    stable(feature = "neon_intrinsics", since = "1.59.0")
29520)]
29521#[cfg_attr(
29522    target_arch = "arm",
29523    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29524)]
29525pub fn vmlaq_lane_s32<const LANE: i32>(a: int32x4_t, b: int32x4_t, c: int32x2_t) -> int32x4_t {
29526    static_assert_uimm_bits!(LANE, 1);
29527    unsafe {
29528        vmlaq_s32(
29529            a,
29530            b,
29531            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
29532        )
29533    }
29534}
29535#[doc = "Vector multiply accumulate with scalar"]
29536#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_lane_u32)"]
29537#[inline]
29538#[target_feature(enable = "neon")]
29539#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29540#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32", LANE = 1))]
29541#[cfg_attr(
29542    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29543    assert_instr(mla, LANE = 1)
29544)]
29545#[rustc_legacy_const_generics(3)]
29546#[cfg_attr(
29547    not(target_arch = "arm"),
29548    stable(feature = "neon_intrinsics", since = "1.59.0")
29549)]
29550#[cfg_attr(
29551    target_arch = "arm",
29552    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29553)]
29554pub fn vmlaq_lane_u32<const LANE: i32>(a: uint32x4_t, b: uint32x4_t, c: uint32x2_t) -> uint32x4_t {
29555    static_assert_uimm_bits!(LANE, 1);
29556    unsafe {
29557        vmlaq_u32(
29558            a,
29559            b,
29560            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
29561        )
29562    }
29563}
29564#[doc = "Vector multiply accumulate with scalar"]
29565#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_laneq_s32)"]
29566#[inline]
29567#[target_feature(enable = "neon")]
29568#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29569#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32", LANE = 1))]
29570#[cfg_attr(
29571    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29572    assert_instr(mla, LANE = 1)
29573)]
29574#[rustc_legacy_const_generics(3)]
29575#[cfg_attr(
29576    not(target_arch = "arm"),
29577    stable(feature = "neon_intrinsics", since = "1.59.0")
29578)]
29579#[cfg_attr(
29580    target_arch = "arm",
29581    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29582)]
29583pub fn vmlaq_laneq_s32<const LANE: i32>(a: int32x4_t, b: int32x4_t, c: int32x4_t) -> int32x4_t {
29584    static_assert_uimm_bits!(LANE, 2);
29585    unsafe {
29586        vmlaq_s32(
29587            a,
29588            b,
29589            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
29590        )
29591    }
29592}
29593#[doc = "Vector multiply accumulate with scalar"]
29594#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_laneq_u32)"]
29595#[inline]
29596#[target_feature(enable = "neon")]
29597#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29598#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32", LANE = 1))]
29599#[cfg_attr(
29600    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29601    assert_instr(mla, LANE = 1)
29602)]
29603#[rustc_legacy_const_generics(3)]
29604#[cfg_attr(
29605    not(target_arch = "arm"),
29606    stable(feature = "neon_intrinsics", since = "1.59.0")
29607)]
29608#[cfg_attr(
29609    target_arch = "arm",
29610    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29611)]
29612pub fn vmlaq_laneq_u32<const LANE: i32>(a: uint32x4_t, b: uint32x4_t, c: uint32x4_t) -> uint32x4_t {
29613    static_assert_uimm_bits!(LANE, 2);
29614    unsafe {
29615        vmlaq_u32(
29616            a,
29617            b,
29618            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
29619        )
29620    }
29621}
29622#[doc = "Vector multiply accumulate with scalar"]
29623#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_n_f32)"]
29624#[inline]
29625#[target_feature(enable = "neon")]
29626#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29627#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.f32"))]
29628#[cfg_attr(
29629    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29630    assert_instr(fmul)
29631)]
29632#[cfg_attr(
29633    not(target_arch = "arm"),
29634    stable(feature = "neon_intrinsics", since = "1.59.0")
29635)]
29636#[cfg_attr(
29637    target_arch = "arm",
29638    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29639)]
29640pub fn vmla_n_f32(a: float32x2_t, b: float32x2_t, c: f32) -> float32x2_t {
29641    vmla_f32(a, b, vdup_n_f32(c))
29642}
29643#[doc = "Vector multiply accumulate with scalar"]
29644#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_n_f32)"]
29645#[inline]
29646#[target_feature(enable = "neon")]
29647#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29648#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.f32"))]
29649#[cfg_attr(
29650    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29651    assert_instr(fmul)
29652)]
29653#[cfg_attr(
29654    not(target_arch = "arm"),
29655    stable(feature = "neon_intrinsics", since = "1.59.0")
29656)]
29657#[cfg_attr(
29658    target_arch = "arm",
29659    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29660)]
29661pub fn vmlaq_n_f32(a: float32x4_t, b: float32x4_t, c: f32) -> float32x4_t {
29662    vmlaq_f32(a, b, vdupq_n_f32(c))
29663}
29664#[doc = "Vector multiply accumulate with scalar"]
29665#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_n_s16)"]
29666#[inline]
29667#[target_feature(enable = "neon")]
29668#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29669#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16"))]
29670#[cfg_attr(
29671    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29672    assert_instr(mla)
29673)]
29674#[cfg_attr(
29675    not(target_arch = "arm"),
29676    stable(feature = "neon_intrinsics", since = "1.59.0")
29677)]
29678#[cfg_attr(
29679    target_arch = "arm",
29680    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29681)]
29682pub fn vmla_n_s16(a: int16x4_t, b: int16x4_t, c: i16) -> int16x4_t {
29683    vmla_s16(a, b, vdup_n_s16(c))
29684}
29685#[doc = "Vector multiply accumulate with scalar"]
29686#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_n_s16)"]
29687#[inline]
29688#[target_feature(enable = "neon")]
29689#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29690#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16"))]
29691#[cfg_attr(
29692    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29693    assert_instr(mla)
29694)]
29695#[cfg_attr(
29696    not(target_arch = "arm"),
29697    stable(feature = "neon_intrinsics", since = "1.59.0")
29698)]
29699#[cfg_attr(
29700    target_arch = "arm",
29701    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29702)]
29703pub fn vmlaq_n_s16(a: int16x8_t, b: int16x8_t, c: i16) -> int16x8_t {
29704    vmlaq_s16(a, b, vdupq_n_s16(c))
29705}
29706#[doc = "Vector multiply accumulate with scalar"]
29707#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_n_u16)"]
29708#[inline]
29709#[target_feature(enable = "neon")]
29710#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29711#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16"))]
29712#[cfg_attr(
29713    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29714    assert_instr(mla)
29715)]
29716#[cfg_attr(
29717    not(target_arch = "arm"),
29718    stable(feature = "neon_intrinsics", since = "1.59.0")
29719)]
29720#[cfg_attr(
29721    target_arch = "arm",
29722    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29723)]
29724pub fn vmla_n_u16(a: uint16x4_t, b: uint16x4_t, c: u16) -> uint16x4_t {
29725    vmla_u16(a, b, vdup_n_u16(c))
29726}
29727#[doc = "Vector multiply accumulate with scalar"]
29728#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_n_u16)"]
29729#[inline]
29730#[target_feature(enable = "neon")]
29731#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29732#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16"))]
29733#[cfg_attr(
29734    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29735    assert_instr(mla)
29736)]
29737#[cfg_attr(
29738    not(target_arch = "arm"),
29739    stable(feature = "neon_intrinsics", since = "1.59.0")
29740)]
29741#[cfg_attr(
29742    target_arch = "arm",
29743    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29744)]
29745pub fn vmlaq_n_u16(a: uint16x8_t, b: uint16x8_t, c: u16) -> uint16x8_t {
29746    vmlaq_u16(a, b, vdupq_n_u16(c))
29747}
29748#[doc = "Vector multiply accumulate with scalar"]
29749#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_n_s32)"]
29750#[inline]
29751#[target_feature(enable = "neon")]
29752#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29753#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32"))]
29754#[cfg_attr(
29755    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29756    assert_instr(mla)
29757)]
29758#[cfg_attr(
29759    not(target_arch = "arm"),
29760    stable(feature = "neon_intrinsics", since = "1.59.0")
29761)]
29762#[cfg_attr(
29763    target_arch = "arm",
29764    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29765)]
29766pub fn vmla_n_s32(a: int32x2_t, b: int32x2_t, c: i32) -> int32x2_t {
29767    vmla_s32(a, b, vdup_n_s32(c))
29768}
29769#[doc = "Vector multiply accumulate with scalar"]
29770#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_n_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("vmla.i32"))]
29775#[cfg_attr(
29776    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29777    assert_instr(mla)
29778)]
29779#[cfg_attr(
29780    not(target_arch = "arm"),
29781    stable(feature = "neon_intrinsics", since = "1.59.0")
29782)]
29783#[cfg_attr(
29784    target_arch = "arm",
29785    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29786)]
29787pub fn vmlaq_n_s32(a: int32x4_t, b: int32x4_t, c: i32) -> int32x4_t {
29788    vmlaq_s32(a, b, vdupq_n_s32(c))
29789}
29790#[doc = "Vector multiply accumulate with scalar"]
29791#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_n_u32)"]
29792#[inline]
29793#[target_feature(enable = "neon")]
29794#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29795#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32"))]
29796#[cfg_attr(
29797    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29798    assert_instr(mla)
29799)]
29800#[cfg_attr(
29801    not(target_arch = "arm"),
29802    stable(feature = "neon_intrinsics", since = "1.59.0")
29803)]
29804#[cfg_attr(
29805    target_arch = "arm",
29806    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29807)]
29808pub fn vmla_n_u32(a: uint32x2_t, b: uint32x2_t, c: u32) -> uint32x2_t {
29809    vmla_u32(a, b, vdup_n_u32(c))
29810}
29811#[doc = "Vector multiply accumulate with scalar"]
29812#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_n_u32)"]
29813#[inline]
29814#[target_feature(enable = "neon")]
29815#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29816#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32"))]
29817#[cfg_attr(
29818    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29819    assert_instr(mla)
29820)]
29821#[cfg_attr(
29822    not(target_arch = "arm"),
29823    stable(feature = "neon_intrinsics", since = "1.59.0")
29824)]
29825#[cfg_attr(
29826    target_arch = "arm",
29827    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29828)]
29829pub fn vmlaq_n_u32(a: uint32x4_t, b: uint32x4_t, c: u32) -> uint32x4_t {
29830    vmlaq_u32(a, b, vdupq_n_u32(c))
29831}
29832#[doc = "Multiply-add to accumulator"]
29833#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_s8)"]
29834#[inline]
29835#[target_feature(enable = "neon")]
29836#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29837#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i8"))]
29838#[cfg_attr(
29839    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29840    assert_instr(mla)
29841)]
29842#[cfg_attr(
29843    not(target_arch = "arm"),
29844    stable(feature = "neon_intrinsics", since = "1.59.0")
29845)]
29846#[cfg_attr(
29847    target_arch = "arm",
29848    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29849)]
29850pub fn vmla_s8(a: int8x8_t, b: int8x8_t, c: int8x8_t) -> int8x8_t {
29851    unsafe { simd_add(a, simd_mul(b, c)) }
29852}
29853#[doc = "Multiply-add to accumulator"]
29854#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_s8)"]
29855#[inline]
29856#[target_feature(enable = "neon")]
29857#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29858#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i8"))]
29859#[cfg_attr(
29860    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29861    assert_instr(mla)
29862)]
29863#[cfg_attr(
29864    not(target_arch = "arm"),
29865    stable(feature = "neon_intrinsics", since = "1.59.0")
29866)]
29867#[cfg_attr(
29868    target_arch = "arm",
29869    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29870)]
29871pub fn vmlaq_s8(a: int8x16_t, b: int8x16_t, c: int8x16_t) -> int8x16_t {
29872    unsafe { simd_add(a, simd_mul(b, c)) }
29873}
29874#[doc = "Multiply-add to accumulator"]
29875#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_s16)"]
29876#[inline]
29877#[target_feature(enable = "neon")]
29878#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29879#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16"))]
29880#[cfg_attr(
29881    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29882    assert_instr(mla)
29883)]
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 vmla_s16(a: int16x4_t, b: int16x4_t, c: int16x4_t) -> int16x4_t {
29893    unsafe { simd_add(a, simd_mul(b, c)) }
29894}
29895#[doc = "Multiply-add to accumulator"]
29896#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_s16)"]
29897#[inline]
29898#[target_feature(enable = "neon")]
29899#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29900#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16"))]
29901#[cfg_attr(
29902    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29903    assert_instr(mla)
29904)]
29905#[cfg_attr(
29906    not(target_arch = "arm"),
29907    stable(feature = "neon_intrinsics", since = "1.59.0")
29908)]
29909#[cfg_attr(
29910    target_arch = "arm",
29911    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29912)]
29913pub fn vmlaq_s16(a: int16x8_t, b: int16x8_t, c: int16x8_t) -> int16x8_t {
29914    unsafe { simd_add(a, simd_mul(b, c)) }
29915}
29916#[doc = "Multiply-add to accumulator"]
29917#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_s32)"]
29918#[inline]
29919#[target_feature(enable = "neon")]
29920#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29921#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32"))]
29922#[cfg_attr(
29923    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29924    assert_instr(mla)
29925)]
29926#[cfg_attr(
29927    not(target_arch = "arm"),
29928    stable(feature = "neon_intrinsics", since = "1.59.0")
29929)]
29930#[cfg_attr(
29931    target_arch = "arm",
29932    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29933)]
29934pub fn vmla_s32(a: int32x2_t, b: int32x2_t, c: int32x2_t) -> int32x2_t {
29935    unsafe { simd_add(a, simd_mul(b, c)) }
29936}
29937#[doc = "Multiply-add to accumulator"]
29938#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_s32)"]
29939#[inline]
29940#[target_feature(enable = "neon")]
29941#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29942#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32"))]
29943#[cfg_attr(
29944    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29945    assert_instr(mla)
29946)]
29947#[cfg_attr(
29948    not(target_arch = "arm"),
29949    stable(feature = "neon_intrinsics", since = "1.59.0")
29950)]
29951#[cfg_attr(
29952    target_arch = "arm",
29953    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29954)]
29955pub fn vmlaq_s32(a: int32x4_t, b: int32x4_t, c: int32x4_t) -> int32x4_t {
29956    unsafe { simd_add(a, simd_mul(b, c)) }
29957}
29958#[doc = "Multiply-add to accumulator"]
29959#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_u8)"]
29960#[inline]
29961#[target_feature(enable = "neon")]
29962#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29963#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i8"))]
29964#[cfg_attr(
29965    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29966    assert_instr(mla)
29967)]
29968#[cfg_attr(
29969    not(target_arch = "arm"),
29970    stable(feature = "neon_intrinsics", since = "1.59.0")
29971)]
29972#[cfg_attr(
29973    target_arch = "arm",
29974    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29975)]
29976pub fn vmla_u8(a: uint8x8_t, b: uint8x8_t, c: uint8x8_t) -> uint8x8_t {
29977    unsafe { simd_add(a, simd_mul(b, c)) }
29978}
29979#[doc = "Multiply-add to accumulator"]
29980#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_u8)"]
29981#[inline]
29982#[target_feature(enable = "neon")]
29983#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29984#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i8"))]
29985#[cfg_attr(
29986    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29987    assert_instr(mla)
29988)]
29989#[cfg_attr(
29990    not(target_arch = "arm"),
29991    stable(feature = "neon_intrinsics", since = "1.59.0")
29992)]
29993#[cfg_attr(
29994    target_arch = "arm",
29995    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29996)]
29997pub fn vmlaq_u8(a: uint8x16_t, b: uint8x16_t, c: uint8x16_t) -> uint8x16_t {
29998    unsafe { simd_add(a, simd_mul(b, c)) }
29999}
30000#[doc = "Multiply-add to accumulator"]
30001#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_u16)"]
30002#[inline]
30003#[target_feature(enable = "neon")]
30004#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30005#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16"))]
30006#[cfg_attr(
30007    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30008    assert_instr(mla)
30009)]
30010#[cfg_attr(
30011    not(target_arch = "arm"),
30012    stable(feature = "neon_intrinsics", since = "1.59.0")
30013)]
30014#[cfg_attr(
30015    target_arch = "arm",
30016    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30017)]
30018pub fn vmla_u16(a: uint16x4_t, b: uint16x4_t, c: uint16x4_t) -> uint16x4_t {
30019    unsafe { simd_add(a, simd_mul(b, c)) }
30020}
30021#[doc = "Multiply-add to accumulator"]
30022#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_u16)"]
30023#[inline]
30024#[target_feature(enable = "neon")]
30025#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30026#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16"))]
30027#[cfg_attr(
30028    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30029    assert_instr(mla)
30030)]
30031#[cfg_attr(
30032    not(target_arch = "arm"),
30033    stable(feature = "neon_intrinsics", since = "1.59.0")
30034)]
30035#[cfg_attr(
30036    target_arch = "arm",
30037    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30038)]
30039pub fn vmlaq_u16(a: uint16x8_t, b: uint16x8_t, c: uint16x8_t) -> uint16x8_t {
30040    unsafe { simd_add(a, simd_mul(b, c)) }
30041}
30042#[doc = "Multiply-add to accumulator"]
30043#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_u32)"]
30044#[inline]
30045#[target_feature(enable = "neon")]
30046#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30047#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32"))]
30048#[cfg_attr(
30049    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30050    assert_instr(mla)
30051)]
30052#[cfg_attr(
30053    not(target_arch = "arm"),
30054    stable(feature = "neon_intrinsics", since = "1.59.0")
30055)]
30056#[cfg_attr(
30057    target_arch = "arm",
30058    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30059)]
30060pub fn vmla_u32(a: uint32x2_t, b: uint32x2_t, c: uint32x2_t) -> uint32x2_t {
30061    unsafe { simd_add(a, simd_mul(b, c)) }
30062}
30063#[doc = "Multiply-add to accumulator"]
30064#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_u32)"]
30065#[inline]
30066#[target_feature(enable = "neon")]
30067#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30068#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32"))]
30069#[cfg_attr(
30070    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30071    assert_instr(mla)
30072)]
30073#[cfg_attr(
30074    not(target_arch = "arm"),
30075    stable(feature = "neon_intrinsics", since = "1.59.0")
30076)]
30077#[cfg_attr(
30078    target_arch = "arm",
30079    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30080)]
30081pub fn vmlaq_u32(a: uint32x4_t, b: uint32x4_t, c: uint32x4_t) -> uint32x4_t {
30082    unsafe { simd_add(a, simd_mul(b, c)) }
30083}
30084#[doc = "Vector widening multiply accumulate with scalar"]
30085#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_lane_s16)"]
30086#[inline]
30087#[target_feature(enable = "neon")]
30088#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30089#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.s16", LANE = 1))]
30090#[cfg_attr(
30091    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30092    assert_instr(smlal, LANE = 1)
30093)]
30094#[rustc_legacy_const_generics(3)]
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_lane_s16<const LANE: i32>(a: int32x4_t, b: int16x4_t, c: int16x4_t) -> int32x4_t {
30104    static_assert_uimm_bits!(LANE, 2);
30105    unsafe {
30106        vmlal_s16(
30107            a,
30108            b,
30109            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
30110        )
30111    }
30112}
30113#[doc = "Vector widening multiply accumulate with scalar"]
30114#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_laneq_s16)"]
30115#[inline]
30116#[target_feature(enable = "neon")]
30117#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30118#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.s16", LANE = 1))]
30119#[cfg_attr(
30120    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30121    assert_instr(smlal, LANE = 1)
30122)]
30123#[rustc_legacy_const_generics(3)]
30124#[cfg_attr(
30125    not(target_arch = "arm"),
30126    stable(feature = "neon_intrinsics", since = "1.59.0")
30127)]
30128#[cfg_attr(
30129    target_arch = "arm",
30130    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30131)]
30132pub fn vmlal_laneq_s16<const LANE: i32>(a: int32x4_t, b: int16x4_t, c: int16x8_t) -> int32x4_t {
30133    static_assert_uimm_bits!(LANE, 3);
30134    unsafe {
30135        vmlal_s16(
30136            a,
30137            b,
30138            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
30139        )
30140    }
30141}
30142#[doc = "Vector widening multiply accumulate with scalar"]
30143#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_lane_s32)"]
30144#[inline]
30145#[target_feature(enable = "neon")]
30146#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30147#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.s32", LANE = 1))]
30148#[cfg_attr(
30149    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30150    assert_instr(smlal, LANE = 1)
30151)]
30152#[rustc_legacy_const_generics(3)]
30153#[cfg_attr(
30154    not(target_arch = "arm"),
30155    stable(feature = "neon_intrinsics", since = "1.59.0")
30156)]
30157#[cfg_attr(
30158    target_arch = "arm",
30159    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30160)]
30161pub fn vmlal_lane_s32<const LANE: i32>(a: int64x2_t, b: int32x2_t, c: int32x2_t) -> int64x2_t {
30162    static_assert_uimm_bits!(LANE, 1);
30163    unsafe { vmlal_s32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
30164}
30165#[doc = "Vector widening multiply accumulate with scalar"]
30166#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_laneq_s32)"]
30167#[inline]
30168#[target_feature(enable = "neon")]
30169#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30170#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.s32", LANE = 1))]
30171#[cfg_attr(
30172    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30173    assert_instr(smlal, LANE = 1)
30174)]
30175#[rustc_legacy_const_generics(3)]
30176#[cfg_attr(
30177    not(target_arch = "arm"),
30178    stable(feature = "neon_intrinsics", since = "1.59.0")
30179)]
30180#[cfg_attr(
30181    target_arch = "arm",
30182    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30183)]
30184pub fn vmlal_laneq_s32<const LANE: i32>(a: int64x2_t, b: int32x2_t, c: int32x4_t) -> int64x2_t {
30185    static_assert_uimm_bits!(LANE, 2);
30186    unsafe { vmlal_s32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
30187}
30188#[doc = "Vector widening multiply accumulate with scalar"]
30189#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_lane_u16)"]
30190#[inline]
30191#[target_feature(enable = "neon")]
30192#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30193#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.u16", LANE = 1))]
30194#[cfg_attr(
30195    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30196    assert_instr(umlal, LANE = 1)
30197)]
30198#[rustc_legacy_const_generics(3)]
30199#[cfg_attr(
30200    not(target_arch = "arm"),
30201    stable(feature = "neon_intrinsics", since = "1.59.0")
30202)]
30203#[cfg_attr(
30204    target_arch = "arm",
30205    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30206)]
30207pub fn vmlal_lane_u16<const LANE: i32>(a: uint32x4_t, b: uint16x4_t, c: uint16x4_t) -> uint32x4_t {
30208    static_assert_uimm_bits!(LANE, 2);
30209    unsafe {
30210        vmlal_u16(
30211            a,
30212            b,
30213            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
30214        )
30215    }
30216}
30217#[doc = "Vector widening multiply accumulate with scalar"]
30218#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_laneq_u16)"]
30219#[inline]
30220#[target_feature(enable = "neon")]
30221#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30222#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.u16", LANE = 1))]
30223#[cfg_attr(
30224    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30225    assert_instr(umlal, LANE = 1)
30226)]
30227#[rustc_legacy_const_generics(3)]
30228#[cfg_attr(
30229    not(target_arch = "arm"),
30230    stable(feature = "neon_intrinsics", since = "1.59.0")
30231)]
30232#[cfg_attr(
30233    target_arch = "arm",
30234    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30235)]
30236pub fn vmlal_laneq_u16<const LANE: i32>(a: uint32x4_t, b: uint16x4_t, c: uint16x8_t) -> uint32x4_t {
30237    static_assert_uimm_bits!(LANE, 3);
30238    unsafe {
30239        vmlal_u16(
30240            a,
30241            b,
30242            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
30243        )
30244    }
30245}
30246#[doc = "Vector widening multiply accumulate with scalar"]
30247#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_lane_u32)"]
30248#[inline]
30249#[target_feature(enable = "neon")]
30250#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30251#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.u32", LANE = 1))]
30252#[cfg_attr(
30253    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30254    assert_instr(umlal, LANE = 1)
30255)]
30256#[rustc_legacy_const_generics(3)]
30257#[cfg_attr(
30258    not(target_arch = "arm"),
30259    stable(feature = "neon_intrinsics", since = "1.59.0")
30260)]
30261#[cfg_attr(
30262    target_arch = "arm",
30263    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30264)]
30265pub fn vmlal_lane_u32<const LANE: i32>(a: uint64x2_t, b: uint32x2_t, c: uint32x2_t) -> uint64x2_t {
30266    static_assert_uimm_bits!(LANE, 1);
30267    unsafe { vmlal_u32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
30268}
30269#[doc = "Vector widening multiply accumulate with scalar"]
30270#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_laneq_u32)"]
30271#[inline]
30272#[target_feature(enable = "neon")]
30273#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30274#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.u32", LANE = 1))]
30275#[cfg_attr(
30276    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30277    assert_instr(umlal, LANE = 1)
30278)]
30279#[rustc_legacy_const_generics(3)]
30280#[cfg_attr(
30281    not(target_arch = "arm"),
30282    stable(feature = "neon_intrinsics", since = "1.59.0")
30283)]
30284#[cfg_attr(
30285    target_arch = "arm",
30286    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30287)]
30288pub fn vmlal_laneq_u32<const LANE: i32>(a: uint64x2_t, b: uint32x2_t, c: uint32x4_t) -> uint64x2_t {
30289    static_assert_uimm_bits!(LANE, 2);
30290    unsafe { vmlal_u32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
30291}
30292#[doc = "Vector widening multiply accumulate with scalar"]
30293#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_n_s16)"]
30294#[inline]
30295#[target_feature(enable = "neon")]
30296#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30297#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.s16"))]
30298#[cfg_attr(
30299    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30300    assert_instr(smlal)
30301)]
30302#[cfg_attr(
30303    not(target_arch = "arm"),
30304    stable(feature = "neon_intrinsics", since = "1.59.0")
30305)]
30306#[cfg_attr(
30307    target_arch = "arm",
30308    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30309)]
30310pub fn vmlal_n_s16(a: int32x4_t, b: int16x4_t, c: i16) -> int32x4_t {
30311    vmlal_s16(a, b, vdup_n_s16(c))
30312}
30313#[doc = "Vector widening multiply accumulate with scalar"]
30314#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_n_s32)"]
30315#[inline]
30316#[target_feature(enable = "neon")]
30317#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30318#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.s32"))]
30319#[cfg_attr(
30320    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30321    assert_instr(smlal)
30322)]
30323#[cfg_attr(
30324    not(target_arch = "arm"),
30325    stable(feature = "neon_intrinsics", since = "1.59.0")
30326)]
30327#[cfg_attr(
30328    target_arch = "arm",
30329    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30330)]
30331pub fn vmlal_n_s32(a: int64x2_t, b: int32x2_t, c: i32) -> int64x2_t {
30332    vmlal_s32(a, b, vdup_n_s32(c))
30333}
30334#[doc = "Vector widening multiply accumulate with scalar"]
30335#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_n_u16)"]
30336#[inline]
30337#[target_feature(enable = "neon")]
30338#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30339#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.u16"))]
30340#[cfg_attr(
30341    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30342    assert_instr(umlal)
30343)]
30344#[cfg_attr(
30345    not(target_arch = "arm"),
30346    stable(feature = "neon_intrinsics", since = "1.59.0")
30347)]
30348#[cfg_attr(
30349    target_arch = "arm",
30350    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30351)]
30352pub fn vmlal_n_u16(a: uint32x4_t, b: uint16x4_t, c: u16) -> uint32x4_t {
30353    vmlal_u16(a, b, vdup_n_u16(c))
30354}
30355#[doc = "Vector widening multiply accumulate with scalar"]
30356#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_n_u32)"]
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("vmlal.u32"))]
30361#[cfg_attr(
30362    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30363    assert_instr(umlal)
30364)]
30365#[cfg_attr(
30366    not(target_arch = "arm"),
30367    stable(feature = "neon_intrinsics", since = "1.59.0")
30368)]
30369#[cfg_attr(
30370    target_arch = "arm",
30371    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30372)]
30373pub fn vmlal_n_u32(a: uint64x2_t, b: uint32x2_t, c: u32) -> uint64x2_t {
30374    vmlal_u32(a, b, vdup_n_u32(c))
30375}
30376#[doc = "Signed multiply-add long"]
30377#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_s8)"]
30378#[inline]
30379#[target_feature(enable = "neon")]
30380#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30381#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.s8"))]
30382#[cfg_attr(
30383    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30384    assert_instr(smlal)
30385)]
30386#[cfg_attr(
30387    not(target_arch = "arm"),
30388    stable(feature = "neon_intrinsics", since = "1.59.0")
30389)]
30390#[cfg_attr(
30391    target_arch = "arm",
30392    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30393)]
30394pub fn vmlal_s8(a: int16x8_t, b: int8x8_t, c: int8x8_t) -> int16x8_t {
30395    unsafe { simd_add(a, vmull_s8(b, c)) }
30396}
30397#[doc = "Signed multiply-add long"]
30398#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_s16)"]
30399#[inline]
30400#[target_feature(enable = "neon")]
30401#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30402#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.s16"))]
30403#[cfg_attr(
30404    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30405    assert_instr(smlal)
30406)]
30407#[cfg_attr(
30408    not(target_arch = "arm"),
30409    stable(feature = "neon_intrinsics", since = "1.59.0")
30410)]
30411#[cfg_attr(
30412    target_arch = "arm",
30413    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30414)]
30415pub fn vmlal_s16(a: int32x4_t, b: int16x4_t, c: int16x4_t) -> int32x4_t {
30416    unsafe { simd_add(a, vmull_s16(b, c)) }
30417}
30418#[doc = "Signed multiply-add long"]
30419#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_s32)"]
30420#[inline]
30421#[target_feature(enable = "neon")]
30422#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30423#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.s32"))]
30424#[cfg_attr(
30425    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30426    assert_instr(smlal)
30427)]
30428#[cfg_attr(
30429    not(target_arch = "arm"),
30430    stable(feature = "neon_intrinsics", since = "1.59.0")
30431)]
30432#[cfg_attr(
30433    target_arch = "arm",
30434    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30435)]
30436pub fn vmlal_s32(a: int64x2_t, b: int32x2_t, c: int32x2_t) -> int64x2_t {
30437    unsafe { simd_add(a, vmull_s32(b, c)) }
30438}
30439#[doc = "Unsigned multiply-add long"]
30440#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_u8)"]
30441#[inline]
30442#[target_feature(enable = "neon")]
30443#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30444#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.u8"))]
30445#[cfg_attr(
30446    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30447    assert_instr(umlal)
30448)]
30449#[cfg_attr(
30450    not(target_arch = "arm"),
30451    stable(feature = "neon_intrinsics", since = "1.59.0")
30452)]
30453#[cfg_attr(
30454    target_arch = "arm",
30455    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30456)]
30457pub fn vmlal_u8(a: uint16x8_t, b: uint8x8_t, c: uint8x8_t) -> uint16x8_t {
30458    unsafe { simd_add(a, vmull_u8(b, c)) }
30459}
30460#[doc = "Unsigned multiply-add long"]
30461#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_u16)"]
30462#[inline]
30463#[target_feature(enable = "neon")]
30464#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30465#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.u16"))]
30466#[cfg_attr(
30467    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30468    assert_instr(umlal)
30469)]
30470#[cfg_attr(
30471    not(target_arch = "arm"),
30472    stable(feature = "neon_intrinsics", since = "1.59.0")
30473)]
30474#[cfg_attr(
30475    target_arch = "arm",
30476    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30477)]
30478pub fn vmlal_u16(a: uint32x4_t, b: uint16x4_t, c: uint16x4_t) -> uint32x4_t {
30479    unsafe { simd_add(a, vmull_u16(b, c)) }
30480}
30481#[doc = "Unsigned multiply-add long"]
30482#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_u32)"]
30483#[inline]
30484#[target_feature(enable = "neon")]
30485#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30486#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.u32"))]
30487#[cfg_attr(
30488    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30489    assert_instr(umlal)
30490)]
30491#[cfg_attr(
30492    not(target_arch = "arm"),
30493    stable(feature = "neon_intrinsics", since = "1.59.0")
30494)]
30495#[cfg_attr(
30496    target_arch = "arm",
30497    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30498)]
30499pub fn vmlal_u32(a: uint64x2_t, b: uint32x2_t, c: uint32x2_t) -> uint64x2_t {
30500    unsafe { simd_add(a, vmull_u32(b, c)) }
30501}
30502#[doc = "Floating-point multiply-subtract from accumulator"]
30503#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_f32)"]
30504#[inline]
30505#[target_feature(enable = "neon")]
30506#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30507#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.f32"))]
30508#[cfg_attr(
30509    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30510    assert_instr(fmul)
30511)]
30512#[cfg_attr(
30513    not(target_arch = "arm"),
30514    stable(feature = "neon_intrinsics", since = "1.59.0")
30515)]
30516#[cfg_attr(
30517    target_arch = "arm",
30518    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30519)]
30520pub fn vmls_f32(a: float32x2_t, b: float32x2_t, c: float32x2_t) -> float32x2_t {
30521    unsafe { simd_sub(a, simd_mul(b, c)) }
30522}
30523#[doc = "Floating-point multiply-subtract from accumulator"]
30524#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_f32)"]
30525#[inline]
30526#[target_feature(enable = "neon")]
30527#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30528#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.f32"))]
30529#[cfg_attr(
30530    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30531    assert_instr(fmul)
30532)]
30533#[cfg_attr(
30534    not(target_arch = "arm"),
30535    stable(feature = "neon_intrinsics", since = "1.59.0")
30536)]
30537#[cfg_attr(
30538    target_arch = "arm",
30539    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30540)]
30541pub fn vmlsq_f32(a: float32x4_t, b: float32x4_t, c: float32x4_t) -> float32x4_t {
30542    unsafe { simd_sub(a, simd_mul(b, c)) }
30543}
30544#[doc = "Vector multiply subtract with scalar"]
30545#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_lane_f32)"]
30546#[inline]
30547#[target_feature(enable = "neon")]
30548#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30549#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.f32", LANE = 1))]
30550#[cfg_attr(
30551    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30552    assert_instr(fmul, LANE = 1)
30553)]
30554#[rustc_legacy_const_generics(3)]
30555#[cfg_attr(
30556    not(target_arch = "arm"),
30557    stable(feature = "neon_intrinsics", since = "1.59.0")
30558)]
30559#[cfg_attr(
30560    target_arch = "arm",
30561    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30562)]
30563pub fn vmls_lane_f32<const LANE: i32>(
30564    a: float32x2_t,
30565    b: float32x2_t,
30566    c: float32x2_t,
30567) -> float32x2_t {
30568    static_assert_uimm_bits!(LANE, 1);
30569    unsafe { vmls_f32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
30570}
30571#[doc = "Vector multiply subtract with scalar"]
30572#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_laneq_f32)"]
30573#[inline]
30574#[target_feature(enable = "neon")]
30575#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30576#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.f32", LANE = 1))]
30577#[cfg_attr(
30578    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30579    assert_instr(fmul, LANE = 1)
30580)]
30581#[rustc_legacy_const_generics(3)]
30582#[cfg_attr(
30583    not(target_arch = "arm"),
30584    stable(feature = "neon_intrinsics", since = "1.59.0")
30585)]
30586#[cfg_attr(
30587    target_arch = "arm",
30588    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30589)]
30590pub fn vmls_laneq_f32<const LANE: i32>(
30591    a: float32x2_t,
30592    b: float32x2_t,
30593    c: float32x4_t,
30594) -> float32x2_t {
30595    static_assert_uimm_bits!(LANE, 2);
30596    unsafe { vmls_f32(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/vmlsq_lane_f32)"]
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.f32", LANE = 1))]
30604#[cfg_attr(
30605    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30606    assert_instr(fmul, 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 vmlsq_lane_f32<const LANE: i32>(
30618    a: float32x4_t,
30619    b: float32x4_t,
30620    c: float32x2_t,
30621) -> float32x4_t {
30622    static_assert_uimm_bits!(LANE, 1);
30623    unsafe {
30624        vmlsq_f32(
30625            a,
30626            b,
30627            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
30628        )
30629    }
30630}
30631#[doc = "Vector multiply subtract with scalar"]
30632#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_laneq_f32)"]
30633#[inline]
30634#[target_feature(enable = "neon")]
30635#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30636#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.f32", LANE = 1))]
30637#[cfg_attr(
30638    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30639    assert_instr(fmul, LANE = 1)
30640)]
30641#[rustc_legacy_const_generics(3)]
30642#[cfg_attr(
30643    not(target_arch = "arm"),
30644    stable(feature = "neon_intrinsics", since = "1.59.0")
30645)]
30646#[cfg_attr(
30647    target_arch = "arm",
30648    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30649)]
30650pub fn vmlsq_laneq_f32<const LANE: i32>(
30651    a: float32x4_t,
30652    b: float32x4_t,
30653    c: float32x4_t,
30654) -> float32x4_t {
30655    static_assert_uimm_bits!(LANE, 2);
30656    unsafe {
30657        vmlsq_f32(
30658            a,
30659            b,
30660            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
30661        )
30662    }
30663}
30664#[doc = "Vector multiply subtract with scalar"]
30665#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_lane_s16)"]
30666#[inline]
30667#[target_feature(enable = "neon")]
30668#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30669#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16", LANE = 1))]
30670#[cfg_attr(
30671    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30672    assert_instr(mls, LANE = 1)
30673)]
30674#[rustc_legacy_const_generics(3)]
30675#[cfg_attr(
30676    not(target_arch = "arm"),
30677    stable(feature = "neon_intrinsics", since = "1.59.0")
30678)]
30679#[cfg_attr(
30680    target_arch = "arm",
30681    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30682)]
30683pub fn vmls_lane_s16<const LANE: i32>(a: int16x4_t, b: int16x4_t, c: int16x4_t) -> int16x4_t {
30684    static_assert_uimm_bits!(LANE, 2);
30685    unsafe {
30686        vmls_s16(
30687            a,
30688            b,
30689            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
30690        )
30691    }
30692}
30693#[doc = "Vector multiply subtract with scalar"]
30694#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_lane_u16)"]
30695#[inline]
30696#[target_feature(enable = "neon")]
30697#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30698#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16", LANE = 1))]
30699#[cfg_attr(
30700    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30701    assert_instr(mls, LANE = 1)
30702)]
30703#[rustc_legacy_const_generics(3)]
30704#[cfg_attr(
30705    not(target_arch = "arm"),
30706    stable(feature = "neon_intrinsics", since = "1.59.0")
30707)]
30708#[cfg_attr(
30709    target_arch = "arm",
30710    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30711)]
30712pub fn vmls_lane_u16<const LANE: i32>(a: uint16x4_t, b: uint16x4_t, c: uint16x4_t) -> uint16x4_t {
30713    static_assert_uimm_bits!(LANE, 2);
30714    unsafe {
30715        vmls_u16(
30716            a,
30717            b,
30718            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
30719        )
30720    }
30721}
30722#[doc = "Vector multiply subtract with scalar"]
30723#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_laneq_s16)"]
30724#[inline]
30725#[target_feature(enable = "neon")]
30726#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30727#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16", LANE = 1))]
30728#[cfg_attr(
30729    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30730    assert_instr(mls, LANE = 1)
30731)]
30732#[rustc_legacy_const_generics(3)]
30733#[cfg_attr(
30734    not(target_arch = "arm"),
30735    stable(feature = "neon_intrinsics", since = "1.59.0")
30736)]
30737#[cfg_attr(
30738    target_arch = "arm",
30739    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30740)]
30741pub fn vmls_laneq_s16<const LANE: i32>(a: int16x4_t, b: int16x4_t, c: int16x8_t) -> int16x4_t {
30742    static_assert_uimm_bits!(LANE, 3);
30743    unsafe {
30744        vmls_s16(
30745            a,
30746            b,
30747            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
30748        )
30749    }
30750}
30751#[doc = "Vector multiply subtract with scalar"]
30752#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_laneq_u16)"]
30753#[inline]
30754#[target_feature(enable = "neon")]
30755#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30756#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16", LANE = 1))]
30757#[cfg_attr(
30758    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30759    assert_instr(mls, LANE = 1)
30760)]
30761#[rustc_legacy_const_generics(3)]
30762#[cfg_attr(
30763    not(target_arch = "arm"),
30764    stable(feature = "neon_intrinsics", since = "1.59.0")
30765)]
30766#[cfg_attr(
30767    target_arch = "arm",
30768    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30769)]
30770pub fn vmls_laneq_u16<const LANE: i32>(a: uint16x4_t, b: uint16x4_t, c: uint16x8_t) -> uint16x4_t {
30771    static_assert_uimm_bits!(LANE, 3);
30772    unsafe {
30773        vmls_u16(
30774            a,
30775            b,
30776            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
30777        )
30778    }
30779}
30780#[doc = "Vector multiply subtract with scalar"]
30781#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_lane_s16)"]
30782#[inline]
30783#[target_feature(enable = "neon")]
30784#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30785#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16", LANE = 1))]
30786#[cfg_attr(
30787    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30788    assert_instr(mls, LANE = 1)
30789)]
30790#[rustc_legacy_const_generics(3)]
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_lane_s16<const LANE: i32>(a: int16x8_t, b: int16x8_t, c: int16x4_t) -> int16x8_t {
30800    static_assert_uimm_bits!(LANE, 2);
30801    unsafe {
30802        vmlsq_s16(
30803            a,
30804            b,
30805            simd_shuffle!(
30806                c,
30807                c,
30808                [
30809                    LANE as u32,
30810                    LANE as u32,
30811                    LANE as u32,
30812                    LANE as u32,
30813                    LANE as u32,
30814                    LANE as u32,
30815                    LANE as u32,
30816                    LANE as u32
30817                ]
30818            ),
30819        )
30820    }
30821}
30822#[doc = "Vector multiply subtract with scalar"]
30823#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_lane_u16)"]
30824#[inline]
30825#[target_feature(enable = "neon")]
30826#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30827#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16", LANE = 1))]
30828#[cfg_attr(
30829    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30830    assert_instr(mls, LANE = 1)
30831)]
30832#[rustc_legacy_const_generics(3)]
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_lane_u16<const LANE: i32>(a: uint16x8_t, b: uint16x8_t, c: uint16x4_t) -> uint16x8_t {
30842    static_assert_uimm_bits!(LANE, 2);
30843    unsafe {
30844        vmlsq_u16(
30845            a,
30846            b,
30847            simd_shuffle!(
30848                c,
30849                c,
30850                [
30851                    LANE as u32,
30852                    LANE as u32,
30853                    LANE as u32,
30854                    LANE as u32,
30855                    LANE as u32,
30856                    LANE as u32,
30857                    LANE as u32,
30858                    LANE as u32
30859                ]
30860            ),
30861        )
30862    }
30863}
30864#[doc = "Vector multiply subtract with scalar"]
30865#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_laneq_s16)"]
30866#[inline]
30867#[target_feature(enable = "neon")]
30868#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30869#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16", LANE = 1))]
30870#[cfg_attr(
30871    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30872    assert_instr(mls, LANE = 1)
30873)]
30874#[rustc_legacy_const_generics(3)]
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_laneq_s16<const LANE: i32>(a: int16x8_t, b: int16x8_t, c: int16x8_t) -> int16x8_t {
30884    static_assert_uimm_bits!(LANE, 3);
30885    unsafe {
30886        vmlsq_s16(
30887            a,
30888            b,
30889            simd_shuffle!(
30890                c,
30891                c,
30892                [
30893                    LANE as u32,
30894                    LANE as u32,
30895                    LANE as u32,
30896                    LANE as u32,
30897                    LANE as u32,
30898                    LANE as u32,
30899                    LANE as u32,
30900                    LANE as u32
30901                ]
30902            ),
30903        )
30904    }
30905}
30906#[doc = "Vector multiply subtract with scalar"]
30907#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_laneq_u16)"]
30908#[inline]
30909#[target_feature(enable = "neon")]
30910#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30911#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16", LANE = 1))]
30912#[cfg_attr(
30913    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30914    assert_instr(mls, LANE = 1)
30915)]
30916#[rustc_legacy_const_generics(3)]
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_laneq_u16<const LANE: i32>(a: uint16x8_t, b: uint16x8_t, c: uint16x8_t) -> uint16x8_t {
30926    static_assert_uimm_bits!(LANE, 3);
30927    unsafe {
30928        vmlsq_u16(
30929            a,
30930            b,
30931            simd_shuffle!(
30932                c,
30933                c,
30934                [
30935                    LANE as u32,
30936                    LANE as u32,
30937                    LANE as u32,
30938                    LANE as u32,
30939                    LANE as u32,
30940                    LANE as u32,
30941                    LANE as u32,
30942                    LANE as u32
30943                ]
30944            ),
30945        )
30946    }
30947}
30948#[doc = "Vector multiply subtract with scalar"]
30949#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_lane_s32)"]
30950#[inline]
30951#[target_feature(enable = "neon")]
30952#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30953#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32", LANE = 1))]
30954#[cfg_attr(
30955    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30956    assert_instr(mls, LANE = 1)
30957)]
30958#[rustc_legacy_const_generics(3)]
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 vmls_lane_s32<const LANE: i32>(a: int32x2_t, b: int32x2_t, c: int32x2_t) -> int32x2_t {
30968    static_assert_uimm_bits!(LANE, 1);
30969    unsafe { vmls_s32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
30970}
30971#[doc = "Vector multiply subtract with scalar"]
30972#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_lane_u32)"]
30973#[inline]
30974#[target_feature(enable = "neon")]
30975#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30976#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32", LANE = 1))]
30977#[cfg_attr(
30978    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30979    assert_instr(mls, LANE = 1)
30980)]
30981#[rustc_legacy_const_generics(3)]
30982#[cfg_attr(
30983    not(target_arch = "arm"),
30984    stable(feature = "neon_intrinsics", since = "1.59.0")
30985)]
30986#[cfg_attr(
30987    target_arch = "arm",
30988    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30989)]
30990pub fn vmls_lane_u32<const LANE: i32>(a: uint32x2_t, b: uint32x2_t, c: uint32x2_t) -> uint32x2_t {
30991    static_assert_uimm_bits!(LANE, 1);
30992    unsafe { vmls_u32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
30993}
30994#[doc = "Vector multiply subtract with scalar"]
30995#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_laneq_s32)"]
30996#[inline]
30997#[target_feature(enable = "neon")]
30998#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30999#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32", LANE = 1))]
31000#[cfg_attr(
31001    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31002    assert_instr(mls, LANE = 1)
31003)]
31004#[rustc_legacy_const_generics(3)]
31005#[cfg_attr(
31006    not(target_arch = "arm"),
31007    stable(feature = "neon_intrinsics", since = "1.59.0")
31008)]
31009#[cfg_attr(
31010    target_arch = "arm",
31011    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31012)]
31013pub fn vmls_laneq_s32<const LANE: i32>(a: int32x2_t, b: int32x2_t, c: int32x4_t) -> int32x2_t {
31014    static_assert_uimm_bits!(LANE, 2);
31015    unsafe { vmls_s32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
31016}
31017#[doc = "Vector multiply subtract with scalar"]
31018#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_laneq_u32)"]
31019#[inline]
31020#[target_feature(enable = "neon")]
31021#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31022#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32", LANE = 1))]
31023#[cfg_attr(
31024    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31025    assert_instr(mls, LANE = 1)
31026)]
31027#[rustc_legacy_const_generics(3)]
31028#[cfg_attr(
31029    not(target_arch = "arm"),
31030    stable(feature = "neon_intrinsics", since = "1.59.0")
31031)]
31032#[cfg_attr(
31033    target_arch = "arm",
31034    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31035)]
31036pub fn vmls_laneq_u32<const LANE: i32>(a: uint32x2_t, b: uint32x2_t, c: uint32x4_t) -> uint32x2_t {
31037    static_assert_uimm_bits!(LANE, 2);
31038    unsafe { vmls_u32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
31039}
31040#[doc = "Vector multiply subtract with scalar"]
31041#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_lane_s32)"]
31042#[inline]
31043#[target_feature(enable = "neon")]
31044#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31045#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32", LANE = 1))]
31046#[cfg_attr(
31047    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31048    assert_instr(mls, LANE = 1)
31049)]
31050#[rustc_legacy_const_generics(3)]
31051#[cfg_attr(
31052    not(target_arch = "arm"),
31053    stable(feature = "neon_intrinsics", since = "1.59.0")
31054)]
31055#[cfg_attr(
31056    target_arch = "arm",
31057    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31058)]
31059pub fn vmlsq_lane_s32<const LANE: i32>(a: int32x4_t, b: int32x4_t, c: int32x2_t) -> int32x4_t {
31060    static_assert_uimm_bits!(LANE, 1);
31061    unsafe {
31062        vmlsq_s32(
31063            a,
31064            b,
31065            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
31066        )
31067    }
31068}
31069#[doc = "Vector multiply subtract with scalar"]
31070#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_lane_u32)"]
31071#[inline]
31072#[target_feature(enable = "neon")]
31073#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31074#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32", LANE = 1))]
31075#[cfg_attr(
31076    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31077    assert_instr(mls, LANE = 1)
31078)]
31079#[rustc_legacy_const_generics(3)]
31080#[cfg_attr(
31081    not(target_arch = "arm"),
31082    stable(feature = "neon_intrinsics", since = "1.59.0")
31083)]
31084#[cfg_attr(
31085    target_arch = "arm",
31086    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31087)]
31088pub fn vmlsq_lane_u32<const LANE: i32>(a: uint32x4_t, b: uint32x4_t, c: uint32x2_t) -> uint32x4_t {
31089    static_assert_uimm_bits!(LANE, 1);
31090    unsafe {
31091        vmlsq_u32(
31092            a,
31093            b,
31094            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
31095        )
31096    }
31097}
31098#[doc = "Vector multiply subtract with scalar"]
31099#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_laneq_s32)"]
31100#[inline]
31101#[target_feature(enable = "neon")]
31102#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31103#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32", LANE = 1))]
31104#[cfg_attr(
31105    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31106    assert_instr(mls, LANE = 1)
31107)]
31108#[rustc_legacy_const_generics(3)]
31109#[cfg_attr(
31110    not(target_arch = "arm"),
31111    stable(feature = "neon_intrinsics", since = "1.59.0")
31112)]
31113#[cfg_attr(
31114    target_arch = "arm",
31115    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31116)]
31117pub fn vmlsq_laneq_s32<const LANE: i32>(a: int32x4_t, b: int32x4_t, c: int32x4_t) -> int32x4_t {
31118    static_assert_uimm_bits!(LANE, 2);
31119    unsafe {
31120        vmlsq_s32(
31121            a,
31122            b,
31123            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
31124        )
31125    }
31126}
31127#[doc = "Vector multiply subtract with scalar"]
31128#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_laneq_u32)"]
31129#[inline]
31130#[target_feature(enable = "neon")]
31131#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31132#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32", LANE = 1))]
31133#[cfg_attr(
31134    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31135    assert_instr(mls, LANE = 1)
31136)]
31137#[rustc_legacy_const_generics(3)]
31138#[cfg_attr(
31139    not(target_arch = "arm"),
31140    stable(feature = "neon_intrinsics", since = "1.59.0")
31141)]
31142#[cfg_attr(
31143    target_arch = "arm",
31144    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31145)]
31146pub fn vmlsq_laneq_u32<const LANE: i32>(a: uint32x4_t, b: uint32x4_t, c: uint32x4_t) -> uint32x4_t {
31147    static_assert_uimm_bits!(LANE, 2);
31148    unsafe {
31149        vmlsq_u32(
31150            a,
31151            b,
31152            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
31153        )
31154    }
31155}
31156#[doc = "Vector multiply subtract with scalar"]
31157#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_n_f32)"]
31158#[inline]
31159#[target_feature(enable = "neon")]
31160#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31161#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.f32"))]
31162#[cfg_attr(
31163    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31164    assert_instr(fmul)
31165)]
31166#[cfg_attr(
31167    not(target_arch = "arm"),
31168    stable(feature = "neon_intrinsics", since = "1.59.0")
31169)]
31170#[cfg_attr(
31171    target_arch = "arm",
31172    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31173)]
31174pub fn vmls_n_f32(a: float32x2_t, b: float32x2_t, c: f32) -> float32x2_t {
31175    vmls_f32(a, b, vdup_n_f32(c))
31176}
31177#[doc = "Vector multiply subtract with scalar"]
31178#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_n_f32)"]
31179#[inline]
31180#[target_feature(enable = "neon")]
31181#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31182#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.f32"))]
31183#[cfg_attr(
31184    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31185    assert_instr(fmul)
31186)]
31187#[cfg_attr(
31188    not(target_arch = "arm"),
31189    stable(feature = "neon_intrinsics", since = "1.59.0")
31190)]
31191#[cfg_attr(
31192    target_arch = "arm",
31193    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31194)]
31195pub fn vmlsq_n_f32(a: float32x4_t, b: float32x4_t, c: f32) -> float32x4_t {
31196    vmlsq_f32(a, b, vdupq_n_f32(c))
31197}
31198#[doc = "Vector multiply subtract with scalar"]
31199#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_n_s16)"]
31200#[inline]
31201#[target_feature(enable = "neon")]
31202#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31203#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16"))]
31204#[cfg_attr(
31205    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31206    assert_instr(mls)
31207)]
31208#[cfg_attr(
31209    not(target_arch = "arm"),
31210    stable(feature = "neon_intrinsics", since = "1.59.0")
31211)]
31212#[cfg_attr(
31213    target_arch = "arm",
31214    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31215)]
31216pub fn vmls_n_s16(a: int16x4_t, b: int16x4_t, c: i16) -> int16x4_t {
31217    vmls_s16(a, b, vdup_n_s16(c))
31218}
31219#[doc = "Vector multiply subtract with scalar"]
31220#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_n_s16)"]
31221#[inline]
31222#[target_feature(enable = "neon")]
31223#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31224#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16"))]
31225#[cfg_attr(
31226    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31227    assert_instr(mls)
31228)]
31229#[cfg_attr(
31230    not(target_arch = "arm"),
31231    stable(feature = "neon_intrinsics", since = "1.59.0")
31232)]
31233#[cfg_attr(
31234    target_arch = "arm",
31235    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31236)]
31237pub fn vmlsq_n_s16(a: int16x8_t, b: int16x8_t, c: i16) -> int16x8_t {
31238    vmlsq_s16(a, b, vdupq_n_s16(c))
31239}
31240#[doc = "Vector multiply subtract with scalar"]
31241#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_n_u16)"]
31242#[inline]
31243#[target_feature(enable = "neon")]
31244#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31245#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16"))]
31246#[cfg_attr(
31247    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31248    assert_instr(mls)
31249)]
31250#[cfg_attr(
31251    not(target_arch = "arm"),
31252    stable(feature = "neon_intrinsics", since = "1.59.0")
31253)]
31254#[cfg_attr(
31255    target_arch = "arm",
31256    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31257)]
31258pub fn vmls_n_u16(a: uint16x4_t, b: uint16x4_t, c: u16) -> uint16x4_t {
31259    vmls_u16(a, b, vdup_n_u16(c))
31260}
31261#[doc = "Vector multiply subtract with scalar"]
31262#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_n_u16)"]
31263#[inline]
31264#[target_feature(enable = "neon")]
31265#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31266#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16"))]
31267#[cfg_attr(
31268    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31269    assert_instr(mls)
31270)]
31271#[cfg_attr(
31272    not(target_arch = "arm"),
31273    stable(feature = "neon_intrinsics", since = "1.59.0")
31274)]
31275#[cfg_attr(
31276    target_arch = "arm",
31277    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31278)]
31279pub fn vmlsq_n_u16(a: uint16x8_t, b: uint16x8_t, c: u16) -> uint16x8_t {
31280    vmlsq_u16(a, b, vdupq_n_u16(c))
31281}
31282#[doc = "Vector multiply subtract with scalar"]
31283#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_n_s32)"]
31284#[inline]
31285#[target_feature(enable = "neon")]
31286#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31287#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32"))]
31288#[cfg_attr(
31289    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31290    assert_instr(mls)
31291)]
31292#[cfg_attr(
31293    not(target_arch = "arm"),
31294    stable(feature = "neon_intrinsics", since = "1.59.0")
31295)]
31296#[cfg_attr(
31297    target_arch = "arm",
31298    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31299)]
31300pub fn vmls_n_s32(a: int32x2_t, b: int32x2_t, c: i32) -> int32x2_t {
31301    vmls_s32(a, b, vdup_n_s32(c))
31302}
31303#[doc = "Vector multiply subtract with scalar"]
31304#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_n_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("vmls.i32"))]
31309#[cfg_attr(
31310    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31311    assert_instr(mls)
31312)]
31313#[cfg_attr(
31314    not(target_arch = "arm"),
31315    stable(feature = "neon_intrinsics", since = "1.59.0")
31316)]
31317#[cfg_attr(
31318    target_arch = "arm",
31319    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31320)]
31321pub fn vmlsq_n_s32(a: int32x4_t, b: int32x4_t, c: i32) -> int32x4_t {
31322    vmlsq_s32(a, b, vdupq_n_s32(c))
31323}
31324#[doc = "Vector multiply subtract with scalar"]
31325#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_n_u32)"]
31326#[inline]
31327#[target_feature(enable = "neon")]
31328#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31329#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32"))]
31330#[cfg_attr(
31331    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31332    assert_instr(mls)
31333)]
31334#[cfg_attr(
31335    not(target_arch = "arm"),
31336    stable(feature = "neon_intrinsics", since = "1.59.0")
31337)]
31338#[cfg_attr(
31339    target_arch = "arm",
31340    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31341)]
31342pub fn vmls_n_u32(a: uint32x2_t, b: uint32x2_t, c: u32) -> uint32x2_t {
31343    vmls_u32(a, b, vdup_n_u32(c))
31344}
31345#[doc = "Vector multiply subtract with scalar"]
31346#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_n_u32)"]
31347#[inline]
31348#[target_feature(enable = "neon")]
31349#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31350#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32"))]
31351#[cfg_attr(
31352    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31353    assert_instr(mls)
31354)]
31355#[cfg_attr(
31356    not(target_arch = "arm"),
31357    stable(feature = "neon_intrinsics", since = "1.59.0")
31358)]
31359#[cfg_attr(
31360    target_arch = "arm",
31361    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31362)]
31363pub fn vmlsq_n_u32(a: uint32x4_t, b: uint32x4_t, c: u32) -> uint32x4_t {
31364    vmlsq_u32(a, b, vdupq_n_u32(c))
31365}
31366#[doc = "Multiply-subtract from accumulator"]
31367#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_s8)"]
31368#[inline]
31369#[target_feature(enable = "neon")]
31370#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31371#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i8"))]
31372#[cfg_attr(
31373    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31374    assert_instr(mls)
31375)]
31376#[cfg_attr(
31377    not(target_arch = "arm"),
31378    stable(feature = "neon_intrinsics", since = "1.59.0")
31379)]
31380#[cfg_attr(
31381    target_arch = "arm",
31382    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31383)]
31384pub fn vmls_s8(a: int8x8_t, b: int8x8_t, c: int8x8_t) -> int8x8_t {
31385    unsafe { simd_sub(a, simd_mul(b, c)) }
31386}
31387#[doc = "Multiply-subtract from accumulator"]
31388#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_s8)"]
31389#[inline]
31390#[target_feature(enable = "neon")]
31391#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31392#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i8"))]
31393#[cfg_attr(
31394    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31395    assert_instr(mls)
31396)]
31397#[cfg_attr(
31398    not(target_arch = "arm"),
31399    stable(feature = "neon_intrinsics", since = "1.59.0")
31400)]
31401#[cfg_attr(
31402    target_arch = "arm",
31403    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31404)]
31405pub fn vmlsq_s8(a: int8x16_t, b: int8x16_t, c: int8x16_t) -> int8x16_t {
31406    unsafe { simd_sub(a, simd_mul(b, c)) }
31407}
31408#[doc = "Multiply-subtract from accumulator"]
31409#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_s16)"]
31410#[inline]
31411#[target_feature(enable = "neon")]
31412#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31413#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16"))]
31414#[cfg_attr(
31415    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31416    assert_instr(mls)
31417)]
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 vmls_s16(a: int16x4_t, b: int16x4_t, c: int16x4_t) -> int16x4_t {
31427    unsafe { simd_sub(a, simd_mul(b, c)) }
31428}
31429#[doc = "Multiply-subtract from accumulator"]
31430#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_s16)"]
31431#[inline]
31432#[target_feature(enable = "neon")]
31433#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31434#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16"))]
31435#[cfg_attr(
31436    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31437    assert_instr(mls)
31438)]
31439#[cfg_attr(
31440    not(target_arch = "arm"),
31441    stable(feature = "neon_intrinsics", since = "1.59.0")
31442)]
31443#[cfg_attr(
31444    target_arch = "arm",
31445    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31446)]
31447pub fn vmlsq_s16(a: int16x8_t, b: int16x8_t, c: int16x8_t) -> int16x8_t {
31448    unsafe { simd_sub(a, simd_mul(b, c)) }
31449}
31450#[doc = "Multiply-subtract from accumulator"]
31451#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_s32)"]
31452#[inline]
31453#[target_feature(enable = "neon")]
31454#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31455#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32"))]
31456#[cfg_attr(
31457    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31458    assert_instr(mls)
31459)]
31460#[cfg_attr(
31461    not(target_arch = "arm"),
31462    stable(feature = "neon_intrinsics", since = "1.59.0")
31463)]
31464#[cfg_attr(
31465    target_arch = "arm",
31466    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31467)]
31468pub fn vmls_s32(a: int32x2_t, b: int32x2_t, c: int32x2_t) -> int32x2_t {
31469    unsafe { simd_sub(a, simd_mul(b, c)) }
31470}
31471#[doc = "Multiply-subtract from accumulator"]
31472#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_s32)"]
31473#[inline]
31474#[target_feature(enable = "neon")]
31475#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31476#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32"))]
31477#[cfg_attr(
31478    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31479    assert_instr(mls)
31480)]
31481#[cfg_attr(
31482    not(target_arch = "arm"),
31483    stable(feature = "neon_intrinsics", since = "1.59.0")
31484)]
31485#[cfg_attr(
31486    target_arch = "arm",
31487    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31488)]
31489pub fn vmlsq_s32(a: int32x4_t, b: int32x4_t, c: int32x4_t) -> int32x4_t {
31490    unsafe { simd_sub(a, simd_mul(b, c)) }
31491}
31492#[doc = "Multiply-subtract from accumulator"]
31493#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_u8)"]
31494#[inline]
31495#[target_feature(enable = "neon")]
31496#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31497#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i8"))]
31498#[cfg_attr(
31499    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31500    assert_instr(mls)
31501)]
31502#[cfg_attr(
31503    not(target_arch = "arm"),
31504    stable(feature = "neon_intrinsics", since = "1.59.0")
31505)]
31506#[cfg_attr(
31507    target_arch = "arm",
31508    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31509)]
31510pub fn vmls_u8(a: uint8x8_t, b: uint8x8_t, c: uint8x8_t) -> uint8x8_t {
31511    unsafe { simd_sub(a, simd_mul(b, c)) }
31512}
31513#[doc = "Multiply-subtract from accumulator"]
31514#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_u8)"]
31515#[inline]
31516#[target_feature(enable = "neon")]
31517#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31518#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i8"))]
31519#[cfg_attr(
31520    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31521    assert_instr(mls)
31522)]
31523#[cfg_attr(
31524    not(target_arch = "arm"),
31525    stable(feature = "neon_intrinsics", since = "1.59.0")
31526)]
31527#[cfg_attr(
31528    target_arch = "arm",
31529    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31530)]
31531pub fn vmlsq_u8(a: uint8x16_t, b: uint8x16_t, c: uint8x16_t) -> uint8x16_t {
31532    unsafe { simd_sub(a, simd_mul(b, c)) }
31533}
31534#[doc = "Multiply-subtract from accumulator"]
31535#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_u16)"]
31536#[inline]
31537#[target_feature(enable = "neon")]
31538#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31539#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16"))]
31540#[cfg_attr(
31541    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31542    assert_instr(mls)
31543)]
31544#[cfg_attr(
31545    not(target_arch = "arm"),
31546    stable(feature = "neon_intrinsics", since = "1.59.0")
31547)]
31548#[cfg_attr(
31549    target_arch = "arm",
31550    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31551)]
31552pub fn vmls_u16(a: uint16x4_t, b: uint16x4_t, c: uint16x4_t) -> uint16x4_t {
31553    unsafe { simd_sub(a, simd_mul(b, c)) }
31554}
31555#[doc = "Multiply-subtract from accumulator"]
31556#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_u16)"]
31557#[inline]
31558#[target_feature(enable = "neon")]
31559#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31560#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16"))]
31561#[cfg_attr(
31562    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31563    assert_instr(mls)
31564)]
31565#[cfg_attr(
31566    not(target_arch = "arm"),
31567    stable(feature = "neon_intrinsics", since = "1.59.0")
31568)]
31569#[cfg_attr(
31570    target_arch = "arm",
31571    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31572)]
31573pub fn vmlsq_u16(a: uint16x8_t, b: uint16x8_t, c: uint16x8_t) -> uint16x8_t {
31574    unsafe { simd_sub(a, simd_mul(b, c)) }
31575}
31576#[doc = "Multiply-subtract from accumulator"]
31577#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_u32)"]
31578#[inline]
31579#[target_feature(enable = "neon")]
31580#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31581#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32"))]
31582#[cfg_attr(
31583    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31584    assert_instr(mls)
31585)]
31586#[cfg_attr(
31587    not(target_arch = "arm"),
31588    stable(feature = "neon_intrinsics", since = "1.59.0")
31589)]
31590#[cfg_attr(
31591    target_arch = "arm",
31592    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31593)]
31594pub fn vmls_u32(a: uint32x2_t, b: uint32x2_t, c: uint32x2_t) -> uint32x2_t {
31595    unsafe { simd_sub(a, simd_mul(b, c)) }
31596}
31597#[doc = "Multiply-subtract from accumulator"]
31598#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_u32)"]
31599#[inline]
31600#[target_feature(enable = "neon")]
31601#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31602#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32"))]
31603#[cfg_attr(
31604    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31605    assert_instr(mls)
31606)]
31607#[cfg_attr(
31608    not(target_arch = "arm"),
31609    stable(feature = "neon_intrinsics", since = "1.59.0")
31610)]
31611#[cfg_attr(
31612    target_arch = "arm",
31613    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31614)]
31615pub fn vmlsq_u32(a: uint32x4_t, b: uint32x4_t, c: uint32x4_t) -> uint32x4_t {
31616    unsafe { simd_sub(a, simd_mul(b, c)) }
31617}
31618#[doc = "Vector widening multiply subtract with scalar"]
31619#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_lane_s16)"]
31620#[inline]
31621#[target_feature(enable = "neon")]
31622#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31623#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.s16", LANE = 1))]
31624#[cfg_attr(
31625    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31626    assert_instr(smlsl, LANE = 1)
31627)]
31628#[rustc_legacy_const_generics(3)]
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_lane_s16<const LANE: i32>(a: int32x4_t, b: int16x4_t, c: int16x4_t) -> int32x4_t {
31638    static_assert_uimm_bits!(LANE, 2);
31639    unsafe {
31640        vmlsl_s16(
31641            a,
31642            b,
31643            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
31644        )
31645    }
31646}
31647#[doc = "Vector widening multiply subtract with scalar"]
31648#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_laneq_s16)"]
31649#[inline]
31650#[target_feature(enable = "neon")]
31651#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31652#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.s16", LANE = 1))]
31653#[cfg_attr(
31654    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31655    assert_instr(smlsl, LANE = 1)
31656)]
31657#[rustc_legacy_const_generics(3)]
31658#[cfg_attr(
31659    not(target_arch = "arm"),
31660    stable(feature = "neon_intrinsics", since = "1.59.0")
31661)]
31662#[cfg_attr(
31663    target_arch = "arm",
31664    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31665)]
31666pub fn vmlsl_laneq_s16<const LANE: i32>(a: int32x4_t, b: int16x4_t, c: int16x8_t) -> int32x4_t {
31667    static_assert_uimm_bits!(LANE, 3);
31668    unsafe {
31669        vmlsl_s16(
31670            a,
31671            b,
31672            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
31673        )
31674    }
31675}
31676#[doc = "Vector widening multiply subtract with scalar"]
31677#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_lane_s32)"]
31678#[inline]
31679#[target_feature(enable = "neon")]
31680#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31681#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.s32", LANE = 1))]
31682#[cfg_attr(
31683    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31684    assert_instr(smlsl, LANE = 1)
31685)]
31686#[rustc_legacy_const_generics(3)]
31687#[cfg_attr(
31688    not(target_arch = "arm"),
31689    stable(feature = "neon_intrinsics", since = "1.59.0")
31690)]
31691#[cfg_attr(
31692    target_arch = "arm",
31693    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31694)]
31695pub fn vmlsl_lane_s32<const LANE: i32>(a: int64x2_t, b: int32x2_t, c: int32x2_t) -> int64x2_t {
31696    static_assert_uimm_bits!(LANE, 1);
31697    unsafe { vmlsl_s32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
31698}
31699#[doc = "Vector widening multiply subtract with scalar"]
31700#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_laneq_s32)"]
31701#[inline]
31702#[target_feature(enable = "neon")]
31703#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31704#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.s32", LANE = 1))]
31705#[cfg_attr(
31706    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31707    assert_instr(smlsl, LANE = 1)
31708)]
31709#[rustc_legacy_const_generics(3)]
31710#[cfg_attr(
31711    not(target_arch = "arm"),
31712    stable(feature = "neon_intrinsics", since = "1.59.0")
31713)]
31714#[cfg_attr(
31715    target_arch = "arm",
31716    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31717)]
31718pub fn vmlsl_laneq_s32<const LANE: i32>(a: int64x2_t, b: int32x2_t, c: int32x4_t) -> int64x2_t {
31719    static_assert_uimm_bits!(LANE, 2);
31720    unsafe { vmlsl_s32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
31721}
31722#[doc = "Vector widening multiply subtract with scalar"]
31723#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_lane_u16)"]
31724#[inline]
31725#[target_feature(enable = "neon")]
31726#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31727#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.u16", LANE = 1))]
31728#[cfg_attr(
31729    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31730    assert_instr(umlsl, LANE = 1)
31731)]
31732#[rustc_legacy_const_generics(3)]
31733#[cfg_attr(
31734    not(target_arch = "arm"),
31735    stable(feature = "neon_intrinsics", since = "1.59.0")
31736)]
31737#[cfg_attr(
31738    target_arch = "arm",
31739    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31740)]
31741pub fn vmlsl_lane_u16<const LANE: i32>(a: uint32x4_t, b: uint16x4_t, c: uint16x4_t) -> uint32x4_t {
31742    static_assert_uimm_bits!(LANE, 2);
31743    unsafe {
31744        vmlsl_u16(
31745            a,
31746            b,
31747            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
31748        )
31749    }
31750}
31751#[doc = "Vector widening multiply subtract with scalar"]
31752#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_laneq_u16)"]
31753#[inline]
31754#[target_feature(enable = "neon")]
31755#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31756#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.u16", LANE = 1))]
31757#[cfg_attr(
31758    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31759    assert_instr(umlsl, LANE = 1)
31760)]
31761#[rustc_legacy_const_generics(3)]
31762#[cfg_attr(
31763    not(target_arch = "arm"),
31764    stable(feature = "neon_intrinsics", since = "1.59.0")
31765)]
31766#[cfg_attr(
31767    target_arch = "arm",
31768    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31769)]
31770pub fn vmlsl_laneq_u16<const LANE: i32>(a: uint32x4_t, b: uint16x4_t, c: uint16x8_t) -> uint32x4_t {
31771    static_assert_uimm_bits!(LANE, 3);
31772    unsafe {
31773        vmlsl_u16(
31774            a,
31775            b,
31776            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
31777        )
31778    }
31779}
31780#[doc = "Vector widening multiply subtract with scalar"]
31781#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_lane_u32)"]
31782#[inline]
31783#[target_feature(enable = "neon")]
31784#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31785#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.u32", LANE = 1))]
31786#[cfg_attr(
31787    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31788    assert_instr(umlsl, LANE = 1)
31789)]
31790#[rustc_legacy_const_generics(3)]
31791#[cfg_attr(
31792    not(target_arch = "arm"),
31793    stable(feature = "neon_intrinsics", since = "1.59.0")
31794)]
31795#[cfg_attr(
31796    target_arch = "arm",
31797    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31798)]
31799pub fn vmlsl_lane_u32<const LANE: i32>(a: uint64x2_t, b: uint32x2_t, c: uint32x2_t) -> uint64x2_t {
31800    static_assert_uimm_bits!(LANE, 1);
31801    unsafe { vmlsl_u32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
31802}
31803#[doc = "Vector widening multiply subtract with scalar"]
31804#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_laneq_u32)"]
31805#[inline]
31806#[target_feature(enable = "neon")]
31807#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31808#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.u32", LANE = 1))]
31809#[cfg_attr(
31810    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31811    assert_instr(umlsl, LANE = 1)
31812)]
31813#[rustc_legacy_const_generics(3)]
31814#[cfg_attr(
31815    not(target_arch = "arm"),
31816    stable(feature = "neon_intrinsics", since = "1.59.0")
31817)]
31818#[cfg_attr(
31819    target_arch = "arm",
31820    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31821)]
31822pub fn vmlsl_laneq_u32<const LANE: i32>(a: uint64x2_t, b: uint32x2_t, c: uint32x4_t) -> uint64x2_t {
31823    static_assert_uimm_bits!(LANE, 2);
31824    unsafe { vmlsl_u32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
31825}
31826#[doc = "Vector widening multiply subtract with scalar"]
31827#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_n_s16)"]
31828#[inline]
31829#[target_feature(enable = "neon")]
31830#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31831#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.s16"))]
31832#[cfg_attr(
31833    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31834    assert_instr(smlsl)
31835)]
31836#[cfg_attr(
31837    not(target_arch = "arm"),
31838    stable(feature = "neon_intrinsics", since = "1.59.0")
31839)]
31840#[cfg_attr(
31841    target_arch = "arm",
31842    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31843)]
31844pub fn vmlsl_n_s16(a: int32x4_t, b: int16x4_t, c: i16) -> int32x4_t {
31845    vmlsl_s16(a, b, vdup_n_s16(c))
31846}
31847#[doc = "Vector widening multiply subtract with scalar"]
31848#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_n_s32)"]
31849#[inline]
31850#[target_feature(enable = "neon")]
31851#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31852#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.s32"))]
31853#[cfg_attr(
31854    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31855    assert_instr(smlsl)
31856)]
31857#[cfg_attr(
31858    not(target_arch = "arm"),
31859    stable(feature = "neon_intrinsics", since = "1.59.0")
31860)]
31861#[cfg_attr(
31862    target_arch = "arm",
31863    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31864)]
31865pub fn vmlsl_n_s32(a: int64x2_t, b: int32x2_t, c: i32) -> int64x2_t {
31866    vmlsl_s32(a, b, vdup_n_s32(c))
31867}
31868#[doc = "Vector widening multiply subtract with scalar"]
31869#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_n_u16)"]
31870#[inline]
31871#[target_feature(enable = "neon")]
31872#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31873#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.u16"))]
31874#[cfg_attr(
31875    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31876    assert_instr(umlsl)
31877)]
31878#[cfg_attr(
31879    not(target_arch = "arm"),
31880    stable(feature = "neon_intrinsics", since = "1.59.0")
31881)]
31882#[cfg_attr(
31883    target_arch = "arm",
31884    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31885)]
31886pub fn vmlsl_n_u16(a: uint32x4_t, b: uint16x4_t, c: u16) -> uint32x4_t {
31887    vmlsl_u16(a, b, vdup_n_u16(c))
31888}
31889#[doc = "Vector widening multiply subtract with scalar"]
31890#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_n_u32)"]
31891#[inline]
31892#[target_feature(enable = "neon")]
31893#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31894#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.u32"))]
31895#[cfg_attr(
31896    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31897    assert_instr(umlsl)
31898)]
31899#[cfg_attr(
31900    not(target_arch = "arm"),
31901    stable(feature = "neon_intrinsics", since = "1.59.0")
31902)]
31903#[cfg_attr(
31904    target_arch = "arm",
31905    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31906)]
31907pub fn vmlsl_n_u32(a: uint64x2_t, b: uint32x2_t, c: u32) -> uint64x2_t {
31908    vmlsl_u32(a, b, vdup_n_u32(c))
31909}
31910#[doc = "Signed multiply-subtract long"]
31911#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_s8)"]
31912#[inline]
31913#[target_feature(enable = "neon")]
31914#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31915#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.s8"))]
31916#[cfg_attr(
31917    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31918    assert_instr(smlsl)
31919)]
31920#[cfg_attr(
31921    not(target_arch = "arm"),
31922    stable(feature = "neon_intrinsics", since = "1.59.0")
31923)]
31924#[cfg_attr(
31925    target_arch = "arm",
31926    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31927)]
31928pub fn vmlsl_s8(a: int16x8_t, b: int8x8_t, c: int8x8_t) -> int16x8_t {
31929    unsafe { simd_sub(a, vmull_s8(b, c)) }
31930}
31931#[doc = "Signed multiply-subtract long"]
31932#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_s16)"]
31933#[inline]
31934#[target_feature(enable = "neon")]
31935#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31936#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.s16"))]
31937#[cfg_attr(
31938    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31939    assert_instr(smlsl)
31940)]
31941#[cfg_attr(
31942    not(target_arch = "arm"),
31943    stable(feature = "neon_intrinsics", since = "1.59.0")
31944)]
31945#[cfg_attr(
31946    target_arch = "arm",
31947    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31948)]
31949pub fn vmlsl_s16(a: int32x4_t, b: int16x4_t, c: int16x4_t) -> int32x4_t {
31950    unsafe { simd_sub(a, vmull_s16(b, c)) }
31951}
31952#[doc = "Signed multiply-subtract long"]
31953#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_s32)"]
31954#[inline]
31955#[target_feature(enable = "neon")]
31956#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31957#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.s32"))]
31958#[cfg_attr(
31959    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31960    assert_instr(smlsl)
31961)]
31962#[cfg_attr(
31963    not(target_arch = "arm"),
31964    stable(feature = "neon_intrinsics", since = "1.59.0")
31965)]
31966#[cfg_attr(
31967    target_arch = "arm",
31968    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31969)]
31970pub fn vmlsl_s32(a: int64x2_t, b: int32x2_t, c: int32x2_t) -> int64x2_t {
31971    unsafe { simd_sub(a, vmull_s32(b, c)) }
31972}
31973#[doc = "Unsigned multiply-subtract long"]
31974#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_u8)"]
31975#[inline]
31976#[target_feature(enable = "neon")]
31977#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31978#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.u8"))]
31979#[cfg_attr(
31980    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31981    assert_instr(umlsl)
31982)]
31983#[cfg_attr(
31984    not(target_arch = "arm"),
31985    stable(feature = "neon_intrinsics", since = "1.59.0")
31986)]
31987#[cfg_attr(
31988    target_arch = "arm",
31989    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31990)]
31991pub fn vmlsl_u8(a: uint16x8_t, b: uint8x8_t, c: uint8x8_t) -> uint16x8_t {
31992    unsafe { simd_sub(a, vmull_u8(b, c)) }
31993}
31994#[doc = "Unsigned multiply-subtract long"]
31995#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_u16)"]
31996#[inline]
31997#[target_feature(enable = "neon")]
31998#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31999#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.u16"))]
32000#[cfg_attr(
32001    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32002    assert_instr(umlsl)
32003)]
32004#[cfg_attr(
32005    not(target_arch = "arm"),
32006    stable(feature = "neon_intrinsics", since = "1.59.0")
32007)]
32008#[cfg_attr(
32009    target_arch = "arm",
32010    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32011)]
32012pub fn vmlsl_u16(a: uint32x4_t, b: uint16x4_t, c: uint16x4_t) -> uint32x4_t {
32013    unsafe { simd_sub(a, vmull_u16(b, c)) }
32014}
32015#[doc = "Unsigned multiply-subtract long"]
32016#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_u32)"]
32017#[inline]
32018#[target_feature(enable = "neon")]
32019#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32020#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.u32"))]
32021#[cfg_attr(
32022    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32023    assert_instr(umlsl)
32024)]
32025#[cfg_attr(
32026    not(target_arch = "arm"),
32027    stable(feature = "neon_intrinsics", since = "1.59.0")
32028)]
32029#[cfg_attr(
32030    target_arch = "arm",
32031    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32032)]
32033pub fn vmlsl_u32(a: uint64x2_t, b: uint32x2_t, c: uint32x2_t) -> uint64x2_t {
32034    unsafe { simd_sub(a, vmull_u32(b, c)) }
32035}
32036#[doc = "8-bit integer matrix multiply-accumulate"]
32037#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmmlaq_s32)"]
32038#[inline]
32039#[target_feature(enable = "neon,i8mm")]
32040#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
32041#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
32042#[cfg_attr(
32043    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32044    assert_instr(smmla)
32045)]
32046#[cfg_attr(
32047    not(target_arch = "arm"),
32048    unstable(feature = "stdarch_neon_i8mm", issue = "117223")
32049)]
32050#[cfg_attr(
32051    target_arch = "arm",
32052    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32053)]
32054pub fn vmmlaq_s32(a: int32x4_t, b: int8x16_t, c: int8x16_t) -> int32x4_t {
32055    unsafe extern "unadjusted" {
32056        #[cfg_attr(
32057            any(target_arch = "aarch64", target_arch = "arm64ec"),
32058            link_name = "llvm.aarch64.neon.smmla.v4i32.v16i8"
32059        )]
32060        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.smmla.v4i32.v16i8")]
32061        fn _vmmlaq_s32(a: int32x4_t, b: int8x16_t, c: int8x16_t) -> int32x4_t;
32062    }
32063    unsafe { _vmmlaq_s32(a, b, c) }
32064}
32065#[doc = "8-bit integer matrix multiply-accumulate"]
32066#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmmlaq_u32)"]
32067#[inline]
32068#[target_feature(enable = "neon,i8mm")]
32069#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
32070#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
32071#[cfg_attr(
32072    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32073    assert_instr(ummla)
32074)]
32075#[cfg_attr(
32076    not(target_arch = "arm"),
32077    unstable(feature = "stdarch_neon_i8mm", issue = "117223")
32078)]
32079#[cfg_attr(
32080    target_arch = "arm",
32081    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32082)]
32083pub fn vmmlaq_u32(a: uint32x4_t, b: uint8x16_t, c: uint8x16_t) -> uint32x4_t {
32084    unsafe extern "unadjusted" {
32085        #[cfg_attr(
32086            any(target_arch = "aarch64", target_arch = "arm64ec"),
32087            link_name = "llvm.aarch64.neon.ummla.v4i32.v16i8"
32088        )]
32089        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.ummla.v4i32.v16i8")]
32090        fn _vmmlaq_u32(a: uint32x4_t, b: uint8x16_t, c: uint8x16_t) -> uint32x4_t;
32091    }
32092    unsafe { _vmmlaq_u32(a, b, c) }
32093}
32094#[doc = "Duplicate element to vector"]
32095#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmov_n_f16)"]
32096#[inline]
32097#[target_feature(enable = "neon")]
32098#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32099#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
32100#[cfg_attr(
32101    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32102    assert_instr(dup)
32103)]
32104#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
32105#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
32106#[cfg(not(target_arch = "arm64ec"))]
32107pub fn vmov_n_f16(a: f16) -> float16x4_t {
32108    vdup_n_f16(a)
32109}
32110#[doc = "Duplicate element to vector"]
32111#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovq_n_f16)"]
32112#[inline]
32113#[target_feature(enable = "neon")]
32114#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32115#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
32116#[cfg_attr(
32117    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32118    assert_instr(dup)
32119)]
32120#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
32121#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
32122#[cfg(not(target_arch = "arm64ec"))]
32123pub fn vmovq_n_f16(a: f16) -> float16x8_t {
32124    vdupq_n_f16(a)
32125}
32126#[doc = "Duplicate vector element to vector or scalar"]
32127#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmov_n_f32)"]
32128#[inline]
32129#[target_feature(enable = "neon")]
32130#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32131#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32"))]
32132#[cfg_attr(
32133    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32134    assert_instr(dup)
32135)]
32136#[cfg_attr(
32137    not(target_arch = "arm"),
32138    stable(feature = "neon_intrinsics", since = "1.59.0")
32139)]
32140#[cfg_attr(
32141    target_arch = "arm",
32142    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32143)]
32144pub fn vmov_n_f32(value: f32) -> float32x2_t {
32145    vdup_n_f32(value)
32146}
32147#[doc = "Duplicate vector element to vector or scalar"]
32148#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmov_n_p16)"]
32149#[inline]
32150#[target_feature(enable = "neon")]
32151#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32152#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
32153#[cfg_attr(
32154    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32155    assert_instr(dup)
32156)]
32157#[cfg_attr(
32158    not(target_arch = "arm"),
32159    stable(feature = "neon_intrinsics", since = "1.59.0")
32160)]
32161#[cfg_attr(
32162    target_arch = "arm",
32163    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32164)]
32165pub fn vmov_n_p16(value: p16) -> poly16x4_t {
32166    vdup_n_p16(value)
32167}
32168#[doc = "Duplicate vector element to vector or scalar"]
32169#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmov_n_p8)"]
32170#[inline]
32171#[target_feature(enable = "neon")]
32172#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32173#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8"))]
32174#[cfg_attr(
32175    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32176    assert_instr(dup)
32177)]
32178#[cfg_attr(
32179    not(target_arch = "arm"),
32180    stable(feature = "neon_intrinsics", since = "1.59.0")
32181)]
32182#[cfg_attr(
32183    target_arch = "arm",
32184    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32185)]
32186pub fn vmov_n_p8(value: p8) -> poly8x8_t {
32187    vdup_n_p8(value)
32188}
32189#[doc = "Duplicate vector element to vector or scalar"]
32190#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmov_n_s16)"]
32191#[inline]
32192#[target_feature(enable = "neon")]
32193#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32194#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
32195#[cfg_attr(
32196    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32197    assert_instr(dup)
32198)]
32199#[cfg_attr(
32200    not(target_arch = "arm"),
32201    stable(feature = "neon_intrinsics", since = "1.59.0")
32202)]
32203#[cfg_attr(
32204    target_arch = "arm",
32205    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32206)]
32207pub fn vmov_n_s16(value: i16) -> int16x4_t {
32208    vdup_n_s16(value)
32209}
32210#[doc = "Duplicate vector element to vector or scalar"]
32211#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmov_n_s32)"]
32212#[inline]
32213#[target_feature(enable = "neon")]
32214#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32215#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32"))]
32216#[cfg_attr(
32217    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32218    assert_instr(dup)
32219)]
32220#[cfg_attr(
32221    not(target_arch = "arm"),
32222    stable(feature = "neon_intrinsics", since = "1.59.0")
32223)]
32224#[cfg_attr(
32225    target_arch = "arm",
32226    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32227)]
32228pub fn vmov_n_s32(value: i32) -> int32x2_t {
32229    vdup_n_s32(value)
32230}
32231#[doc = "Duplicate vector element to vector or scalar"]
32232#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmov_n_s64)"]
32233#[inline]
32234#[target_feature(enable = "neon")]
32235#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32236#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
32237#[cfg_attr(
32238    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32239    assert_instr(fmov)
32240)]
32241#[cfg_attr(
32242    not(target_arch = "arm"),
32243    stable(feature = "neon_intrinsics", since = "1.59.0")
32244)]
32245#[cfg_attr(
32246    target_arch = "arm",
32247    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32248)]
32249pub fn vmov_n_s64(value: i64) -> int64x1_t {
32250    vdup_n_s64(value)
32251}
32252#[doc = "Duplicate vector element to vector or scalar"]
32253#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmov_n_s8)"]
32254#[inline]
32255#[target_feature(enable = "neon")]
32256#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32257#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8"))]
32258#[cfg_attr(
32259    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32260    assert_instr(dup)
32261)]
32262#[cfg_attr(
32263    not(target_arch = "arm"),
32264    stable(feature = "neon_intrinsics", since = "1.59.0")
32265)]
32266#[cfg_attr(
32267    target_arch = "arm",
32268    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32269)]
32270pub fn vmov_n_s8(value: i8) -> int8x8_t {
32271    vdup_n_s8(value)
32272}
32273#[doc = "Duplicate vector element to vector or scalar"]
32274#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmov_n_u16)"]
32275#[inline]
32276#[target_feature(enable = "neon")]
32277#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32278#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
32279#[cfg_attr(
32280    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32281    assert_instr(dup)
32282)]
32283#[cfg_attr(
32284    not(target_arch = "arm"),
32285    stable(feature = "neon_intrinsics", since = "1.59.0")
32286)]
32287#[cfg_attr(
32288    target_arch = "arm",
32289    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32290)]
32291pub fn vmov_n_u16(value: u16) -> uint16x4_t {
32292    vdup_n_u16(value)
32293}
32294#[doc = "Duplicate vector element to vector or scalar"]
32295#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmov_n_u32)"]
32296#[inline]
32297#[target_feature(enable = "neon")]
32298#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32299#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32"))]
32300#[cfg_attr(
32301    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32302    assert_instr(dup)
32303)]
32304#[cfg_attr(
32305    not(target_arch = "arm"),
32306    stable(feature = "neon_intrinsics", since = "1.59.0")
32307)]
32308#[cfg_attr(
32309    target_arch = "arm",
32310    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32311)]
32312pub fn vmov_n_u32(value: u32) -> uint32x2_t {
32313    vdup_n_u32(value)
32314}
32315#[doc = "Duplicate vector element to vector or scalar"]
32316#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmov_n_u64)"]
32317#[inline]
32318#[target_feature(enable = "neon")]
32319#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32320#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
32321#[cfg_attr(
32322    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32323    assert_instr(fmov)
32324)]
32325#[cfg_attr(
32326    not(target_arch = "arm"),
32327    stable(feature = "neon_intrinsics", since = "1.59.0")
32328)]
32329#[cfg_attr(
32330    target_arch = "arm",
32331    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32332)]
32333pub fn vmov_n_u64(value: u64) -> uint64x1_t {
32334    vdup_n_u64(value)
32335}
32336#[doc = "Duplicate vector element to vector or scalar"]
32337#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmov_n_u8)"]
32338#[inline]
32339#[target_feature(enable = "neon")]
32340#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32341#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8"))]
32342#[cfg_attr(
32343    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32344    assert_instr(dup)
32345)]
32346#[cfg_attr(
32347    not(target_arch = "arm"),
32348    stable(feature = "neon_intrinsics", since = "1.59.0")
32349)]
32350#[cfg_attr(
32351    target_arch = "arm",
32352    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32353)]
32354pub fn vmov_n_u8(value: u8) -> uint8x8_t {
32355    vdup_n_u8(value)
32356}
32357#[doc = "Duplicate vector element to vector or scalar"]
32358#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovq_n_f32)"]
32359#[inline]
32360#[target_feature(enable = "neon")]
32361#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32362#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32"))]
32363#[cfg_attr(
32364    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32365    assert_instr(dup)
32366)]
32367#[cfg_attr(
32368    not(target_arch = "arm"),
32369    stable(feature = "neon_intrinsics", since = "1.59.0")
32370)]
32371#[cfg_attr(
32372    target_arch = "arm",
32373    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32374)]
32375pub fn vmovq_n_f32(value: f32) -> float32x4_t {
32376    vdupq_n_f32(value)
32377}
32378#[doc = "Duplicate vector element to vector or scalar"]
32379#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovq_n_p16)"]
32380#[inline]
32381#[target_feature(enable = "neon")]
32382#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32383#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
32384#[cfg_attr(
32385    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32386    assert_instr(dup)
32387)]
32388#[cfg_attr(
32389    not(target_arch = "arm"),
32390    stable(feature = "neon_intrinsics", since = "1.59.0")
32391)]
32392#[cfg_attr(
32393    target_arch = "arm",
32394    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32395)]
32396pub fn vmovq_n_p16(value: p16) -> poly16x8_t {
32397    vdupq_n_p16(value)
32398}
32399#[doc = "Duplicate vector element to vector or scalar"]
32400#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovq_n_p8)"]
32401#[inline]
32402#[target_feature(enable = "neon")]
32403#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32404#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8"))]
32405#[cfg_attr(
32406    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32407    assert_instr(dup)
32408)]
32409#[cfg_attr(
32410    not(target_arch = "arm"),
32411    stable(feature = "neon_intrinsics", since = "1.59.0")
32412)]
32413#[cfg_attr(
32414    target_arch = "arm",
32415    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32416)]
32417pub fn vmovq_n_p8(value: p8) -> poly8x16_t {
32418    vdupq_n_p8(value)
32419}
32420#[doc = "Duplicate vector element to vector or scalar"]
32421#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovq_n_s16)"]
32422#[inline]
32423#[target_feature(enable = "neon")]
32424#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32425#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
32426#[cfg_attr(
32427    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32428    assert_instr(dup)
32429)]
32430#[cfg_attr(
32431    not(target_arch = "arm"),
32432    stable(feature = "neon_intrinsics", since = "1.59.0")
32433)]
32434#[cfg_attr(
32435    target_arch = "arm",
32436    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32437)]
32438pub fn vmovq_n_s16(value: i16) -> int16x8_t {
32439    vdupq_n_s16(value)
32440}
32441#[doc = "Duplicate vector element to vector or scalar"]
32442#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovq_n_s32)"]
32443#[inline]
32444#[target_feature(enable = "neon")]
32445#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32446#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32"))]
32447#[cfg_attr(
32448    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32449    assert_instr(dup)
32450)]
32451#[cfg_attr(
32452    not(target_arch = "arm"),
32453    stable(feature = "neon_intrinsics", since = "1.59.0")
32454)]
32455#[cfg_attr(
32456    target_arch = "arm",
32457    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32458)]
32459pub fn vmovq_n_s32(value: i32) -> int32x4_t {
32460    vdupq_n_s32(value)
32461}
32462#[doc = "Duplicate vector element to vector or scalar"]
32463#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovq_n_s64)"]
32464#[inline]
32465#[target_feature(enable = "neon")]
32466#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32467#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
32468#[cfg_attr(
32469    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32470    assert_instr(dup)
32471)]
32472#[cfg_attr(
32473    not(target_arch = "arm"),
32474    stable(feature = "neon_intrinsics", since = "1.59.0")
32475)]
32476#[cfg_attr(
32477    target_arch = "arm",
32478    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32479)]
32480pub fn vmovq_n_s64(value: i64) -> int64x2_t {
32481    vdupq_n_s64(value)
32482}
32483#[doc = "Duplicate vector element to vector or scalar"]
32484#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovq_n_s8)"]
32485#[inline]
32486#[target_feature(enable = "neon")]
32487#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32488#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8"))]
32489#[cfg_attr(
32490    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32491    assert_instr(dup)
32492)]
32493#[cfg_attr(
32494    not(target_arch = "arm"),
32495    stable(feature = "neon_intrinsics", since = "1.59.0")
32496)]
32497#[cfg_attr(
32498    target_arch = "arm",
32499    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32500)]
32501pub fn vmovq_n_s8(value: i8) -> int8x16_t {
32502    vdupq_n_s8(value)
32503}
32504#[doc = "Duplicate vector element to vector or scalar"]
32505#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovq_n_u16)"]
32506#[inline]
32507#[target_feature(enable = "neon")]
32508#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32509#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
32510#[cfg_attr(
32511    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32512    assert_instr(dup)
32513)]
32514#[cfg_attr(
32515    not(target_arch = "arm"),
32516    stable(feature = "neon_intrinsics", since = "1.59.0")
32517)]
32518#[cfg_attr(
32519    target_arch = "arm",
32520    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32521)]
32522pub fn vmovq_n_u16(value: u16) -> uint16x8_t {
32523    vdupq_n_u16(value)
32524}
32525#[doc = "Duplicate vector element to vector or scalar"]
32526#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovq_n_u32)"]
32527#[inline]
32528#[target_feature(enable = "neon")]
32529#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32530#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32"))]
32531#[cfg_attr(
32532    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32533    assert_instr(dup)
32534)]
32535#[cfg_attr(
32536    not(target_arch = "arm"),
32537    stable(feature = "neon_intrinsics", since = "1.59.0")
32538)]
32539#[cfg_attr(
32540    target_arch = "arm",
32541    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32542)]
32543pub fn vmovq_n_u32(value: u32) -> uint32x4_t {
32544    vdupq_n_u32(value)
32545}
32546#[doc = "Duplicate vector element to vector or scalar"]
32547#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovq_n_u64)"]
32548#[inline]
32549#[target_feature(enable = "neon")]
32550#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32551#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
32552#[cfg_attr(
32553    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32554    assert_instr(dup)
32555)]
32556#[cfg_attr(
32557    not(target_arch = "arm"),
32558    stable(feature = "neon_intrinsics", since = "1.59.0")
32559)]
32560#[cfg_attr(
32561    target_arch = "arm",
32562    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32563)]
32564pub fn vmovq_n_u64(value: u64) -> uint64x2_t {
32565    vdupq_n_u64(value)
32566}
32567#[doc = "Duplicate vector element to vector or scalar"]
32568#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovq_n_u8)"]
32569#[inline]
32570#[target_feature(enable = "neon")]
32571#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32572#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8"))]
32573#[cfg_attr(
32574    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32575    assert_instr(dup)
32576)]
32577#[cfg_attr(
32578    not(target_arch = "arm"),
32579    stable(feature = "neon_intrinsics", since = "1.59.0")
32580)]
32581#[cfg_attr(
32582    target_arch = "arm",
32583    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32584)]
32585pub fn vmovq_n_u8(value: u8) -> uint8x16_t {
32586    vdupq_n_u8(value)
32587}
32588#[doc = "Vector long move."]
32589#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovl_s16)"]
32590#[inline]
32591#[target_feature(enable = "neon")]
32592#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32593#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmovl))]
32594#[cfg_attr(
32595    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32596    assert_instr(sxtl)
32597)]
32598#[cfg_attr(
32599    not(target_arch = "arm"),
32600    stable(feature = "neon_intrinsics", since = "1.59.0")
32601)]
32602#[cfg_attr(
32603    target_arch = "arm",
32604    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32605)]
32606pub fn vmovl_s16(a: int16x4_t) -> int32x4_t {
32607    unsafe { simd_cast(a) }
32608}
32609#[doc = "Vector long move."]
32610#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovl_s32)"]
32611#[inline]
32612#[target_feature(enable = "neon")]
32613#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32614#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmovl))]
32615#[cfg_attr(
32616    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32617    assert_instr(sxtl)
32618)]
32619#[cfg_attr(
32620    not(target_arch = "arm"),
32621    stable(feature = "neon_intrinsics", since = "1.59.0")
32622)]
32623#[cfg_attr(
32624    target_arch = "arm",
32625    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32626)]
32627pub fn vmovl_s32(a: int32x2_t) -> int64x2_t {
32628    unsafe { simd_cast(a) }
32629}
32630#[doc = "Vector long move."]
32631#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovl_s8)"]
32632#[inline]
32633#[target_feature(enable = "neon")]
32634#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32635#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmovl))]
32636#[cfg_attr(
32637    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32638    assert_instr(sxtl)
32639)]
32640#[cfg_attr(
32641    not(target_arch = "arm"),
32642    stable(feature = "neon_intrinsics", since = "1.59.0")
32643)]
32644#[cfg_attr(
32645    target_arch = "arm",
32646    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32647)]
32648pub fn vmovl_s8(a: int8x8_t) -> int16x8_t {
32649    unsafe { simd_cast(a) }
32650}
32651#[doc = "Vector long move."]
32652#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovl_u16)"]
32653#[inline]
32654#[target_feature(enable = "neon")]
32655#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32656#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmovl))]
32657#[cfg_attr(
32658    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32659    assert_instr(uxtl)
32660)]
32661#[cfg_attr(
32662    not(target_arch = "arm"),
32663    stable(feature = "neon_intrinsics", since = "1.59.0")
32664)]
32665#[cfg_attr(
32666    target_arch = "arm",
32667    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32668)]
32669pub fn vmovl_u16(a: uint16x4_t) -> uint32x4_t {
32670    unsafe { simd_cast(a) }
32671}
32672#[doc = "Vector long move."]
32673#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovl_u32)"]
32674#[inline]
32675#[target_feature(enable = "neon")]
32676#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32677#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmovl))]
32678#[cfg_attr(
32679    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32680    assert_instr(uxtl)
32681)]
32682#[cfg_attr(
32683    not(target_arch = "arm"),
32684    stable(feature = "neon_intrinsics", since = "1.59.0")
32685)]
32686#[cfg_attr(
32687    target_arch = "arm",
32688    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32689)]
32690pub fn vmovl_u32(a: uint32x2_t) -> uint64x2_t {
32691    unsafe { simd_cast(a) }
32692}
32693#[doc = "Vector long move."]
32694#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovl_u8)"]
32695#[inline]
32696#[target_feature(enable = "neon")]
32697#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32698#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmovl))]
32699#[cfg_attr(
32700    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32701    assert_instr(uxtl)
32702)]
32703#[cfg_attr(
32704    not(target_arch = "arm"),
32705    stable(feature = "neon_intrinsics", since = "1.59.0")
32706)]
32707#[cfg_attr(
32708    target_arch = "arm",
32709    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32710)]
32711pub fn vmovl_u8(a: uint8x8_t) -> uint16x8_t {
32712    unsafe { simd_cast(a) }
32713}
32714#[doc = "Vector narrow integer."]
32715#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovn_s16)"]
32716#[inline]
32717#[target_feature(enable = "neon")]
32718#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32719#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmovn))]
32720#[cfg_attr(
32721    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32722    assert_instr(xtn)
32723)]
32724#[cfg_attr(
32725    not(target_arch = "arm"),
32726    stable(feature = "neon_intrinsics", since = "1.59.0")
32727)]
32728#[cfg_attr(
32729    target_arch = "arm",
32730    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32731)]
32732pub fn vmovn_s16(a: int16x8_t) -> int8x8_t {
32733    unsafe { simd_cast(a) }
32734}
32735#[doc = "Vector narrow integer."]
32736#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovn_s32)"]
32737#[inline]
32738#[target_feature(enable = "neon")]
32739#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32740#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmovn))]
32741#[cfg_attr(
32742    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32743    assert_instr(xtn)
32744)]
32745#[cfg_attr(
32746    not(target_arch = "arm"),
32747    stable(feature = "neon_intrinsics", since = "1.59.0")
32748)]
32749#[cfg_attr(
32750    target_arch = "arm",
32751    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32752)]
32753pub fn vmovn_s32(a: int32x4_t) -> int16x4_t {
32754    unsafe { simd_cast(a) }
32755}
32756#[doc = "Vector narrow integer."]
32757#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovn_s64)"]
32758#[inline]
32759#[target_feature(enable = "neon")]
32760#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32761#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmovn))]
32762#[cfg_attr(
32763    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32764    assert_instr(xtn)
32765)]
32766#[cfg_attr(
32767    not(target_arch = "arm"),
32768    stable(feature = "neon_intrinsics", since = "1.59.0")
32769)]
32770#[cfg_attr(
32771    target_arch = "arm",
32772    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32773)]
32774pub fn vmovn_s64(a: int64x2_t) -> int32x2_t {
32775    unsafe { simd_cast(a) }
32776}
32777#[doc = "Vector narrow integer."]
32778#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovn_u16)"]
32779#[inline]
32780#[target_feature(enable = "neon")]
32781#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32782#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmovn))]
32783#[cfg_attr(
32784    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32785    assert_instr(xtn)
32786)]
32787#[cfg_attr(
32788    not(target_arch = "arm"),
32789    stable(feature = "neon_intrinsics", since = "1.59.0")
32790)]
32791#[cfg_attr(
32792    target_arch = "arm",
32793    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32794)]
32795pub fn vmovn_u16(a: uint16x8_t) -> uint8x8_t {
32796    unsafe { simd_cast(a) }
32797}
32798#[doc = "Vector narrow integer."]
32799#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovn_u32)"]
32800#[inline]
32801#[target_feature(enable = "neon")]
32802#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32803#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmovn))]
32804#[cfg_attr(
32805    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32806    assert_instr(xtn)
32807)]
32808#[cfg_attr(
32809    not(target_arch = "arm"),
32810    stable(feature = "neon_intrinsics", since = "1.59.0")
32811)]
32812#[cfg_attr(
32813    target_arch = "arm",
32814    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32815)]
32816pub fn vmovn_u32(a: uint32x4_t) -> uint16x4_t {
32817    unsafe { simd_cast(a) }
32818}
32819#[doc = "Vector narrow integer."]
32820#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovn_u64)"]
32821#[inline]
32822#[target_feature(enable = "neon")]
32823#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32824#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmovn))]
32825#[cfg_attr(
32826    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32827    assert_instr(xtn)
32828)]
32829#[cfg_attr(
32830    not(target_arch = "arm"),
32831    stable(feature = "neon_intrinsics", since = "1.59.0")
32832)]
32833#[cfg_attr(
32834    target_arch = "arm",
32835    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32836)]
32837pub fn vmovn_u64(a: uint64x2_t) -> uint32x2_t {
32838    unsafe { simd_cast(a) }
32839}
32840#[doc = "Multiply"]
32841#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_f16)"]
32842#[inline]
32843#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
32844#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.f16"))]
32845#[cfg_attr(
32846    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32847    assert_instr(fmul)
32848)]
32849#[target_feature(enable = "neon,fp16")]
32850#[cfg_attr(
32851    not(target_arch = "arm"),
32852    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
32853)]
32854#[cfg_attr(
32855    target_arch = "arm",
32856    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32857)]
32858#[cfg(not(target_arch = "arm64ec"))]
32859pub fn vmul_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t {
32860    unsafe { simd_mul(a, b) }
32861}
32862#[doc = "Multiply"]
32863#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_f16)"]
32864#[inline]
32865#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
32866#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.f16"))]
32867#[cfg_attr(
32868    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32869    assert_instr(fmul)
32870)]
32871#[target_feature(enable = "neon,fp16")]
32872#[cfg_attr(
32873    not(target_arch = "arm"),
32874    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
32875)]
32876#[cfg_attr(
32877    target_arch = "arm",
32878    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32879)]
32880#[cfg(not(target_arch = "arm64ec"))]
32881pub fn vmulq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t {
32882    unsafe { simd_mul(a, b) }
32883}
32884#[doc = "Multiply"]
32885#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_f32)"]
32886#[inline]
32887#[target_feature(enable = "neon")]
32888#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32889#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.f32"))]
32890#[cfg_attr(
32891    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32892    assert_instr(fmul)
32893)]
32894#[cfg_attr(
32895    not(target_arch = "arm"),
32896    stable(feature = "neon_intrinsics", since = "1.59.0")
32897)]
32898#[cfg_attr(
32899    target_arch = "arm",
32900    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32901)]
32902pub fn vmul_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
32903    unsafe { simd_mul(a, b) }
32904}
32905#[doc = "Multiply"]
32906#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_f32)"]
32907#[inline]
32908#[target_feature(enable = "neon")]
32909#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32910#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.f32"))]
32911#[cfg_attr(
32912    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32913    assert_instr(fmul)
32914)]
32915#[cfg_attr(
32916    not(target_arch = "arm"),
32917    stable(feature = "neon_intrinsics", since = "1.59.0")
32918)]
32919#[cfg_attr(
32920    target_arch = "arm",
32921    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32922)]
32923pub fn vmulq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t {
32924    unsafe { simd_mul(a, b) }
32925}
32926#[doc = "Multiply"]
32927#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_lane_f16)"]
32928#[inline]
32929#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
32930#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
32931#[cfg_attr(
32932    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32933    assert_instr(fmul, LANE = 1)
32934)]
32935#[rustc_legacy_const_generics(2)]
32936#[target_feature(enable = "neon,fp16")]
32937#[cfg_attr(
32938    not(target_arch = "arm"),
32939    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
32940)]
32941#[cfg_attr(
32942    target_arch = "arm",
32943    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32944)]
32945#[cfg(not(target_arch = "arm64ec"))]
32946pub fn vmul_lane_f16<const LANE: i32>(a: float16x4_t, v: float16x4_t) -> float16x4_t {
32947    static_assert_uimm_bits!(LANE, 2);
32948    unsafe {
32949        simd_mul(
32950            a,
32951            simd_shuffle!(v, v, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
32952        )
32953    }
32954}
32955#[doc = "Multiply"]
32956#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_lane_f16)"]
32957#[inline]
32958#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
32959#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
32960#[cfg_attr(
32961    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32962    assert_instr(fmul, LANE = 1)
32963)]
32964#[rustc_legacy_const_generics(2)]
32965#[target_feature(enable = "neon,fp16")]
32966#[cfg_attr(
32967    not(target_arch = "arm"),
32968    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
32969)]
32970#[cfg_attr(
32971    target_arch = "arm",
32972    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32973)]
32974#[cfg(not(target_arch = "arm64ec"))]
32975pub fn vmulq_lane_f16<const LANE: i32>(a: float16x8_t, v: float16x4_t) -> float16x8_t {
32976    static_assert_uimm_bits!(LANE, 2);
32977    unsafe {
32978        simd_mul(
32979            a,
32980            simd_shuffle!(
32981                v,
32982                v,
32983                [
32984                    LANE as u32,
32985                    LANE as u32,
32986                    LANE as u32,
32987                    LANE as u32,
32988                    LANE as u32,
32989                    LANE as u32,
32990                    LANE as u32,
32991                    LANE as u32
32992                ]
32993            ),
32994        )
32995    }
32996}
32997#[doc = "Floating-point multiply"]
32998#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_lane_f32)"]
32999#[inline]
33000#[target_feature(enable = "neon")]
33001#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33002#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 0))]
33003#[cfg_attr(
33004    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33005    assert_instr(fmul, LANE = 0)
33006)]
33007#[rustc_legacy_const_generics(2)]
33008#[cfg_attr(
33009    not(target_arch = "arm"),
33010    stable(feature = "neon_intrinsics", since = "1.59.0")
33011)]
33012#[cfg_attr(
33013    target_arch = "arm",
33014    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33015)]
33016pub fn vmul_lane_f32<const LANE: i32>(a: float32x2_t, b: float32x2_t) -> float32x2_t {
33017    static_assert_uimm_bits!(LANE, 1);
33018    unsafe { simd_mul(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32])) }
33019}
33020#[doc = "Floating-point multiply"]
33021#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_laneq_f32)"]
33022#[inline]
33023#[target_feature(enable = "neon")]
33024#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33025#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 0))]
33026#[cfg_attr(
33027    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33028    assert_instr(fmul, LANE = 0)
33029)]
33030#[rustc_legacy_const_generics(2)]
33031#[cfg_attr(
33032    not(target_arch = "arm"),
33033    stable(feature = "neon_intrinsics", since = "1.59.0")
33034)]
33035#[cfg_attr(
33036    target_arch = "arm",
33037    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33038)]
33039pub fn vmul_laneq_f32<const LANE: i32>(a: float32x2_t, b: float32x4_t) -> float32x2_t {
33040    static_assert_uimm_bits!(LANE, 2);
33041    unsafe { simd_mul(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32])) }
33042}
33043#[doc = "Floating-point multiply"]
33044#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_lane_f32)"]
33045#[inline]
33046#[target_feature(enable = "neon")]
33047#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33048#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 0))]
33049#[cfg_attr(
33050    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33051    assert_instr(fmul, LANE = 0)
33052)]
33053#[rustc_legacy_const_generics(2)]
33054#[cfg_attr(
33055    not(target_arch = "arm"),
33056    stable(feature = "neon_intrinsics", since = "1.59.0")
33057)]
33058#[cfg_attr(
33059    target_arch = "arm",
33060    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33061)]
33062pub fn vmulq_lane_f32<const LANE: i32>(a: float32x4_t, b: float32x2_t) -> float32x4_t {
33063    static_assert_uimm_bits!(LANE, 1);
33064    unsafe {
33065        simd_mul(
33066            a,
33067            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
33068        )
33069    }
33070}
33071#[doc = "Floating-point multiply"]
33072#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_laneq_f32)"]
33073#[inline]
33074#[target_feature(enable = "neon")]
33075#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33076#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 0))]
33077#[cfg_attr(
33078    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33079    assert_instr(fmul, LANE = 0)
33080)]
33081#[rustc_legacy_const_generics(2)]
33082#[cfg_attr(
33083    not(target_arch = "arm"),
33084    stable(feature = "neon_intrinsics", since = "1.59.0")
33085)]
33086#[cfg_attr(
33087    target_arch = "arm",
33088    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33089)]
33090pub fn vmulq_laneq_f32<const LANE: i32>(a: float32x4_t, b: float32x4_t) -> float32x4_t {
33091    static_assert_uimm_bits!(LANE, 2);
33092    unsafe {
33093        simd_mul(
33094            a,
33095            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
33096        )
33097    }
33098}
33099#[doc = "Multiply"]
33100#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_lane_s16)"]
33101#[inline]
33102#[target_feature(enable = "neon")]
33103#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33104#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
33105#[cfg_attr(
33106    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33107    assert_instr(mul, LANE = 1)
33108)]
33109#[rustc_legacy_const_generics(2)]
33110#[cfg_attr(
33111    not(target_arch = "arm"),
33112    stable(feature = "neon_intrinsics", since = "1.59.0")
33113)]
33114#[cfg_attr(
33115    target_arch = "arm",
33116    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33117)]
33118pub fn vmul_lane_s16<const LANE: i32>(a: int16x4_t, b: int16x4_t) -> int16x4_t {
33119    static_assert_uimm_bits!(LANE, 2);
33120    unsafe {
33121        simd_mul(
33122            a,
33123            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
33124        )
33125    }
33126}
33127#[doc = "Multiply"]
33128#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_lane_s16)"]
33129#[inline]
33130#[target_feature(enable = "neon")]
33131#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33132#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
33133#[cfg_attr(
33134    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33135    assert_instr(mul, LANE = 1)
33136)]
33137#[rustc_legacy_const_generics(2)]
33138#[cfg_attr(
33139    not(target_arch = "arm"),
33140    stable(feature = "neon_intrinsics", since = "1.59.0")
33141)]
33142#[cfg_attr(
33143    target_arch = "arm",
33144    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33145)]
33146pub fn vmulq_lane_s16<const LANE: i32>(a: int16x8_t, b: int16x4_t) -> int16x8_t {
33147    static_assert_uimm_bits!(LANE, 2);
33148    unsafe {
33149        simd_mul(
33150            a,
33151            simd_shuffle!(
33152                b,
33153                b,
33154                [
33155                    LANE as u32,
33156                    LANE as u32,
33157                    LANE as u32,
33158                    LANE as u32,
33159                    LANE as u32,
33160                    LANE as u32,
33161                    LANE as u32,
33162                    LANE as u32
33163                ]
33164            ),
33165        )
33166    }
33167}
33168#[doc = "Multiply"]
33169#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_lane_s32)"]
33170#[inline]
33171#[target_feature(enable = "neon")]
33172#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33173#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
33174#[cfg_attr(
33175    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33176    assert_instr(mul, LANE = 1)
33177)]
33178#[rustc_legacy_const_generics(2)]
33179#[cfg_attr(
33180    not(target_arch = "arm"),
33181    stable(feature = "neon_intrinsics", since = "1.59.0")
33182)]
33183#[cfg_attr(
33184    target_arch = "arm",
33185    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33186)]
33187pub fn vmul_lane_s32<const LANE: i32>(a: int32x2_t, b: int32x2_t) -> int32x2_t {
33188    static_assert_uimm_bits!(LANE, 1);
33189    unsafe { simd_mul(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32])) }
33190}
33191#[doc = "Multiply"]
33192#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_lane_s32)"]
33193#[inline]
33194#[target_feature(enable = "neon")]
33195#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33196#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
33197#[cfg_attr(
33198    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33199    assert_instr(mul, LANE = 1)
33200)]
33201#[rustc_legacy_const_generics(2)]
33202#[cfg_attr(
33203    not(target_arch = "arm"),
33204    stable(feature = "neon_intrinsics", since = "1.59.0")
33205)]
33206#[cfg_attr(
33207    target_arch = "arm",
33208    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33209)]
33210pub fn vmulq_lane_s32<const LANE: i32>(a: int32x4_t, b: int32x2_t) -> int32x4_t {
33211    static_assert_uimm_bits!(LANE, 1);
33212    unsafe {
33213        simd_mul(
33214            a,
33215            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
33216        )
33217    }
33218}
33219#[doc = "Multiply"]
33220#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_lane_u16)"]
33221#[inline]
33222#[target_feature(enable = "neon")]
33223#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33224#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
33225#[cfg_attr(
33226    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33227    assert_instr(mul, LANE = 1)
33228)]
33229#[rustc_legacy_const_generics(2)]
33230#[cfg_attr(
33231    not(target_arch = "arm"),
33232    stable(feature = "neon_intrinsics", since = "1.59.0")
33233)]
33234#[cfg_attr(
33235    target_arch = "arm",
33236    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33237)]
33238pub fn vmul_lane_u16<const LANE: i32>(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
33239    static_assert_uimm_bits!(LANE, 2);
33240    unsafe {
33241        simd_mul(
33242            a,
33243            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
33244        )
33245    }
33246}
33247#[doc = "Multiply"]
33248#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_lane_u16)"]
33249#[inline]
33250#[target_feature(enable = "neon")]
33251#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33252#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
33253#[cfg_attr(
33254    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33255    assert_instr(mul, LANE = 1)
33256)]
33257#[rustc_legacy_const_generics(2)]
33258#[cfg_attr(
33259    not(target_arch = "arm"),
33260    stable(feature = "neon_intrinsics", since = "1.59.0")
33261)]
33262#[cfg_attr(
33263    target_arch = "arm",
33264    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33265)]
33266pub fn vmulq_lane_u16<const LANE: i32>(a: uint16x8_t, b: uint16x4_t) -> uint16x8_t {
33267    static_assert_uimm_bits!(LANE, 2);
33268    unsafe {
33269        simd_mul(
33270            a,
33271            simd_shuffle!(
33272                b,
33273                b,
33274                [
33275                    LANE as u32,
33276                    LANE as u32,
33277                    LANE as u32,
33278                    LANE as u32,
33279                    LANE as u32,
33280                    LANE as u32,
33281                    LANE as u32,
33282                    LANE as u32
33283                ]
33284            ),
33285        )
33286    }
33287}
33288#[doc = "Multiply"]
33289#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_lane_u32)"]
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, LANE = 1))]
33294#[cfg_attr(
33295    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33296    assert_instr(mul, LANE = 1)
33297)]
33298#[rustc_legacy_const_generics(2)]
33299#[cfg_attr(
33300    not(target_arch = "arm"),
33301    stable(feature = "neon_intrinsics", since = "1.59.0")
33302)]
33303#[cfg_attr(
33304    target_arch = "arm",
33305    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33306)]
33307pub fn vmul_lane_u32<const LANE: i32>(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
33308    static_assert_uimm_bits!(LANE, 1);
33309    unsafe { simd_mul(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32])) }
33310}
33311#[doc = "Multiply"]
33312#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_lane_u32)"]
33313#[inline]
33314#[target_feature(enable = "neon")]
33315#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33316#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
33317#[cfg_attr(
33318    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33319    assert_instr(mul, LANE = 1)
33320)]
33321#[rustc_legacy_const_generics(2)]
33322#[cfg_attr(
33323    not(target_arch = "arm"),
33324    stable(feature = "neon_intrinsics", since = "1.59.0")
33325)]
33326#[cfg_attr(
33327    target_arch = "arm",
33328    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33329)]
33330pub fn vmulq_lane_u32<const LANE: i32>(a: uint32x4_t, b: uint32x2_t) -> uint32x4_t {
33331    static_assert_uimm_bits!(LANE, 1);
33332    unsafe {
33333        simd_mul(
33334            a,
33335            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
33336        )
33337    }
33338}
33339#[doc = "Multiply"]
33340#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_laneq_s16)"]
33341#[inline]
33342#[target_feature(enable = "neon")]
33343#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33344#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
33345#[cfg_attr(
33346    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33347    assert_instr(mul, LANE = 1)
33348)]
33349#[rustc_legacy_const_generics(2)]
33350#[cfg_attr(
33351    not(target_arch = "arm"),
33352    stable(feature = "neon_intrinsics", since = "1.59.0")
33353)]
33354#[cfg_attr(
33355    target_arch = "arm",
33356    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33357)]
33358pub fn vmul_laneq_s16<const LANE: i32>(a: int16x4_t, b: int16x8_t) -> int16x4_t {
33359    static_assert_uimm_bits!(LANE, 3);
33360    unsafe {
33361        simd_mul(
33362            a,
33363            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
33364        )
33365    }
33366}
33367#[doc = "Multiply"]
33368#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_laneq_s16)"]
33369#[inline]
33370#[target_feature(enable = "neon")]
33371#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33372#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
33373#[cfg_attr(
33374    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33375    assert_instr(mul, LANE = 1)
33376)]
33377#[rustc_legacy_const_generics(2)]
33378#[cfg_attr(
33379    not(target_arch = "arm"),
33380    stable(feature = "neon_intrinsics", since = "1.59.0")
33381)]
33382#[cfg_attr(
33383    target_arch = "arm",
33384    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33385)]
33386pub fn vmulq_laneq_s16<const LANE: i32>(a: int16x8_t, b: int16x8_t) -> int16x8_t {
33387    static_assert_uimm_bits!(LANE, 3);
33388    unsafe {
33389        simd_mul(
33390            a,
33391            simd_shuffle!(
33392                b,
33393                b,
33394                [
33395                    LANE as u32,
33396                    LANE as u32,
33397                    LANE as u32,
33398                    LANE as u32,
33399                    LANE as u32,
33400                    LANE as u32,
33401                    LANE as u32,
33402                    LANE as u32
33403                ]
33404            ),
33405        )
33406    }
33407}
33408#[doc = "Multiply"]
33409#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_laneq_s32)"]
33410#[inline]
33411#[target_feature(enable = "neon")]
33412#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33413#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
33414#[cfg_attr(
33415    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33416    assert_instr(mul, LANE = 1)
33417)]
33418#[rustc_legacy_const_generics(2)]
33419#[cfg_attr(
33420    not(target_arch = "arm"),
33421    stable(feature = "neon_intrinsics", since = "1.59.0")
33422)]
33423#[cfg_attr(
33424    target_arch = "arm",
33425    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33426)]
33427pub fn vmul_laneq_s32<const LANE: i32>(a: int32x2_t, b: int32x4_t) -> int32x2_t {
33428    static_assert_uimm_bits!(LANE, 2);
33429    unsafe { simd_mul(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32])) }
33430}
33431#[doc = "Multiply"]
33432#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_laneq_s32)"]
33433#[inline]
33434#[target_feature(enable = "neon")]
33435#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33436#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
33437#[cfg_attr(
33438    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33439    assert_instr(mul, LANE = 1)
33440)]
33441#[rustc_legacy_const_generics(2)]
33442#[cfg_attr(
33443    not(target_arch = "arm"),
33444    stable(feature = "neon_intrinsics", since = "1.59.0")
33445)]
33446#[cfg_attr(
33447    target_arch = "arm",
33448    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33449)]
33450pub fn vmulq_laneq_s32<const LANE: i32>(a: int32x4_t, b: int32x4_t) -> int32x4_t {
33451    static_assert_uimm_bits!(LANE, 2);
33452    unsafe {
33453        simd_mul(
33454            a,
33455            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
33456        )
33457    }
33458}
33459#[doc = "Multiply"]
33460#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_laneq_u16)"]
33461#[inline]
33462#[target_feature(enable = "neon")]
33463#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33464#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
33465#[cfg_attr(
33466    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33467    assert_instr(mul, LANE = 1)
33468)]
33469#[rustc_legacy_const_generics(2)]
33470#[cfg_attr(
33471    not(target_arch = "arm"),
33472    stable(feature = "neon_intrinsics", since = "1.59.0")
33473)]
33474#[cfg_attr(
33475    target_arch = "arm",
33476    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33477)]
33478pub fn vmul_laneq_u16<const LANE: i32>(a: uint16x4_t, b: uint16x8_t) -> uint16x4_t {
33479    static_assert_uimm_bits!(LANE, 3);
33480    unsafe {
33481        simd_mul(
33482            a,
33483            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
33484        )
33485    }
33486}
33487#[doc = "Multiply"]
33488#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_laneq_u16)"]
33489#[inline]
33490#[target_feature(enable = "neon")]
33491#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33492#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
33493#[cfg_attr(
33494    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33495    assert_instr(mul, LANE = 1)
33496)]
33497#[rustc_legacy_const_generics(2)]
33498#[cfg_attr(
33499    not(target_arch = "arm"),
33500    stable(feature = "neon_intrinsics", since = "1.59.0")
33501)]
33502#[cfg_attr(
33503    target_arch = "arm",
33504    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33505)]
33506pub fn vmulq_laneq_u16<const LANE: i32>(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
33507    static_assert_uimm_bits!(LANE, 3);
33508    unsafe {
33509        simd_mul(
33510            a,
33511            simd_shuffle!(
33512                b,
33513                b,
33514                [
33515                    LANE as u32,
33516                    LANE as u32,
33517                    LANE as u32,
33518                    LANE as u32,
33519                    LANE as u32,
33520                    LANE as u32,
33521                    LANE as u32,
33522                    LANE as u32
33523                ]
33524            ),
33525        )
33526    }
33527}
33528#[doc = "Multiply"]
33529#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_laneq_u32)"]
33530#[inline]
33531#[target_feature(enable = "neon")]
33532#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33533#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
33534#[cfg_attr(
33535    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33536    assert_instr(mul, LANE = 1)
33537)]
33538#[rustc_legacy_const_generics(2)]
33539#[cfg_attr(
33540    not(target_arch = "arm"),
33541    stable(feature = "neon_intrinsics", since = "1.59.0")
33542)]
33543#[cfg_attr(
33544    target_arch = "arm",
33545    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33546)]
33547pub fn vmul_laneq_u32<const LANE: i32>(a: uint32x2_t, b: uint32x4_t) -> uint32x2_t {
33548    static_assert_uimm_bits!(LANE, 2);
33549    unsafe { simd_mul(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32])) }
33550}
33551#[doc = "Multiply"]
33552#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_laneq_u32)"]
33553#[inline]
33554#[target_feature(enable = "neon")]
33555#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33556#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
33557#[cfg_attr(
33558    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33559    assert_instr(mul, LANE = 1)
33560)]
33561#[rustc_legacy_const_generics(2)]
33562#[cfg_attr(
33563    not(target_arch = "arm"),
33564    stable(feature = "neon_intrinsics", since = "1.59.0")
33565)]
33566#[cfg_attr(
33567    target_arch = "arm",
33568    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33569)]
33570pub fn vmulq_laneq_u32<const LANE: i32>(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
33571    static_assert_uimm_bits!(LANE, 2);
33572    unsafe {
33573        simd_mul(
33574            a,
33575            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
33576        )
33577    }
33578}
33579#[doc = "Vector multiply by scalar"]
33580#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_n_f16)"]
33581#[inline]
33582#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
33583#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
33584#[cfg_attr(
33585    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33586    assert_instr(fmul)
33587)]
33588#[target_feature(enable = "neon,fp16")]
33589#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
33590#[cfg(not(target_arch = "arm64ec"))]
33591pub fn vmul_n_f16(a: float16x4_t, b: f16) -> float16x4_t {
33592    unsafe { simd_mul(a, vdup_n_f16(b)) }
33593}
33594#[doc = "Vector multiply by scalar"]
33595#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_n_f16)"]
33596#[inline]
33597#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
33598#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
33599#[cfg_attr(
33600    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33601    assert_instr(fmul)
33602)]
33603#[target_feature(enable = "neon,fp16")]
33604#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
33605#[cfg(not(target_arch = "arm64ec"))]
33606pub fn vmulq_n_f16(a: float16x8_t, b: f16) -> float16x8_t {
33607    unsafe { simd_mul(a, vdupq_n_f16(b)) }
33608}
33609#[doc = "Vector multiply by scalar"]
33610#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_n_f32)"]
33611#[inline]
33612#[target_feature(enable = "neon")]
33613#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33614#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
33615#[cfg_attr(
33616    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33617    assert_instr(fmul)
33618)]
33619#[cfg_attr(
33620    not(target_arch = "arm"),
33621    stable(feature = "neon_intrinsics", since = "1.59.0")
33622)]
33623#[cfg_attr(
33624    target_arch = "arm",
33625    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33626)]
33627pub fn vmul_n_f32(a: float32x2_t, b: f32) -> float32x2_t {
33628    unsafe { simd_mul(a, vdup_n_f32(b)) }
33629}
33630#[doc = "Vector multiply by scalar"]
33631#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_n_f32)"]
33632#[inline]
33633#[target_feature(enable = "neon")]
33634#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33635#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
33636#[cfg_attr(
33637    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33638    assert_instr(fmul)
33639)]
33640#[cfg_attr(
33641    not(target_arch = "arm"),
33642    stable(feature = "neon_intrinsics", since = "1.59.0")
33643)]
33644#[cfg_attr(
33645    target_arch = "arm",
33646    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33647)]
33648pub fn vmulq_n_f32(a: float32x4_t, b: f32) -> float32x4_t {
33649    unsafe { simd_mul(a, vdupq_n_f32(b)) }
33650}
33651#[doc = "Vector multiply by scalar"]
33652#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_n_s16)"]
33653#[inline]
33654#[target_feature(enable = "neon")]
33655#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33656#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
33657#[cfg_attr(
33658    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33659    assert_instr(mul)
33660)]
33661#[cfg_attr(
33662    not(target_arch = "arm"),
33663    stable(feature = "neon_intrinsics", since = "1.59.0")
33664)]
33665#[cfg_attr(
33666    target_arch = "arm",
33667    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33668)]
33669pub fn vmul_n_s16(a: int16x4_t, b: i16) -> int16x4_t {
33670    unsafe { simd_mul(a, vdup_n_s16(b)) }
33671}
33672#[doc = "Vector multiply by scalar"]
33673#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_n_s16)"]
33674#[inline]
33675#[target_feature(enable = "neon")]
33676#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33677#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
33678#[cfg_attr(
33679    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33680    assert_instr(mul)
33681)]
33682#[cfg_attr(
33683    not(target_arch = "arm"),
33684    stable(feature = "neon_intrinsics", since = "1.59.0")
33685)]
33686#[cfg_attr(
33687    target_arch = "arm",
33688    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33689)]
33690pub fn vmulq_n_s16(a: int16x8_t, b: i16) -> int16x8_t {
33691    unsafe { simd_mul(a, vdupq_n_s16(b)) }
33692}
33693#[doc = "Vector multiply by scalar"]
33694#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_n_s32)"]
33695#[inline]
33696#[target_feature(enable = "neon")]
33697#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33698#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
33699#[cfg_attr(
33700    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33701    assert_instr(mul)
33702)]
33703#[cfg_attr(
33704    not(target_arch = "arm"),
33705    stable(feature = "neon_intrinsics", since = "1.59.0")
33706)]
33707#[cfg_attr(
33708    target_arch = "arm",
33709    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33710)]
33711pub fn vmul_n_s32(a: int32x2_t, b: i32) -> int32x2_t {
33712    unsafe { simd_mul(a, vdup_n_s32(b)) }
33713}
33714#[doc = "Vector multiply by scalar"]
33715#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_n_s32)"]
33716#[inline]
33717#[target_feature(enable = "neon")]
33718#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33719#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
33720#[cfg_attr(
33721    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33722    assert_instr(mul)
33723)]
33724#[cfg_attr(
33725    not(target_arch = "arm"),
33726    stable(feature = "neon_intrinsics", since = "1.59.0")
33727)]
33728#[cfg_attr(
33729    target_arch = "arm",
33730    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33731)]
33732pub fn vmulq_n_s32(a: int32x4_t, b: i32) -> int32x4_t {
33733    unsafe { simd_mul(a, vdupq_n_s32(b)) }
33734}
33735#[doc = "Vector multiply by scalar"]
33736#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_n_u16)"]
33737#[inline]
33738#[target_feature(enable = "neon")]
33739#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33740#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
33741#[cfg_attr(
33742    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33743    assert_instr(mul)
33744)]
33745#[cfg_attr(
33746    not(target_arch = "arm"),
33747    stable(feature = "neon_intrinsics", since = "1.59.0")
33748)]
33749#[cfg_attr(
33750    target_arch = "arm",
33751    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33752)]
33753pub fn vmul_n_u16(a: uint16x4_t, b: u16) -> uint16x4_t {
33754    unsafe { simd_mul(a, vdup_n_u16(b)) }
33755}
33756#[doc = "Vector multiply by scalar"]
33757#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_n_u16)"]
33758#[inline]
33759#[target_feature(enable = "neon")]
33760#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33761#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
33762#[cfg_attr(
33763    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33764    assert_instr(mul)
33765)]
33766#[cfg_attr(
33767    not(target_arch = "arm"),
33768    stable(feature = "neon_intrinsics", since = "1.59.0")
33769)]
33770#[cfg_attr(
33771    target_arch = "arm",
33772    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33773)]
33774pub fn vmulq_n_u16(a: uint16x8_t, b: u16) -> uint16x8_t {
33775    unsafe { simd_mul(a, vdupq_n_u16(b)) }
33776}
33777#[doc = "Vector multiply by scalar"]
33778#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_n_u32)"]
33779#[inline]
33780#[target_feature(enable = "neon")]
33781#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33782#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
33783#[cfg_attr(
33784    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33785    assert_instr(mul)
33786)]
33787#[cfg_attr(
33788    not(target_arch = "arm"),
33789    stable(feature = "neon_intrinsics", since = "1.59.0")
33790)]
33791#[cfg_attr(
33792    target_arch = "arm",
33793    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33794)]
33795pub fn vmul_n_u32(a: uint32x2_t, b: u32) -> uint32x2_t {
33796    unsafe { simd_mul(a, vdup_n_u32(b)) }
33797}
33798#[doc = "Vector multiply by scalar"]
33799#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_n_u32)"]
33800#[inline]
33801#[target_feature(enable = "neon")]
33802#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33803#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
33804#[cfg_attr(
33805    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33806    assert_instr(mul)
33807)]
33808#[cfg_attr(
33809    not(target_arch = "arm"),
33810    stable(feature = "neon_intrinsics", since = "1.59.0")
33811)]
33812#[cfg_attr(
33813    target_arch = "arm",
33814    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33815)]
33816pub fn vmulq_n_u32(a: uint32x4_t, b: u32) -> uint32x4_t {
33817    unsafe { simd_mul(a, vdupq_n_u32(b)) }
33818}
33819#[doc = "Polynomial multiply"]
33820#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_p8)"]
33821#[inline]
33822#[target_feature(enable = "neon")]
33823#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33824#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
33825#[cfg_attr(
33826    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33827    assert_instr(pmul)
33828)]
33829#[cfg_attr(
33830    not(target_arch = "arm"),
33831    stable(feature = "neon_intrinsics", since = "1.59.0")
33832)]
33833#[cfg_attr(
33834    target_arch = "arm",
33835    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33836)]
33837pub fn vmul_p8(a: poly8x8_t, b: poly8x8_t) -> poly8x8_t {
33838    unsafe extern "unadjusted" {
33839        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmulp.v8i8")]
33840        #[cfg_attr(
33841            any(target_arch = "aarch64", target_arch = "arm64ec"),
33842            link_name = "llvm.aarch64.neon.pmul.v8i8"
33843        )]
33844        fn _vmul_p8(a: poly8x8_t, b: poly8x8_t) -> poly8x8_t;
33845    }
33846    unsafe { _vmul_p8(a, b) }
33847}
33848#[doc = "Polynomial multiply"]
33849#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_p8)"]
33850#[inline]
33851#[target_feature(enable = "neon")]
33852#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33853#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
33854#[cfg_attr(
33855    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33856    assert_instr(pmul)
33857)]
33858#[cfg_attr(
33859    not(target_arch = "arm"),
33860    stable(feature = "neon_intrinsics", since = "1.59.0")
33861)]
33862#[cfg_attr(
33863    target_arch = "arm",
33864    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33865)]
33866pub fn vmulq_p8(a: poly8x16_t, b: poly8x16_t) -> poly8x16_t {
33867    unsafe extern "unadjusted" {
33868        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmulp.v16i8")]
33869        #[cfg_attr(
33870            any(target_arch = "aarch64", target_arch = "arm64ec"),
33871            link_name = "llvm.aarch64.neon.pmul.v16i8"
33872        )]
33873        fn _vmulq_p8(a: poly8x16_t, b: poly8x16_t) -> poly8x16_t;
33874    }
33875    unsafe { _vmulq_p8(a, b) }
33876}
33877#[doc = "Multiply"]
33878#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_s16)"]
33879#[inline]
33880#[target_feature(enable = "neon")]
33881#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33882#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.i16"))]
33883#[cfg_attr(
33884    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33885    assert_instr(mul)
33886)]
33887#[cfg_attr(
33888    not(target_arch = "arm"),
33889    stable(feature = "neon_intrinsics", since = "1.59.0")
33890)]
33891#[cfg_attr(
33892    target_arch = "arm",
33893    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33894)]
33895pub fn vmul_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
33896    unsafe { simd_mul(a, b) }
33897}
33898#[doc = "Multiply"]
33899#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_s16)"]
33900#[inline]
33901#[target_feature(enable = "neon")]
33902#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33903#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.i16"))]
33904#[cfg_attr(
33905    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33906    assert_instr(mul)
33907)]
33908#[cfg_attr(
33909    not(target_arch = "arm"),
33910    stable(feature = "neon_intrinsics", since = "1.59.0")
33911)]
33912#[cfg_attr(
33913    target_arch = "arm",
33914    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33915)]
33916pub fn vmulq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
33917    unsafe { simd_mul(a, b) }
33918}
33919#[doc = "Multiply"]
33920#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_u16)"]
33921#[inline]
33922#[target_feature(enable = "neon")]
33923#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33924#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.i16"))]
33925#[cfg_attr(
33926    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33927    assert_instr(mul)
33928)]
33929#[cfg_attr(
33930    not(target_arch = "arm"),
33931    stable(feature = "neon_intrinsics", since = "1.59.0")
33932)]
33933#[cfg_attr(
33934    target_arch = "arm",
33935    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33936)]
33937pub fn vmul_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
33938    unsafe { simd_mul(a, b) }
33939}
33940#[doc = "Multiply"]
33941#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_u16)"]
33942#[inline]
33943#[target_feature(enable = "neon")]
33944#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33945#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.i16"))]
33946#[cfg_attr(
33947    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33948    assert_instr(mul)
33949)]
33950#[cfg_attr(
33951    not(target_arch = "arm"),
33952    stable(feature = "neon_intrinsics", since = "1.59.0")
33953)]
33954#[cfg_attr(
33955    target_arch = "arm",
33956    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33957)]
33958pub fn vmulq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
33959    unsafe { simd_mul(a, b) }
33960}
33961#[doc = "Multiply"]
33962#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_s32)"]
33963#[inline]
33964#[target_feature(enable = "neon")]
33965#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33966#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.i32"))]
33967#[cfg_attr(
33968    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33969    assert_instr(mul)
33970)]
33971#[cfg_attr(
33972    not(target_arch = "arm"),
33973    stable(feature = "neon_intrinsics", since = "1.59.0")
33974)]
33975#[cfg_attr(
33976    target_arch = "arm",
33977    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33978)]
33979pub fn vmul_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
33980    unsafe { simd_mul(a, b) }
33981}
33982#[doc = "Multiply"]
33983#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_s32)"]
33984#[inline]
33985#[target_feature(enable = "neon")]
33986#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33987#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.i32"))]
33988#[cfg_attr(
33989    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33990    assert_instr(mul)
33991)]
33992#[cfg_attr(
33993    not(target_arch = "arm"),
33994    stable(feature = "neon_intrinsics", since = "1.59.0")
33995)]
33996#[cfg_attr(
33997    target_arch = "arm",
33998    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33999)]
34000pub fn vmulq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
34001    unsafe { simd_mul(a, b) }
34002}
34003#[doc = "Multiply"]
34004#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_u32)"]
34005#[inline]
34006#[target_feature(enable = "neon")]
34007#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34008#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.i32"))]
34009#[cfg_attr(
34010    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34011    assert_instr(mul)
34012)]
34013#[cfg_attr(
34014    not(target_arch = "arm"),
34015    stable(feature = "neon_intrinsics", since = "1.59.0")
34016)]
34017#[cfg_attr(
34018    target_arch = "arm",
34019    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34020)]
34021pub fn vmul_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
34022    unsafe { simd_mul(a, b) }
34023}
34024#[doc = "Multiply"]
34025#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_u32)"]
34026#[inline]
34027#[target_feature(enable = "neon")]
34028#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34029#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.i32"))]
34030#[cfg_attr(
34031    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34032    assert_instr(mul)
34033)]
34034#[cfg_attr(
34035    not(target_arch = "arm"),
34036    stable(feature = "neon_intrinsics", since = "1.59.0")
34037)]
34038#[cfg_attr(
34039    target_arch = "arm",
34040    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34041)]
34042pub fn vmulq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
34043    unsafe { simd_mul(a, b) }
34044}
34045#[doc = "Multiply"]
34046#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_s8)"]
34047#[inline]
34048#[target_feature(enable = "neon")]
34049#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34050#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.i8"))]
34051#[cfg_attr(
34052    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34053    assert_instr(mul)
34054)]
34055#[cfg_attr(
34056    not(target_arch = "arm"),
34057    stable(feature = "neon_intrinsics", since = "1.59.0")
34058)]
34059#[cfg_attr(
34060    target_arch = "arm",
34061    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34062)]
34063pub fn vmul_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
34064    unsafe { simd_mul(a, b) }
34065}
34066#[doc = "Multiply"]
34067#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_s8)"]
34068#[inline]
34069#[target_feature(enable = "neon")]
34070#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34071#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.i8"))]
34072#[cfg_attr(
34073    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34074    assert_instr(mul)
34075)]
34076#[cfg_attr(
34077    not(target_arch = "arm"),
34078    stable(feature = "neon_intrinsics", since = "1.59.0")
34079)]
34080#[cfg_attr(
34081    target_arch = "arm",
34082    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34083)]
34084pub fn vmulq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
34085    unsafe { simd_mul(a, b) }
34086}
34087#[doc = "Multiply"]
34088#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_u8)"]
34089#[inline]
34090#[target_feature(enable = "neon")]
34091#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34092#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.i8"))]
34093#[cfg_attr(
34094    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34095    assert_instr(mul)
34096)]
34097#[cfg_attr(
34098    not(target_arch = "arm"),
34099    stable(feature = "neon_intrinsics", since = "1.59.0")
34100)]
34101#[cfg_attr(
34102    target_arch = "arm",
34103    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34104)]
34105pub fn vmul_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
34106    unsafe { simd_mul(a, b) }
34107}
34108#[doc = "Multiply"]
34109#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_u8)"]
34110#[inline]
34111#[target_feature(enable = "neon")]
34112#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34113#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.i8"))]
34114#[cfg_attr(
34115    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34116    assert_instr(mul)
34117)]
34118#[cfg_attr(
34119    not(target_arch = "arm"),
34120    stable(feature = "neon_intrinsics", since = "1.59.0")
34121)]
34122#[cfg_attr(
34123    target_arch = "arm",
34124    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34125)]
34126pub fn vmulq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
34127    unsafe { simd_mul(a, b) }
34128}
34129#[doc = "Vector long multiply by scalar"]
34130#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_lane_s16)"]
34131#[inline]
34132#[target_feature(enable = "neon")]
34133#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34134#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmull, LANE = 1))]
34135#[cfg_attr(
34136    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34137    assert_instr(smull, LANE = 1)
34138)]
34139#[rustc_legacy_const_generics(2)]
34140#[cfg_attr(
34141    not(target_arch = "arm"),
34142    stable(feature = "neon_intrinsics", since = "1.59.0")
34143)]
34144#[cfg_attr(
34145    target_arch = "arm",
34146    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34147)]
34148pub fn vmull_lane_s16<const LANE: i32>(a: int16x4_t, b: int16x4_t) -> int32x4_t {
34149    static_assert_uimm_bits!(LANE, 2);
34150    unsafe {
34151        vmull_s16(
34152            a,
34153            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
34154        )
34155    }
34156}
34157#[doc = "Vector long multiply by scalar"]
34158#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_laneq_s16)"]
34159#[inline]
34160#[target_feature(enable = "neon")]
34161#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34162#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmull, LANE = 1))]
34163#[cfg_attr(
34164    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34165    assert_instr(smull, LANE = 1)
34166)]
34167#[rustc_legacy_const_generics(2)]
34168#[cfg_attr(
34169    not(target_arch = "arm"),
34170    stable(feature = "neon_intrinsics", since = "1.59.0")
34171)]
34172#[cfg_attr(
34173    target_arch = "arm",
34174    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34175)]
34176pub fn vmull_laneq_s16<const LANE: i32>(a: int16x4_t, b: int16x8_t) -> int32x4_t {
34177    static_assert_uimm_bits!(LANE, 3);
34178    unsafe {
34179        vmull_s16(
34180            a,
34181            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
34182        )
34183    }
34184}
34185#[doc = "Vector long multiply by scalar"]
34186#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_lane_s32)"]
34187#[inline]
34188#[target_feature(enable = "neon")]
34189#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34190#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmull, LANE = 1))]
34191#[cfg_attr(
34192    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34193    assert_instr(smull, LANE = 1)
34194)]
34195#[rustc_legacy_const_generics(2)]
34196#[cfg_attr(
34197    not(target_arch = "arm"),
34198    stable(feature = "neon_intrinsics", since = "1.59.0")
34199)]
34200#[cfg_attr(
34201    target_arch = "arm",
34202    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34203)]
34204pub fn vmull_lane_s32<const LANE: i32>(a: int32x2_t, b: int32x2_t) -> int64x2_t {
34205    static_assert_uimm_bits!(LANE, 1);
34206    unsafe { vmull_s32(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32])) }
34207}
34208#[doc = "Vector long multiply by scalar"]
34209#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_laneq_s32)"]
34210#[inline]
34211#[target_feature(enable = "neon")]
34212#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34213#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmull, LANE = 1))]
34214#[cfg_attr(
34215    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34216    assert_instr(smull, LANE = 1)
34217)]
34218#[rustc_legacy_const_generics(2)]
34219#[cfg_attr(
34220    not(target_arch = "arm"),
34221    stable(feature = "neon_intrinsics", since = "1.59.0")
34222)]
34223#[cfg_attr(
34224    target_arch = "arm",
34225    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34226)]
34227pub fn vmull_laneq_s32<const LANE: i32>(a: int32x2_t, b: int32x4_t) -> int64x2_t {
34228    static_assert_uimm_bits!(LANE, 2);
34229    unsafe { vmull_s32(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32])) }
34230}
34231#[doc = "Vector long multiply by scalar"]
34232#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_lane_u16)"]
34233#[inline]
34234#[target_feature(enable = "neon")]
34235#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34236#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmull, LANE = 1))]
34237#[cfg_attr(
34238    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34239    assert_instr(umull, LANE = 1)
34240)]
34241#[rustc_legacy_const_generics(2)]
34242#[cfg_attr(
34243    not(target_arch = "arm"),
34244    stable(feature = "neon_intrinsics", since = "1.59.0")
34245)]
34246#[cfg_attr(
34247    target_arch = "arm",
34248    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34249)]
34250pub fn vmull_lane_u16<const LANE: i32>(a: uint16x4_t, b: uint16x4_t) -> uint32x4_t {
34251    static_assert_uimm_bits!(LANE, 2);
34252    unsafe {
34253        vmull_u16(
34254            a,
34255            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
34256        )
34257    }
34258}
34259#[doc = "Vector long multiply by scalar"]
34260#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_laneq_u16)"]
34261#[inline]
34262#[target_feature(enable = "neon")]
34263#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34264#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmull, LANE = 1))]
34265#[cfg_attr(
34266    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34267    assert_instr(umull, LANE = 1)
34268)]
34269#[rustc_legacy_const_generics(2)]
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 vmull_laneq_u16<const LANE: i32>(a: uint16x4_t, b: uint16x8_t) -> uint32x4_t {
34279    static_assert_uimm_bits!(LANE, 3);
34280    unsafe {
34281        vmull_u16(
34282            a,
34283            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
34284        )
34285    }
34286}
34287#[doc = "Vector long multiply by scalar"]
34288#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_lane_u32)"]
34289#[inline]
34290#[target_feature(enable = "neon")]
34291#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34292#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmull, LANE = 1))]
34293#[cfg_attr(
34294    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34295    assert_instr(umull, LANE = 1)
34296)]
34297#[rustc_legacy_const_generics(2)]
34298#[cfg_attr(
34299    not(target_arch = "arm"),
34300    stable(feature = "neon_intrinsics", since = "1.59.0")
34301)]
34302#[cfg_attr(
34303    target_arch = "arm",
34304    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34305)]
34306pub fn vmull_lane_u32<const LANE: i32>(a: uint32x2_t, b: uint32x2_t) -> uint64x2_t {
34307    static_assert_uimm_bits!(LANE, 1);
34308    unsafe { vmull_u32(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32])) }
34309}
34310#[doc = "Vector long multiply by scalar"]
34311#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_laneq_u32)"]
34312#[inline]
34313#[target_feature(enable = "neon")]
34314#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34315#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmull, LANE = 1))]
34316#[cfg_attr(
34317    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34318    assert_instr(umull, LANE = 1)
34319)]
34320#[rustc_legacy_const_generics(2)]
34321#[cfg_attr(
34322    not(target_arch = "arm"),
34323    stable(feature = "neon_intrinsics", since = "1.59.0")
34324)]
34325#[cfg_attr(
34326    target_arch = "arm",
34327    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34328)]
34329pub fn vmull_laneq_u32<const LANE: i32>(a: uint32x2_t, b: uint32x4_t) -> uint64x2_t {
34330    static_assert_uimm_bits!(LANE, 2);
34331    unsafe { vmull_u32(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32])) }
34332}
34333#[doc = "Vector long multiply with scalar"]
34334#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_n_s16)"]
34335#[inline]
34336#[target_feature(enable = "neon")]
34337#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34338#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmull))]
34339#[cfg_attr(
34340    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34341    assert_instr(smull)
34342)]
34343#[cfg_attr(
34344    not(target_arch = "arm"),
34345    stable(feature = "neon_intrinsics", since = "1.59.0")
34346)]
34347#[cfg_attr(
34348    target_arch = "arm",
34349    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34350)]
34351pub fn vmull_n_s16(a: int16x4_t, b: i16) -> int32x4_t {
34352    vmull_s16(a, vdup_n_s16(b))
34353}
34354#[doc = "Vector long multiply with scalar"]
34355#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_n_s32)"]
34356#[inline]
34357#[target_feature(enable = "neon")]
34358#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34359#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmull))]
34360#[cfg_attr(
34361    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34362    assert_instr(smull)
34363)]
34364#[cfg_attr(
34365    not(target_arch = "arm"),
34366    stable(feature = "neon_intrinsics", since = "1.59.0")
34367)]
34368#[cfg_attr(
34369    target_arch = "arm",
34370    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34371)]
34372pub fn vmull_n_s32(a: int32x2_t, b: i32) -> int64x2_t {
34373    vmull_s32(a, vdup_n_s32(b))
34374}
34375#[doc = "Vector long multiply with scalar"]
34376#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_n_u16)"]
34377#[inline]
34378#[target_feature(enable = "neon")]
34379#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34380#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmull))]
34381#[cfg_attr(
34382    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34383    assert_instr(umull)
34384)]
34385#[cfg_attr(
34386    not(target_arch = "arm"),
34387    stable(feature = "neon_intrinsics", since = "1.59.0")
34388)]
34389#[cfg_attr(
34390    target_arch = "arm",
34391    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34392)]
34393pub fn vmull_n_u16(a: uint16x4_t, b: u16) -> uint32x4_t {
34394    vmull_u16(a, vdup_n_u16(b))
34395}
34396#[doc = "Vector long multiply with scalar"]
34397#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_n_u32)"]
34398#[inline]
34399#[target_feature(enable = "neon")]
34400#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34401#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmull))]
34402#[cfg_attr(
34403    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34404    assert_instr(umull)
34405)]
34406#[cfg_attr(
34407    not(target_arch = "arm"),
34408    stable(feature = "neon_intrinsics", since = "1.59.0")
34409)]
34410#[cfg_attr(
34411    target_arch = "arm",
34412    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34413)]
34414pub fn vmull_n_u32(a: uint32x2_t, b: u32) -> uint64x2_t {
34415    vmull_u32(a, vdup_n_u32(b))
34416}
34417#[doc = "Polynomial multiply long"]
34418#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_p8)"]
34419#[inline]
34420#[target_feature(enable = "neon")]
34421#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34422#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmull.p8"))]
34423#[cfg_attr(
34424    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34425    assert_instr(pmull)
34426)]
34427#[cfg_attr(
34428    not(target_arch = "arm"),
34429    stable(feature = "neon_intrinsics", since = "1.59.0")
34430)]
34431#[cfg_attr(
34432    target_arch = "arm",
34433    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34434)]
34435pub fn vmull_p8(a: poly8x8_t, b: poly8x8_t) -> poly16x8_t {
34436    unsafe extern "unadjusted" {
34437        #[cfg_attr(
34438            any(target_arch = "aarch64", target_arch = "arm64ec"),
34439            link_name = "llvm.aarch64.neon.pmull.v8i16"
34440        )]
34441        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmullp.v8i16")]
34442        fn _vmull_p8(a: poly8x8_t, b: poly8x8_t) -> poly16x8_t;
34443    }
34444    unsafe { _vmull_p8(a, b) }
34445}
34446#[doc = "Signed multiply long"]
34447#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_s16)"]
34448#[inline]
34449#[target_feature(enable = "neon")]
34450#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34451#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmull.s16"))]
34452#[cfg_attr(
34453    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34454    assert_instr(smull)
34455)]
34456#[cfg_attr(
34457    not(target_arch = "arm"),
34458    stable(feature = "neon_intrinsics", since = "1.59.0")
34459)]
34460#[cfg_attr(
34461    target_arch = "arm",
34462    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34463)]
34464pub fn vmull_s16(a: int16x4_t, b: int16x4_t) -> int32x4_t {
34465    unsafe extern "unadjusted" {
34466        #[cfg_attr(
34467            any(target_arch = "aarch64", target_arch = "arm64ec"),
34468            link_name = "llvm.aarch64.neon.smull.v4i32"
34469        )]
34470        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmulls.v4i32")]
34471        fn _vmull_s16(a: int16x4_t, b: int16x4_t) -> int32x4_t;
34472    }
34473    unsafe { _vmull_s16(a, b) }
34474}
34475#[doc = "Signed multiply long"]
34476#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_s32)"]
34477#[inline]
34478#[target_feature(enable = "neon")]
34479#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34480#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmull.s32"))]
34481#[cfg_attr(
34482    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34483    assert_instr(smull)
34484)]
34485#[cfg_attr(
34486    not(target_arch = "arm"),
34487    stable(feature = "neon_intrinsics", since = "1.59.0")
34488)]
34489#[cfg_attr(
34490    target_arch = "arm",
34491    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34492)]
34493pub fn vmull_s32(a: int32x2_t, b: int32x2_t) -> int64x2_t {
34494    unsafe extern "unadjusted" {
34495        #[cfg_attr(
34496            any(target_arch = "aarch64", target_arch = "arm64ec"),
34497            link_name = "llvm.aarch64.neon.smull.v2i64"
34498        )]
34499        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmulls.v2i64")]
34500        fn _vmull_s32(a: int32x2_t, b: int32x2_t) -> int64x2_t;
34501    }
34502    unsafe { _vmull_s32(a, b) }
34503}
34504#[doc = "Signed multiply long"]
34505#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_s8)"]
34506#[inline]
34507#[target_feature(enable = "neon")]
34508#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34509#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmull.s8"))]
34510#[cfg_attr(
34511    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34512    assert_instr(smull)
34513)]
34514#[cfg_attr(
34515    not(target_arch = "arm"),
34516    stable(feature = "neon_intrinsics", since = "1.59.0")
34517)]
34518#[cfg_attr(
34519    target_arch = "arm",
34520    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34521)]
34522pub fn vmull_s8(a: int8x8_t, b: int8x8_t) -> int16x8_t {
34523    unsafe extern "unadjusted" {
34524        #[cfg_attr(
34525            any(target_arch = "aarch64", target_arch = "arm64ec"),
34526            link_name = "llvm.aarch64.neon.smull.v8i16"
34527        )]
34528        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmulls.v8i16")]
34529        fn _vmull_s8(a: int8x8_t, b: int8x8_t) -> int16x8_t;
34530    }
34531    unsafe { _vmull_s8(a, b) }
34532}
34533#[doc = "Unsigned multiply long"]
34534#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_u8)"]
34535#[inline]
34536#[target_feature(enable = "neon")]
34537#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34538#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmull.u8"))]
34539#[cfg_attr(
34540    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34541    assert_instr(umull)
34542)]
34543#[cfg_attr(
34544    not(target_arch = "arm"),
34545    stable(feature = "neon_intrinsics", since = "1.59.0")
34546)]
34547#[cfg_attr(
34548    target_arch = "arm",
34549    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34550)]
34551pub fn vmull_u8(a: uint8x8_t, b: uint8x8_t) -> uint16x8_t {
34552    unsafe extern "unadjusted" {
34553        #[cfg_attr(
34554            any(target_arch = "aarch64", target_arch = "arm64ec"),
34555            link_name = "llvm.aarch64.neon.umull.v8i16"
34556        )]
34557        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmullu.v8i16")]
34558        fn _vmull_u8(a: uint8x8_t, b: uint8x8_t) -> uint16x8_t;
34559    }
34560    unsafe { _vmull_u8(a, b) }
34561}
34562#[doc = "Unsigned multiply long"]
34563#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_u16)"]
34564#[inline]
34565#[target_feature(enable = "neon")]
34566#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34567#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmull.u16"))]
34568#[cfg_attr(
34569    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34570    assert_instr(umull)
34571)]
34572#[cfg_attr(
34573    not(target_arch = "arm"),
34574    stable(feature = "neon_intrinsics", since = "1.59.0")
34575)]
34576#[cfg_attr(
34577    target_arch = "arm",
34578    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34579)]
34580pub fn vmull_u16(a: uint16x4_t, b: uint16x4_t) -> uint32x4_t {
34581    unsafe extern "unadjusted" {
34582        #[cfg_attr(
34583            any(target_arch = "aarch64", target_arch = "arm64ec"),
34584            link_name = "llvm.aarch64.neon.umull.v4i32"
34585        )]
34586        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmullu.v4i32")]
34587        fn _vmull_u16(a: uint16x4_t, b: uint16x4_t) -> uint32x4_t;
34588    }
34589    unsafe { _vmull_u16(a, b) }
34590}
34591#[doc = "Unsigned multiply long"]
34592#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_u32)"]
34593#[inline]
34594#[target_feature(enable = "neon")]
34595#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34596#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmull.u32"))]
34597#[cfg_attr(
34598    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34599    assert_instr(umull)
34600)]
34601#[cfg_attr(
34602    not(target_arch = "arm"),
34603    stable(feature = "neon_intrinsics", since = "1.59.0")
34604)]
34605#[cfg_attr(
34606    target_arch = "arm",
34607    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34608)]
34609pub fn vmull_u32(a: uint32x2_t, b: uint32x2_t) -> uint64x2_t {
34610    unsafe extern "unadjusted" {
34611        #[cfg_attr(
34612            any(target_arch = "aarch64", target_arch = "arm64ec"),
34613            link_name = "llvm.aarch64.neon.umull.v2i64"
34614        )]
34615        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmullu.v2i64")]
34616        fn _vmull_u32(a: uint32x2_t, b: uint32x2_t) -> uint64x2_t;
34617    }
34618    unsafe { _vmull_u32(a, b) }
34619}
34620#[doc = "Vector bitwise not."]
34621#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmvn_p8)"]
34622#[inline]
34623#[target_feature(enable = "neon")]
34624#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34625#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmvn))]
34626#[cfg_attr(
34627    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34628    assert_instr(mvn)
34629)]
34630#[cfg_attr(
34631    not(target_arch = "arm"),
34632    stable(feature = "neon_intrinsics", since = "1.59.0")
34633)]
34634#[cfg_attr(
34635    target_arch = "arm",
34636    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34637)]
34638pub fn vmvn_p8(a: poly8x8_t) -> poly8x8_t {
34639    let b = poly8x8_t::splat(255);
34640    unsafe { simd_xor(a, b) }
34641}
34642#[doc = "Vector bitwise not."]
34643#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmvn_s16)"]
34644#[inline]
34645#[target_feature(enable = "neon")]
34646#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34647#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmvn))]
34648#[cfg_attr(
34649    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34650    assert_instr(mvn)
34651)]
34652#[cfg_attr(
34653    not(target_arch = "arm"),
34654    stable(feature = "neon_intrinsics", since = "1.59.0")
34655)]
34656#[cfg_attr(
34657    target_arch = "arm",
34658    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34659)]
34660pub fn vmvn_s16(a: int16x4_t) -> int16x4_t {
34661    let b = int16x4_t::splat(-1);
34662    unsafe { simd_xor(a, b) }
34663}
34664#[doc = "Vector bitwise not."]
34665#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmvn_s32)"]
34666#[inline]
34667#[target_feature(enable = "neon")]
34668#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34669#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmvn))]
34670#[cfg_attr(
34671    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34672    assert_instr(mvn)
34673)]
34674#[cfg_attr(
34675    not(target_arch = "arm"),
34676    stable(feature = "neon_intrinsics", since = "1.59.0")
34677)]
34678#[cfg_attr(
34679    target_arch = "arm",
34680    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34681)]
34682pub fn vmvn_s32(a: int32x2_t) -> int32x2_t {
34683    let b = int32x2_t::splat(-1);
34684    unsafe { simd_xor(a, b) }
34685}
34686#[doc = "Vector bitwise not."]
34687#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmvn_s8)"]
34688#[inline]
34689#[target_feature(enable = "neon")]
34690#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34691#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmvn))]
34692#[cfg_attr(
34693    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34694    assert_instr(mvn)
34695)]
34696#[cfg_attr(
34697    not(target_arch = "arm"),
34698    stable(feature = "neon_intrinsics", since = "1.59.0")
34699)]
34700#[cfg_attr(
34701    target_arch = "arm",
34702    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34703)]
34704pub fn vmvn_s8(a: int8x8_t) -> int8x8_t {
34705    let b = int8x8_t::splat(-1);
34706    unsafe { simd_xor(a, b) }
34707}
34708#[doc = "Vector bitwise not."]
34709#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmvn_u16)"]
34710#[inline]
34711#[target_feature(enable = "neon")]
34712#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34713#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmvn))]
34714#[cfg_attr(
34715    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34716    assert_instr(mvn)
34717)]
34718#[cfg_attr(
34719    not(target_arch = "arm"),
34720    stable(feature = "neon_intrinsics", since = "1.59.0")
34721)]
34722#[cfg_attr(
34723    target_arch = "arm",
34724    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34725)]
34726pub fn vmvn_u16(a: uint16x4_t) -> uint16x4_t {
34727    let b = uint16x4_t::splat(65_535);
34728    unsafe { simd_xor(a, b) }
34729}
34730#[doc = "Vector bitwise not."]
34731#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmvn_u32)"]
34732#[inline]
34733#[target_feature(enable = "neon")]
34734#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34735#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmvn))]
34736#[cfg_attr(
34737    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34738    assert_instr(mvn)
34739)]
34740#[cfg_attr(
34741    not(target_arch = "arm"),
34742    stable(feature = "neon_intrinsics", since = "1.59.0")
34743)]
34744#[cfg_attr(
34745    target_arch = "arm",
34746    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34747)]
34748pub fn vmvn_u32(a: uint32x2_t) -> uint32x2_t {
34749    let b = uint32x2_t::splat(4_294_967_295);
34750    unsafe { simd_xor(a, b) }
34751}
34752#[doc = "Vector bitwise not."]
34753#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmvn_u8)"]
34754#[inline]
34755#[target_feature(enable = "neon")]
34756#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34757#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmvn))]
34758#[cfg_attr(
34759    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34760    assert_instr(mvn)
34761)]
34762#[cfg_attr(
34763    not(target_arch = "arm"),
34764    stable(feature = "neon_intrinsics", since = "1.59.0")
34765)]
34766#[cfg_attr(
34767    target_arch = "arm",
34768    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34769)]
34770pub fn vmvn_u8(a: uint8x8_t) -> uint8x8_t {
34771    let b = uint8x8_t::splat(255);
34772    unsafe { simd_xor(a, b) }
34773}
34774#[doc = "Vector bitwise not."]
34775#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmvnq_p8)"]
34776#[inline]
34777#[target_feature(enable = "neon")]
34778#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34779#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmvn))]
34780#[cfg_attr(
34781    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34782    assert_instr(mvn)
34783)]
34784#[cfg_attr(
34785    not(target_arch = "arm"),
34786    stable(feature = "neon_intrinsics", since = "1.59.0")
34787)]
34788#[cfg_attr(
34789    target_arch = "arm",
34790    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34791)]
34792pub fn vmvnq_p8(a: poly8x16_t) -> poly8x16_t {
34793    let b = poly8x16_t::splat(255);
34794    unsafe { simd_xor(a, b) }
34795}
34796#[doc = "Vector bitwise not."]
34797#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmvnq_s16)"]
34798#[inline]
34799#[target_feature(enable = "neon")]
34800#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34801#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmvn))]
34802#[cfg_attr(
34803    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34804    assert_instr(mvn)
34805)]
34806#[cfg_attr(
34807    not(target_arch = "arm"),
34808    stable(feature = "neon_intrinsics", since = "1.59.0")
34809)]
34810#[cfg_attr(
34811    target_arch = "arm",
34812    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34813)]
34814pub fn vmvnq_s16(a: int16x8_t) -> int16x8_t {
34815    let b = int16x8_t::splat(-1);
34816    unsafe { simd_xor(a, b) }
34817}
34818#[doc = "Vector bitwise not."]
34819#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmvnq_s32)"]
34820#[inline]
34821#[target_feature(enable = "neon")]
34822#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34823#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmvn))]
34824#[cfg_attr(
34825    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34826    assert_instr(mvn)
34827)]
34828#[cfg_attr(
34829    not(target_arch = "arm"),
34830    stable(feature = "neon_intrinsics", since = "1.59.0")
34831)]
34832#[cfg_attr(
34833    target_arch = "arm",
34834    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34835)]
34836pub fn vmvnq_s32(a: int32x4_t) -> int32x4_t {
34837    let b = int32x4_t::splat(-1);
34838    unsafe { simd_xor(a, b) }
34839}
34840#[doc = "Vector bitwise not."]
34841#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmvnq_s8)"]
34842#[inline]
34843#[target_feature(enable = "neon")]
34844#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34845#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmvn))]
34846#[cfg_attr(
34847    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34848    assert_instr(mvn)
34849)]
34850#[cfg_attr(
34851    not(target_arch = "arm"),
34852    stable(feature = "neon_intrinsics", since = "1.59.0")
34853)]
34854#[cfg_attr(
34855    target_arch = "arm",
34856    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34857)]
34858pub fn vmvnq_s8(a: int8x16_t) -> int8x16_t {
34859    let b = int8x16_t::splat(-1);
34860    unsafe { simd_xor(a, b) }
34861}
34862#[doc = "Vector bitwise not."]
34863#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmvnq_u16)"]
34864#[inline]
34865#[target_feature(enable = "neon")]
34866#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34867#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmvn))]
34868#[cfg_attr(
34869    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34870    assert_instr(mvn)
34871)]
34872#[cfg_attr(
34873    not(target_arch = "arm"),
34874    stable(feature = "neon_intrinsics", since = "1.59.0")
34875)]
34876#[cfg_attr(
34877    target_arch = "arm",
34878    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34879)]
34880pub fn vmvnq_u16(a: uint16x8_t) -> uint16x8_t {
34881    let b = uint16x8_t::splat(65_535);
34882    unsafe { simd_xor(a, b) }
34883}
34884#[doc = "Vector bitwise not."]
34885#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmvnq_u32)"]
34886#[inline]
34887#[target_feature(enable = "neon")]
34888#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34889#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmvn))]
34890#[cfg_attr(
34891    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34892    assert_instr(mvn)
34893)]
34894#[cfg_attr(
34895    not(target_arch = "arm"),
34896    stable(feature = "neon_intrinsics", since = "1.59.0")
34897)]
34898#[cfg_attr(
34899    target_arch = "arm",
34900    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34901)]
34902pub fn vmvnq_u32(a: uint32x4_t) -> uint32x4_t {
34903    let b = uint32x4_t::splat(4_294_967_295);
34904    unsafe { simd_xor(a, b) }
34905}
34906#[doc = "Vector bitwise not."]
34907#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmvnq_u8)"]
34908#[inline]
34909#[target_feature(enable = "neon")]
34910#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34911#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmvn))]
34912#[cfg_attr(
34913    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34914    assert_instr(mvn)
34915)]
34916#[cfg_attr(
34917    not(target_arch = "arm"),
34918    stable(feature = "neon_intrinsics", since = "1.59.0")
34919)]
34920#[cfg_attr(
34921    target_arch = "arm",
34922    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34923)]
34924pub fn vmvnq_u8(a: uint8x16_t) -> uint8x16_t {
34925    let b = uint8x16_t::splat(255);
34926    unsafe { simd_xor(a, b) }
34927}
34928#[doc = "Negate"]
34929#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vneg_f16)"]
34930#[inline]
34931#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
34932#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vneg.f16"))]
34933#[cfg_attr(
34934    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34935    assert_instr(fneg)
34936)]
34937#[target_feature(enable = "neon,fp16")]
34938#[cfg_attr(
34939    not(target_arch = "arm"),
34940    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
34941)]
34942#[cfg_attr(
34943    target_arch = "arm",
34944    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34945)]
34946#[cfg(not(target_arch = "arm64ec"))]
34947pub fn vneg_f16(a: float16x4_t) -> float16x4_t {
34948    unsafe { simd_neg(a) }
34949}
34950#[doc = "Negate"]
34951#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vnegq_f16)"]
34952#[inline]
34953#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
34954#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vneg.f16"))]
34955#[cfg_attr(
34956    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34957    assert_instr(fneg)
34958)]
34959#[target_feature(enable = "neon,fp16")]
34960#[cfg_attr(
34961    not(target_arch = "arm"),
34962    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
34963)]
34964#[cfg_attr(
34965    target_arch = "arm",
34966    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34967)]
34968#[cfg(not(target_arch = "arm64ec"))]
34969pub fn vnegq_f16(a: float16x8_t) -> float16x8_t {
34970    unsafe { simd_neg(a) }
34971}
34972#[doc = "Negate"]
34973#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vneg_f32)"]
34974#[inline]
34975#[target_feature(enable = "neon")]
34976#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34977#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vneg.f32"))]
34978#[cfg_attr(
34979    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34980    assert_instr(fneg)
34981)]
34982#[cfg_attr(
34983    not(target_arch = "arm"),
34984    stable(feature = "neon_intrinsics", since = "1.59.0")
34985)]
34986#[cfg_attr(
34987    target_arch = "arm",
34988    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34989)]
34990pub fn vneg_f32(a: float32x2_t) -> float32x2_t {
34991    unsafe { simd_neg(a) }
34992}
34993#[doc = "Negate"]
34994#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vnegq_f32)"]
34995#[inline]
34996#[target_feature(enable = "neon")]
34997#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34998#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vneg.f32"))]
34999#[cfg_attr(
35000    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35001    assert_instr(fneg)
35002)]
35003#[cfg_attr(
35004    not(target_arch = "arm"),
35005    stable(feature = "neon_intrinsics", since = "1.59.0")
35006)]
35007#[cfg_attr(
35008    target_arch = "arm",
35009    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35010)]
35011pub fn vnegq_f32(a: float32x4_t) -> float32x4_t {
35012    unsafe { simd_neg(a) }
35013}
35014#[doc = "Negate"]
35015#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vneg_s8)"]
35016#[inline]
35017#[target_feature(enable = "neon")]
35018#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35019#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vneg.s8"))]
35020#[cfg_attr(
35021    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35022    assert_instr(neg)
35023)]
35024#[cfg_attr(
35025    not(target_arch = "arm"),
35026    stable(feature = "neon_intrinsics", since = "1.59.0")
35027)]
35028#[cfg_attr(
35029    target_arch = "arm",
35030    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35031)]
35032pub fn vneg_s8(a: int8x8_t) -> int8x8_t {
35033    unsafe { simd_neg(a) }
35034}
35035#[doc = "Negate"]
35036#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vnegq_s8)"]
35037#[inline]
35038#[target_feature(enable = "neon")]
35039#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35040#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vneg.s8"))]
35041#[cfg_attr(
35042    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35043    assert_instr(neg)
35044)]
35045#[cfg_attr(
35046    not(target_arch = "arm"),
35047    stable(feature = "neon_intrinsics", since = "1.59.0")
35048)]
35049#[cfg_attr(
35050    target_arch = "arm",
35051    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35052)]
35053pub fn vnegq_s8(a: int8x16_t) -> int8x16_t {
35054    unsafe { simd_neg(a) }
35055}
35056#[doc = "Negate"]
35057#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vneg_s16)"]
35058#[inline]
35059#[target_feature(enable = "neon")]
35060#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35061#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vneg.s16"))]
35062#[cfg_attr(
35063    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35064    assert_instr(neg)
35065)]
35066#[cfg_attr(
35067    not(target_arch = "arm"),
35068    stable(feature = "neon_intrinsics", since = "1.59.0")
35069)]
35070#[cfg_attr(
35071    target_arch = "arm",
35072    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35073)]
35074pub fn vneg_s16(a: int16x4_t) -> int16x4_t {
35075    unsafe { simd_neg(a) }
35076}
35077#[doc = "Negate"]
35078#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vnegq_s16)"]
35079#[inline]
35080#[target_feature(enable = "neon")]
35081#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35082#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vneg.s16"))]
35083#[cfg_attr(
35084    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35085    assert_instr(neg)
35086)]
35087#[cfg_attr(
35088    not(target_arch = "arm"),
35089    stable(feature = "neon_intrinsics", since = "1.59.0")
35090)]
35091#[cfg_attr(
35092    target_arch = "arm",
35093    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35094)]
35095pub fn vnegq_s16(a: int16x8_t) -> int16x8_t {
35096    unsafe { simd_neg(a) }
35097}
35098#[doc = "Negate"]
35099#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vneg_s32)"]
35100#[inline]
35101#[target_feature(enable = "neon")]
35102#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35103#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vneg.s32"))]
35104#[cfg_attr(
35105    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35106    assert_instr(neg)
35107)]
35108#[cfg_attr(
35109    not(target_arch = "arm"),
35110    stable(feature = "neon_intrinsics", since = "1.59.0")
35111)]
35112#[cfg_attr(
35113    target_arch = "arm",
35114    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35115)]
35116pub fn vneg_s32(a: int32x2_t) -> int32x2_t {
35117    unsafe { simd_neg(a) }
35118}
35119#[doc = "Negate"]
35120#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vnegq_s32)"]
35121#[inline]
35122#[target_feature(enable = "neon")]
35123#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35124#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vneg.s32"))]
35125#[cfg_attr(
35126    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35127    assert_instr(neg)
35128)]
35129#[cfg_attr(
35130    not(target_arch = "arm"),
35131    stable(feature = "neon_intrinsics", since = "1.59.0")
35132)]
35133#[cfg_attr(
35134    target_arch = "arm",
35135    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35136)]
35137pub fn vnegq_s32(a: int32x4_t) -> int32x4_t {
35138    unsafe { simd_neg(a) }
35139}
35140#[doc = "Vector bitwise inclusive OR NOT"]
35141#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorn_s16)"]
35142#[inline]
35143#[target_feature(enable = "neon")]
35144#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35145#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
35146#[cfg_attr(
35147    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35148    assert_instr(orn)
35149)]
35150#[cfg_attr(
35151    not(target_arch = "arm"),
35152    stable(feature = "neon_intrinsics", since = "1.59.0")
35153)]
35154#[cfg_attr(
35155    target_arch = "arm",
35156    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35157)]
35158pub fn vorn_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
35159    let c = int16x4_t::splat(-1);
35160    unsafe { simd_or(simd_xor(b, c), a) }
35161}
35162#[doc = "Vector bitwise inclusive OR NOT"]
35163#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorn_s32)"]
35164#[inline]
35165#[target_feature(enable = "neon")]
35166#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35167#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
35168#[cfg_attr(
35169    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35170    assert_instr(orn)
35171)]
35172#[cfg_attr(
35173    not(target_arch = "arm"),
35174    stable(feature = "neon_intrinsics", since = "1.59.0")
35175)]
35176#[cfg_attr(
35177    target_arch = "arm",
35178    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35179)]
35180pub fn vorn_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
35181    let c = int32x2_t::splat(-1);
35182    unsafe { simd_or(simd_xor(b, c), a) }
35183}
35184#[doc = "Vector bitwise inclusive OR NOT"]
35185#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorn_s64)"]
35186#[inline]
35187#[target_feature(enable = "neon")]
35188#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35189#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
35190#[cfg_attr(
35191    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35192    assert_instr(orn)
35193)]
35194#[cfg_attr(
35195    not(target_arch = "arm"),
35196    stable(feature = "neon_intrinsics", since = "1.59.0")
35197)]
35198#[cfg_attr(
35199    target_arch = "arm",
35200    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35201)]
35202pub fn vorn_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t {
35203    let c = int64x1_t::splat(-1);
35204    unsafe { simd_or(simd_xor(b, c), a) }
35205}
35206#[doc = "Vector bitwise inclusive OR NOT"]
35207#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorn_s8)"]
35208#[inline]
35209#[target_feature(enable = "neon")]
35210#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35211#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
35212#[cfg_attr(
35213    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35214    assert_instr(orn)
35215)]
35216#[cfg_attr(
35217    not(target_arch = "arm"),
35218    stable(feature = "neon_intrinsics", since = "1.59.0")
35219)]
35220#[cfg_attr(
35221    target_arch = "arm",
35222    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35223)]
35224pub fn vorn_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
35225    let c = int8x8_t::splat(-1);
35226    unsafe { simd_or(simd_xor(b, c), a) }
35227}
35228#[doc = "Vector bitwise inclusive OR NOT"]
35229#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vornq_s16)"]
35230#[inline]
35231#[target_feature(enable = "neon")]
35232#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35233#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
35234#[cfg_attr(
35235    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35236    assert_instr(orn)
35237)]
35238#[cfg_attr(
35239    not(target_arch = "arm"),
35240    stable(feature = "neon_intrinsics", since = "1.59.0")
35241)]
35242#[cfg_attr(
35243    target_arch = "arm",
35244    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35245)]
35246pub fn vornq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
35247    let c = int16x8_t::splat(-1);
35248    unsafe { simd_or(simd_xor(b, c), a) }
35249}
35250#[doc = "Vector bitwise inclusive OR NOT"]
35251#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vornq_s32)"]
35252#[inline]
35253#[target_feature(enable = "neon")]
35254#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35255#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
35256#[cfg_attr(
35257    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35258    assert_instr(orn)
35259)]
35260#[cfg_attr(
35261    not(target_arch = "arm"),
35262    stable(feature = "neon_intrinsics", since = "1.59.0")
35263)]
35264#[cfg_attr(
35265    target_arch = "arm",
35266    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35267)]
35268pub fn vornq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
35269    let c = int32x4_t::splat(-1);
35270    unsafe { simd_or(simd_xor(b, c), a) }
35271}
35272#[doc = "Vector bitwise inclusive OR NOT"]
35273#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vornq_s64)"]
35274#[inline]
35275#[target_feature(enable = "neon")]
35276#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35277#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
35278#[cfg_attr(
35279    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35280    assert_instr(orn)
35281)]
35282#[cfg_attr(
35283    not(target_arch = "arm"),
35284    stable(feature = "neon_intrinsics", since = "1.59.0")
35285)]
35286#[cfg_attr(
35287    target_arch = "arm",
35288    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35289)]
35290pub fn vornq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t {
35291    let c = int64x2_t::splat(-1);
35292    unsafe { simd_or(simd_xor(b, c), a) }
35293}
35294#[doc = "Vector bitwise inclusive OR NOT"]
35295#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vornq_s8)"]
35296#[inline]
35297#[target_feature(enable = "neon")]
35298#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35299#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
35300#[cfg_attr(
35301    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35302    assert_instr(orn)
35303)]
35304#[cfg_attr(
35305    not(target_arch = "arm"),
35306    stable(feature = "neon_intrinsics", since = "1.59.0")
35307)]
35308#[cfg_attr(
35309    target_arch = "arm",
35310    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35311)]
35312pub fn vornq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
35313    let c = int8x16_t::splat(-1);
35314    unsafe { simd_or(simd_xor(b, c), a) }
35315}
35316#[doc = "Vector bitwise inclusive OR NOT"]
35317#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorn_u16)"]
35318#[inline]
35319#[target_feature(enable = "neon")]
35320#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35321#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
35322#[cfg_attr(
35323    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35324    assert_instr(orn)
35325)]
35326#[cfg_attr(
35327    not(target_arch = "arm"),
35328    stable(feature = "neon_intrinsics", since = "1.59.0")
35329)]
35330#[cfg_attr(
35331    target_arch = "arm",
35332    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35333)]
35334pub fn vorn_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
35335    let c = int16x4_t::splat(-1);
35336    unsafe { simd_or(simd_xor(b, transmute(c)), a) }
35337}
35338#[doc = "Vector bitwise inclusive OR NOT"]
35339#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorn_u32)"]
35340#[inline]
35341#[target_feature(enable = "neon")]
35342#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35343#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
35344#[cfg_attr(
35345    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35346    assert_instr(orn)
35347)]
35348#[cfg_attr(
35349    not(target_arch = "arm"),
35350    stable(feature = "neon_intrinsics", since = "1.59.0")
35351)]
35352#[cfg_attr(
35353    target_arch = "arm",
35354    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35355)]
35356pub fn vorn_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
35357    let c = int32x2_t::splat(-1);
35358    unsafe { simd_or(simd_xor(b, transmute(c)), a) }
35359}
35360#[doc = "Vector bitwise inclusive OR NOT"]
35361#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorn_u64)"]
35362#[inline]
35363#[target_feature(enable = "neon")]
35364#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35365#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
35366#[cfg_attr(
35367    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35368    assert_instr(orn)
35369)]
35370#[cfg_attr(
35371    not(target_arch = "arm"),
35372    stable(feature = "neon_intrinsics", since = "1.59.0")
35373)]
35374#[cfg_attr(
35375    target_arch = "arm",
35376    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35377)]
35378pub fn vorn_u64(a: uint64x1_t, b: uint64x1_t) -> uint64x1_t {
35379    let c = int64x1_t::splat(-1);
35380    unsafe { simd_or(simd_xor(b, transmute(c)), a) }
35381}
35382#[doc = "Vector bitwise inclusive OR NOT"]
35383#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorn_u8)"]
35384#[inline]
35385#[target_feature(enable = "neon")]
35386#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35387#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
35388#[cfg_attr(
35389    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35390    assert_instr(orn)
35391)]
35392#[cfg_attr(
35393    not(target_arch = "arm"),
35394    stable(feature = "neon_intrinsics", since = "1.59.0")
35395)]
35396#[cfg_attr(
35397    target_arch = "arm",
35398    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35399)]
35400pub fn vorn_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
35401    let c = int8x8_t::splat(-1);
35402    unsafe { simd_or(simd_xor(b, transmute(c)), a) }
35403}
35404#[doc = "Vector bitwise inclusive OR NOT"]
35405#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vornq_u16)"]
35406#[inline]
35407#[target_feature(enable = "neon")]
35408#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35409#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
35410#[cfg_attr(
35411    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35412    assert_instr(orn)
35413)]
35414#[cfg_attr(
35415    not(target_arch = "arm"),
35416    stable(feature = "neon_intrinsics", since = "1.59.0")
35417)]
35418#[cfg_attr(
35419    target_arch = "arm",
35420    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35421)]
35422pub fn vornq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
35423    let c = int16x8_t::splat(-1);
35424    unsafe { simd_or(simd_xor(b, transmute(c)), a) }
35425}
35426#[doc = "Vector bitwise inclusive OR NOT"]
35427#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vornq_u32)"]
35428#[inline]
35429#[target_feature(enable = "neon")]
35430#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35431#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
35432#[cfg_attr(
35433    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35434    assert_instr(orn)
35435)]
35436#[cfg_attr(
35437    not(target_arch = "arm"),
35438    stable(feature = "neon_intrinsics", since = "1.59.0")
35439)]
35440#[cfg_attr(
35441    target_arch = "arm",
35442    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35443)]
35444pub fn vornq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
35445    let c = int32x4_t::splat(-1);
35446    unsafe { simd_or(simd_xor(b, transmute(c)), a) }
35447}
35448#[doc = "Vector bitwise inclusive OR NOT"]
35449#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vornq_u64)"]
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(vorn))]
35454#[cfg_attr(
35455    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35456    assert_instr(orn)
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 vornq_u64(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
35467    let c = int64x2_t::splat(-1);
35468    unsafe { simd_or(simd_xor(b, transmute(c)), a) }
35469}
35470#[doc = "Vector bitwise inclusive OR NOT"]
35471#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vornq_u8)"]
35472#[inline]
35473#[target_feature(enable = "neon")]
35474#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35475#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
35476#[cfg_attr(
35477    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35478    assert_instr(orn)
35479)]
35480#[cfg_attr(
35481    not(target_arch = "arm"),
35482    stable(feature = "neon_intrinsics", since = "1.59.0")
35483)]
35484#[cfg_attr(
35485    target_arch = "arm",
35486    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35487)]
35488pub fn vornq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
35489    let c = int8x16_t::splat(-1);
35490    unsafe { simd_or(simd_xor(b, transmute(c)), a) }
35491}
35492#[doc = "Vector bitwise or (immediate, inclusive)"]
35493#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorr_s8)"]
35494#[inline]
35495#[target_feature(enable = "neon")]
35496#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35497#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
35498#[cfg_attr(
35499    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35500    assert_instr(orr)
35501)]
35502#[cfg_attr(
35503    not(target_arch = "arm"),
35504    stable(feature = "neon_intrinsics", since = "1.59.0")
35505)]
35506#[cfg_attr(
35507    target_arch = "arm",
35508    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35509)]
35510pub fn vorr_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
35511    unsafe { simd_or(a, b) }
35512}
35513#[doc = "Vector bitwise or (immediate, inclusive)"]
35514#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorrq_s8)"]
35515#[inline]
35516#[target_feature(enable = "neon")]
35517#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35518#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
35519#[cfg_attr(
35520    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35521    assert_instr(orr)
35522)]
35523#[cfg_attr(
35524    not(target_arch = "arm"),
35525    stable(feature = "neon_intrinsics", since = "1.59.0")
35526)]
35527#[cfg_attr(
35528    target_arch = "arm",
35529    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35530)]
35531pub fn vorrq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
35532    unsafe { simd_or(a, b) }
35533}
35534#[doc = "Vector bitwise or (immediate, inclusive)"]
35535#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorr_s16)"]
35536#[inline]
35537#[target_feature(enable = "neon")]
35538#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35539#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
35540#[cfg_attr(
35541    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35542    assert_instr(orr)
35543)]
35544#[cfg_attr(
35545    not(target_arch = "arm"),
35546    stable(feature = "neon_intrinsics", since = "1.59.0")
35547)]
35548#[cfg_attr(
35549    target_arch = "arm",
35550    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35551)]
35552pub fn vorr_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
35553    unsafe { simd_or(a, b) }
35554}
35555#[doc = "Vector bitwise or (immediate, inclusive)"]
35556#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorrq_s16)"]
35557#[inline]
35558#[target_feature(enable = "neon")]
35559#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35560#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
35561#[cfg_attr(
35562    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35563    assert_instr(orr)
35564)]
35565#[cfg_attr(
35566    not(target_arch = "arm"),
35567    stable(feature = "neon_intrinsics", since = "1.59.0")
35568)]
35569#[cfg_attr(
35570    target_arch = "arm",
35571    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35572)]
35573pub fn vorrq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
35574    unsafe { simd_or(a, b) }
35575}
35576#[doc = "Vector bitwise or (immediate, inclusive)"]
35577#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorr_s32)"]
35578#[inline]
35579#[target_feature(enable = "neon")]
35580#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35581#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
35582#[cfg_attr(
35583    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35584    assert_instr(orr)
35585)]
35586#[cfg_attr(
35587    not(target_arch = "arm"),
35588    stable(feature = "neon_intrinsics", since = "1.59.0")
35589)]
35590#[cfg_attr(
35591    target_arch = "arm",
35592    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35593)]
35594pub fn vorr_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
35595    unsafe { simd_or(a, b) }
35596}
35597#[doc = "Vector bitwise or (immediate, inclusive)"]
35598#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorrq_s32)"]
35599#[inline]
35600#[target_feature(enable = "neon")]
35601#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35602#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
35603#[cfg_attr(
35604    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35605    assert_instr(orr)
35606)]
35607#[cfg_attr(
35608    not(target_arch = "arm"),
35609    stable(feature = "neon_intrinsics", since = "1.59.0")
35610)]
35611#[cfg_attr(
35612    target_arch = "arm",
35613    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35614)]
35615pub fn vorrq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
35616    unsafe { simd_or(a, b) }
35617}
35618#[doc = "Vector bitwise or (immediate, inclusive)"]
35619#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorr_s64)"]
35620#[inline]
35621#[target_feature(enable = "neon")]
35622#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35623#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
35624#[cfg_attr(
35625    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35626    assert_instr(orr)
35627)]
35628#[cfg_attr(
35629    not(target_arch = "arm"),
35630    stable(feature = "neon_intrinsics", since = "1.59.0")
35631)]
35632#[cfg_attr(
35633    target_arch = "arm",
35634    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35635)]
35636pub fn vorr_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t {
35637    unsafe { simd_or(a, b) }
35638}
35639#[doc = "Vector bitwise or (immediate, inclusive)"]
35640#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorrq_s64)"]
35641#[inline]
35642#[target_feature(enable = "neon")]
35643#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35644#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
35645#[cfg_attr(
35646    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35647    assert_instr(orr)
35648)]
35649#[cfg_attr(
35650    not(target_arch = "arm"),
35651    stable(feature = "neon_intrinsics", since = "1.59.0")
35652)]
35653#[cfg_attr(
35654    target_arch = "arm",
35655    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35656)]
35657pub fn vorrq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t {
35658    unsafe { simd_or(a, b) }
35659}
35660#[doc = "Vector bitwise or (immediate, inclusive)"]
35661#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorr_u8)"]
35662#[inline]
35663#[target_feature(enable = "neon")]
35664#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35665#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
35666#[cfg_attr(
35667    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35668    assert_instr(orr)
35669)]
35670#[cfg_attr(
35671    not(target_arch = "arm"),
35672    stable(feature = "neon_intrinsics", since = "1.59.0")
35673)]
35674#[cfg_attr(
35675    target_arch = "arm",
35676    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35677)]
35678pub fn vorr_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
35679    unsafe { simd_or(a, b) }
35680}
35681#[doc = "Vector bitwise or (immediate, inclusive)"]
35682#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorrq_u8)"]
35683#[inline]
35684#[target_feature(enable = "neon")]
35685#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35686#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
35687#[cfg_attr(
35688    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35689    assert_instr(orr)
35690)]
35691#[cfg_attr(
35692    not(target_arch = "arm"),
35693    stable(feature = "neon_intrinsics", since = "1.59.0")
35694)]
35695#[cfg_attr(
35696    target_arch = "arm",
35697    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35698)]
35699pub fn vorrq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
35700    unsafe { simd_or(a, b) }
35701}
35702#[doc = "Vector bitwise or (immediate, inclusive)"]
35703#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorr_u16)"]
35704#[inline]
35705#[target_feature(enable = "neon")]
35706#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35707#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
35708#[cfg_attr(
35709    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35710    assert_instr(orr)
35711)]
35712#[cfg_attr(
35713    not(target_arch = "arm"),
35714    stable(feature = "neon_intrinsics", since = "1.59.0")
35715)]
35716#[cfg_attr(
35717    target_arch = "arm",
35718    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35719)]
35720pub fn vorr_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
35721    unsafe { simd_or(a, b) }
35722}
35723#[doc = "Vector bitwise or (immediate, inclusive)"]
35724#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorrq_u16)"]
35725#[inline]
35726#[target_feature(enable = "neon")]
35727#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35728#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
35729#[cfg_attr(
35730    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35731    assert_instr(orr)
35732)]
35733#[cfg_attr(
35734    not(target_arch = "arm"),
35735    stable(feature = "neon_intrinsics", since = "1.59.0")
35736)]
35737#[cfg_attr(
35738    target_arch = "arm",
35739    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35740)]
35741pub fn vorrq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
35742    unsafe { simd_or(a, b) }
35743}
35744#[doc = "Vector bitwise or (immediate, inclusive)"]
35745#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorr_u32)"]
35746#[inline]
35747#[target_feature(enable = "neon")]
35748#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35749#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
35750#[cfg_attr(
35751    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35752    assert_instr(orr)
35753)]
35754#[cfg_attr(
35755    not(target_arch = "arm"),
35756    stable(feature = "neon_intrinsics", since = "1.59.0")
35757)]
35758#[cfg_attr(
35759    target_arch = "arm",
35760    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35761)]
35762pub fn vorr_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
35763    unsafe { simd_or(a, b) }
35764}
35765#[doc = "Vector bitwise or (immediate, inclusive)"]
35766#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorrq_u32)"]
35767#[inline]
35768#[target_feature(enable = "neon")]
35769#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35770#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
35771#[cfg_attr(
35772    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35773    assert_instr(orr)
35774)]
35775#[cfg_attr(
35776    not(target_arch = "arm"),
35777    stable(feature = "neon_intrinsics", since = "1.59.0")
35778)]
35779#[cfg_attr(
35780    target_arch = "arm",
35781    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35782)]
35783pub fn vorrq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
35784    unsafe { simd_or(a, b) }
35785}
35786#[doc = "Vector bitwise or (immediate, inclusive)"]
35787#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorr_u64)"]
35788#[inline]
35789#[target_feature(enable = "neon")]
35790#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35791#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
35792#[cfg_attr(
35793    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35794    assert_instr(orr)
35795)]
35796#[cfg_attr(
35797    not(target_arch = "arm"),
35798    stable(feature = "neon_intrinsics", since = "1.59.0")
35799)]
35800#[cfg_attr(
35801    target_arch = "arm",
35802    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35803)]
35804pub fn vorr_u64(a: uint64x1_t, b: uint64x1_t) -> uint64x1_t {
35805    unsafe { simd_or(a, b) }
35806}
35807#[doc = "Vector bitwise or (immediate, inclusive)"]
35808#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorrq_u64)"]
35809#[inline]
35810#[target_feature(enable = "neon")]
35811#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35812#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
35813#[cfg_attr(
35814    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35815    assert_instr(orr)
35816)]
35817#[cfg_attr(
35818    not(target_arch = "arm"),
35819    stable(feature = "neon_intrinsics", since = "1.59.0")
35820)]
35821#[cfg_attr(
35822    target_arch = "arm",
35823    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35824)]
35825pub fn vorrq_u64(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
35826    unsafe { simd_or(a, b) }
35827}
35828#[doc = "Signed Add and Accumulate Long Pairwise."]
35829#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadal_s8)"]
35830#[inline]
35831#[target_feature(enable = "neon")]
35832#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35833#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpadal.s8"))]
35834#[cfg_attr(
35835    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35836    assert_instr(sadalp)
35837)]
35838#[cfg_attr(
35839    not(target_arch = "arm"),
35840    stable(feature = "neon_intrinsics", since = "1.59.0")
35841)]
35842#[cfg_attr(
35843    target_arch = "arm",
35844    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35845)]
35846pub fn vpadal_s8(a: int16x4_t, b: int8x8_t) -> int16x4_t {
35847    let x: int16x4_t;
35848    #[cfg(target_arch = "arm")]
35849    {
35850        x = priv_vpadal_s8(a, b);
35851    }
35852    #[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
35853    unsafe {
35854        x = simd_add(vpaddl_s8(b), a);
35855    };
35856    x
35857}
35858#[doc = "Signed Add and Accumulate Long Pairwise."]
35859#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadalq_s8)"]
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("vpadal.s8"))]
35864#[cfg_attr(
35865    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35866    assert_instr(sadalp)
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 vpadalq_s8(a: int16x8_t, b: int8x16_t) -> int16x8_t {
35877    let x: int16x8_t;
35878    #[cfg(target_arch = "arm")]
35879    {
35880        x = priv_vpadalq_s8(a, b);
35881    }
35882    #[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
35883    unsafe {
35884        x = simd_add(vpaddlq_s8(b), a);
35885    };
35886    x
35887}
35888#[doc = "Signed Add and Accumulate Long Pairwise."]
35889#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadal_s16)"]
35890#[inline]
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("vpadal.s16"))]
35894#[cfg_attr(
35895    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35896    assert_instr(sadalp)
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 vpadal_s16(a: int32x2_t, b: int16x4_t) -> int32x2_t {
35907    let x: int32x2_t;
35908    #[cfg(target_arch = "arm")]
35909    {
35910        x = priv_vpadal_s16(a, b);
35911    }
35912    #[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
35913    unsafe {
35914        x = simd_add(vpaddl_s16(b), a);
35915    };
35916    x
35917}
35918#[doc = "Signed Add and Accumulate Long Pairwise."]
35919#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadalq_s16)"]
35920#[inline]
35921#[target_feature(enable = "neon")]
35922#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35923#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpadal.s16"))]
35924#[cfg_attr(
35925    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35926    assert_instr(sadalp)
35927)]
35928#[cfg_attr(
35929    not(target_arch = "arm"),
35930    stable(feature = "neon_intrinsics", since = "1.59.0")
35931)]
35932#[cfg_attr(
35933    target_arch = "arm",
35934    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35935)]
35936pub fn vpadalq_s16(a: int32x4_t, b: int16x8_t) -> int32x4_t {
35937    let x: int32x4_t;
35938    #[cfg(target_arch = "arm")]
35939    {
35940        x = priv_vpadalq_s16(a, b);
35941    }
35942    #[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
35943    unsafe {
35944        x = simd_add(vpaddlq_s16(b), a);
35945    };
35946    x
35947}
35948#[doc = "Signed Add and Accumulate Long Pairwise."]
35949#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadal_s32)"]
35950#[inline]
35951#[target_feature(enable = "neon")]
35952#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35953#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpadal.s32"))]
35954#[cfg_attr(
35955    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35956    assert_instr(sadalp)
35957)]
35958#[cfg_attr(
35959    not(target_arch = "arm"),
35960    stable(feature = "neon_intrinsics", since = "1.59.0")
35961)]
35962#[cfg_attr(
35963    target_arch = "arm",
35964    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35965)]
35966pub fn vpadal_s32(a: int64x1_t, b: int32x2_t) -> int64x1_t {
35967    let x: int64x1_t;
35968    #[cfg(target_arch = "arm")]
35969    {
35970        x = priv_vpadal_s32(a, b);
35971    }
35972    #[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
35973    unsafe {
35974        x = simd_add(vpaddl_s32(b), a);
35975    };
35976    x
35977}
35978#[doc = "Signed Add and Accumulate Long Pairwise."]
35979#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadalq_s32)"]
35980#[inline]
35981#[target_feature(enable = "neon")]
35982#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35983#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpadal.s32"))]
35984#[cfg_attr(
35985    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35986    assert_instr(sadalp)
35987)]
35988#[cfg_attr(
35989    not(target_arch = "arm"),
35990    stable(feature = "neon_intrinsics", since = "1.59.0")
35991)]
35992#[cfg_attr(
35993    target_arch = "arm",
35994    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35995)]
35996pub fn vpadalq_s32(a: int64x2_t, b: int32x4_t) -> int64x2_t {
35997    let x: int64x2_t;
35998    #[cfg(target_arch = "arm")]
35999    {
36000        x = priv_vpadalq_s32(a, b);
36001    }
36002    #[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
36003    unsafe {
36004        x = simd_add(vpaddlq_s32(b), a);
36005    };
36006    x
36007}
36008#[doc = "Unsigned Add and Accumulate Long Pairwise."]
36009#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadal_u8)"]
36010#[inline]
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("vpadal.u8"))]
36014#[cfg_attr(
36015    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36016    assert_instr(uadalp)
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 vpadal_u8(a: uint16x4_t, b: uint8x8_t) -> uint16x4_t {
36027    let x: uint16x4_t;
36028    #[cfg(target_arch = "arm")]
36029    {
36030        x = priv_vpadal_u8(a, b);
36031    }
36032    #[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
36033    unsafe {
36034        x = simd_add(vpaddl_u8(b), a);
36035    };
36036    x
36037}
36038#[doc = "Unsigned Add and Accumulate Long Pairwise."]
36039#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadalq_u8)"]
36040#[inline]
36041#[target_feature(enable = "neon")]
36042#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36043#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpadal.u8"))]
36044#[cfg_attr(
36045    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36046    assert_instr(uadalp)
36047)]
36048#[cfg_attr(
36049    not(target_arch = "arm"),
36050    stable(feature = "neon_intrinsics", since = "1.59.0")
36051)]
36052#[cfg_attr(
36053    target_arch = "arm",
36054    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36055)]
36056pub fn vpadalq_u8(a: uint16x8_t, b: uint8x16_t) -> uint16x8_t {
36057    let x: uint16x8_t;
36058    #[cfg(target_arch = "arm")]
36059    {
36060        x = priv_vpadalq_u8(a, b);
36061    }
36062    #[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
36063    unsafe {
36064        x = simd_add(vpaddlq_u8(b), a);
36065    };
36066    x
36067}
36068#[doc = "Unsigned Add and Accumulate Long Pairwise."]
36069#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadal_u16)"]
36070#[inline]
36071#[target_feature(enable = "neon")]
36072#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36073#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpadal.u16"))]
36074#[cfg_attr(
36075    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36076    assert_instr(uadalp)
36077)]
36078#[cfg_attr(
36079    not(target_arch = "arm"),
36080    stable(feature = "neon_intrinsics", since = "1.59.0")
36081)]
36082#[cfg_attr(
36083    target_arch = "arm",
36084    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36085)]
36086pub fn vpadal_u16(a: uint32x2_t, b: uint16x4_t) -> uint32x2_t {
36087    let x: uint32x2_t;
36088    #[cfg(target_arch = "arm")]
36089    {
36090        x = priv_vpadal_u16(a, b);
36091    }
36092    #[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
36093    unsafe {
36094        x = simd_add(vpaddl_u16(b), a);
36095    };
36096    x
36097}
36098#[doc = "Unsigned Add and Accumulate Long Pairwise."]
36099#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadalq_u16)"]
36100#[inline]
36101#[target_feature(enable = "neon")]
36102#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36103#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpadal.u16"))]
36104#[cfg_attr(
36105    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36106    assert_instr(uadalp)
36107)]
36108#[cfg_attr(
36109    not(target_arch = "arm"),
36110    stable(feature = "neon_intrinsics", since = "1.59.0")
36111)]
36112#[cfg_attr(
36113    target_arch = "arm",
36114    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36115)]
36116pub fn vpadalq_u16(a: uint32x4_t, b: uint16x8_t) -> uint32x4_t {
36117    let x: uint32x4_t;
36118    #[cfg(target_arch = "arm")]
36119    {
36120        x = priv_vpadalq_u16(a, b);
36121    }
36122    #[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
36123    unsafe {
36124        x = simd_add(vpaddlq_u16(b), a);
36125    };
36126    x
36127}
36128#[doc = "Unsigned Add and Accumulate Long Pairwise."]
36129#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadal_u32)"]
36130#[inline]
36131#[target_feature(enable = "neon")]
36132#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36133#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpadal.u32"))]
36134#[cfg_attr(
36135    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36136    assert_instr(uadalp)
36137)]
36138#[cfg_attr(
36139    not(target_arch = "arm"),
36140    stable(feature = "neon_intrinsics", since = "1.59.0")
36141)]
36142#[cfg_attr(
36143    target_arch = "arm",
36144    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36145)]
36146pub fn vpadal_u32(a: uint64x1_t, b: uint32x2_t) -> uint64x1_t {
36147    let x: uint64x1_t;
36148    #[cfg(target_arch = "arm")]
36149    {
36150        x = priv_vpadal_u32(a, b);
36151    }
36152    #[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
36153    unsafe {
36154        x = simd_add(vpaddl_u32(b), a);
36155    };
36156    x
36157}
36158#[doc = "Unsigned Add and Accumulate Long Pairwise."]
36159#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadalq_u32)"]
36160#[inline]
36161#[target_feature(enable = "neon")]
36162#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36163#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpadal.u32"))]
36164#[cfg_attr(
36165    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36166    assert_instr(uadalp)
36167)]
36168#[cfg_attr(
36169    not(target_arch = "arm"),
36170    stable(feature = "neon_intrinsics", since = "1.59.0")
36171)]
36172#[cfg_attr(
36173    target_arch = "arm",
36174    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36175)]
36176pub fn vpadalq_u32(a: uint64x2_t, b: uint32x4_t) -> uint64x2_t {
36177    let x: uint64x2_t;
36178    #[cfg(target_arch = "arm")]
36179    {
36180        x = priv_vpadalq_u32(a, b);
36181    }
36182    #[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
36183    unsafe {
36184        x = simd_add(vpaddlq_u32(b), a);
36185    };
36186    x
36187}
36188#[doc = "Floating-point add pairwise"]
36189#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadd_f16)"]
36190#[inline]
36191#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
36192#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpadd))]
36193#[cfg_attr(
36194    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36195    assert_instr(faddp)
36196)]
36197#[target_feature(enable = "neon,fp16")]
36198#[cfg_attr(
36199    not(target_arch = "arm"),
36200    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
36201)]
36202#[cfg_attr(
36203    target_arch = "arm",
36204    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36205)]
36206#[cfg(not(target_arch = "arm64ec"))]
36207pub fn vpadd_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t {
36208    unsafe extern "unadjusted" {
36209        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpadd.v4f16")]
36210        #[cfg_attr(
36211            any(target_arch = "aarch64", target_arch = "arm64ec"),
36212            link_name = "llvm.aarch64.neon.faddp.v4f16"
36213        )]
36214        fn _vpadd_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t;
36215    }
36216    unsafe { _vpadd_f16(a, b) }
36217}
36218#[doc = "Floating-point add pairwise"]
36219#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadd_f32)"]
36220#[inline]
36221#[target_feature(enable = "neon")]
36222#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36223#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpadd))]
36224#[cfg_attr(
36225    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36226    assert_instr(faddp)
36227)]
36228#[cfg_attr(
36229    not(target_arch = "arm"),
36230    stable(feature = "neon_intrinsics", since = "1.59.0")
36231)]
36232#[cfg_attr(
36233    target_arch = "arm",
36234    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36235)]
36236pub fn vpadd_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
36237    unsafe extern "unadjusted" {
36238        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpadd.v2f32")]
36239        #[cfg_attr(
36240            any(target_arch = "aarch64", target_arch = "arm64ec"),
36241            link_name = "llvm.aarch64.neon.faddp.v2f32"
36242        )]
36243        fn _vpadd_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t;
36244    }
36245    unsafe { _vpadd_f32(a, b) }
36246}
36247#[doc = "Add pairwise."]
36248#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadd_s8)"]
36249#[inline]
36250#[target_feature(enable = "neon")]
36251#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36252#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpadd))]
36253#[cfg_attr(
36254    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36255    assert_instr(addp)
36256)]
36257#[cfg_attr(
36258    not(target_arch = "arm"),
36259    stable(feature = "neon_intrinsics", since = "1.59.0")
36260)]
36261#[cfg_attr(
36262    target_arch = "arm",
36263    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36264)]
36265pub fn vpadd_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
36266    unsafe extern "unadjusted" {
36267        #[cfg_attr(
36268            any(target_arch = "aarch64", target_arch = "arm64ec"),
36269            link_name = "llvm.aarch64.neon.addp.v8i8"
36270        )]
36271        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpadd.v8i8")]
36272        fn _vpadd_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t;
36273    }
36274    unsafe { _vpadd_s8(a, b) }
36275}
36276#[doc = "Add pairwise."]
36277#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadd_s16)"]
36278#[inline]
36279#[target_feature(enable = "neon")]
36280#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36281#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpadd))]
36282#[cfg_attr(
36283    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36284    assert_instr(addp)
36285)]
36286#[cfg_attr(
36287    not(target_arch = "arm"),
36288    stable(feature = "neon_intrinsics", since = "1.59.0")
36289)]
36290#[cfg_attr(
36291    target_arch = "arm",
36292    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36293)]
36294pub fn vpadd_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
36295    unsafe extern "unadjusted" {
36296        #[cfg_attr(
36297            any(target_arch = "aarch64", target_arch = "arm64ec"),
36298            link_name = "llvm.aarch64.neon.addp.v4i16"
36299        )]
36300        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpadd.v4i16")]
36301        fn _vpadd_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t;
36302    }
36303    unsafe { _vpadd_s16(a, b) }
36304}
36305#[doc = "Add pairwise."]
36306#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadd_s32)"]
36307#[inline]
36308#[target_feature(enable = "neon")]
36309#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36310#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpadd))]
36311#[cfg_attr(
36312    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36313    assert_instr(addp)
36314)]
36315#[cfg_attr(
36316    not(target_arch = "arm"),
36317    stable(feature = "neon_intrinsics", since = "1.59.0")
36318)]
36319#[cfg_attr(
36320    target_arch = "arm",
36321    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36322)]
36323pub fn vpadd_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
36324    unsafe extern "unadjusted" {
36325        #[cfg_attr(
36326            any(target_arch = "aarch64", target_arch = "arm64ec"),
36327            link_name = "llvm.aarch64.neon.addp.v2i32"
36328        )]
36329        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpadd.v2i32")]
36330        fn _vpadd_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t;
36331    }
36332    unsafe { _vpadd_s32(a, b) }
36333}
36334#[doc = "Add pairwise."]
36335#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadd_u8)"]
36336#[inline]
36337#[cfg(target_endian = "little")]
36338#[target_feature(enable = "neon")]
36339#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36340#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpadd))]
36341#[cfg_attr(
36342    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36343    assert_instr(addp)
36344)]
36345#[cfg_attr(
36346    not(target_arch = "arm"),
36347    stable(feature = "neon_intrinsics", since = "1.59.0")
36348)]
36349#[cfg_attr(
36350    target_arch = "arm",
36351    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36352)]
36353pub fn vpadd_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
36354    unsafe { transmute(vpadd_s8(transmute(a), transmute(b))) }
36355}
36356#[doc = "Add pairwise."]
36357#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadd_u8)"]
36358#[inline]
36359#[cfg(target_endian = "big")]
36360#[target_feature(enable = "neon")]
36361#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36362#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpadd))]
36363#[cfg_attr(
36364    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36365    assert_instr(addp)
36366)]
36367#[cfg_attr(
36368    not(target_arch = "arm"),
36369    stable(feature = "neon_intrinsics", since = "1.59.0")
36370)]
36371#[cfg_attr(
36372    target_arch = "arm",
36373    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36374)]
36375pub fn vpadd_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
36376    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
36377    let b: uint8x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
36378    unsafe {
36379        let ret_val: uint8x8_t = transmute(vpadd_s8(transmute(a), transmute(b)));
36380        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
36381    }
36382}
36383#[doc = "Add pairwise."]
36384#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadd_u16)"]
36385#[inline]
36386#[cfg(target_endian = "little")]
36387#[target_feature(enable = "neon")]
36388#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36389#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpadd))]
36390#[cfg_attr(
36391    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36392    assert_instr(addp)
36393)]
36394#[cfg_attr(
36395    not(target_arch = "arm"),
36396    stable(feature = "neon_intrinsics", since = "1.59.0")
36397)]
36398#[cfg_attr(
36399    target_arch = "arm",
36400    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36401)]
36402pub fn vpadd_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
36403    unsafe { transmute(vpadd_s16(transmute(a), transmute(b))) }
36404}
36405#[doc = "Add pairwise."]
36406#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadd_u16)"]
36407#[inline]
36408#[cfg(target_endian = "big")]
36409#[target_feature(enable = "neon")]
36410#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36411#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpadd))]
36412#[cfg_attr(
36413    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36414    assert_instr(addp)
36415)]
36416#[cfg_attr(
36417    not(target_arch = "arm"),
36418    stable(feature = "neon_intrinsics", since = "1.59.0")
36419)]
36420#[cfg_attr(
36421    target_arch = "arm",
36422    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36423)]
36424pub fn vpadd_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
36425    let a: uint16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
36426    let b: uint16x4_t = unsafe { simd_shuffle!(b, b, [3, 2, 1, 0]) };
36427    unsafe {
36428        let ret_val: uint16x4_t = transmute(vpadd_s16(transmute(a), transmute(b)));
36429        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
36430    }
36431}
36432#[doc = "Add pairwise."]
36433#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadd_u32)"]
36434#[inline]
36435#[cfg(target_endian = "little")]
36436#[target_feature(enable = "neon")]
36437#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36438#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpadd))]
36439#[cfg_attr(
36440    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36441    assert_instr(addp)
36442)]
36443#[cfg_attr(
36444    not(target_arch = "arm"),
36445    stable(feature = "neon_intrinsics", since = "1.59.0")
36446)]
36447#[cfg_attr(
36448    target_arch = "arm",
36449    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36450)]
36451pub fn vpadd_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
36452    unsafe { transmute(vpadd_s32(transmute(a), transmute(b))) }
36453}
36454#[doc = "Add pairwise."]
36455#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadd_u32)"]
36456#[inline]
36457#[cfg(target_endian = "big")]
36458#[target_feature(enable = "neon")]
36459#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36460#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpadd))]
36461#[cfg_attr(
36462    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36463    assert_instr(addp)
36464)]
36465#[cfg_attr(
36466    not(target_arch = "arm"),
36467    stable(feature = "neon_intrinsics", since = "1.59.0")
36468)]
36469#[cfg_attr(
36470    target_arch = "arm",
36471    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36472)]
36473pub fn vpadd_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
36474    let a: uint32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
36475    let b: uint32x2_t = unsafe { simd_shuffle!(b, b, [1, 0]) };
36476    unsafe {
36477        let ret_val: uint32x2_t = transmute(vpadd_s32(transmute(a), transmute(b)));
36478        simd_shuffle!(ret_val, ret_val, [1, 0])
36479    }
36480}
36481#[doc = "Signed Add and Accumulate Long Pairwise."]
36482#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpaddl_s8)"]
36483#[inline]
36484#[target_feature(enable = "neon")]
36485#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36486#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpaddl.s8"))]
36487#[cfg_attr(
36488    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36489    assert_instr(saddlp)
36490)]
36491#[cfg_attr(
36492    not(target_arch = "arm"),
36493    stable(feature = "neon_intrinsics", since = "1.59.0")
36494)]
36495#[cfg_attr(
36496    target_arch = "arm",
36497    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36498)]
36499pub fn vpaddl_s8(a: int8x8_t) -> int16x4_t {
36500    unsafe extern "unadjusted" {
36501        #[cfg_attr(
36502            any(target_arch = "aarch64", target_arch = "arm64ec"),
36503            link_name = "llvm.aarch64.neon.saddlp.v4i16.v8i8"
36504        )]
36505        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpaddls.v4i16.v8i8")]
36506        fn _vpaddl_s8(a: int8x8_t) -> int16x4_t;
36507    }
36508    unsafe { _vpaddl_s8(a) }
36509}
36510#[doc = "Signed Add and Accumulate Long Pairwise."]
36511#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpaddlq_s8)"]
36512#[inline]
36513#[target_feature(enable = "neon")]
36514#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36515#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpaddl.s8"))]
36516#[cfg_attr(
36517    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36518    assert_instr(saddlp)
36519)]
36520#[cfg_attr(
36521    not(target_arch = "arm"),
36522    stable(feature = "neon_intrinsics", since = "1.59.0")
36523)]
36524#[cfg_attr(
36525    target_arch = "arm",
36526    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36527)]
36528pub fn vpaddlq_s8(a: int8x16_t) -> int16x8_t {
36529    unsafe extern "unadjusted" {
36530        #[cfg_attr(
36531            any(target_arch = "aarch64", target_arch = "arm64ec"),
36532            link_name = "llvm.aarch64.neon.saddlp.v8i16.v16i8"
36533        )]
36534        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpaddls.v8i16.v16i8")]
36535        fn _vpaddlq_s8(a: int8x16_t) -> int16x8_t;
36536    }
36537    unsafe { _vpaddlq_s8(a) }
36538}
36539#[doc = "Signed Add and Accumulate Long Pairwise."]
36540#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpaddl_s16)"]
36541#[inline]
36542#[target_feature(enable = "neon")]
36543#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36544#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpaddl.s16"))]
36545#[cfg_attr(
36546    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36547    assert_instr(saddlp)
36548)]
36549#[cfg_attr(
36550    not(target_arch = "arm"),
36551    stable(feature = "neon_intrinsics", since = "1.59.0")
36552)]
36553#[cfg_attr(
36554    target_arch = "arm",
36555    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36556)]
36557pub fn vpaddl_s16(a: int16x4_t) -> int32x2_t {
36558    unsafe extern "unadjusted" {
36559        #[cfg_attr(
36560            any(target_arch = "aarch64", target_arch = "arm64ec"),
36561            link_name = "llvm.aarch64.neon.saddlp.v2i32.v4i16"
36562        )]
36563        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpaddls.v2i32.v4i16")]
36564        fn _vpaddl_s16(a: int16x4_t) -> int32x2_t;
36565    }
36566    unsafe { _vpaddl_s16(a) }
36567}
36568#[doc = "Signed Add and Accumulate Long Pairwise."]
36569#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpaddlq_s16)"]
36570#[inline]
36571#[target_feature(enable = "neon")]
36572#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36573#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpaddl.s16"))]
36574#[cfg_attr(
36575    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36576    assert_instr(saddlp)
36577)]
36578#[cfg_attr(
36579    not(target_arch = "arm"),
36580    stable(feature = "neon_intrinsics", since = "1.59.0")
36581)]
36582#[cfg_attr(
36583    target_arch = "arm",
36584    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36585)]
36586pub fn vpaddlq_s16(a: int16x8_t) -> int32x4_t {
36587    unsafe extern "unadjusted" {
36588        #[cfg_attr(
36589            any(target_arch = "aarch64", target_arch = "arm64ec"),
36590            link_name = "llvm.aarch64.neon.saddlp.v4i32.v8i16"
36591        )]
36592        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpaddls.v4i32.v8i16")]
36593        fn _vpaddlq_s16(a: int16x8_t) -> int32x4_t;
36594    }
36595    unsafe { _vpaddlq_s16(a) }
36596}
36597#[doc = "Signed Add and Accumulate Long Pairwise."]
36598#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpaddl_s32)"]
36599#[inline]
36600#[target_feature(enable = "neon")]
36601#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36602#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpaddl.s32"))]
36603#[cfg_attr(
36604    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36605    assert_instr(saddlp)
36606)]
36607#[cfg_attr(
36608    not(target_arch = "arm"),
36609    stable(feature = "neon_intrinsics", since = "1.59.0")
36610)]
36611#[cfg_attr(
36612    target_arch = "arm",
36613    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36614)]
36615pub fn vpaddl_s32(a: int32x2_t) -> int64x1_t {
36616    unsafe extern "unadjusted" {
36617        #[cfg_attr(
36618            any(target_arch = "aarch64", target_arch = "arm64ec"),
36619            link_name = "llvm.aarch64.neon.saddlp.v1i64.v2i32"
36620        )]
36621        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpaddls.v1i64.v2i32")]
36622        fn _vpaddl_s32(a: int32x2_t) -> int64x1_t;
36623    }
36624    unsafe { _vpaddl_s32(a) }
36625}
36626#[doc = "Signed Add and Accumulate Long Pairwise."]
36627#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpaddlq_s32)"]
36628#[inline]
36629#[target_feature(enable = "neon")]
36630#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36631#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpaddl.s32"))]
36632#[cfg_attr(
36633    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36634    assert_instr(saddlp)
36635)]
36636#[cfg_attr(
36637    not(target_arch = "arm"),
36638    stable(feature = "neon_intrinsics", since = "1.59.0")
36639)]
36640#[cfg_attr(
36641    target_arch = "arm",
36642    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36643)]
36644pub fn vpaddlq_s32(a: int32x4_t) -> int64x2_t {
36645    unsafe extern "unadjusted" {
36646        #[cfg_attr(
36647            any(target_arch = "aarch64", target_arch = "arm64ec"),
36648            link_name = "llvm.aarch64.neon.saddlp.v2i64.v4i32"
36649        )]
36650        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpaddls.v2i64.v4i32")]
36651        fn _vpaddlq_s32(a: int32x4_t) -> int64x2_t;
36652    }
36653    unsafe { _vpaddlq_s32(a) }
36654}
36655#[doc = "Unsigned Add and Accumulate Long Pairwise."]
36656#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpaddl_u8)"]
36657#[inline]
36658#[target_feature(enable = "neon")]
36659#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36660#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpaddl.u8"))]
36661#[cfg_attr(
36662    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36663    assert_instr(uaddlp)
36664)]
36665#[cfg_attr(
36666    not(target_arch = "arm"),
36667    stable(feature = "neon_intrinsics", since = "1.59.0")
36668)]
36669#[cfg_attr(
36670    target_arch = "arm",
36671    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36672)]
36673pub fn vpaddl_u8(a: uint8x8_t) -> uint16x4_t {
36674    unsafe extern "unadjusted" {
36675        #[cfg_attr(
36676            any(target_arch = "aarch64", target_arch = "arm64ec"),
36677            link_name = "llvm.aarch64.neon.uaddlp.v4i16.v8i8"
36678        )]
36679        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpaddlu.v4i16.v8i8")]
36680        fn _vpaddl_u8(a: uint8x8_t) -> uint16x4_t;
36681    }
36682    unsafe { _vpaddl_u8(a) }
36683}
36684#[doc = "Unsigned Add and Accumulate Long Pairwise."]
36685#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpaddlq_u8)"]
36686#[inline]
36687#[target_feature(enable = "neon")]
36688#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36689#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpaddl.u8"))]
36690#[cfg_attr(
36691    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36692    assert_instr(uaddlp)
36693)]
36694#[cfg_attr(
36695    not(target_arch = "arm"),
36696    stable(feature = "neon_intrinsics", since = "1.59.0")
36697)]
36698#[cfg_attr(
36699    target_arch = "arm",
36700    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36701)]
36702pub fn vpaddlq_u8(a: uint8x16_t) -> uint16x8_t {
36703    unsafe extern "unadjusted" {
36704        #[cfg_attr(
36705            any(target_arch = "aarch64", target_arch = "arm64ec"),
36706            link_name = "llvm.aarch64.neon.uaddlp.v8i16.v16i8"
36707        )]
36708        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpaddlu.v8i16.v16i8")]
36709        fn _vpaddlq_u8(a: uint8x16_t) -> uint16x8_t;
36710    }
36711    unsafe { _vpaddlq_u8(a) }
36712}
36713#[doc = "Unsigned Add and Accumulate Long Pairwise."]
36714#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpaddl_u16)"]
36715#[inline]
36716#[target_feature(enable = "neon")]
36717#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36718#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpaddl.u16"))]
36719#[cfg_attr(
36720    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36721    assert_instr(uaddlp)
36722)]
36723#[cfg_attr(
36724    not(target_arch = "arm"),
36725    stable(feature = "neon_intrinsics", since = "1.59.0")
36726)]
36727#[cfg_attr(
36728    target_arch = "arm",
36729    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36730)]
36731pub fn vpaddl_u16(a: uint16x4_t) -> uint32x2_t {
36732    unsafe extern "unadjusted" {
36733        #[cfg_attr(
36734            any(target_arch = "aarch64", target_arch = "arm64ec"),
36735            link_name = "llvm.aarch64.neon.uaddlp.v2i32.v4i16"
36736        )]
36737        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpaddlu.v2i32.v4i16")]
36738        fn _vpaddl_u16(a: uint16x4_t) -> uint32x2_t;
36739    }
36740    unsafe { _vpaddl_u16(a) }
36741}
36742#[doc = "Unsigned Add and Accumulate Long Pairwise."]
36743#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpaddlq_u16)"]
36744#[inline]
36745#[target_feature(enable = "neon")]
36746#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36747#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpaddl.u16"))]
36748#[cfg_attr(
36749    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36750    assert_instr(uaddlp)
36751)]
36752#[cfg_attr(
36753    not(target_arch = "arm"),
36754    stable(feature = "neon_intrinsics", since = "1.59.0")
36755)]
36756#[cfg_attr(
36757    target_arch = "arm",
36758    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36759)]
36760pub fn vpaddlq_u16(a: uint16x8_t) -> uint32x4_t {
36761    unsafe extern "unadjusted" {
36762        #[cfg_attr(
36763            any(target_arch = "aarch64", target_arch = "arm64ec"),
36764            link_name = "llvm.aarch64.neon.uaddlp.v4i32.v8i16"
36765        )]
36766        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpaddlu.v4i32.v8i16")]
36767        fn _vpaddlq_u16(a: uint16x8_t) -> uint32x4_t;
36768    }
36769    unsafe { _vpaddlq_u16(a) }
36770}
36771#[doc = "Unsigned Add and Accumulate Long Pairwise."]
36772#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpaddl_u32)"]
36773#[inline]
36774#[target_feature(enable = "neon")]
36775#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36776#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpaddl.u32"))]
36777#[cfg_attr(
36778    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36779    assert_instr(uaddlp)
36780)]
36781#[cfg_attr(
36782    not(target_arch = "arm"),
36783    stable(feature = "neon_intrinsics", since = "1.59.0")
36784)]
36785#[cfg_attr(
36786    target_arch = "arm",
36787    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36788)]
36789pub fn vpaddl_u32(a: uint32x2_t) -> uint64x1_t {
36790    unsafe extern "unadjusted" {
36791        #[cfg_attr(
36792            any(target_arch = "aarch64", target_arch = "arm64ec"),
36793            link_name = "llvm.aarch64.neon.uaddlp.v1i64.v2i32"
36794        )]
36795        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpaddlu.v1i64.v2i32")]
36796        fn _vpaddl_u32(a: uint32x2_t) -> uint64x1_t;
36797    }
36798    unsafe { _vpaddl_u32(a) }
36799}
36800#[doc = "Unsigned Add and Accumulate Long Pairwise."]
36801#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpaddlq_u32)"]
36802#[inline]
36803#[target_feature(enable = "neon")]
36804#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36805#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpaddl.u32"))]
36806#[cfg_attr(
36807    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36808    assert_instr(uaddlp)
36809)]
36810#[cfg_attr(
36811    not(target_arch = "arm"),
36812    stable(feature = "neon_intrinsics", since = "1.59.0")
36813)]
36814#[cfg_attr(
36815    target_arch = "arm",
36816    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36817)]
36818pub fn vpaddlq_u32(a: uint32x4_t) -> uint64x2_t {
36819    unsafe extern "unadjusted" {
36820        #[cfg_attr(
36821            any(target_arch = "aarch64", target_arch = "arm64ec"),
36822            link_name = "llvm.aarch64.neon.uaddlp.v2i64.v4i32"
36823        )]
36824        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpaddlu.v2i64.v4i32")]
36825        fn _vpaddlq_u32(a: uint32x4_t) -> uint64x2_t;
36826    }
36827    unsafe { _vpaddlq_u32(a) }
36828}
36829#[doc = "Folding maximum of adjacent pairs"]
36830#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpmax_f32)"]
36831#[inline]
36832#[target_feature(enable = "neon")]
36833#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36834#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpmax))]
36835#[cfg_attr(
36836    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36837    assert_instr(fmaxp)
36838)]
36839#[cfg_attr(
36840    not(target_arch = "arm"),
36841    stable(feature = "neon_intrinsics", since = "1.59.0")
36842)]
36843#[cfg_attr(
36844    target_arch = "arm",
36845    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36846)]
36847pub fn vpmax_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
36848    unsafe extern "unadjusted" {
36849        #[cfg_attr(
36850            any(target_arch = "aarch64", target_arch = "arm64ec"),
36851            link_name = "llvm.aarch64.neon.fmaxp.v2f32"
36852        )]
36853        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpmaxs.v2f32")]
36854        fn _vpmax_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t;
36855    }
36856    unsafe { _vpmax_f32(a, b) }
36857}
36858#[doc = "Folding maximum of adjacent pairs"]
36859#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpmax_s8)"]
36860#[inline]
36861#[target_feature(enable = "neon")]
36862#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36863#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpmax))]
36864#[cfg_attr(
36865    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36866    assert_instr(smaxp)
36867)]
36868#[cfg_attr(
36869    not(target_arch = "arm"),
36870    stable(feature = "neon_intrinsics", since = "1.59.0")
36871)]
36872#[cfg_attr(
36873    target_arch = "arm",
36874    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36875)]
36876pub fn vpmax_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
36877    unsafe extern "unadjusted" {
36878        #[cfg_attr(
36879            any(target_arch = "aarch64", target_arch = "arm64ec"),
36880            link_name = "llvm.aarch64.neon.smaxp.v8i8"
36881        )]
36882        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpmaxs.v8i8")]
36883        fn _vpmax_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t;
36884    }
36885    unsafe { _vpmax_s8(a, b) }
36886}
36887#[doc = "Folding maximum of adjacent pairs"]
36888#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpmax_s16)"]
36889#[inline]
36890#[target_feature(enable = "neon")]
36891#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36892#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpmax))]
36893#[cfg_attr(
36894    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36895    assert_instr(smaxp)
36896)]
36897#[cfg_attr(
36898    not(target_arch = "arm"),
36899    stable(feature = "neon_intrinsics", since = "1.59.0")
36900)]
36901#[cfg_attr(
36902    target_arch = "arm",
36903    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36904)]
36905pub fn vpmax_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
36906    unsafe extern "unadjusted" {
36907        #[cfg_attr(
36908            any(target_arch = "aarch64", target_arch = "arm64ec"),
36909            link_name = "llvm.aarch64.neon.smaxp.v4i16"
36910        )]
36911        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpmaxs.v4i16")]
36912        fn _vpmax_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t;
36913    }
36914    unsafe { _vpmax_s16(a, b) }
36915}
36916#[doc = "Folding maximum of adjacent pairs"]
36917#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpmax_s32)"]
36918#[inline]
36919#[target_feature(enable = "neon")]
36920#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36921#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpmax))]
36922#[cfg_attr(
36923    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36924    assert_instr(smaxp)
36925)]
36926#[cfg_attr(
36927    not(target_arch = "arm"),
36928    stable(feature = "neon_intrinsics", since = "1.59.0")
36929)]
36930#[cfg_attr(
36931    target_arch = "arm",
36932    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36933)]
36934pub fn vpmax_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
36935    unsafe extern "unadjusted" {
36936        #[cfg_attr(
36937            any(target_arch = "aarch64", target_arch = "arm64ec"),
36938            link_name = "llvm.aarch64.neon.smaxp.v2i32"
36939        )]
36940        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpmaxs.v2i32")]
36941        fn _vpmax_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t;
36942    }
36943    unsafe { _vpmax_s32(a, b) }
36944}
36945#[doc = "Folding maximum of adjacent pairs"]
36946#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpmax_u8)"]
36947#[inline]
36948#[target_feature(enable = "neon")]
36949#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36950#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpmax))]
36951#[cfg_attr(
36952    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36953    assert_instr(umaxp)
36954)]
36955#[cfg_attr(
36956    not(target_arch = "arm"),
36957    stable(feature = "neon_intrinsics", since = "1.59.0")
36958)]
36959#[cfg_attr(
36960    target_arch = "arm",
36961    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36962)]
36963pub fn vpmax_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
36964    unsafe extern "unadjusted" {
36965        #[cfg_attr(
36966            any(target_arch = "aarch64", target_arch = "arm64ec"),
36967            link_name = "llvm.aarch64.neon.umaxp.v8i8"
36968        )]
36969        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpmaxu.v8i8")]
36970        fn _vpmax_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t;
36971    }
36972    unsafe { _vpmax_u8(a, b) }
36973}
36974#[doc = "Folding maximum of adjacent pairs"]
36975#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpmax_u16)"]
36976#[inline]
36977#[target_feature(enable = "neon")]
36978#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36979#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpmax))]
36980#[cfg_attr(
36981    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36982    assert_instr(umaxp)
36983)]
36984#[cfg_attr(
36985    not(target_arch = "arm"),
36986    stable(feature = "neon_intrinsics", since = "1.59.0")
36987)]
36988#[cfg_attr(
36989    target_arch = "arm",
36990    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36991)]
36992pub fn vpmax_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
36993    unsafe extern "unadjusted" {
36994        #[cfg_attr(
36995            any(target_arch = "aarch64", target_arch = "arm64ec"),
36996            link_name = "llvm.aarch64.neon.umaxp.v4i16"
36997        )]
36998        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpmaxu.v4i16")]
36999        fn _vpmax_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t;
37000    }
37001    unsafe { _vpmax_u16(a, b) }
37002}
37003#[doc = "Folding maximum of adjacent pairs"]
37004#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpmax_u32)"]
37005#[inline]
37006#[target_feature(enable = "neon")]
37007#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37008#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpmax))]
37009#[cfg_attr(
37010    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37011    assert_instr(umaxp)
37012)]
37013#[cfg_attr(
37014    not(target_arch = "arm"),
37015    stable(feature = "neon_intrinsics", since = "1.59.0")
37016)]
37017#[cfg_attr(
37018    target_arch = "arm",
37019    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37020)]
37021pub fn vpmax_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
37022    unsafe extern "unadjusted" {
37023        #[cfg_attr(
37024            any(target_arch = "aarch64", target_arch = "arm64ec"),
37025            link_name = "llvm.aarch64.neon.umaxp.v2i32"
37026        )]
37027        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpmaxu.v2i32")]
37028        fn _vpmax_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t;
37029    }
37030    unsafe { _vpmax_u32(a, b) }
37031}
37032#[doc = "Folding minimum of adjacent pairs"]
37033#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpmin_f32)"]
37034#[inline]
37035#[target_feature(enable = "neon")]
37036#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37037#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpmin))]
37038#[cfg_attr(
37039    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37040    assert_instr(fminp)
37041)]
37042#[cfg_attr(
37043    not(target_arch = "arm"),
37044    stable(feature = "neon_intrinsics", since = "1.59.0")
37045)]
37046#[cfg_attr(
37047    target_arch = "arm",
37048    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37049)]
37050pub fn vpmin_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
37051    unsafe extern "unadjusted" {
37052        #[cfg_attr(
37053            any(target_arch = "aarch64", target_arch = "arm64ec"),
37054            link_name = "llvm.aarch64.neon.fminp.v2f32"
37055        )]
37056        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpmins.v2f32")]
37057        fn _vpmin_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t;
37058    }
37059    unsafe { _vpmin_f32(a, b) }
37060}
37061#[doc = "Folding minimum of adjacent pairs"]
37062#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpmin_s8)"]
37063#[inline]
37064#[target_feature(enable = "neon")]
37065#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37066#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpmin))]
37067#[cfg_attr(
37068    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37069    assert_instr(sminp)
37070)]
37071#[cfg_attr(
37072    not(target_arch = "arm"),
37073    stable(feature = "neon_intrinsics", since = "1.59.0")
37074)]
37075#[cfg_attr(
37076    target_arch = "arm",
37077    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37078)]
37079pub fn vpmin_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
37080    unsafe extern "unadjusted" {
37081        #[cfg_attr(
37082            any(target_arch = "aarch64", target_arch = "arm64ec"),
37083            link_name = "llvm.aarch64.neon.sminp.v8i8"
37084        )]
37085        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpmins.v8i8")]
37086        fn _vpmin_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t;
37087    }
37088    unsafe { _vpmin_s8(a, b) }
37089}
37090#[doc = "Folding minimum of adjacent pairs"]
37091#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpmin_s16)"]
37092#[inline]
37093#[target_feature(enable = "neon")]
37094#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37095#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpmin))]
37096#[cfg_attr(
37097    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37098    assert_instr(sminp)
37099)]
37100#[cfg_attr(
37101    not(target_arch = "arm"),
37102    stable(feature = "neon_intrinsics", since = "1.59.0")
37103)]
37104#[cfg_attr(
37105    target_arch = "arm",
37106    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37107)]
37108pub fn vpmin_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
37109    unsafe extern "unadjusted" {
37110        #[cfg_attr(
37111            any(target_arch = "aarch64", target_arch = "arm64ec"),
37112            link_name = "llvm.aarch64.neon.sminp.v4i16"
37113        )]
37114        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpmins.v4i16")]
37115        fn _vpmin_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t;
37116    }
37117    unsafe { _vpmin_s16(a, b) }
37118}
37119#[doc = "Folding minimum of adjacent pairs"]
37120#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpmin_s32)"]
37121#[inline]
37122#[target_feature(enable = "neon")]
37123#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37124#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpmin))]
37125#[cfg_attr(
37126    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37127    assert_instr(sminp)
37128)]
37129#[cfg_attr(
37130    not(target_arch = "arm"),
37131    stable(feature = "neon_intrinsics", since = "1.59.0")
37132)]
37133#[cfg_attr(
37134    target_arch = "arm",
37135    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37136)]
37137pub fn vpmin_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
37138    unsafe extern "unadjusted" {
37139        #[cfg_attr(
37140            any(target_arch = "aarch64", target_arch = "arm64ec"),
37141            link_name = "llvm.aarch64.neon.sminp.v2i32"
37142        )]
37143        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpmins.v2i32")]
37144        fn _vpmin_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t;
37145    }
37146    unsafe { _vpmin_s32(a, b) }
37147}
37148#[doc = "Folding minimum of adjacent pairs"]
37149#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpmin_u8)"]
37150#[inline]
37151#[target_feature(enable = "neon")]
37152#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37153#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpmin))]
37154#[cfg_attr(
37155    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37156    assert_instr(uminp)
37157)]
37158#[cfg_attr(
37159    not(target_arch = "arm"),
37160    stable(feature = "neon_intrinsics", since = "1.59.0")
37161)]
37162#[cfg_attr(
37163    target_arch = "arm",
37164    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37165)]
37166pub fn vpmin_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
37167    unsafe extern "unadjusted" {
37168        #[cfg_attr(
37169            any(target_arch = "aarch64", target_arch = "arm64ec"),
37170            link_name = "llvm.aarch64.neon.uminp.v8i8"
37171        )]
37172        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpminu.v8i8")]
37173        fn _vpmin_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t;
37174    }
37175    unsafe { _vpmin_u8(a, b) }
37176}
37177#[doc = "Folding minimum of adjacent pairs"]
37178#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpmin_u16)"]
37179#[inline]
37180#[target_feature(enable = "neon")]
37181#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37182#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpmin))]
37183#[cfg_attr(
37184    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37185    assert_instr(uminp)
37186)]
37187#[cfg_attr(
37188    not(target_arch = "arm"),
37189    stable(feature = "neon_intrinsics", since = "1.59.0")
37190)]
37191#[cfg_attr(
37192    target_arch = "arm",
37193    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37194)]
37195pub fn vpmin_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
37196    unsafe extern "unadjusted" {
37197        #[cfg_attr(
37198            any(target_arch = "aarch64", target_arch = "arm64ec"),
37199            link_name = "llvm.aarch64.neon.uminp.v4i16"
37200        )]
37201        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpminu.v4i16")]
37202        fn _vpmin_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t;
37203    }
37204    unsafe { _vpmin_u16(a, b) }
37205}
37206#[doc = "Folding minimum of adjacent pairs"]
37207#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpmin_u32)"]
37208#[inline]
37209#[target_feature(enable = "neon")]
37210#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37211#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpmin))]
37212#[cfg_attr(
37213    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37214    assert_instr(uminp)
37215)]
37216#[cfg_attr(
37217    not(target_arch = "arm"),
37218    stable(feature = "neon_intrinsics", since = "1.59.0")
37219)]
37220#[cfg_attr(
37221    target_arch = "arm",
37222    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37223)]
37224pub fn vpmin_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
37225    unsafe extern "unadjusted" {
37226        #[cfg_attr(
37227            any(target_arch = "aarch64", target_arch = "arm64ec"),
37228            link_name = "llvm.aarch64.neon.uminp.v2i32"
37229        )]
37230        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpminu.v2i32")]
37231        fn _vpmin_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t;
37232    }
37233    unsafe { _vpmin_u32(a, b) }
37234}
37235#[doc = "Signed saturating Absolute value"]
37236#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqabs_s8)"]
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("vqabs.s8"))]
37241#[cfg_attr(
37242    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37243    assert_instr(sqabs)
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 vqabs_s8(a: int8x8_t) -> int8x8_t {
37254    unsafe extern "unadjusted" {
37255        #[cfg_attr(
37256            any(target_arch = "aarch64", target_arch = "arm64ec"),
37257            link_name = "llvm.aarch64.neon.sqabs.v8i8"
37258        )]
37259        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqabs.v8i8")]
37260        fn _vqabs_s8(a: int8x8_t) -> int8x8_t;
37261    }
37262    unsafe { _vqabs_s8(a) }
37263}
37264#[doc = "Signed saturating Absolute value"]
37265#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqabsq_s8)"]
37266#[inline]
37267#[target_feature(enable = "neon")]
37268#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37269#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqabs.s8"))]
37270#[cfg_attr(
37271    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37272    assert_instr(sqabs)
37273)]
37274#[cfg_attr(
37275    not(target_arch = "arm"),
37276    stable(feature = "neon_intrinsics", since = "1.59.0")
37277)]
37278#[cfg_attr(
37279    target_arch = "arm",
37280    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37281)]
37282pub fn vqabsq_s8(a: int8x16_t) -> int8x16_t {
37283    unsafe extern "unadjusted" {
37284        #[cfg_attr(
37285            any(target_arch = "aarch64", target_arch = "arm64ec"),
37286            link_name = "llvm.aarch64.neon.sqabs.v16i8"
37287        )]
37288        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqabs.v16i8")]
37289        fn _vqabsq_s8(a: int8x16_t) -> int8x16_t;
37290    }
37291    unsafe { _vqabsq_s8(a) }
37292}
37293#[doc = "Signed saturating Absolute value"]
37294#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqabs_s16)"]
37295#[inline]
37296#[target_feature(enable = "neon")]
37297#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37298#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqabs.s16"))]
37299#[cfg_attr(
37300    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37301    assert_instr(sqabs)
37302)]
37303#[cfg_attr(
37304    not(target_arch = "arm"),
37305    stable(feature = "neon_intrinsics", since = "1.59.0")
37306)]
37307#[cfg_attr(
37308    target_arch = "arm",
37309    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37310)]
37311pub fn vqabs_s16(a: int16x4_t) -> int16x4_t {
37312    unsafe extern "unadjusted" {
37313        #[cfg_attr(
37314            any(target_arch = "aarch64", target_arch = "arm64ec"),
37315            link_name = "llvm.aarch64.neon.sqabs.v4i16"
37316        )]
37317        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqabs.v4i16")]
37318        fn _vqabs_s16(a: int16x4_t) -> int16x4_t;
37319    }
37320    unsafe { _vqabs_s16(a) }
37321}
37322#[doc = "Signed saturating Absolute value"]
37323#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqabsq_s16)"]
37324#[inline]
37325#[target_feature(enable = "neon")]
37326#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37327#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqabs.s16"))]
37328#[cfg_attr(
37329    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37330    assert_instr(sqabs)
37331)]
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 vqabsq_s16(a: int16x8_t) -> int16x8_t {
37341    unsafe extern "unadjusted" {
37342        #[cfg_attr(
37343            any(target_arch = "aarch64", target_arch = "arm64ec"),
37344            link_name = "llvm.aarch64.neon.sqabs.v8i16"
37345        )]
37346        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqabs.v8i16")]
37347        fn _vqabsq_s16(a: int16x8_t) -> int16x8_t;
37348    }
37349    unsafe { _vqabsq_s16(a) }
37350}
37351#[doc = "Signed saturating Absolute value"]
37352#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqabs_s32)"]
37353#[inline]
37354#[target_feature(enable = "neon")]
37355#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37356#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqabs.s32"))]
37357#[cfg_attr(
37358    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37359    assert_instr(sqabs)
37360)]
37361#[cfg_attr(
37362    not(target_arch = "arm"),
37363    stable(feature = "neon_intrinsics", since = "1.59.0")
37364)]
37365#[cfg_attr(
37366    target_arch = "arm",
37367    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37368)]
37369pub fn vqabs_s32(a: int32x2_t) -> int32x2_t {
37370    unsafe extern "unadjusted" {
37371        #[cfg_attr(
37372            any(target_arch = "aarch64", target_arch = "arm64ec"),
37373            link_name = "llvm.aarch64.neon.sqabs.v2i32"
37374        )]
37375        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqabs.v2i32")]
37376        fn _vqabs_s32(a: int32x2_t) -> int32x2_t;
37377    }
37378    unsafe { _vqabs_s32(a) }
37379}
37380#[doc = "Signed saturating Absolute value"]
37381#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqabsq_s32)"]
37382#[inline]
37383#[target_feature(enable = "neon")]
37384#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37385#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqabs.s32"))]
37386#[cfg_attr(
37387    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37388    assert_instr(sqabs)
37389)]
37390#[cfg_attr(
37391    not(target_arch = "arm"),
37392    stable(feature = "neon_intrinsics", since = "1.59.0")
37393)]
37394#[cfg_attr(
37395    target_arch = "arm",
37396    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37397)]
37398pub fn vqabsq_s32(a: int32x4_t) -> int32x4_t {
37399    unsafe extern "unadjusted" {
37400        #[cfg_attr(
37401            any(target_arch = "aarch64", target_arch = "arm64ec"),
37402            link_name = "llvm.aarch64.neon.sqabs.v4i32"
37403        )]
37404        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqabs.v4i32")]
37405        fn _vqabsq_s32(a: int32x4_t) -> int32x4_t;
37406    }
37407    unsafe { _vqabsq_s32(a) }
37408}
37409#[doc = "Saturating add"]
37410#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqadd_s8)"]
37411#[inline]
37412#[target_feature(enable = "neon")]
37413#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37414#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.s8"))]
37415#[cfg_attr(
37416    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37417    assert_instr(sqadd)
37418)]
37419#[cfg_attr(
37420    not(target_arch = "arm"),
37421    stable(feature = "neon_intrinsics", since = "1.59.0")
37422)]
37423#[cfg_attr(
37424    target_arch = "arm",
37425    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37426)]
37427pub fn vqadd_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
37428    unsafe { simd_saturating_add(a, b) }
37429}
37430#[doc = "Saturating add"]
37431#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqaddq_s8)"]
37432#[inline]
37433#[target_feature(enable = "neon")]
37434#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37435#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.s8"))]
37436#[cfg_attr(
37437    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37438    assert_instr(sqadd)
37439)]
37440#[cfg_attr(
37441    not(target_arch = "arm"),
37442    stable(feature = "neon_intrinsics", since = "1.59.0")
37443)]
37444#[cfg_attr(
37445    target_arch = "arm",
37446    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37447)]
37448pub fn vqaddq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
37449    unsafe { simd_saturating_add(a, b) }
37450}
37451#[doc = "Saturating add"]
37452#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqadd_s16)"]
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("vqadd.s16"))]
37457#[cfg_attr(
37458    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37459    assert_instr(sqadd)
37460)]
37461#[cfg_attr(
37462    not(target_arch = "arm"),
37463    stable(feature = "neon_intrinsics", since = "1.59.0")
37464)]
37465#[cfg_attr(
37466    target_arch = "arm",
37467    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37468)]
37469pub fn vqadd_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
37470    unsafe { simd_saturating_add(a, b) }
37471}
37472#[doc = "Saturating add"]
37473#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqaddq_s16)"]
37474#[inline]
37475#[target_feature(enable = "neon")]
37476#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37477#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.s16"))]
37478#[cfg_attr(
37479    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37480    assert_instr(sqadd)
37481)]
37482#[cfg_attr(
37483    not(target_arch = "arm"),
37484    stable(feature = "neon_intrinsics", since = "1.59.0")
37485)]
37486#[cfg_attr(
37487    target_arch = "arm",
37488    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37489)]
37490pub fn vqaddq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
37491    unsafe { simd_saturating_add(a, b) }
37492}
37493#[doc = "Saturating add"]
37494#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqadd_s32)"]
37495#[inline]
37496#[target_feature(enable = "neon")]
37497#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37498#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.s32"))]
37499#[cfg_attr(
37500    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37501    assert_instr(sqadd)
37502)]
37503#[cfg_attr(
37504    not(target_arch = "arm"),
37505    stable(feature = "neon_intrinsics", since = "1.59.0")
37506)]
37507#[cfg_attr(
37508    target_arch = "arm",
37509    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37510)]
37511pub fn vqadd_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
37512    unsafe { simd_saturating_add(a, b) }
37513}
37514#[doc = "Saturating add"]
37515#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqaddq_s32)"]
37516#[inline]
37517#[target_feature(enable = "neon")]
37518#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37519#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.s32"))]
37520#[cfg_attr(
37521    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37522    assert_instr(sqadd)
37523)]
37524#[cfg_attr(
37525    not(target_arch = "arm"),
37526    stable(feature = "neon_intrinsics", since = "1.59.0")
37527)]
37528#[cfg_attr(
37529    target_arch = "arm",
37530    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37531)]
37532pub fn vqaddq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
37533    unsafe { simd_saturating_add(a, b) }
37534}
37535#[doc = "Saturating add"]
37536#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqadd_s64)"]
37537#[inline]
37538#[target_feature(enable = "neon")]
37539#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37540#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.s64"))]
37541#[cfg_attr(
37542    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37543    assert_instr(sqadd)
37544)]
37545#[cfg_attr(
37546    not(target_arch = "arm"),
37547    stable(feature = "neon_intrinsics", since = "1.59.0")
37548)]
37549#[cfg_attr(
37550    target_arch = "arm",
37551    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37552)]
37553pub fn vqadd_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t {
37554    unsafe { simd_saturating_add(a, b) }
37555}
37556#[doc = "Saturating add"]
37557#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqaddq_s64)"]
37558#[inline]
37559#[target_feature(enable = "neon")]
37560#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37561#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.s64"))]
37562#[cfg_attr(
37563    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37564    assert_instr(sqadd)
37565)]
37566#[cfg_attr(
37567    not(target_arch = "arm"),
37568    stable(feature = "neon_intrinsics", since = "1.59.0")
37569)]
37570#[cfg_attr(
37571    target_arch = "arm",
37572    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37573)]
37574pub fn vqaddq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t {
37575    unsafe { simd_saturating_add(a, b) }
37576}
37577#[doc = "Saturating add"]
37578#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqadd_u8)"]
37579#[inline]
37580#[target_feature(enable = "neon")]
37581#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37582#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.u8"))]
37583#[cfg_attr(
37584    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37585    assert_instr(uqadd)
37586)]
37587#[cfg_attr(
37588    not(target_arch = "arm"),
37589    stable(feature = "neon_intrinsics", since = "1.59.0")
37590)]
37591#[cfg_attr(
37592    target_arch = "arm",
37593    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37594)]
37595pub fn vqadd_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
37596    unsafe { simd_saturating_add(a, b) }
37597}
37598#[doc = "Saturating add"]
37599#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqaddq_u8)"]
37600#[inline]
37601#[target_feature(enable = "neon")]
37602#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37603#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.u8"))]
37604#[cfg_attr(
37605    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37606    assert_instr(uqadd)
37607)]
37608#[cfg_attr(
37609    not(target_arch = "arm"),
37610    stable(feature = "neon_intrinsics", since = "1.59.0")
37611)]
37612#[cfg_attr(
37613    target_arch = "arm",
37614    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37615)]
37616pub fn vqaddq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
37617    unsafe { simd_saturating_add(a, b) }
37618}
37619#[doc = "Saturating add"]
37620#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqadd_u16)"]
37621#[inline]
37622#[target_feature(enable = "neon")]
37623#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37624#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.u16"))]
37625#[cfg_attr(
37626    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37627    assert_instr(uqadd)
37628)]
37629#[cfg_attr(
37630    not(target_arch = "arm"),
37631    stable(feature = "neon_intrinsics", since = "1.59.0")
37632)]
37633#[cfg_attr(
37634    target_arch = "arm",
37635    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37636)]
37637pub fn vqadd_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
37638    unsafe { simd_saturating_add(a, b) }
37639}
37640#[doc = "Saturating add"]
37641#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqaddq_u16)"]
37642#[inline]
37643#[target_feature(enable = "neon")]
37644#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37645#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.u16"))]
37646#[cfg_attr(
37647    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37648    assert_instr(uqadd)
37649)]
37650#[cfg_attr(
37651    not(target_arch = "arm"),
37652    stable(feature = "neon_intrinsics", since = "1.59.0")
37653)]
37654#[cfg_attr(
37655    target_arch = "arm",
37656    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37657)]
37658pub fn vqaddq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
37659    unsafe { simd_saturating_add(a, b) }
37660}
37661#[doc = "Saturating add"]
37662#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqadd_u32)"]
37663#[inline]
37664#[target_feature(enable = "neon")]
37665#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37666#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.u32"))]
37667#[cfg_attr(
37668    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37669    assert_instr(uqadd)
37670)]
37671#[cfg_attr(
37672    not(target_arch = "arm"),
37673    stable(feature = "neon_intrinsics", since = "1.59.0")
37674)]
37675#[cfg_attr(
37676    target_arch = "arm",
37677    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37678)]
37679pub fn vqadd_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
37680    unsafe { simd_saturating_add(a, b) }
37681}
37682#[doc = "Saturating add"]
37683#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqaddq_u32)"]
37684#[inline]
37685#[target_feature(enable = "neon")]
37686#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37687#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.u32"))]
37688#[cfg_attr(
37689    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37690    assert_instr(uqadd)
37691)]
37692#[cfg_attr(
37693    not(target_arch = "arm"),
37694    stable(feature = "neon_intrinsics", since = "1.59.0")
37695)]
37696#[cfg_attr(
37697    target_arch = "arm",
37698    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37699)]
37700pub fn vqaddq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
37701    unsafe { simd_saturating_add(a, b) }
37702}
37703#[doc = "Saturating add"]
37704#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqadd_u64)"]
37705#[inline]
37706#[target_feature(enable = "neon")]
37707#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37708#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.u64"))]
37709#[cfg_attr(
37710    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37711    assert_instr(uqadd)
37712)]
37713#[cfg_attr(
37714    not(target_arch = "arm"),
37715    stable(feature = "neon_intrinsics", since = "1.59.0")
37716)]
37717#[cfg_attr(
37718    target_arch = "arm",
37719    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37720)]
37721pub fn vqadd_u64(a: uint64x1_t, b: uint64x1_t) -> uint64x1_t {
37722    unsafe { simd_saturating_add(a, b) }
37723}
37724#[doc = "Saturating add"]
37725#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqaddq_u64)"]
37726#[inline]
37727#[target_feature(enable = "neon")]
37728#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37729#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.u64"))]
37730#[cfg_attr(
37731    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37732    assert_instr(uqadd)
37733)]
37734#[cfg_attr(
37735    not(target_arch = "arm"),
37736    stable(feature = "neon_intrinsics", since = "1.59.0")
37737)]
37738#[cfg_attr(
37739    target_arch = "arm",
37740    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37741)]
37742pub fn vqaddq_u64(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
37743    unsafe { simd_saturating_add(a, b) }
37744}
37745#[doc = "Vector widening saturating doubling multiply accumulate with scalar"]
37746#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlal_lane_s16)"]
37747#[inline]
37748#[target_feature(enable = "neon")]
37749#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37750#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmlal, N = 2))]
37751#[cfg_attr(
37752    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37753    assert_instr(sqdmlal, N = 2)
37754)]
37755#[rustc_legacy_const_generics(3)]
37756#[cfg_attr(
37757    not(target_arch = "arm"),
37758    stable(feature = "neon_intrinsics", since = "1.59.0")
37759)]
37760#[cfg_attr(
37761    target_arch = "arm",
37762    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37763)]
37764pub fn vqdmlal_lane_s16<const N: i32>(a: int32x4_t, b: int16x4_t, c: int16x4_t) -> int32x4_t {
37765    static_assert_uimm_bits!(N, 2);
37766    vqaddq_s32(a, vqdmull_lane_s16::<N>(b, c))
37767}
37768#[doc = "Vector widening saturating doubling multiply accumulate with scalar"]
37769#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlal_lane_s32)"]
37770#[inline]
37771#[target_feature(enable = "neon")]
37772#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37773#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmlal, N = 1))]
37774#[cfg_attr(
37775    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37776    assert_instr(sqdmlal, N = 1)
37777)]
37778#[rustc_legacy_const_generics(3)]
37779#[cfg_attr(
37780    not(target_arch = "arm"),
37781    stable(feature = "neon_intrinsics", since = "1.59.0")
37782)]
37783#[cfg_attr(
37784    target_arch = "arm",
37785    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37786)]
37787pub fn vqdmlal_lane_s32<const N: i32>(a: int64x2_t, b: int32x2_t, c: int32x2_t) -> int64x2_t {
37788    static_assert_uimm_bits!(N, 1);
37789    vqaddq_s64(a, vqdmull_lane_s32::<N>(b, c))
37790}
37791#[doc = "Vector widening saturating doubling multiply accumulate with scalar"]
37792#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlal_n_s16)"]
37793#[inline]
37794#[target_feature(enable = "neon")]
37795#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37796#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmlal))]
37797#[cfg_attr(
37798    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37799    assert_instr(sqdmlal)
37800)]
37801#[cfg_attr(
37802    not(target_arch = "arm"),
37803    stable(feature = "neon_intrinsics", since = "1.59.0")
37804)]
37805#[cfg_attr(
37806    target_arch = "arm",
37807    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37808)]
37809pub fn vqdmlal_n_s16(a: int32x4_t, b: int16x4_t, c: i16) -> int32x4_t {
37810    vqaddq_s32(a, vqdmull_n_s16(b, c))
37811}
37812#[doc = "Vector widening saturating doubling multiply accumulate with scalar"]
37813#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlal_n_s32)"]
37814#[inline]
37815#[target_feature(enable = "neon")]
37816#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37817#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmlal))]
37818#[cfg_attr(
37819    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37820    assert_instr(sqdmlal)
37821)]
37822#[cfg_attr(
37823    not(target_arch = "arm"),
37824    stable(feature = "neon_intrinsics", since = "1.59.0")
37825)]
37826#[cfg_attr(
37827    target_arch = "arm",
37828    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37829)]
37830pub fn vqdmlal_n_s32(a: int64x2_t, b: int32x2_t, c: i32) -> int64x2_t {
37831    vqaddq_s64(a, vqdmull_n_s32(b, c))
37832}
37833#[doc = "Signed saturating doubling multiply-add long"]
37834#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlal_s16)"]
37835#[inline]
37836#[target_feature(enable = "neon")]
37837#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37838#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmlal))]
37839#[cfg_attr(
37840    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37841    assert_instr(sqdmlal)
37842)]
37843#[cfg_attr(
37844    not(target_arch = "arm"),
37845    stable(feature = "neon_intrinsics", since = "1.59.0")
37846)]
37847#[cfg_attr(
37848    target_arch = "arm",
37849    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37850)]
37851pub fn vqdmlal_s16(a: int32x4_t, b: int16x4_t, c: int16x4_t) -> int32x4_t {
37852    vqaddq_s32(a, vqdmull_s16(b, c))
37853}
37854#[doc = "Signed saturating doubling multiply-add long"]
37855#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlal_s32)"]
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(vqdmlal))]
37860#[cfg_attr(
37861    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37862    assert_instr(sqdmlal)
37863)]
37864#[cfg_attr(
37865    not(target_arch = "arm"),
37866    stable(feature = "neon_intrinsics", since = "1.59.0")
37867)]
37868#[cfg_attr(
37869    target_arch = "arm",
37870    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37871)]
37872pub fn vqdmlal_s32(a: int64x2_t, b: int32x2_t, c: int32x2_t) -> int64x2_t {
37873    vqaddq_s64(a, vqdmull_s32(b, c))
37874}
37875#[doc = "Vector widening saturating doubling multiply subtract with scalar"]
37876#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlsl_lane_s16)"]
37877#[inline]
37878#[target_feature(enable = "neon")]
37879#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37880#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmlsl, N = 2))]
37881#[cfg_attr(
37882    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37883    assert_instr(sqdmlsl, N = 2)
37884)]
37885#[rustc_legacy_const_generics(3)]
37886#[cfg_attr(
37887    not(target_arch = "arm"),
37888    stable(feature = "neon_intrinsics", since = "1.59.0")
37889)]
37890#[cfg_attr(
37891    target_arch = "arm",
37892    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37893)]
37894pub fn vqdmlsl_lane_s16<const N: i32>(a: int32x4_t, b: int16x4_t, c: int16x4_t) -> int32x4_t {
37895    static_assert_uimm_bits!(N, 2);
37896    vqsubq_s32(a, vqdmull_lane_s16::<N>(b, c))
37897}
37898#[doc = "Vector widening saturating doubling multiply subtract with scalar"]
37899#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlsl_lane_s32)"]
37900#[inline]
37901#[target_feature(enable = "neon")]
37902#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37903#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmlsl, N = 1))]
37904#[cfg_attr(
37905    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37906    assert_instr(sqdmlsl, N = 1)
37907)]
37908#[rustc_legacy_const_generics(3)]
37909#[cfg_attr(
37910    not(target_arch = "arm"),
37911    stable(feature = "neon_intrinsics", since = "1.59.0")
37912)]
37913#[cfg_attr(
37914    target_arch = "arm",
37915    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37916)]
37917pub fn vqdmlsl_lane_s32<const N: i32>(a: int64x2_t, b: int32x2_t, c: int32x2_t) -> int64x2_t {
37918    static_assert_uimm_bits!(N, 1);
37919    vqsubq_s64(a, vqdmull_lane_s32::<N>(b, c))
37920}
37921#[doc = "Vector widening saturating doubling multiply subtract with scalar"]
37922#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlsl_n_s16)"]
37923#[inline]
37924#[target_feature(enable = "neon")]
37925#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37926#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmlsl))]
37927#[cfg_attr(
37928    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37929    assert_instr(sqdmlsl)
37930)]
37931#[cfg_attr(
37932    not(target_arch = "arm"),
37933    stable(feature = "neon_intrinsics", since = "1.59.0")
37934)]
37935#[cfg_attr(
37936    target_arch = "arm",
37937    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37938)]
37939pub fn vqdmlsl_n_s16(a: int32x4_t, b: int16x4_t, c: i16) -> int32x4_t {
37940    vqsubq_s32(a, vqdmull_n_s16(b, c))
37941}
37942#[doc = "Vector widening saturating doubling multiply subtract with scalar"]
37943#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlsl_n_s32)"]
37944#[inline]
37945#[target_feature(enable = "neon")]
37946#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37947#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmlsl))]
37948#[cfg_attr(
37949    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37950    assert_instr(sqdmlsl)
37951)]
37952#[cfg_attr(
37953    not(target_arch = "arm"),
37954    stable(feature = "neon_intrinsics", since = "1.59.0")
37955)]
37956#[cfg_attr(
37957    target_arch = "arm",
37958    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37959)]
37960pub fn vqdmlsl_n_s32(a: int64x2_t, b: int32x2_t, c: i32) -> int64x2_t {
37961    vqsubq_s64(a, vqdmull_n_s32(b, c))
37962}
37963#[doc = "Signed saturating doubling multiply-subtract long"]
37964#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlsl_s16)"]
37965#[inline]
37966#[target_feature(enable = "neon")]
37967#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37968#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmlsl))]
37969#[cfg_attr(
37970    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37971    assert_instr(sqdmlsl)
37972)]
37973#[cfg_attr(
37974    not(target_arch = "arm"),
37975    stable(feature = "neon_intrinsics", since = "1.59.0")
37976)]
37977#[cfg_attr(
37978    target_arch = "arm",
37979    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37980)]
37981pub fn vqdmlsl_s16(a: int32x4_t, b: int16x4_t, c: int16x4_t) -> int32x4_t {
37982    vqsubq_s32(a, vqdmull_s16(b, c))
37983}
37984#[doc = "Signed saturating doubling multiply-subtract long"]
37985#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlsl_s32)"]
37986#[inline]
37987#[target_feature(enable = "neon")]
37988#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37989#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmlsl))]
37990#[cfg_attr(
37991    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37992    assert_instr(sqdmlsl)
37993)]
37994#[cfg_attr(
37995    not(target_arch = "arm"),
37996    stable(feature = "neon_intrinsics", since = "1.59.0")
37997)]
37998#[cfg_attr(
37999    target_arch = "arm",
38000    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38001)]
38002pub fn vqdmlsl_s32(a: int64x2_t, b: int32x2_t, c: int32x2_t) -> int64x2_t {
38003    vqsubq_s64(a, vqdmull_s32(b, c))
38004}
38005#[doc = "Vector saturating doubling multiply high by scalar"]
38006#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulh_laneq_s16)"]
38007#[inline]
38008#[target_feature(enable = "neon")]
38009#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38010#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmulh, LANE = 0))]
38011#[cfg_attr(
38012    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38013    assert_instr(sqdmulh, LANE = 0)
38014)]
38015#[rustc_legacy_const_generics(2)]
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 vqdmulh_laneq_s16<const LANE: i32>(a: int16x4_t, b: int16x8_t) -> int16x4_t {
38025    static_assert_uimm_bits!(LANE, 3);
38026    unsafe { vqdmulh_s16(a, vdup_n_s16(simd_extract!(b, LANE as u32))) }
38027}
38028#[doc = "Vector saturating doubling multiply high by scalar"]
38029#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulhq_laneq_s16)"]
38030#[inline]
38031#[target_feature(enable = "neon")]
38032#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38033#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmulh, LANE = 0))]
38034#[cfg_attr(
38035    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38036    assert_instr(sqdmulh, LANE = 0)
38037)]
38038#[rustc_legacy_const_generics(2)]
38039#[cfg_attr(
38040    not(target_arch = "arm"),
38041    stable(feature = "neon_intrinsics", since = "1.59.0")
38042)]
38043#[cfg_attr(
38044    target_arch = "arm",
38045    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38046)]
38047pub fn vqdmulhq_laneq_s16<const LANE: i32>(a: int16x8_t, b: int16x8_t) -> int16x8_t {
38048    static_assert_uimm_bits!(LANE, 3);
38049    unsafe { vqdmulhq_s16(a, vdupq_n_s16(simd_extract!(b, LANE as u32))) }
38050}
38051#[doc = "Vector saturating doubling multiply high by scalar"]
38052#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulh_laneq_s32)"]
38053#[inline]
38054#[target_feature(enable = "neon")]
38055#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38056#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmulh, LANE = 0))]
38057#[cfg_attr(
38058    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38059    assert_instr(sqdmulh, LANE = 0)
38060)]
38061#[rustc_legacy_const_generics(2)]
38062#[cfg_attr(
38063    not(target_arch = "arm"),
38064    stable(feature = "neon_intrinsics", since = "1.59.0")
38065)]
38066#[cfg_attr(
38067    target_arch = "arm",
38068    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38069)]
38070pub fn vqdmulh_laneq_s32<const LANE: i32>(a: int32x2_t, b: int32x4_t) -> int32x2_t {
38071    static_assert_uimm_bits!(LANE, 2);
38072    unsafe { vqdmulh_s32(a, vdup_n_s32(simd_extract!(b, LANE as u32))) }
38073}
38074#[doc = "Vector saturating doubling multiply high by scalar"]
38075#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulhq_laneq_s32)"]
38076#[inline]
38077#[target_feature(enable = "neon")]
38078#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38079#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmulh, LANE = 0))]
38080#[cfg_attr(
38081    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38082    assert_instr(sqdmulh, LANE = 0)
38083)]
38084#[rustc_legacy_const_generics(2)]
38085#[cfg_attr(
38086    not(target_arch = "arm"),
38087    stable(feature = "neon_intrinsics", since = "1.59.0")
38088)]
38089#[cfg_attr(
38090    target_arch = "arm",
38091    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38092)]
38093pub fn vqdmulhq_laneq_s32<const LANE: i32>(a: int32x4_t, b: int32x4_t) -> int32x4_t {
38094    static_assert_uimm_bits!(LANE, 2);
38095    unsafe { vqdmulhq_s32(a, vdupq_n_s32(simd_extract!(b, LANE as u32))) }
38096}
38097#[doc = "Vector saturating doubling multiply high with scalar"]
38098#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulh_n_s16)"]
38099#[inline]
38100#[target_feature(enable = "neon")]
38101#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38102#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmulh))]
38103#[cfg_attr(
38104    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38105    assert_instr(sqdmulh)
38106)]
38107#[cfg_attr(
38108    not(target_arch = "arm"),
38109    stable(feature = "neon_intrinsics", since = "1.59.0")
38110)]
38111#[cfg_attr(
38112    target_arch = "arm",
38113    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38114)]
38115pub fn vqdmulh_n_s16(a: int16x4_t, b: i16) -> int16x4_t {
38116    let b: int16x4_t = vdup_n_s16(b);
38117    vqdmulh_s16(a, b)
38118}
38119#[doc = "Vector saturating doubling multiply high with scalar"]
38120#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulhq_n_s16)"]
38121#[inline]
38122#[target_feature(enable = "neon")]
38123#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38124#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmulh))]
38125#[cfg_attr(
38126    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38127    assert_instr(sqdmulh)
38128)]
38129#[cfg_attr(
38130    not(target_arch = "arm"),
38131    stable(feature = "neon_intrinsics", since = "1.59.0")
38132)]
38133#[cfg_attr(
38134    target_arch = "arm",
38135    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38136)]
38137pub fn vqdmulhq_n_s16(a: int16x8_t, b: i16) -> int16x8_t {
38138    let b: int16x8_t = vdupq_n_s16(b);
38139    vqdmulhq_s16(a, b)
38140}
38141#[doc = "Vector saturating doubling multiply high with scalar"]
38142#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulh_n_s32)"]
38143#[inline]
38144#[target_feature(enable = "neon")]
38145#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38146#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmulh))]
38147#[cfg_attr(
38148    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38149    assert_instr(sqdmulh)
38150)]
38151#[cfg_attr(
38152    not(target_arch = "arm"),
38153    stable(feature = "neon_intrinsics", since = "1.59.0")
38154)]
38155#[cfg_attr(
38156    target_arch = "arm",
38157    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38158)]
38159pub fn vqdmulh_n_s32(a: int32x2_t, b: i32) -> int32x2_t {
38160    let b: int32x2_t = vdup_n_s32(b);
38161    vqdmulh_s32(a, b)
38162}
38163#[doc = "Vector saturating doubling multiply high with scalar"]
38164#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulhq_n_s32)"]
38165#[inline]
38166#[target_feature(enable = "neon")]
38167#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38168#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmulh))]
38169#[cfg_attr(
38170    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38171    assert_instr(sqdmulh)
38172)]
38173#[cfg_attr(
38174    not(target_arch = "arm"),
38175    stable(feature = "neon_intrinsics", since = "1.59.0")
38176)]
38177#[cfg_attr(
38178    target_arch = "arm",
38179    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38180)]
38181pub fn vqdmulhq_n_s32(a: int32x4_t, b: i32) -> int32x4_t {
38182    let b: int32x4_t = vdupq_n_s32(b);
38183    vqdmulhq_s32(a, b)
38184}
38185#[doc = "Signed saturating doubling multiply returning high half"]
38186#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulh_s16)"]
38187#[inline]
38188#[target_feature(enable = "neon")]
38189#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38190#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmulh))]
38191#[cfg_attr(
38192    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38193    assert_instr(sqdmulh)
38194)]
38195#[cfg_attr(
38196    not(target_arch = "arm"),
38197    stable(feature = "neon_intrinsics", since = "1.59.0")
38198)]
38199#[cfg_attr(
38200    target_arch = "arm",
38201    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38202)]
38203pub fn vqdmulh_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
38204    unsafe extern "unadjusted" {
38205        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqdmulh.v4i16")]
38206        #[cfg_attr(
38207            any(target_arch = "aarch64", target_arch = "arm64ec"),
38208            link_name = "llvm.aarch64.neon.sqdmulh.v4i16"
38209        )]
38210        fn _vqdmulh_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t;
38211    }
38212    unsafe { _vqdmulh_s16(a, b) }
38213}
38214#[doc = "Signed saturating doubling multiply returning high half"]
38215#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulhq_s16)"]
38216#[inline]
38217#[target_feature(enable = "neon")]
38218#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38219#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmulh))]
38220#[cfg_attr(
38221    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38222    assert_instr(sqdmulh)
38223)]
38224#[cfg_attr(
38225    not(target_arch = "arm"),
38226    stable(feature = "neon_intrinsics", since = "1.59.0")
38227)]
38228#[cfg_attr(
38229    target_arch = "arm",
38230    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38231)]
38232pub fn vqdmulhq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
38233    unsafe extern "unadjusted" {
38234        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqdmulh.v8i16")]
38235        #[cfg_attr(
38236            any(target_arch = "aarch64", target_arch = "arm64ec"),
38237            link_name = "llvm.aarch64.neon.sqdmulh.v8i16"
38238        )]
38239        fn _vqdmulhq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t;
38240    }
38241    unsafe { _vqdmulhq_s16(a, b) }
38242}
38243#[doc = "Signed saturating doubling multiply returning high half"]
38244#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulh_s32)"]
38245#[inline]
38246#[target_feature(enable = "neon")]
38247#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38248#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmulh))]
38249#[cfg_attr(
38250    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38251    assert_instr(sqdmulh)
38252)]
38253#[cfg_attr(
38254    not(target_arch = "arm"),
38255    stable(feature = "neon_intrinsics", since = "1.59.0")
38256)]
38257#[cfg_attr(
38258    target_arch = "arm",
38259    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38260)]
38261pub fn vqdmulh_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
38262    unsafe extern "unadjusted" {
38263        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqdmulh.v2i32")]
38264        #[cfg_attr(
38265            any(target_arch = "aarch64", target_arch = "arm64ec"),
38266            link_name = "llvm.aarch64.neon.sqdmulh.v2i32"
38267        )]
38268        fn _vqdmulh_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t;
38269    }
38270    unsafe { _vqdmulh_s32(a, b) }
38271}
38272#[doc = "Signed saturating doubling multiply returning high half"]
38273#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulhq_s32)"]
38274#[inline]
38275#[target_feature(enable = "neon")]
38276#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38277#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmulh))]
38278#[cfg_attr(
38279    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38280    assert_instr(sqdmulh)
38281)]
38282#[cfg_attr(
38283    not(target_arch = "arm"),
38284    stable(feature = "neon_intrinsics", since = "1.59.0")
38285)]
38286#[cfg_attr(
38287    target_arch = "arm",
38288    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38289)]
38290pub fn vqdmulhq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
38291    unsafe extern "unadjusted" {
38292        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqdmulh.v4i32")]
38293        #[cfg_attr(
38294            any(target_arch = "aarch64", target_arch = "arm64ec"),
38295            link_name = "llvm.aarch64.neon.sqdmulh.v4i32"
38296        )]
38297        fn _vqdmulhq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t;
38298    }
38299    unsafe { _vqdmulhq_s32(a, b) }
38300}
38301#[doc = "Vector saturating doubling long multiply by scalar"]
38302#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmull_lane_s16)"]
38303#[inline]
38304#[target_feature(enable = "neon")]
38305#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38306#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmull, N = 2))]
38307#[cfg_attr(
38308    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38309    assert_instr(sqdmull, N = 2)
38310)]
38311#[rustc_legacy_const_generics(2)]
38312#[cfg_attr(
38313    not(target_arch = "arm"),
38314    stable(feature = "neon_intrinsics", since = "1.59.0")
38315)]
38316#[cfg_attr(
38317    target_arch = "arm",
38318    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38319)]
38320pub fn vqdmull_lane_s16<const N: i32>(a: int16x4_t, b: int16x4_t) -> int32x4_t {
38321    static_assert_uimm_bits!(N, 2);
38322    unsafe {
38323        let b: int16x4_t = simd_shuffle!(b, b, [N as u32, N as u32, N as u32, N as u32]);
38324        vqdmull_s16(a, b)
38325    }
38326}
38327#[doc = "Vector saturating doubling long multiply by scalar"]
38328#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmull_lane_s32)"]
38329#[inline]
38330#[target_feature(enable = "neon")]
38331#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38332#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmull, N = 1))]
38333#[cfg_attr(
38334    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38335    assert_instr(sqdmull, N = 1)
38336)]
38337#[rustc_legacy_const_generics(2)]
38338#[cfg_attr(
38339    not(target_arch = "arm"),
38340    stable(feature = "neon_intrinsics", since = "1.59.0")
38341)]
38342#[cfg_attr(
38343    target_arch = "arm",
38344    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38345)]
38346pub fn vqdmull_lane_s32<const N: i32>(a: int32x2_t, b: int32x2_t) -> int64x2_t {
38347    static_assert_uimm_bits!(N, 1);
38348    unsafe {
38349        let b: int32x2_t = simd_shuffle!(b, b, [N as u32, N as u32]);
38350        vqdmull_s32(a, b)
38351    }
38352}
38353#[doc = "Vector saturating doubling long multiply with scalar"]
38354#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmull_n_s16)"]
38355#[inline]
38356#[target_feature(enable = "neon")]
38357#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38358#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmull))]
38359#[cfg_attr(
38360    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38361    assert_instr(sqdmull)
38362)]
38363#[cfg_attr(
38364    not(target_arch = "arm"),
38365    stable(feature = "neon_intrinsics", since = "1.59.0")
38366)]
38367#[cfg_attr(
38368    target_arch = "arm",
38369    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38370)]
38371pub fn vqdmull_n_s16(a: int16x4_t, b: i16) -> int32x4_t {
38372    vqdmull_s16(a, vdup_n_s16(b))
38373}
38374#[doc = "Vector saturating doubling long multiply with scalar"]
38375#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmull_n_s32)"]
38376#[inline]
38377#[target_feature(enable = "neon")]
38378#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38379#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmull))]
38380#[cfg_attr(
38381    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38382    assert_instr(sqdmull)
38383)]
38384#[cfg_attr(
38385    not(target_arch = "arm"),
38386    stable(feature = "neon_intrinsics", since = "1.59.0")
38387)]
38388#[cfg_attr(
38389    target_arch = "arm",
38390    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38391)]
38392pub fn vqdmull_n_s32(a: int32x2_t, b: i32) -> int64x2_t {
38393    vqdmull_s32(a, vdup_n_s32(b))
38394}
38395#[doc = "Signed saturating doubling multiply long"]
38396#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmull_s16)"]
38397#[inline]
38398#[target_feature(enable = "neon")]
38399#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38400#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmull))]
38401#[cfg_attr(
38402    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38403    assert_instr(sqdmull)
38404)]
38405#[cfg_attr(
38406    not(target_arch = "arm"),
38407    stable(feature = "neon_intrinsics", since = "1.59.0")
38408)]
38409#[cfg_attr(
38410    target_arch = "arm",
38411    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38412)]
38413pub fn vqdmull_s16(a: int16x4_t, b: int16x4_t) -> int32x4_t {
38414    unsafe extern "unadjusted" {
38415        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqdmull.v4i32")]
38416        #[cfg_attr(
38417            any(target_arch = "aarch64", target_arch = "arm64ec"),
38418            link_name = "llvm.aarch64.neon.sqdmull.v4i32"
38419        )]
38420        fn _vqdmull_s16(a: int16x4_t, b: int16x4_t) -> int32x4_t;
38421    }
38422    unsafe { _vqdmull_s16(a, b) }
38423}
38424#[doc = "Signed saturating doubling multiply long"]
38425#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmull_s32)"]
38426#[inline]
38427#[target_feature(enable = "neon")]
38428#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38429#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmull))]
38430#[cfg_attr(
38431    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38432    assert_instr(sqdmull)
38433)]
38434#[cfg_attr(
38435    not(target_arch = "arm"),
38436    stable(feature = "neon_intrinsics", since = "1.59.0")
38437)]
38438#[cfg_attr(
38439    target_arch = "arm",
38440    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38441)]
38442pub fn vqdmull_s32(a: int32x2_t, b: int32x2_t) -> int64x2_t {
38443    unsafe extern "unadjusted" {
38444        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqdmull.v2i64")]
38445        #[cfg_attr(
38446            any(target_arch = "aarch64", target_arch = "arm64ec"),
38447            link_name = "llvm.aarch64.neon.sqdmull.v2i64"
38448        )]
38449        fn _vqdmull_s32(a: int32x2_t, b: int32x2_t) -> int64x2_t;
38450    }
38451    unsafe { _vqdmull_s32(a, b) }
38452}
38453#[doc = "Signed saturating extract narrow"]
38454#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqmovn_s16)"]
38455#[inline]
38456#[target_feature(enable = "neon")]
38457#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38458#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqmovn))]
38459#[cfg_attr(
38460    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38461    assert_instr(sqxtn)
38462)]
38463#[cfg_attr(
38464    not(target_arch = "arm"),
38465    stable(feature = "neon_intrinsics", since = "1.59.0")
38466)]
38467#[cfg_attr(
38468    target_arch = "arm",
38469    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38470)]
38471pub fn vqmovn_s16(a: int16x8_t) -> int8x8_t {
38472    unsafe extern "unadjusted" {
38473        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqmovns.v8i8")]
38474        #[cfg_attr(
38475            any(target_arch = "aarch64", target_arch = "arm64ec"),
38476            link_name = "llvm.aarch64.neon.sqxtn.v8i8"
38477        )]
38478        fn _vqmovn_s16(a: int16x8_t) -> int8x8_t;
38479    }
38480    unsafe { _vqmovn_s16(a) }
38481}
38482#[doc = "Signed saturating extract narrow"]
38483#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqmovn_s32)"]
38484#[inline]
38485#[target_feature(enable = "neon")]
38486#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38487#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqmovn))]
38488#[cfg_attr(
38489    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38490    assert_instr(sqxtn)
38491)]
38492#[cfg_attr(
38493    not(target_arch = "arm"),
38494    stable(feature = "neon_intrinsics", since = "1.59.0")
38495)]
38496#[cfg_attr(
38497    target_arch = "arm",
38498    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38499)]
38500pub fn vqmovn_s32(a: int32x4_t) -> int16x4_t {
38501    unsafe extern "unadjusted" {
38502        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqmovns.v4i16")]
38503        #[cfg_attr(
38504            any(target_arch = "aarch64", target_arch = "arm64ec"),
38505            link_name = "llvm.aarch64.neon.sqxtn.v4i16"
38506        )]
38507        fn _vqmovn_s32(a: int32x4_t) -> int16x4_t;
38508    }
38509    unsafe { _vqmovn_s32(a) }
38510}
38511#[doc = "Signed saturating extract narrow"]
38512#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqmovn_s64)"]
38513#[inline]
38514#[target_feature(enable = "neon")]
38515#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38516#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqmovn))]
38517#[cfg_attr(
38518    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38519    assert_instr(sqxtn)
38520)]
38521#[cfg_attr(
38522    not(target_arch = "arm"),
38523    stable(feature = "neon_intrinsics", since = "1.59.0")
38524)]
38525#[cfg_attr(
38526    target_arch = "arm",
38527    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38528)]
38529pub fn vqmovn_s64(a: int64x2_t) -> int32x2_t {
38530    unsafe extern "unadjusted" {
38531        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqmovns.v2i32")]
38532        #[cfg_attr(
38533            any(target_arch = "aarch64", target_arch = "arm64ec"),
38534            link_name = "llvm.aarch64.neon.sqxtn.v2i32"
38535        )]
38536        fn _vqmovn_s64(a: int64x2_t) -> int32x2_t;
38537    }
38538    unsafe { _vqmovn_s64(a) }
38539}
38540#[doc = "Unsigned saturating extract narrow"]
38541#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqmovn_u16)"]
38542#[inline]
38543#[target_feature(enable = "neon")]
38544#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38545#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqmovn))]
38546#[cfg_attr(
38547    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38548    assert_instr(uqxtn)
38549)]
38550#[cfg_attr(
38551    not(target_arch = "arm"),
38552    stable(feature = "neon_intrinsics", since = "1.59.0")
38553)]
38554#[cfg_attr(
38555    target_arch = "arm",
38556    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38557)]
38558pub fn vqmovn_u16(a: uint16x8_t) -> uint8x8_t {
38559    unsafe extern "unadjusted" {
38560        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqmovnu.v8i8")]
38561        #[cfg_attr(
38562            any(target_arch = "aarch64", target_arch = "arm64ec"),
38563            link_name = "llvm.aarch64.neon.uqxtn.v8i8"
38564        )]
38565        fn _vqmovn_u16(a: uint16x8_t) -> uint8x8_t;
38566    }
38567    unsafe { _vqmovn_u16(a) }
38568}
38569#[doc = "Unsigned saturating extract narrow"]
38570#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqmovn_u32)"]
38571#[inline]
38572#[target_feature(enable = "neon")]
38573#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38574#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqmovn))]
38575#[cfg_attr(
38576    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38577    assert_instr(uqxtn)
38578)]
38579#[cfg_attr(
38580    not(target_arch = "arm"),
38581    stable(feature = "neon_intrinsics", since = "1.59.0")
38582)]
38583#[cfg_attr(
38584    target_arch = "arm",
38585    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38586)]
38587pub fn vqmovn_u32(a: uint32x4_t) -> uint16x4_t {
38588    unsafe extern "unadjusted" {
38589        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqmovnu.v4i16")]
38590        #[cfg_attr(
38591            any(target_arch = "aarch64", target_arch = "arm64ec"),
38592            link_name = "llvm.aarch64.neon.uqxtn.v4i16"
38593        )]
38594        fn _vqmovn_u32(a: uint32x4_t) -> uint16x4_t;
38595    }
38596    unsafe { _vqmovn_u32(a) }
38597}
38598#[doc = "Unsigned saturating extract narrow"]
38599#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqmovn_u64)"]
38600#[inline]
38601#[target_feature(enable = "neon")]
38602#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38603#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqmovn))]
38604#[cfg_attr(
38605    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38606    assert_instr(uqxtn)
38607)]
38608#[cfg_attr(
38609    not(target_arch = "arm"),
38610    stable(feature = "neon_intrinsics", since = "1.59.0")
38611)]
38612#[cfg_attr(
38613    target_arch = "arm",
38614    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38615)]
38616pub fn vqmovn_u64(a: uint64x2_t) -> uint32x2_t {
38617    unsafe extern "unadjusted" {
38618        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqmovnu.v2i32")]
38619        #[cfg_attr(
38620            any(target_arch = "aarch64", target_arch = "arm64ec"),
38621            link_name = "llvm.aarch64.neon.uqxtn.v2i32"
38622        )]
38623        fn _vqmovn_u64(a: uint64x2_t) -> uint32x2_t;
38624    }
38625    unsafe { _vqmovn_u64(a) }
38626}
38627#[doc = "Signed saturating extract unsigned narrow"]
38628#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqmovun_s16)"]
38629#[inline]
38630#[target_feature(enable = "neon")]
38631#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38632#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqmovun))]
38633#[cfg_attr(
38634    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38635    assert_instr(sqxtun)
38636)]
38637#[cfg_attr(
38638    not(target_arch = "arm"),
38639    stable(feature = "neon_intrinsics", since = "1.59.0")
38640)]
38641#[cfg_attr(
38642    target_arch = "arm",
38643    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38644)]
38645pub fn vqmovun_s16(a: int16x8_t) -> uint8x8_t {
38646    unsafe extern "unadjusted" {
38647        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqmovnsu.v8i8")]
38648        #[cfg_attr(
38649            any(target_arch = "aarch64", target_arch = "arm64ec"),
38650            link_name = "llvm.aarch64.neon.sqxtun.v8i8"
38651        )]
38652        fn _vqmovun_s16(a: int16x8_t) -> uint8x8_t;
38653    }
38654    unsafe { _vqmovun_s16(a) }
38655}
38656#[doc = "Signed saturating extract unsigned narrow"]
38657#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqmovun_s32)"]
38658#[inline]
38659#[target_feature(enable = "neon")]
38660#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38661#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqmovun))]
38662#[cfg_attr(
38663    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38664    assert_instr(sqxtun)
38665)]
38666#[cfg_attr(
38667    not(target_arch = "arm"),
38668    stable(feature = "neon_intrinsics", since = "1.59.0")
38669)]
38670#[cfg_attr(
38671    target_arch = "arm",
38672    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38673)]
38674pub fn vqmovun_s32(a: int32x4_t) -> uint16x4_t {
38675    unsafe extern "unadjusted" {
38676        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqmovnsu.v4i16")]
38677        #[cfg_attr(
38678            any(target_arch = "aarch64", target_arch = "arm64ec"),
38679            link_name = "llvm.aarch64.neon.sqxtun.v4i16"
38680        )]
38681        fn _vqmovun_s32(a: int32x4_t) -> uint16x4_t;
38682    }
38683    unsafe { _vqmovun_s32(a) }
38684}
38685#[doc = "Signed saturating extract unsigned narrow"]
38686#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqmovun_s64)"]
38687#[inline]
38688#[target_feature(enable = "neon")]
38689#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38690#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqmovun))]
38691#[cfg_attr(
38692    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38693    assert_instr(sqxtun)
38694)]
38695#[cfg_attr(
38696    not(target_arch = "arm"),
38697    stable(feature = "neon_intrinsics", since = "1.59.0")
38698)]
38699#[cfg_attr(
38700    target_arch = "arm",
38701    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38702)]
38703pub fn vqmovun_s64(a: int64x2_t) -> uint32x2_t {
38704    unsafe extern "unadjusted" {
38705        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqmovnsu.v2i32")]
38706        #[cfg_attr(
38707            any(target_arch = "aarch64", target_arch = "arm64ec"),
38708            link_name = "llvm.aarch64.neon.sqxtun.v2i32"
38709        )]
38710        fn _vqmovun_s64(a: int64x2_t) -> uint32x2_t;
38711    }
38712    unsafe { _vqmovun_s64(a) }
38713}
38714#[doc = "Signed saturating negate"]
38715#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqneg_s8)"]
38716#[inline]
38717#[target_feature(enable = "neon")]
38718#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38719#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqneg.s8"))]
38720#[cfg_attr(
38721    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38722    assert_instr(sqneg)
38723)]
38724#[cfg_attr(
38725    not(target_arch = "arm"),
38726    stable(feature = "neon_intrinsics", since = "1.59.0")
38727)]
38728#[cfg_attr(
38729    target_arch = "arm",
38730    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38731)]
38732pub fn vqneg_s8(a: int8x8_t) -> int8x8_t {
38733    unsafe extern "unadjusted" {
38734        #[cfg_attr(
38735            any(target_arch = "aarch64", target_arch = "arm64ec"),
38736            link_name = "llvm.aarch64.neon.sqneg.v8i8"
38737        )]
38738        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqneg.v8i8")]
38739        fn _vqneg_s8(a: int8x8_t) -> int8x8_t;
38740    }
38741    unsafe { _vqneg_s8(a) }
38742}
38743#[doc = "Signed saturating negate"]
38744#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqnegq_s8)"]
38745#[inline]
38746#[target_feature(enable = "neon")]
38747#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38748#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqneg.s8"))]
38749#[cfg_attr(
38750    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38751    assert_instr(sqneg)
38752)]
38753#[cfg_attr(
38754    not(target_arch = "arm"),
38755    stable(feature = "neon_intrinsics", since = "1.59.0")
38756)]
38757#[cfg_attr(
38758    target_arch = "arm",
38759    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38760)]
38761pub fn vqnegq_s8(a: int8x16_t) -> int8x16_t {
38762    unsafe extern "unadjusted" {
38763        #[cfg_attr(
38764            any(target_arch = "aarch64", target_arch = "arm64ec"),
38765            link_name = "llvm.aarch64.neon.sqneg.v16i8"
38766        )]
38767        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqneg.v16i8")]
38768        fn _vqnegq_s8(a: int8x16_t) -> int8x16_t;
38769    }
38770    unsafe { _vqnegq_s8(a) }
38771}
38772#[doc = "Signed saturating negate"]
38773#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqneg_s16)"]
38774#[inline]
38775#[target_feature(enable = "neon")]
38776#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38777#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqneg.s16"))]
38778#[cfg_attr(
38779    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38780    assert_instr(sqneg)
38781)]
38782#[cfg_attr(
38783    not(target_arch = "arm"),
38784    stable(feature = "neon_intrinsics", since = "1.59.0")
38785)]
38786#[cfg_attr(
38787    target_arch = "arm",
38788    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38789)]
38790pub fn vqneg_s16(a: int16x4_t) -> int16x4_t {
38791    unsafe extern "unadjusted" {
38792        #[cfg_attr(
38793            any(target_arch = "aarch64", target_arch = "arm64ec"),
38794            link_name = "llvm.aarch64.neon.sqneg.v4i16"
38795        )]
38796        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqneg.v4i16")]
38797        fn _vqneg_s16(a: int16x4_t) -> int16x4_t;
38798    }
38799    unsafe { _vqneg_s16(a) }
38800}
38801#[doc = "Signed saturating negate"]
38802#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqnegq_s16)"]
38803#[inline]
38804#[target_feature(enable = "neon")]
38805#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38806#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqneg.s16"))]
38807#[cfg_attr(
38808    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38809    assert_instr(sqneg)
38810)]
38811#[cfg_attr(
38812    not(target_arch = "arm"),
38813    stable(feature = "neon_intrinsics", since = "1.59.0")
38814)]
38815#[cfg_attr(
38816    target_arch = "arm",
38817    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38818)]
38819pub fn vqnegq_s16(a: int16x8_t) -> int16x8_t {
38820    unsafe extern "unadjusted" {
38821        #[cfg_attr(
38822            any(target_arch = "aarch64", target_arch = "arm64ec"),
38823            link_name = "llvm.aarch64.neon.sqneg.v8i16"
38824        )]
38825        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqneg.v8i16")]
38826        fn _vqnegq_s16(a: int16x8_t) -> int16x8_t;
38827    }
38828    unsafe { _vqnegq_s16(a) }
38829}
38830#[doc = "Signed saturating negate"]
38831#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqneg_s32)"]
38832#[inline]
38833#[target_feature(enable = "neon")]
38834#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38835#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqneg.s32"))]
38836#[cfg_attr(
38837    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38838    assert_instr(sqneg)
38839)]
38840#[cfg_attr(
38841    not(target_arch = "arm"),
38842    stable(feature = "neon_intrinsics", since = "1.59.0")
38843)]
38844#[cfg_attr(
38845    target_arch = "arm",
38846    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38847)]
38848pub fn vqneg_s32(a: int32x2_t) -> int32x2_t {
38849    unsafe extern "unadjusted" {
38850        #[cfg_attr(
38851            any(target_arch = "aarch64", target_arch = "arm64ec"),
38852            link_name = "llvm.aarch64.neon.sqneg.v2i32"
38853        )]
38854        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqneg.v2i32")]
38855        fn _vqneg_s32(a: int32x2_t) -> int32x2_t;
38856    }
38857    unsafe { _vqneg_s32(a) }
38858}
38859#[doc = "Signed saturating negate"]
38860#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqnegq_s32)"]
38861#[inline]
38862#[target_feature(enable = "neon")]
38863#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38864#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqneg.s32"))]
38865#[cfg_attr(
38866    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38867    assert_instr(sqneg)
38868)]
38869#[cfg_attr(
38870    not(target_arch = "arm"),
38871    stable(feature = "neon_intrinsics", since = "1.59.0")
38872)]
38873#[cfg_attr(
38874    target_arch = "arm",
38875    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38876)]
38877pub fn vqnegq_s32(a: int32x4_t) -> int32x4_t {
38878    unsafe extern "unadjusted" {
38879        #[cfg_attr(
38880            any(target_arch = "aarch64", target_arch = "arm64ec"),
38881            link_name = "llvm.aarch64.neon.sqneg.v4i32"
38882        )]
38883        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqneg.v4i32")]
38884        fn _vqnegq_s32(a: int32x4_t) -> int32x4_t;
38885    }
38886    unsafe { _vqnegq_s32(a) }
38887}
38888#[doc = "Vector rounding saturating doubling multiply high by scalar"]
38889#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulh_lane_s16)"]
38890#[inline]
38891#[target_feature(enable = "neon")]
38892#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38893#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh, LANE = 1))]
38894#[cfg_attr(
38895    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38896    assert_instr(sqrdmulh, LANE = 1)
38897)]
38898#[rustc_legacy_const_generics(2)]
38899#[cfg_attr(
38900    not(target_arch = "arm"),
38901    stable(feature = "neon_intrinsics", since = "1.59.0")
38902)]
38903#[cfg_attr(
38904    target_arch = "arm",
38905    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38906)]
38907pub fn vqrdmulh_lane_s16<const LANE: i32>(a: int16x4_t, b: int16x4_t) -> int16x4_t {
38908    static_assert_uimm_bits!(LANE, 2);
38909    unsafe {
38910        let b: int16x4_t =
38911            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]);
38912        vqrdmulh_s16(a, b)
38913    }
38914}
38915#[doc = "Vector rounding saturating doubling multiply high by scalar"]
38916#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulh_lane_s32)"]
38917#[inline]
38918#[target_feature(enable = "neon")]
38919#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38920#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh, LANE = 1))]
38921#[cfg_attr(
38922    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38923    assert_instr(sqrdmulh, LANE = 1)
38924)]
38925#[rustc_legacy_const_generics(2)]
38926#[cfg_attr(
38927    not(target_arch = "arm"),
38928    stable(feature = "neon_intrinsics", since = "1.59.0")
38929)]
38930#[cfg_attr(
38931    target_arch = "arm",
38932    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38933)]
38934pub fn vqrdmulh_lane_s32<const LANE: i32>(a: int32x2_t, b: int32x2_t) -> int32x2_t {
38935    static_assert_uimm_bits!(LANE, 1);
38936    unsafe {
38937        let b: int32x2_t = simd_shuffle!(b, b, [LANE as u32, LANE as u32]);
38938        vqrdmulh_s32(a, b)
38939    }
38940}
38941#[doc = "Vector rounding saturating doubling multiply high by scalar"]
38942#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulh_laneq_s16)"]
38943#[inline]
38944#[target_feature(enable = "neon")]
38945#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38946#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh, LANE = 1))]
38947#[cfg_attr(
38948    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38949    assert_instr(sqrdmulh, LANE = 1)
38950)]
38951#[rustc_legacy_const_generics(2)]
38952#[cfg_attr(
38953    not(target_arch = "arm"),
38954    stable(feature = "neon_intrinsics", since = "1.59.0")
38955)]
38956#[cfg_attr(
38957    target_arch = "arm",
38958    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38959)]
38960pub fn vqrdmulh_laneq_s16<const LANE: i32>(a: int16x4_t, b: int16x8_t) -> int16x4_t {
38961    static_assert_uimm_bits!(LANE, 3);
38962    unsafe {
38963        let b: int16x4_t =
38964            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]);
38965        vqrdmulh_s16(a, b)
38966    }
38967}
38968#[doc = "Vector rounding saturating doubling multiply high by scalar"]
38969#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulh_laneq_s32)"]
38970#[inline]
38971#[target_feature(enable = "neon")]
38972#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38973#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh, LANE = 1))]
38974#[cfg_attr(
38975    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38976    assert_instr(sqrdmulh, LANE = 1)
38977)]
38978#[rustc_legacy_const_generics(2)]
38979#[cfg_attr(
38980    not(target_arch = "arm"),
38981    stable(feature = "neon_intrinsics", since = "1.59.0")
38982)]
38983#[cfg_attr(
38984    target_arch = "arm",
38985    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38986)]
38987pub fn vqrdmulh_laneq_s32<const LANE: i32>(a: int32x2_t, b: int32x4_t) -> int32x2_t {
38988    static_assert_uimm_bits!(LANE, 2);
38989    unsafe {
38990        let b: int32x2_t = simd_shuffle!(b, b, [LANE as u32, LANE as u32]);
38991        vqrdmulh_s32(a, b)
38992    }
38993}
38994#[doc = "Vector rounding saturating doubling multiply high by scalar"]
38995#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulhq_lane_s16)"]
38996#[inline]
38997#[target_feature(enable = "neon")]
38998#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38999#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh, LANE = 1))]
39000#[cfg_attr(
39001    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39002    assert_instr(sqrdmulh, LANE = 1)
39003)]
39004#[rustc_legacy_const_generics(2)]
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 vqrdmulhq_lane_s16<const LANE: i32>(a: int16x8_t, b: int16x4_t) -> int16x8_t {
39014    static_assert_uimm_bits!(LANE, 2);
39015    unsafe {
39016        let b: int16x8_t = simd_shuffle!(
39017            b,
39018            b,
39019            [
39020                LANE as u32,
39021                LANE as u32,
39022                LANE as u32,
39023                LANE as u32,
39024                LANE as u32,
39025                LANE as u32,
39026                LANE as u32,
39027                LANE as u32
39028            ]
39029        );
39030        vqrdmulhq_s16(a, b)
39031    }
39032}
39033#[doc = "Vector rounding saturating doubling multiply high by scalar"]
39034#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulhq_lane_s32)"]
39035#[inline]
39036#[target_feature(enable = "neon")]
39037#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39038#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh, LANE = 1))]
39039#[cfg_attr(
39040    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39041    assert_instr(sqrdmulh, LANE = 1)
39042)]
39043#[rustc_legacy_const_generics(2)]
39044#[cfg_attr(
39045    not(target_arch = "arm"),
39046    stable(feature = "neon_intrinsics", since = "1.59.0")
39047)]
39048#[cfg_attr(
39049    target_arch = "arm",
39050    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39051)]
39052pub fn vqrdmulhq_lane_s32<const LANE: i32>(a: int32x4_t, b: int32x2_t) -> int32x4_t {
39053    static_assert_uimm_bits!(LANE, 1);
39054    unsafe {
39055        let b: int32x4_t =
39056            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]);
39057        vqrdmulhq_s32(a, b)
39058    }
39059}
39060#[doc = "Vector rounding saturating doubling multiply high by scalar"]
39061#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulhq_laneq_s16)"]
39062#[inline]
39063#[target_feature(enable = "neon")]
39064#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39065#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh, LANE = 1))]
39066#[cfg_attr(
39067    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39068    assert_instr(sqrdmulh, LANE = 1)
39069)]
39070#[rustc_legacy_const_generics(2)]
39071#[cfg_attr(
39072    not(target_arch = "arm"),
39073    stable(feature = "neon_intrinsics", since = "1.59.0")
39074)]
39075#[cfg_attr(
39076    target_arch = "arm",
39077    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39078)]
39079pub fn vqrdmulhq_laneq_s16<const LANE: i32>(a: int16x8_t, b: int16x8_t) -> int16x8_t {
39080    static_assert_uimm_bits!(LANE, 3);
39081    unsafe {
39082        let b: int16x8_t = simd_shuffle!(
39083            b,
39084            b,
39085            [
39086                LANE as u32,
39087                LANE as u32,
39088                LANE as u32,
39089                LANE as u32,
39090                LANE as u32,
39091                LANE as u32,
39092                LANE as u32,
39093                LANE as u32
39094            ]
39095        );
39096        vqrdmulhq_s16(a, b)
39097    }
39098}
39099#[doc = "Vector rounding saturating doubling multiply high by scalar"]
39100#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulhq_laneq_s32)"]
39101#[inline]
39102#[target_feature(enable = "neon")]
39103#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39104#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh, LANE = 1))]
39105#[cfg_attr(
39106    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39107    assert_instr(sqrdmulh, LANE = 1)
39108)]
39109#[rustc_legacy_const_generics(2)]
39110#[cfg_attr(
39111    not(target_arch = "arm"),
39112    stable(feature = "neon_intrinsics", since = "1.59.0")
39113)]
39114#[cfg_attr(
39115    target_arch = "arm",
39116    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39117)]
39118pub fn vqrdmulhq_laneq_s32<const LANE: i32>(a: int32x4_t, b: int32x4_t) -> int32x4_t {
39119    static_assert_uimm_bits!(LANE, 2);
39120    unsafe {
39121        let b: int32x4_t =
39122            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]);
39123        vqrdmulhq_s32(a, b)
39124    }
39125}
39126#[doc = "Vector saturating rounding doubling multiply high with scalar"]
39127#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulh_n_s16)"]
39128#[inline]
39129#[target_feature(enable = "neon")]
39130#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39131#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh))]
39132#[cfg_attr(
39133    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39134    assert_instr(sqrdmulh)
39135)]
39136#[cfg_attr(
39137    not(target_arch = "arm"),
39138    stable(feature = "neon_intrinsics", since = "1.59.0")
39139)]
39140#[cfg_attr(
39141    target_arch = "arm",
39142    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39143)]
39144pub fn vqrdmulh_n_s16(a: int16x4_t, b: i16) -> int16x4_t {
39145    vqrdmulh_s16(a, vdup_n_s16(b))
39146}
39147#[doc = "Vector saturating rounding doubling multiply high with scalar"]
39148#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulhq_n_s16)"]
39149#[inline]
39150#[target_feature(enable = "neon")]
39151#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39152#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh))]
39153#[cfg_attr(
39154    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39155    assert_instr(sqrdmulh)
39156)]
39157#[cfg_attr(
39158    not(target_arch = "arm"),
39159    stable(feature = "neon_intrinsics", since = "1.59.0")
39160)]
39161#[cfg_attr(
39162    target_arch = "arm",
39163    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39164)]
39165pub fn vqrdmulhq_n_s16(a: int16x8_t, b: i16) -> int16x8_t {
39166    vqrdmulhq_s16(a, vdupq_n_s16(b))
39167}
39168#[doc = "Vector saturating rounding doubling multiply high with scalar"]
39169#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulh_n_s32)"]
39170#[inline]
39171#[target_feature(enable = "neon")]
39172#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39173#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh))]
39174#[cfg_attr(
39175    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39176    assert_instr(sqrdmulh)
39177)]
39178#[cfg_attr(
39179    not(target_arch = "arm"),
39180    stable(feature = "neon_intrinsics", since = "1.59.0")
39181)]
39182#[cfg_attr(
39183    target_arch = "arm",
39184    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39185)]
39186pub fn vqrdmulh_n_s32(a: int32x2_t, b: i32) -> int32x2_t {
39187    vqrdmulh_s32(a, vdup_n_s32(b))
39188}
39189#[doc = "Vector saturating rounding doubling multiply high with scalar"]
39190#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulhq_n_s32)"]
39191#[inline]
39192#[target_feature(enable = "neon")]
39193#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39194#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh))]
39195#[cfg_attr(
39196    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39197    assert_instr(sqrdmulh)
39198)]
39199#[cfg_attr(
39200    not(target_arch = "arm"),
39201    stable(feature = "neon_intrinsics", since = "1.59.0")
39202)]
39203#[cfg_attr(
39204    target_arch = "arm",
39205    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39206)]
39207pub fn vqrdmulhq_n_s32(a: int32x4_t, b: i32) -> int32x4_t {
39208    vqrdmulhq_s32(a, vdupq_n_s32(b))
39209}
39210#[doc = "Signed saturating rounding doubling multiply returning high half"]
39211#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulh_s16)"]
39212#[inline]
39213#[target_feature(enable = "neon")]
39214#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39215#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh))]
39216#[cfg_attr(
39217    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39218    assert_instr(sqrdmulh)
39219)]
39220#[cfg_attr(
39221    not(target_arch = "arm"),
39222    stable(feature = "neon_intrinsics", since = "1.59.0")
39223)]
39224#[cfg_attr(
39225    target_arch = "arm",
39226    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39227)]
39228pub fn vqrdmulh_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
39229    unsafe extern "unadjusted" {
39230        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrdmulh.v4i16")]
39231        #[cfg_attr(
39232            any(target_arch = "aarch64", target_arch = "arm64ec"),
39233            link_name = "llvm.aarch64.neon.sqrdmulh.v4i16"
39234        )]
39235        fn _vqrdmulh_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t;
39236    }
39237    unsafe { _vqrdmulh_s16(a, b) }
39238}
39239#[doc = "Signed saturating rounding doubling multiply returning high half"]
39240#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulhq_s16)"]
39241#[inline]
39242#[target_feature(enable = "neon")]
39243#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39244#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh))]
39245#[cfg_attr(
39246    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39247    assert_instr(sqrdmulh)
39248)]
39249#[cfg_attr(
39250    not(target_arch = "arm"),
39251    stable(feature = "neon_intrinsics", since = "1.59.0")
39252)]
39253#[cfg_attr(
39254    target_arch = "arm",
39255    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39256)]
39257pub fn vqrdmulhq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
39258    unsafe extern "unadjusted" {
39259        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrdmulh.v8i16")]
39260        #[cfg_attr(
39261            any(target_arch = "aarch64", target_arch = "arm64ec"),
39262            link_name = "llvm.aarch64.neon.sqrdmulh.v8i16"
39263        )]
39264        fn _vqrdmulhq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t;
39265    }
39266    unsafe { _vqrdmulhq_s16(a, b) }
39267}
39268#[doc = "Signed saturating rounding doubling multiply returning high half"]
39269#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulh_s32)"]
39270#[inline]
39271#[target_feature(enable = "neon")]
39272#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39273#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh))]
39274#[cfg_attr(
39275    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39276    assert_instr(sqrdmulh)
39277)]
39278#[cfg_attr(
39279    not(target_arch = "arm"),
39280    stable(feature = "neon_intrinsics", since = "1.59.0")
39281)]
39282#[cfg_attr(
39283    target_arch = "arm",
39284    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39285)]
39286pub fn vqrdmulh_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
39287    unsafe extern "unadjusted" {
39288        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrdmulh.v2i32")]
39289        #[cfg_attr(
39290            any(target_arch = "aarch64", target_arch = "arm64ec"),
39291            link_name = "llvm.aarch64.neon.sqrdmulh.v2i32"
39292        )]
39293        fn _vqrdmulh_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t;
39294    }
39295    unsafe { _vqrdmulh_s32(a, b) }
39296}
39297#[doc = "Signed saturating rounding doubling multiply returning high half"]
39298#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulhq_s32)"]
39299#[inline]
39300#[target_feature(enable = "neon")]
39301#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39302#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh))]
39303#[cfg_attr(
39304    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39305    assert_instr(sqrdmulh)
39306)]
39307#[cfg_attr(
39308    not(target_arch = "arm"),
39309    stable(feature = "neon_intrinsics", since = "1.59.0")
39310)]
39311#[cfg_attr(
39312    target_arch = "arm",
39313    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39314)]
39315pub fn vqrdmulhq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
39316    unsafe extern "unadjusted" {
39317        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrdmulh.v4i32")]
39318        #[cfg_attr(
39319            any(target_arch = "aarch64", target_arch = "arm64ec"),
39320            link_name = "llvm.aarch64.neon.sqrdmulh.v4i32"
39321        )]
39322        fn _vqrdmulhq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t;
39323    }
39324    unsafe { _vqrdmulhq_s32(a, b) }
39325}
39326#[doc = "Signed saturating rounding shift left"]
39327#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshl_s8)"]
39328#[inline]
39329#[target_feature(enable = "neon")]
39330#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39331#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
39332#[cfg_attr(
39333    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39334    assert_instr(sqrshl)
39335)]
39336#[cfg_attr(
39337    not(target_arch = "arm"),
39338    stable(feature = "neon_intrinsics", since = "1.59.0")
39339)]
39340#[cfg_attr(
39341    target_arch = "arm",
39342    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39343)]
39344pub fn vqrshl_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
39345    unsafe extern "unadjusted" {
39346        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshifts.v8i8")]
39347        #[cfg_attr(
39348            any(target_arch = "aarch64", target_arch = "arm64ec"),
39349            link_name = "llvm.aarch64.neon.sqrshl.v8i8"
39350        )]
39351        fn _vqrshl_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t;
39352    }
39353    unsafe { _vqrshl_s8(a, b) }
39354}
39355#[doc = "Signed saturating rounding shift left"]
39356#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshlq_s8)"]
39357#[inline]
39358#[target_feature(enable = "neon")]
39359#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39360#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
39361#[cfg_attr(
39362    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39363    assert_instr(sqrshl)
39364)]
39365#[cfg_attr(
39366    not(target_arch = "arm"),
39367    stable(feature = "neon_intrinsics", since = "1.59.0")
39368)]
39369#[cfg_attr(
39370    target_arch = "arm",
39371    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39372)]
39373pub fn vqrshlq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
39374    unsafe extern "unadjusted" {
39375        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshifts.v16i8")]
39376        #[cfg_attr(
39377            any(target_arch = "aarch64", target_arch = "arm64ec"),
39378            link_name = "llvm.aarch64.neon.sqrshl.v16i8"
39379        )]
39380        fn _vqrshlq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t;
39381    }
39382    unsafe { _vqrshlq_s8(a, b) }
39383}
39384#[doc = "Signed saturating rounding shift left"]
39385#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshl_s16)"]
39386#[inline]
39387#[target_feature(enable = "neon")]
39388#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39389#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
39390#[cfg_attr(
39391    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39392    assert_instr(sqrshl)
39393)]
39394#[cfg_attr(
39395    not(target_arch = "arm"),
39396    stable(feature = "neon_intrinsics", since = "1.59.0")
39397)]
39398#[cfg_attr(
39399    target_arch = "arm",
39400    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39401)]
39402pub fn vqrshl_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
39403    unsafe extern "unadjusted" {
39404        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshifts.v4i16")]
39405        #[cfg_attr(
39406            any(target_arch = "aarch64", target_arch = "arm64ec"),
39407            link_name = "llvm.aarch64.neon.sqrshl.v4i16"
39408        )]
39409        fn _vqrshl_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t;
39410    }
39411    unsafe { _vqrshl_s16(a, b) }
39412}
39413#[doc = "Signed saturating rounding shift left"]
39414#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshlq_s16)"]
39415#[inline]
39416#[target_feature(enable = "neon")]
39417#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39418#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
39419#[cfg_attr(
39420    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39421    assert_instr(sqrshl)
39422)]
39423#[cfg_attr(
39424    not(target_arch = "arm"),
39425    stable(feature = "neon_intrinsics", since = "1.59.0")
39426)]
39427#[cfg_attr(
39428    target_arch = "arm",
39429    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39430)]
39431pub fn vqrshlq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
39432    unsafe extern "unadjusted" {
39433        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshifts.v8i16")]
39434        #[cfg_attr(
39435            any(target_arch = "aarch64", target_arch = "arm64ec"),
39436            link_name = "llvm.aarch64.neon.sqrshl.v8i16"
39437        )]
39438        fn _vqrshlq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t;
39439    }
39440    unsafe { _vqrshlq_s16(a, b) }
39441}
39442#[doc = "Signed saturating rounding shift left"]
39443#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshl_s32)"]
39444#[inline]
39445#[target_feature(enable = "neon")]
39446#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39447#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
39448#[cfg_attr(
39449    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39450    assert_instr(sqrshl)
39451)]
39452#[cfg_attr(
39453    not(target_arch = "arm"),
39454    stable(feature = "neon_intrinsics", since = "1.59.0")
39455)]
39456#[cfg_attr(
39457    target_arch = "arm",
39458    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39459)]
39460pub fn vqrshl_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
39461    unsafe extern "unadjusted" {
39462        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshifts.v2i32")]
39463        #[cfg_attr(
39464            any(target_arch = "aarch64", target_arch = "arm64ec"),
39465            link_name = "llvm.aarch64.neon.sqrshl.v2i32"
39466        )]
39467        fn _vqrshl_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t;
39468    }
39469    unsafe { _vqrshl_s32(a, b) }
39470}
39471#[doc = "Signed saturating rounding shift left"]
39472#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshlq_s32)"]
39473#[inline]
39474#[target_feature(enable = "neon")]
39475#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39476#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
39477#[cfg_attr(
39478    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39479    assert_instr(sqrshl)
39480)]
39481#[cfg_attr(
39482    not(target_arch = "arm"),
39483    stable(feature = "neon_intrinsics", since = "1.59.0")
39484)]
39485#[cfg_attr(
39486    target_arch = "arm",
39487    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39488)]
39489pub fn vqrshlq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
39490    unsafe extern "unadjusted" {
39491        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshifts.v4i32")]
39492        #[cfg_attr(
39493            any(target_arch = "aarch64", target_arch = "arm64ec"),
39494            link_name = "llvm.aarch64.neon.sqrshl.v4i32"
39495        )]
39496        fn _vqrshlq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t;
39497    }
39498    unsafe { _vqrshlq_s32(a, b) }
39499}
39500#[doc = "Signed saturating rounding shift left"]
39501#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshl_s64)"]
39502#[inline]
39503#[target_feature(enable = "neon")]
39504#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39505#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
39506#[cfg_attr(
39507    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39508    assert_instr(sqrshl)
39509)]
39510#[cfg_attr(
39511    not(target_arch = "arm"),
39512    stable(feature = "neon_intrinsics", since = "1.59.0")
39513)]
39514#[cfg_attr(
39515    target_arch = "arm",
39516    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39517)]
39518pub fn vqrshl_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t {
39519    unsafe extern "unadjusted" {
39520        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshifts.v1i64")]
39521        #[cfg_attr(
39522            any(target_arch = "aarch64", target_arch = "arm64ec"),
39523            link_name = "llvm.aarch64.neon.sqrshl.v1i64"
39524        )]
39525        fn _vqrshl_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t;
39526    }
39527    unsafe { _vqrshl_s64(a, b) }
39528}
39529#[doc = "Signed saturating rounding shift left"]
39530#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshlq_s64)"]
39531#[inline]
39532#[target_feature(enable = "neon")]
39533#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39534#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
39535#[cfg_attr(
39536    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39537    assert_instr(sqrshl)
39538)]
39539#[cfg_attr(
39540    not(target_arch = "arm"),
39541    stable(feature = "neon_intrinsics", since = "1.59.0")
39542)]
39543#[cfg_attr(
39544    target_arch = "arm",
39545    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39546)]
39547pub fn vqrshlq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t {
39548    unsafe extern "unadjusted" {
39549        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshifts.v2i64")]
39550        #[cfg_attr(
39551            any(target_arch = "aarch64", target_arch = "arm64ec"),
39552            link_name = "llvm.aarch64.neon.sqrshl.v2i64"
39553        )]
39554        fn _vqrshlq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t;
39555    }
39556    unsafe { _vqrshlq_s64(a, b) }
39557}
39558#[doc = "Unsigned signed saturating rounding shift left"]
39559#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshl_u8)"]
39560#[inline]
39561#[target_feature(enable = "neon")]
39562#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39563#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
39564#[cfg_attr(
39565    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39566    assert_instr(uqrshl)
39567)]
39568#[cfg_attr(
39569    not(target_arch = "arm"),
39570    stable(feature = "neon_intrinsics", since = "1.59.0")
39571)]
39572#[cfg_attr(
39573    target_arch = "arm",
39574    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39575)]
39576pub fn vqrshl_u8(a: uint8x8_t, b: int8x8_t) -> uint8x8_t {
39577    unsafe extern "unadjusted" {
39578        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftu.v8i8")]
39579        #[cfg_attr(
39580            any(target_arch = "aarch64", target_arch = "arm64ec"),
39581            link_name = "llvm.aarch64.neon.uqrshl.v8i8"
39582        )]
39583        fn _vqrshl_u8(a: uint8x8_t, b: int8x8_t) -> uint8x8_t;
39584    }
39585    unsafe { _vqrshl_u8(a, b) }
39586}
39587#[doc = "Unsigned signed saturating rounding shift left"]
39588#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshlq_u8)"]
39589#[inline]
39590#[target_feature(enable = "neon")]
39591#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39592#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
39593#[cfg_attr(
39594    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39595    assert_instr(uqrshl)
39596)]
39597#[cfg_attr(
39598    not(target_arch = "arm"),
39599    stable(feature = "neon_intrinsics", since = "1.59.0")
39600)]
39601#[cfg_attr(
39602    target_arch = "arm",
39603    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39604)]
39605pub fn vqrshlq_u8(a: uint8x16_t, b: int8x16_t) -> uint8x16_t {
39606    unsafe extern "unadjusted" {
39607        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftu.v16i8")]
39608        #[cfg_attr(
39609            any(target_arch = "aarch64", target_arch = "arm64ec"),
39610            link_name = "llvm.aarch64.neon.uqrshl.v16i8"
39611        )]
39612        fn _vqrshlq_u8(a: uint8x16_t, b: int8x16_t) -> uint8x16_t;
39613    }
39614    unsafe { _vqrshlq_u8(a, b) }
39615}
39616#[doc = "Unsigned signed saturating rounding shift left"]
39617#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshl_u16)"]
39618#[inline]
39619#[target_feature(enable = "neon")]
39620#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39621#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
39622#[cfg_attr(
39623    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39624    assert_instr(uqrshl)
39625)]
39626#[cfg_attr(
39627    not(target_arch = "arm"),
39628    stable(feature = "neon_intrinsics", since = "1.59.0")
39629)]
39630#[cfg_attr(
39631    target_arch = "arm",
39632    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39633)]
39634pub fn vqrshl_u16(a: uint16x4_t, b: int16x4_t) -> uint16x4_t {
39635    unsafe extern "unadjusted" {
39636        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftu.v4i16")]
39637        #[cfg_attr(
39638            any(target_arch = "aarch64", target_arch = "arm64ec"),
39639            link_name = "llvm.aarch64.neon.uqrshl.v4i16"
39640        )]
39641        fn _vqrshl_u16(a: uint16x4_t, b: int16x4_t) -> uint16x4_t;
39642    }
39643    unsafe { _vqrshl_u16(a, b) }
39644}
39645#[doc = "Unsigned signed saturating rounding shift left"]
39646#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshlq_u16)"]
39647#[inline]
39648#[target_feature(enable = "neon")]
39649#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39650#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
39651#[cfg_attr(
39652    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39653    assert_instr(uqrshl)
39654)]
39655#[cfg_attr(
39656    not(target_arch = "arm"),
39657    stable(feature = "neon_intrinsics", since = "1.59.0")
39658)]
39659#[cfg_attr(
39660    target_arch = "arm",
39661    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39662)]
39663pub fn vqrshlq_u16(a: uint16x8_t, b: int16x8_t) -> uint16x8_t {
39664    unsafe extern "unadjusted" {
39665        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftu.v8i16")]
39666        #[cfg_attr(
39667            any(target_arch = "aarch64", target_arch = "arm64ec"),
39668            link_name = "llvm.aarch64.neon.uqrshl.v8i16"
39669        )]
39670        fn _vqrshlq_u16(a: uint16x8_t, b: int16x8_t) -> uint16x8_t;
39671    }
39672    unsafe { _vqrshlq_u16(a, b) }
39673}
39674#[doc = "Unsigned signed saturating rounding shift left"]
39675#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshl_u32)"]
39676#[inline]
39677#[target_feature(enable = "neon")]
39678#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39679#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
39680#[cfg_attr(
39681    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39682    assert_instr(uqrshl)
39683)]
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 vqrshl_u32(a: uint32x2_t, b: int32x2_t) -> uint32x2_t {
39693    unsafe extern "unadjusted" {
39694        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftu.v2i32")]
39695        #[cfg_attr(
39696            any(target_arch = "aarch64", target_arch = "arm64ec"),
39697            link_name = "llvm.aarch64.neon.uqrshl.v2i32"
39698        )]
39699        fn _vqrshl_u32(a: uint32x2_t, b: int32x2_t) -> uint32x2_t;
39700    }
39701    unsafe { _vqrshl_u32(a, b) }
39702}
39703#[doc = "Unsigned signed saturating rounding shift left"]
39704#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshlq_u32)"]
39705#[inline]
39706#[target_feature(enable = "neon")]
39707#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39708#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
39709#[cfg_attr(
39710    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39711    assert_instr(uqrshl)
39712)]
39713#[cfg_attr(
39714    not(target_arch = "arm"),
39715    stable(feature = "neon_intrinsics", since = "1.59.0")
39716)]
39717#[cfg_attr(
39718    target_arch = "arm",
39719    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39720)]
39721pub fn vqrshlq_u32(a: uint32x4_t, b: int32x4_t) -> uint32x4_t {
39722    unsafe extern "unadjusted" {
39723        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftu.v4i32")]
39724        #[cfg_attr(
39725            any(target_arch = "aarch64", target_arch = "arm64ec"),
39726            link_name = "llvm.aarch64.neon.uqrshl.v4i32"
39727        )]
39728        fn _vqrshlq_u32(a: uint32x4_t, b: int32x4_t) -> uint32x4_t;
39729    }
39730    unsafe { _vqrshlq_u32(a, b) }
39731}
39732#[doc = "Unsigned signed saturating rounding shift left"]
39733#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshl_u64)"]
39734#[inline]
39735#[target_feature(enable = "neon")]
39736#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39737#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
39738#[cfg_attr(
39739    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39740    assert_instr(uqrshl)
39741)]
39742#[cfg_attr(
39743    not(target_arch = "arm"),
39744    stable(feature = "neon_intrinsics", since = "1.59.0")
39745)]
39746#[cfg_attr(
39747    target_arch = "arm",
39748    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39749)]
39750pub fn vqrshl_u64(a: uint64x1_t, b: int64x1_t) -> uint64x1_t {
39751    unsafe extern "unadjusted" {
39752        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftu.v1i64")]
39753        #[cfg_attr(
39754            any(target_arch = "aarch64", target_arch = "arm64ec"),
39755            link_name = "llvm.aarch64.neon.uqrshl.v1i64"
39756        )]
39757        fn _vqrshl_u64(a: uint64x1_t, b: int64x1_t) -> uint64x1_t;
39758    }
39759    unsafe { _vqrshl_u64(a, b) }
39760}
39761#[doc = "Unsigned signed saturating rounding shift left"]
39762#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshlq_u64)"]
39763#[inline]
39764#[target_feature(enable = "neon")]
39765#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39766#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
39767#[cfg_attr(
39768    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39769    assert_instr(uqrshl)
39770)]
39771#[cfg_attr(
39772    not(target_arch = "arm"),
39773    stable(feature = "neon_intrinsics", since = "1.59.0")
39774)]
39775#[cfg_attr(
39776    target_arch = "arm",
39777    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39778)]
39779pub fn vqrshlq_u64(a: uint64x2_t, b: int64x2_t) -> uint64x2_t {
39780    unsafe extern "unadjusted" {
39781        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftu.v2i64")]
39782        #[cfg_attr(
39783            any(target_arch = "aarch64", target_arch = "arm64ec"),
39784            link_name = "llvm.aarch64.neon.uqrshl.v2i64"
39785        )]
39786        fn _vqrshlq_u64(a: uint64x2_t, b: int64x2_t) -> uint64x2_t;
39787    }
39788    unsafe { _vqrshlq_u64(a, b) }
39789}
39790#[doc = "Signed saturating rounded shift right narrow"]
39791#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_s16)"]
39792#[inline]
39793#[cfg(target_arch = "arm")]
39794#[target_feature(enable = "neon,v7")]
39795#[cfg_attr(test, assert_instr(vqrshrn, N = 2))]
39796#[rustc_legacy_const_generics(1)]
39797#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
39798pub fn vqrshrn_n_s16<const N: i32>(a: int16x8_t) -> int8x8_t {
39799    static_assert!(N >= 1 && N <= 8);
39800    unsafe extern "unadjusted" {
39801        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftns.v8i8")]
39802        fn _vqrshrn_n_s16(a: int16x8_t, n: int16x8_t) -> int8x8_t;
39803    }
39804    unsafe { _vqrshrn_n_s16(a, const { int16x8_t([-N as i16; 8]) }) }
39805}
39806#[doc = "Signed saturating rounded shift right narrow"]
39807#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_s32)"]
39808#[inline]
39809#[cfg(target_arch = "arm")]
39810#[target_feature(enable = "neon,v7")]
39811#[cfg_attr(test, assert_instr(vqrshrn, N = 2))]
39812#[rustc_legacy_const_generics(1)]
39813#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
39814pub fn vqrshrn_n_s32<const N: i32>(a: int32x4_t) -> int16x4_t {
39815    static_assert!(N >= 1 && N <= 16);
39816    unsafe extern "unadjusted" {
39817        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftns.v4i16")]
39818        fn _vqrshrn_n_s32(a: int32x4_t, n: int32x4_t) -> int16x4_t;
39819    }
39820    unsafe { _vqrshrn_n_s32(a, const { int32x4_t([-N; 4]) }) }
39821}
39822#[doc = "Signed saturating rounded shift right narrow"]
39823#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_s64)"]
39824#[inline]
39825#[cfg(target_arch = "arm")]
39826#[target_feature(enable = "neon,v7")]
39827#[cfg_attr(test, assert_instr(vqrshrn, N = 2))]
39828#[rustc_legacy_const_generics(1)]
39829#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
39830pub fn vqrshrn_n_s64<const N: i32>(a: int64x2_t) -> int32x2_t {
39831    static_assert!(N >= 1 && N <= 32);
39832    unsafe extern "unadjusted" {
39833        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftns.v2i32")]
39834        fn _vqrshrn_n_s64(a: int64x2_t, n: int64x2_t) -> int32x2_t;
39835    }
39836    unsafe { _vqrshrn_n_s64(a, const { int64x2_t([-N as i64; 2]) }) }
39837}
39838#[doc = "Signed saturating rounded shift right narrow"]
39839#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_s16)"]
39840#[inline]
39841#[target_feature(enable = "neon")]
39842#[cfg(not(target_arch = "arm"))]
39843#[cfg_attr(test, assert_instr(sqrshrn, N = 2))]
39844#[rustc_legacy_const_generics(1)]
39845#[stable(feature = "neon_intrinsics", since = "1.59.0")]
39846pub fn vqrshrn_n_s16<const N: i32>(a: int16x8_t) -> int8x8_t {
39847    static_assert!(N >= 1 && N <= 8);
39848    unsafe extern "unadjusted" {
39849        #[cfg_attr(
39850            any(target_arch = "aarch64", target_arch = "arm64ec"),
39851            link_name = "llvm.aarch64.neon.sqrshrn.v8i8"
39852        )]
39853        fn _vqrshrn_n_s16(a: int16x8_t, n: i32) -> int8x8_t;
39854    }
39855    unsafe { _vqrshrn_n_s16(a, N) }
39856}
39857#[doc = "Signed saturating rounded shift right narrow"]
39858#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_s32)"]
39859#[inline]
39860#[target_feature(enable = "neon")]
39861#[cfg(not(target_arch = "arm"))]
39862#[cfg_attr(test, assert_instr(sqrshrn, N = 2))]
39863#[rustc_legacy_const_generics(1)]
39864#[stable(feature = "neon_intrinsics", since = "1.59.0")]
39865pub fn vqrshrn_n_s32<const N: i32>(a: int32x4_t) -> int16x4_t {
39866    static_assert!(N >= 1 && N <= 16);
39867    unsafe extern "unadjusted" {
39868        #[cfg_attr(
39869            any(target_arch = "aarch64", target_arch = "arm64ec"),
39870            link_name = "llvm.aarch64.neon.sqrshrn.v4i16"
39871        )]
39872        fn _vqrshrn_n_s32(a: int32x4_t, n: i32) -> int16x4_t;
39873    }
39874    unsafe { _vqrshrn_n_s32(a, N) }
39875}
39876#[doc = "Signed saturating rounded shift right narrow"]
39877#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_s64)"]
39878#[inline]
39879#[target_feature(enable = "neon")]
39880#[cfg(not(target_arch = "arm"))]
39881#[cfg_attr(test, assert_instr(sqrshrn, N = 2))]
39882#[rustc_legacy_const_generics(1)]
39883#[stable(feature = "neon_intrinsics", since = "1.59.0")]
39884pub fn vqrshrn_n_s64<const N: i32>(a: int64x2_t) -> int32x2_t {
39885    static_assert!(N >= 1 && N <= 32);
39886    unsafe extern "unadjusted" {
39887        #[cfg_attr(
39888            any(target_arch = "aarch64", target_arch = "arm64ec"),
39889            link_name = "llvm.aarch64.neon.sqrshrn.v2i32"
39890        )]
39891        fn _vqrshrn_n_s64(a: int64x2_t, n: i32) -> int32x2_t;
39892    }
39893    unsafe { _vqrshrn_n_s64(a, N) }
39894}
39895#[doc = "Unsigned signed saturating rounded shift right narrow"]
39896#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_u16)"]
39897#[inline]
39898#[cfg(target_arch = "arm")]
39899#[target_feature(enable = "neon,v7")]
39900#[cfg_attr(test, assert_instr(vqrshrn, N = 2))]
39901#[rustc_legacy_const_generics(1)]
39902#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
39903pub fn vqrshrn_n_u16<const N: i32>(a: uint16x8_t) -> uint8x8_t {
39904    static_assert!(N >= 1 && N <= 8);
39905    unsafe extern "unadjusted" {
39906        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftnu.v8i8")]
39907        fn _vqrshrn_n_u16(a: uint16x8_t, n: uint16x8_t) -> uint8x8_t;
39908    }
39909    unsafe {
39910        _vqrshrn_n_u16(
39911            a,
39912            const {
39913                uint16x8_t([
39914                    -N as u16, -N as u16, -N as u16, -N as u16, -N as u16, -N as u16, -N as u16,
39915                    -N as u16,
39916                ])
39917            },
39918        )
39919    }
39920}
39921#[doc = "Unsigned signed saturating rounded shift right narrow"]
39922#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_u32)"]
39923#[inline]
39924#[cfg(target_arch = "arm")]
39925#[target_feature(enable = "neon,v7")]
39926#[cfg_attr(test, assert_instr(vqrshrn, N = 2))]
39927#[rustc_legacy_const_generics(1)]
39928#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
39929pub fn vqrshrn_n_u32<const N: i32>(a: uint32x4_t) -> uint16x4_t {
39930    static_assert!(N >= 1 && N <= 16);
39931    unsafe extern "unadjusted" {
39932        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftnu.v4i16")]
39933        fn _vqrshrn_n_u32(a: uint32x4_t, n: uint32x4_t) -> uint16x4_t;
39934    }
39935    unsafe {
39936        _vqrshrn_n_u32(
39937            a,
39938            const { uint32x4_t([-N as u32, -N as u32, -N as u32, -N as u32]) },
39939        )
39940    }
39941}
39942#[doc = "Unsigned signed saturating rounded shift right narrow"]
39943#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_u64)"]
39944#[inline]
39945#[cfg(target_arch = "arm")]
39946#[target_feature(enable = "neon,v7")]
39947#[cfg_attr(test, assert_instr(vqrshrn, N = 2))]
39948#[rustc_legacy_const_generics(1)]
39949#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
39950pub fn vqrshrn_n_u64<const N: i32>(a: uint64x2_t) -> uint32x2_t {
39951    static_assert!(N >= 1 && N <= 32);
39952    unsafe extern "unadjusted" {
39953        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftnu.v2i32")]
39954        fn _vqrshrn_n_u64(a: uint64x2_t, n: uint64x2_t) -> uint32x2_t;
39955    }
39956    unsafe { _vqrshrn_n_u64(a, const { uint64x2_t([-N as u64, -N as u64]) }) }
39957}
39958#[doc = "Unsigned signed saturating rounded shift right narrow"]
39959#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_u16)"]
39960#[inline]
39961#[target_feature(enable = "neon")]
39962#[cfg(not(target_arch = "arm"))]
39963#[cfg_attr(test, assert_instr(uqrshrn, N = 2))]
39964#[rustc_legacy_const_generics(1)]
39965#[stable(feature = "neon_intrinsics", since = "1.59.0")]
39966pub fn vqrshrn_n_u16<const N: i32>(a: uint16x8_t) -> uint8x8_t {
39967    static_assert!(N >= 1 && N <= 8);
39968    unsafe extern "unadjusted" {
39969        #[cfg_attr(
39970            any(target_arch = "aarch64", target_arch = "arm64ec"),
39971            link_name = "llvm.aarch64.neon.uqrshrn.v8i8"
39972        )]
39973        fn _vqrshrn_n_u16(a: uint16x8_t, n: i32) -> uint8x8_t;
39974    }
39975    unsafe { _vqrshrn_n_u16(a, N) }
39976}
39977#[doc = "Unsigned signed saturating rounded shift right narrow"]
39978#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_u32)"]
39979#[inline]
39980#[target_feature(enable = "neon")]
39981#[cfg(not(target_arch = "arm"))]
39982#[cfg_attr(test, assert_instr(uqrshrn, N = 2))]
39983#[rustc_legacy_const_generics(1)]
39984#[stable(feature = "neon_intrinsics", since = "1.59.0")]
39985pub fn vqrshrn_n_u32<const N: i32>(a: uint32x4_t) -> uint16x4_t {
39986    static_assert!(N >= 1 && N <= 16);
39987    unsafe extern "unadjusted" {
39988        #[cfg_attr(
39989            any(target_arch = "aarch64", target_arch = "arm64ec"),
39990            link_name = "llvm.aarch64.neon.uqrshrn.v4i16"
39991        )]
39992        fn _vqrshrn_n_u32(a: uint32x4_t, n: i32) -> uint16x4_t;
39993    }
39994    unsafe { _vqrshrn_n_u32(a, N) }
39995}
39996#[doc = "Unsigned signed saturating rounded shift right narrow"]
39997#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_u64)"]
39998#[inline]
39999#[target_feature(enable = "neon")]
40000#[cfg(not(target_arch = "arm"))]
40001#[cfg_attr(test, assert_instr(uqrshrn, N = 2))]
40002#[rustc_legacy_const_generics(1)]
40003#[stable(feature = "neon_intrinsics", since = "1.59.0")]
40004pub fn vqrshrn_n_u64<const N: i32>(a: uint64x2_t) -> uint32x2_t {
40005    static_assert!(N >= 1 && N <= 32);
40006    unsafe extern "unadjusted" {
40007        #[cfg_attr(
40008            any(target_arch = "aarch64", target_arch = "arm64ec"),
40009            link_name = "llvm.aarch64.neon.uqrshrn.v2i32"
40010        )]
40011        fn _vqrshrn_n_u64(a: uint64x2_t, n: i32) -> uint32x2_t;
40012    }
40013    unsafe { _vqrshrn_n_u64(a, N) }
40014}
40015#[doc = "Signed saturating rounded shift right unsigned narrow"]
40016#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrun_n_s16)"]
40017#[inline]
40018#[cfg(target_arch = "arm")]
40019#[target_feature(enable = "neon,v7")]
40020#[cfg_attr(test, assert_instr(vqrshrun, N = 2))]
40021#[rustc_legacy_const_generics(1)]
40022#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
40023pub fn vqrshrun_n_s16<const N: i32>(a: int16x8_t) -> uint8x8_t {
40024    static_assert!(N >= 1 && N <= 8);
40025    unsafe extern "unadjusted" {
40026        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftnsu.v8i8")]
40027        fn _vqrshrun_n_s16(a: int16x8_t, n: int16x8_t) -> uint8x8_t;
40028    }
40029    unsafe { _vqrshrun_n_s16(a, const { int16x8_t([-N as i16; 8]) }) }
40030}
40031#[doc = "Signed saturating rounded shift right unsigned narrow"]
40032#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrun_n_s32)"]
40033#[inline]
40034#[cfg(target_arch = "arm")]
40035#[target_feature(enable = "neon,v7")]
40036#[cfg_attr(test, assert_instr(vqrshrun, N = 2))]
40037#[rustc_legacy_const_generics(1)]
40038#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
40039pub fn vqrshrun_n_s32<const N: i32>(a: int32x4_t) -> uint16x4_t {
40040    static_assert!(N >= 1 && N <= 16);
40041    unsafe extern "unadjusted" {
40042        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftnsu.v4i16")]
40043        fn _vqrshrun_n_s32(a: int32x4_t, n: int32x4_t) -> uint16x4_t;
40044    }
40045    unsafe { _vqrshrun_n_s32(a, const { int32x4_t([-N; 4]) }) }
40046}
40047#[doc = "Signed saturating rounded shift right unsigned narrow"]
40048#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrun_n_s64)"]
40049#[inline]
40050#[cfg(target_arch = "arm")]
40051#[target_feature(enable = "neon,v7")]
40052#[cfg_attr(test, assert_instr(vqrshrun, N = 2))]
40053#[rustc_legacy_const_generics(1)]
40054#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
40055pub fn vqrshrun_n_s64<const N: i32>(a: int64x2_t) -> uint32x2_t {
40056    static_assert!(N >= 1 && N <= 32);
40057    unsafe extern "unadjusted" {
40058        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftnsu.v2i32")]
40059        fn _vqrshrun_n_s64(a: int64x2_t, n: int64x2_t) -> uint32x2_t;
40060    }
40061    unsafe { _vqrshrun_n_s64(a, const { int64x2_t([-N as i64; 2]) }) }
40062}
40063#[doc = "Signed saturating rounded shift right unsigned narrow"]
40064#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrun_n_s16)"]
40065#[inline]
40066#[target_feature(enable = "neon")]
40067#[cfg(not(target_arch = "arm"))]
40068#[cfg_attr(test, assert_instr(sqrshrun, N = 2))]
40069#[rustc_legacy_const_generics(1)]
40070#[stable(feature = "neon_intrinsics", since = "1.59.0")]
40071pub fn vqrshrun_n_s16<const N: i32>(a: int16x8_t) -> uint8x8_t {
40072    static_assert!(N >= 1 && N <= 8);
40073    unsafe extern "unadjusted" {
40074        #[cfg_attr(
40075            any(target_arch = "aarch64", target_arch = "arm64ec"),
40076            link_name = "llvm.aarch64.neon.sqrshrun.v8i8"
40077        )]
40078        fn _vqrshrun_n_s16(a: int16x8_t, n: i32) -> uint8x8_t;
40079    }
40080    unsafe { _vqrshrun_n_s16(a, N) }
40081}
40082#[doc = "Signed saturating rounded shift right unsigned narrow"]
40083#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrun_n_s32)"]
40084#[inline]
40085#[target_feature(enable = "neon")]
40086#[cfg(not(target_arch = "arm"))]
40087#[cfg_attr(test, assert_instr(sqrshrun, N = 2))]
40088#[rustc_legacy_const_generics(1)]
40089#[stable(feature = "neon_intrinsics", since = "1.59.0")]
40090pub fn vqrshrun_n_s32<const N: i32>(a: int32x4_t) -> uint16x4_t {
40091    static_assert!(N >= 1 && N <= 16);
40092    unsafe extern "unadjusted" {
40093        #[cfg_attr(
40094            any(target_arch = "aarch64", target_arch = "arm64ec"),
40095            link_name = "llvm.aarch64.neon.sqrshrun.v4i16"
40096        )]
40097        fn _vqrshrun_n_s32(a: int32x4_t, n: i32) -> uint16x4_t;
40098    }
40099    unsafe { _vqrshrun_n_s32(a, N) }
40100}
40101#[doc = "Signed saturating rounded shift right unsigned narrow"]
40102#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrun_n_s64)"]
40103#[inline]
40104#[target_feature(enable = "neon")]
40105#[cfg(not(target_arch = "arm"))]
40106#[cfg_attr(test, assert_instr(sqrshrun, N = 2))]
40107#[rustc_legacy_const_generics(1)]
40108#[stable(feature = "neon_intrinsics", since = "1.59.0")]
40109pub fn vqrshrun_n_s64<const N: i32>(a: int64x2_t) -> uint32x2_t {
40110    static_assert!(N >= 1 && N <= 32);
40111    unsafe extern "unadjusted" {
40112        #[cfg_attr(
40113            any(target_arch = "aarch64", target_arch = "arm64ec"),
40114            link_name = "llvm.aarch64.neon.sqrshrun.v2i32"
40115        )]
40116        fn _vqrshrun_n_s64(a: int64x2_t, n: i32) -> uint32x2_t;
40117    }
40118    unsafe { _vqrshrun_n_s64(a, N) }
40119}
40120#[doc = "Signed saturating shift left"]
40121#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_n_s8)"]
40122#[inline]
40123#[target_feature(enable = "neon")]
40124#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40125#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
40126#[cfg_attr(
40127    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40128    assert_instr(sqshl, N = 2)
40129)]
40130#[rustc_legacy_const_generics(1)]
40131#[cfg_attr(
40132    not(target_arch = "arm"),
40133    stable(feature = "neon_intrinsics", since = "1.59.0")
40134)]
40135#[cfg_attr(
40136    target_arch = "arm",
40137    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40138)]
40139pub fn vqshl_n_s8<const N: i32>(a: int8x8_t) -> int8x8_t {
40140    static_assert_uimm_bits!(N, 3);
40141    vqshl_s8(a, vdup_n_s8(N as _))
40142}
40143#[doc = "Signed saturating shift left"]
40144#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_n_s8)"]
40145#[inline]
40146#[target_feature(enable = "neon")]
40147#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40148#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
40149#[cfg_attr(
40150    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40151    assert_instr(sqshl, N = 2)
40152)]
40153#[rustc_legacy_const_generics(1)]
40154#[cfg_attr(
40155    not(target_arch = "arm"),
40156    stable(feature = "neon_intrinsics", since = "1.59.0")
40157)]
40158#[cfg_attr(
40159    target_arch = "arm",
40160    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40161)]
40162pub fn vqshlq_n_s8<const N: i32>(a: int8x16_t) -> int8x16_t {
40163    static_assert_uimm_bits!(N, 3);
40164    vqshlq_s8(a, vdupq_n_s8(N as _))
40165}
40166#[doc = "Signed saturating shift left"]
40167#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_n_s16)"]
40168#[inline]
40169#[target_feature(enable = "neon")]
40170#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40171#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
40172#[cfg_attr(
40173    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40174    assert_instr(sqshl, N = 2)
40175)]
40176#[rustc_legacy_const_generics(1)]
40177#[cfg_attr(
40178    not(target_arch = "arm"),
40179    stable(feature = "neon_intrinsics", since = "1.59.0")
40180)]
40181#[cfg_attr(
40182    target_arch = "arm",
40183    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40184)]
40185pub fn vqshl_n_s16<const N: i32>(a: int16x4_t) -> int16x4_t {
40186    static_assert_uimm_bits!(N, 4);
40187    vqshl_s16(a, vdup_n_s16(N as _))
40188}
40189#[doc = "Signed saturating shift left"]
40190#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_n_s16)"]
40191#[inline]
40192#[target_feature(enable = "neon")]
40193#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40194#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
40195#[cfg_attr(
40196    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40197    assert_instr(sqshl, N = 2)
40198)]
40199#[rustc_legacy_const_generics(1)]
40200#[cfg_attr(
40201    not(target_arch = "arm"),
40202    stable(feature = "neon_intrinsics", since = "1.59.0")
40203)]
40204#[cfg_attr(
40205    target_arch = "arm",
40206    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40207)]
40208pub fn vqshlq_n_s16<const N: i32>(a: int16x8_t) -> int16x8_t {
40209    static_assert_uimm_bits!(N, 4);
40210    vqshlq_s16(a, vdupq_n_s16(N as _))
40211}
40212#[doc = "Signed saturating shift left"]
40213#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_n_s32)"]
40214#[inline]
40215#[target_feature(enable = "neon")]
40216#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40217#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
40218#[cfg_attr(
40219    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40220    assert_instr(sqshl, N = 2)
40221)]
40222#[rustc_legacy_const_generics(1)]
40223#[cfg_attr(
40224    not(target_arch = "arm"),
40225    stable(feature = "neon_intrinsics", since = "1.59.0")
40226)]
40227#[cfg_attr(
40228    target_arch = "arm",
40229    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40230)]
40231pub fn vqshl_n_s32<const N: i32>(a: int32x2_t) -> int32x2_t {
40232    static_assert_uimm_bits!(N, 5);
40233    vqshl_s32(a, vdup_n_s32(N as _))
40234}
40235#[doc = "Signed saturating shift left"]
40236#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_n_s32)"]
40237#[inline]
40238#[target_feature(enable = "neon")]
40239#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40240#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
40241#[cfg_attr(
40242    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40243    assert_instr(sqshl, N = 2)
40244)]
40245#[rustc_legacy_const_generics(1)]
40246#[cfg_attr(
40247    not(target_arch = "arm"),
40248    stable(feature = "neon_intrinsics", since = "1.59.0")
40249)]
40250#[cfg_attr(
40251    target_arch = "arm",
40252    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40253)]
40254pub fn vqshlq_n_s32<const N: i32>(a: int32x4_t) -> int32x4_t {
40255    static_assert_uimm_bits!(N, 5);
40256    vqshlq_s32(a, vdupq_n_s32(N as _))
40257}
40258#[doc = "Signed saturating shift left"]
40259#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_n_s64)"]
40260#[inline]
40261#[target_feature(enable = "neon")]
40262#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40263#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
40264#[cfg_attr(
40265    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40266    assert_instr(sqshl, N = 2)
40267)]
40268#[rustc_legacy_const_generics(1)]
40269#[cfg_attr(
40270    not(target_arch = "arm"),
40271    stable(feature = "neon_intrinsics", since = "1.59.0")
40272)]
40273#[cfg_attr(
40274    target_arch = "arm",
40275    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40276)]
40277pub fn vqshl_n_s64<const N: i32>(a: int64x1_t) -> int64x1_t {
40278    static_assert_uimm_bits!(N, 6);
40279    vqshl_s64(a, vdup_n_s64(N as _))
40280}
40281#[doc = "Signed saturating shift left"]
40282#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_n_s64)"]
40283#[inline]
40284#[target_feature(enable = "neon")]
40285#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40286#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
40287#[cfg_attr(
40288    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40289    assert_instr(sqshl, N = 2)
40290)]
40291#[rustc_legacy_const_generics(1)]
40292#[cfg_attr(
40293    not(target_arch = "arm"),
40294    stable(feature = "neon_intrinsics", since = "1.59.0")
40295)]
40296#[cfg_attr(
40297    target_arch = "arm",
40298    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40299)]
40300pub fn vqshlq_n_s64<const N: i32>(a: int64x2_t) -> int64x2_t {
40301    static_assert_uimm_bits!(N, 6);
40302    vqshlq_s64(a, vdupq_n_s64(N as _))
40303}
40304#[doc = "Unsigned saturating shift left"]
40305#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_n_u8)"]
40306#[inline]
40307#[target_feature(enable = "neon")]
40308#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40309#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
40310#[cfg_attr(
40311    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40312    assert_instr(uqshl, N = 2)
40313)]
40314#[rustc_legacy_const_generics(1)]
40315#[cfg_attr(
40316    not(target_arch = "arm"),
40317    stable(feature = "neon_intrinsics", since = "1.59.0")
40318)]
40319#[cfg_attr(
40320    target_arch = "arm",
40321    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40322)]
40323pub fn vqshl_n_u8<const N: i32>(a: uint8x8_t) -> uint8x8_t {
40324    static_assert_uimm_bits!(N, 3);
40325    vqshl_u8(a, vdup_n_s8(N as _))
40326}
40327#[doc = "Unsigned saturating shift left"]
40328#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_n_u8)"]
40329#[inline]
40330#[target_feature(enable = "neon")]
40331#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40332#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
40333#[cfg_attr(
40334    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40335    assert_instr(uqshl, N = 2)
40336)]
40337#[rustc_legacy_const_generics(1)]
40338#[cfg_attr(
40339    not(target_arch = "arm"),
40340    stable(feature = "neon_intrinsics", since = "1.59.0")
40341)]
40342#[cfg_attr(
40343    target_arch = "arm",
40344    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40345)]
40346pub fn vqshlq_n_u8<const N: i32>(a: uint8x16_t) -> uint8x16_t {
40347    static_assert_uimm_bits!(N, 3);
40348    vqshlq_u8(a, vdupq_n_s8(N as _))
40349}
40350#[doc = "Unsigned saturating shift left"]
40351#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_n_u16)"]
40352#[inline]
40353#[target_feature(enable = "neon")]
40354#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40355#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
40356#[cfg_attr(
40357    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40358    assert_instr(uqshl, N = 2)
40359)]
40360#[rustc_legacy_const_generics(1)]
40361#[cfg_attr(
40362    not(target_arch = "arm"),
40363    stable(feature = "neon_intrinsics", since = "1.59.0")
40364)]
40365#[cfg_attr(
40366    target_arch = "arm",
40367    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40368)]
40369pub fn vqshl_n_u16<const N: i32>(a: uint16x4_t) -> uint16x4_t {
40370    static_assert_uimm_bits!(N, 4);
40371    vqshl_u16(a, vdup_n_s16(N as _))
40372}
40373#[doc = "Unsigned saturating shift left"]
40374#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_n_u16)"]
40375#[inline]
40376#[target_feature(enable = "neon")]
40377#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40378#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
40379#[cfg_attr(
40380    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40381    assert_instr(uqshl, N = 2)
40382)]
40383#[rustc_legacy_const_generics(1)]
40384#[cfg_attr(
40385    not(target_arch = "arm"),
40386    stable(feature = "neon_intrinsics", since = "1.59.0")
40387)]
40388#[cfg_attr(
40389    target_arch = "arm",
40390    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40391)]
40392pub fn vqshlq_n_u16<const N: i32>(a: uint16x8_t) -> uint16x8_t {
40393    static_assert_uimm_bits!(N, 4);
40394    vqshlq_u16(a, vdupq_n_s16(N as _))
40395}
40396#[doc = "Unsigned saturating shift left"]
40397#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_n_u32)"]
40398#[inline]
40399#[target_feature(enable = "neon")]
40400#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40401#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
40402#[cfg_attr(
40403    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40404    assert_instr(uqshl, N = 2)
40405)]
40406#[rustc_legacy_const_generics(1)]
40407#[cfg_attr(
40408    not(target_arch = "arm"),
40409    stable(feature = "neon_intrinsics", since = "1.59.0")
40410)]
40411#[cfg_attr(
40412    target_arch = "arm",
40413    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40414)]
40415pub fn vqshl_n_u32<const N: i32>(a: uint32x2_t) -> uint32x2_t {
40416    static_assert_uimm_bits!(N, 5);
40417    vqshl_u32(a, vdup_n_s32(N as _))
40418}
40419#[doc = "Unsigned saturating shift left"]
40420#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_n_u32)"]
40421#[inline]
40422#[target_feature(enable = "neon")]
40423#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40424#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
40425#[cfg_attr(
40426    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40427    assert_instr(uqshl, N = 2)
40428)]
40429#[rustc_legacy_const_generics(1)]
40430#[cfg_attr(
40431    not(target_arch = "arm"),
40432    stable(feature = "neon_intrinsics", since = "1.59.0")
40433)]
40434#[cfg_attr(
40435    target_arch = "arm",
40436    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40437)]
40438pub fn vqshlq_n_u32<const N: i32>(a: uint32x4_t) -> uint32x4_t {
40439    static_assert_uimm_bits!(N, 5);
40440    vqshlq_u32(a, vdupq_n_s32(N as _))
40441}
40442#[doc = "Unsigned saturating shift left"]
40443#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_n_u64)"]
40444#[inline]
40445#[target_feature(enable = "neon")]
40446#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40447#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
40448#[cfg_attr(
40449    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40450    assert_instr(uqshl, N = 2)
40451)]
40452#[rustc_legacy_const_generics(1)]
40453#[cfg_attr(
40454    not(target_arch = "arm"),
40455    stable(feature = "neon_intrinsics", since = "1.59.0")
40456)]
40457#[cfg_attr(
40458    target_arch = "arm",
40459    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40460)]
40461pub fn vqshl_n_u64<const N: i32>(a: uint64x1_t) -> uint64x1_t {
40462    static_assert_uimm_bits!(N, 6);
40463    vqshl_u64(a, vdup_n_s64(N as _))
40464}
40465#[doc = "Unsigned saturating shift left"]
40466#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_n_u64)"]
40467#[inline]
40468#[target_feature(enable = "neon")]
40469#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40470#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
40471#[cfg_attr(
40472    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40473    assert_instr(uqshl, N = 2)
40474)]
40475#[rustc_legacy_const_generics(1)]
40476#[cfg_attr(
40477    not(target_arch = "arm"),
40478    stable(feature = "neon_intrinsics", since = "1.59.0")
40479)]
40480#[cfg_attr(
40481    target_arch = "arm",
40482    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40483)]
40484pub fn vqshlq_n_u64<const N: i32>(a: uint64x2_t) -> uint64x2_t {
40485    static_assert_uimm_bits!(N, 6);
40486    vqshlq_u64(a, vdupq_n_s64(N as _))
40487}
40488#[doc = "Signed saturating shift left"]
40489#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_s8)"]
40490#[inline]
40491#[target_feature(enable = "neon")]
40492#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40493#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
40494#[cfg_attr(
40495    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40496    assert_instr(sqshl)
40497)]
40498#[cfg_attr(
40499    not(target_arch = "arm"),
40500    stable(feature = "neon_intrinsics", since = "1.59.0")
40501)]
40502#[cfg_attr(
40503    target_arch = "arm",
40504    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40505)]
40506pub fn vqshl_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
40507    unsafe extern "unadjusted" {
40508        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshifts.v8i8")]
40509        #[cfg_attr(
40510            any(target_arch = "aarch64", target_arch = "arm64ec"),
40511            link_name = "llvm.aarch64.neon.sqshl.v8i8"
40512        )]
40513        fn _vqshl_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t;
40514    }
40515    unsafe { _vqshl_s8(a, b) }
40516}
40517#[doc = "Signed saturating shift left"]
40518#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_s8)"]
40519#[inline]
40520#[target_feature(enable = "neon")]
40521#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40522#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
40523#[cfg_attr(
40524    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40525    assert_instr(sqshl)
40526)]
40527#[cfg_attr(
40528    not(target_arch = "arm"),
40529    stable(feature = "neon_intrinsics", since = "1.59.0")
40530)]
40531#[cfg_attr(
40532    target_arch = "arm",
40533    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40534)]
40535pub fn vqshlq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
40536    unsafe extern "unadjusted" {
40537        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshifts.v16i8")]
40538        #[cfg_attr(
40539            any(target_arch = "aarch64", target_arch = "arm64ec"),
40540            link_name = "llvm.aarch64.neon.sqshl.v16i8"
40541        )]
40542        fn _vqshlq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t;
40543    }
40544    unsafe { _vqshlq_s8(a, b) }
40545}
40546#[doc = "Signed saturating shift left"]
40547#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_s16)"]
40548#[inline]
40549#[target_feature(enable = "neon")]
40550#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40551#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
40552#[cfg_attr(
40553    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40554    assert_instr(sqshl)
40555)]
40556#[cfg_attr(
40557    not(target_arch = "arm"),
40558    stable(feature = "neon_intrinsics", since = "1.59.0")
40559)]
40560#[cfg_attr(
40561    target_arch = "arm",
40562    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40563)]
40564pub fn vqshl_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
40565    unsafe extern "unadjusted" {
40566        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshifts.v4i16")]
40567        #[cfg_attr(
40568            any(target_arch = "aarch64", target_arch = "arm64ec"),
40569            link_name = "llvm.aarch64.neon.sqshl.v4i16"
40570        )]
40571        fn _vqshl_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t;
40572    }
40573    unsafe { _vqshl_s16(a, b) }
40574}
40575#[doc = "Signed saturating shift left"]
40576#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_s16)"]
40577#[inline]
40578#[target_feature(enable = "neon")]
40579#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40580#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
40581#[cfg_attr(
40582    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40583    assert_instr(sqshl)
40584)]
40585#[cfg_attr(
40586    not(target_arch = "arm"),
40587    stable(feature = "neon_intrinsics", since = "1.59.0")
40588)]
40589#[cfg_attr(
40590    target_arch = "arm",
40591    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40592)]
40593pub fn vqshlq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
40594    unsafe extern "unadjusted" {
40595        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshifts.v8i16")]
40596        #[cfg_attr(
40597            any(target_arch = "aarch64", target_arch = "arm64ec"),
40598            link_name = "llvm.aarch64.neon.sqshl.v8i16"
40599        )]
40600        fn _vqshlq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t;
40601    }
40602    unsafe { _vqshlq_s16(a, b) }
40603}
40604#[doc = "Signed saturating shift left"]
40605#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_s32)"]
40606#[inline]
40607#[target_feature(enable = "neon")]
40608#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40609#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
40610#[cfg_attr(
40611    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40612    assert_instr(sqshl)
40613)]
40614#[cfg_attr(
40615    not(target_arch = "arm"),
40616    stable(feature = "neon_intrinsics", since = "1.59.0")
40617)]
40618#[cfg_attr(
40619    target_arch = "arm",
40620    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40621)]
40622pub fn vqshl_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
40623    unsafe extern "unadjusted" {
40624        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshifts.v2i32")]
40625        #[cfg_attr(
40626            any(target_arch = "aarch64", target_arch = "arm64ec"),
40627            link_name = "llvm.aarch64.neon.sqshl.v2i32"
40628        )]
40629        fn _vqshl_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t;
40630    }
40631    unsafe { _vqshl_s32(a, b) }
40632}
40633#[doc = "Signed saturating shift left"]
40634#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_s32)"]
40635#[inline]
40636#[target_feature(enable = "neon")]
40637#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40638#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
40639#[cfg_attr(
40640    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40641    assert_instr(sqshl)
40642)]
40643#[cfg_attr(
40644    not(target_arch = "arm"),
40645    stable(feature = "neon_intrinsics", since = "1.59.0")
40646)]
40647#[cfg_attr(
40648    target_arch = "arm",
40649    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40650)]
40651pub fn vqshlq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
40652    unsafe extern "unadjusted" {
40653        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshifts.v4i32")]
40654        #[cfg_attr(
40655            any(target_arch = "aarch64", target_arch = "arm64ec"),
40656            link_name = "llvm.aarch64.neon.sqshl.v4i32"
40657        )]
40658        fn _vqshlq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t;
40659    }
40660    unsafe { _vqshlq_s32(a, b) }
40661}
40662#[doc = "Signed saturating shift left"]
40663#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_s64)"]
40664#[inline]
40665#[target_feature(enable = "neon")]
40666#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40667#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
40668#[cfg_attr(
40669    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40670    assert_instr(sqshl)
40671)]
40672#[cfg_attr(
40673    not(target_arch = "arm"),
40674    stable(feature = "neon_intrinsics", since = "1.59.0")
40675)]
40676#[cfg_attr(
40677    target_arch = "arm",
40678    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40679)]
40680pub fn vqshl_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t {
40681    unsafe extern "unadjusted" {
40682        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshifts.v1i64")]
40683        #[cfg_attr(
40684            any(target_arch = "aarch64", target_arch = "arm64ec"),
40685            link_name = "llvm.aarch64.neon.sqshl.v1i64"
40686        )]
40687        fn _vqshl_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t;
40688    }
40689    unsafe { _vqshl_s64(a, b) }
40690}
40691#[doc = "Signed saturating shift left"]
40692#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_s64)"]
40693#[inline]
40694#[target_feature(enable = "neon")]
40695#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40696#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
40697#[cfg_attr(
40698    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40699    assert_instr(sqshl)
40700)]
40701#[cfg_attr(
40702    not(target_arch = "arm"),
40703    stable(feature = "neon_intrinsics", since = "1.59.0")
40704)]
40705#[cfg_attr(
40706    target_arch = "arm",
40707    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40708)]
40709pub fn vqshlq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t {
40710    unsafe extern "unadjusted" {
40711        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshifts.v2i64")]
40712        #[cfg_attr(
40713            any(target_arch = "aarch64", target_arch = "arm64ec"),
40714            link_name = "llvm.aarch64.neon.sqshl.v2i64"
40715        )]
40716        fn _vqshlq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t;
40717    }
40718    unsafe { _vqshlq_s64(a, b) }
40719}
40720#[doc = "Unsigned saturating shift left"]
40721#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_u8)"]
40722#[inline]
40723#[target_feature(enable = "neon")]
40724#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40725#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
40726#[cfg_attr(
40727    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40728    assert_instr(uqshl)
40729)]
40730#[cfg_attr(
40731    not(target_arch = "arm"),
40732    stable(feature = "neon_intrinsics", since = "1.59.0")
40733)]
40734#[cfg_attr(
40735    target_arch = "arm",
40736    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40737)]
40738pub fn vqshl_u8(a: uint8x8_t, b: int8x8_t) -> uint8x8_t {
40739    unsafe extern "unadjusted" {
40740        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftu.v8i8")]
40741        #[cfg_attr(
40742            any(target_arch = "aarch64", target_arch = "arm64ec"),
40743            link_name = "llvm.aarch64.neon.uqshl.v8i8"
40744        )]
40745        fn _vqshl_u8(a: uint8x8_t, b: int8x8_t) -> uint8x8_t;
40746    }
40747    unsafe { _vqshl_u8(a, b) }
40748}
40749#[doc = "Unsigned saturating shift left"]
40750#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_u8)"]
40751#[inline]
40752#[target_feature(enable = "neon")]
40753#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40754#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
40755#[cfg_attr(
40756    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40757    assert_instr(uqshl)
40758)]
40759#[cfg_attr(
40760    not(target_arch = "arm"),
40761    stable(feature = "neon_intrinsics", since = "1.59.0")
40762)]
40763#[cfg_attr(
40764    target_arch = "arm",
40765    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40766)]
40767pub fn vqshlq_u8(a: uint8x16_t, b: int8x16_t) -> uint8x16_t {
40768    unsafe extern "unadjusted" {
40769        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftu.v16i8")]
40770        #[cfg_attr(
40771            any(target_arch = "aarch64", target_arch = "arm64ec"),
40772            link_name = "llvm.aarch64.neon.uqshl.v16i8"
40773        )]
40774        fn _vqshlq_u8(a: uint8x16_t, b: int8x16_t) -> uint8x16_t;
40775    }
40776    unsafe { _vqshlq_u8(a, b) }
40777}
40778#[doc = "Unsigned saturating shift left"]
40779#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_u16)"]
40780#[inline]
40781#[target_feature(enable = "neon")]
40782#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40783#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
40784#[cfg_attr(
40785    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40786    assert_instr(uqshl)
40787)]
40788#[cfg_attr(
40789    not(target_arch = "arm"),
40790    stable(feature = "neon_intrinsics", since = "1.59.0")
40791)]
40792#[cfg_attr(
40793    target_arch = "arm",
40794    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40795)]
40796pub fn vqshl_u16(a: uint16x4_t, b: int16x4_t) -> uint16x4_t {
40797    unsafe extern "unadjusted" {
40798        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftu.v4i16")]
40799        #[cfg_attr(
40800            any(target_arch = "aarch64", target_arch = "arm64ec"),
40801            link_name = "llvm.aarch64.neon.uqshl.v4i16"
40802        )]
40803        fn _vqshl_u16(a: uint16x4_t, b: int16x4_t) -> uint16x4_t;
40804    }
40805    unsafe { _vqshl_u16(a, b) }
40806}
40807#[doc = "Unsigned saturating shift left"]
40808#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_u16)"]
40809#[inline]
40810#[target_feature(enable = "neon")]
40811#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40812#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
40813#[cfg_attr(
40814    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40815    assert_instr(uqshl)
40816)]
40817#[cfg_attr(
40818    not(target_arch = "arm"),
40819    stable(feature = "neon_intrinsics", since = "1.59.0")
40820)]
40821#[cfg_attr(
40822    target_arch = "arm",
40823    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40824)]
40825pub fn vqshlq_u16(a: uint16x8_t, b: int16x8_t) -> uint16x8_t {
40826    unsafe extern "unadjusted" {
40827        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftu.v8i16")]
40828        #[cfg_attr(
40829            any(target_arch = "aarch64", target_arch = "arm64ec"),
40830            link_name = "llvm.aarch64.neon.uqshl.v8i16"
40831        )]
40832        fn _vqshlq_u16(a: uint16x8_t, b: int16x8_t) -> uint16x8_t;
40833    }
40834    unsafe { _vqshlq_u16(a, b) }
40835}
40836#[doc = "Unsigned saturating shift left"]
40837#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_u32)"]
40838#[inline]
40839#[target_feature(enable = "neon")]
40840#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40841#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
40842#[cfg_attr(
40843    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40844    assert_instr(uqshl)
40845)]
40846#[cfg_attr(
40847    not(target_arch = "arm"),
40848    stable(feature = "neon_intrinsics", since = "1.59.0")
40849)]
40850#[cfg_attr(
40851    target_arch = "arm",
40852    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40853)]
40854pub fn vqshl_u32(a: uint32x2_t, b: int32x2_t) -> uint32x2_t {
40855    unsafe extern "unadjusted" {
40856        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftu.v2i32")]
40857        #[cfg_attr(
40858            any(target_arch = "aarch64", target_arch = "arm64ec"),
40859            link_name = "llvm.aarch64.neon.uqshl.v2i32"
40860        )]
40861        fn _vqshl_u32(a: uint32x2_t, b: int32x2_t) -> uint32x2_t;
40862    }
40863    unsafe { _vqshl_u32(a, b) }
40864}
40865#[doc = "Unsigned saturating shift left"]
40866#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_u32)"]
40867#[inline]
40868#[target_feature(enable = "neon")]
40869#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40870#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
40871#[cfg_attr(
40872    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40873    assert_instr(uqshl)
40874)]
40875#[cfg_attr(
40876    not(target_arch = "arm"),
40877    stable(feature = "neon_intrinsics", since = "1.59.0")
40878)]
40879#[cfg_attr(
40880    target_arch = "arm",
40881    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40882)]
40883pub fn vqshlq_u32(a: uint32x4_t, b: int32x4_t) -> uint32x4_t {
40884    unsafe extern "unadjusted" {
40885        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftu.v4i32")]
40886        #[cfg_attr(
40887            any(target_arch = "aarch64", target_arch = "arm64ec"),
40888            link_name = "llvm.aarch64.neon.uqshl.v4i32"
40889        )]
40890        fn _vqshlq_u32(a: uint32x4_t, b: int32x4_t) -> uint32x4_t;
40891    }
40892    unsafe { _vqshlq_u32(a, b) }
40893}
40894#[doc = "Unsigned saturating shift left"]
40895#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_u64)"]
40896#[inline]
40897#[target_feature(enable = "neon")]
40898#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40899#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
40900#[cfg_attr(
40901    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40902    assert_instr(uqshl)
40903)]
40904#[cfg_attr(
40905    not(target_arch = "arm"),
40906    stable(feature = "neon_intrinsics", since = "1.59.0")
40907)]
40908#[cfg_attr(
40909    target_arch = "arm",
40910    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40911)]
40912pub fn vqshl_u64(a: uint64x1_t, b: int64x1_t) -> uint64x1_t {
40913    unsafe extern "unadjusted" {
40914        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftu.v1i64")]
40915        #[cfg_attr(
40916            any(target_arch = "aarch64", target_arch = "arm64ec"),
40917            link_name = "llvm.aarch64.neon.uqshl.v1i64"
40918        )]
40919        fn _vqshl_u64(a: uint64x1_t, b: int64x1_t) -> uint64x1_t;
40920    }
40921    unsafe { _vqshl_u64(a, b) }
40922}
40923#[doc = "Unsigned saturating shift left"]
40924#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_u64)"]
40925#[inline]
40926#[target_feature(enable = "neon")]
40927#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40928#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
40929#[cfg_attr(
40930    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40931    assert_instr(uqshl)
40932)]
40933#[cfg_attr(
40934    not(target_arch = "arm"),
40935    stable(feature = "neon_intrinsics", since = "1.59.0")
40936)]
40937#[cfg_attr(
40938    target_arch = "arm",
40939    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40940)]
40941pub fn vqshlq_u64(a: uint64x2_t, b: int64x2_t) -> uint64x2_t {
40942    unsafe extern "unadjusted" {
40943        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftu.v2i64")]
40944        #[cfg_attr(
40945            any(target_arch = "aarch64", target_arch = "arm64ec"),
40946            link_name = "llvm.aarch64.neon.uqshl.v2i64"
40947        )]
40948        fn _vqshlq_u64(a: uint64x2_t, b: int64x2_t) -> uint64x2_t;
40949    }
40950    unsafe { _vqshlq_u64(a, b) }
40951}
40952#[doc = "Signed saturating shift left unsigned"]
40953#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlu_n_s8)"]
40954#[inline]
40955#[cfg(target_arch = "arm")]
40956#[target_feature(enable = "neon,v7")]
40957#[cfg_attr(test, assert_instr(vqshlu, N = 2))]
40958#[rustc_legacy_const_generics(1)]
40959#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
40960pub fn vqshlu_n_s8<const N: i32>(a: int8x8_t) -> uint8x8_t {
40961    static_assert_uimm_bits!(N, 3);
40962    unsafe extern "unadjusted" {
40963        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftsu.v8i8")]
40964        fn _vqshlu_n_s8(a: int8x8_t, n: int8x8_t) -> uint8x8_t;
40965    }
40966    unsafe { _vqshlu_n_s8(a, const { int8x8_t([N as i8; 8]) }) }
40967}
40968#[doc = "Signed saturating shift left unsigned"]
40969#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshluq_n_s8)"]
40970#[inline]
40971#[cfg(target_arch = "arm")]
40972#[target_feature(enable = "neon,v7")]
40973#[cfg_attr(test, assert_instr(vqshlu, N = 2))]
40974#[rustc_legacy_const_generics(1)]
40975#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
40976pub fn vqshluq_n_s8<const N: i32>(a: int8x16_t) -> uint8x16_t {
40977    static_assert_uimm_bits!(N, 3);
40978    unsafe extern "unadjusted" {
40979        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftsu.v16i8")]
40980        fn _vqshluq_n_s8(a: int8x16_t, n: int8x16_t) -> uint8x16_t;
40981    }
40982    unsafe { _vqshluq_n_s8(a, const { int8x16_t([N as i8; 16]) }) }
40983}
40984#[doc = "Signed saturating shift left unsigned"]
40985#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlu_n_s16)"]
40986#[inline]
40987#[cfg(target_arch = "arm")]
40988#[target_feature(enable = "neon,v7")]
40989#[cfg_attr(test, assert_instr(vqshlu, N = 2))]
40990#[rustc_legacy_const_generics(1)]
40991#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
40992pub fn vqshlu_n_s16<const N: i32>(a: int16x4_t) -> uint16x4_t {
40993    static_assert_uimm_bits!(N, 4);
40994    unsafe extern "unadjusted" {
40995        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftsu.v4i16")]
40996        fn _vqshlu_n_s16(a: int16x4_t, n: int16x4_t) -> uint16x4_t;
40997    }
40998    unsafe { _vqshlu_n_s16(a, const { int16x4_t([N as i16; 4]) }) }
40999}
41000#[doc = "Signed saturating shift left unsigned"]
41001#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshluq_n_s16)"]
41002#[inline]
41003#[cfg(target_arch = "arm")]
41004#[target_feature(enable = "neon,v7")]
41005#[cfg_attr(test, assert_instr(vqshlu, N = 2))]
41006#[rustc_legacy_const_generics(1)]
41007#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
41008pub fn vqshluq_n_s16<const N: i32>(a: int16x8_t) -> uint16x8_t {
41009    static_assert_uimm_bits!(N, 4);
41010    unsafe extern "unadjusted" {
41011        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftsu.v8i16")]
41012        fn _vqshluq_n_s16(a: int16x8_t, n: int16x8_t) -> uint16x8_t;
41013    }
41014    unsafe { _vqshluq_n_s16(a, const { int16x8_t([N as i16; 8]) }) }
41015}
41016#[doc = "Signed saturating shift left unsigned"]
41017#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlu_n_s32)"]
41018#[inline]
41019#[cfg(target_arch = "arm")]
41020#[target_feature(enable = "neon,v7")]
41021#[cfg_attr(test, assert_instr(vqshlu, N = 2))]
41022#[rustc_legacy_const_generics(1)]
41023#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
41024pub fn vqshlu_n_s32<const N: i32>(a: int32x2_t) -> uint32x2_t {
41025    static_assert_uimm_bits!(N, 5);
41026    unsafe extern "unadjusted" {
41027        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftsu.v2i32")]
41028        fn _vqshlu_n_s32(a: int32x2_t, n: int32x2_t) -> uint32x2_t;
41029    }
41030    unsafe { _vqshlu_n_s32(a, const { int32x2_t([N; 2]) }) }
41031}
41032#[doc = "Signed saturating shift left unsigned"]
41033#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshluq_n_s32)"]
41034#[inline]
41035#[cfg(target_arch = "arm")]
41036#[target_feature(enable = "neon,v7")]
41037#[cfg_attr(test, assert_instr(vqshlu, N = 2))]
41038#[rustc_legacy_const_generics(1)]
41039#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
41040pub fn vqshluq_n_s32<const N: i32>(a: int32x4_t) -> uint32x4_t {
41041    static_assert_uimm_bits!(N, 5);
41042    unsafe extern "unadjusted" {
41043        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftsu.v4i32")]
41044        fn _vqshluq_n_s32(a: int32x4_t, n: int32x4_t) -> uint32x4_t;
41045    }
41046    unsafe { _vqshluq_n_s32(a, const { int32x4_t([N; 4]) }) }
41047}
41048#[doc = "Signed saturating shift left unsigned"]
41049#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlu_n_s64)"]
41050#[inline]
41051#[cfg(target_arch = "arm")]
41052#[target_feature(enable = "neon,v7")]
41053#[cfg_attr(test, assert_instr(vqshlu, N = 2))]
41054#[rustc_legacy_const_generics(1)]
41055#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
41056pub fn vqshlu_n_s64<const N: i32>(a: int64x1_t) -> uint64x1_t {
41057    static_assert_uimm_bits!(N, 6);
41058    unsafe extern "unadjusted" {
41059        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftsu.v1i64")]
41060        fn _vqshlu_n_s64(a: int64x1_t, n: int64x1_t) -> uint64x1_t;
41061    }
41062    unsafe { _vqshlu_n_s64(a, const { int64x1_t([N as i64]) }) }
41063}
41064#[doc = "Signed saturating shift left unsigned"]
41065#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshluq_n_s64)"]
41066#[inline]
41067#[cfg(target_arch = "arm")]
41068#[target_feature(enable = "neon,v7")]
41069#[cfg_attr(test, assert_instr(vqshlu, N = 2))]
41070#[rustc_legacy_const_generics(1)]
41071#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
41072pub fn vqshluq_n_s64<const N: i32>(a: int64x2_t) -> uint64x2_t {
41073    static_assert_uimm_bits!(N, 6);
41074    unsafe extern "unadjusted" {
41075        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftsu.v2i64")]
41076        fn _vqshluq_n_s64(a: int64x2_t, n: int64x2_t) -> uint64x2_t;
41077    }
41078    unsafe { _vqshluq_n_s64(a, const { int64x2_t([N as i64; 2]) }) }
41079}
41080#[doc = "Signed saturating shift left unsigned"]
41081#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlu_n_s8)"]
41082#[inline]
41083#[target_feature(enable = "neon")]
41084#[cfg(not(target_arch = "arm"))]
41085#[cfg_attr(test, assert_instr(sqshlu, N = 2))]
41086#[rustc_legacy_const_generics(1)]
41087#[stable(feature = "neon_intrinsics", since = "1.59.0")]
41088pub fn vqshlu_n_s8<const N: i32>(a: int8x8_t) -> uint8x8_t {
41089    static_assert_uimm_bits!(N, 3);
41090    unsafe extern "unadjusted" {
41091        #[cfg_attr(
41092            any(target_arch = "aarch64", target_arch = "arm64ec"),
41093            link_name = "llvm.aarch64.neon.sqshlu.v8i8"
41094        )]
41095        fn _vqshlu_n_s8(a: int8x8_t, n: int8x8_t) -> uint8x8_t;
41096    }
41097    unsafe { _vqshlu_n_s8(a, const { int8x8_t([N as i8; 8]) }) }
41098}
41099#[doc = "Signed saturating shift left unsigned"]
41100#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshluq_n_s8)"]
41101#[inline]
41102#[target_feature(enable = "neon")]
41103#[cfg(not(target_arch = "arm"))]
41104#[cfg_attr(test, assert_instr(sqshlu, N = 2))]
41105#[rustc_legacy_const_generics(1)]
41106#[stable(feature = "neon_intrinsics", since = "1.59.0")]
41107pub fn vqshluq_n_s8<const N: i32>(a: int8x16_t) -> uint8x16_t {
41108    static_assert_uimm_bits!(N, 3);
41109    unsafe extern "unadjusted" {
41110        #[cfg_attr(
41111            any(target_arch = "aarch64", target_arch = "arm64ec"),
41112            link_name = "llvm.aarch64.neon.sqshlu.v16i8"
41113        )]
41114        fn _vqshluq_n_s8(a: int8x16_t, n: int8x16_t) -> uint8x16_t;
41115    }
41116    unsafe { _vqshluq_n_s8(a, const { int8x16_t([N as i8; 16]) }) }
41117}
41118#[doc = "Signed saturating shift left unsigned"]
41119#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlu_n_s16)"]
41120#[inline]
41121#[target_feature(enable = "neon")]
41122#[cfg(not(target_arch = "arm"))]
41123#[cfg_attr(test, assert_instr(sqshlu, N = 2))]
41124#[rustc_legacy_const_generics(1)]
41125#[stable(feature = "neon_intrinsics", since = "1.59.0")]
41126pub fn vqshlu_n_s16<const N: i32>(a: int16x4_t) -> uint16x4_t {
41127    static_assert_uimm_bits!(N, 4);
41128    unsafe extern "unadjusted" {
41129        #[cfg_attr(
41130            any(target_arch = "aarch64", target_arch = "arm64ec"),
41131            link_name = "llvm.aarch64.neon.sqshlu.v4i16"
41132        )]
41133        fn _vqshlu_n_s16(a: int16x4_t, n: int16x4_t) -> uint16x4_t;
41134    }
41135    unsafe { _vqshlu_n_s16(a, const { int16x4_t([N as i16; 4]) }) }
41136}
41137#[doc = "Signed saturating shift left unsigned"]
41138#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshluq_n_s16)"]
41139#[inline]
41140#[target_feature(enable = "neon")]
41141#[cfg(not(target_arch = "arm"))]
41142#[cfg_attr(test, assert_instr(sqshlu, N = 2))]
41143#[rustc_legacy_const_generics(1)]
41144#[stable(feature = "neon_intrinsics", since = "1.59.0")]
41145pub fn vqshluq_n_s16<const N: i32>(a: int16x8_t) -> uint16x8_t {
41146    static_assert_uimm_bits!(N, 4);
41147    unsafe extern "unadjusted" {
41148        #[cfg_attr(
41149            any(target_arch = "aarch64", target_arch = "arm64ec"),
41150            link_name = "llvm.aarch64.neon.sqshlu.v8i16"
41151        )]
41152        fn _vqshluq_n_s16(a: int16x8_t, n: int16x8_t) -> uint16x8_t;
41153    }
41154    unsafe { _vqshluq_n_s16(a, const { int16x8_t([N as i16; 8]) }) }
41155}
41156#[doc = "Signed saturating shift left unsigned"]
41157#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlu_n_s32)"]
41158#[inline]
41159#[target_feature(enable = "neon")]
41160#[cfg(not(target_arch = "arm"))]
41161#[cfg_attr(test, assert_instr(sqshlu, N = 2))]
41162#[rustc_legacy_const_generics(1)]
41163#[stable(feature = "neon_intrinsics", since = "1.59.0")]
41164pub fn vqshlu_n_s32<const N: i32>(a: int32x2_t) -> uint32x2_t {
41165    static_assert_uimm_bits!(N, 5);
41166    unsafe extern "unadjusted" {
41167        #[cfg_attr(
41168            any(target_arch = "aarch64", target_arch = "arm64ec"),
41169            link_name = "llvm.aarch64.neon.sqshlu.v2i32"
41170        )]
41171        fn _vqshlu_n_s32(a: int32x2_t, n: int32x2_t) -> uint32x2_t;
41172    }
41173    unsafe { _vqshlu_n_s32(a, const { int32x2_t([N; 2]) }) }
41174}
41175#[doc = "Signed saturating shift left unsigned"]
41176#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshluq_n_s32)"]
41177#[inline]
41178#[target_feature(enable = "neon")]
41179#[cfg(not(target_arch = "arm"))]
41180#[cfg_attr(test, assert_instr(sqshlu, N = 2))]
41181#[rustc_legacy_const_generics(1)]
41182#[stable(feature = "neon_intrinsics", since = "1.59.0")]
41183pub fn vqshluq_n_s32<const N: i32>(a: int32x4_t) -> uint32x4_t {
41184    static_assert_uimm_bits!(N, 5);
41185    unsafe extern "unadjusted" {
41186        #[cfg_attr(
41187            any(target_arch = "aarch64", target_arch = "arm64ec"),
41188            link_name = "llvm.aarch64.neon.sqshlu.v4i32"
41189        )]
41190        fn _vqshluq_n_s32(a: int32x4_t, n: int32x4_t) -> uint32x4_t;
41191    }
41192    unsafe { _vqshluq_n_s32(a, const { int32x4_t([N; 4]) }) }
41193}
41194#[doc = "Signed saturating shift left unsigned"]
41195#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlu_n_s64)"]
41196#[inline]
41197#[target_feature(enable = "neon")]
41198#[cfg(not(target_arch = "arm"))]
41199#[cfg_attr(test, assert_instr(sqshlu, N = 2))]
41200#[rustc_legacy_const_generics(1)]
41201#[stable(feature = "neon_intrinsics", since = "1.59.0")]
41202pub fn vqshlu_n_s64<const N: i32>(a: int64x1_t) -> uint64x1_t {
41203    static_assert_uimm_bits!(N, 6);
41204    unsafe extern "unadjusted" {
41205        #[cfg_attr(
41206            any(target_arch = "aarch64", target_arch = "arm64ec"),
41207            link_name = "llvm.aarch64.neon.sqshlu.v1i64"
41208        )]
41209        fn _vqshlu_n_s64(a: int64x1_t, n: int64x1_t) -> uint64x1_t;
41210    }
41211    unsafe { _vqshlu_n_s64(a, const { int64x1_t([N as i64]) }) }
41212}
41213#[doc = "Signed saturating shift left unsigned"]
41214#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshluq_n_s64)"]
41215#[inline]
41216#[target_feature(enable = "neon")]
41217#[cfg(not(target_arch = "arm"))]
41218#[cfg_attr(test, assert_instr(sqshlu, N = 2))]
41219#[rustc_legacy_const_generics(1)]
41220#[stable(feature = "neon_intrinsics", since = "1.59.0")]
41221pub fn vqshluq_n_s64<const N: i32>(a: int64x2_t) -> uint64x2_t {
41222    static_assert_uimm_bits!(N, 6);
41223    unsafe extern "unadjusted" {
41224        #[cfg_attr(
41225            any(target_arch = "aarch64", target_arch = "arm64ec"),
41226            link_name = "llvm.aarch64.neon.sqshlu.v2i64"
41227        )]
41228        fn _vqshluq_n_s64(a: int64x2_t, n: int64x2_t) -> uint64x2_t;
41229    }
41230    unsafe { _vqshluq_n_s64(a, const { int64x2_t([N as i64; 2]) }) }
41231}
41232#[doc = "Signed saturating shift right narrow"]
41233#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_s16)"]
41234#[inline]
41235#[cfg(target_arch = "arm")]
41236#[target_feature(enable = "neon,v7")]
41237#[cfg_attr(test, assert_instr(vqshrn, N = 2))]
41238#[rustc_legacy_const_generics(1)]
41239#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
41240pub fn vqshrn_n_s16<const N: i32>(a: int16x8_t) -> int8x8_t {
41241    static_assert!(N >= 1 && N <= 8);
41242    unsafe extern "unadjusted" {
41243        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftns.v8i8")]
41244        fn _vqshrn_n_s16(a: int16x8_t, n: int16x8_t) -> int8x8_t;
41245    }
41246    unsafe { _vqshrn_n_s16(a, const { int16x8_t([-N as i16; 8]) }) }
41247}
41248#[doc = "Signed saturating shift right narrow"]
41249#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_s32)"]
41250#[inline]
41251#[cfg(target_arch = "arm")]
41252#[target_feature(enable = "neon,v7")]
41253#[cfg_attr(test, assert_instr(vqshrn, N = 2))]
41254#[rustc_legacy_const_generics(1)]
41255#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
41256pub fn vqshrn_n_s32<const N: i32>(a: int32x4_t) -> int16x4_t {
41257    static_assert!(N >= 1 && N <= 16);
41258    unsafe extern "unadjusted" {
41259        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftns.v4i16")]
41260        fn _vqshrn_n_s32(a: int32x4_t, n: int32x4_t) -> int16x4_t;
41261    }
41262    unsafe { _vqshrn_n_s32(a, const { int32x4_t([-N; 4]) }) }
41263}
41264#[doc = "Signed saturating shift right narrow"]
41265#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_s64)"]
41266#[inline]
41267#[cfg(target_arch = "arm")]
41268#[target_feature(enable = "neon,v7")]
41269#[cfg_attr(test, assert_instr(vqshrn, N = 2))]
41270#[rustc_legacy_const_generics(1)]
41271#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
41272pub fn vqshrn_n_s64<const N: i32>(a: int64x2_t) -> int32x2_t {
41273    static_assert!(N >= 1 && N <= 32);
41274    unsafe extern "unadjusted" {
41275        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftns.v2i32")]
41276        fn _vqshrn_n_s64(a: int64x2_t, n: int64x2_t) -> int32x2_t;
41277    }
41278    unsafe { _vqshrn_n_s64(a, const { int64x2_t([-N as i64; 2]) }) }
41279}
41280#[doc = "Signed saturating shift right narrow"]
41281#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_s16)"]
41282#[inline]
41283#[target_feature(enable = "neon")]
41284#[cfg(not(target_arch = "arm"))]
41285#[cfg_attr(test, assert_instr(sqshrn, N = 2))]
41286#[rustc_legacy_const_generics(1)]
41287#[stable(feature = "neon_intrinsics", since = "1.59.0")]
41288pub fn vqshrn_n_s16<const N: i32>(a: int16x8_t) -> int8x8_t {
41289    static_assert!(N >= 1 && N <= 8);
41290    unsafe extern "unadjusted" {
41291        #[cfg_attr(
41292            any(target_arch = "aarch64", target_arch = "arm64ec"),
41293            link_name = "llvm.aarch64.neon.sqshrn.v8i8"
41294        )]
41295        fn _vqshrn_n_s16(a: int16x8_t, n: i32) -> int8x8_t;
41296    }
41297    unsafe { _vqshrn_n_s16(a, N) }
41298}
41299#[doc = "Signed saturating shift right narrow"]
41300#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_s32)"]
41301#[inline]
41302#[target_feature(enable = "neon")]
41303#[cfg(not(target_arch = "arm"))]
41304#[cfg_attr(test, assert_instr(sqshrn, N = 2))]
41305#[rustc_legacy_const_generics(1)]
41306#[stable(feature = "neon_intrinsics", since = "1.59.0")]
41307pub fn vqshrn_n_s32<const N: i32>(a: int32x4_t) -> int16x4_t {
41308    static_assert!(N >= 1 && N <= 16);
41309    unsafe extern "unadjusted" {
41310        #[cfg_attr(
41311            any(target_arch = "aarch64", target_arch = "arm64ec"),
41312            link_name = "llvm.aarch64.neon.sqshrn.v4i16"
41313        )]
41314        fn _vqshrn_n_s32(a: int32x4_t, n: i32) -> int16x4_t;
41315    }
41316    unsafe { _vqshrn_n_s32(a, N) }
41317}
41318#[doc = "Signed saturating shift right narrow"]
41319#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_s64)"]
41320#[inline]
41321#[target_feature(enable = "neon")]
41322#[cfg(not(target_arch = "arm"))]
41323#[cfg_attr(test, assert_instr(sqshrn, N = 2))]
41324#[rustc_legacy_const_generics(1)]
41325#[stable(feature = "neon_intrinsics", since = "1.59.0")]
41326pub fn vqshrn_n_s64<const N: i32>(a: int64x2_t) -> int32x2_t {
41327    static_assert!(N >= 1 && N <= 32);
41328    unsafe extern "unadjusted" {
41329        #[cfg_attr(
41330            any(target_arch = "aarch64", target_arch = "arm64ec"),
41331            link_name = "llvm.aarch64.neon.sqshrn.v2i32"
41332        )]
41333        fn _vqshrn_n_s64(a: int64x2_t, n: i32) -> int32x2_t;
41334    }
41335    unsafe { _vqshrn_n_s64(a, N) }
41336}
41337#[doc = "Unsigned saturating shift right narrow"]
41338#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_u16)"]
41339#[inline]
41340#[cfg(target_arch = "arm")]
41341#[target_feature(enable = "neon,v7")]
41342#[cfg_attr(test, assert_instr(vqshrn, N = 2))]
41343#[rustc_legacy_const_generics(1)]
41344#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
41345pub fn vqshrn_n_u16<const N: i32>(a: uint16x8_t) -> uint8x8_t {
41346    static_assert!(N >= 1 && N <= 8);
41347    unsafe extern "unadjusted" {
41348        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftnu.v8i8")]
41349        fn _vqshrn_n_u16(a: uint16x8_t, n: uint16x8_t) -> uint8x8_t;
41350    }
41351    unsafe {
41352        _vqshrn_n_u16(
41353            a,
41354            const {
41355                uint16x8_t([
41356                    -N as u16, -N as u16, -N as u16, -N as u16, -N as u16, -N as u16, -N as u16,
41357                    -N as u16,
41358                ])
41359            },
41360        )
41361    }
41362}
41363#[doc = "Unsigned saturating shift right narrow"]
41364#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_u32)"]
41365#[inline]
41366#[cfg(target_arch = "arm")]
41367#[target_feature(enable = "neon,v7")]
41368#[cfg_attr(test, assert_instr(vqshrn, N = 2))]
41369#[rustc_legacy_const_generics(1)]
41370#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
41371pub fn vqshrn_n_u32<const N: i32>(a: uint32x4_t) -> uint16x4_t {
41372    static_assert!(N >= 1 && N <= 16);
41373    unsafe extern "unadjusted" {
41374        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftnu.v4i16")]
41375        fn _vqshrn_n_u32(a: uint32x4_t, n: uint32x4_t) -> uint16x4_t;
41376    }
41377    unsafe {
41378        _vqshrn_n_u32(
41379            a,
41380            const { uint32x4_t([-N as u32, -N as u32, -N as u32, -N as u32]) },
41381        )
41382    }
41383}
41384#[doc = "Unsigned saturating shift right narrow"]
41385#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_u64)"]
41386#[inline]
41387#[cfg(target_arch = "arm")]
41388#[target_feature(enable = "neon,v7")]
41389#[cfg_attr(test, assert_instr(vqshrn, N = 2))]
41390#[rustc_legacy_const_generics(1)]
41391#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
41392pub fn vqshrn_n_u64<const N: i32>(a: uint64x2_t) -> uint32x2_t {
41393    static_assert!(N >= 1 && N <= 32);
41394    unsafe extern "unadjusted" {
41395        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftnu.v2i32")]
41396        fn _vqshrn_n_u64(a: uint64x2_t, n: uint64x2_t) -> uint32x2_t;
41397    }
41398    unsafe { _vqshrn_n_u64(a, const { uint64x2_t([-N as u64, -N as u64]) }) }
41399}
41400#[doc = "Unsigned saturating shift right narrow"]
41401#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_u16)"]
41402#[inline]
41403#[target_feature(enable = "neon")]
41404#[cfg(not(target_arch = "arm"))]
41405#[cfg_attr(test, assert_instr(uqshrn, N = 2))]
41406#[rustc_legacy_const_generics(1)]
41407#[stable(feature = "neon_intrinsics", since = "1.59.0")]
41408pub fn vqshrn_n_u16<const N: i32>(a: uint16x8_t) -> uint8x8_t {
41409    static_assert!(N >= 1 && N <= 8);
41410    unsafe extern "unadjusted" {
41411        #[cfg_attr(
41412            any(target_arch = "aarch64", target_arch = "arm64ec"),
41413            link_name = "llvm.aarch64.neon.uqshrn.v8i8"
41414        )]
41415        fn _vqshrn_n_u16(a: uint16x8_t, n: i32) -> uint8x8_t;
41416    }
41417    unsafe { _vqshrn_n_u16(a, N) }
41418}
41419#[doc = "Unsigned saturating shift right narrow"]
41420#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_u32)"]
41421#[inline]
41422#[target_feature(enable = "neon")]
41423#[cfg(not(target_arch = "arm"))]
41424#[cfg_attr(test, assert_instr(uqshrn, N = 2))]
41425#[rustc_legacy_const_generics(1)]
41426#[stable(feature = "neon_intrinsics", since = "1.59.0")]
41427pub fn vqshrn_n_u32<const N: i32>(a: uint32x4_t) -> uint16x4_t {
41428    static_assert!(N >= 1 && N <= 16);
41429    unsafe extern "unadjusted" {
41430        #[cfg_attr(
41431            any(target_arch = "aarch64", target_arch = "arm64ec"),
41432            link_name = "llvm.aarch64.neon.uqshrn.v4i16"
41433        )]
41434        fn _vqshrn_n_u32(a: uint32x4_t, n: i32) -> uint16x4_t;
41435    }
41436    unsafe { _vqshrn_n_u32(a, N) }
41437}
41438#[doc = "Unsigned saturating shift right narrow"]
41439#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_u64)"]
41440#[inline]
41441#[target_feature(enable = "neon")]
41442#[cfg(not(target_arch = "arm"))]
41443#[cfg_attr(test, assert_instr(uqshrn, N = 2))]
41444#[rustc_legacy_const_generics(1)]
41445#[stable(feature = "neon_intrinsics", since = "1.59.0")]
41446pub fn vqshrn_n_u64<const N: i32>(a: uint64x2_t) -> uint32x2_t {
41447    static_assert!(N >= 1 && N <= 32);
41448    unsafe extern "unadjusted" {
41449        #[cfg_attr(
41450            any(target_arch = "aarch64", target_arch = "arm64ec"),
41451            link_name = "llvm.aarch64.neon.uqshrn.v2i32"
41452        )]
41453        fn _vqshrn_n_u64(a: uint64x2_t, n: i32) -> uint32x2_t;
41454    }
41455    unsafe { _vqshrn_n_u64(a, N) }
41456}
41457#[doc = "Signed saturating shift right unsigned narrow"]
41458#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrun_n_s16)"]
41459#[inline]
41460#[cfg(target_arch = "arm")]
41461#[target_feature(enable = "neon,v7")]
41462#[cfg_attr(test, assert_instr(vqshrun, N = 2))]
41463#[rustc_legacy_const_generics(1)]
41464#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
41465pub fn vqshrun_n_s16<const N: i32>(a: int16x8_t) -> uint8x8_t {
41466    static_assert!(N >= 1 && N <= 8);
41467    unsafe extern "unadjusted" {
41468        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftnsu.v8i8")]
41469        fn _vqshrun_n_s16(a: int16x8_t, n: int16x8_t) -> uint8x8_t;
41470    }
41471    unsafe { _vqshrun_n_s16(a, const { int16x8_t([-N as i16; 8]) }) }
41472}
41473#[doc = "Signed saturating shift right unsigned narrow"]
41474#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrun_n_s32)"]
41475#[inline]
41476#[cfg(target_arch = "arm")]
41477#[target_feature(enable = "neon,v7")]
41478#[cfg_attr(test, assert_instr(vqshrun, N = 2))]
41479#[rustc_legacy_const_generics(1)]
41480#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
41481pub fn vqshrun_n_s32<const N: i32>(a: int32x4_t) -> uint16x4_t {
41482    static_assert!(N >= 1 && N <= 16);
41483    unsafe extern "unadjusted" {
41484        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftnsu.v4i16")]
41485        fn _vqshrun_n_s32(a: int32x4_t, n: int32x4_t) -> uint16x4_t;
41486    }
41487    unsafe { _vqshrun_n_s32(a, const { int32x4_t([-N; 4]) }) }
41488}
41489#[doc = "Signed saturating shift right unsigned narrow"]
41490#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrun_n_s64)"]
41491#[inline]
41492#[cfg(target_arch = "arm")]
41493#[target_feature(enable = "neon,v7")]
41494#[cfg_attr(test, assert_instr(vqshrun, N = 2))]
41495#[rustc_legacy_const_generics(1)]
41496#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
41497pub fn vqshrun_n_s64<const N: i32>(a: int64x2_t) -> uint32x2_t {
41498    static_assert!(N >= 1 && N <= 32);
41499    unsafe extern "unadjusted" {
41500        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftnsu.v2i32")]
41501        fn _vqshrun_n_s64(a: int64x2_t, n: int64x2_t) -> uint32x2_t;
41502    }
41503    unsafe { _vqshrun_n_s64(a, const { int64x2_t([-N as i64; 2]) }) }
41504}
41505#[doc = "Signed saturating shift right unsigned narrow"]
41506#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrun_n_s16)"]
41507#[inline]
41508#[target_feature(enable = "neon")]
41509#[cfg(not(target_arch = "arm"))]
41510#[cfg_attr(test, assert_instr(sqshrun, N = 2))]
41511#[rustc_legacy_const_generics(1)]
41512#[stable(feature = "neon_intrinsics", since = "1.59.0")]
41513pub fn vqshrun_n_s16<const N: i32>(a: int16x8_t) -> uint8x8_t {
41514    static_assert!(N >= 1 && N <= 8);
41515    unsafe extern "unadjusted" {
41516        #[cfg_attr(
41517            any(target_arch = "aarch64", target_arch = "arm64ec"),
41518            link_name = "llvm.aarch64.neon.sqshrun.v8i8"
41519        )]
41520        fn _vqshrun_n_s16(a: int16x8_t, n: i32) -> uint8x8_t;
41521    }
41522    unsafe { _vqshrun_n_s16(a, N) }
41523}
41524#[doc = "Signed saturating shift right unsigned narrow"]
41525#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrun_n_s32)"]
41526#[inline]
41527#[target_feature(enable = "neon")]
41528#[cfg(not(target_arch = "arm"))]
41529#[cfg_attr(test, assert_instr(sqshrun, N = 2))]
41530#[rustc_legacy_const_generics(1)]
41531#[stable(feature = "neon_intrinsics", since = "1.59.0")]
41532pub fn vqshrun_n_s32<const N: i32>(a: int32x4_t) -> uint16x4_t {
41533    static_assert!(N >= 1 && N <= 16);
41534    unsafe extern "unadjusted" {
41535        #[cfg_attr(
41536            any(target_arch = "aarch64", target_arch = "arm64ec"),
41537            link_name = "llvm.aarch64.neon.sqshrun.v4i16"
41538        )]
41539        fn _vqshrun_n_s32(a: int32x4_t, n: i32) -> uint16x4_t;
41540    }
41541    unsafe { _vqshrun_n_s32(a, N) }
41542}
41543#[doc = "Signed saturating shift right unsigned narrow"]
41544#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrun_n_s64)"]
41545#[inline]
41546#[target_feature(enable = "neon")]
41547#[cfg(not(target_arch = "arm"))]
41548#[cfg_attr(test, assert_instr(sqshrun, N = 2))]
41549#[rustc_legacy_const_generics(1)]
41550#[stable(feature = "neon_intrinsics", since = "1.59.0")]
41551pub fn vqshrun_n_s64<const N: i32>(a: int64x2_t) -> uint32x2_t {
41552    static_assert!(N >= 1 && N <= 32);
41553    unsafe extern "unadjusted" {
41554        #[cfg_attr(
41555            any(target_arch = "aarch64", target_arch = "arm64ec"),
41556            link_name = "llvm.aarch64.neon.sqshrun.v2i32"
41557        )]
41558        fn _vqshrun_n_s64(a: int64x2_t, n: i32) -> uint32x2_t;
41559    }
41560    unsafe { _vqshrun_n_s64(a, N) }
41561}
41562#[doc = "Saturating subtract"]
41563#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsub_s8)"]
41564#[inline]
41565#[target_feature(enable = "neon")]
41566#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41567#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.s8"))]
41568#[cfg_attr(
41569    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41570    assert_instr(sqsub)
41571)]
41572#[cfg_attr(
41573    not(target_arch = "arm"),
41574    stable(feature = "neon_intrinsics", since = "1.59.0")
41575)]
41576#[cfg_attr(
41577    target_arch = "arm",
41578    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41579)]
41580pub fn vqsub_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
41581    unsafe { simd_saturating_sub(a, b) }
41582}
41583#[doc = "Saturating subtract"]
41584#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsubq_s8)"]
41585#[inline]
41586#[target_feature(enable = "neon")]
41587#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41588#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.s8"))]
41589#[cfg_attr(
41590    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41591    assert_instr(sqsub)
41592)]
41593#[cfg_attr(
41594    not(target_arch = "arm"),
41595    stable(feature = "neon_intrinsics", since = "1.59.0")
41596)]
41597#[cfg_attr(
41598    target_arch = "arm",
41599    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41600)]
41601pub fn vqsubq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
41602    unsafe { simd_saturating_sub(a, b) }
41603}
41604#[doc = "Saturating subtract"]
41605#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsub_s16)"]
41606#[inline]
41607#[target_feature(enable = "neon")]
41608#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41609#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.s16"))]
41610#[cfg_attr(
41611    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41612    assert_instr(sqsub)
41613)]
41614#[cfg_attr(
41615    not(target_arch = "arm"),
41616    stable(feature = "neon_intrinsics", since = "1.59.0")
41617)]
41618#[cfg_attr(
41619    target_arch = "arm",
41620    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41621)]
41622pub fn vqsub_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
41623    unsafe { simd_saturating_sub(a, b) }
41624}
41625#[doc = "Saturating subtract"]
41626#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsubq_s16)"]
41627#[inline]
41628#[target_feature(enable = "neon")]
41629#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41630#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.s16"))]
41631#[cfg_attr(
41632    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41633    assert_instr(sqsub)
41634)]
41635#[cfg_attr(
41636    not(target_arch = "arm"),
41637    stable(feature = "neon_intrinsics", since = "1.59.0")
41638)]
41639#[cfg_attr(
41640    target_arch = "arm",
41641    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41642)]
41643pub fn vqsubq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
41644    unsafe { simd_saturating_sub(a, b) }
41645}
41646#[doc = "Saturating subtract"]
41647#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsub_s32)"]
41648#[inline]
41649#[target_feature(enable = "neon")]
41650#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41651#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.s32"))]
41652#[cfg_attr(
41653    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41654    assert_instr(sqsub)
41655)]
41656#[cfg_attr(
41657    not(target_arch = "arm"),
41658    stable(feature = "neon_intrinsics", since = "1.59.0")
41659)]
41660#[cfg_attr(
41661    target_arch = "arm",
41662    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41663)]
41664pub fn vqsub_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
41665    unsafe { simd_saturating_sub(a, b) }
41666}
41667#[doc = "Saturating subtract"]
41668#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsubq_s32)"]
41669#[inline]
41670#[target_feature(enable = "neon")]
41671#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41672#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.s32"))]
41673#[cfg_attr(
41674    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41675    assert_instr(sqsub)
41676)]
41677#[cfg_attr(
41678    not(target_arch = "arm"),
41679    stable(feature = "neon_intrinsics", since = "1.59.0")
41680)]
41681#[cfg_attr(
41682    target_arch = "arm",
41683    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41684)]
41685pub fn vqsubq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
41686    unsafe { simd_saturating_sub(a, b) }
41687}
41688#[doc = "Saturating subtract"]
41689#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsub_s64)"]
41690#[inline]
41691#[target_feature(enable = "neon")]
41692#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41693#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.s64"))]
41694#[cfg_attr(
41695    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41696    assert_instr(sqsub)
41697)]
41698#[cfg_attr(
41699    not(target_arch = "arm"),
41700    stable(feature = "neon_intrinsics", since = "1.59.0")
41701)]
41702#[cfg_attr(
41703    target_arch = "arm",
41704    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41705)]
41706pub fn vqsub_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t {
41707    unsafe { simd_saturating_sub(a, b) }
41708}
41709#[doc = "Saturating subtract"]
41710#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsubq_s64)"]
41711#[inline]
41712#[target_feature(enable = "neon")]
41713#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41714#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.s64"))]
41715#[cfg_attr(
41716    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41717    assert_instr(sqsub)
41718)]
41719#[cfg_attr(
41720    not(target_arch = "arm"),
41721    stable(feature = "neon_intrinsics", since = "1.59.0")
41722)]
41723#[cfg_attr(
41724    target_arch = "arm",
41725    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41726)]
41727pub fn vqsubq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t {
41728    unsafe { simd_saturating_sub(a, b) }
41729}
41730#[doc = "Saturating subtract"]
41731#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsub_u8)"]
41732#[inline]
41733#[target_feature(enable = "neon")]
41734#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41735#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.u8"))]
41736#[cfg_attr(
41737    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41738    assert_instr(uqsub)
41739)]
41740#[cfg_attr(
41741    not(target_arch = "arm"),
41742    stable(feature = "neon_intrinsics", since = "1.59.0")
41743)]
41744#[cfg_attr(
41745    target_arch = "arm",
41746    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41747)]
41748pub fn vqsub_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
41749    unsafe { simd_saturating_sub(a, b) }
41750}
41751#[doc = "Saturating subtract"]
41752#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsubq_u8)"]
41753#[inline]
41754#[target_feature(enable = "neon")]
41755#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41756#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.u8"))]
41757#[cfg_attr(
41758    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41759    assert_instr(uqsub)
41760)]
41761#[cfg_attr(
41762    not(target_arch = "arm"),
41763    stable(feature = "neon_intrinsics", since = "1.59.0")
41764)]
41765#[cfg_attr(
41766    target_arch = "arm",
41767    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41768)]
41769pub fn vqsubq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
41770    unsafe { simd_saturating_sub(a, b) }
41771}
41772#[doc = "Saturating subtract"]
41773#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsub_u16)"]
41774#[inline]
41775#[target_feature(enable = "neon")]
41776#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41777#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.u16"))]
41778#[cfg_attr(
41779    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41780    assert_instr(uqsub)
41781)]
41782#[cfg_attr(
41783    not(target_arch = "arm"),
41784    stable(feature = "neon_intrinsics", since = "1.59.0")
41785)]
41786#[cfg_attr(
41787    target_arch = "arm",
41788    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41789)]
41790pub fn vqsub_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
41791    unsafe { simd_saturating_sub(a, b) }
41792}
41793#[doc = "Saturating subtract"]
41794#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsubq_u16)"]
41795#[inline]
41796#[target_feature(enable = "neon")]
41797#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41798#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.u16"))]
41799#[cfg_attr(
41800    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41801    assert_instr(uqsub)
41802)]
41803#[cfg_attr(
41804    not(target_arch = "arm"),
41805    stable(feature = "neon_intrinsics", since = "1.59.0")
41806)]
41807#[cfg_attr(
41808    target_arch = "arm",
41809    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41810)]
41811pub fn vqsubq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
41812    unsafe { simd_saturating_sub(a, b) }
41813}
41814#[doc = "Saturating subtract"]
41815#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsub_u32)"]
41816#[inline]
41817#[target_feature(enable = "neon")]
41818#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41819#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.u32"))]
41820#[cfg_attr(
41821    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41822    assert_instr(uqsub)
41823)]
41824#[cfg_attr(
41825    not(target_arch = "arm"),
41826    stable(feature = "neon_intrinsics", since = "1.59.0")
41827)]
41828#[cfg_attr(
41829    target_arch = "arm",
41830    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41831)]
41832pub fn vqsub_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
41833    unsafe { simd_saturating_sub(a, b) }
41834}
41835#[doc = "Saturating subtract"]
41836#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsubq_u32)"]
41837#[inline]
41838#[target_feature(enable = "neon")]
41839#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41840#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.u32"))]
41841#[cfg_attr(
41842    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41843    assert_instr(uqsub)
41844)]
41845#[cfg_attr(
41846    not(target_arch = "arm"),
41847    stable(feature = "neon_intrinsics", since = "1.59.0")
41848)]
41849#[cfg_attr(
41850    target_arch = "arm",
41851    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41852)]
41853pub fn vqsubq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
41854    unsafe { simd_saturating_sub(a, b) }
41855}
41856#[doc = "Saturating subtract"]
41857#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsub_u64)"]
41858#[inline]
41859#[target_feature(enable = "neon")]
41860#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41861#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.u64"))]
41862#[cfg_attr(
41863    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41864    assert_instr(uqsub)
41865)]
41866#[cfg_attr(
41867    not(target_arch = "arm"),
41868    stable(feature = "neon_intrinsics", since = "1.59.0")
41869)]
41870#[cfg_attr(
41871    target_arch = "arm",
41872    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41873)]
41874pub fn vqsub_u64(a: uint64x1_t, b: uint64x1_t) -> uint64x1_t {
41875    unsafe { simd_saturating_sub(a, b) }
41876}
41877#[doc = "Saturating subtract"]
41878#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsubq_u64)"]
41879#[inline]
41880#[target_feature(enable = "neon")]
41881#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41882#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.u64"))]
41883#[cfg_attr(
41884    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41885    assert_instr(uqsub)
41886)]
41887#[cfg_attr(
41888    not(target_arch = "arm"),
41889    stable(feature = "neon_intrinsics", since = "1.59.0")
41890)]
41891#[cfg_attr(
41892    target_arch = "arm",
41893    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41894)]
41895pub fn vqsubq_u64(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
41896    unsafe { simd_saturating_sub(a, b) }
41897}
41898#[doc = "Rounding Add returning High Narrow (high half)."]
41899#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vraddhn_high_s16)"]
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("vraddhn.i16"))]
41904#[cfg_attr(
41905    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41906    assert_instr(raddhn2)
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 vraddhn_high_s16(a: int8x8_t, b: int16x8_t, c: int16x8_t) -> int8x16_t {
41917    let x = vraddhn_s16(b, c);
41918    unsafe { simd_shuffle!(a, x, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]) }
41919}
41920#[doc = "Rounding Add returning High Narrow (high half)."]
41921#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vraddhn_high_s32)"]
41922#[inline]
41923#[target_feature(enable = "neon")]
41924#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41925#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vraddhn.i32"))]
41926#[cfg_attr(
41927    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41928    assert_instr(raddhn2)
41929)]
41930#[cfg_attr(
41931    not(target_arch = "arm"),
41932    stable(feature = "neon_intrinsics", since = "1.59.0")
41933)]
41934#[cfg_attr(
41935    target_arch = "arm",
41936    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41937)]
41938pub fn vraddhn_high_s32(a: int16x4_t, b: int32x4_t, c: int32x4_t) -> int16x8_t {
41939    let x = vraddhn_s32(b, c);
41940    unsafe { simd_shuffle!(a, x, [0, 1, 2, 3, 4, 5, 6, 7]) }
41941}
41942#[doc = "Rounding Add returning High Narrow (high half)."]
41943#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vraddhn_high_s64)"]
41944#[inline]
41945#[target_feature(enable = "neon")]
41946#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41947#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vraddhn.i64"))]
41948#[cfg_attr(
41949    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41950    assert_instr(raddhn2)
41951)]
41952#[cfg_attr(
41953    not(target_arch = "arm"),
41954    stable(feature = "neon_intrinsics", since = "1.59.0")
41955)]
41956#[cfg_attr(
41957    target_arch = "arm",
41958    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41959)]
41960pub fn vraddhn_high_s64(a: int32x2_t, b: int64x2_t, c: int64x2_t) -> int32x4_t {
41961    let x = vraddhn_s64(b, c);
41962    unsafe { simd_shuffle!(a, x, [0, 1, 2, 3]) }
41963}
41964#[doc = "Rounding Add returning High Narrow (high half)."]
41965#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vraddhn_high_u16)"]
41966#[inline]
41967#[target_feature(enable = "neon")]
41968#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41969#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vraddhn.i16"))]
41970#[cfg_attr(
41971    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41972    assert_instr(raddhn2)
41973)]
41974#[cfg_attr(
41975    not(target_arch = "arm"),
41976    stable(feature = "neon_intrinsics", since = "1.59.0")
41977)]
41978#[cfg_attr(
41979    target_arch = "arm",
41980    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41981)]
41982pub fn vraddhn_high_u16(a: uint8x8_t, b: uint16x8_t, c: uint16x8_t) -> uint8x16_t {
41983    unsafe {
41984        let x: uint8x8_t = transmute(vraddhn_s16(transmute(b), transmute(c)));
41985        simd_shuffle!(a, x, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15])
41986    }
41987}
41988#[doc = "Rounding Add returning High Narrow (high half)."]
41989#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vraddhn_high_u32)"]
41990#[inline]
41991#[target_feature(enable = "neon")]
41992#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41993#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vraddhn.i32"))]
41994#[cfg_attr(
41995    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41996    assert_instr(raddhn2)
41997)]
41998#[cfg_attr(
41999    not(target_arch = "arm"),
42000    stable(feature = "neon_intrinsics", since = "1.59.0")
42001)]
42002#[cfg_attr(
42003    target_arch = "arm",
42004    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42005)]
42006pub fn vraddhn_high_u32(a: uint16x4_t, b: uint32x4_t, c: uint32x4_t) -> uint16x8_t {
42007    unsafe {
42008        let x: uint16x4_t = transmute(vraddhn_s32(transmute(b), transmute(c)));
42009        simd_shuffle!(a, x, [0, 1, 2, 3, 4, 5, 6, 7])
42010    }
42011}
42012#[doc = "Rounding Add returning High Narrow (high half)."]
42013#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vraddhn_high_u64)"]
42014#[inline]
42015#[target_feature(enable = "neon")]
42016#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42017#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vraddhn.i64"))]
42018#[cfg_attr(
42019    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42020    assert_instr(raddhn2)
42021)]
42022#[cfg_attr(
42023    not(target_arch = "arm"),
42024    stable(feature = "neon_intrinsics", since = "1.59.0")
42025)]
42026#[cfg_attr(
42027    target_arch = "arm",
42028    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42029)]
42030pub fn vraddhn_high_u64(a: uint32x2_t, b: uint64x2_t, c: uint64x2_t) -> uint32x4_t {
42031    unsafe {
42032        let x: uint32x2_t = transmute(vraddhn_s64(transmute(b), transmute(c)));
42033        simd_shuffle!(a, x, [0, 1, 2, 3])
42034    }
42035}
42036#[doc = "Rounding Add returning High Narrow."]
42037#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vraddhn_s16)"]
42038#[inline]
42039#[target_feature(enable = "neon")]
42040#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42041#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vraddhn.i16"))]
42042#[cfg_attr(
42043    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42044    assert_instr(raddhn)
42045)]
42046#[cfg_attr(
42047    not(target_arch = "arm"),
42048    stable(feature = "neon_intrinsics", since = "1.59.0")
42049)]
42050#[cfg_attr(
42051    target_arch = "arm",
42052    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42053)]
42054pub fn vraddhn_s16(a: int16x8_t, b: int16x8_t) -> int8x8_t {
42055    unsafe extern "unadjusted" {
42056        #[cfg_attr(
42057            any(target_arch = "aarch64", target_arch = "arm64ec"),
42058            link_name = "llvm.aarch64.neon.raddhn.v8i8"
42059        )]
42060        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vraddhn.v8i8")]
42061        fn _vraddhn_s16(a: int16x8_t, b: int16x8_t) -> int8x8_t;
42062    }
42063    unsafe { _vraddhn_s16(a, b) }
42064}
42065#[doc = "Rounding Add returning High Narrow."]
42066#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vraddhn_s32)"]
42067#[inline]
42068#[target_feature(enable = "neon")]
42069#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42070#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vraddhn.i32"))]
42071#[cfg_attr(
42072    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42073    assert_instr(raddhn)
42074)]
42075#[cfg_attr(
42076    not(target_arch = "arm"),
42077    stable(feature = "neon_intrinsics", since = "1.59.0")
42078)]
42079#[cfg_attr(
42080    target_arch = "arm",
42081    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42082)]
42083pub fn vraddhn_s32(a: int32x4_t, b: int32x4_t) -> int16x4_t {
42084    unsafe extern "unadjusted" {
42085        #[cfg_attr(
42086            any(target_arch = "aarch64", target_arch = "arm64ec"),
42087            link_name = "llvm.aarch64.neon.raddhn.v4i16"
42088        )]
42089        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vraddhn.v4i16")]
42090        fn _vraddhn_s32(a: int32x4_t, b: int32x4_t) -> int16x4_t;
42091    }
42092    unsafe { _vraddhn_s32(a, b) }
42093}
42094#[doc = "Rounding Add returning High Narrow."]
42095#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vraddhn_s64)"]
42096#[inline]
42097#[target_feature(enable = "neon")]
42098#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42099#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vraddhn.i64"))]
42100#[cfg_attr(
42101    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42102    assert_instr(raddhn)
42103)]
42104#[cfg_attr(
42105    not(target_arch = "arm"),
42106    stable(feature = "neon_intrinsics", since = "1.59.0")
42107)]
42108#[cfg_attr(
42109    target_arch = "arm",
42110    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42111)]
42112pub fn vraddhn_s64(a: int64x2_t, b: int64x2_t) -> int32x2_t {
42113    unsafe extern "unadjusted" {
42114        #[cfg_attr(
42115            any(target_arch = "aarch64", target_arch = "arm64ec"),
42116            link_name = "llvm.aarch64.neon.raddhn.v2i32"
42117        )]
42118        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vraddhn.v2i32")]
42119        fn _vraddhn_s64(a: int64x2_t, b: int64x2_t) -> int32x2_t;
42120    }
42121    unsafe { _vraddhn_s64(a, b) }
42122}
42123#[doc = "Rounding Add returning High Narrow."]
42124#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vraddhn_u16)"]
42125#[inline]
42126#[cfg(target_endian = "little")]
42127#[target_feature(enable = "neon")]
42128#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42129#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vraddhn.i16"))]
42130#[cfg_attr(
42131    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42132    assert_instr(raddhn)
42133)]
42134#[cfg_attr(
42135    not(target_arch = "arm"),
42136    stable(feature = "neon_intrinsics", since = "1.59.0")
42137)]
42138#[cfg_attr(
42139    target_arch = "arm",
42140    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42141)]
42142pub fn vraddhn_u16(a: uint16x8_t, b: uint16x8_t) -> uint8x8_t {
42143    unsafe { transmute(vraddhn_s16(transmute(a), transmute(b))) }
42144}
42145#[doc = "Rounding Add returning High Narrow."]
42146#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vraddhn_u16)"]
42147#[inline]
42148#[cfg(target_endian = "big")]
42149#[target_feature(enable = "neon")]
42150#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42151#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vraddhn.i16"))]
42152#[cfg_attr(
42153    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42154    assert_instr(raddhn)
42155)]
42156#[cfg_attr(
42157    not(target_arch = "arm"),
42158    stable(feature = "neon_intrinsics", since = "1.59.0")
42159)]
42160#[cfg_attr(
42161    target_arch = "arm",
42162    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42163)]
42164pub fn vraddhn_u16(a: uint16x8_t, b: uint16x8_t) -> uint8x8_t {
42165    let a: uint16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
42166    let b: uint16x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
42167    unsafe {
42168        let ret_val: uint8x8_t = transmute(vraddhn_s16(transmute(a), transmute(b)));
42169        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
42170    }
42171}
42172#[doc = "Rounding Add returning High Narrow."]
42173#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vraddhn_u32)"]
42174#[inline]
42175#[cfg(target_endian = "little")]
42176#[target_feature(enable = "neon")]
42177#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42178#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vraddhn.i32"))]
42179#[cfg_attr(
42180    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42181    assert_instr(raddhn)
42182)]
42183#[cfg_attr(
42184    not(target_arch = "arm"),
42185    stable(feature = "neon_intrinsics", since = "1.59.0")
42186)]
42187#[cfg_attr(
42188    target_arch = "arm",
42189    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42190)]
42191pub fn vraddhn_u32(a: uint32x4_t, b: uint32x4_t) -> uint16x4_t {
42192    unsafe { transmute(vraddhn_s32(transmute(a), transmute(b))) }
42193}
42194#[doc = "Rounding Add returning High Narrow."]
42195#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vraddhn_u32)"]
42196#[inline]
42197#[cfg(target_endian = "big")]
42198#[target_feature(enable = "neon")]
42199#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42200#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vraddhn.i32"))]
42201#[cfg_attr(
42202    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42203    assert_instr(raddhn)
42204)]
42205#[cfg_attr(
42206    not(target_arch = "arm"),
42207    stable(feature = "neon_intrinsics", since = "1.59.0")
42208)]
42209#[cfg_attr(
42210    target_arch = "arm",
42211    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42212)]
42213pub fn vraddhn_u32(a: uint32x4_t, b: uint32x4_t) -> uint16x4_t {
42214    let a: uint32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
42215    let b: uint32x4_t = unsafe { simd_shuffle!(b, b, [3, 2, 1, 0]) };
42216    unsafe {
42217        let ret_val: uint16x4_t = transmute(vraddhn_s32(transmute(a), transmute(b)));
42218        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
42219    }
42220}
42221#[doc = "Rounding Add returning High Narrow."]
42222#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vraddhn_u64)"]
42223#[inline]
42224#[cfg(target_endian = "little")]
42225#[target_feature(enable = "neon")]
42226#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42227#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vraddhn.i64"))]
42228#[cfg_attr(
42229    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42230    assert_instr(raddhn)
42231)]
42232#[cfg_attr(
42233    not(target_arch = "arm"),
42234    stable(feature = "neon_intrinsics", since = "1.59.0")
42235)]
42236#[cfg_attr(
42237    target_arch = "arm",
42238    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42239)]
42240pub fn vraddhn_u64(a: uint64x2_t, b: uint64x2_t) -> uint32x2_t {
42241    unsafe { transmute(vraddhn_s64(transmute(a), transmute(b))) }
42242}
42243#[doc = "Rounding Add returning High Narrow."]
42244#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vraddhn_u64)"]
42245#[inline]
42246#[cfg(target_endian = "big")]
42247#[target_feature(enable = "neon")]
42248#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42249#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vraddhn.i64"))]
42250#[cfg_attr(
42251    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42252    assert_instr(raddhn)
42253)]
42254#[cfg_attr(
42255    not(target_arch = "arm"),
42256    stable(feature = "neon_intrinsics", since = "1.59.0")
42257)]
42258#[cfg_attr(
42259    target_arch = "arm",
42260    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42261)]
42262pub fn vraddhn_u64(a: uint64x2_t, b: uint64x2_t) -> uint32x2_t {
42263    let a: uint64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
42264    let b: uint64x2_t = unsafe { simd_shuffle!(b, b, [1, 0]) };
42265    unsafe {
42266        let ret_val: uint32x2_t = transmute(vraddhn_s64(transmute(a), transmute(b)));
42267        simd_shuffle!(ret_val, ret_val, [1, 0])
42268    }
42269}
42270#[doc = "Reciprocal estimate."]
42271#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrecpe_f16)"]
42272#[inline]
42273#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
42274#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrecpe))]
42275#[cfg_attr(
42276    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42277    assert_instr(frecpe)
42278)]
42279#[target_feature(enable = "neon,fp16")]
42280#[cfg_attr(
42281    not(target_arch = "arm"),
42282    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42283)]
42284#[cfg_attr(
42285    target_arch = "arm",
42286    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42287)]
42288#[cfg(not(target_arch = "arm64ec"))]
42289pub fn vrecpe_f16(a: float16x4_t) -> float16x4_t {
42290    unsafe extern "unadjusted" {
42291        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrecpe.v4f16")]
42292        #[cfg_attr(
42293            any(target_arch = "aarch64", target_arch = "arm64ec"),
42294            link_name = "llvm.aarch64.neon.frecpe.v4f16"
42295        )]
42296        fn _vrecpe_f16(a: float16x4_t) -> float16x4_t;
42297    }
42298    unsafe { _vrecpe_f16(a) }
42299}
42300#[doc = "Reciprocal estimate."]
42301#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrecpeq_f16)"]
42302#[inline]
42303#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
42304#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrecpe))]
42305#[cfg_attr(
42306    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42307    assert_instr(frecpe)
42308)]
42309#[target_feature(enable = "neon,fp16")]
42310#[cfg_attr(
42311    not(target_arch = "arm"),
42312    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42313)]
42314#[cfg_attr(
42315    target_arch = "arm",
42316    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42317)]
42318#[cfg(not(target_arch = "arm64ec"))]
42319pub fn vrecpeq_f16(a: float16x8_t) -> float16x8_t {
42320    unsafe extern "unadjusted" {
42321        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrecpe.v8f16")]
42322        #[cfg_attr(
42323            any(target_arch = "aarch64", target_arch = "arm64ec"),
42324            link_name = "llvm.aarch64.neon.frecpe.v8f16"
42325        )]
42326        fn _vrecpeq_f16(a: float16x8_t) -> float16x8_t;
42327    }
42328    unsafe { _vrecpeq_f16(a) }
42329}
42330#[doc = "Reciprocal estimate."]
42331#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrecpe_f32)"]
42332#[inline]
42333#[target_feature(enable = "neon")]
42334#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42335#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrecpe))]
42336#[cfg_attr(
42337    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42338    assert_instr(frecpe)
42339)]
42340#[cfg_attr(
42341    not(target_arch = "arm"),
42342    stable(feature = "neon_intrinsics", since = "1.59.0")
42343)]
42344#[cfg_attr(
42345    target_arch = "arm",
42346    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42347)]
42348pub fn vrecpe_f32(a: float32x2_t) -> float32x2_t {
42349    unsafe extern "unadjusted" {
42350        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrecpe.v2f32")]
42351        #[cfg_attr(
42352            any(target_arch = "aarch64", target_arch = "arm64ec"),
42353            link_name = "llvm.aarch64.neon.frecpe.v2f32"
42354        )]
42355        fn _vrecpe_f32(a: float32x2_t) -> float32x2_t;
42356    }
42357    unsafe { _vrecpe_f32(a) }
42358}
42359#[doc = "Reciprocal estimate."]
42360#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrecpeq_f32)"]
42361#[inline]
42362#[target_feature(enable = "neon")]
42363#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42364#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrecpe))]
42365#[cfg_attr(
42366    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42367    assert_instr(frecpe)
42368)]
42369#[cfg_attr(
42370    not(target_arch = "arm"),
42371    stable(feature = "neon_intrinsics", since = "1.59.0")
42372)]
42373#[cfg_attr(
42374    target_arch = "arm",
42375    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42376)]
42377pub fn vrecpeq_f32(a: float32x4_t) -> float32x4_t {
42378    unsafe extern "unadjusted" {
42379        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrecpe.v4f32")]
42380        #[cfg_attr(
42381            any(target_arch = "aarch64", target_arch = "arm64ec"),
42382            link_name = "llvm.aarch64.neon.frecpe.v4f32"
42383        )]
42384        fn _vrecpeq_f32(a: float32x4_t) -> float32x4_t;
42385    }
42386    unsafe { _vrecpeq_f32(a) }
42387}
42388#[doc = "Unsigned reciprocal estimate"]
42389#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrecpe_u32)"]
42390#[inline]
42391#[target_feature(enable = "neon")]
42392#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42393#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrecpe))]
42394#[cfg_attr(
42395    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42396    assert_instr(urecpe)
42397)]
42398#[cfg_attr(
42399    not(target_arch = "arm"),
42400    stable(feature = "neon_intrinsics", since = "1.59.0")
42401)]
42402#[cfg_attr(
42403    target_arch = "arm",
42404    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42405)]
42406pub fn vrecpe_u32(a: uint32x2_t) -> uint32x2_t {
42407    unsafe extern "unadjusted" {
42408        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrecpe.v2i32")]
42409        #[cfg_attr(
42410            any(target_arch = "aarch64", target_arch = "arm64ec"),
42411            link_name = "llvm.aarch64.neon.urecpe.v2i32"
42412        )]
42413        fn _vrecpe_u32(a: uint32x2_t) -> uint32x2_t;
42414    }
42415    unsafe { _vrecpe_u32(a) }
42416}
42417#[doc = "Unsigned reciprocal estimate"]
42418#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrecpeq_u32)"]
42419#[inline]
42420#[target_feature(enable = "neon")]
42421#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42422#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrecpe))]
42423#[cfg_attr(
42424    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42425    assert_instr(urecpe)
42426)]
42427#[cfg_attr(
42428    not(target_arch = "arm"),
42429    stable(feature = "neon_intrinsics", since = "1.59.0")
42430)]
42431#[cfg_attr(
42432    target_arch = "arm",
42433    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42434)]
42435pub fn vrecpeq_u32(a: uint32x4_t) -> uint32x4_t {
42436    unsafe extern "unadjusted" {
42437        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrecpe.v4i32")]
42438        #[cfg_attr(
42439            any(target_arch = "aarch64", target_arch = "arm64ec"),
42440            link_name = "llvm.aarch64.neon.urecpe.v4i32"
42441        )]
42442        fn _vrecpeq_u32(a: uint32x4_t) -> uint32x4_t;
42443    }
42444    unsafe { _vrecpeq_u32(a) }
42445}
42446#[doc = "Floating-point reciprocal step"]
42447#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrecps_f16)"]
42448#[inline]
42449#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
42450#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrecps))]
42451#[cfg_attr(
42452    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42453    assert_instr(frecps)
42454)]
42455#[target_feature(enable = "neon,fp16")]
42456#[cfg_attr(
42457    not(target_arch = "arm"),
42458    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42459)]
42460#[cfg_attr(
42461    target_arch = "arm",
42462    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42463)]
42464#[cfg(not(target_arch = "arm64ec"))]
42465pub fn vrecps_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t {
42466    unsafe extern "unadjusted" {
42467        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrecps.v4f16")]
42468        #[cfg_attr(
42469            any(target_arch = "aarch64", target_arch = "arm64ec"),
42470            link_name = "llvm.aarch64.neon.frecps.v4f16"
42471        )]
42472        fn _vrecps_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t;
42473    }
42474    unsafe { _vrecps_f16(a, b) }
42475}
42476#[doc = "Floating-point reciprocal step"]
42477#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrecpsq_f16)"]
42478#[inline]
42479#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
42480#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrecps))]
42481#[cfg_attr(
42482    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42483    assert_instr(frecps)
42484)]
42485#[target_feature(enable = "neon,fp16")]
42486#[cfg_attr(
42487    not(target_arch = "arm"),
42488    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42489)]
42490#[cfg_attr(
42491    target_arch = "arm",
42492    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42493)]
42494#[cfg(not(target_arch = "arm64ec"))]
42495pub fn vrecpsq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t {
42496    unsafe extern "unadjusted" {
42497        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrecps.v8f16")]
42498        #[cfg_attr(
42499            any(target_arch = "aarch64", target_arch = "arm64ec"),
42500            link_name = "llvm.aarch64.neon.frecps.v8f16"
42501        )]
42502        fn _vrecpsq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t;
42503    }
42504    unsafe { _vrecpsq_f16(a, b) }
42505}
42506#[doc = "Floating-point reciprocal step"]
42507#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrecps_f32)"]
42508#[inline]
42509#[target_feature(enable = "neon")]
42510#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42511#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrecps))]
42512#[cfg_attr(
42513    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42514    assert_instr(frecps)
42515)]
42516#[cfg_attr(
42517    not(target_arch = "arm"),
42518    stable(feature = "neon_intrinsics", since = "1.59.0")
42519)]
42520#[cfg_attr(
42521    target_arch = "arm",
42522    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42523)]
42524pub fn vrecps_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
42525    unsafe extern "unadjusted" {
42526        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrecps.v2f32")]
42527        #[cfg_attr(
42528            any(target_arch = "aarch64", target_arch = "arm64ec"),
42529            link_name = "llvm.aarch64.neon.frecps.v2f32"
42530        )]
42531        fn _vrecps_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t;
42532    }
42533    unsafe { _vrecps_f32(a, b) }
42534}
42535#[doc = "Floating-point reciprocal step"]
42536#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrecpsq_f32)"]
42537#[inline]
42538#[target_feature(enable = "neon")]
42539#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42540#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrecps))]
42541#[cfg_attr(
42542    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42543    assert_instr(frecps)
42544)]
42545#[cfg_attr(
42546    not(target_arch = "arm"),
42547    stable(feature = "neon_intrinsics", since = "1.59.0")
42548)]
42549#[cfg_attr(
42550    target_arch = "arm",
42551    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42552)]
42553pub fn vrecpsq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t {
42554    unsafe extern "unadjusted" {
42555        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrecps.v4f32")]
42556        #[cfg_attr(
42557            any(target_arch = "aarch64", target_arch = "arm64ec"),
42558            link_name = "llvm.aarch64.neon.frecps.v4f32"
42559        )]
42560        fn _vrecpsq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t;
42561    }
42562    unsafe { _vrecpsq_f32(a, b) }
42563}
42564#[doc = "Vector reinterpret cast operation"]
42565#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_f16)"]
42566#[inline]
42567#[cfg(target_endian = "little")]
42568#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42569#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42570#[cfg_attr(
42571    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42572    assert_instr(nop)
42573)]
42574#[target_feature(enable = "neon,fp16")]
42575#[cfg_attr(
42576    not(target_arch = "arm"),
42577    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42578)]
42579#[cfg_attr(
42580    target_arch = "arm",
42581    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42582)]
42583#[cfg(not(target_arch = "arm64ec"))]
42584pub fn vreinterpret_f32_f16(a: float16x4_t) -> float32x2_t {
42585    unsafe { transmute(a) }
42586}
42587#[doc = "Vector reinterpret cast operation"]
42588#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_f16)"]
42589#[inline]
42590#[cfg(target_endian = "big")]
42591#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42592#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42593#[cfg_attr(
42594    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42595    assert_instr(nop)
42596)]
42597#[target_feature(enable = "neon,fp16")]
42598#[cfg_attr(
42599    not(target_arch = "arm"),
42600    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42601)]
42602#[cfg_attr(
42603    target_arch = "arm",
42604    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42605)]
42606#[cfg(not(target_arch = "arm64ec"))]
42607pub fn vreinterpret_f32_f16(a: float16x4_t) -> float32x2_t {
42608    let a: float16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
42609    unsafe {
42610        let ret_val: float32x2_t = transmute(a);
42611        simd_shuffle!(ret_val, ret_val, [1, 0])
42612    }
42613}
42614#[doc = "Vector reinterpret cast operation"]
42615#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_f16)"]
42616#[inline]
42617#[cfg(target_endian = "little")]
42618#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42619#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42620#[cfg_attr(
42621    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42622    assert_instr(nop)
42623)]
42624#[target_feature(enable = "neon,fp16")]
42625#[cfg_attr(
42626    not(target_arch = "arm"),
42627    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42628)]
42629#[cfg_attr(
42630    target_arch = "arm",
42631    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42632)]
42633#[cfg(not(target_arch = "arm64ec"))]
42634pub fn vreinterpret_s8_f16(a: float16x4_t) -> int8x8_t {
42635    unsafe { transmute(a) }
42636}
42637#[doc = "Vector reinterpret cast operation"]
42638#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_f16)"]
42639#[inline]
42640#[cfg(target_endian = "big")]
42641#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42642#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42643#[cfg_attr(
42644    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42645    assert_instr(nop)
42646)]
42647#[target_feature(enable = "neon,fp16")]
42648#[cfg_attr(
42649    not(target_arch = "arm"),
42650    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42651)]
42652#[cfg_attr(
42653    target_arch = "arm",
42654    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42655)]
42656#[cfg(not(target_arch = "arm64ec"))]
42657pub fn vreinterpret_s8_f16(a: float16x4_t) -> int8x8_t {
42658    let a: float16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
42659    unsafe {
42660        let ret_val: int8x8_t = transmute(a);
42661        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
42662    }
42663}
42664#[doc = "Vector reinterpret cast operation"]
42665#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_f16)"]
42666#[inline]
42667#[cfg(target_endian = "little")]
42668#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42669#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42670#[cfg_attr(
42671    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42672    assert_instr(nop)
42673)]
42674#[target_feature(enable = "neon,fp16")]
42675#[cfg_attr(
42676    not(target_arch = "arm"),
42677    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42678)]
42679#[cfg_attr(
42680    target_arch = "arm",
42681    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42682)]
42683#[cfg(not(target_arch = "arm64ec"))]
42684pub fn vreinterpret_s16_f16(a: float16x4_t) -> int16x4_t {
42685    unsafe { transmute(a) }
42686}
42687#[doc = "Vector reinterpret cast operation"]
42688#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_f16)"]
42689#[inline]
42690#[cfg(target_endian = "big")]
42691#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42692#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42693#[cfg_attr(
42694    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42695    assert_instr(nop)
42696)]
42697#[target_feature(enable = "neon,fp16")]
42698#[cfg_attr(
42699    not(target_arch = "arm"),
42700    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42701)]
42702#[cfg_attr(
42703    target_arch = "arm",
42704    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42705)]
42706#[cfg(not(target_arch = "arm64ec"))]
42707pub fn vreinterpret_s16_f16(a: float16x4_t) -> int16x4_t {
42708    let a: float16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
42709    unsafe {
42710        let ret_val: int16x4_t = transmute(a);
42711        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
42712    }
42713}
42714#[doc = "Vector reinterpret cast operation"]
42715#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_f16)"]
42716#[inline]
42717#[cfg(target_endian = "little")]
42718#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42719#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42720#[cfg_attr(
42721    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42722    assert_instr(nop)
42723)]
42724#[target_feature(enable = "neon,fp16")]
42725#[cfg_attr(
42726    not(target_arch = "arm"),
42727    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42728)]
42729#[cfg_attr(
42730    target_arch = "arm",
42731    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42732)]
42733#[cfg(not(target_arch = "arm64ec"))]
42734pub fn vreinterpret_s32_f16(a: float16x4_t) -> int32x2_t {
42735    unsafe { transmute(a) }
42736}
42737#[doc = "Vector reinterpret cast operation"]
42738#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_f16)"]
42739#[inline]
42740#[cfg(target_endian = "big")]
42741#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42742#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42743#[cfg_attr(
42744    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42745    assert_instr(nop)
42746)]
42747#[target_feature(enable = "neon,fp16")]
42748#[cfg_attr(
42749    not(target_arch = "arm"),
42750    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42751)]
42752#[cfg_attr(
42753    target_arch = "arm",
42754    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42755)]
42756#[cfg(not(target_arch = "arm64ec"))]
42757pub fn vreinterpret_s32_f16(a: float16x4_t) -> int32x2_t {
42758    let a: float16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
42759    unsafe {
42760        let ret_val: int32x2_t = transmute(a);
42761        simd_shuffle!(ret_val, ret_val, [1, 0])
42762    }
42763}
42764#[doc = "Vector reinterpret cast operation"]
42765#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_f16)"]
42766#[inline]
42767#[cfg(target_endian = "little")]
42768#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42769#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42770#[cfg_attr(
42771    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42772    assert_instr(nop)
42773)]
42774#[target_feature(enable = "neon,fp16")]
42775#[cfg_attr(
42776    not(target_arch = "arm"),
42777    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42778)]
42779#[cfg_attr(
42780    target_arch = "arm",
42781    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42782)]
42783#[cfg(not(target_arch = "arm64ec"))]
42784pub fn vreinterpret_s64_f16(a: float16x4_t) -> int64x1_t {
42785    unsafe { transmute(a) }
42786}
42787#[doc = "Vector reinterpret cast operation"]
42788#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_f16)"]
42789#[inline]
42790#[cfg(target_endian = "big")]
42791#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42792#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42793#[cfg_attr(
42794    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42795    assert_instr(nop)
42796)]
42797#[target_feature(enable = "neon,fp16")]
42798#[cfg_attr(
42799    not(target_arch = "arm"),
42800    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42801)]
42802#[cfg_attr(
42803    target_arch = "arm",
42804    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42805)]
42806#[cfg(not(target_arch = "arm64ec"))]
42807pub fn vreinterpret_s64_f16(a: float16x4_t) -> int64x1_t {
42808    let a: float16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
42809    unsafe { transmute(a) }
42810}
42811#[doc = "Vector reinterpret cast operation"]
42812#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_f16)"]
42813#[inline]
42814#[cfg(target_endian = "little")]
42815#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42816#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42817#[cfg_attr(
42818    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42819    assert_instr(nop)
42820)]
42821#[target_feature(enable = "neon,fp16")]
42822#[cfg_attr(
42823    not(target_arch = "arm"),
42824    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42825)]
42826#[cfg_attr(
42827    target_arch = "arm",
42828    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42829)]
42830#[cfg(not(target_arch = "arm64ec"))]
42831pub fn vreinterpret_u8_f16(a: float16x4_t) -> uint8x8_t {
42832    unsafe { transmute(a) }
42833}
42834#[doc = "Vector reinterpret cast operation"]
42835#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_f16)"]
42836#[inline]
42837#[cfg(target_endian = "big")]
42838#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42839#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42840#[cfg_attr(
42841    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42842    assert_instr(nop)
42843)]
42844#[target_feature(enable = "neon,fp16")]
42845#[cfg_attr(
42846    not(target_arch = "arm"),
42847    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42848)]
42849#[cfg_attr(
42850    target_arch = "arm",
42851    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42852)]
42853#[cfg(not(target_arch = "arm64ec"))]
42854pub fn vreinterpret_u8_f16(a: float16x4_t) -> uint8x8_t {
42855    let a: float16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
42856    unsafe {
42857        let ret_val: uint8x8_t = transmute(a);
42858        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
42859    }
42860}
42861#[doc = "Vector reinterpret cast operation"]
42862#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_f16)"]
42863#[inline]
42864#[cfg(target_endian = "little")]
42865#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42866#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42867#[cfg_attr(
42868    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42869    assert_instr(nop)
42870)]
42871#[target_feature(enable = "neon,fp16")]
42872#[cfg_attr(
42873    not(target_arch = "arm"),
42874    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42875)]
42876#[cfg_attr(
42877    target_arch = "arm",
42878    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42879)]
42880#[cfg(not(target_arch = "arm64ec"))]
42881pub fn vreinterpret_u16_f16(a: float16x4_t) -> uint16x4_t {
42882    unsafe { transmute(a) }
42883}
42884#[doc = "Vector reinterpret cast operation"]
42885#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_f16)"]
42886#[inline]
42887#[cfg(target_endian = "big")]
42888#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42889#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42890#[cfg_attr(
42891    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42892    assert_instr(nop)
42893)]
42894#[target_feature(enable = "neon,fp16")]
42895#[cfg_attr(
42896    not(target_arch = "arm"),
42897    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42898)]
42899#[cfg_attr(
42900    target_arch = "arm",
42901    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42902)]
42903#[cfg(not(target_arch = "arm64ec"))]
42904pub fn vreinterpret_u16_f16(a: float16x4_t) -> uint16x4_t {
42905    let a: float16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
42906    unsafe {
42907        let ret_val: uint16x4_t = transmute(a);
42908        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
42909    }
42910}
42911#[doc = "Vector reinterpret cast operation"]
42912#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_f16)"]
42913#[inline]
42914#[cfg(target_endian = "little")]
42915#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42916#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42917#[cfg_attr(
42918    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42919    assert_instr(nop)
42920)]
42921#[target_feature(enable = "neon,fp16")]
42922#[cfg_attr(
42923    not(target_arch = "arm"),
42924    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42925)]
42926#[cfg_attr(
42927    target_arch = "arm",
42928    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42929)]
42930#[cfg(not(target_arch = "arm64ec"))]
42931pub fn vreinterpret_u32_f16(a: float16x4_t) -> uint32x2_t {
42932    unsafe { transmute(a) }
42933}
42934#[doc = "Vector reinterpret cast operation"]
42935#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_f16)"]
42936#[inline]
42937#[cfg(target_endian = "big")]
42938#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42939#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42940#[cfg_attr(
42941    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42942    assert_instr(nop)
42943)]
42944#[target_feature(enable = "neon,fp16")]
42945#[cfg_attr(
42946    not(target_arch = "arm"),
42947    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42948)]
42949#[cfg_attr(
42950    target_arch = "arm",
42951    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42952)]
42953#[cfg(not(target_arch = "arm64ec"))]
42954pub fn vreinterpret_u32_f16(a: float16x4_t) -> uint32x2_t {
42955    let a: float16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
42956    unsafe {
42957        let ret_val: uint32x2_t = transmute(a);
42958        simd_shuffle!(ret_val, ret_val, [1, 0])
42959    }
42960}
42961#[doc = "Vector reinterpret cast operation"]
42962#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_f16)"]
42963#[inline]
42964#[cfg(target_endian = "little")]
42965#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42966#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42967#[cfg_attr(
42968    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42969    assert_instr(nop)
42970)]
42971#[target_feature(enable = "neon,fp16")]
42972#[cfg_attr(
42973    not(target_arch = "arm"),
42974    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42975)]
42976#[cfg_attr(
42977    target_arch = "arm",
42978    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42979)]
42980#[cfg(not(target_arch = "arm64ec"))]
42981pub fn vreinterpret_u64_f16(a: float16x4_t) -> uint64x1_t {
42982    unsafe { transmute(a) }
42983}
42984#[doc = "Vector reinterpret cast operation"]
42985#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_f16)"]
42986#[inline]
42987#[cfg(target_endian = "big")]
42988#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42989#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42990#[cfg_attr(
42991    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42992    assert_instr(nop)
42993)]
42994#[target_feature(enable = "neon,fp16")]
42995#[cfg_attr(
42996    not(target_arch = "arm"),
42997    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42998)]
42999#[cfg_attr(
43000    target_arch = "arm",
43001    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43002)]
43003#[cfg(not(target_arch = "arm64ec"))]
43004pub fn vreinterpret_u64_f16(a: float16x4_t) -> uint64x1_t {
43005    let a: float16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
43006    unsafe { transmute(a) }
43007}
43008#[doc = "Vector reinterpret cast operation"]
43009#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_f16)"]
43010#[inline]
43011#[cfg(target_endian = "little")]
43012#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43013#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43014#[cfg_attr(
43015    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43016    assert_instr(nop)
43017)]
43018#[target_feature(enable = "neon,fp16")]
43019#[cfg_attr(
43020    not(target_arch = "arm"),
43021    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
43022)]
43023#[cfg_attr(
43024    target_arch = "arm",
43025    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43026)]
43027#[cfg(not(target_arch = "arm64ec"))]
43028pub fn vreinterpret_p8_f16(a: float16x4_t) -> poly8x8_t {
43029    unsafe { transmute(a) }
43030}
43031#[doc = "Vector reinterpret cast operation"]
43032#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_f16)"]
43033#[inline]
43034#[cfg(target_endian = "big")]
43035#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43036#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43037#[cfg_attr(
43038    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43039    assert_instr(nop)
43040)]
43041#[target_feature(enable = "neon,fp16")]
43042#[cfg_attr(
43043    not(target_arch = "arm"),
43044    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
43045)]
43046#[cfg_attr(
43047    target_arch = "arm",
43048    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43049)]
43050#[cfg(not(target_arch = "arm64ec"))]
43051pub fn vreinterpret_p8_f16(a: float16x4_t) -> poly8x8_t {
43052    let a: float16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
43053    unsafe {
43054        let ret_val: poly8x8_t = transmute(a);
43055        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
43056    }
43057}
43058#[doc = "Vector reinterpret cast operation"]
43059#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_f16)"]
43060#[inline]
43061#[cfg(target_endian = "little")]
43062#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43063#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43064#[cfg_attr(
43065    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43066    assert_instr(nop)
43067)]
43068#[target_feature(enable = "neon,fp16")]
43069#[cfg_attr(
43070    not(target_arch = "arm"),
43071    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
43072)]
43073#[cfg_attr(
43074    target_arch = "arm",
43075    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43076)]
43077#[cfg(not(target_arch = "arm64ec"))]
43078pub fn vreinterpret_p16_f16(a: float16x4_t) -> poly16x4_t {
43079    unsafe { transmute(a) }
43080}
43081#[doc = "Vector reinterpret cast operation"]
43082#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_f16)"]
43083#[inline]
43084#[cfg(target_endian = "big")]
43085#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43086#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43087#[cfg_attr(
43088    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43089    assert_instr(nop)
43090)]
43091#[target_feature(enable = "neon,fp16")]
43092#[cfg_attr(
43093    not(target_arch = "arm"),
43094    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
43095)]
43096#[cfg_attr(
43097    target_arch = "arm",
43098    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43099)]
43100#[cfg(not(target_arch = "arm64ec"))]
43101pub fn vreinterpret_p16_f16(a: float16x4_t) -> poly16x4_t {
43102    let a: float16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
43103    unsafe {
43104        let ret_val: poly16x4_t = transmute(a);
43105        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
43106    }
43107}
43108#[doc = "Vector reinterpret cast operation"]
43109#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_f16)"]
43110#[inline]
43111#[cfg(target_endian = "little")]
43112#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43113#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43114#[cfg_attr(
43115    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43116    assert_instr(nop)
43117)]
43118#[target_feature(enable = "neon,fp16")]
43119#[cfg_attr(
43120    not(target_arch = "arm"),
43121    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
43122)]
43123#[cfg_attr(
43124    target_arch = "arm",
43125    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43126)]
43127#[cfg(not(target_arch = "arm64ec"))]
43128pub fn vreinterpretq_f32_f16(a: float16x8_t) -> float32x4_t {
43129    unsafe { transmute(a) }
43130}
43131#[doc = "Vector reinterpret cast operation"]
43132#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_f16)"]
43133#[inline]
43134#[cfg(target_endian = "big")]
43135#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43136#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43137#[cfg_attr(
43138    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43139    assert_instr(nop)
43140)]
43141#[target_feature(enable = "neon,fp16")]
43142#[cfg_attr(
43143    not(target_arch = "arm"),
43144    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
43145)]
43146#[cfg_attr(
43147    target_arch = "arm",
43148    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43149)]
43150#[cfg(not(target_arch = "arm64ec"))]
43151pub fn vreinterpretq_f32_f16(a: float16x8_t) -> float32x4_t {
43152    let a: float16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
43153    unsafe {
43154        let ret_val: float32x4_t = transmute(a);
43155        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
43156    }
43157}
43158#[doc = "Vector reinterpret cast operation"]
43159#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_f16)"]
43160#[inline]
43161#[cfg(target_endian = "little")]
43162#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43163#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43164#[cfg_attr(
43165    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43166    assert_instr(nop)
43167)]
43168#[target_feature(enable = "neon,fp16")]
43169#[cfg_attr(
43170    not(target_arch = "arm"),
43171    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
43172)]
43173#[cfg_attr(
43174    target_arch = "arm",
43175    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43176)]
43177#[cfg(not(target_arch = "arm64ec"))]
43178pub fn vreinterpretq_s8_f16(a: float16x8_t) -> int8x16_t {
43179    unsafe { transmute(a) }
43180}
43181#[doc = "Vector reinterpret cast operation"]
43182#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_f16)"]
43183#[inline]
43184#[cfg(target_endian = "big")]
43185#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43186#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43187#[cfg_attr(
43188    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43189    assert_instr(nop)
43190)]
43191#[target_feature(enable = "neon,fp16")]
43192#[cfg_attr(
43193    not(target_arch = "arm"),
43194    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
43195)]
43196#[cfg_attr(
43197    target_arch = "arm",
43198    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43199)]
43200#[cfg(not(target_arch = "arm64ec"))]
43201pub fn vreinterpretq_s8_f16(a: float16x8_t) -> int8x16_t {
43202    let a: float16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
43203    unsafe {
43204        let ret_val: int8x16_t = transmute(a);
43205        simd_shuffle!(
43206            ret_val,
43207            ret_val,
43208            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
43209        )
43210    }
43211}
43212#[doc = "Vector reinterpret cast operation"]
43213#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_f16)"]
43214#[inline]
43215#[cfg(target_endian = "little")]
43216#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43217#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43218#[cfg_attr(
43219    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43220    assert_instr(nop)
43221)]
43222#[target_feature(enable = "neon,fp16")]
43223#[cfg_attr(
43224    not(target_arch = "arm"),
43225    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
43226)]
43227#[cfg_attr(
43228    target_arch = "arm",
43229    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43230)]
43231#[cfg(not(target_arch = "arm64ec"))]
43232pub fn vreinterpretq_s16_f16(a: float16x8_t) -> int16x8_t {
43233    unsafe { transmute(a) }
43234}
43235#[doc = "Vector reinterpret cast operation"]
43236#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_f16)"]
43237#[inline]
43238#[cfg(target_endian = "big")]
43239#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43240#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43241#[cfg_attr(
43242    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43243    assert_instr(nop)
43244)]
43245#[target_feature(enable = "neon,fp16")]
43246#[cfg_attr(
43247    not(target_arch = "arm"),
43248    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
43249)]
43250#[cfg_attr(
43251    target_arch = "arm",
43252    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43253)]
43254#[cfg(not(target_arch = "arm64ec"))]
43255pub fn vreinterpretq_s16_f16(a: float16x8_t) -> int16x8_t {
43256    let a: float16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
43257    unsafe {
43258        let ret_val: int16x8_t = transmute(a);
43259        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
43260    }
43261}
43262#[doc = "Vector reinterpret cast operation"]
43263#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_f16)"]
43264#[inline]
43265#[cfg(target_endian = "little")]
43266#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43267#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43268#[cfg_attr(
43269    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43270    assert_instr(nop)
43271)]
43272#[target_feature(enable = "neon,fp16")]
43273#[cfg_attr(
43274    not(target_arch = "arm"),
43275    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
43276)]
43277#[cfg_attr(
43278    target_arch = "arm",
43279    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43280)]
43281#[cfg(not(target_arch = "arm64ec"))]
43282pub fn vreinterpretq_s32_f16(a: float16x8_t) -> int32x4_t {
43283    unsafe { transmute(a) }
43284}
43285#[doc = "Vector reinterpret cast operation"]
43286#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_f16)"]
43287#[inline]
43288#[cfg(target_endian = "big")]
43289#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43290#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43291#[cfg_attr(
43292    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43293    assert_instr(nop)
43294)]
43295#[target_feature(enable = "neon,fp16")]
43296#[cfg_attr(
43297    not(target_arch = "arm"),
43298    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
43299)]
43300#[cfg_attr(
43301    target_arch = "arm",
43302    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43303)]
43304#[cfg(not(target_arch = "arm64ec"))]
43305pub fn vreinterpretq_s32_f16(a: float16x8_t) -> int32x4_t {
43306    let a: float16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
43307    unsafe {
43308        let ret_val: int32x4_t = transmute(a);
43309        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
43310    }
43311}
43312#[doc = "Vector reinterpret cast operation"]
43313#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_f16)"]
43314#[inline]
43315#[cfg(target_endian = "little")]
43316#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43317#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43318#[cfg_attr(
43319    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43320    assert_instr(nop)
43321)]
43322#[target_feature(enable = "neon,fp16")]
43323#[cfg_attr(
43324    not(target_arch = "arm"),
43325    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
43326)]
43327#[cfg_attr(
43328    target_arch = "arm",
43329    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43330)]
43331#[cfg(not(target_arch = "arm64ec"))]
43332pub fn vreinterpretq_s64_f16(a: float16x8_t) -> int64x2_t {
43333    unsafe { transmute(a) }
43334}
43335#[doc = "Vector reinterpret cast operation"]
43336#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_f16)"]
43337#[inline]
43338#[cfg(target_endian = "big")]
43339#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43340#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43341#[cfg_attr(
43342    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43343    assert_instr(nop)
43344)]
43345#[target_feature(enable = "neon,fp16")]
43346#[cfg_attr(
43347    not(target_arch = "arm"),
43348    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
43349)]
43350#[cfg_attr(
43351    target_arch = "arm",
43352    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43353)]
43354#[cfg(not(target_arch = "arm64ec"))]
43355pub fn vreinterpretq_s64_f16(a: float16x8_t) -> int64x2_t {
43356    let a: float16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
43357    unsafe {
43358        let ret_val: int64x2_t = transmute(a);
43359        simd_shuffle!(ret_val, ret_val, [1, 0])
43360    }
43361}
43362#[doc = "Vector reinterpret cast operation"]
43363#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_f16)"]
43364#[inline]
43365#[cfg(target_endian = "little")]
43366#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43367#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43368#[cfg_attr(
43369    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43370    assert_instr(nop)
43371)]
43372#[target_feature(enable = "neon,fp16")]
43373#[cfg_attr(
43374    not(target_arch = "arm"),
43375    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
43376)]
43377#[cfg_attr(
43378    target_arch = "arm",
43379    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43380)]
43381#[cfg(not(target_arch = "arm64ec"))]
43382pub fn vreinterpretq_u8_f16(a: float16x8_t) -> uint8x16_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/vreinterpretq_u8_f16)"]
43387#[inline]
43388#[cfg(target_endian = "big")]
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#[target_feature(enable = "neon,fp16")]
43396#[cfg_attr(
43397    not(target_arch = "arm"),
43398    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
43399)]
43400#[cfg_attr(
43401    target_arch = "arm",
43402    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43403)]
43404#[cfg(not(target_arch = "arm64ec"))]
43405pub fn vreinterpretq_u8_f16(a: float16x8_t) -> uint8x16_t {
43406    let a: float16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
43407    unsafe {
43408        let ret_val: uint8x16_t = transmute(a);
43409        simd_shuffle!(
43410            ret_val,
43411            ret_val,
43412            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
43413        )
43414    }
43415}
43416#[doc = "Vector reinterpret cast operation"]
43417#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_f16)"]
43418#[inline]
43419#[cfg(target_endian = "little")]
43420#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43421#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43422#[cfg_attr(
43423    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43424    assert_instr(nop)
43425)]
43426#[target_feature(enable = "neon,fp16")]
43427#[cfg_attr(
43428    not(target_arch = "arm"),
43429    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
43430)]
43431#[cfg_attr(
43432    target_arch = "arm",
43433    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43434)]
43435#[cfg(not(target_arch = "arm64ec"))]
43436pub fn vreinterpretq_u16_f16(a: float16x8_t) -> uint16x8_t {
43437    unsafe { transmute(a) }
43438}
43439#[doc = "Vector reinterpret cast operation"]
43440#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_f16)"]
43441#[inline]
43442#[cfg(target_endian = "big")]
43443#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43444#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43445#[cfg_attr(
43446    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43447    assert_instr(nop)
43448)]
43449#[target_feature(enable = "neon,fp16")]
43450#[cfg_attr(
43451    not(target_arch = "arm"),
43452    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
43453)]
43454#[cfg_attr(
43455    target_arch = "arm",
43456    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43457)]
43458#[cfg(not(target_arch = "arm64ec"))]
43459pub fn vreinterpretq_u16_f16(a: float16x8_t) -> uint16x8_t {
43460    let a: float16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
43461    unsafe {
43462        let ret_val: uint16x8_t = transmute(a);
43463        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
43464    }
43465}
43466#[doc = "Vector reinterpret cast operation"]
43467#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_f16)"]
43468#[inline]
43469#[cfg(target_endian = "little")]
43470#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43471#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43472#[cfg_attr(
43473    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43474    assert_instr(nop)
43475)]
43476#[target_feature(enable = "neon,fp16")]
43477#[cfg_attr(
43478    not(target_arch = "arm"),
43479    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
43480)]
43481#[cfg_attr(
43482    target_arch = "arm",
43483    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43484)]
43485#[cfg(not(target_arch = "arm64ec"))]
43486pub fn vreinterpretq_u32_f16(a: float16x8_t) -> uint32x4_t {
43487    unsafe { transmute(a) }
43488}
43489#[doc = "Vector reinterpret cast operation"]
43490#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_f16)"]
43491#[inline]
43492#[cfg(target_endian = "big")]
43493#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43494#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43495#[cfg_attr(
43496    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43497    assert_instr(nop)
43498)]
43499#[target_feature(enable = "neon,fp16")]
43500#[cfg_attr(
43501    not(target_arch = "arm"),
43502    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
43503)]
43504#[cfg_attr(
43505    target_arch = "arm",
43506    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43507)]
43508#[cfg(not(target_arch = "arm64ec"))]
43509pub fn vreinterpretq_u32_f16(a: float16x8_t) -> uint32x4_t {
43510    let a: float16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
43511    unsafe {
43512        let ret_val: uint32x4_t = transmute(a);
43513        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
43514    }
43515}
43516#[doc = "Vector reinterpret cast operation"]
43517#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_f16)"]
43518#[inline]
43519#[cfg(target_endian = "little")]
43520#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43521#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43522#[cfg_attr(
43523    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43524    assert_instr(nop)
43525)]
43526#[target_feature(enable = "neon,fp16")]
43527#[cfg_attr(
43528    not(target_arch = "arm"),
43529    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
43530)]
43531#[cfg_attr(
43532    target_arch = "arm",
43533    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43534)]
43535#[cfg(not(target_arch = "arm64ec"))]
43536pub fn vreinterpretq_u64_f16(a: float16x8_t) -> uint64x2_t {
43537    unsafe { transmute(a) }
43538}
43539#[doc = "Vector reinterpret cast operation"]
43540#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_f16)"]
43541#[inline]
43542#[cfg(target_endian = "big")]
43543#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43544#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43545#[cfg_attr(
43546    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43547    assert_instr(nop)
43548)]
43549#[target_feature(enable = "neon,fp16")]
43550#[cfg_attr(
43551    not(target_arch = "arm"),
43552    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
43553)]
43554#[cfg_attr(
43555    target_arch = "arm",
43556    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43557)]
43558#[cfg(not(target_arch = "arm64ec"))]
43559pub fn vreinterpretq_u64_f16(a: float16x8_t) -> uint64x2_t {
43560    let a: float16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
43561    unsafe {
43562        let ret_val: uint64x2_t = transmute(a);
43563        simd_shuffle!(ret_val, ret_val, [1, 0])
43564    }
43565}
43566#[doc = "Vector reinterpret cast operation"]
43567#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_f16)"]
43568#[inline]
43569#[cfg(target_endian = "little")]
43570#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43571#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43572#[cfg_attr(
43573    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43574    assert_instr(nop)
43575)]
43576#[target_feature(enable = "neon,fp16")]
43577#[cfg_attr(
43578    not(target_arch = "arm"),
43579    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
43580)]
43581#[cfg_attr(
43582    target_arch = "arm",
43583    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43584)]
43585#[cfg(not(target_arch = "arm64ec"))]
43586pub fn vreinterpretq_p8_f16(a: float16x8_t) -> poly8x16_t {
43587    unsafe { transmute(a) }
43588}
43589#[doc = "Vector reinterpret cast operation"]
43590#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_f16)"]
43591#[inline]
43592#[cfg(target_endian = "big")]
43593#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43594#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43595#[cfg_attr(
43596    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43597    assert_instr(nop)
43598)]
43599#[target_feature(enable = "neon,fp16")]
43600#[cfg_attr(
43601    not(target_arch = "arm"),
43602    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
43603)]
43604#[cfg_attr(
43605    target_arch = "arm",
43606    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43607)]
43608#[cfg(not(target_arch = "arm64ec"))]
43609pub fn vreinterpretq_p8_f16(a: float16x8_t) -> poly8x16_t {
43610    let a: float16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
43611    unsafe {
43612        let ret_val: poly8x16_t = transmute(a);
43613        simd_shuffle!(
43614            ret_val,
43615            ret_val,
43616            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
43617        )
43618    }
43619}
43620#[doc = "Vector reinterpret cast operation"]
43621#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_f16)"]
43622#[inline]
43623#[cfg(target_endian = "little")]
43624#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43625#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43626#[cfg_attr(
43627    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43628    assert_instr(nop)
43629)]
43630#[target_feature(enable = "neon,fp16")]
43631#[cfg_attr(
43632    not(target_arch = "arm"),
43633    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
43634)]
43635#[cfg_attr(
43636    target_arch = "arm",
43637    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43638)]
43639#[cfg(not(target_arch = "arm64ec"))]
43640pub fn vreinterpretq_p16_f16(a: float16x8_t) -> poly16x8_t {
43641    unsafe { transmute(a) }
43642}
43643#[doc = "Vector reinterpret cast operation"]
43644#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_f16)"]
43645#[inline]
43646#[cfg(target_endian = "big")]
43647#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43648#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43649#[cfg_attr(
43650    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43651    assert_instr(nop)
43652)]
43653#[target_feature(enable = "neon,fp16")]
43654#[cfg_attr(
43655    not(target_arch = "arm"),
43656    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
43657)]
43658#[cfg_attr(
43659    target_arch = "arm",
43660    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43661)]
43662#[cfg(not(target_arch = "arm64ec"))]
43663pub fn vreinterpretq_p16_f16(a: float16x8_t) -> poly16x8_t {
43664    let a: float16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
43665    unsafe {
43666        let ret_val: poly16x8_t = transmute(a);
43667        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
43668    }
43669}
43670#[doc = "Vector reinterpret cast operation"]
43671#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_f32)"]
43672#[inline]
43673#[cfg(target_endian = "little")]
43674#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43675#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43676#[cfg_attr(
43677    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43678    assert_instr(nop)
43679)]
43680#[target_feature(enable = "neon,fp16")]
43681#[cfg_attr(
43682    not(target_arch = "arm"),
43683    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
43684)]
43685#[cfg_attr(
43686    target_arch = "arm",
43687    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43688)]
43689#[cfg(not(target_arch = "arm64ec"))]
43690pub fn vreinterpret_f16_f32(a: float32x2_t) -> float16x4_t {
43691    unsafe { transmute(a) }
43692}
43693#[doc = "Vector reinterpret cast operation"]
43694#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_f32)"]
43695#[inline]
43696#[cfg(target_endian = "big")]
43697#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43698#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43699#[cfg_attr(
43700    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43701    assert_instr(nop)
43702)]
43703#[target_feature(enable = "neon,fp16")]
43704#[cfg_attr(
43705    not(target_arch = "arm"),
43706    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
43707)]
43708#[cfg_attr(
43709    target_arch = "arm",
43710    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43711)]
43712#[cfg(not(target_arch = "arm64ec"))]
43713pub fn vreinterpret_f16_f32(a: float32x2_t) -> float16x4_t {
43714    let a: float32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
43715    unsafe {
43716        let ret_val: float16x4_t = transmute(a);
43717        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
43718    }
43719}
43720#[doc = "Vector reinterpret cast operation"]
43721#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_f32)"]
43722#[inline]
43723#[cfg(target_endian = "little")]
43724#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43725#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43726#[cfg_attr(
43727    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43728    assert_instr(nop)
43729)]
43730#[target_feature(enable = "neon,fp16")]
43731#[cfg_attr(
43732    not(target_arch = "arm"),
43733    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
43734)]
43735#[cfg_attr(
43736    target_arch = "arm",
43737    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43738)]
43739#[cfg(not(target_arch = "arm64ec"))]
43740pub fn vreinterpretq_f16_f32(a: float32x4_t) -> float16x8_t {
43741    unsafe { transmute(a) }
43742}
43743#[doc = "Vector reinterpret cast operation"]
43744#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_f32)"]
43745#[inline]
43746#[cfg(target_endian = "big")]
43747#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43748#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43749#[cfg_attr(
43750    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43751    assert_instr(nop)
43752)]
43753#[target_feature(enable = "neon,fp16")]
43754#[cfg_attr(
43755    not(target_arch = "arm"),
43756    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
43757)]
43758#[cfg_attr(
43759    target_arch = "arm",
43760    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43761)]
43762#[cfg(not(target_arch = "arm64ec"))]
43763pub fn vreinterpretq_f16_f32(a: float32x4_t) -> float16x8_t {
43764    let a: float32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
43765    unsafe {
43766        let ret_val: float16x8_t = transmute(a);
43767        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
43768    }
43769}
43770#[doc = "Vector reinterpret cast operation"]
43771#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_s8)"]
43772#[inline]
43773#[cfg(target_endian = "little")]
43774#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43775#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43776#[cfg_attr(
43777    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43778    assert_instr(nop)
43779)]
43780#[target_feature(enable = "neon,fp16")]
43781#[cfg_attr(
43782    not(target_arch = "arm"),
43783    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
43784)]
43785#[cfg_attr(
43786    target_arch = "arm",
43787    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43788)]
43789#[cfg(not(target_arch = "arm64ec"))]
43790pub fn vreinterpret_f16_s8(a: int8x8_t) -> float16x4_t {
43791    unsafe { transmute(a) }
43792}
43793#[doc = "Vector reinterpret cast operation"]
43794#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_s8)"]
43795#[inline]
43796#[cfg(target_endian = "big")]
43797#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43798#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43799#[cfg_attr(
43800    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43801    assert_instr(nop)
43802)]
43803#[target_feature(enable = "neon,fp16")]
43804#[cfg_attr(
43805    not(target_arch = "arm"),
43806    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
43807)]
43808#[cfg_attr(
43809    target_arch = "arm",
43810    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43811)]
43812#[cfg(not(target_arch = "arm64ec"))]
43813pub fn vreinterpret_f16_s8(a: int8x8_t) -> float16x4_t {
43814    let a: int8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
43815    unsafe {
43816        let ret_val: float16x4_t = transmute(a);
43817        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
43818    }
43819}
43820#[doc = "Vector reinterpret cast operation"]
43821#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_s8)"]
43822#[inline]
43823#[cfg(target_endian = "little")]
43824#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43825#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43826#[cfg_attr(
43827    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43828    assert_instr(nop)
43829)]
43830#[target_feature(enable = "neon,fp16")]
43831#[cfg_attr(
43832    not(target_arch = "arm"),
43833    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
43834)]
43835#[cfg_attr(
43836    target_arch = "arm",
43837    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43838)]
43839#[cfg(not(target_arch = "arm64ec"))]
43840pub fn vreinterpretq_f16_s8(a: int8x16_t) -> float16x8_t {
43841    unsafe { transmute(a) }
43842}
43843#[doc = "Vector reinterpret cast operation"]
43844#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_s8)"]
43845#[inline]
43846#[cfg(target_endian = "big")]
43847#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43848#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43849#[cfg_attr(
43850    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43851    assert_instr(nop)
43852)]
43853#[target_feature(enable = "neon,fp16")]
43854#[cfg_attr(
43855    not(target_arch = "arm"),
43856    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
43857)]
43858#[cfg_attr(
43859    target_arch = "arm",
43860    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43861)]
43862#[cfg(not(target_arch = "arm64ec"))]
43863pub fn vreinterpretq_f16_s8(a: int8x16_t) -> float16x8_t {
43864    let a: int8x16_t =
43865        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
43866    unsafe {
43867        let ret_val: float16x8_t = transmute(a);
43868        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
43869    }
43870}
43871#[doc = "Vector reinterpret cast operation"]
43872#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_s16)"]
43873#[inline]
43874#[cfg(target_endian = "little")]
43875#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43876#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43877#[cfg_attr(
43878    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43879    assert_instr(nop)
43880)]
43881#[target_feature(enable = "neon,fp16")]
43882#[cfg_attr(
43883    not(target_arch = "arm"),
43884    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
43885)]
43886#[cfg_attr(
43887    target_arch = "arm",
43888    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43889)]
43890#[cfg(not(target_arch = "arm64ec"))]
43891pub fn vreinterpret_f16_s16(a: int16x4_t) -> float16x4_t {
43892    unsafe { transmute(a) }
43893}
43894#[doc = "Vector reinterpret cast operation"]
43895#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_s16)"]
43896#[inline]
43897#[cfg(target_endian = "big")]
43898#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43899#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43900#[cfg_attr(
43901    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43902    assert_instr(nop)
43903)]
43904#[target_feature(enable = "neon,fp16")]
43905#[cfg_attr(
43906    not(target_arch = "arm"),
43907    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
43908)]
43909#[cfg_attr(
43910    target_arch = "arm",
43911    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43912)]
43913#[cfg(not(target_arch = "arm64ec"))]
43914pub fn vreinterpret_f16_s16(a: int16x4_t) -> float16x4_t {
43915    let a: int16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
43916    unsafe {
43917        let ret_val: float16x4_t = transmute(a);
43918        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
43919    }
43920}
43921#[doc = "Vector reinterpret cast operation"]
43922#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_s16)"]
43923#[inline]
43924#[cfg(target_endian = "little")]
43925#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43926#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43927#[cfg_attr(
43928    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43929    assert_instr(nop)
43930)]
43931#[target_feature(enable = "neon,fp16")]
43932#[cfg_attr(
43933    not(target_arch = "arm"),
43934    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
43935)]
43936#[cfg_attr(
43937    target_arch = "arm",
43938    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43939)]
43940#[cfg(not(target_arch = "arm64ec"))]
43941pub fn vreinterpretq_f16_s16(a: int16x8_t) -> float16x8_t {
43942    unsafe { transmute(a) }
43943}
43944#[doc = "Vector reinterpret cast operation"]
43945#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_s16)"]
43946#[inline]
43947#[cfg(target_endian = "big")]
43948#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43949#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43950#[cfg_attr(
43951    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43952    assert_instr(nop)
43953)]
43954#[target_feature(enable = "neon,fp16")]
43955#[cfg_attr(
43956    not(target_arch = "arm"),
43957    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
43958)]
43959#[cfg_attr(
43960    target_arch = "arm",
43961    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43962)]
43963#[cfg(not(target_arch = "arm64ec"))]
43964pub fn vreinterpretq_f16_s16(a: int16x8_t) -> float16x8_t {
43965    let a: int16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
43966    unsafe {
43967        let ret_val: float16x8_t = transmute(a);
43968        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
43969    }
43970}
43971#[doc = "Vector reinterpret cast operation"]
43972#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_s32)"]
43973#[inline]
43974#[cfg(target_endian = "little")]
43975#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43976#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43977#[cfg_attr(
43978    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43979    assert_instr(nop)
43980)]
43981#[target_feature(enable = "neon,fp16")]
43982#[cfg_attr(
43983    not(target_arch = "arm"),
43984    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
43985)]
43986#[cfg_attr(
43987    target_arch = "arm",
43988    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43989)]
43990#[cfg(not(target_arch = "arm64ec"))]
43991pub fn vreinterpret_f16_s32(a: int32x2_t) -> float16x4_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/vreinterpret_f16_s32)"]
43996#[inline]
43997#[cfg(target_endian = "big")]
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#[target_feature(enable = "neon,fp16")]
44005#[cfg_attr(
44006    not(target_arch = "arm"),
44007    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
44008)]
44009#[cfg_attr(
44010    target_arch = "arm",
44011    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44012)]
44013#[cfg(not(target_arch = "arm64ec"))]
44014pub fn vreinterpret_f16_s32(a: int32x2_t) -> float16x4_t {
44015    let a: int32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
44016    unsafe {
44017        let ret_val: float16x4_t = transmute(a);
44018        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
44019    }
44020}
44021#[doc = "Vector reinterpret cast operation"]
44022#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_s32)"]
44023#[inline]
44024#[cfg(target_endian = "little")]
44025#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44026#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44027#[cfg_attr(
44028    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44029    assert_instr(nop)
44030)]
44031#[target_feature(enable = "neon,fp16")]
44032#[cfg_attr(
44033    not(target_arch = "arm"),
44034    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
44035)]
44036#[cfg_attr(
44037    target_arch = "arm",
44038    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44039)]
44040#[cfg(not(target_arch = "arm64ec"))]
44041pub fn vreinterpretq_f16_s32(a: int32x4_t) -> float16x8_t {
44042    unsafe { transmute(a) }
44043}
44044#[doc = "Vector reinterpret cast operation"]
44045#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_s32)"]
44046#[inline]
44047#[cfg(target_endian = "big")]
44048#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44049#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44050#[cfg_attr(
44051    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44052    assert_instr(nop)
44053)]
44054#[target_feature(enable = "neon,fp16")]
44055#[cfg_attr(
44056    not(target_arch = "arm"),
44057    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
44058)]
44059#[cfg_attr(
44060    target_arch = "arm",
44061    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44062)]
44063#[cfg(not(target_arch = "arm64ec"))]
44064pub fn vreinterpretq_f16_s32(a: int32x4_t) -> float16x8_t {
44065    let a: int32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
44066    unsafe {
44067        let ret_val: float16x8_t = transmute(a);
44068        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
44069    }
44070}
44071#[doc = "Vector reinterpret cast operation"]
44072#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_s64)"]
44073#[inline]
44074#[cfg(target_endian = "little")]
44075#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44076#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44077#[cfg_attr(
44078    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44079    assert_instr(nop)
44080)]
44081#[target_feature(enable = "neon,fp16")]
44082#[cfg_attr(
44083    not(target_arch = "arm"),
44084    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
44085)]
44086#[cfg_attr(
44087    target_arch = "arm",
44088    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44089)]
44090#[cfg(not(target_arch = "arm64ec"))]
44091pub fn vreinterpret_f16_s64(a: int64x1_t) -> float16x4_t {
44092    unsafe { transmute(a) }
44093}
44094#[doc = "Vector reinterpret cast operation"]
44095#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_s64)"]
44096#[inline]
44097#[cfg(target_endian = "big")]
44098#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44099#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44100#[cfg_attr(
44101    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44102    assert_instr(nop)
44103)]
44104#[target_feature(enable = "neon,fp16")]
44105#[cfg_attr(
44106    not(target_arch = "arm"),
44107    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
44108)]
44109#[cfg_attr(
44110    target_arch = "arm",
44111    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44112)]
44113#[cfg(not(target_arch = "arm64ec"))]
44114pub fn vreinterpret_f16_s64(a: int64x1_t) -> float16x4_t {
44115    unsafe {
44116        let ret_val: float16x4_t = transmute(a);
44117        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
44118    }
44119}
44120#[doc = "Vector reinterpret cast operation"]
44121#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_s64)"]
44122#[inline]
44123#[cfg(target_endian = "little")]
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#[target_feature(enable = "neon,fp16")]
44131#[cfg_attr(
44132    not(target_arch = "arm"),
44133    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
44134)]
44135#[cfg_attr(
44136    target_arch = "arm",
44137    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44138)]
44139#[cfg(not(target_arch = "arm64ec"))]
44140pub fn vreinterpretq_f16_s64(a: int64x2_t) -> float16x8_t {
44141    unsafe { transmute(a) }
44142}
44143#[doc = "Vector reinterpret cast operation"]
44144#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_s64)"]
44145#[inline]
44146#[cfg(target_endian = "big")]
44147#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44148#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44149#[cfg_attr(
44150    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44151    assert_instr(nop)
44152)]
44153#[target_feature(enable = "neon,fp16")]
44154#[cfg_attr(
44155    not(target_arch = "arm"),
44156    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
44157)]
44158#[cfg_attr(
44159    target_arch = "arm",
44160    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44161)]
44162#[cfg(not(target_arch = "arm64ec"))]
44163pub fn vreinterpretq_f16_s64(a: int64x2_t) -> float16x8_t {
44164    let a: int64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
44165    unsafe {
44166        let ret_val: float16x8_t = transmute(a);
44167        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
44168    }
44169}
44170#[doc = "Vector reinterpret cast operation"]
44171#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_u8)"]
44172#[inline]
44173#[cfg(target_endian = "little")]
44174#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44175#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44176#[cfg_attr(
44177    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44178    assert_instr(nop)
44179)]
44180#[target_feature(enable = "neon,fp16")]
44181#[cfg_attr(
44182    not(target_arch = "arm"),
44183    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
44184)]
44185#[cfg_attr(
44186    target_arch = "arm",
44187    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44188)]
44189#[cfg(not(target_arch = "arm64ec"))]
44190pub fn vreinterpret_f16_u8(a: uint8x8_t) -> float16x4_t {
44191    unsafe { transmute(a) }
44192}
44193#[doc = "Vector reinterpret cast operation"]
44194#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_u8)"]
44195#[inline]
44196#[cfg(target_endian = "big")]
44197#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44198#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44199#[cfg_attr(
44200    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44201    assert_instr(nop)
44202)]
44203#[target_feature(enable = "neon,fp16")]
44204#[cfg_attr(
44205    not(target_arch = "arm"),
44206    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
44207)]
44208#[cfg_attr(
44209    target_arch = "arm",
44210    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44211)]
44212#[cfg(not(target_arch = "arm64ec"))]
44213pub fn vreinterpret_f16_u8(a: uint8x8_t) -> float16x4_t {
44214    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
44215    unsafe {
44216        let ret_val: float16x4_t = transmute(a);
44217        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
44218    }
44219}
44220#[doc = "Vector reinterpret cast operation"]
44221#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_u8)"]
44222#[inline]
44223#[cfg(target_endian = "little")]
44224#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44225#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44226#[cfg_attr(
44227    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44228    assert_instr(nop)
44229)]
44230#[target_feature(enable = "neon,fp16")]
44231#[cfg_attr(
44232    not(target_arch = "arm"),
44233    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
44234)]
44235#[cfg_attr(
44236    target_arch = "arm",
44237    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44238)]
44239#[cfg(not(target_arch = "arm64ec"))]
44240pub fn vreinterpretq_f16_u8(a: uint8x16_t) -> float16x8_t {
44241    unsafe { transmute(a) }
44242}
44243#[doc = "Vector reinterpret cast operation"]
44244#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_u8)"]
44245#[inline]
44246#[cfg(target_endian = "big")]
44247#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44248#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44249#[cfg_attr(
44250    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44251    assert_instr(nop)
44252)]
44253#[target_feature(enable = "neon,fp16")]
44254#[cfg_attr(
44255    not(target_arch = "arm"),
44256    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
44257)]
44258#[cfg_attr(
44259    target_arch = "arm",
44260    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44261)]
44262#[cfg(not(target_arch = "arm64ec"))]
44263pub fn vreinterpretq_f16_u8(a: uint8x16_t) -> float16x8_t {
44264    let a: uint8x16_t =
44265        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
44266    unsafe {
44267        let ret_val: float16x8_t = transmute(a);
44268        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
44269    }
44270}
44271#[doc = "Vector reinterpret cast operation"]
44272#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_u16)"]
44273#[inline]
44274#[cfg(target_endian = "little")]
44275#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44276#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44277#[cfg_attr(
44278    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44279    assert_instr(nop)
44280)]
44281#[target_feature(enable = "neon,fp16")]
44282#[cfg_attr(
44283    not(target_arch = "arm"),
44284    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
44285)]
44286#[cfg_attr(
44287    target_arch = "arm",
44288    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44289)]
44290#[cfg(not(target_arch = "arm64ec"))]
44291pub fn vreinterpret_f16_u16(a: uint16x4_t) -> float16x4_t {
44292    unsafe { transmute(a) }
44293}
44294#[doc = "Vector reinterpret cast operation"]
44295#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_u16)"]
44296#[inline]
44297#[cfg(target_endian = "big")]
44298#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44299#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44300#[cfg_attr(
44301    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44302    assert_instr(nop)
44303)]
44304#[target_feature(enable = "neon,fp16")]
44305#[cfg_attr(
44306    not(target_arch = "arm"),
44307    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
44308)]
44309#[cfg_attr(
44310    target_arch = "arm",
44311    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44312)]
44313#[cfg(not(target_arch = "arm64ec"))]
44314pub fn vreinterpret_f16_u16(a: uint16x4_t) -> float16x4_t {
44315    let a: uint16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
44316    unsafe {
44317        let ret_val: float16x4_t = transmute(a);
44318        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
44319    }
44320}
44321#[doc = "Vector reinterpret cast operation"]
44322#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_u16)"]
44323#[inline]
44324#[cfg(target_endian = "little")]
44325#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44326#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44327#[cfg_attr(
44328    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44329    assert_instr(nop)
44330)]
44331#[target_feature(enable = "neon,fp16")]
44332#[cfg_attr(
44333    not(target_arch = "arm"),
44334    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
44335)]
44336#[cfg_attr(
44337    target_arch = "arm",
44338    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44339)]
44340#[cfg(not(target_arch = "arm64ec"))]
44341pub fn vreinterpretq_f16_u16(a: uint16x8_t) -> float16x8_t {
44342    unsafe { transmute(a) }
44343}
44344#[doc = "Vector reinterpret cast operation"]
44345#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_u16)"]
44346#[inline]
44347#[cfg(target_endian = "big")]
44348#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44349#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44350#[cfg_attr(
44351    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44352    assert_instr(nop)
44353)]
44354#[target_feature(enable = "neon,fp16")]
44355#[cfg_attr(
44356    not(target_arch = "arm"),
44357    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
44358)]
44359#[cfg_attr(
44360    target_arch = "arm",
44361    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44362)]
44363#[cfg(not(target_arch = "arm64ec"))]
44364pub fn vreinterpretq_f16_u16(a: uint16x8_t) -> float16x8_t {
44365    let a: uint16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
44366    unsafe {
44367        let ret_val: float16x8_t = transmute(a);
44368        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
44369    }
44370}
44371#[doc = "Vector reinterpret cast operation"]
44372#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_u32)"]
44373#[inline]
44374#[cfg(target_endian = "little")]
44375#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44376#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44377#[cfg_attr(
44378    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44379    assert_instr(nop)
44380)]
44381#[target_feature(enable = "neon,fp16")]
44382#[cfg_attr(
44383    not(target_arch = "arm"),
44384    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
44385)]
44386#[cfg_attr(
44387    target_arch = "arm",
44388    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44389)]
44390#[cfg(not(target_arch = "arm64ec"))]
44391pub fn vreinterpret_f16_u32(a: uint32x2_t) -> float16x4_t {
44392    unsafe { transmute(a) }
44393}
44394#[doc = "Vector reinterpret cast operation"]
44395#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_u32)"]
44396#[inline]
44397#[cfg(target_endian = "big")]
44398#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44399#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44400#[cfg_attr(
44401    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44402    assert_instr(nop)
44403)]
44404#[target_feature(enable = "neon,fp16")]
44405#[cfg_attr(
44406    not(target_arch = "arm"),
44407    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
44408)]
44409#[cfg_attr(
44410    target_arch = "arm",
44411    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44412)]
44413#[cfg(not(target_arch = "arm64ec"))]
44414pub fn vreinterpret_f16_u32(a: uint32x2_t) -> float16x4_t {
44415    let a: uint32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
44416    unsafe {
44417        let ret_val: float16x4_t = transmute(a);
44418        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
44419    }
44420}
44421#[doc = "Vector reinterpret cast operation"]
44422#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_u32)"]
44423#[inline]
44424#[cfg(target_endian = "little")]
44425#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44426#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44427#[cfg_attr(
44428    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44429    assert_instr(nop)
44430)]
44431#[target_feature(enable = "neon,fp16")]
44432#[cfg_attr(
44433    not(target_arch = "arm"),
44434    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
44435)]
44436#[cfg_attr(
44437    target_arch = "arm",
44438    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44439)]
44440#[cfg(not(target_arch = "arm64ec"))]
44441pub fn vreinterpretq_f16_u32(a: uint32x4_t) -> float16x8_t {
44442    unsafe { transmute(a) }
44443}
44444#[doc = "Vector reinterpret cast operation"]
44445#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_u32)"]
44446#[inline]
44447#[cfg(target_endian = "big")]
44448#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44449#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44450#[cfg_attr(
44451    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44452    assert_instr(nop)
44453)]
44454#[target_feature(enable = "neon,fp16")]
44455#[cfg_attr(
44456    not(target_arch = "arm"),
44457    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
44458)]
44459#[cfg_attr(
44460    target_arch = "arm",
44461    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44462)]
44463#[cfg(not(target_arch = "arm64ec"))]
44464pub fn vreinterpretq_f16_u32(a: uint32x4_t) -> float16x8_t {
44465    let a: uint32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
44466    unsafe {
44467        let ret_val: float16x8_t = transmute(a);
44468        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
44469    }
44470}
44471#[doc = "Vector reinterpret cast operation"]
44472#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_u64)"]
44473#[inline]
44474#[cfg(target_endian = "little")]
44475#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44476#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44477#[cfg_attr(
44478    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44479    assert_instr(nop)
44480)]
44481#[target_feature(enable = "neon,fp16")]
44482#[cfg_attr(
44483    not(target_arch = "arm"),
44484    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
44485)]
44486#[cfg_attr(
44487    target_arch = "arm",
44488    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44489)]
44490#[cfg(not(target_arch = "arm64ec"))]
44491pub fn vreinterpret_f16_u64(a: uint64x1_t) -> float16x4_t {
44492    unsafe { transmute(a) }
44493}
44494#[doc = "Vector reinterpret cast operation"]
44495#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_u64)"]
44496#[inline]
44497#[cfg(target_endian = "big")]
44498#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44499#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44500#[cfg_attr(
44501    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44502    assert_instr(nop)
44503)]
44504#[target_feature(enable = "neon,fp16")]
44505#[cfg_attr(
44506    not(target_arch = "arm"),
44507    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
44508)]
44509#[cfg_attr(
44510    target_arch = "arm",
44511    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44512)]
44513#[cfg(not(target_arch = "arm64ec"))]
44514pub fn vreinterpret_f16_u64(a: uint64x1_t) -> float16x4_t {
44515    unsafe {
44516        let ret_val: float16x4_t = transmute(a);
44517        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
44518    }
44519}
44520#[doc = "Vector reinterpret cast operation"]
44521#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_u64)"]
44522#[inline]
44523#[cfg(target_endian = "little")]
44524#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44525#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44526#[cfg_attr(
44527    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44528    assert_instr(nop)
44529)]
44530#[target_feature(enable = "neon,fp16")]
44531#[cfg_attr(
44532    not(target_arch = "arm"),
44533    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
44534)]
44535#[cfg_attr(
44536    target_arch = "arm",
44537    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44538)]
44539#[cfg(not(target_arch = "arm64ec"))]
44540pub fn vreinterpretq_f16_u64(a: uint64x2_t) -> float16x8_t {
44541    unsafe { transmute(a) }
44542}
44543#[doc = "Vector reinterpret cast operation"]
44544#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_u64)"]
44545#[inline]
44546#[cfg(target_endian = "big")]
44547#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44548#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44549#[cfg_attr(
44550    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44551    assert_instr(nop)
44552)]
44553#[target_feature(enable = "neon,fp16")]
44554#[cfg_attr(
44555    not(target_arch = "arm"),
44556    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
44557)]
44558#[cfg_attr(
44559    target_arch = "arm",
44560    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44561)]
44562#[cfg(not(target_arch = "arm64ec"))]
44563pub fn vreinterpretq_f16_u64(a: uint64x2_t) -> float16x8_t {
44564    let a: uint64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
44565    unsafe {
44566        let ret_val: float16x8_t = transmute(a);
44567        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
44568    }
44569}
44570#[doc = "Vector reinterpret cast operation"]
44571#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_p8)"]
44572#[inline]
44573#[cfg(target_endian = "little")]
44574#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44575#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44576#[cfg_attr(
44577    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44578    assert_instr(nop)
44579)]
44580#[target_feature(enable = "neon,fp16")]
44581#[cfg_attr(
44582    not(target_arch = "arm"),
44583    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
44584)]
44585#[cfg_attr(
44586    target_arch = "arm",
44587    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44588)]
44589#[cfg(not(target_arch = "arm64ec"))]
44590pub fn vreinterpret_f16_p8(a: poly8x8_t) -> float16x4_t {
44591    unsafe { transmute(a) }
44592}
44593#[doc = "Vector reinterpret cast operation"]
44594#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_p8)"]
44595#[inline]
44596#[cfg(target_endian = "big")]
44597#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44598#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44599#[cfg_attr(
44600    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44601    assert_instr(nop)
44602)]
44603#[target_feature(enable = "neon,fp16")]
44604#[cfg_attr(
44605    not(target_arch = "arm"),
44606    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
44607)]
44608#[cfg_attr(
44609    target_arch = "arm",
44610    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44611)]
44612#[cfg(not(target_arch = "arm64ec"))]
44613pub fn vreinterpret_f16_p8(a: poly8x8_t) -> float16x4_t {
44614    let a: poly8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
44615    unsafe {
44616        let ret_val: float16x4_t = transmute(a);
44617        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
44618    }
44619}
44620#[doc = "Vector reinterpret cast operation"]
44621#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_p8)"]
44622#[inline]
44623#[cfg(target_endian = "little")]
44624#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44625#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44626#[cfg_attr(
44627    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44628    assert_instr(nop)
44629)]
44630#[target_feature(enable = "neon,fp16")]
44631#[cfg_attr(
44632    not(target_arch = "arm"),
44633    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
44634)]
44635#[cfg_attr(
44636    target_arch = "arm",
44637    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44638)]
44639#[cfg(not(target_arch = "arm64ec"))]
44640pub fn vreinterpretq_f16_p8(a: poly8x16_t) -> float16x8_t {
44641    unsafe { transmute(a) }
44642}
44643#[doc = "Vector reinterpret cast operation"]
44644#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_p8)"]
44645#[inline]
44646#[cfg(target_endian = "big")]
44647#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44648#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44649#[cfg_attr(
44650    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44651    assert_instr(nop)
44652)]
44653#[target_feature(enable = "neon,fp16")]
44654#[cfg_attr(
44655    not(target_arch = "arm"),
44656    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
44657)]
44658#[cfg_attr(
44659    target_arch = "arm",
44660    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44661)]
44662#[cfg(not(target_arch = "arm64ec"))]
44663pub fn vreinterpretq_f16_p8(a: poly8x16_t) -> float16x8_t {
44664    let a: poly8x16_t =
44665        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
44666    unsafe {
44667        let ret_val: float16x8_t = transmute(a);
44668        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
44669    }
44670}
44671#[doc = "Vector reinterpret cast operation"]
44672#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_p16)"]
44673#[inline]
44674#[cfg(target_endian = "little")]
44675#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44676#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44677#[cfg_attr(
44678    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44679    assert_instr(nop)
44680)]
44681#[target_feature(enable = "neon,fp16")]
44682#[cfg_attr(
44683    not(target_arch = "arm"),
44684    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
44685)]
44686#[cfg_attr(
44687    target_arch = "arm",
44688    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44689)]
44690#[cfg(not(target_arch = "arm64ec"))]
44691pub fn vreinterpret_f16_p16(a: poly16x4_t) -> float16x4_t {
44692    unsafe { transmute(a) }
44693}
44694#[doc = "Vector reinterpret cast operation"]
44695#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_p16)"]
44696#[inline]
44697#[cfg(target_endian = "big")]
44698#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44699#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44700#[cfg_attr(
44701    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44702    assert_instr(nop)
44703)]
44704#[target_feature(enable = "neon,fp16")]
44705#[cfg_attr(
44706    not(target_arch = "arm"),
44707    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
44708)]
44709#[cfg_attr(
44710    target_arch = "arm",
44711    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44712)]
44713#[cfg(not(target_arch = "arm64ec"))]
44714pub fn vreinterpret_f16_p16(a: poly16x4_t) -> float16x4_t {
44715    let a: poly16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
44716    unsafe {
44717        let ret_val: float16x4_t = transmute(a);
44718        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
44719    }
44720}
44721#[doc = "Vector reinterpret cast operation"]
44722#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_p16)"]
44723#[inline]
44724#[cfg(target_endian = "little")]
44725#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44726#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44727#[cfg_attr(
44728    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44729    assert_instr(nop)
44730)]
44731#[target_feature(enable = "neon,fp16")]
44732#[cfg_attr(
44733    not(target_arch = "arm"),
44734    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
44735)]
44736#[cfg_attr(
44737    target_arch = "arm",
44738    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44739)]
44740#[cfg(not(target_arch = "arm64ec"))]
44741pub fn vreinterpretq_f16_p16(a: poly16x8_t) -> float16x8_t {
44742    unsafe { transmute(a) }
44743}
44744#[doc = "Vector reinterpret cast operation"]
44745#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_p16)"]
44746#[inline]
44747#[cfg(target_endian = "big")]
44748#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44749#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44750#[cfg_attr(
44751    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44752    assert_instr(nop)
44753)]
44754#[target_feature(enable = "neon,fp16")]
44755#[cfg_attr(
44756    not(target_arch = "arm"),
44757    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
44758)]
44759#[cfg_attr(
44760    target_arch = "arm",
44761    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44762)]
44763#[cfg(not(target_arch = "arm64ec"))]
44764pub fn vreinterpretq_f16_p16(a: poly16x8_t) -> float16x8_t {
44765    let a: poly16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
44766    unsafe {
44767        let ret_val: float16x8_t = transmute(a);
44768        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
44769    }
44770}
44771#[doc = "Vector reinterpret cast operation"]
44772#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_p128)"]
44773#[inline]
44774#[cfg(target_endian = "little")]
44775#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
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#[target_feature(enable = "neon,fp16")]
44782#[cfg_attr(
44783    not(target_arch = "arm"),
44784    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
44785)]
44786#[cfg_attr(
44787    target_arch = "arm",
44788    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44789)]
44790#[cfg(not(target_arch = "arm64ec"))]
44791pub fn vreinterpretq_f16_p128(a: p128) -> float16x8_t {
44792    unsafe { transmute(a) }
44793}
44794#[doc = "Vector reinterpret cast operation"]
44795#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_p128)"]
44796#[inline]
44797#[cfg(target_endian = "big")]
44798#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
44799#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44800#[cfg_attr(
44801    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44802    assert_instr(nop)
44803)]
44804#[target_feature(enable = "neon,fp16")]
44805#[cfg_attr(
44806    not(target_arch = "arm"),
44807    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
44808)]
44809#[cfg_attr(
44810    target_arch = "arm",
44811    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44812)]
44813#[cfg(not(target_arch = "arm64ec"))]
44814pub fn vreinterpretq_f16_p128(a: p128) -> float16x8_t {
44815    unsafe {
44816        let ret_val: float16x8_t = transmute(a);
44817        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
44818    }
44819}
44820#[doc = "Vector reinterpret cast operation"]
44821#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_f16)"]
44822#[inline]
44823#[cfg(target_endian = "little")]
44824#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
44825#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44826#[cfg_attr(
44827    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44828    assert_instr(nop)
44829)]
44830#[target_feature(enable = "neon,fp16")]
44831#[cfg_attr(
44832    not(target_arch = "arm"),
44833    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
44834)]
44835#[cfg_attr(
44836    target_arch = "arm",
44837    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44838)]
44839#[cfg(not(target_arch = "arm64ec"))]
44840pub fn vreinterpret_p64_f16(a: float16x4_t) -> poly64x1_t {
44841    unsafe { transmute(a) }
44842}
44843#[doc = "Vector reinterpret cast operation"]
44844#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_f16)"]
44845#[inline]
44846#[cfg(target_endian = "big")]
44847#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
44848#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44849#[cfg_attr(
44850    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44851    assert_instr(nop)
44852)]
44853#[target_feature(enable = "neon,fp16")]
44854#[cfg_attr(
44855    not(target_arch = "arm"),
44856    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
44857)]
44858#[cfg_attr(
44859    target_arch = "arm",
44860    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44861)]
44862#[cfg(not(target_arch = "arm64ec"))]
44863pub fn vreinterpret_p64_f16(a: float16x4_t) -> poly64x1_t {
44864    let a: float16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
44865    unsafe { transmute(a) }
44866}
44867#[doc = "Vector reinterpret cast operation"]
44868#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_f16)"]
44869#[inline]
44870#[cfg(target_endian = "little")]
44871#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
44872#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44873#[cfg_attr(
44874    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44875    assert_instr(nop)
44876)]
44877#[target_feature(enable = "neon,fp16")]
44878#[cfg_attr(
44879    not(target_arch = "arm"),
44880    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
44881)]
44882#[cfg_attr(
44883    target_arch = "arm",
44884    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44885)]
44886#[cfg(not(target_arch = "arm64ec"))]
44887pub fn vreinterpretq_p128_f16(a: float16x8_t) -> p128 {
44888    unsafe { transmute(a) }
44889}
44890#[doc = "Vector reinterpret cast operation"]
44891#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_f16)"]
44892#[inline]
44893#[cfg(target_endian = "big")]
44894#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
44895#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44896#[cfg_attr(
44897    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44898    assert_instr(nop)
44899)]
44900#[target_feature(enable = "neon,fp16")]
44901#[cfg_attr(
44902    not(target_arch = "arm"),
44903    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
44904)]
44905#[cfg_attr(
44906    target_arch = "arm",
44907    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44908)]
44909#[cfg(not(target_arch = "arm64ec"))]
44910pub fn vreinterpretq_p128_f16(a: float16x8_t) -> p128 {
44911    let a: float16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
44912    unsafe { transmute(a) }
44913}
44914#[doc = "Vector reinterpret cast operation"]
44915#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_f16)"]
44916#[inline]
44917#[cfg(target_endian = "little")]
44918#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
44919#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44920#[cfg_attr(
44921    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44922    assert_instr(nop)
44923)]
44924#[target_feature(enable = "neon,fp16")]
44925#[cfg_attr(
44926    not(target_arch = "arm"),
44927    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
44928)]
44929#[cfg_attr(
44930    target_arch = "arm",
44931    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44932)]
44933#[cfg(not(target_arch = "arm64ec"))]
44934pub fn vreinterpretq_p64_f16(a: float16x8_t) -> poly64x2_t {
44935    unsafe { transmute(a) }
44936}
44937#[doc = "Vector reinterpret cast operation"]
44938#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_f16)"]
44939#[inline]
44940#[cfg(target_endian = "big")]
44941#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
44942#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44943#[cfg_attr(
44944    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44945    assert_instr(nop)
44946)]
44947#[target_feature(enable = "neon,fp16")]
44948#[cfg_attr(
44949    not(target_arch = "arm"),
44950    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
44951)]
44952#[cfg_attr(
44953    target_arch = "arm",
44954    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44955)]
44956#[cfg(not(target_arch = "arm64ec"))]
44957pub fn vreinterpretq_p64_f16(a: float16x8_t) -> poly64x2_t {
44958    let a: float16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
44959    unsafe {
44960        let ret_val: poly64x2_t = transmute(a);
44961        simd_shuffle!(ret_val, ret_val, [1, 0])
44962    }
44963}
44964#[doc = "Vector reinterpret cast operation"]
44965#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_p64)"]
44966#[inline]
44967#[cfg(target_endian = "little")]
44968#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
44969#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44970#[cfg_attr(
44971    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44972    assert_instr(nop)
44973)]
44974#[target_feature(enable = "neon,fp16")]
44975#[cfg_attr(
44976    not(target_arch = "arm"),
44977    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
44978)]
44979#[cfg_attr(
44980    target_arch = "arm",
44981    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44982)]
44983#[cfg(not(target_arch = "arm64ec"))]
44984pub fn vreinterpret_f16_p64(a: poly64x1_t) -> float16x4_t {
44985    unsafe { transmute(a) }
44986}
44987#[doc = "Vector reinterpret cast operation"]
44988#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_p64)"]
44989#[inline]
44990#[cfg(target_endian = "big")]
44991#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
44992#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44993#[cfg_attr(
44994    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44995    assert_instr(nop)
44996)]
44997#[target_feature(enable = "neon,fp16")]
44998#[cfg_attr(
44999    not(target_arch = "arm"),
45000    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
45001)]
45002#[cfg_attr(
45003    target_arch = "arm",
45004    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45005)]
45006#[cfg(not(target_arch = "arm64ec"))]
45007pub fn vreinterpret_f16_p64(a: poly64x1_t) -> float16x4_t {
45008    unsafe {
45009        let ret_val: float16x4_t = transmute(a);
45010        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
45011    }
45012}
45013#[doc = "Vector reinterpret cast operation"]
45014#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_p64)"]
45015#[inline]
45016#[cfg(target_endian = "little")]
45017#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
45018#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45019#[cfg_attr(
45020    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45021    assert_instr(nop)
45022)]
45023#[target_feature(enable = "neon,fp16")]
45024#[cfg_attr(
45025    not(target_arch = "arm"),
45026    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
45027)]
45028#[cfg_attr(
45029    target_arch = "arm",
45030    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45031)]
45032#[cfg(not(target_arch = "arm64ec"))]
45033pub fn vreinterpretq_f16_p64(a: poly64x2_t) -> float16x8_t {
45034    unsafe { transmute(a) }
45035}
45036#[doc = "Vector reinterpret cast operation"]
45037#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_p64)"]
45038#[inline]
45039#[cfg(target_endian = "big")]
45040#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
45041#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45042#[cfg_attr(
45043    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45044    assert_instr(nop)
45045)]
45046#[target_feature(enable = "neon,fp16")]
45047#[cfg_attr(
45048    not(target_arch = "arm"),
45049    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
45050)]
45051#[cfg_attr(
45052    target_arch = "arm",
45053    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45054)]
45055#[cfg(not(target_arch = "arm64ec"))]
45056pub fn vreinterpretq_f16_p64(a: poly64x2_t) -> float16x8_t {
45057    let a: poly64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
45058    unsafe {
45059        let ret_val: float16x8_t = transmute(a);
45060        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
45061    }
45062}
45063#[doc = "Vector reinterpret cast operation"]
45064#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_p128)"]
45065#[inline]
45066#[cfg(target_endian = "little")]
45067#[target_feature(enable = "neon")]
45068#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45069#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45070#[cfg_attr(
45071    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45072    assert_instr(nop)
45073)]
45074#[cfg_attr(
45075    not(target_arch = "arm"),
45076    stable(feature = "neon_intrinsics", since = "1.59.0")
45077)]
45078#[cfg_attr(
45079    target_arch = "arm",
45080    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45081)]
45082pub fn vreinterpretq_f32_p128(a: p128) -> float32x4_t {
45083    unsafe { transmute(a) }
45084}
45085#[doc = "Vector reinterpret cast operation"]
45086#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_p128)"]
45087#[inline]
45088#[cfg(target_endian = "big")]
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 vreinterpretq_f32_p128(a: p128) -> float32x4_t {
45105    unsafe {
45106        let ret_val: float32x4_t = transmute(a);
45107        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
45108    }
45109}
45110#[doc = "Vector reinterpret cast operation"]
45111#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_f32)"]
45112#[inline]
45113#[cfg(target_endian = "little")]
45114#[target_feature(enable = "neon")]
45115#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45116#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45117#[cfg_attr(
45118    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45119    assert_instr(nop)
45120)]
45121#[cfg_attr(
45122    not(target_arch = "arm"),
45123    stable(feature = "neon_intrinsics", since = "1.59.0")
45124)]
45125#[cfg_attr(
45126    target_arch = "arm",
45127    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45128)]
45129pub fn vreinterpret_s8_f32(a: float32x2_t) -> int8x8_t {
45130    unsafe { transmute(a) }
45131}
45132#[doc = "Vector reinterpret cast operation"]
45133#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_f32)"]
45134#[inline]
45135#[cfg(target_endian = "big")]
45136#[target_feature(enable = "neon")]
45137#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45138#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45139#[cfg_attr(
45140    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45141    assert_instr(nop)
45142)]
45143#[cfg_attr(
45144    not(target_arch = "arm"),
45145    stable(feature = "neon_intrinsics", since = "1.59.0")
45146)]
45147#[cfg_attr(
45148    target_arch = "arm",
45149    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45150)]
45151pub fn vreinterpret_s8_f32(a: float32x2_t) -> int8x8_t {
45152    let a: float32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
45153    unsafe {
45154        let ret_val: int8x8_t = transmute(a);
45155        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
45156    }
45157}
45158#[doc = "Vector reinterpret cast operation"]
45159#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_f32)"]
45160#[inline]
45161#[cfg(target_endian = "little")]
45162#[target_feature(enable = "neon")]
45163#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45164#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45165#[cfg_attr(
45166    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45167    assert_instr(nop)
45168)]
45169#[cfg_attr(
45170    not(target_arch = "arm"),
45171    stable(feature = "neon_intrinsics", since = "1.59.0")
45172)]
45173#[cfg_attr(
45174    target_arch = "arm",
45175    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45176)]
45177pub fn vreinterpret_s16_f32(a: float32x2_t) -> int16x4_t {
45178    unsafe { transmute(a) }
45179}
45180#[doc = "Vector reinterpret cast operation"]
45181#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_f32)"]
45182#[inline]
45183#[cfg(target_endian = "big")]
45184#[target_feature(enable = "neon")]
45185#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45186#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45187#[cfg_attr(
45188    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45189    assert_instr(nop)
45190)]
45191#[cfg_attr(
45192    not(target_arch = "arm"),
45193    stable(feature = "neon_intrinsics", since = "1.59.0")
45194)]
45195#[cfg_attr(
45196    target_arch = "arm",
45197    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45198)]
45199pub fn vreinterpret_s16_f32(a: float32x2_t) -> int16x4_t {
45200    let a: float32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
45201    unsafe {
45202        let ret_val: int16x4_t = transmute(a);
45203        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
45204    }
45205}
45206#[doc = "Vector reinterpret cast operation"]
45207#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_f32)"]
45208#[inline]
45209#[cfg(target_endian = "little")]
45210#[target_feature(enable = "neon")]
45211#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45212#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45213#[cfg_attr(
45214    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45215    assert_instr(nop)
45216)]
45217#[cfg_attr(
45218    not(target_arch = "arm"),
45219    stable(feature = "neon_intrinsics", since = "1.59.0")
45220)]
45221#[cfg_attr(
45222    target_arch = "arm",
45223    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45224)]
45225pub fn vreinterpret_s32_f32(a: float32x2_t) -> int32x2_t {
45226    unsafe { transmute(a) }
45227}
45228#[doc = "Vector reinterpret cast operation"]
45229#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_f32)"]
45230#[inline]
45231#[cfg(target_endian = "big")]
45232#[target_feature(enable = "neon")]
45233#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45234#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45235#[cfg_attr(
45236    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45237    assert_instr(nop)
45238)]
45239#[cfg_attr(
45240    not(target_arch = "arm"),
45241    stable(feature = "neon_intrinsics", since = "1.59.0")
45242)]
45243#[cfg_attr(
45244    target_arch = "arm",
45245    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45246)]
45247pub fn vreinterpret_s32_f32(a: float32x2_t) -> int32x2_t {
45248    let a: float32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
45249    unsafe {
45250        let ret_val: int32x2_t = transmute(a);
45251        simd_shuffle!(ret_val, ret_val, [1, 0])
45252    }
45253}
45254#[doc = "Vector reinterpret cast operation"]
45255#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_f32)"]
45256#[inline]
45257#[cfg(target_endian = "little")]
45258#[target_feature(enable = "neon")]
45259#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45260#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45261#[cfg_attr(
45262    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45263    assert_instr(nop)
45264)]
45265#[cfg_attr(
45266    not(target_arch = "arm"),
45267    stable(feature = "neon_intrinsics", since = "1.59.0")
45268)]
45269#[cfg_attr(
45270    target_arch = "arm",
45271    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45272)]
45273pub fn vreinterpret_s64_f32(a: float32x2_t) -> int64x1_t {
45274    unsafe { transmute(a) }
45275}
45276#[doc = "Vector reinterpret cast operation"]
45277#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_f32)"]
45278#[inline]
45279#[cfg(target_endian = "big")]
45280#[target_feature(enable = "neon")]
45281#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45282#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45283#[cfg_attr(
45284    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45285    assert_instr(nop)
45286)]
45287#[cfg_attr(
45288    not(target_arch = "arm"),
45289    stable(feature = "neon_intrinsics", since = "1.59.0")
45290)]
45291#[cfg_attr(
45292    target_arch = "arm",
45293    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45294)]
45295pub fn vreinterpret_s64_f32(a: float32x2_t) -> int64x1_t {
45296    let a: float32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
45297    unsafe { transmute(a) }
45298}
45299#[doc = "Vector reinterpret cast operation"]
45300#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_f32)"]
45301#[inline]
45302#[cfg(target_endian = "little")]
45303#[target_feature(enable = "neon")]
45304#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45305#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45306#[cfg_attr(
45307    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45308    assert_instr(nop)
45309)]
45310#[cfg_attr(
45311    not(target_arch = "arm"),
45312    stable(feature = "neon_intrinsics", since = "1.59.0")
45313)]
45314#[cfg_attr(
45315    target_arch = "arm",
45316    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45317)]
45318pub fn vreinterpret_u8_f32(a: float32x2_t) -> uint8x8_t {
45319    unsafe { transmute(a) }
45320}
45321#[doc = "Vector reinterpret cast operation"]
45322#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_f32)"]
45323#[inline]
45324#[cfg(target_endian = "big")]
45325#[target_feature(enable = "neon")]
45326#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45327#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45328#[cfg_attr(
45329    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45330    assert_instr(nop)
45331)]
45332#[cfg_attr(
45333    not(target_arch = "arm"),
45334    stable(feature = "neon_intrinsics", since = "1.59.0")
45335)]
45336#[cfg_attr(
45337    target_arch = "arm",
45338    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45339)]
45340pub fn vreinterpret_u8_f32(a: float32x2_t) -> uint8x8_t {
45341    let a: float32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
45342    unsafe {
45343        let ret_val: uint8x8_t = transmute(a);
45344        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
45345    }
45346}
45347#[doc = "Vector reinterpret cast operation"]
45348#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_f32)"]
45349#[inline]
45350#[cfg(target_endian = "little")]
45351#[target_feature(enable = "neon")]
45352#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45353#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45354#[cfg_attr(
45355    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45356    assert_instr(nop)
45357)]
45358#[cfg_attr(
45359    not(target_arch = "arm"),
45360    stable(feature = "neon_intrinsics", since = "1.59.0")
45361)]
45362#[cfg_attr(
45363    target_arch = "arm",
45364    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45365)]
45366pub fn vreinterpret_u16_f32(a: float32x2_t) -> uint16x4_t {
45367    unsafe { transmute(a) }
45368}
45369#[doc = "Vector reinterpret cast operation"]
45370#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_f32)"]
45371#[inline]
45372#[cfg(target_endian = "big")]
45373#[target_feature(enable = "neon")]
45374#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45375#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45376#[cfg_attr(
45377    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45378    assert_instr(nop)
45379)]
45380#[cfg_attr(
45381    not(target_arch = "arm"),
45382    stable(feature = "neon_intrinsics", since = "1.59.0")
45383)]
45384#[cfg_attr(
45385    target_arch = "arm",
45386    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45387)]
45388pub fn vreinterpret_u16_f32(a: float32x2_t) -> uint16x4_t {
45389    let a: float32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
45390    unsafe {
45391        let ret_val: uint16x4_t = transmute(a);
45392        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
45393    }
45394}
45395#[doc = "Vector reinterpret cast operation"]
45396#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_f32)"]
45397#[inline]
45398#[cfg(target_endian = "little")]
45399#[target_feature(enable = "neon")]
45400#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45401#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45402#[cfg_attr(
45403    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45404    assert_instr(nop)
45405)]
45406#[cfg_attr(
45407    not(target_arch = "arm"),
45408    stable(feature = "neon_intrinsics", since = "1.59.0")
45409)]
45410#[cfg_attr(
45411    target_arch = "arm",
45412    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45413)]
45414pub fn vreinterpret_u32_f32(a: float32x2_t) -> uint32x2_t {
45415    unsafe { transmute(a) }
45416}
45417#[doc = "Vector reinterpret cast operation"]
45418#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_f32)"]
45419#[inline]
45420#[cfg(target_endian = "big")]
45421#[target_feature(enable = "neon")]
45422#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45423#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45424#[cfg_attr(
45425    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45426    assert_instr(nop)
45427)]
45428#[cfg_attr(
45429    not(target_arch = "arm"),
45430    stable(feature = "neon_intrinsics", since = "1.59.0")
45431)]
45432#[cfg_attr(
45433    target_arch = "arm",
45434    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45435)]
45436pub fn vreinterpret_u32_f32(a: float32x2_t) -> uint32x2_t {
45437    let a: float32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
45438    unsafe {
45439        let ret_val: uint32x2_t = transmute(a);
45440        simd_shuffle!(ret_val, ret_val, [1, 0])
45441    }
45442}
45443#[doc = "Vector reinterpret cast operation"]
45444#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_f32)"]
45445#[inline]
45446#[cfg(target_endian = "little")]
45447#[target_feature(enable = "neon")]
45448#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45449#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45450#[cfg_attr(
45451    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45452    assert_instr(nop)
45453)]
45454#[cfg_attr(
45455    not(target_arch = "arm"),
45456    stable(feature = "neon_intrinsics", since = "1.59.0")
45457)]
45458#[cfg_attr(
45459    target_arch = "arm",
45460    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45461)]
45462pub fn vreinterpret_u64_f32(a: float32x2_t) -> uint64x1_t {
45463    unsafe { transmute(a) }
45464}
45465#[doc = "Vector reinterpret cast operation"]
45466#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_f32)"]
45467#[inline]
45468#[cfg(target_endian = "big")]
45469#[target_feature(enable = "neon")]
45470#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45471#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45472#[cfg_attr(
45473    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45474    assert_instr(nop)
45475)]
45476#[cfg_attr(
45477    not(target_arch = "arm"),
45478    stable(feature = "neon_intrinsics", since = "1.59.0")
45479)]
45480#[cfg_attr(
45481    target_arch = "arm",
45482    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45483)]
45484pub fn vreinterpret_u64_f32(a: float32x2_t) -> uint64x1_t {
45485    let a: float32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
45486    unsafe { transmute(a) }
45487}
45488#[doc = "Vector reinterpret cast operation"]
45489#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_f32)"]
45490#[inline]
45491#[cfg(target_endian = "little")]
45492#[target_feature(enable = "neon")]
45493#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45494#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45495#[cfg_attr(
45496    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45497    assert_instr(nop)
45498)]
45499#[cfg_attr(
45500    not(target_arch = "arm"),
45501    stable(feature = "neon_intrinsics", since = "1.59.0")
45502)]
45503#[cfg_attr(
45504    target_arch = "arm",
45505    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45506)]
45507pub fn vreinterpret_p8_f32(a: float32x2_t) -> poly8x8_t {
45508    unsafe { transmute(a) }
45509}
45510#[doc = "Vector reinterpret cast operation"]
45511#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_f32)"]
45512#[inline]
45513#[cfg(target_endian = "big")]
45514#[target_feature(enable = "neon")]
45515#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45516#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45517#[cfg_attr(
45518    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45519    assert_instr(nop)
45520)]
45521#[cfg_attr(
45522    not(target_arch = "arm"),
45523    stable(feature = "neon_intrinsics", since = "1.59.0")
45524)]
45525#[cfg_attr(
45526    target_arch = "arm",
45527    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45528)]
45529pub fn vreinterpret_p8_f32(a: float32x2_t) -> poly8x8_t {
45530    let a: float32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
45531    unsafe {
45532        let ret_val: poly8x8_t = transmute(a);
45533        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
45534    }
45535}
45536#[doc = "Vector reinterpret cast operation"]
45537#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_f32)"]
45538#[inline]
45539#[cfg(target_endian = "little")]
45540#[target_feature(enable = "neon")]
45541#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45542#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45543#[cfg_attr(
45544    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45545    assert_instr(nop)
45546)]
45547#[cfg_attr(
45548    not(target_arch = "arm"),
45549    stable(feature = "neon_intrinsics", since = "1.59.0")
45550)]
45551#[cfg_attr(
45552    target_arch = "arm",
45553    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45554)]
45555pub fn vreinterpret_p16_f32(a: float32x2_t) -> poly16x4_t {
45556    unsafe { transmute(a) }
45557}
45558#[doc = "Vector reinterpret cast operation"]
45559#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_f32)"]
45560#[inline]
45561#[cfg(target_endian = "big")]
45562#[target_feature(enable = "neon")]
45563#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45564#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45565#[cfg_attr(
45566    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45567    assert_instr(nop)
45568)]
45569#[cfg_attr(
45570    not(target_arch = "arm"),
45571    stable(feature = "neon_intrinsics", since = "1.59.0")
45572)]
45573#[cfg_attr(
45574    target_arch = "arm",
45575    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45576)]
45577pub fn vreinterpret_p16_f32(a: float32x2_t) -> poly16x4_t {
45578    let a: float32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
45579    unsafe {
45580        let ret_val: poly16x4_t = transmute(a);
45581        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
45582    }
45583}
45584#[doc = "Vector reinterpret cast operation"]
45585#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_f32)"]
45586#[inline]
45587#[cfg(target_endian = "little")]
45588#[target_feature(enable = "neon")]
45589#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45590#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45591#[cfg_attr(
45592    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45593    assert_instr(nop)
45594)]
45595#[cfg_attr(
45596    not(target_arch = "arm"),
45597    stable(feature = "neon_intrinsics", since = "1.59.0")
45598)]
45599#[cfg_attr(
45600    target_arch = "arm",
45601    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45602)]
45603pub fn vreinterpretq_p128_f32(a: float32x4_t) -> p128 {
45604    unsafe { transmute(a) }
45605}
45606#[doc = "Vector reinterpret cast operation"]
45607#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_f32)"]
45608#[inline]
45609#[cfg(target_endian = "big")]
45610#[target_feature(enable = "neon")]
45611#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45612#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45613#[cfg_attr(
45614    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45615    assert_instr(nop)
45616)]
45617#[cfg_attr(
45618    not(target_arch = "arm"),
45619    stable(feature = "neon_intrinsics", since = "1.59.0")
45620)]
45621#[cfg_attr(
45622    target_arch = "arm",
45623    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45624)]
45625pub fn vreinterpretq_p128_f32(a: float32x4_t) -> p128 {
45626    let a: float32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
45627    unsafe { transmute(a) }
45628}
45629#[doc = "Vector reinterpret cast operation"]
45630#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_f32)"]
45631#[inline]
45632#[cfg(target_endian = "little")]
45633#[target_feature(enable = "neon")]
45634#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45635#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45636#[cfg_attr(
45637    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45638    assert_instr(nop)
45639)]
45640#[cfg_attr(
45641    not(target_arch = "arm"),
45642    stable(feature = "neon_intrinsics", since = "1.59.0")
45643)]
45644#[cfg_attr(
45645    target_arch = "arm",
45646    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45647)]
45648pub fn vreinterpretq_s8_f32(a: float32x4_t) -> int8x16_t {
45649    unsafe { transmute(a) }
45650}
45651#[doc = "Vector reinterpret cast operation"]
45652#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_f32)"]
45653#[inline]
45654#[cfg(target_endian = "big")]
45655#[target_feature(enable = "neon")]
45656#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45657#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45658#[cfg_attr(
45659    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45660    assert_instr(nop)
45661)]
45662#[cfg_attr(
45663    not(target_arch = "arm"),
45664    stable(feature = "neon_intrinsics", since = "1.59.0")
45665)]
45666#[cfg_attr(
45667    target_arch = "arm",
45668    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45669)]
45670pub fn vreinterpretq_s8_f32(a: float32x4_t) -> int8x16_t {
45671    let a: float32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
45672    unsafe {
45673        let ret_val: int8x16_t = transmute(a);
45674        simd_shuffle!(
45675            ret_val,
45676            ret_val,
45677            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
45678        )
45679    }
45680}
45681#[doc = "Vector reinterpret cast operation"]
45682#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_f32)"]
45683#[inline]
45684#[cfg(target_endian = "little")]
45685#[target_feature(enable = "neon")]
45686#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45687#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45688#[cfg_attr(
45689    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45690    assert_instr(nop)
45691)]
45692#[cfg_attr(
45693    not(target_arch = "arm"),
45694    stable(feature = "neon_intrinsics", since = "1.59.0")
45695)]
45696#[cfg_attr(
45697    target_arch = "arm",
45698    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45699)]
45700pub fn vreinterpretq_s16_f32(a: float32x4_t) -> int16x8_t {
45701    unsafe { transmute(a) }
45702}
45703#[doc = "Vector reinterpret cast operation"]
45704#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_f32)"]
45705#[inline]
45706#[cfg(target_endian = "big")]
45707#[target_feature(enable = "neon")]
45708#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45709#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45710#[cfg_attr(
45711    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45712    assert_instr(nop)
45713)]
45714#[cfg_attr(
45715    not(target_arch = "arm"),
45716    stable(feature = "neon_intrinsics", since = "1.59.0")
45717)]
45718#[cfg_attr(
45719    target_arch = "arm",
45720    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45721)]
45722pub fn vreinterpretq_s16_f32(a: float32x4_t) -> int16x8_t {
45723    let a: float32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
45724    unsafe {
45725        let ret_val: int16x8_t = transmute(a);
45726        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
45727    }
45728}
45729#[doc = "Vector reinterpret cast operation"]
45730#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_f32)"]
45731#[inline]
45732#[cfg(target_endian = "little")]
45733#[target_feature(enable = "neon")]
45734#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45735#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45736#[cfg_attr(
45737    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45738    assert_instr(nop)
45739)]
45740#[cfg_attr(
45741    not(target_arch = "arm"),
45742    stable(feature = "neon_intrinsics", since = "1.59.0")
45743)]
45744#[cfg_attr(
45745    target_arch = "arm",
45746    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45747)]
45748pub fn vreinterpretq_s32_f32(a: float32x4_t) -> int32x4_t {
45749    unsafe { transmute(a) }
45750}
45751#[doc = "Vector reinterpret cast operation"]
45752#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_f32)"]
45753#[inline]
45754#[cfg(target_endian = "big")]
45755#[target_feature(enable = "neon")]
45756#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45757#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45758#[cfg_attr(
45759    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45760    assert_instr(nop)
45761)]
45762#[cfg_attr(
45763    not(target_arch = "arm"),
45764    stable(feature = "neon_intrinsics", since = "1.59.0")
45765)]
45766#[cfg_attr(
45767    target_arch = "arm",
45768    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45769)]
45770pub fn vreinterpretq_s32_f32(a: float32x4_t) -> int32x4_t {
45771    let a: float32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
45772    unsafe {
45773        let ret_val: int32x4_t = transmute(a);
45774        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
45775    }
45776}
45777#[doc = "Vector reinterpret cast operation"]
45778#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_f32)"]
45779#[inline]
45780#[cfg(target_endian = "little")]
45781#[target_feature(enable = "neon")]
45782#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45783#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45784#[cfg_attr(
45785    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45786    assert_instr(nop)
45787)]
45788#[cfg_attr(
45789    not(target_arch = "arm"),
45790    stable(feature = "neon_intrinsics", since = "1.59.0")
45791)]
45792#[cfg_attr(
45793    target_arch = "arm",
45794    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45795)]
45796pub fn vreinterpretq_s64_f32(a: float32x4_t) -> int64x2_t {
45797    unsafe { transmute(a) }
45798}
45799#[doc = "Vector reinterpret cast operation"]
45800#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_f32)"]
45801#[inline]
45802#[cfg(target_endian = "big")]
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_s64_f32(a: float32x4_t) -> int64x2_t {
45819    let a: float32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
45820    unsafe {
45821        let ret_val: int64x2_t = transmute(a);
45822        simd_shuffle!(ret_val, ret_val, [1, 0])
45823    }
45824}
45825#[doc = "Vector reinterpret cast operation"]
45826#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_f32)"]
45827#[inline]
45828#[cfg(target_endian = "little")]
45829#[target_feature(enable = "neon")]
45830#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45831#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45832#[cfg_attr(
45833    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45834    assert_instr(nop)
45835)]
45836#[cfg_attr(
45837    not(target_arch = "arm"),
45838    stable(feature = "neon_intrinsics", since = "1.59.0")
45839)]
45840#[cfg_attr(
45841    target_arch = "arm",
45842    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45843)]
45844pub fn vreinterpretq_u8_f32(a: float32x4_t) -> uint8x16_t {
45845    unsafe { transmute(a) }
45846}
45847#[doc = "Vector reinterpret cast operation"]
45848#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_f32)"]
45849#[inline]
45850#[cfg(target_endian = "big")]
45851#[target_feature(enable = "neon")]
45852#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45853#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45854#[cfg_attr(
45855    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45856    assert_instr(nop)
45857)]
45858#[cfg_attr(
45859    not(target_arch = "arm"),
45860    stable(feature = "neon_intrinsics", since = "1.59.0")
45861)]
45862#[cfg_attr(
45863    target_arch = "arm",
45864    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45865)]
45866pub fn vreinterpretq_u8_f32(a: float32x4_t) -> uint8x16_t {
45867    let a: float32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
45868    unsafe {
45869        let ret_val: uint8x16_t = transmute(a);
45870        simd_shuffle!(
45871            ret_val,
45872            ret_val,
45873            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
45874        )
45875    }
45876}
45877#[doc = "Vector reinterpret cast operation"]
45878#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_f32)"]
45879#[inline]
45880#[cfg(target_endian = "little")]
45881#[target_feature(enable = "neon")]
45882#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45883#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45884#[cfg_attr(
45885    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45886    assert_instr(nop)
45887)]
45888#[cfg_attr(
45889    not(target_arch = "arm"),
45890    stable(feature = "neon_intrinsics", since = "1.59.0")
45891)]
45892#[cfg_attr(
45893    target_arch = "arm",
45894    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45895)]
45896pub fn vreinterpretq_u16_f32(a: float32x4_t) -> uint16x8_t {
45897    unsafe { transmute(a) }
45898}
45899#[doc = "Vector reinterpret cast operation"]
45900#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_f32)"]
45901#[inline]
45902#[cfg(target_endian = "big")]
45903#[target_feature(enable = "neon")]
45904#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45905#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45906#[cfg_attr(
45907    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45908    assert_instr(nop)
45909)]
45910#[cfg_attr(
45911    not(target_arch = "arm"),
45912    stable(feature = "neon_intrinsics", since = "1.59.0")
45913)]
45914#[cfg_attr(
45915    target_arch = "arm",
45916    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45917)]
45918pub fn vreinterpretq_u16_f32(a: float32x4_t) -> uint16x8_t {
45919    let a: float32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
45920    unsafe {
45921        let ret_val: uint16x8_t = transmute(a);
45922        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
45923    }
45924}
45925#[doc = "Vector reinterpret cast operation"]
45926#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_f32)"]
45927#[inline]
45928#[cfg(target_endian = "little")]
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 vreinterpretq_u32_f32(a: float32x4_t) -> uint32x4_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/vreinterpretq_u32_f32)"]
45949#[inline]
45950#[cfg(target_endian = "big")]
45951#[target_feature(enable = "neon")]
45952#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45953#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45954#[cfg_attr(
45955    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45956    assert_instr(nop)
45957)]
45958#[cfg_attr(
45959    not(target_arch = "arm"),
45960    stable(feature = "neon_intrinsics", since = "1.59.0")
45961)]
45962#[cfg_attr(
45963    target_arch = "arm",
45964    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45965)]
45966pub fn vreinterpretq_u32_f32(a: float32x4_t) -> uint32x4_t {
45967    let a: float32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
45968    unsafe {
45969        let ret_val: uint32x4_t = transmute(a);
45970        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
45971    }
45972}
45973#[doc = "Vector reinterpret cast operation"]
45974#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_f32)"]
45975#[inline]
45976#[cfg(target_endian = "little")]
45977#[target_feature(enable = "neon")]
45978#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45979#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45980#[cfg_attr(
45981    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45982    assert_instr(nop)
45983)]
45984#[cfg_attr(
45985    not(target_arch = "arm"),
45986    stable(feature = "neon_intrinsics", since = "1.59.0")
45987)]
45988#[cfg_attr(
45989    target_arch = "arm",
45990    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45991)]
45992pub fn vreinterpretq_u64_f32(a: float32x4_t) -> uint64x2_t {
45993    unsafe { transmute(a) }
45994}
45995#[doc = "Vector reinterpret cast operation"]
45996#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_f32)"]
45997#[inline]
45998#[cfg(target_endian = "big")]
45999#[target_feature(enable = "neon")]
46000#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46001#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46002#[cfg_attr(
46003    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46004    assert_instr(nop)
46005)]
46006#[cfg_attr(
46007    not(target_arch = "arm"),
46008    stable(feature = "neon_intrinsics", since = "1.59.0")
46009)]
46010#[cfg_attr(
46011    target_arch = "arm",
46012    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46013)]
46014pub fn vreinterpretq_u64_f32(a: float32x4_t) -> uint64x2_t {
46015    let a: float32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
46016    unsafe {
46017        let ret_val: uint64x2_t = transmute(a);
46018        simd_shuffle!(ret_val, ret_val, [1, 0])
46019    }
46020}
46021#[doc = "Vector reinterpret cast operation"]
46022#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_f32)"]
46023#[inline]
46024#[cfg(target_endian = "little")]
46025#[target_feature(enable = "neon")]
46026#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46027#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46028#[cfg_attr(
46029    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46030    assert_instr(nop)
46031)]
46032#[cfg_attr(
46033    not(target_arch = "arm"),
46034    stable(feature = "neon_intrinsics", since = "1.59.0")
46035)]
46036#[cfg_attr(
46037    target_arch = "arm",
46038    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46039)]
46040pub fn vreinterpretq_p8_f32(a: float32x4_t) -> poly8x16_t {
46041    unsafe { transmute(a) }
46042}
46043#[doc = "Vector reinterpret cast operation"]
46044#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_f32)"]
46045#[inline]
46046#[cfg(target_endian = "big")]
46047#[target_feature(enable = "neon")]
46048#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46049#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46050#[cfg_attr(
46051    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46052    assert_instr(nop)
46053)]
46054#[cfg_attr(
46055    not(target_arch = "arm"),
46056    stable(feature = "neon_intrinsics", since = "1.59.0")
46057)]
46058#[cfg_attr(
46059    target_arch = "arm",
46060    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46061)]
46062pub fn vreinterpretq_p8_f32(a: float32x4_t) -> poly8x16_t {
46063    let a: float32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
46064    unsafe {
46065        let ret_val: poly8x16_t = transmute(a);
46066        simd_shuffle!(
46067            ret_val,
46068            ret_val,
46069            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
46070        )
46071    }
46072}
46073#[doc = "Vector reinterpret cast operation"]
46074#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_f32)"]
46075#[inline]
46076#[cfg(target_endian = "little")]
46077#[target_feature(enable = "neon")]
46078#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46079#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46080#[cfg_attr(
46081    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46082    assert_instr(nop)
46083)]
46084#[cfg_attr(
46085    not(target_arch = "arm"),
46086    stable(feature = "neon_intrinsics", since = "1.59.0")
46087)]
46088#[cfg_attr(
46089    target_arch = "arm",
46090    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46091)]
46092pub fn vreinterpretq_p16_f32(a: float32x4_t) -> poly16x8_t {
46093    unsafe { transmute(a) }
46094}
46095#[doc = "Vector reinterpret cast operation"]
46096#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_f32)"]
46097#[inline]
46098#[cfg(target_endian = "big")]
46099#[target_feature(enable = "neon")]
46100#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46101#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46102#[cfg_attr(
46103    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46104    assert_instr(nop)
46105)]
46106#[cfg_attr(
46107    not(target_arch = "arm"),
46108    stable(feature = "neon_intrinsics", since = "1.59.0")
46109)]
46110#[cfg_attr(
46111    target_arch = "arm",
46112    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46113)]
46114pub fn vreinterpretq_p16_f32(a: float32x4_t) -> poly16x8_t {
46115    let a: float32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
46116    unsafe {
46117        let ret_val: poly16x8_t = transmute(a);
46118        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
46119    }
46120}
46121#[doc = "Vector reinterpret cast operation"]
46122#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_s8)"]
46123#[inline]
46124#[cfg(target_endian = "little")]
46125#[target_feature(enable = "neon")]
46126#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46127#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46128#[cfg_attr(
46129    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46130    assert_instr(nop)
46131)]
46132#[cfg_attr(
46133    not(target_arch = "arm"),
46134    stable(feature = "neon_intrinsics", since = "1.59.0")
46135)]
46136#[cfg_attr(
46137    target_arch = "arm",
46138    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46139)]
46140pub fn vreinterpret_f32_s8(a: int8x8_t) -> float32x2_t {
46141    unsafe { transmute(a) }
46142}
46143#[doc = "Vector reinterpret cast operation"]
46144#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_s8)"]
46145#[inline]
46146#[cfg(target_endian = "big")]
46147#[target_feature(enable = "neon")]
46148#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46149#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46150#[cfg_attr(
46151    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46152    assert_instr(nop)
46153)]
46154#[cfg_attr(
46155    not(target_arch = "arm"),
46156    stable(feature = "neon_intrinsics", since = "1.59.0")
46157)]
46158#[cfg_attr(
46159    target_arch = "arm",
46160    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46161)]
46162pub fn vreinterpret_f32_s8(a: int8x8_t) -> float32x2_t {
46163    let a: int8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
46164    unsafe {
46165        let ret_val: float32x2_t = transmute(a);
46166        simd_shuffle!(ret_val, ret_val, [1, 0])
46167    }
46168}
46169#[doc = "Vector reinterpret cast operation"]
46170#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_s8)"]
46171#[inline]
46172#[cfg(target_endian = "little")]
46173#[target_feature(enable = "neon")]
46174#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46175#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46176#[cfg_attr(
46177    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46178    assert_instr(nop)
46179)]
46180#[cfg_attr(
46181    not(target_arch = "arm"),
46182    stable(feature = "neon_intrinsics", since = "1.59.0")
46183)]
46184#[cfg_attr(
46185    target_arch = "arm",
46186    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46187)]
46188pub fn vreinterpret_s16_s8(a: int8x8_t) -> int16x4_t {
46189    unsafe { transmute(a) }
46190}
46191#[doc = "Vector reinterpret cast operation"]
46192#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_s8)"]
46193#[inline]
46194#[cfg(target_endian = "big")]
46195#[target_feature(enable = "neon")]
46196#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46197#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46198#[cfg_attr(
46199    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46200    assert_instr(nop)
46201)]
46202#[cfg_attr(
46203    not(target_arch = "arm"),
46204    stable(feature = "neon_intrinsics", since = "1.59.0")
46205)]
46206#[cfg_attr(
46207    target_arch = "arm",
46208    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46209)]
46210pub fn vreinterpret_s16_s8(a: int8x8_t) -> int16x4_t {
46211    let a: int8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
46212    unsafe {
46213        let ret_val: int16x4_t = transmute(a);
46214        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
46215    }
46216}
46217#[doc = "Vector reinterpret cast operation"]
46218#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_s8)"]
46219#[inline]
46220#[cfg(target_endian = "little")]
46221#[target_feature(enable = "neon")]
46222#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46223#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46224#[cfg_attr(
46225    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46226    assert_instr(nop)
46227)]
46228#[cfg_attr(
46229    not(target_arch = "arm"),
46230    stable(feature = "neon_intrinsics", since = "1.59.0")
46231)]
46232#[cfg_attr(
46233    target_arch = "arm",
46234    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46235)]
46236pub fn vreinterpret_s32_s8(a: int8x8_t) -> int32x2_t {
46237    unsafe { transmute(a) }
46238}
46239#[doc = "Vector reinterpret cast operation"]
46240#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_s8)"]
46241#[inline]
46242#[cfg(target_endian = "big")]
46243#[target_feature(enable = "neon")]
46244#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46245#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46246#[cfg_attr(
46247    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46248    assert_instr(nop)
46249)]
46250#[cfg_attr(
46251    not(target_arch = "arm"),
46252    stable(feature = "neon_intrinsics", since = "1.59.0")
46253)]
46254#[cfg_attr(
46255    target_arch = "arm",
46256    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46257)]
46258pub fn vreinterpret_s32_s8(a: int8x8_t) -> int32x2_t {
46259    let a: int8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
46260    unsafe {
46261        let ret_val: int32x2_t = transmute(a);
46262        simd_shuffle!(ret_val, ret_val, [1, 0])
46263    }
46264}
46265#[doc = "Vector reinterpret cast operation"]
46266#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_s8)"]
46267#[inline]
46268#[cfg(target_endian = "little")]
46269#[target_feature(enable = "neon")]
46270#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46271#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46272#[cfg_attr(
46273    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46274    assert_instr(nop)
46275)]
46276#[cfg_attr(
46277    not(target_arch = "arm"),
46278    stable(feature = "neon_intrinsics", since = "1.59.0")
46279)]
46280#[cfg_attr(
46281    target_arch = "arm",
46282    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46283)]
46284pub fn vreinterpret_s64_s8(a: int8x8_t) -> int64x1_t {
46285    unsafe { transmute(a) }
46286}
46287#[doc = "Vector reinterpret cast operation"]
46288#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_s8)"]
46289#[inline]
46290#[cfg(target_endian = "big")]
46291#[target_feature(enable = "neon")]
46292#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46293#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46294#[cfg_attr(
46295    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46296    assert_instr(nop)
46297)]
46298#[cfg_attr(
46299    not(target_arch = "arm"),
46300    stable(feature = "neon_intrinsics", since = "1.59.0")
46301)]
46302#[cfg_attr(
46303    target_arch = "arm",
46304    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46305)]
46306pub fn vreinterpret_s64_s8(a: int8x8_t) -> int64x1_t {
46307    let a: int8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
46308    unsafe { transmute(a) }
46309}
46310#[doc = "Vector reinterpret cast operation"]
46311#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_s8)"]
46312#[inline]
46313#[cfg(target_endian = "little")]
46314#[target_feature(enable = "neon")]
46315#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46316#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46317#[cfg_attr(
46318    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46319    assert_instr(nop)
46320)]
46321#[cfg_attr(
46322    not(target_arch = "arm"),
46323    stable(feature = "neon_intrinsics", since = "1.59.0")
46324)]
46325#[cfg_attr(
46326    target_arch = "arm",
46327    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46328)]
46329pub fn vreinterpret_u8_s8(a: int8x8_t) -> uint8x8_t {
46330    unsafe { transmute(a) }
46331}
46332#[doc = "Vector reinterpret cast operation"]
46333#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_s8)"]
46334#[inline]
46335#[cfg(target_endian = "big")]
46336#[target_feature(enable = "neon")]
46337#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46338#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46339#[cfg_attr(
46340    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46341    assert_instr(nop)
46342)]
46343#[cfg_attr(
46344    not(target_arch = "arm"),
46345    stable(feature = "neon_intrinsics", since = "1.59.0")
46346)]
46347#[cfg_attr(
46348    target_arch = "arm",
46349    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46350)]
46351pub fn vreinterpret_u8_s8(a: int8x8_t) -> uint8x8_t {
46352    let a: int8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
46353    unsafe {
46354        let ret_val: uint8x8_t = transmute(a);
46355        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
46356    }
46357}
46358#[doc = "Vector reinterpret cast operation"]
46359#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_s8)"]
46360#[inline]
46361#[cfg(target_endian = "little")]
46362#[target_feature(enable = "neon")]
46363#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46364#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46365#[cfg_attr(
46366    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46367    assert_instr(nop)
46368)]
46369#[cfg_attr(
46370    not(target_arch = "arm"),
46371    stable(feature = "neon_intrinsics", since = "1.59.0")
46372)]
46373#[cfg_attr(
46374    target_arch = "arm",
46375    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46376)]
46377pub fn vreinterpret_u16_s8(a: int8x8_t) -> uint16x4_t {
46378    unsafe { transmute(a) }
46379}
46380#[doc = "Vector reinterpret cast operation"]
46381#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_s8)"]
46382#[inline]
46383#[cfg(target_endian = "big")]
46384#[target_feature(enable = "neon")]
46385#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46386#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46387#[cfg_attr(
46388    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46389    assert_instr(nop)
46390)]
46391#[cfg_attr(
46392    not(target_arch = "arm"),
46393    stable(feature = "neon_intrinsics", since = "1.59.0")
46394)]
46395#[cfg_attr(
46396    target_arch = "arm",
46397    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46398)]
46399pub fn vreinterpret_u16_s8(a: int8x8_t) -> uint16x4_t {
46400    let a: int8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
46401    unsafe {
46402        let ret_val: uint16x4_t = transmute(a);
46403        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
46404    }
46405}
46406#[doc = "Vector reinterpret cast operation"]
46407#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_s8)"]
46408#[inline]
46409#[cfg(target_endian = "little")]
46410#[target_feature(enable = "neon")]
46411#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46412#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46413#[cfg_attr(
46414    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46415    assert_instr(nop)
46416)]
46417#[cfg_attr(
46418    not(target_arch = "arm"),
46419    stable(feature = "neon_intrinsics", since = "1.59.0")
46420)]
46421#[cfg_attr(
46422    target_arch = "arm",
46423    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46424)]
46425pub fn vreinterpret_u32_s8(a: int8x8_t) -> uint32x2_t {
46426    unsafe { transmute(a) }
46427}
46428#[doc = "Vector reinterpret cast operation"]
46429#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_s8)"]
46430#[inline]
46431#[cfg(target_endian = "big")]
46432#[target_feature(enable = "neon")]
46433#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46434#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46435#[cfg_attr(
46436    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46437    assert_instr(nop)
46438)]
46439#[cfg_attr(
46440    not(target_arch = "arm"),
46441    stable(feature = "neon_intrinsics", since = "1.59.0")
46442)]
46443#[cfg_attr(
46444    target_arch = "arm",
46445    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46446)]
46447pub fn vreinterpret_u32_s8(a: int8x8_t) -> uint32x2_t {
46448    let a: int8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
46449    unsafe {
46450        let ret_val: uint32x2_t = transmute(a);
46451        simd_shuffle!(ret_val, ret_val, [1, 0])
46452    }
46453}
46454#[doc = "Vector reinterpret cast operation"]
46455#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_s8)"]
46456#[inline]
46457#[cfg(target_endian = "little")]
46458#[target_feature(enable = "neon")]
46459#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46460#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46461#[cfg_attr(
46462    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46463    assert_instr(nop)
46464)]
46465#[cfg_attr(
46466    not(target_arch = "arm"),
46467    stable(feature = "neon_intrinsics", since = "1.59.0")
46468)]
46469#[cfg_attr(
46470    target_arch = "arm",
46471    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46472)]
46473pub fn vreinterpret_u64_s8(a: int8x8_t) -> uint64x1_t {
46474    unsafe { transmute(a) }
46475}
46476#[doc = "Vector reinterpret cast operation"]
46477#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_s8)"]
46478#[inline]
46479#[cfg(target_endian = "big")]
46480#[target_feature(enable = "neon")]
46481#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46482#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46483#[cfg_attr(
46484    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46485    assert_instr(nop)
46486)]
46487#[cfg_attr(
46488    not(target_arch = "arm"),
46489    stable(feature = "neon_intrinsics", since = "1.59.0")
46490)]
46491#[cfg_attr(
46492    target_arch = "arm",
46493    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46494)]
46495pub fn vreinterpret_u64_s8(a: int8x8_t) -> uint64x1_t {
46496    let a: int8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
46497    unsafe { transmute(a) }
46498}
46499#[doc = "Vector reinterpret cast operation"]
46500#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_s8)"]
46501#[inline]
46502#[cfg(target_endian = "little")]
46503#[target_feature(enable = "neon")]
46504#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46505#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46506#[cfg_attr(
46507    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46508    assert_instr(nop)
46509)]
46510#[cfg_attr(
46511    not(target_arch = "arm"),
46512    stable(feature = "neon_intrinsics", since = "1.59.0")
46513)]
46514#[cfg_attr(
46515    target_arch = "arm",
46516    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46517)]
46518pub fn vreinterpret_p8_s8(a: int8x8_t) -> poly8x8_t {
46519    unsafe { transmute(a) }
46520}
46521#[doc = "Vector reinterpret cast operation"]
46522#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_s8)"]
46523#[inline]
46524#[cfg(target_endian = "big")]
46525#[target_feature(enable = "neon")]
46526#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46527#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46528#[cfg_attr(
46529    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46530    assert_instr(nop)
46531)]
46532#[cfg_attr(
46533    not(target_arch = "arm"),
46534    stable(feature = "neon_intrinsics", since = "1.59.0")
46535)]
46536#[cfg_attr(
46537    target_arch = "arm",
46538    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46539)]
46540pub fn vreinterpret_p8_s8(a: int8x8_t) -> poly8x8_t {
46541    let a: int8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
46542    unsafe {
46543        let ret_val: poly8x8_t = transmute(a);
46544        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
46545    }
46546}
46547#[doc = "Vector reinterpret cast operation"]
46548#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_s8)"]
46549#[inline]
46550#[cfg(target_endian = "little")]
46551#[target_feature(enable = "neon")]
46552#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46553#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46554#[cfg_attr(
46555    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46556    assert_instr(nop)
46557)]
46558#[cfg_attr(
46559    not(target_arch = "arm"),
46560    stable(feature = "neon_intrinsics", since = "1.59.0")
46561)]
46562#[cfg_attr(
46563    target_arch = "arm",
46564    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46565)]
46566pub fn vreinterpret_p16_s8(a: int8x8_t) -> poly16x4_t {
46567    unsafe { transmute(a) }
46568}
46569#[doc = "Vector reinterpret cast operation"]
46570#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_s8)"]
46571#[inline]
46572#[cfg(target_endian = "big")]
46573#[target_feature(enable = "neon")]
46574#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46575#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46576#[cfg_attr(
46577    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46578    assert_instr(nop)
46579)]
46580#[cfg_attr(
46581    not(target_arch = "arm"),
46582    stable(feature = "neon_intrinsics", since = "1.59.0")
46583)]
46584#[cfg_attr(
46585    target_arch = "arm",
46586    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46587)]
46588pub fn vreinterpret_p16_s8(a: int8x8_t) -> poly16x4_t {
46589    let a: int8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
46590    unsafe {
46591        let ret_val: poly16x4_t = transmute(a);
46592        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
46593    }
46594}
46595#[doc = "Vector reinterpret cast operation"]
46596#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_s8)"]
46597#[inline]
46598#[cfg(target_endian = "little")]
46599#[target_feature(enable = "neon")]
46600#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46601#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46602#[cfg_attr(
46603    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46604    assert_instr(nop)
46605)]
46606#[cfg_attr(
46607    not(target_arch = "arm"),
46608    stable(feature = "neon_intrinsics", since = "1.59.0")
46609)]
46610#[cfg_attr(
46611    target_arch = "arm",
46612    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46613)]
46614pub fn vreinterpretq_f32_s8(a: int8x16_t) -> float32x4_t {
46615    unsafe { transmute(a) }
46616}
46617#[doc = "Vector reinterpret cast operation"]
46618#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_s8)"]
46619#[inline]
46620#[cfg(target_endian = "big")]
46621#[target_feature(enable = "neon")]
46622#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46623#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46624#[cfg_attr(
46625    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46626    assert_instr(nop)
46627)]
46628#[cfg_attr(
46629    not(target_arch = "arm"),
46630    stable(feature = "neon_intrinsics", since = "1.59.0")
46631)]
46632#[cfg_attr(
46633    target_arch = "arm",
46634    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46635)]
46636pub fn vreinterpretq_f32_s8(a: int8x16_t) -> float32x4_t {
46637    let a: int8x16_t =
46638        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
46639    unsafe {
46640        let ret_val: float32x4_t = transmute(a);
46641        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
46642    }
46643}
46644#[doc = "Vector reinterpret cast operation"]
46645#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_s8)"]
46646#[inline]
46647#[cfg(target_endian = "little")]
46648#[target_feature(enable = "neon")]
46649#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46650#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46651#[cfg_attr(
46652    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46653    assert_instr(nop)
46654)]
46655#[cfg_attr(
46656    not(target_arch = "arm"),
46657    stable(feature = "neon_intrinsics", since = "1.59.0")
46658)]
46659#[cfg_attr(
46660    target_arch = "arm",
46661    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46662)]
46663pub fn vreinterpretq_s16_s8(a: int8x16_t) -> int16x8_t {
46664    unsafe { transmute(a) }
46665}
46666#[doc = "Vector reinterpret cast operation"]
46667#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_s8)"]
46668#[inline]
46669#[cfg(target_endian = "big")]
46670#[target_feature(enable = "neon")]
46671#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46672#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46673#[cfg_attr(
46674    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46675    assert_instr(nop)
46676)]
46677#[cfg_attr(
46678    not(target_arch = "arm"),
46679    stable(feature = "neon_intrinsics", since = "1.59.0")
46680)]
46681#[cfg_attr(
46682    target_arch = "arm",
46683    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46684)]
46685pub fn vreinterpretq_s16_s8(a: int8x16_t) -> int16x8_t {
46686    let a: int8x16_t =
46687        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
46688    unsafe {
46689        let ret_val: int16x8_t = transmute(a);
46690        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
46691    }
46692}
46693#[doc = "Vector reinterpret cast operation"]
46694#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_s8)"]
46695#[inline]
46696#[cfg(target_endian = "little")]
46697#[target_feature(enable = "neon")]
46698#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46699#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46700#[cfg_attr(
46701    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46702    assert_instr(nop)
46703)]
46704#[cfg_attr(
46705    not(target_arch = "arm"),
46706    stable(feature = "neon_intrinsics", since = "1.59.0")
46707)]
46708#[cfg_attr(
46709    target_arch = "arm",
46710    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46711)]
46712pub fn vreinterpretq_s32_s8(a: int8x16_t) -> int32x4_t {
46713    unsafe { transmute(a) }
46714}
46715#[doc = "Vector reinterpret cast operation"]
46716#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_s8)"]
46717#[inline]
46718#[cfg(target_endian = "big")]
46719#[target_feature(enable = "neon")]
46720#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46721#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46722#[cfg_attr(
46723    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46724    assert_instr(nop)
46725)]
46726#[cfg_attr(
46727    not(target_arch = "arm"),
46728    stable(feature = "neon_intrinsics", since = "1.59.0")
46729)]
46730#[cfg_attr(
46731    target_arch = "arm",
46732    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46733)]
46734pub fn vreinterpretq_s32_s8(a: int8x16_t) -> int32x4_t {
46735    let a: int8x16_t =
46736        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
46737    unsafe {
46738        let ret_val: int32x4_t = transmute(a);
46739        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
46740    }
46741}
46742#[doc = "Vector reinterpret cast operation"]
46743#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_s8)"]
46744#[inline]
46745#[cfg(target_endian = "little")]
46746#[target_feature(enable = "neon")]
46747#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46748#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46749#[cfg_attr(
46750    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46751    assert_instr(nop)
46752)]
46753#[cfg_attr(
46754    not(target_arch = "arm"),
46755    stable(feature = "neon_intrinsics", since = "1.59.0")
46756)]
46757#[cfg_attr(
46758    target_arch = "arm",
46759    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46760)]
46761pub fn vreinterpretq_s64_s8(a: int8x16_t) -> int64x2_t {
46762    unsafe { transmute(a) }
46763}
46764#[doc = "Vector reinterpret cast operation"]
46765#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_s8)"]
46766#[inline]
46767#[cfg(target_endian = "big")]
46768#[target_feature(enable = "neon")]
46769#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46770#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46771#[cfg_attr(
46772    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46773    assert_instr(nop)
46774)]
46775#[cfg_attr(
46776    not(target_arch = "arm"),
46777    stable(feature = "neon_intrinsics", since = "1.59.0")
46778)]
46779#[cfg_attr(
46780    target_arch = "arm",
46781    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46782)]
46783pub fn vreinterpretq_s64_s8(a: int8x16_t) -> int64x2_t {
46784    let a: int8x16_t =
46785        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
46786    unsafe {
46787        let ret_val: int64x2_t = transmute(a);
46788        simd_shuffle!(ret_val, ret_val, [1, 0])
46789    }
46790}
46791#[doc = "Vector reinterpret cast operation"]
46792#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_s8)"]
46793#[inline]
46794#[cfg(target_endian = "little")]
46795#[target_feature(enable = "neon")]
46796#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46797#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46798#[cfg_attr(
46799    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46800    assert_instr(nop)
46801)]
46802#[cfg_attr(
46803    not(target_arch = "arm"),
46804    stable(feature = "neon_intrinsics", since = "1.59.0")
46805)]
46806#[cfg_attr(
46807    target_arch = "arm",
46808    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46809)]
46810pub fn vreinterpretq_u8_s8(a: int8x16_t) -> uint8x16_t {
46811    unsafe { transmute(a) }
46812}
46813#[doc = "Vector reinterpret cast operation"]
46814#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_s8)"]
46815#[inline]
46816#[cfg(target_endian = "big")]
46817#[target_feature(enable = "neon")]
46818#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46819#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46820#[cfg_attr(
46821    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46822    assert_instr(nop)
46823)]
46824#[cfg_attr(
46825    not(target_arch = "arm"),
46826    stable(feature = "neon_intrinsics", since = "1.59.0")
46827)]
46828#[cfg_attr(
46829    target_arch = "arm",
46830    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46831)]
46832pub fn vreinterpretq_u8_s8(a: int8x16_t) -> uint8x16_t {
46833    let a: int8x16_t =
46834        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
46835    unsafe {
46836        let ret_val: uint8x16_t = transmute(a);
46837        simd_shuffle!(
46838            ret_val,
46839            ret_val,
46840            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
46841        )
46842    }
46843}
46844#[doc = "Vector reinterpret cast operation"]
46845#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_s8)"]
46846#[inline]
46847#[cfg(target_endian = "little")]
46848#[target_feature(enable = "neon")]
46849#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46850#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46851#[cfg_attr(
46852    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46853    assert_instr(nop)
46854)]
46855#[cfg_attr(
46856    not(target_arch = "arm"),
46857    stable(feature = "neon_intrinsics", since = "1.59.0")
46858)]
46859#[cfg_attr(
46860    target_arch = "arm",
46861    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46862)]
46863pub fn vreinterpretq_u16_s8(a: int8x16_t) -> uint16x8_t {
46864    unsafe { transmute(a) }
46865}
46866#[doc = "Vector reinterpret cast operation"]
46867#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_s8)"]
46868#[inline]
46869#[cfg(target_endian = "big")]
46870#[target_feature(enable = "neon")]
46871#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46872#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46873#[cfg_attr(
46874    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46875    assert_instr(nop)
46876)]
46877#[cfg_attr(
46878    not(target_arch = "arm"),
46879    stable(feature = "neon_intrinsics", since = "1.59.0")
46880)]
46881#[cfg_attr(
46882    target_arch = "arm",
46883    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46884)]
46885pub fn vreinterpretq_u16_s8(a: int8x16_t) -> uint16x8_t {
46886    let a: int8x16_t =
46887        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
46888    unsafe {
46889        let ret_val: uint16x8_t = transmute(a);
46890        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
46891    }
46892}
46893#[doc = "Vector reinterpret cast operation"]
46894#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_s8)"]
46895#[inline]
46896#[cfg(target_endian = "little")]
46897#[target_feature(enable = "neon")]
46898#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46899#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46900#[cfg_attr(
46901    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46902    assert_instr(nop)
46903)]
46904#[cfg_attr(
46905    not(target_arch = "arm"),
46906    stable(feature = "neon_intrinsics", since = "1.59.0")
46907)]
46908#[cfg_attr(
46909    target_arch = "arm",
46910    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46911)]
46912pub fn vreinterpretq_u32_s8(a: int8x16_t) -> uint32x4_t {
46913    unsafe { transmute(a) }
46914}
46915#[doc = "Vector reinterpret cast operation"]
46916#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_s8)"]
46917#[inline]
46918#[cfg(target_endian = "big")]
46919#[target_feature(enable = "neon")]
46920#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46921#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46922#[cfg_attr(
46923    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46924    assert_instr(nop)
46925)]
46926#[cfg_attr(
46927    not(target_arch = "arm"),
46928    stable(feature = "neon_intrinsics", since = "1.59.0")
46929)]
46930#[cfg_attr(
46931    target_arch = "arm",
46932    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46933)]
46934pub fn vreinterpretq_u32_s8(a: int8x16_t) -> uint32x4_t {
46935    let a: int8x16_t =
46936        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
46937    unsafe {
46938        let ret_val: uint32x4_t = transmute(a);
46939        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
46940    }
46941}
46942#[doc = "Vector reinterpret cast operation"]
46943#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_s8)"]
46944#[inline]
46945#[cfg(target_endian = "little")]
46946#[target_feature(enable = "neon")]
46947#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46948#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46949#[cfg_attr(
46950    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46951    assert_instr(nop)
46952)]
46953#[cfg_attr(
46954    not(target_arch = "arm"),
46955    stable(feature = "neon_intrinsics", since = "1.59.0")
46956)]
46957#[cfg_attr(
46958    target_arch = "arm",
46959    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46960)]
46961pub fn vreinterpretq_u64_s8(a: int8x16_t) -> uint64x2_t {
46962    unsafe { transmute(a) }
46963}
46964#[doc = "Vector reinterpret cast operation"]
46965#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_s8)"]
46966#[inline]
46967#[cfg(target_endian = "big")]
46968#[target_feature(enable = "neon")]
46969#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46970#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46971#[cfg_attr(
46972    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46973    assert_instr(nop)
46974)]
46975#[cfg_attr(
46976    not(target_arch = "arm"),
46977    stable(feature = "neon_intrinsics", since = "1.59.0")
46978)]
46979#[cfg_attr(
46980    target_arch = "arm",
46981    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46982)]
46983pub fn vreinterpretq_u64_s8(a: int8x16_t) -> uint64x2_t {
46984    let a: int8x16_t =
46985        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
46986    unsafe {
46987        let ret_val: uint64x2_t = transmute(a);
46988        simd_shuffle!(ret_val, ret_val, [1, 0])
46989    }
46990}
46991#[doc = "Vector reinterpret cast operation"]
46992#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_s8)"]
46993#[inline]
46994#[cfg(target_endian = "little")]
46995#[target_feature(enable = "neon")]
46996#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46997#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46998#[cfg_attr(
46999    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47000    assert_instr(nop)
47001)]
47002#[cfg_attr(
47003    not(target_arch = "arm"),
47004    stable(feature = "neon_intrinsics", since = "1.59.0")
47005)]
47006#[cfg_attr(
47007    target_arch = "arm",
47008    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47009)]
47010pub fn vreinterpretq_p8_s8(a: int8x16_t) -> poly8x16_t {
47011    unsafe { transmute(a) }
47012}
47013#[doc = "Vector reinterpret cast operation"]
47014#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_s8)"]
47015#[inline]
47016#[cfg(target_endian = "big")]
47017#[target_feature(enable = "neon")]
47018#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47019#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47020#[cfg_attr(
47021    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47022    assert_instr(nop)
47023)]
47024#[cfg_attr(
47025    not(target_arch = "arm"),
47026    stable(feature = "neon_intrinsics", since = "1.59.0")
47027)]
47028#[cfg_attr(
47029    target_arch = "arm",
47030    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47031)]
47032pub fn vreinterpretq_p8_s8(a: int8x16_t) -> poly8x16_t {
47033    let a: int8x16_t =
47034        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
47035    unsafe {
47036        let ret_val: poly8x16_t = transmute(a);
47037        simd_shuffle!(
47038            ret_val,
47039            ret_val,
47040            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
47041        )
47042    }
47043}
47044#[doc = "Vector reinterpret cast operation"]
47045#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_s8)"]
47046#[inline]
47047#[cfg(target_endian = "little")]
47048#[target_feature(enable = "neon")]
47049#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47050#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47051#[cfg_attr(
47052    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47053    assert_instr(nop)
47054)]
47055#[cfg_attr(
47056    not(target_arch = "arm"),
47057    stable(feature = "neon_intrinsics", since = "1.59.0")
47058)]
47059#[cfg_attr(
47060    target_arch = "arm",
47061    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47062)]
47063pub fn vreinterpretq_p16_s8(a: int8x16_t) -> poly16x8_t {
47064    unsafe { transmute(a) }
47065}
47066#[doc = "Vector reinterpret cast operation"]
47067#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_s8)"]
47068#[inline]
47069#[cfg(target_endian = "big")]
47070#[target_feature(enable = "neon")]
47071#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47072#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47073#[cfg_attr(
47074    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47075    assert_instr(nop)
47076)]
47077#[cfg_attr(
47078    not(target_arch = "arm"),
47079    stable(feature = "neon_intrinsics", since = "1.59.0")
47080)]
47081#[cfg_attr(
47082    target_arch = "arm",
47083    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47084)]
47085pub fn vreinterpretq_p16_s8(a: int8x16_t) -> poly16x8_t {
47086    let a: int8x16_t =
47087        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
47088    unsafe {
47089        let ret_val: poly16x8_t = transmute(a);
47090        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
47091    }
47092}
47093#[doc = "Vector reinterpret cast operation"]
47094#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_s16)"]
47095#[inline]
47096#[cfg(target_endian = "little")]
47097#[target_feature(enable = "neon")]
47098#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47099#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47100#[cfg_attr(
47101    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47102    assert_instr(nop)
47103)]
47104#[cfg_attr(
47105    not(target_arch = "arm"),
47106    stable(feature = "neon_intrinsics", since = "1.59.0")
47107)]
47108#[cfg_attr(
47109    target_arch = "arm",
47110    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47111)]
47112pub fn vreinterpret_f32_s16(a: int16x4_t) -> float32x2_t {
47113    unsafe { transmute(a) }
47114}
47115#[doc = "Vector reinterpret cast operation"]
47116#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_s16)"]
47117#[inline]
47118#[cfg(target_endian = "big")]
47119#[target_feature(enable = "neon")]
47120#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47121#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47122#[cfg_attr(
47123    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47124    assert_instr(nop)
47125)]
47126#[cfg_attr(
47127    not(target_arch = "arm"),
47128    stable(feature = "neon_intrinsics", since = "1.59.0")
47129)]
47130#[cfg_attr(
47131    target_arch = "arm",
47132    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47133)]
47134pub fn vreinterpret_f32_s16(a: int16x4_t) -> float32x2_t {
47135    let a: int16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
47136    unsafe {
47137        let ret_val: float32x2_t = transmute(a);
47138        simd_shuffle!(ret_val, ret_val, [1, 0])
47139    }
47140}
47141#[doc = "Vector reinterpret cast operation"]
47142#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_s16)"]
47143#[inline]
47144#[cfg(target_endian = "little")]
47145#[target_feature(enable = "neon")]
47146#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47147#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47148#[cfg_attr(
47149    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47150    assert_instr(nop)
47151)]
47152#[cfg_attr(
47153    not(target_arch = "arm"),
47154    stable(feature = "neon_intrinsics", since = "1.59.0")
47155)]
47156#[cfg_attr(
47157    target_arch = "arm",
47158    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47159)]
47160pub fn vreinterpret_s8_s16(a: int16x4_t) -> int8x8_t {
47161    unsafe { transmute(a) }
47162}
47163#[doc = "Vector reinterpret cast operation"]
47164#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_s16)"]
47165#[inline]
47166#[cfg(target_endian = "big")]
47167#[target_feature(enable = "neon")]
47168#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47169#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47170#[cfg_attr(
47171    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47172    assert_instr(nop)
47173)]
47174#[cfg_attr(
47175    not(target_arch = "arm"),
47176    stable(feature = "neon_intrinsics", since = "1.59.0")
47177)]
47178#[cfg_attr(
47179    target_arch = "arm",
47180    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47181)]
47182pub fn vreinterpret_s8_s16(a: int16x4_t) -> int8x8_t {
47183    let a: int16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
47184    unsafe {
47185        let ret_val: int8x8_t = transmute(a);
47186        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
47187    }
47188}
47189#[doc = "Vector reinterpret cast operation"]
47190#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_s16)"]
47191#[inline]
47192#[cfg(target_endian = "little")]
47193#[target_feature(enable = "neon")]
47194#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47195#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47196#[cfg_attr(
47197    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47198    assert_instr(nop)
47199)]
47200#[cfg_attr(
47201    not(target_arch = "arm"),
47202    stable(feature = "neon_intrinsics", since = "1.59.0")
47203)]
47204#[cfg_attr(
47205    target_arch = "arm",
47206    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47207)]
47208pub fn vreinterpret_s32_s16(a: int16x4_t) -> int32x2_t {
47209    unsafe { transmute(a) }
47210}
47211#[doc = "Vector reinterpret cast operation"]
47212#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_s16)"]
47213#[inline]
47214#[cfg(target_endian = "big")]
47215#[target_feature(enable = "neon")]
47216#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47217#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47218#[cfg_attr(
47219    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47220    assert_instr(nop)
47221)]
47222#[cfg_attr(
47223    not(target_arch = "arm"),
47224    stable(feature = "neon_intrinsics", since = "1.59.0")
47225)]
47226#[cfg_attr(
47227    target_arch = "arm",
47228    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47229)]
47230pub fn vreinterpret_s32_s16(a: int16x4_t) -> int32x2_t {
47231    let a: int16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
47232    unsafe {
47233        let ret_val: int32x2_t = transmute(a);
47234        simd_shuffle!(ret_val, ret_val, [1, 0])
47235    }
47236}
47237#[doc = "Vector reinterpret cast operation"]
47238#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_s16)"]
47239#[inline]
47240#[cfg(target_endian = "little")]
47241#[target_feature(enable = "neon")]
47242#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47243#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47244#[cfg_attr(
47245    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47246    assert_instr(nop)
47247)]
47248#[cfg_attr(
47249    not(target_arch = "arm"),
47250    stable(feature = "neon_intrinsics", since = "1.59.0")
47251)]
47252#[cfg_attr(
47253    target_arch = "arm",
47254    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47255)]
47256pub fn vreinterpret_s64_s16(a: int16x4_t) -> int64x1_t {
47257    unsafe { transmute(a) }
47258}
47259#[doc = "Vector reinterpret cast operation"]
47260#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_s16)"]
47261#[inline]
47262#[cfg(target_endian = "big")]
47263#[target_feature(enable = "neon")]
47264#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47265#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47266#[cfg_attr(
47267    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47268    assert_instr(nop)
47269)]
47270#[cfg_attr(
47271    not(target_arch = "arm"),
47272    stable(feature = "neon_intrinsics", since = "1.59.0")
47273)]
47274#[cfg_attr(
47275    target_arch = "arm",
47276    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47277)]
47278pub fn vreinterpret_s64_s16(a: int16x4_t) -> int64x1_t {
47279    let a: int16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
47280    unsafe { transmute(a) }
47281}
47282#[doc = "Vector reinterpret cast operation"]
47283#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_s16)"]
47284#[inline]
47285#[cfg(target_endian = "little")]
47286#[target_feature(enable = "neon")]
47287#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47288#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47289#[cfg_attr(
47290    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47291    assert_instr(nop)
47292)]
47293#[cfg_attr(
47294    not(target_arch = "arm"),
47295    stable(feature = "neon_intrinsics", since = "1.59.0")
47296)]
47297#[cfg_attr(
47298    target_arch = "arm",
47299    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47300)]
47301pub fn vreinterpret_u8_s16(a: int16x4_t) -> uint8x8_t {
47302    unsafe { transmute(a) }
47303}
47304#[doc = "Vector reinterpret cast operation"]
47305#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_s16)"]
47306#[inline]
47307#[cfg(target_endian = "big")]
47308#[target_feature(enable = "neon")]
47309#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47310#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47311#[cfg_attr(
47312    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47313    assert_instr(nop)
47314)]
47315#[cfg_attr(
47316    not(target_arch = "arm"),
47317    stable(feature = "neon_intrinsics", since = "1.59.0")
47318)]
47319#[cfg_attr(
47320    target_arch = "arm",
47321    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47322)]
47323pub fn vreinterpret_u8_s16(a: int16x4_t) -> uint8x8_t {
47324    let a: int16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
47325    unsafe {
47326        let ret_val: uint8x8_t = transmute(a);
47327        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
47328    }
47329}
47330#[doc = "Vector reinterpret cast operation"]
47331#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_s16)"]
47332#[inline]
47333#[cfg(target_endian = "little")]
47334#[target_feature(enable = "neon")]
47335#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47336#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47337#[cfg_attr(
47338    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47339    assert_instr(nop)
47340)]
47341#[cfg_attr(
47342    not(target_arch = "arm"),
47343    stable(feature = "neon_intrinsics", since = "1.59.0")
47344)]
47345#[cfg_attr(
47346    target_arch = "arm",
47347    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47348)]
47349pub fn vreinterpret_u16_s16(a: int16x4_t) -> uint16x4_t {
47350    unsafe { transmute(a) }
47351}
47352#[doc = "Vector reinterpret cast operation"]
47353#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_s16)"]
47354#[inline]
47355#[cfg(target_endian = "big")]
47356#[target_feature(enable = "neon")]
47357#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47358#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47359#[cfg_attr(
47360    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47361    assert_instr(nop)
47362)]
47363#[cfg_attr(
47364    not(target_arch = "arm"),
47365    stable(feature = "neon_intrinsics", since = "1.59.0")
47366)]
47367#[cfg_attr(
47368    target_arch = "arm",
47369    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47370)]
47371pub fn vreinterpret_u16_s16(a: int16x4_t) -> uint16x4_t {
47372    let a: int16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
47373    unsafe {
47374        let ret_val: uint16x4_t = transmute(a);
47375        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
47376    }
47377}
47378#[doc = "Vector reinterpret cast operation"]
47379#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_s16)"]
47380#[inline]
47381#[cfg(target_endian = "little")]
47382#[target_feature(enable = "neon")]
47383#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47384#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47385#[cfg_attr(
47386    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47387    assert_instr(nop)
47388)]
47389#[cfg_attr(
47390    not(target_arch = "arm"),
47391    stable(feature = "neon_intrinsics", since = "1.59.0")
47392)]
47393#[cfg_attr(
47394    target_arch = "arm",
47395    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47396)]
47397pub fn vreinterpret_u32_s16(a: int16x4_t) -> uint32x2_t {
47398    unsafe { transmute(a) }
47399}
47400#[doc = "Vector reinterpret cast operation"]
47401#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_s16)"]
47402#[inline]
47403#[cfg(target_endian = "big")]
47404#[target_feature(enable = "neon")]
47405#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47406#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47407#[cfg_attr(
47408    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47409    assert_instr(nop)
47410)]
47411#[cfg_attr(
47412    not(target_arch = "arm"),
47413    stable(feature = "neon_intrinsics", since = "1.59.0")
47414)]
47415#[cfg_attr(
47416    target_arch = "arm",
47417    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47418)]
47419pub fn vreinterpret_u32_s16(a: int16x4_t) -> uint32x2_t {
47420    let a: int16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
47421    unsafe {
47422        let ret_val: uint32x2_t = transmute(a);
47423        simd_shuffle!(ret_val, ret_val, [1, 0])
47424    }
47425}
47426#[doc = "Vector reinterpret cast operation"]
47427#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_s16)"]
47428#[inline]
47429#[cfg(target_endian = "little")]
47430#[target_feature(enable = "neon")]
47431#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47432#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47433#[cfg_attr(
47434    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47435    assert_instr(nop)
47436)]
47437#[cfg_attr(
47438    not(target_arch = "arm"),
47439    stable(feature = "neon_intrinsics", since = "1.59.0")
47440)]
47441#[cfg_attr(
47442    target_arch = "arm",
47443    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47444)]
47445pub fn vreinterpret_u64_s16(a: int16x4_t) -> uint64x1_t {
47446    unsafe { transmute(a) }
47447}
47448#[doc = "Vector reinterpret cast operation"]
47449#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_s16)"]
47450#[inline]
47451#[cfg(target_endian = "big")]
47452#[target_feature(enable = "neon")]
47453#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47454#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47455#[cfg_attr(
47456    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47457    assert_instr(nop)
47458)]
47459#[cfg_attr(
47460    not(target_arch = "arm"),
47461    stable(feature = "neon_intrinsics", since = "1.59.0")
47462)]
47463#[cfg_attr(
47464    target_arch = "arm",
47465    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47466)]
47467pub fn vreinterpret_u64_s16(a: int16x4_t) -> uint64x1_t {
47468    let a: int16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
47469    unsafe { transmute(a) }
47470}
47471#[doc = "Vector reinterpret cast operation"]
47472#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_s16)"]
47473#[inline]
47474#[cfg(target_endian = "little")]
47475#[target_feature(enable = "neon")]
47476#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47477#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47478#[cfg_attr(
47479    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47480    assert_instr(nop)
47481)]
47482#[cfg_attr(
47483    not(target_arch = "arm"),
47484    stable(feature = "neon_intrinsics", since = "1.59.0")
47485)]
47486#[cfg_attr(
47487    target_arch = "arm",
47488    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47489)]
47490pub fn vreinterpret_p8_s16(a: int16x4_t) -> poly8x8_t {
47491    unsafe { transmute(a) }
47492}
47493#[doc = "Vector reinterpret cast operation"]
47494#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_s16)"]
47495#[inline]
47496#[cfg(target_endian = "big")]
47497#[target_feature(enable = "neon")]
47498#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47499#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47500#[cfg_attr(
47501    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47502    assert_instr(nop)
47503)]
47504#[cfg_attr(
47505    not(target_arch = "arm"),
47506    stable(feature = "neon_intrinsics", since = "1.59.0")
47507)]
47508#[cfg_attr(
47509    target_arch = "arm",
47510    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47511)]
47512pub fn vreinterpret_p8_s16(a: int16x4_t) -> poly8x8_t {
47513    let a: int16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
47514    unsafe {
47515        let ret_val: poly8x8_t = transmute(a);
47516        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
47517    }
47518}
47519#[doc = "Vector reinterpret cast operation"]
47520#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_s16)"]
47521#[inline]
47522#[cfg(target_endian = "little")]
47523#[target_feature(enable = "neon")]
47524#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47525#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47526#[cfg_attr(
47527    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47528    assert_instr(nop)
47529)]
47530#[cfg_attr(
47531    not(target_arch = "arm"),
47532    stable(feature = "neon_intrinsics", since = "1.59.0")
47533)]
47534#[cfg_attr(
47535    target_arch = "arm",
47536    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47537)]
47538pub fn vreinterpret_p16_s16(a: int16x4_t) -> poly16x4_t {
47539    unsafe { transmute(a) }
47540}
47541#[doc = "Vector reinterpret cast operation"]
47542#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_s16)"]
47543#[inline]
47544#[cfg(target_endian = "big")]
47545#[target_feature(enable = "neon")]
47546#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47547#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47548#[cfg_attr(
47549    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47550    assert_instr(nop)
47551)]
47552#[cfg_attr(
47553    not(target_arch = "arm"),
47554    stable(feature = "neon_intrinsics", since = "1.59.0")
47555)]
47556#[cfg_attr(
47557    target_arch = "arm",
47558    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47559)]
47560pub fn vreinterpret_p16_s16(a: int16x4_t) -> poly16x4_t {
47561    let a: int16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
47562    unsafe {
47563        let ret_val: poly16x4_t = transmute(a);
47564        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
47565    }
47566}
47567#[doc = "Vector reinterpret cast operation"]
47568#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_s16)"]
47569#[inline]
47570#[cfg(target_endian = "little")]
47571#[target_feature(enable = "neon")]
47572#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47573#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47574#[cfg_attr(
47575    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47576    assert_instr(nop)
47577)]
47578#[cfg_attr(
47579    not(target_arch = "arm"),
47580    stable(feature = "neon_intrinsics", since = "1.59.0")
47581)]
47582#[cfg_attr(
47583    target_arch = "arm",
47584    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47585)]
47586pub fn vreinterpretq_f32_s16(a: int16x8_t) -> float32x4_t {
47587    unsafe { transmute(a) }
47588}
47589#[doc = "Vector reinterpret cast operation"]
47590#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_s16)"]
47591#[inline]
47592#[cfg(target_endian = "big")]
47593#[target_feature(enable = "neon")]
47594#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47595#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47596#[cfg_attr(
47597    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47598    assert_instr(nop)
47599)]
47600#[cfg_attr(
47601    not(target_arch = "arm"),
47602    stable(feature = "neon_intrinsics", since = "1.59.0")
47603)]
47604#[cfg_attr(
47605    target_arch = "arm",
47606    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47607)]
47608pub fn vreinterpretq_f32_s16(a: int16x8_t) -> float32x4_t {
47609    let a: int16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
47610    unsafe {
47611        let ret_val: float32x4_t = transmute(a);
47612        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
47613    }
47614}
47615#[doc = "Vector reinterpret cast operation"]
47616#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_s16)"]
47617#[inline]
47618#[cfg(target_endian = "little")]
47619#[target_feature(enable = "neon")]
47620#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47621#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47622#[cfg_attr(
47623    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47624    assert_instr(nop)
47625)]
47626#[cfg_attr(
47627    not(target_arch = "arm"),
47628    stable(feature = "neon_intrinsics", since = "1.59.0")
47629)]
47630#[cfg_attr(
47631    target_arch = "arm",
47632    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47633)]
47634pub fn vreinterpretq_s8_s16(a: int16x8_t) -> int8x16_t {
47635    unsafe { transmute(a) }
47636}
47637#[doc = "Vector reinterpret cast operation"]
47638#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_s16)"]
47639#[inline]
47640#[cfg(target_endian = "big")]
47641#[target_feature(enable = "neon")]
47642#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47643#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47644#[cfg_attr(
47645    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47646    assert_instr(nop)
47647)]
47648#[cfg_attr(
47649    not(target_arch = "arm"),
47650    stable(feature = "neon_intrinsics", since = "1.59.0")
47651)]
47652#[cfg_attr(
47653    target_arch = "arm",
47654    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47655)]
47656pub fn vreinterpretq_s8_s16(a: int16x8_t) -> int8x16_t {
47657    let a: int16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
47658    unsafe {
47659        let ret_val: int8x16_t = transmute(a);
47660        simd_shuffle!(
47661            ret_val,
47662            ret_val,
47663            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
47664        )
47665    }
47666}
47667#[doc = "Vector reinterpret cast operation"]
47668#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_s16)"]
47669#[inline]
47670#[cfg(target_endian = "little")]
47671#[target_feature(enable = "neon")]
47672#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47673#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47674#[cfg_attr(
47675    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47676    assert_instr(nop)
47677)]
47678#[cfg_attr(
47679    not(target_arch = "arm"),
47680    stable(feature = "neon_intrinsics", since = "1.59.0")
47681)]
47682#[cfg_attr(
47683    target_arch = "arm",
47684    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47685)]
47686pub fn vreinterpretq_s32_s16(a: int16x8_t) -> int32x4_t {
47687    unsafe { transmute(a) }
47688}
47689#[doc = "Vector reinterpret cast operation"]
47690#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_s16)"]
47691#[inline]
47692#[cfg(target_endian = "big")]
47693#[target_feature(enable = "neon")]
47694#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
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_s32_s16(a: int16x8_t) -> int32x4_t {
47709    let a: int16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
47710    unsafe {
47711        let ret_val: int32x4_t = transmute(a);
47712        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
47713    }
47714}
47715#[doc = "Vector reinterpret cast operation"]
47716#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_s16)"]
47717#[inline]
47718#[cfg(target_endian = "little")]
47719#[target_feature(enable = "neon")]
47720#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47721#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47722#[cfg_attr(
47723    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47724    assert_instr(nop)
47725)]
47726#[cfg_attr(
47727    not(target_arch = "arm"),
47728    stable(feature = "neon_intrinsics", since = "1.59.0")
47729)]
47730#[cfg_attr(
47731    target_arch = "arm",
47732    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47733)]
47734pub fn vreinterpretq_s64_s16(a: int16x8_t) -> int64x2_t {
47735    unsafe { transmute(a) }
47736}
47737#[doc = "Vector reinterpret cast operation"]
47738#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_s16)"]
47739#[inline]
47740#[cfg(target_endian = "big")]
47741#[target_feature(enable = "neon")]
47742#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47743#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47744#[cfg_attr(
47745    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47746    assert_instr(nop)
47747)]
47748#[cfg_attr(
47749    not(target_arch = "arm"),
47750    stable(feature = "neon_intrinsics", since = "1.59.0")
47751)]
47752#[cfg_attr(
47753    target_arch = "arm",
47754    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47755)]
47756pub fn vreinterpretq_s64_s16(a: int16x8_t) -> int64x2_t {
47757    let a: int16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
47758    unsafe {
47759        let ret_val: int64x2_t = transmute(a);
47760        simd_shuffle!(ret_val, ret_val, [1, 0])
47761    }
47762}
47763#[doc = "Vector reinterpret cast operation"]
47764#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_s16)"]
47765#[inline]
47766#[cfg(target_endian = "little")]
47767#[target_feature(enable = "neon")]
47768#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47769#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47770#[cfg_attr(
47771    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47772    assert_instr(nop)
47773)]
47774#[cfg_attr(
47775    not(target_arch = "arm"),
47776    stable(feature = "neon_intrinsics", since = "1.59.0")
47777)]
47778#[cfg_attr(
47779    target_arch = "arm",
47780    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47781)]
47782pub fn vreinterpretq_u8_s16(a: int16x8_t) -> uint8x16_t {
47783    unsafe { transmute(a) }
47784}
47785#[doc = "Vector reinterpret cast operation"]
47786#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_s16)"]
47787#[inline]
47788#[cfg(target_endian = "big")]
47789#[target_feature(enable = "neon")]
47790#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47791#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47792#[cfg_attr(
47793    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47794    assert_instr(nop)
47795)]
47796#[cfg_attr(
47797    not(target_arch = "arm"),
47798    stable(feature = "neon_intrinsics", since = "1.59.0")
47799)]
47800#[cfg_attr(
47801    target_arch = "arm",
47802    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47803)]
47804pub fn vreinterpretq_u8_s16(a: int16x8_t) -> uint8x16_t {
47805    let a: int16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
47806    unsafe {
47807        let ret_val: uint8x16_t = transmute(a);
47808        simd_shuffle!(
47809            ret_val,
47810            ret_val,
47811            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
47812        )
47813    }
47814}
47815#[doc = "Vector reinterpret cast operation"]
47816#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_s16)"]
47817#[inline]
47818#[cfg(target_endian = "little")]
47819#[target_feature(enable = "neon")]
47820#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
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_u16_s16(a: int16x8_t) -> uint16x8_t {
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_u16_s16)"]
47839#[inline]
47840#[cfg(target_endian = "big")]
47841#[target_feature(enable = "neon")]
47842#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47843#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47844#[cfg_attr(
47845    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47846    assert_instr(nop)
47847)]
47848#[cfg_attr(
47849    not(target_arch = "arm"),
47850    stable(feature = "neon_intrinsics", since = "1.59.0")
47851)]
47852#[cfg_attr(
47853    target_arch = "arm",
47854    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47855)]
47856pub fn vreinterpretq_u16_s16(a: int16x8_t) -> uint16x8_t {
47857    let a: int16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
47858    unsafe {
47859        let ret_val: uint16x8_t = transmute(a);
47860        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
47861    }
47862}
47863#[doc = "Vector reinterpret cast operation"]
47864#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_s16)"]
47865#[inline]
47866#[cfg(target_endian = "little")]
47867#[target_feature(enable = "neon")]
47868#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47869#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47870#[cfg_attr(
47871    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47872    assert_instr(nop)
47873)]
47874#[cfg_attr(
47875    not(target_arch = "arm"),
47876    stable(feature = "neon_intrinsics", since = "1.59.0")
47877)]
47878#[cfg_attr(
47879    target_arch = "arm",
47880    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47881)]
47882pub fn vreinterpretq_u32_s16(a: int16x8_t) -> uint32x4_t {
47883    unsafe { transmute(a) }
47884}
47885#[doc = "Vector reinterpret cast operation"]
47886#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_s16)"]
47887#[inline]
47888#[cfg(target_endian = "big")]
47889#[target_feature(enable = "neon")]
47890#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47891#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47892#[cfg_attr(
47893    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47894    assert_instr(nop)
47895)]
47896#[cfg_attr(
47897    not(target_arch = "arm"),
47898    stable(feature = "neon_intrinsics", since = "1.59.0")
47899)]
47900#[cfg_attr(
47901    target_arch = "arm",
47902    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47903)]
47904pub fn vreinterpretq_u32_s16(a: int16x8_t) -> uint32x4_t {
47905    let a: int16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
47906    unsafe {
47907        let ret_val: uint32x4_t = transmute(a);
47908        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
47909    }
47910}
47911#[doc = "Vector reinterpret cast operation"]
47912#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_s16)"]
47913#[inline]
47914#[cfg(target_endian = "little")]
47915#[target_feature(enable = "neon")]
47916#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47917#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47918#[cfg_attr(
47919    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47920    assert_instr(nop)
47921)]
47922#[cfg_attr(
47923    not(target_arch = "arm"),
47924    stable(feature = "neon_intrinsics", since = "1.59.0")
47925)]
47926#[cfg_attr(
47927    target_arch = "arm",
47928    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47929)]
47930pub fn vreinterpretq_u64_s16(a: int16x8_t) -> uint64x2_t {
47931    unsafe { transmute(a) }
47932}
47933#[doc = "Vector reinterpret cast operation"]
47934#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_s16)"]
47935#[inline]
47936#[cfg(target_endian = "big")]
47937#[target_feature(enable = "neon")]
47938#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47939#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47940#[cfg_attr(
47941    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47942    assert_instr(nop)
47943)]
47944#[cfg_attr(
47945    not(target_arch = "arm"),
47946    stable(feature = "neon_intrinsics", since = "1.59.0")
47947)]
47948#[cfg_attr(
47949    target_arch = "arm",
47950    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47951)]
47952pub fn vreinterpretq_u64_s16(a: int16x8_t) -> uint64x2_t {
47953    let a: int16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
47954    unsafe {
47955        let ret_val: uint64x2_t = transmute(a);
47956        simd_shuffle!(ret_val, ret_val, [1, 0])
47957    }
47958}
47959#[doc = "Vector reinterpret cast operation"]
47960#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_s16)"]
47961#[inline]
47962#[cfg(target_endian = "little")]
47963#[target_feature(enable = "neon")]
47964#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47965#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47966#[cfg_attr(
47967    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47968    assert_instr(nop)
47969)]
47970#[cfg_attr(
47971    not(target_arch = "arm"),
47972    stable(feature = "neon_intrinsics", since = "1.59.0")
47973)]
47974#[cfg_attr(
47975    target_arch = "arm",
47976    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47977)]
47978pub fn vreinterpretq_p8_s16(a: int16x8_t) -> poly8x16_t {
47979    unsafe { transmute(a) }
47980}
47981#[doc = "Vector reinterpret cast operation"]
47982#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_s16)"]
47983#[inline]
47984#[cfg(target_endian = "big")]
47985#[target_feature(enable = "neon")]
47986#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47987#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47988#[cfg_attr(
47989    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47990    assert_instr(nop)
47991)]
47992#[cfg_attr(
47993    not(target_arch = "arm"),
47994    stable(feature = "neon_intrinsics", since = "1.59.0")
47995)]
47996#[cfg_attr(
47997    target_arch = "arm",
47998    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47999)]
48000pub fn vreinterpretq_p8_s16(a: int16x8_t) -> poly8x16_t {
48001    let a: int16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
48002    unsafe {
48003        let ret_val: poly8x16_t = transmute(a);
48004        simd_shuffle!(
48005            ret_val,
48006            ret_val,
48007            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
48008        )
48009    }
48010}
48011#[doc = "Vector reinterpret cast operation"]
48012#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_s16)"]
48013#[inline]
48014#[cfg(target_endian = "little")]
48015#[target_feature(enable = "neon")]
48016#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48017#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48018#[cfg_attr(
48019    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48020    assert_instr(nop)
48021)]
48022#[cfg_attr(
48023    not(target_arch = "arm"),
48024    stable(feature = "neon_intrinsics", since = "1.59.0")
48025)]
48026#[cfg_attr(
48027    target_arch = "arm",
48028    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48029)]
48030pub fn vreinterpretq_p16_s16(a: int16x8_t) -> poly16x8_t {
48031    unsafe { transmute(a) }
48032}
48033#[doc = "Vector reinterpret cast operation"]
48034#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_s16)"]
48035#[inline]
48036#[cfg(target_endian = "big")]
48037#[target_feature(enable = "neon")]
48038#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48039#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48040#[cfg_attr(
48041    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48042    assert_instr(nop)
48043)]
48044#[cfg_attr(
48045    not(target_arch = "arm"),
48046    stable(feature = "neon_intrinsics", since = "1.59.0")
48047)]
48048#[cfg_attr(
48049    target_arch = "arm",
48050    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48051)]
48052pub fn vreinterpretq_p16_s16(a: int16x8_t) -> poly16x8_t {
48053    let a: int16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
48054    unsafe {
48055        let ret_val: poly16x8_t = transmute(a);
48056        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
48057    }
48058}
48059#[doc = "Vector reinterpret cast operation"]
48060#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_s32)"]
48061#[inline]
48062#[cfg(target_endian = "little")]
48063#[target_feature(enable = "neon")]
48064#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48065#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48066#[cfg_attr(
48067    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48068    assert_instr(nop)
48069)]
48070#[cfg_attr(
48071    not(target_arch = "arm"),
48072    stable(feature = "neon_intrinsics", since = "1.59.0")
48073)]
48074#[cfg_attr(
48075    target_arch = "arm",
48076    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48077)]
48078pub fn vreinterpret_f32_s32(a: int32x2_t) -> float32x2_t {
48079    unsafe { transmute(a) }
48080}
48081#[doc = "Vector reinterpret cast operation"]
48082#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_s32)"]
48083#[inline]
48084#[cfg(target_endian = "big")]
48085#[target_feature(enable = "neon")]
48086#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48087#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48088#[cfg_attr(
48089    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48090    assert_instr(nop)
48091)]
48092#[cfg_attr(
48093    not(target_arch = "arm"),
48094    stable(feature = "neon_intrinsics", since = "1.59.0")
48095)]
48096#[cfg_attr(
48097    target_arch = "arm",
48098    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48099)]
48100pub fn vreinterpret_f32_s32(a: int32x2_t) -> float32x2_t {
48101    let a: int32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
48102    unsafe {
48103        let ret_val: float32x2_t = transmute(a);
48104        simd_shuffle!(ret_val, ret_val, [1, 0])
48105    }
48106}
48107#[doc = "Vector reinterpret cast operation"]
48108#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_s32)"]
48109#[inline]
48110#[cfg(target_endian = "little")]
48111#[target_feature(enable = "neon")]
48112#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48113#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48114#[cfg_attr(
48115    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48116    assert_instr(nop)
48117)]
48118#[cfg_attr(
48119    not(target_arch = "arm"),
48120    stable(feature = "neon_intrinsics", since = "1.59.0")
48121)]
48122#[cfg_attr(
48123    target_arch = "arm",
48124    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48125)]
48126pub fn vreinterpret_s8_s32(a: int32x2_t) -> int8x8_t {
48127    unsafe { transmute(a) }
48128}
48129#[doc = "Vector reinterpret cast operation"]
48130#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_s32)"]
48131#[inline]
48132#[cfg(target_endian = "big")]
48133#[target_feature(enable = "neon")]
48134#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48135#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48136#[cfg_attr(
48137    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48138    assert_instr(nop)
48139)]
48140#[cfg_attr(
48141    not(target_arch = "arm"),
48142    stable(feature = "neon_intrinsics", since = "1.59.0")
48143)]
48144#[cfg_attr(
48145    target_arch = "arm",
48146    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48147)]
48148pub fn vreinterpret_s8_s32(a: int32x2_t) -> int8x8_t {
48149    let a: int32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
48150    unsafe {
48151        let ret_val: int8x8_t = transmute(a);
48152        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
48153    }
48154}
48155#[doc = "Vector reinterpret cast operation"]
48156#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_s32)"]
48157#[inline]
48158#[cfg(target_endian = "little")]
48159#[target_feature(enable = "neon")]
48160#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48161#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48162#[cfg_attr(
48163    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48164    assert_instr(nop)
48165)]
48166#[cfg_attr(
48167    not(target_arch = "arm"),
48168    stable(feature = "neon_intrinsics", since = "1.59.0")
48169)]
48170#[cfg_attr(
48171    target_arch = "arm",
48172    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48173)]
48174pub fn vreinterpret_s16_s32(a: int32x2_t) -> int16x4_t {
48175    unsafe { transmute(a) }
48176}
48177#[doc = "Vector reinterpret cast operation"]
48178#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_s32)"]
48179#[inline]
48180#[cfg(target_endian = "big")]
48181#[target_feature(enable = "neon")]
48182#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48183#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48184#[cfg_attr(
48185    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48186    assert_instr(nop)
48187)]
48188#[cfg_attr(
48189    not(target_arch = "arm"),
48190    stable(feature = "neon_intrinsics", since = "1.59.0")
48191)]
48192#[cfg_attr(
48193    target_arch = "arm",
48194    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48195)]
48196pub fn vreinterpret_s16_s32(a: int32x2_t) -> int16x4_t {
48197    let a: int32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
48198    unsafe {
48199        let ret_val: int16x4_t = transmute(a);
48200        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
48201    }
48202}
48203#[doc = "Vector reinterpret cast operation"]
48204#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_s32)"]
48205#[inline]
48206#[cfg(target_endian = "little")]
48207#[target_feature(enable = "neon")]
48208#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48209#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48210#[cfg_attr(
48211    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48212    assert_instr(nop)
48213)]
48214#[cfg_attr(
48215    not(target_arch = "arm"),
48216    stable(feature = "neon_intrinsics", since = "1.59.0")
48217)]
48218#[cfg_attr(
48219    target_arch = "arm",
48220    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48221)]
48222pub fn vreinterpret_s64_s32(a: int32x2_t) -> int64x1_t {
48223    unsafe { transmute(a) }
48224}
48225#[doc = "Vector reinterpret cast operation"]
48226#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_s32)"]
48227#[inline]
48228#[cfg(target_endian = "big")]
48229#[target_feature(enable = "neon")]
48230#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48231#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48232#[cfg_attr(
48233    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48234    assert_instr(nop)
48235)]
48236#[cfg_attr(
48237    not(target_arch = "arm"),
48238    stable(feature = "neon_intrinsics", since = "1.59.0")
48239)]
48240#[cfg_attr(
48241    target_arch = "arm",
48242    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48243)]
48244pub fn vreinterpret_s64_s32(a: int32x2_t) -> int64x1_t {
48245    let a: int32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
48246    unsafe { transmute(a) }
48247}
48248#[doc = "Vector reinterpret cast operation"]
48249#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_s32)"]
48250#[inline]
48251#[cfg(target_endian = "little")]
48252#[target_feature(enable = "neon")]
48253#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48254#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48255#[cfg_attr(
48256    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48257    assert_instr(nop)
48258)]
48259#[cfg_attr(
48260    not(target_arch = "arm"),
48261    stable(feature = "neon_intrinsics", since = "1.59.0")
48262)]
48263#[cfg_attr(
48264    target_arch = "arm",
48265    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48266)]
48267pub fn vreinterpret_u8_s32(a: int32x2_t) -> uint8x8_t {
48268    unsafe { transmute(a) }
48269}
48270#[doc = "Vector reinterpret cast operation"]
48271#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_s32)"]
48272#[inline]
48273#[cfg(target_endian = "big")]
48274#[target_feature(enable = "neon")]
48275#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48276#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48277#[cfg_attr(
48278    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48279    assert_instr(nop)
48280)]
48281#[cfg_attr(
48282    not(target_arch = "arm"),
48283    stable(feature = "neon_intrinsics", since = "1.59.0")
48284)]
48285#[cfg_attr(
48286    target_arch = "arm",
48287    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48288)]
48289pub fn vreinterpret_u8_s32(a: int32x2_t) -> uint8x8_t {
48290    let a: int32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
48291    unsafe {
48292        let ret_val: uint8x8_t = transmute(a);
48293        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
48294    }
48295}
48296#[doc = "Vector reinterpret cast operation"]
48297#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_s32)"]
48298#[inline]
48299#[cfg(target_endian = "little")]
48300#[target_feature(enable = "neon")]
48301#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48302#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48303#[cfg_attr(
48304    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48305    assert_instr(nop)
48306)]
48307#[cfg_attr(
48308    not(target_arch = "arm"),
48309    stable(feature = "neon_intrinsics", since = "1.59.0")
48310)]
48311#[cfg_attr(
48312    target_arch = "arm",
48313    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48314)]
48315pub fn vreinterpret_u16_s32(a: int32x2_t) -> uint16x4_t {
48316    unsafe { transmute(a) }
48317}
48318#[doc = "Vector reinterpret cast operation"]
48319#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_s32)"]
48320#[inline]
48321#[cfg(target_endian = "big")]
48322#[target_feature(enable = "neon")]
48323#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48324#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48325#[cfg_attr(
48326    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48327    assert_instr(nop)
48328)]
48329#[cfg_attr(
48330    not(target_arch = "arm"),
48331    stable(feature = "neon_intrinsics", since = "1.59.0")
48332)]
48333#[cfg_attr(
48334    target_arch = "arm",
48335    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48336)]
48337pub fn vreinterpret_u16_s32(a: int32x2_t) -> uint16x4_t {
48338    let a: int32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
48339    unsafe {
48340        let ret_val: uint16x4_t = transmute(a);
48341        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
48342    }
48343}
48344#[doc = "Vector reinterpret cast operation"]
48345#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_s32)"]
48346#[inline]
48347#[cfg(target_endian = "little")]
48348#[target_feature(enable = "neon")]
48349#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48350#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48351#[cfg_attr(
48352    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48353    assert_instr(nop)
48354)]
48355#[cfg_attr(
48356    not(target_arch = "arm"),
48357    stable(feature = "neon_intrinsics", since = "1.59.0")
48358)]
48359#[cfg_attr(
48360    target_arch = "arm",
48361    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48362)]
48363pub fn vreinterpret_u32_s32(a: int32x2_t) -> uint32x2_t {
48364    unsafe { transmute(a) }
48365}
48366#[doc = "Vector reinterpret cast operation"]
48367#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_s32)"]
48368#[inline]
48369#[cfg(target_endian = "big")]
48370#[target_feature(enable = "neon")]
48371#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48372#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48373#[cfg_attr(
48374    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48375    assert_instr(nop)
48376)]
48377#[cfg_attr(
48378    not(target_arch = "arm"),
48379    stable(feature = "neon_intrinsics", since = "1.59.0")
48380)]
48381#[cfg_attr(
48382    target_arch = "arm",
48383    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48384)]
48385pub fn vreinterpret_u32_s32(a: int32x2_t) -> uint32x2_t {
48386    let a: int32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
48387    unsafe {
48388        let ret_val: uint32x2_t = transmute(a);
48389        simd_shuffle!(ret_val, ret_val, [1, 0])
48390    }
48391}
48392#[doc = "Vector reinterpret cast operation"]
48393#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_s32)"]
48394#[inline]
48395#[cfg(target_endian = "little")]
48396#[target_feature(enable = "neon")]
48397#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48398#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48399#[cfg_attr(
48400    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48401    assert_instr(nop)
48402)]
48403#[cfg_attr(
48404    not(target_arch = "arm"),
48405    stable(feature = "neon_intrinsics", since = "1.59.0")
48406)]
48407#[cfg_attr(
48408    target_arch = "arm",
48409    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48410)]
48411pub fn vreinterpret_u64_s32(a: int32x2_t) -> uint64x1_t {
48412    unsafe { transmute(a) }
48413}
48414#[doc = "Vector reinterpret cast operation"]
48415#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_s32)"]
48416#[inline]
48417#[cfg(target_endian = "big")]
48418#[target_feature(enable = "neon")]
48419#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48420#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48421#[cfg_attr(
48422    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48423    assert_instr(nop)
48424)]
48425#[cfg_attr(
48426    not(target_arch = "arm"),
48427    stable(feature = "neon_intrinsics", since = "1.59.0")
48428)]
48429#[cfg_attr(
48430    target_arch = "arm",
48431    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48432)]
48433pub fn vreinterpret_u64_s32(a: int32x2_t) -> uint64x1_t {
48434    let a: int32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
48435    unsafe { transmute(a) }
48436}
48437#[doc = "Vector reinterpret cast operation"]
48438#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_s32)"]
48439#[inline]
48440#[cfg(target_endian = "little")]
48441#[target_feature(enable = "neon")]
48442#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48443#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48444#[cfg_attr(
48445    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48446    assert_instr(nop)
48447)]
48448#[cfg_attr(
48449    not(target_arch = "arm"),
48450    stable(feature = "neon_intrinsics", since = "1.59.0")
48451)]
48452#[cfg_attr(
48453    target_arch = "arm",
48454    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48455)]
48456pub fn vreinterpret_p8_s32(a: int32x2_t) -> poly8x8_t {
48457    unsafe { transmute(a) }
48458}
48459#[doc = "Vector reinterpret cast operation"]
48460#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_s32)"]
48461#[inline]
48462#[cfg(target_endian = "big")]
48463#[target_feature(enable = "neon")]
48464#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48465#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48466#[cfg_attr(
48467    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48468    assert_instr(nop)
48469)]
48470#[cfg_attr(
48471    not(target_arch = "arm"),
48472    stable(feature = "neon_intrinsics", since = "1.59.0")
48473)]
48474#[cfg_attr(
48475    target_arch = "arm",
48476    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48477)]
48478pub fn vreinterpret_p8_s32(a: int32x2_t) -> poly8x8_t {
48479    let a: int32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
48480    unsafe {
48481        let ret_val: poly8x8_t = transmute(a);
48482        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
48483    }
48484}
48485#[doc = "Vector reinterpret cast operation"]
48486#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_s32)"]
48487#[inline]
48488#[cfg(target_endian = "little")]
48489#[target_feature(enable = "neon")]
48490#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48491#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48492#[cfg_attr(
48493    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48494    assert_instr(nop)
48495)]
48496#[cfg_attr(
48497    not(target_arch = "arm"),
48498    stable(feature = "neon_intrinsics", since = "1.59.0")
48499)]
48500#[cfg_attr(
48501    target_arch = "arm",
48502    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48503)]
48504pub fn vreinterpret_p16_s32(a: int32x2_t) -> poly16x4_t {
48505    unsafe { transmute(a) }
48506}
48507#[doc = "Vector reinterpret cast operation"]
48508#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_s32)"]
48509#[inline]
48510#[cfg(target_endian = "big")]
48511#[target_feature(enable = "neon")]
48512#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48513#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48514#[cfg_attr(
48515    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48516    assert_instr(nop)
48517)]
48518#[cfg_attr(
48519    not(target_arch = "arm"),
48520    stable(feature = "neon_intrinsics", since = "1.59.0")
48521)]
48522#[cfg_attr(
48523    target_arch = "arm",
48524    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48525)]
48526pub fn vreinterpret_p16_s32(a: int32x2_t) -> poly16x4_t {
48527    let a: int32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
48528    unsafe {
48529        let ret_val: poly16x4_t = transmute(a);
48530        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
48531    }
48532}
48533#[doc = "Vector reinterpret cast operation"]
48534#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_s32)"]
48535#[inline]
48536#[cfg(target_endian = "little")]
48537#[target_feature(enable = "neon")]
48538#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48539#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48540#[cfg_attr(
48541    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48542    assert_instr(nop)
48543)]
48544#[cfg_attr(
48545    not(target_arch = "arm"),
48546    stable(feature = "neon_intrinsics", since = "1.59.0")
48547)]
48548#[cfg_attr(
48549    target_arch = "arm",
48550    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48551)]
48552pub fn vreinterpretq_f32_s32(a: int32x4_t) -> float32x4_t {
48553    unsafe { transmute(a) }
48554}
48555#[doc = "Vector reinterpret cast operation"]
48556#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_s32)"]
48557#[inline]
48558#[cfg(target_endian = "big")]
48559#[target_feature(enable = "neon")]
48560#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48561#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48562#[cfg_attr(
48563    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48564    assert_instr(nop)
48565)]
48566#[cfg_attr(
48567    not(target_arch = "arm"),
48568    stable(feature = "neon_intrinsics", since = "1.59.0")
48569)]
48570#[cfg_attr(
48571    target_arch = "arm",
48572    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48573)]
48574pub fn vreinterpretq_f32_s32(a: int32x4_t) -> float32x4_t {
48575    let a: int32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
48576    unsafe {
48577        let ret_val: float32x4_t = transmute(a);
48578        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
48579    }
48580}
48581#[doc = "Vector reinterpret cast operation"]
48582#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_s32)"]
48583#[inline]
48584#[cfg(target_endian = "little")]
48585#[target_feature(enable = "neon")]
48586#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48587#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48588#[cfg_attr(
48589    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48590    assert_instr(nop)
48591)]
48592#[cfg_attr(
48593    not(target_arch = "arm"),
48594    stable(feature = "neon_intrinsics", since = "1.59.0")
48595)]
48596#[cfg_attr(
48597    target_arch = "arm",
48598    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48599)]
48600pub fn vreinterpretq_s8_s32(a: int32x4_t) -> int8x16_t {
48601    unsafe { transmute(a) }
48602}
48603#[doc = "Vector reinterpret cast operation"]
48604#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_s32)"]
48605#[inline]
48606#[cfg(target_endian = "big")]
48607#[target_feature(enable = "neon")]
48608#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48609#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48610#[cfg_attr(
48611    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48612    assert_instr(nop)
48613)]
48614#[cfg_attr(
48615    not(target_arch = "arm"),
48616    stable(feature = "neon_intrinsics", since = "1.59.0")
48617)]
48618#[cfg_attr(
48619    target_arch = "arm",
48620    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48621)]
48622pub fn vreinterpretq_s8_s32(a: int32x4_t) -> int8x16_t {
48623    let a: int32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
48624    unsafe {
48625        let ret_val: int8x16_t = transmute(a);
48626        simd_shuffle!(
48627            ret_val,
48628            ret_val,
48629            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
48630        )
48631    }
48632}
48633#[doc = "Vector reinterpret cast operation"]
48634#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_s32)"]
48635#[inline]
48636#[cfg(target_endian = "little")]
48637#[target_feature(enable = "neon")]
48638#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48639#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48640#[cfg_attr(
48641    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48642    assert_instr(nop)
48643)]
48644#[cfg_attr(
48645    not(target_arch = "arm"),
48646    stable(feature = "neon_intrinsics", since = "1.59.0")
48647)]
48648#[cfg_attr(
48649    target_arch = "arm",
48650    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48651)]
48652pub fn vreinterpretq_s16_s32(a: int32x4_t) -> int16x8_t {
48653    unsafe { transmute(a) }
48654}
48655#[doc = "Vector reinterpret cast operation"]
48656#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_s32)"]
48657#[inline]
48658#[cfg(target_endian = "big")]
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(nop))]
48662#[cfg_attr(
48663    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48664    assert_instr(nop)
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 vreinterpretq_s16_s32(a: int32x4_t) -> int16x8_t {
48675    let a: int32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
48676    unsafe {
48677        let ret_val: int16x8_t = transmute(a);
48678        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
48679    }
48680}
48681#[doc = "Vector reinterpret cast operation"]
48682#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_s32)"]
48683#[inline]
48684#[cfg(target_endian = "little")]
48685#[target_feature(enable = "neon")]
48686#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48687#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48688#[cfg_attr(
48689    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48690    assert_instr(nop)
48691)]
48692#[cfg_attr(
48693    not(target_arch = "arm"),
48694    stable(feature = "neon_intrinsics", since = "1.59.0")
48695)]
48696#[cfg_attr(
48697    target_arch = "arm",
48698    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48699)]
48700pub fn vreinterpretq_s64_s32(a: int32x4_t) -> int64x2_t {
48701    unsafe { transmute(a) }
48702}
48703#[doc = "Vector reinterpret cast operation"]
48704#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_s32)"]
48705#[inline]
48706#[cfg(target_endian = "big")]
48707#[target_feature(enable = "neon")]
48708#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48709#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48710#[cfg_attr(
48711    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48712    assert_instr(nop)
48713)]
48714#[cfg_attr(
48715    not(target_arch = "arm"),
48716    stable(feature = "neon_intrinsics", since = "1.59.0")
48717)]
48718#[cfg_attr(
48719    target_arch = "arm",
48720    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48721)]
48722pub fn vreinterpretq_s64_s32(a: int32x4_t) -> int64x2_t {
48723    let a: int32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
48724    unsafe {
48725        let ret_val: int64x2_t = transmute(a);
48726        simd_shuffle!(ret_val, ret_val, [1, 0])
48727    }
48728}
48729#[doc = "Vector reinterpret cast operation"]
48730#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_s32)"]
48731#[inline]
48732#[cfg(target_endian = "little")]
48733#[target_feature(enable = "neon")]
48734#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48735#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48736#[cfg_attr(
48737    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48738    assert_instr(nop)
48739)]
48740#[cfg_attr(
48741    not(target_arch = "arm"),
48742    stable(feature = "neon_intrinsics", since = "1.59.0")
48743)]
48744#[cfg_attr(
48745    target_arch = "arm",
48746    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48747)]
48748pub fn vreinterpretq_u8_s32(a: int32x4_t) -> uint8x16_t {
48749    unsafe { transmute(a) }
48750}
48751#[doc = "Vector reinterpret cast operation"]
48752#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_s32)"]
48753#[inline]
48754#[cfg(target_endian = "big")]
48755#[target_feature(enable = "neon")]
48756#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48757#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48758#[cfg_attr(
48759    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48760    assert_instr(nop)
48761)]
48762#[cfg_attr(
48763    not(target_arch = "arm"),
48764    stable(feature = "neon_intrinsics", since = "1.59.0")
48765)]
48766#[cfg_attr(
48767    target_arch = "arm",
48768    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48769)]
48770pub fn vreinterpretq_u8_s32(a: int32x4_t) -> uint8x16_t {
48771    let a: int32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
48772    unsafe {
48773        let ret_val: uint8x16_t = transmute(a);
48774        simd_shuffle!(
48775            ret_val,
48776            ret_val,
48777            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
48778        )
48779    }
48780}
48781#[doc = "Vector reinterpret cast operation"]
48782#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_s32)"]
48783#[inline]
48784#[cfg(target_endian = "little")]
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(nop))]
48788#[cfg_attr(
48789    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48790    assert_instr(nop)
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 vreinterpretq_u16_s32(a: int32x4_t) -> uint16x8_t {
48801    unsafe { transmute(a) }
48802}
48803#[doc = "Vector reinterpret cast operation"]
48804#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_s32)"]
48805#[inline]
48806#[cfg(target_endian = "big")]
48807#[target_feature(enable = "neon")]
48808#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48809#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48810#[cfg_attr(
48811    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48812    assert_instr(nop)
48813)]
48814#[cfg_attr(
48815    not(target_arch = "arm"),
48816    stable(feature = "neon_intrinsics", since = "1.59.0")
48817)]
48818#[cfg_attr(
48819    target_arch = "arm",
48820    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48821)]
48822pub fn vreinterpretq_u16_s32(a: int32x4_t) -> uint16x8_t {
48823    let a: int32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
48824    unsafe {
48825        let ret_val: uint16x8_t = transmute(a);
48826        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
48827    }
48828}
48829#[doc = "Vector reinterpret cast operation"]
48830#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_s32)"]
48831#[inline]
48832#[cfg(target_endian = "little")]
48833#[target_feature(enable = "neon")]
48834#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48835#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48836#[cfg_attr(
48837    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48838    assert_instr(nop)
48839)]
48840#[cfg_attr(
48841    not(target_arch = "arm"),
48842    stable(feature = "neon_intrinsics", since = "1.59.0")
48843)]
48844#[cfg_attr(
48845    target_arch = "arm",
48846    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48847)]
48848pub fn vreinterpretq_u32_s32(a: int32x4_t) -> uint32x4_t {
48849    unsafe { transmute(a) }
48850}
48851#[doc = "Vector reinterpret cast operation"]
48852#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_s32)"]
48853#[inline]
48854#[cfg(target_endian = "big")]
48855#[target_feature(enable = "neon")]
48856#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48857#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48858#[cfg_attr(
48859    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48860    assert_instr(nop)
48861)]
48862#[cfg_attr(
48863    not(target_arch = "arm"),
48864    stable(feature = "neon_intrinsics", since = "1.59.0")
48865)]
48866#[cfg_attr(
48867    target_arch = "arm",
48868    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48869)]
48870pub fn vreinterpretq_u32_s32(a: int32x4_t) -> uint32x4_t {
48871    let a: int32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
48872    unsafe {
48873        let ret_val: uint32x4_t = transmute(a);
48874        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
48875    }
48876}
48877#[doc = "Vector reinterpret cast operation"]
48878#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_s32)"]
48879#[inline]
48880#[cfg(target_endian = "little")]
48881#[target_feature(enable = "neon")]
48882#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48883#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48884#[cfg_attr(
48885    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48886    assert_instr(nop)
48887)]
48888#[cfg_attr(
48889    not(target_arch = "arm"),
48890    stable(feature = "neon_intrinsics", since = "1.59.0")
48891)]
48892#[cfg_attr(
48893    target_arch = "arm",
48894    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48895)]
48896pub fn vreinterpretq_u64_s32(a: int32x4_t) -> uint64x2_t {
48897    unsafe { transmute(a) }
48898}
48899#[doc = "Vector reinterpret cast operation"]
48900#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_s32)"]
48901#[inline]
48902#[cfg(target_endian = "big")]
48903#[target_feature(enable = "neon")]
48904#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48905#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48906#[cfg_attr(
48907    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48908    assert_instr(nop)
48909)]
48910#[cfg_attr(
48911    not(target_arch = "arm"),
48912    stable(feature = "neon_intrinsics", since = "1.59.0")
48913)]
48914#[cfg_attr(
48915    target_arch = "arm",
48916    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48917)]
48918pub fn vreinterpretq_u64_s32(a: int32x4_t) -> uint64x2_t {
48919    let a: int32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
48920    unsafe {
48921        let ret_val: uint64x2_t = transmute(a);
48922        simd_shuffle!(ret_val, ret_val, [1, 0])
48923    }
48924}
48925#[doc = "Vector reinterpret cast operation"]
48926#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_s32)"]
48927#[inline]
48928#[cfg(target_endian = "little")]
48929#[target_feature(enable = "neon")]
48930#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48931#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48932#[cfg_attr(
48933    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48934    assert_instr(nop)
48935)]
48936#[cfg_attr(
48937    not(target_arch = "arm"),
48938    stable(feature = "neon_intrinsics", since = "1.59.0")
48939)]
48940#[cfg_attr(
48941    target_arch = "arm",
48942    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48943)]
48944pub fn vreinterpretq_p8_s32(a: int32x4_t) -> poly8x16_t {
48945    unsafe { transmute(a) }
48946}
48947#[doc = "Vector reinterpret cast operation"]
48948#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_s32)"]
48949#[inline]
48950#[cfg(target_endian = "big")]
48951#[target_feature(enable = "neon")]
48952#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48953#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48954#[cfg_attr(
48955    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48956    assert_instr(nop)
48957)]
48958#[cfg_attr(
48959    not(target_arch = "arm"),
48960    stable(feature = "neon_intrinsics", since = "1.59.0")
48961)]
48962#[cfg_attr(
48963    target_arch = "arm",
48964    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48965)]
48966pub fn vreinterpretq_p8_s32(a: int32x4_t) -> poly8x16_t {
48967    let a: int32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
48968    unsafe {
48969        let ret_val: poly8x16_t = transmute(a);
48970        simd_shuffle!(
48971            ret_val,
48972            ret_val,
48973            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
48974        )
48975    }
48976}
48977#[doc = "Vector reinterpret cast operation"]
48978#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_s32)"]
48979#[inline]
48980#[cfg(target_endian = "little")]
48981#[target_feature(enable = "neon")]
48982#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48983#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48984#[cfg_attr(
48985    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48986    assert_instr(nop)
48987)]
48988#[cfg_attr(
48989    not(target_arch = "arm"),
48990    stable(feature = "neon_intrinsics", since = "1.59.0")
48991)]
48992#[cfg_attr(
48993    target_arch = "arm",
48994    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48995)]
48996pub fn vreinterpretq_p16_s32(a: int32x4_t) -> poly16x8_t {
48997    unsafe { transmute(a) }
48998}
48999#[doc = "Vector reinterpret cast operation"]
49000#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_s32)"]
49001#[inline]
49002#[cfg(target_endian = "big")]
49003#[target_feature(enable = "neon")]
49004#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49005#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49006#[cfg_attr(
49007    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49008    assert_instr(nop)
49009)]
49010#[cfg_attr(
49011    not(target_arch = "arm"),
49012    stable(feature = "neon_intrinsics", since = "1.59.0")
49013)]
49014#[cfg_attr(
49015    target_arch = "arm",
49016    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49017)]
49018pub fn vreinterpretq_p16_s32(a: int32x4_t) -> poly16x8_t {
49019    let a: int32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
49020    unsafe {
49021        let ret_val: poly16x8_t = transmute(a);
49022        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
49023    }
49024}
49025#[doc = "Vector reinterpret cast operation"]
49026#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_s64)"]
49027#[inline]
49028#[cfg(target_endian = "little")]
49029#[target_feature(enable = "neon")]
49030#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49031#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49032#[cfg_attr(
49033    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49034    assert_instr(nop)
49035)]
49036#[cfg_attr(
49037    not(target_arch = "arm"),
49038    stable(feature = "neon_intrinsics", since = "1.59.0")
49039)]
49040#[cfg_attr(
49041    target_arch = "arm",
49042    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49043)]
49044pub fn vreinterpret_f32_s64(a: int64x1_t) -> float32x2_t {
49045    unsafe { transmute(a) }
49046}
49047#[doc = "Vector reinterpret cast operation"]
49048#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_s64)"]
49049#[inline]
49050#[cfg(target_endian = "big")]
49051#[target_feature(enable = "neon")]
49052#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49053#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49054#[cfg_attr(
49055    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49056    assert_instr(nop)
49057)]
49058#[cfg_attr(
49059    not(target_arch = "arm"),
49060    stable(feature = "neon_intrinsics", since = "1.59.0")
49061)]
49062#[cfg_attr(
49063    target_arch = "arm",
49064    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49065)]
49066pub fn vreinterpret_f32_s64(a: int64x1_t) -> float32x2_t {
49067    unsafe {
49068        let ret_val: float32x2_t = transmute(a);
49069        simd_shuffle!(ret_val, ret_val, [1, 0])
49070    }
49071}
49072#[doc = "Vector reinterpret cast operation"]
49073#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_s64)"]
49074#[inline]
49075#[cfg(target_endian = "little")]
49076#[target_feature(enable = "neon")]
49077#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49078#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49079#[cfg_attr(
49080    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49081    assert_instr(nop)
49082)]
49083#[cfg_attr(
49084    not(target_arch = "arm"),
49085    stable(feature = "neon_intrinsics", since = "1.59.0")
49086)]
49087#[cfg_attr(
49088    target_arch = "arm",
49089    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49090)]
49091pub fn vreinterpret_s8_s64(a: int64x1_t) -> int8x8_t {
49092    unsafe { transmute(a) }
49093}
49094#[doc = "Vector reinterpret cast operation"]
49095#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_s64)"]
49096#[inline]
49097#[cfg(target_endian = "big")]
49098#[target_feature(enable = "neon")]
49099#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49100#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49101#[cfg_attr(
49102    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49103    assert_instr(nop)
49104)]
49105#[cfg_attr(
49106    not(target_arch = "arm"),
49107    stable(feature = "neon_intrinsics", since = "1.59.0")
49108)]
49109#[cfg_attr(
49110    target_arch = "arm",
49111    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49112)]
49113pub fn vreinterpret_s8_s64(a: int64x1_t) -> int8x8_t {
49114    unsafe {
49115        let ret_val: int8x8_t = transmute(a);
49116        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
49117    }
49118}
49119#[doc = "Vector reinterpret cast operation"]
49120#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_s64)"]
49121#[inline]
49122#[cfg(target_endian = "little")]
49123#[target_feature(enable = "neon")]
49124#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49125#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49126#[cfg_attr(
49127    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49128    assert_instr(nop)
49129)]
49130#[cfg_attr(
49131    not(target_arch = "arm"),
49132    stable(feature = "neon_intrinsics", since = "1.59.0")
49133)]
49134#[cfg_attr(
49135    target_arch = "arm",
49136    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49137)]
49138pub fn vreinterpret_s16_s64(a: int64x1_t) -> int16x4_t {
49139    unsafe { transmute(a) }
49140}
49141#[doc = "Vector reinterpret cast operation"]
49142#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_s64)"]
49143#[inline]
49144#[cfg(target_endian = "big")]
49145#[target_feature(enable = "neon")]
49146#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49147#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49148#[cfg_attr(
49149    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49150    assert_instr(nop)
49151)]
49152#[cfg_attr(
49153    not(target_arch = "arm"),
49154    stable(feature = "neon_intrinsics", since = "1.59.0")
49155)]
49156#[cfg_attr(
49157    target_arch = "arm",
49158    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49159)]
49160pub fn vreinterpret_s16_s64(a: int64x1_t) -> int16x4_t {
49161    unsafe {
49162        let ret_val: int16x4_t = transmute(a);
49163        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
49164    }
49165}
49166#[doc = "Vector reinterpret cast operation"]
49167#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_s64)"]
49168#[inline]
49169#[cfg(target_endian = "little")]
49170#[target_feature(enable = "neon")]
49171#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49172#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49173#[cfg_attr(
49174    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49175    assert_instr(nop)
49176)]
49177#[cfg_attr(
49178    not(target_arch = "arm"),
49179    stable(feature = "neon_intrinsics", since = "1.59.0")
49180)]
49181#[cfg_attr(
49182    target_arch = "arm",
49183    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49184)]
49185pub fn vreinterpret_s32_s64(a: int64x1_t) -> int32x2_t {
49186    unsafe { transmute(a) }
49187}
49188#[doc = "Vector reinterpret cast operation"]
49189#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_s64)"]
49190#[inline]
49191#[cfg(target_endian = "big")]
49192#[target_feature(enable = "neon")]
49193#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49194#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49195#[cfg_attr(
49196    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49197    assert_instr(nop)
49198)]
49199#[cfg_attr(
49200    not(target_arch = "arm"),
49201    stable(feature = "neon_intrinsics", since = "1.59.0")
49202)]
49203#[cfg_attr(
49204    target_arch = "arm",
49205    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49206)]
49207pub fn vreinterpret_s32_s64(a: int64x1_t) -> int32x2_t {
49208    unsafe {
49209        let ret_val: int32x2_t = transmute(a);
49210        simd_shuffle!(ret_val, ret_val, [1, 0])
49211    }
49212}
49213#[doc = "Vector reinterpret cast operation"]
49214#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_s64)"]
49215#[inline]
49216#[cfg(target_endian = "little")]
49217#[target_feature(enable = "neon")]
49218#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49219#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49220#[cfg_attr(
49221    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49222    assert_instr(nop)
49223)]
49224#[cfg_attr(
49225    not(target_arch = "arm"),
49226    stable(feature = "neon_intrinsics", since = "1.59.0")
49227)]
49228#[cfg_attr(
49229    target_arch = "arm",
49230    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49231)]
49232pub fn vreinterpret_u8_s64(a: int64x1_t) -> uint8x8_t {
49233    unsafe { transmute(a) }
49234}
49235#[doc = "Vector reinterpret cast operation"]
49236#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_s64)"]
49237#[inline]
49238#[cfg(target_endian = "big")]
49239#[target_feature(enable = "neon")]
49240#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49241#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49242#[cfg_attr(
49243    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49244    assert_instr(nop)
49245)]
49246#[cfg_attr(
49247    not(target_arch = "arm"),
49248    stable(feature = "neon_intrinsics", since = "1.59.0")
49249)]
49250#[cfg_attr(
49251    target_arch = "arm",
49252    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49253)]
49254pub fn vreinterpret_u8_s64(a: int64x1_t) -> uint8x8_t {
49255    unsafe {
49256        let ret_val: uint8x8_t = transmute(a);
49257        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
49258    }
49259}
49260#[doc = "Vector reinterpret cast operation"]
49261#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_s64)"]
49262#[inline]
49263#[cfg(target_endian = "little")]
49264#[target_feature(enable = "neon")]
49265#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49266#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49267#[cfg_attr(
49268    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49269    assert_instr(nop)
49270)]
49271#[cfg_attr(
49272    not(target_arch = "arm"),
49273    stable(feature = "neon_intrinsics", since = "1.59.0")
49274)]
49275#[cfg_attr(
49276    target_arch = "arm",
49277    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49278)]
49279pub fn vreinterpret_u16_s64(a: int64x1_t) -> uint16x4_t {
49280    unsafe { transmute(a) }
49281}
49282#[doc = "Vector reinterpret cast operation"]
49283#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_s64)"]
49284#[inline]
49285#[cfg(target_endian = "big")]
49286#[target_feature(enable = "neon")]
49287#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49288#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49289#[cfg_attr(
49290    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49291    assert_instr(nop)
49292)]
49293#[cfg_attr(
49294    not(target_arch = "arm"),
49295    stable(feature = "neon_intrinsics", since = "1.59.0")
49296)]
49297#[cfg_attr(
49298    target_arch = "arm",
49299    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49300)]
49301pub fn vreinterpret_u16_s64(a: int64x1_t) -> uint16x4_t {
49302    unsafe {
49303        let ret_val: uint16x4_t = transmute(a);
49304        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
49305    }
49306}
49307#[doc = "Vector reinterpret cast operation"]
49308#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_s64)"]
49309#[inline]
49310#[cfg(target_endian = "little")]
49311#[target_feature(enable = "neon")]
49312#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49313#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49314#[cfg_attr(
49315    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49316    assert_instr(nop)
49317)]
49318#[cfg_attr(
49319    not(target_arch = "arm"),
49320    stable(feature = "neon_intrinsics", since = "1.59.0")
49321)]
49322#[cfg_attr(
49323    target_arch = "arm",
49324    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49325)]
49326pub fn vreinterpret_u32_s64(a: int64x1_t) -> uint32x2_t {
49327    unsafe { transmute(a) }
49328}
49329#[doc = "Vector reinterpret cast operation"]
49330#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_s64)"]
49331#[inline]
49332#[cfg(target_endian = "big")]
49333#[target_feature(enable = "neon")]
49334#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49335#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49336#[cfg_attr(
49337    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49338    assert_instr(nop)
49339)]
49340#[cfg_attr(
49341    not(target_arch = "arm"),
49342    stable(feature = "neon_intrinsics", since = "1.59.0")
49343)]
49344#[cfg_attr(
49345    target_arch = "arm",
49346    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49347)]
49348pub fn vreinterpret_u32_s64(a: int64x1_t) -> uint32x2_t {
49349    unsafe {
49350        let ret_val: uint32x2_t = transmute(a);
49351        simd_shuffle!(ret_val, ret_val, [1, 0])
49352    }
49353}
49354#[doc = "Vector reinterpret cast operation"]
49355#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_s64)"]
49356#[inline]
49357#[target_feature(enable = "neon")]
49358#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49359#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49360#[cfg_attr(
49361    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49362    assert_instr(nop)
49363)]
49364#[cfg_attr(
49365    not(target_arch = "arm"),
49366    stable(feature = "neon_intrinsics", since = "1.59.0")
49367)]
49368#[cfg_attr(
49369    target_arch = "arm",
49370    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49371)]
49372pub fn vreinterpret_u64_s64(a: int64x1_t) -> uint64x1_t {
49373    unsafe { transmute(a) }
49374}
49375#[doc = "Vector reinterpret cast operation"]
49376#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_s64)"]
49377#[inline]
49378#[cfg(target_endian = "little")]
49379#[target_feature(enable = "neon")]
49380#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49381#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49382#[cfg_attr(
49383    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49384    assert_instr(nop)
49385)]
49386#[cfg_attr(
49387    not(target_arch = "arm"),
49388    stable(feature = "neon_intrinsics", since = "1.59.0")
49389)]
49390#[cfg_attr(
49391    target_arch = "arm",
49392    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49393)]
49394pub fn vreinterpret_p8_s64(a: int64x1_t) -> poly8x8_t {
49395    unsafe { transmute(a) }
49396}
49397#[doc = "Vector reinterpret cast operation"]
49398#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_s64)"]
49399#[inline]
49400#[cfg(target_endian = "big")]
49401#[target_feature(enable = "neon")]
49402#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49403#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49404#[cfg_attr(
49405    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49406    assert_instr(nop)
49407)]
49408#[cfg_attr(
49409    not(target_arch = "arm"),
49410    stable(feature = "neon_intrinsics", since = "1.59.0")
49411)]
49412#[cfg_attr(
49413    target_arch = "arm",
49414    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49415)]
49416pub fn vreinterpret_p8_s64(a: int64x1_t) -> poly8x8_t {
49417    unsafe {
49418        let ret_val: poly8x8_t = transmute(a);
49419        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
49420    }
49421}
49422#[doc = "Vector reinterpret cast operation"]
49423#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_s64)"]
49424#[inline]
49425#[cfg(target_endian = "little")]
49426#[target_feature(enable = "neon")]
49427#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49428#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49429#[cfg_attr(
49430    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49431    assert_instr(nop)
49432)]
49433#[cfg_attr(
49434    not(target_arch = "arm"),
49435    stable(feature = "neon_intrinsics", since = "1.59.0")
49436)]
49437#[cfg_attr(
49438    target_arch = "arm",
49439    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49440)]
49441pub fn vreinterpret_p16_s64(a: int64x1_t) -> poly16x4_t {
49442    unsafe { transmute(a) }
49443}
49444#[doc = "Vector reinterpret cast operation"]
49445#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_s64)"]
49446#[inline]
49447#[cfg(target_endian = "big")]
49448#[target_feature(enable = "neon")]
49449#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49450#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49451#[cfg_attr(
49452    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49453    assert_instr(nop)
49454)]
49455#[cfg_attr(
49456    not(target_arch = "arm"),
49457    stable(feature = "neon_intrinsics", since = "1.59.0")
49458)]
49459#[cfg_attr(
49460    target_arch = "arm",
49461    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49462)]
49463pub fn vreinterpret_p16_s64(a: int64x1_t) -> poly16x4_t {
49464    unsafe {
49465        let ret_val: poly16x4_t = transmute(a);
49466        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
49467    }
49468}
49469#[doc = "Vector reinterpret cast operation"]
49470#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_s64)"]
49471#[inline]
49472#[cfg(target_endian = "little")]
49473#[target_feature(enable = "neon")]
49474#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49475#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49476#[cfg_attr(
49477    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49478    assert_instr(nop)
49479)]
49480#[cfg_attr(
49481    not(target_arch = "arm"),
49482    stable(feature = "neon_intrinsics", since = "1.59.0")
49483)]
49484#[cfg_attr(
49485    target_arch = "arm",
49486    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49487)]
49488pub fn vreinterpretq_f32_s64(a: int64x2_t) -> float32x4_t {
49489    unsafe { transmute(a) }
49490}
49491#[doc = "Vector reinterpret cast operation"]
49492#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_s64)"]
49493#[inline]
49494#[cfg(target_endian = "big")]
49495#[target_feature(enable = "neon")]
49496#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49497#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49498#[cfg_attr(
49499    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49500    assert_instr(nop)
49501)]
49502#[cfg_attr(
49503    not(target_arch = "arm"),
49504    stable(feature = "neon_intrinsics", since = "1.59.0")
49505)]
49506#[cfg_attr(
49507    target_arch = "arm",
49508    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49509)]
49510pub fn vreinterpretq_f32_s64(a: int64x2_t) -> float32x4_t {
49511    let a: int64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
49512    unsafe {
49513        let ret_val: float32x4_t = transmute(a);
49514        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
49515    }
49516}
49517#[doc = "Vector reinterpret cast operation"]
49518#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_s64)"]
49519#[inline]
49520#[cfg(target_endian = "little")]
49521#[target_feature(enable = "neon")]
49522#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49523#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49524#[cfg_attr(
49525    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49526    assert_instr(nop)
49527)]
49528#[cfg_attr(
49529    not(target_arch = "arm"),
49530    stable(feature = "neon_intrinsics", since = "1.59.0")
49531)]
49532#[cfg_attr(
49533    target_arch = "arm",
49534    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49535)]
49536pub fn vreinterpretq_s8_s64(a: int64x2_t) -> int8x16_t {
49537    unsafe { transmute(a) }
49538}
49539#[doc = "Vector reinterpret cast operation"]
49540#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_s64)"]
49541#[inline]
49542#[cfg(target_endian = "big")]
49543#[target_feature(enable = "neon")]
49544#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49545#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49546#[cfg_attr(
49547    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49548    assert_instr(nop)
49549)]
49550#[cfg_attr(
49551    not(target_arch = "arm"),
49552    stable(feature = "neon_intrinsics", since = "1.59.0")
49553)]
49554#[cfg_attr(
49555    target_arch = "arm",
49556    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49557)]
49558pub fn vreinterpretq_s8_s64(a: int64x2_t) -> int8x16_t {
49559    let a: int64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
49560    unsafe {
49561        let ret_val: int8x16_t = transmute(a);
49562        simd_shuffle!(
49563            ret_val,
49564            ret_val,
49565            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
49566        )
49567    }
49568}
49569#[doc = "Vector reinterpret cast operation"]
49570#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_s64)"]
49571#[inline]
49572#[cfg(target_endian = "little")]
49573#[target_feature(enable = "neon")]
49574#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49575#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49576#[cfg_attr(
49577    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49578    assert_instr(nop)
49579)]
49580#[cfg_attr(
49581    not(target_arch = "arm"),
49582    stable(feature = "neon_intrinsics", since = "1.59.0")
49583)]
49584#[cfg_attr(
49585    target_arch = "arm",
49586    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49587)]
49588pub fn vreinterpretq_s16_s64(a: int64x2_t) -> int16x8_t {
49589    unsafe { transmute(a) }
49590}
49591#[doc = "Vector reinterpret cast operation"]
49592#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_s64)"]
49593#[inline]
49594#[cfg(target_endian = "big")]
49595#[target_feature(enable = "neon")]
49596#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49597#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49598#[cfg_attr(
49599    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49600    assert_instr(nop)
49601)]
49602#[cfg_attr(
49603    not(target_arch = "arm"),
49604    stable(feature = "neon_intrinsics", since = "1.59.0")
49605)]
49606#[cfg_attr(
49607    target_arch = "arm",
49608    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49609)]
49610pub fn vreinterpretq_s16_s64(a: int64x2_t) -> int16x8_t {
49611    let a: int64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
49612    unsafe {
49613        let ret_val: int16x8_t = transmute(a);
49614        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
49615    }
49616}
49617#[doc = "Vector reinterpret cast operation"]
49618#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_s64)"]
49619#[inline]
49620#[cfg(target_endian = "little")]
49621#[target_feature(enable = "neon")]
49622#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49623#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49624#[cfg_attr(
49625    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49626    assert_instr(nop)
49627)]
49628#[cfg_attr(
49629    not(target_arch = "arm"),
49630    stable(feature = "neon_intrinsics", since = "1.59.0")
49631)]
49632#[cfg_attr(
49633    target_arch = "arm",
49634    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49635)]
49636pub fn vreinterpretq_s32_s64(a: int64x2_t) -> int32x4_t {
49637    unsafe { transmute(a) }
49638}
49639#[doc = "Vector reinterpret cast operation"]
49640#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_s64)"]
49641#[inline]
49642#[cfg(target_endian = "big")]
49643#[target_feature(enable = "neon")]
49644#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49645#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49646#[cfg_attr(
49647    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49648    assert_instr(nop)
49649)]
49650#[cfg_attr(
49651    not(target_arch = "arm"),
49652    stable(feature = "neon_intrinsics", since = "1.59.0")
49653)]
49654#[cfg_attr(
49655    target_arch = "arm",
49656    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49657)]
49658pub fn vreinterpretq_s32_s64(a: int64x2_t) -> int32x4_t {
49659    let a: int64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
49660    unsafe {
49661        let ret_val: int32x4_t = transmute(a);
49662        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
49663    }
49664}
49665#[doc = "Vector reinterpret cast operation"]
49666#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_s64)"]
49667#[inline]
49668#[cfg(target_endian = "little")]
49669#[target_feature(enable = "neon")]
49670#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49671#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49672#[cfg_attr(
49673    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49674    assert_instr(nop)
49675)]
49676#[cfg_attr(
49677    not(target_arch = "arm"),
49678    stable(feature = "neon_intrinsics", since = "1.59.0")
49679)]
49680#[cfg_attr(
49681    target_arch = "arm",
49682    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49683)]
49684pub fn vreinterpretq_u8_s64(a: int64x2_t) -> uint8x16_t {
49685    unsafe { transmute(a) }
49686}
49687#[doc = "Vector reinterpret cast operation"]
49688#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_s64)"]
49689#[inline]
49690#[cfg(target_endian = "big")]
49691#[target_feature(enable = "neon")]
49692#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49693#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49694#[cfg_attr(
49695    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49696    assert_instr(nop)
49697)]
49698#[cfg_attr(
49699    not(target_arch = "arm"),
49700    stable(feature = "neon_intrinsics", since = "1.59.0")
49701)]
49702#[cfg_attr(
49703    target_arch = "arm",
49704    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49705)]
49706pub fn vreinterpretq_u8_s64(a: int64x2_t) -> uint8x16_t {
49707    let a: int64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
49708    unsafe {
49709        let ret_val: uint8x16_t = transmute(a);
49710        simd_shuffle!(
49711            ret_val,
49712            ret_val,
49713            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
49714        )
49715    }
49716}
49717#[doc = "Vector reinterpret cast operation"]
49718#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_s64)"]
49719#[inline]
49720#[cfg(target_endian = "little")]
49721#[target_feature(enable = "neon")]
49722#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49723#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49724#[cfg_attr(
49725    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49726    assert_instr(nop)
49727)]
49728#[cfg_attr(
49729    not(target_arch = "arm"),
49730    stable(feature = "neon_intrinsics", since = "1.59.0")
49731)]
49732#[cfg_attr(
49733    target_arch = "arm",
49734    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49735)]
49736pub fn vreinterpretq_u16_s64(a: int64x2_t) -> uint16x8_t {
49737    unsafe { transmute(a) }
49738}
49739#[doc = "Vector reinterpret cast operation"]
49740#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_s64)"]
49741#[inline]
49742#[cfg(target_endian = "big")]
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(nop))]
49746#[cfg_attr(
49747    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49748    assert_instr(nop)
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 vreinterpretq_u16_s64(a: int64x2_t) -> uint16x8_t {
49759    let a: int64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
49760    unsafe {
49761        let ret_val: uint16x8_t = transmute(a);
49762        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
49763    }
49764}
49765#[doc = "Vector reinterpret cast operation"]
49766#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_s64)"]
49767#[inline]
49768#[cfg(target_endian = "little")]
49769#[target_feature(enable = "neon")]
49770#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49771#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49772#[cfg_attr(
49773    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49774    assert_instr(nop)
49775)]
49776#[cfg_attr(
49777    not(target_arch = "arm"),
49778    stable(feature = "neon_intrinsics", since = "1.59.0")
49779)]
49780#[cfg_attr(
49781    target_arch = "arm",
49782    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49783)]
49784pub fn vreinterpretq_u32_s64(a: int64x2_t) -> uint32x4_t {
49785    unsafe { transmute(a) }
49786}
49787#[doc = "Vector reinterpret cast operation"]
49788#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_s64)"]
49789#[inline]
49790#[cfg(target_endian = "big")]
49791#[target_feature(enable = "neon")]
49792#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49793#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49794#[cfg_attr(
49795    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49796    assert_instr(nop)
49797)]
49798#[cfg_attr(
49799    not(target_arch = "arm"),
49800    stable(feature = "neon_intrinsics", since = "1.59.0")
49801)]
49802#[cfg_attr(
49803    target_arch = "arm",
49804    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49805)]
49806pub fn vreinterpretq_u32_s64(a: int64x2_t) -> uint32x4_t {
49807    let a: int64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
49808    unsafe {
49809        let ret_val: uint32x4_t = transmute(a);
49810        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
49811    }
49812}
49813#[doc = "Vector reinterpret cast operation"]
49814#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_s64)"]
49815#[inline]
49816#[cfg(target_endian = "little")]
49817#[target_feature(enable = "neon")]
49818#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49819#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49820#[cfg_attr(
49821    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49822    assert_instr(nop)
49823)]
49824#[cfg_attr(
49825    not(target_arch = "arm"),
49826    stable(feature = "neon_intrinsics", since = "1.59.0")
49827)]
49828#[cfg_attr(
49829    target_arch = "arm",
49830    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49831)]
49832pub fn vreinterpretq_u64_s64(a: int64x2_t) -> uint64x2_t {
49833    unsafe { transmute(a) }
49834}
49835#[doc = "Vector reinterpret cast operation"]
49836#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_s64)"]
49837#[inline]
49838#[cfg(target_endian = "big")]
49839#[target_feature(enable = "neon")]
49840#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49841#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49842#[cfg_attr(
49843    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49844    assert_instr(nop)
49845)]
49846#[cfg_attr(
49847    not(target_arch = "arm"),
49848    stable(feature = "neon_intrinsics", since = "1.59.0")
49849)]
49850#[cfg_attr(
49851    target_arch = "arm",
49852    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49853)]
49854pub fn vreinterpretq_u64_s64(a: int64x2_t) -> uint64x2_t {
49855    let a: int64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
49856    unsafe {
49857        let ret_val: uint64x2_t = transmute(a);
49858        simd_shuffle!(ret_val, ret_val, [1, 0])
49859    }
49860}
49861#[doc = "Vector reinterpret cast operation"]
49862#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_s64)"]
49863#[inline]
49864#[cfg(target_endian = "little")]
49865#[target_feature(enable = "neon")]
49866#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49867#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49868#[cfg_attr(
49869    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49870    assert_instr(nop)
49871)]
49872#[cfg_attr(
49873    not(target_arch = "arm"),
49874    stable(feature = "neon_intrinsics", since = "1.59.0")
49875)]
49876#[cfg_attr(
49877    target_arch = "arm",
49878    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49879)]
49880pub fn vreinterpretq_p8_s64(a: int64x2_t) -> poly8x16_t {
49881    unsafe { transmute(a) }
49882}
49883#[doc = "Vector reinterpret cast operation"]
49884#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_s64)"]
49885#[inline]
49886#[cfg(target_endian = "big")]
49887#[target_feature(enable = "neon")]
49888#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49889#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49890#[cfg_attr(
49891    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49892    assert_instr(nop)
49893)]
49894#[cfg_attr(
49895    not(target_arch = "arm"),
49896    stable(feature = "neon_intrinsics", since = "1.59.0")
49897)]
49898#[cfg_attr(
49899    target_arch = "arm",
49900    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49901)]
49902pub fn vreinterpretq_p8_s64(a: int64x2_t) -> poly8x16_t {
49903    let a: int64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
49904    unsafe {
49905        let ret_val: poly8x16_t = transmute(a);
49906        simd_shuffle!(
49907            ret_val,
49908            ret_val,
49909            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
49910        )
49911    }
49912}
49913#[doc = "Vector reinterpret cast operation"]
49914#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_s64)"]
49915#[inline]
49916#[cfg(target_endian = "little")]
49917#[target_feature(enable = "neon")]
49918#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49919#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49920#[cfg_attr(
49921    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49922    assert_instr(nop)
49923)]
49924#[cfg_attr(
49925    not(target_arch = "arm"),
49926    stable(feature = "neon_intrinsics", since = "1.59.0")
49927)]
49928#[cfg_attr(
49929    target_arch = "arm",
49930    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49931)]
49932pub fn vreinterpretq_p16_s64(a: int64x2_t) -> poly16x8_t {
49933    unsafe { transmute(a) }
49934}
49935#[doc = "Vector reinterpret cast operation"]
49936#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_s64)"]
49937#[inline]
49938#[cfg(target_endian = "big")]
49939#[target_feature(enable = "neon")]
49940#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49941#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49942#[cfg_attr(
49943    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49944    assert_instr(nop)
49945)]
49946#[cfg_attr(
49947    not(target_arch = "arm"),
49948    stable(feature = "neon_intrinsics", since = "1.59.0")
49949)]
49950#[cfg_attr(
49951    target_arch = "arm",
49952    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49953)]
49954pub fn vreinterpretq_p16_s64(a: int64x2_t) -> poly16x8_t {
49955    let a: int64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
49956    unsafe {
49957        let ret_val: poly16x8_t = transmute(a);
49958        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
49959    }
49960}
49961#[doc = "Vector reinterpret cast operation"]
49962#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_u8)"]
49963#[inline]
49964#[cfg(target_endian = "little")]
49965#[target_feature(enable = "neon")]
49966#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49967#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49968#[cfg_attr(
49969    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49970    assert_instr(nop)
49971)]
49972#[cfg_attr(
49973    not(target_arch = "arm"),
49974    stable(feature = "neon_intrinsics", since = "1.59.0")
49975)]
49976#[cfg_attr(
49977    target_arch = "arm",
49978    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49979)]
49980pub fn vreinterpret_f32_u8(a: uint8x8_t) -> float32x2_t {
49981    unsafe { transmute(a) }
49982}
49983#[doc = "Vector reinterpret cast operation"]
49984#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_u8)"]
49985#[inline]
49986#[cfg(target_endian = "big")]
49987#[target_feature(enable = "neon")]
49988#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49989#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49990#[cfg_attr(
49991    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49992    assert_instr(nop)
49993)]
49994#[cfg_attr(
49995    not(target_arch = "arm"),
49996    stable(feature = "neon_intrinsics", since = "1.59.0")
49997)]
49998#[cfg_attr(
49999    target_arch = "arm",
50000    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50001)]
50002pub fn vreinterpret_f32_u8(a: uint8x8_t) -> float32x2_t {
50003    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
50004    unsafe {
50005        let ret_val: float32x2_t = transmute(a);
50006        simd_shuffle!(ret_val, ret_val, [1, 0])
50007    }
50008}
50009#[doc = "Vector reinterpret cast operation"]
50010#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_u8)"]
50011#[inline]
50012#[cfg(target_endian = "little")]
50013#[target_feature(enable = "neon")]
50014#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50015#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50016#[cfg_attr(
50017    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50018    assert_instr(nop)
50019)]
50020#[cfg_attr(
50021    not(target_arch = "arm"),
50022    stable(feature = "neon_intrinsics", since = "1.59.0")
50023)]
50024#[cfg_attr(
50025    target_arch = "arm",
50026    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50027)]
50028pub fn vreinterpret_s8_u8(a: uint8x8_t) -> int8x8_t {
50029    unsafe { transmute(a) }
50030}
50031#[doc = "Vector reinterpret cast operation"]
50032#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_u8)"]
50033#[inline]
50034#[cfg(target_endian = "big")]
50035#[target_feature(enable = "neon")]
50036#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50037#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50038#[cfg_attr(
50039    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50040    assert_instr(nop)
50041)]
50042#[cfg_attr(
50043    not(target_arch = "arm"),
50044    stable(feature = "neon_intrinsics", since = "1.59.0")
50045)]
50046#[cfg_attr(
50047    target_arch = "arm",
50048    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50049)]
50050pub fn vreinterpret_s8_u8(a: uint8x8_t) -> int8x8_t {
50051    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
50052    unsafe {
50053        let ret_val: int8x8_t = transmute(a);
50054        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
50055    }
50056}
50057#[doc = "Vector reinterpret cast operation"]
50058#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_u8)"]
50059#[inline]
50060#[cfg(target_endian = "little")]
50061#[target_feature(enable = "neon")]
50062#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50063#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50064#[cfg_attr(
50065    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50066    assert_instr(nop)
50067)]
50068#[cfg_attr(
50069    not(target_arch = "arm"),
50070    stable(feature = "neon_intrinsics", since = "1.59.0")
50071)]
50072#[cfg_attr(
50073    target_arch = "arm",
50074    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50075)]
50076pub fn vreinterpret_s16_u8(a: uint8x8_t) -> int16x4_t {
50077    unsafe { transmute(a) }
50078}
50079#[doc = "Vector reinterpret cast operation"]
50080#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_u8)"]
50081#[inline]
50082#[cfg(target_endian = "big")]
50083#[target_feature(enable = "neon")]
50084#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50085#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50086#[cfg_attr(
50087    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50088    assert_instr(nop)
50089)]
50090#[cfg_attr(
50091    not(target_arch = "arm"),
50092    stable(feature = "neon_intrinsics", since = "1.59.0")
50093)]
50094#[cfg_attr(
50095    target_arch = "arm",
50096    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50097)]
50098pub fn vreinterpret_s16_u8(a: uint8x8_t) -> int16x4_t {
50099    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
50100    unsafe {
50101        let ret_val: int16x4_t = transmute(a);
50102        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
50103    }
50104}
50105#[doc = "Vector reinterpret cast operation"]
50106#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_u8)"]
50107#[inline]
50108#[cfg(target_endian = "little")]
50109#[target_feature(enable = "neon")]
50110#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50111#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50112#[cfg_attr(
50113    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50114    assert_instr(nop)
50115)]
50116#[cfg_attr(
50117    not(target_arch = "arm"),
50118    stable(feature = "neon_intrinsics", since = "1.59.0")
50119)]
50120#[cfg_attr(
50121    target_arch = "arm",
50122    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50123)]
50124pub fn vreinterpret_s32_u8(a: uint8x8_t) -> int32x2_t {
50125    unsafe { transmute(a) }
50126}
50127#[doc = "Vector reinterpret cast operation"]
50128#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_u8)"]
50129#[inline]
50130#[cfg(target_endian = "big")]
50131#[target_feature(enable = "neon")]
50132#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50133#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50134#[cfg_attr(
50135    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50136    assert_instr(nop)
50137)]
50138#[cfg_attr(
50139    not(target_arch = "arm"),
50140    stable(feature = "neon_intrinsics", since = "1.59.0")
50141)]
50142#[cfg_attr(
50143    target_arch = "arm",
50144    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50145)]
50146pub fn vreinterpret_s32_u8(a: uint8x8_t) -> int32x2_t {
50147    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
50148    unsafe {
50149        let ret_val: int32x2_t = transmute(a);
50150        simd_shuffle!(ret_val, ret_val, [1, 0])
50151    }
50152}
50153#[doc = "Vector reinterpret cast operation"]
50154#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_u8)"]
50155#[inline]
50156#[cfg(target_endian = "little")]
50157#[target_feature(enable = "neon")]
50158#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50159#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50160#[cfg_attr(
50161    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50162    assert_instr(nop)
50163)]
50164#[cfg_attr(
50165    not(target_arch = "arm"),
50166    stable(feature = "neon_intrinsics", since = "1.59.0")
50167)]
50168#[cfg_attr(
50169    target_arch = "arm",
50170    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50171)]
50172pub fn vreinterpret_s64_u8(a: uint8x8_t) -> int64x1_t {
50173    unsafe { transmute(a) }
50174}
50175#[doc = "Vector reinterpret cast operation"]
50176#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_u8)"]
50177#[inline]
50178#[cfg(target_endian = "big")]
50179#[target_feature(enable = "neon")]
50180#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50181#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50182#[cfg_attr(
50183    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50184    assert_instr(nop)
50185)]
50186#[cfg_attr(
50187    not(target_arch = "arm"),
50188    stable(feature = "neon_intrinsics", since = "1.59.0")
50189)]
50190#[cfg_attr(
50191    target_arch = "arm",
50192    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50193)]
50194pub fn vreinterpret_s64_u8(a: uint8x8_t) -> int64x1_t {
50195    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
50196    unsafe { transmute(a) }
50197}
50198#[doc = "Vector reinterpret cast operation"]
50199#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_u8)"]
50200#[inline]
50201#[cfg(target_endian = "little")]
50202#[target_feature(enable = "neon")]
50203#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50204#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50205#[cfg_attr(
50206    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50207    assert_instr(nop)
50208)]
50209#[cfg_attr(
50210    not(target_arch = "arm"),
50211    stable(feature = "neon_intrinsics", since = "1.59.0")
50212)]
50213#[cfg_attr(
50214    target_arch = "arm",
50215    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50216)]
50217pub fn vreinterpret_u16_u8(a: uint8x8_t) -> uint16x4_t {
50218    unsafe { transmute(a) }
50219}
50220#[doc = "Vector reinterpret cast operation"]
50221#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_u8)"]
50222#[inline]
50223#[cfg(target_endian = "big")]
50224#[target_feature(enable = "neon")]
50225#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50226#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50227#[cfg_attr(
50228    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50229    assert_instr(nop)
50230)]
50231#[cfg_attr(
50232    not(target_arch = "arm"),
50233    stable(feature = "neon_intrinsics", since = "1.59.0")
50234)]
50235#[cfg_attr(
50236    target_arch = "arm",
50237    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50238)]
50239pub fn vreinterpret_u16_u8(a: uint8x8_t) -> uint16x4_t {
50240    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
50241    unsafe {
50242        let ret_val: uint16x4_t = transmute(a);
50243        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
50244    }
50245}
50246#[doc = "Vector reinterpret cast operation"]
50247#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_u8)"]
50248#[inline]
50249#[cfg(target_endian = "little")]
50250#[target_feature(enable = "neon")]
50251#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50252#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50253#[cfg_attr(
50254    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50255    assert_instr(nop)
50256)]
50257#[cfg_attr(
50258    not(target_arch = "arm"),
50259    stable(feature = "neon_intrinsics", since = "1.59.0")
50260)]
50261#[cfg_attr(
50262    target_arch = "arm",
50263    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50264)]
50265pub fn vreinterpret_u32_u8(a: uint8x8_t) -> uint32x2_t {
50266    unsafe { transmute(a) }
50267}
50268#[doc = "Vector reinterpret cast operation"]
50269#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_u8)"]
50270#[inline]
50271#[cfg(target_endian = "big")]
50272#[target_feature(enable = "neon")]
50273#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50274#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50275#[cfg_attr(
50276    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50277    assert_instr(nop)
50278)]
50279#[cfg_attr(
50280    not(target_arch = "arm"),
50281    stable(feature = "neon_intrinsics", since = "1.59.0")
50282)]
50283#[cfg_attr(
50284    target_arch = "arm",
50285    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50286)]
50287pub fn vreinterpret_u32_u8(a: uint8x8_t) -> uint32x2_t {
50288    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
50289    unsafe {
50290        let ret_val: uint32x2_t = transmute(a);
50291        simd_shuffle!(ret_val, ret_val, [1, 0])
50292    }
50293}
50294#[doc = "Vector reinterpret cast operation"]
50295#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_u8)"]
50296#[inline]
50297#[cfg(target_endian = "little")]
50298#[target_feature(enable = "neon")]
50299#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50300#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50301#[cfg_attr(
50302    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50303    assert_instr(nop)
50304)]
50305#[cfg_attr(
50306    not(target_arch = "arm"),
50307    stable(feature = "neon_intrinsics", since = "1.59.0")
50308)]
50309#[cfg_attr(
50310    target_arch = "arm",
50311    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50312)]
50313pub fn vreinterpret_u64_u8(a: uint8x8_t) -> uint64x1_t {
50314    unsafe { transmute(a) }
50315}
50316#[doc = "Vector reinterpret cast operation"]
50317#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_u8)"]
50318#[inline]
50319#[cfg(target_endian = "big")]
50320#[target_feature(enable = "neon")]
50321#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50322#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50323#[cfg_attr(
50324    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50325    assert_instr(nop)
50326)]
50327#[cfg_attr(
50328    not(target_arch = "arm"),
50329    stable(feature = "neon_intrinsics", since = "1.59.0")
50330)]
50331#[cfg_attr(
50332    target_arch = "arm",
50333    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50334)]
50335pub fn vreinterpret_u64_u8(a: uint8x8_t) -> uint64x1_t {
50336    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
50337    unsafe { transmute(a) }
50338}
50339#[doc = "Vector reinterpret cast operation"]
50340#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_u8)"]
50341#[inline]
50342#[cfg(target_endian = "little")]
50343#[target_feature(enable = "neon")]
50344#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50345#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50346#[cfg_attr(
50347    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50348    assert_instr(nop)
50349)]
50350#[cfg_attr(
50351    not(target_arch = "arm"),
50352    stable(feature = "neon_intrinsics", since = "1.59.0")
50353)]
50354#[cfg_attr(
50355    target_arch = "arm",
50356    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50357)]
50358pub fn vreinterpret_p8_u8(a: uint8x8_t) -> poly8x8_t {
50359    unsafe { transmute(a) }
50360}
50361#[doc = "Vector reinterpret cast operation"]
50362#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_u8)"]
50363#[inline]
50364#[cfg(target_endian = "big")]
50365#[target_feature(enable = "neon")]
50366#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50367#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50368#[cfg_attr(
50369    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50370    assert_instr(nop)
50371)]
50372#[cfg_attr(
50373    not(target_arch = "arm"),
50374    stable(feature = "neon_intrinsics", since = "1.59.0")
50375)]
50376#[cfg_attr(
50377    target_arch = "arm",
50378    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50379)]
50380pub fn vreinterpret_p8_u8(a: uint8x8_t) -> poly8x8_t {
50381    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
50382    unsafe {
50383        let ret_val: poly8x8_t = transmute(a);
50384        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
50385    }
50386}
50387#[doc = "Vector reinterpret cast operation"]
50388#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_u8)"]
50389#[inline]
50390#[cfg(target_endian = "little")]
50391#[target_feature(enable = "neon")]
50392#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50393#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50394#[cfg_attr(
50395    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50396    assert_instr(nop)
50397)]
50398#[cfg_attr(
50399    not(target_arch = "arm"),
50400    stable(feature = "neon_intrinsics", since = "1.59.0")
50401)]
50402#[cfg_attr(
50403    target_arch = "arm",
50404    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50405)]
50406pub fn vreinterpret_p16_u8(a: uint8x8_t) -> poly16x4_t {
50407    unsafe { transmute(a) }
50408}
50409#[doc = "Vector reinterpret cast operation"]
50410#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_u8)"]
50411#[inline]
50412#[cfg(target_endian = "big")]
50413#[target_feature(enable = "neon")]
50414#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50415#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50416#[cfg_attr(
50417    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50418    assert_instr(nop)
50419)]
50420#[cfg_attr(
50421    not(target_arch = "arm"),
50422    stable(feature = "neon_intrinsics", since = "1.59.0")
50423)]
50424#[cfg_attr(
50425    target_arch = "arm",
50426    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50427)]
50428pub fn vreinterpret_p16_u8(a: uint8x8_t) -> poly16x4_t {
50429    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
50430    unsafe {
50431        let ret_val: poly16x4_t = transmute(a);
50432        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
50433    }
50434}
50435#[doc = "Vector reinterpret cast operation"]
50436#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_u8)"]
50437#[inline]
50438#[cfg(target_endian = "little")]
50439#[target_feature(enable = "neon")]
50440#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50441#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50442#[cfg_attr(
50443    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50444    assert_instr(nop)
50445)]
50446#[cfg_attr(
50447    not(target_arch = "arm"),
50448    stable(feature = "neon_intrinsics", since = "1.59.0")
50449)]
50450#[cfg_attr(
50451    target_arch = "arm",
50452    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50453)]
50454pub fn vreinterpretq_f32_u8(a: uint8x16_t) -> float32x4_t {
50455    unsafe { transmute(a) }
50456}
50457#[doc = "Vector reinterpret cast operation"]
50458#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_u8)"]
50459#[inline]
50460#[cfg(target_endian = "big")]
50461#[target_feature(enable = "neon")]
50462#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50463#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50464#[cfg_attr(
50465    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50466    assert_instr(nop)
50467)]
50468#[cfg_attr(
50469    not(target_arch = "arm"),
50470    stable(feature = "neon_intrinsics", since = "1.59.0")
50471)]
50472#[cfg_attr(
50473    target_arch = "arm",
50474    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50475)]
50476pub fn vreinterpretq_f32_u8(a: uint8x16_t) -> float32x4_t {
50477    let a: uint8x16_t =
50478        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
50479    unsafe {
50480        let ret_val: float32x4_t = transmute(a);
50481        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
50482    }
50483}
50484#[doc = "Vector reinterpret cast operation"]
50485#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_u8)"]
50486#[inline]
50487#[cfg(target_endian = "little")]
50488#[target_feature(enable = "neon")]
50489#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50490#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50491#[cfg_attr(
50492    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50493    assert_instr(nop)
50494)]
50495#[cfg_attr(
50496    not(target_arch = "arm"),
50497    stable(feature = "neon_intrinsics", since = "1.59.0")
50498)]
50499#[cfg_attr(
50500    target_arch = "arm",
50501    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50502)]
50503pub fn vreinterpretq_s8_u8(a: uint8x16_t) -> int8x16_t {
50504    unsafe { transmute(a) }
50505}
50506#[doc = "Vector reinterpret cast operation"]
50507#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_u8)"]
50508#[inline]
50509#[cfg(target_endian = "big")]
50510#[target_feature(enable = "neon")]
50511#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50512#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50513#[cfg_attr(
50514    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50515    assert_instr(nop)
50516)]
50517#[cfg_attr(
50518    not(target_arch = "arm"),
50519    stable(feature = "neon_intrinsics", since = "1.59.0")
50520)]
50521#[cfg_attr(
50522    target_arch = "arm",
50523    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50524)]
50525pub fn vreinterpretq_s8_u8(a: uint8x16_t) -> int8x16_t {
50526    let a: uint8x16_t =
50527        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
50528    unsafe {
50529        let ret_val: int8x16_t = transmute(a);
50530        simd_shuffle!(
50531            ret_val,
50532            ret_val,
50533            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
50534        )
50535    }
50536}
50537#[doc = "Vector reinterpret cast operation"]
50538#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_u8)"]
50539#[inline]
50540#[cfg(target_endian = "little")]
50541#[target_feature(enable = "neon")]
50542#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50543#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50544#[cfg_attr(
50545    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50546    assert_instr(nop)
50547)]
50548#[cfg_attr(
50549    not(target_arch = "arm"),
50550    stable(feature = "neon_intrinsics", since = "1.59.0")
50551)]
50552#[cfg_attr(
50553    target_arch = "arm",
50554    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50555)]
50556pub fn vreinterpretq_s16_u8(a: uint8x16_t) -> int16x8_t {
50557    unsafe { transmute(a) }
50558}
50559#[doc = "Vector reinterpret cast operation"]
50560#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_u8)"]
50561#[inline]
50562#[cfg(target_endian = "big")]
50563#[target_feature(enable = "neon")]
50564#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50565#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50566#[cfg_attr(
50567    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50568    assert_instr(nop)
50569)]
50570#[cfg_attr(
50571    not(target_arch = "arm"),
50572    stable(feature = "neon_intrinsics", since = "1.59.0")
50573)]
50574#[cfg_attr(
50575    target_arch = "arm",
50576    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50577)]
50578pub fn vreinterpretq_s16_u8(a: uint8x16_t) -> int16x8_t {
50579    let a: uint8x16_t =
50580        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
50581    unsafe {
50582        let ret_val: int16x8_t = transmute(a);
50583        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
50584    }
50585}
50586#[doc = "Vector reinterpret cast operation"]
50587#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_u8)"]
50588#[inline]
50589#[cfg(target_endian = "little")]
50590#[target_feature(enable = "neon")]
50591#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50592#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50593#[cfg_attr(
50594    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50595    assert_instr(nop)
50596)]
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 vreinterpretq_s32_u8(a: uint8x16_t) -> int32x4_t {
50606    unsafe { transmute(a) }
50607}
50608#[doc = "Vector reinterpret cast operation"]
50609#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_u8)"]
50610#[inline]
50611#[cfg(target_endian = "big")]
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(nop))]
50615#[cfg_attr(
50616    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50617    assert_instr(nop)
50618)]
50619#[cfg_attr(
50620    not(target_arch = "arm"),
50621    stable(feature = "neon_intrinsics", since = "1.59.0")
50622)]
50623#[cfg_attr(
50624    target_arch = "arm",
50625    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50626)]
50627pub fn vreinterpretq_s32_u8(a: uint8x16_t) -> int32x4_t {
50628    let a: uint8x16_t =
50629        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
50630    unsafe {
50631        let ret_val: int32x4_t = transmute(a);
50632        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
50633    }
50634}
50635#[doc = "Vector reinterpret cast operation"]
50636#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_u8)"]
50637#[inline]
50638#[cfg(target_endian = "little")]
50639#[target_feature(enable = "neon")]
50640#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50641#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50642#[cfg_attr(
50643    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50644    assert_instr(nop)
50645)]
50646#[cfg_attr(
50647    not(target_arch = "arm"),
50648    stable(feature = "neon_intrinsics", since = "1.59.0")
50649)]
50650#[cfg_attr(
50651    target_arch = "arm",
50652    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50653)]
50654pub fn vreinterpretq_s64_u8(a: uint8x16_t) -> int64x2_t {
50655    unsafe { transmute(a) }
50656}
50657#[doc = "Vector reinterpret cast operation"]
50658#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_u8)"]
50659#[inline]
50660#[cfg(target_endian = "big")]
50661#[target_feature(enable = "neon")]
50662#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50663#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50664#[cfg_attr(
50665    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50666    assert_instr(nop)
50667)]
50668#[cfg_attr(
50669    not(target_arch = "arm"),
50670    stable(feature = "neon_intrinsics", since = "1.59.0")
50671)]
50672#[cfg_attr(
50673    target_arch = "arm",
50674    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50675)]
50676pub fn vreinterpretq_s64_u8(a: uint8x16_t) -> int64x2_t {
50677    let a: uint8x16_t =
50678        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
50679    unsafe {
50680        let ret_val: int64x2_t = transmute(a);
50681        simd_shuffle!(ret_val, ret_val, [1, 0])
50682    }
50683}
50684#[doc = "Vector reinterpret cast operation"]
50685#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_u8)"]
50686#[inline]
50687#[cfg(target_endian = "little")]
50688#[target_feature(enable = "neon")]
50689#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50690#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50691#[cfg_attr(
50692    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50693    assert_instr(nop)
50694)]
50695#[cfg_attr(
50696    not(target_arch = "arm"),
50697    stable(feature = "neon_intrinsics", since = "1.59.0")
50698)]
50699#[cfg_attr(
50700    target_arch = "arm",
50701    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50702)]
50703pub fn vreinterpretq_u16_u8(a: uint8x16_t) -> uint16x8_t {
50704    unsafe { transmute(a) }
50705}
50706#[doc = "Vector reinterpret cast operation"]
50707#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_u8)"]
50708#[inline]
50709#[cfg(target_endian = "big")]
50710#[target_feature(enable = "neon")]
50711#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50712#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50713#[cfg_attr(
50714    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50715    assert_instr(nop)
50716)]
50717#[cfg_attr(
50718    not(target_arch = "arm"),
50719    stable(feature = "neon_intrinsics", since = "1.59.0")
50720)]
50721#[cfg_attr(
50722    target_arch = "arm",
50723    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50724)]
50725pub fn vreinterpretq_u16_u8(a: uint8x16_t) -> uint16x8_t {
50726    let a: uint8x16_t =
50727        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
50728    unsafe {
50729        let ret_val: uint16x8_t = transmute(a);
50730        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
50731    }
50732}
50733#[doc = "Vector reinterpret cast operation"]
50734#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_u8)"]
50735#[inline]
50736#[cfg(target_endian = "little")]
50737#[target_feature(enable = "neon")]
50738#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50739#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50740#[cfg_attr(
50741    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50742    assert_instr(nop)
50743)]
50744#[cfg_attr(
50745    not(target_arch = "arm"),
50746    stable(feature = "neon_intrinsics", since = "1.59.0")
50747)]
50748#[cfg_attr(
50749    target_arch = "arm",
50750    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50751)]
50752pub fn vreinterpretq_u32_u8(a: uint8x16_t) -> uint32x4_t {
50753    unsafe { transmute(a) }
50754}
50755#[doc = "Vector reinterpret cast operation"]
50756#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_u8)"]
50757#[inline]
50758#[cfg(target_endian = "big")]
50759#[target_feature(enable = "neon")]
50760#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50761#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50762#[cfg_attr(
50763    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50764    assert_instr(nop)
50765)]
50766#[cfg_attr(
50767    not(target_arch = "arm"),
50768    stable(feature = "neon_intrinsics", since = "1.59.0")
50769)]
50770#[cfg_attr(
50771    target_arch = "arm",
50772    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50773)]
50774pub fn vreinterpretq_u32_u8(a: uint8x16_t) -> uint32x4_t {
50775    let a: uint8x16_t =
50776        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
50777    unsafe {
50778        let ret_val: uint32x4_t = transmute(a);
50779        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
50780    }
50781}
50782#[doc = "Vector reinterpret cast operation"]
50783#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_u8)"]
50784#[inline]
50785#[cfg(target_endian = "little")]
50786#[target_feature(enable = "neon")]
50787#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50788#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50789#[cfg_attr(
50790    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50791    assert_instr(nop)
50792)]
50793#[cfg_attr(
50794    not(target_arch = "arm"),
50795    stable(feature = "neon_intrinsics", since = "1.59.0")
50796)]
50797#[cfg_attr(
50798    target_arch = "arm",
50799    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50800)]
50801pub fn vreinterpretq_u64_u8(a: uint8x16_t) -> uint64x2_t {
50802    unsafe { transmute(a) }
50803}
50804#[doc = "Vector reinterpret cast operation"]
50805#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_u8)"]
50806#[inline]
50807#[cfg(target_endian = "big")]
50808#[target_feature(enable = "neon")]
50809#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50810#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50811#[cfg_attr(
50812    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50813    assert_instr(nop)
50814)]
50815#[cfg_attr(
50816    not(target_arch = "arm"),
50817    stable(feature = "neon_intrinsics", since = "1.59.0")
50818)]
50819#[cfg_attr(
50820    target_arch = "arm",
50821    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50822)]
50823pub fn vreinterpretq_u64_u8(a: uint8x16_t) -> uint64x2_t {
50824    let a: uint8x16_t =
50825        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
50826    unsafe {
50827        let ret_val: uint64x2_t = transmute(a);
50828        simd_shuffle!(ret_val, ret_val, [1, 0])
50829    }
50830}
50831#[doc = "Vector reinterpret cast operation"]
50832#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_u8)"]
50833#[inline]
50834#[cfg(target_endian = "little")]
50835#[target_feature(enable = "neon")]
50836#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50837#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50838#[cfg_attr(
50839    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50840    assert_instr(nop)
50841)]
50842#[cfg_attr(
50843    not(target_arch = "arm"),
50844    stable(feature = "neon_intrinsics", since = "1.59.0")
50845)]
50846#[cfg_attr(
50847    target_arch = "arm",
50848    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50849)]
50850pub fn vreinterpretq_p8_u8(a: uint8x16_t) -> poly8x16_t {
50851    unsafe { transmute(a) }
50852}
50853#[doc = "Vector reinterpret cast operation"]
50854#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_u8)"]
50855#[inline]
50856#[cfg(target_endian = "big")]
50857#[target_feature(enable = "neon")]
50858#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50859#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50860#[cfg_attr(
50861    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50862    assert_instr(nop)
50863)]
50864#[cfg_attr(
50865    not(target_arch = "arm"),
50866    stable(feature = "neon_intrinsics", since = "1.59.0")
50867)]
50868#[cfg_attr(
50869    target_arch = "arm",
50870    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50871)]
50872pub fn vreinterpretq_p8_u8(a: uint8x16_t) -> poly8x16_t {
50873    let a: uint8x16_t =
50874        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
50875    unsafe {
50876        let ret_val: poly8x16_t = transmute(a);
50877        simd_shuffle!(
50878            ret_val,
50879            ret_val,
50880            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
50881        )
50882    }
50883}
50884#[doc = "Vector reinterpret cast operation"]
50885#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_u8)"]
50886#[inline]
50887#[cfg(target_endian = "little")]
50888#[target_feature(enable = "neon")]
50889#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50890#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50891#[cfg_attr(
50892    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50893    assert_instr(nop)
50894)]
50895#[cfg_attr(
50896    not(target_arch = "arm"),
50897    stable(feature = "neon_intrinsics", since = "1.59.0")
50898)]
50899#[cfg_attr(
50900    target_arch = "arm",
50901    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50902)]
50903pub fn vreinterpretq_p16_u8(a: uint8x16_t) -> poly16x8_t {
50904    unsafe { transmute(a) }
50905}
50906#[doc = "Vector reinterpret cast operation"]
50907#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_u8)"]
50908#[inline]
50909#[cfg(target_endian = "big")]
50910#[target_feature(enable = "neon")]
50911#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50912#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50913#[cfg_attr(
50914    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50915    assert_instr(nop)
50916)]
50917#[cfg_attr(
50918    not(target_arch = "arm"),
50919    stable(feature = "neon_intrinsics", since = "1.59.0")
50920)]
50921#[cfg_attr(
50922    target_arch = "arm",
50923    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50924)]
50925pub fn vreinterpretq_p16_u8(a: uint8x16_t) -> poly16x8_t {
50926    let a: uint8x16_t =
50927        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
50928    unsafe {
50929        let ret_val: poly16x8_t = transmute(a);
50930        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
50931    }
50932}
50933#[doc = "Vector reinterpret cast operation"]
50934#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_u16)"]
50935#[inline]
50936#[cfg(target_endian = "little")]
50937#[target_feature(enable = "neon")]
50938#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50939#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50940#[cfg_attr(
50941    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50942    assert_instr(nop)
50943)]
50944#[cfg_attr(
50945    not(target_arch = "arm"),
50946    stable(feature = "neon_intrinsics", since = "1.59.0")
50947)]
50948#[cfg_attr(
50949    target_arch = "arm",
50950    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50951)]
50952pub fn vreinterpret_f32_u16(a: uint16x4_t) -> float32x2_t {
50953    unsafe { transmute(a) }
50954}
50955#[doc = "Vector reinterpret cast operation"]
50956#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_u16)"]
50957#[inline]
50958#[cfg(target_endian = "big")]
50959#[target_feature(enable = "neon")]
50960#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50961#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50962#[cfg_attr(
50963    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50964    assert_instr(nop)
50965)]
50966#[cfg_attr(
50967    not(target_arch = "arm"),
50968    stable(feature = "neon_intrinsics", since = "1.59.0")
50969)]
50970#[cfg_attr(
50971    target_arch = "arm",
50972    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50973)]
50974pub fn vreinterpret_f32_u16(a: uint16x4_t) -> float32x2_t {
50975    let a: uint16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
50976    unsafe {
50977        let ret_val: float32x2_t = transmute(a);
50978        simd_shuffle!(ret_val, ret_val, [1, 0])
50979    }
50980}
50981#[doc = "Vector reinterpret cast operation"]
50982#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_u16)"]
50983#[inline]
50984#[cfg(target_endian = "little")]
50985#[target_feature(enable = "neon")]
50986#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50987#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50988#[cfg_attr(
50989    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50990    assert_instr(nop)
50991)]
50992#[cfg_attr(
50993    not(target_arch = "arm"),
50994    stable(feature = "neon_intrinsics", since = "1.59.0")
50995)]
50996#[cfg_attr(
50997    target_arch = "arm",
50998    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50999)]
51000pub fn vreinterpret_s8_u16(a: uint16x4_t) -> int8x8_t {
51001    unsafe { transmute(a) }
51002}
51003#[doc = "Vector reinterpret cast operation"]
51004#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_u16)"]
51005#[inline]
51006#[cfg(target_endian = "big")]
51007#[target_feature(enable = "neon")]
51008#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51009#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51010#[cfg_attr(
51011    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51012    assert_instr(nop)
51013)]
51014#[cfg_attr(
51015    not(target_arch = "arm"),
51016    stable(feature = "neon_intrinsics", since = "1.59.0")
51017)]
51018#[cfg_attr(
51019    target_arch = "arm",
51020    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51021)]
51022pub fn vreinterpret_s8_u16(a: uint16x4_t) -> int8x8_t {
51023    let a: uint16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
51024    unsafe {
51025        let ret_val: int8x8_t = transmute(a);
51026        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
51027    }
51028}
51029#[doc = "Vector reinterpret cast operation"]
51030#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_u16)"]
51031#[inline]
51032#[cfg(target_endian = "little")]
51033#[target_feature(enable = "neon")]
51034#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51035#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51036#[cfg_attr(
51037    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51038    assert_instr(nop)
51039)]
51040#[cfg_attr(
51041    not(target_arch = "arm"),
51042    stable(feature = "neon_intrinsics", since = "1.59.0")
51043)]
51044#[cfg_attr(
51045    target_arch = "arm",
51046    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51047)]
51048pub fn vreinterpret_s16_u16(a: uint16x4_t) -> int16x4_t {
51049    unsafe { transmute(a) }
51050}
51051#[doc = "Vector reinterpret cast operation"]
51052#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_u16)"]
51053#[inline]
51054#[cfg(target_endian = "big")]
51055#[target_feature(enable = "neon")]
51056#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51057#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51058#[cfg_attr(
51059    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51060    assert_instr(nop)
51061)]
51062#[cfg_attr(
51063    not(target_arch = "arm"),
51064    stable(feature = "neon_intrinsics", since = "1.59.0")
51065)]
51066#[cfg_attr(
51067    target_arch = "arm",
51068    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51069)]
51070pub fn vreinterpret_s16_u16(a: uint16x4_t) -> int16x4_t {
51071    let a: uint16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
51072    unsafe {
51073        let ret_val: int16x4_t = transmute(a);
51074        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
51075    }
51076}
51077#[doc = "Vector reinterpret cast operation"]
51078#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_u16)"]
51079#[inline]
51080#[cfg(target_endian = "little")]
51081#[target_feature(enable = "neon")]
51082#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51083#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51084#[cfg_attr(
51085    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51086    assert_instr(nop)
51087)]
51088#[cfg_attr(
51089    not(target_arch = "arm"),
51090    stable(feature = "neon_intrinsics", since = "1.59.0")
51091)]
51092#[cfg_attr(
51093    target_arch = "arm",
51094    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51095)]
51096pub fn vreinterpret_s32_u16(a: uint16x4_t) -> int32x2_t {
51097    unsafe { transmute(a) }
51098}
51099#[doc = "Vector reinterpret cast operation"]
51100#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_u16)"]
51101#[inline]
51102#[cfg(target_endian = "big")]
51103#[target_feature(enable = "neon")]
51104#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51105#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51106#[cfg_attr(
51107    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51108    assert_instr(nop)
51109)]
51110#[cfg_attr(
51111    not(target_arch = "arm"),
51112    stable(feature = "neon_intrinsics", since = "1.59.0")
51113)]
51114#[cfg_attr(
51115    target_arch = "arm",
51116    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51117)]
51118pub fn vreinterpret_s32_u16(a: uint16x4_t) -> int32x2_t {
51119    let a: uint16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
51120    unsafe {
51121        let ret_val: int32x2_t = transmute(a);
51122        simd_shuffle!(ret_val, ret_val, [1, 0])
51123    }
51124}
51125#[doc = "Vector reinterpret cast operation"]
51126#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_u16)"]
51127#[inline]
51128#[cfg(target_endian = "little")]
51129#[target_feature(enable = "neon")]
51130#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51131#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51132#[cfg_attr(
51133    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51134    assert_instr(nop)
51135)]
51136#[cfg_attr(
51137    not(target_arch = "arm"),
51138    stable(feature = "neon_intrinsics", since = "1.59.0")
51139)]
51140#[cfg_attr(
51141    target_arch = "arm",
51142    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51143)]
51144pub fn vreinterpret_s64_u16(a: uint16x4_t) -> int64x1_t {
51145    unsafe { transmute(a) }
51146}
51147#[doc = "Vector reinterpret cast operation"]
51148#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_u16)"]
51149#[inline]
51150#[cfg(target_endian = "big")]
51151#[target_feature(enable = "neon")]
51152#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51153#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51154#[cfg_attr(
51155    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51156    assert_instr(nop)
51157)]
51158#[cfg_attr(
51159    not(target_arch = "arm"),
51160    stable(feature = "neon_intrinsics", since = "1.59.0")
51161)]
51162#[cfg_attr(
51163    target_arch = "arm",
51164    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51165)]
51166pub fn vreinterpret_s64_u16(a: uint16x4_t) -> int64x1_t {
51167    let a: uint16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
51168    unsafe { transmute(a) }
51169}
51170#[doc = "Vector reinterpret cast operation"]
51171#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_u16)"]
51172#[inline]
51173#[cfg(target_endian = "little")]
51174#[target_feature(enable = "neon")]
51175#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51176#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51177#[cfg_attr(
51178    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51179    assert_instr(nop)
51180)]
51181#[cfg_attr(
51182    not(target_arch = "arm"),
51183    stable(feature = "neon_intrinsics", since = "1.59.0")
51184)]
51185#[cfg_attr(
51186    target_arch = "arm",
51187    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51188)]
51189pub fn vreinterpret_u8_u16(a: uint16x4_t) -> uint8x8_t {
51190    unsafe { transmute(a) }
51191}
51192#[doc = "Vector reinterpret cast operation"]
51193#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_u16)"]
51194#[inline]
51195#[cfg(target_endian = "big")]
51196#[target_feature(enable = "neon")]
51197#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51198#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51199#[cfg_attr(
51200    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51201    assert_instr(nop)
51202)]
51203#[cfg_attr(
51204    not(target_arch = "arm"),
51205    stable(feature = "neon_intrinsics", since = "1.59.0")
51206)]
51207#[cfg_attr(
51208    target_arch = "arm",
51209    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51210)]
51211pub fn vreinterpret_u8_u16(a: uint16x4_t) -> uint8x8_t {
51212    let a: uint16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
51213    unsafe {
51214        let ret_val: uint8x8_t = transmute(a);
51215        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
51216    }
51217}
51218#[doc = "Vector reinterpret cast operation"]
51219#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_u16)"]
51220#[inline]
51221#[cfg(target_endian = "little")]
51222#[target_feature(enable = "neon")]
51223#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51224#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51225#[cfg_attr(
51226    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51227    assert_instr(nop)
51228)]
51229#[cfg_attr(
51230    not(target_arch = "arm"),
51231    stable(feature = "neon_intrinsics", since = "1.59.0")
51232)]
51233#[cfg_attr(
51234    target_arch = "arm",
51235    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51236)]
51237pub fn vreinterpret_u32_u16(a: uint16x4_t) -> uint32x2_t {
51238    unsafe { transmute(a) }
51239}
51240#[doc = "Vector reinterpret cast operation"]
51241#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_u16)"]
51242#[inline]
51243#[cfg(target_endian = "big")]
51244#[target_feature(enable = "neon")]
51245#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51246#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51247#[cfg_attr(
51248    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51249    assert_instr(nop)
51250)]
51251#[cfg_attr(
51252    not(target_arch = "arm"),
51253    stable(feature = "neon_intrinsics", since = "1.59.0")
51254)]
51255#[cfg_attr(
51256    target_arch = "arm",
51257    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51258)]
51259pub fn vreinterpret_u32_u16(a: uint16x4_t) -> uint32x2_t {
51260    let a: uint16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
51261    unsafe {
51262        let ret_val: uint32x2_t = transmute(a);
51263        simd_shuffle!(ret_val, ret_val, [1, 0])
51264    }
51265}
51266#[doc = "Vector reinterpret cast operation"]
51267#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_u16)"]
51268#[inline]
51269#[cfg(target_endian = "little")]
51270#[target_feature(enable = "neon")]
51271#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51272#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51273#[cfg_attr(
51274    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51275    assert_instr(nop)
51276)]
51277#[cfg_attr(
51278    not(target_arch = "arm"),
51279    stable(feature = "neon_intrinsics", since = "1.59.0")
51280)]
51281#[cfg_attr(
51282    target_arch = "arm",
51283    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51284)]
51285pub fn vreinterpret_u64_u16(a: uint16x4_t) -> uint64x1_t {
51286    unsafe { transmute(a) }
51287}
51288#[doc = "Vector reinterpret cast operation"]
51289#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_u16)"]
51290#[inline]
51291#[cfg(target_endian = "big")]
51292#[target_feature(enable = "neon")]
51293#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51294#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51295#[cfg_attr(
51296    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51297    assert_instr(nop)
51298)]
51299#[cfg_attr(
51300    not(target_arch = "arm"),
51301    stable(feature = "neon_intrinsics", since = "1.59.0")
51302)]
51303#[cfg_attr(
51304    target_arch = "arm",
51305    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51306)]
51307pub fn vreinterpret_u64_u16(a: uint16x4_t) -> uint64x1_t {
51308    let a: uint16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
51309    unsafe { transmute(a) }
51310}
51311#[doc = "Vector reinterpret cast operation"]
51312#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_u16)"]
51313#[inline]
51314#[cfg(target_endian = "little")]
51315#[target_feature(enable = "neon")]
51316#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51317#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51318#[cfg_attr(
51319    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51320    assert_instr(nop)
51321)]
51322#[cfg_attr(
51323    not(target_arch = "arm"),
51324    stable(feature = "neon_intrinsics", since = "1.59.0")
51325)]
51326#[cfg_attr(
51327    target_arch = "arm",
51328    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51329)]
51330pub fn vreinterpret_p8_u16(a: uint16x4_t) -> poly8x8_t {
51331    unsafe { transmute(a) }
51332}
51333#[doc = "Vector reinterpret cast operation"]
51334#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_u16)"]
51335#[inline]
51336#[cfg(target_endian = "big")]
51337#[target_feature(enable = "neon")]
51338#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51339#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51340#[cfg_attr(
51341    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51342    assert_instr(nop)
51343)]
51344#[cfg_attr(
51345    not(target_arch = "arm"),
51346    stable(feature = "neon_intrinsics", since = "1.59.0")
51347)]
51348#[cfg_attr(
51349    target_arch = "arm",
51350    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51351)]
51352pub fn vreinterpret_p8_u16(a: uint16x4_t) -> poly8x8_t {
51353    let a: uint16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
51354    unsafe {
51355        let ret_val: poly8x8_t = transmute(a);
51356        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
51357    }
51358}
51359#[doc = "Vector reinterpret cast operation"]
51360#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_u16)"]
51361#[inline]
51362#[cfg(target_endian = "little")]
51363#[target_feature(enable = "neon")]
51364#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51365#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51366#[cfg_attr(
51367    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51368    assert_instr(nop)
51369)]
51370#[cfg_attr(
51371    not(target_arch = "arm"),
51372    stable(feature = "neon_intrinsics", since = "1.59.0")
51373)]
51374#[cfg_attr(
51375    target_arch = "arm",
51376    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51377)]
51378pub fn vreinterpret_p16_u16(a: uint16x4_t) -> poly16x4_t {
51379    unsafe { transmute(a) }
51380}
51381#[doc = "Vector reinterpret cast operation"]
51382#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_u16)"]
51383#[inline]
51384#[cfg(target_endian = "big")]
51385#[target_feature(enable = "neon")]
51386#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51387#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51388#[cfg_attr(
51389    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51390    assert_instr(nop)
51391)]
51392#[cfg_attr(
51393    not(target_arch = "arm"),
51394    stable(feature = "neon_intrinsics", since = "1.59.0")
51395)]
51396#[cfg_attr(
51397    target_arch = "arm",
51398    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51399)]
51400pub fn vreinterpret_p16_u16(a: uint16x4_t) -> poly16x4_t {
51401    let a: uint16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
51402    unsafe {
51403        let ret_val: poly16x4_t = transmute(a);
51404        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
51405    }
51406}
51407#[doc = "Vector reinterpret cast operation"]
51408#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_u16)"]
51409#[inline]
51410#[cfg(target_endian = "little")]
51411#[target_feature(enable = "neon")]
51412#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51413#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51414#[cfg_attr(
51415    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51416    assert_instr(nop)
51417)]
51418#[cfg_attr(
51419    not(target_arch = "arm"),
51420    stable(feature = "neon_intrinsics", since = "1.59.0")
51421)]
51422#[cfg_attr(
51423    target_arch = "arm",
51424    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51425)]
51426pub fn vreinterpretq_f32_u16(a: uint16x8_t) -> float32x4_t {
51427    unsafe { transmute(a) }
51428}
51429#[doc = "Vector reinterpret cast operation"]
51430#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_u16)"]
51431#[inline]
51432#[cfg(target_endian = "big")]
51433#[target_feature(enable = "neon")]
51434#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51435#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51436#[cfg_attr(
51437    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51438    assert_instr(nop)
51439)]
51440#[cfg_attr(
51441    not(target_arch = "arm"),
51442    stable(feature = "neon_intrinsics", since = "1.59.0")
51443)]
51444#[cfg_attr(
51445    target_arch = "arm",
51446    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51447)]
51448pub fn vreinterpretq_f32_u16(a: uint16x8_t) -> float32x4_t {
51449    let a: uint16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
51450    unsafe {
51451        let ret_val: float32x4_t = transmute(a);
51452        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
51453    }
51454}
51455#[doc = "Vector reinterpret cast operation"]
51456#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_u16)"]
51457#[inline]
51458#[cfg(target_endian = "little")]
51459#[target_feature(enable = "neon")]
51460#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51461#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51462#[cfg_attr(
51463    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51464    assert_instr(nop)
51465)]
51466#[cfg_attr(
51467    not(target_arch = "arm"),
51468    stable(feature = "neon_intrinsics", since = "1.59.0")
51469)]
51470#[cfg_attr(
51471    target_arch = "arm",
51472    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51473)]
51474pub fn vreinterpretq_s8_u16(a: uint16x8_t) -> int8x16_t {
51475    unsafe { transmute(a) }
51476}
51477#[doc = "Vector reinterpret cast operation"]
51478#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_u16)"]
51479#[inline]
51480#[cfg(target_endian = "big")]
51481#[target_feature(enable = "neon")]
51482#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51483#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51484#[cfg_attr(
51485    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51486    assert_instr(nop)
51487)]
51488#[cfg_attr(
51489    not(target_arch = "arm"),
51490    stable(feature = "neon_intrinsics", since = "1.59.0")
51491)]
51492#[cfg_attr(
51493    target_arch = "arm",
51494    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51495)]
51496pub fn vreinterpretq_s8_u16(a: uint16x8_t) -> int8x16_t {
51497    let a: uint16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
51498    unsafe {
51499        let ret_val: int8x16_t = transmute(a);
51500        simd_shuffle!(
51501            ret_val,
51502            ret_val,
51503            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
51504        )
51505    }
51506}
51507#[doc = "Vector reinterpret cast operation"]
51508#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_u16)"]
51509#[inline]
51510#[cfg(target_endian = "little")]
51511#[target_feature(enable = "neon")]
51512#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51513#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51514#[cfg_attr(
51515    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51516    assert_instr(nop)
51517)]
51518#[cfg_attr(
51519    not(target_arch = "arm"),
51520    stable(feature = "neon_intrinsics", since = "1.59.0")
51521)]
51522#[cfg_attr(
51523    target_arch = "arm",
51524    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51525)]
51526pub fn vreinterpretq_s16_u16(a: uint16x8_t) -> int16x8_t {
51527    unsafe { transmute(a) }
51528}
51529#[doc = "Vector reinterpret cast operation"]
51530#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_u16)"]
51531#[inline]
51532#[cfg(target_endian = "big")]
51533#[target_feature(enable = "neon")]
51534#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51535#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51536#[cfg_attr(
51537    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51538    assert_instr(nop)
51539)]
51540#[cfg_attr(
51541    not(target_arch = "arm"),
51542    stable(feature = "neon_intrinsics", since = "1.59.0")
51543)]
51544#[cfg_attr(
51545    target_arch = "arm",
51546    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51547)]
51548pub fn vreinterpretq_s16_u16(a: uint16x8_t) -> int16x8_t {
51549    let a: uint16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
51550    unsafe {
51551        let ret_val: int16x8_t = transmute(a);
51552        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
51553    }
51554}
51555#[doc = "Vector reinterpret cast operation"]
51556#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_u16)"]
51557#[inline]
51558#[cfg(target_endian = "little")]
51559#[target_feature(enable = "neon")]
51560#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51561#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51562#[cfg_attr(
51563    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51564    assert_instr(nop)
51565)]
51566#[cfg_attr(
51567    not(target_arch = "arm"),
51568    stable(feature = "neon_intrinsics", since = "1.59.0")
51569)]
51570#[cfg_attr(
51571    target_arch = "arm",
51572    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51573)]
51574pub fn vreinterpretq_s32_u16(a: uint16x8_t) -> int32x4_t {
51575    unsafe { transmute(a) }
51576}
51577#[doc = "Vector reinterpret cast operation"]
51578#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_u16)"]
51579#[inline]
51580#[cfg(target_endian = "big")]
51581#[target_feature(enable = "neon")]
51582#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51583#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51584#[cfg_attr(
51585    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51586    assert_instr(nop)
51587)]
51588#[cfg_attr(
51589    not(target_arch = "arm"),
51590    stable(feature = "neon_intrinsics", since = "1.59.0")
51591)]
51592#[cfg_attr(
51593    target_arch = "arm",
51594    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51595)]
51596pub fn vreinterpretq_s32_u16(a: uint16x8_t) -> int32x4_t {
51597    let a: uint16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
51598    unsafe {
51599        let ret_val: int32x4_t = transmute(a);
51600        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
51601    }
51602}
51603#[doc = "Vector reinterpret cast operation"]
51604#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_u16)"]
51605#[inline]
51606#[cfg(target_endian = "little")]
51607#[target_feature(enable = "neon")]
51608#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51609#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51610#[cfg_attr(
51611    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51612    assert_instr(nop)
51613)]
51614#[cfg_attr(
51615    not(target_arch = "arm"),
51616    stable(feature = "neon_intrinsics", since = "1.59.0")
51617)]
51618#[cfg_attr(
51619    target_arch = "arm",
51620    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51621)]
51622pub fn vreinterpretq_s64_u16(a: uint16x8_t) -> int64x2_t {
51623    unsafe { transmute(a) }
51624}
51625#[doc = "Vector reinterpret cast operation"]
51626#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_u16)"]
51627#[inline]
51628#[cfg(target_endian = "big")]
51629#[target_feature(enable = "neon")]
51630#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51631#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51632#[cfg_attr(
51633    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51634    assert_instr(nop)
51635)]
51636#[cfg_attr(
51637    not(target_arch = "arm"),
51638    stable(feature = "neon_intrinsics", since = "1.59.0")
51639)]
51640#[cfg_attr(
51641    target_arch = "arm",
51642    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51643)]
51644pub fn vreinterpretq_s64_u16(a: uint16x8_t) -> int64x2_t {
51645    let a: uint16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
51646    unsafe {
51647        let ret_val: int64x2_t = transmute(a);
51648        simd_shuffle!(ret_val, ret_val, [1, 0])
51649    }
51650}
51651#[doc = "Vector reinterpret cast operation"]
51652#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_u16)"]
51653#[inline]
51654#[cfg(target_endian = "little")]
51655#[target_feature(enable = "neon")]
51656#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51657#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51658#[cfg_attr(
51659    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51660    assert_instr(nop)
51661)]
51662#[cfg_attr(
51663    not(target_arch = "arm"),
51664    stable(feature = "neon_intrinsics", since = "1.59.0")
51665)]
51666#[cfg_attr(
51667    target_arch = "arm",
51668    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51669)]
51670pub fn vreinterpretq_u8_u16(a: uint16x8_t) -> uint8x16_t {
51671    unsafe { transmute(a) }
51672}
51673#[doc = "Vector reinterpret cast operation"]
51674#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_u16)"]
51675#[inline]
51676#[cfg(target_endian = "big")]
51677#[target_feature(enable = "neon")]
51678#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51679#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51680#[cfg_attr(
51681    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51682    assert_instr(nop)
51683)]
51684#[cfg_attr(
51685    not(target_arch = "arm"),
51686    stable(feature = "neon_intrinsics", since = "1.59.0")
51687)]
51688#[cfg_attr(
51689    target_arch = "arm",
51690    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51691)]
51692pub fn vreinterpretq_u8_u16(a: uint16x8_t) -> uint8x16_t {
51693    let a: uint16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
51694    unsafe {
51695        let ret_val: uint8x16_t = transmute(a);
51696        simd_shuffle!(
51697            ret_val,
51698            ret_val,
51699            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
51700        )
51701    }
51702}
51703#[doc = "Vector reinterpret cast operation"]
51704#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_u16)"]
51705#[inline]
51706#[cfg(target_endian = "little")]
51707#[target_feature(enable = "neon")]
51708#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51709#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51710#[cfg_attr(
51711    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51712    assert_instr(nop)
51713)]
51714#[cfg_attr(
51715    not(target_arch = "arm"),
51716    stable(feature = "neon_intrinsics", since = "1.59.0")
51717)]
51718#[cfg_attr(
51719    target_arch = "arm",
51720    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51721)]
51722pub fn vreinterpretq_u32_u16(a: uint16x8_t) -> uint32x4_t {
51723    unsafe { transmute(a) }
51724}
51725#[doc = "Vector reinterpret cast operation"]
51726#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_u16)"]
51727#[inline]
51728#[cfg(target_endian = "big")]
51729#[target_feature(enable = "neon")]
51730#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51731#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51732#[cfg_attr(
51733    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51734    assert_instr(nop)
51735)]
51736#[cfg_attr(
51737    not(target_arch = "arm"),
51738    stable(feature = "neon_intrinsics", since = "1.59.0")
51739)]
51740#[cfg_attr(
51741    target_arch = "arm",
51742    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51743)]
51744pub fn vreinterpretq_u32_u16(a: uint16x8_t) -> uint32x4_t {
51745    let a: uint16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
51746    unsafe {
51747        let ret_val: uint32x4_t = transmute(a);
51748        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
51749    }
51750}
51751#[doc = "Vector reinterpret cast operation"]
51752#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_u16)"]
51753#[inline]
51754#[cfg(target_endian = "little")]
51755#[target_feature(enable = "neon")]
51756#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51757#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51758#[cfg_attr(
51759    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51760    assert_instr(nop)
51761)]
51762#[cfg_attr(
51763    not(target_arch = "arm"),
51764    stable(feature = "neon_intrinsics", since = "1.59.0")
51765)]
51766#[cfg_attr(
51767    target_arch = "arm",
51768    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51769)]
51770pub fn vreinterpretq_u64_u16(a: uint16x8_t) -> uint64x2_t {
51771    unsafe { transmute(a) }
51772}
51773#[doc = "Vector reinterpret cast operation"]
51774#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_u16)"]
51775#[inline]
51776#[cfg(target_endian = "big")]
51777#[target_feature(enable = "neon")]
51778#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51779#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51780#[cfg_attr(
51781    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51782    assert_instr(nop)
51783)]
51784#[cfg_attr(
51785    not(target_arch = "arm"),
51786    stable(feature = "neon_intrinsics", since = "1.59.0")
51787)]
51788#[cfg_attr(
51789    target_arch = "arm",
51790    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51791)]
51792pub fn vreinterpretq_u64_u16(a: uint16x8_t) -> uint64x2_t {
51793    let a: uint16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
51794    unsafe {
51795        let ret_val: uint64x2_t = transmute(a);
51796        simd_shuffle!(ret_val, ret_val, [1, 0])
51797    }
51798}
51799#[doc = "Vector reinterpret cast operation"]
51800#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_u16)"]
51801#[inline]
51802#[cfg(target_endian = "little")]
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))]
51806#[cfg_attr(
51807    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51808    assert_instr(nop)
51809)]
51810#[cfg_attr(
51811    not(target_arch = "arm"),
51812    stable(feature = "neon_intrinsics", since = "1.59.0")
51813)]
51814#[cfg_attr(
51815    target_arch = "arm",
51816    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51817)]
51818pub fn vreinterpretq_p8_u16(a: uint16x8_t) -> poly8x16_t {
51819    unsafe { transmute(a) }
51820}
51821#[doc = "Vector reinterpret cast operation"]
51822#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_u16)"]
51823#[inline]
51824#[cfg(target_endian = "big")]
51825#[target_feature(enable = "neon")]
51826#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51827#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51828#[cfg_attr(
51829    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51830    assert_instr(nop)
51831)]
51832#[cfg_attr(
51833    not(target_arch = "arm"),
51834    stable(feature = "neon_intrinsics", since = "1.59.0")
51835)]
51836#[cfg_attr(
51837    target_arch = "arm",
51838    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51839)]
51840pub fn vreinterpretq_p8_u16(a: uint16x8_t) -> poly8x16_t {
51841    let a: uint16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
51842    unsafe {
51843        let ret_val: poly8x16_t = transmute(a);
51844        simd_shuffle!(
51845            ret_val,
51846            ret_val,
51847            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
51848        )
51849    }
51850}
51851#[doc = "Vector reinterpret cast operation"]
51852#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_u16)"]
51853#[inline]
51854#[cfg(target_endian = "little")]
51855#[target_feature(enable = "neon")]
51856#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51857#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51858#[cfg_attr(
51859    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51860    assert_instr(nop)
51861)]
51862#[cfg_attr(
51863    not(target_arch = "arm"),
51864    stable(feature = "neon_intrinsics", since = "1.59.0")
51865)]
51866#[cfg_attr(
51867    target_arch = "arm",
51868    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51869)]
51870pub fn vreinterpretq_p16_u16(a: uint16x8_t) -> poly16x8_t {
51871    unsafe { transmute(a) }
51872}
51873#[doc = "Vector reinterpret cast operation"]
51874#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_u16)"]
51875#[inline]
51876#[cfg(target_endian = "big")]
51877#[target_feature(enable = "neon")]
51878#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51879#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51880#[cfg_attr(
51881    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51882    assert_instr(nop)
51883)]
51884#[cfg_attr(
51885    not(target_arch = "arm"),
51886    stable(feature = "neon_intrinsics", since = "1.59.0")
51887)]
51888#[cfg_attr(
51889    target_arch = "arm",
51890    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51891)]
51892pub fn vreinterpretq_p16_u16(a: uint16x8_t) -> poly16x8_t {
51893    let a: uint16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
51894    unsafe {
51895        let ret_val: poly16x8_t = transmute(a);
51896        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
51897    }
51898}
51899#[doc = "Vector reinterpret cast operation"]
51900#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_u32)"]
51901#[inline]
51902#[cfg(target_endian = "little")]
51903#[target_feature(enable = "neon")]
51904#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51905#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51906#[cfg_attr(
51907    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51908    assert_instr(nop)
51909)]
51910#[cfg_attr(
51911    not(target_arch = "arm"),
51912    stable(feature = "neon_intrinsics", since = "1.59.0")
51913)]
51914#[cfg_attr(
51915    target_arch = "arm",
51916    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51917)]
51918pub fn vreinterpret_f32_u32(a: uint32x2_t) -> float32x2_t {
51919    unsafe { transmute(a) }
51920}
51921#[doc = "Vector reinterpret cast operation"]
51922#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_u32)"]
51923#[inline]
51924#[cfg(target_endian = "big")]
51925#[target_feature(enable = "neon")]
51926#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51927#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51928#[cfg_attr(
51929    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51930    assert_instr(nop)
51931)]
51932#[cfg_attr(
51933    not(target_arch = "arm"),
51934    stable(feature = "neon_intrinsics", since = "1.59.0")
51935)]
51936#[cfg_attr(
51937    target_arch = "arm",
51938    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51939)]
51940pub fn vreinterpret_f32_u32(a: uint32x2_t) -> float32x2_t {
51941    let a: uint32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
51942    unsafe {
51943        let ret_val: float32x2_t = transmute(a);
51944        simd_shuffle!(ret_val, ret_val, [1, 0])
51945    }
51946}
51947#[doc = "Vector reinterpret cast operation"]
51948#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_u32)"]
51949#[inline]
51950#[cfg(target_endian = "little")]
51951#[target_feature(enable = "neon")]
51952#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51953#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51954#[cfg_attr(
51955    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51956    assert_instr(nop)
51957)]
51958#[cfg_attr(
51959    not(target_arch = "arm"),
51960    stable(feature = "neon_intrinsics", since = "1.59.0")
51961)]
51962#[cfg_attr(
51963    target_arch = "arm",
51964    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51965)]
51966pub fn vreinterpret_s8_u32(a: uint32x2_t) -> int8x8_t {
51967    unsafe { transmute(a) }
51968}
51969#[doc = "Vector reinterpret cast operation"]
51970#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_u32)"]
51971#[inline]
51972#[cfg(target_endian = "big")]
51973#[target_feature(enable = "neon")]
51974#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51975#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51976#[cfg_attr(
51977    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51978    assert_instr(nop)
51979)]
51980#[cfg_attr(
51981    not(target_arch = "arm"),
51982    stable(feature = "neon_intrinsics", since = "1.59.0")
51983)]
51984#[cfg_attr(
51985    target_arch = "arm",
51986    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51987)]
51988pub fn vreinterpret_s8_u32(a: uint32x2_t) -> int8x8_t {
51989    let a: uint32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
51990    unsafe {
51991        let ret_val: int8x8_t = transmute(a);
51992        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
51993    }
51994}
51995#[doc = "Vector reinterpret cast operation"]
51996#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_u32)"]
51997#[inline]
51998#[cfg(target_endian = "little")]
51999#[target_feature(enable = "neon")]
52000#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52001#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52002#[cfg_attr(
52003    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52004    assert_instr(nop)
52005)]
52006#[cfg_attr(
52007    not(target_arch = "arm"),
52008    stable(feature = "neon_intrinsics", since = "1.59.0")
52009)]
52010#[cfg_attr(
52011    target_arch = "arm",
52012    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52013)]
52014pub fn vreinterpret_s16_u32(a: uint32x2_t) -> int16x4_t {
52015    unsafe { transmute(a) }
52016}
52017#[doc = "Vector reinterpret cast operation"]
52018#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_u32)"]
52019#[inline]
52020#[cfg(target_endian = "big")]
52021#[target_feature(enable = "neon")]
52022#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52023#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52024#[cfg_attr(
52025    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52026    assert_instr(nop)
52027)]
52028#[cfg_attr(
52029    not(target_arch = "arm"),
52030    stable(feature = "neon_intrinsics", since = "1.59.0")
52031)]
52032#[cfg_attr(
52033    target_arch = "arm",
52034    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52035)]
52036pub fn vreinterpret_s16_u32(a: uint32x2_t) -> int16x4_t {
52037    let a: uint32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
52038    unsafe {
52039        let ret_val: int16x4_t = transmute(a);
52040        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
52041    }
52042}
52043#[doc = "Vector reinterpret cast operation"]
52044#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_u32)"]
52045#[inline]
52046#[cfg(target_endian = "little")]
52047#[target_feature(enable = "neon")]
52048#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52049#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52050#[cfg_attr(
52051    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52052    assert_instr(nop)
52053)]
52054#[cfg_attr(
52055    not(target_arch = "arm"),
52056    stable(feature = "neon_intrinsics", since = "1.59.0")
52057)]
52058#[cfg_attr(
52059    target_arch = "arm",
52060    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52061)]
52062pub fn vreinterpret_s32_u32(a: uint32x2_t) -> int32x2_t {
52063    unsafe { transmute(a) }
52064}
52065#[doc = "Vector reinterpret cast operation"]
52066#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_u32)"]
52067#[inline]
52068#[cfg(target_endian = "big")]
52069#[target_feature(enable = "neon")]
52070#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52071#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52072#[cfg_attr(
52073    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52074    assert_instr(nop)
52075)]
52076#[cfg_attr(
52077    not(target_arch = "arm"),
52078    stable(feature = "neon_intrinsics", since = "1.59.0")
52079)]
52080#[cfg_attr(
52081    target_arch = "arm",
52082    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52083)]
52084pub fn vreinterpret_s32_u32(a: uint32x2_t) -> int32x2_t {
52085    let a: uint32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
52086    unsafe {
52087        let ret_val: int32x2_t = transmute(a);
52088        simd_shuffle!(ret_val, ret_val, [1, 0])
52089    }
52090}
52091#[doc = "Vector reinterpret cast operation"]
52092#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_u32)"]
52093#[inline]
52094#[cfg(target_endian = "little")]
52095#[target_feature(enable = "neon")]
52096#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52097#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52098#[cfg_attr(
52099    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52100    assert_instr(nop)
52101)]
52102#[cfg_attr(
52103    not(target_arch = "arm"),
52104    stable(feature = "neon_intrinsics", since = "1.59.0")
52105)]
52106#[cfg_attr(
52107    target_arch = "arm",
52108    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52109)]
52110pub fn vreinterpret_s64_u32(a: uint32x2_t) -> int64x1_t {
52111    unsafe { transmute(a) }
52112}
52113#[doc = "Vector reinterpret cast operation"]
52114#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_u32)"]
52115#[inline]
52116#[cfg(target_endian = "big")]
52117#[target_feature(enable = "neon")]
52118#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52119#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52120#[cfg_attr(
52121    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52122    assert_instr(nop)
52123)]
52124#[cfg_attr(
52125    not(target_arch = "arm"),
52126    stable(feature = "neon_intrinsics", since = "1.59.0")
52127)]
52128#[cfg_attr(
52129    target_arch = "arm",
52130    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52131)]
52132pub fn vreinterpret_s64_u32(a: uint32x2_t) -> int64x1_t {
52133    let a: uint32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
52134    unsafe { transmute(a) }
52135}
52136#[doc = "Vector reinterpret cast operation"]
52137#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_u32)"]
52138#[inline]
52139#[cfg(target_endian = "little")]
52140#[target_feature(enable = "neon")]
52141#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52142#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52143#[cfg_attr(
52144    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52145    assert_instr(nop)
52146)]
52147#[cfg_attr(
52148    not(target_arch = "arm"),
52149    stable(feature = "neon_intrinsics", since = "1.59.0")
52150)]
52151#[cfg_attr(
52152    target_arch = "arm",
52153    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52154)]
52155pub fn vreinterpret_u8_u32(a: uint32x2_t) -> uint8x8_t {
52156    unsafe { transmute(a) }
52157}
52158#[doc = "Vector reinterpret cast operation"]
52159#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_u32)"]
52160#[inline]
52161#[cfg(target_endian = "big")]
52162#[target_feature(enable = "neon")]
52163#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52164#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52165#[cfg_attr(
52166    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52167    assert_instr(nop)
52168)]
52169#[cfg_attr(
52170    not(target_arch = "arm"),
52171    stable(feature = "neon_intrinsics", since = "1.59.0")
52172)]
52173#[cfg_attr(
52174    target_arch = "arm",
52175    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52176)]
52177pub fn vreinterpret_u8_u32(a: uint32x2_t) -> uint8x8_t {
52178    let a: uint32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
52179    unsafe {
52180        let ret_val: uint8x8_t = transmute(a);
52181        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
52182    }
52183}
52184#[doc = "Vector reinterpret cast operation"]
52185#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_u32)"]
52186#[inline]
52187#[cfg(target_endian = "little")]
52188#[target_feature(enable = "neon")]
52189#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52190#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52191#[cfg_attr(
52192    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52193    assert_instr(nop)
52194)]
52195#[cfg_attr(
52196    not(target_arch = "arm"),
52197    stable(feature = "neon_intrinsics", since = "1.59.0")
52198)]
52199#[cfg_attr(
52200    target_arch = "arm",
52201    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52202)]
52203pub fn vreinterpret_u16_u32(a: uint32x2_t) -> uint16x4_t {
52204    unsafe { transmute(a) }
52205}
52206#[doc = "Vector reinterpret cast operation"]
52207#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_u32)"]
52208#[inline]
52209#[cfg(target_endian = "big")]
52210#[target_feature(enable = "neon")]
52211#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52212#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52213#[cfg_attr(
52214    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52215    assert_instr(nop)
52216)]
52217#[cfg_attr(
52218    not(target_arch = "arm"),
52219    stable(feature = "neon_intrinsics", since = "1.59.0")
52220)]
52221#[cfg_attr(
52222    target_arch = "arm",
52223    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52224)]
52225pub fn vreinterpret_u16_u32(a: uint32x2_t) -> uint16x4_t {
52226    let a: uint32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
52227    unsafe {
52228        let ret_val: uint16x4_t = transmute(a);
52229        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
52230    }
52231}
52232#[doc = "Vector reinterpret cast operation"]
52233#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_u32)"]
52234#[inline]
52235#[cfg(target_endian = "little")]
52236#[target_feature(enable = "neon")]
52237#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52238#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52239#[cfg_attr(
52240    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52241    assert_instr(nop)
52242)]
52243#[cfg_attr(
52244    not(target_arch = "arm"),
52245    stable(feature = "neon_intrinsics", since = "1.59.0")
52246)]
52247#[cfg_attr(
52248    target_arch = "arm",
52249    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52250)]
52251pub fn vreinterpret_u64_u32(a: uint32x2_t) -> uint64x1_t {
52252    unsafe { transmute(a) }
52253}
52254#[doc = "Vector reinterpret cast operation"]
52255#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_u32)"]
52256#[inline]
52257#[cfg(target_endian = "big")]
52258#[target_feature(enable = "neon")]
52259#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52260#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52261#[cfg_attr(
52262    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52263    assert_instr(nop)
52264)]
52265#[cfg_attr(
52266    not(target_arch = "arm"),
52267    stable(feature = "neon_intrinsics", since = "1.59.0")
52268)]
52269#[cfg_attr(
52270    target_arch = "arm",
52271    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52272)]
52273pub fn vreinterpret_u64_u32(a: uint32x2_t) -> uint64x1_t {
52274    let a: uint32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
52275    unsafe { transmute(a) }
52276}
52277#[doc = "Vector reinterpret cast operation"]
52278#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_u32)"]
52279#[inline]
52280#[cfg(target_endian = "little")]
52281#[target_feature(enable = "neon")]
52282#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52283#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52284#[cfg_attr(
52285    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52286    assert_instr(nop)
52287)]
52288#[cfg_attr(
52289    not(target_arch = "arm"),
52290    stable(feature = "neon_intrinsics", since = "1.59.0")
52291)]
52292#[cfg_attr(
52293    target_arch = "arm",
52294    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52295)]
52296pub fn vreinterpret_p8_u32(a: uint32x2_t) -> poly8x8_t {
52297    unsafe { transmute(a) }
52298}
52299#[doc = "Vector reinterpret cast operation"]
52300#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_u32)"]
52301#[inline]
52302#[cfg(target_endian = "big")]
52303#[target_feature(enable = "neon")]
52304#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52305#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52306#[cfg_attr(
52307    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52308    assert_instr(nop)
52309)]
52310#[cfg_attr(
52311    not(target_arch = "arm"),
52312    stable(feature = "neon_intrinsics", since = "1.59.0")
52313)]
52314#[cfg_attr(
52315    target_arch = "arm",
52316    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52317)]
52318pub fn vreinterpret_p8_u32(a: uint32x2_t) -> poly8x8_t {
52319    let a: uint32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
52320    unsafe {
52321        let ret_val: poly8x8_t = transmute(a);
52322        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
52323    }
52324}
52325#[doc = "Vector reinterpret cast operation"]
52326#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_u32)"]
52327#[inline]
52328#[cfg(target_endian = "little")]
52329#[target_feature(enable = "neon")]
52330#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52331#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52332#[cfg_attr(
52333    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52334    assert_instr(nop)
52335)]
52336#[cfg_attr(
52337    not(target_arch = "arm"),
52338    stable(feature = "neon_intrinsics", since = "1.59.0")
52339)]
52340#[cfg_attr(
52341    target_arch = "arm",
52342    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52343)]
52344pub fn vreinterpret_p16_u32(a: uint32x2_t) -> poly16x4_t {
52345    unsafe { transmute(a) }
52346}
52347#[doc = "Vector reinterpret cast operation"]
52348#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_u32)"]
52349#[inline]
52350#[cfg(target_endian = "big")]
52351#[target_feature(enable = "neon")]
52352#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52353#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52354#[cfg_attr(
52355    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52356    assert_instr(nop)
52357)]
52358#[cfg_attr(
52359    not(target_arch = "arm"),
52360    stable(feature = "neon_intrinsics", since = "1.59.0")
52361)]
52362#[cfg_attr(
52363    target_arch = "arm",
52364    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52365)]
52366pub fn vreinterpret_p16_u32(a: uint32x2_t) -> poly16x4_t {
52367    let a: uint32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
52368    unsafe {
52369        let ret_val: poly16x4_t = transmute(a);
52370        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
52371    }
52372}
52373#[doc = "Vector reinterpret cast operation"]
52374#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_u32)"]
52375#[inline]
52376#[cfg(target_endian = "little")]
52377#[target_feature(enable = "neon")]
52378#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52379#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52380#[cfg_attr(
52381    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52382    assert_instr(nop)
52383)]
52384#[cfg_attr(
52385    not(target_arch = "arm"),
52386    stable(feature = "neon_intrinsics", since = "1.59.0")
52387)]
52388#[cfg_attr(
52389    target_arch = "arm",
52390    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52391)]
52392pub fn vreinterpretq_f32_u32(a: uint32x4_t) -> float32x4_t {
52393    unsafe { transmute(a) }
52394}
52395#[doc = "Vector reinterpret cast operation"]
52396#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_u32)"]
52397#[inline]
52398#[cfg(target_endian = "big")]
52399#[target_feature(enable = "neon")]
52400#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52401#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52402#[cfg_attr(
52403    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52404    assert_instr(nop)
52405)]
52406#[cfg_attr(
52407    not(target_arch = "arm"),
52408    stable(feature = "neon_intrinsics", since = "1.59.0")
52409)]
52410#[cfg_attr(
52411    target_arch = "arm",
52412    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52413)]
52414pub fn vreinterpretq_f32_u32(a: uint32x4_t) -> float32x4_t {
52415    let a: uint32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
52416    unsafe {
52417        let ret_val: float32x4_t = transmute(a);
52418        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
52419    }
52420}
52421#[doc = "Vector reinterpret cast operation"]
52422#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_u32)"]
52423#[inline]
52424#[cfg(target_endian = "little")]
52425#[target_feature(enable = "neon")]
52426#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52427#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52428#[cfg_attr(
52429    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52430    assert_instr(nop)
52431)]
52432#[cfg_attr(
52433    not(target_arch = "arm"),
52434    stable(feature = "neon_intrinsics", since = "1.59.0")
52435)]
52436#[cfg_attr(
52437    target_arch = "arm",
52438    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52439)]
52440pub fn vreinterpretq_s8_u32(a: uint32x4_t) -> int8x16_t {
52441    unsafe { transmute(a) }
52442}
52443#[doc = "Vector reinterpret cast operation"]
52444#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_u32)"]
52445#[inline]
52446#[cfg(target_endian = "big")]
52447#[target_feature(enable = "neon")]
52448#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52449#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52450#[cfg_attr(
52451    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52452    assert_instr(nop)
52453)]
52454#[cfg_attr(
52455    not(target_arch = "arm"),
52456    stable(feature = "neon_intrinsics", since = "1.59.0")
52457)]
52458#[cfg_attr(
52459    target_arch = "arm",
52460    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52461)]
52462pub fn vreinterpretq_s8_u32(a: uint32x4_t) -> int8x16_t {
52463    let a: uint32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
52464    unsafe {
52465        let ret_val: int8x16_t = transmute(a);
52466        simd_shuffle!(
52467            ret_val,
52468            ret_val,
52469            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
52470        )
52471    }
52472}
52473#[doc = "Vector reinterpret cast operation"]
52474#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_u32)"]
52475#[inline]
52476#[cfg(target_endian = "little")]
52477#[target_feature(enable = "neon")]
52478#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52479#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52480#[cfg_attr(
52481    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52482    assert_instr(nop)
52483)]
52484#[cfg_attr(
52485    not(target_arch = "arm"),
52486    stable(feature = "neon_intrinsics", since = "1.59.0")
52487)]
52488#[cfg_attr(
52489    target_arch = "arm",
52490    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52491)]
52492pub fn vreinterpretq_s16_u32(a: uint32x4_t) -> int16x8_t {
52493    unsafe { transmute(a) }
52494}
52495#[doc = "Vector reinterpret cast operation"]
52496#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_u32)"]
52497#[inline]
52498#[cfg(target_endian = "big")]
52499#[target_feature(enable = "neon")]
52500#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52501#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52502#[cfg_attr(
52503    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52504    assert_instr(nop)
52505)]
52506#[cfg_attr(
52507    not(target_arch = "arm"),
52508    stable(feature = "neon_intrinsics", since = "1.59.0")
52509)]
52510#[cfg_attr(
52511    target_arch = "arm",
52512    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52513)]
52514pub fn vreinterpretq_s16_u32(a: uint32x4_t) -> int16x8_t {
52515    let a: uint32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
52516    unsafe {
52517        let ret_val: int16x8_t = transmute(a);
52518        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
52519    }
52520}
52521#[doc = "Vector reinterpret cast operation"]
52522#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_u32)"]
52523#[inline]
52524#[cfg(target_endian = "little")]
52525#[target_feature(enable = "neon")]
52526#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52527#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52528#[cfg_attr(
52529    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52530    assert_instr(nop)
52531)]
52532#[cfg_attr(
52533    not(target_arch = "arm"),
52534    stable(feature = "neon_intrinsics", since = "1.59.0")
52535)]
52536#[cfg_attr(
52537    target_arch = "arm",
52538    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52539)]
52540pub fn vreinterpretq_s32_u32(a: uint32x4_t) -> int32x4_t {
52541    unsafe { transmute(a) }
52542}
52543#[doc = "Vector reinterpret cast operation"]
52544#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_u32)"]
52545#[inline]
52546#[cfg(target_endian = "big")]
52547#[target_feature(enable = "neon")]
52548#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52549#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52550#[cfg_attr(
52551    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52552    assert_instr(nop)
52553)]
52554#[cfg_attr(
52555    not(target_arch = "arm"),
52556    stable(feature = "neon_intrinsics", since = "1.59.0")
52557)]
52558#[cfg_attr(
52559    target_arch = "arm",
52560    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52561)]
52562pub fn vreinterpretq_s32_u32(a: uint32x4_t) -> int32x4_t {
52563    let a: uint32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
52564    unsafe {
52565        let ret_val: int32x4_t = transmute(a);
52566        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
52567    }
52568}
52569#[doc = "Vector reinterpret cast operation"]
52570#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_u32)"]
52571#[inline]
52572#[cfg(target_endian = "little")]
52573#[target_feature(enable = "neon")]
52574#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52575#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52576#[cfg_attr(
52577    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52578    assert_instr(nop)
52579)]
52580#[cfg_attr(
52581    not(target_arch = "arm"),
52582    stable(feature = "neon_intrinsics", since = "1.59.0")
52583)]
52584#[cfg_attr(
52585    target_arch = "arm",
52586    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52587)]
52588pub fn vreinterpretq_s64_u32(a: uint32x4_t) -> int64x2_t {
52589    unsafe { transmute(a) }
52590}
52591#[doc = "Vector reinterpret cast operation"]
52592#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_u32)"]
52593#[inline]
52594#[cfg(target_endian = "big")]
52595#[target_feature(enable = "neon")]
52596#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52597#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52598#[cfg_attr(
52599    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52600    assert_instr(nop)
52601)]
52602#[cfg_attr(
52603    not(target_arch = "arm"),
52604    stable(feature = "neon_intrinsics", since = "1.59.0")
52605)]
52606#[cfg_attr(
52607    target_arch = "arm",
52608    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52609)]
52610pub fn vreinterpretq_s64_u32(a: uint32x4_t) -> int64x2_t {
52611    let a: uint32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
52612    unsafe {
52613        let ret_val: int64x2_t = transmute(a);
52614        simd_shuffle!(ret_val, ret_val, [1, 0])
52615    }
52616}
52617#[doc = "Vector reinterpret cast operation"]
52618#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_u32)"]
52619#[inline]
52620#[cfg(target_endian = "little")]
52621#[target_feature(enable = "neon")]
52622#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52623#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52624#[cfg_attr(
52625    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52626    assert_instr(nop)
52627)]
52628#[cfg_attr(
52629    not(target_arch = "arm"),
52630    stable(feature = "neon_intrinsics", since = "1.59.0")
52631)]
52632#[cfg_attr(
52633    target_arch = "arm",
52634    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52635)]
52636pub fn vreinterpretq_u8_u32(a: uint32x4_t) -> uint8x16_t {
52637    unsafe { transmute(a) }
52638}
52639#[doc = "Vector reinterpret cast operation"]
52640#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_u32)"]
52641#[inline]
52642#[cfg(target_endian = "big")]
52643#[target_feature(enable = "neon")]
52644#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52645#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52646#[cfg_attr(
52647    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52648    assert_instr(nop)
52649)]
52650#[cfg_attr(
52651    not(target_arch = "arm"),
52652    stable(feature = "neon_intrinsics", since = "1.59.0")
52653)]
52654#[cfg_attr(
52655    target_arch = "arm",
52656    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52657)]
52658pub fn vreinterpretq_u8_u32(a: uint32x4_t) -> uint8x16_t {
52659    let a: uint32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
52660    unsafe {
52661        let ret_val: uint8x16_t = transmute(a);
52662        simd_shuffle!(
52663            ret_val,
52664            ret_val,
52665            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
52666        )
52667    }
52668}
52669#[doc = "Vector reinterpret cast operation"]
52670#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_u32)"]
52671#[inline]
52672#[cfg(target_endian = "little")]
52673#[target_feature(enable = "neon")]
52674#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52675#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52676#[cfg_attr(
52677    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52678    assert_instr(nop)
52679)]
52680#[cfg_attr(
52681    not(target_arch = "arm"),
52682    stable(feature = "neon_intrinsics", since = "1.59.0")
52683)]
52684#[cfg_attr(
52685    target_arch = "arm",
52686    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52687)]
52688pub fn vreinterpretq_u16_u32(a: uint32x4_t) -> uint16x8_t {
52689    unsafe { transmute(a) }
52690}
52691#[doc = "Vector reinterpret cast operation"]
52692#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_u32)"]
52693#[inline]
52694#[cfg(target_endian = "big")]
52695#[target_feature(enable = "neon")]
52696#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52697#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52698#[cfg_attr(
52699    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52700    assert_instr(nop)
52701)]
52702#[cfg_attr(
52703    not(target_arch = "arm"),
52704    stable(feature = "neon_intrinsics", since = "1.59.0")
52705)]
52706#[cfg_attr(
52707    target_arch = "arm",
52708    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52709)]
52710pub fn vreinterpretq_u16_u32(a: uint32x4_t) -> uint16x8_t {
52711    let a: uint32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
52712    unsafe {
52713        let ret_val: uint16x8_t = transmute(a);
52714        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
52715    }
52716}
52717#[doc = "Vector reinterpret cast operation"]
52718#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_u32)"]
52719#[inline]
52720#[cfg(target_endian = "little")]
52721#[target_feature(enable = "neon")]
52722#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52723#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52724#[cfg_attr(
52725    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52726    assert_instr(nop)
52727)]
52728#[cfg_attr(
52729    not(target_arch = "arm"),
52730    stable(feature = "neon_intrinsics", since = "1.59.0")
52731)]
52732#[cfg_attr(
52733    target_arch = "arm",
52734    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52735)]
52736pub fn vreinterpretq_u64_u32(a: uint32x4_t) -> uint64x2_t {
52737    unsafe { transmute(a) }
52738}
52739#[doc = "Vector reinterpret cast operation"]
52740#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_u32)"]
52741#[inline]
52742#[cfg(target_endian = "big")]
52743#[target_feature(enable = "neon")]
52744#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52745#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52746#[cfg_attr(
52747    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52748    assert_instr(nop)
52749)]
52750#[cfg_attr(
52751    not(target_arch = "arm"),
52752    stable(feature = "neon_intrinsics", since = "1.59.0")
52753)]
52754#[cfg_attr(
52755    target_arch = "arm",
52756    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52757)]
52758pub fn vreinterpretq_u64_u32(a: uint32x4_t) -> uint64x2_t {
52759    let a: uint32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
52760    unsafe {
52761        let ret_val: uint64x2_t = transmute(a);
52762        simd_shuffle!(ret_val, ret_val, [1, 0])
52763    }
52764}
52765#[doc = "Vector reinterpret cast operation"]
52766#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_u32)"]
52767#[inline]
52768#[cfg(target_endian = "little")]
52769#[target_feature(enable = "neon")]
52770#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52771#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52772#[cfg_attr(
52773    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52774    assert_instr(nop)
52775)]
52776#[cfg_attr(
52777    not(target_arch = "arm"),
52778    stable(feature = "neon_intrinsics", since = "1.59.0")
52779)]
52780#[cfg_attr(
52781    target_arch = "arm",
52782    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52783)]
52784pub fn vreinterpretq_p8_u32(a: uint32x4_t) -> poly8x16_t {
52785    unsafe { transmute(a) }
52786}
52787#[doc = "Vector reinterpret cast operation"]
52788#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_u32)"]
52789#[inline]
52790#[cfg(target_endian = "big")]
52791#[target_feature(enable = "neon")]
52792#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52793#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52794#[cfg_attr(
52795    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52796    assert_instr(nop)
52797)]
52798#[cfg_attr(
52799    not(target_arch = "arm"),
52800    stable(feature = "neon_intrinsics", since = "1.59.0")
52801)]
52802#[cfg_attr(
52803    target_arch = "arm",
52804    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52805)]
52806pub fn vreinterpretq_p8_u32(a: uint32x4_t) -> poly8x16_t {
52807    let a: uint32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
52808    unsafe {
52809        let ret_val: poly8x16_t = transmute(a);
52810        simd_shuffle!(
52811            ret_val,
52812            ret_val,
52813            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
52814        )
52815    }
52816}
52817#[doc = "Vector reinterpret cast operation"]
52818#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_u32)"]
52819#[inline]
52820#[cfg(target_endian = "little")]
52821#[target_feature(enable = "neon")]
52822#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52823#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52824#[cfg_attr(
52825    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52826    assert_instr(nop)
52827)]
52828#[cfg_attr(
52829    not(target_arch = "arm"),
52830    stable(feature = "neon_intrinsics", since = "1.59.0")
52831)]
52832#[cfg_attr(
52833    target_arch = "arm",
52834    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52835)]
52836pub fn vreinterpretq_p16_u32(a: uint32x4_t) -> poly16x8_t {
52837    unsafe { transmute(a) }
52838}
52839#[doc = "Vector reinterpret cast operation"]
52840#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_u32)"]
52841#[inline]
52842#[cfg(target_endian = "big")]
52843#[target_feature(enable = "neon")]
52844#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52845#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52846#[cfg_attr(
52847    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52848    assert_instr(nop)
52849)]
52850#[cfg_attr(
52851    not(target_arch = "arm"),
52852    stable(feature = "neon_intrinsics", since = "1.59.0")
52853)]
52854#[cfg_attr(
52855    target_arch = "arm",
52856    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52857)]
52858pub fn vreinterpretq_p16_u32(a: uint32x4_t) -> poly16x8_t {
52859    let a: uint32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
52860    unsafe {
52861        let ret_val: poly16x8_t = transmute(a);
52862        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
52863    }
52864}
52865#[doc = "Vector reinterpret cast operation"]
52866#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_u64)"]
52867#[inline]
52868#[cfg(target_endian = "little")]
52869#[target_feature(enable = "neon")]
52870#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52871#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52872#[cfg_attr(
52873    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52874    assert_instr(nop)
52875)]
52876#[cfg_attr(
52877    not(target_arch = "arm"),
52878    stable(feature = "neon_intrinsics", since = "1.59.0")
52879)]
52880#[cfg_attr(
52881    target_arch = "arm",
52882    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52883)]
52884pub fn vreinterpret_f32_u64(a: uint64x1_t) -> float32x2_t {
52885    unsafe { transmute(a) }
52886}
52887#[doc = "Vector reinterpret cast operation"]
52888#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_u64)"]
52889#[inline]
52890#[cfg(target_endian = "big")]
52891#[target_feature(enable = "neon")]
52892#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52893#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52894#[cfg_attr(
52895    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52896    assert_instr(nop)
52897)]
52898#[cfg_attr(
52899    not(target_arch = "arm"),
52900    stable(feature = "neon_intrinsics", since = "1.59.0")
52901)]
52902#[cfg_attr(
52903    target_arch = "arm",
52904    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52905)]
52906pub fn vreinterpret_f32_u64(a: uint64x1_t) -> float32x2_t {
52907    unsafe {
52908        let ret_val: float32x2_t = transmute(a);
52909        simd_shuffle!(ret_val, ret_val, [1, 0])
52910    }
52911}
52912#[doc = "Vector reinterpret cast operation"]
52913#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_u64)"]
52914#[inline]
52915#[cfg(target_endian = "little")]
52916#[target_feature(enable = "neon")]
52917#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52918#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52919#[cfg_attr(
52920    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52921    assert_instr(nop)
52922)]
52923#[cfg_attr(
52924    not(target_arch = "arm"),
52925    stable(feature = "neon_intrinsics", since = "1.59.0")
52926)]
52927#[cfg_attr(
52928    target_arch = "arm",
52929    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52930)]
52931pub fn vreinterpret_s8_u64(a: uint64x1_t) -> int8x8_t {
52932    unsafe { transmute(a) }
52933}
52934#[doc = "Vector reinterpret cast operation"]
52935#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_u64)"]
52936#[inline]
52937#[cfg(target_endian = "big")]
52938#[target_feature(enable = "neon")]
52939#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52940#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52941#[cfg_attr(
52942    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52943    assert_instr(nop)
52944)]
52945#[cfg_attr(
52946    not(target_arch = "arm"),
52947    stable(feature = "neon_intrinsics", since = "1.59.0")
52948)]
52949#[cfg_attr(
52950    target_arch = "arm",
52951    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52952)]
52953pub fn vreinterpret_s8_u64(a: uint64x1_t) -> int8x8_t {
52954    unsafe {
52955        let ret_val: int8x8_t = transmute(a);
52956        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
52957    }
52958}
52959#[doc = "Vector reinterpret cast operation"]
52960#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_u64)"]
52961#[inline]
52962#[cfg(target_endian = "little")]
52963#[target_feature(enable = "neon")]
52964#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52965#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52966#[cfg_attr(
52967    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52968    assert_instr(nop)
52969)]
52970#[cfg_attr(
52971    not(target_arch = "arm"),
52972    stable(feature = "neon_intrinsics", since = "1.59.0")
52973)]
52974#[cfg_attr(
52975    target_arch = "arm",
52976    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52977)]
52978pub fn vreinterpret_s16_u64(a: uint64x1_t) -> int16x4_t {
52979    unsafe { transmute(a) }
52980}
52981#[doc = "Vector reinterpret cast operation"]
52982#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_u64)"]
52983#[inline]
52984#[cfg(target_endian = "big")]
52985#[target_feature(enable = "neon")]
52986#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52987#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52988#[cfg_attr(
52989    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52990    assert_instr(nop)
52991)]
52992#[cfg_attr(
52993    not(target_arch = "arm"),
52994    stable(feature = "neon_intrinsics", since = "1.59.0")
52995)]
52996#[cfg_attr(
52997    target_arch = "arm",
52998    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52999)]
53000pub fn vreinterpret_s16_u64(a: uint64x1_t) -> int16x4_t {
53001    unsafe {
53002        let ret_val: int16x4_t = transmute(a);
53003        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
53004    }
53005}
53006#[doc = "Vector reinterpret cast operation"]
53007#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_u64)"]
53008#[inline]
53009#[cfg(target_endian = "little")]
53010#[target_feature(enable = "neon")]
53011#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53012#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53013#[cfg_attr(
53014    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53015    assert_instr(nop)
53016)]
53017#[cfg_attr(
53018    not(target_arch = "arm"),
53019    stable(feature = "neon_intrinsics", since = "1.59.0")
53020)]
53021#[cfg_attr(
53022    target_arch = "arm",
53023    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53024)]
53025pub fn vreinterpret_s32_u64(a: uint64x1_t) -> int32x2_t {
53026    unsafe { transmute(a) }
53027}
53028#[doc = "Vector reinterpret cast operation"]
53029#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_u64)"]
53030#[inline]
53031#[cfg(target_endian = "big")]
53032#[target_feature(enable = "neon")]
53033#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53034#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53035#[cfg_attr(
53036    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53037    assert_instr(nop)
53038)]
53039#[cfg_attr(
53040    not(target_arch = "arm"),
53041    stable(feature = "neon_intrinsics", since = "1.59.0")
53042)]
53043#[cfg_attr(
53044    target_arch = "arm",
53045    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53046)]
53047pub fn vreinterpret_s32_u64(a: uint64x1_t) -> int32x2_t {
53048    unsafe {
53049        let ret_val: int32x2_t = transmute(a);
53050        simd_shuffle!(ret_val, ret_val, [1, 0])
53051    }
53052}
53053#[doc = "Vector reinterpret cast operation"]
53054#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_u64)"]
53055#[inline]
53056#[target_feature(enable = "neon")]
53057#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53058#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53059#[cfg_attr(
53060    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53061    assert_instr(nop)
53062)]
53063#[cfg_attr(
53064    not(target_arch = "arm"),
53065    stable(feature = "neon_intrinsics", since = "1.59.0")
53066)]
53067#[cfg_attr(
53068    target_arch = "arm",
53069    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53070)]
53071pub fn vreinterpret_s64_u64(a: uint64x1_t) -> int64x1_t {
53072    unsafe { transmute(a) }
53073}
53074#[doc = "Vector reinterpret cast operation"]
53075#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_u64)"]
53076#[inline]
53077#[cfg(target_endian = "little")]
53078#[target_feature(enable = "neon")]
53079#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53080#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53081#[cfg_attr(
53082    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53083    assert_instr(nop)
53084)]
53085#[cfg_attr(
53086    not(target_arch = "arm"),
53087    stable(feature = "neon_intrinsics", since = "1.59.0")
53088)]
53089#[cfg_attr(
53090    target_arch = "arm",
53091    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53092)]
53093pub fn vreinterpret_u8_u64(a: uint64x1_t) -> uint8x8_t {
53094    unsafe { transmute(a) }
53095}
53096#[doc = "Vector reinterpret cast operation"]
53097#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_u64)"]
53098#[inline]
53099#[cfg(target_endian = "big")]
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(nop))]
53103#[cfg_attr(
53104    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53105    assert_instr(nop)
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 vreinterpret_u8_u64(a: uint64x1_t) -> uint8x8_t {
53116    unsafe {
53117        let ret_val: uint8x8_t = transmute(a);
53118        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
53119    }
53120}
53121#[doc = "Vector reinterpret cast operation"]
53122#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_u64)"]
53123#[inline]
53124#[cfg(target_endian = "little")]
53125#[target_feature(enable = "neon")]
53126#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53127#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53128#[cfg_attr(
53129    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53130    assert_instr(nop)
53131)]
53132#[cfg_attr(
53133    not(target_arch = "arm"),
53134    stable(feature = "neon_intrinsics", since = "1.59.0")
53135)]
53136#[cfg_attr(
53137    target_arch = "arm",
53138    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53139)]
53140pub fn vreinterpret_u16_u64(a: uint64x1_t) -> uint16x4_t {
53141    unsafe { transmute(a) }
53142}
53143#[doc = "Vector reinterpret cast operation"]
53144#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_u64)"]
53145#[inline]
53146#[cfg(target_endian = "big")]
53147#[target_feature(enable = "neon")]
53148#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53149#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53150#[cfg_attr(
53151    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53152    assert_instr(nop)
53153)]
53154#[cfg_attr(
53155    not(target_arch = "arm"),
53156    stable(feature = "neon_intrinsics", since = "1.59.0")
53157)]
53158#[cfg_attr(
53159    target_arch = "arm",
53160    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53161)]
53162pub fn vreinterpret_u16_u64(a: uint64x1_t) -> uint16x4_t {
53163    unsafe {
53164        let ret_val: uint16x4_t = transmute(a);
53165        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
53166    }
53167}
53168#[doc = "Vector reinterpret cast operation"]
53169#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_u64)"]
53170#[inline]
53171#[cfg(target_endian = "little")]
53172#[target_feature(enable = "neon")]
53173#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53174#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53175#[cfg_attr(
53176    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53177    assert_instr(nop)
53178)]
53179#[cfg_attr(
53180    not(target_arch = "arm"),
53181    stable(feature = "neon_intrinsics", since = "1.59.0")
53182)]
53183#[cfg_attr(
53184    target_arch = "arm",
53185    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53186)]
53187pub fn vreinterpret_u32_u64(a: uint64x1_t) -> uint32x2_t {
53188    unsafe { transmute(a) }
53189}
53190#[doc = "Vector reinterpret cast operation"]
53191#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_u64)"]
53192#[inline]
53193#[cfg(target_endian = "big")]
53194#[target_feature(enable = "neon")]
53195#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53196#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53197#[cfg_attr(
53198    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53199    assert_instr(nop)
53200)]
53201#[cfg_attr(
53202    not(target_arch = "arm"),
53203    stable(feature = "neon_intrinsics", since = "1.59.0")
53204)]
53205#[cfg_attr(
53206    target_arch = "arm",
53207    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53208)]
53209pub fn vreinterpret_u32_u64(a: uint64x1_t) -> uint32x2_t {
53210    unsafe {
53211        let ret_val: uint32x2_t = transmute(a);
53212        simd_shuffle!(ret_val, ret_val, [1, 0])
53213    }
53214}
53215#[doc = "Vector reinterpret cast operation"]
53216#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_u64)"]
53217#[inline]
53218#[cfg(target_endian = "little")]
53219#[target_feature(enable = "neon")]
53220#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53221#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53222#[cfg_attr(
53223    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53224    assert_instr(nop)
53225)]
53226#[cfg_attr(
53227    not(target_arch = "arm"),
53228    stable(feature = "neon_intrinsics", since = "1.59.0")
53229)]
53230#[cfg_attr(
53231    target_arch = "arm",
53232    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53233)]
53234pub fn vreinterpret_p8_u64(a: uint64x1_t) -> poly8x8_t {
53235    unsafe { transmute(a) }
53236}
53237#[doc = "Vector reinterpret cast operation"]
53238#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_u64)"]
53239#[inline]
53240#[cfg(target_endian = "big")]
53241#[target_feature(enable = "neon")]
53242#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53243#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53244#[cfg_attr(
53245    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53246    assert_instr(nop)
53247)]
53248#[cfg_attr(
53249    not(target_arch = "arm"),
53250    stable(feature = "neon_intrinsics", since = "1.59.0")
53251)]
53252#[cfg_attr(
53253    target_arch = "arm",
53254    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53255)]
53256pub fn vreinterpret_p8_u64(a: uint64x1_t) -> poly8x8_t {
53257    unsafe {
53258        let ret_val: poly8x8_t = transmute(a);
53259        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
53260    }
53261}
53262#[doc = "Vector reinterpret cast operation"]
53263#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_u64)"]
53264#[inline]
53265#[cfg(target_endian = "little")]
53266#[target_feature(enable = "neon")]
53267#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53268#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53269#[cfg_attr(
53270    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53271    assert_instr(nop)
53272)]
53273#[cfg_attr(
53274    not(target_arch = "arm"),
53275    stable(feature = "neon_intrinsics", since = "1.59.0")
53276)]
53277#[cfg_attr(
53278    target_arch = "arm",
53279    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53280)]
53281pub fn vreinterpret_p16_u64(a: uint64x1_t) -> poly16x4_t {
53282    unsafe { transmute(a) }
53283}
53284#[doc = "Vector reinterpret cast operation"]
53285#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_u64)"]
53286#[inline]
53287#[cfg(target_endian = "big")]
53288#[target_feature(enable = "neon")]
53289#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53290#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53291#[cfg_attr(
53292    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53293    assert_instr(nop)
53294)]
53295#[cfg_attr(
53296    not(target_arch = "arm"),
53297    stable(feature = "neon_intrinsics", since = "1.59.0")
53298)]
53299#[cfg_attr(
53300    target_arch = "arm",
53301    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53302)]
53303pub fn vreinterpret_p16_u64(a: uint64x1_t) -> poly16x4_t {
53304    unsafe {
53305        let ret_val: poly16x4_t = transmute(a);
53306        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
53307    }
53308}
53309#[doc = "Vector reinterpret cast operation"]
53310#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_u64)"]
53311#[inline]
53312#[cfg(target_endian = "little")]
53313#[target_feature(enable = "neon")]
53314#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53315#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53316#[cfg_attr(
53317    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53318    assert_instr(nop)
53319)]
53320#[cfg_attr(
53321    not(target_arch = "arm"),
53322    stable(feature = "neon_intrinsics", since = "1.59.0")
53323)]
53324#[cfg_attr(
53325    target_arch = "arm",
53326    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53327)]
53328pub fn vreinterpretq_f32_u64(a: uint64x2_t) -> float32x4_t {
53329    unsafe { transmute(a) }
53330}
53331#[doc = "Vector reinterpret cast operation"]
53332#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_u64)"]
53333#[inline]
53334#[cfg(target_endian = "big")]
53335#[target_feature(enable = "neon")]
53336#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53337#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53338#[cfg_attr(
53339    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53340    assert_instr(nop)
53341)]
53342#[cfg_attr(
53343    not(target_arch = "arm"),
53344    stable(feature = "neon_intrinsics", since = "1.59.0")
53345)]
53346#[cfg_attr(
53347    target_arch = "arm",
53348    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53349)]
53350pub fn vreinterpretq_f32_u64(a: uint64x2_t) -> float32x4_t {
53351    let a: uint64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
53352    unsafe {
53353        let ret_val: float32x4_t = transmute(a);
53354        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
53355    }
53356}
53357#[doc = "Vector reinterpret cast operation"]
53358#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_u64)"]
53359#[inline]
53360#[cfg(target_endian = "little")]
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(nop))]
53364#[cfg_attr(
53365    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53366    assert_instr(nop)
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 vreinterpretq_s8_u64(a: uint64x2_t) -> int8x16_t {
53377    unsafe { transmute(a) }
53378}
53379#[doc = "Vector reinterpret cast operation"]
53380#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_u64)"]
53381#[inline]
53382#[cfg(target_endian = "big")]
53383#[target_feature(enable = "neon")]
53384#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53385#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53386#[cfg_attr(
53387    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53388    assert_instr(nop)
53389)]
53390#[cfg_attr(
53391    not(target_arch = "arm"),
53392    stable(feature = "neon_intrinsics", since = "1.59.0")
53393)]
53394#[cfg_attr(
53395    target_arch = "arm",
53396    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53397)]
53398pub fn vreinterpretq_s8_u64(a: uint64x2_t) -> int8x16_t {
53399    let a: uint64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
53400    unsafe {
53401        let ret_val: int8x16_t = transmute(a);
53402        simd_shuffle!(
53403            ret_val,
53404            ret_val,
53405            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
53406        )
53407    }
53408}
53409#[doc = "Vector reinterpret cast operation"]
53410#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_u64)"]
53411#[inline]
53412#[cfg(target_endian = "little")]
53413#[target_feature(enable = "neon")]
53414#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53415#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53416#[cfg_attr(
53417    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53418    assert_instr(nop)
53419)]
53420#[cfg_attr(
53421    not(target_arch = "arm"),
53422    stable(feature = "neon_intrinsics", since = "1.59.0")
53423)]
53424#[cfg_attr(
53425    target_arch = "arm",
53426    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53427)]
53428pub fn vreinterpretq_s16_u64(a: uint64x2_t) -> int16x8_t {
53429    unsafe { transmute(a) }
53430}
53431#[doc = "Vector reinterpret cast operation"]
53432#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_u64)"]
53433#[inline]
53434#[cfg(target_endian = "big")]
53435#[target_feature(enable = "neon")]
53436#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53437#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53438#[cfg_attr(
53439    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53440    assert_instr(nop)
53441)]
53442#[cfg_attr(
53443    not(target_arch = "arm"),
53444    stable(feature = "neon_intrinsics", since = "1.59.0")
53445)]
53446#[cfg_attr(
53447    target_arch = "arm",
53448    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53449)]
53450pub fn vreinterpretq_s16_u64(a: uint64x2_t) -> int16x8_t {
53451    let a: uint64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
53452    unsafe {
53453        let ret_val: int16x8_t = transmute(a);
53454        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
53455    }
53456}
53457#[doc = "Vector reinterpret cast operation"]
53458#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_u64)"]
53459#[inline]
53460#[cfg(target_endian = "little")]
53461#[target_feature(enable = "neon")]
53462#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53463#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53464#[cfg_attr(
53465    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53466    assert_instr(nop)
53467)]
53468#[cfg_attr(
53469    not(target_arch = "arm"),
53470    stable(feature = "neon_intrinsics", since = "1.59.0")
53471)]
53472#[cfg_attr(
53473    target_arch = "arm",
53474    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53475)]
53476pub fn vreinterpretq_s32_u64(a: uint64x2_t) -> int32x4_t {
53477    unsafe { transmute(a) }
53478}
53479#[doc = "Vector reinterpret cast operation"]
53480#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_u64)"]
53481#[inline]
53482#[cfg(target_endian = "big")]
53483#[target_feature(enable = "neon")]
53484#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53485#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53486#[cfg_attr(
53487    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53488    assert_instr(nop)
53489)]
53490#[cfg_attr(
53491    not(target_arch = "arm"),
53492    stable(feature = "neon_intrinsics", since = "1.59.0")
53493)]
53494#[cfg_attr(
53495    target_arch = "arm",
53496    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53497)]
53498pub fn vreinterpretq_s32_u64(a: uint64x2_t) -> int32x4_t {
53499    let a: uint64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
53500    unsafe {
53501        let ret_val: int32x4_t = transmute(a);
53502        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
53503    }
53504}
53505#[doc = "Vector reinterpret cast operation"]
53506#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_u64)"]
53507#[inline]
53508#[cfg(target_endian = "little")]
53509#[target_feature(enable = "neon")]
53510#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53511#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53512#[cfg_attr(
53513    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53514    assert_instr(nop)
53515)]
53516#[cfg_attr(
53517    not(target_arch = "arm"),
53518    stable(feature = "neon_intrinsics", since = "1.59.0")
53519)]
53520#[cfg_attr(
53521    target_arch = "arm",
53522    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53523)]
53524pub fn vreinterpretq_s64_u64(a: uint64x2_t) -> int64x2_t {
53525    unsafe { transmute(a) }
53526}
53527#[doc = "Vector reinterpret cast operation"]
53528#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_u64)"]
53529#[inline]
53530#[cfg(target_endian = "big")]
53531#[target_feature(enable = "neon")]
53532#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53533#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53534#[cfg_attr(
53535    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53536    assert_instr(nop)
53537)]
53538#[cfg_attr(
53539    not(target_arch = "arm"),
53540    stable(feature = "neon_intrinsics", since = "1.59.0")
53541)]
53542#[cfg_attr(
53543    target_arch = "arm",
53544    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53545)]
53546pub fn vreinterpretq_s64_u64(a: uint64x2_t) -> int64x2_t {
53547    let a: uint64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
53548    unsafe {
53549        let ret_val: int64x2_t = transmute(a);
53550        simd_shuffle!(ret_val, ret_val, [1, 0])
53551    }
53552}
53553#[doc = "Vector reinterpret cast operation"]
53554#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_u64)"]
53555#[inline]
53556#[cfg(target_endian = "little")]
53557#[target_feature(enable = "neon")]
53558#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53559#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53560#[cfg_attr(
53561    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53562    assert_instr(nop)
53563)]
53564#[cfg_attr(
53565    not(target_arch = "arm"),
53566    stable(feature = "neon_intrinsics", since = "1.59.0")
53567)]
53568#[cfg_attr(
53569    target_arch = "arm",
53570    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53571)]
53572pub fn vreinterpretq_u8_u64(a: uint64x2_t) -> uint8x16_t {
53573    unsafe { transmute(a) }
53574}
53575#[doc = "Vector reinterpret cast operation"]
53576#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_u64)"]
53577#[inline]
53578#[cfg(target_endian = "big")]
53579#[target_feature(enable = "neon")]
53580#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53581#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53582#[cfg_attr(
53583    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53584    assert_instr(nop)
53585)]
53586#[cfg_attr(
53587    not(target_arch = "arm"),
53588    stable(feature = "neon_intrinsics", since = "1.59.0")
53589)]
53590#[cfg_attr(
53591    target_arch = "arm",
53592    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53593)]
53594pub fn vreinterpretq_u8_u64(a: uint64x2_t) -> uint8x16_t {
53595    let a: uint64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
53596    unsafe {
53597        let ret_val: uint8x16_t = transmute(a);
53598        simd_shuffle!(
53599            ret_val,
53600            ret_val,
53601            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
53602        )
53603    }
53604}
53605#[doc = "Vector reinterpret cast operation"]
53606#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_u64)"]
53607#[inline]
53608#[cfg(target_endian = "little")]
53609#[target_feature(enable = "neon")]
53610#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53611#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53612#[cfg_attr(
53613    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53614    assert_instr(nop)
53615)]
53616#[cfg_attr(
53617    not(target_arch = "arm"),
53618    stable(feature = "neon_intrinsics", since = "1.59.0")
53619)]
53620#[cfg_attr(
53621    target_arch = "arm",
53622    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53623)]
53624pub fn vreinterpretq_u16_u64(a: uint64x2_t) -> uint16x8_t {
53625    unsafe { transmute(a) }
53626}
53627#[doc = "Vector reinterpret cast operation"]
53628#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_u64)"]
53629#[inline]
53630#[cfg(target_endian = "big")]
53631#[target_feature(enable = "neon")]
53632#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53633#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53634#[cfg_attr(
53635    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53636    assert_instr(nop)
53637)]
53638#[cfg_attr(
53639    not(target_arch = "arm"),
53640    stable(feature = "neon_intrinsics", since = "1.59.0")
53641)]
53642#[cfg_attr(
53643    target_arch = "arm",
53644    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53645)]
53646pub fn vreinterpretq_u16_u64(a: uint64x2_t) -> uint16x8_t {
53647    let a: uint64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
53648    unsafe {
53649        let ret_val: uint16x8_t = transmute(a);
53650        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
53651    }
53652}
53653#[doc = "Vector reinterpret cast operation"]
53654#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_u64)"]
53655#[inline]
53656#[cfg(target_endian = "little")]
53657#[target_feature(enable = "neon")]
53658#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53659#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53660#[cfg_attr(
53661    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53662    assert_instr(nop)
53663)]
53664#[cfg_attr(
53665    not(target_arch = "arm"),
53666    stable(feature = "neon_intrinsics", since = "1.59.0")
53667)]
53668#[cfg_attr(
53669    target_arch = "arm",
53670    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53671)]
53672pub fn vreinterpretq_u32_u64(a: uint64x2_t) -> uint32x4_t {
53673    unsafe { transmute(a) }
53674}
53675#[doc = "Vector reinterpret cast operation"]
53676#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_u64)"]
53677#[inline]
53678#[cfg(target_endian = "big")]
53679#[target_feature(enable = "neon")]
53680#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53681#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53682#[cfg_attr(
53683    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53684    assert_instr(nop)
53685)]
53686#[cfg_attr(
53687    not(target_arch = "arm"),
53688    stable(feature = "neon_intrinsics", since = "1.59.0")
53689)]
53690#[cfg_attr(
53691    target_arch = "arm",
53692    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53693)]
53694pub fn vreinterpretq_u32_u64(a: uint64x2_t) -> uint32x4_t {
53695    let a: uint64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
53696    unsafe {
53697        let ret_val: uint32x4_t = transmute(a);
53698        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
53699    }
53700}
53701#[doc = "Vector reinterpret cast operation"]
53702#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_u64)"]
53703#[inline]
53704#[cfg(target_endian = "little")]
53705#[target_feature(enable = "neon")]
53706#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53707#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53708#[cfg_attr(
53709    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53710    assert_instr(nop)
53711)]
53712#[cfg_attr(
53713    not(target_arch = "arm"),
53714    stable(feature = "neon_intrinsics", since = "1.59.0")
53715)]
53716#[cfg_attr(
53717    target_arch = "arm",
53718    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53719)]
53720pub fn vreinterpretq_p8_u64(a: uint64x2_t) -> poly8x16_t {
53721    unsafe { transmute(a) }
53722}
53723#[doc = "Vector reinterpret cast operation"]
53724#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_u64)"]
53725#[inline]
53726#[cfg(target_endian = "big")]
53727#[target_feature(enable = "neon")]
53728#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53729#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53730#[cfg_attr(
53731    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53732    assert_instr(nop)
53733)]
53734#[cfg_attr(
53735    not(target_arch = "arm"),
53736    stable(feature = "neon_intrinsics", since = "1.59.0")
53737)]
53738#[cfg_attr(
53739    target_arch = "arm",
53740    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53741)]
53742pub fn vreinterpretq_p8_u64(a: uint64x2_t) -> poly8x16_t {
53743    let a: uint64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
53744    unsafe {
53745        let ret_val: poly8x16_t = transmute(a);
53746        simd_shuffle!(
53747            ret_val,
53748            ret_val,
53749            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
53750        )
53751    }
53752}
53753#[doc = "Vector reinterpret cast operation"]
53754#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_u64)"]
53755#[inline]
53756#[cfg(target_endian = "little")]
53757#[target_feature(enable = "neon")]
53758#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53759#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53760#[cfg_attr(
53761    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53762    assert_instr(nop)
53763)]
53764#[cfg_attr(
53765    not(target_arch = "arm"),
53766    stable(feature = "neon_intrinsics", since = "1.59.0")
53767)]
53768#[cfg_attr(
53769    target_arch = "arm",
53770    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53771)]
53772pub fn vreinterpretq_p16_u64(a: uint64x2_t) -> poly16x8_t {
53773    unsafe { transmute(a) }
53774}
53775#[doc = "Vector reinterpret cast operation"]
53776#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_u64)"]
53777#[inline]
53778#[cfg(target_endian = "big")]
53779#[target_feature(enable = "neon")]
53780#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53781#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53782#[cfg_attr(
53783    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53784    assert_instr(nop)
53785)]
53786#[cfg_attr(
53787    not(target_arch = "arm"),
53788    stable(feature = "neon_intrinsics", since = "1.59.0")
53789)]
53790#[cfg_attr(
53791    target_arch = "arm",
53792    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53793)]
53794pub fn vreinterpretq_p16_u64(a: uint64x2_t) -> poly16x8_t {
53795    let a: uint64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
53796    unsafe {
53797        let ret_val: poly16x8_t = transmute(a);
53798        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
53799    }
53800}
53801#[doc = "Vector reinterpret cast operation"]
53802#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_p8)"]
53803#[inline]
53804#[cfg(target_endian = "little")]
53805#[target_feature(enable = "neon")]
53806#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53807#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53808#[cfg_attr(
53809    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53810    assert_instr(nop)
53811)]
53812#[cfg_attr(
53813    not(target_arch = "arm"),
53814    stable(feature = "neon_intrinsics", since = "1.59.0")
53815)]
53816#[cfg_attr(
53817    target_arch = "arm",
53818    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53819)]
53820pub fn vreinterpret_f32_p8(a: poly8x8_t) -> float32x2_t {
53821    unsafe { transmute(a) }
53822}
53823#[doc = "Vector reinterpret cast operation"]
53824#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_p8)"]
53825#[inline]
53826#[cfg(target_endian = "big")]
53827#[target_feature(enable = "neon")]
53828#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53829#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53830#[cfg_attr(
53831    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53832    assert_instr(nop)
53833)]
53834#[cfg_attr(
53835    not(target_arch = "arm"),
53836    stable(feature = "neon_intrinsics", since = "1.59.0")
53837)]
53838#[cfg_attr(
53839    target_arch = "arm",
53840    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53841)]
53842pub fn vreinterpret_f32_p8(a: poly8x8_t) -> float32x2_t {
53843    let a: poly8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
53844    unsafe {
53845        let ret_val: float32x2_t = transmute(a);
53846        simd_shuffle!(ret_val, ret_val, [1, 0])
53847    }
53848}
53849#[doc = "Vector reinterpret cast operation"]
53850#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_p8)"]
53851#[inline]
53852#[cfg(target_endian = "little")]
53853#[target_feature(enable = "neon")]
53854#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53855#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53856#[cfg_attr(
53857    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53858    assert_instr(nop)
53859)]
53860#[cfg_attr(
53861    not(target_arch = "arm"),
53862    stable(feature = "neon_intrinsics", since = "1.59.0")
53863)]
53864#[cfg_attr(
53865    target_arch = "arm",
53866    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53867)]
53868pub fn vreinterpret_s8_p8(a: poly8x8_t) -> int8x8_t {
53869    unsafe { transmute(a) }
53870}
53871#[doc = "Vector reinterpret cast operation"]
53872#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_p8)"]
53873#[inline]
53874#[cfg(target_endian = "big")]
53875#[target_feature(enable = "neon")]
53876#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53877#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53878#[cfg_attr(
53879    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53880    assert_instr(nop)
53881)]
53882#[cfg_attr(
53883    not(target_arch = "arm"),
53884    stable(feature = "neon_intrinsics", since = "1.59.0")
53885)]
53886#[cfg_attr(
53887    target_arch = "arm",
53888    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53889)]
53890pub fn vreinterpret_s8_p8(a: poly8x8_t) -> int8x8_t {
53891    let a: poly8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
53892    unsafe {
53893        let ret_val: int8x8_t = transmute(a);
53894        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
53895    }
53896}
53897#[doc = "Vector reinterpret cast operation"]
53898#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_p8)"]
53899#[inline]
53900#[cfg(target_endian = "little")]
53901#[target_feature(enable = "neon")]
53902#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53903#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53904#[cfg_attr(
53905    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53906    assert_instr(nop)
53907)]
53908#[cfg_attr(
53909    not(target_arch = "arm"),
53910    stable(feature = "neon_intrinsics", since = "1.59.0")
53911)]
53912#[cfg_attr(
53913    target_arch = "arm",
53914    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53915)]
53916pub fn vreinterpret_s16_p8(a: poly8x8_t) -> int16x4_t {
53917    unsafe { transmute(a) }
53918}
53919#[doc = "Vector reinterpret cast operation"]
53920#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_p8)"]
53921#[inline]
53922#[cfg(target_endian = "big")]
53923#[target_feature(enable = "neon")]
53924#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53925#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53926#[cfg_attr(
53927    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53928    assert_instr(nop)
53929)]
53930#[cfg_attr(
53931    not(target_arch = "arm"),
53932    stable(feature = "neon_intrinsics", since = "1.59.0")
53933)]
53934#[cfg_attr(
53935    target_arch = "arm",
53936    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53937)]
53938pub fn vreinterpret_s16_p8(a: poly8x8_t) -> int16x4_t {
53939    let a: poly8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
53940    unsafe {
53941        let ret_val: int16x4_t = transmute(a);
53942        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
53943    }
53944}
53945#[doc = "Vector reinterpret cast operation"]
53946#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_p8)"]
53947#[inline]
53948#[cfg(target_endian = "little")]
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(nop))]
53952#[cfg_attr(
53953    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53954    assert_instr(nop)
53955)]
53956#[cfg_attr(
53957    not(target_arch = "arm"),
53958    stable(feature = "neon_intrinsics", since = "1.59.0")
53959)]
53960#[cfg_attr(
53961    target_arch = "arm",
53962    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53963)]
53964pub fn vreinterpret_s32_p8(a: poly8x8_t) -> int32x2_t {
53965    unsafe { transmute(a) }
53966}
53967#[doc = "Vector reinterpret cast operation"]
53968#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_p8)"]
53969#[inline]
53970#[cfg(target_endian = "big")]
53971#[target_feature(enable = "neon")]
53972#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53973#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53974#[cfg_attr(
53975    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53976    assert_instr(nop)
53977)]
53978#[cfg_attr(
53979    not(target_arch = "arm"),
53980    stable(feature = "neon_intrinsics", since = "1.59.0")
53981)]
53982#[cfg_attr(
53983    target_arch = "arm",
53984    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53985)]
53986pub fn vreinterpret_s32_p8(a: poly8x8_t) -> int32x2_t {
53987    let a: poly8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
53988    unsafe {
53989        let ret_val: int32x2_t = transmute(a);
53990        simd_shuffle!(ret_val, ret_val, [1, 0])
53991    }
53992}
53993#[doc = "Vector reinterpret cast operation"]
53994#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_p8)"]
53995#[inline]
53996#[cfg(target_endian = "little")]
53997#[target_feature(enable = "neon")]
53998#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53999#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54000#[cfg_attr(
54001    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54002    assert_instr(nop)
54003)]
54004#[cfg_attr(
54005    not(target_arch = "arm"),
54006    stable(feature = "neon_intrinsics", since = "1.59.0")
54007)]
54008#[cfg_attr(
54009    target_arch = "arm",
54010    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54011)]
54012pub fn vreinterpret_s64_p8(a: poly8x8_t) -> int64x1_t {
54013    unsafe { transmute(a) }
54014}
54015#[doc = "Vector reinterpret cast operation"]
54016#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_p8)"]
54017#[inline]
54018#[cfg(target_endian = "big")]
54019#[target_feature(enable = "neon")]
54020#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54021#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54022#[cfg_attr(
54023    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54024    assert_instr(nop)
54025)]
54026#[cfg_attr(
54027    not(target_arch = "arm"),
54028    stable(feature = "neon_intrinsics", since = "1.59.0")
54029)]
54030#[cfg_attr(
54031    target_arch = "arm",
54032    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54033)]
54034pub fn vreinterpret_s64_p8(a: poly8x8_t) -> int64x1_t {
54035    let a: poly8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
54036    unsafe { transmute(a) }
54037}
54038#[doc = "Vector reinterpret cast operation"]
54039#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_p8)"]
54040#[inline]
54041#[cfg(target_endian = "little")]
54042#[target_feature(enable = "neon")]
54043#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54044#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54045#[cfg_attr(
54046    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54047    assert_instr(nop)
54048)]
54049#[cfg_attr(
54050    not(target_arch = "arm"),
54051    stable(feature = "neon_intrinsics", since = "1.59.0")
54052)]
54053#[cfg_attr(
54054    target_arch = "arm",
54055    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54056)]
54057pub fn vreinterpret_u8_p8(a: poly8x8_t) -> uint8x8_t {
54058    unsafe { transmute(a) }
54059}
54060#[doc = "Vector reinterpret cast operation"]
54061#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_p8)"]
54062#[inline]
54063#[cfg(target_endian = "big")]
54064#[target_feature(enable = "neon")]
54065#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54066#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54067#[cfg_attr(
54068    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54069    assert_instr(nop)
54070)]
54071#[cfg_attr(
54072    not(target_arch = "arm"),
54073    stable(feature = "neon_intrinsics", since = "1.59.0")
54074)]
54075#[cfg_attr(
54076    target_arch = "arm",
54077    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54078)]
54079pub fn vreinterpret_u8_p8(a: poly8x8_t) -> uint8x8_t {
54080    let a: poly8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
54081    unsafe {
54082        let ret_val: uint8x8_t = transmute(a);
54083        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
54084    }
54085}
54086#[doc = "Vector reinterpret cast operation"]
54087#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_p8)"]
54088#[inline]
54089#[cfg(target_endian = "little")]
54090#[target_feature(enable = "neon")]
54091#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54092#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54093#[cfg_attr(
54094    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54095    assert_instr(nop)
54096)]
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 vreinterpret_u16_p8(a: poly8x8_t) -> uint16x4_t {
54106    unsafe { transmute(a) }
54107}
54108#[doc = "Vector reinterpret cast operation"]
54109#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_p8)"]
54110#[inline]
54111#[cfg(target_endian = "big")]
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(nop))]
54115#[cfg_attr(
54116    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54117    assert_instr(nop)
54118)]
54119#[cfg_attr(
54120    not(target_arch = "arm"),
54121    stable(feature = "neon_intrinsics", since = "1.59.0")
54122)]
54123#[cfg_attr(
54124    target_arch = "arm",
54125    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54126)]
54127pub fn vreinterpret_u16_p8(a: poly8x8_t) -> uint16x4_t {
54128    let a: poly8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
54129    unsafe {
54130        let ret_val: uint16x4_t = transmute(a);
54131        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
54132    }
54133}
54134#[doc = "Vector reinterpret cast operation"]
54135#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_p8)"]
54136#[inline]
54137#[cfg(target_endian = "little")]
54138#[target_feature(enable = "neon")]
54139#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54140#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54141#[cfg_attr(
54142    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54143    assert_instr(nop)
54144)]
54145#[cfg_attr(
54146    not(target_arch = "arm"),
54147    stable(feature = "neon_intrinsics", since = "1.59.0")
54148)]
54149#[cfg_attr(
54150    target_arch = "arm",
54151    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54152)]
54153pub fn vreinterpret_u32_p8(a: poly8x8_t) -> uint32x2_t {
54154    unsafe { transmute(a) }
54155}
54156#[doc = "Vector reinterpret cast operation"]
54157#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_p8)"]
54158#[inline]
54159#[cfg(target_endian = "big")]
54160#[target_feature(enable = "neon")]
54161#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54162#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54163#[cfg_attr(
54164    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54165    assert_instr(nop)
54166)]
54167#[cfg_attr(
54168    not(target_arch = "arm"),
54169    stable(feature = "neon_intrinsics", since = "1.59.0")
54170)]
54171#[cfg_attr(
54172    target_arch = "arm",
54173    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54174)]
54175pub fn vreinterpret_u32_p8(a: poly8x8_t) -> uint32x2_t {
54176    let a: poly8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
54177    unsafe {
54178        let ret_val: uint32x2_t = transmute(a);
54179        simd_shuffle!(ret_val, ret_val, [1, 0])
54180    }
54181}
54182#[doc = "Vector reinterpret cast operation"]
54183#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_p8)"]
54184#[inline]
54185#[cfg(target_endian = "little")]
54186#[target_feature(enable = "neon")]
54187#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54188#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54189#[cfg_attr(
54190    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54191    assert_instr(nop)
54192)]
54193#[cfg_attr(
54194    not(target_arch = "arm"),
54195    stable(feature = "neon_intrinsics", since = "1.59.0")
54196)]
54197#[cfg_attr(
54198    target_arch = "arm",
54199    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54200)]
54201pub fn vreinterpret_u64_p8(a: poly8x8_t) -> uint64x1_t {
54202    unsafe { transmute(a) }
54203}
54204#[doc = "Vector reinterpret cast operation"]
54205#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_p8)"]
54206#[inline]
54207#[cfg(target_endian = "big")]
54208#[target_feature(enable = "neon")]
54209#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54210#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54211#[cfg_attr(
54212    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54213    assert_instr(nop)
54214)]
54215#[cfg_attr(
54216    not(target_arch = "arm"),
54217    stable(feature = "neon_intrinsics", since = "1.59.0")
54218)]
54219#[cfg_attr(
54220    target_arch = "arm",
54221    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54222)]
54223pub fn vreinterpret_u64_p8(a: poly8x8_t) -> uint64x1_t {
54224    let a: poly8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
54225    unsafe { transmute(a) }
54226}
54227#[doc = "Vector reinterpret cast operation"]
54228#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_p8)"]
54229#[inline]
54230#[cfg(target_endian = "little")]
54231#[target_feature(enable = "neon")]
54232#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54233#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54234#[cfg_attr(
54235    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54236    assert_instr(nop)
54237)]
54238#[cfg_attr(
54239    not(target_arch = "arm"),
54240    stable(feature = "neon_intrinsics", since = "1.59.0")
54241)]
54242#[cfg_attr(
54243    target_arch = "arm",
54244    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54245)]
54246pub fn vreinterpret_p16_p8(a: poly8x8_t) -> poly16x4_t {
54247    unsafe { transmute(a) }
54248}
54249#[doc = "Vector reinterpret cast operation"]
54250#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_p8)"]
54251#[inline]
54252#[cfg(target_endian = "big")]
54253#[target_feature(enable = "neon")]
54254#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54255#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54256#[cfg_attr(
54257    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54258    assert_instr(nop)
54259)]
54260#[cfg_attr(
54261    not(target_arch = "arm"),
54262    stable(feature = "neon_intrinsics", since = "1.59.0")
54263)]
54264#[cfg_attr(
54265    target_arch = "arm",
54266    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54267)]
54268pub fn vreinterpret_p16_p8(a: poly8x8_t) -> poly16x4_t {
54269    let a: poly8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
54270    unsafe {
54271        let ret_val: poly16x4_t = transmute(a);
54272        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
54273    }
54274}
54275#[doc = "Vector reinterpret cast operation"]
54276#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_p8)"]
54277#[inline]
54278#[cfg(target_endian = "little")]
54279#[target_feature(enable = "neon")]
54280#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54281#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54282#[cfg_attr(
54283    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54284    assert_instr(nop)
54285)]
54286#[cfg_attr(
54287    not(target_arch = "arm"),
54288    stable(feature = "neon_intrinsics", since = "1.59.0")
54289)]
54290#[cfg_attr(
54291    target_arch = "arm",
54292    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54293)]
54294pub fn vreinterpretq_f32_p8(a: poly8x16_t) -> float32x4_t {
54295    unsafe { transmute(a) }
54296}
54297#[doc = "Vector reinterpret cast operation"]
54298#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_p8)"]
54299#[inline]
54300#[cfg(target_endian = "big")]
54301#[target_feature(enable = "neon")]
54302#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54303#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54304#[cfg_attr(
54305    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54306    assert_instr(nop)
54307)]
54308#[cfg_attr(
54309    not(target_arch = "arm"),
54310    stable(feature = "neon_intrinsics", since = "1.59.0")
54311)]
54312#[cfg_attr(
54313    target_arch = "arm",
54314    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54315)]
54316pub fn vreinterpretq_f32_p8(a: poly8x16_t) -> float32x4_t {
54317    let a: poly8x16_t =
54318        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
54319    unsafe {
54320        let ret_val: float32x4_t = transmute(a);
54321        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
54322    }
54323}
54324#[doc = "Vector reinterpret cast operation"]
54325#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_p8)"]
54326#[inline]
54327#[cfg(target_endian = "little")]
54328#[target_feature(enable = "neon")]
54329#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54330#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54331#[cfg_attr(
54332    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54333    assert_instr(nop)
54334)]
54335#[cfg_attr(
54336    not(target_arch = "arm"),
54337    stable(feature = "neon_intrinsics", since = "1.59.0")
54338)]
54339#[cfg_attr(
54340    target_arch = "arm",
54341    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54342)]
54343pub fn vreinterpretq_s8_p8(a: poly8x16_t) -> int8x16_t {
54344    unsafe { transmute(a) }
54345}
54346#[doc = "Vector reinterpret cast operation"]
54347#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_p8)"]
54348#[inline]
54349#[cfg(target_endian = "big")]
54350#[target_feature(enable = "neon")]
54351#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54352#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54353#[cfg_attr(
54354    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54355    assert_instr(nop)
54356)]
54357#[cfg_attr(
54358    not(target_arch = "arm"),
54359    stable(feature = "neon_intrinsics", since = "1.59.0")
54360)]
54361#[cfg_attr(
54362    target_arch = "arm",
54363    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54364)]
54365pub fn vreinterpretq_s8_p8(a: poly8x16_t) -> int8x16_t {
54366    let a: poly8x16_t =
54367        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
54368    unsafe {
54369        let ret_val: int8x16_t = transmute(a);
54370        simd_shuffle!(
54371            ret_val,
54372            ret_val,
54373            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
54374        )
54375    }
54376}
54377#[doc = "Vector reinterpret cast operation"]
54378#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_p8)"]
54379#[inline]
54380#[cfg(target_endian = "little")]
54381#[target_feature(enable = "neon")]
54382#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54383#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54384#[cfg_attr(
54385    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54386    assert_instr(nop)
54387)]
54388#[cfg_attr(
54389    not(target_arch = "arm"),
54390    stable(feature = "neon_intrinsics", since = "1.59.0")
54391)]
54392#[cfg_attr(
54393    target_arch = "arm",
54394    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54395)]
54396pub fn vreinterpretq_s16_p8(a: poly8x16_t) -> int16x8_t {
54397    unsafe { transmute(a) }
54398}
54399#[doc = "Vector reinterpret cast operation"]
54400#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_p8)"]
54401#[inline]
54402#[cfg(target_endian = "big")]
54403#[target_feature(enable = "neon")]
54404#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54405#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54406#[cfg_attr(
54407    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54408    assert_instr(nop)
54409)]
54410#[cfg_attr(
54411    not(target_arch = "arm"),
54412    stable(feature = "neon_intrinsics", since = "1.59.0")
54413)]
54414#[cfg_attr(
54415    target_arch = "arm",
54416    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54417)]
54418pub fn vreinterpretq_s16_p8(a: poly8x16_t) -> int16x8_t {
54419    let a: poly8x16_t =
54420        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
54421    unsafe {
54422        let ret_val: int16x8_t = transmute(a);
54423        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
54424    }
54425}
54426#[doc = "Vector reinterpret cast operation"]
54427#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_p8)"]
54428#[inline]
54429#[cfg(target_endian = "little")]
54430#[target_feature(enable = "neon")]
54431#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54432#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54433#[cfg_attr(
54434    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54435    assert_instr(nop)
54436)]
54437#[cfg_attr(
54438    not(target_arch = "arm"),
54439    stable(feature = "neon_intrinsics", since = "1.59.0")
54440)]
54441#[cfg_attr(
54442    target_arch = "arm",
54443    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54444)]
54445pub fn vreinterpretq_s32_p8(a: poly8x16_t) -> int32x4_t {
54446    unsafe { transmute(a) }
54447}
54448#[doc = "Vector reinterpret cast operation"]
54449#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_p8)"]
54450#[inline]
54451#[cfg(target_endian = "big")]
54452#[target_feature(enable = "neon")]
54453#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54454#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54455#[cfg_attr(
54456    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54457    assert_instr(nop)
54458)]
54459#[cfg_attr(
54460    not(target_arch = "arm"),
54461    stable(feature = "neon_intrinsics", since = "1.59.0")
54462)]
54463#[cfg_attr(
54464    target_arch = "arm",
54465    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54466)]
54467pub fn vreinterpretq_s32_p8(a: poly8x16_t) -> int32x4_t {
54468    let a: poly8x16_t =
54469        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
54470    unsafe {
54471        let ret_val: int32x4_t = transmute(a);
54472        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
54473    }
54474}
54475#[doc = "Vector reinterpret cast operation"]
54476#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_p8)"]
54477#[inline]
54478#[cfg(target_endian = "little")]
54479#[target_feature(enable = "neon")]
54480#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54481#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54482#[cfg_attr(
54483    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54484    assert_instr(nop)
54485)]
54486#[cfg_attr(
54487    not(target_arch = "arm"),
54488    stable(feature = "neon_intrinsics", since = "1.59.0")
54489)]
54490#[cfg_attr(
54491    target_arch = "arm",
54492    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54493)]
54494pub fn vreinterpretq_s64_p8(a: poly8x16_t) -> int64x2_t {
54495    unsafe { transmute(a) }
54496}
54497#[doc = "Vector reinterpret cast operation"]
54498#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_p8)"]
54499#[inline]
54500#[cfg(target_endian = "big")]
54501#[target_feature(enable = "neon")]
54502#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54503#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54504#[cfg_attr(
54505    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54506    assert_instr(nop)
54507)]
54508#[cfg_attr(
54509    not(target_arch = "arm"),
54510    stable(feature = "neon_intrinsics", since = "1.59.0")
54511)]
54512#[cfg_attr(
54513    target_arch = "arm",
54514    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54515)]
54516pub fn vreinterpretq_s64_p8(a: poly8x16_t) -> int64x2_t {
54517    let a: poly8x16_t =
54518        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
54519    unsafe {
54520        let ret_val: int64x2_t = transmute(a);
54521        simd_shuffle!(ret_val, ret_val, [1, 0])
54522    }
54523}
54524#[doc = "Vector reinterpret cast operation"]
54525#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_p8)"]
54526#[inline]
54527#[cfg(target_endian = "little")]
54528#[target_feature(enable = "neon")]
54529#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54530#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54531#[cfg_attr(
54532    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54533    assert_instr(nop)
54534)]
54535#[cfg_attr(
54536    not(target_arch = "arm"),
54537    stable(feature = "neon_intrinsics", since = "1.59.0")
54538)]
54539#[cfg_attr(
54540    target_arch = "arm",
54541    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54542)]
54543pub fn vreinterpretq_u8_p8(a: poly8x16_t) -> uint8x16_t {
54544    unsafe { transmute(a) }
54545}
54546#[doc = "Vector reinterpret cast operation"]
54547#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_p8)"]
54548#[inline]
54549#[cfg(target_endian = "big")]
54550#[target_feature(enable = "neon")]
54551#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54552#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54553#[cfg_attr(
54554    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54555    assert_instr(nop)
54556)]
54557#[cfg_attr(
54558    not(target_arch = "arm"),
54559    stable(feature = "neon_intrinsics", since = "1.59.0")
54560)]
54561#[cfg_attr(
54562    target_arch = "arm",
54563    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54564)]
54565pub fn vreinterpretq_u8_p8(a: poly8x16_t) -> uint8x16_t {
54566    let a: poly8x16_t =
54567        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
54568    unsafe {
54569        let ret_val: uint8x16_t = transmute(a);
54570        simd_shuffle!(
54571            ret_val,
54572            ret_val,
54573            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
54574        )
54575    }
54576}
54577#[doc = "Vector reinterpret cast operation"]
54578#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_p8)"]
54579#[inline]
54580#[cfg(target_endian = "little")]
54581#[target_feature(enable = "neon")]
54582#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54583#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54584#[cfg_attr(
54585    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54586    assert_instr(nop)
54587)]
54588#[cfg_attr(
54589    not(target_arch = "arm"),
54590    stable(feature = "neon_intrinsics", since = "1.59.0")
54591)]
54592#[cfg_attr(
54593    target_arch = "arm",
54594    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54595)]
54596pub fn vreinterpretq_u16_p8(a: poly8x16_t) -> uint16x8_t {
54597    unsafe { transmute(a) }
54598}
54599#[doc = "Vector reinterpret cast operation"]
54600#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_p8)"]
54601#[inline]
54602#[cfg(target_endian = "big")]
54603#[target_feature(enable = "neon")]
54604#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54605#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54606#[cfg_attr(
54607    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54608    assert_instr(nop)
54609)]
54610#[cfg_attr(
54611    not(target_arch = "arm"),
54612    stable(feature = "neon_intrinsics", since = "1.59.0")
54613)]
54614#[cfg_attr(
54615    target_arch = "arm",
54616    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54617)]
54618pub fn vreinterpretq_u16_p8(a: poly8x16_t) -> uint16x8_t {
54619    let a: poly8x16_t =
54620        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
54621    unsafe {
54622        let ret_val: uint16x8_t = transmute(a);
54623        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
54624    }
54625}
54626#[doc = "Vector reinterpret cast operation"]
54627#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_p8)"]
54628#[inline]
54629#[cfg(target_endian = "little")]
54630#[target_feature(enable = "neon")]
54631#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54632#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54633#[cfg_attr(
54634    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54635    assert_instr(nop)
54636)]
54637#[cfg_attr(
54638    not(target_arch = "arm"),
54639    stable(feature = "neon_intrinsics", since = "1.59.0")
54640)]
54641#[cfg_attr(
54642    target_arch = "arm",
54643    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54644)]
54645pub fn vreinterpretq_u32_p8(a: poly8x16_t) -> uint32x4_t {
54646    unsafe { transmute(a) }
54647}
54648#[doc = "Vector reinterpret cast operation"]
54649#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_p8)"]
54650#[inline]
54651#[cfg(target_endian = "big")]
54652#[target_feature(enable = "neon")]
54653#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54654#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54655#[cfg_attr(
54656    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54657    assert_instr(nop)
54658)]
54659#[cfg_attr(
54660    not(target_arch = "arm"),
54661    stable(feature = "neon_intrinsics", since = "1.59.0")
54662)]
54663#[cfg_attr(
54664    target_arch = "arm",
54665    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54666)]
54667pub fn vreinterpretq_u32_p8(a: poly8x16_t) -> uint32x4_t {
54668    let a: poly8x16_t =
54669        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
54670    unsafe {
54671        let ret_val: uint32x4_t = transmute(a);
54672        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
54673    }
54674}
54675#[doc = "Vector reinterpret cast operation"]
54676#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_p8)"]
54677#[inline]
54678#[cfg(target_endian = "little")]
54679#[target_feature(enable = "neon")]
54680#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54681#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54682#[cfg_attr(
54683    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54684    assert_instr(nop)
54685)]
54686#[cfg_attr(
54687    not(target_arch = "arm"),
54688    stable(feature = "neon_intrinsics", since = "1.59.0")
54689)]
54690#[cfg_attr(
54691    target_arch = "arm",
54692    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54693)]
54694pub fn vreinterpretq_u64_p8(a: poly8x16_t) -> uint64x2_t {
54695    unsafe { transmute(a) }
54696}
54697#[doc = "Vector reinterpret cast operation"]
54698#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_p8)"]
54699#[inline]
54700#[cfg(target_endian = "big")]
54701#[target_feature(enable = "neon")]
54702#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54703#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54704#[cfg_attr(
54705    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54706    assert_instr(nop)
54707)]
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 vreinterpretq_u64_p8(a: poly8x16_t) -> uint64x2_t {
54717    let a: poly8x16_t =
54718        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
54719    unsafe {
54720        let ret_val: uint64x2_t = transmute(a);
54721        simd_shuffle!(ret_val, ret_val, [1, 0])
54722    }
54723}
54724#[doc = "Vector reinterpret cast operation"]
54725#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_p8)"]
54726#[inline]
54727#[cfg(target_endian = "little")]
54728#[target_feature(enable = "neon")]
54729#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54730#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54731#[cfg_attr(
54732    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54733    assert_instr(nop)
54734)]
54735#[cfg_attr(
54736    not(target_arch = "arm"),
54737    stable(feature = "neon_intrinsics", since = "1.59.0")
54738)]
54739#[cfg_attr(
54740    target_arch = "arm",
54741    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54742)]
54743pub fn vreinterpretq_p16_p8(a: poly8x16_t) -> poly16x8_t {
54744    unsafe { transmute(a) }
54745}
54746#[doc = "Vector reinterpret cast operation"]
54747#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_p8)"]
54748#[inline]
54749#[cfg(target_endian = "big")]
54750#[target_feature(enable = "neon")]
54751#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54752#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54753#[cfg_attr(
54754    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54755    assert_instr(nop)
54756)]
54757#[cfg_attr(
54758    not(target_arch = "arm"),
54759    stable(feature = "neon_intrinsics", since = "1.59.0")
54760)]
54761#[cfg_attr(
54762    target_arch = "arm",
54763    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54764)]
54765pub fn vreinterpretq_p16_p8(a: poly8x16_t) -> poly16x8_t {
54766    let a: poly8x16_t =
54767        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
54768    unsafe {
54769        let ret_val: poly16x8_t = transmute(a);
54770        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
54771    }
54772}
54773#[doc = "Vector reinterpret cast operation"]
54774#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_p16)"]
54775#[inline]
54776#[cfg(target_endian = "little")]
54777#[target_feature(enable = "neon")]
54778#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54779#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54780#[cfg_attr(
54781    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54782    assert_instr(nop)
54783)]
54784#[cfg_attr(
54785    not(target_arch = "arm"),
54786    stable(feature = "neon_intrinsics", since = "1.59.0")
54787)]
54788#[cfg_attr(
54789    target_arch = "arm",
54790    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54791)]
54792pub fn vreinterpret_f32_p16(a: poly16x4_t) -> float32x2_t {
54793    unsafe { transmute(a) }
54794}
54795#[doc = "Vector reinterpret cast operation"]
54796#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_p16)"]
54797#[inline]
54798#[cfg(target_endian = "big")]
54799#[target_feature(enable = "neon")]
54800#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54801#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54802#[cfg_attr(
54803    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54804    assert_instr(nop)
54805)]
54806#[cfg_attr(
54807    not(target_arch = "arm"),
54808    stable(feature = "neon_intrinsics", since = "1.59.0")
54809)]
54810#[cfg_attr(
54811    target_arch = "arm",
54812    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54813)]
54814pub fn vreinterpret_f32_p16(a: poly16x4_t) -> float32x2_t {
54815    let a: poly16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
54816    unsafe {
54817        let ret_val: float32x2_t = transmute(a);
54818        simd_shuffle!(ret_val, ret_val, [1, 0])
54819    }
54820}
54821#[doc = "Vector reinterpret cast operation"]
54822#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_p16)"]
54823#[inline]
54824#[cfg(target_endian = "little")]
54825#[target_feature(enable = "neon")]
54826#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54827#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54828#[cfg_attr(
54829    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54830    assert_instr(nop)
54831)]
54832#[cfg_attr(
54833    not(target_arch = "arm"),
54834    stable(feature = "neon_intrinsics", since = "1.59.0")
54835)]
54836#[cfg_attr(
54837    target_arch = "arm",
54838    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54839)]
54840pub fn vreinterpret_s8_p16(a: poly16x4_t) -> int8x8_t {
54841    unsafe { transmute(a) }
54842}
54843#[doc = "Vector reinterpret cast operation"]
54844#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_p16)"]
54845#[inline]
54846#[cfg(target_endian = "big")]
54847#[target_feature(enable = "neon")]
54848#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54849#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54850#[cfg_attr(
54851    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54852    assert_instr(nop)
54853)]
54854#[cfg_attr(
54855    not(target_arch = "arm"),
54856    stable(feature = "neon_intrinsics", since = "1.59.0")
54857)]
54858#[cfg_attr(
54859    target_arch = "arm",
54860    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54861)]
54862pub fn vreinterpret_s8_p16(a: poly16x4_t) -> int8x8_t {
54863    let a: poly16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
54864    unsafe {
54865        let ret_val: int8x8_t = transmute(a);
54866        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
54867    }
54868}
54869#[doc = "Vector reinterpret cast operation"]
54870#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_p16)"]
54871#[inline]
54872#[cfg(target_endian = "little")]
54873#[target_feature(enable = "neon")]
54874#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54875#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54876#[cfg_attr(
54877    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54878    assert_instr(nop)
54879)]
54880#[cfg_attr(
54881    not(target_arch = "arm"),
54882    stable(feature = "neon_intrinsics", since = "1.59.0")
54883)]
54884#[cfg_attr(
54885    target_arch = "arm",
54886    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54887)]
54888pub fn vreinterpret_s16_p16(a: poly16x4_t) -> int16x4_t {
54889    unsafe { transmute(a) }
54890}
54891#[doc = "Vector reinterpret cast operation"]
54892#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_p16)"]
54893#[inline]
54894#[cfg(target_endian = "big")]
54895#[target_feature(enable = "neon")]
54896#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54897#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54898#[cfg_attr(
54899    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54900    assert_instr(nop)
54901)]
54902#[cfg_attr(
54903    not(target_arch = "arm"),
54904    stable(feature = "neon_intrinsics", since = "1.59.0")
54905)]
54906#[cfg_attr(
54907    target_arch = "arm",
54908    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54909)]
54910pub fn vreinterpret_s16_p16(a: poly16x4_t) -> int16x4_t {
54911    let a: poly16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
54912    unsafe {
54913        let ret_val: int16x4_t = transmute(a);
54914        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
54915    }
54916}
54917#[doc = "Vector reinterpret cast operation"]
54918#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_p16)"]
54919#[inline]
54920#[cfg(target_endian = "little")]
54921#[target_feature(enable = "neon")]
54922#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54923#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54924#[cfg_attr(
54925    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54926    assert_instr(nop)
54927)]
54928#[cfg_attr(
54929    not(target_arch = "arm"),
54930    stable(feature = "neon_intrinsics", since = "1.59.0")
54931)]
54932#[cfg_attr(
54933    target_arch = "arm",
54934    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54935)]
54936pub fn vreinterpret_s32_p16(a: poly16x4_t) -> int32x2_t {
54937    unsafe { transmute(a) }
54938}
54939#[doc = "Vector reinterpret cast operation"]
54940#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_p16)"]
54941#[inline]
54942#[cfg(target_endian = "big")]
54943#[target_feature(enable = "neon")]
54944#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54945#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54946#[cfg_attr(
54947    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54948    assert_instr(nop)
54949)]
54950#[cfg_attr(
54951    not(target_arch = "arm"),
54952    stable(feature = "neon_intrinsics", since = "1.59.0")
54953)]
54954#[cfg_attr(
54955    target_arch = "arm",
54956    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54957)]
54958pub fn vreinterpret_s32_p16(a: poly16x4_t) -> int32x2_t {
54959    let a: poly16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
54960    unsafe {
54961        let ret_val: int32x2_t = transmute(a);
54962        simd_shuffle!(ret_val, ret_val, [1, 0])
54963    }
54964}
54965#[doc = "Vector reinterpret cast operation"]
54966#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_p16)"]
54967#[inline]
54968#[cfg(target_endian = "little")]
54969#[target_feature(enable = "neon")]
54970#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54971#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54972#[cfg_attr(
54973    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54974    assert_instr(nop)
54975)]
54976#[cfg_attr(
54977    not(target_arch = "arm"),
54978    stable(feature = "neon_intrinsics", since = "1.59.0")
54979)]
54980#[cfg_attr(
54981    target_arch = "arm",
54982    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54983)]
54984pub fn vreinterpret_s64_p16(a: poly16x4_t) -> int64x1_t {
54985    unsafe { transmute(a) }
54986}
54987#[doc = "Vector reinterpret cast operation"]
54988#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_p16)"]
54989#[inline]
54990#[cfg(target_endian = "big")]
54991#[target_feature(enable = "neon")]
54992#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
54993#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54994#[cfg_attr(
54995    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54996    assert_instr(nop)
54997)]
54998#[cfg_attr(
54999    not(target_arch = "arm"),
55000    stable(feature = "neon_intrinsics", since = "1.59.0")
55001)]
55002#[cfg_attr(
55003    target_arch = "arm",
55004    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55005)]
55006pub fn vreinterpret_s64_p16(a: poly16x4_t) -> int64x1_t {
55007    let a: poly16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
55008    unsafe { transmute(a) }
55009}
55010#[doc = "Vector reinterpret cast operation"]
55011#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_p16)"]
55012#[inline]
55013#[cfg(target_endian = "little")]
55014#[target_feature(enable = "neon")]
55015#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55016#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55017#[cfg_attr(
55018    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55019    assert_instr(nop)
55020)]
55021#[cfg_attr(
55022    not(target_arch = "arm"),
55023    stable(feature = "neon_intrinsics", since = "1.59.0")
55024)]
55025#[cfg_attr(
55026    target_arch = "arm",
55027    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55028)]
55029pub fn vreinterpret_u8_p16(a: poly16x4_t) -> uint8x8_t {
55030    unsafe { transmute(a) }
55031}
55032#[doc = "Vector reinterpret cast operation"]
55033#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_p16)"]
55034#[inline]
55035#[cfg(target_endian = "big")]
55036#[target_feature(enable = "neon")]
55037#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55038#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55039#[cfg_attr(
55040    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55041    assert_instr(nop)
55042)]
55043#[cfg_attr(
55044    not(target_arch = "arm"),
55045    stable(feature = "neon_intrinsics", since = "1.59.0")
55046)]
55047#[cfg_attr(
55048    target_arch = "arm",
55049    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55050)]
55051pub fn vreinterpret_u8_p16(a: poly16x4_t) -> uint8x8_t {
55052    let a: poly16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
55053    unsafe {
55054        let ret_val: uint8x8_t = transmute(a);
55055        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
55056    }
55057}
55058#[doc = "Vector reinterpret cast operation"]
55059#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_p16)"]
55060#[inline]
55061#[cfg(target_endian = "little")]
55062#[target_feature(enable = "neon")]
55063#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55064#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55065#[cfg_attr(
55066    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55067    assert_instr(nop)
55068)]
55069#[cfg_attr(
55070    not(target_arch = "arm"),
55071    stable(feature = "neon_intrinsics", since = "1.59.0")
55072)]
55073#[cfg_attr(
55074    target_arch = "arm",
55075    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55076)]
55077pub fn vreinterpret_u16_p16(a: poly16x4_t) -> uint16x4_t {
55078    unsafe { transmute(a) }
55079}
55080#[doc = "Vector reinterpret cast operation"]
55081#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_p16)"]
55082#[inline]
55083#[cfg(target_endian = "big")]
55084#[target_feature(enable = "neon")]
55085#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55086#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55087#[cfg_attr(
55088    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55089    assert_instr(nop)
55090)]
55091#[cfg_attr(
55092    not(target_arch = "arm"),
55093    stable(feature = "neon_intrinsics", since = "1.59.0")
55094)]
55095#[cfg_attr(
55096    target_arch = "arm",
55097    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55098)]
55099pub fn vreinterpret_u16_p16(a: poly16x4_t) -> uint16x4_t {
55100    let a: poly16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
55101    unsafe {
55102        let ret_val: uint16x4_t = transmute(a);
55103        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
55104    }
55105}
55106#[doc = "Vector reinterpret cast operation"]
55107#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_p16)"]
55108#[inline]
55109#[cfg(target_endian = "little")]
55110#[target_feature(enable = "neon")]
55111#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55112#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55113#[cfg_attr(
55114    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55115    assert_instr(nop)
55116)]
55117#[cfg_attr(
55118    not(target_arch = "arm"),
55119    stable(feature = "neon_intrinsics", since = "1.59.0")
55120)]
55121#[cfg_attr(
55122    target_arch = "arm",
55123    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55124)]
55125pub fn vreinterpret_u32_p16(a: poly16x4_t) -> uint32x2_t {
55126    unsafe { transmute(a) }
55127}
55128#[doc = "Vector reinterpret cast operation"]
55129#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_p16)"]
55130#[inline]
55131#[cfg(target_endian = "big")]
55132#[target_feature(enable = "neon")]
55133#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55134#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55135#[cfg_attr(
55136    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55137    assert_instr(nop)
55138)]
55139#[cfg_attr(
55140    not(target_arch = "arm"),
55141    stable(feature = "neon_intrinsics", since = "1.59.0")
55142)]
55143#[cfg_attr(
55144    target_arch = "arm",
55145    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55146)]
55147pub fn vreinterpret_u32_p16(a: poly16x4_t) -> uint32x2_t {
55148    let a: poly16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
55149    unsafe {
55150        let ret_val: uint32x2_t = transmute(a);
55151        simd_shuffle!(ret_val, ret_val, [1, 0])
55152    }
55153}
55154#[doc = "Vector reinterpret cast operation"]
55155#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_p16)"]
55156#[inline]
55157#[cfg(target_endian = "little")]
55158#[target_feature(enable = "neon")]
55159#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55160#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55161#[cfg_attr(
55162    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55163    assert_instr(nop)
55164)]
55165#[cfg_attr(
55166    not(target_arch = "arm"),
55167    stable(feature = "neon_intrinsics", since = "1.59.0")
55168)]
55169#[cfg_attr(
55170    target_arch = "arm",
55171    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55172)]
55173pub fn vreinterpret_u64_p16(a: poly16x4_t) -> uint64x1_t {
55174    unsafe { transmute(a) }
55175}
55176#[doc = "Vector reinterpret cast operation"]
55177#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_p16)"]
55178#[inline]
55179#[cfg(target_endian = "big")]
55180#[target_feature(enable = "neon")]
55181#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55182#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55183#[cfg_attr(
55184    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55185    assert_instr(nop)
55186)]
55187#[cfg_attr(
55188    not(target_arch = "arm"),
55189    stable(feature = "neon_intrinsics", since = "1.59.0")
55190)]
55191#[cfg_attr(
55192    target_arch = "arm",
55193    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55194)]
55195pub fn vreinterpret_u64_p16(a: poly16x4_t) -> uint64x1_t {
55196    let a: poly16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
55197    unsafe { transmute(a) }
55198}
55199#[doc = "Vector reinterpret cast operation"]
55200#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_p16)"]
55201#[inline]
55202#[cfg(target_endian = "little")]
55203#[target_feature(enable = "neon")]
55204#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55205#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55206#[cfg_attr(
55207    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55208    assert_instr(nop)
55209)]
55210#[cfg_attr(
55211    not(target_arch = "arm"),
55212    stable(feature = "neon_intrinsics", since = "1.59.0")
55213)]
55214#[cfg_attr(
55215    target_arch = "arm",
55216    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55217)]
55218pub fn vreinterpret_p8_p16(a: poly16x4_t) -> poly8x8_t {
55219    unsafe { transmute(a) }
55220}
55221#[doc = "Vector reinterpret cast operation"]
55222#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_p16)"]
55223#[inline]
55224#[cfg(target_endian = "big")]
55225#[target_feature(enable = "neon")]
55226#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55227#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55228#[cfg_attr(
55229    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55230    assert_instr(nop)
55231)]
55232#[cfg_attr(
55233    not(target_arch = "arm"),
55234    stable(feature = "neon_intrinsics", since = "1.59.0")
55235)]
55236#[cfg_attr(
55237    target_arch = "arm",
55238    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55239)]
55240pub fn vreinterpret_p8_p16(a: poly16x4_t) -> poly8x8_t {
55241    let a: poly16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
55242    unsafe {
55243        let ret_val: poly8x8_t = transmute(a);
55244        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
55245    }
55246}
55247#[doc = "Vector reinterpret cast operation"]
55248#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_p16)"]
55249#[inline]
55250#[cfg(target_endian = "little")]
55251#[target_feature(enable = "neon")]
55252#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55253#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55254#[cfg_attr(
55255    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55256    assert_instr(nop)
55257)]
55258#[cfg_attr(
55259    not(target_arch = "arm"),
55260    stable(feature = "neon_intrinsics", since = "1.59.0")
55261)]
55262#[cfg_attr(
55263    target_arch = "arm",
55264    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55265)]
55266pub fn vreinterpretq_f32_p16(a: poly16x8_t) -> float32x4_t {
55267    unsafe { transmute(a) }
55268}
55269#[doc = "Vector reinterpret cast operation"]
55270#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_p16)"]
55271#[inline]
55272#[cfg(target_endian = "big")]
55273#[target_feature(enable = "neon")]
55274#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55275#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55276#[cfg_attr(
55277    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55278    assert_instr(nop)
55279)]
55280#[cfg_attr(
55281    not(target_arch = "arm"),
55282    stable(feature = "neon_intrinsics", since = "1.59.0")
55283)]
55284#[cfg_attr(
55285    target_arch = "arm",
55286    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55287)]
55288pub fn vreinterpretq_f32_p16(a: poly16x8_t) -> float32x4_t {
55289    let a: poly16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
55290    unsafe {
55291        let ret_val: float32x4_t = transmute(a);
55292        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
55293    }
55294}
55295#[doc = "Vector reinterpret cast operation"]
55296#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_p16)"]
55297#[inline]
55298#[cfg(target_endian = "little")]
55299#[target_feature(enable = "neon")]
55300#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55301#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55302#[cfg_attr(
55303    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55304    assert_instr(nop)
55305)]
55306#[cfg_attr(
55307    not(target_arch = "arm"),
55308    stable(feature = "neon_intrinsics", since = "1.59.0")
55309)]
55310#[cfg_attr(
55311    target_arch = "arm",
55312    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55313)]
55314pub fn vreinterpretq_s8_p16(a: poly16x8_t) -> int8x16_t {
55315    unsafe { transmute(a) }
55316}
55317#[doc = "Vector reinterpret cast operation"]
55318#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_p16)"]
55319#[inline]
55320#[cfg(target_endian = "big")]
55321#[target_feature(enable = "neon")]
55322#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55323#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55324#[cfg_attr(
55325    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55326    assert_instr(nop)
55327)]
55328#[cfg_attr(
55329    not(target_arch = "arm"),
55330    stable(feature = "neon_intrinsics", since = "1.59.0")
55331)]
55332#[cfg_attr(
55333    target_arch = "arm",
55334    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55335)]
55336pub fn vreinterpretq_s8_p16(a: poly16x8_t) -> int8x16_t {
55337    let a: poly16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
55338    unsafe {
55339        let ret_val: int8x16_t = transmute(a);
55340        simd_shuffle!(
55341            ret_val,
55342            ret_val,
55343            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
55344        )
55345    }
55346}
55347#[doc = "Vector reinterpret cast operation"]
55348#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_p16)"]
55349#[inline]
55350#[cfg(target_endian = "little")]
55351#[target_feature(enable = "neon")]
55352#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55353#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55354#[cfg_attr(
55355    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55356    assert_instr(nop)
55357)]
55358#[cfg_attr(
55359    not(target_arch = "arm"),
55360    stable(feature = "neon_intrinsics", since = "1.59.0")
55361)]
55362#[cfg_attr(
55363    target_arch = "arm",
55364    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55365)]
55366pub fn vreinterpretq_s16_p16(a: poly16x8_t) -> int16x8_t {
55367    unsafe { transmute(a) }
55368}
55369#[doc = "Vector reinterpret cast operation"]
55370#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_p16)"]
55371#[inline]
55372#[cfg(target_endian = "big")]
55373#[target_feature(enable = "neon")]
55374#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55375#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55376#[cfg_attr(
55377    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55378    assert_instr(nop)
55379)]
55380#[cfg_attr(
55381    not(target_arch = "arm"),
55382    stable(feature = "neon_intrinsics", since = "1.59.0")
55383)]
55384#[cfg_attr(
55385    target_arch = "arm",
55386    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55387)]
55388pub fn vreinterpretq_s16_p16(a: poly16x8_t) -> int16x8_t {
55389    let a: poly16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
55390    unsafe {
55391        let ret_val: int16x8_t = transmute(a);
55392        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
55393    }
55394}
55395#[doc = "Vector reinterpret cast operation"]
55396#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_p16)"]
55397#[inline]
55398#[cfg(target_endian = "little")]
55399#[target_feature(enable = "neon")]
55400#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55401#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55402#[cfg_attr(
55403    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55404    assert_instr(nop)
55405)]
55406#[cfg_attr(
55407    not(target_arch = "arm"),
55408    stable(feature = "neon_intrinsics", since = "1.59.0")
55409)]
55410#[cfg_attr(
55411    target_arch = "arm",
55412    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55413)]
55414pub fn vreinterpretq_s32_p16(a: poly16x8_t) -> int32x4_t {
55415    unsafe { transmute(a) }
55416}
55417#[doc = "Vector reinterpret cast operation"]
55418#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_p16)"]
55419#[inline]
55420#[cfg(target_endian = "big")]
55421#[target_feature(enable = "neon")]
55422#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55423#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55424#[cfg_attr(
55425    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55426    assert_instr(nop)
55427)]
55428#[cfg_attr(
55429    not(target_arch = "arm"),
55430    stable(feature = "neon_intrinsics", since = "1.59.0")
55431)]
55432#[cfg_attr(
55433    target_arch = "arm",
55434    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55435)]
55436pub fn vreinterpretq_s32_p16(a: poly16x8_t) -> int32x4_t {
55437    let a: poly16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
55438    unsafe {
55439        let ret_val: int32x4_t = transmute(a);
55440        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
55441    }
55442}
55443#[doc = "Vector reinterpret cast operation"]
55444#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_p16)"]
55445#[inline]
55446#[cfg(target_endian = "little")]
55447#[target_feature(enable = "neon")]
55448#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55449#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55450#[cfg_attr(
55451    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55452    assert_instr(nop)
55453)]
55454#[cfg_attr(
55455    not(target_arch = "arm"),
55456    stable(feature = "neon_intrinsics", since = "1.59.0")
55457)]
55458#[cfg_attr(
55459    target_arch = "arm",
55460    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55461)]
55462pub fn vreinterpretq_s64_p16(a: poly16x8_t) -> int64x2_t {
55463    unsafe { transmute(a) }
55464}
55465#[doc = "Vector reinterpret cast operation"]
55466#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_p16)"]
55467#[inline]
55468#[cfg(target_endian = "big")]
55469#[target_feature(enable = "neon")]
55470#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55471#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55472#[cfg_attr(
55473    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55474    assert_instr(nop)
55475)]
55476#[cfg_attr(
55477    not(target_arch = "arm"),
55478    stable(feature = "neon_intrinsics", since = "1.59.0")
55479)]
55480#[cfg_attr(
55481    target_arch = "arm",
55482    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55483)]
55484pub fn vreinterpretq_s64_p16(a: poly16x8_t) -> int64x2_t {
55485    let a: poly16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
55486    unsafe {
55487        let ret_val: int64x2_t = transmute(a);
55488        simd_shuffle!(ret_val, ret_val, [1, 0])
55489    }
55490}
55491#[doc = "Vector reinterpret cast operation"]
55492#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_p16)"]
55493#[inline]
55494#[cfg(target_endian = "little")]
55495#[target_feature(enable = "neon")]
55496#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55497#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55498#[cfg_attr(
55499    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55500    assert_instr(nop)
55501)]
55502#[cfg_attr(
55503    not(target_arch = "arm"),
55504    stable(feature = "neon_intrinsics", since = "1.59.0")
55505)]
55506#[cfg_attr(
55507    target_arch = "arm",
55508    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55509)]
55510pub fn vreinterpretq_u8_p16(a: poly16x8_t) -> uint8x16_t {
55511    unsafe { transmute(a) }
55512}
55513#[doc = "Vector reinterpret cast operation"]
55514#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_p16)"]
55515#[inline]
55516#[cfg(target_endian = "big")]
55517#[target_feature(enable = "neon")]
55518#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55519#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55520#[cfg_attr(
55521    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55522    assert_instr(nop)
55523)]
55524#[cfg_attr(
55525    not(target_arch = "arm"),
55526    stable(feature = "neon_intrinsics", since = "1.59.0")
55527)]
55528#[cfg_attr(
55529    target_arch = "arm",
55530    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55531)]
55532pub fn vreinterpretq_u8_p16(a: poly16x8_t) -> uint8x16_t {
55533    let a: poly16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
55534    unsafe {
55535        let ret_val: uint8x16_t = transmute(a);
55536        simd_shuffle!(
55537            ret_val,
55538            ret_val,
55539            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
55540        )
55541    }
55542}
55543#[doc = "Vector reinterpret cast operation"]
55544#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_p16)"]
55545#[inline]
55546#[cfg(target_endian = "little")]
55547#[target_feature(enable = "neon")]
55548#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55549#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55550#[cfg_attr(
55551    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55552    assert_instr(nop)
55553)]
55554#[cfg_attr(
55555    not(target_arch = "arm"),
55556    stable(feature = "neon_intrinsics", since = "1.59.0")
55557)]
55558#[cfg_attr(
55559    target_arch = "arm",
55560    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55561)]
55562pub fn vreinterpretq_u16_p16(a: poly16x8_t) -> uint16x8_t {
55563    unsafe { transmute(a) }
55564}
55565#[doc = "Vector reinterpret cast operation"]
55566#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_p16)"]
55567#[inline]
55568#[cfg(target_endian = "big")]
55569#[target_feature(enable = "neon")]
55570#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55571#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55572#[cfg_attr(
55573    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55574    assert_instr(nop)
55575)]
55576#[cfg_attr(
55577    not(target_arch = "arm"),
55578    stable(feature = "neon_intrinsics", since = "1.59.0")
55579)]
55580#[cfg_attr(
55581    target_arch = "arm",
55582    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55583)]
55584pub fn vreinterpretq_u16_p16(a: poly16x8_t) -> uint16x8_t {
55585    let a: poly16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
55586    unsafe {
55587        let ret_val: uint16x8_t = transmute(a);
55588        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
55589    }
55590}
55591#[doc = "Vector reinterpret cast operation"]
55592#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_p16)"]
55593#[inline]
55594#[cfg(target_endian = "little")]
55595#[target_feature(enable = "neon")]
55596#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55597#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55598#[cfg_attr(
55599    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55600    assert_instr(nop)
55601)]
55602#[cfg_attr(
55603    not(target_arch = "arm"),
55604    stable(feature = "neon_intrinsics", since = "1.59.0")
55605)]
55606#[cfg_attr(
55607    target_arch = "arm",
55608    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55609)]
55610pub fn vreinterpretq_u32_p16(a: poly16x8_t) -> uint32x4_t {
55611    unsafe { transmute(a) }
55612}
55613#[doc = "Vector reinterpret cast operation"]
55614#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_p16)"]
55615#[inline]
55616#[cfg(target_endian = "big")]
55617#[target_feature(enable = "neon")]
55618#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55619#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55620#[cfg_attr(
55621    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55622    assert_instr(nop)
55623)]
55624#[cfg_attr(
55625    not(target_arch = "arm"),
55626    stable(feature = "neon_intrinsics", since = "1.59.0")
55627)]
55628#[cfg_attr(
55629    target_arch = "arm",
55630    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55631)]
55632pub fn vreinterpretq_u32_p16(a: poly16x8_t) -> uint32x4_t {
55633    let a: poly16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
55634    unsafe {
55635        let ret_val: uint32x4_t = transmute(a);
55636        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
55637    }
55638}
55639#[doc = "Vector reinterpret cast operation"]
55640#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_p16)"]
55641#[inline]
55642#[cfg(target_endian = "little")]
55643#[target_feature(enable = "neon")]
55644#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55645#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55646#[cfg_attr(
55647    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55648    assert_instr(nop)
55649)]
55650#[cfg_attr(
55651    not(target_arch = "arm"),
55652    stable(feature = "neon_intrinsics", since = "1.59.0")
55653)]
55654#[cfg_attr(
55655    target_arch = "arm",
55656    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55657)]
55658pub fn vreinterpretq_u64_p16(a: poly16x8_t) -> uint64x2_t {
55659    unsafe { transmute(a) }
55660}
55661#[doc = "Vector reinterpret cast operation"]
55662#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_p16)"]
55663#[inline]
55664#[cfg(target_endian = "big")]
55665#[target_feature(enable = "neon")]
55666#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55667#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55668#[cfg_attr(
55669    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55670    assert_instr(nop)
55671)]
55672#[cfg_attr(
55673    not(target_arch = "arm"),
55674    stable(feature = "neon_intrinsics", since = "1.59.0")
55675)]
55676#[cfg_attr(
55677    target_arch = "arm",
55678    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55679)]
55680pub fn vreinterpretq_u64_p16(a: poly16x8_t) -> uint64x2_t {
55681    let a: poly16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
55682    unsafe {
55683        let ret_val: uint64x2_t = transmute(a);
55684        simd_shuffle!(ret_val, ret_val, [1, 0])
55685    }
55686}
55687#[doc = "Vector reinterpret cast operation"]
55688#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_p16)"]
55689#[inline]
55690#[cfg(target_endian = "little")]
55691#[target_feature(enable = "neon")]
55692#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55693#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55694#[cfg_attr(
55695    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55696    assert_instr(nop)
55697)]
55698#[cfg_attr(
55699    not(target_arch = "arm"),
55700    stable(feature = "neon_intrinsics", since = "1.59.0")
55701)]
55702#[cfg_attr(
55703    target_arch = "arm",
55704    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55705)]
55706pub fn vreinterpretq_p8_p16(a: poly16x8_t) -> poly8x16_t {
55707    unsafe { transmute(a) }
55708}
55709#[doc = "Vector reinterpret cast operation"]
55710#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_p16)"]
55711#[inline]
55712#[cfg(target_endian = "big")]
55713#[target_feature(enable = "neon")]
55714#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55715#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55716#[cfg_attr(
55717    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55718    assert_instr(nop)
55719)]
55720#[cfg_attr(
55721    not(target_arch = "arm"),
55722    stable(feature = "neon_intrinsics", since = "1.59.0")
55723)]
55724#[cfg_attr(
55725    target_arch = "arm",
55726    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55727)]
55728pub fn vreinterpretq_p8_p16(a: poly16x8_t) -> poly8x16_t {
55729    let a: poly16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
55730    unsafe {
55731        let ret_val: poly8x16_t = transmute(a);
55732        simd_shuffle!(
55733            ret_val,
55734            ret_val,
55735            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
55736        )
55737    }
55738}
55739#[doc = "Vector reinterpret cast operation"]
55740#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_p128)"]
55741#[inline]
55742#[cfg(target_endian = "little")]
55743#[target_feature(enable = "neon,aes")]
55744#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55745#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55746#[cfg_attr(
55747    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55748    assert_instr(nop)
55749)]
55750#[cfg_attr(
55751    not(target_arch = "arm"),
55752    stable(feature = "neon_intrinsics", since = "1.59.0")
55753)]
55754#[cfg_attr(
55755    target_arch = "arm",
55756    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55757)]
55758pub fn vreinterpretq_s8_p128(a: p128) -> int8x16_t {
55759    unsafe { transmute(a) }
55760}
55761#[doc = "Vector reinterpret cast operation"]
55762#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_p128)"]
55763#[inline]
55764#[cfg(target_endian = "big")]
55765#[target_feature(enable = "neon,aes")]
55766#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55767#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55768#[cfg_attr(
55769    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55770    assert_instr(nop)
55771)]
55772#[cfg_attr(
55773    not(target_arch = "arm"),
55774    stable(feature = "neon_intrinsics", since = "1.59.0")
55775)]
55776#[cfg_attr(
55777    target_arch = "arm",
55778    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55779)]
55780pub fn vreinterpretq_s8_p128(a: p128) -> int8x16_t {
55781    unsafe {
55782        let ret_val: int8x16_t = transmute(a);
55783        simd_shuffle!(
55784            ret_val,
55785            ret_val,
55786            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
55787        )
55788    }
55789}
55790#[doc = "Vector reinterpret cast operation"]
55791#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_p128)"]
55792#[inline]
55793#[cfg(target_endian = "little")]
55794#[target_feature(enable = "neon,aes")]
55795#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55796#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55797#[cfg_attr(
55798    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55799    assert_instr(nop)
55800)]
55801#[cfg_attr(
55802    not(target_arch = "arm"),
55803    stable(feature = "neon_intrinsics", since = "1.59.0")
55804)]
55805#[cfg_attr(
55806    target_arch = "arm",
55807    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55808)]
55809pub fn vreinterpretq_s16_p128(a: p128) -> int16x8_t {
55810    unsafe { transmute(a) }
55811}
55812#[doc = "Vector reinterpret cast operation"]
55813#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_p128)"]
55814#[inline]
55815#[cfg(target_endian = "big")]
55816#[target_feature(enable = "neon,aes")]
55817#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55818#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55819#[cfg_attr(
55820    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55821    assert_instr(nop)
55822)]
55823#[cfg_attr(
55824    not(target_arch = "arm"),
55825    stable(feature = "neon_intrinsics", since = "1.59.0")
55826)]
55827#[cfg_attr(
55828    target_arch = "arm",
55829    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55830)]
55831pub fn vreinterpretq_s16_p128(a: p128) -> int16x8_t {
55832    unsafe {
55833        let ret_val: int16x8_t = transmute(a);
55834        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
55835    }
55836}
55837#[doc = "Vector reinterpret cast operation"]
55838#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_p128)"]
55839#[inline]
55840#[cfg(target_endian = "little")]
55841#[target_feature(enable = "neon,aes")]
55842#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55843#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55844#[cfg_attr(
55845    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55846    assert_instr(nop)
55847)]
55848#[cfg_attr(
55849    not(target_arch = "arm"),
55850    stable(feature = "neon_intrinsics", since = "1.59.0")
55851)]
55852#[cfg_attr(
55853    target_arch = "arm",
55854    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55855)]
55856pub fn vreinterpretq_s32_p128(a: p128) -> int32x4_t {
55857    unsafe { transmute(a) }
55858}
55859#[doc = "Vector reinterpret cast operation"]
55860#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_p128)"]
55861#[inline]
55862#[cfg(target_endian = "big")]
55863#[target_feature(enable = "neon,aes")]
55864#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55865#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55866#[cfg_attr(
55867    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55868    assert_instr(nop)
55869)]
55870#[cfg_attr(
55871    not(target_arch = "arm"),
55872    stable(feature = "neon_intrinsics", since = "1.59.0")
55873)]
55874#[cfg_attr(
55875    target_arch = "arm",
55876    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55877)]
55878pub fn vreinterpretq_s32_p128(a: p128) -> int32x4_t {
55879    unsafe {
55880        let ret_val: int32x4_t = transmute(a);
55881        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
55882    }
55883}
55884#[doc = "Vector reinterpret cast operation"]
55885#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_p128)"]
55886#[inline]
55887#[cfg(target_endian = "little")]
55888#[target_feature(enable = "neon,aes")]
55889#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55890#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55891#[cfg_attr(
55892    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55893    assert_instr(nop)
55894)]
55895#[cfg_attr(
55896    not(target_arch = "arm"),
55897    stable(feature = "neon_intrinsics", since = "1.59.0")
55898)]
55899#[cfg_attr(
55900    target_arch = "arm",
55901    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55902)]
55903pub fn vreinterpretq_s64_p128(a: p128) -> int64x2_t {
55904    unsafe { transmute(a) }
55905}
55906#[doc = "Vector reinterpret cast operation"]
55907#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_p128)"]
55908#[inline]
55909#[cfg(target_endian = "big")]
55910#[target_feature(enable = "neon,aes")]
55911#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55912#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55913#[cfg_attr(
55914    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55915    assert_instr(nop)
55916)]
55917#[cfg_attr(
55918    not(target_arch = "arm"),
55919    stable(feature = "neon_intrinsics", since = "1.59.0")
55920)]
55921#[cfg_attr(
55922    target_arch = "arm",
55923    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55924)]
55925pub fn vreinterpretq_s64_p128(a: p128) -> int64x2_t {
55926    unsafe {
55927        let ret_val: int64x2_t = transmute(a);
55928        simd_shuffle!(ret_val, ret_val, [1, 0])
55929    }
55930}
55931#[doc = "Vector reinterpret cast operation"]
55932#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_p128)"]
55933#[inline]
55934#[cfg(target_endian = "little")]
55935#[target_feature(enable = "neon,aes")]
55936#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55937#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55938#[cfg_attr(
55939    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55940    assert_instr(nop)
55941)]
55942#[cfg_attr(
55943    not(target_arch = "arm"),
55944    stable(feature = "neon_intrinsics", since = "1.59.0")
55945)]
55946#[cfg_attr(
55947    target_arch = "arm",
55948    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55949)]
55950pub fn vreinterpretq_u8_p128(a: p128) -> uint8x16_t {
55951    unsafe { transmute(a) }
55952}
55953#[doc = "Vector reinterpret cast operation"]
55954#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_p128)"]
55955#[inline]
55956#[cfg(target_endian = "big")]
55957#[target_feature(enable = "neon,aes")]
55958#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55959#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55960#[cfg_attr(
55961    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55962    assert_instr(nop)
55963)]
55964#[cfg_attr(
55965    not(target_arch = "arm"),
55966    stable(feature = "neon_intrinsics", since = "1.59.0")
55967)]
55968#[cfg_attr(
55969    target_arch = "arm",
55970    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55971)]
55972pub fn vreinterpretq_u8_p128(a: p128) -> uint8x16_t {
55973    unsafe {
55974        let ret_val: uint8x16_t = transmute(a);
55975        simd_shuffle!(
55976            ret_val,
55977            ret_val,
55978            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
55979        )
55980    }
55981}
55982#[doc = "Vector reinterpret cast operation"]
55983#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_p128)"]
55984#[inline]
55985#[cfg(target_endian = "little")]
55986#[target_feature(enable = "neon,aes")]
55987#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55988#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55989#[cfg_attr(
55990    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55991    assert_instr(nop)
55992)]
55993#[cfg_attr(
55994    not(target_arch = "arm"),
55995    stable(feature = "neon_intrinsics", since = "1.59.0")
55996)]
55997#[cfg_attr(
55998    target_arch = "arm",
55999    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56000)]
56001pub fn vreinterpretq_u16_p128(a: p128) -> uint16x8_t {
56002    unsafe { transmute(a) }
56003}
56004#[doc = "Vector reinterpret cast operation"]
56005#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_p128)"]
56006#[inline]
56007#[cfg(target_endian = "big")]
56008#[target_feature(enable = "neon,aes")]
56009#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
56010#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
56011#[cfg_attr(
56012    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56013    assert_instr(nop)
56014)]
56015#[cfg_attr(
56016    not(target_arch = "arm"),
56017    stable(feature = "neon_intrinsics", since = "1.59.0")
56018)]
56019#[cfg_attr(
56020    target_arch = "arm",
56021    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56022)]
56023pub fn vreinterpretq_u16_p128(a: p128) -> uint16x8_t {
56024    unsafe {
56025        let ret_val: uint16x8_t = transmute(a);
56026        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
56027    }
56028}
56029#[doc = "Vector reinterpret cast operation"]
56030#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_p128)"]
56031#[inline]
56032#[cfg(target_endian = "little")]
56033#[target_feature(enable = "neon,aes")]
56034#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
56035#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
56036#[cfg_attr(
56037    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56038    assert_instr(nop)
56039)]
56040#[cfg_attr(
56041    not(target_arch = "arm"),
56042    stable(feature = "neon_intrinsics", since = "1.59.0")
56043)]
56044#[cfg_attr(
56045    target_arch = "arm",
56046    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56047)]
56048pub fn vreinterpretq_u32_p128(a: p128) -> uint32x4_t {
56049    unsafe { transmute(a) }
56050}
56051#[doc = "Vector reinterpret cast operation"]
56052#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_p128)"]
56053#[inline]
56054#[cfg(target_endian = "big")]
56055#[target_feature(enable = "neon,aes")]
56056#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
56057#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
56058#[cfg_attr(
56059    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56060    assert_instr(nop)
56061)]
56062#[cfg_attr(
56063    not(target_arch = "arm"),
56064    stable(feature = "neon_intrinsics", since = "1.59.0")
56065)]
56066#[cfg_attr(
56067    target_arch = "arm",
56068    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56069)]
56070pub fn vreinterpretq_u32_p128(a: p128) -> uint32x4_t {
56071    unsafe {
56072        let ret_val: uint32x4_t = transmute(a);
56073        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
56074    }
56075}
56076#[doc = "Vector reinterpret cast operation"]
56077#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_p128)"]
56078#[inline]
56079#[cfg(target_endian = "little")]
56080#[target_feature(enable = "neon,aes")]
56081#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
56082#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
56083#[cfg_attr(
56084    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56085    assert_instr(nop)
56086)]
56087#[cfg_attr(
56088    not(target_arch = "arm"),
56089    stable(feature = "neon_intrinsics", since = "1.59.0")
56090)]
56091#[cfg_attr(
56092    target_arch = "arm",
56093    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56094)]
56095pub fn vreinterpretq_u64_p128(a: p128) -> uint64x2_t {
56096    unsafe { transmute(a) }
56097}
56098#[doc = "Vector reinterpret cast operation"]
56099#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_p128)"]
56100#[inline]
56101#[cfg(target_endian = "big")]
56102#[target_feature(enable = "neon,aes")]
56103#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
56104#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
56105#[cfg_attr(
56106    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56107    assert_instr(nop)
56108)]
56109#[cfg_attr(
56110    not(target_arch = "arm"),
56111    stable(feature = "neon_intrinsics", since = "1.59.0")
56112)]
56113#[cfg_attr(
56114    target_arch = "arm",
56115    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56116)]
56117pub fn vreinterpretq_u64_p128(a: p128) -> uint64x2_t {
56118    unsafe {
56119        let ret_val: uint64x2_t = transmute(a);
56120        simd_shuffle!(ret_val, ret_val, [1, 0])
56121    }
56122}
56123#[doc = "Vector reinterpret cast operation"]
56124#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_p128)"]
56125#[inline]
56126#[cfg(target_endian = "little")]
56127#[target_feature(enable = "neon,aes")]
56128#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
56129#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
56130#[cfg_attr(
56131    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56132    assert_instr(nop)
56133)]
56134#[cfg_attr(
56135    not(target_arch = "arm"),
56136    stable(feature = "neon_intrinsics", since = "1.59.0")
56137)]
56138#[cfg_attr(
56139    target_arch = "arm",
56140    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56141)]
56142pub fn vreinterpretq_p8_p128(a: p128) -> poly8x16_t {
56143    unsafe { transmute(a) }
56144}
56145#[doc = "Vector reinterpret cast operation"]
56146#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_p128)"]
56147#[inline]
56148#[cfg(target_endian = "big")]
56149#[target_feature(enable = "neon,aes")]
56150#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
56151#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
56152#[cfg_attr(
56153    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56154    assert_instr(nop)
56155)]
56156#[cfg_attr(
56157    not(target_arch = "arm"),
56158    stable(feature = "neon_intrinsics", since = "1.59.0")
56159)]
56160#[cfg_attr(
56161    target_arch = "arm",
56162    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56163)]
56164pub fn vreinterpretq_p8_p128(a: p128) -> poly8x16_t {
56165    unsafe {
56166        let ret_val: poly8x16_t = transmute(a);
56167        simd_shuffle!(
56168            ret_val,
56169            ret_val,
56170            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
56171        )
56172    }
56173}
56174#[doc = "Vector reinterpret cast operation"]
56175#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_p128)"]
56176#[inline]
56177#[cfg(target_endian = "little")]
56178#[target_feature(enable = "neon,aes")]
56179#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
56180#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
56181#[cfg_attr(
56182    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56183    assert_instr(nop)
56184)]
56185#[cfg_attr(
56186    not(target_arch = "arm"),
56187    stable(feature = "neon_intrinsics", since = "1.59.0")
56188)]
56189#[cfg_attr(
56190    target_arch = "arm",
56191    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56192)]
56193pub fn vreinterpretq_p16_p128(a: p128) -> poly16x8_t {
56194    unsafe { transmute(a) }
56195}
56196#[doc = "Vector reinterpret cast operation"]
56197#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_p128)"]
56198#[inline]
56199#[cfg(target_endian = "big")]
56200#[target_feature(enable = "neon,aes")]
56201#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
56202#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
56203#[cfg_attr(
56204    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56205    assert_instr(nop)
56206)]
56207#[cfg_attr(
56208    not(target_arch = "arm"),
56209    stable(feature = "neon_intrinsics", since = "1.59.0")
56210)]
56211#[cfg_attr(
56212    target_arch = "arm",
56213    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56214)]
56215pub fn vreinterpretq_p16_p128(a: p128) -> poly16x8_t {
56216    unsafe {
56217        let ret_val: poly16x8_t = transmute(a);
56218        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
56219    }
56220}
56221#[doc = "Vector reinterpret cast operation"]
56222#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_p128)"]
56223#[inline]
56224#[cfg(target_endian = "little")]
56225#[target_feature(enable = "neon,aes")]
56226#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
56227#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
56228#[cfg_attr(
56229    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56230    assert_instr(nop)
56231)]
56232#[cfg_attr(
56233    not(target_arch = "arm"),
56234    stable(feature = "neon_intrinsics", since = "1.59.0")
56235)]
56236#[cfg_attr(
56237    target_arch = "arm",
56238    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56239)]
56240pub fn vreinterpretq_p64_p128(a: p128) -> poly64x2_t {
56241    unsafe { transmute(a) }
56242}
56243#[doc = "Vector reinterpret cast operation"]
56244#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_p128)"]
56245#[inline]
56246#[cfg(target_endian = "big")]
56247#[target_feature(enable = "neon,aes")]
56248#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
56249#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
56250#[cfg_attr(
56251    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56252    assert_instr(nop)
56253)]
56254#[cfg_attr(
56255    not(target_arch = "arm"),
56256    stable(feature = "neon_intrinsics", since = "1.59.0")
56257)]
56258#[cfg_attr(
56259    target_arch = "arm",
56260    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56261)]
56262pub fn vreinterpretq_p64_p128(a: p128) -> poly64x2_t {
56263    unsafe {
56264        let ret_val: poly64x2_t = transmute(a);
56265        simd_shuffle!(ret_val, ret_val, [1, 0])
56266    }
56267}
56268#[doc = "Vector reinterpret cast operation"]
56269#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_s8)"]
56270#[inline]
56271#[cfg(target_endian = "little")]
56272#[target_feature(enable = "neon,aes")]
56273#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
56274#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
56275#[cfg_attr(
56276    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56277    assert_instr(nop)
56278)]
56279#[cfg_attr(
56280    not(target_arch = "arm"),
56281    stable(feature = "neon_intrinsics", since = "1.59.0")
56282)]
56283#[cfg_attr(
56284    target_arch = "arm",
56285    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56286)]
56287pub fn vreinterpret_p64_s8(a: int8x8_t) -> poly64x1_t {
56288    unsafe { transmute(a) }
56289}
56290#[doc = "Vector reinterpret cast operation"]
56291#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_s8)"]
56292#[inline]
56293#[cfg(target_endian = "big")]
56294#[target_feature(enable = "neon,aes")]
56295#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
56296#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
56297#[cfg_attr(
56298    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56299    assert_instr(nop)
56300)]
56301#[cfg_attr(
56302    not(target_arch = "arm"),
56303    stable(feature = "neon_intrinsics", since = "1.59.0")
56304)]
56305#[cfg_attr(
56306    target_arch = "arm",
56307    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56308)]
56309pub fn vreinterpret_p64_s8(a: int8x8_t) -> poly64x1_t {
56310    let a: int8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
56311    unsafe { transmute(a) }
56312}
56313#[doc = "Vector reinterpret cast operation"]
56314#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_s8)"]
56315#[inline]
56316#[cfg(target_endian = "little")]
56317#[target_feature(enable = "neon,aes")]
56318#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
56319#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
56320#[cfg_attr(
56321    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56322    assert_instr(nop)
56323)]
56324#[cfg_attr(
56325    not(target_arch = "arm"),
56326    stable(feature = "neon_intrinsics", since = "1.59.0")
56327)]
56328#[cfg_attr(
56329    target_arch = "arm",
56330    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56331)]
56332pub fn vreinterpretq_p128_s8(a: int8x16_t) -> p128 {
56333    unsafe { transmute(a) }
56334}
56335#[doc = "Vector reinterpret cast operation"]
56336#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_s8)"]
56337#[inline]
56338#[cfg(target_endian = "big")]
56339#[target_feature(enable = "neon,aes")]
56340#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
56341#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
56342#[cfg_attr(
56343    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56344    assert_instr(nop)
56345)]
56346#[cfg_attr(
56347    not(target_arch = "arm"),
56348    stable(feature = "neon_intrinsics", since = "1.59.0")
56349)]
56350#[cfg_attr(
56351    target_arch = "arm",
56352    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56353)]
56354pub fn vreinterpretq_p128_s8(a: int8x16_t) -> p128 {
56355    let a: int8x16_t =
56356        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
56357    unsafe { transmute(a) }
56358}
56359#[doc = "Vector reinterpret cast operation"]
56360#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_s8)"]
56361#[inline]
56362#[cfg(target_endian = "little")]
56363#[target_feature(enable = "neon,aes")]
56364#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
56365#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
56366#[cfg_attr(
56367    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56368    assert_instr(nop)
56369)]
56370#[cfg_attr(
56371    not(target_arch = "arm"),
56372    stable(feature = "neon_intrinsics", since = "1.59.0")
56373)]
56374#[cfg_attr(
56375    target_arch = "arm",
56376    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56377)]
56378pub fn vreinterpretq_p64_s8(a: int8x16_t) -> poly64x2_t {
56379    unsafe { transmute(a) }
56380}
56381#[doc = "Vector reinterpret cast operation"]
56382#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_s8)"]
56383#[inline]
56384#[cfg(target_endian = "big")]
56385#[target_feature(enable = "neon,aes")]
56386#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
56387#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
56388#[cfg_attr(
56389    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56390    assert_instr(nop)
56391)]
56392#[cfg_attr(
56393    not(target_arch = "arm"),
56394    stable(feature = "neon_intrinsics", since = "1.59.0")
56395)]
56396#[cfg_attr(
56397    target_arch = "arm",
56398    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56399)]
56400pub fn vreinterpretq_p64_s8(a: int8x16_t) -> poly64x2_t {
56401    let a: int8x16_t =
56402        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
56403    unsafe {
56404        let ret_val: poly64x2_t = transmute(a);
56405        simd_shuffle!(ret_val, ret_val, [1, 0])
56406    }
56407}
56408#[doc = "Vector reinterpret cast operation"]
56409#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_s16)"]
56410#[inline]
56411#[cfg(target_endian = "little")]
56412#[target_feature(enable = "neon,aes")]
56413#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
56414#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
56415#[cfg_attr(
56416    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56417    assert_instr(nop)
56418)]
56419#[cfg_attr(
56420    not(target_arch = "arm"),
56421    stable(feature = "neon_intrinsics", since = "1.59.0")
56422)]
56423#[cfg_attr(
56424    target_arch = "arm",
56425    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56426)]
56427pub fn vreinterpret_p64_s16(a: int16x4_t) -> poly64x1_t {
56428    unsafe { transmute(a) }
56429}
56430#[doc = "Vector reinterpret cast operation"]
56431#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_s16)"]
56432#[inline]
56433#[cfg(target_endian = "big")]
56434#[target_feature(enable = "neon,aes")]
56435#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
56436#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
56437#[cfg_attr(
56438    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56439    assert_instr(nop)
56440)]
56441#[cfg_attr(
56442    not(target_arch = "arm"),
56443    stable(feature = "neon_intrinsics", since = "1.59.0")
56444)]
56445#[cfg_attr(
56446    target_arch = "arm",
56447    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56448)]
56449pub fn vreinterpret_p64_s16(a: int16x4_t) -> poly64x1_t {
56450    let a: int16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
56451    unsafe { transmute(a) }
56452}
56453#[doc = "Vector reinterpret cast operation"]
56454#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_s16)"]
56455#[inline]
56456#[cfg(target_endian = "little")]
56457#[target_feature(enable = "neon,aes")]
56458#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
56459#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
56460#[cfg_attr(
56461    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56462    assert_instr(nop)
56463)]
56464#[cfg_attr(
56465    not(target_arch = "arm"),
56466    stable(feature = "neon_intrinsics", since = "1.59.0")
56467)]
56468#[cfg_attr(
56469    target_arch = "arm",
56470    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56471)]
56472pub fn vreinterpretq_p128_s16(a: int16x8_t) -> p128 {
56473    unsafe { transmute(a) }
56474}
56475#[doc = "Vector reinterpret cast operation"]
56476#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_s16)"]
56477#[inline]
56478#[cfg(target_endian = "big")]
56479#[target_feature(enable = "neon,aes")]
56480#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
56481#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
56482#[cfg_attr(
56483    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56484    assert_instr(nop)
56485)]
56486#[cfg_attr(
56487    not(target_arch = "arm"),
56488    stable(feature = "neon_intrinsics", since = "1.59.0")
56489)]
56490#[cfg_attr(
56491    target_arch = "arm",
56492    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56493)]
56494pub fn vreinterpretq_p128_s16(a: int16x8_t) -> p128 {
56495    let a: int16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
56496    unsafe { transmute(a) }
56497}
56498#[doc = "Vector reinterpret cast operation"]
56499#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_s16)"]
56500#[inline]
56501#[cfg(target_endian = "little")]
56502#[target_feature(enable = "neon,aes")]
56503#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
56504#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
56505#[cfg_attr(
56506    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56507    assert_instr(nop)
56508)]
56509#[cfg_attr(
56510    not(target_arch = "arm"),
56511    stable(feature = "neon_intrinsics", since = "1.59.0")
56512)]
56513#[cfg_attr(
56514    target_arch = "arm",
56515    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56516)]
56517pub fn vreinterpretq_p64_s16(a: int16x8_t) -> poly64x2_t {
56518    unsafe { transmute(a) }
56519}
56520#[doc = "Vector reinterpret cast operation"]
56521#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_s16)"]
56522#[inline]
56523#[cfg(target_endian = "big")]
56524#[target_feature(enable = "neon,aes")]
56525#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
56526#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
56527#[cfg_attr(
56528    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56529    assert_instr(nop)
56530)]
56531#[cfg_attr(
56532    not(target_arch = "arm"),
56533    stable(feature = "neon_intrinsics", since = "1.59.0")
56534)]
56535#[cfg_attr(
56536    target_arch = "arm",
56537    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56538)]
56539pub fn vreinterpretq_p64_s16(a: int16x8_t) -> poly64x2_t {
56540    let a: int16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
56541    unsafe {
56542        let ret_val: poly64x2_t = transmute(a);
56543        simd_shuffle!(ret_val, ret_val, [1, 0])
56544    }
56545}
56546#[doc = "Vector reinterpret cast operation"]
56547#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_s32)"]
56548#[inline]
56549#[cfg(target_endian = "little")]
56550#[target_feature(enable = "neon,aes")]
56551#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
56552#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
56553#[cfg_attr(
56554    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56555    assert_instr(nop)
56556)]
56557#[cfg_attr(
56558    not(target_arch = "arm"),
56559    stable(feature = "neon_intrinsics", since = "1.59.0")
56560)]
56561#[cfg_attr(
56562    target_arch = "arm",
56563    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56564)]
56565pub fn vreinterpret_p64_s32(a: int32x2_t) -> poly64x1_t {
56566    unsafe { transmute(a) }
56567}
56568#[doc = "Vector reinterpret cast operation"]
56569#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_s32)"]
56570#[inline]
56571#[cfg(target_endian = "big")]
56572#[target_feature(enable = "neon,aes")]
56573#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
56574#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
56575#[cfg_attr(
56576    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56577    assert_instr(nop)
56578)]
56579#[cfg_attr(
56580    not(target_arch = "arm"),
56581    stable(feature = "neon_intrinsics", since = "1.59.0")
56582)]
56583#[cfg_attr(
56584    target_arch = "arm",
56585    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56586)]
56587pub fn vreinterpret_p64_s32(a: int32x2_t) -> poly64x1_t {
56588    let a: int32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
56589    unsafe { transmute(a) }
56590}
56591#[doc = "Vector reinterpret cast operation"]
56592#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_s32)"]
56593#[inline]
56594#[cfg(target_endian = "little")]
56595#[target_feature(enable = "neon,aes")]
56596#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
56597#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
56598#[cfg_attr(
56599    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56600    assert_instr(nop)
56601)]
56602#[cfg_attr(
56603    not(target_arch = "arm"),
56604    stable(feature = "neon_intrinsics", since = "1.59.0")
56605)]
56606#[cfg_attr(
56607    target_arch = "arm",
56608    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56609)]
56610pub fn vreinterpretq_p128_s32(a: int32x4_t) -> p128 {
56611    unsafe { transmute(a) }
56612}
56613#[doc = "Vector reinterpret cast operation"]
56614#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_s32)"]
56615#[inline]
56616#[cfg(target_endian = "big")]
56617#[target_feature(enable = "neon,aes")]
56618#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
56619#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
56620#[cfg_attr(
56621    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56622    assert_instr(nop)
56623)]
56624#[cfg_attr(
56625    not(target_arch = "arm"),
56626    stable(feature = "neon_intrinsics", since = "1.59.0")
56627)]
56628#[cfg_attr(
56629    target_arch = "arm",
56630    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56631)]
56632pub fn vreinterpretq_p128_s32(a: int32x4_t) -> p128 {
56633    let a: int32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
56634    unsafe { transmute(a) }
56635}
56636#[doc = "Vector reinterpret cast operation"]
56637#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_s32)"]
56638#[inline]
56639#[cfg(target_endian = "little")]
56640#[target_feature(enable = "neon,aes")]
56641#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
56642#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
56643#[cfg_attr(
56644    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56645    assert_instr(nop)
56646)]
56647#[cfg_attr(
56648    not(target_arch = "arm"),
56649    stable(feature = "neon_intrinsics", since = "1.59.0")
56650)]
56651#[cfg_attr(
56652    target_arch = "arm",
56653    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56654)]
56655pub fn vreinterpretq_p64_s32(a: int32x4_t) -> poly64x2_t {
56656    unsafe { transmute(a) }
56657}
56658#[doc = "Vector reinterpret cast operation"]
56659#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_s32)"]
56660#[inline]
56661#[cfg(target_endian = "big")]
56662#[target_feature(enable = "neon,aes")]
56663#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
56664#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
56665#[cfg_attr(
56666    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56667    assert_instr(nop)
56668)]
56669#[cfg_attr(
56670    not(target_arch = "arm"),
56671    stable(feature = "neon_intrinsics", since = "1.59.0")
56672)]
56673#[cfg_attr(
56674    target_arch = "arm",
56675    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56676)]
56677pub fn vreinterpretq_p64_s32(a: int32x4_t) -> poly64x2_t {
56678    let a: int32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
56679    unsafe {
56680        let ret_val: poly64x2_t = transmute(a);
56681        simd_shuffle!(ret_val, ret_val, [1, 0])
56682    }
56683}
56684#[doc = "Vector reinterpret cast operation"]
56685#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_s64)"]
56686#[inline]
56687#[cfg(target_endian = "little")]
56688#[target_feature(enable = "neon,aes")]
56689#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
56690#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
56691#[cfg_attr(
56692    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56693    assert_instr(nop)
56694)]
56695#[cfg_attr(
56696    not(target_arch = "arm"),
56697    stable(feature = "neon_intrinsics", since = "1.59.0")
56698)]
56699#[cfg_attr(
56700    target_arch = "arm",
56701    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56702)]
56703pub fn vreinterpretq_p128_s64(a: int64x2_t) -> p128 {
56704    unsafe { transmute(a) }
56705}
56706#[doc = "Vector reinterpret cast operation"]
56707#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_s64)"]
56708#[inline]
56709#[cfg(target_endian = "big")]
56710#[target_feature(enable = "neon,aes")]
56711#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
56712#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
56713#[cfg_attr(
56714    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56715    assert_instr(nop)
56716)]
56717#[cfg_attr(
56718    not(target_arch = "arm"),
56719    stable(feature = "neon_intrinsics", since = "1.59.0")
56720)]
56721#[cfg_attr(
56722    target_arch = "arm",
56723    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56724)]
56725pub fn vreinterpretq_p128_s64(a: int64x2_t) -> p128 {
56726    let a: int64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
56727    unsafe { transmute(a) }
56728}
56729#[doc = "Vector reinterpret cast operation"]
56730#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_u8)"]
56731#[inline]
56732#[cfg(target_endian = "little")]
56733#[target_feature(enable = "neon,aes")]
56734#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
56735#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
56736#[cfg_attr(
56737    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56738    assert_instr(nop)
56739)]
56740#[cfg_attr(
56741    not(target_arch = "arm"),
56742    stable(feature = "neon_intrinsics", since = "1.59.0")
56743)]
56744#[cfg_attr(
56745    target_arch = "arm",
56746    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56747)]
56748pub fn vreinterpret_p64_u8(a: uint8x8_t) -> poly64x1_t {
56749    unsafe { transmute(a) }
56750}
56751#[doc = "Vector reinterpret cast operation"]
56752#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_u8)"]
56753#[inline]
56754#[cfg(target_endian = "big")]
56755#[target_feature(enable = "neon,aes")]
56756#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
56757#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
56758#[cfg_attr(
56759    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56760    assert_instr(nop)
56761)]
56762#[cfg_attr(
56763    not(target_arch = "arm"),
56764    stable(feature = "neon_intrinsics", since = "1.59.0")
56765)]
56766#[cfg_attr(
56767    target_arch = "arm",
56768    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56769)]
56770pub fn vreinterpret_p64_u8(a: uint8x8_t) -> poly64x1_t {
56771    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
56772    unsafe { transmute(a) }
56773}
56774#[doc = "Vector reinterpret cast operation"]
56775#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_u8)"]
56776#[inline]
56777#[cfg(target_endian = "little")]
56778#[target_feature(enable = "neon,aes")]
56779#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
56780#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
56781#[cfg_attr(
56782    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56783    assert_instr(nop)
56784)]
56785#[cfg_attr(
56786    not(target_arch = "arm"),
56787    stable(feature = "neon_intrinsics", since = "1.59.0")
56788)]
56789#[cfg_attr(
56790    target_arch = "arm",
56791    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56792)]
56793pub fn vreinterpretq_p128_u8(a: uint8x16_t) -> p128 {
56794    unsafe { transmute(a) }
56795}
56796#[doc = "Vector reinterpret cast operation"]
56797#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_u8)"]
56798#[inline]
56799#[cfg(target_endian = "big")]
56800#[target_feature(enable = "neon,aes")]
56801#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
56802#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
56803#[cfg_attr(
56804    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56805    assert_instr(nop)
56806)]
56807#[cfg_attr(
56808    not(target_arch = "arm"),
56809    stable(feature = "neon_intrinsics", since = "1.59.0")
56810)]
56811#[cfg_attr(
56812    target_arch = "arm",
56813    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56814)]
56815pub fn vreinterpretq_p128_u8(a: uint8x16_t) -> p128 {
56816    let a: uint8x16_t =
56817        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
56818    unsafe { transmute(a) }
56819}
56820#[doc = "Vector reinterpret cast operation"]
56821#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_u8)"]
56822#[inline]
56823#[cfg(target_endian = "little")]
56824#[target_feature(enable = "neon,aes")]
56825#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
56826#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
56827#[cfg_attr(
56828    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56829    assert_instr(nop)
56830)]
56831#[cfg_attr(
56832    not(target_arch = "arm"),
56833    stable(feature = "neon_intrinsics", since = "1.59.0")
56834)]
56835#[cfg_attr(
56836    target_arch = "arm",
56837    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56838)]
56839pub fn vreinterpretq_p64_u8(a: uint8x16_t) -> poly64x2_t {
56840    unsafe { transmute(a) }
56841}
56842#[doc = "Vector reinterpret cast operation"]
56843#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_u8)"]
56844#[inline]
56845#[cfg(target_endian = "big")]
56846#[target_feature(enable = "neon,aes")]
56847#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
56848#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
56849#[cfg_attr(
56850    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56851    assert_instr(nop)
56852)]
56853#[cfg_attr(
56854    not(target_arch = "arm"),
56855    stable(feature = "neon_intrinsics", since = "1.59.0")
56856)]
56857#[cfg_attr(
56858    target_arch = "arm",
56859    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56860)]
56861pub fn vreinterpretq_p64_u8(a: uint8x16_t) -> poly64x2_t {
56862    let a: uint8x16_t =
56863        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
56864    unsafe {
56865        let ret_val: poly64x2_t = transmute(a);
56866        simd_shuffle!(ret_val, ret_val, [1, 0])
56867    }
56868}
56869#[doc = "Vector reinterpret cast operation"]
56870#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_u16)"]
56871#[inline]
56872#[cfg(target_endian = "little")]
56873#[target_feature(enable = "neon,aes")]
56874#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
56875#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
56876#[cfg_attr(
56877    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56878    assert_instr(nop)
56879)]
56880#[cfg_attr(
56881    not(target_arch = "arm"),
56882    stable(feature = "neon_intrinsics", since = "1.59.0")
56883)]
56884#[cfg_attr(
56885    target_arch = "arm",
56886    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56887)]
56888pub fn vreinterpret_p64_u16(a: uint16x4_t) -> poly64x1_t {
56889    unsafe { transmute(a) }
56890}
56891#[doc = "Vector reinterpret cast operation"]
56892#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_u16)"]
56893#[inline]
56894#[cfg(target_endian = "big")]
56895#[target_feature(enable = "neon,aes")]
56896#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
56897#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
56898#[cfg_attr(
56899    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56900    assert_instr(nop)
56901)]
56902#[cfg_attr(
56903    not(target_arch = "arm"),
56904    stable(feature = "neon_intrinsics", since = "1.59.0")
56905)]
56906#[cfg_attr(
56907    target_arch = "arm",
56908    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56909)]
56910pub fn vreinterpret_p64_u16(a: uint16x4_t) -> poly64x1_t {
56911    let a: uint16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
56912    unsafe { transmute(a) }
56913}
56914#[doc = "Vector reinterpret cast operation"]
56915#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_u16)"]
56916#[inline]
56917#[cfg(target_endian = "little")]
56918#[target_feature(enable = "neon,aes")]
56919#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
56920#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
56921#[cfg_attr(
56922    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56923    assert_instr(nop)
56924)]
56925#[cfg_attr(
56926    not(target_arch = "arm"),
56927    stable(feature = "neon_intrinsics", since = "1.59.0")
56928)]
56929#[cfg_attr(
56930    target_arch = "arm",
56931    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56932)]
56933pub fn vreinterpretq_p128_u16(a: uint16x8_t) -> p128 {
56934    unsafe { transmute(a) }
56935}
56936#[doc = "Vector reinterpret cast operation"]
56937#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_u16)"]
56938#[inline]
56939#[cfg(target_endian = "big")]
56940#[target_feature(enable = "neon,aes")]
56941#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
56942#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
56943#[cfg_attr(
56944    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56945    assert_instr(nop)
56946)]
56947#[cfg_attr(
56948    not(target_arch = "arm"),
56949    stable(feature = "neon_intrinsics", since = "1.59.0")
56950)]
56951#[cfg_attr(
56952    target_arch = "arm",
56953    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56954)]
56955pub fn vreinterpretq_p128_u16(a: uint16x8_t) -> p128 {
56956    let a: uint16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
56957    unsafe { transmute(a) }
56958}
56959#[doc = "Vector reinterpret cast operation"]
56960#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_u16)"]
56961#[inline]
56962#[cfg(target_endian = "little")]
56963#[target_feature(enable = "neon,aes")]
56964#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
56965#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
56966#[cfg_attr(
56967    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56968    assert_instr(nop)
56969)]
56970#[cfg_attr(
56971    not(target_arch = "arm"),
56972    stable(feature = "neon_intrinsics", since = "1.59.0")
56973)]
56974#[cfg_attr(
56975    target_arch = "arm",
56976    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56977)]
56978pub fn vreinterpretq_p64_u16(a: uint16x8_t) -> poly64x2_t {
56979    unsafe { transmute(a) }
56980}
56981#[doc = "Vector reinterpret cast operation"]
56982#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_u16)"]
56983#[inline]
56984#[cfg(target_endian = "big")]
56985#[target_feature(enable = "neon,aes")]
56986#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
56987#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
56988#[cfg_attr(
56989    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56990    assert_instr(nop)
56991)]
56992#[cfg_attr(
56993    not(target_arch = "arm"),
56994    stable(feature = "neon_intrinsics", since = "1.59.0")
56995)]
56996#[cfg_attr(
56997    target_arch = "arm",
56998    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56999)]
57000pub fn vreinterpretq_p64_u16(a: uint16x8_t) -> poly64x2_t {
57001    let a: uint16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
57002    unsafe {
57003        let ret_val: poly64x2_t = transmute(a);
57004        simd_shuffle!(ret_val, ret_val, [1, 0])
57005    }
57006}
57007#[doc = "Vector reinterpret cast operation"]
57008#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_u32)"]
57009#[inline]
57010#[cfg(target_endian = "little")]
57011#[target_feature(enable = "neon,aes")]
57012#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
57013#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
57014#[cfg_attr(
57015    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57016    assert_instr(nop)
57017)]
57018#[cfg_attr(
57019    not(target_arch = "arm"),
57020    stable(feature = "neon_intrinsics", since = "1.59.0")
57021)]
57022#[cfg_attr(
57023    target_arch = "arm",
57024    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57025)]
57026pub fn vreinterpret_p64_u32(a: uint32x2_t) -> poly64x1_t {
57027    unsafe { transmute(a) }
57028}
57029#[doc = "Vector reinterpret cast operation"]
57030#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_u32)"]
57031#[inline]
57032#[cfg(target_endian = "big")]
57033#[target_feature(enable = "neon,aes")]
57034#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
57035#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
57036#[cfg_attr(
57037    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57038    assert_instr(nop)
57039)]
57040#[cfg_attr(
57041    not(target_arch = "arm"),
57042    stable(feature = "neon_intrinsics", since = "1.59.0")
57043)]
57044#[cfg_attr(
57045    target_arch = "arm",
57046    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57047)]
57048pub fn vreinterpret_p64_u32(a: uint32x2_t) -> poly64x1_t {
57049    let a: uint32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
57050    unsafe { transmute(a) }
57051}
57052#[doc = "Vector reinterpret cast operation"]
57053#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_u32)"]
57054#[inline]
57055#[cfg(target_endian = "little")]
57056#[target_feature(enable = "neon,aes")]
57057#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
57058#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
57059#[cfg_attr(
57060    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57061    assert_instr(nop)
57062)]
57063#[cfg_attr(
57064    not(target_arch = "arm"),
57065    stable(feature = "neon_intrinsics", since = "1.59.0")
57066)]
57067#[cfg_attr(
57068    target_arch = "arm",
57069    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57070)]
57071pub fn vreinterpretq_p128_u32(a: uint32x4_t) -> p128 {
57072    unsafe { transmute(a) }
57073}
57074#[doc = "Vector reinterpret cast operation"]
57075#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_u32)"]
57076#[inline]
57077#[cfg(target_endian = "big")]
57078#[target_feature(enable = "neon,aes")]
57079#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
57080#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
57081#[cfg_attr(
57082    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57083    assert_instr(nop)
57084)]
57085#[cfg_attr(
57086    not(target_arch = "arm"),
57087    stable(feature = "neon_intrinsics", since = "1.59.0")
57088)]
57089#[cfg_attr(
57090    target_arch = "arm",
57091    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57092)]
57093pub fn vreinterpretq_p128_u32(a: uint32x4_t) -> p128 {
57094    let a: uint32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
57095    unsafe { transmute(a) }
57096}
57097#[doc = "Vector reinterpret cast operation"]
57098#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_u32)"]
57099#[inline]
57100#[cfg(target_endian = "little")]
57101#[target_feature(enable = "neon,aes")]
57102#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
57103#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
57104#[cfg_attr(
57105    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57106    assert_instr(nop)
57107)]
57108#[cfg_attr(
57109    not(target_arch = "arm"),
57110    stable(feature = "neon_intrinsics", since = "1.59.0")
57111)]
57112#[cfg_attr(
57113    target_arch = "arm",
57114    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57115)]
57116pub fn vreinterpretq_p64_u32(a: uint32x4_t) -> poly64x2_t {
57117    unsafe { transmute(a) }
57118}
57119#[doc = "Vector reinterpret cast operation"]
57120#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_u32)"]
57121#[inline]
57122#[cfg(target_endian = "big")]
57123#[target_feature(enable = "neon,aes")]
57124#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
57125#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
57126#[cfg_attr(
57127    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57128    assert_instr(nop)
57129)]
57130#[cfg_attr(
57131    not(target_arch = "arm"),
57132    stable(feature = "neon_intrinsics", since = "1.59.0")
57133)]
57134#[cfg_attr(
57135    target_arch = "arm",
57136    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57137)]
57138pub fn vreinterpretq_p64_u32(a: uint32x4_t) -> poly64x2_t {
57139    let a: uint32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
57140    unsafe {
57141        let ret_val: poly64x2_t = transmute(a);
57142        simd_shuffle!(ret_val, ret_val, [1, 0])
57143    }
57144}
57145#[doc = "Vector reinterpret cast operation"]
57146#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_u64)"]
57147#[inline]
57148#[cfg(target_endian = "little")]
57149#[target_feature(enable = "neon,aes")]
57150#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
57151#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
57152#[cfg_attr(
57153    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57154    assert_instr(nop)
57155)]
57156#[cfg_attr(
57157    not(target_arch = "arm"),
57158    stable(feature = "neon_intrinsics", since = "1.59.0")
57159)]
57160#[cfg_attr(
57161    target_arch = "arm",
57162    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57163)]
57164pub fn vreinterpretq_p128_u64(a: uint64x2_t) -> p128 {
57165    unsafe { transmute(a) }
57166}
57167#[doc = "Vector reinterpret cast operation"]
57168#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_u64)"]
57169#[inline]
57170#[cfg(target_endian = "big")]
57171#[target_feature(enable = "neon,aes")]
57172#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
57173#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
57174#[cfg_attr(
57175    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57176    assert_instr(nop)
57177)]
57178#[cfg_attr(
57179    not(target_arch = "arm"),
57180    stable(feature = "neon_intrinsics", since = "1.59.0")
57181)]
57182#[cfg_attr(
57183    target_arch = "arm",
57184    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57185)]
57186pub fn vreinterpretq_p128_u64(a: uint64x2_t) -> p128 {
57187    let a: uint64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
57188    unsafe { transmute(a) }
57189}
57190#[doc = "Vector reinterpret cast operation"]
57191#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_p8)"]
57192#[inline]
57193#[cfg(target_endian = "little")]
57194#[target_feature(enable = "neon,aes")]
57195#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
57196#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
57197#[cfg_attr(
57198    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57199    assert_instr(nop)
57200)]
57201#[cfg_attr(
57202    not(target_arch = "arm"),
57203    stable(feature = "neon_intrinsics", since = "1.59.0")
57204)]
57205#[cfg_attr(
57206    target_arch = "arm",
57207    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57208)]
57209pub fn vreinterpret_p64_p8(a: poly8x8_t) -> poly64x1_t {
57210    unsafe { transmute(a) }
57211}
57212#[doc = "Vector reinterpret cast operation"]
57213#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_p8)"]
57214#[inline]
57215#[cfg(target_endian = "big")]
57216#[target_feature(enable = "neon,aes")]
57217#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
57218#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
57219#[cfg_attr(
57220    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57221    assert_instr(nop)
57222)]
57223#[cfg_attr(
57224    not(target_arch = "arm"),
57225    stable(feature = "neon_intrinsics", since = "1.59.0")
57226)]
57227#[cfg_attr(
57228    target_arch = "arm",
57229    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57230)]
57231pub fn vreinterpret_p64_p8(a: poly8x8_t) -> poly64x1_t {
57232    let a: poly8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
57233    unsafe { transmute(a) }
57234}
57235#[doc = "Vector reinterpret cast operation"]
57236#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_p8)"]
57237#[inline]
57238#[cfg(target_endian = "little")]
57239#[target_feature(enable = "neon,aes")]
57240#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
57241#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
57242#[cfg_attr(
57243    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57244    assert_instr(nop)
57245)]
57246#[cfg_attr(
57247    not(target_arch = "arm"),
57248    stable(feature = "neon_intrinsics", since = "1.59.0")
57249)]
57250#[cfg_attr(
57251    target_arch = "arm",
57252    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57253)]
57254pub fn vreinterpretq_p128_p8(a: poly8x16_t) -> p128 {
57255    unsafe { transmute(a) }
57256}
57257#[doc = "Vector reinterpret cast operation"]
57258#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_p8)"]
57259#[inline]
57260#[cfg(target_endian = "big")]
57261#[target_feature(enable = "neon,aes")]
57262#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
57263#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
57264#[cfg_attr(
57265    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57266    assert_instr(nop)
57267)]
57268#[cfg_attr(
57269    not(target_arch = "arm"),
57270    stable(feature = "neon_intrinsics", since = "1.59.0")
57271)]
57272#[cfg_attr(
57273    target_arch = "arm",
57274    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57275)]
57276pub fn vreinterpretq_p128_p8(a: poly8x16_t) -> p128 {
57277    let a: poly8x16_t =
57278        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
57279    unsafe { transmute(a) }
57280}
57281#[doc = "Vector reinterpret cast operation"]
57282#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_p8)"]
57283#[inline]
57284#[cfg(target_endian = "little")]
57285#[target_feature(enable = "neon,aes")]
57286#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
57287#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
57288#[cfg_attr(
57289    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57290    assert_instr(nop)
57291)]
57292#[cfg_attr(
57293    not(target_arch = "arm"),
57294    stable(feature = "neon_intrinsics", since = "1.59.0")
57295)]
57296#[cfg_attr(
57297    target_arch = "arm",
57298    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57299)]
57300pub fn vreinterpretq_p64_p8(a: poly8x16_t) -> poly64x2_t {
57301    unsafe { transmute(a) }
57302}
57303#[doc = "Vector reinterpret cast operation"]
57304#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_p8)"]
57305#[inline]
57306#[cfg(target_endian = "big")]
57307#[target_feature(enable = "neon,aes")]
57308#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
57309#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
57310#[cfg_attr(
57311    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57312    assert_instr(nop)
57313)]
57314#[cfg_attr(
57315    not(target_arch = "arm"),
57316    stable(feature = "neon_intrinsics", since = "1.59.0")
57317)]
57318#[cfg_attr(
57319    target_arch = "arm",
57320    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57321)]
57322pub fn vreinterpretq_p64_p8(a: poly8x16_t) -> poly64x2_t {
57323    let a: poly8x16_t =
57324        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
57325    unsafe {
57326        let ret_val: poly64x2_t = transmute(a);
57327        simd_shuffle!(ret_val, ret_val, [1, 0])
57328    }
57329}
57330#[doc = "Vector reinterpret cast operation"]
57331#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_p16)"]
57332#[inline]
57333#[cfg(target_endian = "little")]
57334#[target_feature(enable = "neon,aes")]
57335#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
57336#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
57337#[cfg_attr(
57338    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57339    assert_instr(nop)
57340)]
57341#[cfg_attr(
57342    not(target_arch = "arm"),
57343    stable(feature = "neon_intrinsics", since = "1.59.0")
57344)]
57345#[cfg_attr(
57346    target_arch = "arm",
57347    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57348)]
57349pub fn vreinterpret_p64_p16(a: poly16x4_t) -> poly64x1_t {
57350    unsafe { transmute(a) }
57351}
57352#[doc = "Vector reinterpret cast operation"]
57353#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_p16)"]
57354#[inline]
57355#[cfg(target_endian = "big")]
57356#[target_feature(enable = "neon,aes")]
57357#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
57358#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
57359#[cfg_attr(
57360    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57361    assert_instr(nop)
57362)]
57363#[cfg_attr(
57364    not(target_arch = "arm"),
57365    stable(feature = "neon_intrinsics", since = "1.59.0")
57366)]
57367#[cfg_attr(
57368    target_arch = "arm",
57369    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57370)]
57371pub fn vreinterpret_p64_p16(a: poly16x4_t) -> poly64x1_t {
57372    let a: poly16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
57373    unsafe { transmute(a) }
57374}
57375#[doc = "Vector reinterpret cast operation"]
57376#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_p16)"]
57377#[inline]
57378#[cfg(target_endian = "little")]
57379#[target_feature(enable = "neon,aes")]
57380#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
57381#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
57382#[cfg_attr(
57383    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57384    assert_instr(nop)
57385)]
57386#[cfg_attr(
57387    not(target_arch = "arm"),
57388    stable(feature = "neon_intrinsics", since = "1.59.0")
57389)]
57390#[cfg_attr(
57391    target_arch = "arm",
57392    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57393)]
57394pub fn vreinterpretq_p128_p16(a: poly16x8_t) -> p128 {
57395    unsafe { transmute(a) }
57396}
57397#[doc = "Vector reinterpret cast operation"]
57398#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_p16)"]
57399#[inline]
57400#[cfg(target_endian = "big")]
57401#[target_feature(enable = "neon,aes")]
57402#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
57403#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
57404#[cfg_attr(
57405    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57406    assert_instr(nop)
57407)]
57408#[cfg_attr(
57409    not(target_arch = "arm"),
57410    stable(feature = "neon_intrinsics", since = "1.59.0")
57411)]
57412#[cfg_attr(
57413    target_arch = "arm",
57414    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57415)]
57416pub fn vreinterpretq_p128_p16(a: poly16x8_t) -> p128 {
57417    let a: poly16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
57418    unsafe { transmute(a) }
57419}
57420#[doc = "Vector reinterpret cast operation"]
57421#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_p16)"]
57422#[inline]
57423#[cfg(target_endian = "little")]
57424#[target_feature(enable = "neon,aes")]
57425#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
57426#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
57427#[cfg_attr(
57428    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57429    assert_instr(nop)
57430)]
57431#[cfg_attr(
57432    not(target_arch = "arm"),
57433    stable(feature = "neon_intrinsics", since = "1.59.0")
57434)]
57435#[cfg_attr(
57436    target_arch = "arm",
57437    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57438)]
57439pub fn vreinterpretq_p64_p16(a: poly16x8_t) -> poly64x2_t {
57440    unsafe { transmute(a) }
57441}
57442#[doc = "Vector reinterpret cast operation"]
57443#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_p16)"]
57444#[inline]
57445#[cfg(target_endian = "big")]
57446#[target_feature(enable = "neon,aes")]
57447#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
57448#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
57449#[cfg_attr(
57450    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57451    assert_instr(nop)
57452)]
57453#[cfg_attr(
57454    not(target_arch = "arm"),
57455    stable(feature = "neon_intrinsics", since = "1.59.0")
57456)]
57457#[cfg_attr(
57458    target_arch = "arm",
57459    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57460)]
57461pub fn vreinterpretq_p64_p16(a: poly16x8_t) -> poly64x2_t {
57462    let a: poly16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
57463    unsafe {
57464        let ret_val: poly64x2_t = transmute(a);
57465        simd_shuffle!(ret_val, ret_val, [1, 0])
57466    }
57467}
57468#[doc = "Vector reinterpret cast operation"]
57469#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_p64)"]
57470#[inline]
57471#[cfg(target_endian = "little")]
57472#[target_feature(enable = "neon,aes")]
57473#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
57474#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
57475#[cfg_attr(
57476    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57477    assert_instr(nop)
57478)]
57479#[cfg_attr(
57480    not(target_arch = "arm"),
57481    stable(feature = "neon_intrinsics", since = "1.59.0")
57482)]
57483#[cfg_attr(
57484    target_arch = "arm",
57485    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57486)]
57487pub fn vreinterpret_s8_p64(a: poly64x1_t) -> int8x8_t {
57488    unsafe { transmute(a) }
57489}
57490#[doc = "Vector reinterpret cast operation"]
57491#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_p64)"]
57492#[inline]
57493#[cfg(target_endian = "big")]
57494#[target_feature(enable = "neon,aes")]
57495#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
57496#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
57497#[cfg_attr(
57498    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57499    assert_instr(nop)
57500)]
57501#[cfg_attr(
57502    not(target_arch = "arm"),
57503    stable(feature = "neon_intrinsics", since = "1.59.0")
57504)]
57505#[cfg_attr(
57506    target_arch = "arm",
57507    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57508)]
57509pub fn vreinterpret_s8_p64(a: poly64x1_t) -> int8x8_t {
57510    unsafe {
57511        let ret_val: int8x8_t = transmute(a);
57512        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
57513    }
57514}
57515#[doc = "Vector reinterpret cast operation"]
57516#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_p64)"]
57517#[inline]
57518#[cfg(target_endian = "little")]
57519#[target_feature(enable = "neon,aes")]
57520#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
57521#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
57522#[cfg_attr(
57523    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57524    assert_instr(nop)
57525)]
57526#[cfg_attr(
57527    not(target_arch = "arm"),
57528    stable(feature = "neon_intrinsics", since = "1.59.0")
57529)]
57530#[cfg_attr(
57531    target_arch = "arm",
57532    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57533)]
57534pub fn vreinterpret_s16_p64(a: poly64x1_t) -> int16x4_t {
57535    unsafe { transmute(a) }
57536}
57537#[doc = "Vector reinterpret cast operation"]
57538#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_p64)"]
57539#[inline]
57540#[cfg(target_endian = "big")]
57541#[target_feature(enable = "neon,aes")]
57542#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
57543#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
57544#[cfg_attr(
57545    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57546    assert_instr(nop)
57547)]
57548#[cfg_attr(
57549    not(target_arch = "arm"),
57550    stable(feature = "neon_intrinsics", since = "1.59.0")
57551)]
57552#[cfg_attr(
57553    target_arch = "arm",
57554    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57555)]
57556pub fn vreinterpret_s16_p64(a: poly64x1_t) -> int16x4_t {
57557    unsafe {
57558        let ret_val: int16x4_t = transmute(a);
57559        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
57560    }
57561}
57562#[doc = "Vector reinterpret cast operation"]
57563#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_p64)"]
57564#[inline]
57565#[cfg(target_endian = "little")]
57566#[target_feature(enable = "neon,aes")]
57567#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
57568#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
57569#[cfg_attr(
57570    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57571    assert_instr(nop)
57572)]
57573#[cfg_attr(
57574    not(target_arch = "arm"),
57575    stable(feature = "neon_intrinsics", since = "1.59.0")
57576)]
57577#[cfg_attr(
57578    target_arch = "arm",
57579    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57580)]
57581pub fn vreinterpret_s32_p64(a: poly64x1_t) -> int32x2_t {
57582    unsafe { transmute(a) }
57583}
57584#[doc = "Vector reinterpret cast operation"]
57585#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_p64)"]
57586#[inline]
57587#[cfg(target_endian = "big")]
57588#[target_feature(enable = "neon,aes")]
57589#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
57590#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
57591#[cfg_attr(
57592    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57593    assert_instr(nop)
57594)]
57595#[cfg_attr(
57596    not(target_arch = "arm"),
57597    stable(feature = "neon_intrinsics", since = "1.59.0")
57598)]
57599#[cfg_attr(
57600    target_arch = "arm",
57601    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57602)]
57603pub fn vreinterpret_s32_p64(a: poly64x1_t) -> int32x2_t {
57604    unsafe {
57605        let ret_val: int32x2_t = transmute(a);
57606        simd_shuffle!(ret_val, ret_val, [1, 0])
57607    }
57608}
57609#[doc = "Vector reinterpret cast operation"]
57610#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_p64)"]
57611#[inline]
57612#[cfg(target_endian = "little")]
57613#[target_feature(enable = "neon,aes")]
57614#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
57615#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
57616#[cfg_attr(
57617    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57618    assert_instr(nop)
57619)]
57620#[cfg_attr(
57621    not(target_arch = "arm"),
57622    stable(feature = "neon_intrinsics", since = "1.59.0")
57623)]
57624#[cfg_attr(
57625    target_arch = "arm",
57626    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57627)]
57628pub fn vreinterpret_u8_p64(a: poly64x1_t) -> uint8x8_t {
57629    unsafe { transmute(a) }
57630}
57631#[doc = "Vector reinterpret cast operation"]
57632#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_p64)"]
57633#[inline]
57634#[cfg(target_endian = "big")]
57635#[target_feature(enable = "neon,aes")]
57636#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
57637#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
57638#[cfg_attr(
57639    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57640    assert_instr(nop)
57641)]
57642#[cfg_attr(
57643    not(target_arch = "arm"),
57644    stable(feature = "neon_intrinsics", since = "1.59.0")
57645)]
57646#[cfg_attr(
57647    target_arch = "arm",
57648    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57649)]
57650pub fn vreinterpret_u8_p64(a: poly64x1_t) -> uint8x8_t {
57651    unsafe {
57652        let ret_val: uint8x8_t = transmute(a);
57653        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
57654    }
57655}
57656#[doc = "Vector reinterpret cast operation"]
57657#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_p64)"]
57658#[inline]
57659#[cfg(target_endian = "little")]
57660#[target_feature(enable = "neon,aes")]
57661#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
57662#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
57663#[cfg_attr(
57664    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57665    assert_instr(nop)
57666)]
57667#[cfg_attr(
57668    not(target_arch = "arm"),
57669    stable(feature = "neon_intrinsics", since = "1.59.0")
57670)]
57671#[cfg_attr(
57672    target_arch = "arm",
57673    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57674)]
57675pub fn vreinterpret_u16_p64(a: poly64x1_t) -> uint16x4_t {
57676    unsafe { transmute(a) }
57677}
57678#[doc = "Vector reinterpret cast operation"]
57679#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_p64)"]
57680#[inline]
57681#[cfg(target_endian = "big")]
57682#[target_feature(enable = "neon,aes")]
57683#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
57684#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
57685#[cfg_attr(
57686    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57687    assert_instr(nop)
57688)]
57689#[cfg_attr(
57690    not(target_arch = "arm"),
57691    stable(feature = "neon_intrinsics", since = "1.59.0")
57692)]
57693#[cfg_attr(
57694    target_arch = "arm",
57695    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57696)]
57697pub fn vreinterpret_u16_p64(a: poly64x1_t) -> uint16x4_t {
57698    unsafe {
57699        let ret_val: uint16x4_t = transmute(a);
57700        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
57701    }
57702}
57703#[doc = "Vector reinterpret cast operation"]
57704#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_p64)"]
57705#[inline]
57706#[cfg(target_endian = "little")]
57707#[target_feature(enable = "neon,aes")]
57708#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
57709#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
57710#[cfg_attr(
57711    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57712    assert_instr(nop)
57713)]
57714#[cfg_attr(
57715    not(target_arch = "arm"),
57716    stable(feature = "neon_intrinsics", since = "1.59.0")
57717)]
57718#[cfg_attr(
57719    target_arch = "arm",
57720    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57721)]
57722pub fn vreinterpret_u32_p64(a: poly64x1_t) -> uint32x2_t {
57723    unsafe { transmute(a) }
57724}
57725#[doc = "Vector reinterpret cast operation"]
57726#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_p64)"]
57727#[inline]
57728#[cfg(target_endian = "big")]
57729#[target_feature(enable = "neon,aes")]
57730#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
57731#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
57732#[cfg_attr(
57733    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57734    assert_instr(nop)
57735)]
57736#[cfg_attr(
57737    not(target_arch = "arm"),
57738    stable(feature = "neon_intrinsics", since = "1.59.0")
57739)]
57740#[cfg_attr(
57741    target_arch = "arm",
57742    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57743)]
57744pub fn vreinterpret_u32_p64(a: poly64x1_t) -> uint32x2_t {
57745    unsafe {
57746        let ret_val: uint32x2_t = transmute(a);
57747        simd_shuffle!(ret_val, ret_val, [1, 0])
57748    }
57749}
57750#[doc = "Vector reinterpret cast operation"]
57751#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_p64)"]
57752#[inline]
57753#[cfg(target_endian = "little")]
57754#[target_feature(enable = "neon,aes")]
57755#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
57756#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
57757#[cfg_attr(
57758    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57759    assert_instr(nop)
57760)]
57761#[cfg_attr(
57762    not(target_arch = "arm"),
57763    stable(feature = "neon_intrinsics", since = "1.59.0")
57764)]
57765#[cfg_attr(
57766    target_arch = "arm",
57767    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57768)]
57769pub fn vreinterpret_p8_p64(a: poly64x1_t) -> poly8x8_t {
57770    unsafe { transmute(a) }
57771}
57772#[doc = "Vector reinterpret cast operation"]
57773#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_p64)"]
57774#[inline]
57775#[cfg(target_endian = "big")]
57776#[target_feature(enable = "neon,aes")]
57777#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
57778#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
57779#[cfg_attr(
57780    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57781    assert_instr(nop)
57782)]
57783#[cfg_attr(
57784    not(target_arch = "arm"),
57785    stable(feature = "neon_intrinsics", since = "1.59.0")
57786)]
57787#[cfg_attr(
57788    target_arch = "arm",
57789    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57790)]
57791pub fn vreinterpret_p8_p64(a: poly64x1_t) -> poly8x8_t {
57792    unsafe {
57793        let ret_val: poly8x8_t = transmute(a);
57794        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
57795    }
57796}
57797#[doc = "Vector reinterpret cast operation"]
57798#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_p64)"]
57799#[inline]
57800#[cfg(target_endian = "little")]
57801#[target_feature(enable = "neon,aes")]
57802#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
57803#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
57804#[cfg_attr(
57805    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57806    assert_instr(nop)
57807)]
57808#[cfg_attr(
57809    not(target_arch = "arm"),
57810    stable(feature = "neon_intrinsics", since = "1.59.0")
57811)]
57812#[cfg_attr(
57813    target_arch = "arm",
57814    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57815)]
57816pub fn vreinterpret_p16_p64(a: poly64x1_t) -> poly16x4_t {
57817    unsafe { transmute(a) }
57818}
57819#[doc = "Vector reinterpret cast operation"]
57820#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_p64)"]
57821#[inline]
57822#[cfg(target_endian = "big")]
57823#[target_feature(enable = "neon,aes")]
57824#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
57825#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
57826#[cfg_attr(
57827    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57828    assert_instr(nop)
57829)]
57830#[cfg_attr(
57831    not(target_arch = "arm"),
57832    stable(feature = "neon_intrinsics", since = "1.59.0")
57833)]
57834#[cfg_attr(
57835    target_arch = "arm",
57836    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57837)]
57838pub fn vreinterpret_p16_p64(a: poly64x1_t) -> poly16x4_t {
57839    unsafe {
57840        let ret_val: poly16x4_t = transmute(a);
57841        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
57842    }
57843}
57844#[doc = "Vector reinterpret cast operation"]
57845#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_p64)"]
57846#[inline]
57847#[cfg(target_endian = "little")]
57848#[target_feature(enable = "neon,aes")]
57849#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
57850#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
57851#[cfg_attr(
57852    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57853    assert_instr(nop)
57854)]
57855#[cfg_attr(
57856    not(target_arch = "arm"),
57857    stable(feature = "neon_intrinsics", since = "1.59.0")
57858)]
57859#[cfg_attr(
57860    target_arch = "arm",
57861    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57862)]
57863pub fn vreinterpretq_p128_p64(a: poly64x2_t) -> p128 {
57864    unsafe { transmute(a) }
57865}
57866#[doc = "Vector reinterpret cast operation"]
57867#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_p64)"]
57868#[inline]
57869#[cfg(target_endian = "big")]
57870#[target_feature(enable = "neon,aes")]
57871#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
57872#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
57873#[cfg_attr(
57874    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57875    assert_instr(nop)
57876)]
57877#[cfg_attr(
57878    not(target_arch = "arm"),
57879    stable(feature = "neon_intrinsics", since = "1.59.0")
57880)]
57881#[cfg_attr(
57882    target_arch = "arm",
57883    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57884)]
57885pub fn vreinterpretq_p128_p64(a: poly64x2_t) -> p128 {
57886    let a: poly64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
57887    unsafe { transmute(a) }
57888}
57889#[doc = "Vector reinterpret cast operation"]
57890#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_p64)"]
57891#[inline]
57892#[cfg(target_endian = "little")]
57893#[target_feature(enable = "neon,aes")]
57894#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
57895#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
57896#[cfg_attr(
57897    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57898    assert_instr(nop)
57899)]
57900#[cfg_attr(
57901    not(target_arch = "arm"),
57902    stable(feature = "neon_intrinsics", since = "1.59.0")
57903)]
57904#[cfg_attr(
57905    target_arch = "arm",
57906    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57907)]
57908pub fn vreinterpretq_s8_p64(a: poly64x2_t) -> int8x16_t {
57909    unsafe { transmute(a) }
57910}
57911#[doc = "Vector reinterpret cast operation"]
57912#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_p64)"]
57913#[inline]
57914#[cfg(target_endian = "big")]
57915#[target_feature(enable = "neon,aes")]
57916#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
57917#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
57918#[cfg_attr(
57919    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57920    assert_instr(nop)
57921)]
57922#[cfg_attr(
57923    not(target_arch = "arm"),
57924    stable(feature = "neon_intrinsics", since = "1.59.0")
57925)]
57926#[cfg_attr(
57927    target_arch = "arm",
57928    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57929)]
57930pub fn vreinterpretq_s8_p64(a: poly64x2_t) -> int8x16_t {
57931    let a: poly64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
57932    unsafe {
57933        let ret_val: int8x16_t = transmute(a);
57934        simd_shuffle!(
57935            ret_val,
57936            ret_val,
57937            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
57938        )
57939    }
57940}
57941#[doc = "Vector reinterpret cast operation"]
57942#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_p64)"]
57943#[inline]
57944#[cfg(target_endian = "little")]
57945#[target_feature(enable = "neon,aes")]
57946#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
57947#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
57948#[cfg_attr(
57949    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57950    assert_instr(nop)
57951)]
57952#[cfg_attr(
57953    not(target_arch = "arm"),
57954    stable(feature = "neon_intrinsics", since = "1.59.0")
57955)]
57956#[cfg_attr(
57957    target_arch = "arm",
57958    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57959)]
57960pub fn vreinterpretq_s16_p64(a: poly64x2_t) -> int16x8_t {
57961    unsafe { transmute(a) }
57962}
57963#[doc = "Vector reinterpret cast operation"]
57964#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_p64)"]
57965#[inline]
57966#[cfg(target_endian = "big")]
57967#[target_feature(enable = "neon,aes")]
57968#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
57969#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
57970#[cfg_attr(
57971    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57972    assert_instr(nop)
57973)]
57974#[cfg_attr(
57975    not(target_arch = "arm"),
57976    stable(feature = "neon_intrinsics", since = "1.59.0")
57977)]
57978#[cfg_attr(
57979    target_arch = "arm",
57980    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57981)]
57982pub fn vreinterpretq_s16_p64(a: poly64x2_t) -> int16x8_t {
57983    let a: poly64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
57984    unsafe {
57985        let ret_val: int16x8_t = transmute(a);
57986        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
57987    }
57988}
57989#[doc = "Vector reinterpret cast operation"]
57990#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_p64)"]
57991#[inline]
57992#[cfg(target_endian = "little")]
57993#[target_feature(enable = "neon,aes")]
57994#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
57995#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
57996#[cfg_attr(
57997    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57998    assert_instr(nop)
57999)]
58000#[cfg_attr(
58001    not(target_arch = "arm"),
58002    stable(feature = "neon_intrinsics", since = "1.59.0")
58003)]
58004#[cfg_attr(
58005    target_arch = "arm",
58006    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58007)]
58008pub fn vreinterpretq_s32_p64(a: poly64x2_t) -> int32x4_t {
58009    unsafe { transmute(a) }
58010}
58011#[doc = "Vector reinterpret cast operation"]
58012#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_p64)"]
58013#[inline]
58014#[cfg(target_endian = "big")]
58015#[target_feature(enable = "neon,aes")]
58016#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
58017#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
58018#[cfg_attr(
58019    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58020    assert_instr(nop)
58021)]
58022#[cfg_attr(
58023    not(target_arch = "arm"),
58024    stable(feature = "neon_intrinsics", since = "1.59.0")
58025)]
58026#[cfg_attr(
58027    target_arch = "arm",
58028    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58029)]
58030pub fn vreinterpretq_s32_p64(a: poly64x2_t) -> int32x4_t {
58031    let a: poly64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
58032    unsafe {
58033        let ret_val: int32x4_t = transmute(a);
58034        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
58035    }
58036}
58037#[doc = "Vector reinterpret cast operation"]
58038#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_p64)"]
58039#[inline]
58040#[cfg(target_endian = "little")]
58041#[target_feature(enable = "neon,aes")]
58042#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
58043#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
58044#[cfg_attr(
58045    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58046    assert_instr(nop)
58047)]
58048#[cfg_attr(
58049    not(target_arch = "arm"),
58050    stable(feature = "neon_intrinsics", since = "1.59.0")
58051)]
58052#[cfg_attr(
58053    target_arch = "arm",
58054    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58055)]
58056pub fn vreinterpretq_u8_p64(a: poly64x2_t) -> uint8x16_t {
58057    unsafe { transmute(a) }
58058}
58059#[doc = "Vector reinterpret cast operation"]
58060#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_p64)"]
58061#[inline]
58062#[cfg(target_endian = "big")]
58063#[target_feature(enable = "neon,aes")]
58064#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
58065#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
58066#[cfg_attr(
58067    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58068    assert_instr(nop)
58069)]
58070#[cfg_attr(
58071    not(target_arch = "arm"),
58072    stable(feature = "neon_intrinsics", since = "1.59.0")
58073)]
58074#[cfg_attr(
58075    target_arch = "arm",
58076    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58077)]
58078pub fn vreinterpretq_u8_p64(a: poly64x2_t) -> uint8x16_t {
58079    let a: poly64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
58080    unsafe {
58081        let ret_val: uint8x16_t = transmute(a);
58082        simd_shuffle!(
58083            ret_val,
58084            ret_val,
58085            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
58086        )
58087    }
58088}
58089#[doc = "Vector reinterpret cast operation"]
58090#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_p64)"]
58091#[inline]
58092#[cfg(target_endian = "little")]
58093#[target_feature(enable = "neon,aes")]
58094#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
58095#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
58096#[cfg_attr(
58097    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58098    assert_instr(nop)
58099)]
58100#[cfg_attr(
58101    not(target_arch = "arm"),
58102    stable(feature = "neon_intrinsics", since = "1.59.0")
58103)]
58104#[cfg_attr(
58105    target_arch = "arm",
58106    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58107)]
58108pub fn vreinterpretq_u16_p64(a: poly64x2_t) -> uint16x8_t {
58109    unsafe { transmute(a) }
58110}
58111#[doc = "Vector reinterpret cast operation"]
58112#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_p64)"]
58113#[inline]
58114#[cfg(target_endian = "big")]
58115#[target_feature(enable = "neon,aes")]
58116#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
58117#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
58118#[cfg_attr(
58119    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58120    assert_instr(nop)
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 fn vreinterpretq_u16_p64(a: poly64x2_t) -> uint16x8_t {
58131    let a: poly64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
58132    unsafe {
58133        let ret_val: uint16x8_t = transmute(a);
58134        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
58135    }
58136}
58137#[doc = "Vector reinterpret cast operation"]
58138#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_p64)"]
58139#[inline]
58140#[cfg(target_endian = "little")]
58141#[target_feature(enable = "neon,aes")]
58142#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
58143#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
58144#[cfg_attr(
58145    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58146    assert_instr(nop)
58147)]
58148#[cfg_attr(
58149    not(target_arch = "arm"),
58150    stable(feature = "neon_intrinsics", since = "1.59.0")
58151)]
58152#[cfg_attr(
58153    target_arch = "arm",
58154    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58155)]
58156pub fn vreinterpretq_u32_p64(a: poly64x2_t) -> uint32x4_t {
58157    unsafe { transmute(a) }
58158}
58159#[doc = "Vector reinterpret cast operation"]
58160#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_p64)"]
58161#[inline]
58162#[cfg(target_endian = "big")]
58163#[target_feature(enable = "neon,aes")]
58164#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
58165#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
58166#[cfg_attr(
58167    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58168    assert_instr(nop)
58169)]
58170#[cfg_attr(
58171    not(target_arch = "arm"),
58172    stable(feature = "neon_intrinsics", since = "1.59.0")
58173)]
58174#[cfg_attr(
58175    target_arch = "arm",
58176    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58177)]
58178pub fn vreinterpretq_u32_p64(a: poly64x2_t) -> uint32x4_t {
58179    let a: poly64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
58180    unsafe {
58181        let ret_val: uint32x4_t = transmute(a);
58182        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
58183    }
58184}
58185#[doc = "Vector reinterpret cast operation"]
58186#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_p64)"]
58187#[inline]
58188#[cfg(target_endian = "little")]
58189#[target_feature(enable = "neon,aes")]
58190#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
58191#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
58192#[cfg_attr(
58193    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58194    assert_instr(nop)
58195)]
58196#[cfg_attr(
58197    not(target_arch = "arm"),
58198    stable(feature = "neon_intrinsics", since = "1.59.0")
58199)]
58200#[cfg_attr(
58201    target_arch = "arm",
58202    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58203)]
58204pub fn vreinterpretq_p8_p64(a: poly64x2_t) -> poly8x16_t {
58205    unsafe { transmute(a) }
58206}
58207#[doc = "Vector reinterpret cast operation"]
58208#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_p64)"]
58209#[inline]
58210#[cfg(target_endian = "big")]
58211#[target_feature(enable = "neon,aes")]
58212#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
58213#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
58214#[cfg_attr(
58215    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58216    assert_instr(nop)
58217)]
58218#[cfg_attr(
58219    not(target_arch = "arm"),
58220    stable(feature = "neon_intrinsics", since = "1.59.0")
58221)]
58222#[cfg_attr(
58223    target_arch = "arm",
58224    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58225)]
58226pub fn vreinterpretq_p8_p64(a: poly64x2_t) -> poly8x16_t {
58227    let a: poly64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
58228    unsafe {
58229        let ret_val: poly8x16_t = transmute(a);
58230        simd_shuffle!(
58231            ret_val,
58232            ret_val,
58233            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
58234        )
58235    }
58236}
58237#[doc = "Vector reinterpret cast operation"]
58238#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_p64)"]
58239#[inline]
58240#[cfg(target_endian = "little")]
58241#[target_feature(enable = "neon,aes")]
58242#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
58243#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
58244#[cfg_attr(
58245    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58246    assert_instr(nop)
58247)]
58248#[cfg_attr(
58249    not(target_arch = "arm"),
58250    stable(feature = "neon_intrinsics", since = "1.59.0")
58251)]
58252#[cfg_attr(
58253    target_arch = "arm",
58254    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58255)]
58256pub fn vreinterpretq_p16_p64(a: poly64x2_t) -> poly16x8_t {
58257    unsafe { transmute(a) }
58258}
58259#[doc = "Vector reinterpret cast operation"]
58260#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_p64)"]
58261#[inline]
58262#[cfg(target_endian = "big")]
58263#[target_feature(enable = "neon,aes")]
58264#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
58265#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
58266#[cfg_attr(
58267    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58268    assert_instr(nop)
58269)]
58270#[cfg_attr(
58271    not(target_arch = "arm"),
58272    stable(feature = "neon_intrinsics", since = "1.59.0")
58273)]
58274#[cfg_attr(
58275    target_arch = "arm",
58276    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58277)]
58278pub fn vreinterpretq_p16_p64(a: poly64x2_t) -> poly16x8_t {
58279    let a: poly64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
58280    unsafe {
58281        let ret_val: poly16x8_t = transmute(a);
58282        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
58283    }
58284}
58285#[doc = "Reversing vector elements (swap endianness)"]
58286#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev16_p8)"]
58287#[inline]
58288#[target_feature(enable = "neon")]
58289#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58290#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev16.8"))]
58291#[cfg_attr(
58292    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58293    assert_instr(rev16)
58294)]
58295#[cfg_attr(
58296    not(target_arch = "arm"),
58297    stable(feature = "neon_intrinsics", since = "1.59.0")
58298)]
58299#[cfg_attr(
58300    target_arch = "arm",
58301    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58302)]
58303pub fn vrev16_p8(a: poly8x8_t) -> poly8x8_t {
58304    unsafe { simd_shuffle!(a, a, [1, 0, 3, 2, 5, 4, 7, 6]) }
58305}
58306#[doc = "Reversing vector elements (swap endianness)"]
58307#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev16_s8)"]
58308#[inline]
58309#[target_feature(enable = "neon")]
58310#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58311#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev16.8"))]
58312#[cfg_attr(
58313    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58314    assert_instr(rev16)
58315)]
58316#[cfg_attr(
58317    not(target_arch = "arm"),
58318    stable(feature = "neon_intrinsics", since = "1.59.0")
58319)]
58320#[cfg_attr(
58321    target_arch = "arm",
58322    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58323)]
58324pub fn vrev16_s8(a: int8x8_t) -> int8x8_t {
58325    unsafe { simd_shuffle!(a, a, [1, 0, 3, 2, 5, 4, 7, 6]) }
58326}
58327#[doc = "Reversing vector elements (swap endianness)"]
58328#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev16_u8)"]
58329#[inline]
58330#[target_feature(enable = "neon")]
58331#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58332#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev16.8"))]
58333#[cfg_attr(
58334    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58335    assert_instr(rev16)
58336)]
58337#[cfg_attr(
58338    not(target_arch = "arm"),
58339    stable(feature = "neon_intrinsics", since = "1.59.0")
58340)]
58341#[cfg_attr(
58342    target_arch = "arm",
58343    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58344)]
58345pub fn vrev16_u8(a: uint8x8_t) -> uint8x8_t {
58346    unsafe { simd_shuffle!(a, a, [1, 0, 3, 2, 5, 4, 7, 6]) }
58347}
58348#[doc = "Reversing vector elements (swap endianness)"]
58349#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev16q_p8)"]
58350#[inline]
58351#[target_feature(enable = "neon")]
58352#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58353#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev16.8"))]
58354#[cfg_attr(
58355    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58356    assert_instr(rev16)
58357)]
58358#[cfg_attr(
58359    not(target_arch = "arm"),
58360    stable(feature = "neon_intrinsics", since = "1.59.0")
58361)]
58362#[cfg_attr(
58363    target_arch = "arm",
58364    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58365)]
58366pub fn vrev16q_p8(a: poly8x16_t) -> poly8x16_t {
58367    unsafe { simd_shuffle!(a, a, [1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14]) }
58368}
58369#[doc = "Reversing vector elements (swap endianness)"]
58370#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev16q_s8)"]
58371#[inline]
58372#[target_feature(enable = "neon")]
58373#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58374#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev16.8"))]
58375#[cfg_attr(
58376    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58377    assert_instr(rev16)
58378)]
58379#[cfg_attr(
58380    not(target_arch = "arm"),
58381    stable(feature = "neon_intrinsics", since = "1.59.0")
58382)]
58383#[cfg_attr(
58384    target_arch = "arm",
58385    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58386)]
58387pub fn vrev16q_s8(a: int8x16_t) -> int8x16_t {
58388    unsafe { simd_shuffle!(a, a, [1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14]) }
58389}
58390#[doc = "Reversing vector elements (swap endianness)"]
58391#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev16q_u8)"]
58392#[inline]
58393#[target_feature(enable = "neon")]
58394#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58395#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev16.8"))]
58396#[cfg_attr(
58397    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58398    assert_instr(rev16)
58399)]
58400#[cfg_attr(
58401    not(target_arch = "arm"),
58402    stable(feature = "neon_intrinsics", since = "1.59.0")
58403)]
58404#[cfg_attr(
58405    target_arch = "arm",
58406    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58407)]
58408pub fn vrev16q_u8(a: uint8x16_t) -> uint8x16_t {
58409    unsafe { simd_shuffle!(a, a, [1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14]) }
58410}
58411#[doc = "Reversing vector elements (swap endianness)"]
58412#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev32_p16)"]
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("vrev32.16"))]
58417#[cfg_attr(
58418    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58419    assert_instr(rev32)
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 fn vrev32_p16(a: poly16x4_t) -> poly16x4_t {
58430    unsafe { simd_shuffle!(a, a, [1, 0, 3, 2]) }
58431}
58432#[doc = "Reversing vector elements (swap endianness)"]
58433#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev32_p8)"]
58434#[inline]
58435#[target_feature(enable = "neon")]
58436#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58437#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev32.8"))]
58438#[cfg_attr(
58439    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58440    assert_instr(rev32)
58441)]
58442#[cfg_attr(
58443    not(target_arch = "arm"),
58444    stable(feature = "neon_intrinsics", since = "1.59.0")
58445)]
58446#[cfg_attr(
58447    target_arch = "arm",
58448    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58449)]
58450pub fn vrev32_p8(a: poly8x8_t) -> poly8x8_t {
58451    unsafe { simd_shuffle!(a, a, [3, 2, 1, 0, 7, 6, 5, 4]) }
58452}
58453#[doc = "Reversing vector elements (swap endianness)"]
58454#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev32_s16)"]
58455#[inline]
58456#[target_feature(enable = "neon")]
58457#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58458#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev32.16"))]
58459#[cfg_attr(
58460    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58461    assert_instr(rev32)
58462)]
58463#[cfg_attr(
58464    not(target_arch = "arm"),
58465    stable(feature = "neon_intrinsics", since = "1.59.0")
58466)]
58467#[cfg_attr(
58468    target_arch = "arm",
58469    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58470)]
58471pub fn vrev32_s16(a: int16x4_t) -> int16x4_t {
58472    unsafe { simd_shuffle!(a, a, [1, 0, 3, 2]) }
58473}
58474#[doc = "Reversing vector elements (swap endianness)"]
58475#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev32_s8)"]
58476#[inline]
58477#[target_feature(enable = "neon")]
58478#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58479#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev32.8"))]
58480#[cfg_attr(
58481    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58482    assert_instr(rev32)
58483)]
58484#[cfg_attr(
58485    not(target_arch = "arm"),
58486    stable(feature = "neon_intrinsics", since = "1.59.0")
58487)]
58488#[cfg_attr(
58489    target_arch = "arm",
58490    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58491)]
58492pub fn vrev32_s8(a: int8x8_t) -> int8x8_t {
58493    unsafe { simd_shuffle!(a, a, [3, 2, 1, 0, 7, 6, 5, 4]) }
58494}
58495#[doc = "Reversing vector elements (swap endianness)"]
58496#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev32_u16)"]
58497#[inline]
58498#[target_feature(enable = "neon")]
58499#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58500#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev32.16"))]
58501#[cfg_attr(
58502    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58503    assert_instr(rev32)
58504)]
58505#[cfg_attr(
58506    not(target_arch = "arm"),
58507    stable(feature = "neon_intrinsics", since = "1.59.0")
58508)]
58509#[cfg_attr(
58510    target_arch = "arm",
58511    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58512)]
58513pub fn vrev32_u16(a: uint16x4_t) -> uint16x4_t {
58514    unsafe { simd_shuffle!(a, a, [1, 0, 3, 2]) }
58515}
58516#[doc = "Reversing vector elements (swap endianness)"]
58517#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev32_u8)"]
58518#[inline]
58519#[target_feature(enable = "neon")]
58520#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58521#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev32.8"))]
58522#[cfg_attr(
58523    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58524    assert_instr(rev32)
58525)]
58526#[cfg_attr(
58527    not(target_arch = "arm"),
58528    stable(feature = "neon_intrinsics", since = "1.59.0")
58529)]
58530#[cfg_attr(
58531    target_arch = "arm",
58532    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58533)]
58534pub fn vrev32_u8(a: uint8x8_t) -> uint8x8_t {
58535    unsafe { simd_shuffle!(a, a, [3, 2, 1, 0, 7, 6, 5, 4]) }
58536}
58537#[doc = "Reversing vector elements (swap endianness)"]
58538#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev32q_p16)"]
58539#[inline]
58540#[target_feature(enable = "neon")]
58541#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58542#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev32.16"))]
58543#[cfg_attr(
58544    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58545    assert_instr(rev32)
58546)]
58547#[cfg_attr(
58548    not(target_arch = "arm"),
58549    stable(feature = "neon_intrinsics", since = "1.59.0")
58550)]
58551#[cfg_attr(
58552    target_arch = "arm",
58553    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58554)]
58555pub fn vrev32q_p16(a: poly16x8_t) -> poly16x8_t {
58556    unsafe { simd_shuffle!(a, a, [1, 0, 3, 2, 5, 4, 7, 6]) }
58557}
58558#[doc = "Reversing vector elements (swap endianness)"]
58559#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev32q_p8)"]
58560#[inline]
58561#[target_feature(enable = "neon")]
58562#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58563#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev32.8"))]
58564#[cfg_attr(
58565    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58566    assert_instr(rev32)
58567)]
58568#[cfg_attr(
58569    not(target_arch = "arm"),
58570    stable(feature = "neon_intrinsics", since = "1.59.0")
58571)]
58572#[cfg_attr(
58573    target_arch = "arm",
58574    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58575)]
58576pub fn vrev32q_p8(a: poly8x16_t) -> poly8x16_t {
58577    unsafe { simd_shuffle!(a, a, [3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12]) }
58578}
58579#[doc = "Reversing vector elements (swap endianness)"]
58580#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev32q_s16)"]
58581#[inline]
58582#[target_feature(enable = "neon")]
58583#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58584#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev32.16"))]
58585#[cfg_attr(
58586    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58587    assert_instr(rev32)
58588)]
58589#[cfg_attr(
58590    not(target_arch = "arm"),
58591    stable(feature = "neon_intrinsics", since = "1.59.0")
58592)]
58593#[cfg_attr(
58594    target_arch = "arm",
58595    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58596)]
58597pub fn vrev32q_s16(a: int16x8_t) -> int16x8_t {
58598    unsafe { simd_shuffle!(a, a, [1, 0, 3, 2, 5, 4, 7, 6]) }
58599}
58600#[doc = "Reversing vector elements (swap endianness)"]
58601#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev32q_s8)"]
58602#[inline]
58603#[target_feature(enable = "neon")]
58604#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58605#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev32.8"))]
58606#[cfg_attr(
58607    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58608    assert_instr(rev32)
58609)]
58610#[cfg_attr(
58611    not(target_arch = "arm"),
58612    stable(feature = "neon_intrinsics", since = "1.59.0")
58613)]
58614#[cfg_attr(
58615    target_arch = "arm",
58616    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58617)]
58618pub fn vrev32q_s8(a: int8x16_t) -> int8x16_t {
58619    unsafe { simd_shuffle!(a, a, [3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12]) }
58620}
58621#[doc = "Reversing vector elements (swap endianness)"]
58622#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev32q_u16)"]
58623#[inline]
58624#[target_feature(enable = "neon")]
58625#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58626#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev32.16"))]
58627#[cfg_attr(
58628    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58629    assert_instr(rev32)
58630)]
58631#[cfg_attr(
58632    not(target_arch = "arm"),
58633    stable(feature = "neon_intrinsics", since = "1.59.0")
58634)]
58635#[cfg_attr(
58636    target_arch = "arm",
58637    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58638)]
58639pub fn vrev32q_u16(a: uint16x8_t) -> uint16x8_t {
58640    unsafe { simd_shuffle!(a, a, [1, 0, 3, 2, 5, 4, 7, 6]) }
58641}
58642#[doc = "Reversing vector elements (swap endianness)"]
58643#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev32q_u8)"]
58644#[inline]
58645#[target_feature(enable = "neon")]
58646#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58647#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev32.8"))]
58648#[cfg_attr(
58649    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58650    assert_instr(rev32)
58651)]
58652#[cfg_attr(
58653    not(target_arch = "arm"),
58654    stable(feature = "neon_intrinsics", since = "1.59.0")
58655)]
58656#[cfg_attr(
58657    target_arch = "arm",
58658    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58659)]
58660pub fn vrev32q_u8(a: uint8x16_t) -> uint8x16_t {
58661    unsafe { simd_shuffle!(a, a, [3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12]) }
58662}
58663#[doc = "Reversing vector elements (swap endianness)"]
58664#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64_f32)"]
58665#[inline]
58666#[target_feature(enable = "neon")]
58667#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58668#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.32"))]
58669#[cfg_attr(
58670    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58671    assert_instr(rev64)
58672)]
58673#[cfg_attr(
58674    not(target_arch = "arm"),
58675    stable(feature = "neon_intrinsics", since = "1.59.0")
58676)]
58677#[cfg_attr(
58678    target_arch = "arm",
58679    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58680)]
58681pub fn vrev64_f32(a: float32x2_t) -> float32x2_t {
58682    unsafe { simd_shuffle!(a, a, [1, 0]) }
58683}
58684#[doc = "Reversing vector elements (swap endianness)"]
58685#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64_p16)"]
58686#[inline]
58687#[target_feature(enable = "neon")]
58688#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58689#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.16"))]
58690#[cfg_attr(
58691    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58692    assert_instr(rev64)
58693)]
58694#[cfg_attr(
58695    not(target_arch = "arm"),
58696    stable(feature = "neon_intrinsics", since = "1.59.0")
58697)]
58698#[cfg_attr(
58699    target_arch = "arm",
58700    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58701)]
58702pub fn vrev64_p16(a: poly16x4_t) -> poly16x4_t {
58703    unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) }
58704}
58705#[doc = "Reversing vector elements (swap endianness)"]
58706#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64_p8)"]
58707#[inline]
58708#[target_feature(enable = "neon")]
58709#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58710#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.8"))]
58711#[cfg_attr(
58712    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58713    assert_instr(rev64)
58714)]
58715#[cfg_attr(
58716    not(target_arch = "arm"),
58717    stable(feature = "neon_intrinsics", since = "1.59.0")
58718)]
58719#[cfg_attr(
58720    target_arch = "arm",
58721    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58722)]
58723pub fn vrev64_p8(a: poly8x8_t) -> poly8x8_t {
58724    unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) }
58725}
58726#[doc = "Reversing vector elements (swap endianness)"]
58727#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64_s16)"]
58728#[inline]
58729#[target_feature(enable = "neon")]
58730#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58731#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.16"))]
58732#[cfg_attr(
58733    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58734    assert_instr(rev64)
58735)]
58736#[cfg_attr(
58737    not(target_arch = "arm"),
58738    stable(feature = "neon_intrinsics", since = "1.59.0")
58739)]
58740#[cfg_attr(
58741    target_arch = "arm",
58742    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58743)]
58744pub fn vrev64_s16(a: int16x4_t) -> int16x4_t {
58745    unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) }
58746}
58747#[doc = "Reversing vector elements (swap endianness)"]
58748#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64_s32)"]
58749#[inline]
58750#[target_feature(enable = "neon")]
58751#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58752#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.32"))]
58753#[cfg_attr(
58754    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58755    assert_instr(rev64)
58756)]
58757#[cfg_attr(
58758    not(target_arch = "arm"),
58759    stable(feature = "neon_intrinsics", since = "1.59.0")
58760)]
58761#[cfg_attr(
58762    target_arch = "arm",
58763    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58764)]
58765pub fn vrev64_s32(a: int32x2_t) -> int32x2_t {
58766    unsafe { simd_shuffle!(a, a, [1, 0]) }
58767}
58768#[doc = "Reversing vector elements (swap endianness)"]
58769#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64_s8)"]
58770#[inline]
58771#[target_feature(enable = "neon")]
58772#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58773#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.8"))]
58774#[cfg_attr(
58775    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58776    assert_instr(rev64)
58777)]
58778#[cfg_attr(
58779    not(target_arch = "arm"),
58780    stable(feature = "neon_intrinsics", since = "1.59.0")
58781)]
58782#[cfg_attr(
58783    target_arch = "arm",
58784    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58785)]
58786pub fn vrev64_s8(a: int8x8_t) -> int8x8_t {
58787    unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) }
58788}
58789#[doc = "Reversing vector elements (swap endianness)"]
58790#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64_u16)"]
58791#[inline]
58792#[target_feature(enable = "neon")]
58793#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58794#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.16"))]
58795#[cfg_attr(
58796    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58797    assert_instr(rev64)
58798)]
58799#[cfg_attr(
58800    not(target_arch = "arm"),
58801    stable(feature = "neon_intrinsics", since = "1.59.0")
58802)]
58803#[cfg_attr(
58804    target_arch = "arm",
58805    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58806)]
58807pub fn vrev64_u16(a: uint16x4_t) -> uint16x4_t {
58808    unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) }
58809}
58810#[doc = "Reversing vector elements (swap endianness)"]
58811#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64_u32)"]
58812#[inline]
58813#[target_feature(enable = "neon")]
58814#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58815#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.32"))]
58816#[cfg_attr(
58817    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58818    assert_instr(rev64)
58819)]
58820#[cfg_attr(
58821    not(target_arch = "arm"),
58822    stable(feature = "neon_intrinsics", since = "1.59.0")
58823)]
58824#[cfg_attr(
58825    target_arch = "arm",
58826    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58827)]
58828pub fn vrev64_u32(a: uint32x2_t) -> uint32x2_t {
58829    unsafe { simd_shuffle!(a, a, [1, 0]) }
58830}
58831#[doc = "Reversing vector elements (swap endianness)"]
58832#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64_u8)"]
58833#[inline]
58834#[target_feature(enable = "neon")]
58835#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58836#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.8"))]
58837#[cfg_attr(
58838    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58839    assert_instr(rev64)
58840)]
58841#[cfg_attr(
58842    not(target_arch = "arm"),
58843    stable(feature = "neon_intrinsics", since = "1.59.0")
58844)]
58845#[cfg_attr(
58846    target_arch = "arm",
58847    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58848)]
58849pub fn vrev64_u8(a: uint8x8_t) -> uint8x8_t {
58850    unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) }
58851}
58852#[doc = "Reversing vector elements (swap endianness)"]
58853#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64q_f32)"]
58854#[inline]
58855#[target_feature(enable = "neon")]
58856#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58857#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.32"))]
58858#[cfg_attr(
58859    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58860    assert_instr(rev64)
58861)]
58862#[cfg_attr(
58863    not(target_arch = "arm"),
58864    stable(feature = "neon_intrinsics", since = "1.59.0")
58865)]
58866#[cfg_attr(
58867    target_arch = "arm",
58868    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58869)]
58870pub fn vrev64q_f32(a: float32x4_t) -> float32x4_t {
58871    unsafe { simd_shuffle!(a, a, [1, 0, 3, 2]) }
58872}
58873#[doc = "Reversing vector elements (swap endianness)"]
58874#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64q_p16)"]
58875#[inline]
58876#[target_feature(enable = "neon")]
58877#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58878#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.16"))]
58879#[cfg_attr(
58880    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58881    assert_instr(rev64)
58882)]
58883#[cfg_attr(
58884    not(target_arch = "arm"),
58885    stable(feature = "neon_intrinsics", since = "1.59.0")
58886)]
58887#[cfg_attr(
58888    target_arch = "arm",
58889    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58890)]
58891pub fn vrev64q_p16(a: poly16x8_t) -> poly16x8_t {
58892    unsafe { simd_shuffle!(a, a, [3, 2, 1, 0, 7, 6, 5, 4]) }
58893}
58894#[doc = "Reversing vector elements (swap endianness)"]
58895#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64q_p8)"]
58896#[inline]
58897#[target_feature(enable = "neon")]
58898#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58899#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.8"))]
58900#[cfg_attr(
58901    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58902    assert_instr(rev64)
58903)]
58904#[cfg_attr(
58905    not(target_arch = "arm"),
58906    stable(feature = "neon_intrinsics", since = "1.59.0")
58907)]
58908#[cfg_attr(
58909    target_arch = "arm",
58910    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58911)]
58912pub fn vrev64q_p8(a: poly8x16_t) -> poly8x16_t {
58913    unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8]) }
58914}
58915#[doc = "Reversing vector elements (swap endianness)"]
58916#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64q_s16)"]
58917#[inline]
58918#[target_feature(enable = "neon")]
58919#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58920#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.16"))]
58921#[cfg_attr(
58922    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58923    assert_instr(rev64)
58924)]
58925#[cfg_attr(
58926    not(target_arch = "arm"),
58927    stable(feature = "neon_intrinsics", since = "1.59.0")
58928)]
58929#[cfg_attr(
58930    target_arch = "arm",
58931    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58932)]
58933pub fn vrev64q_s16(a: int16x8_t) -> int16x8_t {
58934    unsafe { simd_shuffle!(a, a, [3, 2, 1, 0, 7, 6, 5, 4]) }
58935}
58936#[doc = "Reversing vector elements (swap endianness)"]
58937#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64q_s32)"]
58938#[inline]
58939#[target_feature(enable = "neon")]
58940#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58941#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.32"))]
58942#[cfg_attr(
58943    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58944    assert_instr(rev64)
58945)]
58946#[cfg_attr(
58947    not(target_arch = "arm"),
58948    stable(feature = "neon_intrinsics", since = "1.59.0")
58949)]
58950#[cfg_attr(
58951    target_arch = "arm",
58952    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58953)]
58954pub fn vrev64q_s32(a: int32x4_t) -> int32x4_t {
58955    unsafe { simd_shuffle!(a, a, [1, 0, 3, 2]) }
58956}
58957#[doc = "Reversing vector elements (swap endianness)"]
58958#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64q_s8)"]
58959#[inline]
58960#[target_feature(enable = "neon")]
58961#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58962#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.8"))]
58963#[cfg_attr(
58964    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58965    assert_instr(rev64)
58966)]
58967#[cfg_attr(
58968    not(target_arch = "arm"),
58969    stable(feature = "neon_intrinsics", since = "1.59.0")
58970)]
58971#[cfg_attr(
58972    target_arch = "arm",
58973    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58974)]
58975pub fn vrev64q_s8(a: int8x16_t) -> int8x16_t {
58976    unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8]) }
58977}
58978#[doc = "Reversing vector elements (swap endianness)"]
58979#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64q_u16)"]
58980#[inline]
58981#[target_feature(enable = "neon")]
58982#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58983#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.16"))]
58984#[cfg_attr(
58985    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58986    assert_instr(rev64)
58987)]
58988#[cfg_attr(
58989    not(target_arch = "arm"),
58990    stable(feature = "neon_intrinsics", since = "1.59.0")
58991)]
58992#[cfg_attr(
58993    target_arch = "arm",
58994    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58995)]
58996pub fn vrev64q_u16(a: uint16x8_t) -> uint16x8_t {
58997    unsafe { simd_shuffle!(a, a, [3, 2, 1, 0, 7, 6, 5, 4]) }
58998}
58999#[doc = "Reversing vector elements (swap endianness)"]
59000#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64q_u32)"]
59001#[inline]
59002#[target_feature(enable = "neon")]
59003#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59004#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.32"))]
59005#[cfg_attr(
59006    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59007    assert_instr(rev64)
59008)]
59009#[cfg_attr(
59010    not(target_arch = "arm"),
59011    stable(feature = "neon_intrinsics", since = "1.59.0")
59012)]
59013#[cfg_attr(
59014    target_arch = "arm",
59015    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59016)]
59017pub fn vrev64q_u32(a: uint32x4_t) -> uint32x4_t {
59018    unsafe { simd_shuffle!(a, a, [1, 0, 3, 2]) }
59019}
59020#[doc = "Reversing vector elements (swap endianness)"]
59021#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64q_u8)"]
59022#[inline]
59023#[target_feature(enable = "neon")]
59024#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59025#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.8"))]
59026#[cfg_attr(
59027    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59028    assert_instr(rev64)
59029)]
59030#[cfg_attr(
59031    not(target_arch = "arm"),
59032    stable(feature = "neon_intrinsics", since = "1.59.0")
59033)]
59034#[cfg_attr(
59035    target_arch = "arm",
59036    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59037)]
59038pub fn vrev64q_u8(a: uint8x16_t) -> uint8x16_t {
59039    unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8]) }
59040}
59041#[doc = "Reverse elements in 64-bit doublewords"]
59042#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64_f16)"]
59043#[inline]
59044#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59045#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrev64))]
59046#[cfg_attr(
59047    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59048    assert_instr(rev64)
59049)]
59050#[target_feature(enable = "neon,fp16")]
59051#[cfg_attr(
59052    not(target_arch = "arm"),
59053    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
59054)]
59055#[cfg_attr(
59056    target_arch = "arm",
59057    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59058)]
59059#[cfg(not(target_arch = "arm64ec"))]
59060pub fn vrev64_f16(a: float16x4_t) -> float16x4_t {
59061    unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) }
59062}
59063#[doc = "Reverse elements in 64-bit doublewords"]
59064#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64q_f16)"]
59065#[inline]
59066#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59067#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrev64))]
59068#[cfg_attr(
59069    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59070    assert_instr(rev64)
59071)]
59072#[target_feature(enable = "neon,fp16")]
59073#[cfg_attr(
59074    not(target_arch = "arm"),
59075    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
59076)]
59077#[cfg_attr(
59078    target_arch = "arm",
59079    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59080)]
59081#[cfg(not(target_arch = "arm64ec"))]
59082pub fn vrev64q_f16(a: float16x8_t) -> float16x8_t {
59083    unsafe { simd_shuffle!(a, a, [3, 2, 1, 0, 7, 6, 5, 4]) }
59084}
59085#[doc = "Rounding halving add"]
59086#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrhadd_s8)"]
59087#[inline]
59088#[target_feature(enable = "neon")]
59089#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59090#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrhadd.s8"))]
59091#[cfg_attr(
59092    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59093    assert_instr(srhadd)
59094)]
59095#[cfg_attr(
59096    not(target_arch = "arm"),
59097    stable(feature = "neon_intrinsics", since = "1.59.0")
59098)]
59099#[cfg_attr(
59100    target_arch = "arm",
59101    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59102)]
59103pub fn vrhadd_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
59104    unsafe extern "unadjusted" {
59105        #[cfg_attr(
59106            any(target_arch = "aarch64", target_arch = "arm64ec"),
59107            link_name = "llvm.aarch64.neon.srhadd.v8i8"
59108        )]
59109        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrhadds.v8i8")]
59110        fn _vrhadd_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t;
59111    }
59112    unsafe { _vrhadd_s8(a, b) }
59113}
59114#[doc = "Rounding halving add"]
59115#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrhaddq_s8)"]
59116#[inline]
59117#[target_feature(enable = "neon")]
59118#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59119#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrhadd.s8"))]
59120#[cfg_attr(
59121    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59122    assert_instr(srhadd)
59123)]
59124#[cfg_attr(
59125    not(target_arch = "arm"),
59126    stable(feature = "neon_intrinsics", since = "1.59.0")
59127)]
59128#[cfg_attr(
59129    target_arch = "arm",
59130    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59131)]
59132pub fn vrhaddq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
59133    unsafe extern "unadjusted" {
59134        #[cfg_attr(
59135            any(target_arch = "aarch64", target_arch = "arm64ec"),
59136            link_name = "llvm.aarch64.neon.srhadd.v16i8"
59137        )]
59138        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrhadds.v16i8")]
59139        fn _vrhaddq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t;
59140    }
59141    unsafe { _vrhaddq_s8(a, b) }
59142}
59143#[doc = "Rounding halving add"]
59144#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrhadd_s16)"]
59145#[inline]
59146#[target_feature(enable = "neon")]
59147#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59148#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrhadd.s16"))]
59149#[cfg_attr(
59150    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59151    assert_instr(srhadd)
59152)]
59153#[cfg_attr(
59154    not(target_arch = "arm"),
59155    stable(feature = "neon_intrinsics", since = "1.59.0")
59156)]
59157#[cfg_attr(
59158    target_arch = "arm",
59159    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59160)]
59161pub fn vrhadd_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
59162    unsafe extern "unadjusted" {
59163        #[cfg_attr(
59164            any(target_arch = "aarch64", target_arch = "arm64ec"),
59165            link_name = "llvm.aarch64.neon.srhadd.v4i16"
59166        )]
59167        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrhadds.v4i16")]
59168        fn _vrhadd_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t;
59169    }
59170    unsafe { _vrhadd_s16(a, b) }
59171}
59172#[doc = "Rounding halving add"]
59173#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrhaddq_s16)"]
59174#[inline]
59175#[target_feature(enable = "neon")]
59176#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59177#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrhadd.s16"))]
59178#[cfg_attr(
59179    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59180    assert_instr(srhadd)
59181)]
59182#[cfg_attr(
59183    not(target_arch = "arm"),
59184    stable(feature = "neon_intrinsics", since = "1.59.0")
59185)]
59186#[cfg_attr(
59187    target_arch = "arm",
59188    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59189)]
59190pub fn vrhaddq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
59191    unsafe extern "unadjusted" {
59192        #[cfg_attr(
59193            any(target_arch = "aarch64", target_arch = "arm64ec"),
59194            link_name = "llvm.aarch64.neon.srhadd.v8i16"
59195        )]
59196        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrhadds.v8i16")]
59197        fn _vrhaddq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t;
59198    }
59199    unsafe { _vrhaddq_s16(a, b) }
59200}
59201#[doc = "Rounding halving add"]
59202#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrhadd_s32)"]
59203#[inline]
59204#[target_feature(enable = "neon")]
59205#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59206#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrhadd.s32"))]
59207#[cfg_attr(
59208    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59209    assert_instr(srhadd)
59210)]
59211#[cfg_attr(
59212    not(target_arch = "arm"),
59213    stable(feature = "neon_intrinsics", since = "1.59.0")
59214)]
59215#[cfg_attr(
59216    target_arch = "arm",
59217    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59218)]
59219pub fn vrhadd_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
59220    unsafe extern "unadjusted" {
59221        #[cfg_attr(
59222            any(target_arch = "aarch64", target_arch = "arm64ec"),
59223            link_name = "llvm.aarch64.neon.srhadd.v2i32"
59224        )]
59225        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrhadds.v2i32")]
59226        fn _vrhadd_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t;
59227    }
59228    unsafe { _vrhadd_s32(a, b) }
59229}
59230#[doc = "Rounding halving add"]
59231#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrhaddq_s32)"]
59232#[inline]
59233#[target_feature(enable = "neon")]
59234#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59235#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrhadd.s32"))]
59236#[cfg_attr(
59237    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59238    assert_instr(srhadd)
59239)]
59240#[cfg_attr(
59241    not(target_arch = "arm"),
59242    stable(feature = "neon_intrinsics", since = "1.59.0")
59243)]
59244#[cfg_attr(
59245    target_arch = "arm",
59246    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59247)]
59248pub fn vrhaddq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
59249    unsafe extern "unadjusted" {
59250        #[cfg_attr(
59251            any(target_arch = "aarch64", target_arch = "arm64ec"),
59252            link_name = "llvm.aarch64.neon.srhadd.v4i32"
59253        )]
59254        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrhadds.v4i32")]
59255        fn _vrhaddq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t;
59256    }
59257    unsafe { _vrhaddq_s32(a, b) }
59258}
59259#[doc = "Rounding halving add"]
59260#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrhadd_u8)"]
59261#[inline]
59262#[target_feature(enable = "neon")]
59263#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59264#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrhadd.u8"))]
59265#[cfg_attr(
59266    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59267    assert_instr(urhadd)
59268)]
59269#[cfg_attr(
59270    not(target_arch = "arm"),
59271    stable(feature = "neon_intrinsics", since = "1.59.0")
59272)]
59273#[cfg_attr(
59274    target_arch = "arm",
59275    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59276)]
59277pub fn vrhadd_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
59278    unsafe extern "unadjusted" {
59279        #[cfg_attr(
59280            any(target_arch = "aarch64", target_arch = "arm64ec"),
59281            link_name = "llvm.aarch64.neon.urhadd.v8i8"
59282        )]
59283        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrhaddu.v8i8")]
59284        fn _vrhadd_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t;
59285    }
59286    unsafe { _vrhadd_u8(a, b) }
59287}
59288#[doc = "Rounding halving add"]
59289#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrhaddq_u8)"]
59290#[inline]
59291#[target_feature(enable = "neon")]
59292#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59293#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrhadd.u8"))]
59294#[cfg_attr(
59295    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59296    assert_instr(urhadd)
59297)]
59298#[cfg_attr(
59299    not(target_arch = "arm"),
59300    stable(feature = "neon_intrinsics", since = "1.59.0")
59301)]
59302#[cfg_attr(
59303    target_arch = "arm",
59304    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59305)]
59306pub fn vrhaddq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
59307    unsafe extern "unadjusted" {
59308        #[cfg_attr(
59309            any(target_arch = "aarch64", target_arch = "arm64ec"),
59310            link_name = "llvm.aarch64.neon.urhadd.v16i8"
59311        )]
59312        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrhaddu.v16i8")]
59313        fn _vrhaddq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t;
59314    }
59315    unsafe { _vrhaddq_u8(a, b) }
59316}
59317#[doc = "Rounding halving add"]
59318#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrhadd_u16)"]
59319#[inline]
59320#[target_feature(enable = "neon")]
59321#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59322#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrhadd.u16"))]
59323#[cfg_attr(
59324    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59325    assert_instr(urhadd)
59326)]
59327#[cfg_attr(
59328    not(target_arch = "arm"),
59329    stable(feature = "neon_intrinsics", since = "1.59.0")
59330)]
59331#[cfg_attr(
59332    target_arch = "arm",
59333    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59334)]
59335pub fn vrhadd_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
59336    unsafe extern "unadjusted" {
59337        #[cfg_attr(
59338            any(target_arch = "aarch64", target_arch = "arm64ec"),
59339            link_name = "llvm.aarch64.neon.urhadd.v4i16"
59340        )]
59341        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrhaddu.v4i16")]
59342        fn _vrhadd_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t;
59343    }
59344    unsafe { _vrhadd_u16(a, b) }
59345}
59346#[doc = "Rounding halving add"]
59347#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrhaddq_u16)"]
59348#[inline]
59349#[target_feature(enable = "neon")]
59350#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59351#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrhadd.u16"))]
59352#[cfg_attr(
59353    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59354    assert_instr(urhadd)
59355)]
59356#[cfg_attr(
59357    not(target_arch = "arm"),
59358    stable(feature = "neon_intrinsics", since = "1.59.0")
59359)]
59360#[cfg_attr(
59361    target_arch = "arm",
59362    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59363)]
59364pub fn vrhaddq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
59365    unsafe extern "unadjusted" {
59366        #[cfg_attr(
59367            any(target_arch = "aarch64", target_arch = "arm64ec"),
59368            link_name = "llvm.aarch64.neon.urhadd.v8i16"
59369        )]
59370        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrhaddu.v8i16")]
59371        fn _vrhaddq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t;
59372    }
59373    unsafe { _vrhaddq_u16(a, b) }
59374}
59375#[doc = "Rounding halving add"]
59376#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrhadd_u32)"]
59377#[inline]
59378#[target_feature(enable = "neon")]
59379#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59380#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrhadd.u32"))]
59381#[cfg_attr(
59382    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59383    assert_instr(urhadd)
59384)]
59385#[cfg_attr(
59386    not(target_arch = "arm"),
59387    stable(feature = "neon_intrinsics", since = "1.59.0")
59388)]
59389#[cfg_attr(
59390    target_arch = "arm",
59391    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59392)]
59393pub fn vrhadd_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
59394    unsafe extern "unadjusted" {
59395        #[cfg_attr(
59396            any(target_arch = "aarch64", target_arch = "arm64ec"),
59397            link_name = "llvm.aarch64.neon.urhadd.v2i32"
59398        )]
59399        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrhaddu.v2i32")]
59400        fn _vrhadd_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t;
59401    }
59402    unsafe { _vrhadd_u32(a, b) }
59403}
59404#[doc = "Rounding halving add"]
59405#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrhaddq_u32)"]
59406#[inline]
59407#[target_feature(enable = "neon")]
59408#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59409#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrhadd.u32"))]
59410#[cfg_attr(
59411    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59412    assert_instr(urhadd)
59413)]
59414#[cfg_attr(
59415    not(target_arch = "arm"),
59416    stable(feature = "neon_intrinsics", since = "1.59.0")
59417)]
59418#[cfg_attr(
59419    target_arch = "arm",
59420    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59421)]
59422pub fn vrhaddq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
59423    unsafe extern "unadjusted" {
59424        #[cfg_attr(
59425            any(target_arch = "aarch64", target_arch = "arm64ec"),
59426            link_name = "llvm.aarch64.neon.urhadd.v4i32"
59427        )]
59428        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrhaddu.v4i32")]
59429        fn _vrhaddq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t;
59430    }
59431    unsafe { _vrhaddq_u32(a, b) }
59432}
59433#[doc = "Floating-point round to integral, to nearest with ties to even"]
59434#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrndn_f16)"]
59435#[inline]
59436#[cfg_attr(target_arch = "arm", target_feature(enable = "fp-armv8,v8"))]
59437#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrintn))]
59438#[cfg_attr(
59439    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59440    assert_instr(frintn)
59441)]
59442#[target_feature(enable = "neon,fp16")]
59443#[cfg_attr(
59444    not(target_arch = "arm"),
59445    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
59446)]
59447#[cfg_attr(
59448    target_arch = "arm",
59449    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59450)]
59451#[cfg(not(target_arch = "arm64ec"))]
59452pub fn vrndn_f16(a: float16x4_t) -> float16x4_t {
59453    unsafe extern "unadjusted" {
59454        #[cfg_attr(
59455            any(target_arch = "aarch64", target_arch = "arm64ec", target_arch = "arm"),
59456            link_name = "llvm.roundeven.v4f16"
59457        )]
59458        fn _vrndn_f16(a: float16x4_t) -> float16x4_t;
59459    }
59460    unsafe { _vrndn_f16(a) }
59461}
59462#[doc = "Floating-point round to integral, to nearest with ties to even"]
59463#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrndnq_f16)"]
59464#[inline]
59465#[cfg_attr(target_arch = "arm", target_feature(enable = "fp-armv8,v8"))]
59466#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrintn))]
59467#[cfg_attr(
59468    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59469    assert_instr(frintn)
59470)]
59471#[target_feature(enable = "neon,fp16")]
59472#[cfg_attr(
59473    not(target_arch = "arm"),
59474    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
59475)]
59476#[cfg_attr(
59477    target_arch = "arm",
59478    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59479)]
59480#[cfg(not(target_arch = "arm64ec"))]
59481pub fn vrndnq_f16(a: float16x8_t) -> float16x8_t {
59482    unsafe extern "unadjusted" {
59483        #[cfg_attr(
59484            any(target_arch = "aarch64", target_arch = "arm64ec", target_arch = "arm"),
59485            link_name = "llvm.roundeven.v8f16"
59486        )]
59487        fn _vrndnq_f16(a: float16x8_t) -> float16x8_t;
59488    }
59489    unsafe { _vrndnq_f16(a) }
59490}
59491#[doc = "Floating-point round to integral, to nearest with ties to even"]
59492#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrndn_f32)"]
59493#[inline]
59494#[target_feature(enable = "neon")]
59495#[cfg_attr(target_arch = "arm", target_feature(enable = "fp-armv8,v8"))]
59496#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrintn))]
59497#[cfg_attr(
59498    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59499    assert_instr(frintn)
59500)]
59501#[cfg_attr(
59502    not(target_arch = "arm"),
59503    stable(feature = "neon_intrinsics", since = "1.59.0")
59504)]
59505#[cfg_attr(
59506    target_arch = "arm",
59507    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59508)]
59509pub fn vrndn_f32(a: float32x2_t) -> float32x2_t {
59510    unsafe extern "unadjusted" {
59511        #[cfg_attr(
59512            any(target_arch = "aarch64", target_arch = "arm64ec", target_arch = "arm"),
59513            link_name = "llvm.roundeven.v2f32"
59514        )]
59515        fn _vrndn_f32(a: float32x2_t) -> float32x2_t;
59516    }
59517    unsafe { _vrndn_f32(a) }
59518}
59519#[doc = "Floating-point round to integral, to nearest with ties to even"]
59520#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrndnq_f32)"]
59521#[inline]
59522#[target_feature(enable = "neon")]
59523#[cfg_attr(target_arch = "arm", target_feature(enable = "fp-armv8,v8"))]
59524#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrintn))]
59525#[cfg_attr(
59526    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59527    assert_instr(frintn)
59528)]
59529#[cfg_attr(
59530    not(target_arch = "arm"),
59531    stable(feature = "neon_intrinsics", since = "1.59.0")
59532)]
59533#[cfg_attr(
59534    target_arch = "arm",
59535    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59536)]
59537pub fn vrndnq_f32(a: float32x4_t) -> float32x4_t {
59538    unsafe extern "unadjusted" {
59539        #[cfg_attr(
59540            any(target_arch = "aarch64", target_arch = "arm64ec", target_arch = "arm"),
59541            link_name = "llvm.roundeven.v4f32"
59542        )]
59543        fn _vrndnq_f32(a: float32x4_t) -> float32x4_t;
59544    }
59545    unsafe { _vrndnq_f32(a) }
59546}
59547#[doc = "Signed rounding shift left"]
59548#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshl_s8)"]
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(vrshl))]
59553#[cfg_attr(
59554    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59555    assert_instr(srshl)
59556)]
59557#[cfg_attr(
59558    not(target_arch = "arm"),
59559    stable(feature = "neon_intrinsics", since = "1.59.0")
59560)]
59561#[cfg_attr(
59562    target_arch = "arm",
59563    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59564)]
59565pub fn vrshl_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
59566    unsafe extern "unadjusted" {
59567        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshifts.v8i8")]
59568        #[cfg_attr(
59569            any(target_arch = "aarch64", target_arch = "arm64ec"),
59570            link_name = "llvm.aarch64.neon.srshl.v8i8"
59571        )]
59572        fn _vrshl_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t;
59573    }
59574    unsafe { _vrshl_s8(a, b) }
59575}
59576#[doc = "Signed rounding shift left"]
59577#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshlq_s8)"]
59578#[inline]
59579#[target_feature(enable = "neon")]
59580#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59581#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
59582#[cfg_attr(
59583    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59584    assert_instr(srshl)
59585)]
59586#[cfg_attr(
59587    not(target_arch = "arm"),
59588    stable(feature = "neon_intrinsics", since = "1.59.0")
59589)]
59590#[cfg_attr(
59591    target_arch = "arm",
59592    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59593)]
59594pub fn vrshlq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
59595    unsafe extern "unadjusted" {
59596        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshifts.v16i8")]
59597        #[cfg_attr(
59598            any(target_arch = "aarch64", target_arch = "arm64ec"),
59599            link_name = "llvm.aarch64.neon.srshl.v16i8"
59600        )]
59601        fn _vrshlq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t;
59602    }
59603    unsafe { _vrshlq_s8(a, b) }
59604}
59605#[doc = "Signed rounding shift left"]
59606#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshl_s16)"]
59607#[inline]
59608#[target_feature(enable = "neon")]
59609#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59610#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
59611#[cfg_attr(
59612    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59613    assert_instr(srshl)
59614)]
59615#[cfg_attr(
59616    not(target_arch = "arm"),
59617    stable(feature = "neon_intrinsics", since = "1.59.0")
59618)]
59619#[cfg_attr(
59620    target_arch = "arm",
59621    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59622)]
59623pub fn vrshl_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
59624    unsafe extern "unadjusted" {
59625        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshifts.v4i16")]
59626        #[cfg_attr(
59627            any(target_arch = "aarch64", target_arch = "arm64ec"),
59628            link_name = "llvm.aarch64.neon.srshl.v4i16"
59629        )]
59630        fn _vrshl_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t;
59631    }
59632    unsafe { _vrshl_s16(a, b) }
59633}
59634#[doc = "Signed rounding shift left"]
59635#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshlq_s16)"]
59636#[inline]
59637#[target_feature(enable = "neon")]
59638#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59639#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
59640#[cfg_attr(
59641    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59642    assert_instr(srshl)
59643)]
59644#[cfg_attr(
59645    not(target_arch = "arm"),
59646    stable(feature = "neon_intrinsics", since = "1.59.0")
59647)]
59648#[cfg_attr(
59649    target_arch = "arm",
59650    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59651)]
59652pub fn vrshlq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
59653    unsafe extern "unadjusted" {
59654        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshifts.v8i16")]
59655        #[cfg_attr(
59656            any(target_arch = "aarch64", target_arch = "arm64ec"),
59657            link_name = "llvm.aarch64.neon.srshl.v8i16"
59658        )]
59659        fn _vrshlq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t;
59660    }
59661    unsafe { _vrshlq_s16(a, b) }
59662}
59663#[doc = "Signed rounding shift left"]
59664#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshl_s32)"]
59665#[inline]
59666#[target_feature(enable = "neon")]
59667#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59668#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
59669#[cfg_attr(
59670    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59671    assert_instr(srshl)
59672)]
59673#[cfg_attr(
59674    not(target_arch = "arm"),
59675    stable(feature = "neon_intrinsics", since = "1.59.0")
59676)]
59677#[cfg_attr(
59678    target_arch = "arm",
59679    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59680)]
59681pub fn vrshl_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
59682    unsafe extern "unadjusted" {
59683        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshifts.v2i32")]
59684        #[cfg_attr(
59685            any(target_arch = "aarch64", target_arch = "arm64ec"),
59686            link_name = "llvm.aarch64.neon.srshl.v2i32"
59687        )]
59688        fn _vrshl_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t;
59689    }
59690    unsafe { _vrshl_s32(a, b) }
59691}
59692#[doc = "Signed rounding shift left"]
59693#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshlq_s32)"]
59694#[inline]
59695#[target_feature(enable = "neon")]
59696#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59697#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
59698#[cfg_attr(
59699    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59700    assert_instr(srshl)
59701)]
59702#[cfg_attr(
59703    not(target_arch = "arm"),
59704    stable(feature = "neon_intrinsics", since = "1.59.0")
59705)]
59706#[cfg_attr(
59707    target_arch = "arm",
59708    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59709)]
59710pub fn vrshlq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
59711    unsafe extern "unadjusted" {
59712        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshifts.v4i32")]
59713        #[cfg_attr(
59714            any(target_arch = "aarch64", target_arch = "arm64ec"),
59715            link_name = "llvm.aarch64.neon.srshl.v4i32"
59716        )]
59717        fn _vrshlq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t;
59718    }
59719    unsafe { _vrshlq_s32(a, b) }
59720}
59721#[doc = "Signed rounding shift left"]
59722#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshl_s64)"]
59723#[inline]
59724#[target_feature(enable = "neon")]
59725#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59726#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
59727#[cfg_attr(
59728    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59729    assert_instr(srshl)
59730)]
59731#[cfg_attr(
59732    not(target_arch = "arm"),
59733    stable(feature = "neon_intrinsics", since = "1.59.0")
59734)]
59735#[cfg_attr(
59736    target_arch = "arm",
59737    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59738)]
59739pub fn vrshl_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t {
59740    unsafe extern "unadjusted" {
59741        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshifts.v1i64")]
59742        #[cfg_attr(
59743            any(target_arch = "aarch64", target_arch = "arm64ec"),
59744            link_name = "llvm.aarch64.neon.srshl.v1i64"
59745        )]
59746        fn _vrshl_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t;
59747    }
59748    unsafe { _vrshl_s64(a, b) }
59749}
59750#[doc = "Signed rounding shift left"]
59751#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshlq_s64)"]
59752#[inline]
59753#[target_feature(enable = "neon")]
59754#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59755#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
59756#[cfg_attr(
59757    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59758    assert_instr(srshl)
59759)]
59760#[cfg_attr(
59761    not(target_arch = "arm"),
59762    stable(feature = "neon_intrinsics", since = "1.59.0")
59763)]
59764#[cfg_attr(
59765    target_arch = "arm",
59766    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59767)]
59768pub fn vrshlq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t {
59769    unsafe extern "unadjusted" {
59770        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshifts.v2i64")]
59771        #[cfg_attr(
59772            any(target_arch = "aarch64", target_arch = "arm64ec"),
59773            link_name = "llvm.aarch64.neon.srshl.v2i64"
59774        )]
59775        fn _vrshlq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t;
59776    }
59777    unsafe { _vrshlq_s64(a, b) }
59778}
59779#[doc = "Unsigned rounding shift left"]
59780#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshl_u8)"]
59781#[inline]
59782#[target_feature(enable = "neon")]
59783#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59784#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
59785#[cfg_attr(
59786    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59787    assert_instr(urshl)
59788)]
59789#[cfg_attr(
59790    not(target_arch = "arm"),
59791    stable(feature = "neon_intrinsics", since = "1.59.0")
59792)]
59793#[cfg_attr(
59794    target_arch = "arm",
59795    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59796)]
59797pub fn vrshl_u8(a: uint8x8_t, b: int8x8_t) -> uint8x8_t {
59798    unsafe extern "unadjusted" {
59799        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftu.v8i8")]
59800        #[cfg_attr(
59801            any(target_arch = "aarch64", target_arch = "arm64ec"),
59802            link_name = "llvm.aarch64.neon.urshl.v8i8"
59803        )]
59804        fn _vrshl_u8(a: uint8x8_t, b: int8x8_t) -> uint8x8_t;
59805    }
59806    unsafe { _vrshl_u8(a, b) }
59807}
59808#[doc = "Unsigned rounding shift left"]
59809#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshlq_u8)"]
59810#[inline]
59811#[target_feature(enable = "neon")]
59812#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59813#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
59814#[cfg_attr(
59815    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59816    assert_instr(urshl)
59817)]
59818#[cfg_attr(
59819    not(target_arch = "arm"),
59820    stable(feature = "neon_intrinsics", since = "1.59.0")
59821)]
59822#[cfg_attr(
59823    target_arch = "arm",
59824    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59825)]
59826pub fn vrshlq_u8(a: uint8x16_t, b: int8x16_t) -> uint8x16_t {
59827    unsafe extern "unadjusted" {
59828        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftu.v16i8")]
59829        #[cfg_attr(
59830            any(target_arch = "aarch64", target_arch = "arm64ec"),
59831            link_name = "llvm.aarch64.neon.urshl.v16i8"
59832        )]
59833        fn _vrshlq_u8(a: uint8x16_t, b: int8x16_t) -> uint8x16_t;
59834    }
59835    unsafe { _vrshlq_u8(a, b) }
59836}
59837#[doc = "Unsigned rounding shift left"]
59838#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshl_u16)"]
59839#[inline]
59840#[target_feature(enable = "neon")]
59841#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59842#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
59843#[cfg_attr(
59844    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59845    assert_instr(urshl)
59846)]
59847#[cfg_attr(
59848    not(target_arch = "arm"),
59849    stable(feature = "neon_intrinsics", since = "1.59.0")
59850)]
59851#[cfg_attr(
59852    target_arch = "arm",
59853    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59854)]
59855pub fn vrshl_u16(a: uint16x4_t, b: int16x4_t) -> uint16x4_t {
59856    unsafe extern "unadjusted" {
59857        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftu.v4i16")]
59858        #[cfg_attr(
59859            any(target_arch = "aarch64", target_arch = "arm64ec"),
59860            link_name = "llvm.aarch64.neon.urshl.v4i16"
59861        )]
59862        fn _vrshl_u16(a: uint16x4_t, b: int16x4_t) -> uint16x4_t;
59863    }
59864    unsafe { _vrshl_u16(a, b) }
59865}
59866#[doc = "Unsigned rounding shift left"]
59867#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshlq_u16)"]
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(vrshl))]
59872#[cfg_attr(
59873    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59874    assert_instr(urshl)
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 fn vrshlq_u16(a: uint16x8_t, b: int16x8_t) -> uint16x8_t {
59885    unsafe extern "unadjusted" {
59886        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftu.v8i16")]
59887        #[cfg_attr(
59888            any(target_arch = "aarch64", target_arch = "arm64ec"),
59889            link_name = "llvm.aarch64.neon.urshl.v8i16"
59890        )]
59891        fn _vrshlq_u16(a: uint16x8_t, b: int16x8_t) -> uint16x8_t;
59892    }
59893    unsafe { _vrshlq_u16(a, b) }
59894}
59895#[doc = "Unsigned rounding shift left"]
59896#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshl_u32)"]
59897#[inline]
59898#[target_feature(enable = "neon")]
59899#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59900#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
59901#[cfg_attr(
59902    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59903    assert_instr(urshl)
59904)]
59905#[cfg_attr(
59906    not(target_arch = "arm"),
59907    stable(feature = "neon_intrinsics", since = "1.59.0")
59908)]
59909#[cfg_attr(
59910    target_arch = "arm",
59911    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59912)]
59913pub fn vrshl_u32(a: uint32x2_t, b: int32x2_t) -> uint32x2_t {
59914    unsafe extern "unadjusted" {
59915        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftu.v2i32")]
59916        #[cfg_attr(
59917            any(target_arch = "aarch64", target_arch = "arm64ec"),
59918            link_name = "llvm.aarch64.neon.urshl.v2i32"
59919        )]
59920        fn _vrshl_u32(a: uint32x2_t, b: int32x2_t) -> uint32x2_t;
59921    }
59922    unsafe { _vrshl_u32(a, b) }
59923}
59924#[doc = "Unsigned rounding shift left"]
59925#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshlq_u32)"]
59926#[inline]
59927#[target_feature(enable = "neon")]
59928#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59929#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
59930#[cfg_attr(
59931    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59932    assert_instr(urshl)
59933)]
59934#[cfg_attr(
59935    not(target_arch = "arm"),
59936    stable(feature = "neon_intrinsics", since = "1.59.0")
59937)]
59938#[cfg_attr(
59939    target_arch = "arm",
59940    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59941)]
59942pub fn vrshlq_u32(a: uint32x4_t, b: int32x4_t) -> uint32x4_t {
59943    unsafe extern "unadjusted" {
59944        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftu.v4i32")]
59945        #[cfg_attr(
59946            any(target_arch = "aarch64", target_arch = "arm64ec"),
59947            link_name = "llvm.aarch64.neon.urshl.v4i32"
59948        )]
59949        fn _vrshlq_u32(a: uint32x4_t, b: int32x4_t) -> uint32x4_t;
59950    }
59951    unsafe { _vrshlq_u32(a, b) }
59952}
59953#[doc = "Unsigned rounding shift left"]
59954#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshl_u64)"]
59955#[inline]
59956#[target_feature(enable = "neon")]
59957#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59958#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
59959#[cfg_attr(
59960    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59961    assert_instr(urshl)
59962)]
59963#[cfg_attr(
59964    not(target_arch = "arm"),
59965    stable(feature = "neon_intrinsics", since = "1.59.0")
59966)]
59967#[cfg_attr(
59968    target_arch = "arm",
59969    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59970)]
59971pub fn vrshl_u64(a: uint64x1_t, b: int64x1_t) -> uint64x1_t {
59972    unsafe extern "unadjusted" {
59973        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftu.v1i64")]
59974        #[cfg_attr(
59975            any(target_arch = "aarch64", target_arch = "arm64ec"),
59976            link_name = "llvm.aarch64.neon.urshl.v1i64"
59977        )]
59978        fn _vrshl_u64(a: uint64x1_t, b: int64x1_t) -> uint64x1_t;
59979    }
59980    unsafe { _vrshl_u64(a, b) }
59981}
59982#[doc = "Unsigned rounding shift left"]
59983#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshlq_u64)"]
59984#[inline]
59985#[target_feature(enable = "neon")]
59986#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59987#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
59988#[cfg_attr(
59989    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59990    assert_instr(urshl)
59991)]
59992#[cfg_attr(
59993    not(target_arch = "arm"),
59994    stable(feature = "neon_intrinsics", since = "1.59.0")
59995)]
59996#[cfg_attr(
59997    target_arch = "arm",
59998    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59999)]
60000pub fn vrshlq_u64(a: uint64x2_t, b: int64x2_t) -> uint64x2_t {
60001    unsafe extern "unadjusted" {
60002        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftu.v2i64")]
60003        #[cfg_attr(
60004            any(target_arch = "aarch64", target_arch = "arm64ec"),
60005            link_name = "llvm.aarch64.neon.urshl.v2i64"
60006        )]
60007        fn _vrshlq_u64(a: uint64x2_t, b: int64x2_t) -> uint64x2_t;
60008    }
60009    unsafe { _vrshlq_u64(a, b) }
60010}
60011#[doc = "Signed rounding shift right"]
60012#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshr_n_s8)"]
60013#[inline]
60014#[target_feature(enable = "neon")]
60015#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60016#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
60017#[cfg_attr(
60018    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60019    assert_instr(srshr, N = 2)
60020)]
60021#[rustc_legacy_const_generics(1)]
60022#[cfg_attr(
60023    not(target_arch = "arm"),
60024    stable(feature = "neon_intrinsics", since = "1.59.0")
60025)]
60026#[cfg_attr(
60027    target_arch = "arm",
60028    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60029)]
60030pub fn vrshr_n_s8<const N: i32>(a: int8x8_t) -> int8x8_t {
60031    static_assert!(N >= 1 && N <= 8);
60032    vrshl_s8(a, vdup_n_s8(-N as _))
60033}
60034#[doc = "Signed rounding shift right"]
60035#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrq_n_s8)"]
60036#[inline]
60037#[target_feature(enable = "neon")]
60038#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60039#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
60040#[cfg_attr(
60041    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60042    assert_instr(srshr, N = 2)
60043)]
60044#[rustc_legacy_const_generics(1)]
60045#[cfg_attr(
60046    not(target_arch = "arm"),
60047    stable(feature = "neon_intrinsics", since = "1.59.0")
60048)]
60049#[cfg_attr(
60050    target_arch = "arm",
60051    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60052)]
60053pub fn vrshrq_n_s8<const N: i32>(a: int8x16_t) -> int8x16_t {
60054    static_assert!(N >= 1 && N <= 8);
60055    vrshlq_s8(a, vdupq_n_s8(-N as _))
60056}
60057#[doc = "Signed rounding shift right"]
60058#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshr_n_s16)"]
60059#[inline]
60060#[target_feature(enable = "neon")]
60061#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60062#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
60063#[cfg_attr(
60064    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60065    assert_instr(srshr, N = 2)
60066)]
60067#[rustc_legacy_const_generics(1)]
60068#[cfg_attr(
60069    not(target_arch = "arm"),
60070    stable(feature = "neon_intrinsics", since = "1.59.0")
60071)]
60072#[cfg_attr(
60073    target_arch = "arm",
60074    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60075)]
60076pub fn vrshr_n_s16<const N: i32>(a: int16x4_t) -> int16x4_t {
60077    static_assert!(N >= 1 && N <= 16);
60078    vrshl_s16(a, vdup_n_s16(-N as _))
60079}
60080#[doc = "Signed rounding shift right"]
60081#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrq_n_s16)"]
60082#[inline]
60083#[target_feature(enable = "neon")]
60084#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60085#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
60086#[cfg_attr(
60087    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60088    assert_instr(srshr, N = 2)
60089)]
60090#[rustc_legacy_const_generics(1)]
60091#[cfg_attr(
60092    not(target_arch = "arm"),
60093    stable(feature = "neon_intrinsics", since = "1.59.0")
60094)]
60095#[cfg_attr(
60096    target_arch = "arm",
60097    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60098)]
60099pub fn vrshrq_n_s16<const N: i32>(a: int16x8_t) -> int16x8_t {
60100    static_assert!(N >= 1 && N <= 16);
60101    vrshlq_s16(a, vdupq_n_s16(-N as _))
60102}
60103#[doc = "Signed rounding shift right"]
60104#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshr_n_s32)"]
60105#[inline]
60106#[target_feature(enable = "neon")]
60107#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60108#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
60109#[cfg_attr(
60110    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60111    assert_instr(srshr, N = 2)
60112)]
60113#[rustc_legacy_const_generics(1)]
60114#[cfg_attr(
60115    not(target_arch = "arm"),
60116    stable(feature = "neon_intrinsics", since = "1.59.0")
60117)]
60118#[cfg_attr(
60119    target_arch = "arm",
60120    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60121)]
60122pub fn vrshr_n_s32<const N: i32>(a: int32x2_t) -> int32x2_t {
60123    static_assert!(N >= 1 && N <= 32);
60124    vrshl_s32(a, vdup_n_s32(-N as _))
60125}
60126#[doc = "Signed rounding shift right"]
60127#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrq_n_s32)"]
60128#[inline]
60129#[target_feature(enable = "neon")]
60130#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60131#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
60132#[cfg_attr(
60133    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60134    assert_instr(srshr, N = 2)
60135)]
60136#[rustc_legacy_const_generics(1)]
60137#[cfg_attr(
60138    not(target_arch = "arm"),
60139    stable(feature = "neon_intrinsics", since = "1.59.0")
60140)]
60141#[cfg_attr(
60142    target_arch = "arm",
60143    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60144)]
60145pub fn vrshrq_n_s32<const N: i32>(a: int32x4_t) -> int32x4_t {
60146    static_assert!(N >= 1 && N <= 32);
60147    vrshlq_s32(a, vdupq_n_s32(-N as _))
60148}
60149#[doc = "Signed rounding shift right"]
60150#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshr_n_s64)"]
60151#[inline]
60152#[target_feature(enable = "neon")]
60153#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60154#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
60155#[cfg_attr(
60156    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60157    assert_instr(srshr, N = 2)
60158)]
60159#[rustc_legacy_const_generics(1)]
60160#[cfg_attr(
60161    not(target_arch = "arm"),
60162    stable(feature = "neon_intrinsics", since = "1.59.0")
60163)]
60164#[cfg_attr(
60165    target_arch = "arm",
60166    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60167)]
60168pub fn vrshr_n_s64<const N: i32>(a: int64x1_t) -> int64x1_t {
60169    static_assert!(N >= 1 && N <= 64);
60170    vrshl_s64(a, vdup_n_s64(-N as _))
60171}
60172#[doc = "Signed rounding shift right"]
60173#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrq_n_s64)"]
60174#[inline]
60175#[target_feature(enable = "neon")]
60176#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60177#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
60178#[cfg_attr(
60179    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60180    assert_instr(srshr, N = 2)
60181)]
60182#[rustc_legacy_const_generics(1)]
60183#[cfg_attr(
60184    not(target_arch = "arm"),
60185    stable(feature = "neon_intrinsics", since = "1.59.0")
60186)]
60187#[cfg_attr(
60188    target_arch = "arm",
60189    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60190)]
60191pub fn vrshrq_n_s64<const N: i32>(a: int64x2_t) -> int64x2_t {
60192    static_assert!(N >= 1 && N <= 64);
60193    vrshlq_s64(a, vdupq_n_s64(-N as _))
60194}
60195#[doc = "Unsigned rounding shift right"]
60196#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshr_n_u8)"]
60197#[inline]
60198#[target_feature(enable = "neon")]
60199#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60200#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
60201#[cfg_attr(
60202    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60203    assert_instr(urshr, N = 2)
60204)]
60205#[rustc_legacy_const_generics(1)]
60206#[cfg_attr(
60207    not(target_arch = "arm"),
60208    stable(feature = "neon_intrinsics", since = "1.59.0")
60209)]
60210#[cfg_attr(
60211    target_arch = "arm",
60212    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60213)]
60214pub fn vrshr_n_u8<const N: i32>(a: uint8x8_t) -> uint8x8_t {
60215    static_assert!(N >= 1 && N <= 8);
60216    vrshl_u8(a, vdup_n_s8(-N as _))
60217}
60218#[doc = "Unsigned rounding shift right"]
60219#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrq_n_u8)"]
60220#[inline]
60221#[target_feature(enable = "neon")]
60222#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60223#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
60224#[cfg_attr(
60225    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60226    assert_instr(urshr, N = 2)
60227)]
60228#[rustc_legacy_const_generics(1)]
60229#[cfg_attr(
60230    not(target_arch = "arm"),
60231    stable(feature = "neon_intrinsics", since = "1.59.0")
60232)]
60233#[cfg_attr(
60234    target_arch = "arm",
60235    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60236)]
60237pub fn vrshrq_n_u8<const N: i32>(a: uint8x16_t) -> uint8x16_t {
60238    static_assert!(N >= 1 && N <= 8);
60239    vrshlq_u8(a, vdupq_n_s8(-N as _))
60240}
60241#[doc = "Unsigned rounding shift right"]
60242#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshr_n_u16)"]
60243#[inline]
60244#[target_feature(enable = "neon")]
60245#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60246#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
60247#[cfg_attr(
60248    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60249    assert_instr(urshr, N = 2)
60250)]
60251#[rustc_legacy_const_generics(1)]
60252#[cfg_attr(
60253    not(target_arch = "arm"),
60254    stable(feature = "neon_intrinsics", since = "1.59.0")
60255)]
60256#[cfg_attr(
60257    target_arch = "arm",
60258    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60259)]
60260pub fn vrshr_n_u16<const N: i32>(a: uint16x4_t) -> uint16x4_t {
60261    static_assert!(N >= 1 && N <= 16);
60262    vrshl_u16(a, vdup_n_s16(-N as _))
60263}
60264#[doc = "Unsigned rounding shift right"]
60265#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrq_n_u16)"]
60266#[inline]
60267#[target_feature(enable = "neon")]
60268#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60269#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
60270#[cfg_attr(
60271    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60272    assert_instr(urshr, N = 2)
60273)]
60274#[rustc_legacy_const_generics(1)]
60275#[cfg_attr(
60276    not(target_arch = "arm"),
60277    stable(feature = "neon_intrinsics", since = "1.59.0")
60278)]
60279#[cfg_attr(
60280    target_arch = "arm",
60281    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60282)]
60283pub fn vrshrq_n_u16<const N: i32>(a: uint16x8_t) -> uint16x8_t {
60284    static_assert!(N >= 1 && N <= 16);
60285    vrshlq_u16(a, vdupq_n_s16(-N as _))
60286}
60287#[doc = "Unsigned rounding shift right"]
60288#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshr_n_u32)"]
60289#[inline]
60290#[target_feature(enable = "neon")]
60291#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60292#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
60293#[cfg_attr(
60294    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60295    assert_instr(urshr, N = 2)
60296)]
60297#[rustc_legacy_const_generics(1)]
60298#[cfg_attr(
60299    not(target_arch = "arm"),
60300    stable(feature = "neon_intrinsics", since = "1.59.0")
60301)]
60302#[cfg_attr(
60303    target_arch = "arm",
60304    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60305)]
60306pub fn vrshr_n_u32<const N: i32>(a: uint32x2_t) -> uint32x2_t {
60307    static_assert!(N >= 1 && N <= 32);
60308    vrshl_u32(a, vdup_n_s32(-N as _))
60309}
60310#[doc = "Unsigned rounding shift right"]
60311#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrq_n_u32)"]
60312#[inline]
60313#[target_feature(enable = "neon")]
60314#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60315#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
60316#[cfg_attr(
60317    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60318    assert_instr(urshr, N = 2)
60319)]
60320#[rustc_legacy_const_generics(1)]
60321#[cfg_attr(
60322    not(target_arch = "arm"),
60323    stable(feature = "neon_intrinsics", since = "1.59.0")
60324)]
60325#[cfg_attr(
60326    target_arch = "arm",
60327    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60328)]
60329pub fn vrshrq_n_u32<const N: i32>(a: uint32x4_t) -> uint32x4_t {
60330    static_assert!(N >= 1 && N <= 32);
60331    vrshlq_u32(a, vdupq_n_s32(-N as _))
60332}
60333#[doc = "Unsigned rounding shift right"]
60334#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshr_n_u64)"]
60335#[inline]
60336#[target_feature(enable = "neon")]
60337#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60338#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
60339#[cfg_attr(
60340    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60341    assert_instr(urshr, N = 2)
60342)]
60343#[rustc_legacy_const_generics(1)]
60344#[cfg_attr(
60345    not(target_arch = "arm"),
60346    stable(feature = "neon_intrinsics", since = "1.59.0")
60347)]
60348#[cfg_attr(
60349    target_arch = "arm",
60350    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60351)]
60352pub fn vrshr_n_u64<const N: i32>(a: uint64x1_t) -> uint64x1_t {
60353    static_assert!(N >= 1 && N <= 64);
60354    vrshl_u64(a, vdup_n_s64(-N as _))
60355}
60356#[doc = "Unsigned rounding shift right"]
60357#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrq_n_u64)"]
60358#[inline]
60359#[target_feature(enable = "neon")]
60360#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60361#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
60362#[cfg_attr(
60363    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60364    assert_instr(urshr, N = 2)
60365)]
60366#[rustc_legacy_const_generics(1)]
60367#[cfg_attr(
60368    not(target_arch = "arm"),
60369    stable(feature = "neon_intrinsics", since = "1.59.0")
60370)]
60371#[cfg_attr(
60372    target_arch = "arm",
60373    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60374)]
60375pub fn vrshrq_n_u64<const N: i32>(a: uint64x2_t) -> uint64x2_t {
60376    static_assert!(N >= 1 && N <= 64);
60377    vrshlq_u64(a, vdupq_n_s64(-N as _))
60378}
60379#[doc = "Rounding shift right narrow"]
60380#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrn_n_s16)"]
60381#[inline]
60382#[cfg(target_arch = "arm")]
60383#[target_feature(enable = "neon,v7")]
60384#[cfg_attr(test, assert_instr(vrshrn, N = 2))]
60385#[rustc_legacy_const_generics(1)]
60386#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
60387pub fn vrshrn_n_s16<const N: i32>(a: int16x8_t) -> int8x8_t {
60388    static_assert!(N >= 1 && N <= 8);
60389    unsafe extern "unadjusted" {
60390        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftn.v8i8")]
60391        fn _vrshrn_n_s16(a: int16x8_t, n: int16x8_t) -> int8x8_t;
60392    }
60393    unsafe { _vrshrn_n_s16(a, const { int16x8_t([-N as i16; 8]) }) }
60394}
60395#[doc = "Rounding shift right narrow"]
60396#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrn_n_s32)"]
60397#[inline]
60398#[cfg(target_arch = "arm")]
60399#[target_feature(enable = "neon,v7")]
60400#[cfg_attr(test, assert_instr(vrshrn, N = 2))]
60401#[rustc_legacy_const_generics(1)]
60402#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
60403pub fn vrshrn_n_s32<const N: i32>(a: int32x4_t) -> int16x4_t {
60404    static_assert!(N >= 1 && N <= 16);
60405    unsafe extern "unadjusted" {
60406        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftn.v4i16")]
60407        fn _vrshrn_n_s32(a: int32x4_t, n: int32x4_t) -> int16x4_t;
60408    }
60409    unsafe { _vrshrn_n_s32(a, const { int32x4_t([-N; 4]) }) }
60410}
60411#[doc = "Rounding shift right narrow"]
60412#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrn_n_s64)"]
60413#[inline]
60414#[cfg(target_arch = "arm")]
60415#[target_feature(enable = "neon,v7")]
60416#[cfg_attr(test, assert_instr(vrshrn, N = 2))]
60417#[rustc_legacy_const_generics(1)]
60418#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
60419pub fn vrshrn_n_s64<const N: i32>(a: int64x2_t) -> int32x2_t {
60420    static_assert!(N >= 1 && N <= 32);
60421    unsafe extern "unadjusted" {
60422        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftn.v2i32")]
60423        fn _vrshrn_n_s64(a: int64x2_t, n: int64x2_t) -> int32x2_t;
60424    }
60425    unsafe { _vrshrn_n_s64(a, const { int64x2_t([-N as i64; 2]) }) }
60426}
60427#[doc = "Rounding shift right narrow"]
60428#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrn_n_s16)"]
60429#[inline]
60430#[target_feature(enable = "neon")]
60431#[cfg(not(target_arch = "arm"))]
60432#[cfg_attr(test, assert_instr(rshrn, N = 2))]
60433#[rustc_legacy_const_generics(1)]
60434#[stable(feature = "neon_intrinsics", since = "1.59.0")]
60435pub fn vrshrn_n_s16<const N: i32>(a: int16x8_t) -> int8x8_t {
60436    static_assert!(N >= 1 && N <= 8);
60437    unsafe extern "unadjusted" {
60438        #[cfg_attr(
60439            any(target_arch = "aarch64", target_arch = "arm64ec"),
60440            link_name = "llvm.aarch64.neon.rshrn.v8i8"
60441        )]
60442        fn _vrshrn_n_s16(a: int16x8_t, n: i32) -> int8x8_t;
60443    }
60444    unsafe { _vrshrn_n_s16(a, N) }
60445}
60446#[doc = "Rounding shift right narrow"]
60447#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrn_n_s32)"]
60448#[inline]
60449#[target_feature(enable = "neon")]
60450#[cfg(not(target_arch = "arm"))]
60451#[cfg_attr(test, assert_instr(rshrn, N = 2))]
60452#[rustc_legacy_const_generics(1)]
60453#[stable(feature = "neon_intrinsics", since = "1.59.0")]
60454pub fn vrshrn_n_s32<const N: i32>(a: int32x4_t) -> int16x4_t {
60455    static_assert!(N >= 1 && N <= 16);
60456    unsafe extern "unadjusted" {
60457        #[cfg_attr(
60458            any(target_arch = "aarch64", target_arch = "arm64ec"),
60459            link_name = "llvm.aarch64.neon.rshrn.v4i16"
60460        )]
60461        fn _vrshrn_n_s32(a: int32x4_t, n: i32) -> int16x4_t;
60462    }
60463    unsafe { _vrshrn_n_s32(a, N) }
60464}
60465#[doc = "Rounding shift right narrow"]
60466#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrn_n_s64)"]
60467#[inline]
60468#[target_feature(enable = "neon")]
60469#[cfg(not(target_arch = "arm"))]
60470#[cfg_attr(test, assert_instr(rshrn, N = 2))]
60471#[rustc_legacy_const_generics(1)]
60472#[stable(feature = "neon_intrinsics", since = "1.59.0")]
60473pub fn vrshrn_n_s64<const N: i32>(a: int64x2_t) -> int32x2_t {
60474    static_assert!(N >= 1 && N <= 32);
60475    unsafe extern "unadjusted" {
60476        #[cfg_attr(
60477            any(target_arch = "aarch64", target_arch = "arm64ec"),
60478            link_name = "llvm.aarch64.neon.rshrn.v2i32"
60479        )]
60480        fn _vrshrn_n_s64(a: int64x2_t, n: i32) -> int32x2_t;
60481    }
60482    unsafe { _vrshrn_n_s64(a, N) }
60483}
60484#[doc = "Rounding shift right narrow"]
60485#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrn_n_u16)"]
60486#[inline]
60487#[target_feature(enable = "neon")]
60488#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60489#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshrn, N = 2))]
60490#[cfg_attr(
60491    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60492    assert_instr(rshrn, N = 2)
60493)]
60494#[rustc_legacy_const_generics(1)]
60495#[cfg_attr(
60496    not(target_arch = "arm"),
60497    stable(feature = "neon_intrinsics", since = "1.59.0")
60498)]
60499#[cfg_attr(
60500    target_arch = "arm",
60501    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60502)]
60503pub fn vrshrn_n_u16<const N: i32>(a: uint16x8_t) -> uint8x8_t {
60504    static_assert!(N >= 1 && N <= 8);
60505    unsafe { transmute(vrshrn_n_s16::<N>(transmute(a))) }
60506}
60507#[doc = "Rounding shift right narrow"]
60508#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrn_n_u32)"]
60509#[inline]
60510#[target_feature(enable = "neon")]
60511#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60512#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshrn, N = 2))]
60513#[cfg_attr(
60514    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60515    assert_instr(rshrn, N = 2)
60516)]
60517#[rustc_legacy_const_generics(1)]
60518#[cfg_attr(
60519    not(target_arch = "arm"),
60520    stable(feature = "neon_intrinsics", since = "1.59.0")
60521)]
60522#[cfg_attr(
60523    target_arch = "arm",
60524    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60525)]
60526pub fn vrshrn_n_u32<const N: i32>(a: uint32x4_t) -> uint16x4_t {
60527    static_assert!(N >= 1 && N <= 16);
60528    unsafe { transmute(vrshrn_n_s32::<N>(transmute(a))) }
60529}
60530#[doc = "Rounding shift right narrow"]
60531#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrn_n_u64)"]
60532#[inline]
60533#[target_feature(enable = "neon")]
60534#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60535#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshrn, N = 2))]
60536#[cfg_attr(
60537    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60538    assert_instr(rshrn, N = 2)
60539)]
60540#[rustc_legacy_const_generics(1)]
60541#[cfg_attr(
60542    not(target_arch = "arm"),
60543    stable(feature = "neon_intrinsics", since = "1.59.0")
60544)]
60545#[cfg_attr(
60546    target_arch = "arm",
60547    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60548)]
60549pub fn vrshrn_n_u64<const N: i32>(a: uint64x2_t) -> uint32x2_t {
60550    static_assert!(N >= 1 && N <= 32);
60551    unsafe { transmute(vrshrn_n_s64::<N>(transmute(a))) }
60552}
60553#[doc = "Reciprocal square-root estimate."]
60554#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsqrte_f16)"]
60555#[inline]
60556#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
60557#[target_feature(enable = "neon,fp16")]
60558#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsqrte))]
60559#[cfg_attr(
60560    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60561    assert_instr(frsqrte)
60562)]
60563#[cfg_attr(
60564    not(target_arch = "arm"),
60565    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
60566)]
60567#[cfg_attr(
60568    target_arch = "arm",
60569    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60570)]
60571#[cfg(not(target_arch = "arm64ec"))]
60572pub fn vrsqrte_f16(a: float16x4_t) -> float16x4_t {
60573    unsafe extern "unadjusted" {
60574        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsqrte.v4f16")]
60575        #[cfg_attr(
60576            any(target_arch = "aarch64", target_arch = "arm64ec"),
60577            link_name = "llvm.aarch64.neon.frsqrte.v4f16"
60578        )]
60579        fn _vrsqrte_f16(a: float16x4_t) -> float16x4_t;
60580    }
60581    unsafe { _vrsqrte_f16(a) }
60582}
60583#[doc = "Reciprocal square-root estimate."]
60584#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsqrteq_f16)"]
60585#[inline]
60586#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
60587#[target_feature(enable = "neon,fp16")]
60588#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsqrte))]
60589#[cfg_attr(
60590    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60591    assert_instr(frsqrte)
60592)]
60593#[cfg_attr(
60594    not(target_arch = "arm"),
60595    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
60596)]
60597#[cfg_attr(
60598    target_arch = "arm",
60599    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60600)]
60601#[cfg(not(target_arch = "arm64ec"))]
60602pub fn vrsqrteq_f16(a: float16x8_t) -> float16x8_t {
60603    unsafe extern "unadjusted" {
60604        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsqrte.v8f16")]
60605        #[cfg_attr(
60606            any(target_arch = "aarch64", target_arch = "arm64ec"),
60607            link_name = "llvm.aarch64.neon.frsqrte.v8f16"
60608        )]
60609        fn _vrsqrteq_f16(a: float16x8_t) -> float16x8_t;
60610    }
60611    unsafe { _vrsqrteq_f16(a) }
60612}
60613#[doc = "Reciprocal square-root estimate."]
60614#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsqrte_f32)"]
60615#[inline]
60616#[target_feature(enable = "neon")]
60617#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60618#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsqrte))]
60619#[cfg_attr(
60620    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60621    assert_instr(frsqrte)
60622)]
60623#[cfg_attr(
60624    not(target_arch = "arm"),
60625    stable(feature = "neon_intrinsics", since = "1.59.0")
60626)]
60627#[cfg_attr(
60628    target_arch = "arm",
60629    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60630)]
60631pub fn vrsqrte_f32(a: float32x2_t) -> float32x2_t {
60632    unsafe extern "unadjusted" {
60633        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsqrte.v2f32")]
60634        #[cfg_attr(
60635            any(target_arch = "aarch64", target_arch = "arm64ec"),
60636            link_name = "llvm.aarch64.neon.frsqrte.v2f32"
60637        )]
60638        fn _vrsqrte_f32(a: float32x2_t) -> float32x2_t;
60639    }
60640    unsafe { _vrsqrte_f32(a) }
60641}
60642#[doc = "Reciprocal square-root estimate."]
60643#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsqrteq_f32)"]
60644#[inline]
60645#[target_feature(enable = "neon")]
60646#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60647#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsqrte))]
60648#[cfg_attr(
60649    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60650    assert_instr(frsqrte)
60651)]
60652#[cfg_attr(
60653    not(target_arch = "arm"),
60654    stable(feature = "neon_intrinsics", since = "1.59.0")
60655)]
60656#[cfg_attr(
60657    target_arch = "arm",
60658    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60659)]
60660pub fn vrsqrteq_f32(a: float32x4_t) -> float32x4_t {
60661    unsafe extern "unadjusted" {
60662        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsqrte.v4f32")]
60663        #[cfg_attr(
60664            any(target_arch = "aarch64", target_arch = "arm64ec"),
60665            link_name = "llvm.aarch64.neon.frsqrte.v4f32"
60666        )]
60667        fn _vrsqrteq_f32(a: float32x4_t) -> float32x4_t;
60668    }
60669    unsafe { _vrsqrteq_f32(a) }
60670}
60671#[doc = "Unsigned reciprocal square root estimate"]
60672#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsqrte_u32)"]
60673#[inline]
60674#[target_feature(enable = "neon")]
60675#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60676#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsqrte))]
60677#[cfg_attr(
60678    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60679    assert_instr(ursqrte)
60680)]
60681#[cfg_attr(
60682    not(target_arch = "arm"),
60683    stable(feature = "neon_intrinsics", since = "1.59.0")
60684)]
60685#[cfg_attr(
60686    target_arch = "arm",
60687    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60688)]
60689pub fn vrsqrte_u32(a: uint32x2_t) -> uint32x2_t {
60690    unsafe extern "unadjusted" {
60691        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsqrte.v2i32")]
60692        #[cfg_attr(
60693            any(target_arch = "aarch64", target_arch = "arm64ec"),
60694            link_name = "llvm.aarch64.neon.ursqrte.v2i32"
60695        )]
60696        fn _vrsqrte_u32(a: uint32x2_t) -> uint32x2_t;
60697    }
60698    unsafe { _vrsqrte_u32(a) }
60699}
60700#[doc = "Unsigned reciprocal square root estimate"]
60701#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsqrteq_u32)"]
60702#[inline]
60703#[target_feature(enable = "neon")]
60704#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60705#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsqrte))]
60706#[cfg_attr(
60707    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60708    assert_instr(ursqrte)
60709)]
60710#[cfg_attr(
60711    not(target_arch = "arm"),
60712    stable(feature = "neon_intrinsics", since = "1.59.0")
60713)]
60714#[cfg_attr(
60715    target_arch = "arm",
60716    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60717)]
60718pub fn vrsqrteq_u32(a: uint32x4_t) -> uint32x4_t {
60719    unsafe extern "unadjusted" {
60720        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsqrte.v4i32")]
60721        #[cfg_attr(
60722            any(target_arch = "aarch64", target_arch = "arm64ec"),
60723            link_name = "llvm.aarch64.neon.ursqrte.v4i32"
60724        )]
60725        fn _vrsqrteq_u32(a: uint32x4_t) -> uint32x4_t;
60726    }
60727    unsafe { _vrsqrteq_u32(a) }
60728}
60729#[doc = "Floating-point reciprocal square root step"]
60730#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsqrts_f16)"]
60731#[inline]
60732#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
60733#[target_feature(enable = "neon,fp16")]
60734#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsqrts))]
60735#[cfg_attr(
60736    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60737    assert_instr(frsqrts)
60738)]
60739#[cfg_attr(
60740    not(target_arch = "arm"),
60741    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
60742)]
60743#[cfg_attr(
60744    target_arch = "arm",
60745    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60746)]
60747#[cfg(not(target_arch = "arm64ec"))]
60748pub fn vrsqrts_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t {
60749    unsafe extern "unadjusted" {
60750        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsqrts.v4f16")]
60751        #[cfg_attr(
60752            any(target_arch = "aarch64", target_arch = "arm64ec"),
60753            link_name = "llvm.aarch64.neon.frsqrts.v4f16"
60754        )]
60755        fn _vrsqrts_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t;
60756    }
60757    unsafe { _vrsqrts_f16(a, b) }
60758}
60759#[doc = "Floating-point reciprocal square root step"]
60760#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsqrtsq_f16)"]
60761#[inline]
60762#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
60763#[target_feature(enable = "neon,fp16")]
60764#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsqrts))]
60765#[cfg_attr(
60766    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60767    assert_instr(frsqrts)
60768)]
60769#[cfg_attr(
60770    not(target_arch = "arm"),
60771    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
60772)]
60773#[cfg_attr(
60774    target_arch = "arm",
60775    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60776)]
60777#[cfg(not(target_arch = "arm64ec"))]
60778pub fn vrsqrtsq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t {
60779    unsafe extern "unadjusted" {
60780        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsqrts.v8f16")]
60781        #[cfg_attr(
60782            any(target_arch = "aarch64", target_arch = "arm64ec"),
60783            link_name = "llvm.aarch64.neon.frsqrts.v8f16"
60784        )]
60785        fn _vrsqrtsq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t;
60786    }
60787    unsafe { _vrsqrtsq_f16(a, b) }
60788}
60789#[doc = "Floating-point reciprocal square root step"]
60790#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsqrts_f32)"]
60791#[inline]
60792#[target_feature(enable = "neon")]
60793#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60794#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsqrts))]
60795#[cfg_attr(
60796    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60797    assert_instr(frsqrts)
60798)]
60799#[cfg_attr(
60800    not(target_arch = "arm"),
60801    stable(feature = "neon_intrinsics", since = "1.59.0")
60802)]
60803#[cfg_attr(
60804    target_arch = "arm",
60805    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60806)]
60807pub fn vrsqrts_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
60808    unsafe extern "unadjusted" {
60809        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsqrts.v2f32")]
60810        #[cfg_attr(
60811            any(target_arch = "aarch64", target_arch = "arm64ec"),
60812            link_name = "llvm.aarch64.neon.frsqrts.v2f32"
60813        )]
60814        fn _vrsqrts_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t;
60815    }
60816    unsafe { _vrsqrts_f32(a, b) }
60817}
60818#[doc = "Floating-point reciprocal square root step"]
60819#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsqrtsq_f32)"]
60820#[inline]
60821#[target_feature(enable = "neon")]
60822#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60823#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsqrts))]
60824#[cfg_attr(
60825    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60826    assert_instr(frsqrts)
60827)]
60828#[cfg_attr(
60829    not(target_arch = "arm"),
60830    stable(feature = "neon_intrinsics", since = "1.59.0")
60831)]
60832#[cfg_attr(
60833    target_arch = "arm",
60834    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60835)]
60836pub fn vrsqrtsq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t {
60837    unsafe extern "unadjusted" {
60838        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsqrts.v4f32")]
60839        #[cfg_attr(
60840            any(target_arch = "aarch64", target_arch = "arm64ec"),
60841            link_name = "llvm.aarch64.neon.frsqrts.v4f32"
60842        )]
60843        fn _vrsqrtsq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t;
60844    }
60845    unsafe { _vrsqrtsq_f32(a, b) }
60846}
60847#[doc = "Signed rounding shift right and accumulate"]
60848#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsra_n_s8)"]
60849#[inline]
60850#[target_feature(enable = "neon")]
60851#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60852#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
60853#[cfg_attr(
60854    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60855    assert_instr(srsra, N = 2)
60856)]
60857#[rustc_legacy_const_generics(2)]
60858#[cfg_attr(
60859    not(target_arch = "arm"),
60860    stable(feature = "neon_intrinsics", since = "1.59.0")
60861)]
60862#[cfg_attr(
60863    target_arch = "arm",
60864    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60865)]
60866pub fn vrsra_n_s8<const N: i32>(a: int8x8_t, b: int8x8_t) -> int8x8_t {
60867    static_assert!(N >= 1 && N <= 8);
60868    unsafe { simd_add(a, vrshr_n_s8::<N>(b)) }
60869}
60870#[doc = "Signed rounding shift right and accumulate"]
60871#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsraq_n_s8)"]
60872#[inline]
60873#[target_feature(enable = "neon")]
60874#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60875#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
60876#[cfg_attr(
60877    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60878    assert_instr(srsra, N = 2)
60879)]
60880#[rustc_legacy_const_generics(2)]
60881#[cfg_attr(
60882    not(target_arch = "arm"),
60883    stable(feature = "neon_intrinsics", since = "1.59.0")
60884)]
60885#[cfg_attr(
60886    target_arch = "arm",
60887    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60888)]
60889pub fn vrsraq_n_s8<const N: i32>(a: int8x16_t, b: int8x16_t) -> int8x16_t {
60890    static_assert!(N >= 1 && N <= 8);
60891    unsafe { simd_add(a, vrshrq_n_s8::<N>(b)) }
60892}
60893#[doc = "Signed rounding shift right and accumulate"]
60894#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsra_n_s16)"]
60895#[inline]
60896#[target_feature(enable = "neon")]
60897#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60898#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
60899#[cfg_attr(
60900    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60901    assert_instr(srsra, N = 2)
60902)]
60903#[rustc_legacy_const_generics(2)]
60904#[cfg_attr(
60905    not(target_arch = "arm"),
60906    stable(feature = "neon_intrinsics", since = "1.59.0")
60907)]
60908#[cfg_attr(
60909    target_arch = "arm",
60910    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60911)]
60912pub fn vrsra_n_s16<const N: i32>(a: int16x4_t, b: int16x4_t) -> int16x4_t {
60913    static_assert!(N >= 1 && N <= 16);
60914    unsafe { simd_add(a, vrshr_n_s16::<N>(b)) }
60915}
60916#[doc = "Signed rounding shift right and accumulate"]
60917#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsraq_n_s16)"]
60918#[inline]
60919#[target_feature(enable = "neon")]
60920#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60921#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
60922#[cfg_attr(
60923    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60924    assert_instr(srsra, N = 2)
60925)]
60926#[rustc_legacy_const_generics(2)]
60927#[cfg_attr(
60928    not(target_arch = "arm"),
60929    stable(feature = "neon_intrinsics", since = "1.59.0")
60930)]
60931#[cfg_attr(
60932    target_arch = "arm",
60933    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60934)]
60935pub fn vrsraq_n_s16<const N: i32>(a: int16x8_t, b: int16x8_t) -> int16x8_t {
60936    static_assert!(N >= 1 && N <= 16);
60937    unsafe { simd_add(a, vrshrq_n_s16::<N>(b)) }
60938}
60939#[doc = "Signed rounding shift right and accumulate"]
60940#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsra_n_s32)"]
60941#[inline]
60942#[target_feature(enable = "neon")]
60943#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60944#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
60945#[cfg_attr(
60946    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60947    assert_instr(srsra, N = 2)
60948)]
60949#[rustc_legacy_const_generics(2)]
60950#[cfg_attr(
60951    not(target_arch = "arm"),
60952    stable(feature = "neon_intrinsics", since = "1.59.0")
60953)]
60954#[cfg_attr(
60955    target_arch = "arm",
60956    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60957)]
60958pub fn vrsra_n_s32<const N: i32>(a: int32x2_t, b: int32x2_t) -> int32x2_t {
60959    static_assert!(N >= 1 && N <= 32);
60960    unsafe { simd_add(a, vrshr_n_s32::<N>(b)) }
60961}
60962#[doc = "Signed rounding shift right and accumulate"]
60963#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsraq_n_s32)"]
60964#[inline]
60965#[target_feature(enable = "neon")]
60966#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60967#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
60968#[cfg_attr(
60969    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60970    assert_instr(srsra, N = 2)
60971)]
60972#[rustc_legacy_const_generics(2)]
60973#[cfg_attr(
60974    not(target_arch = "arm"),
60975    stable(feature = "neon_intrinsics", since = "1.59.0")
60976)]
60977#[cfg_attr(
60978    target_arch = "arm",
60979    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60980)]
60981pub fn vrsraq_n_s32<const N: i32>(a: int32x4_t, b: int32x4_t) -> int32x4_t {
60982    static_assert!(N >= 1 && N <= 32);
60983    unsafe { simd_add(a, vrshrq_n_s32::<N>(b)) }
60984}
60985#[doc = "Signed rounding shift right and accumulate"]
60986#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsra_n_s64)"]
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(vrsra, N = 2))]
60991#[cfg_attr(
60992    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60993    assert_instr(srsra, N = 2)
60994)]
60995#[rustc_legacy_const_generics(2)]
60996#[cfg_attr(
60997    not(target_arch = "arm"),
60998    stable(feature = "neon_intrinsics", since = "1.59.0")
60999)]
61000#[cfg_attr(
61001    target_arch = "arm",
61002    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61003)]
61004pub fn vrsra_n_s64<const N: i32>(a: int64x1_t, b: int64x1_t) -> int64x1_t {
61005    static_assert!(N >= 1 && N <= 64);
61006    unsafe { simd_add(a, vrshr_n_s64::<N>(b)) }
61007}
61008#[doc = "Signed rounding shift right and accumulate"]
61009#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsraq_n_s64)"]
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(vrsra, N = 2))]
61014#[cfg_attr(
61015    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61016    assert_instr(srsra, N = 2)
61017)]
61018#[rustc_legacy_const_generics(2)]
61019#[cfg_attr(
61020    not(target_arch = "arm"),
61021    stable(feature = "neon_intrinsics", since = "1.59.0")
61022)]
61023#[cfg_attr(
61024    target_arch = "arm",
61025    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61026)]
61027pub fn vrsraq_n_s64<const N: i32>(a: int64x2_t, b: int64x2_t) -> int64x2_t {
61028    static_assert!(N >= 1 && N <= 64);
61029    unsafe { simd_add(a, vrshrq_n_s64::<N>(b)) }
61030}
61031#[doc = "Unsigned rounding shift right and accumulate"]
61032#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsra_n_u8)"]
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(vrsra, N = 2))]
61037#[cfg_attr(
61038    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61039    assert_instr(ursra, N = 2)
61040)]
61041#[rustc_legacy_const_generics(2)]
61042#[cfg_attr(
61043    not(target_arch = "arm"),
61044    stable(feature = "neon_intrinsics", since = "1.59.0")
61045)]
61046#[cfg_attr(
61047    target_arch = "arm",
61048    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61049)]
61050pub fn vrsra_n_u8<const N: i32>(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
61051    static_assert!(N >= 1 && N <= 8);
61052    unsafe { simd_add(a, vrshr_n_u8::<N>(b)) }
61053}
61054#[doc = "Unsigned rounding shift right and accumulate"]
61055#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsraq_n_u8)"]
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(vrsra, N = 2))]
61060#[cfg_attr(
61061    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61062    assert_instr(ursra, N = 2)
61063)]
61064#[rustc_legacy_const_generics(2)]
61065#[cfg_attr(
61066    not(target_arch = "arm"),
61067    stable(feature = "neon_intrinsics", since = "1.59.0")
61068)]
61069#[cfg_attr(
61070    target_arch = "arm",
61071    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61072)]
61073pub fn vrsraq_n_u8<const N: i32>(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
61074    static_assert!(N >= 1 && N <= 8);
61075    unsafe { simd_add(a, vrshrq_n_u8::<N>(b)) }
61076}
61077#[doc = "Unsigned rounding shift right and accumulate"]
61078#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsra_n_u16)"]
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(vrsra, N = 2))]
61083#[cfg_attr(
61084    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61085    assert_instr(ursra, N = 2)
61086)]
61087#[rustc_legacy_const_generics(2)]
61088#[cfg_attr(
61089    not(target_arch = "arm"),
61090    stable(feature = "neon_intrinsics", since = "1.59.0")
61091)]
61092#[cfg_attr(
61093    target_arch = "arm",
61094    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61095)]
61096pub fn vrsra_n_u16<const N: i32>(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
61097    static_assert!(N >= 1 && N <= 16);
61098    unsafe { simd_add(a, vrshr_n_u16::<N>(b)) }
61099}
61100#[doc = "Unsigned rounding shift right and accumulate"]
61101#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsraq_n_u16)"]
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(vrsra, N = 2))]
61106#[cfg_attr(
61107    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61108    assert_instr(ursra, N = 2)
61109)]
61110#[rustc_legacy_const_generics(2)]
61111#[cfg_attr(
61112    not(target_arch = "arm"),
61113    stable(feature = "neon_intrinsics", since = "1.59.0")
61114)]
61115#[cfg_attr(
61116    target_arch = "arm",
61117    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61118)]
61119pub fn vrsraq_n_u16<const N: i32>(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
61120    static_assert!(N >= 1 && N <= 16);
61121    unsafe { simd_add(a, vrshrq_n_u16::<N>(b)) }
61122}
61123#[doc = "Unsigned rounding shift right and accumulate"]
61124#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsra_n_u32)"]
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(vrsra, N = 2))]
61129#[cfg_attr(
61130    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61131    assert_instr(ursra, N = 2)
61132)]
61133#[rustc_legacy_const_generics(2)]
61134#[cfg_attr(
61135    not(target_arch = "arm"),
61136    stable(feature = "neon_intrinsics", since = "1.59.0")
61137)]
61138#[cfg_attr(
61139    target_arch = "arm",
61140    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61141)]
61142pub fn vrsra_n_u32<const N: i32>(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
61143    static_assert!(N >= 1 && N <= 32);
61144    unsafe { simd_add(a, vrshr_n_u32::<N>(b)) }
61145}
61146#[doc = "Unsigned rounding shift right and accumulate"]
61147#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsraq_n_u32)"]
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(vrsra, N = 2))]
61152#[cfg_attr(
61153    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61154    assert_instr(ursra, N = 2)
61155)]
61156#[rustc_legacy_const_generics(2)]
61157#[cfg_attr(
61158    not(target_arch = "arm"),
61159    stable(feature = "neon_intrinsics", since = "1.59.0")
61160)]
61161#[cfg_attr(
61162    target_arch = "arm",
61163    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61164)]
61165pub fn vrsraq_n_u32<const N: i32>(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
61166    static_assert!(N >= 1 && N <= 32);
61167    unsafe { simd_add(a, vrshrq_n_u32::<N>(b)) }
61168}
61169#[doc = "Unsigned rounding shift right and accumulate"]
61170#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsra_n_u64)"]
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(vrsra, N = 2))]
61175#[cfg_attr(
61176    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61177    assert_instr(ursra, N = 2)
61178)]
61179#[rustc_legacy_const_generics(2)]
61180#[cfg_attr(
61181    not(target_arch = "arm"),
61182    stable(feature = "neon_intrinsics", since = "1.59.0")
61183)]
61184#[cfg_attr(
61185    target_arch = "arm",
61186    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61187)]
61188pub fn vrsra_n_u64<const N: i32>(a: uint64x1_t, b: uint64x1_t) -> uint64x1_t {
61189    static_assert!(N >= 1 && N <= 64);
61190    unsafe { simd_add(a, vrshr_n_u64::<N>(b)) }
61191}
61192#[doc = "Unsigned rounding shift right and accumulate"]
61193#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsraq_n_u64)"]
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(vrsra, N = 2))]
61198#[cfg_attr(
61199    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61200    assert_instr(ursra, N = 2)
61201)]
61202#[rustc_legacy_const_generics(2)]
61203#[cfg_attr(
61204    not(target_arch = "arm"),
61205    stable(feature = "neon_intrinsics", since = "1.59.0")
61206)]
61207#[cfg_attr(
61208    target_arch = "arm",
61209    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61210)]
61211pub fn vrsraq_n_u64<const N: i32>(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
61212    static_assert!(N >= 1 && N <= 64);
61213    unsafe { simd_add(a, vrshrq_n_u64::<N>(b)) }
61214}
61215#[doc = "Rounding subtract returning high narrow"]
61216#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsubhn_s16)"]
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(vrsubhn))]
61221#[cfg_attr(
61222    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61223    assert_instr(rsubhn)
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 fn vrsubhn_s16(a: int16x8_t, b: int16x8_t) -> int8x8_t {
61234    unsafe extern "unadjusted" {
61235        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsubhn.v8i8")]
61236        #[cfg_attr(
61237            any(target_arch = "aarch64", target_arch = "arm64ec"),
61238            link_name = "llvm.aarch64.neon.rsubhn.v8i8"
61239        )]
61240        fn _vrsubhn_s16(a: int16x8_t, b: int16x8_t) -> int8x8_t;
61241    }
61242    unsafe { _vrsubhn_s16(a, b) }
61243}
61244#[doc = "Rounding subtract returning high narrow"]
61245#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsubhn_s32)"]
61246#[inline]
61247#[target_feature(enable = "neon")]
61248#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61249#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsubhn))]
61250#[cfg_attr(
61251    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61252    assert_instr(rsubhn)
61253)]
61254#[cfg_attr(
61255    not(target_arch = "arm"),
61256    stable(feature = "neon_intrinsics", since = "1.59.0")
61257)]
61258#[cfg_attr(
61259    target_arch = "arm",
61260    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61261)]
61262pub fn vrsubhn_s32(a: int32x4_t, b: int32x4_t) -> int16x4_t {
61263    unsafe extern "unadjusted" {
61264        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsubhn.v4i16")]
61265        #[cfg_attr(
61266            any(target_arch = "aarch64", target_arch = "arm64ec"),
61267            link_name = "llvm.aarch64.neon.rsubhn.v4i16"
61268        )]
61269        fn _vrsubhn_s32(a: int32x4_t, b: int32x4_t) -> int16x4_t;
61270    }
61271    unsafe { _vrsubhn_s32(a, b) }
61272}
61273#[doc = "Rounding subtract returning high narrow"]
61274#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsubhn_s64)"]
61275#[inline]
61276#[target_feature(enable = "neon")]
61277#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61278#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsubhn))]
61279#[cfg_attr(
61280    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61281    assert_instr(rsubhn)
61282)]
61283#[cfg_attr(
61284    not(target_arch = "arm"),
61285    stable(feature = "neon_intrinsics", since = "1.59.0")
61286)]
61287#[cfg_attr(
61288    target_arch = "arm",
61289    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61290)]
61291pub fn vrsubhn_s64(a: int64x2_t, b: int64x2_t) -> int32x2_t {
61292    unsafe extern "unadjusted" {
61293        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsubhn.v2i32")]
61294        #[cfg_attr(
61295            any(target_arch = "aarch64", target_arch = "arm64ec"),
61296            link_name = "llvm.aarch64.neon.rsubhn.v2i32"
61297        )]
61298        fn _vrsubhn_s64(a: int64x2_t, b: int64x2_t) -> int32x2_t;
61299    }
61300    unsafe { _vrsubhn_s64(a, b) }
61301}
61302#[doc = "Rounding subtract returning high narrow"]
61303#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsubhn_u16)"]
61304#[inline]
61305#[cfg(target_endian = "little")]
61306#[target_feature(enable = "neon")]
61307#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61308#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsubhn))]
61309#[cfg_attr(
61310    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61311    assert_instr(rsubhn)
61312)]
61313#[cfg_attr(
61314    not(target_arch = "arm"),
61315    stable(feature = "neon_intrinsics", since = "1.59.0")
61316)]
61317#[cfg_attr(
61318    target_arch = "arm",
61319    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61320)]
61321pub fn vrsubhn_u16(a: uint16x8_t, b: uint16x8_t) -> uint8x8_t {
61322    unsafe { transmute(vrsubhn_s16(transmute(a), transmute(b))) }
61323}
61324#[doc = "Rounding subtract returning high narrow"]
61325#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsubhn_u16)"]
61326#[inline]
61327#[cfg(target_endian = "big")]
61328#[target_feature(enable = "neon")]
61329#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61330#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsubhn))]
61331#[cfg_attr(
61332    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61333    assert_instr(rsubhn)
61334)]
61335#[cfg_attr(
61336    not(target_arch = "arm"),
61337    stable(feature = "neon_intrinsics", since = "1.59.0")
61338)]
61339#[cfg_attr(
61340    target_arch = "arm",
61341    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61342)]
61343pub fn vrsubhn_u16(a: uint16x8_t, b: uint16x8_t) -> uint8x8_t {
61344    let a: uint16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
61345    let b: uint16x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
61346    unsafe {
61347        let ret_val: uint8x8_t = transmute(vrsubhn_s16(transmute(a), transmute(b)));
61348        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
61349    }
61350}
61351#[doc = "Rounding subtract returning high narrow"]
61352#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsubhn_u32)"]
61353#[inline]
61354#[cfg(target_endian = "little")]
61355#[target_feature(enable = "neon")]
61356#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61357#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsubhn))]
61358#[cfg_attr(
61359    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61360    assert_instr(rsubhn)
61361)]
61362#[cfg_attr(
61363    not(target_arch = "arm"),
61364    stable(feature = "neon_intrinsics", since = "1.59.0")
61365)]
61366#[cfg_attr(
61367    target_arch = "arm",
61368    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61369)]
61370pub fn vrsubhn_u32(a: uint32x4_t, b: uint32x4_t) -> uint16x4_t {
61371    unsafe { transmute(vrsubhn_s32(transmute(a), transmute(b))) }
61372}
61373#[doc = "Rounding subtract returning high narrow"]
61374#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsubhn_u32)"]
61375#[inline]
61376#[cfg(target_endian = "big")]
61377#[target_feature(enable = "neon")]
61378#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61379#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsubhn))]
61380#[cfg_attr(
61381    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61382    assert_instr(rsubhn)
61383)]
61384#[cfg_attr(
61385    not(target_arch = "arm"),
61386    stable(feature = "neon_intrinsics", since = "1.59.0")
61387)]
61388#[cfg_attr(
61389    target_arch = "arm",
61390    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61391)]
61392pub fn vrsubhn_u32(a: uint32x4_t, b: uint32x4_t) -> uint16x4_t {
61393    let a: uint32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
61394    let b: uint32x4_t = unsafe { simd_shuffle!(b, b, [3, 2, 1, 0]) };
61395    unsafe {
61396        let ret_val: uint16x4_t = transmute(vrsubhn_s32(transmute(a), transmute(b)));
61397        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
61398    }
61399}
61400#[doc = "Rounding subtract returning high narrow"]
61401#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsubhn_u64)"]
61402#[inline]
61403#[cfg(target_endian = "little")]
61404#[target_feature(enable = "neon")]
61405#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61406#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsubhn))]
61407#[cfg_attr(
61408    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61409    assert_instr(rsubhn)
61410)]
61411#[cfg_attr(
61412    not(target_arch = "arm"),
61413    stable(feature = "neon_intrinsics", since = "1.59.0")
61414)]
61415#[cfg_attr(
61416    target_arch = "arm",
61417    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61418)]
61419pub fn vrsubhn_u64(a: uint64x2_t, b: uint64x2_t) -> uint32x2_t {
61420    unsafe { transmute(vrsubhn_s64(transmute(a), transmute(b))) }
61421}
61422#[doc = "Rounding subtract returning high narrow"]
61423#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsubhn_u64)"]
61424#[inline]
61425#[cfg(target_endian = "big")]
61426#[target_feature(enable = "neon")]
61427#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61428#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsubhn))]
61429#[cfg_attr(
61430    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61431    assert_instr(rsubhn)
61432)]
61433#[cfg_attr(
61434    not(target_arch = "arm"),
61435    stable(feature = "neon_intrinsics", since = "1.59.0")
61436)]
61437#[cfg_attr(
61438    target_arch = "arm",
61439    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61440)]
61441pub fn vrsubhn_u64(a: uint64x2_t, b: uint64x2_t) -> uint32x2_t {
61442    let a: uint64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
61443    let b: uint64x2_t = unsafe { simd_shuffle!(b, b, [1, 0]) };
61444    unsafe {
61445        let ret_val: uint32x2_t = transmute(vrsubhn_s64(transmute(a), transmute(b)));
61446        simd_shuffle!(ret_val, ret_val, [1, 0])
61447    }
61448}
61449#[doc = "Insert vector element from another vector element"]
61450#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_f16)"]
61451#[inline]
61452#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
61453#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
61454#[cfg_attr(
61455    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61456    assert_instr(nop, LANE = 0)
61457)]
61458#[rustc_legacy_const_generics(2)]
61459#[target_feature(enable = "neon,fp16")]
61460#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
61461#[cfg(not(target_arch = "arm64ec"))]
61462pub fn vset_lane_f16<const LANE: i32>(a: f16, b: float16x4_t) -> float16x4_t {
61463    static_assert_uimm_bits!(LANE, 2);
61464    unsafe { simd_insert!(b, LANE as u32, a) }
61465}
61466#[doc = "Insert vector element from another vector element"]
61467#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_f16)"]
61468#[inline]
61469#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
61470#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
61471#[cfg_attr(
61472    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61473    assert_instr(nop, LANE = 0)
61474)]
61475#[rustc_legacy_const_generics(2)]
61476#[target_feature(enable = "neon,fp16")]
61477#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
61478#[cfg(not(target_arch = "arm64ec"))]
61479pub fn vsetq_lane_f16<const LANE: i32>(a: f16, b: float16x8_t) -> float16x8_t {
61480    static_assert_uimm_bits!(LANE, 3);
61481    unsafe { simd_insert!(b, LANE as u32, a) }
61482}
61483#[doc = "Insert vector element from another vector element"]
61484#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_f32)"]
61485#[inline]
61486#[target_feature(enable = "neon")]
61487#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61488#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
61489#[cfg_attr(
61490    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61491    assert_instr(nop, LANE = 0)
61492)]
61493#[rustc_legacy_const_generics(2)]
61494#[cfg_attr(
61495    not(target_arch = "arm"),
61496    stable(feature = "neon_intrinsics", since = "1.59.0")
61497)]
61498#[cfg_attr(
61499    target_arch = "arm",
61500    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61501)]
61502pub fn vset_lane_f32<const LANE: i32>(a: f32, b: float32x2_t) -> float32x2_t {
61503    static_assert_uimm_bits!(LANE, 1);
61504    unsafe { simd_insert!(b, LANE as u32, a) }
61505}
61506#[doc = "Insert vector element from another vector element"]
61507#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_f32)"]
61508#[inline]
61509#[target_feature(enable = "neon")]
61510#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61511#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
61512#[cfg_attr(
61513    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61514    assert_instr(nop, LANE = 0)
61515)]
61516#[rustc_legacy_const_generics(2)]
61517#[cfg_attr(
61518    not(target_arch = "arm"),
61519    stable(feature = "neon_intrinsics", since = "1.59.0")
61520)]
61521#[cfg_attr(
61522    target_arch = "arm",
61523    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61524)]
61525pub fn vsetq_lane_f32<const LANE: i32>(a: f32, b: float32x4_t) -> float32x4_t {
61526    static_assert_uimm_bits!(LANE, 2);
61527    unsafe { simd_insert!(b, LANE as u32, a) }
61528}
61529#[doc = "Insert vector element from another vector element"]
61530#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_s8)"]
61531#[inline]
61532#[target_feature(enable = "neon")]
61533#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61534#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
61535#[cfg_attr(
61536    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61537    assert_instr(nop, LANE = 0)
61538)]
61539#[rustc_legacy_const_generics(2)]
61540#[cfg_attr(
61541    not(target_arch = "arm"),
61542    stable(feature = "neon_intrinsics", since = "1.59.0")
61543)]
61544#[cfg_attr(
61545    target_arch = "arm",
61546    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61547)]
61548pub fn vset_lane_s8<const LANE: i32>(a: i8, b: int8x8_t) -> int8x8_t {
61549    static_assert_uimm_bits!(LANE, 3);
61550    unsafe { simd_insert!(b, LANE as u32, a) }
61551}
61552#[doc = "Insert vector element from another vector element"]
61553#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_s8)"]
61554#[inline]
61555#[target_feature(enable = "neon")]
61556#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61557#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
61558#[cfg_attr(
61559    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61560    assert_instr(nop, LANE = 0)
61561)]
61562#[rustc_legacy_const_generics(2)]
61563#[cfg_attr(
61564    not(target_arch = "arm"),
61565    stable(feature = "neon_intrinsics", since = "1.59.0")
61566)]
61567#[cfg_attr(
61568    target_arch = "arm",
61569    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61570)]
61571pub fn vsetq_lane_s8<const LANE: i32>(a: i8, b: int8x16_t) -> int8x16_t {
61572    static_assert_uimm_bits!(LANE, 4);
61573    unsafe { simd_insert!(b, LANE as u32, a) }
61574}
61575#[doc = "Insert vector element from another vector element"]
61576#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_s16)"]
61577#[inline]
61578#[target_feature(enable = "neon")]
61579#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61580#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
61581#[cfg_attr(
61582    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61583    assert_instr(nop, LANE = 0)
61584)]
61585#[rustc_legacy_const_generics(2)]
61586#[cfg_attr(
61587    not(target_arch = "arm"),
61588    stable(feature = "neon_intrinsics", since = "1.59.0")
61589)]
61590#[cfg_attr(
61591    target_arch = "arm",
61592    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61593)]
61594pub fn vset_lane_s16<const LANE: i32>(a: i16, b: int16x4_t) -> int16x4_t {
61595    static_assert_uimm_bits!(LANE, 2);
61596    unsafe { simd_insert!(b, LANE as u32, a) }
61597}
61598#[doc = "Insert vector element from another vector element"]
61599#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_s16)"]
61600#[inline]
61601#[target_feature(enable = "neon")]
61602#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61603#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
61604#[cfg_attr(
61605    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61606    assert_instr(nop, LANE = 0)
61607)]
61608#[rustc_legacy_const_generics(2)]
61609#[cfg_attr(
61610    not(target_arch = "arm"),
61611    stable(feature = "neon_intrinsics", since = "1.59.0")
61612)]
61613#[cfg_attr(
61614    target_arch = "arm",
61615    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61616)]
61617pub fn vsetq_lane_s16<const LANE: i32>(a: i16, b: int16x8_t) -> int16x8_t {
61618    static_assert_uimm_bits!(LANE, 3);
61619    unsafe { simd_insert!(b, LANE as u32, a) }
61620}
61621#[doc = "Insert vector element from another vector element"]
61622#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_s32)"]
61623#[inline]
61624#[target_feature(enable = "neon")]
61625#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61626#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
61627#[cfg_attr(
61628    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61629    assert_instr(nop, LANE = 0)
61630)]
61631#[rustc_legacy_const_generics(2)]
61632#[cfg_attr(
61633    not(target_arch = "arm"),
61634    stable(feature = "neon_intrinsics", since = "1.59.0")
61635)]
61636#[cfg_attr(
61637    target_arch = "arm",
61638    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61639)]
61640pub fn vset_lane_s32<const LANE: i32>(a: i32, b: int32x2_t) -> int32x2_t {
61641    static_assert_uimm_bits!(LANE, 1);
61642    unsafe { simd_insert!(b, LANE as u32, a) }
61643}
61644#[doc = "Insert vector element from another vector element"]
61645#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_s32)"]
61646#[inline]
61647#[target_feature(enable = "neon")]
61648#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61649#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
61650#[cfg_attr(
61651    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61652    assert_instr(nop, LANE = 0)
61653)]
61654#[rustc_legacy_const_generics(2)]
61655#[cfg_attr(
61656    not(target_arch = "arm"),
61657    stable(feature = "neon_intrinsics", since = "1.59.0")
61658)]
61659#[cfg_attr(
61660    target_arch = "arm",
61661    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61662)]
61663pub fn vsetq_lane_s32<const LANE: i32>(a: i32, b: int32x4_t) -> int32x4_t {
61664    static_assert_uimm_bits!(LANE, 2);
61665    unsafe { simd_insert!(b, LANE as u32, a) }
61666}
61667#[doc = "Insert vector element from another vector element"]
61668#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_s64)"]
61669#[inline]
61670#[target_feature(enable = "neon")]
61671#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61672#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
61673#[cfg_attr(
61674    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61675    assert_instr(nop, LANE = 0)
61676)]
61677#[rustc_legacy_const_generics(2)]
61678#[cfg_attr(
61679    not(target_arch = "arm"),
61680    stable(feature = "neon_intrinsics", since = "1.59.0")
61681)]
61682#[cfg_attr(
61683    target_arch = "arm",
61684    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61685)]
61686pub fn vsetq_lane_s64<const LANE: i32>(a: i64, b: int64x2_t) -> int64x2_t {
61687    static_assert_uimm_bits!(LANE, 1);
61688    unsafe { simd_insert!(b, LANE as u32, a) }
61689}
61690#[doc = "Insert vector element from another vector element"]
61691#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_u8)"]
61692#[inline]
61693#[target_feature(enable = "neon")]
61694#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61695#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
61696#[cfg_attr(
61697    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61698    assert_instr(nop, LANE = 0)
61699)]
61700#[rustc_legacy_const_generics(2)]
61701#[cfg_attr(
61702    not(target_arch = "arm"),
61703    stable(feature = "neon_intrinsics", since = "1.59.0")
61704)]
61705#[cfg_attr(
61706    target_arch = "arm",
61707    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61708)]
61709pub fn vset_lane_u8<const LANE: i32>(a: u8, b: uint8x8_t) -> uint8x8_t {
61710    static_assert_uimm_bits!(LANE, 3);
61711    unsafe { simd_insert!(b, LANE as u32, a) }
61712}
61713#[doc = "Insert vector element from another vector element"]
61714#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_u8)"]
61715#[inline]
61716#[target_feature(enable = "neon")]
61717#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61718#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
61719#[cfg_attr(
61720    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61721    assert_instr(nop, LANE = 0)
61722)]
61723#[rustc_legacy_const_generics(2)]
61724#[cfg_attr(
61725    not(target_arch = "arm"),
61726    stable(feature = "neon_intrinsics", since = "1.59.0")
61727)]
61728#[cfg_attr(
61729    target_arch = "arm",
61730    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61731)]
61732pub fn vsetq_lane_u8<const LANE: i32>(a: u8, b: uint8x16_t) -> uint8x16_t {
61733    static_assert_uimm_bits!(LANE, 4);
61734    unsafe { simd_insert!(b, LANE as u32, a) }
61735}
61736#[doc = "Insert vector element from another vector element"]
61737#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_u16)"]
61738#[inline]
61739#[target_feature(enable = "neon")]
61740#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61741#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
61742#[cfg_attr(
61743    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61744    assert_instr(nop, LANE = 0)
61745)]
61746#[rustc_legacy_const_generics(2)]
61747#[cfg_attr(
61748    not(target_arch = "arm"),
61749    stable(feature = "neon_intrinsics", since = "1.59.0")
61750)]
61751#[cfg_attr(
61752    target_arch = "arm",
61753    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61754)]
61755pub fn vset_lane_u16<const LANE: i32>(a: u16, b: uint16x4_t) -> uint16x4_t {
61756    static_assert_uimm_bits!(LANE, 2);
61757    unsafe { simd_insert!(b, LANE as u32, a) }
61758}
61759#[doc = "Insert vector element from another vector element"]
61760#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_u16)"]
61761#[inline]
61762#[target_feature(enable = "neon")]
61763#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61764#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
61765#[cfg_attr(
61766    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61767    assert_instr(nop, LANE = 0)
61768)]
61769#[rustc_legacy_const_generics(2)]
61770#[cfg_attr(
61771    not(target_arch = "arm"),
61772    stable(feature = "neon_intrinsics", since = "1.59.0")
61773)]
61774#[cfg_attr(
61775    target_arch = "arm",
61776    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61777)]
61778pub fn vsetq_lane_u16<const LANE: i32>(a: u16, b: uint16x8_t) -> uint16x8_t {
61779    static_assert_uimm_bits!(LANE, 3);
61780    unsafe { simd_insert!(b, LANE as u32, a) }
61781}
61782#[doc = "Insert vector element from another vector element"]
61783#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_u32)"]
61784#[inline]
61785#[target_feature(enable = "neon")]
61786#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61787#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
61788#[cfg_attr(
61789    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61790    assert_instr(nop, LANE = 0)
61791)]
61792#[rustc_legacy_const_generics(2)]
61793#[cfg_attr(
61794    not(target_arch = "arm"),
61795    stable(feature = "neon_intrinsics", since = "1.59.0")
61796)]
61797#[cfg_attr(
61798    target_arch = "arm",
61799    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61800)]
61801pub fn vset_lane_u32<const LANE: i32>(a: u32, b: uint32x2_t) -> uint32x2_t {
61802    static_assert_uimm_bits!(LANE, 1);
61803    unsafe { simd_insert!(b, LANE as u32, a) }
61804}
61805#[doc = "Insert vector element from another vector element"]
61806#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_u32)"]
61807#[inline]
61808#[target_feature(enable = "neon")]
61809#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61810#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
61811#[cfg_attr(
61812    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61813    assert_instr(nop, LANE = 0)
61814)]
61815#[rustc_legacy_const_generics(2)]
61816#[cfg_attr(
61817    not(target_arch = "arm"),
61818    stable(feature = "neon_intrinsics", since = "1.59.0")
61819)]
61820#[cfg_attr(
61821    target_arch = "arm",
61822    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61823)]
61824pub fn vsetq_lane_u32<const LANE: i32>(a: u32, b: uint32x4_t) -> uint32x4_t {
61825    static_assert_uimm_bits!(LANE, 2);
61826    unsafe { simd_insert!(b, LANE as u32, a) }
61827}
61828#[doc = "Insert vector element from another vector element"]
61829#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_u64)"]
61830#[inline]
61831#[target_feature(enable = "neon")]
61832#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61833#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
61834#[cfg_attr(
61835    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61836    assert_instr(nop, LANE = 0)
61837)]
61838#[rustc_legacy_const_generics(2)]
61839#[cfg_attr(
61840    not(target_arch = "arm"),
61841    stable(feature = "neon_intrinsics", since = "1.59.0")
61842)]
61843#[cfg_attr(
61844    target_arch = "arm",
61845    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61846)]
61847pub fn vsetq_lane_u64<const LANE: i32>(a: u64, b: uint64x2_t) -> uint64x2_t {
61848    static_assert_uimm_bits!(LANE, 1);
61849    unsafe { simd_insert!(b, LANE as u32, a) }
61850}
61851#[doc = "Insert vector element from another vector element"]
61852#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_p8)"]
61853#[inline]
61854#[target_feature(enable = "neon")]
61855#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61856#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
61857#[cfg_attr(
61858    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61859    assert_instr(nop, LANE = 0)
61860)]
61861#[rustc_legacy_const_generics(2)]
61862#[cfg_attr(
61863    not(target_arch = "arm"),
61864    stable(feature = "neon_intrinsics", since = "1.59.0")
61865)]
61866#[cfg_attr(
61867    target_arch = "arm",
61868    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61869)]
61870pub fn vset_lane_p8<const LANE: i32>(a: p8, b: poly8x8_t) -> poly8x8_t {
61871    static_assert_uimm_bits!(LANE, 3);
61872    unsafe { simd_insert!(b, LANE as u32, a) }
61873}
61874#[doc = "Insert vector element from another vector element"]
61875#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_p8)"]
61876#[inline]
61877#[target_feature(enable = "neon")]
61878#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61879#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
61880#[cfg_attr(
61881    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61882    assert_instr(nop, LANE = 0)
61883)]
61884#[rustc_legacy_const_generics(2)]
61885#[cfg_attr(
61886    not(target_arch = "arm"),
61887    stable(feature = "neon_intrinsics", since = "1.59.0")
61888)]
61889#[cfg_attr(
61890    target_arch = "arm",
61891    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61892)]
61893pub fn vsetq_lane_p8<const LANE: i32>(a: p8, b: poly8x16_t) -> poly8x16_t {
61894    static_assert_uimm_bits!(LANE, 4);
61895    unsafe { simd_insert!(b, LANE as u32, a) }
61896}
61897#[doc = "Insert vector element from another vector element"]
61898#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_p16)"]
61899#[inline]
61900#[target_feature(enable = "neon")]
61901#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61902#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
61903#[cfg_attr(
61904    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61905    assert_instr(nop, LANE = 0)
61906)]
61907#[rustc_legacy_const_generics(2)]
61908#[cfg_attr(
61909    not(target_arch = "arm"),
61910    stable(feature = "neon_intrinsics", since = "1.59.0")
61911)]
61912#[cfg_attr(
61913    target_arch = "arm",
61914    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61915)]
61916pub fn vset_lane_p16<const LANE: i32>(a: p16, b: poly16x4_t) -> poly16x4_t {
61917    static_assert_uimm_bits!(LANE, 2);
61918    unsafe { simd_insert!(b, LANE as u32, a) }
61919}
61920#[doc = "Insert vector element from another vector element"]
61921#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_p16)"]
61922#[inline]
61923#[target_feature(enable = "neon")]
61924#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61925#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
61926#[cfg_attr(
61927    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61928    assert_instr(nop, LANE = 0)
61929)]
61930#[rustc_legacy_const_generics(2)]
61931#[cfg_attr(
61932    not(target_arch = "arm"),
61933    stable(feature = "neon_intrinsics", since = "1.59.0")
61934)]
61935#[cfg_attr(
61936    target_arch = "arm",
61937    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61938)]
61939pub fn vsetq_lane_p16<const LANE: i32>(a: p16, b: poly16x8_t) -> poly16x8_t {
61940    static_assert_uimm_bits!(LANE, 3);
61941    unsafe { simd_insert!(b, LANE as u32, a) }
61942}
61943#[doc = "Insert vector element from another vector element"]
61944#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_p64)"]
61945#[inline]
61946#[target_feature(enable = "neon,aes")]
61947#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
61948#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
61949#[cfg_attr(
61950    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61951    assert_instr(nop, LANE = 0)
61952)]
61953#[rustc_legacy_const_generics(2)]
61954#[cfg_attr(
61955    not(target_arch = "arm"),
61956    stable(feature = "neon_intrinsics", since = "1.59.0")
61957)]
61958#[cfg_attr(
61959    target_arch = "arm",
61960    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61961)]
61962pub fn vset_lane_p64<const LANE: i32>(a: p64, b: poly64x1_t) -> poly64x1_t {
61963    static_assert!(LANE == 0);
61964    unsafe { simd_insert!(b, LANE as u32, a) }
61965}
61966#[doc = "Insert vector element from another vector element"]
61967#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_s64)"]
61968#[inline]
61969#[target_feature(enable = "neon")]
61970#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61971#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
61972#[cfg_attr(
61973    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61974    assert_instr(nop, LANE = 0)
61975)]
61976#[rustc_legacy_const_generics(2)]
61977#[cfg_attr(
61978    not(target_arch = "arm"),
61979    stable(feature = "neon_intrinsics", since = "1.59.0")
61980)]
61981#[cfg_attr(
61982    target_arch = "arm",
61983    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61984)]
61985pub fn vset_lane_s64<const LANE: i32>(a: i64, b: int64x1_t) -> int64x1_t {
61986    static_assert!(LANE == 0);
61987    unsafe { simd_insert!(b, LANE as u32, a) }
61988}
61989#[doc = "Insert vector element from another vector element"]
61990#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_u64)"]
61991#[inline]
61992#[target_feature(enable = "neon")]
61993#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61994#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
61995#[cfg_attr(
61996    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61997    assert_instr(nop, LANE = 0)
61998)]
61999#[rustc_legacy_const_generics(2)]
62000#[cfg_attr(
62001    not(target_arch = "arm"),
62002    stable(feature = "neon_intrinsics", since = "1.59.0")
62003)]
62004#[cfg_attr(
62005    target_arch = "arm",
62006    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62007)]
62008pub fn vset_lane_u64<const LANE: i32>(a: u64, b: uint64x1_t) -> uint64x1_t {
62009    static_assert!(LANE == 0);
62010    unsafe { simd_insert!(b, LANE as u32, a) }
62011}
62012#[doc = "Insert vector element from another vector element"]
62013#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_p64)"]
62014#[inline]
62015#[target_feature(enable = "neon,aes")]
62016#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
62017#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
62018#[cfg_attr(
62019    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62020    assert_instr(nop, LANE = 0)
62021)]
62022#[rustc_legacy_const_generics(2)]
62023#[cfg_attr(
62024    not(target_arch = "arm"),
62025    stable(feature = "neon_intrinsics", since = "1.59.0")
62026)]
62027#[cfg_attr(
62028    target_arch = "arm",
62029    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62030)]
62031pub fn vsetq_lane_p64<const LANE: i32>(a: p64, b: poly64x2_t) -> poly64x2_t {
62032    static_assert_uimm_bits!(LANE, 1);
62033    unsafe { simd_insert!(b, LANE as u32, a) }
62034}
62035#[doc = "SHA1 hash update accelerator, choose."]
62036#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsha1cq_u32)"]
62037#[inline]
62038#[target_feature(enable = "sha2")]
62039#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
62040#[cfg_attr(test, assert_instr(sha1c))]
62041#[cfg_attr(
62042    target_arch = "arm",
62043    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62044)]
62045#[cfg_attr(
62046    not(target_arch = "arm"),
62047    stable(feature = "aarch64_neon_crypto_intrinsics", since = "1.72.0")
62048)]
62049pub fn vsha1cq_u32(hash_abcd: uint32x4_t, hash_e: u32, wk: uint32x4_t) -> uint32x4_t {
62050    unsafe extern "unadjusted" {
62051        #[cfg_attr(
62052            any(target_arch = "aarch64", target_arch = "arm64ec"),
62053            link_name = "llvm.aarch64.crypto.sha1c"
62054        )]
62055        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.sha1c")]
62056        fn _vsha1cq_u32(hash_abcd: uint32x4_t, hash_e: u32, wk: uint32x4_t) -> uint32x4_t;
62057    }
62058    unsafe { _vsha1cq_u32(hash_abcd, hash_e, wk) }
62059}
62060#[doc = "SHA1 fixed rotate."]
62061#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsha1h_u32)"]
62062#[inline]
62063#[target_feature(enable = "sha2")]
62064#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
62065#[cfg_attr(test, assert_instr(sha1h))]
62066#[cfg_attr(
62067    target_arch = "arm",
62068    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62069)]
62070#[cfg_attr(
62071    not(target_arch = "arm"),
62072    stable(feature = "aarch64_neon_crypto_intrinsics", since = "1.72.0")
62073)]
62074pub fn vsha1h_u32(hash_e: u32) -> u32 {
62075    unsafe extern "unadjusted" {
62076        #[cfg_attr(
62077            any(target_arch = "aarch64", target_arch = "arm64ec"),
62078            link_name = "llvm.aarch64.crypto.sha1h"
62079        )]
62080        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.sha1h")]
62081        fn _vsha1h_u32(hash_e: u32) -> u32;
62082    }
62083    unsafe { _vsha1h_u32(hash_e) }
62084}
62085#[doc = "SHA1 hash update accelerator, majority"]
62086#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsha1mq_u32)"]
62087#[inline]
62088#[target_feature(enable = "sha2")]
62089#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
62090#[cfg_attr(test, assert_instr(sha1m))]
62091#[cfg_attr(
62092    target_arch = "arm",
62093    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62094)]
62095#[cfg_attr(
62096    not(target_arch = "arm"),
62097    stable(feature = "aarch64_neon_crypto_intrinsics", since = "1.72.0")
62098)]
62099pub fn vsha1mq_u32(hash_abcd: uint32x4_t, hash_e: u32, wk: uint32x4_t) -> uint32x4_t {
62100    unsafe extern "unadjusted" {
62101        #[cfg_attr(
62102            any(target_arch = "aarch64", target_arch = "arm64ec"),
62103            link_name = "llvm.aarch64.crypto.sha1m"
62104        )]
62105        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.sha1m")]
62106        fn _vsha1mq_u32(hash_abcd: uint32x4_t, hash_e: u32, wk: uint32x4_t) -> uint32x4_t;
62107    }
62108    unsafe { _vsha1mq_u32(hash_abcd, hash_e, wk) }
62109}
62110#[doc = "SHA1 hash update accelerator, parity"]
62111#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsha1pq_u32)"]
62112#[inline]
62113#[target_feature(enable = "sha2")]
62114#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
62115#[cfg_attr(test, assert_instr(sha1p))]
62116#[cfg_attr(
62117    target_arch = "arm",
62118    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62119)]
62120#[cfg_attr(
62121    not(target_arch = "arm"),
62122    stable(feature = "aarch64_neon_crypto_intrinsics", since = "1.72.0")
62123)]
62124pub fn vsha1pq_u32(hash_abcd: uint32x4_t, hash_e: u32, wk: uint32x4_t) -> uint32x4_t {
62125    unsafe extern "unadjusted" {
62126        #[cfg_attr(
62127            any(target_arch = "aarch64", target_arch = "arm64ec"),
62128            link_name = "llvm.aarch64.crypto.sha1p"
62129        )]
62130        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.sha1p")]
62131        fn _vsha1pq_u32(hash_abcd: uint32x4_t, hash_e: u32, wk: uint32x4_t) -> uint32x4_t;
62132    }
62133    unsafe { _vsha1pq_u32(hash_abcd, hash_e, wk) }
62134}
62135#[doc = "SHA1 schedule update accelerator, first part."]
62136#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsha1su0q_u32)"]
62137#[inline]
62138#[target_feature(enable = "sha2")]
62139#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
62140#[cfg_attr(test, assert_instr(sha1su0))]
62141#[cfg_attr(
62142    target_arch = "arm",
62143    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62144)]
62145#[cfg_attr(
62146    not(target_arch = "arm"),
62147    stable(feature = "aarch64_neon_crypto_intrinsics", since = "1.72.0")
62148)]
62149pub fn vsha1su0q_u32(w0_3: uint32x4_t, w4_7: uint32x4_t, w8_11: uint32x4_t) -> uint32x4_t {
62150    unsafe extern "unadjusted" {
62151        #[cfg_attr(
62152            any(target_arch = "aarch64", target_arch = "arm64ec"),
62153            link_name = "llvm.aarch64.crypto.sha1su0"
62154        )]
62155        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.sha1su0")]
62156        fn _vsha1su0q_u32(w0_3: uint32x4_t, w4_7: uint32x4_t, w8_11: uint32x4_t) -> uint32x4_t;
62157    }
62158    unsafe { _vsha1su0q_u32(w0_3, w4_7, w8_11) }
62159}
62160#[doc = "SHA1 schedule update accelerator, second part."]
62161#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsha1su1q_u32)"]
62162#[inline]
62163#[target_feature(enable = "sha2")]
62164#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
62165#[cfg_attr(test, assert_instr(sha1su1))]
62166#[cfg_attr(
62167    target_arch = "arm",
62168    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62169)]
62170#[cfg_attr(
62171    not(target_arch = "arm"),
62172    stable(feature = "aarch64_neon_crypto_intrinsics", since = "1.72.0")
62173)]
62174pub fn vsha1su1q_u32(tw0_3: uint32x4_t, w12_15: uint32x4_t) -> uint32x4_t {
62175    unsafe extern "unadjusted" {
62176        #[cfg_attr(
62177            any(target_arch = "aarch64", target_arch = "arm64ec"),
62178            link_name = "llvm.aarch64.crypto.sha1su1"
62179        )]
62180        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.sha1su1")]
62181        fn _vsha1su1q_u32(tw0_3: uint32x4_t, w12_15: uint32x4_t) -> uint32x4_t;
62182    }
62183    unsafe { _vsha1su1q_u32(tw0_3, w12_15) }
62184}
62185#[doc = "SHA1 schedule update accelerator, upper part."]
62186#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsha256h2q_u32)"]
62187#[inline]
62188#[target_feature(enable = "sha2")]
62189#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
62190#[cfg_attr(test, assert_instr(sha256h2))]
62191#[cfg_attr(
62192    target_arch = "arm",
62193    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62194)]
62195#[cfg_attr(
62196    not(target_arch = "arm"),
62197    stable(feature = "aarch64_neon_crypto_intrinsics", since = "1.72.0")
62198)]
62199pub fn vsha256h2q_u32(hash_abcd: uint32x4_t, hash_efgh: uint32x4_t, wk: uint32x4_t) -> uint32x4_t {
62200    unsafe extern "unadjusted" {
62201        #[cfg_attr(
62202            any(target_arch = "aarch64", target_arch = "arm64ec"),
62203            link_name = "llvm.aarch64.crypto.sha256h2"
62204        )]
62205        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.sha256h2")]
62206        fn _vsha256h2q_u32(
62207            hash_abcd: uint32x4_t,
62208            hash_efgh: uint32x4_t,
62209            wk: uint32x4_t,
62210        ) -> uint32x4_t;
62211    }
62212    unsafe { _vsha256h2q_u32(hash_abcd, hash_efgh, wk) }
62213}
62214#[doc = "SHA1 schedule update accelerator, first part."]
62215#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsha256hq_u32)"]
62216#[inline]
62217#[target_feature(enable = "sha2")]
62218#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
62219#[cfg_attr(test, assert_instr(sha256h))]
62220#[cfg_attr(
62221    target_arch = "arm",
62222    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62223)]
62224#[cfg_attr(
62225    not(target_arch = "arm"),
62226    stable(feature = "aarch64_neon_crypto_intrinsics", since = "1.72.0")
62227)]
62228pub fn vsha256hq_u32(hash_abcd: uint32x4_t, hash_efgh: uint32x4_t, wk: uint32x4_t) -> uint32x4_t {
62229    unsafe extern "unadjusted" {
62230        #[cfg_attr(
62231            any(target_arch = "aarch64", target_arch = "arm64ec"),
62232            link_name = "llvm.aarch64.crypto.sha256h"
62233        )]
62234        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.sha256h")]
62235        fn _vsha256hq_u32(
62236            hash_abcd: uint32x4_t,
62237            hash_efgh: uint32x4_t,
62238            wk: uint32x4_t,
62239        ) -> uint32x4_t;
62240    }
62241    unsafe { _vsha256hq_u32(hash_abcd, hash_efgh, wk) }
62242}
62243#[doc = "SHA256 schedule update accelerator, first part."]
62244#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsha256su0q_u32)"]
62245#[inline]
62246#[target_feature(enable = "sha2")]
62247#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
62248#[cfg_attr(test, assert_instr(sha256su0))]
62249#[cfg_attr(
62250    target_arch = "arm",
62251    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62252)]
62253#[cfg_attr(
62254    not(target_arch = "arm"),
62255    stable(feature = "aarch64_neon_crypto_intrinsics", since = "1.72.0")
62256)]
62257pub fn vsha256su0q_u32(w0_3: uint32x4_t, w4_7: uint32x4_t) -> uint32x4_t {
62258    unsafe extern "unadjusted" {
62259        #[cfg_attr(
62260            any(target_arch = "aarch64", target_arch = "arm64ec"),
62261            link_name = "llvm.aarch64.crypto.sha256su0"
62262        )]
62263        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.sha256su0")]
62264        fn _vsha256su0q_u32(w0_3: uint32x4_t, w4_7: uint32x4_t) -> uint32x4_t;
62265    }
62266    unsafe { _vsha256su0q_u32(w0_3, w4_7) }
62267}
62268#[doc = "SHA256 schedule update accelerator, second part."]
62269#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsha256su1q_u32)"]
62270#[inline]
62271#[target_feature(enable = "sha2")]
62272#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
62273#[cfg_attr(test, assert_instr(sha256su1))]
62274#[cfg_attr(
62275    target_arch = "arm",
62276    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62277)]
62278#[cfg_attr(
62279    not(target_arch = "arm"),
62280    stable(feature = "aarch64_neon_crypto_intrinsics", since = "1.72.0")
62281)]
62282pub fn vsha256su1q_u32(tw0_3: uint32x4_t, w8_11: uint32x4_t, w12_15: uint32x4_t) -> uint32x4_t {
62283    unsafe extern "unadjusted" {
62284        #[cfg_attr(
62285            any(target_arch = "aarch64", target_arch = "arm64ec"),
62286            link_name = "llvm.aarch64.crypto.sha256su1"
62287        )]
62288        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.sha256su1")]
62289        fn _vsha256su1q_u32(tw0_3: uint32x4_t, w8_11: uint32x4_t, w12_15: uint32x4_t)
62290            -> uint32x4_t;
62291    }
62292    unsafe { _vsha256su1q_u32(tw0_3, w8_11, w12_15) }
62293}
62294#[inline]
62295#[target_feature(enable = "neon")]
62296#[cfg(target_arch = "arm")]
62297#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62298#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62299#[rustc_legacy_const_generics(2)]
62300fn vshiftlins_v16i8<const N: i32>(a: int8x16_t, b: int8x16_t) -> int8x16_t {
62301    unsafe extern "unadjusted" {
62302        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftins.v16i8")]
62303        fn _vshiftlins_v16i8(a: int8x16_t, b: int8x16_t, c: int8x16_t) -> int8x16_t;
62304    }
62305    unsafe { _vshiftlins_v16i8(a, b, const { int8x16_t([N as i8; 16]) }) }
62306}
62307#[inline]
62308#[target_feature(enable = "neon")]
62309#[cfg(target_arch = "arm")]
62310#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62311#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62312#[rustc_legacy_const_generics(2)]
62313fn vshiftlins_v1i64<const N: i32>(a: int64x1_t, b: int64x1_t) -> int64x1_t {
62314    unsafe extern "unadjusted" {
62315        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftins.v1i64")]
62316        fn _vshiftlins_v1i64(a: int64x1_t, b: int64x1_t, c: int64x1_t) -> int64x1_t;
62317    }
62318    unsafe { _vshiftlins_v1i64(a, b, const { int64x1_t([N as i64; 1]) }) }
62319}
62320#[inline]
62321#[target_feature(enable = "neon")]
62322#[cfg(target_arch = "arm")]
62323#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62324#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62325#[rustc_legacy_const_generics(2)]
62326fn vshiftlins_v2i32<const N: i32>(a: int32x2_t, b: int32x2_t) -> int32x2_t {
62327    unsafe extern "unadjusted" {
62328        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftins.v2i32")]
62329        fn _vshiftlins_v2i32(a: int32x2_t, b: int32x2_t, c: int32x2_t) -> int32x2_t;
62330    }
62331    unsafe { _vshiftlins_v2i32(a, b, const { int32x2_t([N; 2]) }) }
62332}
62333#[inline]
62334#[target_feature(enable = "neon")]
62335#[cfg(target_arch = "arm")]
62336#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62337#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62338#[rustc_legacy_const_generics(2)]
62339fn vshiftlins_v2i64<const N: i32>(a: int64x2_t, b: int64x2_t) -> int64x2_t {
62340    unsafe extern "unadjusted" {
62341        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftins.v2i64")]
62342        fn _vshiftlins_v2i64(a: int64x2_t, b: int64x2_t, c: int64x2_t) -> int64x2_t;
62343    }
62344    unsafe { _vshiftlins_v2i64(a, b, const { int64x2_t([N as i64; 2]) }) }
62345}
62346#[inline]
62347#[target_feature(enable = "neon")]
62348#[cfg(target_arch = "arm")]
62349#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62350#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62351#[rustc_legacy_const_generics(2)]
62352fn vshiftlins_v4i16<const N: i32>(a: int16x4_t, b: int16x4_t) -> int16x4_t {
62353    unsafe extern "unadjusted" {
62354        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftins.v4i16")]
62355        fn _vshiftlins_v4i16(a: int16x4_t, b: int16x4_t, c: int16x4_t) -> int16x4_t;
62356    }
62357    unsafe { _vshiftlins_v4i16(a, b, const { int16x4_t([N as i16; 4]) }) }
62358}
62359#[inline]
62360#[target_feature(enable = "neon")]
62361#[cfg(target_arch = "arm")]
62362#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62363#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62364#[rustc_legacy_const_generics(2)]
62365fn vshiftlins_v4i32<const N: i32>(a: int32x4_t, b: int32x4_t) -> int32x4_t {
62366    unsafe extern "unadjusted" {
62367        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftins.v4i32")]
62368        fn _vshiftlins_v4i32(a: int32x4_t, b: int32x4_t, c: int32x4_t) -> int32x4_t;
62369    }
62370    unsafe { _vshiftlins_v4i32(a, b, const { int32x4_t([N; 4]) }) }
62371}
62372#[inline]
62373#[target_feature(enable = "neon")]
62374#[cfg(target_arch = "arm")]
62375#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62376#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62377#[rustc_legacy_const_generics(2)]
62378fn vshiftlins_v8i16<const N: i32>(a: int16x8_t, b: int16x8_t) -> int16x8_t {
62379    unsafe extern "unadjusted" {
62380        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftins.v8i16")]
62381        fn _vshiftlins_v8i16(a: int16x8_t, b: int16x8_t, c: int16x8_t) -> int16x8_t;
62382    }
62383    unsafe { _vshiftlins_v8i16(a, b, const { int16x8_t([N as i16; 8]) }) }
62384}
62385#[inline]
62386#[target_feature(enable = "neon")]
62387#[cfg(target_arch = "arm")]
62388#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62389#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62390#[rustc_legacy_const_generics(2)]
62391fn vshiftlins_v8i8<const N: i32>(a: int8x8_t, b: int8x8_t) -> int8x8_t {
62392    unsafe extern "unadjusted" {
62393        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftins.v8i8")]
62394        fn _vshiftlins_v8i8(a: int8x8_t, b: int8x8_t, c: int8x8_t) -> int8x8_t;
62395    }
62396    unsafe { _vshiftlins_v8i8(a, b, const { int8x8_t([N as i8; 8]) }) }
62397}
62398#[doc = "Shift Right and Insert (immediate)"]
62399#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshiftrins_v16i8)"]
62400#[inline]
62401#[target_feature(enable = "neon")]
62402#[cfg(target_arch = "arm")]
62403#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62404#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62405#[rustc_legacy_const_generics(2)]
62406fn vshiftrins_v16i8<const N: i32>(a: int8x16_t, b: int8x16_t) -> int8x16_t {
62407    unsafe extern "unadjusted" {
62408        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftins.v16i8")]
62409        fn _vshiftrins_v16i8(a: int8x16_t, b: int8x16_t, c: int8x16_t) -> int8x16_t;
62410    }
62411    unsafe { _vshiftrins_v16i8(a, b, const { int8x16_t([-N as i8; 16]) }) }
62412}
62413#[doc = "Shift Right and Insert (immediate)"]
62414#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshiftrins_v1i64)"]
62415#[inline]
62416#[target_feature(enable = "neon")]
62417#[cfg(target_arch = "arm")]
62418#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62419#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62420#[rustc_legacy_const_generics(2)]
62421fn vshiftrins_v1i64<const N: i32>(a: int64x1_t, b: int64x1_t) -> int64x1_t {
62422    unsafe extern "unadjusted" {
62423        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftins.v1i64")]
62424        fn _vshiftrins_v1i64(a: int64x1_t, b: int64x1_t, c: int64x1_t) -> int64x1_t;
62425    }
62426    unsafe { _vshiftrins_v1i64(a, b, const { int64x1_t([-N as i64; 1]) }) }
62427}
62428#[doc = "Shift Right and Insert (immediate)"]
62429#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshiftrins_v2i32)"]
62430#[inline]
62431#[target_feature(enable = "neon")]
62432#[cfg(target_arch = "arm")]
62433#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62434#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62435#[rustc_legacy_const_generics(2)]
62436fn vshiftrins_v2i32<const N: i32>(a: int32x2_t, b: int32x2_t) -> int32x2_t {
62437    unsafe extern "unadjusted" {
62438        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftins.v2i32")]
62439        fn _vshiftrins_v2i32(a: int32x2_t, b: int32x2_t, c: int32x2_t) -> int32x2_t;
62440    }
62441    unsafe { _vshiftrins_v2i32(a, b, const { int32x2_t([-N; 2]) }) }
62442}
62443#[doc = "Shift Right and Insert (immediate)"]
62444#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshiftrins_v2i64)"]
62445#[inline]
62446#[target_feature(enable = "neon")]
62447#[cfg(target_arch = "arm")]
62448#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62449#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62450#[rustc_legacy_const_generics(2)]
62451fn vshiftrins_v2i64<const N: i32>(a: int64x2_t, b: int64x2_t) -> int64x2_t {
62452    unsafe extern "unadjusted" {
62453        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftins.v2i64")]
62454        fn _vshiftrins_v2i64(a: int64x2_t, b: int64x2_t, c: int64x2_t) -> int64x2_t;
62455    }
62456    unsafe { _vshiftrins_v2i64(a, b, const { int64x2_t([-N as i64; 2]) }) }
62457}
62458#[doc = "Shift Right and Insert (immediate)"]
62459#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshiftrins_v4i16)"]
62460#[inline]
62461#[target_feature(enable = "neon")]
62462#[cfg(target_arch = "arm")]
62463#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62464#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62465#[rustc_legacy_const_generics(2)]
62466fn vshiftrins_v4i16<const N: i32>(a: int16x4_t, b: int16x4_t) -> int16x4_t {
62467    unsafe extern "unadjusted" {
62468        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftins.v4i16")]
62469        fn _vshiftrins_v4i16(a: int16x4_t, b: int16x4_t, c: int16x4_t) -> int16x4_t;
62470    }
62471    unsafe { _vshiftrins_v4i16(a, b, const { int16x4_t([-N as i16; 4]) }) }
62472}
62473#[doc = "Shift Right and Insert (immediate)"]
62474#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshiftrins_v4i32)"]
62475#[inline]
62476#[target_feature(enable = "neon")]
62477#[cfg(target_arch = "arm")]
62478#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62479#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62480#[rustc_legacy_const_generics(2)]
62481fn vshiftrins_v4i32<const N: i32>(a: int32x4_t, b: int32x4_t) -> int32x4_t {
62482    unsafe extern "unadjusted" {
62483        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftins.v4i32")]
62484        fn _vshiftrins_v4i32(a: int32x4_t, b: int32x4_t, c: int32x4_t) -> int32x4_t;
62485    }
62486    unsafe { _vshiftrins_v4i32(a, b, const { int32x4_t([-N; 4]) }) }
62487}
62488#[doc = "Shift Right and Insert (immediate)"]
62489#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshiftrins_v8i16)"]
62490#[inline]
62491#[target_feature(enable = "neon")]
62492#[cfg(target_arch = "arm")]
62493#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62494#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62495#[rustc_legacy_const_generics(2)]
62496fn vshiftrins_v8i16<const N: i32>(a: int16x8_t, b: int16x8_t) -> int16x8_t {
62497    unsafe extern "unadjusted" {
62498        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftins.v8i16")]
62499        fn _vshiftrins_v8i16(a: int16x8_t, b: int16x8_t, c: int16x8_t) -> int16x8_t;
62500    }
62501    unsafe { _vshiftrins_v8i16(a, b, const { int16x8_t([-N as i16; 8]) }) }
62502}
62503#[doc = "Shift Right and Insert (immediate)"]
62504#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshiftrins_v8i8)"]
62505#[inline]
62506#[target_feature(enable = "neon")]
62507#[cfg(target_arch = "arm")]
62508#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62509#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62510#[rustc_legacy_const_generics(2)]
62511fn vshiftrins_v8i8<const N: i32>(a: int8x8_t, b: int8x8_t) -> int8x8_t {
62512    unsafe extern "unadjusted" {
62513        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftins.v8i8")]
62514        fn _vshiftrins_v8i8(a: int8x8_t, b: int8x8_t, c: int8x8_t) -> int8x8_t;
62515    }
62516    unsafe { _vshiftrins_v8i8(a, b, const { int8x8_t([-N as i8; 8]) }) }
62517}
62518#[doc = "Shift left"]
62519#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_n_s8)"]
62520#[inline]
62521#[target_feature(enable = "neon")]
62522#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62523#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
62524#[cfg_attr(
62525    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62526    assert_instr(shl, N = 2)
62527)]
62528#[rustc_legacy_const_generics(1)]
62529#[cfg_attr(
62530    not(target_arch = "arm"),
62531    stable(feature = "neon_intrinsics", since = "1.59.0")
62532)]
62533#[cfg_attr(
62534    target_arch = "arm",
62535    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62536)]
62537pub fn vshl_n_s8<const N: i32>(a: int8x8_t) -> int8x8_t {
62538    static_assert_uimm_bits!(N, 3);
62539    unsafe { simd_shl(a, vdup_n_s8(N as _)) }
62540}
62541#[doc = "Shift left"]
62542#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_n_s8)"]
62543#[inline]
62544#[target_feature(enable = "neon")]
62545#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62546#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
62547#[cfg_attr(
62548    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62549    assert_instr(shl, N = 2)
62550)]
62551#[rustc_legacy_const_generics(1)]
62552#[cfg_attr(
62553    not(target_arch = "arm"),
62554    stable(feature = "neon_intrinsics", since = "1.59.0")
62555)]
62556#[cfg_attr(
62557    target_arch = "arm",
62558    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62559)]
62560pub fn vshlq_n_s8<const N: i32>(a: int8x16_t) -> int8x16_t {
62561    static_assert_uimm_bits!(N, 3);
62562    unsafe { simd_shl(a, vdupq_n_s8(N as _)) }
62563}
62564#[doc = "Shift left"]
62565#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_n_s16)"]
62566#[inline]
62567#[target_feature(enable = "neon")]
62568#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62569#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
62570#[cfg_attr(
62571    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62572    assert_instr(shl, N = 2)
62573)]
62574#[rustc_legacy_const_generics(1)]
62575#[cfg_attr(
62576    not(target_arch = "arm"),
62577    stable(feature = "neon_intrinsics", since = "1.59.0")
62578)]
62579#[cfg_attr(
62580    target_arch = "arm",
62581    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62582)]
62583pub fn vshl_n_s16<const N: i32>(a: int16x4_t) -> int16x4_t {
62584    static_assert_uimm_bits!(N, 4);
62585    unsafe { simd_shl(a, vdup_n_s16(N as _)) }
62586}
62587#[doc = "Shift left"]
62588#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_n_s16)"]
62589#[inline]
62590#[target_feature(enable = "neon")]
62591#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62592#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
62593#[cfg_attr(
62594    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62595    assert_instr(shl, N = 2)
62596)]
62597#[rustc_legacy_const_generics(1)]
62598#[cfg_attr(
62599    not(target_arch = "arm"),
62600    stable(feature = "neon_intrinsics", since = "1.59.0")
62601)]
62602#[cfg_attr(
62603    target_arch = "arm",
62604    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62605)]
62606pub fn vshlq_n_s16<const N: i32>(a: int16x8_t) -> int16x8_t {
62607    static_assert_uimm_bits!(N, 4);
62608    unsafe { simd_shl(a, vdupq_n_s16(N as _)) }
62609}
62610#[doc = "Shift left"]
62611#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_n_s32)"]
62612#[inline]
62613#[target_feature(enable = "neon")]
62614#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62615#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
62616#[cfg_attr(
62617    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62618    assert_instr(shl, N = 2)
62619)]
62620#[rustc_legacy_const_generics(1)]
62621#[cfg_attr(
62622    not(target_arch = "arm"),
62623    stable(feature = "neon_intrinsics", since = "1.59.0")
62624)]
62625#[cfg_attr(
62626    target_arch = "arm",
62627    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62628)]
62629pub fn vshl_n_s32<const N: i32>(a: int32x2_t) -> int32x2_t {
62630    static_assert_uimm_bits!(N, 5);
62631    unsafe { simd_shl(a, vdup_n_s32(N as _)) }
62632}
62633#[doc = "Shift left"]
62634#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_n_s32)"]
62635#[inline]
62636#[target_feature(enable = "neon")]
62637#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62638#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
62639#[cfg_attr(
62640    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62641    assert_instr(shl, N = 2)
62642)]
62643#[rustc_legacy_const_generics(1)]
62644#[cfg_attr(
62645    not(target_arch = "arm"),
62646    stable(feature = "neon_intrinsics", since = "1.59.0")
62647)]
62648#[cfg_attr(
62649    target_arch = "arm",
62650    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62651)]
62652pub fn vshlq_n_s32<const N: i32>(a: int32x4_t) -> int32x4_t {
62653    static_assert_uimm_bits!(N, 5);
62654    unsafe { simd_shl(a, vdupq_n_s32(N as _)) }
62655}
62656#[doc = "Shift left"]
62657#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_n_s64)"]
62658#[inline]
62659#[target_feature(enable = "neon")]
62660#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62661#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
62662#[cfg_attr(
62663    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62664    assert_instr(shl, N = 2)
62665)]
62666#[rustc_legacy_const_generics(1)]
62667#[cfg_attr(
62668    not(target_arch = "arm"),
62669    stable(feature = "neon_intrinsics", since = "1.59.0")
62670)]
62671#[cfg_attr(
62672    target_arch = "arm",
62673    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62674)]
62675pub fn vshl_n_s64<const N: i32>(a: int64x1_t) -> int64x1_t {
62676    static_assert_uimm_bits!(N, 6);
62677    unsafe { simd_shl(a, vdup_n_s64(N as _)) }
62678}
62679#[doc = "Shift left"]
62680#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_n_s64)"]
62681#[inline]
62682#[target_feature(enable = "neon")]
62683#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62684#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
62685#[cfg_attr(
62686    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62687    assert_instr(shl, N = 2)
62688)]
62689#[rustc_legacy_const_generics(1)]
62690#[cfg_attr(
62691    not(target_arch = "arm"),
62692    stable(feature = "neon_intrinsics", since = "1.59.0")
62693)]
62694#[cfg_attr(
62695    target_arch = "arm",
62696    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62697)]
62698pub fn vshlq_n_s64<const N: i32>(a: int64x2_t) -> int64x2_t {
62699    static_assert_uimm_bits!(N, 6);
62700    unsafe { simd_shl(a, vdupq_n_s64(N as _)) }
62701}
62702#[doc = "Shift left"]
62703#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_n_u8)"]
62704#[inline]
62705#[target_feature(enable = "neon")]
62706#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62707#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
62708#[cfg_attr(
62709    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62710    assert_instr(shl, N = 2)
62711)]
62712#[rustc_legacy_const_generics(1)]
62713#[cfg_attr(
62714    not(target_arch = "arm"),
62715    stable(feature = "neon_intrinsics", since = "1.59.0")
62716)]
62717#[cfg_attr(
62718    target_arch = "arm",
62719    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62720)]
62721pub fn vshl_n_u8<const N: i32>(a: uint8x8_t) -> uint8x8_t {
62722    static_assert_uimm_bits!(N, 3);
62723    unsafe { simd_shl(a, vdup_n_u8(N as _)) }
62724}
62725#[doc = "Shift left"]
62726#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_n_u8)"]
62727#[inline]
62728#[target_feature(enable = "neon")]
62729#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62730#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
62731#[cfg_attr(
62732    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62733    assert_instr(shl, N = 2)
62734)]
62735#[rustc_legacy_const_generics(1)]
62736#[cfg_attr(
62737    not(target_arch = "arm"),
62738    stable(feature = "neon_intrinsics", since = "1.59.0")
62739)]
62740#[cfg_attr(
62741    target_arch = "arm",
62742    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62743)]
62744pub fn vshlq_n_u8<const N: i32>(a: uint8x16_t) -> uint8x16_t {
62745    static_assert_uimm_bits!(N, 3);
62746    unsafe { simd_shl(a, vdupq_n_u8(N as _)) }
62747}
62748#[doc = "Shift left"]
62749#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_n_u16)"]
62750#[inline]
62751#[target_feature(enable = "neon")]
62752#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62753#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
62754#[cfg_attr(
62755    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62756    assert_instr(shl, N = 2)
62757)]
62758#[rustc_legacy_const_generics(1)]
62759#[cfg_attr(
62760    not(target_arch = "arm"),
62761    stable(feature = "neon_intrinsics", since = "1.59.0")
62762)]
62763#[cfg_attr(
62764    target_arch = "arm",
62765    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62766)]
62767pub fn vshl_n_u16<const N: i32>(a: uint16x4_t) -> uint16x4_t {
62768    static_assert_uimm_bits!(N, 4);
62769    unsafe { simd_shl(a, vdup_n_u16(N as _)) }
62770}
62771#[doc = "Shift left"]
62772#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_n_u16)"]
62773#[inline]
62774#[target_feature(enable = "neon")]
62775#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62776#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
62777#[cfg_attr(
62778    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62779    assert_instr(shl, N = 2)
62780)]
62781#[rustc_legacy_const_generics(1)]
62782#[cfg_attr(
62783    not(target_arch = "arm"),
62784    stable(feature = "neon_intrinsics", since = "1.59.0")
62785)]
62786#[cfg_attr(
62787    target_arch = "arm",
62788    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62789)]
62790pub fn vshlq_n_u16<const N: i32>(a: uint16x8_t) -> uint16x8_t {
62791    static_assert_uimm_bits!(N, 4);
62792    unsafe { simd_shl(a, vdupq_n_u16(N as _)) }
62793}
62794#[doc = "Shift left"]
62795#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_n_u32)"]
62796#[inline]
62797#[target_feature(enable = "neon")]
62798#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62799#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
62800#[cfg_attr(
62801    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62802    assert_instr(shl, N = 2)
62803)]
62804#[rustc_legacy_const_generics(1)]
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 vshl_n_u32<const N: i32>(a: uint32x2_t) -> uint32x2_t {
62814    static_assert_uimm_bits!(N, 5);
62815    unsafe { simd_shl(a, vdup_n_u32(N as _)) }
62816}
62817#[doc = "Shift left"]
62818#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_n_u32)"]
62819#[inline]
62820#[target_feature(enable = "neon")]
62821#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62822#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
62823#[cfg_attr(
62824    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62825    assert_instr(shl, N = 2)
62826)]
62827#[rustc_legacy_const_generics(1)]
62828#[cfg_attr(
62829    not(target_arch = "arm"),
62830    stable(feature = "neon_intrinsics", since = "1.59.0")
62831)]
62832#[cfg_attr(
62833    target_arch = "arm",
62834    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62835)]
62836pub fn vshlq_n_u32<const N: i32>(a: uint32x4_t) -> uint32x4_t {
62837    static_assert_uimm_bits!(N, 5);
62838    unsafe { simd_shl(a, vdupq_n_u32(N as _)) }
62839}
62840#[doc = "Shift left"]
62841#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_n_u64)"]
62842#[inline]
62843#[target_feature(enable = "neon")]
62844#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62845#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
62846#[cfg_attr(
62847    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62848    assert_instr(shl, N = 2)
62849)]
62850#[rustc_legacy_const_generics(1)]
62851#[cfg_attr(
62852    not(target_arch = "arm"),
62853    stable(feature = "neon_intrinsics", since = "1.59.0")
62854)]
62855#[cfg_attr(
62856    target_arch = "arm",
62857    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62858)]
62859pub fn vshl_n_u64<const N: i32>(a: uint64x1_t) -> uint64x1_t {
62860    static_assert_uimm_bits!(N, 6);
62861    unsafe { simd_shl(a, vdup_n_u64(N as _)) }
62862}
62863#[doc = "Shift left"]
62864#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_n_u64)"]
62865#[inline]
62866#[target_feature(enable = "neon")]
62867#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62868#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
62869#[cfg_attr(
62870    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62871    assert_instr(shl, N = 2)
62872)]
62873#[rustc_legacy_const_generics(1)]
62874#[cfg_attr(
62875    not(target_arch = "arm"),
62876    stable(feature = "neon_intrinsics", since = "1.59.0")
62877)]
62878#[cfg_attr(
62879    target_arch = "arm",
62880    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62881)]
62882pub fn vshlq_n_u64<const N: i32>(a: uint64x2_t) -> uint64x2_t {
62883    static_assert_uimm_bits!(N, 6);
62884    unsafe { simd_shl(a, vdupq_n_u64(N as _)) }
62885}
62886#[doc = "Signed Shift left"]
62887#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_s8)"]
62888#[inline]
62889#[target_feature(enable = "neon")]
62890#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62891#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
62892#[cfg_attr(
62893    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62894    assert_instr(sshl)
62895)]
62896#[cfg_attr(
62897    not(target_arch = "arm"),
62898    stable(feature = "neon_intrinsics", since = "1.59.0")
62899)]
62900#[cfg_attr(
62901    target_arch = "arm",
62902    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62903)]
62904pub fn vshl_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
62905    unsafe extern "unadjusted" {
62906        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshifts.v8i8")]
62907        #[cfg_attr(
62908            any(target_arch = "aarch64", target_arch = "arm64ec"),
62909            link_name = "llvm.aarch64.neon.sshl.v8i8"
62910        )]
62911        fn _vshl_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t;
62912    }
62913    unsafe { _vshl_s8(a, b) }
62914}
62915#[doc = "Signed Shift left"]
62916#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_s8)"]
62917#[inline]
62918#[target_feature(enable = "neon")]
62919#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62920#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
62921#[cfg_attr(
62922    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62923    assert_instr(sshl)
62924)]
62925#[cfg_attr(
62926    not(target_arch = "arm"),
62927    stable(feature = "neon_intrinsics", since = "1.59.0")
62928)]
62929#[cfg_attr(
62930    target_arch = "arm",
62931    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62932)]
62933pub fn vshlq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
62934    unsafe extern "unadjusted" {
62935        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshifts.v16i8")]
62936        #[cfg_attr(
62937            any(target_arch = "aarch64", target_arch = "arm64ec"),
62938            link_name = "llvm.aarch64.neon.sshl.v16i8"
62939        )]
62940        fn _vshlq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t;
62941    }
62942    unsafe { _vshlq_s8(a, b) }
62943}
62944#[doc = "Signed Shift left"]
62945#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_s16)"]
62946#[inline]
62947#[target_feature(enable = "neon")]
62948#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62949#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
62950#[cfg_attr(
62951    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62952    assert_instr(sshl)
62953)]
62954#[cfg_attr(
62955    not(target_arch = "arm"),
62956    stable(feature = "neon_intrinsics", since = "1.59.0")
62957)]
62958#[cfg_attr(
62959    target_arch = "arm",
62960    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62961)]
62962pub fn vshl_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
62963    unsafe extern "unadjusted" {
62964        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshifts.v4i16")]
62965        #[cfg_attr(
62966            any(target_arch = "aarch64", target_arch = "arm64ec"),
62967            link_name = "llvm.aarch64.neon.sshl.v4i16"
62968        )]
62969        fn _vshl_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t;
62970    }
62971    unsafe { _vshl_s16(a, b) }
62972}
62973#[doc = "Signed Shift left"]
62974#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_s16)"]
62975#[inline]
62976#[target_feature(enable = "neon")]
62977#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62978#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
62979#[cfg_attr(
62980    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62981    assert_instr(sshl)
62982)]
62983#[cfg_attr(
62984    not(target_arch = "arm"),
62985    stable(feature = "neon_intrinsics", since = "1.59.0")
62986)]
62987#[cfg_attr(
62988    target_arch = "arm",
62989    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62990)]
62991pub fn vshlq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
62992    unsafe extern "unadjusted" {
62993        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshifts.v8i16")]
62994        #[cfg_attr(
62995            any(target_arch = "aarch64", target_arch = "arm64ec"),
62996            link_name = "llvm.aarch64.neon.sshl.v8i16"
62997        )]
62998        fn _vshlq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t;
62999    }
63000    unsafe { _vshlq_s16(a, b) }
63001}
63002#[doc = "Signed Shift left"]
63003#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_s32)"]
63004#[inline]
63005#[target_feature(enable = "neon")]
63006#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63007#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
63008#[cfg_attr(
63009    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63010    assert_instr(sshl)
63011)]
63012#[cfg_attr(
63013    not(target_arch = "arm"),
63014    stable(feature = "neon_intrinsics", since = "1.59.0")
63015)]
63016#[cfg_attr(
63017    target_arch = "arm",
63018    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63019)]
63020pub fn vshl_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
63021    unsafe extern "unadjusted" {
63022        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshifts.v2i32")]
63023        #[cfg_attr(
63024            any(target_arch = "aarch64", target_arch = "arm64ec"),
63025            link_name = "llvm.aarch64.neon.sshl.v2i32"
63026        )]
63027        fn _vshl_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t;
63028    }
63029    unsafe { _vshl_s32(a, b) }
63030}
63031#[doc = "Signed Shift left"]
63032#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_s32)"]
63033#[inline]
63034#[target_feature(enable = "neon")]
63035#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63036#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
63037#[cfg_attr(
63038    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63039    assert_instr(sshl)
63040)]
63041#[cfg_attr(
63042    not(target_arch = "arm"),
63043    stable(feature = "neon_intrinsics", since = "1.59.0")
63044)]
63045#[cfg_attr(
63046    target_arch = "arm",
63047    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63048)]
63049pub fn vshlq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
63050    unsafe extern "unadjusted" {
63051        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshifts.v4i32")]
63052        #[cfg_attr(
63053            any(target_arch = "aarch64", target_arch = "arm64ec"),
63054            link_name = "llvm.aarch64.neon.sshl.v4i32"
63055        )]
63056        fn _vshlq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t;
63057    }
63058    unsafe { _vshlq_s32(a, b) }
63059}
63060#[doc = "Signed Shift left"]
63061#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_s64)"]
63062#[inline]
63063#[target_feature(enable = "neon")]
63064#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63065#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
63066#[cfg_attr(
63067    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63068    assert_instr(sshl)
63069)]
63070#[cfg_attr(
63071    not(target_arch = "arm"),
63072    stable(feature = "neon_intrinsics", since = "1.59.0")
63073)]
63074#[cfg_attr(
63075    target_arch = "arm",
63076    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63077)]
63078pub fn vshl_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t {
63079    unsafe extern "unadjusted" {
63080        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshifts.v1i64")]
63081        #[cfg_attr(
63082            any(target_arch = "aarch64", target_arch = "arm64ec"),
63083            link_name = "llvm.aarch64.neon.sshl.v1i64"
63084        )]
63085        fn _vshl_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t;
63086    }
63087    unsafe { _vshl_s64(a, b) }
63088}
63089#[doc = "Signed Shift left"]
63090#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_s64)"]
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(vshl))]
63095#[cfg_attr(
63096    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63097    assert_instr(sshl)
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 vshlq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t {
63108    unsafe extern "unadjusted" {
63109        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshifts.v2i64")]
63110        #[cfg_attr(
63111            any(target_arch = "aarch64", target_arch = "arm64ec"),
63112            link_name = "llvm.aarch64.neon.sshl.v2i64"
63113        )]
63114        fn _vshlq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t;
63115    }
63116    unsafe { _vshlq_s64(a, b) }
63117}
63118#[doc = "Unsigned Shift left"]
63119#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_u8)"]
63120#[inline]
63121#[target_feature(enable = "neon")]
63122#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63123#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
63124#[cfg_attr(
63125    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63126    assert_instr(ushl)
63127)]
63128#[cfg_attr(
63129    not(target_arch = "arm"),
63130    stable(feature = "neon_intrinsics", since = "1.59.0")
63131)]
63132#[cfg_attr(
63133    target_arch = "arm",
63134    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63135)]
63136pub fn vshl_u8(a: uint8x8_t, b: int8x8_t) -> uint8x8_t {
63137    unsafe extern "unadjusted" {
63138        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftu.v8i8")]
63139        #[cfg_attr(
63140            any(target_arch = "aarch64", target_arch = "arm64ec"),
63141            link_name = "llvm.aarch64.neon.ushl.v8i8"
63142        )]
63143        fn _vshl_u8(a: uint8x8_t, b: int8x8_t) -> uint8x8_t;
63144    }
63145    unsafe { _vshl_u8(a, b) }
63146}
63147#[doc = "Unsigned Shift left"]
63148#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_u8)"]
63149#[inline]
63150#[target_feature(enable = "neon")]
63151#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63152#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
63153#[cfg_attr(
63154    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63155    assert_instr(ushl)
63156)]
63157#[cfg_attr(
63158    not(target_arch = "arm"),
63159    stable(feature = "neon_intrinsics", since = "1.59.0")
63160)]
63161#[cfg_attr(
63162    target_arch = "arm",
63163    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63164)]
63165pub fn vshlq_u8(a: uint8x16_t, b: int8x16_t) -> uint8x16_t {
63166    unsafe extern "unadjusted" {
63167        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftu.v16i8")]
63168        #[cfg_attr(
63169            any(target_arch = "aarch64", target_arch = "arm64ec"),
63170            link_name = "llvm.aarch64.neon.ushl.v16i8"
63171        )]
63172        fn _vshlq_u8(a: uint8x16_t, b: int8x16_t) -> uint8x16_t;
63173    }
63174    unsafe { _vshlq_u8(a, b) }
63175}
63176#[doc = "Unsigned Shift left"]
63177#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_u16)"]
63178#[inline]
63179#[target_feature(enable = "neon")]
63180#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63181#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
63182#[cfg_attr(
63183    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63184    assert_instr(ushl)
63185)]
63186#[cfg_attr(
63187    not(target_arch = "arm"),
63188    stable(feature = "neon_intrinsics", since = "1.59.0")
63189)]
63190#[cfg_attr(
63191    target_arch = "arm",
63192    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63193)]
63194pub fn vshl_u16(a: uint16x4_t, b: int16x4_t) -> uint16x4_t {
63195    unsafe extern "unadjusted" {
63196        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftu.v4i16")]
63197        #[cfg_attr(
63198            any(target_arch = "aarch64", target_arch = "arm64ec"),
63199            link_name = "llvm.aarch64.neon.ushl.v4i16"
63200        )]
63201        fn _vshl_u16(a: uint16x4_t, b: int16x4_t) -> uint16x4_t;
63202    }
63203    unsafe { _vshl_u16(a, b) }
63204}
63205#[doc = "Unsigned Shift left"]
63206#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_u16)"]
63207#[inline]
63208#[target_feature(enable = "neon")]
63209#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63210#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
63211#[cfg_attr(
63212    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63213    assert_instr(ushl)
63214)]
63215#[cfg_attr(
63216    not(target_arch = "arm"),
63217    stable(feature = "neon_intrinsics", since = "1.59.0")
63218)]
63219#[cfg_attr(
63220    target_arch = "arm",
63221    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63222)]
63223pub fn vshlq_u16(a: uint16x8_t, b: int16x8_t) -> uint16x8_t {
63224    unsafe extern "unadjusted" {
63225        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftu.v8i16")]
63226        #[cfg_attr(
63227            any(target_arch = "aarch64", target_arch = "arm64ec"),
63228            link_name = "llvm.aarch64.neon.ushl.v8i16"
63229        )]
63230        fn _vshlq_u16(a: uint16x8_t, b: int16x8_t) -> uint16x8_t;
63231    }
63232    unsafe { _vshlq_u16(a, b) }
63233}
63234#[doc = "Unsigned Shift left"]
63235#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_u32)"]
63236#[inline]
63237#[target_feature(enable = "neon")]
63238#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63239#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
63240#[cfg_attr(
63241    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63242    assert_instr(ushl)
63243)]
63244#[cfg_attr(
63245    not(target_arch = "arm"),
63246    stable(feature = "neon_intrinsics", since = "1.59.0")
63247)]
63248#[cfg_attr(
63249    target_arch = "arm",
63250    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63251)]
63252pub fn vshl_u32(a: uint32x2_t, b: int32x2_t) -> uint32x2_t {
63253    unsafe extern "unadjusted" {
63254        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftu.v2i32")]
63255        #[cfg_attr(
63256            any(target_arch = "aarch64", target_arch = "arm64ec"),
63257            link_name = "llvm.aarch64.neon.ushl.v2i32"
63258        )]
63259        fn _vshl_u32(a: uint32x2_t, b: int32x2_t) -> uint32x2_t;
63260    }
63261    unsafe { _vshl_u32(a, b) }
63262}
63263#[doc = "Unsigned Shift left"]
63264#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_u32)"]
63265#[inline]
63266#[target_feature(enable = "neon")]
63267#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63268#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
63269#[cfg_attr(
63270    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63271    assert_instr(ushl)
63272)]
63273#[cfg_attr(
63274    not(target_arch = "arm"),
63275    stable(feature = "neon_intrinsics", since = "1.59.0")
63276)]
63277#[cfg_attr(
63278    target_arch = "arm",
63279    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63280)]
63281pub fn vshlq_u32(a: uint32x4_t, b: int32x4_t) -> uint32x4_t {
63282    unsafe extern "unadjusted" {
63283        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftu.v4i32")]
63284        #[cfg_attr(
63285            any(target_arch = "aarch64", target_arch = "arm64ec"),
63286            link_name = "llvm.aarch64.neon.ushl.v4i32"
63287        )]
63288        fn _vshlq_u32(a: uint32x4_t, b: int32x4_t) -> uint32x4_t;
63289    }
63290    unsafe { _vshlq_u32(a, b) }
63291}
63292#[doc = "Unsigned Shift left"]
63293#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_u64)"]
63294#[inline]
63295#[target_feature(enable = "neon")]
63296#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63297#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
63298#[cfg_attr(
63299    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63300    assert_instr(ushl)
63301)]
63302#[cfg_attr(
63303    not(target_arch = "arm"),
63304    stable(feature = "neon_intrinsics", since = "1.59.0")
63305)]
63306#[cfg_attr(
63307    target_arch = "arm",
63308    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63309)]
63310pub fn vshl_u64(a: uint64x1_t, b: int64x1_t) -> uint64x1_t {
63311    unsafe extern "unadjusted" {
63312        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftu.v1i64")]
63313        #[cfg_attr(
63314            any(target_arch = "aarch64", target_arch = "arm64ec"),
63315            link_name = "llvm.aarch64.neon.ushl.v1i64"
63316        )]
63317        fn _vshl_u64(a: uint64x1_t, b: int64x1_t) -> uint64x1_t;
63318    }
63319    unsafe { _vshl_u64(a, b) }
63320}
63321#[doc = "Unsigned Shift left"]
63322#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_u64)"]
63323#[inline]
63324#[target_feature(enable = "neon")]
63325#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63326#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
63327#[cfg_attr(
63328    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63329    assert_instr(ushl)
63330)]
63331#[cfg_attr(
63332    not(target_arch = "arm"),
63333    stable(feature = "neon_intrinsics", since = "1.59.0")
63334)]
63335#[cfg_attr(
63336    target_arch = "arm",
63337    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63338)]
63339pub fn vshlq_u64(a: uint64x2_t, b: int64x2_t) -> uint64x2_t {
63340    unsafe extern "unadjusted" {
63341        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftu.v2i64")]
63342        #[cfg_attr(
63343            any(target_arch = "aarch64", target_arch = "arm64ec"),
63344            link_name = "llvm.aarch64.neon.ushl.v2i64"
63345        )]
63346        fn _vshlq_u64(a: uint64x2_t, b: int64x2_t) -> uint64x2_t;
63347    }
63348    unsafe { _vshlq_u64(a, b) }
63349}
63350#[doc = "Signed shift left long"]
63351#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshll_n_s16)"]
63352#[inline]
63353#[target_feature(enable = "neon")]
63354#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63355#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshll.s16", N = 2))]
63356#[cfg_attr(
63357    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63358    assert_instr(sshll, N = 2)
63359)]
63360#[rustc_legacy_const_generics(1)]
63361#[cfg_attr(
63362    not(target_arch = "arm"),
63363    stable(feature = "neon_intrinsics", since = "1.59.0")
63364)]
63365#[cfg_attr(
63366    target_arch = "arm",
63367    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63368)]
63369pub fn vshll_n_s16<const N: i32>(a: int16x4_t) -> int32x4_t {
63370    static_assert!(N >= 0 && N <= 16);
63371    unsafe { simd_shl(simd_cast(a), vdupq_n_s32(N as _)) }
63372}
63373#[doc = "Signed shift left long"]
63374#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshll_n_s32)"]
63375#[inline]
63376#[target_feature(enable = "neon")]
63377#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63378#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshll.s32", N = 2))]
63379#[cfg_attr(
63380    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63381    assert_instr(sshll, N = 2)
63382)]
63383#[rustc_legacy_const_generics(1)]
63384#[cfg_attr(
63385    not(target_arch = "arm"),
63386    stable(feature = "neon_intrinsics", since = "1.59.0")
63387)]
63388#[cfg_attr(
63389    target_arch = "arm",
63390    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63391)]
63392pub fn vshll_n_s32<const N: i32>(a: int32x2_t) -> int64x2_t {
63393    static_assert!(N >= 0 && N <= 32);
63394    unsafe { simd_shl(simd_cast(a), vdupq_n_s64(N as _)) }
63395}
63396#[doc = "Signed shift left long"]
63397#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshll_n_s8)"]
63398#[inline]
63399#[target_feature(enable = "neon")]
63400#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63401#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshll.s8", N = 2))]
63402#[cfg_attr(
63403    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63404    assert_instr(sshll, N = 2)
63405)]
63406#[rustc_legacy_const_generics(1)]
63407#[cfg_attr(
63408    not(target_arch = "arm"),
63409    stable(feature = "neon_intrinsics", since = "1.59.0")
63410)]
63411#[cfg_attr(
63412    target_arch = "arm",
63413    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63414)]
63415pub fn vshll_n_s8<const N: i32>(a: int8x8_t) -> int16x8_t {
63416    static_assert!(N >= 0 && N <= 8);
63417    unsafe { simd_shl(simd_cast(a), vdupq_n_s16(N as _)) }
63418}
63419#[doc = "Signed shift left long"]
63420#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshll_n_u16)"]
63421#[inline]
63422#[target_feature(enable = "neon")]
63423#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63424#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshll.u16", N = 2))]
63425#[cfg_attr(
63426    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63427    assert_instr(ushll, N = 2)
63428)]
63429#[rustc_legacy_const_generics(1)]
63430#[cfg_attr(
63431    not(target_arch = "arm"),
63432    stable(feature = "neon_intrinsics", since = "1.59.0")
63433)]
63434#[cfg_attr(
63435    target_arch = "arm",
63436    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63437)]
63438pub fn vshll_n_u16<const N: i32>(a: uint16x4_t) -> uint32x4_t {
63439    static_assert!(N >= 0 && N <= 16);
63440    unsafe { simd_shl(simd_cast(a), vdupq_n_u32(N as _)) }
63441}
63442#[doc = "Signed shift left long"]
63443#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshll_n_u32)"]
63444#[inline]
63445#[target_feature(enable = "neon")]
63446#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63447#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshll.u32", N = 2))]
63448#[cfg_attr(
63449    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63450    assert_instr(ushll, N = 2)
63451)]
63452#[rustc_legacy_const_generics(1)]
63453#[cfg_attr(
63454    not(target_arch = "arm"),
63455    stable(feature = "neon_intrinsics", since = "1.59.0")
63456)]
63457#[cfg_attr(
63458    target_arch = "arm",
63459    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63460)]
63461pub fn vshll_n_u32<const N: i32>(a: uint32x2_t) -> uint64x2_t {
63462    static_assert!(N >= 0 && N <= 32);
63463    unsafe { simd_shl(simd_cast(a), vdupq_n_u64(N as _)) }
63464}
63465#[doc = "Signed shift left long"]
63466#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshll_n_u8)"]
63467#[inline]
63468#[target_feature(enable = "neon")]
63469#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63470#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshll.u8", N = 2))]
63471#[cfg_attr(
63472    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63473    assert_instr(ushll, N = 2)
63474)]
63475#[rustc_legacy_const_generics(1)]
63476#[cfg_attr(
63477    not(target_arch = "arm"),
63478    stable(feature = "neon_intrinsics", since = "1.59.0")
63479)]
63480#[cfg_attr(
63481    target_arch = "arm",
63482    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63483)]
63484pub fn vshll_n_u8<const N: i32>(a: uint8x8_t) -> uint16x8_t {
63485    static_assert!(N >= 0 && N <= 8);
63486    unsafe { simd_shl(simd_cast(a), vdupq_n_u16(N as _)) }
63487}
63488#[doc = "Shift right"]
63489#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshr_n_s8)"]
63490#[inline]
63491#[target_feature(enable = "neon")]
63492#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63493#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.s8", N = 2))]
63494#[cfg_attr(
63495    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63496    assert_instr(sshr, N = 2)
63497)]
63498#[rustc_legacy_const_generics(1)]
63499#[cfg_attr(
63500    not(target_arch = "arm"),
63501    stable(feature = "neon_intrinsics", since = "1.59.0")
63502)]
63503#[cfg_attr(
63504    target_arch = "arm",
63505    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63506)]
63507pub fn vshr_n_s8<const N: i32>(a: int8x8_t) -> int8x8_t {
63508    static_assert!(N >= 1 && N <= 8);
63509    let n: i32 = if N == 8 { 7 } else { N };
63510    unsafe { simd_shr(a, vdup_n_s8(n as _)) }
63511}
63512#[doc = "Shift right"]
63513#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrq_n_s8)"]
63514#[inline]
63515#[target_feature(enable = "neon")]
63516#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63517#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.s8", N = 2))]
63518#[cfg_attr(
63519    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63520    assert_instr(sshr, N = 2)
63521)]
63522#[rustc_legacy_const_generics(1)]
63523#[cfg_attr(
63524    not(target_arch = "arm"),
63525    stable(feature = "neon_intrinsics", since = "1.59.0")
63526)]
63527#[cfg_attr(
63528    target_arch = "arm",
63529    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63530)]
63531pub fn vshrq_n_s8<const N: i32>(a: int8x16_t) -> int8x16_t {
63532    static_assert!(N >= 1 && N <= 8);
63533    let n: i32 = if N == 8 { 7 } else { N };
63534    unsafe { simd_shr(a, vdupq_n_s8(n as _)) }
63535}
63536#[doc = "Shift right"]
63537#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshr_n_s16)"]
63538#[inline]
63539#[target_feature(enable = "neon")]
63540#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63541#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.s16", N = 2))]
63542#[cfg_attr(
63543    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63544    assert_instr(sshr, N = 2)
63545)]
63546#[rustc_legacy_const_generics(1)]
63547#[cfg_attr(
63548    not(target_arch = "arm"),
63549    stable(feature = "neon_intrinsics", since = "1.59.0")
63550)]
63551#[cfg_attr(
63552    target_arch = "arm",
63553    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63554)]
63555pub fn vshr_n_s16<const N: i32>(a: int16x4_t) -> int16x4_t {
63556    static_assert!(N >= 1 && N <= 16);
63557    let n: i32 = if N == 16 { 15 } else { N };
63558    unsafe { simd_shr(a, vdup_n_s16(n as _)) }
63559}
63560#[doc = "Shift right"]
63561#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrq_n_s16)"]
63562#[inline]
63563#[target_feature(enable = "neon")]
63564#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63565#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.s16", N = 2))]
63566#[cfg_attr(
63567    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63568    assert_instr(sshr, N = 2)
63569)]
63570#[rustc_legacy_const_generics(1)]
63571#[cfg_attr(
63572    not(target_arch = "arm"),
63573    stable(feature = "neon_intrinsics", since = "1.59.0")
63574)]
63575#[cfg_attr(
63576    target_arch = "arm",
63577    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63578)]
63579pub fn vshrq_n_s16<const N: i32>(a: int16x8_t) -> int16x8_t {
63580    static_assert!(N >= 1 && N <= 16);
63581    let n: i32 = if N == 16 { 15 } else { N };
63582    unsafe { simd_shr(a, vdupq_n_s16(n as _)) }
63583}
63584#[doc = "Shift right"]
63585#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshr_n_s32)"]
63586#[inline]
63587#[target_feature(enable = "neon")]
63588#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63589#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.s32", N = 2))]
63590#[cfg_attr(
63591    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63592    assert_instr(sshr, N = 2)
63593)]
63594#[rustc_legacy_const_generics(1)]
63595#[cfg_attr(
63596    not(target_arch = "arm"),
63597    stable(feature = "neon_intrinsics", since = "1.59.0")
63598)]
63599#[cfg_attr(
63600    target_arch = "arm",
63601    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63602)]
63603pub fn vshr_n_s32<const N: i32>(a: int32x2_t) -> int32x2_t {
63604    static_assert!(N >= 1 && N <= 32);
63605    let n: i32 = if N == 32 { 31 } else { N };
63606    unsafe { simd_shr(a, vdup_n_s32(n as _)) }
63607}
63608#[doc = "Shift right"]
63609#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrq_n_s32)"]
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("vshr.s32", N = 2))]
63614#[cfg_attr(
63615    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63616    assert_instr(sshr, N = 2)
63617)]
63618#[rustc_legacy_const_generics(1)]
63619#[cfg_attr(
63620    not(target_arch = "arm"),
63621    stable(feature = "neon_intrinsics", since = "1.59.0")
63622)]
63623#[cfg_attr(
63624    target_arch = "arm",
63625    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63626)]
63627pub fn vshrq_n_s32<const N: i32>(a: int32x4_t) -> int32x4_t {
63628    static_assert!(N >= 1 && N <= 32);
63629    let n: i32 = if N == 32 { 31 } else { N };
63630    unsafe { simd_shr(a, vdupq_n_s32(n as _)) }
63631}
63632#[doc = "Shift right"]
63633#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshr_n_s64)"]
63634#[inline]
63635#[target_feature(enable = "neon")]
63636#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63637#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.s64", N = 2))]
63638#[cfg_attr(
63639    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63640    assert_instr(sshr, N = 2)
63641)]
63642#[rustc_legacy_const_generics(1)]
63643#[cfg_attr(
63644    not(target_arch = "arm"),
63645    stable(feature = "neon_intrinsics", since = "1.59.0")
63646)]
63647#[cfg_attr(
63648    target_arch = "arm",
63649    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63650)]
63651pub fn vshr_n_s64<const N: i32>(a: int64x1_t) -> int64x1_t {
63652    static_assert!(N >= 1 && N <= 64);
63653    let n: i32 = if N == 64 { 63 } else { N };
63654    unsafe { simd_shr(a, vdup_n_s64(n as _)) }
63655}
63656#[doc = "Shift right"]
63657#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrq_n_s64)"]
63658#[inline]
63659#[target_feature(enable = "neon")]
63660#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63661#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.s64", N = 2))]
63662#[cfg_attr(
63663    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63664    assert_instr(sshr, N = 2)
63665)]
63666#[rustc_legacy_const_generics(1)]
63667#[cfg_attr(
63668    not(target_arch = "arm"),
63669    stable(feature = "neon_intrinsics", since = "1.59.0")
63670)]
63671#[cfg_attr(
63672    target_arch = "arm",
63673    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63674)]
63675pub fn vshrq_n_s64<const N: i32>(a: int64x2_t) -> int64x2_t {
63676    static_assert!(N >= 1 && N <= 64);
63677    let n: i32 = if N == 64 { 63 } else { N };
63678    unsafe { simd_shr(a, vdupq_n_s64(n as _)) }
63679}
63680#[doc = "Shift right"]
63681#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshr_n_u8)"]
63682#[inline]
63683#[target_feature(enable = "neon")]
63684#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63685#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.u8", N = 2))]
63686#[cfg_attr(
63687    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63688    assert_instr(ushr, N = 2)
63689)]
63690#[rustc_legacy_const_generics(1)]
63691#[cfg_attr(
63692    not(target_arch = "arm"),
63693    stable(feature = "neon_intrinsics", since = "1.59.0")
63694)]
63695#[cfg_attr(
63696    target_arch = "arm",
63697    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63698)]
63699pub fn vshr_n_u8<const N: i32>(a: uint8x8_t) -> uint8x8_t {
63700    static_assert!(N >= 1 && N <= 8);
63701    let n: i32 = if N == 8 {
63702        return vdup_n_u8(0);
63703    } else {
63704        N
63705    };
63706    unsafe { simd_shr(a, vdup_n_u8(n as _)) }
63707}
63708#[doc = "Shift right"]
63709#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrq_n_u8)"]
63710#[inline]
63711#[target_feature(enable = "neon")]
63712#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63713#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.u8", N = 2))]
63714#[cfg_attr(
63715    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63716    assert_instr(ushr, N = 2)
63717)]
63718#[rustc_legacy_const_generics(1)]
63719#[cfg_attr(
63720    not(target_arch = "arm"),
63721    stable(feature = "neon_intrinsics", since = "1.59.0")
63722)]
63723#[cfg_attr(
63724    target_arch = "arm",
63725    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63726)]
63727pub fn vshrq_n_u8<const N: i32>(a: uint8x16_t) -> uint8x16_t {
63728    static_assert!(N >= 1 && N <= 8);
63729    let n: i32 = if N == 8 {
63730        return vdupq_n_u8(0);
63731    } else {
63732        N
63733    };
63734    unsafe { simd_shr(a, vdupq_n_u8(n as _)) }
63735}
63736#[doc = "Shift right"]
63737#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshr_n_u16)"]
63738#[inline]
63739#[target_feature(enable = "neon")]
63740#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63741#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.u16", N = 2))]
63742#[cfg_attr(
63743    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63744    assert_instr(ushr, N = 2)
63745)]
63746#[rustc_legacy_const_generics(1)]
63747#[cfg_attr(
63748    not(target_arch = "arm"),
63749    stable(feature = "neon_intrinsics", since = "1.59.0")
63750)]
63751#[cfg_attr(
63752    target_arch = "arm",
63753    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63754)]
63755pub fn vshr_n_u16<const N: i32>(a: uint16x4_t) -> uint16x4_t {
63756    static_assert!(N >= 1 && N <= 16);
63757    let n: i32 = if N == 16 {
63758        return vdup_n_u16(0);
63759    } else {
63760        N
63761    };
63762    unsafe { simd_shr(a, vdup_n_u16(n as _)) }
63763}
63764#[doc = "Shift right"]
63765#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrq_n_u16)"]
63766#[inline]
63767#[target_feature(enable = "neon")]
63768#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63769#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.u16", N = 2))]
63770#[cfg_attr(
63771    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63772    assert_instr(ushr, N = 2)
63773)]
63774#[rustc_legacy_const_generics(1)]
63775#[cfg_attr(
63776    not(target_arch = "arm"),
63777    stable(feature = "neon_intrinsics", since = "1.59.0")
63778)]
63779#[cfg_attr(
63780    target_arch = "arm",
63781    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63782)]
63783pub fn vshrq_n_u16<const N: i32>(a: uint16x8_t) -> uint16x8_t {
63784    static_assert!(N >= 1 && N <= 16);
63785    let n: i32 = if N == 16 {
63786        return vdupq_n_u16(0);
63787    } else {
63788        N
63789    };
63790    unsafe { simd_shr(a, vdupq_n_u16(n as _)) }
63791}
63792#[doc = "Shift right"]
63793#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshr_n_u32)"]
63794#[inline]
63795#[target_feature(enable = "neon")]
63796#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63797#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.u32", N = 2))]
63798#[cfg_attr(
63799    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63800    assert_instr(ushr, N = 2)
63801)]
63802#[rustc_legacy_const_generics(1)]
63803#[cfg_attr(
63804    not(target_arch = "arm"),
63805    stable(feature = "neon_intrinsics", since = "1.59.0")
63806)]
63807#[cfg_attr(
63808    target_arch = "arm",
63809    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63810)]
63811pub fn vshr_n_u32<const N: i32>(a: uint32x2_t) -> uint32x2_t {
63812    static_assert!(N >= 1 && N <= 32);
63813    let n: i32 = if N == 32 {
63814        return vdup_n_u32(0);
63815    } else {
63816        N
63817    };
63818    unsafe { simd_shr(a, vdup_n_u32(n as _)) }
63819}
63820#[doc = "Shift right"]
63821#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrq_n_u32)"]
63822#[inline]
63823#[target_feature(enable = "neon")]
63824#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63825#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.u32", N = 2))]
63826#[cfg_attr(
63827    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63828    assert_instr(ushr, N = 2)
63829)]
63830#[rustc_legacy_const_generics(1)]
63831#[cfg_attr(
63832    not(target_arch = "arm"),
63833    stable(feature = "neon_intrinsics", since = "1.59.0")
63834)]
63835#[cfg_attr(
63836    target_arch = "arm",
63837    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63838)]
63839pub fn vshrq_n_u32<const N: i32>(a: uint32x4_t) -> uint32x4_t {
63840    static_assert!(N >= 1 && N <= 32);
63841    let n: i32 = if N == 32 {
63842        return vdupq_n_u32(0);
63843    } else {
63844        N
63845    };
63846    unsafe { simd_shr(a, vdupq_n_u32(n as _)) }
63847}
63848#[doc = "Shift right"]
63849#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshr_n_u64)"]
63850#[inline]
63851#[target_feature(enable = "neon")]
63852#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63853#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.u64", N = 2))]
63854#[cfg_attr(
63855    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63856    assert_instr(ushr, N = 2)
63857)]
63858#[rustc_legacy_const_generics(1)]
63859#[cfg_attr(
63860    not(target_arch = "arm"),
63861    stable(feature = "neon_intrinsics", since = "1.59.0")
63862)]
63863#[cfg_attr(
63864    target_arch = "arm",
63865    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63866)]
63867pub fn vshr_n_u64<const N: i32>(a: uint64x1_t) -> uint64x1_t {
63868    static_assert!(N >= 1 && N <= 64);
63869    let n: i32 = if N == 64 {
63870        return vdup_n_u64(0);
63871    } else {
63872        N
63873    };
63874    unsafe { simd_shr(a, vdup_n_u64(n as _)) }
63875}
63876#[doc = "Shift right"]
63877#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrq_n_u64)"]
63878#[inline]
63879#[target_feature(enable = "neon")]
63880#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63881#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.u64", N = 2))]
63882#[cfg_attr(
63883    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63884    assert_instr(ushr, N = 2)
63885)]
63886#[rustc_legacy_const_generics(1)]
63887#[cfg_attr(
63888    not(target_arch = "arm"),
63889    stable(feature = "neon_intrinsics", since = "1.59.0")
63890)]
63891#[cfg_attr(
63892    target_arch = "arm",
63893    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63894)]
63895pub fn vshrq_n_u64<const N: i32>(a: uint64x2_t) -> uint64x2_t {
63896    static_assert!(N >= 1 && N <= 64);
63897    let n: i32 = if N == 64 {
63898        return vdupq_n_u64(0);
63899    } else {
63900        N
63901    };
63902    unsafe { simd_shr(a, vdupq_n_u64(n as _)) }
63903}
63904#[doc = "Shift right narrow"]
63905#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrn_n_s16)"]
63906#[inline]
63907#[target_feature(enable = "neon")]
63908#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63909#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshrn.i16", N = 2))]
63910#[cfg_attr(
63911    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63912    assert_instr(shrn, N = 2)
63913)]
63914#[rustc_legacy_const_generics(1)]
63915#[cfg_attr(
63916    not(target_arch = "arm"),
63917    stable(feature = "neon_intrinsics", since = "1.59.0")
63918)]
63919#[cfg_attr(
63920    target_arch = "arm",
63921    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63922)]
63923pub fn vshrn_n_s16<const N: i32>(a: int16x8_t) -> int8x8_t {
63924    static_assert!(N >= 1 && N <= 8);
63925    unsafe { simd_cast(simd_shr(a, vdupq_n_s16(N as _))) }
63926}
63927#[doc = "Shift right narrow"]
63928#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrn_n_s32)"]
63929#[inline]
63930#[target_feature(enable = "neon")]
63931#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63932#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshrn.i32", N = 2))]
63933#[cfg_attr(
63934    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63935    assert_instr(shrn, N = 2)
63936)]
63937#[rustc_legacy_const_generics(1)]
63938#[cfg_attr(
63939    not(target_arch = "arm"),
63940    stable(feature = "neon_intrinsics", since = "1.59.0")
63941)]
63942#[cfg_attr(
63943    target_arch = "arm",
63944    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63945)]
63946pub fn vshrn_n_s32<const N: i32>(a: int32x4_t) -> int16x4_t {
63947    static_assert!(N >= 1 && N <= 16);
63948    unsafe { simd_cast(simd_shr(a, vdupq_n_s32(N as _))) }
63949}
63950#[doc = "Shift right narrow"]
63951#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrn_n_s64)"]
63952#[inline]
63953#[target_feature(enable = "neon")]
63954#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63955#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshrn.i64", N = 2))]
63956#[cfg_attr(
63957    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63958    assert_instr(shrn, N = 2)
63959)]
63960#[rustc_legacy_const_generics(1)]
63961#[cfg_attr(
63962    not(target_arch = "arm"),
63963    stable(feature = "neon_intrinsics", since = "1.59.0")
63964)]
63965#[cfg_attr(
63966    target_arch = "arm",
63967    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63968)]
63969pub fn vshrn_n_s64<const N: i32>(a: int64x2_t) -> int32x2_t {
63970    static_assert!(N >= 1 && N <= 32);
63971    unsafe { simd_cast(simd_shr(a, vdupq_n_s64(N as _))) }
63972}
63973#[doc = "Shift right narrow"]
63974#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrn_n_u16)"]
63975#[inline]
63976#[target_feature(enable = "neon")]
63977#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63978#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshrn.i16", N = 2))]
63979#[cfg_attr(
63980    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63981    assert_instr(shrn, N = 2)
63982)]
63983#[rustc_legacy_const_generics(1)]
63984#[cfg_attr(
63985    not(target_arch = "arm"),
63986    stable(feature = "neon_intrinsics", since = "1.59.0")
63987)]
63988#[cfg_attr(
63989    target_arch = "arm",
63990    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63991)]
63992pub fn vshrn_n_u16<const N: i32>(a: uint16x8_t) -> uint8x8_t {
63993    static_assert!(N >= 1 && N <= 8);
63994    unsafe { simd_cast(simd_shr(a, vdupq_n_u16(N as _))) }
63995}
63996#[doc = "Shift right narrow"]
63997#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrn_n_u32)"]
63998#[inline]
63999#[target_feature(enable = "neon")]
64000#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
64001#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshrn.i32", N = 2))]
64002#[cfg_attr(
64003    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64004    assert_instr(shrn, N = 2)
64005)]
64006#[rustc_legacy_const_generics(1)]
64007#[cfg_attr(
64008    not(target_arch = "arm"),
64009    stable(feature = "neon_intrinsics", since = "1.59.0")
64010)]
64011#[cfg_attr(
64012    target_arch = "arm",
64013    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
64014)]
64015pub fn vshrn_n_u32<const N: i32>(a: uint32x4_t) -> uint16x4_t {
64016    static_assert!(N >= 1 && N <= 16);
64017    unsafe { simd_cast(simd_shr(a, vdupq_n_u32(N as _))) }
64018}
64019#[doc = "Shift right narrow"]
64020#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrn_n_u64)"]
64021#[inline]
64022#[target_feature(enable = "neon")]
64023#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
64024#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshrn.i64", N = 2))]
64025#[cfg_attr(
64026    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64027    assert_instr(shrn, N = 2)
64028)]
64029#[rustc_legacy_const_generics(1)]
64030#[cfg_attr(
64031    not(target_arch = "arm"),
64032    stable(feature = "neon_intrinsics", since = "1.59.0")
64033)]
64034#[cfg_attr(
64035    target_arch = "arm",
64036    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
64037)]
64038pub fn vshrn_n_u64<const N: i32>(a: uint64x2_t) -> uint32x2_t {
64039    static_assert!(N >= 1 && N <= 32);
64040    unsafe { simd_cast(simd_shr(a, vdupq_n_u64(N as _))) }
64041}
64042#[doc = "Shift Left and Insert (immediate)"]
64043#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsli_n_s8)"]
64044#[inline]
64045#[cfg(target_arch = "arm")]
64046#[target_feature(enable = "neon,v7")]
64047#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64048#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.8", N = 1))]
64049#[rustc_legacy_const_generics(2)]
64050pub fn vsli_n_s8<const N: i32>(a: int8x8_t, b: int8x8_t) -> int8x8_t {
64051    static_assert_uimm_bits!(N, 3);
64052    vshiftlins_v8i8::<N>(a, b)
64053}
64054#[doc = "Shift Left and Insert (immediate)"]
64055#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsliq_n_s8)"]
64056#[inline]
64057#[cfg(target_arch = "arm")]
64058#[target_feature(enable = "neon,v7")]
64059#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64060#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.8", N = 1))]
64061#[rustc_legacy_const_generics(2)]
64062pub fn vsliq_n_s8<const N: i32>(a: int8x16_t, b: int8x16_t) -> int8x16_t {
64063    static_assert_uimm_bits!(N, 3);
64064    vshiftlins_v16i8::<N>(a, b)
64065}
64066#[doc = "Shift Left and Insert (immediate)"]
64067#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsli_n_s16)"]
64068#[inline]
64069#[cfg(target_arch = "arm")]
64070#[target_feature(enable = "neon,v7")]
64071#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64072#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.16", N = 1))]
64073#[rustc_legacy_const_generics(2)]
64074pub fn vsli_n_s16<const N: i32>(a: int16x4_t, b: int16x4_t) -> int16x4_t {
64075    static_assert_uimm_bits!(N, 4);
64076    vshiftlins_v4i16::<N>(a, b)
64077}
64078#[doc = "Shift Left and Insert (immediate)"]
64079#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsliq_n_s16)"]
64080#[inline]
64081#[cfg(target_arch = "arm")]
64082#[target_feature(enable = "neon,v7")]
64083#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64084#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.16", N = 1))]
64085#[rustc_legacy_const_generics(2)]
64086pub fn vsliq_n_s16<const N: i32>(a: int16x8_t, b: int16x8_t) -> int16x8_t {
64087    static_assert_uimm_bits!(N, 4);
64088    vshiftlins_v8i16::<N>(a, b)
64089}
64090#[doc = "Shift Left and Insert (immediate)"]
64091#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsli_n_s32)"]
64092#[inline]
64093#[cfg(target_arch = "arm")]
64094#[target_feature(enable = "neon,v7")]
64095#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64096#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.32", N = 1))]
64097#[rustc_legacy_const_generics(2)]
64098pub fn vsli_n_s32<const N: i32>(a: int32x2_t, b: int32x2_t) -> int32x2_t {
64099    static_assert!(N >= 0 && N <= 31);
64100    vshiftlins_v2i32::<N>(a, b)
64101}
64102#[doc = "Shift Left and Insert (immediate)"]
64103#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsliq_n_s32)"]
64104#[inline]
64105#[cfg(target_arch = "arm")]
64106#[target_feature(enable = "neon,v7")]
64107#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64108#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.32", N = 1))]
64109#[rustc_legacy_const_generics(2)]
64110pub fn vsliq_n_s32<const N: i32>(a: int32x4_t, b: int32x4_t) -> int32x4_t {
64111    static_assert!(N >= 0 && N <= 31);
64112    vshiftlins_v4i32::<N>(a, b)
64113}
64114#[doc = "Shift Left and Insert (immediate)"]
64115#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsli_n_s64)"]
64116#[inline]
64117#[cfg(target_arch = "arm")]
64118#[target_feature(enable = "neon,v7")]
64119#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64120#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.64", N = 1))]
64121#[rustc_legacy_const_generics(2)]
64122pub fn vsli_n_s64<const N: i32>(a: int64x1_t, b: int64x1_t) -> int64x1_t {
64123    static_assert!(N >= 0 && N <= 63);
64124    vshiftlins_v1i64::<N>(a, b)
64125}
64126#[doc = "Shift Left and Insert (immediate)"]
64127#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsliq_n_s64)"]
64128#[inline]
64129#[cfg(target_arch = "arm")]
64130#[target_feature(enable = "neon,v7")]
64131#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64132#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.64", N = 1))]
64133#[rustc_legacy_const_generics(2)]
64134pub fn vsliq_n_s64<const N: i32>(a: int64x2_t, b: int64x2_t) -> int64x2_t {
64135    static_assert!(N >= 0 && N <= 63);
64136    vshiftlins_v2i64::<N>(a, b)
64137}
64138#[doc = "Shift Left and Insert (immediate)"]
64139#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsli_n_u8)"]
64140#[inline]
64141#[cfg(target_arch = "arm")]
64142#[target_feature(enable = "neon,v7")]
64143#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64144#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.8", N = 1))]
64145#[rustc_legacy_const_generics(2)]
64146pub fn vsli_n_u8<const N: i32>(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
64147    static_assert_uimm_bits!(N, 3);
64148    unsafe { transmute(vshiftlins_v8i8::<N>(transmute(a), transmute(b))) }
64149}
64150#[doc = "Shift Left and Insert (immediate)"]
64151#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsliq_n_u8)"]
64152#[inline]
64153#[cfg(target_arch = "arm")]
64154#[target_feature(enable = "neon,v7")]
64155#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64156#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.8", N = 1))]
64157#[rustc_legacy_const_generics(2)]
64158pub fn vsliq_n_u8<const N: i32>(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
64159    static_assert_uimm_bits!(N, 3);
64160    unsafe { transmute(vshiftlins_v16i8::<N>(transmute(a), transmute(b))) }
64161}
64162#[doc = "Shift Left and Insert (immediate)"]
64163#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsli_n_u16)"]
64164#[inline]
64165#[cfg(target_arch = "arm")]
64166#[target_feature(enable = "neon,v7")]
64167#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64168#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.16", N = 1))]
64169#[rustc_legacy_const_generics(2)]
64170pub fn vsli_n_u16<const N: i32>(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
64171    static_assert_uimm_bits!(N, 4);
64172    unsafe { transmute(vshiftlins_v4i16::<N>(transmute(a), transmute(b))) }
64173}
64174#[doc = "Shift Left and Insert (immediate)"]
64175#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsliq_n_u16)"]
64176#[inline]
64177#[cfg(target_arch = "arm")]
64178#[target_feature(enable = "neon,v7")]
64179#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64180#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.16", N = 1))]
64181#[rustc_legacy_const_generics(2)]
64182pub fn vsliq_n_u16<const N: i32>(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
64183    static_assert_uimm_bits!(N, 4);
64184    unsafe { transmute(vshiftlins_v8i16::<N>(transmute(a), transmute(b))) }
64185}
64186#[doc = "Shift Left and Insert (immediate)"]
64187#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsli_n_u32)"]
64188#[inline]
64189#[cfg(target_arch = "arm")]
64190#[target_feature(enable = "neon,v7")]
64191#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64192#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.32", N = 1))]
64193#[rustc_legacy_const_generics(2)]
64194pub fn vsli_n_u32<const N: i32>(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
64195    static_assert!(N >= 0 && N <= 31);
64196    unsafe { transmute(vshiftlins_v2i32::<N>(transmute(a), transmute(b))) }
64197}
64198#[doc = "Shift Left and Insert (immediate)"]
64199#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsliq_n_u32)"]
64200#[inline]
64201#[cfg(target_arch = "arm")]
64202#[target_feature(enable = "neon,v7")]
64203#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64204#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.32", N = 1))]
64205#[rustc_legacy_const_generics(2)]
64206pub fn vsliq_n_u32<const N: i32>(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
64207    static_assert!(N >= 0 && N <= 31);
64208    unsafe { transmute(vshiftlins_v4i32::<N>(transmute(a), transmute(b))) }
64209}
64210#[doc = "Shift Left and Insert (immediate)"]
64211#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsli_n_u64)"]
64212#[inline]
64213#[cfg(target_arch = "arm")]
64214#[target_feature(enable = "neon,v7")]
64215#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64216#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.64", N = 1))]
64217#[rustc_legacy_const_generics(2)]
64218pub fn vsli_n_u64<const N: i32>(a: uint64x1_t, b: uint64x1_t) -> uint64x1_t {
64219    static_assert!(N >= 0 && N <= 63);
64220    unsafe { transmute(vshiftlins_v1i64::<N>(transmute(a), transmute(b))) }
64221}
64222#[doc = "Shift Left and Insert (immediate)"]
64223#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsliq_n_u64)"]
64224#[inline]
64225#[cfg(target_arch = "arm")]
64226#[target_feature(enable = "neon,v7")]
64227#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64228#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.64", N = 1))]
64229#[rustc_legacy_const_generics(2)]
64230pub fn vsliq_n_u64<const N: i32>(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
64231    static_assert!(N >= 0 && N <= 63);
64232    unsafe { transmute(vshiftlins_v2i64::<N>(transmute(a), transmute(b))) }
64233}
64234#[doc = "Shift Left and Insert (immediate)"]
64235#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsli_n_p8)"]
64236#[inline]
64237#[cfg(target_arch = "arm")]
64238#[target_feature(enable = "neon,v7")]
64239#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64240#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.8", N = 1))]
64241#[rustc_legacy_const_generics(2)]
64242pub fn vsli_n_p8<const N: i32>(a: poly8x8_t, b: poly8x8_t) -> poly8x8_t {
64243    static_assert_uimm_bits!(N, 3);
64244    unsafe { transmute(vshiftlins_v8i8::<N>(transmute(a), transmute(b))) }
64245}
64246#[doc = "Shift Left and Insert (immediate)"]
64247#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsliq_n_p8)"]
64248#[inline]
64249#[cfg(target_arch = "arm")]
64250#[target_feature(enable = "neon,v7")]
64251#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64252#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.8", N = 1))]
64253#[rustc_legacy_const_generics(2)]
64254pub fn vsliq_n_p8<const N: i32>(a: poly8x16_t, b: poly8x16_t) -> poly8x16_t {
64255    static_assert_uimm_bits!(N, 3);
64256    unsafe { transmute(vshiftlins_v16i8::<N>(transmute(a), transmute(b))) }
64257}
64258#[doc = "Shift Left and Insert (immediate)"]
64259#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsli_n_p16)"]
64260#[inline]
64261#[cfg(target_arch = "arm")]
64262#[target_feature(enable = "neon,v7")]
64263#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64264#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.16", N = 1))]
64265#[rustc_legacy_const_generics(2)]
64266pub fn vsli_n_p16<const N: i32>(a: poly16x4_t, b: poly16x4_t) -> poly16x4_t {
64267    static_assert_uimm_bits!(N, 4);
64268    unsafe { transmute(vshiftlins_v4i16::<N>(transmute(a), transmute(b))) }
64269}
64270#[doc = "Shift Left and Insert (immediate)"]
64271#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsliq_n_p16)"]
64272#[inline]
64273#[cfg(target_arch = "arm")]
64274#[target_feature(enable = "neon,v7")]
64275#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64276#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.16", N = 1))]
64277#[rustc_legacy_const_generics(2)]
64278pub fn vsliq_n_p16<const N: i32>(a: poly16x8_t, b: poly16x8_t) -> poly16x8_t {
64279    static_assert_uimm_bits!(N, 4);
64280    unsafe { transmute(vshiftlins_v8i16::<N>(transmute(a), transmute(b))) }
64281}
64282#[doc = "Signed shift right and accumulate"]
64283#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsra_n_s8)"]
64284#[inline]
64285#[target_feature(enable = "neon")]
64286#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
64287#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
64288#[cfg_attr(
64289    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64290    assert_instr(ssra, N = 2)
64291)]
64292#[rustc_legacy_const_generics(2)]
64293#[cfg_attr(
64294    not(target_arch = "arm"),
64295    stable(feature = "neon_intrinsics", since = "1.59.0")
64296)]
64297#[cfg_attr(
64298    target_arch = "arm",
64299    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
64300)]
64301pub fn vsra_n_s8<const N: i32>(a: int8x8_t, b: int8x8_t) -> int8x8_t {
64302    static_assert!(N >= 1 && N <= 8);
64303    unsafe { simd_add(a, vshr_n_s8::<N>(b)) }
64304}
64305#[doc = "Signed shift right and accumulate"]
64306#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsraq_n_s8)"]
64307#[inline]
64308#[target_feature(enable = "neon")]
64309#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
64310#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
64311#[cfg_attr(
64312    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64313    assert_instr(ssra, N = 2)
64314)]
64315#[rustc_legacy_const_generics(2)]
64316#[cfg_attr(
64317    not(target_arch = "arm"),
64318    stable(feature = "neon_intrinsics", since = "1.59.0")
64319)]
64320#[cfg_attr(
64321    target_arch = "arm",
64322    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
64323)]
64324pub fn vsraq_n_s8<const N: i32>(a: int8x16_t, b: int8x16_t) -> int8x16_t {
64325    static_assert!(N >= 1 && N <= 8);
64326    unsafe { simd_add(a, vshrq_n_s8::<N>(b)) }
64327}
64328#[doc = "Signed shift right and accumulate"]
64329#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsra_n_s16)"]
64330#[inline]
64331#[target_feature(enable = "neon")]
64332#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
64333#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
64334#[cfg_attr(
64335    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64336    assert_instr(ssra, N = 2)
64337)]
64338#[rustc_legacy_const_generics(2)]
64339#[cfg_attr(
64340    not(target_arch = "arm"),
64341    stable(feature = "neon_intrinsics", since = "1.59.0")
64342)]
64343#[cfg_attr(
64344    target_arch = "arm",
64345    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
64346)]
64347pub fn vsra_n_s16<const N: i32>(a: int16x4_t, b: int16x4_t) -> int16x4_t {
64348    static_assert!(N >= 1 && N <= 16);
64349    unsafe { simd_add(a, vshr_n_s16::<N>(b)) }
64350}
64351#[doc = "Signed shift right and accumulate"]
64352#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsraq_n_s16)"]
64353#[inline]
64354#[target_feature(enable = "neon")]
64355#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
64356#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
64357#[cfg_attr(
64358    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64359    assert_instr(ssra, N = 2)
64360)]
64361#[rustc_legacy_const_generics(2)]
64362#[cfg_attr(
64363    not(target_arch = "arm"),
64364    stable(feature = "neon_intrinsics", since = "1.59.0")
64365)]
64366#[cfg_attr(
64367    target_arch = "arm",
64368    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
64369)]
64370pub fn vsraq_n_s16<const N: i32>(a: int16x8_t, b: int16x8_t) -> int16x8_t {
64371    static_assert!(N >= 1 && N <= 16);
64372    unsafe { simd_add(a, vshrq_n_s16::<N>(b)) }
64373}
64374#[doc = "Signed shift right and accumulate"]
64375#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsra_n_s32)"]
64376#[inline]
64377#[target_feature(enable = "neon")]
64378#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
64379#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
64380#[cfg_attr(
64381    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64382    assert_instr(ssra, N = 2)
64383)]
64384#[rustc_legacy_const_generics(2)]
64385#[cfg_attr(
64386    not(target_arch = "arm"),
64387    stable(feature = "neon_intrinsics", since = "1.59.0")
64388)]
64389#[cfg_attr(
64390    target_arch = "arm",
64391    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
64392)]
64393pub fn vsra_n_s32<const N: i32>(a: int32x2_t, b: int32x2_t) -> int32x2_t {
64394    static_assert!(N >= 1 && N <= 32);
64395    unsafe { simd_add(a, vshr_n_s32::<N>(b)) }
64396}
64397#[doc = "Signed shift right and accumulate"]
64398#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsraq_n_s32)"]
64399#[inline]
64400#[target_feature(enable = "neon")]
64401#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
64402#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
64403#[cfg_attr(
64404    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64405    assert_instr(ssra, N = 2)
64406)]
64407#[rustc_legacy_const_generics(2)]
64408#[cfg_attr(
64409    not(target_arch = "arm"),
64410    stable(feature = "neon_intrinsics", since = "1.59.0")
64411)]
64412#[cfg_attr(
64413    target_arch = "arm",
64414    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
64415)]
64416pub fn vsraq_n_s32<const N: i32>(a: int32x4_t, b: int32x4_t) -> int32x4_t {
64417    static_assert!(N >= 1 && N <= 32);
64418    unsafe { simd_add(a, vshrq_n_s32::<N>(b)) }
64419}
64420#[doc = "Signed shift right and accumulate"]
64421#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsra_n_s64)"]
64422#[inline]
64423#[target_feature(enable = "neon")]
64424#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
64425#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
64426#[cfg_attr(
64427    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64428    assert_instr(ssra, N = 2)
64429)]
64430#[rustc_legacy_const_generics(2)]
64431#[cfg_attr(
64432    not(target_arch = "arm"),
64433    stable(feature = "neon_intrinsics", since = "1.59.0")
64434)]
64435#[cfg_attr(
64436    target_arch = "arm",
64437    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
64438)]
64439pub fn vsra_n_s64<const N: i32>(a: int64x1_t, b: int64x1_t) -> int64x1_t {
64440    static_assert!(N >= 1 && N <= 64);
64441    unsafe { simd_add(a, vshr_n_s64::<N>(b)) }
64442}
64443#[doc = "Signed shift right and accumulate"]
64444#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsraq_n_s64)"]
64445#[inline]
64446#[target_feature(enable = "neon")]
64447#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
64448#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
64449#[cfg_attr(
64450    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64451    assert_instr(ssra, N = 2)
64452)]
64453#[rustc_legacy_const_generics(2)]
64454#[cfg_attr(
64455    not(target_arch = "arm"),
64456    stable(feature = "neon_intrinsics", since = "1.59.0")
64457)]
64458#[cfg_attr(
64459    target_arch = "arm",
64460    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
64461)]
64462pub fn vsraq_n_s64<const N: i32>(a: int64x2_t, b: int64x2_t) -> int64x2_t {
64463    static_assert!(N >= 1 && N <= 64);
64464    unsafe { simd_add(a, vshrq_n_s64::<N>(b)) }
64465}
64466#[doc = "Unsigned shift right and accumulate"]
64467#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsra_n_u8)"]
64468#[inline]
64469#[target_feature(enable = "neon")]
64470#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
64471#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
64472#[cfg_attr(
64473    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64474    assert_instr(usra, N = 2)
64475)]
64476#[rustc_legacy_const_generics(2)]
64477#[cfg_attr(
64478    not(target_arch = "arm"),
64479    stable(feature = "neon_intrinsics", since = "1.59.0")
64480)]
64481#[cfg_attr(
64482    target_arch = "arm",
64483    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
64484)]
64485pub fn vsra_n_u8<const N: i32>(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
64486    static_assert!(N >= 1 && N <= 8);
64487    unsafe { simd_add(a, vshr_n_u8::<N>(b)) }
64488}
64489#[doc = "Unsigned shift right and accumulate"]
64490#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsraq_n_u8)"]
64491#[inline]
64492#[target_feature(enable = "neon")]
64493#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
64494#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
64495#[cfg_attr(
64496    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64497    assert_instr(usra, N = 2)
64498)]
64499#[rustc_legacy_const_generics(2)]
64500#[cfg_attr(
64501    not(target_arch = "arm"),
64502    stable(feature = "neon_intrinsics", since = "1.59.0")
64503)]
64504#[cfg_attr(
64505    target_arch = "arm",
64506    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
64507)]
64508pub fn vsraq_n_u8<const N: i32>(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
64509    static_assert!(N >= 1 && N <= 8);
64510    unsafe { simd_add(a, vshrq_n_u8::<N>(b)) }
64511}
64512#[doc = "Unsigned shift right and accumulate"]
64513#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsra_n_u16)"]
64514#[inline]
64515#[target_feature(enable = "neon")]
64516#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
64517#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
64518#[cfg_attr(
64519    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64520    assert_instr(usra, N = 2)
64521)]
64522#[rustc_legacy_const_generics(2)]
64523#[cfg_attr(
64524    not(target_arch = "arm"),
64525    stable(feature = "neon_intrinsics", since = "1.59.0")
64526)]
64527#[cfg_attr(
64528    target_arch = "arm",
64529    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
64530)]
64531pub fn vsra_n_u16<const N: i32>(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
64532    static_assert!(N >= 1 && N <= 16);
64533    unsafe { simd_add(a, vshr_n_u16::<N>(b)) }
64534}
64535#[doc = "Unsigned shift right and accumulate"]
64536#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsraq_n_u16)"]
64537#[inline]
64538#[target_feature(enable = "neon")]
64539#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
64540#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
64541#[cfg_attr(
64542    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64543    assert_instr(usra, N = 2)
64544)]
64545#[rustc_legacy_const_generics(2)]
64546#[cfg_attr(
64547    not(target_arch = "arm"),
64548    stable(feature = "neon_intrinsics", since = "1.59.0")
64549)]
64550#[cfg_attr(
64551    target_arch = "arm",
64552    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
64553)]
64554pub fn vsraq_n_u16<const N: i32>(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
64555    static_assert!(N >= 1 && N <= 16);
64556    unsafe { simd_add(a, vshrq_n_u16::<N>(b)) }
64557}
64558#[doc = "Unsigned shift right and accumulate"]
64559#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsra_n_u32)"]
64560#[inline]
64561#[target_feature(enable = "neon")]
64562#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
64563#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
64564#[cfg_attr(
64565    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64566    assert_instr(usra, N = 2)
64567)]
64568#[rustc_legacy_const_generics(2)]
64569#[cfg_attr(
64570    not(target_arch = "arm"),
64571    stable(feature = "neon_intrinsics", since = "1.59.0")
64572)]
64573#[cfg_attr(
64574    target_arch = "arm",
64575    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
64576)]
64577pub fn vsra_n_u32<const N: i32>(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
64578    static_assert!(N >= 1 && N <= 32);
64579    unsafe { simd_add(a, vshr_n_u32::<N>(b)) }
64580}
64581#[doc = "Unsigned shift right and accumulate"]
64582#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsraq_n_u32)"]
64583#[inline]
64584#[target_feature(enable = "neon")]
64585#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
64586#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
64587#[cfg_attr(
64588    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64589    assert_instr(usra, N = 2)
64590)]
64591#[rustc_legacy_const_generics(2)]
64592#[cfg_attr(
64593    not(target_arch = "arm"),
64594    stable(feature = "neon_intrinsics", since = "1.59.0")
64595)]
64596#[cfg_attr(
64597    target_arch = "arm",
64598    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
64599)]
64600pub fn vsraq_n_u32<const N: i32>(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
64601    static_assert!(N >= 1 && N <= 32);
64602    unsafe { simd_add(a, vshrq_n_u32::<N>(b)) }
64603}
64604#[doc = "Unsigned shift right and accumulate"]
64605#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsra_n_u64)"]
64606#[inline]
64607#[target_feature(enable = "neon")]
64608#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
64609#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
64610#[cfg_attr(
64611    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64612    assert_instr(usra, N = 2)
64613)]
64614#[rustc_legacy_const_generics(2)]
64615#[cfg_attr(
64616    not(target_arch = "arm"),
64617    stable(feature = "neon_intrinsics", since = "1.59.0")
64618)]
64619#[cfg_attr(
64620    target_arch = "arm",
64621    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
64622)]
64623pub fn vsra_n_u64<const N: i32>(a: uint64x1_t, b: uint64x1_t) -> uint64x1_t {
64624    static_assert!(N >= 1 && N <= 64);
64625    unsafe { simd_add(a, vshr_n_u64::<N>(b)) }
64626}
64627#[doc = "Unsigned shift right and accumulate"]
64628#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsraq_n_u64)"]
64629#[inline]
64630#[target_feature(enable = "neon")]
64631#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
64632#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
64633#[cfg_attr(
64634    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64635    assert_instr(usra, N = 2)
64636)]
64637#[rustc_legacy_const_generics(2)]
64638#[cfg_attr(
64639    not(target_arch = "arm"),
64640    stable(feature = "neon_intrinsics", since = "1.59.0")
64641)]
64642#[cfg_attr(
64643    target_arch = "arm",
64644    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
64645)]
64646pub fn vsraq_n_u64<const N: i32>(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
64647    static_assert!(N >= 1 && N <= 64);
64648    unsafe { simd_add(a, vshrq_n_u64::<N>(b)) }
64649}
64650#[doc = "Shift Right and Insert (immediate)"]
64651#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsri_n_s8)"]
64652#[inline]
64653#[target_feature(enable = "neon,v7")]
64654#[cfg(target_arch = "arm")]
64655#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64656#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.8", N = 1))]
64657#[rustc_legacy_const_generics(2)]
64658pub fn vsri_n_s8<const N: i32>(a: int8x8_t, b: int8x8_t) -> int8x8_t {
64659    static_assert!(1 <= N && N <= 8);
64660    vshiftrins_v8i8::<N>(a, b)
64661}
64662#[doc = "Shift Right and Insert (immediate)"]
64663#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsriq_n_s8)"]
64664#[inline]
64665#[target_feature(enable = "neon,v7")]
64666#[cfg(target_arch = "arm")]
64667#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64668#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.8", N = 1))]
64669#[rustc_legacy_const_generics(2)]
64670pub fn vsriq_n_s8<const N: i32>(a: int8x16_t, b: int8x16_t) -> int8x16_t {
64671    static_assert!(1 <= N && N <= 8);
64672    vshiftrins_v16i8::<N>(a, b)
64673}
64674#[doc = "Shift Right and Insert (immediate)"]
64675#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsri_n_s16)"]
64676#[inline]
64677#[target_feature(enable = "neon,v7")]
64678#[cfg(target_arch = "arm")]
64679#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64680#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.16", N = 1))]
64681#[rustc_legacy_const_generics(2)]
64682pub fn vsri_n_s16<const N: i32>(a: int16x4_t, b: int16x4_t) -> int16x4_t {
64683    static_assert!(1 <= N && N <= 16);
64684    vshiftrins_v4i16::<N>(a, b)
64685}
64686#[doc = "Shift Right and Insert (immediate)"]
64687#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsriq_n_s16)"]
64688#[inline]
64689#[target_feature(enable = "neon,v7")]
64690#[cfg(target_arch = "arm")]
64691#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64692#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.16", N = 1))]
64693#[rustc_legacy_const_generics(2)]
64694pub fn vsriq_n_s16<const N: i32>(a: int16x8_t, b: int16x8_t) -> int16x8_t {
64695    static_assert!(1 <= N && N <= 16);
64696    vshiftrins_v8i16::<N>(a, b)
64697}
64698#[doc = "Shift Right and Insert (immediate)"]
64699#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsri_n_s32)"]
64700#[inline]
64701#[target_feature(enable = "neon,v7")]
64702#[cfg(target_arch = "arm")]
64703#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64704#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.32", N = 1))]
64705#[rustc_legacy_const_generics(2)]
64706pub fn vsri_n_s32<const N: i32>(a: int32x2_t, b: int32x2_t) -> int32x2_t {
64707    static_assert!(1 <= N && N <= 32);
64708    vshiftrins_v2i32::<N>(a, b)
64709}
64710#[doc = "Shift Right and Insert (immediate)"]
64711#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsriq_n_s32)"]
64712#[inline]
64713#[target_feature(enable = "neon,v7")]
64714#[cfg(target_arch = "arm")]
64715#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64716#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.32", N = 1))]
64717#[rustc_legacy_const_generics(2)]
64718pub fn vsriq_n_s32<const N: i32>(a: int32x4_t, b: int32x4_t) -> int32x4_t {
64719    static_assert!(1 <= N && N <= 32);
64720    vshiftrins_v4i32::<N>(a, b)
64721}
64722#[doc = "Shift Right and Insert (immediate)"]
64723#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsri_n_s64)"]
64724#[inline]
64725#[target_feature(enable = "neon,v7")]
64726#[cfg(target_arch = "arm")]
64727#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64728#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.64", N = 1))]
64729#[rustc_legacy_const_generics(2)]
64730pub fn vsri_n_s64<const N: i32>(a: int64x1_t, b: int64x1_t) -> int64x1_t {
64731    static_assert!(1 <= N && N <= 64);
64732    vshiftrins_v1i64::<N>(a, b)
64733}
64734#[doc = "Shift Right and Insert (immediate)"]
64735#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsriq_n_s64)"]
64736#[inline]
64737#[target_feature(enable = "neon,v7")]
64738#[cfg(target_arch = "arm")]
64739#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64740#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.64", N = 1))]
64741#[rustc_legacy_const_generics(2)]
64742pub fn vsriq_n_s64<const N: i32>(a: int64x2_t, b: int64x2_t) -> int64x2_t {
64743    static_assert!(1 <= N && N <= 64);
64744    vshiftrins_v2i64::<N>(a, b)
64745}
64746#[doc = "Shift Right and Insert (immediate)"]
64747#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsri_n_u8)"]
64748#[inline]
64749#[cfg(target_arch = "arm")]
64750#[target_feature(enable = "neon,v7")]
64751#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64752#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.8", N = 1))]
64753#[rustc_legacy_const_generics(2)]
64754pub fn vsri_n_u8<const N: i32>(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
64755    static_assert!(1 <= N && N <= 8);
64756    unsafe { transmute(vshiftrins_v8i8::<N>(transmute(a), transmute(b))) }
64757}
64758#[doc = "Shift Right and Insert (immediate)"]
64759#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsriq_n_u8)"]
64760#[inline]
64761#[cfg(target_arch = "arm")]
64762#[target_feature(enable = "neon,v7")]
64763#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64764#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.8", N = 1))]
64765#[rustc_legacy_const_generics(2)]
64766pub fn vsriq_n_u8<const N: i32>(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
64767    static_assert!(1 <= N && N <= 8);
64768    unsafe { transmute(vshiftrins_v16i8::<N>(transmute(a), transmute(b))) }
64769}
64770#[doc = "Shift Right and Insert (immediate)"]
64771#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsri_n_u16)"]
64772#[inline]
64773#[cfg(target_arch = "arm")]
64774#[target_feature(enable = "neon,v7")]
64775#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64776#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.16", N = 1))]
64777#[rustc_legacy_const_generics(2)]
64778pub fn vsri_n_u16<const N: i32>(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
64779    static_assert!(1 <= N && N <= 16);
64780    unsafe { transmute(vshiftrins_v4i16::<N>(transmute(a), transmute(b))) }
64781}
64782#[doc = "Shift Right and Insert (immediate)"]
64783#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsriq_n_u16)"]
64784#[inline]
64785#[cfg(target_arch = "arm")]
64786#[target_feature(enable = "neon,v7")]
64787#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64788#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.16", N = 1))]
64789#[rustc_legacy_const_generics(2)]
64790pub fn vsriq_n_u16<const N: i32>(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
64791    static_assert!(1 <= N && N <= 16);
64792    unsafe { transmute(vshiftrins_v8i16::<N>(transmute(a), transmute(b))) }
64793}
64794#[doc = "Shift Right and Insert (immediate)"]
64795#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsri_n_u32)"]
64796#[inline]
64797#[cfg(target_arch = "arm")]
64798#[target_feature(enable = "neon,v7")]
64799#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64800#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.32", N = 1))]
64801#[rustc_legacy_const_generics(2)]
64802pub fn vsri_n_u32<const N: i32>(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
64803    static_assert!(1 <= N && N <= 32);
64804    unsafe { transmute(vshiftrins_v2i32::<N>(transmute(a), transmute(b))) }
64805}
64806#[doc = "Shift Right and Insert (immediate)"]
64807#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsriq_n_u32)"]
64808#[inline]
64809#[cfg(target_arch = "arm")]
64810#[target_feature(enable = "neon,v7")]
64811#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64812#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.32", N = 1))]
64813#[rustc_legacy_const_generics(2)]
64814pub fn vsriq_n_u32<const N: i32>(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
64815    static_assert!(1 <= N && N <= 32);
64816    unsafe { transmute(vshiftrins_v4i32::<N>(transmute(a), transmute(b))) }
64817}
64818#[doc = "Shift Right and Insert (immediate)"]
64819#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsri_n_u64)"]
64820#[inline]
64821#[cfg(target_arch = "arm")]
64822#[target_feature(enable = "neon,v7")]
64823#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64824#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.64", N = 1))]
64825#[rustc_legacy_const_generics(2)]
64826pub fn vsri_n_u64<const N: i32>(a: uint64x1_t, b: uint64x1_t) -> uint64x1_t {
64827    static_assert!(1 <= N && N <= 64);
64828    unsafe { transmute(vshiftrins_v1i64::<N>(transmute(a), transmute(b))) }
64829}
64830#[doc = "Shift Right and Insert (immediate)"]
64831#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsriq_n_u64)"]
64832#[inline]
64833#[cfg(target_arch = "arm")]
64834#[target_feature(enable = "neon,v7")]
64835#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64836#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.64", N = 1))]
64837#[rustc_legacy_const_generics(2)]
64838pub fn vsriq_n_u64<const N: i32>(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
64839    static_assert!(1 <= N && N <= 64);
64840    unsafe { transmute(vshiftrins_v2i64::<N>(transmute(a), transmute(b))) }
64841}
64842#[doc = "Shift Right and Insert (immediate)"]
64843#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsri_n_p8)"]
64844#[inline]
64845#[cfg(target_arch = "arm")]
64846#[target_feature(enable = "neon,v7")]
64847#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64848#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.8", N = 1))]
64849#[rustc_legacy_const_generics(2)]
64850pub fn vsri_n_p8<const N: i32>(a: poly8x8_t, b: poly8x8_t) -> poly8x8_t {
64851    static_assert!(1 <= N && N <= 8);
64852    unsafe { transmute(vshiftrins_v8i8::<N>(transmute(a), transmute(b))) }
64853}
64854#[doc = "Shift Right and Insert (immediate)"]
64855#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsriq_n_p8)"]
64856#[inline]
64857#[cfg(target_arch = "arm")]
64858#[target_feature(enable = "neon,v7")]
64859#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64860#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.8", N = 1))]
64861#[rustc_legacy_const_generics(2)]
64862pub fn vsriq_n_p8<const N: i32>(a: poly8x16_t, b: poly8x16_t) -> poly8x16_t {
64863    static_assert!(1 <= N && N <= 8);
64864    unsafe { transmute(vshiftrins_v16i8::<N>(transmute(a), transmute(b))) }
64865}
64866#[doc = "Shift Right and Insert (immediate)"]
64867#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsri_n_p16)"]
64868#[inline]
64869#[cfg(target_arch = "arm")]
64870#[target_feature(enable = "neon,v7")]
64871#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64872#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.16", N = 1))]
64873#[rustc_legacy_const_generics(2)]
64874pub fn vsri_n_p16<const N: i32>(a: poly16x4_t, b: poly16x4_t) -> poly16x4_t {
64875    static_assert!(1 <= N && N <= 16);
64876    unsafe { transmute(vshiftrins_v4i16::<N>(transmute(a), transmute(b))) }
64877}
64878#[doc = "Shift Right and Insert (immediate)"]
64879#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsriq_n_p16)"]
64880#[inline]
64881#[cfg(target_arch = "arm")]
64882#[target_feature(enable = "neon,v7")]
64883#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64884#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.16", N = 1))]
64885#[rustc_legacy_const_generics(2)]
64886pub fn vsriq_n_p16<const N: i32>(a: poly16x8_t, b: poly16x8_t) -> poly16x8_t {
64887    static_assert!(1 <= N && N <= 16);
64888    unsafe { transmute(vshiftrins_v8i16::<N>(transmute(a), transmute(b))) }
64889}
64890#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
64891#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_f16)"]
64892#[doc = "## Safety"]
64893#[doc = "  * Neon instrinsic unsafe"]
64894#[inline]
64895#[cfg(target_arch = "arm")]
64896#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
64897#[target_feature(enable = "neon,fp16")]
64898#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
64899#[cfg(not(target_arch = "arm64ec"))]
64900#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.16"))]
64901pub unsafe fn vst1_f16(ptr: *mut f16, a: float16x4_t) {
64902    vst1_v4f16(
64903        ptr as *const i8,
64904        transmute(a),
64905        crate::mem::align_of::<f16>() as i32,
64906    )
64907}
64908#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
64909#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_f16)"]
64910#[doc = "## Safety"]
64911#[doc = "  * Neon instrinsic unsafe"]
64912#[inline]
64913#[cfg(target_arch = "arm")]
64914#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
64915#[target_feature(enable = "neon,fp16")]
64916#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
64917#[cfg(not(target_arch = "arm64ec"))]
64918#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.16"))]
64919pub unsafe fn vst1q_f16(ptr: *mut f16, a: float16x8_t) {
64920    vst1q_v8f16(
64921        ptr as *const i8,
64922        transmute(a),
64923        crate::mem::align_of::<f16>() as i32,
64924    )
64925}
64926#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
64927#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_f16_x2)"]
64928#[doc = "## Safety"]
64929#[doc = "  * Neon instrinsic unsafe"]
64930#[inline]
64931#[cfg(target_arch = "arm")]
64932#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
64933#[cfg_attr(test, assert_instr(vst1))]
64934#[target_feature(enable = "neon,fp16")]
64935#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
64936#[cfg(not(target_arch = "arm64ec"))]
64937pub unsafe fn vst1_f16_x2(a: *mut f16, b: float16x4x2_t) {
64938    unsafe extern "unadjusted" {
64939        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x2.p0.v4f16")]
64940        fn _vst1_f16_x2(ptr: *mut f16, a: float16x4_t, b: float16x4_t);
64941    }
64942    _vst1_f16_x2(a, b.0, b.1)
64943}
64944#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
64945#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_f16_x2)"]
64946#[doc = "## Safety"]
64947#[doc = "  * Neon instrinsic unsafe"]
64948#[inline]
64949#[cfg(target_arch = "arm")]
64950#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
64951#[cfg_attr(test, assert_instr(vst1))]
64952#[target_feature(enable = "neon,fp16")]
64953#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
64954#[cfg(not(target_arch = "arm64ec"))]
64955pub unsafe fn vst1q_f16_x2(a: *mut f16, b: float16x8x2_t) {
64956    unsafe extern "unadjusted" {
64957        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x2.p0.v8f16")]
64958        fn _vst1q_f16_x2(ptr: *mut f16, a: float16x8_t, b: float16x8_t);
64959    }
64960    _vst1q_f16_x2(a, b.0, b.1)
64961}
64962#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
64963#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_f16_x2)"]
64964#[doc = "## Safety"]
64965#[doc = "  * Neon instrinsic unsafe"]
64966#[inline]
64967#[cfg(not(target_arch = "arm"))]
64968#[cfg_attr(test, assert_instr(st1))]
64969#[target_feature(enable = "neon,fp16")]
64970#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
64971#[cfg(not(target_arch = "arm64ec"))]
64972pub unsafe fn vst1_f16_x2(a: *mut f16, b: float16x4x2_t) {
64973    unsafe extern "unadjusted" {
64974        #[cfg_attr(
64975            any(target_arch = "aarch64", target_arch = "arm64ec"),
64976            link_name = "llvm.aarch64.neon.st1x2.v4f16.p0"
64977        )]
64978        fn _vst1_f16_x2(a: float16x4_t, b: float16x4_t, ptr: *mut f16);
64979    }
64980    _vst1_f16_x2(b.0, b.1, a)
64981}
64982#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
64983#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_f16_x2)"]
64984#[doc = "## Safety"]
64985#[doc = "  * Neon instrinsic unsafe"]
64986#[inline]
64987#[cfg(not(target_arch = "arm"))]
64988#[cfg_attr(test, assert_instr(st1))]
64989#[target_feature(enable = "neon,fp16")]
64990#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
64991#[cfg(not(target_arch = "arm64ec"))]
64992pub unsafe fn vst1q_f16_x2(a: *mut f16, b: float16x8x2_t) {
64993    unsafe extern "unadjusted" {
64994        #[cfg_attr(
64995            any(target_arch = "aarch64", target_arch = "arm64ec"),
64996            link_name = "llvm.aarch64.neon.st1x2.v8f16.p0"
64997        )]
64998        fn _vst1q_f16_x2(a: float16x8_t, b: float16x8_t, ptr: *mut f16);
64999    }
65000    _vst1q_f16_x2(b.0, b.1, a)
65001}
65002#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65003#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_f16_x3)"]
65004#[doc = "## Safety"]
65005#[doc = "  * Neon instrinsic unsafe"]
65006#[inline]
65007#[cfg(target_arch = "arm")]
65008#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65009#[cfg_attr(test, assert_instr(vst1))]
65010#[target_feature(enable = "neon,fp16")]
65011#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
65012#[cfg(not(target_arch = "arm64ec"))]
65013pub unsafe fn vst1_f16_x3(a: *mut f16, b: float16x4x3_t) {
65014    unsafe extern "unadjusted" {
65015        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x3.p0.v4f16")]
65016        fn _vst1_f16_x3(ptr: *mut f16, a: float16x4_t, b: float16x4_t, c: float16x4_t);
65017    }
65018    _vst1_f16_x3(a, b.0, b.1, b.2)
65019}
65020#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65021#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_f16_x3)"]
65022#[doc = "## Safety"]
65023#[doc = "  * Neon instrinsic unsafe"]
65024#[inline]
65025#[cfg(target_arch = "arm")]
65026#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65027#[cfg_attr(test, assert_instr(vst1))]
65028#[target_feature(enable = "neon,fp16")]
65029#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
65030#[cfg(not(target_arch = "arm64ec"))]
65031pub unsafe fn vst1q_f16_x3(a: *mut f16, b: float16x8x3_t) {
65032    unsafe extern "unadjusted" {
65033        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x3.p0.v8f16")]
65034        fn _vst1q_f16_x3(ptr: *mut f16, a: float16x8_t, b: float16x8_t, c: float16x8_t);
65035    }
65036    _vst1q_f16_x3(a, b.0, b.1, b.2)
65037}
65038#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65039#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_f16_x3)"]
65040#[doc = "## Safety"]
65041#[doc = "  * Neon instrinsic unsafe"]
65042#[inline]
65043#[cfg(not(target_arch = "arm"))]
65044#[cfg_attr(test, assert_instr(st1))]
65045#[target_feature(enable = "neon,fp16")]
65046#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
65047#[cfg(not(target_arch = "arm64ec"))]
65048pub unsafe fn vst1_f16_x3(a: *mut f16, b: float16x4x3_t) {
65049    unsafe extern "unadjusted" {
65050        #[cfg_attr(
65051            any(target_arch = "aarch64", target_arch = "arm64ec"),
65052            link_name = "llvm.aarch64.neon.st1x3.v4f16.p0"
65053        )]
65054        fn _vst1_f16_x3(a: float16x4_t, b: float16x4_t, c: float16x4_t, ptr: *mut f16);
65055    }
65056    _vst1_f16_x3(b.0, b.1, b.2, a)
65057}
65058#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65059#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_f16_x3)"]
65060#[doc = "## Safety"]
65061#[doc = "  * Neon instrinsic unsafe"]
65062#[inline]
65063#[cfg(not(target_arch = "arm"))]
65064#[cfg_attr(test, assert_instr(st1))]
65065#[target_feature(enable = "neon,fp16")]
65066#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
65067#[cfg(not(target_arch = "arm64ec"))]
65068pub unsafe fn vst1q_f16_x3(a: *mut f16, b: float16x8x3_t) {
65069    unsafe extern "unadjusted" {
65070        #[cfg_attr(
65071            any(target_arch = "aarch64", target_arch = "arm64ec"),
65072            link_name = "llvm.aarch64.neon.st1x3.v8f16.p0"
65073        )]
65074        fn _vst1q_f16_x3(a: float16x8_t, b: float16x8_t, c: float16x8_t, ptr: *mut f16);
65075    }
65076    _vst1q_f16_x3(b.0, b.1, b.2, a)
65077}
65078#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65079#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_f16_x4)"]
65080#[doc = "## Safety"]
65081#[doc = "  * Neon instrinsic unsafe"]
65082#[inline]
65083#[target_feature(enable = "neon")]
65084#[cfg(target_arch = "arm")]
65085#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65086#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
65087#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
65088#[cfg(not(target_arch = "arm64ec"))]
65089#[cfg_attr(test, assert_instr(vst1))]
65090pub unsafe fn vst1_f16_x4(a: *mut f16, b: float16x4x4_t) {
65091    unsafe extern "unadjusted" {
65092        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x4.p0.v4f16")]
65093        fn _vst1_f16_x4(
65094            ptr: *mut f16,
65095            a: float16x4_t,
65096            b: float16x4_t,
65097            c: float16x4_t,
65098            d: float16x4_t,
65099        );
65100    }
65101    _vst1_f16_x4(a, b.0, b.1, b.2, b.3)
65102}
65103#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65104#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_f16_x4)"]
65105#[doc = "## Safety"]
65106#[doc = "  * Neon instrinsic unsafe"]
65107#[inline]
65108#[target_feature(enable = "neon")]
65109#[cfg(target_arch = "arm")]
65110#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65111#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
65112#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
65113#[cfg(not(target_arch = "arm64ec"))]
65114#[cfg_attr(test, assert_instr(vst1))]
65115pub unsafe fn vst1q_f16_x4(a: *mut f16, b: float16x8x4_t) {
65116    unsafe extern "unadjusted" {
65117        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x4.p0.v8f16")]
65118        fn _vst1q_f16_x4(
65119            ptr: *mut f16,
65120            a: float16x8_t,
65121            b: float16x8_t,
65122            c: float16x8_t,
65123            d: float16x8_t,
65124        );
65125    }
65126    _vst1q_f16_x4(a, b.0, b.1, b.2, b.3)
65127}
65128#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65129#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_f16_x4)"]
65130#[doc = "## Safety"]
65131#[doc = "  * Neon instrinsic unsafe"]
65132#[inline]
65133#[cfg(not(target_arch = "arm"))]
65134#[cfg_attr(test, assert_instr(st1))]
65135#[target_feature(enable = "neon,fp16")]
65136#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
65137#[cfg(not(target_arch = "arm64ec"))]
65138pub unsafe fn vst1_f16_x4(a: *mut f16, b: float16x4x4_t) {
65139    unsafe extern "unadjusted" {
65140        #[cfg_attr(
65141            any(target_arch = "aarch64", target_arch = "arm64ec"),
65142            link_name = "llvm.aarch64.neon.st1x4.v4f16.p0"
65143        )]
65144        fn _vst1_f16_x4(
65145            a: float16x4_t,
65146            b: float16x4_t,
65147            c: float16x4_t,
65148            d: float16x4_t,
65149            ptr: *mut f16,
65150        );
65151    }
65152    _vst1_f16_x4(b.0, b.1, b.2, b.3, a)
65153}
65154#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65155#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_f16_x4)"]
65156#[doc = "## Safety"]
65157#[doc = "  * Neon instrinsic unsafe"]
65158#[inline]
65159#[cfg(not(target_arch = "arm"))]
65160#[cfg_attr(test, assert_instr(st1))]
65161#[target_feature(enable = "neon,fp16")]
65162#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
65163#[cfg(not(target_arch = "arm64ec"))]
65164pub unsafe fn vst1q_f16_x4(a: *mut f16, b: float16x8x4_t) {
65165    unsafe extern "unadjusted" {
65166        #[cfg_attr(
65167            any(target_arch = "aarch64", target_arch = "arm64ec"),
65168            link_name = "llvm.aarch64.neon.st1x4.v8f16.p0"
65169        )]
65170        fn _vst1q_f16_x4(
65171            a: float16x8_t,
65172            b: float16x8_t,
65173            c: float16x8_t,
65174            d: float16x8_t,
65175            ptr: *mut f16,
65176        );
65177    }
65178    _vst1q_f16_x4(b.0, b.1, b.2, b.3, a)
65179}
65180#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
65181#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_f32)"]
65182#[doc = "## Safety"]
65183#[doc = "  * Neon instrinsic unsafe"]
65184#[inline]
65185#[target_feature(enable = "neon")]
65186#[cfg(target_arch = "arm")]
65187#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65188#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
65189#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.32"))]
65190pub unsafe fn vst1_f32(ptr: *mut f32, a: float32x2_t) {
65191    const ALIGN: i32 = crate::mem::align_of::<f32>() as i32;
65192    vst1_v2f32::<ALIGN>(ptr as *const i8, transmute(a))
65193}
65194#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
65195#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_f32)"]
65196#[doc = "## Safety"]
65197#[doc = "  * Neon instrinsic unsafe"]
65198#[inline]
65199#[target_feature(enable = "neon")]
65200#[cfg(target_arch = "arm")]
65201#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65202#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
65203#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.32"))]
65204pub unsafe fn vst1q_f32(ptr: *mut f32, a: float32x4_t) {
65205    const ALIGN: i32 = crate::mem::align_of::<f32>() as i32;
65206    vst1q_v4f32::<ALIGN>(ptr as *const i8, transmute(a))
65207}
65208#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
65209#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s8)"]
65210#[doc = "## Safety"]
65211#[doc = "  * Neon instrinsic unsafe"]
65212#[inline]
65213#[target_feature(enable = "neon")]
65214#[cfg(target_arch = "arm")]
65215#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65216#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
65217#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.8"))]
65218pub unsafe fn vst1_s8(ptr: *mut i8, a: int8x8_t) {
65219    const ALIGN: i32 = crate::mem::align_of::<i8>() as i32;
65220    vst1_v8i8::<ALIGN>(ptr as *const i8, a)
65221}
65222#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
65223#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s8)"]
65224#[doc = "## Safety"]
65225#[doc = "  * Neon instrinsic unsafe"]
65226#[inline]
65227#[target_feature(enable = "neon")]
65228#[cfg(target_arch = "arm")]
65229#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65230#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
65231#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.8"))]
65232pub unsafe fn vst1q_s8(ptr: *mut i8, a: int8x16_t) {
65233    const ALIGN: i32 = crate::mem::align_of::<i8>() as i32;
65234    vst1q_v16i8::<ALIGN>(ptr as *const i8, a)
65235}
65236#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
65237#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s16)"]
65238#[doc = "## Safety"]
65239#[doc = "  * Neon instrinsic unsafe"]
65240#[inline]
65241#[target_feature(enable = "neon")]
65242#[cfg(target_arch = "arm")]
65243#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65244#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
65245#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.16"))]
65246pub unsafe fn vst1_s16(ptr: *mut i16, a: int16x4_t) {
65247    const ALIGN: i32 = crate::mem::align_of::<i16>() as i32;
65248    vst1_v4i16::<ALIGN>(ptr as *const i8, a)
65249}
65250#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
65251#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s16)"]
65252#[doc = "## Safety"]
65253#[doc = "  * Neon instrinsic unsafe"]
65254#[inline]
65255#[target_feature(enable = "neon")]
65256#[cfg(target_arch = "arm")]
65257#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65258#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
65259#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.16"))]
65260pub unsafe fn vst1q_s16(ptr: *mut i16, a: int16x8_t) {
65261    const ALIGN: i32 = crate::mem::align_of::<i16>() as i32;
65262    vst1q_v8i16::<ALIGN>(ptr as *const i8, a)
65263}
65264#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
65265#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s32)"]
65266#[doc = "## Safety"]
65267#[doc = "  * Neon instrinsic unsafe"]
65268#[inline]
65269#[target_feature(enable = "neon")]
65270#[cfg(target_arch = "arm")]
65271#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65272#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
65273#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.32"))]
65274pub unsafe fn vst1_s32(ptr: *mut i32, a: int32x2_t) {
65275    const ALIGN: i32 = crate::mem::align_of::<i32>() as i32;
65276    vst1_v2i32::<ALIGN>(ptr as *const i8, a)
65277}
65278#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
65279#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s32)"]
65280#[doc = "## Safety"]
65281#[doc = "  * Neon instrinsic unsafe"]
65282#[inline]
65283#[target_feature(enable = "neon")]
65284#[cfg(target_arch = "arm")]
65285#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65286#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
65287#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.32"))]
65288pub unsafe fn vst1q_s32(ptr: *mut i32, a: int32x4_t) {
65289    const ALIGN: i32 = crate::mem::align_of::<i32>() as i32;
65290    vst1q_v4i32::<ALIGN>(ptr as *const i8, a)
65291}
65292#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
65293#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s64)"]
65294#[doc = "## Safety"]
65295#[doc = "  * Neon instrinsic unsafe"]
65296#[inline]
65297#[target_feature(enable = "neon")]
65298#[cfg(target_arch = "arm")]
65299#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65300#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
65301#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.64"))]
65302pub unsafe fn vst1_s64(ptr: *mut i64, a: int64x1_t) {
65303    const ALIGN: i32 = crate::mem::align_of::<i64>() as i32;
65304    vst1_v1i64::<ALIGN>(ptr as *const i8, a)
65305}
65306#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
65307#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s64)"]
65308#[doc = "## Safety"]
65309#[doc = "  * Neon instrinsic unsafe"]
65310#[inline]
65311#[target_feature(enable = "neon")]
65312#[cfg(target_arch = "arm")]
65313#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65314#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
65315#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.64"))]
65316pub unsafe fn vst1q_s64(ptr: *mut i64, a: int64x2_t) {
65317    const ALIGN: i32 = crate::mem::align_of::<i64>() as i32;
65318    vst1q_v2i64::<ALIGN>(ptr as *const i8, a)
65319}
65320#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
65321#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u8)"]
65322#[doc = "## Safety"]
65323#[doc = "  * Neon instrinsic unsafe"]
65324#[inline]
65325#[target_feature(enable = "neon")]
65326#[cfg(target_arch = "arm")]
65327#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65328#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
65329#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.8"))]
65330pub unsafe fn vst1_u8(ptr: *mut u8, a: uint8x8_t) {
65331    const ALIGN: i32 = crate::mem::align_of::<u8>() as i32;
65332    vst1_v8i8::<ALIGN>(ptr as *const i8, transmute(a))
65333}
65334#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
65335#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u8)"]
65336#[doc = "## Safety"]
65337#[doc = "  * Neon instrinsic unsafe"]
65338#[inline]
65339#[target_feature(enable = "neon")]
65340#[cfg(target_arch = "arm")]
65341#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65342#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
65343#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.8"))]
65344pub unsafe fn vst1q_u8(ptr: *mut u8, a: uint8x16_t) {
65345    const ALIGN: i32 = crate::mem::align_of::<u8>() as i32;
65346    vst1q_v16i8::<ALIGN>(ptr as *const i8, transmute(a))
65347}
65348#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
65349#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u16)"]
65350#[doc = "## Safety"]
65351#[doc = "  * Neon instrinsic unsafe"]
65352#[inline]
65353#[target_feature(enable = "neon")]
65354#[cfg(target_arch = "arm")]
65355#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65356#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
65357#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.16"))]
65358pub unsafe fn vst1_u16(ptr: *mut u16, a: uint16x4_t) {
65359    const ALIGN: i32 = crate::mem::align_of::<u16>() as i32;
65360    vst1_v4i16::<ALIGN>(ptr as *const i8, transmute(a))
65361}
65362#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
65363#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u16)"]
65364#[doc = "## Safety"]
65365#[doc = "  * Neon instrinsic unsafe"]
65366#[inline]
65367#[target_feature(enable = "neon")]
65368#[cfg(target_arch = "arm")]
65369#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65370#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
65371#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.16"))]
65372pub unsafe fn vst1q_u16(ptr: *mut u16, a: uint16x8_t) {
65373    const ALIGN: i32 = crate::mem::align_of::<u16>() as i32;
65374    vst1q_v8i16::<ALIGN>(ptr as *const i8, transmute(a))
65375}
65376#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
65377#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u32)"]
65378#[doc = "## Safety"]
65379#[doc = "  * Neon instrinsic unsafe"]
65380#[inline]
65381#[target_feature(enable = "neon")]
65382#[cfg(target_arch = "arm")]
65383#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65384#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
65385#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.32"))]
65386pub unsafe fn vst1_u32(ptr: *mut u32, a: uint32x2_t) {
65387    const ALIGN: i32 = crate::mem::align_of::<u32>() as i32;
65388    vst1_v2i32::<ALIGN>(ptr as *const i8, transmute(a))
65389}
65390#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
65391#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u32)"]
65392#[doc = "## Safety"]
65393#[doc = "  * Neon instrinsic unsafe"]
65394#[inline]
65395#[target_feature(enable = "neon")]
65396#[cfg(target_arch = "arm")]
65397#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65398#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
65399#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.32"))]
65400pub unsafe fn vst1q_u32(ptr: *mut u32, a: uint32x4_t) {
65401    const ALIGN: i32 = crate::mem::align_of::<u32>() as i32;
65402    vst1q_v4i32::<ALIGN>(ptr as *const i8, transmute(a))
65403}
65404#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
65405#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u64)"]
65406#[doc = "## Safety"]
65407#[doc = "  * Neon instrinsic unsafe"]
65408#[inline]
65409#[target_feature(enable = "neon")]
65410#[cfg(target_arch = "arm")]
65411#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65412#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
65413#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.64"))]
65414pub unsafe fn vst1_u64(ptr: *mut u64, a: uint64x1_t) {
65415    const ALIGN: i32 = crate::mem::align_of::<u64>() as i32;
65416    vst1_v1i64::<ALIGN>(ptr as *const i8, transmute(a))
65417}
65418#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
65419#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u64)"]
65420#[doc = "## Safety"]
65421#[doc = "  * Neon instrinsic unsafe"]
65422#[inline]
65423#[target_feature(enable = "neon")]
65424#[cfg(target_arch = "arm")]
65425#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65426#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
65427#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.64"))]
65428pub unsafe fn vst1q_u64(ptr: *mut u64, a: uint64x2_t) {
65429    const ALIGN: i32 = crate::mem::align_of::<u64>() as i32;
65430    vst1q_v2i64::<ALIGN>(ptr as *const i8, transmute(a))
65431}
65432#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
65433#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_p8)"]
65434#[doc = "## Safety"]
65435#[doc = "  * Neon instrinsic unsafe"]
65436#[inline]
65437#[target_feature(enable = "neon")]
65438#[cfg(target_arch = "arm")]
65439#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65440#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
65441#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.8"))]
65442pub unsafe fn vst1_p8(ptr: *mut p8, a: poly8x8_t) {
65443    const ALIGN: i32 = crate::mem::align_of::<p8>() as i32;
65444    vst1_v8i8::<ALIGN>(ptr as *const i8, transmute(a))
65445}
65446#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
65447#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_p8)"]
65448#[doc = "## Safety"]
65449#[doc = "  * Neon instrinsic unsafe"]
65450#[inline]
65451#[target_feature(enable = "neon")]
65452#[cfg(target_arch = "arm")]
65453#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65454#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
65455#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.8"))]
65456pub unsafe fn vst1q_p8(ptr: *mut p8, a: poly8x16_t) {
65457    const ALIGN: i32 = crate::mem::align_of::<p8>() as i32;
65458    vst1q_v16i8::<ALIGN>(ptr as *const i8, transmute(a))
65459}
65460#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
65461#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_p16)"]
65462#[doc = "## Safety"]
65463#[doc = "  * Neon instrinsic unsafe"]
65464#[inline]
65465#[target_feature(enable = "neon")]
65466#[cfg(target_arch = "arm")]
65467#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65468#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
65469#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.16"))]
65470pub unsafe fn vst1_p16(ptr: *mut p16, a: poly16x4_t) {
65471    const ALIGN: i32 = crate::mem::align_of::<p16>() as i32;
65472    vst1_v4i16::<ALIGN>(ptr as *const i8, transmute(a))
65473}
65474#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
65475#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_p16)"]
65476#[doc = "## Safety"]
65477#[doc = "  * Neon instrinsic unsafe"]
65478#[inline]
65479#[target_feature(enable = "neon")]
65480#[cfg(target_arch = "arm")]
65481#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65482#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
65483#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.16"))]
65484pub unsafe fn vst1q_p16(ptr: *mut p16, a: poly16x8_t) {
65485    const ALIGN: i32 = crate::mem::align_of::<p16>() as i32;
65486    vst1q_v8i16::<ALIGN>(ptr as *const i8, transmute(a))
65487}
65488#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
65489#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_p64)"]
65490#[doc = "## Safety"]
65491#[doc = "  * Neon instrinsic unsafe"]
65492#[inline]
65493#[target_feature(enable = "neon")]
65494#[cfg(target_arch = "arm")]
65495#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65496#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
65497#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.64"))]
65498pub unsafe fn vst1_p64(ptr: *mut p64, a: poly64x1_t) {
65499    const ALIGN: i32 = crate::mem::align_of::<p64>() as i32;
65500    vst1_v1i64::<ALIGN>(ptr as *const i8, transmute(a))
65501}
65502#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
65503#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_p64)"]
65504#[doc = "## Safety"]
65505#[doc = "  * Neon instrinsic unsafe"]
65506#[inline]
65507#[target_feature(enable = "neon")]
65508#[cfg(target_arch = "arm")]
65509#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65510#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
65511#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.64"))]
65512pub unsafe fn vst1q_p64(ptr: *mut p64, a: poly64x2_t) {
65513    const ALIGN: i32 = crate::mem::align_of::<p64>() as i32;
65514    vst1q_v2i64::<ALIGN>(ptr as *const i8, transmute(a))
65515}
65516#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65517#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_f32_x2)"]
65518#[doc = "## Safety"]
65519#[doc = "  * Neon instrinsic unsafe"]
65520#[inline]
65521#[cfg(target_arch = "arm")]
65522#[target_feature(enable = "neon,v7")]
65523#[cfg_attr(test, assert_instr(vst1))]
65524#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
65525pub unsafe fn vst1_f32_x2(a: *mut f32, b: float32x2x2_t) {
65526    unsafe extern "unadjusted" {
65527        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x2.v2f32.p0")]
65528        fn _vst1_f32_x2(ptr: *mut f32, a: float32x2_t, b: float32x2_t);
65529    }
65530    _vst1_f32_x2(a, b.0, b.1)
65531}
65532#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65533#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_f32_x2)"]
65534#[doc = "## Safety"]
65535#[doc = "  * Neon instrinsic unsafe"]
65536#[inline]
65537#[cfg(target_arch = "arm")]
65538#[target_feature(enable = "neon,v7")]
65539#[cfg_attr(test, assert_instr(vst1))]
65540#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
65541pub unsafe fn vst1q_f32_x2(a: *mut f32, b: float32x4x2_t) {
65542    unsafe extern "unadjusted" {
65543        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x2.v4f32.p0")]
65544        fn _vst1q_f32_x2(ptr: *mut f32, a: float32x4_t, b: float32x4_t);
65545    }
65546    _vst1q_f32_x2(a, b.0, b.1)
65547}
65548#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65549#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_f32_x2)"]
65550#[doc = "## Safety"]
65551#[doc = "  * Neon instrinsic unsafe"]
65552#[inline]
65553#[target_feature(enable = "neon")]
65554#[cfg(not(target_arch = "arm"))]
65555#[cfg_attr(test, assert_instr(st1))]
65556#[stable(feature = "neon_intrinsics", since = "1.59.0")]
65557pub unsafe fn vst1_f32_x2(a: *mut f32, b: float32x2x2_t) {
65558    unsafe extern "unadjusted" {
65559        #[cfg_attr(
65560            any(target_arch = "aarch64", target_arch = "arm64ec"),
65561            link_name = "llvm.aarch64.neon.st1x2.v2f32.p0"
65562        )]
65563        fn _vst1_f32_x2(a: float32x2_t, b: float32x2_t, ptr: *mut f32);
65564    }
65565    _vst1_f32_x2(b.0, b.1, a)
65566}
65567#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65568#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_f32_x2)"]
65569#[doc = "## Safety"]
65570#[doc = "  * Neon instrinsic unsafe"]
65571#[inline]
65572#[target_feature(enable = "neon")]
65573#[cfg(not(target_arch = "arm"))]
65574#[cfg_attr(test, assert_instr(st1))]
65575#[stable(feature = "neon_intrinsics", since = "1.59.0")]
65576pub unsafe fn vst1q_f32_x2(a: *mut f32, b: float32x4x2_t) {
65577    unsafe extern "unadjusted" {
65578        #[cfg_attr(
65579            any(target_arch = "aarch64", target_arch = "arm64ec"),
65580            link_name = "llvm.aarch64.neon.st1x2.v4f32.p0"
65581        )]
65582        fn _vst1q_f32_x2(a: float32x4_t, b: float32x4_t, ptr: *mut f32);
65583    }
65584    _vst1q_f32_x2(b.0, b.1, a)
65585}
65586#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65587#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_f32_x3)"]
65588#[doc = "## Safety"]
65589#[doc = "  * Neon instrinsic unsafe"]
65590#[inline]
65591#[target_feature(enable = "neon")]
65592#[cfg(not(target_arch = "arm"))]
65593#[cfg_attr(test, assert_instr(st1))]
65594#[stable(feature = "neon_intrinsics", since = "1.59.0")]
65595pub unsafe fn vst1_f32_x3(a: *mut f32, b: float32x2x3_t) {
65596    unsafe extern "unadjusted" {
65597        #[cfg_attr(
65598            any(target_arch = "aarch64", target_arch = "arm64ec"),
65599            link_name = "llvm.aarch64.neon.st1x3.v2f32.p0"
65600        )]
65601        fn _vst1_f32_x3(a: float32x2_t, b: float32x2_t, c: float32x2_t, ptr: *mut f32);
65602    }
65603    _vst1_f32_x3(b.0, b.1, b.2, a)
65604}
65605#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65606#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_f32_x3)"]
65607#[doc = "## Safety"]
65608#[doc = "  * Neon instrinsic unsafe"]
65609#[inline]
65610#[target_feature(enable = "neon")]
65611#[cfg(not(target_arch = "arm"))]
65612#[cfg_attr(test, assert_instr(st1))]
65613#[stable(feature = "neon_intrinsics", since = "1.59.0")]
65614pub unsafe fn vst1q_f32_x3(a: *mut f32, b: float32x4x3_t) {
65615    unsafe extern "unadjusted" {
65616        #[cfg_attr(
65617            any(target_arch = "aarch64", target_arch = "arm64ec"),
65618            link_name = "llvm.aarch64.neon.st1x3.v4f32.p0"
65619        )]
65620        fn _vst1q_f32_x3(a: float32x4_t, b: float32x4_t, c: float32x4_t, ptr: *mut f32);
65621    }
65622    _vst1q_f32_x3(b.0, b.1, b.2, a)
65623}
65624#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65625#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_f32_x4)"]
65626#[doc = "## Safety"]
65627#[doc = "  * Neon instrinsic unsafe"]
65628#[inline]
65629#[cfg(target_arch = "arm")]
65630#[target_feature(enable = "neon,v7")]
65631#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
65632#[cfg_attr(test, assert_instr(vst1))]
65633pub unsafe fn vst1_f32_x4(a: *mut f32, b: float32x2x4_t) {
65634    unsafe extern "unadjusted" {
65635        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x4.p0.v2f32.p0")]
65636        fn _vst1_f32_x4(
65637            ptr: *mut f32,
65638            a: float32x2_t,
65639            b: float32x2_t,
65640            c: float32x2_t,
65641            d: float32x2_t,
65642        );
65643    }
65644    _vst1_f32_x4(a, b.0, b.1, b.2, b.3)
65645}
65646#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65647#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_f32_x4)"]
65648#[doc = "## Safety"]
65649#[doc = "  * Neon instrinsic unsafe"]
65650#[inline]
65651#[cfg(target_arch = "arm")]
65652#[target_feature(enable = "neon,v7")]
65653#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
65654#[cfg_attr(test, assert_instr(vst1))]
65655pub unsafe fn vst1q_f32_x4(a: *mut f32, b: float32x4x4_t) {
65656    unsafe extern "unadjusted" {
65657        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x4.p0.v4f32.p0")]
65658        fn _vst1q_f32_x4(
65659            ptr: *mut f32,
65660            a: float32x4_t,
65661            b: float32x4_t,
65662            c: float32x4_t,
65663            d: float32x4_t,
65664        );
65665    }
65666    _vst1q_f32_x4(a, b.0, b.1, b.2, b.3)
65667}
65668#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65669#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_f32_x4)"]
65670#[doc = "## Safety"]
65671#[doc = "  * Neon instrinsic unsafe"]
65672#[inline]
65673#[target_feature(enable = "neon")]
65674#[cfg(not(target_arch = "arm"))]
65675#[cfg_attr(test, assert_instr(st1))]
65676#[stable(feature = "neon_intrinsics", since = "1.59.0")]
65677pub unsafe fn vst1_f32_x4(a: *mut f32, b: float32x2x4_t) {
65678    unsafe extern "unadjusted" {
65679        #[cfg_attr(
65680            any(target_arch = "aarch64", target_arch = "arm64ec"),
65681            link_name = "llvm.aarch64.neon.st1x4.v2f32.p0"
65682        )]
65683        fn _vst1_f32_x4(
65684            a: float32x2_t,
65685            b: float32x2_t,
65686            c: float32x2_t,
65687            d: float32x2_t,
65688            ptr: *mut f32,
65689        );
65690    }
65691    _vst1_f32_x4(b.0, b.1, b.2, b.3, a)
65692}
65693#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65694#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_f32_x4)"]
65695#[doc = "## Safety"]
65696#[doc = "  * Neon instrinsic unsafe"]
65697#[inline]
65698#[target_feature(enable = "neon")]
65699#[cfg(not(target_arch = "arm"))]
65700#[cfg_attr(test, assert_instr(st1))]
65701#[stable(feature = "neon_intrinsics", since = "1.59.0")]
65702pub unsafe fn vst1q_f32_x4(a: *mut f32, b: float32x4x4_t) {
65703    unsafe extern "unadjusted" {
65704        #[cfg_attr(
65705            any(target_arch = "aarch64", target_arch = "arm64ec"),
65706            link_name = "llvm.aarch64.neon.st1x4.v4f32.p0"
65707        )]
65708        fn _vst1q_f32_x4(
65709            a: float32x4_t,
65710            b: float32x4_t,
65711            c: float32x4_t,
65712            d: float32x4_t,
65713            ptr: *mut f32,
65714        );
65715    }
65716    _vst1q_f32_x4(b.0, b.1, b.2, b.3, a)
65717}
65718#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
65719#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_f16)"]
65720#[doc = "## Safety"]
65721#[doc = "  * Neon instrinsic unsafe"]
65722#[inline]
65723#[target_feature(enable = "neon")]
65724#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65725#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
65726#[cfg_attr(
65727    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65728    assert_instr(nop, LANE = 0)
65729)]
65730#[rustc_legacy_const_generics(2)]
65731#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
65732#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
65733#[cfg(not(target_arch = "arm64ec"))]
65734pub unsafe fn vst1_lane_f16<const LANE: i32>(a: *mut f16, b: float16x4_t) {
65735    static_assert_uimm_bits!(LANE, 2);
65736    *a = simd_extract!(b, LANE as u32);
65737}
65738#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
65739#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_f16)"]
65740#[doc = "## Safety"]
65741#[doc = "  * Neon instrinsic unsafe"]
65742#[inline]
65743#[target_feature(enable = "neon")]
65744#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65745#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
65746#[cfg_attr(
65747    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65748    assert_instr(nop, LANE = 0)
65749)]
65750#[rustc_legacy_const_generics(2)]
65751#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
65752#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
65753#[cfg(not(target_arch = "arm64ec"))]
65754pub unsafe fn vst1q_lane_f16<const LANE: i32>(a: *mut f16, b: float16x8_t) {
65755    static_assert_uimm_bits!(LANE, 3);
65756    *a = simd_extract!(b, LANE as u32);
65757}
65758#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
65759#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_f32)"]
65760#[doc = "## Safety"]
65761#[doc = "  * Neon instrinsic unsafe"]
65762#[inline]
65763#[target_feature(enable = "neon")]
65764#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65765#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
65766#[cfg_attr(
65767    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65768    assert_instr(nop, LANE = 0)
65769)]
65770#[rustc_legacy_const_generics(2)]
65771#[cfg_attr(
65772    not(target_arch = "arm"),
65773    stable(feature = "neon_intrinsics", since = "1.59.0")
65774)]
65775#[cfg_attr(
65776    target_arch = "arm",
65777    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65778)]
65779pub unsafe fn vst1_lane_f32<const LANE: i32>(a: *mut f32, b: float32x2_t) {
65780    static_assert_uimm_bits!(LANE, 1);
65781    *a = simd_extract!(b, LANE as u32);
65782}
65783#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
65784#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_f32)"]
65785#[doc = "## Safety"]
65786#[doc = "  * Neon instrinsic unsafe"]
65787#[inline]
65788#[target_feature(enable = "neon")]
65789#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65790#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
65791#[cfg_attr(
65792    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65793    assert_instr(nop, LANE = 0)
65794)]
65795#[rustc_legacy_const_generics(2)]
65796#[cfg_attr(
65797    not(target_arch = "arm"),
65798    stable(feature = "neon_intrinsics", since = "1.59.0")
65799)]
65800#[cfg_attr(
65801    target_arch = "arm",
65802    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65803)]
65804pub unsafe fn vst1q_lane_f32<const LANE: i32>(a: *mut f32, b: float32x4_t) {
65805    static_assert_uimm_bits!(LANE, 2);
65806    *a = simd_extract!(b, LANE as u32);
65807}
65808#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
65809#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_s8)"]
65810#[doc = "## Safety"]
65811#[doc = "  * Neon instrinsic unsafe"]
65812#[inline]
65813#[target_feature(enable = "neon")]
65814#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65815#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
65816#[cfg_attr(
65817    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65818    assert_instr(nop, LANE = 0)
65819)]
65820#[rustc_legacy_const_generics(2)]
65821#[cfg_attr(
65822    not(target_arch = "arm"),
65823    stable(feature = "neon_intrinsics", since = "1.59.0")
65824)]
65825#[cfg_attr(
65826    target_arch = "arm",
65827    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65828)]
65829pub unsafe fn vst1_lane_s8<const LANE: i32>(a: *mut i8, b: int8x8_t) {
65830    static_assert_uimm_bits!(LANE, 3);
65831    *a = simd_extract!(b, LANE as u32);
65832}
65833#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
65834#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_s8)"]
65835#[doc = "## Safety"]
65836#[doc = "  * Neon instrinsic unsafe"]
65837#[inline]
65838#[target_feature(enable = "neon")]
65839#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65840#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
65841#[cfg_attr(
65842    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65843    assert_instr(nop, LANE = 0)
65844)]
65845#[rustc_legacy_const_generics(2)]
65846#[cfg_attr(
65847    not(target_arch = "arm"),
65848    stable(feature = "neon_intrinsics", since = "1.59.0")
65849)]
65850#[cfg_attr(
65851    target_arch = "arm",
65852    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65853)]
65854pub unsafe fn vst1q_lane_s8<const LANE: i32>(a: *mut i8, b: int8x16_t) {
65855    static_assert_uimm_bits!(LANE, 4);
65856    *a = simd_extract!(b, LANE as u32);
65857}
65858#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
65859#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_s16)"]
65860#[doc = "## Safety"]
65861#[doc = "  * Neon instrinsic unsafe"]
65862#[inline]
65863#[target_feature(enable = "neon")]
65864#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65865#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
65866#[cfg_attr(
65867    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65868    assert_instr(nop, LANE = 0)
65869)]
65870#[rustc_legacy_const_generics(2)]
65871#[cfg_attr(
65872    not(target_arch = "arm"),
65873    stable(feature = "neon_intrinsics", since = "1.59.0")
65874)]
65875#[cfg_attr(
65876    target_arch = "arm",
65877    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65878)]
65879pub unsafe fn vst1_lane_s16<const LANE: i32>(a: *mut i16, b: int16x4_t) {
65880    static_assert_uimm_bits!(LANE, 2);
65881    *a = simd_extract!(b, LANE as u32);
65882}
65883#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
65884#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_s16)"]
65885#[doc = "## Safety"]
65886#[doc = "  * Neon instrinsic unsafe"]
65887#[inline]
65888#[target_feature(enable = "neon")]
65889#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65890#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
65891#[cfg_attr(
65892    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65893    assert_instr(nop, LANE = 0)
65894)]
65895#[rustc_legacy_const_generics(2)]
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 unsafe fn vst1q_lane_s16<const LANE: i32>(a: *mut i16, b: int16x8_t) {
65905    static_assert_uimm_bits!(LANE, 3);
65906    *a = simd_extract!(b, LANE as u32);
65907}
65908#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
65909#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_s32)"]
65910#[doc = "## Safety"]
65911#[doc = "  * Neon instrinsic unsafe"]
65912#[inline]
65913#[target_feature(enable = "neon")]
65914#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65915#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
65916#[cfg_attr(
65917    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65918    assert_instr(nop, LANE = 0)
65919)]
65920#[rustc_legacy_const_generics(2)]
65921#[cfg_attr(
65922    not(target_arch = "arm"),
65923    stable(feature = "neon_intrinsics", since = "1.59.0")
65924)]
65925#[cfg_attr(
65926    target_arch = "arm",
65927    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65928)]
65929pub unsafe fn vst1_lane_s32<const LANE: i32>(a: *mut i32, b: int32x2_t) {
65930    static_assert_uimm_bits!(LANE, 1);
65931    *a = simd_extract!(b, LANE as u32);
65932}
65933#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
65934#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_s32)"]
65935#[doc = "## Safety"]
65936#[doc = "  * Neon instrinsic unsafe"]
65937#[inline]
65938#[target_feature(enable = "neon")]
65939#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65940#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
65941#[cfg_attr(
65942    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65943    assert_instr(nop, LANE = 0)
65944)]
65945#[rustc_legacy_const_generics(2)]
65946#[cfg_attr(
65947    not(target_arch = "arm"),
65948    stable(feature = "neon_intrinsics", since = "1.59.0")
65949)]
65950#[cfg_attr(
65951    target_arch = "arm",
65952    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65953)]
65954pub unsafe fn vst1q_lane_s32<const LANE: i32>(a: *mut i32, b: int32x4_t) {
65955    static_assert_uimm_bits!(LANE, 2);
65956    *a = simd_extract!(b, LANE as u32);
65957}
65958#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
65959#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_s64)"]
65960#[doc = "## Safety"]
65961#[doc = "  * Neon instrinsic unsafe"]
65962#[inline]
65963#[target_feature(enable = "neon")]
65964#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65965#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
65966#[cfg_attr(
65967    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65968    assert_instr(nop, LANE = 0)
65969)]
65970#[rustc_legacy_const_generics(2)]
65971#[cfg_attr(
65972    not(target_arch = "arm"),
65973    stable(feature = "neon_intrinsics", since = "1.59.0")
65974)]
65975#[cfg_attr(
65976    target_arch = "arm",
65977    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65978)]
65979pub unsafe fn vst1q_lane_s64<const LANE: i32>(a: *mut i64, b: int64x2_t) {
65980    static_assert_uimm_bits!(LANE, 1);
65981    *a = simd_extract!(b, LANE as u32);
65982}
65983#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
65984#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_u8)"]
65985#[doc = "## Safety"]
65986#[doc = "  * Neon instrinsic unsafe"]
65987#[inline]
65988#[target_feature(enable = "neon")]
65989#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65990#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
65991#[cfg_attr(
65992    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65993    assert_instr(nop, LANE = 0)
65994)]
65995#[rustc_legacy_const_generics(2)]
65996#[cfg_attr(
65997    not(target_arch = "arm"),
65998    stable(feature = "neon_intrinsics", since = "1.59.0")
65999)]
66000#[cfg_attr(
66001    target_arch = "arm",
66002    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66003)]
66004pub unsafe fn vst1_lane_u8<const LANE: i32>(a: *mut u8, b: uint8x8_t) {
66005    static_assert_uimm_bits!(LANE, 3);
66006    *a = simd_extract!(b, LANE as u32);
66007}
66008#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
66009#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_u8)"]
66010#[doc = "## Safety"]
66011#[doc = "  * Neon instrinsic unsafe"]
66012#[inline]
66013#[target_feature(enable = "neon")]
66014#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66015#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
66016#[cfg_attr(
66017    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66018    assert_instr(nop, LANE = 0)
66019)]
66020#[rustc_legacy_const_generics(2)]
66021#[cfg_attr(
66022    not(target_arch = "arm"),
66023    stable(feature = "neon_intrinsics", since = "1.59.0")
66024)]
66025#[cfg_attr(
66026    target_arch = "arm",
66027    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66028)]
66029pub unsafe fn vst1q_lane_u8<const LANE: i32>(a: *mut u8, b: uint8x16_t) {
66030    static_assert_uimm_bits!(LANE, 4);
66031    *a = simd_extract!(b, LANE as u32);
66032}
66033#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
66034#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_u16)"]
66035#[doc = "## Safety"]
66036#[doc = "  * Neon instrinsic unsafe"]
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(nop, LANE = 0))]
66041#[cfg_attr(
66042    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66043    assert_instr(nop, LANE = 0)
66044)]
66045#[rustc_legacy_const_generics(2)]
66046#[cfg_attr(
66047    not(target_arch = "arm"),
66048    stable(feature = "neon_intrinsics", since = "1.59.0")
66049)]
66050#[cfg_attr(
66051    target_arch = "arm",
66052    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66053)]
66054pub unsafe fn vst1_lane_u16<const LANE: i32>(a: *mut u16, b: uint16x4_t) {
66055    static_assert_uimm_bits!(LANE, 2);
66056    *a = simd_extract!(b, LANE as u32);
66057}
66058#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
66059#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_u16)"]
66060#[doc = "## Safety"]
66061#[doc = "  * Neon instrinsic unsafe"]
66062#[inline]
66063#[target_feature(enable = "neon")]
66064#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66065#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
66066#[cfg_attr(
66067    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66068    assert_instr(nop, LANE = 0)
66069)]
66070#[rustc_legacy_const_generics(2)]
66071#[cfg_attr(
66072    not(target_arch = "arm"),
66073    stable(feature = "neon_intrinsics", since = "1.59.0")
66074)]
66075#[cfg_attr(
66076    target_arch = "arm",
66077    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66078)]
66079pub unsafe fn vst1q_lane_u16<const LANE: i32>(a: *mut u16, b: uint16x8_t) {
66080    static_assert_uimm_bits!(LANE, 3);
66081    *a = simd_extract!(b, LANE as u32);
66082}
66083#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
66084#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_u32)"]
66085#[doc = "## Safety"]
66086#[doc = "  * Neon instrinsic unsafe"]
66087#[inline]
66088#[target_feature(enable = "neon")]
66089#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66090#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
66091#[cfg_attr(
66092    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66093    assert_instr(nop, LANE = 0)
66094)]
66095#[rustc_legacy_const_generics(2)]
66096#[cfg_attr(
66097    not(target_arch = "arm"),
66098    stable(feature = "neon_intrinsics", since = "1.59.0")
66099)]
66100#[cfg_attr(
66101    target_arch = "arm",
66102    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66103)]
66104pub unsafe fn vst1_lane_u32<const LANE: i32>(a: *mut u32, b: uint32x2_t) {
66105    static_assert_uimm_bits!(LANE, 1);
66106    *a = simd_extract!(b, LANE as u32);
66107}
66108#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
66109#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_u32)"]
66110#[doc = "## Safety"]
66111#[doc = "  * Neon instrinsic unsafe"]
66112#[inline]
66113#[target_feature(enable = "neon")]
66114#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66115#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
66116#[cfg_attr(
66117    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66118    assert_instr(nop, LANE = 0)
66119)]
66120#[rustc_legacy_const_generics(2)]
66121#[cfg_attr(
66122    not(target_arch = "arm"),
66123    stable(feature = "neon_intrinsics", since = "1.59.0")
66124)]
66125#[cfg_attr(
66126    target_arch = "arm",
66127    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66128)]
66129pub unsafe fn vst1q_lane_u32<const LANE: i32>(a: *mut u32, b: uint32x4_t) {
66130    static_assert_uimm_bits!(LANE, 2);
66131    *a = simd_extract!(b, LANE as u32);
66132}
66133#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
66134#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_u64)"]
66135#[doc = "## Safety"]
66136#[doc = "  * Neon instrinsic unsafe"]
66137#[inline]
66138#[target_feature(enable = "neon")]
66139#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66140#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
66141#[cfg_attr(
66142    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66143    assert_instr(nop, LANE = 0)
66144)]
66145#[rustc_legacy_const_generics(2)]
66146#[cfg_attr(
66147    not(target_arch = "arm"),
66148    stable(feature = "neon_intrinsics", since = "1.59.0")
66149)]
66150#[cfg_attr(
66151    target_arch = "arm",
66152    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66153)]
66154pub unsafe fn vst1q_lane_u64<const LANE: i32>(a: *mut u64, b: uint64x2_t) {
66155    static_assert_uimm_bits!(LANE, 1);
66156    *a = simd_extract!(b, LANE as u32);
66157}
66158#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
66159#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_p8)"]
66160#[doc = "## Safety"]
66161#[doc = "  * Neon instrinsic unsafe"]
66162#[inline]
66163#[target_feature(enable = "neon")]
66164#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66165#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
66166#[cfg_attr(
66167    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66168    assert_instr(nop, LANE = 0)
66169)]
66170#[rustc_legacy_const_generics(2)]
66171#[cfg_attr(
66172    not(target_arch = "arm"),
66173    stable(feature = "neon_intrinsics", since = "1.59.0")
66174)]
66175#[cfg_attr(
66176    target_arch = "arm",
66177    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66178)]
66179pub unsafe fn vst1_lane_p8<const LANE: i32>(a: *mut p8, b: poly8x8_t) {
66180    static_assert_uimm_bits!(LANE, 3);
66181    *a = simd_extract!(b, LANE as u32);
66182}
66183#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
66184#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_p8)"]
66185#[doc = "## Safety"]
66186#[doc = "  * Neon instrinsic unsafe"]
66187#[inline]
66188#[target_feature(enable = "neon")]
66189#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66190#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
66191#[cfg_attr(
66192    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66193    assert_instr(nop, LANE = 0)
66194)]
66195#[rustc_legacy_const_generics(2)]
66196#[cfg_attr(
66197    not(target_arch = "arm"),
66198    stable(feature = "neon_intrinsics", since = "1.59.0")
66199)]
66200#[cfg_attr(
66201    target_arch = "arm",
66202    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66203)]
66204pub unsafe fn vst1q_lane_p8<const LANE: i32>(a: *mut p8, b: poly8x16_t) {
66205    static_assert_uimm_bits!(LANE, 4);
66206    *a = simd_extract!(b, LANE as u32);
66207}
66208#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
66209#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_p16)"]
66210#[doc = "## Safety"]
66211#[doc = "  * Neon instrinsic unsafe"]
66212#[inline]
66213#[target_feature(enable = "neon")]
66214#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66215#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
66216#[cfg_attr(
66217    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66218    assert_instr(nop, LANE = 0)
66219)]
66220#[rustc_legacy_const_generics(2)]
66221#[cfg_attr(
66222    not(target_arch = "arm"),
66223    stable(feature = "neon_intrinsics", since = "1.59.0")
66224)]
66225#[cfg_attr(
66226    target_arch = "arm",
66227    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66228)]
66229pub unsafe fn vst1_lane_p16<const LANE: i32>(a: *mut p16, b: poly16x4_t) {
66230    static_assert_uimm_bits!(LANE, 2);
66231    *a = simd_extract!(b, LANE as u32);
66232}
66233#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
66234#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_p16)"]
66235#[doc = "## Safety"]
66236#[doc = "  * Neon instrinsic unsafe"]
66237#[inline]
66238#[target_feature(enable = "neon")]
66239#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66240#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
66241#[cfg_attr(
66242    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66243    assert_instr(nop, LANE = 0)
66244)]
66245#[rustc_legacy_const_generics(2)]
66246#[cfg_attr(
66247    not(target_arch = "arm"),
66248    stable(feature = "neon_intrinsics", since = "1.59.0")
66249)]
66250#[cfg_attr(
66251    target_arch = "arm",
66252    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66253)]
66254pub unsafe fn vst1q_lane_p16<const LANE: i32>(a: *mut p16, b: poly16x8_t) {
66255    static_assert_uimm_bits!(LANE, 3);
66256    *a = simd_extract!(b, LANE as u32);
66257}
66258#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
66259#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_p64)"]
66260#[doc = "## Safety"]
66261#[doc = "  * Neon instrinsic unsafe"]
66262#[inline]
66263#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
66264#[target_feature(enable = "neon,aes")]
66265#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
66266#[cfg_attr(
66267    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66268    assert_instr(nop, LANE = 0)
66269)]
66270#[rustc_legacy_const_generics(2)]
66271#[cfg_attr(
66272    not(target_arch = "arm"),
66273    stable(feature = "neon_intrinsics", since = "1.59.0")
66274)]
66275#[cfg_attr(
66276    target_arch = "arm",
66277    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66278)]
66279pub unsafe fn vst1_lane_p64<const LANE: i32>(a: *mut p64, b: poly64x1_t) {
66280    static_assert!(LANE == 0);
66281    *a = simd_extract!(b, LANE as u32);
66282}
66283#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
66284#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_s64)"]
66285#[doc = "## Safety"]
66286#[doc = "  * Neon instrinsic unsafe"]
66287#[inline]
66288#[target_feature(enable = "neon")]
66289#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66290#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
66291#[cfg_attr(
66292    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66293    assert_instr(nop, LANE = 0)
66294)]
66295#[rustc_legacy_const_generics(2)]
66296#[cfg_attr(
66297    not(target_arch = "arm"),
66298    stable(feature = "neon_intrinsics", since = "1.59.0")
66299)]
66300#[cfg_attr(
66301    target_arch = "arm",
66302    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66303)]
66304pub unsafe fn vst1_lane_s64<const LANE: i32>(a: *mut i64, b: int64x1_t) {
66305    static_assert!(LANE == 0);
66306    *a = simd_extract!(b, LANE as u32);
66307}
66308#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
66309#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_u64)"]
66310#[doc = "## Safety"]
66311#[doc = "  * Neon instrinsic unsafe"]
66312#[inline]
66313#[target_feature(enable = "neon")]
66314#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66315#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
66316#[cfg_attr(
66317    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66318    assert_instr(nop, LANE = 0)
66319)]
66320#[rustc_legacy_const_generics(2)]
66321#[cfg_attr(
66322    not(target_arch = "arm"),
66323    stable(feature = "neon_intrinsics", since = "1.59.0")
66324)]
66325#[cfg_attr(
66326    target_arch = "arm",
66327    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66328)]
66329pub unsafe fn vst1_lane_u64<const LANE: i32>(a: *mut u64, b: uint64x1_t) {
66330    static_assert!(LANE == 0);
66331    *a = simd_extract!(b, LANE as u32);
66332}
66333#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
66334#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_p64_x2)"]
66335#[doc = "## Safety"]
66336#[doc = "  * Neon instrinsic unsafe"]
66337#[inline]
66338#[target_feature(enable = "neon,aes")]
66339#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
66340#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
66341#[cfg_attr(
66342    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66343    assert_instr(st1)
66344)]
66345#[cfg_attr(
66346    not(target_arch = "arm"),
66347    stable(feature = "neon_intrinsics", since = "1.59.0")
66348)]
66349#[cfg_attr(
66350    target_arch = "arm",
66351    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66352)]
66353pub unsafe fn vst1_p64_x2(a: *mut p64, b: poly64x1x2_t) {
66354    vst1_s64_x2(transmute(a), transmute(b))
66355}
66356#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
66357#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_p64_x3)"]
66358#[doc = "## Safety"]
66359#[doc = "  * Neon instrinsic unsafe"]
66360#[inline]
66361#[target_feature(enable = "neon,aes")]
66362#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
66363#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
66364#[cfg_attr(
66365    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66366    assert_instr(st1)
66367)]
66368#[cfg_attr(
66369    not(target_arch = "arm"),
66370    stable(feature = "neon_intrinsics", since = "1.59.0")
66371)]
66372#[cfg_attr(
66373    target_arch = "arm",
66374    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66375)]
66376pub unsafe fn vst1_p64_x3(a: *mut p64, b: poly64x1x3_t) {
66377    vst1_s64_x3(transmute(a), transmute(b))
66378}
66379#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
66380#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_p64_x4)"]
66381#[doc = "## Safety"]
66382#[doc = "  * Neon instrinsic unsafe"]
66383#[inline]
66384#[target_feature(enable = "neon,aes")]
66385#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
66386#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
66387#[cfg_attr(
66388    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66389    assert_instr(st1)
66390)]
66391#[cfg_attr(
66392    not(target_arch = "arm"),
66393    stable(feature = "neon_intrinsics", since = "1.59.0")
66394)]
66395#[cfg_attr(
66396    target_arch = "arm",
66397    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66398)]
66399pub unsafe fn vst1_p64_x4(a: *mut p64, b: poly64x1x4_t) {
66400    vst1_s64_x4(transmute(a), transmute(b))
66401}
66402#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
66403#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_p64_x2)"]
66404#[doc = "## Safety"]
66405#[doc = "  * Neon instrinsic unsafe"]
66406#[inline]
66407#[target_feature(enable = "neon,aes")]
66408#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
66409#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
66410#[cfg_attr(
66411    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66412    assert_instr(st1)
66413)]
66414#[cfg_attr(
66415    not(target_arch = "arm"),
66416    stable(feature = "neon_intrinsics", since = "1.59.0")
66417)]
66418#[cfg_attr(
66419    target_arch = "arm",
66420    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66421)]
66422pub unsafe fn vst1q_p64_x2(a: *mut p64, b: poly64x2x2_t) {
66423    vst1q_s64_x2(transmute(a), transmute(b))
66424}
66425#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
66426#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_p64_x3)"]
66427#[doc = "## Safety"]
66428#[doc = "  * Neon instrinsic unsafe"]
66429#[inline]
66430#[target_feature(enable = "neon,aes")]
66431#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
66432#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
66433#[cfg_attr(
66434    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66435    assert_instr(st1)
66436)]
66437#[cfg_attr(
66438    not(target_arch = "arm"),
66439    stable(feature = "neon_intrinsics", since = "1.59.0")
66440)]
66441#[cfg_attr(
66442    target_arch = "arm",
66443    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66444)]
66445pub unsafe fn vst1q_p64_x3(a: *mut p64, b: poly64x2x3_t) {
66446    vst1q_s64_x3(transmute(a), transmute(b))
66447}
66448#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
66449#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_p64_x4)"]
66450#[doc = "## Safety"]
66451#[doc = "  * Neon instrinsic unsafe"]
66452#[inline]
66453#[target_feature(enable = "neon,aes")]
66454#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
66455#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
66456#[cfg_attr(
66457    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66458    assert_instr(st1)
66459)]
66460#[cfg_attr(
66461    not(target_arch = "arm"),
66462    stable(feature = "neon_intrinsics", since = "1.59.0")
66463)]
66464#[cfg_attr(
66465    target_arch = "arm",
66466    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66467)]
66468pub unsafe fn vst1q_p64_x4(a: *mut p64, b: poly64x2x4_t) {
66469    vst1q_s64_x4(transmute(a), transmute(b))
66470}
66471#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
66472#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s8_x2)"]
66473#[doc = "## Safety"]
66474#[doc = "  * Neon instrinsic unsafe"]
66475#[inline]
66476#[target_feature(enable = "neon")]
66477#[cfg(not(target_arch = "arm"))]
66478#[stable(feature = "neon_intrinsics", since = "1.59.0")]
66479#[cfg_attr(test, assert_instr(st1))]
66480pub unsafe fn vst1_s8_x2(a: *mut i8, b: int8x8x2_t) {
66481    unsafe extern "unadjusted" {
66482        #[cfg_attr(
66483            any(target_arch = "aarch64", target_arch = "arm64ec"),
66484            link_name = "llvm.aarch64.neon.st1x2.v8i8.p0"
66485        )]
66486        fn _vst1_s8_x2(a: int8x8_t, b: int8x8_t, ptr: *mut i8);
66487    }
66488    _vst1_s8_x2(b.0, b.1, a)
66489}
66490#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
66491#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s8_x2)"]
66492#[doc = "## Safety"]
66493#[doc = "  * Neon instrinsic unsafe"]
66494#[inline]
66495#[target_feature(enable = "neon")]
66496#[cfg(not(target_arch = "arm"))]
66497#[stable(feature = "neon_intrinsics", since = "1.59.0")]
66498#[cfg_attr(test, assert_instr(st1))]
66499pub unsafe fn vst1q_s8_x2(a: *mut i8, b: int8x16x2_t) {
66500    unsafe extern "unadjusted" {
66501        #[cfg_attr(
66502            any(target_arch = "aarch64", target_arch = "arm64ec"),
66503            link_name = "llvm.aarch64.neon.st1x2.v16i8.p0"
66504        )]
66505        fn _vst1q_s8_x2(a: int8x16_t, b: int8x16_t, ptr: *mut i8);
66506    }
66507    _vst1q_s8_x2(b.0, b.1, a)
66508}
66509#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
66510#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s16_x2)"]
66511#[doc = "## Safety"]
66512#[doc = "  * Neon instrinsic unsafe"]
66513#[inline]
66514#[target_feature(enable = "neon")]
66515#[cfg(not(target_arch = "arm"))]
66516#[stable(feature = "neon_intrinsics", since = "1.59.0")]
66517#[cfg_attr(test, assert_instr(st1))]
66518pub unsafe fn vst1_s16_x2(a: *mut i16, b: int16x4x2_t) {
66519    unsafe extern "unadjusted" {
66520        #[cfg_attr(
66521            any(target_arch = "aarch64", target_arch = "arm64ec"),
66522            link_name = "llvm.aarch64.neon.st1x2.v4i16.p0"
66523        )]
66524        fn _vst1_s16_x2(a: int16x4_t, b: int16x4_t, ptr: *mut i16);
66525    }
66526    _vst1_s16_x2(b.0, b.1, a)
66527}
66528#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
66529#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s16_x2)"]
66530#[doc = "## Safety"]
66531#[doc = "  * Neon instrinsic unsafe"]
66532#[inline]
66533#[target_feature(enable = "neon")]
66534#[cfg(not(target_arch = "arm"))]
66535#[stable(feature = "neon_intrinsics", since = "1.59.0")]
66536#[cfg_attr(test, assert_instr(st1))]
66537pub unsafe fn vst1q_s16_x2(a: *mut i16, b: int16x8x2_t) {
66538    unsafe extern "unadjusted" {
66539        #[cfg_attr(
66540            any(target_arch = "aarch64", target_arch = "arm64ec"),
66541            link_name = "llvm.aarch64.neon.st1x2.v8i16.p0"
66542        )]
66543        fn _vst1q_s16_x2(a: int16x8_t, b: int16x8_t, ptr: *mut i16);
66544    }
66545    _vst1q_s16_x2(b.0, b.1, a)
66546}
66547#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
66548#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s32_x2)"]
66549#[doc = "## Safety"]
66550#[doc = "  * Neon instrinsic unsafe"]
66551#[inline]
66552#[target_feature(enable = "neon")]
66553#[cfg(not(target_arch = "arm"))]
66554#[stable(feature = "neon_intrinsics", since = "1.59.0")]
66555#[cfg_attr(test, assert_instr(st1))]
66556pub unsafe fn vst1_s32_x2(a: *mut i32, b: int32x2x2_t) {
66557    unsafe extern "unadjusted" {
66558        #[cfg_attr(
66559            any(target_arch = "aarch64", target_arch = "arm64ec"),
66560            link_name = "llvm.aarch64.neon.st1x2.v2i32.p0"
66561        )]
66562        fn _vst1_s32_x2(a: int32x2_t, b: int32x2_t, ptr: *mut i32);
66563    }
66564    _vst1_s32_x2(b.0, b.1, a)
66565}
66566#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
66567#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s32_x2)"]
66568#[doc = "## Safety"]
66569#[doc = "  * Neon instrinsic unsafe"]
66570#[inline]
66571#[target_feature(enable = "neon")]
66572#[cfg(not(target_arch = "arm"))]
66573#[stable(feature = "neon_intrinsics", since = "1.59.0")]
66574#[cfg_attr(test, assert_instr(st1))]
66575pub unsafe fn vst1q_s32_x2(a: *mut i32, b: int32x4x2_t) {
66576    unsafe extern "unadjusted" {
66577        #[cfg_attr(
66578            any(target_arch = "aarch64", target_arch = "arm64ec"),
66579            link_name = "llvm.aarch64.neon.st1x2.v4i32.p0"
66580        )]
66581        fn _vst1q_s32_x2(a: int32x4_t, b: int32x4_t, ptr: *mut i32);
66582    }
66583    _vst1q_s32_x2(b.0, b.1, a)
66584}
66585#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
66586#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s64_x2)"]
66587#[doc = "## Safety"]
66588#[doc = "  * Neon instrinsic unsafe"]
66589#[inline]
66590#[target_feature(enable = "neon")]
66591#[cfg(not(target_arch = "arm"))]
66592#[stable(feature = "neon_intrinsics", since = "1.59.0")]
66593#[cfg_attr(test, assert_instr(st1))]
66594pub unsafe fn vst1_s64_x2(a: *mut i64, b: int64x1x2_t) {
66595    unsafe extern "unadjusted" {
66596        #[cfg_attr(
66597            any(target_arch = "aarch64", target_arch = "arm64ec"),
66598            link_name = "llvm.aarch64.neon.st1x2.v1i64.p0"
66599        )]
66600        fn _vst1_s64_x2(a: int64x1_t, b: int64x1_t, ptr: *mut i64);
66601    }
66602    _vst1_s64_x2(b.0, b.1, a)
66603}
66604#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
66605#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s64_x2)"]
66606#[doc = "## Safety"]
66607#[doc = "  * Neon instrinsic unsafe"]
66608#[inline]
66609#[target_feature(enable = "neon")]
66610#[cfg(not(target_arch = "arm"))]
66611#[stable(feature = "neon_intrinsics", since = "1.59.0")]
66612#[cfg_attr(test, assert_instr(st1))]
66613pub unsafe fn vst1q_s64_x2(a: *mut i64, b: int64x2x2_t) {
66614    unsafe extern "unadjusted" {
66615        #[cfg_attr(
66616            any(target_arch = "aarch64", target_arch = "arm64ec"),
66617            link_name = "llvm.aarch64.neon.st1x2.v2i64.p0"
66618        )]
66619        fn _vst1q_s64_x2(a: int64x2_t, b: int64x2_t, ptr: *mut i64);
66620    }
66621    _vst1q_s64_x2(b.0, b.1, a)
66622}
66623#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
66624#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s8_x2)"]
66625#[doc = "## Safety"]
66626#[doc = "  * Neon instrinsic unsafe"]
66627#[inline]
66628#[target_feature(enable = "neon,v7")]
66629#[cfg(target_arch = "arm")]
66630#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
66631#[cfg_attr(test, assert_instr(vst1))]
66632pub unsafe fn vst1_s8_x2(a: *mut i8, b: int8x8x2_t) {
66633    unsafe extern "unadjusted" {
66634        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x2.v8i8.p0")]
66635        fn _vst1_s8_x2(ptr: *mut i8, a: int8x8_t, b: int8x8_t);
66636    }
66637    _vst1_s8_x2(a, b.0, b.1)
66638}
66639#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
66640#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s8_x2)"]
66641#[doc = "## Safety"]
66642#[doc = "  * Neon instrinsic unsafe"]
66643#[inline]
66644#[target_feature(enable = "neon,v7")]
66645#[cfg(target_arch = "arm")]
66646#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
66647#[cfg_attr(test, assert_instr(vst1))]
66648pub unsafe fn vst1q_s8_x2(a: *mut i8, b: int8x16x2_t) {
66649    unsafe extern "unadjusted" {
66650        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x2.v16i8.p0")]
66651        fn _vst1q_s8_x2(ptr: *mut i8, a: int8x16_t, b: int8x16_t);
66652    }
66653    _vst1q_s8_x2(a, b.0, b.1)
66654}
66655#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
66656#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s16_x2)"]
66657#[doc = "## Safety"]
66658#[doc = "  * Neon instrinsic unsafe"]
66659#[inline]
66660#[target_feature(enable = "neon,v7")]
66661#[cfg(target_arch = "arm")]
66662#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
66663#[cfg_attr(test, assert_instr(vst1))]
66664pub unsafe fn vst1_s16_x2(a: *mut i16, b: int16x4x2_t) {
66665    unsafe extern "unadjusted" {
66666        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x2.v4i16.p0")]
66667        fn _vst1_s16_x2(ptr: *mut i16, a: int16x4_t, b: int16x4_t);
66668    }
66669    _vst1_s16_x2(a, b.0, b.1)
66670}
66671#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
66672#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s16_x2)"]
66673#[doc = "## Safety"]
66674#[doc = "  * Neon instrinsic unsafe"]
66675#[inline]
66676#[target_feature(enable = "neon,v7")]
66677#[cfg(target_arch = "arm")]
66678#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
66679#[cfg_attr(test, assert_instr(vst1))]
66680pub unsafe fn vst1q_s16_x2(a: *mut i16, b: int16x8x2_t) {
66681    unsafe extern "unadjusted" {
66682        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x2.v8i16.p0")]
66683        fn _vst1q_s16_x2(ptr: *mut i16, a: int16x8_t, b: int16x8_t);
66684    }
66685    _vst1q_s16_x2(a, b.0, b.1)
66686}
66687#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
66688#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s32_x2)"]
66689#[doc = "## Safety"]
66690#[doc = "  * Neon instrinsic unsafe"]
66691#[inline]
66692#[target_feature(enable = "neon,v7")]
66693#[cfg(target_arch = "arm")]
66694#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
66695#[cfg_attr(test, assert_instr(vst1))]
66696pub unsafe fn vst1_s32_x2(a: *mut i32, b: int32x2x2_t) {
66697    unsafe extern "unadjusted" {
66698        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x2.v2i32.p0")]
66699        fn _vst1_s32_x2(ptr: *mut i32, a: int32x2_t, b: int32x2_t);
66700    }
66701    _vst1_s32_x2(a, b.0, b.1)
66702}
66703#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
66704#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s32_x2)"]
66705#[doc = "## Safety"]
66706#[doc = "  * Neon instrinsic unsafe"]
66707#[inline]
66708#[target_feature(enable = "neon,v7")]
66709#[cfg(target_arch = "arm")]
66710#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
66711#[cfg_attr(test, assert_instr(vst1))]
66712pub unsafe fn vst1q_s32_x2(a: *mut i32, b: int32x4x2_t) {
66713    unsafe extern "unadjusted" {
66714        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x2.v4i32.p0")]
66715        fn _vst1q_s32_x2(ptr: *mut i32, a: int32x4_t, b: int32x4_t);
66716    }
66717    _vst1q_s32_x2(a, b.0, b.1)
66718}
66719#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
66720#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s64_x2)"]
66721#[doc = "## Safety"]
66722#[doc = "  * Neon instrinsic unsafe"]
66723#[inline]
66724#[target_feature(enable = "neon,v7")]
66725#[cfg(target_arch = "arm")]
66726#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
66727#[cfg_attr(test, assert_instr(vst1))]
66728pub unsafe fn vst1_s64_x2(a: *mut i64, b: int64x1x2_t) {
66729    unsafe extern "unadjusted" {
66730        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x2.v1i64.p0")]
66731        fn _vst1_s64_x2(ptr: *mut i64, a: int64x1_t, b: int64x1_t);
66732    }
66733    _vst1_s64_x2(a, b.0, b.1)
66734}
66735#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
66736#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s64_x2)"]
66737#[doc = "## Safety"]
66738#[doc = "  * Neon instrinsic unsafe"]
66739#[inline]
66740#[target_feature(enable = "neon,v7")]
66741#[cfg(target_arch = "arm")]
66742#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
66743#[cfg_attr(test, assert_instr(vst1))]
66744pub unsafe fn vst1q_s64_x2(a: *mut i64, b: int64x2x2_t) {
66745    unsafe extern "unadjusted" {
66746        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x2.v2i64.p0")]
66747        fn _vst1q_s64_x2(ptr: *mut i64, a: int64x2_t, b: int64x2_t);
66748    }
66749    _vst1q_s64_x2(a, b.0, b.1)
66750}
66751#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
66752#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s8_x3)"]
66753#[doc = "## Safety"]
66754#[doc = "  * Neon instrinsic unsafe"]
66755#[inline]
66756#[target_feature(enable = "neon")]
66757#[cfg(not(target_arch = "arm"))]
66758#[stable(feature = "neon_intrinsics", since = "1.59.0")]
66759#[cfg_attr(test, assert_instr(st1))]
66760pub unsafe fn vst1_s8_x3(a: *mut i8, b: int8x8x3_t) {
66761    unsafe extern "unadjusted" {
66762        #[cfg_attr(
66763            any(target_arch = "aarch64", target_arch = "arm64ec"),
66764            link_name = "llvm.aarch64.neon.st1x3.v8i8.p0"
66765        )]
66766        fn _vst1_s8_x3(a: int8x8_t, b: int8x8_t, c: int8x8_t, ptr: *mut i8);
66767    }
66768    _vst1_s8_x3(b.0, b.1, b.2, a)
66769}
66770#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
66771#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s8_x3)"]
66772#[doc = "## Safety"]
66773#[doc = "  * Neon instrinsic unsafe"]
66774#[inline]
66775#[target_feature(enable = "neon")]
66776#[cfg(not(target_arch = "arm"))]
66777#[stable(feature = "neon_intrinsics", since = "1.59.0")]
66778#[cfg_attr(test, assert_instr(st1))]
66779pub unsafe fn vst1q_s8_x3(a: *mut i8, b: int8x16x3_t) {
66780    unsafe extern "unadjusted" {
66781        #[cfg_attr(
66782            any(target_arch = "aarch64", target_arch = "arm64ec"),
66783            link_name = "llvm.aarch64.neon.st1x3.v16i8.p0"
66784        )]
66785        fn _vst1q_s8_x3(a: int8x16_t, b: int8x16_t, c: int8x16_t, ptr: *mut i8);
66786    }
66787    _vst1q_s8_x3(b.0, b.1, b.2, a)
66788}
66789#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
66790#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s16_x3)"]
66791#[doc = "## Safety"]
66792#[doc = "  * Neon instrinsic unsafe"]
66793#[inline]
66794#[target_feature(enable = "neon")]
66795#[cfg(not(target_arch = "arm"))]
66796#[stable(feature = "neon_intrinsics", since = "1.59.0")]
66797#[cfg_attr(test, assert_instr(st1))]
66798pub unsafe fn vst1_s16_x3(a: *mut i16, b: int16x4x3_t) {
66799    unsafe extern "unadjusted" {
66800        #[cfg_attr(
66801            any(target_arch = "aarch64", target_arch = "arm64ec"),
66802            link_name = "llvm.aarch64.neon.st1x3.v4i16.p0"
66803        )]
66804        fn _vst1_s16_x3(a: int16x4_t, b: int16x4_t, c: int16x4_t, ptr: *mut i16);
66805    }
66806    _vst1_s16_x3(b.0, b.1, b.2, a)
66807}
66808#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
66809#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s16_x3)"]
66810#[doc = "## Safety"]
66811#[doc = "  * Neon instrinsic unsafe"]
66812#[inline]
66813#[target_feature(enable = "neon")]
66814#[cfg(not(target_arch = "arm"))]
66815#[stable(feature = "neon_intrinsics", since = "1.59.0")]
66816#[cfg_attr(test, assert_instr(st1))]
66817pub unsafe fn vst1q_s16_x3(a: *mut i16, b: int16x8x3_t) {
66818    unsafe extern "unadjusted" {
66819        #[cfg_attr(
66820            any(target_arch = "aarch64", target_arch = "arm64ec"),
66821            link_name = "llvm.aarch64.neon.st1x3.v8i16.p0"
66822        )]
66823        fn _vst1q_s16_x3(a: int16x8_t, b: int16x8_t, c: int16x8_t, ptr: *mut i16);
66824    }
66825    _vst1q_s16_x3(b.0, b.1, b.2, a)
66826}
66827#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
66828#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s32_x3)"]
66829#[doc = "## Safety"]
66830#[doc = "  * Neon instrinsic unsafe"]
66831#[inline]
66832#[target_feature(enable = "neon")]
66833#[cfg(not(target_arch = "arm"))]
66834#[stable(feature = "neon_intrinsics", since = "1.59.0")]
66835#[cfg_attr(test, assert_instr(st1))]
66836pub unsafe fn vst1_s32_x3(a: *mut i32, b: int32x2x3_t) {
66837    unsafe extern "unadjusted" {
66838        #[cfg_attr(
66839            any(target_arch = "aarch64", target_arch = "arm64ec"),
66840            link_name = "llvm.aarch64.neon.st1x3.v2i32.p0"
66841        )]
66842        fn _vst1_s32_x3(a: int32x2_t, b: int32x2_t, c: int32x2_t, ptr: *mut i32);
66843    }
66844    _vst1_s32_x3(b.0, b.1, b.2, a)
66845}
66846#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
66847#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s32_x3)"]
66848#[doc = "## Safety"]
66849#[doc = "  * Neon instrinsic unsafe"]
66850#[inline]
66851#[target_feature(enable = "neon")]
66852#[cfg(not(target_arch = "arm"))]
66853#[stable(feature = "neon_intrinsics", since = "1.59.0")]
66854#[cfg_attr(test, assert_instr(st1))]
66855pub unsafe fn vst1q_s32_x3(a: *mut i32, b: int32x4x3_t) {
66856    unsafe extern "unadjusted" {
66857        #[cfg_attr(
66858            any(target_arch = "aarch64", target_arch = "arm64ec"),
66859            link_name = "llvm.aarch64.neon.st1x3.v4i32.p0"
66860        )]
66861        fn _vst1q_s32_x3(a: int32x4_t, b: int32x4_t, c: int32x4_t, ptr: *mut i32);
66862    }
66863    _vst1q_s32_x3(b.0, b.1, b.2, a)
66864}
66865#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
66866#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s64_x3)"]
66867#[doc = "## Safety"]
66868#[doc = "  * Neon instrinsic unsafe"]
66869#[inline]
66870#[target_feature(enable = "neon")]
66871#[cfg(not(target_arch = "arm"))]
66872#[stable(feature = "neon_intrinsics", since = "1.59.0")]
66873#[cfg_attr(test, assert_instr(st1))]
66874pub unsafe fn vst1_s64_x3(a: *mut i64, b: int64x1x3_t) {
66875    unsafe extern "unadjusted" {
66876        #[cfg_attr(
66877            any(target_arch = "aarch64", target_arch = "arm64ec"),
66878            link_name = "llvm.aarch64.neon.st1x3.v1i64.p0"
66879        )]
66880        fn _vst1_s64_x3(a: int64x1_t, b: int64x1_t, c: int64x1_t, ptr: *mut i64);
66881    }
66882    _vst1_s64_x3(b.0, b.1, b.2, a)
66883}
66884#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
66885#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s64_x3)"]
66886#[doc = "## Safety"]
66887#[doc = "  * Neon instrinsic unsafe"]
66888#[inline]
66889#[target_feature(enable = "neon")]
66890#[cfg(not(target_arch = "arm"))]
66891#[stable(feature = "neon_intrinsics", since = "1.59.0")]
66892#[cfg_attr(test, assert_instr(st1))]
66893pub unsafe fn vst1q_s64_x3(a: *mut i64, b: int64x2x3_t) {
66894    unsafe extern "unadjusted" {
66895        #[cfg_attr(
66896            any(target_arch = "aarch64", target_arch = "arm64ec"),
66897            link_name = "llvm.aarch64.neon.st1x3.v2i64.p0"
66898        )]
66899        fn _vst1q_s64_x3(a: int64x2_t, b: int64x2_t, c: int64x2_t, ptr: *mut i64);
66900    }
66901    _vst1q_s64_x3(b.0, b.1, b.2, a)
66902}
66903#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
66904#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s8_x3)"]
66905#[doc = "## Safety"]
66906#[doc = "  * Neon instrinsic unsafe"]
66907#[inline]
66908#[target_feature(enable = "neon,v7")]
66909#[cfg(target_arch = "arm")]
66910#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
66911#[cfg_attr(test, assert_instr(vst1))]
66912pub unsafe fn vst1_s8_x3(a: *mut i8, b: int8x8x3_t) {
66913    unsafe extern "unadjusted" {
66914        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x3.p0.v8i8.p0")]
66915        fn _vst1_s8_x3(ptr: *mut i8, a: int8x8_t, b: int8x8_t, c: int8x8_t);
66916    }
66917    _vst1_s8_x3(a, b.0, b.1, b.2)
66918}
66919#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
66920#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s8_x3)"]
66921#[doc = "## Safety"]
66922#[doc = "  * Neon instrinsic unsafe"]
66923#[inline]
66924#[target_feature(enable = "neon,v7")]
66925#[cfg(target_arch = "arm")]
66926#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
66927#[cfg_attr(test, assert_instr(vst1))]
66928pub unsafe fn vst1q_s8_x3(a: *mut i8, b: int8x16x3_t) {
66929    unsafe extern "unadjusted" {
66930        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x3.p0.v16i8.p0")]
66931        fn _vst1q_s8_x3(ptr: *mut i8, a: int8x16_t, b: int8x16_t, c: int8x16_t);
66932    }
66933    _vst1q_s8_x3(a, b.0, b.1, b.2)
66934}
66935#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
66936#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s16_x3)"]
66937#[doc = "## Safety"]
66938#[doc = "  * Neon instrinsic unsafe"]
66939#[inline]
66940#[target_feature(enable = "neon,v7")]
66941#[cfg(target_arch = "arm")]
66942#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
66943#[cfg_attr(test, assert_instr(vst1))]
66944pub unsafe fn vst1_s16_x3(a: *mut i16, b: int16x4x3_t) {
66945    unsafe extern "unadjusted" {
66946        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x3.p0.v4i16.p0")]
66947        fn _vst1_s16_x3(ptr: *mut i16, a: int16x4_t, b: int16x4_t, c: int16x4_t);
66948    }
66949    _vst1_s16_x3(a, b.0, b.1, b.2)
66950}
66951#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
66952#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s16_x3)"]
66953#[doc = "## Safety"]
66954#[doc = "  * Neon instrinsic unsafe"]
66955#[inline]
66956#[target_feature(enable = "neon,v7")]
66957#[cfg(target_arch = "arm")]
66958#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
66959#[cfg_attr(test, assert_instr(vst1))]
66960pub unsafe fn vst1q_s16_x3(a: *mut i16, b: int16x8x3_t) {
66961    unsafe extern "unadjusted" {
66962        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x3.p0.v8i16.p0")]
66963        fn _vst1q_s16_x3(ptr: *mut i16, a: int16x8_t, b: int16x8_t, c: int16x8_t);
66964    }
66965    _vst1q_s16_x3(a, b.0, b.1, b.2)
66966}
66967#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
66968#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s32_x3)"]
66969#[doc = "## Safety"]
66970#[doc = "  * Neon instrinsic unsafe"]
66971#[inline]
66972#[target_feature(enable = "neon,v7")]
66973#[cfg(target_arch = "arm")]
66974#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
66975#[cfg_attr(test, assert_instr(vst1))]
66976pub unsafe fn vst1_s32_x3(a: *mut i32, b: int32x2x3_t) {
66977    unsafe extern "unadjusted" {
66978        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x3.p0.v2i32.p0")]
66979        fn _vst1_s32_x3(ptr: *mut i32, a: int32x2_t, b: int32x2_t, c: int32x2_t);
66980    }
66981    _vst1_s32_x3(a, b.0, b.1, b.2)
66982}
66983#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
66984#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s32_x3)"]
66985#[doc = "## Safety"]
66986#[doc = "  * Neon instrinsic unsafe"]
66987#[inline]
66988#[target_feature(enable = "neon,v7")]
66989#[cfg(target_arch = "arm")]
66990#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
66991#[cfg_attr(test, assert_instr(vst1))]
66992pub unsafe fn vst1q_s32_x3(a: *mut i32, b: int32x4x3_t) {
66993    unsafe extern "unadjusted" {
66994        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x3.p0.v4i32.p0")]
66995        fn _vst1q_s32_x3(ptr: *mut i32, a: int32x4_t, b: int32x4_t, c: int32x4_t);
66996    }
66997    _vst1q_s32_x3(a, b.0, b.1, b.2)
66998}
66999#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
67000#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s64_x3)"]
67001#[doc = "## Safety"]
67002#[doc = "  * Neon instrinsic unsafe"]
67003#[inline]
67004#[target_feature(enable = "neon,v7")]
67005#[cfg(target_arch = "arm")]
67006#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
67007#[cfg_attr(test, assert_instr(vst1))]
67008pub unsafe fn vst1_s64_x3(a: *mut i64, b: int64x1x3_t) {
67009    unsafe extern "unadjusted" {
67010        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x3.p0.v1i64.p0")]
67011        fn _vst1_s64_x3(ptr: *mut i64, a: int64x1_t, b: int64x1_t, c: int64x1_t);
67012    }
67013    _vst1_s64_x3(a, b.0, b.1, b.2)
67014}
67015#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
67016#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s64_x3)"]
67017#[doc = "## Safety"]
67018#[doc = "  * Neon instrinsic unsafe"]
67019#[inline]
67020#[target_feature(enable = "neon,v7")]
67021#[cfg(target_arch = "arm")]
67022#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
67023#[cfg_attr(test, assert_instr(vst1))]
67024pub unsafe fn vst1q_s64_x3(a: *mut i64, b: int64x2x3_t) {
67025    unsafe extern "unadjusted" {
67026        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x3.p0.v2i64.p0")]
67027        fn _vst1q_s64_x3(ptr: *mut i64, a: int64x2_t, b: int64x2_t, c: int64x2_t);
67028    }
67029    _vst1q_s64_x3(a, b.0, b.1, b.2)
67030}
67031#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
67032#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s8_x4)"]
67033#[doc = "## Safety"]
67034#[doc = "  * Neon instrinsic unsafe"]
67035#[inline]
67036#[target_feature(enable = "neon")]
67037#[cfg(not(target_arch = "arm"))]
67038#[stable(feature = "neon_intrinsics", since = "1.59.0")]
67039#[cfg_attr(test, assert_instr(st1))]
67040pub unsafe fn vst1_s8_x4(a: *mut i8, b: int8x8x4_t) {
67041    unsafe extern "unadjusted" {
67042        #[cfg_attr(
67043            any(target_arch = "aarch64", target_arch = "arm64ec"),
67044            link_name = "llvm.aarch64.neon.st1x4.v8i8.p0"
67045        )]
67046        fn _vst1_s8_x4(a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t, ptr: *mut i8);
67047    }
67048    _vst1_s8_x4(b.0, b.1, b.2, b.3, a)
67049}
67050#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
67051#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s8_x4)"]
67052#[doc = "## Safety"]
67053#[doc = "  * Neon instrinsic unsafe"]
67054#[inline]
67055#[target_feature(enable = "neon")]
67056#[cfg(not(target_arch = "arm"))]
67057#[stable(feature = "neon_intrinsics", since = "1.59.0")]
67058#[cfg_attr(test, assert_instr(st1))]
67059pub unsafe fn vst1q_s8_x4(a: *mut i8, b: int8x16x4_t) {
67060    unsafe extern "unadjusted" {
67061        #[cfg_attr(
67062            any(target_arch = "aarch64", target_arch = "arm64ec"),
67063            link_name = "llvm.aarch64.neon.st1x4.v16i8.p0"
67064        )]
67065        fn _vst1q_s8_x4(a: int8x16_t, b: int8x16_t, c: int8x16_t, d: int8x16_t, ptr: *mut i8);
67066    }
67067    _vst1q_s8_x4(b.0, b.1, b.2, b.3, a)
67068}
67069#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
67070#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s16_x4)"]
67071#[doc = "## Safety"]
67072#[doc = "  * Neon instrinsic unsafe"]
67073#[inline]
67074#[target_feature(enable = "neon")]
67075#[cfg(not(target_arch = "arm"))]
67076#[stable(feature = "neon_intrinsics", since = "1.59.0")]
67077#[cfg_attr(test, assert_instr(st1))]
67078pub unsafe fn vst1_s16_x4(a: *mut i16, b: int16x4x4_t) {
67079    unsafe extern "unadjusted" {
67080        #[cfg_attr(
67081            any(target_arch = "aarch64", target_arch = "arm64ec"),
67082            link_name = "llvm.aarch64.neon.st1x4.v4i16.p0"
67083        )]
67084        fn _vst1_s16_x4(a: int16x4_t, b: int16x4_t, c: int16x4_t, d: int16x4_t, ptr: *mut i16);
67085    }
67086    _vst1_s16_x4(b.0, b.1, b.2, b.3, a)
67087}
67088#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
67089#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s16_x4)"]
67090#[doc = "## Safety"]
67091#[doc = "  * Neon instrinsic unsafe"]
67092#[inline]
67093#[target_feature(enable = "neon")]
67094#[cfg(not(target_arch = "arm"))]
67095#[stable(feature = "neon_intrinsics", since = "1.59.0")]
67096#[cfg_attr(test, assert_instr(st1))]
67097pub unsafe fn vst1q_s16_x4(a: *mut i16, b: int16x8x4_t) {
67098    unsafe extern "unadjusted" {
67099        #[cfg_attr(
67100            any(target_arch = "aarch64", target_arch = "arm64ec"),
67101            link_name = "llvm.aarch64.neon.st1x4.v8i16.p0"
67102        )]
67103        fn _vst1q_s16_x4(a: int16x8_t, b: int16x8_t, c: int16x8_t, d: int16x8_t, ptr: *mut i16);
67104    }
67105    _vst1q_s16_x4(b.0, b.1, b.2, b.3, a)
67106}
67107#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
67108#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s32_x4)"]
67109#[doc = "## Safety"]
67110#[doc = "  * Neon instrinsic unsafe"]
67111#[inline]
67112#[target_feature(enable = "neon")]
67113#[cfg(not(target_arch = "arm"))]
67114#[stable(feature = "neon_intrinsics", since = "1.59.0")]
67115#[cfg_attr(test, assert_instr(st1))]
67116pub unsafe fn vst1_s32_x4(a: *mut i32, b: int32x2x4_t) {
67117    unsafe extern "unadjusted" {
67118        #[cfg_attr(
67119            any(target_arch = "aarch64", target_arch = "arm64ec"),
67120            link_name = "llvm.aarch64.neon.st1x4.v2i32.p0"
67121        )]
67122        fn _vst1_s32_x4(a: int32x2_t, b: int32x2_t, c: int32x2_t, d: int32x2_t, ptr: *mut i32);
67123    }
67124    _vst1_s32_x4(b.0, b.1, b.2, b.3, a)
67125}
67126#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
67127#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s32_x4)"]
67128#[doc = "## Safety"]
67129#[doc = "  * Neon instrinsic unsafe"]
67130#[inline]
67131#[target_feature(enable = "neon")]
67132#[cfg(not(target_arch = "arm"))]
67133#[stable(feature = "neon_intrinsics", since = "1.59.0")]
67134#[cfg_attr(test, assert_instr(st1))]
67135pub unsafe fn vst1q_s32_x4(a: *mut i32, b: int32x4x4_t) {
67136    unsafe extern "unadjusted" {
67137        #[cfg_attr(
67138            any(target_arch = "aarch64", target_arch = "arm64ec"),
67139            link_name = "llvm.aarch64.neon.st1x4.v4i32.p0"
67140        )]
67141        fn _vst1q_s32_x4(a: int32x4_t, b: int32x4_t, c: int32x4_t, d: int32x4_t, ptr: *mut i32);
67142    }
67143    _vst1q_s32_x4(b.0, b.1, b.2, b.3, a)
67144}
67145#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
67146#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s64_x4)"]
67147#[doc = "## Safety"]
67148#[doc = "  * Neon instrinsic unsafe"]
67149#[inline]
67150#[target_feature(enable = "neon")]
67151#[cfg(not(target_arch = "arm"))]
67152#[stable(feature = "neon_intrinsics", since = "1.59.0")]
67153#[cfg_attr(test, assert_instr(st1))]
67154pub unsafe fn vst1_s64_x4(a: *mut i64, b: int64x1x4_t) {
67155    unsafe extern "unadjusted" {
67156        #[cfg_attr(
67157            any(target_arch = "aarch64", target_arch = "arm64ec"),
67158            link_name = "llvm.aarch64.neon.st1x4.v1i64.p0"
67159        )]
67160        fn _vst1_s64_x4(a: int64x1_t, b: int64x1_t, c: int64x1_t, d: int64x1_t, ptr: *mut i64);
67161    }
67162    _vst1_s64_x4(b.0, b.1, b.2, b.3, a)
67163}
67164#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
67165#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s64_x4)"]
67166#[doc = "## Safety"]
67167#[doc = "  * Neon instrinsic unsafe"]
67168#[inline]
67169#[target_feature(enable = "neon")]
67170#[cfg(not(target_arch = "arm"))]
67171#[stable(feature = "neon_intrinsics", since = "1.59.0")]
67172#[cfg_attr(test, assert_instr(st1))]
67173pub unsafe fn vst1q_s64_x4(a: *mut i64, b: int64x2x4_t) {
67174    unsafe extern "unadjusted" {
67175        #[cfg_attr(
67176            any(target_arch = "aarch64", target_arch = "arm64ec"),
67177            link_name = "llvm.aarch64.neon.st1x4.v2i64.p0"
67178        )]
67179        fn _vst1q_s64_x4(a: int64x2_t, b: int64x2_t, c: int64x2_t, d: int64x2_t, ptr: *mut i64);
67180    }
67181    _vst1q_s64_x4(b.0, b.1, b.2, b.3, a)
67182}
67183#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
67184#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s8_x4)"]
67185#[doc = "## Safety"]
67186#[doc = "  * Neon instrinsic unsafe"]
67187#[inline]
67188#[cfg(target_arch = "arm")]
67189#[target_feature(enable = "neon,v7")]
67190#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
67191#[cfg_attr(test, assert_instr(vst1))]
67192pub unsafe fn vst1_s8_x4(a: *mut i8, b: int8x8x4_t) {
67193    unsafe extern "unadjusted" {
67194        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x4.p0.v8i8.p0")]
67195        fn _vst1_s8_x4(ptr: *mut i8, a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t);
67196    }
67197    _vst1_s8_x4(a, b.0, b.1, b.2, b.3)
67198}
67199#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
67200#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s8_x4)"]
67201#[doc = "## Safety"]
67202#[doc = "  * Neon instrinsic unsafe"]
67203#[inline]
67204#[cfg(target_arch = "arm")]
67205#[target_feature(enable = "neon,v7")]
67206#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
67207#[cfg_attr(test, assert_instr(vst1))]
67208pub unsafe fn vst1q_s8_x4(a: *mut i8, b: int8x16x4_t) {
67209    unsafe extern "unadjusted" {
67210        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x4.p0.v16i8.p0")]
67211        fn _vst1q_s8_x4(ptr: *mut i8, a: int8x16_t, b: int8x16_t, c: int8x16_t, d: int8x16_t);
67212    }
67213    _vst1q_s8_x4(a, b.0, b.1, b.2, b.3)
67214}
67215#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
67216#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s16_x4)"]
67217#[doc = "## Safety"]
67218#[doc = "  * Neon instrinsic unsafe"]
67219#[inline]
67220#[cfg(target_arch = "arm")]
67221#[target_feature(enable = "neon,v7")]
67222#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
67223#[cfg_attr(test, assert_instr(vst1))]
67224pub unsafe fn vst1_s16_x4(a: *mut i16, b: int16x4x4_t) {
67225    unsafe extern "unadjusted" {
67226        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x4.p0.v4i16.p0")]
67227        fn _vst1_s16_x4(ptr: *mut i16, a: int16x4_t, b: int16x4_t, c: int16x4_t, d: int16x4_t);
67228    }
67229    _vst1_s16_x4(a, b.0, b.1, b.2, b.3)
67230}
67231#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
67232#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s16_x4)"]
67233#[doc = "## Safety"]
67234#[doc = "  * Neon instrinsic unsafe"]
67235#[inline]
67236#[cfg(target_arch = "arm")]
67237#[target_feature(enable = "neon,v7")]
67238#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
67239#[cfg_attr(test, assert_instr(vst1))]
67240pub unsafe fn vst1q_s16_x4(a: *mut i16, b: int16x8x4_t) {
67241    unsafe extern "unadjusted" {
67242        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x4.p0.v8i16.p0")]
67243        fn _vst1q_s16_x4(ptr: *mut i16, a: int16x8_t, b: int16x8_t, c: int16x8_t, d: int16x8_t);
67244    }
67245    _vst1q_s16_x4(a, b.0, b.1, b.2, b.3)
67246}
67247#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
67248#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s32_x4)"]
67249#[doc = "## Safety"]
67250#[doc = "  * Neon instrinsic unsafe"]
67251#[inline]
67252#[cfg(target_arch = "arm")]
67253#[target_feature(enable = "neon,v7")]
67254#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
67255#[cfg_attr(test, assert_instr(vst1))]
67256pub unsafe fn vst1_s32_x4(a: *mut i32, b: int32x2x4_t) {
67257    unsafe extern "unadjusted" {
67258        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x4.p0.v2i32.p0")]
67259        fn _vst1_s32_x4(ptr: *mut i32, a: int32x2_t, b: int32x2_t, c: int32x2_t, d: int32x2_t);
67260    }
67261    _vst1_s32_x4(a, b.0, b.1, b.2, b.3)
67262}
67263#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
67264#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s32_x4)"]
67265#[doc = "## Safety"]
67266#[doc = "  * Neon instrinsic unsafe"]
67267#[inline]
67268#[cfg(target_arch = "arm")]
67269#[target_feature(enable = "neon,v7")]
67270#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
67271#[cfg_attr(test, assert_instr(vst1))]
67272pub unsafe fn vst1q_s32_x4(a: *mut i32, b: int32x4x4_t) {
67273    unsafe extern "unadjusted" {
67274        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x4.p0.v4i32.p0")]
67275        fn _vst1q_s32_x4(ptr: *mut i32, a: int32x4_t, b: int32x4_t, c: int32x4_t, d: int32x4_t);
67276    }
67277    _vst1q_s32_x4(a, b.0, b.1, b.2, b.3)
67278}
67279#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
67280#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s64_x4)"]
67281#[doc = "## Safety"]
67282#[doc = "  * Neon instrinsic unsafe"]
67283#[inline]
67284#[cfg(target_arch = "arm")]
67285#[target_feature(enable = "neon,v7")]
67286#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
67287#[cfg_attr(test, assert_instr(vst1))]
67288pub unsafe fn vst1_s64_x4(a: *mut i64, b: int64x1x4_t) {
67289    unsafe extern "unadjusted" {
67290        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x4.p0.v1i64.p0")]
67291        fn _vst1_s64_x4(ptr: *mut i64, a: int64x1_t, b: int64x1_t, c: int64x1_t, d: int64x1_t);
67292    }
67293    _vst1_s64_x4(a, b.0, b.1, b.2, b.3)
67294}
67295#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
67296#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s64_x4)"]
67297#[doc = "## Safety"]
67298#[doc = "  * Neon instrinsic unsafe"]
67299#[inline]
67300#[cfg(target_arch = "arm")]
67301#[target_feature(enable = "neon,v7")]
67302#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
67303#[cfg_attr(test, assert_instr(vst1))]
67304pub unsafe fn vst1q_s64_x4(a: *mut i64, b: int64x2x4_t) {
67305    unsafe extern "unadjusted" {
67306        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x4.p0.v2i64.p0")]
67307        fn _vst1q_s64_x4(ptr: *mut i64, a: int64x2_t, b: int64x2_t, c: int64x2_t, d: int64x2_t);
67308    }
67309    _vst1q_s64_x4(a, b.0, b.1, b.2, b.3)
67310}
67311#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
67312#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u8_x2)"]
67313#[doc = "## Safety"]
67314#[doc = "  * Neon instrinsic unsafe"]
67315#[inline]
67316#[target_feature(enable = "neon")]
67317#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
67318#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
67319#[cfg_attr(
67320    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
67321    assert_instr(st1)
67322)]
67323#[cfg_attr(
67324    not(target_arch = "arm"),
67325    stable(feature = "neon_intrinsics", since = "1.59.0")
67326)]
67327#[cfg_attr(
67328    target_arch = "arm",
67329    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
67330)]
67331pub unsafe fn vst1_u8_x2(a: *mut u8, b: uint8x8x2_t) {
67332    vst1_s8_x2(transmute(a), transmute(b))
67333}
67334#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
67335#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u8_x3)"]
67336#[doc = "## Safety"]
67337#[doc = "  * Neon instrinsic unsafe"]
67338#[inline]
67339#[target_feature(enable = "neon")]
67340#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
67341#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
67342#[cfg_attr(
67343    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
67344    assert_instr(st1)
67345)]
67346#[cfg_attr(
67347    not(target_arch = "arm"),
67348    stable(feature = "neon_intrinsics", since = "1.59.0")
67349)]
67350#[cfg_attr(
67351    target_arch = "arm",
67352    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
67353)]
67354pub unsafe fn vst1_u8_x3(a: *mut u8, b: uint8x8x3_t) {
67355    vst1_s8_x3(transmute(a), transmute(b))
67356}
67357#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
67358#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u8_x4)"]
67359#[doc = "## Safety"]
67360#[doc = "  * Neon instrinsic unsafe"]
67361#[inline]
67362#[target_feature(enable = "neon")]
67363#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
67364#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
67365#[cfg_attr(
67366    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
67367    assert_instr(st1)
67368)]
67369#[cfg_attr(
67370    not(target_arch = "arm"),
67371    stable(feature = "neon_intrinsics", since = "1.59.0")
67372)]
67373#[cfg_attr(
67374    target_arch = "arm",
67375    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
67376)]
67377pub unsafe fn vst1_u8_x4(a: *mut u8, b: uint8x8x4_t) {
67378    vst1_s8_x4(transmute(a), transmute(b))
67379}
67380#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
67381#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u8_x2)"]
67382#[doc = "## Safety"]
67383#[doc = "  * Neon instrinsic unsafe"]
67384#[inline]
67385#[target_feature(enable = "neon")]
67386#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
67387#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
67388#[cfg_attr(
67389    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
67390    assert_instr(st1)
67391)]
67392#[cfg_attr(
67393    not(target_arch = "arm"),
67394    stable(feature = "neon_intrinsics", since = "1.59.0")
67395)]
67396#[cfg_attr(
67397    target_arch = "arm",
67398    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
67399)]
67400pub unsafe fn vst1q_u8_x2(a: *mut u8, b: uint8x16x2_t) {
67401    vst1q_s8_x2(transmute(a), transmute(b))
67402}
67403#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
67404#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u8_x3)"]
67405#[doc = "## Safety"]
67406#[doc = "  * Neon instrinsic unsafe"]
67407#[inline]
67408#[target_feature(enable = "neon")]
67409#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
67410#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
67411#[cfg_attr(
67412    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
67413    assert_instr(st1)
67414)]
67415#[cfg_attr(
67416    not(target_arch = "arm"),
67417    stable(feature = "neon_intrinsics", since = "1.59.0")
67418)]
67419#[cfg_attr(
67420    target_arch = "arm",
67421    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
67422)]
67423pub unsafe fn vst1q_u8_x3(a: *mut u8, b: uint8x16x3_t) {
67424    vst1q_s8_x3(transmute(a), transmute(b))
67425}
67426#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
67427#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u8_x4)"]
67428#[doc = "## Safety"]
67429#[doc = "  * Neon instrinsic unsafe"]
67430#[inline]
67431#[target_feature(enable = "neon")]
67432#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
67433#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
67434#[cfg_attr(
67435    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
67436    assert_instr(st1)
67437)]
67438#[cfg_attr(
67439    not(target_arch = "arm"),
67440    stable(feature = "neon_intrinsics", since = "1.59.0")
67441)]
67442#[cfg_attr(
67443    target_arch = "arm",
67444    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
67445)]
67446pub unsafe fn vst1q_u8_x4(a: *mut u8, b: uint8x16x4_t) {
67447    vst1q_s8_x4(transmute(a), transmute(b))
67448}
67449#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
67450#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u16_x2)"]
67451#[doc = "## Safety"]
67452#[doc = "  * Neon instrinsic unsafe"]
67453#[inline]
67454#[target_feature(enable = "neon")]
67455#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
67456#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
67457#[cfg_attr(
67458    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
67459    assert_instr(st1)
67460)]
67461#[cfg_attr(
67462    not(target_arch = "arm"),
67463    stable(feature = "neon_intrinsics", since = "1.59.0")
67464)]
67465#[cfg_attr(
67466    target_arch = "arm",
67467    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
67468)]
67469pub unsafe fn vst1_u16_x2(a: *mut u16, b: uint16x4x2_t) {
67470    vst1_s16_x2(transmute(a), transmute(b))
67471}
67472#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
67473#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u16_x3)"]
67474#[doc = "## Safety"]
67475#[doc = "  * Neon instrinsic unsafe"]
67476#[inline]
67477#[target_feature(enable = "neon")]
67478#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
67479#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
67480#[cfg_attr(
67481    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
67482    assert_instr(st1)
67483)]
67484#[cfg_attr(
67485    not(target_arch = "arm"),
67486    stable(feature = "neon_intrinsics", since = "1.59.0")
67487)]
67488#[cfg_attr(
67489    target_arch = "arm",
67490    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
67491)]
67492pub unsafe fn vst1_u16_x3(a: *mut u16, b: uint16x4x3_t) {
67493    vst1_s16_x3(transmute(a), transmute(b))
67494}
67495#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
67496#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u16_x4)"]
67497#[doc = "## Safety"]
67498#[doc = "  * Neon instrinsic unsafe"]
67499#[inline]
67500#[target_feature(enable = "neon")]
67501#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
67502#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
67503#[cfg_attr(
67504    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
67505    assert_instr(st1)
67506)]
67507#[cfg_attr(
67508    not(target_arch = "arm"),
67509    stable(feature = "neon_intrinsics", since = "1.59.0")
67510)]
67511#[cfg_attr(
67512    target_arch = "arm",
67513    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
67514)]
67515pub unsafe fn vst1_u16_x4(a: *mut u16, b: uint16x4x4_t) {
67516    vst1_s16_x4(transmute(a), transmute(b))
67517}
67518#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
67519#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u16_x2)"]
67520#[doc = "## Safety"]
67521#[doc = "  * Neon instrinsic unsafe"]
67522#[inline]
67523#[target_feature(enable = "neon")]
67524#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
67525#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
67526#[cfg_attr(
67527    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
67528    assert_instr(st1)
67529)]
67530#[cfg_attr(
67531    not(target_arch = "arm"),
67532    stable(feature = "neon_intrinsics", since = "1.59.0")
67533)]
67534#[cfg_attr(
67535    target_arch = "arm",
67536    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
67537)]
67538pub unsafe fn vst1q_u16_x2(a: *mut u16, b: uint16x8x2_t) {
67539    vst1q_s16_x2(transmute(a), transmute(b))
67540}
67541#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
67542#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u16_x3)"]
67543#[doc = "## Safety"]
67544#[doc = "  * Neon instrinsic unsafe"]
67545#[inline]
67546#[target_feature(enable = "neon")]
67547#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
67548#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
67549#[cfg_attr(
67550    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
67551    assert_instr(st1)
67552)]
67553#[cfg_attr(
67554    not(target_arch = "arm"),
67555    stable(feature = "neon_intrinsics", since = "1.59.0")
67556)]
67557#[cfg_attr(
67558    target_arch = "arm",
67559    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
67560)]
67561pub unsafe fn vst1q_u16_x3(a: *mut u16, b: uint16x8x3_t) {
67562    vst1q_s16_x3(transmute(a), transmute(b))
67563}
67564#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
67565#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u16_x4)"]
67566#[doc = "## Safety"]
67567#[doc = "  * Neon instrinsic unsafe"]
67568#[inline]
67569#[target_feature(enable = "neon")]
67570#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
67571#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
67572#[cfg_attr(
67573    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
67574    assert_instr(st1)
67575)]
67576#[cfg_attr(
67577    not(target_arch = "arm"),
67578    stable(feature = "neon_intrinsics", since = "1.59.0")
67579)]
67580#[cfg_attr(
67581    target_arch = "arm",
67582    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
67583)]
67584pub unsafe fn vst1q_u16_x4(a: *mut u16, b: uint16x8x4_t) {
67585    vst1q_s16_x4(transmute(a), transmute(b))
67586}
67587#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
67588#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u32_x2)"]
67589#[doc = "## Safety"]
67590#[doc = "  * Neon instrinsic unsafe"]
67591#[inline]
67592#[target_feature(enable = "neon")]
67593#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
67594#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
67595#[cfg_attr(
67596    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
67597    assert_instr(st1)
67598)]
67599#[cfg_attr(
67600    not(target_arch = "arm"),
67601    stable(feature = "neon_intrinsics", since = "1.59.0")
67602)]
67603#[cfg_attr(
67604    target_arch = "arm",
67605    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
67606)]
67607pub unsafe fn vst1_u32_x2(a: *mut u32, b: uint32x2x2_t) {
67608    vst1_s32_x2(transmute(a), transmute(b))
67609}
67610#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
67611#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u32_x3)"]
67612#[doc = "## Safety"]
67613#[doc = "  * Neon instrinsic unsafe"]
67614#[inline]
67615#[target_feature(enable = "neon")]
67616#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
67617#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
67618#[cfg_attr(
67619    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
67620    assert_instr(st1)
67621)]
67622#[cfg_attr(
67623    not(target_arch = "arm"),
67624    stable(feature = "neon_intrinsics", since = "1.59.0")
67625)]
67626#[cfg_attr(
67627    target_arch = "arm",
67628    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
67629)]
67630pub unsafe fn vst1_u32_x3(a: *mut u32, b: uint32x2x3_t) {
67631    vst1_s32_x3(transmute(a), transmute(b))
67632}
67633#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
67634#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u32_x4)"]
67635#[doc = "## Safety"]
67636#[doc = "  * Neon instrinsic unsafe"]
67637#[inline]
67638#[target_feature(enable = "neon")]
67639#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
67640#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
67641#[cfg_attr(
67642    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
67643    assert_instr(st1)
67644)]
67645#[cfg_attr(
67646    not(target_arch = "arm"),
67647    stable(feature = "neon_intrinsics", since = "1.59.0")
67648)]
67649#[cfg_attr(
67650    target_arch = "arm",
67651    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
67652)]
67653pub unsafe fn vst1_u32_x4(a: *mut u32, b: uint32x2x4_t) {
67654    vst1_s32_x4(transmute(a), transmute(b))
67655}
67656#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
67657#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u32_x2)"]
67658#[doc = "## Safety"]
67659#[doc = "  * Neon instrinsic unsafe"]
67660#[inline]
67661#[target_feature(enable = "neon")]
67662#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
67663#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
67664#[cfg_attr(
67665    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
67666    assert_instr(st1)
67667)]
67668#[cfg_attr(
67669    not(target_arch = "arm"),
67670    stable(feature = "neon_intrinsics", since = "1.59.0")
67671)]
67672#[cfg_attr(
67673    target_arch = "arm",
67674    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
67675)]
67676pub unsafe fn vst1q_u32_x2(a: *mut u32, b: uint32x4x2_t) {
67677    vst1q_s32_x2(transmute(a), transmute(b))
67678}
67679#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
67680#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u32_x3)"]
67681#[doc = "## Safety"]
67682#[doc = "  * Neon instrinsic unsafe"]
67683#[inline]
67684#[target_feature(enable = "neon")]
67685#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
67686#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
67687#[cfg_attr(
67688    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
67689    assert_instr(st1)
67690)]
67691#[cfg_attr(
67692    not(target_arch = "arm"),
67693    stable(feature = "neon_intrinsics", since = "1.59.0")
67694)]
67695#[cfg_attr(
67696    target_arch = "arm",
67697    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
67698)]
67699pub unsafe fn vst1q_u32_x3(a: *mut u32, b: uint32x4x3_t) {
67700    vst1q_s32_x3(transmute(a), transmute(b))
67701}
67702#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
67703#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u32_x4)"]
67704#[doc = "## Safety"]
67705#[doc = "  * Neon instrinsic unsafe"]
67706#[inline]
67707#[target_feature(enable = "neon")]
67708#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
67709#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
67710#[cfg_attr(
67711    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
67712    assert_instr(st1)
67713)]
67714#[cfg_attr(
67715    not(target_arch = "arm"),
67716    stable(feature = "neon_intrinsics", since = "1.59.0")
67717)]
67718#[cfg_attr(
67719    target_arch = "arm",
67720    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
67721)]
67722pub unsafe fn vst1q_u32_x4(a: *mut u32, b: uint32x4x4_t) {
67723    vst1q_s32_x4(transmute(a), transmute(b))
67724}
67725#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
67726#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u64_x2)"]
67727#[doc = "## Safety"]
67728#[doc = "  * Neon instrinsic unsafe"]
67729#[inline]
67730#[target_feature(enable = "neon")]
67731#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
67732#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
67733#[cfg_attr(
67734    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
67735    assert_instr(st1)
67736)]
67737#[cfg_attr(
67738    not(target_arch = "arm"),
67739    stable(feature = "neon_intrinsics", since = "1.59.0")
67740)]
67741#[cfg_attr(
67742    target_arch = "arm",
67743    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
67744)]
67745pub unsafe fn vst1_u64_x2(a: *mut u64, b: uint64x1x2_t) {
67746    vst1_s64_x2(transmute(a), transmute(b))
67747}
67748#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
67749#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u64_x3)"]
67750#[doc = "## Safety"]
67751#[doc = "  * Neon instrinsic unsafe"]
67752#[inline]
67753#[target_feature(enable = "neon")]
67754#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
67755#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
67756#[cfg_attr(
67757    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
67758    assert_instr(st1)
67759)]
67760#[cfg_attr(
67761    not(target_arch = "arm"),
67762    stable(feature = "neon_intrinsics", since = "1.59.0")
67763)]
67764#[cfg_attr(
67765    target_arch = "arm",
67766    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
67767)]
67768pub unsafe fn vst1_u64_x3(a: *mut u64, b: uint64x1x3_t) {
67769    vst1_s64_x3(transmute(a), transmute(b))
67770}
67771#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
67772#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u64_x4)"]
67773#[doc = "## Safety"]
67774#[doc = "  * Neon instrinsic unsafe"]
67775#[inline]
67776#[target_feature(enable = "neon")]
67777#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
67778#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
67779#[cfg_attr(
67780    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
67781    assert_instr(st1)
67782)]
67783#[cfg_attr(
67784    not(target_arch = "arm"),
67785    stable(feature = "neon_intrinsics", since = "1.59.0")
67786)]
67787#[cfg_attr(
67788    target_arch = "arm",
67789    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
67790)]
67791pub unsafe fn vst1_u64_x4(a: *mut u64, b: uint64x1x4_t) {
67792    vst1_s64_x4(transmute(a), transmute(b))
67793}
67794#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
67795#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u64_x2)"]
67796#[doc = "## Safety"]
67797#[doc = "  * Neon instrinsic unsafe"]
67798#[inline]
67799#[target_feature(enable = "neon")]
67800#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
67801#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
67802#[cfg_attr(
67803    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
67804    assert_instr(st1)
67805)]
67806#[cfg_attr(
67807    not(target_arch = "arm"),
67808    stable(feature = "neon_intrinsics", since = "1.59.0")
67809)]
67810#[cfg_attr(
67811    target_arch = "arm",
67812    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
67813)]
67814pub unsafe fn vst1q_u64_x2(a: *mut u64, b: uint64x2x2_t) {
67815    vst1q_s64_x2(transmute(a), transmute(b))
67816}
67817#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
67818#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u64_x3)"]
67819#[doc = "## Safety"]
67820#[doc = "  * Neon instrinsic unsafe"]
67821#[inline]
67822#[target_feature(enable = "neon")]
67823#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
67824#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
67825#[cfg_attr(
67826    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
67827    assert_instr(st1)
67828)]
67829#[cfg_attr(
67830    not(target_arch = "arm"),
67831    stable(feature = "neon_intrinsics", since = "1.59.0")
67832)]
67833#[cfg_attr(
67834    target_arch = "arm",
67835    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
67836)]
67837pub unsafe fn vst1q_u64_x3(a: *mut u64, b: uint64x2x3_t) {
67838    vst1q_s64_x3(transmute(a), transmute(b))
67839}
67840#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
67841#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u64_x4)"]
67842#[doc = "## Safety"]
67843#[doc = "  * Neon instrinsic unsafe"]
67844#[inline]
67845#[target_feature(enable = "neon")]
67846#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
67847#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
67848#[cfg_attr(
67849    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
67850    assert_instr(st1)
67851)]
67852#[cfg_attr(
67853    not(target_arch = "arm"),
67854    stable(feature = "neon_intrinsics", since = "1.59.0")
67855)]
67856#[cfg_attr(
67857    target_arch = "arm",
67858    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
67859)]
67860pub unsafe fn vst1q_u64_x4(a: *mut u64, b: uint64x2x4_t) {
67861    vst1q_s64_x4(transmute(a), transmute(b))
67862}
67863#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
67864#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_p8_x2)"]
67865#[doc = "## Safety"]
67866#[doc = "  * Neon instrinsic unsafe"]
67867#[inline]
67868#[target_feature(enable = "neon")]
67869#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
67870#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
67871#[cfg_attr(
67872    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
67873    assert_instr(st1)
67874)]
67875#[cfg_attr(
67876    not(target_arch = "arm"),
67877    stable(feature = "neon_intrinsics", since = "1.59.0")
67878)]
67879#[cfg_attr(
67880    target_arch = "arm",
67881    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
67882)]
67883pub unsafe fn vst1_p8_x2(a: *mut p8, b: poly8x8x2_t) {
67884    vst1_s8_x2(transmute(a), transmute(b))
67885}
67886#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
67887#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_p8_x3)"]
67888#[doc = "## Safety"]
67889#[doc = "  * Neon instrinsic unsafe"]
67890#[inline]
67891#[target_feature(enable = "neon")]
67892#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
67893#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
67894#[cfg_attr(
67895    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
67896    assert_instr(st1)
67897)]
67898#[cfg_attr(
67899    not(target_arch = "arm"),
67900    stable(feature = "neon_intrinsics", since = "1.59.0")
67901)]
67902#[cfg_attr(
67903    target_arch = "arm",
67904    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
67905)]
67906pub unsafe fn vst1_p8_x3(a: *mut p8, b: poly8x8x3_t) {
67907    vst1_s8_x3(transmute(a), transmute(b))
67908}
67909#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
67910#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_p8_x4)"]
67911#[doc = "## Safety"]
67912#[doc = "  * Neon instrinsic unsafe"]
67913#[inline]
67914#[target_feature(enable = "neon")]
67915#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
67916#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
67917#[cfg_attr(
67918    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
67919    assert_instr(st1)
67920)]
67921#[cfg_attr(
67922    not(target_arch = "arm"),
67923    stable(feature = "neon_intrinsics", since = "1.59.0")
67924)]
67925#[cfg_attr(
67926    target_arch = "arm",
67927    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
67928)]
67929pub unsafe fn vst1_p8_x4(a: *mut p8, b: poly8x8x4_t) {
67930    vst1_s8_x4(transmute(a), transmute(b))
67931}
67932#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
67933#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_p8_x2)"]
67934#[doc = "## Safety"]
67935#[doc = "  * Neon instrinsic unsafe"]
67936#[inline]
67937#[target_feature(enable = "neon")]
67938#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
67939#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
67940#[cfg_attr(
67941    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
67942    assert_instr(st1)
67943)]
67944#[cfg_attr(
67945    not(target_arch = "arm"),
67946    stable(feature = "neon_intrinsics", since = "1.59.0")
67947)]
67948#[cfg_attr(
67949    target_arch = "arm",
67950    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
67951)]
67952pub unsafe fn vst1q_p8_x2(a: *mut p8, b: poly8x16x2_t) {
67953    vst1q_s8_x2(transmute(a), transmute(b))
67954}
67955#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
67956#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_p8_x3)"]
67957#[doc = "## Safety"]
67958#[doc = "  * Neon instrinsic unsafe"]
67959#[inline]
67960#[target_feature(enable = "neon")]
67961#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
67962#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
67963#[cfg_attr(
67964    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
67965    assert_instr(st1)
67966)]
67967#[cfg_attr(
67968    not(target_arch = "arm"),
67969    stable(feature = "neon_intrinsics", since = "1.59.0")
67970)]
67971#[cfg_attr(
67972    target_arch = "arm",
67973    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
67974)]
67975pub unsafe fn vst1q_p8_x3(a: *mut p8, b: poly8x16x3_t) {
67976    vst1q_s8_x3(transmute(a), transmute(b))
67977}
67978#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
67979#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_p8_x4)"]
67980#[doc = "## Safety"]
67981#[doc = "  * Neon instrinsic unsafe"]
67982#[inline]
67983#[target_feature(enable = "neon")]
67984#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
67985#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
67986#[cfg_attr(
67987    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
67988    assert_instr(st1)
67989)]
67990#[cfg_attr(
67991    not(target_arch = "arm"),
67992    stable(feature = "neon_intrinsics", since = "1.59.0")
67993)]
67994#[cfg_attr(
67995    target_arch = "arm",
67996    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
67997)]
67998pub unsafe fn vst1q_p8_x4(a: *mut p8, b: poly8x16x4_t) {
67999    vst1q_s8_x4(transmute(a), transmute(b))
68000}
68001#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
68002#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_p16_x2)"]
68003#[doc = "## Safety"]
68004#[doc = "  * Neon instrinsic unsafe"]
68005#[inline]
68006#[target_feature(enable = "neon")]
68007#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
68008#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
68009#[cfg_attr(
68010    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
68011    assert_instr(st1)
68012)]
68013#[cfg_attr(
68014    not(target_arch = "arm"),
68015    stable(feature = "neon_intrinsics", since = "1.59.0")
68016)]
68017#[cfg_attr(
68018    target_arch = "arm",
68019    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
68020)]
68021pub unsafe fn vst1_p16_x2(a: *mut p16, b: poly16x4x2_t) {
68022    vst1_s16_x2(transmute(a), transmute(b))
68023}
68024#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
68025#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_p16_x3)"]
68026#[doc = "## Safety"]
68027#[doc = "  * Neon instrinsic unsafe"]
68028#[inline]
68029#[target_feature(enable = "neon")]
68030#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
68031#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
68032#[cfg_attr(
68033    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
68034    assert_instr(st1)
68035)]
68036#[cfg_attr(
68037    not(target_arch = "arm"),
68038    stable(feature = "neon_intrinsics", since = "1.59.0")
68039)]
68040#[cfg_attr(
68041    target_arch = "arm",
68042    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
68043)]
68044pub unsafe fn vst1_p16_x3(a: *mut p16, b: poly16x4x3_t) {
68045    vst1_s16_x3(transmute(a), transmute(b))
68046}
68047#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
68048#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_p16_x4)"]
68049#[doc = "## Safety"]
68050#[doc = "  * Neon instrinsic unsafe"]
68051#[inline]
68052#[target_feature(enable = "neon")]
68053#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
68054#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
68055#[cfg_attr(
68056    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
68057    assert_instr(st1)
68058)]
68059#[cfg_attr(
68060    not(target_arch = "arm"),
68061    stable(feature = "neon_intrinsics", since = "1.59.0")
68062)]
68063#[cfg_attr(
68064    target_arch = "arm",
68065    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
68066)]
68067pub unsafe fn vst1_p16_x4(a: *mut p16, b: poly16x4x4_t) {
68068    vst1_s16_x4(transmute(a), transmute(b))
68069}
68070#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
68071#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_p16_x2)"]
68072#[doc = "## Safety"]
68073#[doc = "  * Neon instrinsic unsafe"]
68074#[inline]
68075#[target_feature(enable = "neon")]
68076#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
68077#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
68078#[cfg_attr(
68079    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
68080    assert_instr(st1)
68081)]
68082#[cfg_attr(
68083    not(target_arch = "arm"),
68084    stable(feature = "neon_intrinsics", since = "1.59.0")
68085)]
68086#[cfg_attr(
68087    target_arch = "arm",
68088    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
68089)]
68090pub unsafe fn vst1q_p16_x2(a: *mut p16, b: poly16x8x2_t) {
68091    vst1q_s16_x2(transmute(a), transmute(b))
68092}
68093#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
68094#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_p16_x3)"]
68095#[doc = "## Safety"]
68096#[doc = "  * Neon instrinsic unsafe"]
68097#[inline]
68098#[target_feature(enable = "neon")]
68099#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
68100#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
68101#[cfg_attr(
68102    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
68103    assert_instr(st1)
68104)]
68105#[cfg_attr(
68106    not(target_arch = "arm"),
68107    stable(feature = "neon_intrinsics", since = "1.59.0")
68108)]
68109#[cfg_attr(
68110    target_arch = "arm",
68111    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
68112)]
68113pub unsafe fn vst1q_p16_x3(a: *mut p16, b: poly16x8x3_t) {
68114    vst1q_s16_x3(transmute(a), transmute(b))
68115}
68116#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
68117#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_p16_x4)"]
68118#[doc = "## Safety"]
68119#[doc = "  * Neon instrinsic unsafe"]
68120#[inline]
68121#[target_feature(enable = "neon")]
68122#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
68123#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
68124#[cfg_attr(
68125    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
68126    assert_instr(st1)
68127)]
68128#[cfg_attr(
68129    not(target_arch = "arm"),
68130    stable(feature = "neon_intrinsics", since = "1.59.0")
68131)]
68132#[cfg_attr(
68133    target_arch = "arm",
68134    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
68135)]
68136pub unsafe fn vst1q_p16_x4(a: *mut p16, b: poly16x8x4_t) {
68137    vst1q_s16_x4(transmute(a), transmute(b))
68138}
68139#[inline]
68140#[target_feature(enable = "neon")]
68141#[cfg(target_arch = "arm")]
68142#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
68143#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
68144#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.64", ALIGN = 0))]
68145#[rustc_legacy_const_generics(2)]
68146unsafe fn vst1_v1i64<const ALIGN: i32>(addr: *const i8, val: int64x1_t) {
68147    unsafe extern "unadjusted" {
68148        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1.v1i64.p0")]
68149        fn _vst1_v1i64(addr: *const i8, val: int64x1_t, align: i32);
68150    }
68151    _vst1_v1i64(addr, val, ALIGN)
68152}
68153#[inline]
68154#[target_feature(enable = "neon")]
68155#[cfg(target_arch = "arm")]
68156#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
68157#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
68158#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.32", ALIGN = 0))]
68159#[rustc_legacy_const_generics(2)]
68160unsafe fn vst1_v2f32<const ALIGN: i32>(addr: *const i8, val: float32x2_t) {
68161    unsafe extern "unadjusted" {
68162        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1.v2f32.p0")]
68163        fn _vst1_v2f32(addr: *const i8, val: float32x2_t, align: i32);
68164    }
68165    _vst1_v2f32(addr, val, ALIGN)
68166}
68167#[inline]
68168#[target_feature(enable = "neon")]
68169#[cfg(target_arch = "arm")]
68170#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
68171#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
68172#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.32", ALIGN = 0))]
68173#[rustc_legacy_const_generics(2)]
68174unsafe fn vst1_v2i32<const ALIGN: i32>(addr: *const i8, val: int32x2_t) {
68175    unsafe extern "unadjusted" {
68176        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1.v2i32.p0")]
68177        fn _vst1_v2i32(addr: *const i8, val: int32x2_t, align: i32);
68178    }
68179    _vst1_v2i32(addr, val, ALIGN)
68180}
68181#[inline]
68182#[target_feature(enable = "neon")]
68183#[cfg(target_arch = "arm")]
68184#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
68185#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
68186#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.16", ALIGN = 0))]
68187#[rustc_legacy_const_generics(2)]
68188unsafe fn vst1_v4i16<const ALIGN: i32>(addr: *const i8, val: int16x4_t) {
68189    unsafe extern "unadjusted" {
68190        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1.v4i16.p0")]
68191        fn _vst1_v4i16(addr: *const i8, val: int16x4_t, align: i32);
68192    }
68193    _vst1_v4i16(addr, val, ALIGN)
68194}
68195#[inline]
68196#[target_feature(enable = "neon")]
68197#[cfg(target_arch = "arm")]
68198#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
68199#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
68200#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.8", ALIGN = 0))]
68201#[rustc_legacy_const_generics(2)]
68202unsafe fn vst1_v8i8<const ALIGN: i32>(addr: *const i8, val: int8x8_t) {
68203    unsafe extern "unadjusted" {
68204        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1.v8i8.p0")]
68205        fn _vst1_v8i8(addr: *const i8, val: int8x8_t, align: i32);
68206    }
68207    _vst1_v8i8(addr, val, ALIGN)
68208}
68209#[inline]
68210#[target_feature(enable = "neon")]
68211#[cfg(target_arch = "arm")]
68212#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
68213#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
68214#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.8", ALIGN = 0))]
68215#[rustc_legacy_const_generics(2)]
68216unsafe fn vst1q_v16i8<const ALIGN: i32>(addr: *const i8, val: int8x16_t) {
68217    unsafe extern "unadjusted" {
68218        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1.v16i8.p0")]
68219        fn _vst1q_v16i8(addr: *const i8, val: int8x16_t, align: i32);
68220    }
68221    _vst1q_v16i8(addr, val, ALIGN)
68222}
68223#[inline]
68224#[target_feature(enable = "neon")]
68225#[cfg(target_arch = "arm")]
68226#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
68227#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
68228#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.64", ALIGN = 0))]
68229#[rustc_legacy_const_generics(2)]
68230unsafe fn vst1q_v2i64<const ALIGN: i32>(addr: *const i8, val: int64x2_t) {
68231    unsafe extern "unadjusted" {
68232        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1.v2i64.p0")]
68233        fn _vst1q_v2i64(addr: *const i8, val: int64x2_t, align: i32);
68234    }
68235    _vst1q_v2i64(addr, val, ALIGN)
68236}
68237#[inline]
68238#[target_feature(enable = "neon")]
68239#[cfg(target_arch = "arm")]
68240#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
68241#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
68242#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.32", ALIGN = 0))]
68243#[rustc_legacy_const_generics(2)]
68244unsafe fn vst1q_v4f32<const ALIGN: i32>(addr: *const i8, val: float32x4_t) {
68245    unsafe extern "unadjusted" {
68246        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1.v4f32.p0")]
68247        fn _vst1q_v4f32(addr: *const i8, val: float32x4_t, align: i32);
68248    }
68249    _vst1q_v4f32(addr, val, ALIGN)
68250}
68251#[inline]
68252#[target_feature(enable = "neon")]
68253#[cfg(target_arch = "arm")]
68254#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
68255#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
68256#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.32", ALIGN = 0))]
68257#[rustc_legacy_const_generics(2)]
68258unsafe fn vst1q_v4i32<const ALIGN: i32>(addr: *const i8, val: int32x4_t) {
68259    unsafe extern "unadjusted" {
68260        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1.v4i32.p0")]
68261        fn _vst1q_v4i32(addr: *const i8, val: int32x4_t, align: i32);
68262    }
68263    _vst1q_v4i32(addr, val, ALIGN)
68264}
68265#[inline]
68266#[target_feature(enable = "neon")]
68267#[cfg(target_arch = "arm")]
68268#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
68269#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
68270#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.16", ALIGN = 0))]
68271#[rustc_legacy_const_generics(2)]
68272unsafe fn vst1q_v8i16<const ALIGN: i32>(addr: *const i8, val: int16x8_t) {
68273    unsafe extern "unadjusted" {
68274        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1.v8i16.p0")]
68275        fn _vst1q_v8i16(addr: *const i8, val: int16x8_t, align: i32);
68276    }
68277    _vst1q_v8i16(addr, val, ALIGN)
68278}
68279#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
68280#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_v4f16)"]
68281#[doc = "## Safety"]
68282#[doc = "  * Neon instrinsic unsafe"]
68283#[inline]
68284#[cfg(target_arch = "arm")]
68285#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
68286#[target_feature(enable = "neon,fp16")]
68287#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
68288#[cfg(not(target_arch = "arm64ec"))]
68289#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.16"))]
68290unsafe fn vst1_v4f16(addr: *const i8, val: float16x4_t, align: i32) {
68291    unsafe extern "unadjusted" {
68292        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1.v4f16.p0")]
68293        fn _vst1_v4f16(addr: *const i8, val: float16x4_t, align: i32);
68294    }
68295    _vst1_v4f16(addr, val, align)
68296}
68297#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
68298#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_v8f16)"]
68299#[doc = "## Safety"]
68300#[doc = "  * Neon instrinsic unsafe"]
68301#[inline]
68302#[cfg(target_arch = "arm")]
68303#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
68304#[target_feature(enable = "neon,fp16")]
68305#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
68306#[cfg(not(target_arch = "arm64ec"))]
68307#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.16"))]
68308unsafe fn vst1q_v8f16(addr: *const i8, val: float16x8_t, align: i32) {
68309    unsafe extern "unadjusted" {
68310        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1.v8f16.p0")]
68311        fn _vst1q_v8f16(addr: *const i8, val: float16x8_t, align: i32);
68312    }
68313    _vst1q_v8f16(addr, val, align)
68314}
68315#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
68316#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_p64)"]
68317#[doc = "## Safety"]
68318#[doc = "  * Neon instrinsic unsafe"]
68319#[inline]
68320#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
68321#[target_feature(enable = "neon,aes")]
68322#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
68323#[cfg_attr(
68324    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
68325    assert_instr(nop, LANE = 0)
68326)]
68327#[rustc_legacy_const_generics(2)]
68328#[cfg_attr(
68329    not(target_arch = "arm"),
68330    stable(feature = "neon_intrinsics", since = "1.59.0")
68331)]
68332#[cfg_attr(
68333    target_arch = "arm",
68334    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
68335)]
68336pub unsafe fn vst1q_lane_p64<const LANE: i32>(a: *mut p64, b: poly64x2_t) {
68337    static_assert_uimm_bits!(LANE, 1);
68338    *a = simd_extract!(b, LANE as u32);
68339}
68340#[doc = "Store multiple 2-element structures from two registers"]
68341#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_f16)"]
68342#[doc = "## Safety"]
68343#[doc = "  * Neon instrinsic unsafe"]
68344#[inline]
68345#[target_feature(enable = "neon")]
68346#[cfg(not(target_arch = "arm"))]
68347#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
68348#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
68349#[cfg(not(target_arch = "arm64ec"))]
68350#[cfg_attr(test, assert_instr(st2))]
68351pub unsafe fn vst2_f16(a: *mut f16, b: float16x4x2_t) {
68352    unsafe extern "unadjusted" {
68353        #[cfg_attr(
68354            any(target_arch = "aarch64", target_arch = "arm64ec"),
68355            link_name = "llvm.aarch64.neon.st2.v4f16.p0"
68356        )]
68357        fn _vst2_f16(a: float16x4_t, b: float16x4_t, ptr: *mut i8);
68358    }
68359    _vst2_f16(b.0, b.1, a as _)
68360}
68361#[doc = "Store multiple 2-element structures from two registers"]
68362#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_f16)"]
68363#[doc = "## Safety"]
68364#[doc = "  * Neon instrinsic unsafe"]
68365#[inline]
68366#[target_feature(enable = "neon")]
68367#[cfg(not(target_arch = "arm"))]
68368#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
68369#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
68370#[cfg(not(target_arch = "arm64ec"))]
68371#[cfg_attr(test, assert_instr(st2))]
68372pub unsafe fn vst2q_f16(a: *mut f16, b: float16x8x2_t) {
68373    unsafe extern "unadjusted" {
68374        #[cfg_attr(
68375            any(target_arch = "aarch64", target_arch = "arm64ec"),
68376            link_name = "llvm.aarch64.neon.st2.v8f16.p0"
68377        )]
68378        fn _vst2q_f16(a: float16x8_t, b: float16x8_t, ptr: *mut i8);
68379    }
68380    _vst2q_f16(b.0, b.1, a as _)
68381}
68382#[doc = "Store multiple 2-element structures from two registers"]
68383#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_f16)"]
68384#[doc = "## Safety"]
68385#[doc = "  * Neon instrinsic unsafe"]
68386#[inline]
68387#[target_feature(enable = "neon")]
68388#[cfg(target_arch = "arm")]
68389#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
68390#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
68391#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
68392#[cfg(not(target_arch = "arm64ec"))]
68393#[cfg_attr(test, assert_instr(vst2))]
68394pub unsafe fn vst2_f16(a: *mut f16, b: float16x4x2_t) {
68395    unsafe extern "unadjusted" {
68396        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2.p0.v4f16")]
68397        fn _vst2_f16(ptr: *mut i8, a: float16x4_t, b: float16x4_t, size: i32);
68398    }
68399    _vst2_f16(a as _, b.0, b.1, 2)
68400}
68401#[doc = "Store multiple 2-element structures from two registers"]
68402#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_f16)"]
68403#[doc = "## Safety"]
68404#[doc = "  * Neon instrinsic unsafe"]
68405#[inline]
68406#[target_feature(enable = "neon")]
68407#[cfg(target_arch = "arm")]
68408#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
68409#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
68410#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
68411#[cfg(not(target_arch = "arm64ec"))]
68412#[cfg_attr(test, assert_instr(vst2))]
68413pub unsafe fn vst2q_f16(a: *mut f16, b: float16x8x2_t) {
68414    unsafe extern "unadjusted" {
68415        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2.p0.v8f16")]
68416        fn _vst2q_f16(ptr: *mut i8, a: float16x8_t, b: float16x8_t, size: i32);
68417    }
68418    _vst2q_f16(a as _, b.0, b.1, 2)
68419}
68420#[doc = "Store multiple 2-element structures from two registers"]
68421#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_f32)"]
68422#[doc = "## Safety"]
68423#[doc = "  * Neon instrinsic unsafe"]
68424#[inline]
68425#[target_feature(enable = "neon")]
68426#[cfg(not(target_arch = "arm"))]
68427#[stable(feature = "neon_intrinsics", since = "1.59.0")]
68428#[cfg_attr(test, assert_instr(st2))]
68429pub unsafe fn vst2_f32(a: *mut f32, b: float32x2x2_t) {
68430    unsafe extern "unadjusted" {
68431        #[cfg_attr(
68432            any(target_arch = "aarch64", target_arch = "arm64ec"),
68433            link_name = "llvm.aarch64.neon.st2.v2f32.p0"
68434        )]
68435        fn _vst2_f32(a: float32x2_t, b: float32x2_t, ptr: *mut i8);
68436    }
68437    _vst2_f32(b.0, b.1, a as _)
68438}
68439#[doc = "Store multiple 2-element structures from two registers"]
68440#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_f32)"]
68441#[doc = "## Safety"]
68442#[doc = "  * Neon instrinsic unsafe"]
68443#[inline]
68444#[target_feature(enable = "neon")]
68445#[cfg(not(target_arch = "arm"))]
68446#[stable(feature = "neon_intrinsics", since = "1.59.0")]
68447#[cfg_attr(test, assert_instr(st2))]
68448pub unsafe fn vst2q_f32(a: *mut f32, b: float32x4x2_t) {
68449    unsafe extern "unadjusted" {
68450        #[cfg_attr(
68451            any(target_arch = "aarch64", target_arch = "arm64ec"),
68452            link_name = "llvm.aarch64.neon.st2.v4f32.p0"
68453        )]
68454        fn _vst2q_f32(a: float32x4_t, b: float32x4_t, ptr: *mut i8);
68455    }
68456    _vst2q_f32(b.0, b.1, a as _)
68457}
68458#[doc = "Store multiple 2-element structures from two registers"]
68459#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_s8)"]
68460#[doc = "## Safety"]
68461#[doc = "  * Neon instrinsic unsafe"]
68462#[inline]
68463#[target_feature(enable = "neon")]
68464#[cfg(not(target_arch = "arm"))]
68465#[stable(feature = "neon_intrinsics", since = "1.59.0")]
68466#[cfg_attr(test, assert_instr(st2))]
68467pub unsafe fn vst2_s8(a: *mut i8, b: int8x8x2_t) {
68468    unsafe extern "unadjusted" {
68469        #[cfg_attr(
68470            any(target_arch = "aarch64", target_arch = "arm64ec"),
68471            link_name = "llvm.aarch64.neon.st2.v8i8.p0"
68472        )]
68473        fn _vst2_s8(a: int8x8_t, b: int8x8_t, ptr: *mut i8);
68474    }
68475    _vst2_s8(b.0, b.1, a as _)
68476}
68477#[doc = "Store multiple 2-element structures from two registers"]
68478#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_s8)"]
68479#[doc = "## Safety"]
68480#[doc = "  * Neon instrinsic unsafe"]
68481#[inline]
68482#[target_feature(enable = "neon")]
68483#[cfg(not(target_arch = "arm"))]
68484#[stable(feature = "neon_intrinsics", since = "1.59.0")]
68485#[cfg_attr(test, assert_instr(st2))]
68486pub unsafe fn vst2q_s8(a: *mut i8, b: int8x16x2_t) {
68487    unsafe extern "unadjusted" {
68488        #[cfg_attr(
68489            any(target_arch = "aarch64", target_arch = "arm64ec"),
68490            link_name = "llvm.aarch64.neon.st2.v16i8.p0"
68491        )]
68492        fn _vst2q_s8(a: int8x16_t, b: int8x16_t, ptr: *mut i8);
68493    }
68494    _vst2q_s8(b.0, b.1, a as _)
68495}
68496#[doc = "Store multiple 2-element structures from two registers"]
68497#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_s16)"]
68498#[doc = "## Safety"]
68499#[doc = "  * Neon instrinsic unsafe"]
68500#[inline]
68501#[target_feature(enable = "neon")]
68502#[cfg(not(target_arch = "arm"))]
68503#[stable(feature = "neon_intrinsics", since = "1.59.0")]
68504#[cfg_attr(test, assert_instr(st2))]
68505pub unsafe fn vst2_s16(a: *mut i16, b: int16x4x2_t) {
68506    unsafe extern "unadjusted" {
68507        #[cfg_attr(
68508            any(target_arch = "aarch64", target_arch = "arm64ec"),
68509            link_name = "llvm.aarch64.neon.st2.v4i16.p0"
68510        )]
68511        fn _vst2_s16(a: int16x4_t, b: int16x4_t, ptr: *mut i8);
68512    }
68513    _vst2_s16(b.0, b.1, a as _)
68514}
68515#[doc = "Store multiple 2-element structures from two registers"]
68516#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_s16)"]
68517#[doc = "## Safety"]
68518#[doc = "  * Neon instrinsic unsafe"]
68519#[inline]
68520#[target_feature(enable = "neon")]
68521#[cfg(not(target_arch = "arm"))]
68522#[stable(feature = "neon_intrinsics", since = "1.59.0")]
68523#[cfg_attr(test, assert_instr(st2))]
68524pub unsafe fn vst2q_s16(a: *mut i16, b: int16x8x2_t) {
68525    unsafe extern "unadjusted" {
68526        #[cfg_attr(
68527            any(target_arch = "aarch64", target_arch = "arm64ec"),
68528            link_name = "llvm.aarch64.neon.st2.v8i16.p0"
68529        )]
68530        fn _vst2q_s16(a: int16x8_t, b: int16x8_t, ptr: *mut i8);
68531    }
68532    _vst2q_s16(b.0, b.1, a as _)
68533}
68534#[doc = "Store multiple 2-element structures from two registers"]
68535#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_s32)"]
68536#[doc = "## Safety"]
68537#[doc = "  * Neon instrinsic unsafe"]
68538#[inline]
68539#[target_feature(enable = "neon")]
68540#[cfg(not(target_arch = "arm"))]
68541#[stable(feature = "neon_intrinsics", since = "1.59.0")]
68542#[cfg_attr(test, assert_instr(st2))]
68543pub unsafe fn vst2_s32(a: *mut i32, b: int32x2x2_t) {
68544    unsafe extern "unadjusted" {
68545        #[cfg_attr(
68546            any(target_arch = "aarch64", target_arch = "arm64ec"),
68547            link_name = "llvm.aarch64.neon.st2.v2i32.p0"
68548        )]
68549        fn _vst2_s32(a: int32x2_t, b: int32x2_t, ptr: *mut i8);
68550    }
68551    _vst2_s32(b.0, b.1, a as _)
68552}
68553#[doc = "Store multiple 2-element structures from two registers"]
68554#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_s32)"]
68555#[doc = "## Safety"]
68556#[doc = "  * Neon instrinsic unsafe"]
68557#[inline]
68558#[target_feature(enable = "neon")]
68559#[cfg(not(target_arch = "arm"))]
68560#[stable(feature = "neon_intrinsics", since = "1.59.0")]
68561#[cfg_attr(test, assert_instr(st2))]
68562pub unsafe fn vst2q_s32(a: *mut i32, b: int32x4x2_t) {
68563    unsafe extern "unadjusted" {
68564        #[cfg_attr(
68565            any(target_arch = "aarch64", target_arch = "arm64ec"),
68566            link_name = "llvm.aarch64.neon.st2.v4i32.p0"
68567        )]
68568        fn _vst2q_s32(a: int32x4_t, b: int32x4_t, ptr: *mut i8);
68569    }
68570    _vst2q_s32(b.0, b.1, a as _)
68571}
68572#[doc = "Store multiple 2-element structures from two registers"]
68573#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_f32)"]
68574#[doc = "## Safety"]
68575#[doc = "  * Neon instrinsic unsafe"]
68576#[inline]
68577#[cfg(target_arch = "arm")]
68578#[target_feature(enable = "neon,v7")]
68579#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
68580#[cfg_attr(test, assert_instr(vst2))]
68581pub unsafe fn vst2_f32(a: *mut f32, b: float32x2x2_t) {
68582    unsafe extern "unadjusted" {
68583        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2.v2f32.p0")]
68584        fn _vst2_f32(ptr: *mut i8, a: float32x2_t, b: float32x2_t, size: i32);
68585    }
68586    _vst2_f32(a as _, b.0, b.1, 4)
68587}
68588#[doc = "Store multiple 2-element structures from two registers"]
68589#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_f32)"]
68590#[doc = "## Safety"]
68591#[doc = "  * Neon instrinsic unsafe"]
68592#[inline]
68593#[cfg(target_arch = "arm")]
68594#[target_feature(enable = "neon,v7")]
68595#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
68596#[cfg_attr(test, assert_instr(vst2))]
68597pub unsafe fn vst2q_f32(a: *mut f32, b: float32x4x2_t) {
68598    unsafe extern "unadjusted" {
68599        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2.v4f32.p0")]
68600        fn _vst2q_f32(ptr: *mut i8, a: float32x4_t, b: float32x4_t, size: i32);
68601    }
68602    _vst2q_f32(a as _, b.0, b.1, 4)
68603}
68604#[doc = "Store multiple 2-element structures from two registers"]
68605#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_s8)"]
68606#[doc = "## Safety"]
68607#[doc = "  * Neon instrinsic unsafe"]
68608#[inline]
68609#[cfg(target_arch = "arm")]
68610#[target_feature(enable = "neon,v7")]
68611#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
68612#[cfg_attr(test, assert_instr(vst2))]
68613pub unsafe fn vst2_s8(a: *mut i8, b: int8x8x2_t) {
68614    unsafe extern "unadjusted" {
68615        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2.v8i8.p0")]
68616        fn _vst2_s8(ptr: *mut i8, a: int8x8_t, b: int8x8_t, size: i32);
68617    }
68618    _vst2_s8(a as _, b.0, b.1, 1)
68619}
68620#[doc = "Store multiple 2-element structures from two registers"]
68621#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_s8)"]
68622#[doc = "## Safety"]
68623#[doc = "  * Neon instrinsic unsafe"]
68624#[inline]
68625#[cfg(target_arch = "arm")]
68626#[target_feature(enable = "neon,v7")]
68627#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
68628#[cfg_attr(test, assert_instr(vst2))]
68629pub unsafe fn vst2q_s8(a: *mut i8, b: int8x16x2_t) {
68630    unsafe extern "unadjusted" {
68631        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2.v16i8.p0")]
68632        fn _vst2q_s8(ptr: *mut i8, a: int8x16_t, b: int8x16_t, size: i32);
68633    }
68634    _vst2q_s8(a as _, b.0, b.1, 1)
68635}
68636#[doc = "Store multiple 2-element structures from two registers"]
68637#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_s16)"]
68638#[doc = "## Safety"]
68639#[doc = "  * Neon instrinsic unsafe"]
68640#[inline]
68641#[cfg(target_arch = "arm")]
68642#[target_feature(enable = "neon,v7")]
68643#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
68644#[cfg_attr(test, assert_instr(vst2))]
68645pub unsafe fn vst2_s16(a: *mut i16, b: int16x4x2_t) {
68646    unsafe extern "unadjusted" {
68647        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2.v4i16.p0")]
68648        fn _vst2_s16(ptr: *mut i8, a: int16x4_t, b: int16x4_t, size: i32);
68649    }
68650    _vst2_s16(a as _, b.0, b.1, 2)
68651}
68652#[doc = "Store multiple 2-element structures from two registers"]
68653#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_s16)"]
68654#[doc = "## Safety"]
68655#[doc = "  * Neon instrinsic unsafe"]
68656#[inline]
68657#[cfg(target_arch = "arm")]
68658#[target_feature(enable = "neon,v7")]
68659#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
68660#[cfg_attr(test, assert_instr(vst2))]
68661pub unsafe fn vst2q_s16(a: *mut i16, b: int16x8x2_t) {
68662    unsafe extern "unadjusted" {
68663        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2.v8i16.p0")]
68664        fn _vst2q_s16(ptr: *mut i8, a: int16x8_t, b: int16x8_t, size: i32);
68665    }
68666    _vst2q_s16(a as _, b.0, b.1, 2)
68667}
68668#[doc = "Store multiple 2-element structures from two registers"]
68669#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_s32)"]
68670#[doc = "## Safety"]
68671#[doc = "  * Neon instrinsic unsafe"]
68672#[inline]
68673#[cfg(target_arch = "arm")]
68674#[target_feature(enable = "neon,v7")]
68675#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
68676#[cfg_attr(test, assert_instr(vst2))]
68677pub unsafe fn vst2_s32(a: *mut i32, b: int32x2x2_t) {
68678    unsafe extern "unadjusted" {
68679        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2.v2i32.p0")]
68680        fn _vst2_s32(ptr: *mut i8, a: int32x2_t, b: int32x2_t, size: i32);
68681    }
68682    _vst2_s32(a as _, b.0, b.1, 4)
68683}
68684#[doc = "Store multiple 2-element structures from two registers"]
68685#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_s32)"]
68686#[doc = "## Safety"]
68687#[doc = "  * Neon instrinsic unsafe"]
68688#[inline]
68689#[cfg(target_arch = "arm")]
68690#[target_feature(enable = "neon,v7")]
68691#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
68692#[cfg_attr(test, assert_instr(vst2))]
68693pub unsafe fn vst2q_s32(a: *mut i32, b: int32x4x2_t) {
68694    unsafe extern "unadjusted" {
68695        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2.v4i32.p0")]
68696        fn _vst2q_s32(ptr: *mut i8, a: int32x4_t, b: int32x4_t, size: i32);
68697    }
68698    _vst2q_s32(a as _, b.0, b.1, 4)
68699}
68700#[doc = "Store multiple 2-element structures from two registers"]
68701#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_f16)"]
68702#[doc = "## Safety"]
68703#[doc = "  * Neon instrinsic unsafe"]
68704#[inline]
68705#[target_feature(enable = "neon")]
68706#[cfg(not(target_arch = "arm"))]
68707#[rustc_legacy_const_generics(2)]
68708#[cfg_attr(test, assert_instr(st2, LANE = 0))]
68709#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
68710#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
68711#[cfg(not(target_arch = "arm64ec"))]
68712pub unsafe fn vst2_lane_f16<const LANE: i32>(a: *mut f16, b: float16x4x2_t) {
68713    static_assert_uimm_bits!(LANE, 2);
68714    unsafe extern "unadjusted" {
68715        #[cfg_attr(
68716            any(target_arch = "aarch64", target_arch = "arm64ec"),
68717            link_name = "llvm.aarch64.neon.st2lane.v4f16.p0"
68718        )]
68719        fn _vst2_lane_f16(a: float16x4_t, b: float16x4_t, n: i64, ptr: *mut i8);
68720    }
68721    _vst2_lane_f16(b.0, b.1, LANE as i64, a as _)
68722}
68723#[doc = "Store multiple 2-element structures from two registers"]
68724#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_lane_f16)"]
68725#[doc = "## Safety"]
68726#[doc = "  * Neon instrinsic unsafe"]
68727#[inline]
68728#[target_feature(enable = "neon")]
68729#[cfg(not(target_arch = "arm"))]
68730#[rustc_legacy_const_generics(2)]
68731#[cfg_attr(test, assert_instr(st2, LANE = 0))]
68732#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
68733#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
68734#[cfg(not(target_arch = "arm64ec"))]
68735pub unsafe fn vst2q_lane_f16<const LANE: i32>(a: *mut f16, b: float16x8x2_t) {
68736    static_assert_uimm_bits!(LANE, 3);
68737    unsafe extern "unadjusted" {
68738        #[cfg_attr(
68739            any(target_arch = "aarch64", target_arch = "arm64ec"),
68740            link_name = "llvm.aarch64.neon.st2lane.v8f16.p0"
68741        )]
68742        fn _vst2q_lane_f16(a: float16x8_t, b: float16x8_t, n: i64, ptr: *mut i8);
68743    }
68744    _vst2q_lane_f16(b.0, b.1, LANE as i64, a as _)
68745}
68746#[doc = "Store multiple 2-element structures from two registers"]
68747#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_f16)"]
68748#[doc = "## Safety"]
68749#[doc = "  * Neon instrinsic unsafe"]
68750#[inline]
68751#[target_feature(enable = "neon")]
68752#[cfg(target_arch = "arm")]
68753#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
68754#[cfg_attr(test, assert_instr(vst2, LANE = 0))]
68755#[rustc_legacy_const_generics(2)]
68756#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
68757#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
68758#[cfg(not(target_arch = "arm64ec"))]
68759pub unsafe fn vst2_lane_f16<const LANE: i32>(a: *mut f16, b: float16x4x2_t) {
68760    static_assert_uimm_bits!(LANE, 2);
68761    unsafe extern "unadjusted" {
68762        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2lane.p0.v4f16")]
68763        fn _vst2_lane_f16(ptr: *mut i8, a: float16x4_t, b: float16x4_t, n: i32, size: i32);
68764    }
68765    _vst2_lane_f16(a as _, b.0, b.1, LANE, 2)
68766}
68767#[doc = "Store multiple 2-element structures from two registers"]
68768#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_lane_f16)"]
68769#[doc = "## Safety"]
68770#[doc = "  * Neon instrinsic unsafe"]
68771#[inline]
68772#[target_feature(enable = "neon")]
68773#[cfg(target_arch = "arm")]
68774#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
68775#[cfg_attr(test, assert_instr(vst2, LANE = 0))]
68776#[rustc_legacy_const_generics(2)]
68777#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
68778#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
68779#[cfg(not(target_arch = "arm64ec"))]
68780pub unsafe fn vst2q_lane_f16<const LANE: i32>(a: *mut f16, b: float16x8x2_t) {
68781    static_assert_uimm_bits!(LANE, 1);
68782    unsafe extern "unadjusted" {
68783        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2lane.p0.v8f16")]
68784        fn _vst2q_lane_f16(ptr: *mut i8, a: float16x8_t, b: float16x8_t, n: i32, size: i32);
68785    }
68786    _vst2q_lane_f16(a as _, b.0, b.1, LANE, 2)
68787}
68788#[doc = "Store multiple 2-element structures from two registers"]
68789#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_f32)"]
68790#[doc = "## Safety"]
68791#[doc = "  * Neon instrinsic unsafe"]
68792#[inline]
68793#[target_feature(enable = "neon")]
68794#[cfg(not(target_arch = "arm"))]
68795#[rustc_legacy_const_generics(2)]
68796#[cfg_attr(test, assert_instr(st2, LANE = 0))]
68797#[stable(feature = "neon_intrinsics", since = "1.59.0")]
68798pub unsafe fn vst2_lane_f32<const LANE: i32>(a: *mut f32, b: float32x2x2_t) {
68799    static_assert_uimm_bits!(LANE, 1);
68800    unsafe extern "unadjusted" {
68801        #[cfg_attr(
68802            any(target_arch = "aarch64", target_arch = "arm64ec"),
68803            link_name = "llvm.aarch64.neon.st2lane.v2f32.p0"
68804        )]
68805        fn _vst2_lane_f32(a: float32x2_t, b: float32x2_t, n: i64, ptr: *mut i8);
68806    }
68807    _vst2_lane_f32(b.0, b.1, LANE as i64, a as _)
68808}
68809#[doc = "Store multiple 2-element structures from two registers"]
68810#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_lane_f32)"]
68811#[doc = "## Safety"]
68812#[doc = "  * Neon instrinsic unsafe"]
68813#[inline]
68814#[target_feature(enable = "neon")]
68815#[cfg(not(target_arch = "arm"))]
68816#[rustc_legacy_const_generics(2)]
68817#[cfg_attr(test, assert_instr(st2, LANE = 0))]
68818#[stable(feature = "neon_intrinsics", since = "1.59.0")]
68819pub unsafe fn vst2q_lane_f32<const LANE: i32>(a: *mut f32, b: float32x4x2_t) {
68820    static_assert_uimm_bits!(LANE, 2);
68821    unsafe extern "unadjusted" {
68822        #[cfg_attr(
68823            any(target_arch = "aarch64", target_arch = "arm64ec"),
68824            link_name = "llvm.aarch64.neon.st2lane.v4f32.p0"
68825        )]
68826        fn _vst2q_lane_f32(a: float32x4_t, b: float32x4_t, n: i64, ptr: *mut i8);
68827    }
68828    _vst2q_lane_f32(b.0, b.1, LANE as i64, a as _)
68829}
68830#[doc = "Store multiple 2-element structures from two registers"]
68831#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_s8)"]
68832#[doc = "## Safety"]
68833#[doc = "  * Neon instrinsic unsafe"]
68834#[inline]
68835#[target_feature(enable = "neon")]
68836#[cfg(not(target_arch = "arm"))]
68837#[rustc_legacy_const_generics(2)]
68838#[cfg_attr(test, assert_instr(st2, LANE = 0))]
68839#[stable(feature = "neon_intrinsics", since = "1.59.0")]
68840pub unsafe fn vst2_lane_s8<const LANE: i32>(a: *mut i8, b: int8x8x2_t) {
68841    static_assert_uimm_bits!(LANE, 3);
68842    unsafe extern "unadjusted" {
68843        #[cfg_attr(
68844            any(target_arch = "aarch64", target_arch = "arm64ec"),
68845            link_name = "llvm.aarch64.neon.st2lane.v8i8.p0"
68846        )]
68847        fn _vst2_lane_s8(a: int8x8_t, b: int8x8_t, n: i64, ptr: *mut i8);
68848    }
68849    _vst2_lane_s8(b.0, b.1, LANE as i64, a as _)
68850}
68851#[doc = "Store multiple 2-element structures from two registers"]
68852#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_s16)"]
68853#[doc = "## Safety"]
68854#[doc = "  * Neon instrinsic unsafe"]
68855#[inline]
68856#[target_feature(enable = "neon")]
68857#[cfg(not(target_arch = "arm"))]
68858#[rustc_legacy_const_generics(2)]
68859#[cfg_attr(test, assert_instr(st2, LANE = 0))]
68860#[stable(feature = "neon_intrinsics", since = "1.59.0")]
68861pub unsafe fn vst2_lane_s16<const LANE: i32>(a: *mut i16, b: int16x4x2_t) {
68862    static_assert_uimm_bits!(LANE, 2);
68863    unsafe extern "unadjusted" {
68864        #[cfg_attr(
68865            any(target_arch = "aarch64", target_arch = "arm64ec"),
68866            link_name = "llvm.aarch64.neon.st2lane.v4i16.p0"
68867        )]
68868        fn _vst2_lane_s16(a: int16x4_t, b: int16x4_t, n: i64, ptr: *mut i8);
68869    }
68870    _vst2_lane_s16(b.0, b.1, LANE as i64, a as _)
68871}
68872#[doc = "Store multiple 2-element structures from two registers"]
68873#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_lane_s16)"]
68874#[doc = "## Safety"]
68875#[doc = "  * Neon instrinsic unsafe"]
68876#[inline]
68877#[target_feature(enable = "neon")]
68878#[cfg(not(target_arch = "arm"))]
68879#[rustc_legacy_const_generics(2)]
68880#[cfg_attr(test, assert_instr(st2, LANE = 0))]
68881#[stable(feature = "neon_intrinsics", since = "1.59.0")]
68882pub unsafe fn vst2q_lane_s16<const LANE: i32>(a: *mut i16, b: int16x8x2_t) {
68883    static_assert_uimm_bits!(LANE, 3);
68884    unsafe extern "unadjusted" {
68885        #[cfg_attr(
68886            any(target_arch = "aarch64", target_arch = "arm64ec"),
68887            link_name = "llvm.aarch64.neon.st2lane.v8i16.p0"
68888        )]
68889        fn _vst2q_lane_s16(a: int16x8_t, b: int16x8_t, n: i64, ptr: *mut i8);
68890    }
68891    _vst2q_lane_s16(b.0, b.1, LANE as i64, a as _)
68892}
68893#[doc = "Store multiple 2-element structures from two registers"]
68894#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_s32)"]
68895#[doc = "## Safety"]
68896#[doc = "  * Neon instrinsic unsafe"]
68897#[inline]
68898#[target_feature(enable = "neon")]
68899#[cfg(not(target_arch = "arm"))]
68900#[rustc_legacy_const_generics(2)]
68901#[cfg_attr(test, assert_instr(st2, LANE = 0))]
68902#[stable(feature = "neon_intrinsics", since = "1.59.0")]
68903pub unsafe fn vst2_lane_s32<const LANE: i32>(a: *mut i32, b: int32x2x2_t) {
68904    static_assert_uimm_bits!(LANE, 1);
68905    unsafe extern "unadjusted" {
68906        #[cfg_attr(
68907            any(target_arch = "aarch64", target_arch = "arm64ec"),
68908            link_name = "llvm.aarch64.neon.st2lane.v2i32.p0"
68909        )]
68910        fn _vst2_lane_s32(a: int32x2_t, b: int32x2_t, n: i64, ptr: *mut i8);
68911    }
68912    _vst2_lane_s32(b.0, b.1, LANE as i64, a as _)
68913}
68914#[doc = "Store multiple 2-element structures from two registers"]
68915#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_lane_s32)"]
68916#[doc = "## Safety"]
68917#[doc = "  * Neon instrinsic unsafe"]
68918#[inline]
68919#[target_feature(enable = "neon")]
68920#[cfg(not(target_arch = "arm"))]
68921#[rustc_legacy_const_generics(2)]
68922#[cfg_attr(test, assert_instr(st2, LANE = 0))]
68923#[stable(feature = "neon_intrinsics", since = "1.59.0")]
68924pub unsafe fn vst2q_lane_s32<const LANE: i32>(a: *mut i32, b: int32x4x2_t) {
68925    static_assert_uimm_bits!(LANE, 2);
68926    unsafe extern "unadjusted" {
68927        #[cfg_attr(
68928            any(target_arch = "aarch64", target_arch = "arm64ec"),
68929            link_name = "llvm.aarch64.neon.st2lane.v4i32.p0"
68930        )]
68931        fn _vst2q_lane_s32(a: int32x4_t, b: int32x4_t, n: i64, ptr: *mut i8);
68932    }
68933    _vst2q_lane_s32(b.0, b.1, LANE as i64, a as _)
68934}
68935#[doc = "Store multiple 2-element structures from two registers"]
68936#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_f32)"]
68937#[doc = "## Safety"]
68938#[doc = "  * Neon instrinsic unsafe"]
68939#[inline]
68940#[cfg(target_arch = "arm")]
68941#[target_feature(enable = "neon,v7")]
68942#[cfg_attr(test, assert_instr(vst2, LANE = 0))]
68943#[rustc_legacy_const_generics(2)]
68944#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
68945pub unsafe fn vst2_lane_f32<const LANE: i32>(a: *mut f32, b: float32x2x2_t) {
68946    static_assert_uimm_bits!(LANE, 1);
68947    unsafe extern "unadjusted" {
68948        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2lane.v2f32.p0")]
68949        fn _vst2_lane_f32(ptr: *mut i8, a: float32x2_t, b: float32x2_t, n: i32, size: i32);
68950    }
68951    _vst2_lane_f32(a as _, b.0, b.1, LANE, 4)
68952}
68953#[doc = "Store multiple 2-element structures from two registers"]
68954#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_lane_f32)"]
68955#[doc = "## Safety"]
68956#[doc = "  * Neon instrinsic unsafe"]
68957#[inline]
68958#[cfg(target_arch = "arm")]
68959#[target_feature(enable = "neon,v7")]
68960#[cfg_attr(test, assert_instr(vst2, LANE = 0))]
68961#[rustc_legacy_const_generics(2)]
68962#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
68963pub unsafe fn vst2q_lane_f32<const LANE: i32>(a: *mut f32, b: float32x4x2_t) {
68964    static_assert_uimm_bits!(LANE, 2);
68965    unsafe extern "unadjusted" {
68966        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2lane.v4f32.p0")]
68967        fn _vst2q_lane_f32(ptr: *mut i8, a: float32x4_t, b: float32x4_t, n: i32, size: i32);
68968    }
68969    _vst2q_lane_f32(a as _, b.0, b.1, LANE, 4)
68970}
68971#[doc = "Store multiple 2-element structures from two registers"]
68972#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_s8)"]
68973#[doc = "## Safety"]
68974#[doc = "  * Neon instrinsic unsafe"]
68975#[inline]
68976#[cfg(target_arch = "arm")]
68977#[target_feature(enable = "neon,v7")]
68978#[cfg_attr(test, assert_instr(vst2, LANE = 0))]
68979#[rustc_legacy_const_generics(2)]
68980#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
68981pub unsafe fn vst2_lane_s8<const LANE: i32>(a: *mut i8, b: int8x8x2_t) {
68982    static_assert_uimm_bits!(LANE, 3);
68983    unsafe extern "unadjusted" {
68984        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2lane.v8i8.p0")]
68985        fn _vst2_lane_s8(ptr: *mut i8, a: int8x8_t, b: int8x8_t, n: i32, size: i32);
68986    }
68987    _vst2_lane_s8(a as _, b.0, b.1, LANE, 1)
68988}
68989#[doc = "Store multiple 2-element structures from two registers"]
68990#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_s16)"]
68991#[doc = "## Safety"]
68992#[doc = "  * Neon instrinsic unsafe"]
68993#[inline]
68994#[cfg(target_arch = "arm")]
68995#[target_feature(enable = "neon,v7")]
68996#[cfg_attr(test, assert_instr(vst2, LANE = 0))]
68997#[rustc_legacy_const_generics(2)]
68998#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
68999pub unsafe fn vst2_lane_s16<const LANE: i32>(a: *mut i16, b: int16x4x2_t) {
69000    static_assert_uimm_bits!(LANE, 2);
69001    unsafe extern "unadjusted" {
69002        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2lane.v4i16.p0")]
69003        fn _vst2_lane_s16(ptr: *mut i8, a: int16x4_t, b: int16x4_t, n: i32, size: i32);
69004    }
69005    _vst2_lane_s16(a as _, b.0, b.1, LANE, 2)
69006}
69007#[doc = "Store multiple 2-element structures from two registers"]
69008#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_lane_s16)"]
69009#[doc = "## Safety"]
69010#[doc = "  * Neon instrinsic unsafe"]
69011#[inline]
69012#[cfg(target_arch = "arm")]
69013#[target_feature(enable = "neon,v7")]
69014#[cfg_attr(test, assert_instr(vst2, LANE = 0))]
69015#[rustc_legacy_const_generics(2)]
69016#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
69017pub unsafe fn vst2q_lane_s16<const LANE: i32>(a: *mut i16, b: int16x8x2_t) {
69018    static_assert_uimm_bits!(LANE, 3);
69019    unsafe extern "unadjusted" {
69020        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2lane.v8i16.p0")]
69021        fn _vst2q_lane_s16(ptr: *mut i8, a: int16x8_t, b: int16x8_t, n: i32, size: i32);
69022    }
69023    _vst2q_lane_s16(a as _, b.0, b.1, LANE, 2)
69024}
69025#[doc = "Store multiple 2-element structures from two registers"]
69026#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_s32)"]
69027#[doc = "## Safety"]
69028#[doc = "  * Neon instrinsic unsafe"]
69029#[inline]
69030#[cfg(target_arch = "arm")]
69031#[target_feature(enable = "neon,v7")]
69032#[cfg_attr(test, assert_instr(vst2, LANE = 0))]
69033#[rustc_legacy_const_generics(2)]
69034#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
69035pub unsafe fn vst2_lane_s32<const LANE: i32>(a: *mut i32, b: int32x2x2_t) {
69036    static_assert_uimm_bits!(LANE, 1);
69037    unsafe extern "unadjusted" {
69038        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2lane.v2i32.p0")]
69039        fn _vst2_lane_s32(ptr: *mut i8, a: int32x2_t, b: int32x2_t, n: i32, size: i32);
69040    }
69041    _vst2_lane_s32(a as _, b.0, b.1, LANE, 4)
69042}
69043#[doc = "Store multiple 2-element structures from two registers"]
69044#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_lane_s32)"]
69045#[doc = "## Safety"]
69046#[doc = "  * Neon instrinsic unsafe"]
69047#[inline]
69048#[cfg(target_arch = "arm")]
69049#[target_feature(enable = "neon,v7")]
69050#[cfg_attr(test, assert_instr(vst2, LANE = 0))]
69051#[rustc_legacy_const_generics(2)]
69052#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
69053pub unsafe fn vst2q_lane_s32<const LANE: i32>(a: *mut i32, b: int32x4x2_t) {
69054    static_assert_uimm_bits!(LANE, 2);
69055    unsafe extern "unadjusted" {
69056        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2lane.v4i32.p0")]
69057        fn _vst2q_lane_s32(ptr: *mut i8, a: int32x4_t, b: int32x4_t, n: i32, size: i32);
69058    }
69059    _vst2q_lane_s32(a as _, b.0, b.1, LANE, 4)
69060}
69061#[doc = "Store multiple 2-element structures from two registers"]
69062#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_u8)"]
69063#[doc = "## Safety"]
69064#[doc = "  * Neon instrinsic unsafe"]
69065#[inline]
69066#[target_feature(enable = "neon")]
69067#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69068#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2, LANE = 0))]
69069#[cfg_attr(
69070    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69071    assert_instr(st2, LANE = 0)
69072)]
69073#[rustc_legacy_const_generics(2)]
69074#[cfg_attr(
69075    not(target_arch = "arm"),
69076    stable(feature = "neon_intrinsics", since = "1.59.0")
69077)]
69078#[cfg_attr(
69079    target_arch = "arm",
69080    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69081)]
69082pub unsafe fn vst2_lane_u8<const LANE: i32>(a: *mut u8, b: uint8x8x2_t) {
69083    static_assert_uimm_bits!(LANE, 3);
69084    vst2_lane_s8::<LANE>(transmute(a), transmute(b))
69085}
69086#[doc = "Store multiple 2-element structures from two registers"]
69087#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_u16)"]
69088#[doc = "## Safety"]
69089#[doc = "  * Neon instrinsic unsafe"]
69090#[inline]
69091#[target_feature(enable = "neon")]
69092#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69093#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2, LANE = 0))]
69094#[cfg_attr(
69095    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69096    assert_instr(st2, LANE = 0)
69097)]
69098#[rustc_legacy_const_generics(2)]
69099#[cfg_attr(
69100    not(target_arch = "arm"),
69101    stable(feature = "neon_intrinsics", since = "1.59.0")
69102)]
69103#[cfg_attr(
69104    target_arch = "arm",
69105    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69106)]
69107pub unsafe fn vst2_lane_u16<const LANE: i32>(a: *mut u16, b: uint16x4x2_t) {
69108    static_assert_uimm_bits!(LANE, 2);
69109    vst2_lane_s16::<LANE>(transmute(a), transmute(b))
69110}
69111#[doc = "Store multiple 2-element structures from two registers"]
69112#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_lane_u16)"]
69113#[doc = "## Safety"]
69114#[doc = "  * Neon instrinsic unsafe"]
69115#[inline]
69116#[target_feature(enable = "neon")]
69117#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69118#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2, LANE = 0))]
69119#[cfg_attr(
69120    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69121    assert_instr(st2, LANE = 0)
69122)]
69123#[rustc_legacy_const_generics(2)]
69124#[cfg_attr(
69125    not(target_arch = "arm"),
69126    stable(feature = "neon_intrinsics", since = "1.59.0")
69127)]
69128#[cfg_attr(
69129    target_arch = "arm",
69130    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69131)]
69132pub unsafe fn vst2q_lane_u16<const LANE: i32>(a: *mut u16, b: uint16x8x2_t) {
69133    static_assert_uimm_bits!(LANE, 3);
69134    vst2q_lane_s16::<LANE>(transmute(a), transmute(b))
69135}
69136#[doc = "Store multiple 2-element structures from two registers"]
69137#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_u32)"]
69138#[doc = "## Safety"]
69139#[doc = "  * Neon instrinsic unsafe"]
69140#[inline]
69141#[target_feature(enable = "neon")]
69142#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69143#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2, LANE = 0))]
69144#[cfg_attr(
69145    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69146    assert_instr(st2, LANE = 0)
69147)]
69148#[rustc_legacy_const_generics(2)]
69149#[cfg_attr(
69150    not(target_arch = "arm"),
69151    stable(feature = "neon_intrinsics", since = "1.59.0")
69152)]
69153#[cfg_attr(
69154    target_arch = "arm",
69155    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69156)]
69157pub unsafe fn vst2_lane_u32<const LANE: i32>(a: *mut u32, b: uint32x2x2_t) {
69158    static_assert_uimm_bits!(LANE, 1);
69159    vst2_lane_s32::<LANE>(transmute(a), transmute(b))
69160}
69161#[doc = "Store multiple 2-element structures from two registers"]
69162#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_lane_u32)"]
69163#[doc = "## Safety"]
69164#[doc = "  * Neon instrinsic unsafe"]
69165#[inline]
69166#[target_feature(enable = "neon")]
69167#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69168#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2, LANE = 0))]
69169#[cfg_attr(
69170    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69171    assert_instr(st2, LANE = 0)
69172)]
69173#[rustc_legacy_const_generics(2)]
69174#[cfg_attr(
69175    not(target_arch = "arm"),
69176    stable(feature = "neon_intrinsics", since = "1.59.0")
69177)]
69178#[cfg_attr(
69179    target_arch = "arm",
69180    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69181)]
69182pub unsafe fn vst2q_lane_u32<const LANE: i32>(a: *mut u32, b: uint32x4x2_t) {
69183    static_assert_uimm_bits!(LANE, 2);
69184    vst2q_lane_s32::<LANE>(transmute(a), transmute(b))
69185}
69186#[doc = "Store multiple 2-element structures from two registers"]
69187#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_p8)"]
69188#[doc = "## Safety"]
69189#[doc = "  * Neon instrinsic unsafe"]
69190#[inline]
69191#[target_feature(enable = "neon")]
69192#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69193#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2, LANE = 0))]
69194#[cfg_attr(
69195    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69196    assert_instr(st2, LANE = 0)
69197)]
69198#[rustc_legacy_const_generics(2)]
69199#[cfg_attr(
69200    not(target_arch = "arm"),
69201    stable(feature = "neon_intrinsics", since = "1.59.0")
69202)]
69203#[cfg_attr(
69204    target_arch = "arm",
69205    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69206)]
69207pub unsafe fn vst2_lane_p8<const LANE: i32>(a: *mut p8, b: poly8x8x2_t) {
69208    static_assert_uimm_bits!(LANE, 3);
69209    vst2_lane_s8::<LANE>(transmute(a), transmute(b))
69210}
69211#[doc = "Store multiple 2-element structures from two registers"]
69212#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_p16)"]
69213#[doc = "## Safety"]
69214#[doc = "  * Neon instrinsic unsafe"]
69215#[inline]
69216#[target_feature(enable = "neon")]
69217#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69218#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2, LANE = 0))]
69219#[cfg_attr(
69220    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69221    assert_instr(st2, LANE = 0)
69222)]
69223#[rustc_legacy_const_generics(2)]
69224#[cfg_attr(
69225    not(target_arch = "arm"),
69226    stable(feature = "neon_intrinsics", since = "1.59.0")
69227)]
69228#[cfg_attr(
69229    target_arch = "arm",
69230    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69231)]
69232pub unsafe fn vst2_lane_p16<const LANE: i32>(a: *mut p16, b: poly16x4x2_t) {
69233    static_assert_uimm_bits!(LANE, 2);
69234    vst2_lane_s16::<LANE>(transmute(a), transmute(b))
69235}
69236#[doc = "Store multiple 2-element structures from two registers"]
69237#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_lane_p16)"]
69238#[doc = "## Safety"]
69239#[doc = "  * Neon instrinsic unsafe"]
69240#[inline]
69241#[target_feature(enable = "neon")]
69242#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69243#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2, LANE = 0))]
69244#[cfg_attr(
69245    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69246    assert_instr(st2, LANE = 0)
69247)]
69248#[rustc_legacy_const_generics(2)]
69249#[cfg_attr(
69250    not(target_arch = "arm"),
69251    stable(feature = "neon_intrinsics", since = "1.59.0")
69252)]
69253#[cfg_attr(
69254    target_arch = "arm",
69255    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69256)]
69257pub unsafe fn vst2q_lane_p16<const LANE: i32>(a: *mut p16, b: poly16x8x2_t) {
69258    static_assert_uimm_bits!(LANE, 3);
69259    vst2q_lane_s16::<LANE>(transmute(a), transmute(b))
69260}
69261#[doc = "Store multiple 2-element structures from two registers"]
69262#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_p64)"]
69263#[doc = "## Safety"]
69264#[doc = "  * Neon instrinsic unsafe"]
69265#[inline]
69266#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
69267#[target_feature(enable = "neon,aes")]
69268#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
69269#[cfg_attr(
69270    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69271    assert_instr(nop)
69272)]
69273#[cfg_attr(
69274    not(target_arch = "arm"),
69275    stable(feature = "neon_intrinsics", since = "1.59.0")
69276)]
69277#[cfg_attr(
69278    target_arch = "arm",
69279    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69280)]
69281pub unsafe fn vst2_p64(a: *mut p64, b: poly64x1x2_t) {
69282    vst2_s64(transmute(a), transmute(b))
69283}
69284#[doc = "Store multiple 2-element structures from two registers"]
69285#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_s64)"]
69286#[doc = "## Safety"]
69287#[doc = "  * Neon instrinsic unsafe"]
69288#[inline]
69289#[cfg(target_arch = "arm")]
69290#[target_feature(enable = "neon,v7")]
69291#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
69292#[cfg_attr(test, assert_instr(nop))]
69293pub unsafe fn vst2_s64(a: *mut i64, b: int64x1x2_t) {
69294    unsafe extern "unadjusted" {
69295        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2.v1i64.p0")]
69296        fn _vst2_s64(ptr: *mut i8, a: int64x1_t, b: int64x1_t, size: i32);
69297    }
69298    _vst2_s64(a as _, b.0, b.1, 8)
69299}
69300#[doc = "Store multiple 2-element structures from two registers"]
69301#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_s64)"]
69302#[doc = "## Safety"]
69303#[doc = "  * Neon instrinsic unsafe"]
69304#[inline]
69305#[target_feature(enable = "neon")]
69306#[cfg(not(target_arch = "arm"))]
69307#[stable(feature = "neon_intrinsics", since = "1.59.0")]
69308#[cfg_attr(test, assert_instr(nop))]
69309pub unsafe fn vst2_s64(a: *mut i64, b: int64x1x2_t) {
69310    unsafe extern "unadjusted" {
69311        #[cfg_attr(
69312            any(target_arch = "aarch64", target_arch = "arm64ec"),
69313            link_name = "llvm.aarch64.neon.st2.v1i64.p0"
69314        )]
69315        fn _vst2_s64(a: int64x1_t, b: int64x1_t, ptr: *mut i8);
69316    }
69317    _vst2_s64(b.0, b.1, a as _)
69318}
69319#[doc = "Store multiple 2-element structures from two registers"]
69320#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_u64)"]
69321#[doc = "## Safety"]
69322#[doc = "  * Neon instrinsic unsafe"]
69323#[inline]
69324#[target_feature(enable = "neon")]
69325#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69326#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
69327#[cfg_attr(
69328    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69329    assert_instr(nop)
69330)]
69331#[cfg_attr(
69332    not(target_arch = "arm"),
69333    stable(feature = "neon_intrinsics", since = "1.59.0")
69334)]
69335#[cfg_attr(
69336    target_arch = "arm",
69337    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69338)]
69339pub unsafe fn vst2_u64(a: *mut u64, b: uint64x1x2_t) {
69340    vst2_s64(transmute(a), transmute(b))
69341}
69342#[doc = "Store multiple 2-element structures from two registers"]
69343#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_u8)"]
69344#[doc = "## Safety"]
69345#[doc = "  * Neon instrinsic unsafe"]
69346#[inline]
69347#[target_feature(enable = "neon")]
69348#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69349#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2))]
69350#[cfg_attr(
69351    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69352    assert_instr(st2)
69353)]
69354#[cfg_attr(
69355    not(target_arch = "arm"),
69356    stable(feature = "neon_intrinsics", since = "1.59.0")
69357)]
69358#[cfg_attr(
69359    target_arch = "arm",
69360    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69361)]
69362pub unsafe fn vst2_u8(a: *mut u8, b: uint8x8x2_t) {
69363    vst2_s8(transmute(a), transmute(b))
69364}
69365#[doc = "Store multiple 2-element structures from two registers"]
69366#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_u8)"]
69367#[doc = "## Safety"]
69368#[doc = "  * Neon instrinsic unsafe"]
69369#[inline]
69370#[target_feature(enable = "neon")]
69371#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69372#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2))]
69373#[cfg_attr(
69374    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69375    assert_instr(st2)
69376)]
69377#[cfg_attr(
69378    not(target_arch = "arm"),
69379    stable(feature = "neon_intrinsics", since = "1.59.0")
69380)]
69381#[cfg_attr(
69382    target_arch = "arm",
69383    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69384)]
69385pub unsafe fn vst2q_u8(a: *mut u8, b: uint8x16x2_t) {
69386    vst2q_s8(transmute(a), transmute(b))
69387}
69388#[doc = "Store multiple 2-element structures from two registers"]
69389#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_u16)"]
69390#[doc = "## Safety"]
69391#[doc = "  * Neon instrinsic unsafe"]
69392#[inline]
69393#[target_feature(enable = "neon")]
69394#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69395#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2))]
69396#[cfg_attr(
69397    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69398    assert_instr(st2)
69399)]
69400#[cfg_attr(
69401    not(target_arch = "arm"),
69402    stable(feature = "neon_intrinsics", since = "1.59.0")
69403)]
69404#[cfg_attr(
69405    target_arch = "arm",
69406    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69407)]
69408pub unsafe fn vst2_u16(a: *mut u16, b: uint16x4x2_t) {
69409    vst2_s16(transmute(a), transmute(b))
69410}
69411#[doc = "Store multiple 2-element structures from two registers"]
69412#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_u16)"]
69413#[doc = "## Safety"]
69414#[doc = "  * Neon instrinsic unsafe"]
69415#[inline]
69416#[target_feature(enable = "neon")]
69417#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69418#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2))]
69419#[cfg_attr(
69420    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69421    assert_instr(st2)
69422)]
69423#[cfg_attr(
69424    not(target_arch = "arm"),
69425    stable(feature = "neon_intrinsics", since = "1.59.0")
69426)]
69427#[cfg_attr(
69428    target_arch = "arm",
69429    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69430)]
69431pub unsafe fn vst2q_u16(a: *mut u16, b: uint16x8x2_t) {
69432    vst2q_s16(transmute(a), transmute(b))
69433}
69434#[doc = "Store multiple 2-element structures from two registers"]
69435#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_u32)"]
69436#[doc = "## Safety"]
69437#[doc = "  * Neon instrinsic unsafe"]
69438#[inline]
69439#[target_feature(enable = "neon")]
69440#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69441#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2))]
69442#[cfg_attr(
69443    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69444    assert_instr(st2)
69445)]
69446#[cfg_attr(
69447    not(target_arch = "arm"),
69448    stable(feature = "neon_intrinsics", since = "1.59.0")
69449)]
69450#[cfg_attr(
69451    target_arch = "arm",
69452    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69453)]
69454pub unsafe fn vst2_u32(a: *mut u32, b: uint32x2x2_t) {
69455    vst2_s32(transmute(a), transmute(b))
69456}
69457#[doc = "Store multiple 2-element structures from two registers"]
69458#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_u32)"]
69459#[doc = "## Safety"]
69460#[doc = "  * Neon instrinsic unsafe"]
69461#[inline]
69462#[target_feature(enable = "neon")]
69463#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69464#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2))]
69465#[cfg_attr(
69466    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69467    assert_instr(st2)
69468)]
69469#[cfg_attr(
69470    not(target_arch = "arm"),
69471    stable(feature = "neon_intrinsics", since = "1.59.0")
69472)]
69473#[cfg_attr(
69474    target_arch = "arm",
69475    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69476)]
69477pub unsafe fn vst2q_u32(a: *mut u32, b: uint32x4x2_t) {
69478    vst2q_s32(transmute(a), transmute(b))
69479}
69480#[doc = "Store multiple 2-element structures from two registers"]
69481#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_p8)"]
69482#[doc = "## Safety"]
69483#[doc = "  * Neon instrinsic unsafe"]
69484#[inline]
69485#[target_feature(enable = "neon")]
69486#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69487#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2))]
69488#[cfg_attr(
69489    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69490    assert_instr(st2)
69491)]
69492#[cfg_attr(
69493    not(target_arch = "arm"),
69494    stable(feature = "neon_intrinsics", since = "1.59.0")
69495)]
69496#[cfg_attr(
69497    target_arch = "arm",
69498    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69499)]
69500pub unsafe fn vst2_p8(a: *mut p8, b: poly8x8x2_t) {
69501    vst2_s8(transmute(a), transmute(b))
69502}
69503#[doc = "Store multiple 2-element structures from two registers"]
69504#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_p8)"]
69505#[doc = "## Safety"]
69506#[doc = "  * Neon instrinsic unsafe"]
69507#[inline]
69508#[target_feature(enable = "neon")]
69509#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69510#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2))]
69511#[cfg_attr(
69512    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69513    assert_instr(st2)
69514)]
69515#[cfg_attr(
69516    not(target_arch = "arm"),
69517    stable(feature = "neon_intrinsics", since = "1.59.0")
69518)]
69519#[cfg_attr(
69520    target_arch = "arm",
69521    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69522)]
69523pub unsafe fn vst2q_p8(a: *mut p8, b: poly8x16x2_t) {
69524    vst2q_s8(transmute(a), transmute(b))
69525}
69526#[doc = "Store multiple 2-element structures from two registers"]
69527#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_p16)"]
69528#[doc = "## Safety"]
69529#[doc = "  * Neon instrinsic unsafe"]
69530#[inline]
69531#[target_feature(enable = "neon")]
69532#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69533#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2))]
69534#[cfg_attr(
69535    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69536    assert_instr(st2)
69537)]
69538#[cfg_attr(
69539    not(target_arch = "arm"),
69540    stable(feature = "neon_intrinsics", since = "1.59.0")
69541)]
69542#[cfg_attr(
69543    target_arch = "arm",
69544    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69545)]
69546pub unsafe fn vst2_p16(a: *mut p16, b: poly16x4x2_t) {
69547    vst2_s16(transmute(a), transmute(b))
69548}
69549#[doc = "Store multiple 2-element structures from two registers"]
69550#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_p16)"]
69551#[doc = "## Safety"]
69552#[doc = "  * Neon instrinsic unsafe"]
69553#[inline]
69554#[target_feature(enable = "neon")]
69555#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69556#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2))]
69557#[cfg_attr(
69558    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69559    assert_instr(st2)
69560)]
69561#[cfg_attr(
69562    not(target_arch = "arm"),
69563    stable(feature = "neon_intrinsics", since = "1.59.0")
69564)]
69565#[cfg_attr(
69566    target_arch = "arm",
69567    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69568)]
69569pub unsafe fn vst2q_p16(a: *mut p16, b: poly16x8x2_t) {
69570    vst2q_s16(transmute(a), transmute(b))
69571}
69572#[doc = "Store multiple 3-element structures from three registers"]
69573#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_f16)"]
69574#[doc = "## Safety"]
69575#[doc = "  * Neon instrinsic unsafe"]
69576#[inline]
69577#[target_feature(enable = "neon")]
69578#[cfg(target_arch = "arm")]
69579#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69580#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
69581#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
69582#[cfg(not(target_arch = "arm64ec"))]
69583#[cfg_attr(test, assert_instr(vst3))]
69584pub unsafe fn vst3_f16(a: *mut f16, b: float16x4x3_t) {
69585    unsafe extern "unadjusted" {
69586        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3.p0.v4f16")]
69587        fn _vst3_f16(ptr: *mut i8, a: float16x4_t, b: float16x4_t, c: float16x4_t, size: i32);
69588    }
69589    _vst3_f16(a as _, b.0, b.1, b.2, 2)
69590}
69591#[doc = "Store multiple 3-element structures from three registers"]
69592#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_f16)"]
69593#[doc = "## Safety"]
69594#[doc = "  * Neon instrinsic unsafe"]
69595#[inline]
69596#[target_feature(enable = "neon")]
69597#[cfg(target_arch = "arm")]
69598#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69599#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
69600#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
69601#[cfg(not(target_arch = "arm64ec"))]
69602#[cfg_attr(test, assert_instr(vst3))]
69603pub unsafe fn vst3q_f16(a: *mut f16, b: float16x8x3_t) {
69604    unsafe extern "unadjusted" {
69605        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3.p0.v8f16")]
69606        fn _vst3q_f16(ptr: *mut i8, a: float16x8_t, b: float16x8_t, c: float16x8_t, size: i32);
69607    }
69608    _vst3q_f16(a as _, b.0, b.1, b.2, 2)
69609}
69610#[doc = "Store multiple 3-element structures from three registers"]
69611#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_f16)"]
69612#[doc = "## Safety"]
69613#[doc = "  * Neon instrinsic unsafe"]
69614#[inline]
69615#[target_feature(enable = "neon")]
69616#[cfg(not(target_arch = "arm"))]
69617#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
69618#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
69619#[cfg(not(target_arch = "arm64ec"))]
69620#[cfg_attr(test, assert_instr(st3))]
69621pub unsafe fn vst3_f16(a: *mut f16, b: float16x4x3_t) {
69622    unsafe extern "unadjusted" {
69623        #[cfg_attr(
69624            any(target_arch = "aarch64", target_arch = "arm64ec"),
69625            link_name = "llvm.aarch64.neon.st3.v4f16.p0"
69626        )]
69627        fn _vst3_f16(a: float16x4_t, b: float16x4_t, c: float16x4_t, ptr: *mut i8);
69628    }
69629    _vst3_f16(b.0, b.1, b.2, a as _)
69630}
69631#[doc = "Store multiple 3-element structures from three registers"]
69632#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_f16)"]
69633#[doc = "## Safety"]
69634#[doc = "  * Neon instrinsic unsafe"]
69635#[inline]
69636#[target_feature(enable = "neon")]
69637#[cfg(not(target_arch = "arm"))]
69638#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
69639#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
69640#[cfg(not(target_arch = "arm64ec"))]
69641#[cfg_attr(test, assert_instr(st3))]
69642pub unsafe fn vst3q_f16(a: *mut f16, b: float16x8x3_t) {
69643    unsafe extern "unadjusted" {
69644        #[cfg_attr(
69645            any(target_arch = "aarch64", target_arch = "arm64ec"),
69646            link_name = "llvm.aarch64.neon.st3.v8f16.p0"
69647        )]
69648        fn _vst3q_f16(a: float16x8_t, b: float16x8_t, c: float16x8_t, ptr: *mut i8);
69649    }
69650    _vst3q_f16(b.0, b.1, b.2, a as _)
69651}
69652#[doc = "Store multiple 3-element structures from three registers"]
69653#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_f32)"]
69654#[doc = "## Safety"]
69655#[doc = "  * Neon instrinsic unsafe"]
69656#[inline]
69657#[cfg(target_arch = "arm")]
69658#[target_feature(enable = "neon,v7")]
69659#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
69660#[cfg_attr(test, assert_instr(vst3))]
69661pub unsafe fn vst3_f32(a: *mut f32, b: float32x2x3_t) {
69662    unsafe extern "unadjusted" {
69663        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3.p0.v2f32")]
69664        fn _vst3_f32(ptr: *mut i8, a: float32x2_t, b: float32x2_t, c: float32x2_t, size: i32);
69665    }
69666    _vst3_f32(a as _, b.0, b.1, b.2, 4)
69667}
69668#[doc = "Store multiple 3-element structures from three registers"]
69669#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_f32)"]
69670#[doc = "## Safety"]
69671#[doc = "  * Neon instrinsic unsafe"]
69672#[inline]
69673#[cfg(target_arch = "arm")]
69674#[target_feature(enable = "neon,v7")]
69675#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
69676#[cfg_attr(test, assert_instr(vst3))]
69677pub unsafe fn vst3q_f32(a: *mut f32, b: float32x4x3_t) {
69678    unsafe extern "unadjusted" {
69679        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3.p0.v4f32")]
69680        fn _vst3q_f32(ptr: *mut i8, a: float32x4_t, b: float32x4_t, c: float32x4_t, size: i32);
69681    }
69682    _vst3q_f32(a as _, b.0, b.1, b.2, 4)
69683}
69684#[doc = "Store multiple 3-element structures from three registers"]
69685#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_s8)"]
69686#[doc = "## Safety"]
69687#[doc = "  * Neon instrinsic unsafe"]
69688#[inline]
69689#[cfg(target_arch = "arm")]
69690#[target_feature(enable = "neon,v7")]
69691#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
69692#[cfg_attr(test, assert_instr(vst3))]
69693pub unsafe fn vst3_s8(a: *mut i8, b: int8x8x3_t) {
69694    unsafe extern "unadjusted" {
69695        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3.p0.v8i8")]
69696        fn _vst3_s8(ptr: *mut i8, a: int8x8_t, b: int8x8_t, c: int8x8_t, size: i32);
69697    }
69698    _vst3_s8(a as _, b.0, b.1, b.2, 1)
69699}
69700#[doc = "Store multiple 3-element structures from three registers"]
69701#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_s8)"]
69702#[doc = "## Safety"]
69703#[doc = "  * Neon instrinsic unsafe"]
69704#[inline]
69705#[cfg(target_arch = "arm")]
69706#[target_feature(enable = "neon,v7")]
69707#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
69708#[cfg_attr(test, assert_instr(vst3))]
69709pub unsafe fn vst3q_s8(a: *mut i8, b: int8x16x3_t) {
69710    unsafe extern "unadjusted" {
69711        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3.p0.v16i8")]
69712        fn _vst3q_s8(ptr: *mut i8, a: int8x16_t, b: int8x16_t, c: int8x16_t, size: i32);
69713    }
69714    _vst3q_s8(a as _, b.0, b.1, b.2, 1)
69715}
69716#[doc = "Store multiple 3-element structures from three registers"]
69717#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_s16)"]
69718#[doc = "## Safety"]
69719#[doc = "  * Neon instrinsic unsafe"]
69720#[inline]
69721#[cfg(target_arch = "arm")]
69722#[target_feature(enable = "neon,v7")]
69723#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
69724#[cfg_attr(test, assert_instr(vst3))]
69725pub unsafe fn vst3_s16(a: *mut i16, b: int16x4x3_t) {
69726    unsafe extern "unadjusted" {
69727        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3.p0.v4i16")]
69728        fn _vst3_s16(ptr: *mut i8, a: int16x4_t, b: int16x4_t, c: int16x4_t, size: i32);
69729    }
69730    _vst3_s16(a as _, b.0, b.1, b.2, 2)
69731}
69732#[doc = "Store multiple 3-element structures from three registers"]
69733#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_s16)"]
69734#[doc = "## Safety"]
69735#[doc = "  * Neon instrinsic unsafe"]
69736#[inline]
69737#[cfg(target_arch = "arm")]
69738#[target_feature(enable = "neon,v7")]
69739#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
69740#[cfg_attr(test, assert_instr(vst3))]
69741pub unsafe fn vst3q_s16(a: *mut i16, b: int16x8x3_t) {
69742    unsafe extern "unadjusted" {
69743        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3.p0.v8i16")]
69744        fn _vst3q_s16(ptr: *mut i8, a: int16x8_t, b: int16x8_t, c: int16x8_t, size: i32);
69745    }
69746    _vst3q_s16(a as _, b.0, b.1, b.2, 2)
69747}
69748#[doc = "Store multiple 3-element structures from three registers"]
69749#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_s32)"]
69750#[doc = "## Safety"]
69751#[doc = "  * Neon instrinsic unsafe"]
69752#[inline]
69753#[cfg(target_arch = "arm")]
69754#[target_feature(enable = "neon,v7")]
69755#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
69756#[cfg_attr(test, assert_instr(vst3))]
69757pub unsafe fn vst3_s32(a: *mut i32, b: int32x2x3_t) {
69758    unsafe extern "unadjusted" {
69759        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3.p0.v2i32")]
69760        fn _vst3_s32(ptr: *mut i8, a: int32x2_t, b: int32x2_t, c: int32x2_t, size: i32);
69761    }
69762    _vst3_s32(a as _, b.0, b.1, b.2, 4)
69763}
69764#[doc = "Store multiple 3-element structures from three registers"]
69765#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_s32)"]
69766#[doc = "## Safety"]
69767#[doc = "  * Neon instrinsic unsafe"]
69768#[inline]
69769#[cfg(target_arch = "arm")]
69770#[target_feature(enable = "neon,v7")]
69771#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
69772#[cfg_attr(test, assert_instr(vst3))]
69773pub unsafe fn vst3q_s32(a: *mut i32, b: int32x4x3_t) {
69774    unsafe extern "unadjusted" {
69775        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3.p0.v4i32")]
69776        fn _vst3q_s32(ptr: *mut i8, a: int32x4_t, b: int32x4_t, c: int32x4_t, size: i32);
69777    }
69778    _vst3q_s32(a as _, b.0, b.1, b.2, 4)
69779}
69780#[doc = "Store multiple 3-element structures from three registers"]
69781#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_f32)"]
69782#[doc = "## Safety"]
69783#[doc = "  * Neon instrinsic unsafe"]
69784#[inline]
69785#[target_feature(enable = "neon")]
69786#[cfg(not(target_arch = "arm"))]
69787#[stable(feature = "neon_intrinsics", since = "1.59.0")]
69788#[cfg_attr(test, assert_instr(st3))]
69789pub unsafe fn vst3_f32(a: *mut f32, b: float32x2x3_t) {
69790    unsafe extern "unadjusted" {
69791        #[cfg_attr(
69792            any(target_arch = "aarch64", target_arch = "arm64ec"),
69793            link_name = "llvm.aarch64.neon.st3.v2f32.p0"
69794        )]
69795        fn _vst3_f32(a: float32x2_t, b: float32x2_t, c: float32x2_t, ptr: *mut i8);
69796    }
69797    _vst3_f32(b.0, b.1, b.2, a as _)
69798}
69799#[doc = "Store multiple 3-element structures from three registers"]
69800#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_f32)"]
69801#[doc = "## Safety"]
69802#[doc = "  * Neon instrinsic unsafe"]
69803#[inline]
69804#[target_feature(enable = "neon")]
69805#[cfg(not(target_arch = "arm"))]
69806#[stable(feature = "neon_intrinsics", since = "1.59.0")]
69807#[cfg_attr(test, assert_instr(st3))]
69808pub unsafe fn vst3q_f32(a: *mut f32, b: float32x4x3_t) {
69809    unsafe extern "unadjusted" {
69810        #[cfg_attr(
69811            any(target_arch = "aarch64", target_arch = "arm64ec"),
69812            link_name = "llvm.aarch64.neon.st3.v4f32.p0"
69813        )]
69814        fn _vst3q_f32(a: float32x4_t, b: float32x4_t, c: float32x4_t, ptr: *mut i8);
69815    }
69816    _vst3q_f32(b.0, b.1, b.2, a as _)
69817}
69818#[doc = "Store multiple 3-element structures from three registers"]
69819#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_s8)"]
69820#[doc = "## Safety"]
69821#[doc = "  * Neon instrinsic unsafe"]
69822#[inline]
69823#[target_feature(enable = "neon")]
69824#[cfg(not(target_arch = "arm"))]
69825#[stable(feature = "neon_intrinsics", since = "1.59.0")]
69826#[cfg_attr(test, assert_instr(st3))]
69827pub unsafe fn vst3_s8(a: *mut i8, b: int8x8x3_t) {
69828    unsafe extern "unadjusted" {
69829        #[cfg_attr(
69830            any(target_arch = "aarch64", target_arch = "arm64ec"),
69831            link_name = "llvm.aarch64.neon.st3.v8i8.p0"
69832        )]
69833        fn _vst3_s8(a: int8x8_t, b: int8x8_t, c: int8x8_t, ptr: *mut i8);
69834    }
69835    _vst3_s8(b.0, b.1, b.2, a as _)
69836}
69837#[doc = "Store multiple 3-element structures from three registers"]
69838#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_s8)"]
69839#[doc = "## Safety"]
69840#[doc = "  * Neon instrinsic unsafe"]
69841#[inline]
69842#[target_feature(enable = "neon")]
69843#[cfg(not(target_arch = "arm"))]
69844#[stable(feature = "neon_intrinsics", since = "1.59.0")]
69845#[cfg_attr(test, assert_instr(st3))]
69846pub unsafe fn vst3q_s8(a: *mut i8, b: int8x16x3_t) {
69847    unsafe extern "unadjusted" {
69848        #[cfg_attr(
69849            any(target_arch = "aarch64", target_arch = "arm64ec"),
69850            link_name = "llvm.aarch64.neon.st3.v16i8.p0"
69851        )]
69852        fn _vst3q_s8(a: int8x16_t, b: int8x16_t, c: int8x16_t, ptr: *mut i8);
69853    }
69854    _vst3q_s8(b.0, b.1, b.2, a as _)
69855}
69856#[doc = "Store multiple 3-element structures from three registers"]
69857#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_s16)"]
69858#[doc = "## Safety"]
69859#[doc = "  * Neon instrinsic unsafe"]
69860#[inline]
69861#[target_feature(enable = "neon")]
69862#[cfg(not(target_arch = "arm"))]
69863#[stable(feature = "neon_intrinsics", since = "1.59.0")]
69864#[cfg_attr(test, assert_instr(st3))]
69865pub unsafe fn vst3_s16(a: *mut i16, b: int16x4x3_t) {
69866    unsafe extern "unadjusted" {
69867        #[cfg_attr(
69868            any(target_arch = "aarch64", target_arch = "arm64ec"),
69869            link_name = "llvm.aarch64.neon.st3.v4i16.p0"
69870        )]
69871        fn _vst3_s16(a: int16x4_t, b: int16x4_t, c: int16x4_t, ptr: *mut i8);
69872    }
69873    _vst3_s16(b.0, b.1, b.2, a as _)
69874}
69875#[doc = "Store multiple 3-element structures from three registers"]
69876#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_s16)"]
69877#[doc = "## Safety"]
69878#[doc = "  * Neon instrinsic unsafe"]
69879#[inline]
69880#[target_feature(enable = "neon")]
69881#[cfg(not(target_arch = "arm"))]
69882#[stable(feature = "neon_intrinsics", since = "1.59.0")]
69883#[cfg_attr(test, assert_instr(st3))]
69884pub unsafe fn vst3q_s16(a: *mut i16, b: int16x8x3_t) {
69885    unsafe extern "unadjusted" {
69886        #[cfg_attr(
69887            any(target_arch = "aarch64", target_arch = "arm64ec"),
69888            link_name = "llvm.aarch64.neon.st3.v8i16.p0"
69889        )]
69890        fn _vst3q_s16(a: int16x8_t, b: int16x8_t, c: int16x8_t, ptr: *mut i8);
69891    }
69892    _vst3q_s16(b.0, b.1, b.2, a as _)
69893}
69894#[doc = "Store multiple 3-element structures from three registers"]
69895#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_s32)"]
69896#[doc = "## Safety"]
69897#[doc = "  * Neon instrinsic unsafe"]
69898#[inline]
69899#[target_feature(enable = "neon")]
69900#[cfg(not(target_arch = "arm"))]
69901#[stable(feature = "neon_intrinsics", since = "1.59.0")]
69902#[cfg_attr(test, assert_instr(st3))]
69903pub unsafe fn vst3_s32(a: *mut i32, b: int32x2x3_t) {
69904    unsafe extern "unadjusted" {
69905        #[cfg_attr(
69906            any(target_arch = "aarch64", target_arch = "arm64ec"),
69907            link_name = "llvm.aarch64.neon.st3.v2i32.p0"
69908        )]
69909        fn _vst3_s32(a: int32x2_t, b: int32x2_t, c: int32x2_t, ptr: *mut i8);
69910    }
69911    _vst3_s32(b.0, b.1, b.2, a as _)
69912}
69913#[doc = "Store multiple 3-element structures from three registers"]
69914#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_s32)"]
69915#[doc = "## Safety"]
69916#[doc = "  * Neon instrinsic unsafe"]
69917#[inline]
69918#[target_feature(enable = "neon")]
69919#[cfg(not(target_arch = "arm"))]
69920#[stable(feature = "neon_intrinsics", since = "1.59.0")]
69921#[cfg_attr(test, assert_instr(st3))]
69922pub unsafe fn vst3q_s32(a: *mut i32, b: int32x4x3_t) {
69923    unsafe extern "unadjusted" {
69924        #[cfg_attr(
69925            any(target_arch = "aarch64", target_arch = "arm64ec"),
69926            link_name = "llvm.aarch64.neon.st3.v4i32.p0"
69927        )]
69928        fn _vst3q_s32(a: int32x4_t, b: int32x4_t, c: int32x4_t, ptr: *mut i8);
69929    }
69930    _vst3q_s32(b.0, b.1, b.2, a as _)
69931}
69932#[doc = "Store multiple 3-element structures from three registers"]
69933#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_f16)"]
69934#[doc = "## Safety"]
69935#[doc = "  * Neon instrinsic unsafe"]
69936#[inline]
69937#[target_feature(enable = "neon")]
69938#[cfg(target_arch = "arm")]
69939#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69940#[cfg_attr(test, assert_instr(vst3, LANE = 0))]
69941#[rustc_legacy_const_generics(2)]
69942#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
69943#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
69944#[cfg(not(target_arch = "arm64ec"))]
69945pub unsafe fn vst3_lane_f16<const LANE: i32>(a: *mut f16, b: float16x4x3_t) {
69946    static_assert_uimm_bits!(LANE, 2);
69947    unsafe extern "unadjusted" {
69948        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3lane.p0.v4f16")]
69949        fn _vst3_lane_f16(
69950            ptr: *mut i8,
69951            a: float16x4_t,
69952            b: float16x4_t,
69953            c: float16x4_t,
69954            n: i32,
69955            size: i32,
69956        );
69957    }
69958    _vst3_lane_f16(a as _, b.0, b.1, b.2, LANE, 4)
69959}
69960#[doc = "Store multiple 3-element structures from three registers"]
69961#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_lane_f16)"]
69962#[doc = "## Safety"]
69963#[doc = "  * Neon instrinsic unsafe"]
69964#[inline]
69965#[target_feature(enable = "neon")]
69966#[cfg(target_arch = "arm")]
69967#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69968#[cfg_attr(test, assert_instr(vst3, LANE = 0))]
69969#[rustc_legacy_const_generics(2)]
69970#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
69971#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
69972#[cfg(not(target_arch = "arm64ec"))]
69973pub unsafe fn vst3q_lane_f16<const LANE: i32>(a: *mut f16, b: float16x8x3_t) {
69974    static_assert_uimm_bits!(LANE, 3);
69975    unsafe extern "unadjusted" {
69976        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3lane.p0.v8f16")]
69977        fn _vst3q_lane_f16(
69978            ptr: *mut i8,
69979            a: float16x8_t,
69980            b: float16x8_t,
69981            c: float16x8_t,
69982            n: i32,
69983            size: i32,
69984        );
69985    }
69986    _vst3q_lane_f16(a as _, b.0, b.1, b.2, LANE, 4)
69987}
69988#[doc = "Store multiple 3-element structures from three registers"]
69989#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_f16)"]
69990#[doc = "## Safety"]
69991#[doc = "  * Neon instrinsic unsafe"]
69992#[inline]
69993#[target_feature(enable = "neon")]
69994#[cfg(not(target_arch = "arm"))]
69995#[rustc_legacy_const_generics(2)]
69996#[cfg_attr(test, assert_instr(st3, LANE = 0))]
69997#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
69998#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
69999#[cfg(not(target_arch = "arm64ec"))]
70000pub unsafe fn vst3_lane_f16<const LANE: i32>(a: *mut f16, b: float16x4x3_t) {
70001    static_assert_uimm_bits!(LANE, 2);
70002    unsafe extern "unadjusted" {
70003        #[cfg_attr(
70004            any(target_arch = "aarch64", target_arch = "arm64ec"),
70005            link_name = "llvm.aarch64.neon.st3lane.v4f16.p0"
70006        )]
70007        fn _vst3_lane_f16(a: float16x4_t, b: float16x4_t, c: float16x4_t, n: i64, ptr: *mut i8);
70008    }
70009    _vst3_lane_f16(b.0, b.1, b.2, LANE as i64, a as _)
70010}
70011#[doc = "Store multiple 3-element structures from three registers"]
70012#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_lane_f16)"]
70013#[doc = "## Safety"]
70014#[doc = "  * Neon instrinsic unsafe"]
70015#[inline]
70016#[target_feature(enable = "neon")]
70017#[cfg(not(target_arch = "arm"))]
70018#[rustc_legacy_const_generics(2)]
70019#[cfg_attr(test, assert_instr(st3, LANE = 0))]
70020#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
70021#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
70022#[cfg(not(target_arch = "arm64ec"))]
70023pub unsafe fn vst3q_lane_f16<const LANE: i32>(a: *mut f16, b: float16x8x3_t) {
70024    static_assert_uimm_bits!(LANE, 3);
70025    unsafe extern "unadjusted" {
70026        #[cfg_attr(
70027            any(target_arch = "aarch64", target_arch = "arm64ec"),
70028            link_name = "llvm.aarch64.neon.st3lane.v8f16.p0"
70029        )]
70030        fn _vst3q_lane_f16(a: float16x8_t, b: float16x8_t, c: float16x8_t, n: i64, ptr: *mut i8);
70031    }
70032    _vst3q_lane_f16(b.0, b.1, b.2, LANE as i64, a as _)
70033}
70034#[doc = "Store multiple 3-element structures from three registers"]
70035#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_f32)"]
70036#[doc = "## Safety"]
70037#[doc = "  * Neon instrinsic unsafe"]
70038#[inline]
70039#[cfg(target_arch = "arm")]
70040#[target_feature(enable = "neon,v7")]
70041#[cfg_attr(test, assert_instr(vst3, LANE = 0))]
70042#[rustc_legacy_const_generics(2)]
70043#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
70044pub unsafe fn vst3_lane_f32<const LANE: i32>(a: *mut f32, b: float32x2x3_t) {
70045    static_assert_uimm_bits!(LANE, 1);
70046    unsafe extern "unadjusted" {
70047        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3lane.p0.v2f32")]
70048        fn _vst3_lane_f32(
70049            ptr: *mut i8,
70050            a: float32x2_t,
70051            b: float32x2_t,
70052            c: float32x2_t,
70053            n: i32,
70054            size: i32,
70055        );
70056    }
70057    _vst3_lane_f32(a as _, b.0, b.1, b.2, LANE, 4)
70058}
70059#[doc = "Store multiple 3-element structures from three registers"]
70060#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_lane_f32)"]
70061#[doc = "## Safety"]
70062#[doc = "  * Neon instrinsic unsafe"]
70063#[inline]
70064#[cfg(target_arch = "arm")]
70065#[target_feature(enable = "neon,v7")]
70066#[cfg_attr(test, assert_instr(vst3, LANE = 0))]
70067#[rustc_legacy_const_generics(2)]
70068#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
70069pub unsafe fn vst3q_lane_f32<const LANE: i32>(a: *mut f32, b: float32x4x3_t) {
70070    static_assert_uimm_bits!(LANE, 2);
70071    unsafe extern "unadjusted" {
70072        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3lane.p0.v4f32")]
70073        fn _vst3q_lane_f32(
70074            ptr: *mut i8,
70075            a: float32x4_t,
70076            b: float32x4_t,
70077            c: float32x4_t,
70078            n: i32,
70079            size: i32,
70080        );
70081    }
70082    _vst3q_lane_f32(a as _, b.0, b.1, b.2, LANE, 4)
70083}
70084#[doc = "Store multiple 3-element structures from three registers"]
70085#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_s8)"]
70086#[doc = "## Safety"]
70087#[doc = "  * Neon instrinsic unsafe"]
70088#[inline]
70089#[cfg(target_arch = "arm")]
70090#[target_feature(enable = "neon,v7")]
70091#[cfg_attr(test, assert_instr(vst3, LANE = 0))]
70092#[rustc_legacy_const_generics(2)]
70093#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
70094pub unsafe fn vst3_lane_s8<const LANE: i32>(a: *mut i8, b: int8x8x3_t) {
70095    static_assert_uimm_bits!(LANE, 3);
70096    unsafe extern "unadjusted" {
70097        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3lane.p0.v8i8")]
70098        fn _vst3_lane_s8(ptr: *mut i8, a: int8x8_t, b: int8x8_t, c: int8x8_t, n: i32, size: i32);
70099    }
70100    _vst3_lane_s8(a as _, b.0, b.1, b.2, LANE, 1)
70101}
70102#[doc = "Store multiple 3-element structures from three registers"]
70103#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_s16)"]
70104#[doc = "## Safety"]
70105#[doc = "  * Neon instrinsic unsafe"]
70106#[inline]
70107#[cfg(target_arch = "arm")]
70108#[target_feature(enable = "neon,v7")]
70109#[cfg_attr(test, assert_instr(vst3, LANE = 0))]
70110#[rustc_legacy_const_generics(2)]
70111#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
70112pub unsafe fn vst3_lane_s16<const LANE: i32>(a: *mut i16, b: int16x4x3_t) {
70113    static_assert_uimm_bits!(LANE, 2);
70114    unsafe extern "unadjusted" {
70115        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3lane.p0.v4i16")]
70116        fn _vst3_lane_s16(
70117            ptr: *mut i8,
70118            a: int16x4_t,
70119            b: int16x4_t,
70120            c: int16x4_t,
70121            n: i32,
70122            size: i32,
70123        );
70124    }
70125    _vst3_lane_s16(a as _, b.0, b.1, b.2, LANE, 2)
70126}
70127#[doc = "Store multiple 3-element structures from three registers"]
70128#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_lane_s16)"]
70129#[doc = "## Safety"]
70130#[doc = "  * Neon instrinsic unsafe"]
70131#[inline]
70132#[cfg(target_arch = "arm")]
70133#[target_feature(enable = "neon,v7")]
70134#[cfg_attr(test, assert_instr(vst3, LANE = 0))]
70135#[rustc_legacy_const_generics(2)]
70136#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
70137pub unsafe fn vst3q_lane_s16<const LANE: i32>(a: *mut i16, b: int16x8x3_t) {
70138    static_assert_uimm_bits!(LANE, 3);
70139    unsafe extern "unadjusted" {
70140        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3lane.p0.v8i16")]
70141        fn _vst3q_lane_s16(
70142            ptr: *mut i8,
70143            a: int16x8_t,
70144            b: int16x8_t,
70145            c: int16x8_t,
70146            n: i32,
70147            size: i32,
70148        );
70149    }
70150    _vst3q_lane_s16(a as _, b.0, b.1, b.2, LANE, 2)
70151}
70152#[doc = "Store multiple 3-element structures from three registers"]
70153#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_s32)"]
70154#[doc = "## Safety"]
70155#[doc = "  * Neon instrinsic unsafe"]
70156#[inline]
70157#[cfg(target_arch = "arm")]
70158#[target_feature(enable = "neon,v7")]
70159#[cfg_attr(test, assert_instr(vst3, LANE = 0))]
70160#[rustc_legacy_const_generics(2)]
70161#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
70162pub unsafe fn vst3_lane_s32<const LANE: i32>(a: *mut i32, b: int32x2x3_t) {
70163    static_assert_uimm_bits!(LANE, 1);
70164    unsafe extern "unadjusted" {
70165        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3lane.p0.v2i32")]
70166        fn _vst3_lane_s32(
70167            ptr: *mut i8,
70168            a: int32x2_t,
70169            b: int32x2_t,
70170            c: int32x2_t,
70171            n: i32,
70172            size: i32,
70173        );
70174    }
70175    _vst3_lane_s32(a as _, b.0, b.1, b.2, LANE, 4)
70176}
70177#[doc = "Store multiple 3-element structures from three registers"]
70178#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_lane_s32)"]
70179#[doc = "## Safety"]
70180#[doc = "  * Neon instrinsic unsafe"]
70181#[inline]
70182#[cfg(target_arch = "arm")]
70183#[target_feature(enable = "neon,v7")]
70184#[cfg_attr(test, assert_instr(vst3, LANE = 0))]
70185#[rustc_legacy_const_generics(2)]
70186#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
70187pub unsafe fn vst3q_lane_s32<const LANE: i32>(a: *mut i32, b: int32x4x3_t) {
70188    static_assert_uimm_bits!(LANE, 2);
70189    unsafe extern "unadjusted" {
70190        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3lane.p0.v4i32")]
70191        fn _vst3q_lane_s32(
70192            ptr: *mut i8,
70193            a: int32x4_t,
70194            b: int32x4_t,
70195            c: int32x4_t,
70196            n: i32,
70197            size: i32,
70198        );
70199    }
70200    _vst3q_lane_s32(a as _, b.0, b.1, b.2, LANE, 4)
70201}
70202#[doc = "Store multiple 3-element structures from three registers"]
70203#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_f32)"]
70204#[doc = "## Safety"]
70205#[doc = "  * Neon instrinsic unsafe"]
70206#[inline]
70207#[target_feature(enable = "neon")]
70208#[cfg(not(target_arch = "arm"))]
70209#[rustc_legacy_const_generics(2)]
70210#[cfg_attr(test, assert_instr(st3, LANE = 0))]
70211#[stable(feature = "neon_intrinsics", since = "1.59.0")]
70212pub unsafe fn vst3_lane_f32<const LANE: i32>(a: *mut f32, b: float32x2x3_t) {
70213    static_assert_uimm_bits!(LANE, 1);
70214    unsafe extern "unadjusted" {
70215        #[cfg_attr(
70216            any(target_arch = "aarch64", target_arch = "arm64ec"),
70217            link_name = "llvm.aarch64.neon.st3lane.v2f32.p0"
70218        )]
70219        fn _vst3_lane_f32(a: float32x2_t, b: float32x2_t, c: float32x2_t, n: i64, ptr: *mut i8);
70220    }
70221    _vst3_lane_f32(b.0, b.1, b.2, LANE as i64, a as _)
70222}
70223#[doc = "Store multiple 3-element structures from three registers"]
70224#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_lane_f32)"]
70225#[doc = "## Safety"]
70226#[doc = "  * Neon instrinsic unsafe"]
70227#[inline]
70228#[target_feature(enable = "neon")]
70229#[cfg(not(target_arch = "arm"))]
70230#[rustc_legacy_const_generics(2)]
70231#[cfg_attr(test, assert_instr(st3, LANE = 0))]
70232#[stable(feature = "neon_intrinsics", since = "1.59.0")]
70233pub unsafe fn vst3q_lane_f32<const LANE: i32>(a: *mut f32, b: float32x4x3_t) {
70234    static_assert_uimm_bits!(LANE, 2);
70235    unsafe extern "unadjusted" {
70236        #[cfg_attr(
70237            any(target_arch = "aarch64", target_arch = "arm64ec"),
70238            link_name = "llvm.aarch64.neon.st3lane.v4f32.p0"
70239        )]
70240        fn _vst3q_lane_f32(a: float32x4_t, b: float32x4_t, c: float32x4_t, n: i64, ptr: *mut i8);
70241    }
70242    _vst3q_lane_f32(b.0, b.1, b.2, LANE as i64, a as _)
70243}
70244#[doc = "Store multiple 3-element structures from three registers"]
70245#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_s8)"]
70246#[doc = "## Safety"]
70247#[doc = "  * Neon instrinsic unsafe"]
70248#[inline]
70249#[target_feature(enable = "neon")]
70250#[cfg(not(target_arch = "arm"))]
70251#[rustc_legacy_const_generics(2)]
70252#[cfg_attr(test, assert_instr(st3, LANE = 0))]
70253#[stable(feature = "neon_intrinsics", since = "1.59.0")]
70254pub unsafe fn vst3_lane_s8<const LANE: i32>(a: *mut i8, b: int8x8x3_t) {
70255    static_assert_uimm_bits!(LANE, 3);
70256    unsafe extern "unadjusted" {
70257        #[cfg_attr(
70258            any(target_arch = "aarch64", target_arch = "arm64ec"),
70259            link_name = "llvm.aarch64.neon.st3lane.v8i8.p0"
70260        )]
70261        fn _vst3_lane_s8(a: int8x8_t, b: int8x8_t, c: int8x8_t, n: i64, ptr: *mut i8);
70262    }
70263    _vst3_lane_s8(b.0, b.1, b.2, LANE as i64, a as _)
70264}
70265#[doc = "Store multiple 3-element structures from three registers"]
70266#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_s16)"]
70267#[doc = "## Safety"]
70268#[doc = "  * Neon instrinsic unsafe"]
70269#[inline]
70270#[target_feature(enable = "neon")]
70271#[cfg(not(target_arch = "arm"))]
70272#[rustc_legacy_const_generics(2)]
70273#[cfg_attr(test, assert_instr(st3, LANE = 0))]
70274#[stable(feature = "neon_intrinsics", since = "1.59.0")]
70275pub unsafe fn vst3_lane_s16<const LANE: i32>(a: *mut i16, b: int16x4x3_t) {
70276    static_assert_uimm_bits!(LANE, 2);
70277    unsafe extern "unadjusted" {
70278        #[cfg_attr(
70279            any(target_arch = "aarch64", target_arch = "arm64ec"),
70280            link_name = "llvm.aarch64.neon.st3lane.v4i16.p0"
70281        )]
70282        fn _vst3_lane_s16(a: int16x4_t, b: int16x4_t, c: int16x4_t, n: i64, ptr: *mut i8);
70283    }
70284    _vst3_lane_s16(b.0, b.1, b.2, LANE as i64, a as _)
70285}
70286#[doc = "Store multiple 3-element structures from three registers"]
70287#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_lane_s16)"]
70288#[doc = "## Safety"]
70289#[doc = "  * Neon instrinsic unsafe"]
70290#[inline]
70291#[target_feature(enable = "neon")]
70292#[cfg(not(target_arch = "arm"))]
70293#[rustc_legacy_const_generics(2)]
70294#[cfg_attr(test, assert_instr(st3, LANE = 0))]
70295#[stable(feature = "neon_intrinsics", since = "1.59.0")]
70296pub unsafe fn vst3q_lane_s16<const LANE: i32>(a: *mut i16, b: int16x8x3_t) {
70297    static_assert_uimm_bits!(LANE, 3);
70298    unsafe extern "unadjusted" {
70299        #[cfg_attr(
70300            any(target_arch = "aarch64", target_arch = "arm64ec"),
70301            link_name = "llvm.aarch64.neon.st3lane.v8i16.p0"
70302        )]
70303        fn _vst3q_lane_s16(a: int16x8_t, b: int16x8_t, c: int16x8_t, n: i64, ptr: *mut i8);
70304    }
70305    _vst3q_lane_s16(b.0, b.1, b.2, LANE as i64, a as _)
70306}
70307#[doc = "Store multiple 3-element structures from three registers"]
70308#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_s32)"]
70309#[doc = "## Safety"]
70310#[doc = "  * Neon instrinsic unsafe"]
70311#[inline]
70312#[target_feature(enable = "neon")]
70313#[cfg(not(target_arch = "arm"))]
70314#[rustc_legacy_const_generics(2)]
70315#[cfg_attr(test, assert_instr(st3, LANE = 0))]
70316#[stable(feature = "neon_intrinsics", since = "1.59.0")]
70317pub unsafe fn vst3_lane_s32<const LANE: i32>(a: *mut i32, b: int32x2x3_t) {
70318    static_assert_uimm_bits!(LANE, 1);
70319    unsafe extern "unadjusted" {
70320        #[cfg_attr(
70321            any(target_arch = "aarch64", target_arch = "arm64ec"),
70322            link_name = "llvm.aarch64.neon.st3lane.v2i32.p0"
70323        )]
70324        fn _vst3_lane_s32(a: int32x2_t, b: int32x2_t, c: int32x2_t, n: i64, ptr: *mut i8);
70325    }
70326    _vst3_lane_s32(b.0, b.1, b.2, LANE as i64, a as _)
70327}
70328#[doc = "Store multiple 3-element structures from three registers"]
70329#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_lane_s32)"]
70330#[doc = "## Safety"]
70331#[doc = "  * Neon instrinsic unsafe"]
70332#[inline]
70333#[target_feature(enable = "neon")]
70334#[cfg(not(target_arch = "arm"))]
70335#[rustc_legacy_const_generics(2)]
70336#[cfg_attr(test, assert_instr(st3, LANE = 0))]
70337#[stable(feature = "neon_intrinsics", since = "1.59.0")]
70338pub unsafe fn vst3q_lane_s32<const LANE: i32>(a: *mut i32, b: int32x4x3_t) {
70339    static_assert_uimm_bits!(LANE, 2);
70340    unsafe extern "unadjusted" {
70341        #[cfg_attr(
70342            any(target_arch = "aarch64", target_arch = "arm64ec"),
70343            link_name = "llvm.aarch64.neon.st3lane.v4i32.p0"
70344        )]
70345        fn _vst3q_lane_s32(a: int32x4_t, b: int32x4_t, c: int32x4_t, n: i64, ptr: *mut i8);
70346    }
70347    _vst3q_lane_s32(b.0, b.1, b.2, LANE as i64, a as _)
70348}
70349#[doc = "Store multiple 3-element structures from three registers"]
70350#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_u8)"]
70351#[doc = "## Safety"]
70352#[doc = "  * Neon instrinsic unsafe"]
70353#[inline]
70354#[target_feature(enable = "neon")]
70355#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70356#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3, LANE = 0))]
70357#[cfg_attr(
70358    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70359    assert_instr(st3, LANE = 0)
70360)]
70361#[rustc_legacy_const_generics(2)]
70362#[cfg_attr(
70363    not(target_arch = "arm"),
70364    stable(feature = "neon_intrinsics", since = "1.59.0")
70365)]
70366#[cfg_attr(
70367    target_arch = "arm",
70368    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70369)]
70370pub unsafe fn vst3_lane_u8<const LANE: i32>(a: *mut u8, b: uint8x8x3_t) {
70371    static_assert_uimm_bits!(LANE, 3);
70372    vst3_lane_s8::<LANE>(transmute(a), transmute(b))
70373}
70374#[doc = "Store multiple 3-element structures from three registers"]
70375#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_u16)"]
70376#[doc = "## Safety"]
70377#[doc = "  * Neon instrinsic unsafe"]
70378#[inline]
70379#[target_feature(enable = "neon")]
70380#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70381#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3, LANE = 0))]
70382#[cfg_attr(
70383    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70384    assert_instr(st3, LANE = 0)
70385)]
70386#[rustc_legacy_const_generics(2)]
70387#[cfg_attr(
70388    not(target_arch = "arm"),
70389    stable(feature = "neon_intrinsics", since = "1.59.0")
70390)]
70391#[cfg_attr(
70392    target_arch = "arm",
70393    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70394)]
70395pub unsafe fn vst3_lane_u16<const LANE: i32>(a: *mut u16, b: uint16x4x3_t) {
70396    static_assert_uimm_bits!(LANE, 2);
70397    vst3_lane_s16::<LANE>(transmute(a), transmute(b))
70398}
70399#[doc = "Store multiple 3-element structures from three registers"]
70400#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_lane_u16)"]
70401#[doc = "## Safety"]
70402#[doc = "  * Neon instrinsic unsafe"]
70403#[inline]
70404#[target_feature(enable = "neon")]
70405#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70406#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3, LANE = 0))]
70407#[cfg_attr(
70408    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70409    assert_instr(st3, LANE = 0)
70410)]
70411#[rustc_legacy_const_generics(2)]
70412#[cfg_attr(
70413    not(target_arch = "arm"),
70414    stable(feature = "neon_intrinsics", since = "1.59.0")
70415)]
70416#[cfg_attr(
70417    target_arch = "arm",
70418    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70419)]
70420pub unsafe fn vst3q_lane_u16<const LANE: i32>(a: *mut u16, b: uint16x8x3_t) {
70421    static_assert_uimm_bits!(LANE, 3);
70422    vst3q_lane_s16::<LANE>(transmute(a), transmute(b))
70423}
70424#[doc = "Store multiple 3-element structures from three registers"]
70425#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_u32)"]
70426#[doc = "## Safety"]
70427#[doc = "  * Neon instrinsic unsafe"]
70428#[inline]
70429#[target_feature(enable = "neon")]
70430#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70431#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3, LANE = 0))]
70432#[cfg_attr(
70433    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70434    assert_instr(st3, LANE = 0)
70435)]
70436#[rustc_legacy_const_generics(2)]
70437#[cfg_attr(
70438    not(target_arch = "arm"),
70439    stable(feature = "neon_intrinsics", since = "1.59.0")
70440)]
70441#[cfg_attr(
70442    target_arch = "arm",
70443    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70444)]
70445pub unsafe fn vst3_lane_u32<const LANE: i32>(a: *mut u32, b: uint32x2x3_t) {
70446    static_assert_uimm_bits!(LANE, 1);
70447    vst3_lane_s32::<LANE>(transmute(a), transmute(b))
70448}
70449#[doc = "Store multiple 3-element structures from three registers"]
70450#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_lane_u32)"]
70451#[doc = "## Safety"]
70452#[doc = "  * Neon instrinsic unsafe"]
70453#[inline]
70454#[target_feature(enable = "neon")]
70455#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70456#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3, LANE = 0))]
70457#[cfg_attr(
70458    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70459    assert_instr(st3, LANE = 0)
70460)]
70461#[rustc_legacy_const_generics(2)]
70462#[cfg_attr(
70463    not(target_arch = "arm"),
70464    stable(feature = "neon_intrinsics", since = "1.59.0")
70465)]
70466#[cfg_attr(
70467    target_arch = "arm",
70468    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70469)]
70470pub unsafe fn vst3q_lane_u32<const LANE: i32>(a: *mut u32, b: uint32x4x3_t) {
70471    static_assert_uimm_bits!(LANE, 2);
70472    vst3q_lane_s32::<LANE>(transmute(a), transmute(b))
70473}
70474#[doc = "Store multiple 3-element structures from three registers"]
70475#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_p8)"]
70476#[doc = "## Safety"]
70477#[doc = "  * Neon instrinsic unsafe"]
70478#[inline]
70479#[target_feature(enable = "neon")]
70480#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70481#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3, LANE = 0))]
70482#[cfg_attr(
70483    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70484    assert_instr(st3, LANE = 0)
70485)]
70486#[rustc_legacy_const_generics(2)]
70487#[cfg_attr(
70488    not(target_arch = "arm"),
70489    stable(feature = "neon_intrinsics", since = "1.59.0")
70490)]
70491#[cfg_attr(
70492    target_arch = "arm",
70493    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70494)]
70495pub unsafe fn vst3_lane_p8<const LANE: i32>(a: *mut p8, b: poly8x8x3_t) {
70496    static_assert_uimm_bits!(LANE, 3);
70497    vst3_lane_s8::<LANE>(transmute(a), transmute(b))
70498}
70499#[doc = "Store multiple 3-element structures from three registers"]
70500#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_p16)"]
70501#[doc = "## Safety"]
70502#[doc = "  * Neon instrinsic unsafe"]
70503#[inline]
70504#[target_feature(enable = "neon")]
70505#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70506#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3, LANE = 0))]
70507#[cfg_attr(
70508    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70509    assert_instr(st3, LANE = 0)
70510)]
70511#[rustc_legacy_const_generics(2)]
70512#[cfg_attr(
70513    not(target_arch = "arm"),
70514    stable(feature = "neon_intrinsics", since = "1.59.0")
70515)]
70516#[cfg_attr(
70517    target_arch = "arm",
70518    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70519)]
70520pub unsafe fn vst3_lane_p16<const LANE: i32>(a: *mut p16, b: poly16x4x3_t) {
70521    static_assert_uimm_bits!(LANE, 2);
70522    vst3_lane_s16::<LANE>(transmute(a), transmute(b))
70523}
70524#[doc = "Store multiple 3-element structures from three registers"]
70525#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_lane_p16)"]
70526#[doc = "## Safety"]
70527#[doc = "  * Neon instrinsic unsafe"]
70528#[inline]
70529#[target_feature(enable = "neon")]
70530#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70531#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3, LANE = 0))]
70532#[cfg_attr(
70533    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70534    assert_instr(st3, LANE = 0)
70535)]
70536#[rustc_legacy_const_generics(2)]
70537#[cfg_attr(
70538    not(target_arch = "arm"),
70539    stable(feature = "neon_intrinsics", since = "1.59.0")
70540)]
70541#[cfg_attr(
70542    target_arch = "arm",
70543    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70544)]
70545pub unsafe fn vst3q_lane_p16<const LANE: i32>(a: *mut p16, b: poly16x8x3_t) {
70546    static_assert_uimm_bits!(LANE, 3);
70547    vst3q_lane_s16::<LANE>(transmute(a), transmute(b))
70548}
70549#[doc = "Store multiple 3-element structures from three registers"]
70550#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_p64)"]
70551#[doc = "## Safety"]
70552#[doc = "  * Neon instrinsic unsafe"]
70553#[inline]
70554#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
70555#[target_feature(enable = "neon,aes")]
70556#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
70557#[cfg_attr(
70558    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70559    assert_instr(nop)
70560)]
70561#[cfg_attr(
70562    not(target_arch = "arm"),
70563    stable(feature = "neon_intrinsics", since = "1.59.0")
70564)]
70565#[cfg_attr(
70566    target_arch = "arm",
70567    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70568)]
70569pub unsafe fn vst3_p64(a: *mut p64, b: poly64x1x3_t) {
70570    vst3_s64(transmute(a), transmute(b))
70571}
70572#[doc = "Store multiple 3-element structures from three registers"]
70573#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_s64)"]
70574#[doc = "## Safety"]
70575#[doc = "  * Neon instrinsic unsafe"]
70576#[inline]
70577#[target_feature(enable = "neon")]
70578#[cfg(not(target_arch = "arm"))]
70579#[stable(feature = "neon_intrinsics", since = "1.59.0")]
70580#[cfg_attr(test, assert_instr(nop))]
70581pub unsafe fn vst3_s64(a: *mut i64, b: int64x1x3_t) {
70582    unsafe extern "unadjusted" {
70583        #[cfg_attr(
70584            any(target_arch = "aarch64", target_arch = "arm64ec"),
70585            link_name = "llvm.aarch64.neon.st3.v1i64.p0"
70586        )]
70587        fn _vst3_s64(a: int64x1_t, b: int64x1_t, c: int64x1_t, ptr: *mut i8);
70588    }
70589    _vst3_s64(b.0, b.1, b.2, a as _)
70590}
70591#[doc = "Store multiple 3-element structures from three registers"]
70592#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_s64)"]
70593#[doc = "## Safety"]
70594#[doc = "  * Neon instrinsic unsafe"]
70595#[inline]
70596#[cfg(target_arch = "arm")]
70597#[target_feature(enable = "neon,v7")]
70598#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
70599#[cfg_attr(test, assert_instr(nop))]
70600pub unsafe fn vst3_s64(a: *mut i64, b: int64x1x3_t) {
70601    unsafe extern "unadjusted" {
70602        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3.p0.v1i64")]
70603        fn _vst3_s64(ptr: *mut i8, a: int64x1_t, b: int64x1_t, c: int64x1_t, size: i32);
70604    }
70605    _vst3_s64(a as _, b.0, b.1, b.2, 8)
70606}
70607#[doc = "Store multiple 3-element structures from three registers"]
70608#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_u64)"]
70609#[doc = "## Safety"]
70610#[doc = "  * Neon instrinsic unsafe"]
70611#[inline]
70612#[target_feature(enable = "neon")]
70613#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70614#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
70615#[cfg_attr(
70616    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70617    assert_instr(nop)
70618)]
70619#[cfg_attr(
70620    not(target_arch = "arm"),
70621    stable(feature = "neon_intrinsics", since = "1.59.0")
70622)]
70623#[cfg_attr(
70624    target_arch = "arm",
70625    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70626)]
70627pub unsafe fn vst3_u64(a: *mut u64, b: uint64x1x3_t) {
70628    vst3_s64(transmute(a), transmute(b))
70629}
70630#[doc = "Store multiple 3-element structures from three registers"]
70631#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_u8)"]
70632#[doc = "## Safety"]
70633#[doc = "  * Neon instrinsic unsafe"]
70634#[inline]
70635#[target_feature(enable = "neon")]
70636#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70637#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3))]
70638#[cfg_attr(
70639    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70640    assert_instr(st3)
70641)]
70642#[cfg_attr(
70643    not(target_arch = "arm"),
70644    stable(feature = "neon_intrinsics", since = "1.59.0")
70645)]
70646#[cfg_attr(
70647    target_arch = "arm",
70648    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70649)]
70650pub unsafe fn vst3_u8(a: *mut u8, b: uint8x8x3_t) {
70651    vst3_s8(transmute(a), transmute(b))
70652}
70653#[doc = "Store multiple 3-element structures from three registers"]
70654#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_u8)"]
70655#[doc = "## Safety"]
70656#[doc = "  * Neon instrinsic unsafe"]
70657#[inline]
70658#[target_feature(enable = "neon")]
70659#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70660#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3))]
70661#[cfg_attr(
70662    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70663    assert_instr(st3)
70664)]
70665#[cfg_attr(
70666    not(target_arch = "arm"),
70667    stable(feature = "neon_intrinsics", since = "1.59.0")
70668)]
70669#[cfg_attr(
70670    target_arch = "arm",
70671    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70672)]
70673pub unsafe fn vst3q_u8(a: *mut u8, b: uint8x16x3_t) {
70674    vst3q_s8(transmute(a), transmute(b))
70675}
70676#[doc = "Store multiple 3-element structures from three registers"]
70677#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_u16)"]
70678#[doc = "## Safety"]
70679#[doc = "  * Neon instrinsic unsafe"]
70680#[inline]
70681#[target_feature(enable = "neon")]
70682#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70683#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3))]
70684#[cfg_attr(
70685    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70686    assert_instr(st3)
70687)]
70688#[cfg_attr(
70689    not(target_arch = "arm"),
70690    stable(feature = "neon_intrinsics", since = "1.59.0")
70691)]
70692#[cfg_attr(
70693    target_arch = "arm",
70694    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70695)]
70696pub unsafe fn vst3_u16(a: *mut u16, b: uint16x4x3_t) {
70697    vst3_s16(transmute(a), transmute(b))
70698}
70699#[doc = "Store multiple 3-element structures from three registers"]
70700#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_u16)"]
70701#[doc = "## Safety"]
70702#[doc = "  * Neon instrinsic unsafe"]
70703#[inline]
70704#[target_feature(enable = "neon")]
70705#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70706#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3))]
70707#[cfg_attr(
70708    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70709    assert_instr(st3)
70710)]
70711#[cfg_attr(
70712    not(target_arch = "arm"),
70713    stable(feature = "neon_intrinsics", since = "1.59.0")
70714)]
70715#[cfg_attr(
70716    target_arch = "arm",
70717    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70718)]
70719pub unsafe fn vst3q_u16(a: *mut u16, b: uint16x8x3_t) {
70720    vst3q_s16(transmute(a), transmute(b))
70721}
70722#[doc = "Store multiple 3-element structures from three registers"]
70723#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_u32)"]
70724#[doc = "## Safety"]
70725#[doc = "  * Neon instrinsic unsafe"]
70726#[inline]
70727#[target_feature(enable = "neon")]
70728#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70729#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3))]
70730#[cfg_attr(
70731    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70732    assert_instr(st3)
70733)]
70734#[cfg_attr(
70735    not(target_arch = "arm"),
70736    stable(feature = "neon_intrinsics", since = "1.59.0")
70737)]
70738#[cfg_attr(
70739    target_arch = "arm",
70740    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70741)]
70742pub unsafe fn vst3_u32(a: *mut u32, b: uint32x2x3_t) {
70743    vst3_s32(transmute(a), transmute(b))
70744}
70745#[doc = "Store multiple 3-element structures from three registers"]
70746#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_u32)"]
70747#[doc = "## Safety"]
70748#[doc = "  * Neon instrinsic unsafe"]
70749#[inline]
70750#[target_feature(enable = "neon")]
70751#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70752#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3))]
70753#[cfg_attr(
70754    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70755    assert_instr(st3)
70756)]
70757#[cfg_attr(
70758    not(target_arch = "arm"),
70759    stable(feature = "neon_intrinsics", since = "1.59.0")
70760)]
70761#[cfg_attr(
70762    target_arch = "arm",
70763    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70764)]
70765pub unsafe fn vst3q_u32(a: *mut u32, b: uint32x4x3_t) {
70766    vst3q_s32(transmute(a), transmute(b))
70767}
70768#[doc = "Store multiple 3-element structures from three registers"]
70769#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_p8)"]
70770#[doc = "## Safety"]
70771#[doc = "  * Neon instrinsic unsafe"]
70772#[inline]
70773#[target_feature(enable = "neon")]
70774#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70775#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3))]
70776#[cfg_attr(
70777    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70778    assert_instr(st3)
70779)]
70780#[cfg_attr(
70781    not(target_arch = "arm"),
70782    stable(feature = "neon_intrinsics", since = "1.59.0")
70783)]
70784#[cfg_attr(
70785    target_arch = "arm",
70786    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70787)]
70788pub unsafe fn vst3_p8(a: *mut p8, b: poly8x8x3_t) {
70789    vst3_s8(transmute(a), transmute(b))
70790}
70791#[doc = "Store multiple 3-element structures from three registers"]
70792#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_p8)"]
70793#[doc = "## Safety"]
70794#[doc = "  * Neon instrinsic unsafe"]
70795#[inline]
70796#[target_feature(enable = "neon")]
70797#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70798#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3))]
70799#[cfg_attr(
70800    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70801    assert_instr(st3)
70802)]
70803#[cfg_attr(
70804    not(target_arch = "arm"),
70805    stable(feature = "neon_intrinsics", since = "1.59.0")
70806)]
70807#[cfg_attr(
70808    target_arch = "arm",
70809    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70810)]
70811pub unsafe fn vst3q_p8(a: *mut p8, b: poly8x16x3_t) {
70812    vst3q_s8(transmute(a), transmute(b))
70813}
70814#[doc = "Store multiple 3-element structures from three registers"]
70815#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_p16)"]
70816#[doc = "## Safety"]
70817#[doc = "  * Neon instrinsic unsafe"]
70818#[inline]
70819#[target_feature(enable = "neon")]
70820#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70821#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3))]
70822#[cfg_attr(
70823    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70824    assert_instr(st3)
70825)]
70826#[cfg_attr(
70827    not(target_arch = "arm"),
70828    stable(feature = "neon_intrinsics", since = "1.59.0")
70829)]
70830#[cfg_attr(
70831    target_arch = "arm",
70832    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70833)]
70834pub unsafe fn vst3_p16(a: *mut p16, b: poly16x4x3_t) {
70835    vst3_s16(transmute(a), transmute(b))
70836}
70837#[doc = "Store multiple 3-element structures from three registers"]
70838#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_p16)"]
70839#[doc = "## Safety"]
70840#[doc = "  * Neon instrinsic unsafe"]
70841#[inline]
70842#[target_feature(enable = "neon")]
70843#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70844#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3))]
70845#[cfg_attr(
70846    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70847    assert_instr(st3)
70848)]
70849#[cfg_attr(
70850    not(target_arch = "arm"),
70851    stable(feature = "neon_intrinsics", since = "1.59.0")
70852)]
70853#[cfg_attr(
70854    target_arch = "arm",
70855    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70856)]
70857pub unsafe fn vst3q_p16(a: *mut p16, b: poly16x8x3_t) {
70858    vst3q_s16(transmute(a), transmute(b))
70859}
70860#[doc = "Store multiple 4-element structures from four registers"]
70861#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_f16)"]
70862#[doc = "## Safety"]
70863#[doc = "  * Neon instrinsic unsafe"]
70864#[inline]
70865#[target_feature(enable = "neon")]
70866#[cfg(target_arch = "arm")]
70867#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70868#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
70869#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
70870#[cfg(not(target_arch = "arm64ec"))]
70871#[cfg_attr(test, assert_instr(vst4))]
70872pub unsafe fn vst4_f16(a: *mut f16, b: float16x4x4_t) {
70873    unsafe extern "unadjusted" {
70874        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4.p0.v4f16")]
70875        fn _vst4_f16(
70876            ptr: *mut i8,
70877            a: float16x4_t,
70878            b: float16x4_t,
70879            c: float16x4_t,
70880            d: float16x4_t,
70881            size: i32,
70882        );
70883    }
70884    _vst4_f16(a as _, b.0, b.1, b.2, b.3, 2)
70885}
70886#[doc = "Store multiple 4-element structures from four registers"]
70887#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_f16)"]
70888#[doc = "## Safety"]
70889#[doc = "  * Neon instrinsic unsafe"]
70890#[inline]
70891#[target_feature(enable = "neon")]
70892#[cfg(target_arch = "arm")]
70893#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70894#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
70895#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
70896#[cfg(not(target_arch = "arm64ec"))]
70897#[cfg_attr(test, assert_instr(vst4))]
70898pub unsafe fn vst4q_f16(a: *mut f16, b: float16x8x4_t) {
70899    unsafe extern "unadjusted" {
70900        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4.p0.v8f16")]
70901        fn _vst4q_f16(
70902            ptr: *mut i8,
70903            a: float16x8_t,
70904            b: float16x8_t,
70905            c: float16x8_t,
70906            d: float16x8_t,
70907            size: i32,
70908        );
70909    }
70910    _vst4q_f16(a as _, b.0, b.1, b.2, b.3, 2)
70911}
70912#[doc = "Store multiple 4-element structures from four registers"]
70913#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_f16)"]
70914#[doc = "## Safety"]
70915#[doc = "  * Neon instrinsic unsafe"]
70916#[inline]
70917#[target_feature(enable = "neon")]
70918#[cfg(not(target_arch = "arm"))]
70919#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
70920#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
70921#[cfg(not(target_arch = "arm64ec"))]
70922#[cfg_attr(test, assert_instr(st4))]
70923pub unsafe fn vst4_f16(a: *mut f16, b: float16x4x4_t) {
70924    unsafe extern "unadjusted" {
70925        #[cfg_attr(
70926            any(target_arch = "aarch64", target_arch = "arm64ec"),
70927            link_name = "llvm.aarch64.neon.st4.v4f16.p0"
70928        )]
70929        fn _vst4_f16(a: float16x4_t, b: float16x4_t, c: float16x4_t, d: float16x4_t, ptr: *mut i8);
70930    }
70931    _vst4_f16(b.0, b.1, b.2, b.3, a as _)
70932}
70933#[doc = "Store multiple 4-element structures from four registers"]
70934#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_f16)"]
70935#[doc = "## Safety"]
70936#[doc = "  * Neon instrinsic unsafe"]
70937#[inline]
70938#[target_feature(enable = "neon")]
70939#[cfg(not(target_arch = "arm"))]
70940#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
70941#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
70942#[cfg(not(target_arch = "arm64ec"))]
70943#[cfg_attr(test, assert_instr(st4))]
70944pub unsafe fn vst4q_f16(a: *mut f16, b: float16x8x4_t) {
70945    unsafe extern "unadjusted" {
70946        #[cfg_attr(
70947            any(target_arch = "aarch64", target_arch = "arm64ec"),
70948            link_name = "llvm.aarch64.neon.st4.v8f16.p0"
70949        )]
70950        fn _vst4q_f16(a: float16x8_t, b: float16x8_t, c: float16x8_t, d: float16x8_t, ptr: *mut i8);
70951    }
70952    _vst4q_f16(b.0, b.1, b.2, b.3, a as _)
70953}
70954#[doc = "Store multiple 4-element structures from four registers"]
70955#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_f32)"]
70956#[doc = "## Safety"]
70957#[doc = "  * Neon instrinsic unsafe"]
70958#[inline]
70959#[cfg(target_arch = "arm")]
70960#[target_feature(enable = "neon,v7")]
70961#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
70962#[cfg_attr(test, assert_instr(vst4))]
70963pub unsafe fn vst4_f32(a: *mut f32, b: float32x2x4_t) {
70964    unsafe extern "unadjusted" {
70965        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4.p0.v2f32")]
70966        fn _vst4_f32(
70967            ptr: *mut i8,
70968            a: float32x2_t,
70969            b: float32x2_t,
70970            c: float32x2_t,
70971            d: float32x2_t,
70972            size: i32,
70973        );
70974    }
70975    _vst4_f32(a as _, b.0, b.1, b.2, b.3, 4)
70976}
70977#[doc = "Store multiple 4-element structures from four registers"]
70978#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_f32)"]
70979#[doc = "## Safety"]
70980#[doc = "  * Neon instrinsic unsafe"]
70981#[inline]
70982#[cfg(target_arch = "arm")]
70983#[target_feature(enable = "neon,v7")]
70984#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
70985#[cfg_attr(test, assert_instr(vst4))]
70986pub unsafe fn vst4q_f32(a: *mut f32, b: float32x4x4_t) {
70987    unsafe extern "unadjusted" {
70988        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4.p0.v4f32")]
70989        fn _vst4q_f32(
70990            ptr: *mut i8,
70991            a: float32x4_t,
70992            b: float32x4_t,
70993            c: float32x4_t,
70994            d: float32x4_t,
70995            size: i32,
70996        );
70997    }
70998    _vst4q_f32(a as _, b.0, b.1, b.2, b.3, 4)
70999}
71000#[doc = "Store multiple 4-element structures from four registers"]
71001#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_s8)"]
71002#[doc = "## Safety"]
71003#[doc = "  * Neon instrinsic unsafe"]
71004#[inline]
71005#[cfg(target_arch = "arm")]
71006#[target_feature(enable = "neon,v7")]
71007#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71008#[cfg_attr(test, assert_instr(vst4))]
71009pub unsafe fn vst4_s8(a: *mut i8, b: int8x8x4_t) {
71010    unsafe extern "unadjusted" {
71011        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4.p0.v8i8")]
71012        fn _vst4_s8(ptr: *mut i8, a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t, size: i32);
71013    }
71014    _vst4_s8(a as _, b.0, b.1, b.2, b.3, 1)
71015}
71016#[doc = "Store multiple 4-element structures from four registers"]
71017#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_s8)"]
71018#[doc = "## Safety"]
71019#[doc = "  * Neon instrinsic unsafe"]
71020#[inline]
71021#[cfg(target_arch = "arm")]
71022#[target_feature(enable = "neon,v7")]
71023#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71024#[cfg_attr(test, assert_instr(vst4))]
71025pub unsafe fn vst4q_s8(a: *mut i8, b: int8x16x4_t) {
71026    unsafe extern "unadjusted" {
71027        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4.p0.v16i8")]
71028        fn _vst4q_s8(
71029            ptr: *mut i8,
71030            a: int8x16_t,
71031            b: int8x16_t,
71032            c: int8x16_t,
71033            d: int8x16_t,
71034            size: i32,
71035        );
71036    }
71037    _vst4q_s8(a as _, b.0, b.1, b.2, b.3, 1)
71038}
71039#[doc = "Store multiple 4-element structures from four registers"]
71040#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_s16)"]
71041#[doc = "## Safety"]
71042#[doc = "  * Neon instrinsic unsafe"]
71043#[inline]
71044#[cfg(target_arch = "arm")]
71045#[target_feature(enable = "neon,v7")]
71046#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71047#[cfg_attr(test, assert_instr(vst4))]
71048pub unsafe fn vst4_s16(a: *mut i16, b: int16x4x4_t) {
71049    unsafe extern "unadjusted" {
71050        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4.p0.v4i16")]
71051        fn _vst4_s16(
71052            ptr: *mut i8,
71053            a: int16x4_t,
71054            b: int16x4_t,
71055            c: int16x4_t,
71056            d: int16x4_t,
71057            size: i32,
71058        );
71059    }
71060    _vst4_s16(a as _, b.0, b.1, b.2, b.3, 2)
71061}
71062#[doc = "Store multiple 4-element structures from four registers"]
71063#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_s16)"]
71064#[doc = "## Safety"]
71065#[doc = "  * Neon instrinsic unsafe"]
71066#[inline]
71067#[cfg(target_arch = "arm")]
71068#[target_feature(enable = "neon,v7")]
71069#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71070#[cfg_attr(test, assert_instr(vst4))]
71071pub unsafe fn vst4q_s16(a: *mut i16, b: int16x8x4_t) {
71072    unsafe extern "unadjusted" {
71073        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4.p0.v8i16")]
71074        fn _vst4q_s16(
71075            ptr: *mut i8,
71076            a: int16x8_t,
71077            b: int16x8_t,
71078            c: int16x8_t,
71079            d: int16x8_t,
71080            size: i32,
71081        );
71082    }
71083    _vst4q_s16(a as _, b.0, b.1, b.2, b.3, 2)
71084}
71085#[doc = "Store multiple 4-element structures from four registers"]
71086#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_s32)"]
71087#[doc = "## Safety"]
71088#[doc = "  * Neon instrinsic unsafe"]
71089#[inline]
71090#[cfg(target_arch = "arm")]
71091#[target_feature(enable = "neon,v7")]
71092#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71093#[cfg_attr(test, assert_instr(vst4))]
71094pub unsafe fn vst4_s32(a: *mut i32, b: int32x2x4_t) {
71095    unsafe extern "unadjusted" {
71096        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4.p0.v2i32")]
71097        fn _vst4_s32(
71098            ptr: *mut i8,
71099            a: int32x2_t,
71100            b: int32x2_t,
71101            c: int32x2_t,
71102            d: int32x2_t,
71103            size: i32,
71104        );
71105    }
71106    _vst4_s32(a as _, b.0, b.1, b.2, b.3, 4)
71107}
71108#[doc = "Store multiple 4-element structures from four registers"]
71109#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_s32)"]
71110#[doc = "## Safety"]
71111#[doc = "  * Neon instrinsic unsafe"]
71112#[inline]
71113#[cfg(target_arch = "arm")]
71114#[target_feature(enable = "neon,v7")]
71115#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71116#[cfg_attr(test, assert_instr(vst4))]
71117pub unsafe fn vst4q_s32(a: *mut i32, b: int32x4x4_t) {
71118    unsafe extern "unadjusted" {
71119        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4.p0.v4i32")]
71120        fn _vst4q_s32(
71121            ptr: *mut i8,
71122            a: int32x4_t,
71123            b: int32x4_t,
71124            c: int32x4_t,
71125            d: int32x4_t,
71126            size: i32,
71127        );
71128    }
71129    _vst4q_s32(a as _, b.0, b.1, b.2, b.3, 4)
71130}
71131#[doc = "Store multiple 4-element structures from four registers"]
71132#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_f32)"]
71133#[doc = "## Safety"]
71134#[doc = "  * Neon instrinsic unsafe"]
71135#[inline]
71136#[target_feature(enable = "neon")]
71137#[cfg(not(target_arch = "arm"))]
71138#[stable(feature = "neon_intrinsics", since = "1.59.0")]
71139#[cfg_attr(test, assert_instr(st4))]
71140pub unsafe fn vst4_f32(a: *mut f32, b: float32x2x4_t) {
71141    unsafe extern "unadjusted" {
71142        #[cfg_attr(
71143            any(target_arch = "aarch64", target_arch = "arm64ec"),
71144            link_name = "llvm.aarch64.neon.st4.v2f32.p0"
71145        )]
71146        fn _vst4_f32(a: float32x2_t, b: float32x2_t, c: float32x2_t, d: float32x2_t, ptr: *mut i8);
71147    }
71148    _vst4_f32(b.0, b.1, b.2, b.3, a as _)
71149}
71150#[doc = "Store multiple 4-element structures from four registers"]
71151#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_f32)"]
71152#[doc = "## Safety"]
71153#[doc = "  * Neon instrinsic unsafe"]
71154#[inline]
71155#[target_feature(enable = "neon")]
71156#[cfg(not(target_arch = "arm"))]
71157#[stable(feature = "neon_intrinsics", since = "1.59.0")]
71158#[cfg_attr(test, assert_instr(st4))]
71159pub unsafe fn vst4q_f32(a: *mut f32, b: float32x4x4_t) {
71160    unsafe extern "unadjusted" {
71161        #[cfg_attr(
71162            any(target_arch = "aarch64", target_arch = "arm64ec"),
71163            link_name = "llvm.aarch64.neon.st4.v4f32.p0"
71164        )]
71165        fn _vst4q_f32(a: float32x4_t, b: float32x4_t, c: float32x4_t, d: float32x4_t, ptr: *mut i8);
71166    }
71167    _vst4q_f32(b.0, b.1, b.2, b.3, a as _)
71168}
71169#[doc = "Store multiple 4-element structures from four registers"]
71170#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_s8)"]
71171#[doc = "## Safety"]
71172#[doc = "  * Neon instrinsic unsafe"]
71173#[inline]
71174#[target_feature(enable = "neon")]
71175#[cfg(not(target_arch = "arm"))]
71176#[stable(feature = "neon_intrinsics", since = "1.59.0")]
71177#[cfg_attr(test, assert_instr(st4))]
71178pub unsafe fn vst4_s8(a: *mut i8, b: int8x8x4_t) {
71179    unsafe extern "unadjusted" {
71180        #[cfg_attr(
71181            any(target_arch = "aarch64", target_arch = "arm64ec"),
71182            link_name = "llvm.aarch64.neon.st4.v8i8.p0"
71183        )]
71184        fn _vst4_s8(a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t, ptr: *mut i8);
71185    }
71186    _vst4_s8(b.0, b.1, b.2, b.3, a as _)
71187}
71188#[doc = "Store multiple 4-element structures from four registers"]
71189#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_s8)"]
71190#[doc = "## Safety"]
71191#[doc = "  * Neon instrinsic unsafe"]
71192#[inline]
71193#[target_feature(enable = "neon")]
71194#[cfg(not(target_arch = "arm"))]
71195#[stable(feature = "neon_intrinsics", since = "1.59.0")]
71196#[cfg_attr(test, assert_instr(st4))]
71197pub unsafe fn vst4q_s8(a: *mut i8, b: int8x16x4_t) {
71198    unsafe extern "unadjusted" {
71199        #[cfg_attr(
71200            any(target_arch = "aarch64", target_arch = "arm64ec"),
71201            link_name = "llvm.aarch64.neon.st4.v16i8.p0"
71202        )]
71203        fn _vst4q_s8(a: int8x16_t, b: int8x16_t, c: int8x16_t, d: int8x16_t, ptr: *mut i8);
71204    }
71205    _vst4q_s8(b.0, b.1, b.2, b.3, a as _)
71206}
71207#[doc = "Store multiple 4-element structures from four registers"]
71208#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_s16)"]
71209#[doc = "## Safety"]
71210#[doc = "  * Neon instrinsic unsafe"]
71211#[inline]
71212#[target_feature(enable = "neon")]
71213#[cfg(not(target_arch = "arm"))]
71214#[stable(feature = "neon_intrinsics", since = "1.59.0")]
71215#[cfg_attr(test, assert_instr(st4))]
71216pub unsafe fn vst4_s16(a: *mut i16, b: int16x4x4_t) {
71217    unsafe extern "unadjusted" {
71218        #[cfg_attr(
71219            any(target_arch = "aarch64", target_arch = "arm64ec"),
71220            link_name = "llvm.aarch64.neon.st4.v4i16.p0"
71221        )]
71222        fn _vst4_s16(a: int16x4_t, b: int16x4_t, c: int16x4_t, d: int16x4_t, ptr: *mut i8);
71223    }
71224    _vst4_s16(b.0, b.1, b.2, b.3, a as _)
71225}
71226#[doc = "Store multiple 4-element structures from four registers"]
71227#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_s16)"]
71228#[doc = "## Safety"]
71229#[doc = "  * Neon instrinsic unsafe"]
71230#[inline]
71231#[target_feature(enable = "neon")]
71232#[cfg(not(target_arch = "arm"))]
71233#[stable(feature = "neon_intrinsics", since = "1.59.0")]
71234#[cfg_attr(test, assert_instr(st4))]
71235pub unsafe fn vst4q_s16(a: *mut i16, b: int16x8x4_t) {
71236    unsafe extern "unadjusted" {
71237        #[cfg_attr(
71238            any(target_arch = "aarch64", target_arch = "arm64ec"),
71239            link_name = "llvm.aarch64.neon.st4.v8i16.p0"
71240        )]
71241        fn _vst4q_s16(a: int16x8_t, b: int16x8_t, c: int16x8_t, d: int16x8_t, ptr: *mut i8);
71242    }
71243    _vst4q_s16(b.0, b.1, b.2, b.3, a as _)
71244}
71245#[doc = "Store multiple 4-element structures from four registers"]
71246#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_s32)"]
71247#[doc = "## Safety"]
71248#[doc = "  * Neon instrinsic unsafe"]
71249#[inline]
71250#[target_feature(enable = "neon")]
71251#[cfg(not(target_arch = "arm"))]
71252#[stable(feature = "neon_intrinsics", since = "1.59.0")]
71253#[cfg_attr(test, assert_instr(st4))]
71254pub unsafe fn vst4_s32(a: *mut i32, b: int32x2x4_t) {
71255    unsafe extern "unadjusted" {
71256        #[cfg_attr(
71257            any(target_arch = "aarch64", target_arch = "arm64ec"),
71258            link_name = "llvm.aarch64.neon.st4.v2i32.p0"
71259        )]
71260        fn _vst4_s32(a: int32x2_t, b: int32x2_t, c: int32x2_t, d: int32x2_t, ptr: *mut i8);
71261    }
71262    _vst4_s32(b.0, b.1, b.2, b.3, a as _)
71263}
71264#[doc = "Store multiple 4-element structures from four registers"]
71265#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_s32)"]
71266#[doc = "## Safety"]
71267#[doc = "  * Neon instrinsic unsafe"]
71268#[inline]
71269#[target_feature(enable = "neon")]
71270#[cfg(not(target_arch = "arm"))]
71271#[stable(feature = "neon_intrinsics", since = "1.59.0")]
71272#[cfg_attr(test, assert_instr(st4))]
71273pub unsafe fn vst4q_s32(a: *mut i32, b: int32x4x4_t) {
71274    unsafe extern "unadjusted" {
71275        #[cfg_attr(
71276            any(target_arch = "aarch64", target_arch = "arm64ec"),
71277            link_name = "llvm.aarch64.neon.st4.v4i32.p0"
71278        )]
71279        fn _vst4q_s32(a: int32x4_t, b: int32x4_t, c: int32x4_t, d: int32x4_t, ptr: *mut i8);
71280    }
71281    _vst4q_s32(b.0, b.1, b.2, b.3, a as _)
71282}
71283#[doc = "Store multiple 4-element structures from four registers"]
71284#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_f16)"]
71285#[doc = "## Safety"]
71286#[doc = "  * Neon instrinsic unsafe"]
71287#[inline]
71288#[target_feature(enable = "neon")]
71289#[cfg(target_arch = "arm")]
71290#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
71291#[cfg_attr(test, assert_instr(vst4, LANE = 0))]
71292#[rustc_legacy_const_generics(2)]
71293#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
71294#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
71295#[cfg(not(target_arch = "arm64ec"))]
71296pub unsafe fn vst4_lane_f16<const LANE: i32>(a: *mut f16, b: float16x4x4_t) {
71297    static_assert_uimm_bits!(LANE, 2);
71298    unsafe extern "unadjusted" {
71299        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4lane.p0.v4f16")]
71300        fn _vst4_lane_f16(
71301            ptr: *mut i8,
71302            a: float16x4_t,
71303            b: float16x4_t,
71304            c: float16x4_t,
71305            d: float16x4_t,
71306            n: i32,
71307            size: i32,
71308        );
71309    }
71310    _vst4_lane_f16(a as _, b.0, b.1, b.2, b.3, LANE, 2)
71311}
71312#[doc = "Store multiple 4-element structures from four registers"]
71313#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_lane_f16)"]
71314#[doc = "## Safety"]
71315#[doc = "  * Neon instrinsic unsafe"]
71316#[inline]
71317#[target_feature(enable = "neon")]
71318#[cfg(target_arch = "arm")]
71319#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
71320#[cfg_attr(test, assert_instr(vst4, LANE = 0))]
71321#[rustc_legacy_const_generics(2)]
71322#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
71323#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
71324#[cfg(not(target_arch = "arm64ec"))]
71325pub unsafe fn vst4q_lane_f16<const LANE: i32>(a: *mut f16, b: float16x8x4_t) {
71326    static_assert_uimm_bits!(LANE, 3);
71327    unsafe extern "unadjusted" {
71328        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4lane.p0.v8f16")]
71329        fn _vst4q_lane_f16(
71330            ptr: *mut i8,
71331            a: float16x8_t,
71332            b: float16x8_t,
71333            c: float16x8_t,
71334            d: float16x8_t,
71335            n: i32,
71336            size: i32,
71337        );
71338    }
71339    _vst4q_lane_f16(a as _, b.0, b.1, b.2, b.3, LANE, 2)
71340}
71341#[doc = "Store multiple 4-element structures from four registers"]
71342#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_f16)"]
71343#[doc = "## Safety"]
71344#[doc = "  * Neon instrinsic unsafe"]
71345#[inline]
71346#[target_feature(enable = "neon")]
71347#[cfg(not(target_arch = "arm"))]
71348#[rustc_legacy_const_generics(2)]
71349#[cfg_attr(test, assert_instr(st4, LANE = 0))]
71350#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
71351#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
71352#[cfg(not(target_arch = "arm64ec"))]
71353pub unsafe fn vst4_lane_f16<const LANE: i32>(a: *mut f16, b: float16x4x4_t) {
71354    static_assert_uimm_bits!(LANE, 2);
71355    unsafe extern "unadjusted" {
71356        #[cfg_attr(
71357            any(target_arch = "aarch64", target_arch = "arm64ec"),
71358            link_name = "llvm.aarch64.neon.st4lane.v4f16.p0"
71359        )]
71360        fn _vst4_lane_f16(
71361            a: float16x4_t,
71362            b: float16x4_t,
71363            c: float16x4_t,
71364            d: float16x4_t,
71365            n: i64,
71366            ptr: *mut i8,
71367        );
71368    }
71369    _vst4_lane_f16(b.0, b.1, b.2, b.3, LANE as i64, a as _)
71370}
71371#[doc = "Store multiple 4-element structures from four registers"]
71372#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_lane_f16)"]
71373#[doc = "## Safety"]
71374#[doc = "  * Neon instrinsic unsafe"]
71375#[inline]
71376#[target_feature(enable = "neon")]
71377#[cfg(not(target_arch = "arm"))]
71378#[rustc_legacy_const_generics(2)]
71379#[cfg_attr(test, assert_instr(st4, LANE = 0))]
71380#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
71381#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
71382#[cfg(not(target_arch = "arm64ec"))]
71383pub unsafe fn vst4q_lane_f16<const LANE: i32>(a: *mut f16, b: float16x8x4_t) {
71384    static_assert_uimm_bits!(LANE, 3);
71385    unsafe extern "unadjusted" {
71386        #[cfg_attr(
71387            any(target_arch = "aarch64", target_arch = "arm64ec"),
71388            link_name = "llvm.aarch64.neon.st4lane.v8f16.p0"
71389        )]
71390        fn _vst4q_lane_f16(
71391            a: float16x8_t,
71392            b: float16x8_t,
71393            c: float16x8_t,
71394            d: float16x8_t,
71395            n: i64,
71396            ptr: *mut i8,
71397        );
71398    }
71399    _vst4q_lane_f16(b.0, b.1, b.2, b.3, LANE as i64, a as _)
71400}
71401#[doc = "Store multiple 4-element structures from four registers"]
71402#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_f32)"]
71403#[doc = "## Safety"]
71404#[doc = "  * Neon instrinsic unsafe"]
71405#[inline]
71406#[cfg(target_arch = "arm")]
71407#[target_feature(enable = "neon,v7")]
71408#[cfg_attr(test, assert_instr(vst4, LANE = 0))]
71409#[rustc_legacy_const_generics(2)]
71410#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71411pub unsafe fn vst4_lane_f32<const LANE: i32>(a: *mut f32, b: float32x2x4_t) {
71412    static_assert_uimm_bits!(LANE, 1);
71413    unsafe extern "unadjusted" {
71414        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4lane.p0.v2f32")]
71415        fn _vst4_lane_f32(
71416            ptr: *mut i8,
71417            a: float32x2_t,
71418            b: float32x2_t,
71419            c: float32x2_t,
71420            d: float32x2_t,
71421            n: i32,
71422            size: i32,
71423        );
71424    }
71425    _vst4_lane_f32(a as _, b.0, b.1, b.2, b.3, LANE, 4)
71426}
71427#[doc = "Store multiple 4-element structures from four registers"]
71428#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_lane_f32)"]
71429#[doc = "## Safety"]
71430#[doc = "  * Neon instrinsic unsafe"]
71431#[inline]
71432#[cfg(target_arch = "arm")]
71433#[target_feature(enable = "neon,v7")]
71434#[cfg_attr(test, assert_instr(vst4, LANE = 0))]
71435#[rustc_legacy_const_generics(2)]
71436#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71437pub unsafe fn vst4q_lane_f32<const LANE: i32>(a: *mut f32, b: float32x4x4_t) {
71438    static_assert_uimm_bits!(LANE, 2);
71439    unsafe extern "unadjusted" {
71440        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4lane.p0.v4f32")]
71441        fn _vst4q_lane_f32(
71442            ptr: *mut i8,
71443            a: float32x4_t,
71444            b: float32x4_t,
71445            c: float32x4_t,
71446            d: float32x4_t,
71447            n: i32,
71448            size: i32,
71449        );
71450    }
71451    _vst4q_lane_f32(a as _, b.0, b.1, b.2, b.3, LANE, 4)
71452}
71453#[doc = "Store multiple 4-element structures from four registers"]
71454#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_s8)"]
71455#[doc = "## Safety"]
71456#[doc = "  * Neon instrinsic unsafe"]
71457#[inline]
71458#[cfg(target_arch = "arm")]
71459#[target_feature(enable = "neon,v7")]
71460#[cfg_attr(test, assert_instr(vst4, LANE = 0))]
71461#[rustc_legacy_const_generics(2)]
71462#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71463pub unsafe fn vst4_lane_s8<const LANE: i32>(a: *mut i8, b: int8x8x4_t) {
71464    static_assert_uimm_bits!(LANE, 3);
71465    unsafe extern "unadjusted" {
71466        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4lane.p0.v8i8")]
71467        fn _vst4_lane_s8(
71468            ptr: *mut i8,
71469            a: int8x8_t,
71470            b: int8x8_t,
71471            c: int8x8_t,
71472            d: int8x8_t,
71473            n: i32,
71474            size: i32,
71475        );
71476    }
71477    _vst4_lane_s8(a as _, b.0, b.1, b.2, b.3, LANE, 1)
71478}
71479#[doc = "Store multiple 4-element structures from four registers"]
71480#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_s16)"]
71481#[doc = "## Safety"]
71482#[doc = "  * Neon instrinsic unsafe"]
71483#[inline]
71484#[cfg(target_arch = "arm")]
71485#[target_feature(enable = "neon,v7")]
71486#[cfg_attr(test, assert_instr(vst4, LANE = 0))]
71487#[rustc_legacy_const_generics(2)]
71488#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71489pub unsafe fn vst4_lane_s16<const LANE: i32>(a: *mut i16, b: int16x4x4_t) {
71490    static_assert_uimm_bits!(LANE, 2);
71491    unsafe extern "unadjusted" {
71492        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4lane.p0.v4i16")]
71493        fn _vst4_lane_s16(
71494            ptr: *mut i8,
71495            a: int16x4_t,
71496            b: int16x4_t,
71497            c: int16x4_t,
71498            d: int16x4_t,
71499            n: i32,
71500            size: i32,
71501        );
71502    }
71503    _vst4_lane_s16(a as _, b.0, b.1, b.2, b.3, LANE, 2)
71504}
71505#[doc = "Store multiple 4-element structures from four registers"]
71506#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_lane_s16)"]
71507#[doc = "## Safety"]
71508#[doc = "  * Neon instrinsic unsafe"]
71509#[inline]
71510#[cfg(target_arch = "arm")]
71511#[target_feature(enable = "neon,v7")]
71512#[cfg_attr(test, assert_instr(vst4, LANE = 0))]
71513#[rustc_legacy_const_generics(2)]
71514#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71515pub unsafe fn vst4q_lane_s16<const LANE: i32>(a: *mut i16, b: int16x8x4_t) {
71516    static_assert_uimm_bits!(LANE, 3);
71517    unsafe extern "unadjusted" {
71518        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4lane.p0.v8i16")]
71519        fn _vst4q_lane_s16(
71520            ptr: *mut i8,
71521            a: int16x8_t,
71522            b: int16x8_t,
71523            c: int16x8_t,
71524            d: int16x8_t,
71525            n: i32,
71526            size: i32,
71527        );
71528    }
71529    _vst4q_lane_s16(a as _, b.0, b.1, b.2, b.3, LANE, 2)
71530}
71531#[doc = "Store multiple 4-element structures from four registers"]
71532#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_s32)"]
71533#[doc = "## Safety"]
71534#[doc = "  * Neon instrinsic unsafe"]
71535#[inline]
71536#[cfg(target_arch = "arm")]
71537#[target_feature(enable = "neon,v7")]
71538#[cfg_attr(test, assert_instr(vst4, LANE = 0))]
71539#[rustc_legacy_const_generics(2)]
71540#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71541pub unsafe fn vst4_lane_s32<const LANE: i32>(a: *mut i32, b: int32x2x4_t) {
71542    static_assert_uimm_bits!(LANE, 1);
71543    unsafe extern "unadjusted" {
71544        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4lane.p0.v2i32")]
71545        fn _vst4_lane_s32(
71546            ptr: *mut i8,
71547            a: int32x2_t,
71548            b: int32x2_t,
71549            c: int32x2_t,
71550            d: int32x2_t,
71551            n: i32,
71552            size: i32,
71553        );
71554    }
71555    _vst4_lane_s32(a as _, b.0, b.1, b.2, b.3, LANE, 4)
71556}
71557#[doc = "Store multiple 4-element structures from four registers"]
71558#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_lane_s32)"]
71559#[doc = "## Safety"]
71560#[doc = "  * Neon instrinsic unsafe"]
71561#[inline]
71562#[cfg(target_arch = "arm")]
71563#[target_feature(enable = "neon,v7")]
71564#[cfg_attr(test, assert_instr(vst4, LANE = 0))]
71565#[rustc_legacy_const_generics(2)]
71566#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71567pub unsafe fn vst4q_lane_s32<const LANE: i32>(a: *mut i32, b: int32x4x4_t) {
71568    static_assert_uimm_bits!(LANE, 2);
71569    unsafe extern "unadjusted" {
71570        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4lane.p0.v4i32")]
71571        fn _vst4q_lane_s32(
71572            ptr: *mut i8,
71573            a: int32x4_t,
71574            b: int32x4_t,
71575            c: int32x4_t,
71576            d: int32x4_t,
71577            n: i32,
71578            size: i32,
71579        );
71580    }
71581    _vst4q_lane_s32(a as _, b.0, b.1, b.2, b.3, LANE, 4)
71582}
71583#[doc = "Store multiple 4-element structures from four registers"]
71584#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_f32)"]
71585#[doc = "## Safety"]
71586#[doc = "  * Neon instrinsic unsafe"]
71587#[inline]
71588#[target_feature(enable = "neon")]
71589#[cfg(not(target_arch = "arm"))]
71590#[rustc_legacy_const_generics(2)]
71591#[cfg_attr(test, assert_instr(st4, LANE = 0))]
71592#[stable(feature = "neon_intrinsics", since = "1.59.0")]
71593pub unsafe fn vst4_lane_f32<const LANE: i32>(a: *mut f32, b: float32x2x4_t) {
71594    static_assert_uimm_bits!(LANE, 1);
71595    unsafe extern "unadjusted" {
71596        #[cfg_attr(
71597            any(target_arch = "aarch64", target_arch = "arm64ec"),
71598            link_name = "llvm.aarch64.neon.st4lane.v2f32.p0"
71599        )]
71600        fn _vst4_lane_f32(
71601            a: float32x2_t,
71602            b: float32x2_t,
71603            c: float32x2_t,
71604            d: float32x2_t,
71605            n: i64,
71606            ptr: *mut i8,
71607        );
71608    }
71609    _vst4_lane_f32(b.0, b.1, b.2, b.3, LANE as i64, a as _)
71610}
71611#[doc = "Store multiple 4-element structures from four registers"]
71612#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_lane_f32)"]
71613#[doc = "## Safety"]
71614#[doc = "  * Neon instrinsic unsafe"]
71615#[inline]
71616#[target_feature(enable = "neon")]
71617#[cfg(not(target_arch = "arm"))]
71618#[rustc_legacy_const_generics(2)]
71619#[cfg_attr(test, assert_instr(st4, LANE = 0))]
71620#[stable(feature = "neon_intrinsics", since = "1.59.0")]
71621pub unsafe fn vst4q_lane_f32<const LANE: i32>(a: *mut f32, b: float32x4x4_t) {
71622    static_assert_uimm_bits!(LANE, 2);
71623    unsafe extern "unadjusted" {
71624        #[cfg_attr(
71625            any(target_arch = "aarch64", target_arch = "arm64ec"),
71626            link_name = "llvm.aarch64.neon.st4lane.v4f32.p0"
71627        )]
71628        fn _vst4q_lane_f32(
71629            a: float32x4_t,
71630            b: float32x4_t,
71631            c: float32x4_t,
71632            d: float32x4_t,
71633            n: i64,
71634            ptr: *mut i8,
71635        );
71636    }
71637    _vst4q_lane_f32(b.0, b.1, b.2, b.3, LANE as i64, a as _)
71638}
71639#[doc = "Store multiple 4-element structures from four registers"]
71640#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_s8)"]
71641#[doc = "## Safety"]
71642#[doc = "  * Neon instrinsic unsafe"]
71643#[inline]
71644#[target_feature(enable = "neon")]
71645#[cfg(not(target_arch = "arm"))]
71646#[rustc_legacy_const_generics(2)]
71647#[cfg_attr(test, assert_instr(st4, LANE = 0))]
71648#[stable(feature = "neon_intrinsics", since = "1.59.0")]
71649pub unsafe fn vst4_lane_s8<const LANE: i32>(a: *mut i8, b: int8x8x4_t) {
71650    static_assert_uimm_bits!(LANE, 3);
71651    unsafe extern "unadjusted" {
71652        #[cfg_attr(
71653            any(target_arch = "aarch64", target_arch = "arm64ec"),
71654            link_name = "llvm.aarch64.neon.st4lane.v8i8.p0"
71655        )]
71656        fn _vst4_lane_s8(a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t, n: i64, ptr: *mut i8);
71657    }
71658    _vst4_lane_s8(b.0, b.1, b.2, b.3, LANE as i64, a as _)
71659}
71660#[doc = "Store multiple 4-element structures from four registers"]
71661#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_s16)"]
71662#[doc = "## Safety"]
71663#[doc = "  * Neon instrinsic unsafe"]
71664#[inline]
71665#[target_feature(enable = "neon")]
71666#[cfg(not(target_arch = "arm"))]
71667#[rustc_legacy_const_generics(2)]
71668#[cfg_attr(test, assert_instr(st4, LANE = 0))]
71669#[stable(feature = "neon_intrinsics", since = "1.59.0")]
71670pub unsafe fn vst4_lane_s16<const LANE: i32>(a: *mut i16, b: int16x4x4_t) {
71671    static_assert_uimm_bits!(LANE, 2);
71672    unsafe extern "unadjusted" {
71673        #[cfg_attr(
71674            any(target_arch = "aarch64", target_arch = "arm64ec"),
71675            link_name = "llvm.aarch64.neon.st4lane.v4i16.p0"
71676        )]
71677        fn _vst4_lane_s16(
71678            a: int16x4_t,
71679            b: int16x4_t,
71680            c: int16x4_t,
71681            d: int16x4_t,
71682            n: i64,
71683            ptr: *mut i8,
71684        );
71685    }
71686    _vst4_lane_s16(b.0, b.1, b.2, b.3, LANE as i64, a as _)
71687}
71688#[doc = "Store multiple 4-element structures from four registers"]
71689#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_lane_s16)"]
71690#[doc = "## Safety"]
71691#[doc = "  * Neon instrinsic unsafe"]
71692#[inline]
71693#[target_feature(enable = "neon")]
71694#[cfg(not(target_arch = "arm"))]
71695#[rustc_legacy_const_generics(2)]
71696#[cfg_attr(test, assert_instr(st4, LANE = 0))]
71697#[stable(feature = "neon_intrinsics", since = "1.59.0")]
71698pub unsafe fn vst4q_lane_s16<const LANE: i32>(a: *mut i16, b: int16x8x4_t) {
71699    static_assert_uimm_bits!(LANE, 3);
71700    unsafe extern "unadjusted" {
71701        #[cfg_attr(
71702            any(target_arch = "aarch64", target_arch = "arm64ec"),
71703            link_name = "llvm.aarch64.neon.st4lane.v8i16.p0"
71704        )]
71705        fn _vst4q_lane_s16(
71706            a: int16x8_t,
71707            b: int16x8_t,
71708            c: int16x8_t,
71709            d: int16x8_t,
71710            n: i64,
71711            ptr: *mut i8,
71712        );
71713    }
71714    _vst4q_lane_s16(b.0, b.1, b.2, b.3, LANE as i64, a as _)
71715}
71716#[doc = "Store multiple 4-element structures from four registers"]
71717#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_s32)"]
71718#[doc = "## Safety"]
71719#[doc = "  * Neon instrinsic unsafe"]
71720#[inline]
71721#[target_feature(enable = "neon")]
71722#[cfg(not(target_arch = "arm"))]
71723#[rustc_legacy_const_generics(2)]
71724#[cfg_attr(test, assert_instr(st4, LANE = 0))]
71725#[stable(feature = "neon_intrinsics", since = "1.59.0")]
71726pub unsafe fn vst4_lane_s32<const LANE: i32>(a: *mut i32, b: int32x2x4_t) {
71727    static_assert_uimm_bits!(LANE, 1);
71728    unsafe extern "unadjusted" {
71729        #[cfg_attr(
71730            any(target_arch = "aarch64", target_arch = "arm64ec"),
71731            link_name = "llvm.aarch64.neon.st4lane.v2i32.p0"
71732        )]
71733        fn _vst4_lane_s32(
71734            a: int32x2_t,
71735            b: int32x2_t,
71736            c: int32x2_t,
71737            d: int32x2_t,
71738            n: i64,
71739            ptr: *mut i8,
71740        );
71741    }
71742    _vst4_lane_s32(b.0, b.1, b.2, b.3, LANE as i64, a as _)
71743}
71744#[doc = "Store multiple 4-element structures from four registers"]
71745#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_lane_s32)"]
71746#[doc = "## Safety"]
71747#[doc = "  * Neon instrinsic unsafe"]
71748#[inline]
71749#[target_feature(enable = "neon")]
71750#[cfg(not(target_arch = "arm"))]
71751#[rustc_legacy_const_generics(2)]
71752#[cfg_attr(test, assert_instr(st4, LANE = 0))]
71753#[stable(feature = "neon_intrinsics", since = "1.59.0")]
71754pub unsafe fn vst4q_lane_s32<const LANE: i32>(a: *mut i32, b: int32x4x4_t) {
71755    static_assert_uimm_bits!(LANE, 2);
71756    unsafe extern "unadjusted" {
71757        #[cfg_attr(
71758            any(target_arch = "aarch64", target_arch = "arm64ec"),
71759            link_name = "llvm.aarch64.neon.st4lane.v4i32.p0"
71760        )]
71761        fn _vst4q_lane_s32(
71762            a: int32x4_t,
71763            b: int32x4_t,
71764            c: int32x4_t,
71765            d: int32x4_t,
71766            n: i64,
71767            ptr: *mut i8,
71768        );
71769    }
71770    _vst4q_lane_s32(b.0, b.1, b.2, b.3, LANE as i64, a as _)
71771}
71772#[doc = "Store multiple 4-element structures from four registers"]
71773#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_u8)"]
71774#[doc = "## Safety"]
71775#[doc = "  * Neon instrinsic unsafe"]
71776#[inline]
71777#[target_feature(enable = "neon")]
71778#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
71779#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4, LANE = 0))]
71780#[cfg_attr(
71781    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
71782    assert_instr(st4, LANE = 0)
71783)]
71784#[rustc_legacy_const_generics(2)]
71785#[cfg_attr(
71786    not(target_arch = "arm"),
71787    stable(feature = "neon_intrinsics", since = "1.59.0")
71788)]
71789#[cfg_attr(
71790    target_arch = "arm",
71791    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
71792)]
71793pub unsafe fn vst4_lane_u8<const LANE: i32>(a: *mut u8, b: uint8x8x4_t) {
71794    static_assert_uimm_bits!(LANE, 3);
71795    vst4_lane_s8::<LANE>(transmute(a), transmute(b))
71796}
71797#[doc = "Store multiple 4-element structures from four registers"]
71798#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_u16)"]
71799#[doc = "## Safety"]
71800#[doc = "  * Neon instrinsic unsafe"]
71801#[inline]
71802#[target_feature(enable = "neon")]
71803#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
71804#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4, LANE = 0))]
71805#[cfg_attr(
71806    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
71807    assert_instr(st4, LANE = 0)
71808)]
71809#[rustc_legacy_const_generics(2)]
71810#[cfg_attr(
71811    not(target_arch = "arm"),
71812    stable(feature = "neon_intrinsics", since = "1.59.0")
71813)]
71814#[cfg_attr(
71815    target_arch = "arm",
71816    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
71817)]
71818pub unsafe fn vst4_lane_u16<const LANE: i32>(a: *mut u16, b: uint16x4x4_t) {
71819    static_assert_uimm_bits!(LANE, 2);
71820    vst4_lane_s16::<LANE>(transmute(a), transmute(b))
71821}
71822#[doc = "Store multiple 4-element structures from four registers"]
71823#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_lane_u16)"]
71824#[doc = "## Safety"]
71825#[doc = "  * Neon instrinsic unsafe"]
71826#[inline]
71827#[target_feature(enable = "neon")]
71828#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
71829#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4, LANE = 0))]
71830#[cfg_attr(
71831    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
71832    assert_instr(st4, LANE = 0)
71833)]
71834#[rustc_legacy_const_generics(2)]
71835#[cfg_attr(
71836    not(target_arch = "arm"),
71837    stable(feature = "neon_intrinsics", since = "1.59.0")
71838)]
71839#[cfg_attr(
71840    target_arch = "arm",
71841    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
71842)]
71843pub unsafe fn vst4q_lane_u16<const LANE: i32>(a: *mut u16, b: uint16x8x4_t) {
71844    static_assert_uimm_bits!(LANE, 3);
71845    vst4q_lane_s16::<LANE>(transmute(a), transmute(b))
71846}
71847#[doc = "Store multiple 4-element structures from four registers"]
71848#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_u32)"]
71849#[doc = "## Safety"]
71850#[doc = "  * Neon instrinsic unsafe"]
71851#[inline]
71852#[target_feature(enable = "neon")]
71853#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
71854#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4, LANE = 0))]
71855#[cfg_attr(
71856    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
71857    assert_instr(st4, LANE = 0)
71858)]
71859#[rustc_legacy_const_generics(2)]
71860#[cfg_attr(
71861    not(target_arch = "arm"),
71862    stable(feature = "neon_intrinsics", since = "1.59.0")
71863)]
71864#[cfg_attr(
71865    target_arch = "arm",
71866    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
71867)]
71868pub unsafe fn vst4_lane_u32<const LANE: i32>(a: *mut u32, b: uint32x2x4_t) {
71869    static_assert_uimm_bits!(LANE, 1);
71870    vst4_lane_s32::<LANE>(transmute(a), transmute(b))
71871}
71872#[doc = "Store multiple 4-element structures from four registers"]
71873#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_lane_u32)"]
71874#[doc = "## Safety"]
71875#[doc = "  * Neon instrinsic unsafe"]
71876#[inline]
71877#[target_feature(enable = "neon")]
71878#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
71879#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4, LANE = 0))]
71880#[cfg_attr(
71881    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
71882    assert_instr(st4, LANE = 0)
71883)]
71884#[rustc_legacy_const_generics(2)]
71885#[cfg_attr(
71886    not(target_arch = "arm"),
71887    stable(feature = "neon_intrinsics", since = "1.59.0")
71888)]
71889#[cfg_attr(
71890    target_arch = "arm",
71891    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
71892)]
71893pub unsafe fn vst4q_lane_u32<const LANE: i32>(a: *mut u32, b: uint32x4x4_t) {
71894    static_assert_uimm_bits!(LANE, 2);
71895    vst4q_lane_s32::<LANE>(transmute(a), transmute(b))
71896}
71897#[doc = "Store multiple 4-element structures from four registers"]
71898#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_p8)"]
71899#[doc = "## Safety"]
71900#[doc = "  * Neon instrinsic unsafe"]
71901#[inline]
71902#[target_feature(enable = "neon")]
71903#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
71904#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4, LANE = 0))]
71905#[cfg_attr(
71906    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
71907    assert_instr(st4, LANE = 0)
71908)]
71909#[rustc_legacy_const_generics(2)]
71910#[cfg_attr(
71911    not(target_arch = "arm"),
71912    stable(feature = "neon_intrinsics", since = "1.59.0")
71913)]
71914#[cfg_attr(
71915    target_arch = "arm",
71916    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
71917)]
71918pub unsafe fn vst4_lane_p8<const LANE: i32>(a: *mut p8, b: poly8x8x4_t) {
71919    static_assert_uimm_bits!(LANE, 3);
71920    vst4_lane_s8::<LANE>(transmute(a), transmute(b))
71921}
71922#[doc = "Store multiple 4-element structures from four registers"]
71923#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_p16)"]
71924#[doc = "## Safety"]
71925#[doc = "  * Neon instrinsic unsafe"]
71926#[inline]
71927#[target_feature(enable = "neon")]
71928#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
71929#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4, LANE = 0))]
71930#[cfg_attr(
71931    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
71932    assert_instr(st4, LANE = 0)
71933)]
71934#[rustc_legacy_const_generics(2)]
71935#[cfg_attr(
71936    not(target_arch = "arm"),
71937    stable(feature = "neon_intrinsics", since = "1.59.0")
71938)]
71939#[cfg_attr(
71940    target_arch = "arm",
71941    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
71942)]
71943pub unsafe fn vst4_lane_p16<const LANE: i32>(a: *mut p16, b: poly16x4x4_t) {
71944    static_assert_uimm_bits!(LANE, 2);
71945    vst4_lane_s16::<LANE>(transmute(a), transmute(b))
71946}
71947#[doc = "Store multiple 4-element structures from four registers"]
71948#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_lane_p16)"]
71949#[doc = "## Safety"]
71950#[doc = "  * Neon instrinsic unsafe"]
71951#[inline]
71952#[target_feature(enable = "neon")]
71953#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
71954#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4, LANE = 0))]
71955#[cfg_attr(
71956    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
71957    assert_instr(st4, LANE = 0)
71958)]
71959#[rustc_legacy_const_generics(2)]
71960#[cfg_attr(
71961    not(target_arch = "arm"),
71962    stable(feature = "neon_intrinsics", since = "1.59.0")
71963)]
71964#[cfg_attr(
71965    target_arch = "arm",
71966    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
71967)]
71968pub unsafe fn vst4q_lane_p16<const LANE: i32>(a: *mut p16, b: poly16x8x4_t) {
71969    static_assert_uimm_bits!(LANE, 3);
71970    vst4q_lane_s16::<LANE>(transmute(a), transmute(b))
71971}
71972#[doc = "Store multiple 4-element structures from four registers"]
71973#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_p64)"]
71974#[doc = "## Safety"]
71975#[doc = "  * Neon instrinsic unsafe"]
71976#[inline]
71977#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
71978#[target_feature(enable = "neon,aes")]
71979#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
71980#[cfg_attr(
71981    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
71982    assert_instr(nop)
71983)]
71984#[cfg_attr(
71985    not(target_arch = "arm"),
71986    stable(feature = "neon_intrinsics", since = "1.59.0")
71987)]
71988#[cfg_attr(
71989    target_arch = "arm",
71990    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
71991)]
71992pub unsafe fn vst4_p64(a: *mut p64, b: poly64x1x4_t) {
71993    vst4_s64(transmute(a), transmute(b))
71994}
71995#[doc = "Store multiple 4-element structures from four registers"]
71996#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_s64)"]
71997#[doc = "## Safety"]
71998#[doc = "  * Neon instrinsic unsafe"]
71999#[inline]
72000#[cfg(target_arch = "arm")]
72001#[target_feature(enable = "neon,v7")]
72002#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
72003#[cfg_attr(test, assert_instr(nop))]
72004pub unsafe fn vst4_s64(a: *mut i64, b: int64x1x4_t) {
72005    unsafe extern "unadjusted" {
72006        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4.p0.v1i64")]
72007        fn _vst4_s64(
72008            ptr: *mut i8,
72009            a: int64x1_t,
72010            b: int64x1_t,
72011            c: int64x1_t,
72012            d: int64x1_t,
72013            size: i32,
72014        );
72015    }
72016    _vst4_s64(a as _, b.0, b.1, b.2, b.3, 8)
72017}
72018#[doc = "Store multiple 4-element structures from four registers"]
72019#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_s64)"]
72020#[doc = "## Safety"]
72021#[doc = "  * Neon instrinsic unsafe"]
72022#[inline]
72023#[target_feature(enable = "neon")]
72024#[cfg(not(target_arch = "arm"))]
72025#[stable(feature = "neon_intrinsics", since = "1.59.0")]
72026#[cfg_attr(test, assert_instr(nop))]
72027pub unsafe fn vst4_s64(a: *mut i64, b: int64x1x4_t) {
72028    unsafe extern "unadjusted" {
72029        #[cfg_attr(
72030            any(target_arch = "aarch64", target_arch = "arm64ec"),
72031            link_name = "llvm.aarch64.neon.st4.v1i64.p0"
72032        )]
72033        fn _vst4_s64(a: int64x1_t, b: int64x1_t, c: int64x1_t, d: int64x1_t, ptr: *mut i8);
72034    }
72035    _vst4_s64(b.0, b.1, b.2, b.3, a as _)
72036}
72037#[doc = "Store multiple 4-element structures from four registers"]
72038#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_u64)"]
72039#[doc = "## Safety"]
72040#[doc = "  * Neon instrinsic unsafe"]
72041#[inline]
72042#[target_feature(enable = "neon")]
72043#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72044#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
72045#[cfg_attr(
72046    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72047    assert_instr(nop)
72048)]
72049#[cfg_attr(
72050    not(target_arch = "arm"),
72051    stable(feature = "neon_intrinsics", since = "1.59.0")
72052)]
72053#[cfg_attr(
72054    target_arch = "arm",
72055    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72056)]
72057pub unsafe fn vst4_u64(a: *mut u64, b: uint64x1x4_t) {
72058    vst4_s64(transmute(a), transmute(b))
72059}
72060#[doc = "Store multiple 4-element structures from four registers"]
72061#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_u8)"]
72062#[doc = "## Safety"]
72063#[doc = "  * Neon instrinsic unsafe"]
72064#[inline]
72065#[target_feature(enable = "neon")]
72066#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72067#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4))]
72068#[cfg_attr(
72069    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72070    assert_instr(st4)
72071)]
72072#[cfg_attr(
72073    not(target_arch = "arm"),
72074    stable(feature = "neon_intrinsics", since = "1.59.0")
72075)]
72076#[cfg_attr(
72077    target_arch = "arm",
72078    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72079)]
72080pub unsafe fn vst4_u8(a: *mut u8, b: uint8x8x4_t) {
72081    vst4_s8(transmute(a), transmute(b))
72082}
72083#[doc = "Store multiple 4-element structures from four registers"]
72084#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_u8)"]
72085#[doc = "## Safety"]
72086#[doc = "  * Neon instrinsic unsafe"]
72087#[inline]
72088#[target_feature(enable = "neon")]
72089#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72090#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4))]
72091#[cfg_attr(
72092    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72093    assert_instr(st4)
72094)]
72095#[cfg_attr(
72096    not(target_arch = "arm"),
72097    stable(feature = "neon_intrinsics", since = "1.59.0")
72098)]
72099#[cfg_attr(
72100    target_arch = "arm",
72101    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72102)]
72103pub unsafe fn vst4q_u8(a: *mut u8, b: uint8x16x4_t) {
72104    vst4q_s8(transmute(a), transmute(b))
72105}
72106#[doc = "Store multiple 4-element structures from four registers"]
72107#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_u16)"]
72108#[doc = "## Safety"]
72109#[doc = "  * Neon instrinsic unsafe"]
72110#[inline]
72111#[target_feature(enable = "neon")]
72112#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72113#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4))]
72114#[cfg_attr(
72115    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72116    assert_instr(st4)
72117)]
72118#[cfg_attr(
72119    not(target_arch = "arm"),
72120    stable(feature = "neon_intrinsics", since = "1.59.0")
72121)]
72122#[cfg_attr(
72123    target_arch = "arm",
72124    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72125)]
72126pub unsafe fn vst4_u16(a: *mut u16, b: uint16x4x4_t) {
72127    vst4_s16(transmute(a), transmute(b))
72128}
72129#[doc = "Store multiple 4-element structures from four registers"]
72130#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_u16)"]
72131#[doc = "## Safety"]
72132#[doc = "  * Neon instrinsic unsafe"]
72133#[inline]
72134#[target_feature(enable = "neon")]
72135#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72136#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4))]
72137#[cfg_attr(
72138    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72139    assert_instr(st4)
72140)]
72141#[cfg_attr(
72142    not(target_arch = "arm"),
72143    stable(feature = "neon_intrinsics", since = "1.59.0")
72144)]
72145#[cfg_attr(
72146    target_arch = "arm",
72147    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72148)]
72149pub unsafe fn vst4q_u16(a: *mut u16, b: uint16x8x4_t) {
72150    vst4q_s16(transmute(a), transmute(b))
72151}
72152#[doc = "Store multiple 4-element structures from four registers"]
72153#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_u32)"]
72154#[doc = "## Safety"]
72155#[doc = "  * Neon instrinsic unsafe"]
72156#[inline]
72157#[target_feature(enable = "neon")]
72158#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72159#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4))]
72160#[cfg_attr(
72161    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72162    assert_instr(st4)
72163)]
72164#[cfg_attr(
72165    not(target_arch = "arm"),
72166    stable(feature = "neon_intrinsics", since = "1.59.0")
72167)]
72168#[cfg_attr(
72169    target_arch = "arm",
72170    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72171)]
72172pub unsafe fn vst4_u32(a: *mut u32, b: uint32x2x4_t) {
72173    vst4_s32(transmute(a), transmute(b))
72174}
72175#[doc = "Store multiple 4-element structures from four registers"]
72176#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_u32)"]
72177#[doc = "## Safety"]
72178#[doc = "  * Neon instrinsic unsafe"]
72179#[inline]
72180#[target_feature(enable = "neon")]
72181#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72182#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4))]
72183#[cfg_attr(
72184    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72185    assert_instr(st4)
72186)]
72187#[cfg_attr(
72188    not(target_arch = "arm"),
72189    stable(feature = "neon_intrinsics", since = "1.59.0")
72190)]
72191#[cfg_attr(
72192    target_arch = "arm",
72193    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72194)]
72195pub unsafe fn vst4q_u32(a: *mut u32, b: uint32x4x4_t) {
72196    vst4q_s32(transmute(a), transmute(b))
72197}
72198#[doc = "Store multiple 4-element structures from four registers"]
72199#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_p8)"]
72200#[doc = "## Safety"]
72201#[doc = "  * Neon instrinsic unsafe"]
72202#[inline]
72203#[target_feature(enable = "neon")]
72204#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72205#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4))]
72206#[cfg_attr(
72207    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72208    assert_instr(st4)
72209)]
72210#[cfg_attr(
72211    not(target_arch = "arm"),
72212    stable(feature = "neon_intrinsics", since = "1.59.0")
72213)]
72214#[cfg_attr(
72215    target_arch = "arm",
72216    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72217)]
72218pub unsafe fn vst4_p8(a: *mut p8, b: poly8x8x4_t) {
72219    vst4_s8(transmute(a), transmute(b))
72220}
72221#[doc = "Store multiple 4-element structures from four registers"]
72222#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_p8)"]
72223#[doc = "## Safety"]
72224#[doc = "  * Neon instrinsic unsafe"]
72225#[inline]
72226#[target_feature(enable = "neon")]
72227#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72228#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4))]
72229#[cfg_attr(
72230    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72231    assert_instr(st4)
72232)]
72233#[cfg_attr(
72234    not(target_arch = "arm"),
72235    stable(feature = "neon_intrinsics", since = "1.59.0")
72236)]
72237#[cfg_attr(
72238    target_arch = "arm",
72239    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72240)]
72241pub unsafe fn vst4q_p8(a: *mut p8, b: poly8x16x4_t) {
72242    vst4q_s8(transmute(a), transmute(b))
72243}
72244#[doc = "Store multiple 4-element structures from four registers"]
72245#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_p16)"]
72246#[doc = "## Safety"]
72247#[doc = "  * Neon instrinsic unsafe"]
72248#[inline]
72249#[target_feature(enable = "neon")]
72250#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72251#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4))]
72252#[cfg_attr(
72253    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72254    assert_instr(st4)
72255)]
72256#[cfg_attr(
72257    not(target_arch = "arm"),
72258    stable(feature = "neon_intrinsics", since = "1.59.0")
72259)]
72260#[cfg_attr(
72261    target_arch = "arm",
72262    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72263)]
72264pub unsafe fn vst4_p16(a: *mut p16, b: poly16x4x4_t) {
72265    vst4_s16(transmute(a), transmute(b))
72266}
72267#[doc = "Store multiple 4-element structures from four registers"]
72268#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_p16)"]
72269#[doc = "## Safety"]
72270#[doc = "  * Neon instrinsic unsafe"]
72271#[inline]
72272#[target_feature(enable = "neon")]
72273#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72274#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4))]
72275#[cfg_attr(
72276    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72277    assert_instr(st4)
72278)]
72279#[cfg_attr(
72280    not(target_arch = "arm"),
72281    stable(feature = "neon_intrinsics", since = "1.59.0")
72282)]
72283#[cfg_attr(
72284    target_arch = "arm",
72285    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72286)]
72287pub unsafe fn vst4q_p16(a: *mut p16, b: poly16x8x4_t) {
72288    vst4q_s16(transmute(a), transmute(b))
72289}
72290#[doc = "Store SIMD&FP register (immediate offset)"]
72291#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vstrq_p128)"]
72292#[doc = "## Safety"]
72293#[doc = "  * Neon instrinsic unsafe"]
72294#[inline]
72295#[target_feature(enable = "neon")]
72296#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72297#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
72298#[cfg_attr(
72299    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72300    assert_instr(nop)
72301)]
72302#[cfg_attr(
72303    not(target_arch = "arm"),
72304    stable(feature = "neon_intrinsics", since = "1.59.0")
72305)]
72306#[cfg_attr(
72307    target_arch = "arm",
72308    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72309)]
72310pub unsafe fn vstrq_p128(a: *mut p128, b: p128) {
72311    *a = b
72312}
72313#[doc = "Subtract"]
72314#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsub_f16)"]
72315#[inline]
72316#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
72317#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.f16"))]
72318#[cfg_attr(
72319    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72320    assert_instr(fsub)
72321)]
72322#[target_feature(enable = "neon,fp16")]
72323#[cfg_attr(
72324    not(target_arch = "arm"),
72325    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
72326)]
72327#[cfg_attr(
72328    target_arch = "arm",
72329    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72330)]
72331#[cfg(not(target_arch = "arm64ec"))]
72332pub fn vsub_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t {
72333    unsafe { simd_sub(a, b) }
72334}
72335#[doc = "Subtract"]
72336#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubq_f16)"]
72337#[inline]
72338#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
72339#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.f16"))]
72340#[cfg_attr(
72341    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72342    assert_instr(fsub)
72343)]
72344#[target_feature(enable = "neon,fp16")]
72345#[cfg_attr(
72346    not(target_arch = "arm"),
72347    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
72348)]
72349#[cfg_attr(
72350    target_arch = "arm",
72351    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72352)]
72353#[cfg(not(target_arch = "arm64ec"))]
72354pub fn vsubq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t {
72355    unsafe { simd_sub(a, b) }
72356}
72357#[doc = "Subtract"]
72358#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsub_f32)"]
72359#[inline]
72360#[target_feature(enable = "neon")]
72361#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72362#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.f32"))]
72363#[cfg_attr(
72364    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72365    assert_instr(fsub)
72366)]
72367#[cfg_attr(
72368    not(target_arch = "arm"),
72369    stable(feature = "neon_intrinsics", since = "1.59.0")
72370)]
72371#[cfg_attr(
72372    target_arch = "arm",
72373    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72374)]
72375pub fn vsub_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
72376    unsafe { simd_sub(a, b) }
72377}
72378#[doc = "Subtract"]
72379#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubq_f32)"]
72380#[inline]
72381#[target_feature(enable = "neon")]
72382#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72383#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.f32"))]
72384#[cfg_attr(
72385    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72386    assert_instr(fsub)
72387)]
72388#[cfg_attr(
72389    not(target_arch = "arm"),
72390    stable(feature = "neon_intrinsics", since = "1.59.0")
72391)]
72392#[cfg_attr(
72393    target_arch = "arm",
72394    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72395)]
72396pub fn vsubq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t {
72397    unsafe { simd_sub(a, b) }
72398}
72399#[doc = "Subtract"]
72400#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsub_s16)"]
72401#[inline]
72402#[target_feature(enable = "neon")]
72403#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72404#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i16"))]
72405#[cfg_attr(
72406    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72407    assert_instr(sub)
72408)]
72409#[cfg_attr(
72410    not(target_arch = "arm"),
72411    stable(feature = "neon_intrinsics", since = "1.59.0")
72412)]
72413#[cfg_attr(
72414    target_arch = "arm",
72415    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72416)]
72417pub fn vsub_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
72418    unsafe { simd_sub(a, b) }
72419}
72420#[doc = "Subtract"]
72421#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubq_s16)"]
72422#[inline]
72423#[target_feature(enable = "neon")]
72424#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72425#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i16"))]
72426#[cfg_attr(
72427    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72428    assert_instr(sub)
72429)]
72430#[cfg_attr(
72431    not(target_arch = "arm"),
72432    stable(feature = "neon_intrinsics", since = "1.59.0")
72433)]
72434#[cfg_attr(
72435    target_arch = "arm",
72436    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72437)]
72438pub fn vsubq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
72439    unsafe { simd_sub(a, b) }
72440}
72441#[doc = "Subtract"]
72442#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsub_u16)"]
72443#[inline]
72444#[target_feature(enable = "neon")]
72445#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72446#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i16"))]
72447#[cfg_attr(
72448    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72449    assert_instr(sub)
72450)]
72451#[cfg_attr(
72452    not(target_arch = "arm"),
72453    stable(feature = "neon_intrinsics", since = "1.59.0")
72454)]
72455#[cfg_attr(
72456    target_arch = "arm",
72457    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72458)]
72459pub fn vsub_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
72460    unsafe { simd_sub(a, b) }
72461}
72462#[doc = "Subtract"]
72463#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubq_u16)"]
72464#[inline]
72465#[target_feature(enable = "neon")]
72466#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72467#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i16"))]
72468#[cfg_attr(
72469    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72470    assert_instr(sub)
72471)]
72472#[cfg_attr(
72473    not(target_arch = "arm"),
72474    stable(feature = "neon_intrinsics", since = "1.59.0")
72475)]
72476#[cfg_attr(
72477    target_arch = "arm",
72478    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72479)]
72480pub fn vsubq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
72481    unsafe { simd_sub(a, b) }
72482}
72483#[doc = "Subtract"]
72484#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsub_s32)"]
72485#[inline]
72486#[target_feature(enable = "neon")]
72487#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72488#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i32"))]
72489#[cfg_attr(
72490    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72491    assert_instr(sub)
72492)]
72493#[cfg_attr(
72494    not(target_arch = "arm"),
72495    stable(feature = "neon_intrinsics", since = "1.59.0")
72496)]
72497#[cfg_attr(
72498    target_arch = "arm",
72499    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72500)]
72501pub fn vsub_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
72502    unsafe { simd_sub(a, b) }
72503}
72504#[doc = "Subtract"]
72505#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubq_s32)"]
72506#[inline]
72507#[target_feature(enable = "neon")]
72508#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72509#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i32"))]
72510#[cfg_attr(
72511    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72512    assert_instr(sub)
72513)]
72514#[cfg_attr(
72515    not(target_arch = "arm"),
72516    stable(feature = "neon_intrinsics", since = "1.59.0")
72517)]
72518#[cfg_attr(
72519    target_arch = "arm",
72520    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72521)]
72522pub fn vsubq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
72523    unsafe { simd_sub(a, b) }
72524}
72525#[doc = "Subtract"]
72526#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsub_u32)"]
72527#[inline]
72528#[target_feature(enable = "neon")]
72529#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72530#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i32"))]
72531#[cfg_attr(
72532    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72533    assert_instr(sub)
72534)]
72535#[cfg_attr(
72536    not(target_arch = "arm"),
72537    stable(feature = "neon_intrinsics", since = "1.59.0")
72538)]
72539#[cfg_attr(
72540    target_arch = "arm",
72541    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72542)]
72543pub fn vsub_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
72544    unsafe { simd_sub(a, b) }
72545}
72546#[doc = "Subtract"]
72547#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubq_u32)"]
72548#[inline]
72549#[target_feature(enable = "neon")]
72550#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72551#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i32"))]
72552#[cfg_attr(
72553    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72554    assert_instr(sub)
72555)]
72556#[cfg_attr(
72557    not(target_arch = "arm"),
72558    stable(feature = "neon_intrinsics", since = "1.59.0")
72559)]
72560#[cfg_attr(
72561    target_arch = "arm",
72562    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72563)]
72564pub fn vsubq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
72565    unsafe { simd_sub(a, b) }
72566}
72567#[doc = "Subtract"]
72568#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsub_s64)"]
72569#[inline]
72570#[target_feature(enable = "neon")]
72571#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72572#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i64"))]
72573#[cfg_attr(
72574    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72575    assert_instr(sub)
72576)]
72577#[cfg_attr(
72578    not(target_arch = "arm"),
72579    stable(feature = "neon_intrinsics", since = "1.59.0")
72580)]
72581#[cfg_attr(
72582    target_arch = "arm",
72583    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72584)]
72585pub fn vsub_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t {
72586    unsafe { simd_sub(a, b) }
72587}
72588#[doc = "Subtract"]
72589#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubq_s64)"]
72590#[inline]
72591#[target_feature(enable = "neon")]
72592#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72593#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i64"))]
72594#[cfg_attr(
72595    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72596    assert_instr(sub)
72597)]
72598#[cfg_attr(
72599    not(target_arch = "arm"),
72600    stable(feature = "neon_intrinsics", since = "1.59.0")
72601)]
72602#[cfg_attr(
72603    target_arch = "arm",
72604    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72605)]
72606pub fn vsubq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t {
72607    unsafe { simd_sub(a, b) }
72608}
72609#[doc = "Subtract"]
72610#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsub_u64)"]
72611#[inline]
72612#[target_feature(enable = "neon")]
72613#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72614#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i64"))]
72615#[cfg_attr(
72616    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72617    assert_instr(sub)
72618)]
72619#[cfg_attr(
72620    not(target_arch = "arm"),
72621    stable(feature = "neon_intrinsics", since = "1.59.0")
72622)]
72623#[cfg_attr(
72624    target_arch = "arm",
72625    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72626)]
72627pub fn vsub_u64(a: uint64x1_t, b: uint64x1_t) -> uint64x1_t {
72628    unsafe { simd_sub(a, b) }
72629}
72630#[doc = "Subtract"]
72631#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubq_u64)"]
72632#[inline]
72633#[target_feature(enable = "neon")]
72634#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72635#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i64"))]
72636#[cfg_attr(
72637    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72638    assert_instr(sub)
72639)]
72640#[cfg_attr(
72641    not(target_arch = "arm"),
72642    stable(feature = "neon_intrinsics", since = "1.59.0")
72643)]
72644#[cfg_attr(
72645    target_arch = "arm",
72646    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72647)]
72648pub fn vsubq_u64(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
72649    unsafe { simd_sub(a, b) }
72650}
72651#[doc = "Subtract"]
72652#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsub_s8)"]
72653#[inline]
72654#[target_feature(enable = "neon")]
72655#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72656#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i8"))]
72657#[cfg_attr(
72658    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72659    assert_instr(sub)
72660)]
72661#[cfg_attr(
72662    not(target_arch = "arm"),
72663    stable(feature = "neon_intrinsics", since = "1.59.0")
72664)]
72665#[cfg_attr(
72666    target_arch = "arm",
72667    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72668)]
72669pub fn vsub_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
72670    unsafe { simd_sub(a, b) }
72671}
72672#[doc = "Subtract"]
72673#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubq_s8)"]
72674#[inline]
72675#[target_feature(enable = "neon")]
72676#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72677#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i8"))]
72678#[cfg_attr(
72679    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72680    assert_instr(sub)
72681)]
72682#[cfg_attr(
72683    not(target_arch = "arm"),
72684    stable(feature = "neon_intrinsics", since = "1.59.0")
72685)]
72686#[cfg_attr(
72687    target_arch = "arm",
72688    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72689)]
72690pub fn vsubq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
72691    unsafe { simd_sub(a, b) }
72692}
72693#[doc = "Subtract"]
72694#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsub_u8)"]
72695#[inline]
72696#[target_feature(enable = "neon")]
72697#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72698#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i8"))]
72699#[cfg_attr(
72700    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72701    assert_instr(sub)
72702)]
72703#[cfg_attr(
72704    not(target_arch = "arm"),
72705    stable(feature = "neon_intrinsics", since = "1.59.0")
72706)]
72707#[cfg_attr(
72708    target_arch = "arm",
72709    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72710)]
72711pub fn vsub_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
72712    unsafe { simd_sub(a, b) }
72713}
72714#[doc = "Subtract"]
72715#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubq_u8)"]
72716#[inline]
72717#[target_feature(enable = "neon")]
72718#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72719#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i8"))]
72720#[cfg_attr(
72721    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72722    assert_instr(sub)
72723)]
72724#[cfg_attr(
72725    not(target_arch = "arm"),
72726    stable(feature = "neon_intrinsics", since = "1.59.0")
72727)]
72728#[cfg_attr(
72729    target_arch = "arm",
72730    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72731)]
72732pub fn vsubq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
72733    unsafe { simd_sub(a, b) }
72734}
72735#[doc = "Subtract returning high narrow"]
72736#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubhn_high_s16)"]
72737#[inline]
72738#[target_feature(enable = "neon")]
72739#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72740#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubhn))]
72741#[cfg_attr(
72742    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72743    assert_instr(subhn2)
72744)]
72745#[cfg_attr(
72746    not(target_arch = "arm"),
72747    stable(feature = "neon_intrinsics", since = "1.59.0")
72748)]
72749#[cfg_attr(
72750    target_arch = "arm",
72751    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72752)]
72753pub fn vsubhn_high_s16(a: int8x8_t, b: int16x8_t, c: int16x8_t) -> int8x16_t {
72754    let d: int8x8_t = vsubhn_s16(b, c);
72755    unsafe { simd_shuffle!(a, d, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]) }
72756}
72757#[doc = "Subtract returning high narrow"]
72758#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubhn_high_s32)"]
72759#[inline]
72760#[target_feature(enable = "neon")]
72761#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72762#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubhn))]
72763#[cfg_attr(
72764    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72765    assert_instr(subhn2)
72766)]
72767#[cfg_attr(
72768    not(target_arch = "arm"),
72769    stable(feature = "neon_intrinsics", since = "1.59.0")
72770)]
72771#[cfg_attr(
72772    target_arch = "arm",
72773    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72774)]
72775pub fn vsubhn_high_s32(a: int16x4_t, b: int32x4_t, c: int32x4_t) -> int16x8_t {
72776    let d: int16x4_t = vsubhn_s32(b, c);
72777    unsafe { simd_shuffle!(a, d, [0, 1, 2, 3, 4, 5, 6, 7]) }
72778}
72779#[doc = "Subtract returning high narrow"]
72780#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubhn_high_s64)"]
72781#[inline]
72782#[target_feature(enable = "neon")]
72783#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72784#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubhn))]
72785#[cfg_attr(
72786    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72787    assert_instr(subhn2)
72788)]
72789#[cfg_attr(
72790    not(target_arch = "arm"),
72791    stable(feature = "neon_intrinsics", since = "1.59.0")
72792)]
72793#[cfg_attr(
72794    target_arch = "arm",
72795    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72796)]
72797pub fn vsubhn_high_s64(a: int32x2_t, b: int64x2_t, c: int64x2_t) -> int32x4_t {
72798    let d: int32x2_t = vsubhn_s64(b, c);
72799    unsafe { simd_shuffle!(a, d, [0, 1, 2, 3]) }
72800}
72801#[doc = "Subtract returning high narrow"]
72802#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubhn_high_u16)"]
72803#[inline]
72804#[target_feature(enable = "neon")]
72805#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72806#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubhn))]
72807#[cfg_attr(
72808    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72809    assert_instr(subhn2)
72810)]
72811#[cfg_attr(
72812    not(target_arch = "arm"),
72813    stable(feature = "neon_intrinsics", since = "1.59.0")
72814)]
72815#[cfg_attr(
72816    target_arch = "arm",
72817    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72818)]
72819pub fn vsubhn_high_u16(a: uint8x8_t, b: uint16x8_t, c: uint16x8_t) -> uint8x16_t {
72820    let d: uint8x8_t = vsubhn_u16(b, c);
72821    unsafe { simd_shuffle!(a, d, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]) }
72822}
72823#[doc = "Subtract returning high narrow"]
72824#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubhn_high_u32)"]
72825#[inline]
72826#[target_feature(enable = "neon")]
72827#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72828#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubhn))]
72829#[cfg_attr(
72830    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72831    assert_instr(subhn2)
72832)]
72833#[cfg_attr(
72834    not(target_arch = "arm"),
72835    stable(feature = "neon_intrinsics", since = "1.59.0")
72836)]
72837#[cfg_attr(
72838    target_arch = "arm",
72839    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72840)]
72841pub fn vsubhn_high_u32(a: uint16x4_t, b: uint32x4_t, c: uint32x4_t) -> uint16x8_t {
72842    let d: uint16x4_t = vsubhn_u32(b, c);
72843    unsafe { simd_shuffle!(a, d, [0, 1, 2, 3, 4, 5, 6, 7]) }
72844}
72845#[doc = "Subtract returning high narrow"]
72846#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubhn_high_u64)"]
72847#[inline]
72848#[target_feature(enable = "neon")]
72849#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72850#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubhn))]
72851#[cfg_attr(
72852    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72853    assert_instr(subhn2)
72854)]
72855#[cfg_attr(
72856    not(target_arch = "arm"),
72857    stable(feature = "neon_intrinsics", since = "1.59.0")
72858)]
72859#[cfg_attr(
72860    target_arch = "arm",
72861    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72862)]
72863pub fn vsubhn_high_u64(a: uint32x2_t, b: uint64x2_t, c: uint64x2_t) -> uint32x4_t {
72864    let d: uint32x2_t = vsubhn_u64(b, c);
72865    unsafe { simd_shuffle!(a, d, [0, 1, 2, 3]) }
72866}
72867#[doc = "Subtract returning high narrow"]
72868#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubhn_s16)"]
72869#[inline]
72870#[target_feature(enable = "neon")]
72871#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72872#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubhn))]
72873#[cfg_attr(
72874    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72875    assert_instr(subhn)
72876)]
72877#[cfg_attr(
72878    not(target_arch = "arm"),
72879    stable(feature = "neon_intrinsics", since = "1.59.0")
72880)]
72881#[cfg_attr(
72882    target_arch = "arm",
72883    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72884)]
72885pub fn vsubhn_s16(a: int16x8_t, b: int16x8_t) -> int8x8_t {
72886    let c: i16x8 = i16x8::new(8, 8, 8, 8, 8, 8, 8, 8);
72887    unsafe { simd_cast(simd_shr(simd_sub(a, b), transmute(c))) }
72888}
72889#[doc = "Subtract returning high narrow"]
72890#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubhn_s32)"]
72891#[inline]
72892#[target_feature(enable = "neon")]
72893#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72894#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubhn))]
72895#[cfg_attr(
72896    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72897    assert_instr(subhn)
72898)]
72899#[cfg_attr(
72900    not(target_arch = "arm"),
72901    stable(feature = "neon_intrinsics", since = "1.59.0")
72902)]
72903#[cfg_attr(
72904    target_arch = "arm",
72905    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72906)]
72907pub fn vsubhn_s32(a: int32x4_t, b: int32x4_t) -> int16x4_t {
72908    let c: i32x4 = i32x4::new(16, 16, 16, 16);
72909    unsafe { simd_cast(simd_shr(simd_sub(a, b), transmute(c))) }
72910}
72911#[doc = "Subtract returning high narrow"]
72912#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubhn_s64)"]
72913#[inline]
72914#[target_feature(enable = "neon")]
72915#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72916#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubhn))]
72917#[cfg_attr(
72918    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72919    assert_instr(subhn)
72920)]
72921#[cfg_attr(
72922    not(target_arch = "arm"),
72923    stable(feature = "neon_intrinsics", since = "1.59.0")
72924)]
72925#[cfg_attr(
72926    target_arch = "arm",
72927    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72928)]
72929pub fn vsubhn_s64(a: int64x2_t, b: int64x2_t) -> int32x2_t {
72930    let c: i64x2 = i64x2::new(32, 32);
72931    unsafe { simd_cast(simd_shr(simd_sub(a, b), transmute(c))) }
72932}
72933#[doc = "Subtract returning high narrow"]
72934#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubhn_u16)"]
72935#[inline]
72936#[target_feature(enable = "neon")]
72937#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72938#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubhn))]
72939#[cfg_attr(
72940    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72941    assert_instr(subhn)
72942)]
72943#[cfg_attr(
72944    not(target_arch = "arm"),
72945    stable(feature = "neon_intrinsics", since = "1.59.0")
72946)]
72947#[cfg_attr(
72948    target_arch = "arm",
72949    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72950)]
72951pub fn vsubhn_u16(a: uint16x8_t, b: uint16x8_t) -> uint8x8_t {
72952    let c: u16x8 = u16x8::new(8, 8, 8, 8, 8, 8, 8, 8);
72953    unsafe { simd_cast(simd_shr(simd_sub(a, b), transmute(c))) }
72954}
72955#[doc = "Subtract returning high narrow"]
72956#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubhn_u32)"]
72957#[inline]
72958#[target_feature(enable = "neon")]
72959#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72960#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubhn))]
72961#[cfg_attr(
72962    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72963    assert_instr(subhn)
72964)]
72965#[cfg_attr(
72966    not(target_arch = "arm"),
72967    stable(feature = "neon_intrinsics", since = "1.59.0")
72968)]
72969#[cfg_attr(
72970    target_arch = "arm",
72971    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72972)]
72973pub fn vsubhn_u32(a: uint32x4_t, b: uint32x4_t) -> uint16x4_t {
72974    let c: u32x4 = u32x4::new(16, 16, 16, 16);
72975    unsafe { simd_cast(simd_shr(simd_sub(a, b), transmute(c))) }
72976}
72977#[doc = "Subtract returning high narrow"]
72978#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubhn_u64)"]
72979#[inline]
72980#[target_feature(enable = "neon")]
72981#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72982#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubhn))]
72983#[cfg_attr(
72984    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72985    assert_instr(subhn)
72986)]
72987#[cfg_attr(
72988    not(target_arch = "arm"),
72989    stable(feature = "neon_intrinsics", since = "1.59.0")
72990)]
72991#[cfg_attr(
72992    target_arch = "arm",
72993    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72994)]
72995pub fn vsubhn_u64(a: uint64x2_t, b: uint64x2_t) -> uint32x2_t {
72996    let c: u64x2 = u64x2::new(32, 32);
72997    unsafe { simd_cast(simd_shr(simd_sub(a, b), transmute(c))) }
72998}
72999#[doc = "Signed Subtract Long"]
73000#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubl_s8)"]
73001#[inline]
73002#[target_feature(enable = "neon")]
73003#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73004#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubl))]
73005#[cfg_attr(
73006    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73007    assert_instr(ssubl)
73008)]
73009#[cfg_attr(
73010    not(target_arch = "arm"),
73011    stable(feature = "neon_intrinsics", since = "1.59.0")
73012)]
73013#[cfg_attr(
73014    target_arch = "arm",
73015    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73016)]
73017pub fn vsubl_s8(a: int8x8_t, b: int8x8_t) -> int16x8_t {
73018    unsafe {
73019        let c: int16x8_t = simd_cast(a);
73020        let d: int16x8_t = simd_cast(b);
73021        simd_sub(c, d)
73022    }
73023}
73024#[doc = "Signed Subtract Long"]
73025#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubl_s16)"]
73026#[inline]
73027#[target_feature(enable = "neon")]
73028#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73029#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubl))]
73030#[cfg_attr(
73031    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73032    assert_instr(ssubl)
73033)]
73034#[cfg_attr(
73035    not(target_arch = "arm"),
73036    stable(feature = "neon_intrinsics", since = "1.59.0")
73037)]
73038#[cfg_attr(
73039    target_arch = "arm",
73040    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73041)]
73042pub fn vsubl_s16(a: int16x4_t, b: int16x4_t) -> int32x4_t {
73043    unsafe {
73044        let c: int32x4_t = simd_cast(a);
73045        let d: int32x4_t = simd_cast(b);
73046        simd_sub(c, d)
73047    }
73048}
73049#[doc = "Signed Subtract Long"]
73050#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubl_s32)"]
73051#[inline]
73052#[target_feature(enable = "neon")]
73053#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73054#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubl))]
73055#[cfg_attr(
73056    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73057    assert_instr(ssubl)
73058)]
73059#[cfg_attr(
73060    not(target_arch = "arm"),
73061    stable(feature = "neon_intrinsics", since = "1.59.0")
73062)]
73063#[cfg_attr(
73064    target_arch = "arm",
73065    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73066)]
73067pub fn vsubl_s32(a: int32x2_t, b: int32x2_t) -> int64x2_t {
73068    unsafe {
73069        let c: int64x2_t = simd_cast(a);
73070        let d: int64x2_t = simd_cast(b);
73071        simd_sub(c, d)
73072    }
73073}
73074#[doc = "Unsigned Subtract Long"]
73075#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubl_u8)"]
73076#[inline]
73077#[target_feature(enable = "neon")]
73078#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73079#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubl))]
73080#[cfg_attr(
73081    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73082    assert_instr(usubl)
73083)]
73084#[cfg_attr(
73085    not(target_arch = "arm"),
73086    stable(feature = "neon_intrinsics", since = "1.59.0")
73087)]
73088#[cfg_attr(
73089    target_arch = "arm",
73090    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73091)]
73092pub fn vsubl_u8(a: uint8x8_t, b: uint8x8_t) -> uint16x8_t {
73093    unsafe {
73094        let c: uint16x8_t = simd_cast(a);
73095        let d: uint16x8_t = simd_cast(b);
73096        simd_sub(c, d)
73097    }
73098}
73099#[doc = "Unsigned Subtract Long"]
73100#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubl_u16)"]
73101#[inline]
73102#[target_feature(enable = "neon")]
73103#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73104#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubl))]
73105#[cfg_attr(
73106    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73107    assert_instr(usubl)
73108)]
73109#[cfg_attr(
73110    not(target_arch = "arm"),
73111    stable(feature = "neon_intrinsics", since = "1.59.0")
73112)]
73113#[cfg_attr(
73114    target_arch = "arm",
73115    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73116)]
73117pub fn vsubl_u16(a: uint16x4_t, b: uint16x4_t) -> uint32x4_t {
73118    unsafe {
73119        let c: uint32x4_t = simd_cast(a);
73120        let d: uint32x4_t = simd_cast(b);
73121        simd_sub(c, d)
73122    }
73123}
73124#[doc = "Unsigned Subtract Long"]
73125#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubl_u32)"]
73126#[inline]
73127#[target_feature(enable = "neon")]
73128#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73129#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubl))]
73130#[cfg_attr(
73131    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73132    assert_instr(usubl)
73133)]
73134#[cfg_attr(
73135    not(target_arch = "arm"),
73136    stable(feature = "neon_intrinsics", since = "1.59.0")
73137)]
73138#[cfg_attr(
73139    target_arch = "arm",
73140    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73141)]
73142pub fn vsubl_u32(a: uint32x2_t, b: uint32x2_t) -> uint64x2_t {
73143    unsafe {
73144        let c: uint64x2_t = simd_cast(a);
73145        let d: uint64x2_t = simd_cast(b);
73146        simd_sub(c, d)
73147    }
73148}
73149#[doc = "Signed Subtract Wide"]
73150#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubw_s8)"]
73151#[inline]
73152#[target_feature(enable = "neon")]
73153#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73154#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubw))]
73155#[cfg_attr(
73156    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73157    assert_instr(ssubw)
73158)]
73159#[cfg_attr(
73160    not(target_arch = "arm"),
73161    stable(feature = "neon_intrinsics", since = "1.59.0")
73162)]
73163#[cfg_attr(
73164    target_arch = "arm",
73165    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73166)]
73167pub fn vsubw_s8(a: int16x8_t, b: int8x8_t) -> int16x8_t {
73168    unsafe { simd_sub(a, simd_cast(b)) }
73169}
73170#[doc = "Signed Subtract Wide"]
73171#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubw_s16)"]
73172#[inline]
73173#[target_feature(enable = "neon")]
73174#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73175#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubw))]
73176#[cfg_attr(
73177    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73178    assert_instr(ssubw)
73179)]
73180#[cfg_attr(
73181    not(target_arch = "arm"),
73182    stable(feature = "neon_intrinsics", since = "1.59.0")
73183)]
73184#[cfg_attr(
73185    target_arch = "arm",
73186    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73187)]
73188pub fn vsubw_s16(a: int32x4_t, b: int16x4_t) -> int32x4_t {
73189    unsafe { simd_sub(a, simd_cast(b)) }
73190}
73191#[doc = "Signed Subtract Wide"]
73192#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubw_s32)"]
73193#[inline]
73194#[target_feature(enable = "neon")]
73195#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73196#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubw))]
73197#[cfg_attr(
73198    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73199    assert_instr(ssubw)
73200)]
73201#[cfg_attr(
73202    not(target_arch = "arm"),
73203    stable(feature = "neon_intrinsics", since = "1.59.0")
73204)]
73205#[cfg_attr(
73206    target_arch = "arm",
73207    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73208)]
73209pub fn vsubw_s32(a: int64x2_t, b: int32x2_t) -> int64x2_t {
73210    unsafe { simd_sub(a, simd_cast(b)) }
73211}
73212#[doc = "Unsigned Subtract Wide"]
73213#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubw_u8)"]
73214#[inline]
73215#[target_feature(enable = "neon")]
73216#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73217#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubw))]
73218#[cfg_attr(
73219    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73220    assert_instr(usubw)
73221)]
73222#[cfg_attr(
73223    not(target_arch = "arm"),
73224    stable(feature = "neon_intrinsics", since = "1.59.0")
73225)]
73226#[cfg_attr(
73227    target_arch = "arm",
73228    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73229)]
73230pub fn vsubw_u8(a: uint16x8_t, b: uint8x8_t) -> uint16x8_t {
73231    unsafe { simd_sub(a, simd_cast(b)) }
73232}
73233#[doc = "Unsigned Subtract Wide"]
73234#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubw_u16)"]
73235#[inline]
73236#[target_feature(enable = "neon")]
73237#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73238#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubw))]
73239#[cfg_attr(
73240    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73241    assert_instr(usubw)
73242)]
73243#[cfg_attr(
73244    not(target_arch = "arm"),
73245    stable(feature = "neon_intrinsics", since = "1.59.0")
73246)]
73247#[cfg_attr(
73248    target_arch = "arm",
73249    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73250)]
73251pub fn vsubw_u16(a: uint32x4_t, b: uint16x4_t) -> uint32x4_t {
73252    unsafe { simd_sub(a, simd_cast(b)) }
73253}
73254#[doc = "Unsigned Subtract Wide"]
73255#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubw_u32)"]
73256#[inline]
73257#[target_feature(enable = "neon")]
73258#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73259#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubw))]
73260#[cfg_attr(
73261    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73262    assert_instr(usubw)
73263)]
73264#[cfg_attr(
73265    not(target_arch = "arm"),
73266    stable(feature = "neon_intrinsics", since = "1.59.0")
73267)]
73268#[cfg_attr(
73269    target_arch = "arm",
73270    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73271)]
73272pub fn vsubw_u32(a: uint64x2_t, b: uint32x2_t) -> uint64x2_t {
73273    unsafe { simd_sub(a, simd_cast(b)) }
73274}
73275#[doc = "Dot product index form with signed and unsigned integers"]
73276#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsudot_lane_s32)"]
73277#[inline]
73278#[cfg(target_endian = "little")]
73279#[target_feature(enable = "neon,i8mm")]
73280#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
73281#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsudot, LANE = 0))]
73282#[cfg_attr(
73283    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73284    assert_instr(sudot, LANE = 0)
73285)]
73286#[rustc_legacy_const_generics(3)]
73287#[cfg_attr(
73288    not(target_arch = "arm"),
73289    unstable(feature = "stdarch_neon_i8mm", issue = "117223")
73290)]
73291#[cfg_attr(
73292    target_arch = "arm",
73293    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73294)]
73295pub fn vsudot_lane_s32<const LANE: i32>(a: int32x2_t, b: int8x8_t, c: uint8x8_t) -> int32x2_t {
73296    static_assert_uimm_bits!(LANE, 1);
73297    unsafe {
73298        let c: uint32x2_t = transmute(c);
73299        let c: uint32x2_t = simd_shuffle!(c, c, [LANE as u32, LANE as u32]);
73300        vusdot_s32(a, transmute(c), b)
73301    }
73302}
73303#[doc = "Dot product index form with signed and unsigned integers"]
73304#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsudot_lane_s32)"]
73305#[inline]
73306#[cfg(target_endian = "big")]
73307#[target_feature(enable = "neon,i8mm")]
73308#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
73309#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsudot, LANE = 0))]
73310#[cfg_attr(
73311    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73312    assert_instr(sudot, LANE = 0)
73313)]
73314#[rustc_legacy_const_generics(3)]
73315#[cfg_attr(
73316    not(target_arch = "arm"),
73317    unstable(feature = "stdarch_neon_i8mm", issue = "117223")
73318)]
73319#[cfg_attr(
73320    target_arch = "arm",
73321    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73322)]
73323pub fn vsudot_lane_s32<const LANE: i32>(a: int32x2_t, b: int8x8_t, c: uint8x8_t) -> int32x2_t {
73324    static_assert_uimm_bits!(LANE, 1);
73325    let a: int32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
73326    let b: int8x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
73327    let c: uint8x8_t = unsafe { simd_shuffle!(c, c, [7, 6, 5, 4, 3, 2, 1, 0]) };
73328    unsafe {
73329        let c: uint32x2_t = transmute(c);
73330        let c: uint32x2_t = simd_shuffle!(c, c, [LANE as u32, LANE as u32]);
73331        let ret_val: int32x2_t = vusdot_s32(a, transmute(c), b);
73332        simd_shuffle!(ret_val, ret_val, [1, 0])
73333    }
73334}
73335#[doc = "Dot product index form with signed and unsigned integers"]
73336#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsudotq_lane_s32)"]
73337#[inline]
73338#[cfg(target_endian = "little")]
73339#[target_feature(enable = "neon,i8mm")]
73340#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
73341#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsudot, LANE = 0))]
73342#[cfg_attr(
73343    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73344    assert_instr(sudot, LANE = 0)
73345)]
73346#[rustc_legacy_const_generics(3)]
73347#[cfg_attr(
73348    not(target_arch = "arm"),
73349    unstable(feature = "stdarch_neon_i8mm", issue = "117223")
73350)]
73351#[cfg_attr(
73352    target_arch = "arm",
73353    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73354)]
73355pub fn vsudotq_lane_s32<const LANE: i32>(a: int32x4_t, b: int8x16_t, c: uint8x8_t) -> int32x4_t {
73356    static_assert_uimm_bits!(LANE, 1);
73357    unsafe {
73358        let c: uint32x2_t = transmute(c);
73359        let c: uint32x4_t =
73360            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]);
73361        vusdotq_s32(a, transmute(c), b)
73362    }
73363}
73364#[doc = "Dot product index form with signed and unsigned integers"]
73365#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsudotq_lane_s32)"]
73366#[inline]
73367#[cfg(target_endian = "big")]
73368#[target_feature(enable = "neon,i8mm")]
73369#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
73370#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsudot, LANE = 0))]
73371#[cfg_attr(
73372    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73373    assert_instr(sudot, LANE = 0)
73374)]
73375#[rustc_legacy_const_generics(3)]
73376#[cfg_attr(
73377    not(target_arch = "arm"),
73378    unstable(feature = "stdarch_neon_i8mm", issue = "117223")
73379)]
73380#[cfg_attr(
73381    target_arch = "arm",
73382    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73383)]
73384pub fn vsudotq_lane_s32<const LANE: i32>(a: int32x4_t, b: int8x16_t, c: uint8x8_t) -> int32x4_t {
73385    static_assert_uimm_bits!(LANE, 1);
73386    let a: int32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
73387    let b: int8x16_t =
73388        unsafe { simd_shuffle!(b, b, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
73389    let c: uint8x8_t = unsafe { simd_shuffle!(c, c, [7, 6, 5, 4, 3, 2, 1, 0]) };
73390    unsafe {
73391        let c: uint32x2_t = transmute(c);
73392        let c: uint32x4_t =
73393            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]);
73394        let ret_val: int32x4_t = vusdotq_s32(a, transmute(c), b);
73395        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
73396    }
73397}
73398#[doc = "Table look-up"]
73399#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl1)"]
73400#[inline]
73401#[target_feature(enable = "neon")]
73402#[cfg(target_arch = "arm")]
73403#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73404#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
73405#[cfg_attr(test, assert_instr(vtbl))]
73406fn vtbl1(a: int8x8_t, b: int8x8_t) -> int8x8_t {
73407    unsafe extern "unadjusted" {
73408        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vtbl1")]
73409        fn _vtbl1(a: int8x8_t, b: int8x8_t) -> int8x8_t;
73410    }
73411    unsafe { _vtbl1(a, b) }
73412}
73413#[doc = "Table look-up"]
73414#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl1_s8)"]
73415#[inline]
73416#[target_feature(enable = "neon")]
73417#[cfg(target_arch = "arm")]
73418#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73419#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
73420#[cfg_attr(test, assert_instr(vtbl))]
73421pub fn vtbl1_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
73422    vtbl1(a, b)
73423}
73424#[doc = "Table look-up"]
73425#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl1_u8)"]
73426#[inline]
73427#[cfg(target_endian = "little")]
73428#[target_feature(enable = "neon")]
73429#[cfg(target_arch = "arm")]
73430#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73431#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
73432#[cfg_attr(test, assert_instr(vtbl))]
73433pub fn vtbl1_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
73434    unsafe { transmute(vtbl1(transmute(a), transmute(b))) }
73435}
73436#[doc = "Table look-up"]
73437#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl1_u8)"]
73438#[inline]
73439#[cfg(target_endian = "big")]
73440#[target_feature(enable = "neon")]
73441#[cfg(target_arch = "arm")]
73442#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73443#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
73444#[cfg_attr(test, assert_instr(vtbl))]
73445pub fn vtbl1_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
73446    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
73447    let b: uint8x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
73448    unsafe {
73449        let ret_val: uint8x8_t = transmute(vtbl1(transmute(a), transmute(b)));
73450        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
73451    }
73452}
73453#[doc = "Table look-up"]
73454#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl1_p8)"]
73455#[inline]
73456#[cfg(target_endian = "little")]
73457#[target_feature(enable = "neon")]
73458#[cfg(target_arch = "arm")]
73459#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73460#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
73461#[cfg_attr(test, assert_instr(vtbl))]
73462pub fn vtbl1_p8(a: poly8x8_t, b: uint8x8_t) -> poly8x8_t {
73463    unsafe { transmute(vtbl1(transmute(a), transmute(b))) }
73464}
73465#[doc = "Table look-up"]
73466#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl1_p8)"]
73467#[inline]
73468#[cfg(target_endian = "big")]
73469#[target_feature(enable = "neon")]
73470#[cfg(target_arch = "arm")]
73471#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73472#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
73473#[cfg_attr(test, assert_instr(vtbl))]
73474pub fn vtbl1_p8(a: poly8x8_t, b: uint8x8_t) -> poly8x8_t {
73475    let a: poly8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
73476    let b: uint8x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
73477    unsafe {
73478        let ret_val: poly8x8_t = transmute(vtbl1(transmute(a), transmute(b)));
73479        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
73480    }
73481}
73482#[doc = "Table look-up"]
73483#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl2)"]
73484#[inline]
73485#[target_feature(enable = "neon")]
73486#[cfg(target_arch = "arm")]
73487#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73488#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
73489#[cfg_attr(test, assert_instr(vtbl))]
73490fn vtbl2(a: int8x8_t, b: int8x8_t, c: int8x8_t) -> int8x8_t {
73491    unsafe extern "unadjusted" {
73492        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vtbl2")]
73493        fn _vtbl2(a: int8x8_t, b: int8x8_t, c: int8x8_t) -> int8x8_t;
73494    }
73495    unsafe { _vtbl2(a, b, c) }
73496}
73497#[doc = "Table look-up"]
73498#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl2_s8)"]
73499#[inline]
73500#[target_feature(enable = "neon")]
73501#[cfg(target_arch = "arm")]
73502#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73503#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
73504#[cfg_attr(test, assert_instr(vtbl))]
73505pub fn vtbl2_s8(a: int8x8x2_t, b: int8x8_t) -> int8x8_t {
73506    vtbl2(a.0, a.1, b)
73507}
73508#[doc = "Table look-up"]
73509#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl2_u8)"]
73510#[inline]
73511#[cfg(target_endian = "little")]
73512#[target_feature(enable = "neon")]
73513#[cfg(target_arch = "arm")]
73514#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73515#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
73516#[cfg_attr(test, assert_instr(vtbl))]
73517pub fn vtbl2_u8(a: uint8x8x2_t, b: uint8x8_t) -> uint8x8_t {
73518    unsafe { transmute(vtbl2(transmute(a.0), transmute(a.1), transmute(b))) }
73519}
73520#[doc = "Table look-up"]
73521#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl2_u8)"]
73522#[inline]
73523#[cfg(target_endian = "big")]
73524#[target_feature(enable = "neon")]
73525#[cfg(target_arch = "arm")]
73526#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73527#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
73528#[cfg_attr(test, assert_instr(vtbl))]
73529pub fn vtbl2_u8(a: uint8x8x2_t, b: uint8x8_t) -> uint8x8_t {
73530    let mut a: uint8x8x2_t = a;
73531    a.0 = unsafe { simd_shuffle!(a.0, a.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
73532    a.1 = unsafe { simd_shuffle!(a.1, a.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
73533    let b: uint8x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
73534    unsafe {
73535        let ret_val: uint8x8_t = transmute(vtbl2(transmute(a.0), transmute(a.1), transmute(b)));
73536        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
73537    }
73538}
73539#[doc = "Table look-up"]
73540#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl2_p8)"]
73541#[inline]
73542#[cfg(target_endian = "little")]
73543#[target_feature(enable = "neon")]
73544#[cfg(target_arch = "arm")]
73545#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73546#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
73547#[cfg_attr(test, assert_instr(vtbl))]
73548pub fn vtbl2_p8(a: poly8x8x2_t, b: uint8x8_t) -> poly8x8_t {
73549    unsafe { transmute(vtbl2(transmute(a.0), transmute(a.1), transmute(b))) }
73550}
73551#[doc = "Table look-up"]
73552#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl2_p8)"]
73553#[inline]
73554#[cfg(target_endian = "big")]
73555#[target_feature(enable = "neon")]
73556#[cfg(target_arch = "arm")]
73557#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73558#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
73559#[cfg_attr(test, assert_instr(vtbl))]
73560pub fn vtbl2_p8(a: poly8x8x2_t, b: uint8x8_t) -> poly8x8_t {
73561    let mut a: poly8x8x2_t = a;
73562    a.0 = unsafe { simd_shuffle!(a.0, a.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
73563    a.1 = unsafe { simd_shuffle!(a.1, a.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
73564    let b: uint8x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
73565    unsafe {
73566        let ret_val: poly8x8_t = transmute(vtbl2(transmute(a.0), transmute(a.1), transmute(b)));
73567        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
73568    }
73569}
73570#[doc = "Table look-up"]
73571#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl3)"]
73572#[inline]
73573#[target_feature(enable = "neon")]
73574#[cfg(target_arch = "arm")]
73575#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73576#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
73577#[cfg_attr(test, assert_instr(vtbl))]
73578fn vtbl3(a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t) -> int8x8_t {
73579    unsafe extern "unadjusted" {
73580        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vtbl3")]
73581        fn _vtbl3(a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t) -> int8x8_t;
73582    }
73583    unsafe { _vtbl3(a, b, c, d) }
73584}
73585#[doc = "Table look-up"]
73586#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl3_s8)"]
73587#[inline]
73588#[target_feature(enable = "neon")]
73589#[cfg(target_arch = "arm")]
73590#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73591#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
73592#[cfg_attr(test, assert_instr(vtbl))]
73593pub fn vtbl3_s8(a: int8x8x3_t, b: int8x8_t) -> int8x8_t {
73594    vtbl3(a.0, a.1, a.2, b)
73595}
73596#[doc = "Table look-up"]
73597#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl3_u8)"]
73598#[inline]
73599#[cfg(target_endian = "little")]
73600#[target_feature(enable = "neon")]
73601#[cfg(target_arch = "arm")]
73602#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73603#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
73604#[cfg_attr(test, assert_instr(vtbl))]
73605pub fn vtbl3_u8(a: uint8x8x3_t, b: uint8x8_t) -> uint8x8_t {
73606    unsafe {
73607        transmute(vtbl3(
73608            transmute(a.0),
73609            transmute(a.1),
73610            transmute(a.2),
73611            transmute(b),
73612        ))
73613    }
73614}
73615#[doc = "Table look-up"]
73616#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl3_u8)"]
73617#[inline]
73618#[cfg(target_endian = "big")]
73619#[target_feature(enable = "neon")]
73620#[cfg(target_arch = "arm")]
73621#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73622#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
73623#[cfg_attr(test, assert_instr(vtbl))]
73624pub fn vtbl3_u8(a: uint8x8x3_t, b: uint8x8_t) -> uint8x8_t {
73625    let mut a: uint8x8x3_t = a;
73626    a.0 = unsafe { simd_shuffle!(a.0, a.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
73627    a.1 = unsafe { simd_shuffle!(a.1, a.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
73628    a.2 = unsafe { simd_shuffle!(a.2, a.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
73629    let b: uint8x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
73630    unsafe {
73631        let ret_val: uint8x8_t = transmute(vtbl3(
73632            transmute(a.0),
73633            transmute(a.1),
73634            transmute(a.2),
73635            transmute(b),
73636        ));
73637        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
73638    }
73639}
73640#[doc = "Table look-up"]
73641#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl3_p8)"]
73642#[inline]
73643#[cfg(target_endian = "little")]
73644#[target_feature(enable = "neon")]
73645#[cfg(target_arch = "arm")]
73646#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73647#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
73648#[cfg_attr(test, assert_instr(vtbl))]
73649pub fn vtbl3_p8(a: poly8x8x3_t, b: uint8x8_t) -> poly8x8_t {
73650    unsafe {
73651        transmute(vtbl3(
73652            transmute(a.0),
73653            transmute(a.1),
73654            transmute(a.2),
73655            transmute(b),
73656        ))
73657    }
73658}
73659#[doc = "Table look-up"]
73660#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl3_p8)"]
73661#[inline]
73662#[cfg(target_endian = "big")]
73663#[target_feature(enable = "neon")]
73664#[cfg(target_arch = "arm")]
73665#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73666#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
73667#[cfg_attr(test, assert_instr(vtbl))]
73668pub fn vtbl3_p8(a: poly8x8x3_t, b: uint8x8_t) -> poly8x8_t {
73669    let mut a: poly8x8x3_t = a;
73670    a.0 = unsafe { simd_shuffle!(a.0, a.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
73671    a.1 = unsafe { simd_shuffle!(a.1, a.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
73672    a.2 = unsafe { simd_shuffle!(a.2, a.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
73673    let b: uint8x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
73674    unsafe {
73675        let ret_val: poly8x8_t = transmute(vtbl3(
73676            transmute(a.0),
73677            transmute(a.1),
73678            transmute(a.2),
73679            transmute(b),
73680        ));
73681        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
73682    }
73683}
73684#[doc = "Table look-up"]
73685#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl4)"]
73686#[inline]
73687#[target_feature(enable = "neon")]
73688#[cfg(target_arch = "arm")]
73689#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73690#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
73691#[cfg_attr(test, assert_instr(vtbl))]
73692fn vtbl4(a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t, e: int8x8_t) -> int8x8_t {
73693    unsafe extern "unadjusted" {
73694        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vtbl4")]
73695        fn _vtbl4(a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t, e: int8x8_t) -> int8x8_t;
73696    }
73697    unsafe { _vtbl4(a, b, c, d, e) }
73698}
73699#[doc = "Table look-up"]
73700#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl4_s8)"]
73701#[inline]
73702#[target_feature(enable = "neon")]
73703#[cfg(target_arch = "arm")]
73704#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73705#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
73706#[cfg_attr(test, assert_instr(vtbl))]
73707pub fn vtbl4_s8(a: int8x8x4_t, b: int8x8_t) -> int8x8_t {
73708    vtbl4(a.0, a.1, a.2, a.3, b)
73709}
73710#[doc = "Table look-up"]
73711#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl4_u8)"]
73712#[inline]
73713#[cfg(target_endian = "little")]
73714#[target_feature(enable = "neon")]
73715#[cfg(target_arch = "arm")]
73716#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73717#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
73718#[cfg_attr(test, assert_instr(vtbl))]
73719pub fn vtbl4_u8(a: uint8x8x4_t, b: uint8x8_t) -> uint8x8_t {
73720    unsafe {
73721        transmute(vtbl4(
73722            transmute(a.0),
73723            transmute(a.1),
73724            transmute(a.2),
73725            transmute(a.3),
73726            transmute(b),
73727        ))
73728    }
73729}
73730#[doc = "Table look-up"]
73731#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl4_u8)"]
73732#[inline]
73733#[cfg(target_endian = "big")]
73734#[target_feature(enable = "neon")]
73735#[cfg(target_arch = "arm")]
73736#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73737#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
73738#[cfg_attr(test, assert_instr(vtbl))]
73739pub fn vtbl4_u8(a: uint8x8x4_t, b: uint8x8_t) -> uint8x8_t {
73740    let mut a: uint8x8x4_t = a;
73741    a.0 = unsafe { simd_shuffle!(a.0, a.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
73742    a.1 = unsafe { simd_shuffle!(a.1, a.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
73743    a.2 = unsafe { simd_shuffle!(a.2, a.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
73744    a.3 = unsafe { simd_shuffle!(a.3, a.3, [7, 6, 5, 4, 3, 2, 1, 0]) };
73745    let b: uint8x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
73746    unsafe {
73747        let ret_val: uint8x8_t = transmute(vtbl4(
73748            transmute(a.0),
73749            transmute(a.1),
73750            transmute(a.2),
73751            transmute(a.3),
73752            transmute(b),
73753        ));
73754        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
73755    }
73756}
73757#[doc = "Table look-up"]
73758#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl4_p8)"]
73759#[inline]
73760#[cfg(target_endian = "little")]
73761#[target_feature(enable = "neon")]
73762#[cfg(target_arch = "arm")]
73763#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73764#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
73765#[cfg_attr(test, assert_instr(vtbl))]
73766pub fn vtbl4_p8(a: poly8x8x4_t, b: uint8x8_t) -> poly8x8_t {
73767    unsafe {
73768        transmute(vtbl4(
73769            transmute(a.0),
73770            transmute(a.1),
73771            transmute(a.2),
73772            transmute(a.3),
73773            transmute(b),
73774        ))
73775    }
73776}
73777#[doc = "Table look-up"]
73778#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl4_p8)"]
73779#[inline]
73780#[cfg(target_endian = "big")]
73781#[target_feature(enable = "neon")]
73782#[cfg(target_arch = "arm")]
73783#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73784#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
73785#[cfg_attr(test, assert_instr(vtbl))]
73786pub fn vtbl4_p8(a: poly8x8x4_t, b: uint8x8_t) -> poly8x8_t {
73787    let mut a: poly8x8x4_t = a;
73788    a.0 = unsafe { simd_shuffle!(a.0, a.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
73789    a.1 = unsafe { simd_shuffle!(a.1, a.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
73790    a.2 = unsafe { simd_shuffle!(a.2, a.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
73791    a.3 = unsafe { simd_shuffle!(a.3, a.3, [7, 6, 5, 4, 3, 2, 1, 0]) };
73792    let b: uint8x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
73793    unsafe {
73794        let ret_val: poly8x8_t = transmute(vtbl4(
73795            transmute(a.0),
73796            transmute(a.1),
73797            transmute(a.2),
73798            transmute(a.3),
73799            transmute(b),
73800        ));
73801        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
73802    }
73803}
73804#[doc = "Extended table look-up"]
73805#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx1)"]
73806#[inline]
73807#[target_feature(enable = "neon,v7")]
73808#[cfg(target_arch = "arm")]
73809#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
73810#[cfg_attr(test, assert_instr(vtbx))]
73811fn vtbx1(a: int8x8_t, b: int8x8_t, c: int8x8_t) -> int8x8_t {
73812    unsafe extern "unadjusted" {
73813        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vtbx1")]
73814        fn _vtbx1(a: int8x8_t, b: int8x8_t, c: int8x8_t) -> int8x8_t;
73815    }
73816    unsafe { _vtbx1(a, b, c) }
73817}
73818#[doc = "Extended table look-up"]
73819#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx1_s8)"]
73820#[inline]
73821#[target_feature(enable = "neon,v7")]
73822#[cfg(target_arch = "arm")]
73823#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
73824#[cfg_attr(test, assert_instr(vtbx))]
73825pub fn vtbx1_s8(a: int8x8_t, b: int8x8_t, c: int8x8_t) -> int8x8_t {
73826    vtbx1(a, b, c)
73827}
73828#[doc = "Extended table look-up"]
73829#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx1_u8)"]
73830#[inline]
73831#[cfg(target_endian = "little")]
73832#[target_feature(enable = "neon,v7")]
73833#[cfg(target_arch = "arm")]
73834#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
73835#[cfg_attr(test, assert_instr(vtbx))]
73836pub fn vtbx1_u8(a: uint8x8_t, b: uint8x8_t, c: uint8x8_t) -> uint8x8_t {
73837    unsafe { transmute(vtbx1(transmute(a), transmute(b), transmute(c))) }
73838}
73839#[doc = "Extended table look-up"]
73840#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx1_u8)"]
73841#[inline]
73842#[cfg(target_endian = "big")]
73843#[target_feature(enable = "neon,v7")]
73844#[cfg(target_arch = "arm")]
73845#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
73846#[cfg_attr(test, assert_instr(vtbx))]
73847pub fn vtbx1_u8(a: uint8x8_t, b: uint8x8_t, c: uint8x8_t) -> uint8x8_t {
73848    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
73849    let b: uint8x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
73850    let c: uint8x8_t = unsafe { simd_shuffle!(c, c, [7, 6, 5, 4, 3, 2, 1, 0]) };
73851    unsafe {
73852        let ret_val: uint8x8_t = transmute(vtbx1(transmute(a), transmute(b), transmute(c)));
73853        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
73854    }
73855}
73856#[doc = "Extended table look-up"]
73857#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx1_p8)"]
73858#[inline]
73859#[cfg(target_endian = "little")]
73860#[target_feature(enable = "neon,v7")]
73861#[cfg(target_arch = "arm")]
73862#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
73863#[cfg_attr(test, assert_instr(vtbx))]
73864pub fn vtbx1_p8(a: poly8x8_t, b: poly8x8_t, c: uint8x8_t) -> poly8x8_t {
73865    unsafe { transmute(vtbx1(transmute(a), transmute(b), transmute(c))) }
73866}
73867#[doc = "Extended table look-up"]
73868#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx1_p8)"]
73869#[inline]
73870#[cfg(target_endian = "big")]
73871#[target_feature(enable = "neon,v7")]
73872#[cfg(target_arch = "arm")]
73873#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
73874#[cfg_attr(test, assert_instr(vtbx))]
73875pub fn vtbx1_p8(a: poly8x8_t, b: poly8x8_t, c: uint8x8_t) -> poly8x8_t {
73876    let a: poly8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
73877    let b: poly8x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
73878    let c: uint8x8_t = unsafe { simd_shuffle!(c, c, [7, 6, 5, 4, 3, 2, 1, 0]) };
73879    unsafe {
73880        let ret_val: poly8x8_t = transmute(vtbx1(transmute(a), transmute(b), transmute(c)));
73881        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
73882    }
73883}
73884#[doc = "Extended table look-up"]
73885#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx2)"]
73886#[inline]
73887#[target_feature(enable = "neon,v7")]
73888#[cfg(target_arch = "arm")]
73889#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
73890#[cfg_attr(test, assert_instr(vtbx))]
73891fn vtbx2(a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t) -> int8x8_t {
73892    unsafe extern "unadjusted" {
73893        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vtbx2")]
73894        fn _vtbx2(a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t) -> int8x8_t;
73895    }
73896    unsafe { _vtbx2(a, b, c, d) }
73897}
73898#[doc = "Extended table look-up"]
73899#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx2_s8)"]
73900#[inline]
73901#[target_feature(enable = "neon,v7")]
73902#[cfg(target_arch = "arm")]
73903#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
73904#[cfg_attr(test, assert_instr(vtbx))]
73905pub fn vtbx2_s8(a: int8x8_t, b: int8x8x2_t, c: int8x8_t) -> int8x8_t {
73906    vtbx2(a, b.0, b.1, c)
73907}
73908#[doc = "Extended table look-up"]
73909#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx2_u8)"]
73910#[inline]
73911#[cfg(target_endian = "little")]
73912#[target_feature(enable = "neon,v7")]
73913#[cfg(target_arch = "arm")]
73914#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
73915#[cfg_attr(test, assert_instr(vtbx))]
73916pub fn vtbx2_u8(a: uint8x8_t, b: uint8x8x2_t, c: uint8x8_t) -> uint8x8_t {
73917    unsafe {
73918        transmute(vtbx2(
73919            transmute(a),
73920            transmute(b.0),
73921            transmute(b.1),
73922            transmute(c),
73923        ))
73924    }
73925}
73926#[doc = "Extended table look-up"]
73927#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx2_u8)"]
73928#[inline]
73929#[cfg(target_endian = "big")]
73930#[target_feature(enable = "neon,v7")]
73931#[cfg(target_arch = "arm")]
73932#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
73933#[cfg_attr(test, assert_instr(vtbx))]
73934pub fn vtbx2_u8(a: uint8x8_t, b: uint8x8x2_t, c: uint8x8_t) -> uint8x8_t {
73935    let mut b: uint8x8x2_t = b;
73936    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
73937    b.0 = unsafe { simd_shuffle!(b.0, b.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
73938    b.1 = unsafe { simd_shuffle!(b.1, b.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
73939    let c: uint8x8_t = unsafe { simd_shuffle!(c, c, [7, 6, 5, 4, 3, 2, 1, 0]) };
73940    unsafe {
73941        let ret_val: uint8x8_t = transmute(vtbx2(
73942            transmute(a),
73943            transmute(b.0),
73944            transmute(b.1),
73945            transmute(c),
73946        ));
73947        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
73948    }
73949}
73950#[doc = "Extended table look-up"]
73951#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx2_p8)"]
73952#[inline]
73953#[cfg(target_endian = "little")]
73954#[target_feature(enable = "neon,v7")]
73955#[cfg(target_arch = "arm")]
73956#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
73957#[cfg_attr(test, assert_instr(vtbx))]
73958pub fn vtbx2_p8(a: poly8x8_t, b: poly8x8x2_t, c: uint8x8_t) -> poly8x8_t {
73959    unsafe {
73960        transmute(vtbx2(
73961            transmute(a),
73962            transmute(b.0),
73963            transmute(b.1),
73964            transmute(c),
73965        ))
73966    }
73967}
73968#[doc = "Extended table look-up"]
73969#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx2_p8)"]
73970#[inline]
73971#[cfg(target_endian = "big")]
73972#[target_feature(enable = "neon,v7")]
73973#[cfg(target_arch = "arm")]
73974#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
73975#[cfg_attr(test, assert_instr(vtbx))]
73976pub fn vtbx2_p8(a: poly8x8_t, b: poly8x8x2_t, c: uint8x8_t) -> poly8x8_t {
73977    let mut b: poly8x8x2_t = b;
73978    let a: poly8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
73979    b.0 = unsafe { simd_shuffle!(b.0, b.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
73980    b.1 = unsafe { simd_shuffle!(b.1, b.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
73981    let c: uint8x8_t = unsafe { simd_shuffle!(c, c, [7, 6, 5, 4, 3, 2, 1, 0]) };
73982    unsafe {
73983        let ret_val: poly8x8_t = transmute(vtbx2(
73984            transmute(a),
73985            transmute(b.0),
73986            transmute(b.1),
73987            transmute(c),
73988        ));
73989        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
73990    }
73991}
73992#[doc = "Extended table look-up"]
73993#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx3)"]
73994#[inline]
73995#[target_feature(enable = "neon,v7")]
73996#[cfg(target_arch = "arm")]
73997#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
73998#[cfg_attr(test, assert_instr(vtbx))]
73999fn vtbx3(a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t, e: int8x8_t) -> int8x8_t {
74000    unsafe extern "unadjusted" {
74001        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vtbx3")]
74002        fn _vtbx3(a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t, e: int8x8_t) -> int8x8_t;
74003    }
74004    unsafe { _vtbx3(a, b, c, d, e) }
74005}
74006#[doc = "Extended table look-up"]
74007#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx3_s8)"]
74008#[inline]
74009#[target_feature(enable = "neon,v7")]
74010#[cfg(target_arch = "arm")]
74011#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
74012#[cfg_attr(test, assert_instr(vtbx))]
74013pub fn vtbx3_s8(a: int8x8_t, b: int8x8x3_t, c: int8x8_t) -> int8x8_t {
74014    vtbx3(a, b.0, b.1, b.2, c)
74015}
74016#[doc = "Extended table look-up"]
74017#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx3_u8)"]
74018#[inline]
74019#[cfg(target_endian = "little")]
74020#[target_feature(enable = "neon,v7")]
74021#[cfg(target_arch = "arm")]
74022#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
74023#[cfg_attr(test, assert_instr(vtbx))]
74024pub fn vtbx3_u8(a: uint8x8_t, b: uint8x8x3_t, c: uint8x8_t) -> uint8x8_t {
74025    unsafe {
74026        transmute(vtbx3(
74027            transmute(a),
74028            transmute(b.0),
74029            transmute(b.1),
74030            transmute(b.2),
74031            transmute(c),
74032        ))
74033    }
74034}
74035#[doc = "Extended table look-up"]
74036#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx3_u8)"]
74037#[inline]
74038#[cfg(target_endian = "big")]
74039#[target_feature(enable = "neon,v7")]
74040#[cfg(target_arch = "arm")]
74041#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
74042#[cfg_attr(test, assert_instr(vtbx))]
74043pub fn vtbx3_u8(a: uint8x8_t, b: uint8x8x3_t, c: uint8x8_t) -> uint8x8_t {
74044    let mut b: uint8x8x3_t = b;
74045    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
74046    b.0 = unsafe { simd_shuffle!(b.0, b.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
74047    b.1 = unsafe { simd_shuffle!(b.1, b.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
74048    b.2 = unsafe { simd_shuffle!(b.2, b.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
74049    let c: uint8x8_t = unsafe { simd_shuffle!(c, c, [7, 6, 5, 4, 3, 2, 1, 0]) };
74050    unsafe {
74051        let ret_val: uint8x8_t = transmute(vtbx3(
74052            transmute(a),
74053            transmute(b.0),
74054            transmute(b.1),
74055            transmute(b.2),
74056            transmute(c),
74057        ));
74058        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
74059    }
74060}
74061#[doc = "Extended table look-up"]
74062#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx3_p8)"]
74063#[inline]
74064#[cfg(target_endian = "little")]
74065#[target_feature(enable = "neon,v7")]
74066#[cfg(target_arch = "arm")]
74067#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
74068#[cfg_attr(test, assert_instr(vtbx))]
74069pub fn vtbx3_p8(a: poly8x8_t, b: poly8x8x3_t, c: uint8x8_t) -> poly8x8_t {
74070    unsafe {
74071        transmute(vtbx3(
74072            transmute(a),
74073            transmute(b.0),
74074            transmute(b.1),
74075            transmute(b.2),
74076            transmute(c),
74077        ))
74078    }
74079}
74080#[doc = "Extended table look-up"]
74081#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx3_p8)"]
74082#[inline]
74083#[cfg(target_endian = "big")]
74084#[target_feature(enable = "neon,v7")]
74085#[cfg(target_arch = "arm")]
74086#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
74087#[cfg_attr(test, assert_instr(vtbx))]
74088pub fn vtbx3_p8(a: poly8x8_t, b: poly8x8x3_t, c: uint8x8_t) -> poly8x8_t {
74089    let mut b: poly8x8x3_t = b;
74090    let a: poly8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
74091    b.0 = unsafe { simd_shuffle!(b.0, b.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
74092    b.1 = unsafe { simd_shuffle!(b.1, b.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
74093    b.2 = unsafe { simd_shuffle!(b.2, b.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
74094    let c: uint8x8_t = unsafe { simd_shuffle!(c, c, [7, 6, 5, 4, 3, 2, 1, 0]) };
74095    unsafe {
74096        let ret_val: poly8x8_t = transmute(vtbx3(
74097            transmute(a),
74098            transmute(b.0),
74099            transmute(b.1),
74100            transmute(b.2),
74101            transmute(c),
74102        ));
74103        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
74104    }
74105}
74106#[doc = "Extended table look-up"]
74107#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx4)"]
74108#[inline]
74109#[target_feature(enable = "neon,v7")]
74110#[cfg(target_arch = "arm")]
74111#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
74112#[cfg_attr(test, assert_instr(vtbx))]
74113fn vtbx4(a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t, e: int8x8_t, f: int8x8_t) -> int8x8_t {
74114    unsafe extern "unadjusted" {
74115        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vtbx4")]
74116        fn _vtbx4(
74117            a: int8x8_t,
74118            b: int8x8_t,
74119            c: int8x8_t,
74120            d: int8x8_t,
74121            e: int8x8_t,
74122            f: int8x8_t,
74123        ) -> int8x8_t;
74124    }
74125    unsafe { _vtbx4(a, b, c, d, e, f) }
74126}
74127#[doc = "Extended table look-up"]
74128#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx4_s8)"]
74129#[inline]
74130#[cfg(target_endian = "little")]
74131#[target_feature(enable = "neon,v7")]
74132#[cfg(target_arch = "arm")]
74133#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
74134#[cfg_attr(test, assert_instr(vtbx))]
74135pub fn vtbx4_s8(a: int8x8_t, b: int8x8x4_t, c: int8x8_t) -> int8x8_t {
74136    unsafe {
74137        vtbx4(
74138            a,
74139            transmute(b.0),
74140            transmute(b.1),
74141            transmute(b.2),
74142            transmute(b.3),
74143            c,
74144        )
74145    }
74146}
74147#[doc = "Extended table look-up"]
74148#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx4_s8)"]
74149#[inline]
74150#[cfg(target_endian = "big")]
74151#[target_feature(enable = "neon,v7")]
74152#[cfg(target_arch = "arm")]
74153#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
74154#[cfg_attr(test, assert_instr(vtbx))]
74155pub fn vtbx4_s8(a: int8x8_t, b: int8x8x4_t, c: int8x8_t) -> int8x8_t {
74156    let mut b: int8x8x4_t = b;
74157    let a: int8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
74158    b.0 = unsafe { simd_shuffle!(b.0, b.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
74159    b.1 = unsafe { simd_shuffle!(b.1, b.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
74160    b.2 = unsafe { simd_shuffle!(b.2, b.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
74161    b.3 = unsafe { simd_shuffle!(b.3, b.3, [7, 6, 5, 4, 3, 2, 1, 0]) };
74162    let c: int8x8_t = unsafe { simd_shuffle!(c, c, [7, 6, 5, 4, 3, 2, 1, 0]) };
74163    unsafe {
74164        let ret_val: int8x8_t = vtbx4(
74165            a,
74166            transmute(b.0),
74167            transmute(b.1),
74168            transmute(b.2),
74169            transmute(b.3),
74170            c,
74171        );
74172        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
74173    }
74174}
74175#[doc = "Extended table look-up"]
74176#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx4_u8)"]
74177#[inline]
74178#[cfg(target_endian = "little")]
74179#[target_feature(enable = "neon,v7")]
74180#[cfg(target_arch = "arm")]
74181#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
74182#[cfg_attr(test, assert_instr(vtbx))]
74183pub fn vtbx4_u8(a: uint8x8_t, b: uint8x8x4_t, c: uint8x8_t) -> uint8x8_t {
74184    unsafe {
74185        transmute(vtbx4(
74186            transmute(a),
74187            transmute(b.0),
74188            transmute(b.1),
74189            transmute(b.2),
74190            transmute(b.3),
74191            transmute(c),
74192        ))
74193    }
74194}
74195#[doc = "Extended table look-up"]
74196#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx4_u8)"]
74197#[inline]
74198#[cfg(target_endian = "big")]
74199#[target_feature(enable = "neon,v7")]
74200#[cfg(target_arch = "arm")]
74201#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
74202#[cfg_attr(test, assert_instr(vtbx))]
74203pub fn vtbx4_u8(a: uint8x8_t, b: uint8x8x4_t, c: uint8x8_t) -> uint8x8_t {
74204    let mut b: uint8x8x4_t = b;
74205    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
74206    b.0 = unsafe { simd_shuffle!(b.0, b.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
74207    b.1 = unsafe { simd_shuffle!(b.1, b.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
74208    b.2 = unsafe { simd_shuffle!(b.2, b.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
74209    b.3 = unsafe { simd_shuffle!(b.3, b.3, [7, 6, 5, 4, 3, 2, 1, 0]) };
74210    let c: uint8x8_t = unsafe { simd_shuffle!(c, c, [7, 6, 5, 4, 3, 2, 1, 0]) };
74211    unsafe {
74212        let ret_val: uint8x8_t = transmute(vtbx4(
74213            transmute(a),
74214            transmute(b.0),
74215            transmute(b.1),
74216            transmute(b.2),
74217            transmute(b.3),
74218            transmute(c),
74219        ));
74220        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
74221    }
74222}
74223#[doc = "Extended table look-up"]
74224#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx4_p8)"]
74225#[inline]
74226#[cfg(target_endian = "little")]
74227#[target_feature(enable = "neon,v7")]
74228#[cfg(target_arch = "arm")]
74229#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
74230#[cfg_attr(test, assert_instr(vtbx))]
74231pub fn vtbx4_p8(a: poly8x8_t, b: poly8x8x4_t, c: uint8x8_t) -> poly8x8_t {
74232    unsafe {
74233        transmute(vtbx4(
74234            transmute(a),
74235            transmute(b.0),
74236            transmute(b.1),
74237            transmute(b.2),
74238            transmute(b.3),
74239            transmute(c),
74240        ))
74241    }
74242}
74243#[doc = "Extended table look-up"]
74244#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx4_p8)"]
74245#[inline]
74246#[cfg(target_endian = "big")]
74247#[target_feature(enable = "neon,v7")]
74248#[cfg(target_arch = "arm")]
74249#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
74250#[cfg_attr(test, assert_instr(vtbx))]
74251pub fn vtbx4_p8(a: poly8x8_t, b: poly8x8x4_t, c: uint8x8_t) -> poly8x8_t {
74252    let mut b: poly8x8x4_t = b;
74253    let a: poly8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
74254    b.0 = unsafe { simd_shuffle!(b.0, b.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
74255    b.1 = unsafe { simd_shuffle!(b.1, b.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
74256    b.2 = unsafe { simd_shuffle!(b.2, b.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
74257    b.3 = unsafe { simd_shuffle!(b.3, b.3, [7, 6, 5, 4, 3, 2, 1, 0]) };
74258    let c: uint8x8_t = unsafe { simd_shuffle!(c, c, [7, 6, 5, 4, 3, 2, 1, 0]) };
74259    unsafe {
74260        let ret_val: poly8x8_t = transmute(vtbx4(
74261            transmute(a),
74262            transmute(b.0),
74263            transmute(b.1),
74264            transmute(b.2),
74265            transmute(b.3),
74266            transmute(c),
74267        ));
74268        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
74269    }
74270}
74271#[doc = "Transpose elements"]
74272#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrn_f16)"]
74273#[inline]
74274#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
74275#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
74276#[cfg_attr(
74277    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74278    assert_instr(trn1)
74279)]
74280#[cfg_attr(
74281    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74282    assert_instr(trn2)
74283)]
74284#[target_feature(enable = "neon,fp16")]
74285#[cfg_attr(
74286    not(target_arch = "arm"),
74287    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
74288)]
74289#[cfg_attr(
74290    target_arch = "arm",
74291    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
74292)]
74293#[cfg(not(target_arch = "arm64ec"))]
74294pub fn vtrn_f16(a: float16x4_t, b: float16x4_t) -> float16x4x2_t {
74295    unsafe {
74296        let a1: float16x4_t = simd_shuffle!(a, b, [0, 4, 2, 6]);
74297        let b1: float16x4_t = simd_shuffle!(a, b, [1, 5, 3, 7]);
74298        transmute((a1, b1))
74299    }
74300}
74301#[doc = "Transpose elements"]
74302#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrnq_f16)"]
74303#[inline]
74304#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
74305#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
74306#[cfg_attr(
74307    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74308    assert_instr(trn1)
74309)]
74310#[cfg_attr(
74311    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74312    assert_instr(trn2)
74313)]
74314#[target_feature(enable = "neon,fp16")]
74315#[cfg_attr(
74316    not(target_arch = "arm"),
74317    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
74318)]
74319#[cfg_attr(
74320    target_arch = "arm",
74321    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
74322)]
74323#[cfg(not(target_arch = "arm64ec"))]
74324pub fn vtrnq_f16(a: float16x8_t, b: float16x8_t) -> float16x8x2_t {
74325    unsafe {
74326        let a1: float16x8_t = simd_shuffle!(a, b, [0, 8, 2, 10, 4, 12, 6, 14]);
74327        let b1: float16x8_t = simd_shuffle!(a, b, [1, 9, 3, 11, 5, 13, 7, 15]);
74328        transmute((a1, b1))
74329    }
74330}
74331#[doc = "Transpose elements"]
74332#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrn_f32)"]
74333#[inline]
74334#[target_feature(enable = "neon")]
74335#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
74336#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
74337#[cfg_attr(
74338    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74339    assert_instr(zip1)
74340)]
74341#[cfg_attr(
74342    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74343    assert_instr(zip2)
74344)]
74345#[cfg_attr(
74346    not(target_arch = "arm"),
74347    stable(feature = "neon_intrinsics", since = "1.59.0")
74348)]
74349#[cfg_attr(
74350    target_arch = "arm",
74351    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
74352)]
74353pub fn vtrn_f32(a: float32x2_t, b: float32x2_t) -> float32x2x2_t {
74354    unsafe {
74355        let a1: float32x2_t = simd_shuffle!(a, b, [0, 2]);
74356        let b1: float32x2_t = simd_shuffle!(a, b, [1, 3]);
74357        transmute((a1, b1))
74358    }
74359}
74360#[doc = "Transpose elements"]
74361#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrn_s32)"]
74362#[inline]
74363#[target_feature(enable = "neon")]
74364#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
74365#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
74366#[cfg_attr(
74367    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74368    assert_instr(zip1)
74369)]
74370#[cfg_attr(
74371    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74372    assert_instr(zip2)
74373)]
74374#[cfg_attr(
74375    not(target_arch = "arm"),
74376    stable(feature = "neon_intrinsics", since = "1.59.0")
74377)]
74378#[cfg_attr(
74379    target_arch = "arm",
74380    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
74381)]
74382pub fn vtrn_s32(a: int32x2_t, b: int32x2_t) -> int32x2x2_t {
74383    unsafe {
74384        let a1: int32x2_t = simd_shuffle!(a, b, [0, 2]);
74385        let b1: int32x2_t = simd_shuffle!(a, b, [1, 3]);
74386        transmute((a1, b1))
74387    }
74388}
74389#[doc = "Transpose elements"]
74390#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrn_u32)"]
74391#[inline]
74392#[target_feature(enable = "neon")]
74393#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
74394#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
74395#[cfg_attr(
74396    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74397    assert_instr(zip1)
74398)]
74399#[cfg_attr(
74400    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74401    assert_instr(zip2)
74402)]
74403#[cfg_attr(
74404    not(target_arch = "arm"),
74405    stable(feature = "neon_intrinsics", since = "1.59.0")
74406)]
74407#[cfg_attr(
74408    target_arch = "arm",
74409    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
74410)]
74411pub fn vtrn_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2x2_t {
74412    unsafe {
74413        let a1: uint32x2_t = simd_shuffle!(a, b, [0, 2]);
74414        let b1: uint32x2_t = simd_shuffle!(a, b, [1, 3]);
74415        transmute((a1, b1))
74416    }
74417}
74418#[doc = "Transpose elements"]
74419#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrnq_f32)"]
74420#[inline]
74421#[target_feature(enable = "neon")]
74422#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
74423#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
74424#[cfg_attr(
74425    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74426    assert_instr(trn1)
74427)]
74428#[cfg_attr(
74429    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74430    assert_instr(trn2)
74431)]
74432#[cfg_attr(
74433    not(target_arch = "arm"),
74434    stable(feature = "neon_intrinsics", since = "1.59.0")
74435)]
74436#[cfg_attr(
74437    target_arch = "arm",
74438    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
74439)]
74440pub fn vtrnq_f32(a: float32x4_t, b: float32x4_t) -> float32x4x2_t {
74441    unsafe {
74442        let a1: float32x4_t = simd_shuffle!(a, b, [0, 4, 2, 6]);
74443        let b1: float32x4_t = simd_shuffle!(a, b, [1, 5, 3, 7]);
74444        transmute((a1, b1))
74445    }
74446}
74447#[doc = "Transpose elements"]
74448#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrn_s8)"]
74449#[inline]
74450#[target_feature(enable = "neon")]
74451#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
74452#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
74453#[cfg_attr(
74454    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74455    assert_instr(trn1)
74456)]
74457#[cfg_attr(
74458    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74459    assert_instr(trn2)
74460)]
74461#[cfg_attr(
74462    not(target_arch = "arm"),
74463    stable(feature = "neon_intrinsics", since = "1.59.0")
74464)]
74465#[cfg_attr(
74466    target_arch = "arm",
74467    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
74468)]
74469pub fn vtrn_s8(a: int8x8_t, b: int8x8_t) -> int8x8x2_t {
74470    unsafe {
74471        let a1: int8x8_t = simd_shuffle!(a, b, [0, 8, 2, 10, 4, 12, 6, 14]);
74472        let b1: int8x8_t = simd_shuffle!(a, b, [1, 9, 3, 11, 5, 13, 7, 15]);
74473        transmute((a1, b1))
74474    }
74475}
74476#[doc = "Transpose elements"]
74477#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrnq_s8)"]
74478#[inline]
74479#[target_feature(enable = "neon")]
74480#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
74481#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
74482#[cfg_attr(
74483    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74484    assert_instr(trn1)
74485)]
74486#[cfg_attr(
74487    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74488    assert_instr(trn2)
74489)]
74490#[cfg_attr(
74491    not(target_arch = "arm"),
74492    stable(feature = "neon_intrinsics", since = "1.59.0")
74493)]
74494#[cfg_attr(
74495    target_arch = "arm",
74496    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
74497)]
74498pub fn vtrnq_s8(a: int8x16_t, b: int8x16_t) -> int8x16x2_t {
74499    unsafe {
74500        let a1: int8x16_t = simd_shuffle!(
74501            a,
74502            b,
74503            [0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30]
74504        );
74505        let b1: int8x16_t = simd_shuffle!(
74506            a,
74507            b,
74508            [1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31]
74509        );
74510        transmute((a1, b1))
74511    }
74512}
74513#[doc = "Transpose elements"]
74514#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrn_s16)"]
74515#[inline]
74516#[target_feature(enable = "neon")]
74517#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
74518#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
74519#[cfg_attr(
74520    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74521    assert_instr(trn1)
74522)]
74523#[cfg_attr(
74524    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74525    assert_instr(trn2)
74526)]
74527#[cfg_attr(
74528    not(target_arch = "arm"),
74529    stable(feature = "neon_intrinsics", since = "1.59.0")
74530)]
74531#[cfg_attr(
74532    target_arch = "arm",
74533    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
74534)]
74535pub fn vtrn_s16(a: int16x4_t, b: int16x4_t) -> int16x4x2_t {
74536    unsafe {
74537        let a1: int16x4_t = simd_shuffle!(a, b, [0, 4, 2, 6]);
74538        let b1: int16x4_t = simd_shuffle!(a, b, [1, 5, 3, 7]);
74539        transmute((a1, b1))
74540    }
74541}
74542#[doc = "Transpose elements"]
74543#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrnq_s16)"]
74544#[inline]
74545#[target_feature(enable = "neon")]
74546#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
74547#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
74548#[cfg_attr(
74549    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74550    assert_instr(trn1)
74551)]
74552#[cfg_attr(
74553    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74554    assert_instr(trn2)
74555)]
74556#[cfg_attr(
74557    not(target_arch = "arm"),
74558    stable(feature = "neon_intrinsics", since = "1.59.0")
74559)]
74560#[cfg_attr(
74561    target_arch = "arm",
74562    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
74563)]
74564pub fn vtrnq_s16(a: int16x8_t, b: int16x8_t) -> int16x8x2_t {
74565    unsafe {
74566        let a1: int16x8_t = simd_shuffle!(a, b, [0, 8, 2, 10, 4, 12, 6, 14]);
74567        let b1: int16x8_t = simd_shuffle!(a, b, [1, 9, 3, 11, 5, 13, 7, 15]);
74568        transmute((a1, b1))
74569    }
74570}
74571#[doc = "Transpose elements"]
74572#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrnq_s32)"]
74573#[inline]
74574#[target_feature(enable = "neon")]
74575#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
74576#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
74577#[cfg_attr(
74578    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74579    assert_instr(trn1)
74580)]
74581#[cfg_attr(
74582    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74583    assert_instr(trn2)
74584)]
74585#[cfg_attr(
74586    not(target_arch = "arm"),
74587    stable(feature = "neon_intrinsics", since = "1.59.0")
74588)]
74589#[cfg_attr(
74590    target_arch = "arm",
74591    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
74592)]
74593pub fn vtrnq_s32(a: int32x4_t, b: int32x4_t) -> int32x4x2_t {
74594    unsafe {
74595        let a1: int32x4_t = simd_shuffle!(a, b, [0, 4, 2, 6]);
74596        let b1: int32x4_t = simd_shuffle!(a, b, [1, 5, 3, 7]);
74597        transmute((a1, b1))
74598    }
74599}
74600#[doc = "Transpose elements"]
74601#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrn_u8)"]
74602#[inline]
74603#[target_feature(enable = "neon")]
74604#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
74605#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
74606#[cfg_attr(
74607    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74608    assert_instr(trn1)
74609)]
74610#[cfg_attr(
74611    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74612    assert_instr(trn2)
74613)]
74614#[cfg_attr(
74615    not(target_arch = "arm"),
74616    stable(feature = "neon_intrinsics", since = "1.59.0")
74617)]
74618#[cfg_attr(
74619    target_arch = "arm",
74620    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
74621)]
74622pub fn vtrn_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8x2_t {
74623    unsafe {
74624        let a1: uint8x8_t = simd_shuffle!(a, b, [0, 8, 2, 10, 4, 12, 6, 14]);
74625        let b1: uint8x8_t = simd_shuffle!(a, b, [1, 9, 3, 11, 5, 13, 7, 15]);
74626        transmute((a1, b1))
74627    }
74628}
74629#[doc = "Transpose elements"]
74630#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrnq_u8)"]
74631#[inline]
74632#[target_feature(enable = "neon")]
74633#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
74634#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
74635#[cfg_attr(
74636    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74637    assert_instr(trn1)
74638)]
74639#[cfg_attr(
74640    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74641    assert_instr(trn2)
74642)]
74643#[cfg_attr(
74644    not(target_arch = "arm"),
74645    stable(feature = "neon_intrinsics", since = "1.59.0")
74646)]
74647#[cfg_attr(
74648    target_arch = "arm",
74649    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
74650)]
74651pub fn vtrnq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16x2_t {
74652    unsafe {
74653        let a1: uint8x16_t = simd_shuffle!(
74654            a,
74655            b,
74656            [0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30]
74657        );
74658        let b1: uint8x16_t = simd_shuffle!(
74659            a,
74660            b,
74661            [1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31]
74662        );
74663        transmute((a1, b1))
74664    }
74665}
74666#[doc = "Transpose elements"]
74667#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrn_u16)"]
74668#[inline]
74669#[target_feature(enable = "neon")]
74670#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
74671#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
74672#[cfg_attr(
74673    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74674    assert_instr(trn1)
74675)]
74676#[cfg_attr(
74677    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74678    assert_instr(trn2)
74679)]
74680#[cfg_attr(
74681    not(target_arch = "arm"),
74682    stable(feature = "neon_intrinsics", since = "1.59.0")
74683)]
74684#[cfg_attr(
74685    target_arch = "arm",
74686    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
74687)]
74688pub fn vtrn_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4x2_t {
74689    unsafe {
74690        let a1: uint16x4_t = simd_shuffle!(a, b, [0, 4, 2, 6]);
74691        let b1: uint16x4_t = simd_shuffle!(a, b, [1, 5, 3, 7]);
74692        transmute((a1, b1))
74693    }
74694}
74695#[doc = "Transpose elements"]
74696#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrnq_u16)"]
74697#[inline]
74698#[target_feature(enable = "neon")]
74699#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
74700#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
74701#[cfg_attr(
74702    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74703    assert_instr(trn1)
74704)]
74705#[cfg_attr(
74706    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74707    assert_instr(trn2)
74708)]
74709#[cfg_attr(
74710    not(target_arch = "arm"),
74711    stable(feature = "neon_intrinsics", since = "1.59.0")
74712)]
74713#[cfg_attr(
74714    target_arch = "arm",
74715    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
74716)]
74717pub fn vtrnq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8x2_t {
74718    unsafe {
74719        let a1: uint16x8_t = simd_shuffle!(a, b, [0, 8, 2, 10, 4, 12, 6, 14]);
74720        let b1: uint16x8_t = simd_shuffle!(a, b, [1, 9, 3, 11, 5, 13, 7, 15]);
74721        transmute((a1, b1))
74722    }
74723}
74724#[doc = "Transpose elements"]
74725#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrnq_u32)"]
74726#[inline]
74727#[target_feature(enable = "neon")]
74728#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
74729#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
74730#[cfg_attr(
74731    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74732    assert_instr(trn1)
74733)]
74734#[cfg_attr(
74735    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74736    assert_instr(trn2)
74737)]
74738#[cfg_attr(
74739    not(target_arch = "arm"),
74740    stable(feature = "neon_intrinsics", since = "1.59.0")
74741)]
74742#[cfg_attr(
74743    target_arch = "arm",
74744    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
74745)]
74746pub fn vtrnq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4x2_t {
74747    unsafe {
74748        let a1: uint32x4_t = simd_shuffle!(a, b, [0, 4, 2, 6]);
74749        let b1: uint32x4_t = simd_shuffle!(a, b, [1, 5, 3, 7]);
74750        transmute((a1, b1))
74751    }
74752}
74753#[doc = "Transpose elements"]
74754#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrn_p8)"]
74755#[inline]
74756#[target_feature(enable = "neon")]
74757#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
74758#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
74759#[cfg_attr(
74760    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74761    assert_instr(trn1)
74762)]
74763#[cfg_attr(
74764    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74765    assert_instr(trn2)
74766)]
74767#[cfg_attr(
74768    not(target_arch = "arm"),
74769    stable(feature = "neon_intrinsics", since = "1.59.0")
74770)]
74771#[cfg_attr(
74772    target_arch = "arm",
74773    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
74774)]
74775pub fn vtrn_p8(a: poly8x8_t, b: poly8x8_t) -> poly8x8x2_t {
74776    unsafe {
74777        let a1: poly8x8_t = simd_shuffle!(a, b, [0, 8, 2, 10, 4, 12, 6, 14]);
74778        let b1: poly8x8_t = simd_shuffle!(a, b, [1, 9, 3, 11, 5, 13, 7, 15]);
74779        transmute((a1, b1))
74780    }
74781}
74782#[doc = "Transpose elements"]
74783#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrnq_p8)"]
74784#[inline]
74785#[target_feature(enable = "neon")]
74786#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
74787#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
74788#[cfg_attr(
74789    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74790    assert_instr(trn1)
74791)]
74792#[cfg_attr(
74793    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74794    assert_instr(trn2)
74795)]
74796#[cfg_attr(
74797    not(target_arch = "arm"),
74798    stable(feature = "neon_intrinsics", since = "1.59.0")
74799)]
74800#[cfg_attr(
74801    target_arch = "arm",
74802    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
74803)]
74804pub fn vtrnq_p8(a: poly8x16_t, b: poly8x16_t) -> poly8x16x2_t {
74805    unsafe {
74806        let a1: poly8x16_t = simd_shuffle!(
74807            a,
74808            b,
74809            [0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30]
74810        );
74811        let b1: poly8x16_t = simd_shuffle!(
74812            a,
74813            b,
74814            [1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31]
74815        );
74816        transmute((a1, b1))
74817    }
74818}
74819#[doc = "Transpose elements"]
74820#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrn_p16)"]
74821#[inline]
74822#[target_feature(enable = "neon")]
74823#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
74824#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
74825#[cfg_attr(
74826    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74827    assert_instr(trn1)
74828)]
74829#[cfg_attr(
74830    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74831    assert_instr(trn2)
74832)]
74833#[cfg_attr(
74834    not(target_arch = "arm"),
74835    stable(feature = "neon_intrinsics", since = "1.59.0")
74836)]
74837#[cfg_attr(
74838    target_arch = "arm",
74839    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
74840)]
74841pub fn vtrn_p16(a: poly16x4_t, b: poly16x4_t) -> poly16x4x2_t {
74842    unsafe {
74843        let a1: poly16x4_t = simd_shuffle!(a, b, [0, 4, 2, 6]);
74844        let b1: poly16x4_t = simd_shuffle!(a, b, [1, 5, 3, 7]);
74845        transmute((a1, b1))
74846    }
74847}
74848#[doc = "Transpose elements"]
74849#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrnq_p16)"]
74850#[inline]
74851#[target_feature(enable = "neon")]
74852#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
74853#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
74854#[cfg_attr(
74855    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74856    assert_instr(trn1)
74857)]
74858#[cfg_attr(
74859    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74860    assert_instr(trn2)
74861)]
74862#[cfg_attr(
74863    not(target_arch = "arm"),
74864    stable(feature = "neon_intrinsics", since = "1.59.0")
74865)]
74866#[cfg_attr(
74867    target_arch = "arm",
74868    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
74869)]
74870pub fn vtrnq_p16(a: poly16x8_t, b: poly16x8_t) -> poly16x8x2_t {
74871    unsafe {
74872        let a1: poly16x8_t = simd_shuffle!(a, b, [0, 8, 2, 10, 4, 12, 6, 14]);
74873        let b1: poly16x8_t = simd_shuffle!(a, b, [1, 9, 3, 11, 5, 13, 7, 15]);
74874        transmute((a1, b1))
74875    }
74876}
74877#[doc = "Signed compare bitwise Test bits nonzero"]
74878#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtst_s8)"]
74879#[inline]
74880#[target_feature(enable = "neon")]
74881#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
74882#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
74883#[cfg_attr(
74884    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74885    assert_instr(cmtst)
74886)]
74887#[cfg_attr(
74888    not(target_arch = "arm"),
74889    stable(feature = "neon_intrinsics", since = "1.59.0")
74890)]
74891#[cfg_attr(
74892    target_arch = "arm",
74893    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
74894)]
74895pub fn vtst_s8(a: int8x8_t, b: int8x8_t) -> uint8x8_t {
74896    unsafe {
74897        let c: int8x8_t = simd_and(a, b);
74898        let d: i8x8 = i8x8::new(0, 0, 0, 0, 0, 0, 0, 0);
74899        simd_ne(c, transmute(d))
74900    }
74901}
74902#[doc = "Signed compare bitwise Test bits nonzero"]
74903#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtstq_s8)"]
74904#[inline]
74905#[target_feature(enable = "neon")]
74906#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
74907#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
74908#[cfg_attr(
74909    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74910    assert_instr(cmtst)
74911)]
74912#[cfg_attr(
74913    not(target_arch = "arm"),
74914    stable(feature = "neon_intrinsics", since = "1.59.0")
74915)]
74916#[cfg_attr(
74917    target_arch = "arm",
74918    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
74919)]
74920pub fn vtstq_s8(a: int8x16_t, b: int8x16_t) -> uint8x16_t {
74921    unsafe {
74922        let c: int8x16_t = simd_and(a, b);
74923        let d: i8x16 = i8x16::new(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
74924        simd_ne(c, transmute(d))
74925    }
74926}
74927#[doc = "Signed compare bitwise Test bits nonzero"]
74928#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtst_s16)"]
74929#[inline]
74930#[target_feature(enable = "neon")]
74931#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
74932#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
74933#[cfg_attr(
74934    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74935    assert_instr(cmtst)
74936)]
74937#[cfg_attr(
74938    not(target_arch = "arm"),
74939    stable(feature = "neon_intrinsics", since = "1.59.0")
74940)]
74941#[cfg_attr(
74942    target_arch = "arm",
74943    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
74944)]
74945pub fn vtst_s16(a: int16x4_t, b: int16x4_t) -> uint16x4_t {
74946    unsafe {
74947        let c: int16x4_t = simd_and(a, b);
74948        let d: i16x4 = i16x4::new(0, 0, 0, 0);
74949        simd_ne(c, transmute(d))
74950    }
74951}
74952#[doc = "Signed compare bitwise Test bits nonzero"]
74953#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtstq_s16)"]
74954#[inline]
74955#[target_feature(enable = "neon")]
74956#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
74957#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
74958#[cfg_attr(
74959    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74960    assert_instr(cmtst)
74961)]
74962#[cfg_attr(
74963    not(target_arch = "arm"),
74964    stable(feature = "neon_intrinsics", since = "1.59.0")
74965)]
74966#[cfg_attr(
74967    target_arch = "arm",
74968    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
74969)]
74970pub fn vtstq_s16(a: int16x8_t, b: int16x8_t) -> uint16x8_t {
74971    unsafe {
74972        let c: int16x8_t = simd_and(a, b);
74973        let d: i16x8 = i16x8::new(0, 0, 0, 0, 0, 0, 0, 0);
74974        simd_ne(c, transmute(d))
74975    }
74976}
74977#[doc = "Signed compare bitwise Test bits nonzero"]
74978#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtst_s32)"]
74979#[inline]
74980#[target_feature(enable = "neon")]
74981#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
74982#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
74983#[cfg_attr(
74984    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74985    assert_instr(cmtst)
74986)]
74987#[cfg_attr(
74988    not(target_arch = "arm"),
74989    stable(feature = "neon_intrinsics", since = "1.59.0")
74990)]
74991#[cfg_attr(
74992    target_arch = "arm",
74993    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
74994)]
74995pub fn vtst_s32(a: int32x2_t, b: int32x2_t) -> uint32x2_t {
74996    unsafe {
74997        let c: int32x2_t = simd_and(a, b);
74998        let d: i32x2 = i32x2::new(0, 0);
74999        simd_ne(c, transmute(d))
75000    }
75001}
75002#[doc = "Signed compare bitwise Test bits nonzero"]
75003#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtstq_s32)"]
75004#[inline]
75005#[target_feature(enable = "neon")]
75006#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
75007#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
75008#[cfg_attr(
75009    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
75010    assert_instr(cmtst)
75011)]
75012#[cfg_attr(
75013    not(target_arch = "arm"),
75014    stable(feature = "neon_intrinsics", since = "1.59.0")
75015)]
75016#[cfg_attr(
75017    target_arch = "arm",
75018    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
75019)]
75020pub fn vtstq_s32(a: int32x4_t, b: int32x4_t) -> uint32x4_t {
75021    unsafe {
75022        let c: int32x4_t = simd_and(a, b);
75023        let d: i32x4 = i32x4::new(0, 0, 0, 0);
75024        simd_ne(c, transmute(d))
75025    }
75026}
75027#[doc = "Signed compare bitwise Test bits nonzero"]
75028#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtst_p8)"]
75029#[inline]
75030#[target_feature(enable = "neon")]
75031#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
75032#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
75033#[cfg_attr(
75034    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
75035    assert_instr(cmtst)
75036)]
75037#[cfg_attr(
75038    not(target_arch = "arm"),
75039    stable(feature = "neon_intrinsics", since = "1.59.0")
75040)]
75041#[cfg_attr(
75042    target_arch = "arm",
75043    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
75044)]
75045pub fn vtst_p8(a: poly8x8_t, b: poly8x8_t) -> uint8x8_t {
75046    unsafe {
75047        let c: poly8x8_t = simd_and(a, b);
75048        let d: i8x8 = i8x8::new(0, 0, 0, 0, 0, 0, 0, 0);
75049        simd_ne(c, transmute(d))
75050    }
75051}
75052#[doc = "Signed compare bitwise Test bits nonzero"]
75053#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtstq_p8)"]
75054#[inline]
75055#[target_feature(enable = "neon")]
75056#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
75057#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
75058#[cfg_attr(
75059    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
75060    assert_instr(cmtst)
75061)]
75062#[cfg_attr(
75063    not(target_arch = "arm"),
75064    stable(feature = "neon_intrinsics", since = "1.59.0")
75065)]
75066#[cfg_attr(
75067    target_arch = "arm",
75068    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
75069)]
75070pub fn vtstq_p8(a: poly8x16_t, b: poly8x16_t) -> uint8x16_t {
75071    unsafe {
75072        let c: poly8x16_t = simd_and(a, b);
75073        let d: i8x16 = i8x16::new(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
75074        simd_ne(c, transmute(d))
75075    }
75076}
75077#[doc = "Signed compare bitwise Test bits nonzero"]
75078#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtst_p16)"]
75079#[inline]
75080#[target_feature(enable = "neon")]
75081#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
75082#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
75083#[cfg_attr(
75084    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
75085    assert_instr(cmtst)
75086)]
75087#[cfg_attr(
75088    not(target_arch = "arm"),
75089    stable(feature = "neon_intrinsics", since = "1.59.0")
75090)]
75091#[cfg_attr(
75092    target_arch = "arm",
75093    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
75094)]
75095pub fn vtst_p16(a: poly16x4_t, b: poly16x4_t) -> uint16x4_t {
75096    unsafe {
75097        let c: poly16x4_t = simd_and(a, b);
75098        let d: i16x4 = i16x4::new(0, 0, 0, 0);
75099        simd_ne(c, transmute(d))
75100    }
75101}
75102#[doc = "Signed compare bitwise Test bits nonzero"]
75103#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtstq_p16)"]
75104#[inline]
75105#[target_feature(enable = "neon")]
75106#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
75107#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
75108#[cfg_attr(
75109    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
75110    assert_instr(cmtst)
75111)]
75112#[cfg_attr(
75113    not(target_arch = "arm"),
75114    stable(feature = "neon_intrinsics", since = "1.59.0")
75115)]
75116#[cfg_attr(
75117    target_arch = "arm",
75118    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
75119)]
75120pub fn vtstq_p16(a: poly16x8_t, b: poly16x8_t) -> uint16x8_t {
75121    unsafe {
75122        let c: poly16x8_t = simd_and(a, b);
75123        let d: i16x8 = i16x8::new(0, 0, 0, 0, 0, 0, 0, 0);
75124        simd_ne(c, transmute(d))
75125    }
75126}
75127#[doc = "Unsigned compare bitwise Test bits nonzero"]
75128#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtst_u8)"]
75129#[inline]
75130#[target_feature(enable = "neon")]
75131#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
75132#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
75133#[cfg_attr(
75134    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
75135    assert_instr(cmtst)
75136)]
75137#[cfg_attr(
75138    not(target_arch = "arm"),
75139    stable(feature = "neon_intrinsics", since = "1.59.0")
75140)]
75141#[cfg_attr(
75142    target_arch = "arm",
75143    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
75144)]
75145pub fn vtst_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
75146    unsafe {
75147        let c: uint8x8_t = simd_and(a, b);
75148        let d: u8x8 = u8x8::new(0, 0, 0, 0, 0, 0, 0, 0);
75149        simd_ne(c, transmute(d))
75150    }
75151}
75152#[doc = "Unsigned compare bitwise Test bits nonzero"]
75153#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtstq_u8)"]
75154#[inline]
75155#[target_feature(enable = "neon")]
75156#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
75157#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
75158#[cfg_attr(
75159    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
75160    assert_instr(cmtst)
75161)]
75162#[cfg_attr(
75163    not(target_arch = "arm"),
75164    stable(feature = "neon_intrinsics", since = "1.59.0")
75165)]
75166#[cfg_attr(
75167    target_arch = "arm",
75168    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
75169)]
75170pub fn vtstq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
75171    unsafe {
75172        let c: uint8x16_t = simd_and(a, b);
75173        let d: u8x16 = u8x16::new(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
75174        simd_ne(c, transmute(d))
75175    }
75176}
75177#[doc = "Unsigned compare bitwise Test bits nonzero"]
75178#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtst_u16)"]
75179#[inline]
75180#[target_feature(enable = "neon")]
75181#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
75182#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
75183#[cfg_attr(
75184    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
75185    assert_instr(cmtst)
75186)]
75187#[cfg_attr(
75188    not(target_arch = "arm"),
75189    stable(feature = "neon_intrinsics", since = "1.59.0")
75190)]
75191#[cfg_attr(
75192    target_arch = "arm",
75193    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
75194)]
75195pub fn vtst_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
75196    unsafe {
75197        let c: uint16x4_t = simd_and(a, b);
75198        let d: u16x4 = u16x4::new(0, 0, 0, 0);
75199        simd_ne(c, transmute(d))
75200    }
75201}
75202#[doc = "Unsigned compare bitwise Test bits nonzero"]
75203#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtstq_u16)"]
75204#[inline]
75205#[target_feature(enable = "neon")]
75206#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
75207#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
75208#[cfg_attr(
75209    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
75210    assert_instr(cmtst)
75211)]
75212#[cfg_attr(
75213    not(target_arch = "arm"),
75214    stable(feature = "neon_intrinsics", since = "1.59.0")
75215)]
75216#[cfg_attr(
75217    target_arch = "arm",
75218    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
75219)]
75220pub fn vtstq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
75221    unsafe {
75222        let c: uint16x8_t = simd_and(a, b);
75223        let d: u16x8 = u16x8::new(0, 0, 0, 0, 0, 0, 0, 0);
75224        simd_ne(c, transmute(d))
75225    }
75226}
75227#[doc = "Unsigned compare bitwise Test bits nonzero"]
75228#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtst_u32)"]
75229#[inline]
75230#[target_feature(enable = "neon")]
75231#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
75232#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
75233#[cfg_attr(
75234    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
75235    assert_instr(cmtst)
75236)]
75237#[cfg_attr(
75238    not(target_arch = "arm"),
75239    stable(feature = "neon_intrinsics", since = "1.59.0")
75240)]
75241#[cfg_attr(
75242    target_arch = "arm",
75243    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
75244)]
75245pub fn vtst_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
75246    unsafe {
75247        let c: uint32x2_t = simd_and(a, b);
75248        let d: u32x2 = u32x2::new(0, 0);
75249        simd_ne(c, transmute(d))
75250    }
75251}
75252#[doc = "Unsigned compare bitwise Test bits nonzero"]
75253#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtstq_u32)"]
75254#[inline]
75255#[target_feature(enable = "neon")]
75256#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
75257#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
75258#[cfg_attr(
75259    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
75260    assert_instr(cmtst)
75261)]
75262#[cfg_attr(
75263    not(target_arch = "arm"),
75264    stable(feature = "neon_intrinsics", since = "1.59.0")
75265)]
75266#[cfg_attr(
75267    target_arch = "arm",
75268    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
75269)]
75270pub fn vtstq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
75271    unsafe {
75272        let c: uint32x4_t = simd_and(a, b);
75273        let d: u32x4 = u32x4::new(0, 0, 0, 0);
75274        simd_ne(c, transmute(d))
75275    }
75276}
75277#[doc = "Dot product index form with unsigned and signed integers"]
75278#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vusdot_lane_s32)"]
75279#[inline]
75280#[cfg(target_endian = "little")]
75281#[target_feature(enable = "neon,i8mm")]
75282#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
75283#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vusdot, LANE = 0))]
75284#[cfg_attr(
75285    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
75286    assert_instr(usdot, LANE = 0)
75287)]
75288#[rustc_legacy_const_generics(3)]
75289#[cfg_attr(
75290    not(target_arch = "arm"),
75291    unstable(feature = "stdarch_neon_i8mm", issue = "117223")
75292)]
75293#[cfg_attr(
75294    target_arch = "arm",
75295    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
75296)]
75297pub fn vusdot_lane_s32<const LANE: i32>(a: int32x2_t, b: uint8x8_t, c: int8x8_t) -> int32x2_t {
75298    static_assert_uimm_bits!(LANE, 1);
75299    unsafe {
75300        let c: int32x2_t = transmute(c);
75301        let c: int32x2_t = simd_shuffle!(c, c, [LANE as u32, LANE as u32]);
75302        vusdot_s32(a, b, transmute(c))
75303    }
75304}
75305#[doc = "Dot product index form with unsigned and signed integers"]
75306#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vusdot_lane_s32)"]
75307#[inline]
75308#[cfg(target_endian = "big")]
75309#[target_feature(enable = "neon,i8mm")]
75310#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
75311#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vusdot, LANE = 0))]
75312#[cfg_attr(
75313    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
75314    assert_instr(usdot, LANE = 0)
75315)]
75316#[rustc_legacy_const_generics(3)]
75317#[cfg_attr(
75318    not(target_arch = "arm"),
75319    unstable(feature = "stdarch_neon_i8mm", issue = "117223")
75320)]
75321#[cfg_attr(
75322    target_arch = "arm",
75323    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
75324)]
75325pub fn vusdot_lane_s32<const LANE: i32>(a: int32x2_t, b: uint8x8_t, c: int8x8_t) -> int32x2_t {
75326    static_assert_uimm_bits!(LANE, 1);
75327    let a: int32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
75328    let b: uint8x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
75329    let c: int8x8_t = unsafe { simd_shuffle!(c, c, [7, 6, 5, 4, 3, 2, 1, 0]) };
75330    unsafe {
75331        let c: int32x2_t = transmute(c);
75332        let c: int32x2_t = simd_shuffle!(c, c, [LANE as u32, LANE as u32]);
75333        let ret_val: int32x2_t = vusdot_s32(a, b, transmute(c));
75334        simd_shuffle!(ret_val, ret_val, [1, 0])
75335    }
75336}
75337#[doc = "Dot product index form with unsigned and signed integers"]
75338#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vusdotq_lane_s32)"]
75339#[inline]
75340#[cfg(target_endian = "little")]
75341#[target_feature(enable = "neon,i8mm")]
75342#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
75343#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vusdot, LANE = 0))]
75344#[cfg_attr(
75345    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
75346    assert_instr(usdot, LANE = 0)
75347)]
75348#[rustc_legacy_const_generics(3)]
75349#[cfg_attr(
75350    not(target_arch = "arm"),
75351    unstable(feature = "stdarch_neon_i8mm", issue = "117223")
75352)]
75353#[cfg_attr(
75354    target_arch = "arm",
75355    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
75356)]
75357pub fn vusdotq_lane_s32<const LANE: i32>(a: int32x4_t, b: uint8x16_t, c: int8x8_t) -> int32x4_t {
75358    static_assert_uimm_bits!(LANE, 1);
75359    unsafe {
75360        let c: int32x2_t = transmute(c);
75361        let c: int32x4_t =
75362            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]);
75363        vusdotq_s32(a, b, transmute(c))
75364    }
75365}
75366#[doc = "Dot product index form with unsigned and signed integers"]
75367#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vusdotq_lane_s32)"]
75368#[inline]
75369#[cfg(target_endian = "big")]
75370#[target_feature(enable = "neon,i8mm")]
75371#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
75372#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vusdot, LANE = 0))]
75373#[cfg_attr(
75374    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
75375    assert_instr(usdot, LANE = 0)
75376)]
75377#[rustc_legacy_const_generics(3)]
75378#[cfg_attr(
75379    not(target_arch = "arm"),
75380    unstable(feature = "stdarch_neon_i8mm", issue = "117223")
75381)]
75382#[cfg_attr(
75383    target_arch = "arm",
75384    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
75385)]
75386pub fn vusdotq_lane_s32<const LANE: i32>(a: int32x4_t, b: uint8x16_t, c: int8x8_t) -> int32x4_t {
75387    static_assert_uimm_bits!(LANE, 1);
75388    let a: int32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
75389    let b: uint8x16_t =
75390        unsafe { simd_shuffle!(b, b, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
75391    let c: int8x8_t = unsafe { simd_shuffle!(c, c, [7, 6, 5, 4, 3, 2, 1, 0]) };
75392    unsafe {
75393        let c: int32x2_t = transmute(c);
75394        let c: int32x4_t =
75395            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]);
75396        let ret_val: int32x4_t = vusdotq_s32(a, b, transmute(c));
75397        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
75398    }
75399}
75400#[doc = "Dot product vector form with unsigned and signed integers"]
75401#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vusdot_s32)"]
75402#[inline]
75403#[target_feature(enable = "neon,i8mm")]
75404#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
75405#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vusdot))]
75406#[cfg_attr(
75407    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
75408    assert_instr(usdot)
75409)]
75410#[cfg_attr(
75411    not(target_arch = "arm"),
75412    unstable(feature = "stdarch_neon_i8mm", issue = "117223")
75413)]
75414#[cfg_attr(
75415    target_arch = "arm",
75416    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
75417)]
75418pub fn vusdot_s32(a: int32x2_t, b: uint8x8_t, c: int8x8_t) -> int32x2_t {
75419    unsafe extern "unadjusted" {
75420        #[cfg_attr(
75421            any(target_arch = "aarch64", target_arch = "arm64ec"),
75422            link_name = "llvm.aarch64.neon.usdot.v2i32.v8i8"
75423        )]
75424        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.usdot.v2i32.v8i8")]
75425        fn _vusdot_s32(a: int32x2_t, b: uint8x8_t, c: int8x8_t) -> int32x2_t;
75426    }
75427    unsafe { _vusdot_s32(a, b, c) }
75428}
75429#[doc = "Dot product vector form with unsigned and signed integers"]
75430#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vusdotq_s32)"]
75431#[inline]
75432#[target_feature(enable = "neon,i8mm")]
75433#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
75434#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vusdot))]
75435#[cfg_attr(
75436    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
75437    assert_instr(usdot)
75438)]
75439#[cfg_attr(
75440    not(target_arch = "arm"),
75441    unstable(feature = "stdarch_neon_i8mm", issue = "117223")
75442)]
75443#[cfg_attr(
75444    target_arch = "arm",
75445    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
75446)]
75447pub fn vusdotq_s32(a: int32x4_t, b: uint8x16_t, c: int8x16_t) -> int32x4_t {
75448    unsafe extern "unadjusted" {
75449        #[cfg_attr(
75450            any(target_arch = "aarch64", target_arch = "arm64ec"),
75451            link_name = "llvm.aarch64.neon.usdot.v4i32.v16i8"
75452        )]
75453        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.usdot.v4i32.v16i8")]
75454        fn _vusdotq_s32(a: int32x4_t, b: uint8x16_t, c: int8x16_t) -> int32x4_t;
75455    }
75456    unsafe { _vusdotq_s32(a, b, c) }
75457}
75458#[doc = "Unsigned and signed 8-bit integer matrix multiply-accumulate"]
75459#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vusmmlaq_s32)"]
75460#[inline]
75461#[target_feature(enable = "neon,i8mm")]
75462#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
75463#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
75464#[cfg_attr(
75465    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
75466    assert_instr(usmmla)
75467)]
75468#[cfg_attr(
75469    not(target_arch = "arm"),
75470    unstable(feature = "stdarch_neon_i8mm", issue = "117223")
75471)]
75472#[cfg_attr(
75473    target_arch = "arm",
75474    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
75475)]
75476pub fn vusmmlaq_s32(a: int32x4_t, b: uint8x16_t, c: int8x16_t) -> int32x4_t {
75477    unsafe extern "unadjusted" {
75478        #[cfg_attr(
75479            any(target_arch = "aarch64", target_arch = "arm64ec"),
75480            link_name = "llvm.aarch64.neon.usmmla.v4i32.v16i8"
75481        )]
75482        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.usmmla.v4i32.v16i8")]
75483        fn _vusmmlaq_s32(a: int32x4_t, b: uint8x16_t, c: int8x16_t) -> int32x4_t;
75484    }
75485    unsafe { _vusmmlaq_s32(a, b, c) }
75486}
75487#[doc = "Unzip vectors"]
75488#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzp_f16)"]
75489#[inline]
75490#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
75491#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
75492#[cfg_attr(
75493    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
75494    assert_instr(uzp1)
75495)]
75496#[cfg_attr(
75497    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
75498    assert_instr(uzp2)
75499)]
75500#[target_feature(enable = "neon,fp16")]
75501#[cfg_attr(
75502    not(target_arch = "arm"),
75503    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
75504)]
75505#[cfg_attr(
75506    target_arch = "arm",
75507    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
75508)]
75509#[cfg(not(target_arch = "arm64ec"))]
75510pub fn vuzp_f16(a: float16x4_t, b: float16x4_t) -> float16x4x2_t {
75511    unsafe {
75512        let a0: float16x4_t = simd_shuffle!(a, b, [0, 2, 4, 6]);
75513        let b0: float16x4_t = simd_shuffle!(a, b, [1, 3, 5, 7]);
75514        transmute((a0, b0))
75515    }
75516}
75517#[doc = "Unzip vectors"]
75518#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzpq_f16)"]
75519#[inline]
75520#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
75521#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
75522#[cfg_attr(
75523    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
75524    assert_instr(uzp1)
75525)]
75526#[cfg_attr(
75527    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
75528    assert_instr(uzp2)
75529)]
75530#[target_feature(enable = "neon,fp16")]
75531#[cfg_attr(
75532    not(target_arch = "arm"),
75533    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
75534)]
75535#[cfg_attr(
75536    target_arch = "arm",
75537    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
75538)]
75539#[cfg(not(target_arch = "arm64ec"))]
75540pub fn vuzpq_f16(a: float16x8_t, b: float16x8_t) -> float16x8x2_t {
75541    unsafe {
75542        let a0: float16x8_t = simd_shuffle!(a, b, [0, 2, 4, 6, 8, 10, 12, 14]);
75543        let b0: float16x8_t = simd_shuffle!(a, b, [1, 3, 5, 7, 9, 11, 13, 15]);
75544        transmute((a0, b0))
75545    }
75546}
75547#[doc = "Unzip vectors"]
75548#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzp_f32)"]
75549#[inline]
75550#[target_feature(enable = "neon")]
75551#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
75552#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
75553#[cfg_attr(
75554    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
75555    assert_instr(zip1)
75556)]
75557#[cfg_attr(
75558    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
75559    assert_instr(zip2)
75560)]
75561#[cfg_attr(
75562    not(target_arch = "arm"),
75563    stable(feature = "neon_intrinsics", since = "1.59.0")
75564)]
75565#[cfg_attr(
75566    target_arch = "arm",
75567    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
75568)]
75569pub fn vuzp_f32(a: float32x2_t, b: float32x2_t) -> float32x2x2_t {
75570    unsafe {
75571        let a0: float32x2_t = simd_shuffle!(a, b, [0, 2]);
75572        let b0: float32x2_t = simd_shuffle!(a, b, [1, 3]);
75573        transmute((a0, b0))
75574    }
75575}
75576#[doc = "Unzip vectors"]
75577#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzp_s32)"]
75578#[inline]
75579#[target_feature(enable = "neon")]
75580#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
75581#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
75582#[cfg_attr(
75583    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
75584    assert_instr(zip1)
75585)]
75586#[cfg_attr(
75587    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
75588    assert_instr(zip2)
75589)]
75590#[cfg_attr(
75591    not(target_arch = "arm"),
75592    stable(feature = "neon_intrinsics", since = "1.59.0")
75593)]
75594#[cfg_attr(
75595    target_arch = "arm",
75596    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
75597)]
75598pub fn vuzp_s32(a: int32x2_t, b: int32x2_t) -> int32x2x2_t {
75599    unsafe {
75600        let a0: int32x2_t = simd_shuffle!(a, b, [0, 2]);
75601        let b0: int32x2_t = simd_shuffle!(a, b, [1, 3]);
75602        transmute((a0, b0))
75603    }
75604}
75605#[doc = "Unzip vectors"]
75606#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzp_u32)"]
75607#[inline]
75608#[target_feature(enable = "neon")]
75609#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
75610#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
75611#[cfg_attr(
75612    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
75613    assert_instr(zip1)
75614)]
75615#[cfg_attr(
75616    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
75617    assert_instr(zip2)
75618)]
75619#[cfg_attr(
75620    not(target_arch = "arm"),
75621    stable(feature = "neon_intrinsics", since = "1.59.0")
75622)]
75623#[cfg_attr(
75624    target_arch = "arm",
75625    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
75626)]
75627pub fn vuzp_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2x2_t {
75628    unsafe {
75629        let a0: uint32x2_t = simd_shuffle!(a, b, [0, 2]);
75630        let b0: uint32x2_t = simd_shuffle!(a, b, [1, 3]);
75631        transmute((a0, b0))
75632    }
75633}
75634#[doc = "Unzip vectors"]
75635#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzpq_f32)"]
75636#[inline]
75637#[target_feature(enable = "neon")]
75638#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
75639#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
75640#[cfg_attr(
75641    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
75642    assert_instr(uzp1)
75643)]
75644#[cfg_attr(
75645    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
75646    assert_instr(uzp2)
75647)]
75648#[cfg_attr(
75649    not(target_arch = "arm"),
75650    stable(feature = "neon_intrinsics", since = "1.59.0")
75651)]
75652#[cfg_attr(
75653    target_arch = "arm",
75654    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
75655)]
75656pub fn vuzpq_f32(a: float32x4_t, b: float32x4_t) -> float32x4x2_t {
75657    unsafe {
75658        let a0: float32x4_t = simd_shuffle!(a, b, [0, 2, 4, 6]);
75659        let b0: float32x4_t = simd_shuffle!(a, b, [1, 3, 5, 7]);
75660        transmute((a0, b0))
75661    }
75662}
75663#[doc = "Unzip vectors"]
75664#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzp_s8)"]
75665#[inline]
75666#[target_feature(enable = "neon")]
75667#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
75668#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
75669#[cfg_attr(
75670    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
75671    assert_instr(uzp1)
75672)]
75673#[cfg_attr(
75674    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
75675    assert_instr(uzp2)
75676)]
75677#[cfg_attr(
75678    not(target_arch = "arm"),
75679    stable(feature = "neon_intrinsics", since = "1.59.0")
75680)]
75681#[cfg_attr(
75682    target_arch = "arm",
75683    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
75684)]
75685pub fn vuzp_s8(a: int8x8_t, b: int8x8_t) -> int8x8x2_t {
75686    unsafe {
75687        let a0: int8x8_t = simd_shuffle!(a, b, [0, 2, 4, 6, 8, 10, 12, 14]);
75688        let b0: int8x8_t = simd_shuffle!(a, b, [1, 3, 5, 7, 9, 11, 13, 15]);
75689        transmute((a0, b0))
75690    }
75691}
75692#[doc = "Unzip vectors"]
75693#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzpq_s8)"]
75694#[inline]
75695#[target_feature(enable = "neon")]
75696#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
75697#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
75698#[cfg_attr(
75699    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
75700    assert_instr(uzp1)
75701)]
75702#[cfg_attr(
75703    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
75704    assert_instr(uzp2)
75705)]
75706#[cfg_attr(
75707    not(target_arch = "arm"),
75708    stable(feature = "neon_intrinsics", since = "1.59.0")
75709)]
75710#[cfg_attr(
75711    target_arch = "arm",
75712    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
75713)]
75714pub fn vuzpq_s8(a: int8x16_t, b: int8x16_t) -> int8x16x2_t {
75715    unsafe {
75716        let a0: int8x16_t = simd_shuffle!(
75717            a,
75718            b,
75719            [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30]
75720        );
75721        let b0: int8x16_t = simd_shuffle!(
75722            a,
75723            b,
75724            [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31]
75725        );
75726        transmute((a0, b0))
75727    }
75728}
75729#[doc = "Unzip vectors"]
75730#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzp_s16)"]
75731#[inline]
75732#[target_feature(enable = "neon")]
75733#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
75734#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
75735#[cfg_attr(
75736    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
75737    assert_instr(uzp1)
75738)]
75739#[cfg_attr(
75740    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
75741    assert_instr(uzp2)
75742)]
75743#[cfg_attr(
75744    not(target_arch = "arm"),
75745    stable(feature = "neon_intrinsics", since = "1.59.0")
75746)]
75747#[cfg_attr(
75748    target_arch = "arm",
75749    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
75750)]
75751pub fn vuzp_s16(a: int16x4_t, b: int16x4_t) -> int16x4x2_t {
75752    unsafe {
75753        let a0: int16x4_t = simd_shuffle!(a, b, [0, 2, 4, 6]);
75754        let b0: int16x4_t = simd_shuffle!(a, b, [1, 3, 5, 7]);
75755        transmute((a0, b0))
75756    }
75757}
75758#[doc = "Unzip vectors"]
75759#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzpq_s16)"]
75760#[inline]
75761#[target_feature(enable = "neon")]
75762#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
75763#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
75764#[cfg_attr(
75765    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
75766    assert_instr(uzp1)
75767)]
75768#[cfg_attr(
75769    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
75770    assert_instr(uzp2)
75771)]
75772#[cfg_attr(
75773    not(target_arch = "arm"),
75774    stable(feature = "neon_intrinsics", since = "1.59.0")
75775)]
75776#[cfg_attr(
75777    target_arch = "arm",
75778    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
75779)]
75780pub fn vuzpq_s16(a: int16x8_t, b: int16x8_t) -> int16x8x2_t {
75781    unsafe {
75782        let a0: int16x8_t = simd_shuffle!(a, b, [0, 2, 4, 6, 8, 10, 12, 14]);
75783        let b0: int16x8_t = simd_shuffle!(a, b, [1, 3, 5, 7, 9, 11, 13, 15]);
75784        transmute((a0, b0))
75785    }
75786}
75787#[doc = "Unzip vectors"]
75788#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzpq_s32)"]
75789#[inline]
75790#[target_feature(enable = "neon")]
75791#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
75792#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
75793#[cfg_attr(
75794    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
75795    assert_instr(uzp1)
75796)]
75797#[cfg_attr(
75798    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
75799    assert_instr(uzp2)
75800)]
75801#[cfg_attr(
75802    not(target_arch = "arm"),
75803    stable(feature = "neon_intrinsics", since = "1.59.0")
75804)]
75805#[cfg_attr(
75806    target_arch = "arm",
75807    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
75808)]
75809pub fn vuzpq_s32(a: int32x4_t, b: int32x4_t) -> int32x4x2_t {
75810    unsafe {
75811        let a0: int32x4_t = simd_shuffle!(a, b, [0, 2, 4, 6]);
75812        let b0: int32x4_t = simd_shuffle!(a, b, [1, 3, 5, 7]);
75813        transmute((a0, b0))
75814    }
75815}
75816#[doc = "Unzip vectors"]
75817#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzp_u8)"]
75818#[inline]
75819#[target_feature(enable = "neon")]
75820#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
75821#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
75822#[cfg_attr(
75823    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
75824    assert_instr(uzp1)
75825)]
75826#[cfg_attr(
75827    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
75828    assert_instr(uzp2)
75829)]
75830#[cfg_attr(
75831    not(target_arch = "arm"),
75832    stable(feature = "neon_intrinsics", since = "1.59.0")
75833)]
75834#[cfg_attr(
75835    target_arch = "arm",
75836    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
75837)]
75838pub fn vuzp_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8x2_t {
75839    unsafe {
75840        let a0: uint8x8_t = simd_shuffle!(a, b, [0, 2, 4, 6, 8, 10, 12, 14]);
75841        let b0: uint8x8_t = simd_shuffle!(a, b, [1, 3, 5, 7, 9, 11, 13, 15]);
75842        transmute((a0, b0))
75843    }
75844}
75845#[doc = "Unzip vectors"]
75846#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzpq_u8)"]
75847#[inline]
75848#[target_feature(enable = "neon")]
75849#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
75850#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
75851#[cfg_attr(
75852    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
75853    assert_instr(uzp1)
75854)]
75855#[cfg_attr(
75856    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
75857    assert_instr(uzp2)
75858)]
75859#[cfg_attr(
75860    not(target_arch = "arm"),
75861    stable(feature = "neon_intrinsics", since = "1.59.0")
75862)]
75863#[cfg_attr(
75864    target_arch = "arm",
75865    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
75866)]
75867pub fn vuzpq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16x2_t {
75868    unsafe {
75869        let a0: uint8x16_t = simd_shuffle!(
75870            a,
75871            b,
75872            [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30]
75873        );
75874        let b0: uint8x16_t = simd_shuffle!(
75875            a,
75876            b,
75877            [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31]
75878        );
75879        transmute((a0, b0))
75880    }
75881}
75882#[doc = "Unzip vectors"]
75883#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzp_u16)"]
75884#[inline]
75885#[target_feature(enable = "neon")]
75886#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
75887#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
75888#[cfg_attr(
75889    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
75890    assert_instr(uzp1)
75891)]
75892#[cfg_attr(
75893    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
75894    assert_instr(uzp2)
75895)]
75896#[cfg_attr(
75897    not(target_arch = "arm"),
75898    stable(feature = "neon_intrinsics", since = "1.59.0")
75899)]
75900#[cfg_attr(
75901    target_arch = "arm",
75902    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
75903)]
75904pub fn vuzp_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4x2_t {
75905    unsafe {
75906        let a0: uint16x4_t = simd_shuffle!(a, b, [0, 2, 4, 6]);
75907        let b0: uint16x4_t = simd_shuffle!(a, b, [1, 3, 5, 7]);
75908        transmute((a0, b0))
75909    }
75910}
75911#[doc = "Unzip vectors"]
75912#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzpq_u16)"]
75913#[inline]
75914#[target_feature(enable = "neon")]
75915#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
75916#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
75917#[cfg_attr(
75918    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
75919    assert_instr(uzp1)
75920)]
75921#[cfg_attr(
75922    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
75923    assert_instr(uzp2)
75924)]
75925#[cfg_attr(
75926    not(target_arch = "arm"),
75927    stable(feature = "neon_intrinsics", since = "1.59.0")
75928)]
75929#[cfg_attr(
75930    target_arch = "arm",
75931    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
75932)]
75933pub fn vuzpq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8x2_t {
75934    unsafe {
75935        let a0: uint16x8_t = simd_shuffle!(a, b, [0, 2, 4, 6, 8, 10, 12, 14]);
75936        let b0: uint16x8_t = simd_shuffle!(a, b, [1, 3, 5, 7, 9, 11, 13, 15]);
75937        transmute((a0, b0))
75938    }
75939}
75940#[doc = "Unzip vectors"]
75941#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzpq_u32)"]
75942#[inline]
75943#[target_feature(enable = "neon")]
75944#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
75945#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
75946#[cfg_attr(
75947    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
75948    assert_instr(uzp1)
75949)]
75950#[cfg_attr(
75951    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
75952    assert_instr(uzp2)
75953)]
75954#[cfg_attr(
75955    not(target_arch = "arm"),
75956    stable(feature = "neon_intrinsics", since = "1.59.0")
75957)]
75958#[cfg_attr(
75959    target_arch = "arm",
75960    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
75961)]
75962pub fn vuzpq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4x2_t {
75963    unsafe {
75964        let a0: uint32x4_t = simd_shuffle!(a, b, [0, 2, 4, 6]);
75965        let b0: uint32x4_t = simd_shuffle!(a, b, [1, 3, 5, 7]);
75966        transmute((a0, b0))
75967    }
75968}
75969#[doc = "Unzip vectors"]
75970#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzp_p8)"]
75971#[inline]
75972#[target_feature(enable = "neon")]
75973#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
75974#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
75975#[cfg_attr(
75976    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
75977    assert_instr(uzp1)
75978)]
75979#[cfg_attr(
75980    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
75981    assert_instr(uzp2)
75982)]
75983#[cfg_attr(
75984    not(target_arch = "arm"),
75985    stable(feature = "neon_intrinsics", since = "1.59.0")
75986)]
75987#[cfg_attr(
75988    target_arch = "arm",
75989    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
75990)]
75991pub fn vuzp_p8(a: poly8x8_t, b: poly8x8_t) -> poly8x8x2_t {
75992    unsafe {
75993        let a0: poly8x8_t = simd_shuffle!(a, b, [0, 2, 4, 6, 8, 10, 12, 14]);
75994        let b0: poly8x8_t = simd_shuffle!(a, b, [1, 3, 5, 7, 9, 11, 13, 15]);
75995        transmute((a0, b0))
75996    }
75997}
75998#[doc = "Unzip vectors"]
75999#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzpq_p8)"]
76000#[inline]
76001#[target_feature(enable = "neon")]
76002#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
76003#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
76004#[cfg_attr(
76005    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
76006    assert_instr(uzp1)
76007)]
76008#[cfg_attr(
76009    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
76010    assert_instr(uzp2)
76011)]
76012#[cfg_attr(
76013    not(target_arch = "arm"),
76014    stable(feature = "neon_intrinsics", since = "1.59.0")
76015)]
76016#[cfg_attr(
76017    target_arch = "arm",
76018    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
76019)]
76020pub fn vuzpq_p8(a: poly8x16_t, b: poly8x16_t) -> poly8x16x2_t {
76021    unsafe {
76022        let a0: poly8x16_t = simd_shuffle!(
76023            a,
76024            b,
76025            [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30]
76026        );
76027        let b0: poly8x16_t = simd_shuffle!(
76028            a,
76029            b,
76030            [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31]
76031        );
76032        transmute((a0, b0))
76033    }
76034}
76035#[doc = "Unzip vectors"]
76036#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzp_p16)"]
76037#[inline]
76038#[target_feature(enable = "neon")]
76039#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
76040#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
76041#[cfg_attr(
76042    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
76043    assert_instr(uzp1)
76044)]
76045#[cfg_attr(
76046    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
76047    assert_instr(uzp2)
76048)]
76049#[cfg_attr(
76050    not(target_arch = "arm"),
76051    stable(feature = "neon_intrinsics", since = "1.59.0")
76052)]
76053#[cfg_attr(
76054    target_arch = "arm",
76055    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
76056)]
76057pub fn vuzp_p16(a: poly16x4_t, b: poly16x4_t) -> poly16x4x2_t {
76058    unsafe {
76059        let a0: poly16x4_t = simd_shuffle!(a, b, [0, 2, 4, 6]);
76060        let b0: poly16x4_t = simd_shuffle!(a, b, [1, 3, 5, 7]);
76061        transmute((a0, b0))
76062    }
76063}
76064#[doc = "Unzip vectors"]
76065#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzpq_p16)"]
76066#[inline]
76067#[target_feature(enable = "neon")]
76068#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
76069#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
76070#[cfg_attr(
76071    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
76072    assert_instr(uzp1)
76073)]
76074#[cfg_attr(
76075    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
76076    assert_instr(uzp2)
76077)]
76078#[cfg_attr(
76079    not(target_arch = "arm"),
76080    stable(feature = "neon_intrinsics", since = "1.59.0")
76081)]
76082#[cfg_attr(
76083    target_arch = "arm",
76084    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
76085)]
76086pub fn vuzpq_p16(a: poly16x8_t, b: poly16x8_t) -> poly16x8x2_t {
76087    unsafe {
76088        let a0: poly16x8_t = simd_shuffle!(a, b, [0, 2, 4, 6, 8, 10, 12, 14]);
76089        let b0: poly16x8_t = simd_shuffle!(a, b, [1, 3, 5, 7, 9, 11, 13, 15]);
76090        transmute((a0, b0))
76091    }
76092}
76093#[doc = "Zip vectors"]
76094#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzip_f16)"]
76095#[inline]
76096#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
76097#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vzip.16"))]
76098#[cfg_attr(
76099    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
76100    assert_instr(zip1)
76101)]
76102#[cfg_attr(
76103    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
76104    assert_instr(zip2)
76105)]
76106#[target_feature(enable = "neon,fp16")]
76107#[cfg_attr(
76108    not(target_arch = "arm"),
76109    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
76110)]
76111#[cfg_attr(
76112    target_arch = "arm",
76113    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
76114)]
76115#[cfg(not(target_arch = "arm64ec"))]
76116pub fn vzip_f16(a: float16x4_t, b: float16x4_t) -> float16x4x2_t {
76117    unsafe {
76118        let a0: float16x4_t = simd_shuffle!(a, b, [0, 4, 1, 5]);
76119        let b0: float16x4_t = simd_shuffle!(a, b, [2, 6, 3, 7]);
76120        transmute((a0, b0))
76121    }
76122}
76123#[doc = "Zip vectors"]
76124#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzipq_f16)"]
76125#[inline]
76126#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
76127#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vzip.16"))]
76128#[cfg_attr(
76129    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
76130    assert_instr(zip1)
76131)]
76132#[cfg_attr(
76133    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
76134    assert_instr(zip2)
76135)]
76136#[target_feature(enable = "neon,fp16")]
76137#[cfg_attr(
76138    not(target_arch = "arm"),
76139    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
76140)]
76141#[cfg_attr(
76142    target_arch = "arm",
76143    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
76144)]
76145#[cfg(not(target_arch = "arm64ec"))]
76146pub fn vzipq_f16(a: float16x8_t, b: float16x8_t) -> float16x8x2_t {
76147    unsafe {
76148        let a0: float16x8_t = simd_shuffle!(a, b, [0, 8, 1, 9, 2, 10, 3, 11]);
76149        let b0: float16x8_t = simd_shuffle!(a, b, [4, 12, 5, 13, 6, 14, 7, 15]);
76150        transmute((a0, b0))
76151    }
76152}
76153#[doc = "Zip vectors"]
76154#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzip_f32)"]
76155#[inline]
76156#[target_feature(enable = "neon")]
76157#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
76158#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
76159#[cfg_attr(
76160    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
76161    assert_instr(zip1)
76162)]
76163#[cfg_attr(
76164    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
76165    assert_instr(zip2)
76166)]
76167#[cfg_attr(
76168    not(target_arch = "arm"),
76169    stable(feature = "neon_intrinsics", since = "1.59.0")
76170)]
76171#[cfg_attr(
76172    target_arch = "arm",
76173    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
76174)]
76175pub fn vzip_f32(a: float32x2_t, b: float32x2_t) -> float32x2x2_t {
76176    unsafe {
76177        let a0: float32x2_t = simd_shuffle!(a, b, [0, 2]);
76178        let b0: float32x2_t = simd_shuffle!(a, b, [1, 3]);
76179        transmute((a0, b0))
76180    }
76181}
76182#[doc = "Zip vectors"]
76183#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzip_s32)"]
76184#[inline]
76185#[target_feature(enable = "neon")]
76186#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
76187#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
76188#[cfg_attr(
76189    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
76190    assert_instr(zip1)
76191)]
76192#[cfg_attr(
76193    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
76194    assert_instr(zip2)
76195)]
76196#[cfg_attr(
76197    not(target_arch = "arm"),
76198    stable(feature = "neon_intrinsics", since = "1.59.0")
76199)]
76200#[cfg_attr(
76201    target_arch = "arm",
76202    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
76203)]
76204pub fn vzip_s32(a: int32x2_t, b: int32x2_t) -> int32x2x2_t {
76205    unsafe {
76206        let a0: int32x2_t = simd_shuffle!(a, b, [0, 2]);
76207        let b0: int32x2_t = simd_shuffle!(a, b, [1, 3]);
76208        transmute((a0, b0))
76209    }
76210}
76211#[doc = "Zip vectors"]
76212#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzip_u32)"]
76213#[inline]
76214#[target_feature(enable = "neon")]
76215#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
76216#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
76217#[cfg_attr(
76218    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
76219    assert_instr(zip1)
76220)]
76221#[cfg_attr(
76222    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
76223    assert_instr(zip2)
76224)]
76225#[cfg_attr(
76226    not(target_arch = "arm"),
76227    stable(feature = "neon_intrinsics", since = "1.59.0")
76228)]
76229#[cfg_attr(
76230    target_arch = "arm",
76231    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
76232)]
76233pub fn vzip_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2x2_t {
76234    unsafe {
76235        let a0: uint32x2_t = simd_shuffle!(a, b, [0, 2]);
76236        let b0: uint32x2_t = simd_shuffle!(a, b, [1, 3]);
76237        transmute((a0, b0))
76238    }
76239}
76240#[doc = "Zip vectors"]
76241#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzip_s8)"]
76242#[inline]
76243#[target_feature(enable = "neon")]
76244#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
76245#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vzip))]
76246#[cfg_attr(
76247    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
76248    assert_instr(zip1)
76249)]
76250#[cfg_attr(
76251    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
76252    assert_instr(zip2)
76253)]
76254#[cfg_attr(
76255    not(target_arch = "arm"),
76256    stable(feature = "neon_intrinsics", since = "1.59.0")
76257)]
76258#[cfg_attr(
76259    target_arch = "arm",
76260    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
76261)]
76262pub fn vzip_s8(a: int8x8_t, b: int8x8_t) -> int8x8x2_t {
76263    unsafe {
76264        let a0: int8x8_t = simd_shuffle!(a, b, [0, 8, 1, 9, 2, 10, 3, 11]);
76265        let b0: int8x8_t = simd_shuffle!(a, b, [4, 12, 5, 13, 6, 14, 7, 15]);
76266        transmute((a0, b0))
76267    }
76268}
76269#[doc = "Zip vectors"]
76270#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzip_s16)"]
76271#[inline]
76272#[target_feature(enable = "neon")]
76273#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
76274#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vzip))]
76275#[cfg_attr(
76276    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
76277    assert_instr(zip1)
76278)]
76279#[cfg_attr(
76280    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
76281    assert_instr(zip2)
76282)]
76283#[cfg_attr(
76284    not(target_arch = "arm"),
76285    stable(feature = "neon_intrinsics", since = "1.59.0")
76286)]
76287#[cfg_attr(
76288    target_arch = "arm",
76289    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
76290)]
76291pub fn vzip_s16(a: int16x4_t, b: int16x4_t) -> int16x4x2_t {
76292    unsafe {
76293        let a0: int16x4_t = simd_shuffle!(a, b, [0, 4, 1, 5]);
76294        let b0: int16x4_t = simd_shuffle!(a, b, [2, 6, 3, 7]);
76295        transmute((a0, b0))
76296    }
76297}
76298#[doc = "Zip vectors"]
76299#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzip_u8)"]
76300#[inline]
76301#[target_feature(enable = "neon")]
76302#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
76303#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vzip))]
76304#[cfg_attr(
76305    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
76306    assert_instr(zip1)
76307)]
76308#[cfg_attr(
76309    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
76310    assert_instr(zip2)
76311)]
76312#[cfg_attr(
76313    not(target_arch = "arm"),
76314    stable(feature = "neon_intrinsics", since = "1.59.0")
76315)]
76316#[cfg_attr(
76317    target_arch = "arm",
76318    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
76319)]
76320pub fn vzip_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8x2_t {
76321    unsafe {
76322        let a0: uint8x8_t = simd_shuffle!(a, b, [0, 8, 1, 9, 2, 10, 3, 11]);
76323        let b0: uint8x8_t = simd_shuffle!(a, b, [4, 12, 5, 13, 6, 14, 7, 15]);
76324        transmute((a0, b0))
76325    }
76326}
76327#[doc = "Zip vectors"]
76328#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzip_u16)"]
76329#[inline]
76330#[target_feature(enable = "neon")]
76331#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
76332#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vzip))]
76333#[cfg_attr(
76334    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
76335    assert_instr(zip1)
76336)]
76337#[cfg_attr(
76338    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
76339    assert_instr(zip2)
76340)]
76341#[cfg_attr(
76342    not(target_arch = "arm"),
76343    stable(feature = "neon_intrinsics", since = "1.59.0")
76344)]
76345#[cfg_attr(
76346    target_arch = "arm",
76347    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
76348)]
76349pub fn vzip_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4x2_t {
76350    unsafe {
76351        let a0: uint16x4_t = simd_shuffle!(a, b, [0, 4, 1, 5]);
76352        let b0: uint16x4_t = simd_shuffle!(a, b, [2, 6, 3, 7]);
76353        transmute((a0, b0))
76354    }
76355}
76356#[doc = "Zip vectors"]
76357#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzip_p8)"]
76358#[inline]
76359#[target_feature(enable = "neon")]
76360#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
76361#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vzip))]
76362#[cfg_attr(
76363    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
76364    assert_instr(zip1)
76365)]
76366#[cfg_attr(
76367    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
76368    assert_instr(zip2)
76369)]
76370#[cfg_attr(
76371    not(target_arch = "arm"),
76372    stable(feature = "neon_intrinsics", since = "1.59.0")
76373)]
76374#[cfg_attr(
76375    target_arch = "arm",
76376    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
76377)]
76378pub fn vzip_p8(a: poly8x8_t, b: poly8x8_t) -> poly8x8x2_t {
76379    unsafe {
76380        let a0: poly8x8_t = simd_shuffle!(a, b, [0, 8, 1, 9, 2, 10, 3, 11]);
76381        let b0: poly8x8_t = simd_shuffle!(a, b, [4, 12, 5, 13, 6, 14, 7, 15]);
76382        transmute((a0, b0))
76383    }
76384}
76385#[doc = "Zip vectors"]
76386#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzip_p16)"]
76387#[inline]
76388#[target_feature(enable = "neon")]
76389#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
76390#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vzip))]
76391#[cfg_attr(
76392    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
76393    assert_instr(zip1)
76394)]
76395#[cfg_attr(
76396    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
76397    assert_instr(zip2)
76398)]
76399#[cfg_attr(
76400    not(target_arch = "arm"),
76401    stable(feature = "neon_intrinsics", since = "1.59.0")
76402)]
76403#[cfg_attr(
76404    target_arch = "arm",
76405    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
76406)]
76407pub fn vzip_p16(a: poly16x4_t, b: poly16x4_t) -> poly16x4x2_t {
76408    unsafe {
76409        let a0: poly16x4_t = simd_shuffle!(a, b, [0, 4, 1, 5]);
76410        let b0: poly16x4_t = simd_shuffle!(a, b, [2, 6, 3, 7]);
76411        transmute((a0, b0))
76412    }
76413}
76414#[doc = "Zip vectors"]
76415#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzipq_f32)"]
76416#[inline]
76417#[target_feature(enable = "neon")]
76418#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
76419#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
76420#[cfg_attr(
76421    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
76422    assert_instr(zip1)
76423)]
76424#[cfg_attr(
76425    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
76426    assert_instr(zip2)
76427)]
76428#[cfg_attr(
76429    not(target_arch = "arm"),
76430    stable(feature = "neon_intrinsics", since = "1.59.0")
76431)]
76432#[cfg_attr(
76433    target_arch = "arm",
76434    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
76435)]
76436pub fn vzipq_f32(a: float32x4_t, b: float32x4_t) -> float32x4x2_t {
76437    unsafe {
76438        let a0: float32x4_t = simd_shuffle!(a, b, [0, 4, 1, 5]);
76439        let b0: float32x4_t = simd_shuffle!(a, b, [2, 6, 3, 7]);
76440        transmute((a0, b0))
76441    }
76442}
76443#[doc = "Zip vectors"]
76444#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzipq_s8)"]
76445#[inline]
76446#[target_feature(enable = "neon")]
76447#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
76448#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
76449#[cfg_attr(
76450    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
76451    assert_instr(zip1)
76452)]
76453#[cfg_attr(
76454    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
76455    assert_instr(zip2)
76456)]
76457#[cfg_attr(
76458    not(target_arch = "arm"),
76459    stable(feature = "neon_intrinsics", since = "1.59.0")
76460)]
76461#[cfg_attr(
76462    target_arch = "arm",
76463    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
76464)]
76465pub fn vzipq_s8(a: int8x16_t, b: int8x16_t) -> int8x16x2_t {
76466    unsafe {
76467        let a0: int8x16_t = simd_shuffle!(
76468            a,
76469            b,
76470            [0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23]
76471        );
76472        let b0: int8x16_t = simd_shuffle!(
76473            a,
76474            b,
76475            [8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31]
76476        );
76477        transmute((a0, b0))
76478    }
76479}
76480#[doc = "Zip vectors"]
76481#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzipq_s16)"]
76482#[inline]
76483#[target_feature(enable = "neon")]
76484#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
76485#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
76486#[cfg_attr(
76487    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
76488    assert_instr(zip1)
76489)]
76490#[cfg_attr(
76491    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
76492    assert_instr(zip2)
76493)]
76494#[cfg_attr(
76495    not(target_arch = "arm"),
76496    stable(feature = "neon_intrinsics", since = "1.59.0")
76497)]
76498#[cfg_attr(
76499    target_arch = "arm",
76500    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
76501)]
76502pub fn vzipq_s16(a: int16x8_t, b: int16x8_t) -> int16x8x2_t {
76503    unsafe {
76504        let a0: int16x8_t = simd_shuffle!(a, b, [0, 8, 1, 9, 2, 10, 3, 11]);
76505        let b0: int16x8_t = simd_shuffle!(a, b, [4, 12, 5, 13, 6, 14, 7, 15]);
76506        transmute((a0, b0))
76507    }
76508}
76509#[doc = "Zip vectors"]
76510#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzipq_s32)"]
76511#[inline]
76512#[target_feature(enable = "neon")]
76513#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
76514#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
76515#[cfg_attr(
76516    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
76517    assert_instr(zip1)
76518)]
76519#[cfg_attr(
76520    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
76521    assert_instr(zip2)
76522)]
76523#[cfg_attr(
76524    not(target_arch = "arm"),
76525    stable(feature = "neon_intrinsics", since = "1.59.0")
76526)]
76527#[cfg_attr(
76528    target_arch = "arm",
76529    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
76530)]
76531pub fn vzipq_s32(a: int32x4_t, b: int32x4_t) -> int32x4x2_t {
76532    unsafe {
76533        let a0: int32x4_t = simd_shuffle!(a, b, [0, 4, 1, 5]);
76534        let b0: int32x4_t = simd_shuffle!(a, b, [2, 6, 3, 7]);
76535        transmute((a0, b0))
76536    }
76537}
76538#[doc = "Zip vectors"]
76539#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzipq_u8)"]
76540#[inline]
76541#[target_feature(enable = "neon")]
76542#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
76543#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
76544#[cfg_attr(
76545    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
76546    assert_instr(zip1)
76547)]
76548#[cfg_attr(
76549    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
76550    assert_instr(zip2)
76551)]
76552#[cfg_attr(
76553    not(target_arch = "arm"),
76554    stable(feature = "neon_intrinsics", since = "1.59.0")
76555)]
76556#[cfg_attr(
76557    target_arch = "arm",
76558    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
76559)]
76560pub fn vzipq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16x2_t {
76561    unsafe {
76562        let a0: uint8x16_t = simd_shuffle!(
76563            a,
76564            b,
76565            [0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23]
76566        );
76567        let b0: uint8x16_t = simd_shuffle!(
76568            a,
76569            b,
76570            [8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31]
76571        );
76572        transmute((a0, b0))
76573    }
76574}
76575#[doc = "Zip vectors"]
76576#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzipq_u16)"]
76577#[inline]
76578#[target_feature(enable = "neon")]
76579#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
76580#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
76581#[cfg_attr(
76582    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
76583    assert_instr(zip1)
76584)]
76585#[cfg_attr(
76586    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
76587    assert_instr(zip2)
76588)]
76589#[cfg_attr(
76590    not(target_arch = "arm"),
76591    stable(feature = "neon_intrinsics", since = "1.59.0")
76592)]
76593#[cfg_attr(
76594    target_arch = "arm",
76595    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
76596)]
76597pub fn vzipq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8x2_t {
76598    unsafe {
76599        let a0: uint16x8_t = simd_shuffle!(a, b, [0, 8, 1, 9, 2, 10, 3, 11]);
76600        let b0: uint16x8_t = simd_shuffle!(a, b, [4, 12, 5, 13, 6, 14, 7, 15]);
76601        transmute((a0, b0))
76602    }
76603}
76604#[doc = "Zip vectors"]
76605#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzipq_u32)"]
76606#[inline]
76607#[target_feature(enable = "neon")]
76608#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
76609#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
76610#[cfg_attr(
76611    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
76612    assert_instr(zip1)
76613)]
76614#[cfg_attr(
76615    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
76616    assert_instr(zip2)
76617)]
76618#[cfg_attr(
76619    not(target_arch = "arm"),
76620    stable(feature = "neon_intrinsics", since = "1.59.0")
76621)]
76622#[cfg_attr(
76623    target_arch = "arm",
76624    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
76625)]
76626pub fn vzipq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4x2_t {
76627    unsafe {
76628        let a0: uint32x4_t = simd_shuffle!(a, b, [0, 4, 1, 5]);
76629        let b0: uint32x4_t = simd_shuffle!(a, b, [2, 6, 3, 7]);
76630        transmute((a0, b0))
76631    }
76632}
76633#[doc = "Zip vectors"]
76634#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzipq_p8)"]
76635#[inline]
76636#[target_feature(enable = "neon")]
76637#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
76638#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
76639#[cfg_attr(
76640    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
76641    assert_instr(zip1)
76642)]
76643#[cfg_attr(
76644    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
76645    assert_instr(zip2)
76646)]
76647#[cfg_attr(
76648    not(target_arch = "arm"),
76649    stable(feature = "neon_intrinsics", since = "1.59.0")
76650)]
76651#[cfg_attr(
76652    target_arch = "arm",
76653    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
76654)]
76655pub fn vzipq_p8(a: poly8x16_t, b: poly8x16_t) -> poly8x16x2_t {
76656    unsafe {
76657        let a0: poly8x16_t = simd_shuffle!(
76658            a,
76659            b,
76660            [0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23]
76661        );
76662        let b0: poly8x16_t = simd_shuffle!(
76663            a,
76664            b,
76665            [8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31]
76666        );
76667        transmute((a0, b0))
76668    }
76669}
76670#[doc = "Zip vectors"]
76671#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzipq_p16)"]
76672#[inline]
76673#[target_feature(enable = "neon")]
76674#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
76675#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
76676#[cfg_attr(
76677    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
76678    assert_instr(zip1)
76679)]
76680#[cfg_attr(
76681    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
76682    assert_instr(zip2)
76683)]
76684#[cfg_attr(
76685    not(target_arch = "arm"),
76686    stable(feature = "neon_intrinsics", since = "1.59.0")
76687)]
76688#[cfg_attr(
76689    target_arch = "arm",
76690    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
76691)]
76692pub fn vzipq_p16(a: poly16x8_t, b: poly16x8_t) -> poly16x8x2_t {
76693    unsafe {
76694        let a0: poly16x8_t = simd_shuffle!(a, b, [0, 8, 1, 9, 2, 10, 3, 11]);
76695        let b0: poly16x8_t = simd_shuffle!(a, b, [4, 12, 5, 13, 6, 14, 7, 15]);
76696        transmute((a0, b0))
76697    }
76698}